Поворот эмиттера

Обсуждение специальной версии Magic Particles (Dev), предназначенной для разработчиков игр.

Поворот эмиттера

Сообщение GadGet » Сб окт 18, 2014 4:44 pm

Подскажите, пожалуйста, как осущестляется поворот эмиттера? (Про кватернио́н мне всё понятно)
При повороте на определённый угол, какая будет траектория точки? Как в редакторе, только под соответствующим углом или траектория перещитается?
Т.е. хотелось бы отрисовать в редакторе выстрел фейерверка вертикально вверх. Выгрузить для API, и воспроизвести API с поворотом на какой-то угол. Траектория выстрела должна быть пересчитана, а раскрытие уже относительно конечного положения точки. Если возможно, как это реализовать в кратце?
GadGet
 
Сообщения: 8
Зарегистрирован: Чт окт 16, 2014 1:53 pm

Re: Поворот эмиттера

Сообщение Odin_KG » Вс окт 19, 2014 11:06 pm

Вращение делается при помощи таймлайна (под сценой есть свойство "Поворот"). В API это свойство доступно через функция Magic_SetEmitterDirection.
Не все эмиттеры в 3D можно повернуть "без искажений", например, текстура на частицах не вращается вместе с эмиттером.
Что касается примера, который вы мне прислали, то он достаточно сложен для разбора - лично я не понимаю, как там и что происходит - он был сделан из 2D и его делал не я. Предлагаю взять пример попроще, так как в том примере много вложений частиц, что сильно путает.
Аватара пользователя
Odin_KG
Administrator
Administrator
 
Сообщения: 841
Зарегистрирован: Чт янв 15, 2009 2:57 pm

Re: Поворот эмиттера

Сообщение GadGet » Пн окт 20, 2014 12:56 am

