Перейти к содержимому


Фотография

Анимации Arma 3


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 31

#21 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 15 September 2015 - 11:52

Shatten, причем тут animate и uiSleep?
animate используется для анимации объектов: открытие/закрытие двери, вкл/выкл мигалки... а не для анимации людей - используем playMove, switchMove. uiSleep исходя из названия можно понять для чего её лучше использовать, т к анимации зависят от игрового времени то используем либо waitUntil, либо sleep.
  • 0

#22 OFFLINE   specops

specops

    Рядовой

  • Пользователи
  • 12 сообщений
  • Откуда:Россия

Отправлено 15 September 2015 - 12:27

 

Там где <animation1phase> вписать первую анимацию, а где <animation2phase> вторую ?

Это фазы анимаций! Названия указываются вместо <animationN>.
 

Этот скрипт для последовательности включения анимаций?

Это сценарий для зацикливания последовательности анимаций. Если нужна просто последовательность анимаций, то нужно убрать бесконечный цикл или воспользоваться предложением SteelRat.

 

Благодарю за разъяснение Schatten.


  • 0

#23 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1794 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 15 September 2015 - 12:38

vlad333000, верно, виноват. Команда animate используется для объектов и <animationNphase> используются только с этой командой.

А на счёт uiSleep, то эту команду можно использовать везде, где нужна большая точность по сравнению со sleep. И в данном случае её использование вполне уместно, чтобы человек не заметил косяков.


Сообщение отредактировал Schatten: 15 September 2015 - 12:39

  • 0

#24 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 15 September 2015 - 13:17

В СП нажимает + или стопорим (ESC) или фризим игру и видим что ваше uiSleep криво работает т к оно использует системное время, а не время симулируемое в игре от которого и зависит анимация, поэтому uiSleep и используют только в GUI и называется с приставкой ui

Сообщение отредактировал vlad333000: 15 September 2015 - 13:22

  • 0

#25 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1794 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 15 September 2015 - 13:28

vlad333000, я предпочитаю такое суждение: UI тесно связан с восприятием человека, поэтому там, где оно есть, следует использовать uiSleep. Ну и ладно, что приставка "ui", - в Arma многие команды не совпадают или плохо совпадают с тем, для чего они предназначены.


  • 0

#26 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 15 September 2015 - 13:38

Тоесть вас не смущает что решение воспроизведения анимации основанное на uiSleep будет далеко не универсальным? Что то, что вы напишите будет работать только в "идеальных" условиях? Поэтому использование uiSleep в анимациями не уместно от слова вообще

Сообщение отредактировал vlad333000: 15 September 2015 - 13:39

  • 0

#27 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1794 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 15 September 2015 - 13:48

vlad333000, да, нисколько не смущает, поскольку меня это не подводило, по крайней мере в сетевой игре.


  • 0

#28 OFFLINE   specops

specops

    Рядовой

  • Пользователи
  • 12 сообщений
  • Откуда:Россия

Отправлено 15 September 2015 - 13:51

Ну теперь меня запутали))


  • 0

#29 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1794 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 15 September 2015 - 13:58

specops, http://arma3.ru/foru...a-3/#entry54165.


  • 0

#30 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 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

  • 0

#31 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 15 September 2015 - 18:44

ЗЫ

И ещё, если используются БЕСовские, ванильные модели юнитов, то проблем предвидеться не должно, при использовании сторонних моделей, настоятельно рекомендую включать в код проигрывания анимаций дебаг таймер, который при форсмажоре тупо прервёт ожидание завершения анимации, модель могут банально сделать криво, не критично, но криво, в результате чего анимация может и не завершиться, бывало и такое.


  • 0

#32 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 15 September 2015 - 18:55

ЗЫ_2

И да, про это

 

SteelRat, это варианты включения по очереди анимаций? там где ["AnimationName", "AnimationName_2"]; прописать анимации?

 

А что вам подсказывает ваша логика, Сударь!?

Что бы логике стало легче оперировать абстрактными понятиями, забейте в любимый транслятор это

Animation Name

  • 0




Яндекс.Метрика