Как сделать энергию в юнити

Добавил пользователь Алексей Ф.
Обновлено: 05.10.2024

Рубрика для тех, кто немного знаком с Unity, но ищет ответы на вопросы, как сделать ту или иную фичу. Подбираем вопросы и отвечаем на них.

Как собрать проект Unity в исполняемый файл?

Хотите, чтобы в вашу игру могли играть все? Собираем проект Unity в исполняемый файл и делимся с друзьями! Сделать это просто: выбираем пункт меню File — Build Setting делаем несколько настроек нажимаем кнопку Build.

Загрузка сцен в Unity

Как сделать многоуровневую игру в Unity? Или игру, в которой игрок может перемещаться (телепортировать) между локациями? Один из наиболее частых вариантов реализации заключается в создании для каждого уровня игры отдельной сцены. Итак, алгоритм создания такой игры следующий. Шаг 1. Создать сцены для каждого уровня и пр. составляющих игры. Продумать понятную и гибкую систему идентификации файлов …

Как сделать выход из игры в Unity?

Алгоритм прост. Шаг 1. Создать в интерфейсе игры кнопку-крестик, клик по которой должен закрывать игру. Дополнительно, если это необходимо, можно также продумать нажатие определённой клавиши (для десктопных игр). Шаг 2. Создать скрипт с вызовом функции UnityEngine, закрывающей приложение Это функция (метод) Quit() из класса Application. Подробнее о нём можно узнать из официальной документации. Там же …

Как в Unity настроить спрайты в стиле пиксель арт?

Минимальный необходимый набор шагов следующий. Шаг 1. Импортировать в проект графический файл со спрайтом Как правило, это не просто одна картинка, а несколько. Так называемый атлас или sprite sheet (спрайт шит). Для этого нам нужен графический файл, который можно просто перетащить в папку Sprites (если её нет, создать) проекта в окно Project. Шаг 2. Выделить …

Как собрать проект Unity для смартфона или планшета

Опишем процесс сборки проекта под платформу Android, которая поддерживается большинством смартфонов. Для начала сборки необходимо открыть окно Build Settings из пункта меню File -> Build Settings… (или нажать комбинацию клавиш Ctrl + Shift + B): Шаг 1. Выбор платформы В окне Build Settings выбрать платформу Android и нажать на кнопку Switch Platform: Шаг 2. Проверить …

Наши проекты


Творческое программирование для всех! (игры и анимация на Scratch)


Эксперт в медицинских тренажерах VR на Unity, физических симуляциях и сетевых играх.

Что такое Unity

Unity — это и среда разработки, и игровой движок, с помощью которого создаются проекты для разных платформ: ПК, мобильных устройств, игровых консолей и интернет-платформ, — поэтому он называется кроссплатформенным. В Unity есть инструменты для создания объектов, их перемещения, работы с графикой, текстурами и звуком, поэтому сделать полноценную игру с его помощью можно даже в одиночку.

Наглядный пример игры, созданной на Unity, которая поддерживает разные устройства, — Genshin Impact, успешный мультиплатформенный проект китайской студии miHoYo Limited. Более популярной стала ее мобильная версия, но пользователи могут войти в аккаунт, например, с компьютера и продолжить играть с того же момента, на котором остановились в мобильной версии. Кроме Genshin Impact, на Unity созданы такие известные проекты, как Hearthstone, Outlast, Cuphead, Pokemon GO и многие другие.

В игровой индустрии существуют десятки разных движков. Одни разработаны под конкретную игру, на других можно делать игры конкретного жанра (шутеры от первого лица, платформеры, гонки), а есть универсальные, вроде Unity, которые открывают разработчикам больше возможностей. Уникальность Unity заключается в сочетании нескольких факторов. Кроме того, что этот движок позволяет создавать проекты под разные устройства и не ограничивает разработчика конкретным жанром, он:

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

Посмотрите также: Как установить Unity

Как создать простую игру

При создании собственного проекта важно помнить, что разработка кода — это примерно 20% игры; гораздо большее значение в ней имеют другие аспекты:

Разработчик игр на Unity

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

Русского языка в настройках нет, так что придется совершенствовать технический английский. Всего Unity занимает 11,3 Гб,поэтому перед установкой лучше проверить свободное место на диске и почистить его при необходимости.

