×
Меню
Индекс

ACD Phase

Phase задержка, или смещение ко времени от начала анимации контроллера.
Определяет в какой точке цикла в данный момент находится анимация.
Для контроллера в режиме LOOP это означает секунды с начала цикла.
Для контроллеров в режиме CLAMP, это означает время с момента запуска.
The phase should be specified in seconds and is an offset applied to the update time. Время в секундах.
 
Примечание.
Ранее не было замечено особых эффектов от изменения этого параметра.
Необходимо сравнивать два одинаковых контроллера и объекта, дабы явно заметить влияние фазы на смещение запуска анимаций.
Отчего, смена значения и не показывала никакого, явно заметного, результата.
Но благодаря внимательности уважаемого Kurpulio при содействии почтенного Hrnchamdа, удалось окончательно определить пользу от этого параметра.
При этом, как можно заметить, нифскоп, вполне корректно отображает задержку анимаций по фазе.
 
Т.е в случае единичного анимированного объекта в сцене ниф файла, фаза, практически ни как себя не проявляет.
Но вот стоит добавить второй объект и дать в его контроллере смещение на ХХ секунд.
Как оно себя и проявит во всей красе!
Позволяя без лишних проблем создавать постепенный ввод в сцену "новых" объектов.
Т.е. можно использовать объекты с одинаковыми по настройкам контроллерами, но запускать каждый из них последовательно, т.е. с задержкой.
 
Примечание.
В МВ влияет только на это. Т.е. смещение заметное только при наличие двух одинаковых контроллеров в сцене.
Но СкенеВиювер - показывает еще иной вариант поведения!
Если контроллер имеет флаг 12, т.е. когда анимация стартует и после завершения застывает в некоторой позиции.
Вот здесь, фаза и показывает иной поведение!
Позволяя задать интервал времени, через которое произойдет перезапуск анимации.
Т.е. флаг 12 и фаза ХХ ставила поток частиц на паузу, согласно указанному значению.
Но вот в МВ, ничего не происходило.
Ни даже анимационная нода, ни смена режима на INIT, не "заставили" поток частиц перезапускаться.
 
Примечание.
Фаза, влияет на обновление данных анимации в редакторе.
Например, частицы с нулевым значением фазы в своем контроллере, не будут отображены в окне редактора.
Но если установить время в 5800 (к примеру) они начнут отображаться.
Что логично, т.к. фаза здесь определяет активный фрейм со смещением от нуля.
Т.е. если время старта 0.0000 + смещение ХХ = состояние частиц отличное от стартового.
В котором их могло не быть вовсе, или их число было незначительно.
 
Примечание.
Управление фазой средствами 3д МАХ - не известно.
Значение в разделе фазы контроллеров, ниф файлов, появляется если:
- объект был помечен как имеющий анимацию (has animation = bool)
- контроллер установлен в режим LOOP.
Однако, само значение фазы, устанавливается рандомно.
Т.е. при каждом экспорте (не измененной) сцены, оно меняет свое значение.
10041.5996, 9435.5195, 7415.6797 и далее.
Т.е. можно понять условия при которых поле Фазы становится активным, но вот, как указать в нем конкретную задержку, нет данных.
Впрочем, это не особо критично.
Т.к. если фаза действительно нужна, ее можно выставить средствами нифскопа.
 
Примечание.
Не совсем ясно, толи баг какой, толи МВ и ТЕС КС как-то иначе показывают время.
Т.е. если в настройках контроллера указать фазу 3.0000 то по SSG будет 7812.32
И даже если указать 0.30000 будет все те же 7812.
Возможно в редакторе не корректно обновляются данные?
При этом, тесты уважаемого Kurpulio, показывают, что значение фазы 2.5000 = 2.5 секундам и МВ корректно обрабатывает эти данные.
Т.е. в игре происходит задержка анимации одного из контроллеров в сцене на те самые 2.5 секунды.
 
Примечание.
Фаза существует в настройках Анимационной ноды.
И по видимости, ее значение полностью управляется движком.
Т.е. нода, не имеет каких-то дополнительных полей по управлению значением фазы.
Равно попытки прописать значение фазы в экстра свойства ноды - не дали результата.
Т.е. нет данных ни по самой возможности этого, ни по записям которые могли бы на это влиять.
Значение фазы от воздействующего на ноду контроллера - рандомное.
Т.е. если (например) в кейфрейм контроллере воздействующем на эту ноду указать значение фазы, а затем посмотреть, что покажет SSG;
- значение будет меняться. Принимая как абстрактные значение, так и в некоторых случаях, равное указанному в настройках контроллера.
Т.е. фаза "живет" собственной жизнью, но если ее использовать в контроллерах, она будет работать согласно заданному значению.
Greatness7 писал по этому поводу:
Phase Init is global value, not part of any particular nif
the game calculates a random value for it on the first load and that gets assigned to all controllers under the NiBSAnimationNode
 
Примечание.
so i think Phase is only useful when you have multiple repeating animations in 1 nif(С)
Первая система частиц, без задержки.
И вторая система частиц, стартующая на 2.5 секунды позже.
Равным образом, можно применить паузу и на прочие контроллеры (не только на частицы).
При этом, в нифскопе, можно использовать разные флаги анимации и помещать объекты в обычные ноды.
Разве что,
ЛукАт может оказаться не чувствителен к фазе, т.к. использует анимацию другого объекта.
 
Итого!
- некоторое значение в поле "фаза", как в некоторых контроллерах так и в самой анимационной ноде, можно получить при экспорте из МАХа через ТесЭкспортер при соблюдении ряда условий. Также, нет никаких данных, как можно управлять этим значением.
Но каких либо проблем, в игре, за этим не отмечалось.
Т.е. сверх большие значения фазы не вызывают задержек анимаций объектов.
И как показывают текущие наблюдения, влияние фазы, будет заметно только если в сцене есть несколько одинаковых контроллеров использующих фазу.
А само значение фазы ограничивается несколькими секундами!
Т.е. имеет малую задержку 1-20, но не 7500.00
Таким образом, фазу можно нормально использовать для получения эффективной задержки анимации!
 

С одного форума:
What do the "phase" numbers in a "NiParticleSystemController" means?
 
Hrnchamd
Phase is a word for which point in a cycle that is system is currently at. For a controller it means seconds from the start of a loop.
For stuff that isn't looping, it means time since the system started.
-----------------
people don't use 'phase' in controllers often i guess, as you can do same thing with just setting 'start and stop' times
like these 2 controllers do the same:
start: 00:00,  end :00:60 , phase:00:30
start: 00:30,  end :00:60 , phase:00:00
 
Phase can be handy though, for example:
You made a 10 seconds repeating animation, where a plane mesh increasing size from 0 to 1, and decreasing visibility from 1 to 0, in 10 sec.
You make 5 copies of it, in the same nif file.
You set these phase values in the different copies : 00:00, 00:02, 00:04, 00:06, 00:08
With it you end up with a cool effect when planes constantly grow and fade every 2 sec