Удалось поправить ошибку, связанную с работой Trail/Beam в редакторе. Залил обновление по той же ссылке.
-----------------------------------------------------------------------------------------------------------
Долго ли, коротко ли, но мне-таки удалось довести новую версию до такого состояния, что её можно начинать показывать людям.
Предполагается, что после некоторых исправлений, сделанных с помощью пользователей, данная версия получит нумерацию 3.0 и она будет официально выложена в качестве релиза. А пока я предлагаю всем желающим "погонять" тестовую версию и сообщить мне о найденных ошибках.
Скачать можно отсюда: http://astralax.ru/download/programm/pa ... 0_test.exe
Далее я очень коротко привожу список основных доработок по сравнению с версией 2.25:
1) Частице теперь можно назначить дополнительные свойства:
- Trail - при движении частица растягивает по траектории пройденного пути текстуру. Скорость "свертывания пути" регулируется пользователем.
- Beam - пользователь рисует для частицы путь, а частица растягивает текстуру по данному пути. Дополнительно можно настраивать "шум", т.е. путь может искажаться самостоятельно с указанной частотой. Также текстура может неторопливо ползти из начала пути в конец, постепенно вытягиваясь.
- Path - пользователь рисует путь, и частицы перемещаются только по этому пути. По окончании пути частица может быть уничтожена, продолжить движение или перепрыгнуть на начало пути.
Trail и Beam для 3D-варианта обладают дополнительными свойствами, например, для текстурирования пути можно назначить несколько плоскостей (к примеру, 2 плоскости будут образовывать между собой прямой угол, тем самым создавая объем). При использовании нескольких плоскостей очень уместно будет включить сортировку частиц по расстоянию до камеры, которая по умолчанию отключена. Ориентация плоскостей также может выбираться пользователем, основными ориентациями являются: на камеру, вертикальная плоскость, горизонтальная плоскость.
Beam и Path получают путь от пользователя, и этот путь строится из ключей анимации. А в ключе, помимо координат, заложено время. И время это будет учитываться, т.е. можно регулировать скорость движения частиц на разных участках пути.
2) Были добавлены меши или частицы в виде 3D-моделей. Такую частицу можно заранее создать в каком-нибудь пакете для 3D-моделирования. Magic Particles может прочитать форматы fbx, collada, 3ds, obj и dfx (необходимым условием является то, что меш должен иметь треугольную топологию).
- Помимо самой модели Magic Particles автоматически загружает текстуры, находящиеся в папке с моделью и создает из них материал. Magic Particles позволяет текстурировать один меш при помощи нескольких текстур (т.е. на разные грани могу быть наложены разные текстуры), также можно выбирать цветовой набор для вершин модели и использовать разные наборы текстурных координат.
- Magic Particles позволяет изменять Pivot модели.
- На частицу может быть назначено одновременно несколько мешей, что позволяет реализовывать анимацию. Частота смены кадров-мешей регулируется пользователей.
- На частицы в виде мешей может действовать физика.
3) Добавлены материалы. Материалы позволяют управлять процессом текстурирования частицы. Например, может быть задействовано мультитекстурирование или несколько текстур могут накладываться независимо.
- При мультитекстурировании есть возможность устанавливать правила смешивания текстур. Т.е. пользователь может выбрать источник цвета (цвет вершины, цвет текстуры, цвет от прошлой операции) и определить операцию смешивания (умножение, сложение, вычитание).
- Для текстур теперь можно выбрать способ адресации (WRAP, CLAMP, MIRROR).
- Способ блендинга текстуры также определяется пользователем (обычное смешивание, аддитивный блендинг, без альфы, альфа-тест).
- Для мешей можно выбирать какую текстуру использовать на каких гранях.
- Под материалы имеется собственная шкала времени, которая позволяет управлять текстурными координатами во времени. Каждой текстурой можно управлять независимо, для чего имеются свойства: Позиция, Поворот, Масштаб. Шкала времени позволяет устанавливать ключи анимации для каждого свойства, либо указать константно скорость изменения свойства. Время можно использовать как абсолютное, так и относительно жизни частицы.
4) Появились новые объекты: Картинка, Текст, Видео и Модель. Главное положительное свойство этих объектов в том, что при выделении любого эмиттера, который находится в той же папке, что и эти объекты, объекты будут отображаться на сцене. Т.е. теперь к эмиттеру можно подцепить несколько доп. изображений или видео.
- Все эти объекты имеют собственную шкалу времени, что позволяет изменять их положение на сцене.
- Все эти объекты (кроме видео) могут быть использованы в API (имеется соответствующий свойство "Использовать в API"). Практически, библиотека будет обрабатывать эти объекты по аналогии с обычными эмиттерами.
5) Для пользователей API редактор теперь позволяет подсчитывать максимальный Bounds Box любого эмиттера. Эта информация может быть использована для принятия решения о необходимости рисования эмиттера в игре в текущий момент.
6) Для пользователей API была добавлена система LOD-ов. LOD позволяет, исходя из расстояния от эмиттера до камеры, автоматически использовать разные виды эмиттера, т.е. вблизи можно рисовать эмиттер высокого качества, а вдали - низкого. Под уровни LOD-ов можно использовать либо тот же самый эмиттер, но с исправленными характеристиками, либо полностью другой эмиттер. Помимо эмиттера можно даже использовать объект типа Картинка, которая позволяет задать обычную анимацию. В LOD-ах также существует понятие "варианты", т.е. API может выбирать случайный вариант из нескольких.
7) Добавлены новые виды Хранилищ: Хранилище частиц-мешей, Хранилище фоновых картинок, Хранилище фоновых мешей, Хранилище текстур для фоновых мешей. Все фоновые объекты теперь всегда будут помещаться в соответствующее хранилище, что позволяет избежать дублирования.
Основное вроде бы перечислил, но в мелочах доработок было просто огромное количество.