00037. Анимация. Основные команды и примеры их использования

Анимация. Основные команды и примеры их использования|Мы продолжаем изучать скриптинг. Этот урок посвящен анимациям. Мы научимся основным командам для проигрывания анимаций а так-же сделаем третью миссию с использованием анимацией.|wmysterio|wmysterio||||Если вы не читали урок о GTA Animation Manager, то советую прочитать руководство к этой программе.

Для начала научимся загружать анимации. Сделать это можно командой:

04ED: load_animation "LOWRIDER"

Здесь: "LOWRIDER" — название ifp-файла ( см. рисунок ниже )

После этого нам обязательно нужно проверить: "загружена ли она?". Эта проверка осуществляется опкодом:

04EE: animation "LOWRIDER" loaded

После загрузки можно использовать анимации, что содержаться в ifp-файлах ( см. рисунок ниже ):

Теперь, что бы какой то актёр проиграл эту анимацию, нужно использовать опкод:

0605: actor 0@ perform_animation "M_SMKLEAN_LOOP" IFP "LOWRIDER" framedelta 4.0 loop 0 lockX 0 lockY 0 lockF 0 time 670

Здесь: 0@ — Имя переменной для актёра "prtial_gngtlkB" — название анимации "LOWRIDER" — название IFP-файла 4.0 и 0 0 0 0 — оставляйте так, далее мы детально изучим эти параметры 670 — время воспроизведения. Если поставить больше, то анимация будет повторяться. Длина любой анимации на рисунку выше выделено зелёным цветом

Если мы загрузили анимацию, то естественно нам её нужно выгрузить с памяти когда она не нужна. Делается это опкодом:

04EF: release_animation "LOWRIDER"

Рассмотрим анимации, которые НЕ нужно загружать и НЕ нужно выгружать. Это анимации "PED.IFP", так как она загружается вместе с игрой и постоянно используется:

Рассмотрим другую анимацию - анимация телефона ( когда СЖ достаёт или прячет телефон ). Что бы актёр доставал телефон, используйте опкод:

0729: AS_actor $PLAYER_ACTOR hold_cellphone 1

Здесь: $PLAYER_ACTOR - имя переменной актёра 1 - достать телефон, 0 - спрятать

После этого опкода обычно делают задержку в 2000 милисекунд, чтобы актёр окончательно взял телефон и приложил его к уху, или спрятал его в карман.

× **Примечание:** Сначала нужно загрузить модель телефона #CELLPHONE, иначе актёр приставит к уху только свою руку ;)

Так же актёра можно заставить говорить:

Здесь: 0@ - хендл актёра 4000 - время, сколько нужно шевелить губами

И опкод, который заставляет прекратить актёра шевелить губами:

Есть ещё похожий опкод, который заставляет актёра шевелить губами, но это имеет вид больше жевания, нежели разговора:

Так же актёров можно заставить сидеть. Делается это опкодом:

Здесь: 41@ - имя переменной для актёра 4000 - указывается время, то есть сколько времени должен сидеть актёр

Так же актёра можно заставить прыгать:

Здесь: 1@ - имя переменной для актёра 1 - стиль прыжка. Так и оставляйте единицу, так как разницы между стилями не заметил

Что бы заставить актёра присесть, используйте опкод:

Здесь: 65@ - имя переменной для актёра 1 - заставляет актёра присесть, если поставить 0 - то заставляет актёра встать

Существует ещё проверка на приседание актёра:

Так же есть полезная проверка на выполнение актёром какой-то анимации:

Здесь: 2@ - хэндл актёра "LRGIRL_IDLE_TO_L0" - имя анимации ( не IFP )

Вот мы рассмотрели основные команды для работы с анимациями. Давайте теперь напишем миссию и сделаем ролик, в котором СЖ-ю звонят, он берет трубку и ему сообщают, что возле Гроув есть Баллас и его нужно убить:

Неплохо вышло, только камера во втором ролике не совсем корректно стоит. Ваша задача - сделать её нормальной :)|1294|1|0|15513934png731445400243``\|77197739png729445400244\|84390702`png`478`127`400`106||animacija_osnovnye_komandy_i_primery_ikh_ispolzovanija|1498919369

Last updated

Was this helpful?