Следующий шаг — создание Unity ID. Можно регистрироваться с помощью почты или использовать предложенные аккаунты, например Google, Facebook или Apple. Важно поставить первые две галочки: согласие с условиями использования Unity и признание политики конфиденциальности. Третья галочка — это согласие на маркетинговые рассылки, ее ставить не обязательно.

После регистрации Unity предложит создать тестовый проект Microgame. На выбор предлагается пять шаблонов:

  • LEGO Microgame;
  • шутер от первого лица;
  • картинг;
  • платформер;
  • пустой 3D-шаблон.

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

Создание проекта

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

Новому проекту присваивается имя, выбираются место хранения на диске и темплейт — то есть шаблон для разработки, внешний вид и функционал которого зависит от количества измерений в игре. Проще начинать с 2D-проектов, так как для этого формата создано больше готовых ассетов. Конечно, можно сразу начать делать 3D-игры, но в этом случае многие элементы и анимации придется самостоятельно создавать с нуля или выделять бюджет на то, чтобы делегировать эту часть работы другим специалистам.

Настройка интерфейса

В стандартном интерфейсе проекта шесть элементов рабочей области:

  1. Верхняя панель инструментов— в ней находятся стандартные вкладки File, Edit, Help, как во многих других интерфейсах, а также вкладки Assets, GameObject, Components и Window.
  2. Scene — окно сцены, в котором выстраивается игровое пространство (элементы игрового мира, текстуры, фигурки персонажей и прочее).
  3. Games — это окно игры, в котором можно посмотреть глазами пользователя, как будут двигаться элементы и работать игровые механики.
  4. Hierarchy — окно иерархии, в нем перечислен список всех элементов (GameObject), которые помещены в окно Scene.
  5. Project — это система папок, в которых хранятся ассеты по категориям (текстуры, шрифты, звуки и т.д.).
  6. Inspector — окно для изменения элементов игры, их размера, цвета, положения в пространстве и других характеристик.


Добавление объекта

Объекты на экран Scene можно добавить из Asset Store. Для этого на панели инструментов нужно кликнуть на вкладку Window –> General –> Asset Store.

В строке поиска можно по названиям найти нужные компоненты, например, сет Free Platform Game Assets.

Как и другие ассеты, он загружается с помощью кнопки Import.

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

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

Шаг 2. Перенести в область Scene

Работа со скриптами

За поведение игровых объектов отвечают присоединенные к ним компоненты (Components). Базовый компонент любого объекта — Transform, он отвечает за положение элемента в окне Scene, возможность поворачивать и масштабировать его. К базовому компоненту можно добавить, например, Renderer, который меняет цвет, или RigidBody, который отвечает за массу и физику объекта. Но кроме базовых компонентов, объектам можно задавать особые условия, и для этого как раз используются скрипты.

Базовые элементы скриптов — это:

  • using — элемент в коде, который подключает библиотеки;
  • public class — в этой строке обычно прописан класс MonoBehaviour, он содержит набор функций, необходимых для работы скрипта;
  • void — те самые функции, с их помощью прописываются действия, происходящие в игре.

Рассмотрим, например, функцию start. Любое действие в ней произойдет только один раз, когда запустится игра. Пропишем здесь print (“Hi”).

И можно заметить, что в консоли это слово выводится один раз.

Функция update — повторяющаяся, ее можно использовать, например, для передвижения объекта. Для этого в скрипте задается переменная int i = 0, она выводится на экран с помощью функции print (i) и увеличивается на одну единицу за каждый шаг с помощью i++.

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

Настройка триггеров

Для понимания сути триггеров важно усвоить, что такое коллайдер (Collider). Это компонент, который присваивается объекту в пространстве игры, задает форму и делает его твердым, недоступным для прохождения сквозь него. Например, если мы разместим монетку в 2D-пространстве и захотим сделать так, чтобы она упала на платформу, то без использования компонента Collider ничего не получится — монетка пролетит сквозь платформу.

Поэтому обоим объектам необходимо присвоить компонент Box Collider 2D — это тонкая зеленая линия, которая обводит элементы по контуру, и за счет этой рамки они становятся твердыми, то есть один не может пройти сквозь другой.

Так объекты обязательно соприкоснутся и монета встанет на платформу.

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

