Как сделать переливающуюся текстуру в unity

Обновлено: 07.07.2024

Частицы также придают достоверность игровым сценам. Они могут стать основой ревущего костра или световых эффектов заклинаний волшебника. Кроие того, они могут быть использованы для создания дыма, пыли, взрывов и даже радуги!

По существу, частицы представляют собой небольшие, простые картинки или меши, которые испускаются, а затем манипулируются системой частиц в течение их жизни.

Unity позволяет легко создавать системы частиц. Unity использует мощную модулярную встроенную систему частиц под названием Shuriken, , которую нетрудно выучить, и которая позволяет создавать сложные эффекты.

В этом уроке вы узнаете следующее:

  • Как добавить новую систему частиц в Unity.
  • Что делают наиболее часто используемые модули систем частиц, а также то, как их использовать.

Начало работы с частицами в Unity

Скачайте стартовый проект и распакуйте в удобном месте. Вы будете использовать его в качестве отправной точки.

Этот учебник состоит из двух основных частей; в первой, вы будете создавать пламя для факела, а во второй - эффект взрыва бомбы.

Откройте Starter Project в Unity с рассортированными внутри по следующим папкам ассетами:

Materials Содержит материал огня. Models Содержит модели факела и бомбы и их материалы. Prefabs префаб бомбы. Scenes Содержит сцены с факелом и бомбой. Scripts Содержит скрипты. Textures Содержит текстуру для огня.

Добавление системы частиц

Система частиц излучает частицы в случайным образом в пределах заранее определенного пространства, которое может иметь форму шара или конуса. Система определяет срок службы самой частицы и, по истечении этого времени жизни, разрушает частицу. Приятной особенностью систем частиц является то, что они являются компонентами, которые можно добавить к любому игровому объекту (GameObject) в сцене.

Откройте сцену Torch а окне Project и запустите сцену:

Запуск сцены в Unity

Мы видим фонарь, висящий на стене, но никакого огня нет. Для начала нам нужно добавить систему частиц. Выберите TorchFireParticles в Иерархии. Внутри Инспектора нажмите на кнопку Add Component, найдите Particle System и нажмите кнопку, чтобы добавить ее:

Добавление компонента в Unity

Возможно, вы заметили, что мы не не добавили систему частиц непосредственно к игровому объекту факела. Это происходит потому, что частицы будут излучается из середины факела, а не из топливного контейнера в верхней части.

Запустите сцену и вы увидите, что у вас есть излучающиеся частицы:

Правда, то, что мы сейчас видим, не похоже огонь, но мы исправим это в ближайшее время. Пока что вам необходимо понять текущее состояние системы частиц и как изменить его.

При выборе игрового объекта (GameObject) с прикрепленной системой частиц, вы увидите черное диалоговое окно в правом нижнем углу окна Сцены (Scene view). Этот диалоговое окно дает возможность моделировать или остановить систему частиц. Щелчок на кнопке Simulate (Смоделировать) активизирует вашу систему частиц и изменит кнопку на кнопку Pause (Пауза). Чтобы остановить моделирование, нажмите на кнопку Stop (Стоп).


Этот диалог полезен для проектирования систем частиц, которые работают на фиксированной временной шкале, например, взрывы.

Пристальный взгляд на систему частиц

Взгляните на вкладку Инспектор и Вы заметите, что в ней появился компонент системы частиц, который имеет несколько подразделов:

Компонент системы частиц

Каждый из этих подразделов называется Модулем. Эти модули содержат параметры для системы частиц. Модуль, открывающийся по умолчанию – модуль Main module:

Главный модуль

Главный модуль - основа любой системы частиц в Unity. Наиболее распространенные параметры частиц:

Duration Продолжительность времени, в течении которого будет работать система. Оставьте значение по умолчанию, равное 5.00 . Looping

Если включена, система начнет свою работу в месте завершения своего duration цикла и начнет всё заново.

Включено (слева) и выключено (справа)

Огонь должен гореть непрерывно, поэтому оставим включенной.

Prewarm Если включена, система будет инициализирована так, будто она уже прошла через весь цикл своей работы. Работает только когда Looping также включено. Включено (слева) и выключено (справа)

