DOOMCENTER.RU - Сайт о Doom и Quake
 DOOMCENTER.RU
 Главная | Новости
 Архив новостей
 О проекте
 Ссылки
 Форум
 
 Doom 3
 Обзоры
 Коды Doom 3
 Враги (бестиарий)
 Оружие
 Секреты
 Прохождение
 Статьи о Doom 3
 
 Моды Doom 3
 В разработке
 Новые уровни
 Маппинг
 
 Doom 3: RoE
 Новые уровни
 
 Doom 2
 Об игре
 Руководство
 Предыстория
 Монстры
 Оружие
 Скрины
 
 Doom
 Об игре
 Предыстория
 Монстры
 Оружие
 Скрины
 





Форум о Doom 3

 Добавить в "Избранное"

Quake 4

 Обзоры
 Чит-коды
 Скрины
 

Quake 3

 Обзоры
 Чит-коды
 Скрины
 

Quake 2

 Скрины
 Чит-коды
 

Quake

 Чит-коды
 Скрины
 

Разное

Архив новостей

 2009 год
 2008 год
 2007 год
 2006 год
 2005 год
 2004 год
 


 

 


Учим NPC нормально ходить




 Автор руководства: iMiceman



 На этот раз я вам поведаю, как работать с path_* или путями, тобиш мы будем учить людей/монстров ходить по определенному маршруту. Для этого нам понадобится создать простую карту типа BOX и поместить в нее любой character (можно и монстра, но некоторые из них ограничены - не могут прыгать и смотреть на объекты, говорить и т.п.).
Я вставил в свою карту MOUSE2/char/char_campbell и планирую над ним слегка поиздеваться, дело в том, что с помощью path мы можем заставить нашего подопытного кролика делать следующие вещи (тобиш описываю типы path):

 - path_anim: Проиграть определенную анимацию (например, стоять, говорить, бежать, получать боль (или допустим у Импа есть анимация - кушать (в игре он ел толстого зомби))), анимация которую должен проиграть char должна содержаться в параметре "anim";
 - path_attack: Атаковать кого-то, выбираем имя противника в параметре "enemy" и соответственно когда дойдет очередь до выполнения этого path наш подопытный начнет разыскивать и в последствии замочит выбранного врага;
 - path_conversation: Подопытный смотрит на определенный объект и воспроизводит определенный звук (желательно речь :D), в параметре "snd_dialog" выставляем имя звука с диалогом, в параметре "focus" пишем имя entity на кого пялиться;
 - path_conversation_listen: Наш подопытный будет смотреть на определенный entity, который воспроизводит речь и будет ждать пока он закончит, в параметре "focus" пишем имя того кого мы собственно внимательно слушаем, интересная вещь - мы можем выбрать анимацию (параметром "anim"), которую мы будем воспроизводить пока слушаем entity, тобиш мы например можем вписать анимацию боли и получиться что нас колбасит от разговора с кем-то :);
 - path_corner: Самый нужный path, именно к нему мы будем идти. Из цепи таких path мы можем сделать путь, по которому будет идти наш подопытный (очень полезно при создании сингл карт - делаем, чтоб реалистично топтались NPC, а не в тупую стояли как вкопанные);
 - path_cycleanim: Тоже самое, что и path_anim но только анимация будет проигрываться бесконечно, и прекращаться по истечении определенного количества времени (параметр "wait"), или до тех пор пока не обратиться к нему триггер;
 - path_default: Недоразумение в мире path, любое его использование приводит к ошибке;
 - path_headanim: Проигрывает анимацию головы во время ходьбы (например, наш подопытный с кем-то говорит на ходу);
 - path_hide: Скрывает нашего подопытного (например, он проделает определенные действия по path и уже не нужен - тобиш будет скрыт, а если и понадобится, то триггером можно его обратно проявить, или path_show);
 - path_jump: Прыгает к следующему path (тобиш тому, кто позначен в параметре "target");
 - path_lookat: Смотрит на определенный entity (параметром "focus"), выставленное количество времени (параметром "wait"), или пока к нему не обратится триггер;
 - path_show: Проявляет нашего подопытного (например, если он был скрыт path_hide или имел параметр "hide" - "1");
 - path_talk: Заставляет подопытного поговорить с нами;
 - path_talk_primary: Заставляет подопытного сказать нам его главную анимацию речи;
 - path_talk_secondary: Заставляет подопытного сказать нам его второстепенную анимацию речи;
 - path_talk_triggered: Заставляет подопытного сказать нам его затриггеренную анимацию речи;
 - path_turn: Поворачивает подопытного на определенный угол (параметр "angle");
 - path_wait: Просто определенное количество времени простоять без действия (параметр "wait");
 - path_waitforheadanim: Ждать анимации головы после использования path_headanim, параметром "focus" указываем на кого смотрим;
 - path_waitfortrigger: Ждать обращения триггера к подопытному, после обращения триггера продолжит свой путь по path;
 

 Также существует отдельный ряд path для управления setry (такой чупик - за нами ходит, охраняет, указывает путь):

 - path_sentry_ignore_player: Перестает следовать за игроком и идет на свой следующий path;
 - path_sentry_lead_player: Начинает следовать за игроком и идет на свой следующий path
 - path_sentry_light_off: Выключает фонарик;
 - path_sentry_light_on: Включает фонарик;
 - path_sentry_shutdown: Завершить работу, до следующей активации триггером;
 - path_sentry_unlock_door: Подходит к данному path и воспроизводит анимацию открытия двери, в параметре "trigger" нужно выставить target_lock объект, открывающий дверь.
 

Кажись все, ну а теперь самое главное - как ими пользоваться?

Очень просто. Они действуют по типу цепи - мы у нашего подопытного указываем параметр "target" и в его значении пишем имя первого path нашей цепи, потом указываем параметр "target" уже у нашего первого path и в значении указываем имя следующего и так далее до посинения, можно также поставить в loop, выставив в параметре "target" последнего path имя первого path, ошибки не будет.
Теперь об ошибках - они будут и в больших количествах, если наш подопытный не может сделать определенный вид действия, например, прыгать, говорить, практически все могут выполнить path_corner.
И на последок разберемся с еще одной вещью - у каждого типа path есть свои немаловажные подпараметры (как, например, сила в path_jump) и их нужно обязательно выставить (если они нужны), во избежание глюков, также хочу сказать что есть несколько общих параметров у всех path (параметр - описание):

 skip - пропустить данный path и перейти к следующему, если к подопытному заговорят или будет услышан выстрел;
 no_talk - не разрешать говорить с подопытным пока не закончит делать path действие;
 no_cower - не разрешать NPC прикрываться как девчонка когда будет услышан выстрел;
 trigger - объект, который нужно затриггерить когда будет закончено path действие;
 target - имя следующего path из цепи.

Также хочу сказать, что у любого character есть параметр "wander", если его активировать, то он будет посещать path случайно. Все, думаю более подробно освещать тему path не нужно, поскольку все и так понятно. Если что-то не получается то вы можете всегда скачать мою тестовую карту с path и посмотреть что вы сделали не так: test_path.rar






 
 
Rambler's Top100 liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня Рейтинг@Mail.ru