Чтобы создать триггер, нужно накинуть тот же самый компонент коллайдера, но поставить галочку Is Trigger.

Триггеры распознают три варианта взаимодействия области на карте и объекта:

  • OnTriggerEnter — объект зашел в зону;
  • OnTriggerStay — объект находится в зоне;
  • OnTriggerExit — объект покинул зону.

Что дальше?

Разработчик игр на Unity

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

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

Поскольку мой лес фэнтезийный, решил поступить максимально логично и тупо воткнуть туда космический корабль. Почему бы и нет, черт побери? 😉

Как добавить космический корабль на сцену

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

Добавление модели на сцену

И вот мой корабль уже ждет меня на берегу болота. Сейчас это просто моделька – даже без collision shape. А маленьким я его сделал потому, что террейн у меня небольшой. Хочу просто полетать между деревьями, как эльф. Эльф на звездолете!

Как создать коллайдер и добавить массу

Как я уже сказал, корабль – просто моделька. Через нее можно даже пройти. Нужен коллайдер для столкновений и физика – масса корабля.

Первым делом я выделил корабль в иерархии проекта, нажал Add Component в инспекторе и добавил ему свойство Rigidbody. Массу увеличил до 200 единиц, чтобы персонаж при столкновении не мог сдвинуть его с места.

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

Создание коллайдера

Ну и вот он, красавец, одиноко лежит на земле в моем лесу.

Корабль

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

Как сесть в корабль

Логику происходящего я понимаю лишь примерно.

  1. Персонаж подходит к кораблю и нажимает кнопку.
  2. После этого он должен исчезнуть, а камера переключается на камеру корабля. Корабль становится персонажем, и можно летать.
  3. При выходе из корабля нажатием кнопки основной игрок (FPS Controller) спавнится рядом и включается его камера.

По крайней мере, так я это выдумал на основе того, что видел в играх… Посмотрим, что получится.

Первым делом добавил камеру в корабль, отодвинул ее чуть назад и наклонил, чтобы она смотрела на него.

Камера (здесь я для теста сделал ее дочерней, но затем ее нужно достать наружу)

Камера (здесь я для теста сделал ее дочерней, но затем ее нужно достать наружу)

Перенос постэффектов

Скопировал все компоненты. Теперь все в порядке. Можно продолжать.

Скопировал все компоненты

Не забудьте отключить камеру (галочка в инспекторе)! Дело в том, что 2 активные камеры – это двойная нагрузка на видеокарту. Очевидно, камеру для таких вещей нужно включать / выключать скриптом.

Скрипт посадки на корабль и выхода наружу

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

Опыта в программировании под Unity у меня нет, поэтому совместными силами с Google, YouTube и документацией мы родили простенький скриптик. Я снабдил код подробными комментариями, чтобы было понятно, что происходит.

Этот скриптик по моей задумке вешается на корабль. Сперва регистрируются публичные переменные, которые добавят поля. В эти поля надо поместить объект игрока, объект корабля и камеру корабля. Также добавляется переменная с максимальной дистанцией до корабля, при которой в него можно сесть. Я поставил 10 единиц (пока не знаю каких 😁).

Скрипт вешается на корабль

Вот, по сути, и все. Теперь при приближении к кораблю я могу в него сесть, а затем выпрыгнуть ему на крышу.

Сел в корабль. Каеф ;)

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

Как летать на корабле

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

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

В моем случае скриптов получилось аж 5 штук. Вот их список в том порядке, в котором я их делал.

  • EnterToShip (вешается на корабль) – вход в корабль и выход из него.
  • ShipCameraFollow (вешается на камеру корабля) – управление камерой.
  • ShipControl (вешается на корабль) – управление кораблем.
  • ShipEffects (вешается на корабль) – включение / переключение / отключение систем частиц, которые имитируют реактивные струи двигателей.
  • ShipAudio (вешается на корабль) – включение / переключение / отключение аудио-эффектов, которые имитируют гул двигателей.

Как сделать камеру слежения за кораблем

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

Скрипт камеры слежения

В итоге выкинул все, сел и просто стал думать.

Итак, у меня есть корабль. И у меня есть камера. Камера должна всегда находиться позади корабля, но следовать за ним с небольшой задержкой. Повернуть камеру на объект легче легкого с помощью Transform.LookAt(). Движение за объектом и задержку вроде бы тоже нетрудно сделать с помощью Vector3.Lerp(). Но как заставить камеру всегда находиться позади объекта?