Для нашего пламени оставим его выключенным, чтобы факел выглядел только что зажженным.

Start Delay Задержка в секундах до запуска системы излучения частиц после ее включения. Оставьте значение по умолчанию, равное 0 . Start Lifetime

Начальная продолжительность жизни частиц.

Вверху: 8 сек., вверху: 3 сек.

Установите продолжительность равной 1.2 секунд, чтобы пламя не было слишком высоким.

Начальная скорость каждой частицы в соответствующем ей направлении. Чем больше скорость частиц, тем больше распространение они получат.

Вверху: 2, внизу: 10

Установите скорость равной 0.75 . Это сделает пламя более плотным.

При изменении параметров системы частиц, вы увидите предварительный просмотр в окне игры. Поэкспериментируйте со значениями по своему усмотрению, чтобы узнать о том, как каждая настройка влияет на вашу систему.

Получившийся спецэффект выглядит довольно круто, но напоминает скорее пар, дым, но никак не огонь. Уже сейчас вы можете порадоваться своим успехам, но приготовьтесь к следующей партии настроек основного модуля! :]

Дополнительные свойства основного модуля

Вы настроили факел, но эффект огня по-прежнему оставляет желать лучшего. К счастью, главный модуль имеет дополнительные возможности для дальнейшей коррекции формы и поведения вашего факела.

Выберите игровой объект TorchFireParticles в Иерархии и прокрутите вниз до системы частиц, если она еще не открыта. Взглянитена следующие свойства под Main Module (Главный модуль):

Начальный размер каждой частицы.

Вверху: 0.2, внизу: 1

Установите размер частицы 0.25 ; это управляемый размер, который позволяет увидеть отдельные частицы более четко.

Начальный угол поворота каждой частицы.

Вверху: 0°, внизу: 45°

Сделайте начальный угол поворота равным 0° , поскольку нашу частицы имеют круглую форму, так что вы вряд ли заметите разницу.

Начальный цвет каждой частицы. Оставьте текущий белый цвет, поскольку вы будете окрашивать огонь с помощью текстуры.

Масштабирование значения гравитации в менеджере физики (physics manager). Значение равное 0 приведет к отключению гравитации.

Изображение выше взято из системы со значением Модификатора Гравитации, равным 1 , благодаря которому частицы летят вниз как вода в водопаде. Оставим этот параметр на 0 ; частицы будут двигаться вверх со скоростью, заданной в Start Speed.

Запускает частицы с той же самой скоростью velocity что и система частиц. Работает только тогда, когда к системе частиц добавлен Rigidbody.

Слева: 1, справа: 0

Оставьте Inherit Velocity равной 0 , поскольку для создания эффекта огня она нам не понадобится.

Указывает относительно какой из систем координат (с.к.) должны начать свое движение частицы? Локальной (и как следствие двигаться вместе с самими объектом) или мировой?

Вверху: локальная с.к., внизу: мировая с.к.

Выберите Local Space (Локальная система координат). Эффект будет заметен только приперемещении системы частиц.

Play On Awake Начинает ли система свою работу автоматически в момент создания объекта? Max Particles

Максимальное количество частиц одновременно находящихся в системе. Старые частицы будут удалены, когда будет достигнут предел их жизненного цикла. Этот параметр используется в основном для повышения производительности. Значение по умолчанию, равное 1000 , - более чем достаточно в нашем случае.

Это был довольно внушительный список, но в результате вы узнали, как добавить систему частиц к сцене и как настроить ее по своему вкусу. Запустите сцену еще раз, чтобы увидеть эффект от внесенных изменений:

Выглядит все больше и больше похоже на огонь, правда? Нужно добавить больше частиц, а для этого надо редактировать модуль emission of the system.

Введение в модуль Emission (Emission Module)

Модуль Emission является одним из наиболее важных модулей в системах частиц Unity. Он обрабатывает число и время излучения частиц в системе, чтобы создать непрерывный поток или внезапный выброс частиц в зависимости от ваших потребностей. Находясь в Инспекторе Системы частиц, щелкните по заголовку Emission:

