Плагин для Unity ~ 22,85 Мб |
Возможности плагина
- Сам по себе плагин является полностью бесплатным, но как обычно для коммерческих проектов необходимо лицензировать API. Плагин позволяет использовать всю мощь и красоту эффектов MagicParticles в Unity.
- Визуальный редактор Unity позволяет расставлять объекты по игровой сцене. Плагин Magic Particles разработан так, чтобы Unity мог работать со спецэффектами Magic Particles по аналогии с собственными объектами. Также возможна загрузка/удаление эффектов в реальном времени уже в релизе.
- Плагин работает под Windows и Mac OS, а также поддерживает широкий спектр игровых платформ для релиза.
- Плагин написан на языке C#, но для своей работы использует API Magic Particles с интерфейсом на языке C. Все функции API экспортируются в C# с помощью файла magic.cs.
- Плагин поддерживает работу с физикой и событиями для частиц. Например, в визуальном редакторе Unity можно указать препятствия, с которыми будут взаимодействовать частицы. Все эти действия обрабатывает API Magic Particles, а не движок Unity. При столкновении частицы могут уничтожаться, отскакивать или оставаться на месте. Следует иметь в виду, что не каждый спецэффект сделан с учетом того, что частицы должны красочно отскакивать от препятствий, и эта ситуация должна настравиться уже с помощью редактора Magic Particles.
Начало
Понятно, что для начала нужно установить Unity и скачать плагин Magic Particles. Плагин поставляется в виде файла типа unitypackage, который необходимо импортировать в свой проект. Откройте проект и выполните следующие действия:
- Assets->Import Package->Custom Package
- В открывшемся окне выбираем плагин MagicParticles.unitypackage
- Будет показан список файлов, который будет добавлен/заменен после выполнения импорта
- Соглашаемся с этим, и плагин добавляется в проект
Чтобы начать действовать "с нуля", выполните GameObject->MagicParticles. У вас появится 2 новых объекта MagicHost и NewMagicEmtiter. Объект MagicHost является ядром плагина и обычно существует единственном экземпляре, поэтому повторное нажатие GameObject->MagicParticles приведет только к созданию нового объекта NewMagicEmtiter, который и является спецэффектом.
Свойства MagicHost
MagicHost содержит общие для всех эмиттеров настройки, а также является хранилищем всех ptc-файлов, которые в свою очередь содержат доступные спецэффекты.
Так как MagicHost - это объект, который только управляет другими эмиттерами, то на него не действует стандартная трансформация Unity. Свойство Animate emitters управляет анимацией эмиттеров на сцене и может принимать следующие значения:
- Always - все эмиттеры анимируются всегда
- Selected - все эмиттеры анимируются в случае, если выделен какой-то эмиттер или MagicHost
- Only Selected - анимируется только выделенный эмиттер
- Stop - эмиттеры не анимируются
Свойство Use camera выбирает камеру для визуализации спецэффекта. Большинство 3D-эмиттеров для правильной отрисовки должны знать положение камеры, так как часто частицы ориентируются на камеру. Также бывает ситуация, когда частицы рисуются по в порядке от дальних к ближним, что тоже должно учитывать положение камеры. Проблема в том, что Unity использует 2 камеры - одну для редактора, а вторую для игры. Редактировать сцену, естественно, удобнее, когда основной является камера редактора, а наблюдать результат лучше через камеру для игры.
- from Game - камера игры
- from Editor - камера редактора
- Auto - в режиме редактирования используется камера редактора, а при нажатии на Play включается камера игры
Свойство Show names выбирает способ, которым будут показываться имена эмиттеров в списке:
- Name - только имя спецэффекта
- PTC+Name - имя файла + имя спецэффекта
- PTC+Path+Name - имя файла + путь к эмиттеру внутри файла + имя спецэффекта
Свойство Sort emitters позволяет сортировать имена эмиттеров по алфавиту.
Поле Drag&drop ptc file является самым важным, так как оно позволяет загружать ptc-файлы, из которых потом могут проигрываться эмиттеры. Если список ptc-файлов пуст, то это означает, что эмиттеры для проигрывания отсутствуют. Кнопочка позволяет выбрать имеющиеся ptc-файлы из списка. Также есть возможность перетаскивать на это поле нужные файлы прямо из области ресурсов. Информация о загруженных файлах показывается в таком виде:
Кнопка Reload all выполняют перезагрузку всех данных, относящихся к плагину.
Кнопка Reset static atlases сбрасывает настройки используемых текстурных атласов в состояние Automatic Truecolor, которое максимально подходит для визуализации частиц.
Дело в том, что пользователь в Unity имеет полный контроль за текстурами и может исправлять их настройки, как ему захочется.
Но для текстурных атласов использование MipMap или компресии может иметь нехорошие последствия, что обычно выражается в появлении полос по краям частиц в зависимости от расстояния до камеры.
Обратите внимание, что плагин считает, что все используемые спецэффектами текстуры должны находиться в папке Resources/mp_textures.
Также существует ситуация, когда текстуры могут храниться внутри ptc-файлов вместе со спецэффектами.
В этом случае генерация текстурных атласов будет выполняться автоматически в памяти компьтера.
Свойства эмиттера
Эмиттер - это и есть спецэффект, поэтому его можно перемещать, вращать и масштабировать при помощи свойств трансформации Unity. Обратите внимание, что при вращении некоторые спецэффекты могут быть искажены. В первую очередь, это связано с тем, что автор спецэффекта должен учесть необходимость во вращении при разработке этого спецэффекта.
Кнопка Restart перезапускает эмиттер с начала.
Кнопка Events вызывает окно, которое позволяет настроить реакцию на столкновение частиц с препятствиями, а также передачу в игру сообщений о создании/уничтожении частиц.
Поле Emitter name является самым важным, так как позволяет выбрать конкретный эмиттер из имеющихся в MagicHost файлов. Если ничего не выбрать, то эмиттер не будет обрабатываться.
Поле Automatical playback in game позволяет воспроизвести эмиттер в игре. Иначе эмиттер будет создан, но не будет проигрываться.
Поле Animate in editor включает анимацию эмиттера в редакторе. На игру данное поле не оказывает никакого влияния.
Поле Loop позволяет зациклить эмиттер, т.е. исполнять его бесконечно.
- No - эмиттер не зациклен.
- To start - эмиттер зациклен на начало.
- To end - эмиттер зациклен на конец.
Поле Action on End позволяет определить действие, которое произойдет с объектом, после того, как проигрывание эффекта будет завершено:
- Stop - эмиттер больше не воспроизводится, но остается в памяти и может быть в любой момент воспроизведен заново.
- Disable - эмиттер больше не воспроизводится, а относящийся к нему GameObject деактивируется. Следует использовать в случае, когда эмиттер понадобится нескоро.
- Destroy - эмиттер и относящийся к нему GameObject уничтожаются.
- Restart - эмиттер перезапускается с начала.
Поле Color mode позволяет изменить цвет спецэффекта. Если выбрать режим Tint, то дополнительно появится возможность выбрать цвет и степень примешивания этого цвета к основному цвету каждой частицы.
Поле Limiter type позволяет определить ограничитель для создания частиц. Все частицы, которые должны создаваться за пределами этого ограничителя, не создаются.
- No - ограничитель отсутствует.
- Parallelepiped - ограничитель в форме параллелепипеда.
- Sphere - ограничитель в форме сферы.
Поле Bounding sphere показывает ограничивающую сферу для спецэффекта. Не выполняет никаких действий.
Поле 3D - признак того, что это настоящий 3D-эмиттер, а не 2D-эмиттер на плоскости.
Поле Particles - количество визуализируемых частиц в эмиттере.
Поле DIP - количество проходов, которое требуется для рисования эмиттера. Чем меньше DIP-ов, тем это лучше для FPS.
Поле Time position показывает текущую и максимальную позиции анимации эмиттера.
Настройка столкновений с препятствиями и событий
Для полноценной работы с событиями, необходимо воспользоваться редактором Magic Particles, который позволяет определять реакцию на столкновение, магнетизм и уничтожение частицы. В плагине же основной задачей была необходимость в выборе препятствий и реакция частиц на столкновение с ними. Эта реакция описывается не для эмиттера, а для типов частиц, которых в одном эмиттере может быть несколько. Для нужного типа частиц нужно нажать New event, выбирать в списке Collision и затем препятствие, с которым будет выполняться столкновение. Препятствиями могут выступать только Cube и Sphere. Реакция на столкновение может быть следующей:
- Event - передать сообщение в игру о столкновении частицы с препятствием.
- Destruction - уничтожить частицу в момент столкновения.
- Detaching - частица перестает двигаться.
- Reflection - частица отскакивает от препятствия.
Все другие действия кроме Collision имеют только вариант Event.