Оказалось, очень легко. Нужно просто задать камере смещение относительно самого корабля. И я сделал это в 3 строчки кода.

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

Реализация управления

Управление получилось несколько топорным, если сравнивать с настоящими играми. Но в целом летать можно, и это даже по кайфу.

Скрипт контроллера корабля

Код я немного причесал и обильно прокомментировал. Хотя уверен, что круглые новички все равно ничего не поймут. В общем, логика работы следующая.

Чтобы скрипт нормально работал, в Rigidbody корабля в Инспекторе нужно настроить Mass (массу), Drag (сопротивление среды движению) и Angular Drag (сопротивление вращению). От массы корабля напрямую зависит сила импульса, которую нужно применить в AddForce(), чтобы он полетел. Высокие сопротивления помогут удерживать корабль стабильным. В противном случае после придания ускорения его уже будет крайне сложно остановить, и его будет мотать по всей округе. То же самое с вращением – если не хотите превратить корабль в спинер, то Angular Drag ставьте большой.

Визуальные эффекты для корабля

По сути, корабль был уже готов. Можно было летать и выполнять фигуры высшего пилотажа. Но все это происходило в тишине и скукоте. Решил добавить визуальные эффекты.

(Эффекты частиц вам придется создать самим )

  1. Сделал одну систему частиц, имитирующую реактивную струю из двигателя. Даже добавил в нее источник света, чтобы был эффект освещенности. Сделал ее дочерним объектом корабля, назвал Engine1Fire.
  2. Скопировал ее для второго двигателя, назвал Engine2Fire.
  3. С помощью скрипта запрограммировал 4 фазы: двигатели выключены (игрок вне корабля), двигатели на минимум (режим бездействия), двигатели в полете (W), двигатели форсаж (W + Shift).
  4. Чтобы эффект различался по степени яркости, изначальные частицы сделал прозрачными, а выполнении условий фазы просто добавлял их количество.

Получился довольно прикольный эффект. Вначале струя тусклая, при полете ярче, а при ускорении – совсем яркая.

Код, опять же, причесал, как мог.

Звуковые эффекты для космического корабля

Еще одно место, где меня, зеленого неофита, ждали боль и страдания.

Скрипт звуковых эффектов для корабля

Во-первых, написать логику переключения звуков оказалось на порядок сложнее, чем кажется. Причем в приведенной в скрипте логике до сих пор есть баг со звуком взлета (на пробел), который я не могу поймать. Кажется, что-то связанное с креном…

Во-вторых, у меня долго не получалось сделать звук объемным. То есть не просто рев моторов в фоне, а чтобы он исходил из корабля. В итоге скачал ассет Resonance Audio (инструкция по установке) – не работает. Долго не мог понять, что не так. В конце концов, дошло: нужно отключать Audio Listener на камере корабля, когда она неактивна. Вырубил, управление прописал в скрипт.

В-третьих, нужно было сделать зацикленный звук рева двигателей. К счастью, тут все оказалось так сложно. Первым делом надо скачать полностью бесплатную программку Audacity. Затем найти в интернете бесплатный файлик с ревом двигателей.

  1. Открываем файл с шумами в проге, обрезаем более-менее стабильно звучащий кусочек.
  2. Копируем его, копию ставим в начало файла.
  3. Оригинал разворачиваем задом наперед (Эффекты → Реверс).
  4. Присобачиваем к копии.
  5. Обязательно заходим в Эффекты → Обрезка тишины и, ничего не меняя, применяем на трек. Это удалить паузу (миллисекунды тишины) в начале трека.
  6. Готово. Экспортируем в OGG и закидываем в Unity.

Создание зацикленного бесшовного звука двигателей

В целом, я думаю, получилось, нормально. Иногда проскакивают косяки со звучанием вертикального взлета, но я это исправлю… Когда-то 😀.

Видео с моим кораблем

Наконец, готов поделиться результатом кусания локтей, вырывания волос, истерик, панических атак (и это только субботнее утро 😁) в течение 3-х дней.

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

Надеюсь, приведенный здесь код будет кому-то полезен. Увидимся в следующих постах 😉.

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

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

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!

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