Щелкните по заголовку Emission

Вкладка модуля раскроется и даст нам возможность задать значения:

Свойства Emission Module

Rate представляет собой количество частиц излученных за единицу времени (Time), или пройденного пути (Distance). Вы можете переключаться между этими двумя режимами, щелкнув на поле со списком и выбрая нужный режим:


Оставьте настройки в Time и измените Rate на 50 . Запустите сцену снова:

Мы по-прежнему видим нечто похожее на дым. Но, без паники, нам на помощь приходят пользовательские текстуры!

Добавление пользовательских текстур

Все частицы имеют материал и текстуру, которые определяют их вид. Есть много вариантов, что можно сделать со стандартной текстурой. Измененяя текстуры, вы можете создавать такие эффекты, как волшебные звезды, дым и, конечно же, огонь.

Изменять текстуру частиц довольно легко. До сих пор, частицы были нарисованы на экране с помощью материала Default-Particle который является материалом частиц с круговой градиентной текстурой:


Чтобы изменить материал, выберите игровой объект TorchFireParticles внутри Иерарархии. Затем найдите компонент системы частиц в Инспекторе, и откройте модуль Renderer системы частиц.

Откройте папку Materials в окне проекта и перетащите FireMaterial Material в свойство Material:

Теперь запустите сцену, чтобы увидеть вашу пользовательскую текстуру в действии:

Изменение формы системы частиц

Разверните модуль Shape в Инспекторе:


Форма shape вашей системы частиц установлена как конусообразная (cone), что означает, что частицы появляются у основания (base) и двигаются с заданным углом (angle).


В приведенном выше примере, основание окрашено в синий цвет, угол – зеленый, а частицы – красные. Обратите также внимание на то, что пока у вас открыт модуль форм (Shape Module), вам доступен удобный предпросмотр создаваемого конуса:


Изменение угла Angle изменяет и размер конуса, делая его шире или уже. Установите его значение равным 10 и вы получите хороший плотный огонь, который слегка расширяется по мере роста частицы.

Изменение радиуса Radius изменяет размер основания; чем выше значение, тем больше частицы будут разбрасываться с появлением. Установите это значение в 0.2 ; это обеспечит то, что огонь будет исходить из нужного места на факеле.

Запустите вашу сцену и посмотрите, как изменилась форма пламени:

Это уже больше похоже на настоящий огонь! Завершающим штрихом является изменение размера частиц в течение их жизни.

Изменение размера со временем

С помощью модуля Size over Lifetime вы можете создавать частицы, которые уменьшаются или увеличиваются в течение их жизни, или даже пульсируют как светлячки в лесу.

Найдите Size over Lifetime в списке модулей систем частиц. В отличие от предыдущих модулей, он по умолчанию отключен. Нажмите на флажок рядом с именем модуля, чтобы включить его:

Чекбокс для Size over Lifetime

Откройте модуль Size over Lifetime, кликнув по его названию. Откроется темно-серое окошко с плоской линией наверху:

Модуль Size over Lifetime

Кликните на темно-серый фон, чтобы открыть редактор кривых в нижней части инспектора. На горизонтальной оси показана жизнь частицы, в то время как вертикальная ось отображает ее размеры:

Кривые

Вы можете перемещать ключи на обоих концах красной линии для редактирования кривой. Вы также можете добавить дополнительные ключи, дважды щелкнув в любом месте на кривой. Чтобы удалить ключи, щелкните правой кнопкой мыши на ключ, чтобы удалить и выберите Delete Key.

Вы можете также выбрать одну из предустановленных кривых в нижней части:

Чтобы сделать огонь более похожим на настоящий, выберите третью справа преднастройку, чтобы создать линию, идущую вниз:


Запустите сцену, чтобы увидеть свой эффект во всей своей огненной славе!

