
Анимации Arma 3
#21
OFFLINE
Отправлено 15 September 2015 - 11:52
animate используется для анимации объектов: открытие/закрытие двери, вкл/выкл мигалки... а не для анимации людей - используем playMove, switchMove. uiSleep исходя из названия можно понять для чего её лучше использовать, т к анимации зависят от игрового времени то используем либо waitUntil, либо sleep.
#22
OFFLINE
Отправлено 15 September 2015 - 12:27
Там где <animation1phase> вписать первую анимацию, а где <animation2phase> вторую ?
Это фазы анимаций! Названия указываются вместо <animationN>.
Этот скрипт для последовательности включения анимаций?
Это сценарий для зацикливания последовательности анимаций. Если нужна просто последовательность анимаций, то нужно убрать бесконечный цикл или воспользоваться предложением SteelRat.
Благодарю за разъяснение Schatten.
#23
OFFLINE
Отправлено 15 September 2015 - 12:38
vlad333000, верно, виноват. Команда animate используется для объектов и <animationNphase> используются только с этой командой.
А на счёт uiSleep, то эту команду можно использовать везде, где нужна большая точность по сравнению со sleep. И в данном случае её использование вполне уместно, чтобы человек не заметил косяков.
Сообщение отредактировал Schatten: 15 September 2015 - 12:39
#24
OFFLINE
Отправлено 15 September 2015 - 13:17
Сообщение отредактировал vlad333000: 15 September 2015 - 13:22
#25
OFFLINE
Отправлено 15 September 2015 - 13:28
vlad333000, я предпочитаю такое суждение: UI тесно связан с восприятием человека, поэтому там, где оно есть, следует использовать uiSleep. Ну и ладно, что приставка "ui", - в Arma многие команды не совпадают или плохо совпадают с тем, для чего они предназначены.
#26
OFFLINE
Отправлено 15 September 2015 - 13:38
Сообщение отредактировал vlad333000: 15 September 2015 - 13:39
#27
OFFLINE
Отправлено 15 September 2015 - 13:48
vlad333000, да, нисколько не смущает, поскольку меня это не подводило, по крайней мере в сетевой игре.
#28
OFFLINE
Отправлено 15 September 2015 - 13:51
Ну теперь меня запутали))
#29
OFFLINE
#30
OFFLINE
Отправлено 15 September 2015 - 18:34
Господа!
Я так скажу, самое верное решение, это отслеживание завершения проигрывания очередной анимации, 100% гарантия отловить нужный момент, да и эвантхандлер БЕСы не от скуки придумали). А может и от скуки, они же чехи).
_move = "AnimationName"; _unit playMove _move; waitUntil {(animationState _unit) == _move}; // ожидаем инициализации анимации waitUntil {(animationState _unit) != _move}; // ожидаем завершения текущей анимации _move = "AnimationName_2"; _unit playMove _move; waitUntil {(animationState _unit) == _move}; waitUntil {(animationState _unit) != _move}; ...
{ _move = _x; _unit playMove _move; waitUntil {(animationState _unit) == _move}; waitUntil {(animationState _unit) != _move}; } forEach ["AnimationName", "AnimationName_2"];SteelRat, это варианты включения по очереди анимаций? там где ["AnimationName", "AnimationName_2"]; прописать анимации?
Если в первом варианте то нужно здесь вписывать как я понимаю _move = "AnimationName"; и _move = "AnimationName_2";
Извините за тугое понимание)
Это два равнозначных варианта, реализующих одно и тоже, с разницей, если анимаций штук эдак 5, то второй вариант, в коде будет выглядеть лаконичнее. Писанины меньше, в смысле.
Сообщение отредактировал SteelRat: 15 September 2015 - 18:36
#31
OFFLINE
Отправлено 15 September 2015 - 18:44
ЗЫ
И ещё, если используются БЕСовские, ванильные модели юнитов, то проблем предвидеться не должно, при использовании сторонних моделей, настоятельно рекомендую включать в код проигрывания анимаций дебаг таймер, который при форсмажоре тупо прервёт ожидание завершения анимации, модель могут банально сделать криво, не критично, но криво, в результате чего анимация может и не завершиться, бывало и такое.
#32
OFFLINE
Отправлено 15 September 2015 - 18:55
ЗЫ_2
И да, про это
SteelRat, это варианты включения по очереди анимаций? там где ["AnimationName", "AnimationName_2"]; прописать анимации?
А что вам подсказывает ваша логика, Сударь!?
Что бы логике стало легче оперировать абстрактными понятиями, забейте в любимый транслятор это
Animation Name