Коллбеки к кадрам анимации - ixray-team/ixray-1.6-stcop GitHub Wiki

Anim Notify

  • Anim Notify - система коллбеков, которые срабатывают при проигрывании анимации. Эта система позволяет привязать действия к конкретной кости модели при проигрывании определённого кадра анимации. Например, если есть анимация чихания для НПС, где он делает это несколько раз. И с помощью anim notify есть возможность привязать на каждый кадр, соответствующий чиху, отдельный коллбек, чтобы на кости рта проигрался звук того, как НПС чихает.
  • Имеется возможность привязать к кадрам анимации следующие действия:
  • Выдача инфопоршня
  • Убирание инфопоршня
  • Вызов Lua функции
  • Проиграть партикл на кости
  • Проиграть звук на кости

Создание коллбека

image Поле с коллбеками представлено в виде дерева с 3 уровнями строк:

  1. Все коллбеки в анимации
  2. Все коллбеки на кости
  3. Группа коллбеков на кости
  • Уровень 3 создан на случай, если необходимо привязать два и более коллбека на одну и ту же кость в одном и том же либо близких кадрах. В то же время, только метки на 3 уровне являются интерактивными.

Добавление коллбека

  1. В AE в окне KeyForm раскрыть поле Notifies и нажать кнопку Add.
  2. В появившемся окне выбрать нужную кость, на которую добавляется коллбеки. Появится отдельная строка с нотифаями, которые относятся к выбранной кости
  3. Раскрыть поле с нужной костью и нажать на кнопку Add. После этого отдельная строка с нотифаями, но которой можно разместить коллбеки.
  • Имеется альтернативная возможность поставить коллбек: в поле проигрывания анимации выставить ползунок на нужный кадр, и нажать кнопку Current keyframe справа от нужной строки.

Удаление коллбека

  • Для того, чтобы убрать коллбек, можно воспользоваться одним из двух действий:
  • Навестись в поле Notify на метку и нажать ПКМ.
  • В поле настройки нажать на кнопку Del.
  • Для того, чтобы убрать строку целиком, нужно нажать кнопку Del соответствующей строки

Очистка кости от коллбеков

  • Для того, чтобы очистить кость от всех коллбеков, нужно нажать на кнопку Remove Bone в поле, соответствующей нужной кости.

Окно настройки коллбека

  • Информацию о коллбеке хранится в отдельном конфиге. Если навестись на нужный коллбек и нажать ЛКМ, то ниже всех строк откроется поле с настройками коллбека. В текстовое поле External ref нужно вписать имя секции, на которую будет ссылаться коллбек в конфигах.

Хранение информации в конфиге

  • При хранении информации в конфиге используется имя коллбека как идентификатор. Можно создавать несколько коллбеков с одинаковым именем
  • Имя коллбека не учитывает регистр. Поэтому, например Callback_Name и callback_name будут одним и тем же именем
  • Нужно в директории gamedata/configs/misc создать папку anim_notify и в нём создать файл со следующей секцией:
[имя_коллбека]
type = тип_коллбека ; доступный варианты `give_info`,`disable_info`,`lua_functor`,`play_sound` или `play_particle`
Info = имя_инфопоршня ; только для типов `give_info` или `disable_info`
Func = имя_файла_скрипта.имя_функции ; только для типа `lua_functor`
particle = путь\до\партикла\имя_партикла ; только для типа `play_particle`
sound = путь\до\звука\имя_звука ; только для типа `play_sound`