Если вы работали в основной форме с Animations, давайте теперь посмотрим, как можно создать реалистичные дрожащие тени! Как создать дрожащие тени? Очень просто:

  1. Отключите Directional Light (Направленный свет) в Иерархии.
  2. Добавьте Point Light (Точечный свет) к центру частиц пламени (0, 0, 4) .
  3. Сделайте Color (Цвет) слегка оранжевым (HEX-значение FFC68AFF).
  4. Установите Range (Диапазон) в 50 .
  5. Установите Intensity (Интенсивность) в 3 .
  6. Добавьте Animation и сохраните ее где-нибудь в папке Assets.
  7. Присвойте анимацию Animation, которую вы только что создали, к Point Light.
  8. Откройте Animation Window.
  9. Выберите Point Light (Точечный свет).
  10. Установите Shadow Type в Hard Shadows .
  11. Установите Samples в 50 .
  12. Через каждые несколько кадров добавляйте ключевой кадр keyframe и слегка двигайте Point Light (точечный свет) по осям X и Y. Нет никаких стандартов и норм, просто попытайтесь подобрать максимально реалистичные параметры.
  13. Запустите сцену.

Вот, что примерно должно получиться:

Мои поздравления! Вы узнали как создать новую систему частиц и подчинили ее своей воле, делавв красивый эффект пылающего огня в факеле. Сделайте перерыв, а затем вернитесь, чтобы научиться создавать эффекты взрыва в Unity!

Текстуры на объекте Terrain рисуются во вкладке Paint Terrain, в котором надо выбрать режим Paint Texture.

Unity. Paint Texture

Затем надо нажать на кнопку Edit Terrain Layers… и в выпадающем списке выбрать Create Layer…, где можно выбрать материал (текстуру), которой можно рисовать по объекту Terrain.

Если материалов нет, их можно импортировать через Asset Store.

Unity. Terrain. Create Layer

Изменить размер текстуры можно через параметр Size.

Unity. Terrain. Tiling Settings. Size

В результате объект Terrain будет выглядеть примерно как на картинке ниже.

Десять типов текстур для стандартного шейдера Unity

Существует десять типов текстур:

Введение: стандартная текстура шейдера
Стандартный шейдер использует рендеринг PBR, который представляет собой рендеринг, основанный на реалистичных физических эффектах.
Может ли модель отображаться с использованием стандартного шейдера при отображении модели?
. Производится ли он в соответствии с производственными спецификациями и режимами карт PBR, определяет, доступна ли модель
для рендеринга стандартным шейдером.


И. Альбедо наклейки
Albedo: Albedo [карта]; используется для отображения текстуры и цвета модели.
Сама карта альбедо является картой цветов и текстур.
Этот параметр имеет атрибуты текстуры, а также атрибуты цвета.
Два атрибута могут использоваться по отдельности или в комбинации;
Когда атрибут color является чисто белым, он не влияет на эффект текстуры;
Если атрибут цвета другого цвета, эффект сопоставления накладывается.

2. Металлические наклейки
Металличность [текстура]; металлические блики используются для отражения модели;
Сама карта металличности представляет собой серо-белую карту: чем белее место, тем сильнее металличность, тем темнее металличность.
ниже.
Гладкость: гладкость
Значение от 0 до 1, чем меньше, тем ниже плавность, и чем больше, тем выше плавность.

Три: Нормальная карта текстуры
Карта нормалей: карта нормалей; используется для увеличения детализации модели;
Сама карта нормалей является синей картой выпуклости.

Четвертое: карта окклюзии
Окклюзия: AO текстуры;
Сама карта АО является серо-белой картой.
в основном используется для улучшения теней и придания сцене (модели) большей глубины, что помогает лучше представлять детали модели.

Пять: Высота карты наклейки
Карта высот: параллакс [карта], более трехмерный метод отображения, чем карта нормалей;
в основном используется для отражения наземных, строительных и других эффектов.

Семь: Эмиссионные наклейки
Излучение: самоосвещение [карта], сделать модель самоосвещением;
Помимо компонентов освещения и скайбоксов, которые можно использовать в качестве источников света в Unity, используется стандартный шейдер
Карты выбросов также можно использовать в качестве источника света.

Восемь: Деталь Альбедо х2
Деталь Альбедо x2: Деталь альбедо [текстура];
- подробное выражение основной текстуры Albedo;

