Создание взрывающейся бомбы с помощью Unity необычайно просто. Узнав как инстанциировать частицы по своему желанию, вы можете использовать этот эффект для таких вещей как колеса автомобиля, искрящиеся при трении о дорогу, или шарики, которые лопаются и разбрасывают повсюду конфетти.
Откройте Bomb scene из окна Project и запустите сцену:
И так, у нас есть некий пол. Пока что ничего происходить у нас не будет. Для появление бомбы перетащите префаб Bomb в Bomb Emitter:
Запустите сцену снова, чтобы увидеть появление бомбы:
Излучатель создает новую бомбу каждые 2 секунды. Чтобы придать ей небольшое вращение, добавьте вращающей силы бомбе при её появлении.
Откройте скрипт Bomb из папки Scripts в окне Project.
Добавьте следующий код в Start()
:
void Start() {
float randomX = UnityEngine.Random.Range (10f, 100f);
float randomY = UnityEngine.Random.Range (10f, 100f);
float randomZ = UnityEngine.Random.Range (10f, 100f);
Rigidbody bomb = GetComponent<Rigidbody> ();
bomb.AddTorque (randomX, randomY, randomZ);
}
Первые три строки генерируют случайные значения с плавающей запятой в диапазоне от 10
до 100
для осей х, у и z. Далее, вы получаете ссылку на Rigidbody компонент бомбы и применяете к нему крутящий момент. Это приводит к вращению бомбы в случайном направлении:
Согласен, бомбы вращаются красиво пока падают падают, но обещали же взрывы! Не волнуйтесь, сейчас все будет. Рванет, мало не покажется :]
В Иерархии нажмите на кнопку Create и выберите Create Empty. Нажмите на вновь созданный Игровой объект (GameObject) и назовите его ExplosionParticles. Затем добавьте новую систему частиц к Игровому объекту. Если вы забыли как создать систему частиц, изучите статью Unity. Система частиц. Огонь факела.
Создав систему частиц, перетащите Игровой объект ExplosionParticles из Иерархии в папку Prefabs в Браузере проекта (Project Browser). Затем выберите префаб Bomb внутри папки Prefabs. В завершении, перетащите префаб ExplosionParticles слот префаба частиц взрыва бомбы как показано ниже:
Теперь, когда бомба коснется земли, появится новый игровой объект взрыва частиц.
Запустите сцену, чтобы увидеть как выглядит взрыв:
Фантастика, но до взрыва пока ещё далеко! Также обратите внимание, что игровой объект ExplosionParticles уже с самого начала присутствует в игровой сцене. Удалите этот Игровой объект в Иерархии; с этого момента вы будете редактировать префаб.
Как и с факелом (Unity. Система частиц. Огонь факела), вы будете использовать для системы частиц материал ввиде огня.
Выберите префаб ExplosionParticles в окне Project, затем разверните модуль Renderer в Инспекторе. Перетащите FireMaterial из папки Materials в окно Project в слот Material как показано ниже:
Для завершения эффекта, вам придется изменить следующие параметры в главном модуле:
- Установите Duration (продолжительность) в
0.70
.
- Looping должно быть отключено. Частицы должны выделяться лишь один раз.
- Установите Start Lifetime в
0.7
.
- Установите Start Speed в
10
.
- Установите Start Size в
2
.
- Установите Gravity Modifier в
1
. Это заставит частицы медленно падать в конце.
Запустите сцену, чтобы увидеть, что у вас получилось:
Ну, вроде, взрыв есть, но можно сделать лучше!
Создаем полноценный взрыв в Unity
Чтобы улучшить взрыв, вы будете изменять свойства одного из модулей систем частиц. Можете догадаться, какой модуль нужно изменить? Вот подсказка - вы уже использовали его.
Если вы угадали (модуль Emission), возьмите с полки пирожок!
Разверните модуль Emission. Как вам известно, он представляет собой число частиц порождаемых в секунду. Для этого взрыва нам не нужен постоянный поток частиц, а скорее внезапный всплеск.
Установите Rate в 0
. Теперь посмотрим что есть под Rate. Там есть список Bursts, который сейчас пуст:
Взрыв (Burst) – это коллекция разбросанных частиц в отдельно взятый момент времени.
Нажмите на кнопку + в правом нижнем углу, чтобы добавить новый взрыв. Вы увидите два поля: Time и Particles
Оставьте Time равной 0
, а Particles сделайте равной 150
. Эти настройки позволят системе частиц разбросать 150 частиц за раз при старте системы. Запустите сцену:
Теперь это уже больше похоже на взрыв! И хотя он выглядит на много лучше, форма все еще представляет собой неуклюжий конус и частицы исчезают не плавно, а мгновенно. Нам придется сформировать свой взрыв для большей реалистичности. Чтобы приступить к работе, разверните модуль Shape:
Вы уже использовали этот модуль для формы огня в факеле, но есть еще несколько форм для выбора. Нажмите на выпадающем списке под названием Cone чтобы увидеть все доступные вам опции:
Каждая форма влияет на эмиттер по-разному. Ниже показана анимация с одинаковым излучателем, но разной формой:
Вы можете получить много различных эффектов от одной и той же системы - просто путем изменения формы!
Для того, чтобы создать реалистичный взрыв, установить форму Sphere.
Запустите сцену и подготовьтесь к мега-взрыву:
В то время как взрыв выглядит хорошо, есть одна небольшая проблема. Частицы просто исчезают. Это дребезжащий эффект не выглядит естественно: частицы должны исчезать постепенно, чтобы взрыв как бы угасал.
Изменение цвета
Открыв систему частиц в Инспекторе, отметьте чекбокс модуля Color over Lifetime чтобы включить и раскрыть его. Появится слово Color и белый блок рядом с ним. Нажмите на белый блок:
Откроется редактор градиента:
Изменение цвета частиц со временем показано как градиентная полоска. Начальный цвет показан в левой части полоски, а справа показан цвет, который окрасит частицы в итоге:
Четыре белые стрелки на краях известны как маркеры; наведите курсор между двумя существующими маркерами и нажмите на левую кнопку мыши, чтобы добавить новый маркер. Чтобы удалить маркер, , перетащите его с полоски:
Верхние маркеры управляют прозрачностью цвета, в то время как нижние маркеры управляют цветом в RGB (Red - красный, Green - зеленый, Blue - синий) формате.
Нажмите на крайний правый альфа-маркер. В нижней части редактора градиентов теперь показывается текущее значение прозрачности:
Перетащите ползунок до 0
. Теперь частицы будут постепенно исчезать в течение их жизни.
Запустите сцену еще раз, чтобы увидеть эффект от внесенных изменений:
Что дальше?
Вы можете скачать финальный проект.
В этом уроке вы узнали, как системы частиц и ее различные модули работают в Unity и как их настроить так, чтобы получить тот эффект, который вы хотите. Не стесняйтесь экспериментировать с различными настройками, чтобы получить другие интересные эффекты.