Меня в данный момент интересует вопрос: есть ли возможность в API наклонить эмиттер, так чтобы вектор силы тяжести остался неизменным. Т.е. продолжал смотреть вниз.
Я попробовал повернуть на угол 90 относительно оси X (поворот через Magic_SetEmitterDirection), а вектор силы тяжести повернулся вместе с эмиттером :( . Соответствено частицы стали падать на в сторону вектора силы тяжести (0,-1,0), а сторону повёрнутого вектора.
GadGet
 
Сообщения: 8
Зарегистрирован: Чт окт 16, 2014 1:53 pm

Re: Поворот эмиттера

Сообщение Odin_KG » Пн окт 20, 2014 11:19 am

Меня в данный момент интересует вопрос: есть ли возможность в API наклонить эмиттер, так чтобы вектор силы тяжести остался неизменным. Т.е. продолжал смотреть вниз.

При вращении гравитация меняет направление.
Но у эмиттера есть "направление" излучения, которое определяет направление излучения в плоскости пола (график "Направление эмиттера, градус"). Вот этот график можно менять через API, тогда эмиттер будет менять направление излучения без изменения гравитации. В справке API.chm работа с графиками описана в разделе "Графики". Нужный график определяется константой MAGIC_DIAGRAM_DIRECTION. Но при помощи этого графика изменяется излучение только в плоскости XZ.
Аватара пользователя
Odin_KG
Administrator
Administrator
 
Сообщения: 841
Зарегистрирован: Чт янв 15, 2009 2:57 pm

Re: Поворот эмиттера

Сообщение GadGet » Пн окт 20, 2014 11:33 am

Odin_KG писал(а):При вращении гравитация меняет направление.
Но у эмиттера есть "направление" излучения, которое определяет направление излучения в плоскости пола (график "Направление эмиттера, градус"). Вот этот график можно менять через API, тогда эмиттер будет менять направление излучения без изменения гравитации. В справке API.chm работа с графиками описана в разделе "Графики". Нужный график определяется константой MAGIC_DIAGRAM_DIRECTION. Но при помощи этого графика изменяется излучение только в плоскости XZ.

Действительно, описанное выше я выяснил опытным путём. И в справке соответствующий раздел нашёл.
На мой взгляд очень странно что при повороте эмиттера поворачивается и вектор гравитации.
Моя цель: отрисовать в Вашем редакторе выстрел фейерверка из мортиры, а через API ствол мортиры наклонить и повернуть. На ваш взгляд на сколько это возможно при помощи Magic API?
Можете ли Вы доработать API, чтобы поворачивался только эмиттер без вектора гравитации (менять графики не хотелось бы программно, да и нужно вращение не одной плоскости). Возможно добавить параметр в функцию?
GadGet
 
Сообщения: 8
Зарегистрирован: Чт окт 16, 2014 1:53 pm

Re: Поворот эмиттера

Сообщение Odin_KG » Пн окт 20, 2014 12:23 pm

На мой взгляд очень странно что при повороте эмиттера поворачивается и вектор гравитации.

Ну, задача была повернуть эмиттер по возможности 1 в 1. Так что с этой точки зрения всё логично.

Моя цель: отрисовать в Вашем редакторе выстрел фейерверка из мортиры, а через API ствол мортиры наклонить и повернуть.

Вы всегда можете использовать для спецэффекта более одного эмиттера. Например, стрельнуть одним эмиттером, а взрыв нарисовать другим. Кроме того, в Magic Particles есть механизм событий, который позволяет узнать про некоторые вещи, происходящие с частицами, например, можно поймать момент уничтожения частицы и в этот момент создать новый эмиттер по её координатам.

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

Хм... ну, всё возможно, но первым делом задам вопросы: "кто просит?" и "а что мне за это будет?". Исправление API под конкретного пользователя дело вообще неблагодарное, так как кому-то нужно так, как работает сейчас. Этот кто-то пока неизвестен, но он появится с претензиями типа "а зачем всё испортили ?". Логика, я надеюсь, понятна.
Аватара пользователя
Odin_KG
Administrator
Administrator
 
Сообщения: 841
Зарегистрирован: Чт янв 15, 2009 2:57 pm

Re: Поворот эмиттера

Сообщение GadGet » Пн окт 20, 2014 12:35 pm

Ну, задача была повернуть эмиттер по возможности 1 в 1. Так что с этой точки зрения всё логично.

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

Уже рассматривал такой вариант. Именно это и нужно, ну всё равно не выйдет. Стрельнуть нужно под определённым углом. Да и раскрытие шара к примеру в форме кольца (направление в момент раскрытия должно зависит от конечного направления точки).
Хм... ну, всё возможно, но первым делом задам вопросы: "кто просит?" и "а что мне за это будет?". Исправление API под конкретного пользователя дело вообще неблагодарное, так как кому-то нужно так, как работает сейчас. Этот кто-то пока неизвестен, но он появится с претензиями типа "а зачем всё испортили ?". Логика, я надеюсь, понятна.

Вопрос резонный. Но данную ситуация не считаю "под конкретного пользователя". Испортить я не прошу, а добавить.
По делу, сейчас стоит вопрос использовать Вашу систему частиц, или создавать свою. И только если удастся покрыть Вашим функционалом спектр задач, будет рассматриваться вопрос приобретения лицензии, дума моя логика тоже понятна.
GadGet
 
Сообщения: 8
Зарегистрирован: Чт окт 16, 2014 1:53 pm

Re: Поворот эмиттера

Сообщение Odin_KG » Пн окт 20, 2014 2:14 pm

И тем не менее, не считаю верным что гравитация поворачивается. Ну да ладно.

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

Да и раскрытие шара к примеру в форме кольца (направление в момент раскрытия должно зависит от конечного направления точки).

К слову говоря, дочерние частицы можно направить относительно направления движения родительских частиц. Этим занимается свойство "Направление частиц относительно направления эмиттера". Свойство активно только для дочерних частиц, которые создаются другими частицами. Для 3D направление по умолчанию считается вертикально вверх, т.е. если у дочерней частицы выбрано такое направление, то она будет двигаться туда же, куда и родительская в момент создания.

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

В принципе, можно добавить галочку "Вращение эмиттера влияет на направление веса" на график с весом. Но заниматься я этим буду не ранее, чем для меня будет очевидно, что вы покупатель, а не просто "пришли поинтересоваться". Т.е. покупаете хотя бы 2 коммерческие 3D лицензии и я займусь данной проблемой в ближайшее время.
Аватара пользователя
Odin_KG
Administrator
Administrator
 
Сообщения: 841
Зарегистрирован: Чт янв 15, 2009 2:57 pm


Вернуться в Magic API

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron