Doom3.ru





















    •  Главная

  •  Doom3-форум   •  Прислать новости




  •  Doom3-info



  



  •  Doom3: RoE



  



  •  Статьи



  



  •  Quake4



  



  •  Quake Wars



  




Реклама
Franck muller
История бренда franck muller.
www.replica-watches.ru




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

 07.09.2004  02:23  Автор: iMiceman

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

 

         - path_anim: Проиграть определенную анимацию (например, стоять, говорить, бежать, получать боль (или допустим у Импа есть анимация - кушать (в игре он ел толстого зомби))), анимация которую должен проиграть char должна содержаться в параметре "anim";

         - path_attack: Атаковать кого-то, выбираем имя противника в параметре "enemy" и соответственно когда дойдет очередь до выполнения этого path наш подопытный начнет разыскивать и в последствии замочит выбранного врага;

         - path_conversation: Подопытный смотрит на определенный объект и воспроизводит определенный звук (желательно речь). В параметре "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 для управления sentry – маленьким ботом, который ходит за нами охраняет, указывает путь:

 

         - 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 объект, открывающий дверь.

 

         Кажется все, ну а теперь самое главное - как этим пользоваться? Очень просто. Path действуют по типу цепи - мы у нашего подопытного указываем параметр "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 и посмотреть что вы сделали не так.





Другие материалы рубрики:




Комментарии

#1  hurum-burum (-----.rol.ru)   10:43  07.09.2004
Еее, бэби, ее
1ps

Статья очень полезная, спасибо тебе чувак ;).
Ждемс следуйщей)

#2  evillgames (-----.ti.ru)   21:20  07.09.2004
ты уверен шо чела жрал имп

#3  JrKI (-----.mtu-net.ru)   02:33  08.09.2004
Третий нах! :)
Может, пригодится.
А вот такой вопрос - как сделать на движке D3 скроллер а-ля финальная заставка Call Of Duty? Ну-ка раскройте тему.

#4  regenerated (-----.80.106)   17:19  18.09.2004
ты уверен шо чела жрал имп
:-))))))))))))))))
приколист

#5  sanglyb (-----.amur.ru)   13:37  06.11.2004
ваще ты чувак крут я прямо тащюсь по твоим статьям, побольшеб на свете таких как ты, во блин круто бы было!!!!!!!!!

#6  Debil (-----.194.82)   13:52  28.05.2005
Ну блин ты даешь, просто крут нет слов

#7  Garkin13 (-----.col.ru)   13:12  29.05.2005
Забавно...
P.S. Я все твои статьи прочел. Очень пригодилось!!!

#8  Doomer (-----.mtu-net.ru)   22:42  13.06.2005
Крутая статья жду следущей

#9  Cold_Soul (-----.irtel.ru)   12:16  10.10.2005
Классные статьи! ВАЩЕ РУЛЕЗ! Напиши как сделать карту для мульти плэера!

#10  Z (-----.ip-tel.ru)   21:19  31.01.2006
с
?????????

#11  INTARON (-----.volia.net)   16:57  18.01.2010
Народ, у меня такая лага, я хочу чтобы один вооружённый солдат атаковал другого, а тот атаковал в ответ, выставляю всё по инструкции и в итоге карта вылетает... народ - можеть пошагово пояснить как проделать онную операцию, если такое возможно.



Добавить комментарий
Имя - заполнять обязательно

Е-майл

Заголовок

Текст комментария - заполнять обязательно

Введите эти цифры в это поле.






Розовый





















Valuehost.Ru


Яндекс цитированияRambler's Top100Rambler's Top100
DOOM3 is a registered trademark of id'Software
Copyright 2002-2017 © Doom3.ru