Девять: Карта нормалей x2
Карта нормалей x2: подробное описание нормалей [карта];
- это подробное представление деталей основной текстуры карты нормалей;


Что касается эффектов этих десяти видов текстур, вы можете просто импортировать модель в Unity, чтобы протестировать ее.

Эта статья только для того, чтобы записать учебные заметки.

Интеллектуальная рекомендация


Mongodb Foundation, Документация, Пользователь

Сравнение SQL и MongoDB, разные точки Запрос базы данных Показать запрос DBS Все данные ДБ отображает текущую базу данных 2. Создайте базу данных use Database_Name Без этой библиотеки автоматич.


TP5 использует SDK Express 100

Рендеринг запросов По коду Код контроллера Экспресс 100 код 2 способа получения экспресс-информации (с расширением curl и без curl), Если у вас есть расширение curl, вы можете просто скопировать класс.


Серия руководств по Webpack4 (3): многостраничное решение - извлечение открытого кода

Объясните в этом урокеwebpack4В процессе упаковки многостраничных приложенийИзвлечь открытый кодРаздел. По сравнению сwebpack3,4.0Для версииoptimization.splitChunksКонфигурация заменена3.0ВерсияCommon.

LeetCode-448. Найти все пропущенные числа в массиве

титульный Для целочисленного массива с диапазоном 1 ≤ a [i] ≤ n (n = размер массива) некоторые элементы в массиве появляются дважды, а другие - только один раз. Найти все числа, которые не появл.


Если добавить на сцену Terrain, то по дефолту она будет белая.
Присваиваем ей текстуру:

В результате она получается засвеченная:


Наверное лучшим способом будет использовать текстуру без использования альфа-канала. Для этого в настройках импортирования текстуры отключите Alpha Source (установите его в None):

Материалы используются вместе с прикрепленными к GameObject мешем или системой частиц. Они играют важнейшую роль в том, как будет выглядеть ваш объект. Материал включает в себя Shader , используемый для рендеринга Mesh или Particles , поэтому данные компоненты не будут отображаться без какого-либо материала.

У материала с шейдером диффузии есть только два свойства - цвет и текстура.

У материала с шейдером диффузии есть только два свойства - цвет и текстура.

Свойства

Свойства материала изменяются в зависимости от выбранного шейдера . Наиболее часто используемые свойства:

Свойство: Функция:
Shader Шейдер, который использует материал. Для получения дополнительной информации по шейдерам прочтите руководство по встроенным шейдерам.
Main Color Произвольный цвет, который используется как оттенок. Используйте белый цвет, если оттенок не нужен.
Base Отображаемая Texture .

Детали

Для помещения текстур на GameObject’ы используются материалы. Нельзя добавить текстуру напрямую без материала, поэтому при добавлении текстуры автоматически будет создан новый материал. Правильная последовательность действий следующая: создать материал, выбрать шейдер, и выбрать ассет(ы) текстур. Для получения дополнительной информации взгляните на страницу руководства по материалам.

Выбор шейдера

Первое, что нужно сделать после создания материала, это решить какой шейдер будет использоваться. Вы выбираете шейдер из выпадающего меню Shader .

Выпадающее меню шейдеров

Выпадающее меню шейдеров

Вы можете выбрать любой шейдер, который есть в папке вашего проекта или выбрать один из встроенных шейдеров. Вы также можете написать свой шейдер. Для получения дополнительной информации по встроенным шейдерам посетите соответствующееруководство. Для получения дополнительной информации по написанию шейдеров взгляните на секцию в руководстве, посвященную шейдерам или посетите ShaderLab Reference.

Задание свойств шейдера

Количество свойств, которые появляются в Inspector , зависит от выбранного шейдера.

Свойства зеркального шейдера (Specular shader) Свойства Normal mapped шейдера Свойства Normal mapped Specular шейдера

Типы свойств шейдера:

Свойство: Функция:
Color pickers Используется для выбора цветов.
Sliders Используется для настройки числовых значений из заданного интервала.
Textures Используется для выбора текстур.

Размещение текстуры

Расположение текстуры может быть изменено с помощью свойств Offset и Tiling .

Читайте также: