Пятница, 24.11.2017, 22:40
Under sky of Half-Life
Приветствую Вас Гость | RSS
Главная | Продвинутое управление похождениями NPC - Форум USofHL | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Модератор форума: plazmer 
Форум USofHL » Мэппинг в SSDK » Вопросы по мэппингу » Продвинутое управление похождениями NPC
Продвинутое управление похождениями NPC
JOHNДата: Четверг, 23.07.2009, 15:48 | Сообщение # 1
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Блин, неписи задолбали уже. Дрессировке вообще не поддаются.
Помогите кто чем может... smile

Итак, из любой точки карты, любым маршрутом пустить свежесозданного NPC БЕГОМ бежать в определенную точку...:

Задача №1 нападая по пути на всех врагов, а дойдя до пункта назначения бежать атаковать игрока.
Задача №2 игнорируя по пути всех врагов кроме игрока, дальше то же самое.
Задача №3 игнорируя всех включая игрока бежать к цели, а оттуда уже атаковать.

Выглядит вроде просто, но у меня они либо тупят на месте, или не далеко от респауна, либо отвлекаются на всякую фигню, и потом "гуляют", либо бегут к цели мимо меня... Иногда получается то что надо, но закономерности я не уловлю.
У меня вообще большая проблема отправить монстра не за игроком а в другое место.

Интересуют любые способы достижения поставленных задач. Я выберу наиболее удобные.
npc_maker или npc_template_maker, aiscripted_shedule, info_node, info_node_hint, path_track, path_corner, и надеюсь что ai_relationship мне не придется юзать для этих целей, но если надо - заюзаю. Что там еще бывает? smile
Как часто и в каких местах ставить Info_node, или Info_node_hint или что там еще надо, какие кому свойства. Я не вижу логики в их поведении, мне страшно! smile
Также приветствуются ссылки на любые туторы по теме, желательно не даунами писаные. Желательно на русском. Даунами на английском не предлагать :).

Еще интересует как без извращений заставить NPC изображать какую-нить деятельность простую.

 
plazmerДата: Четверг, 23.07.2009, 18:41 | Сообщение # 2
PreAdmin
Группа: Администраторы
Сообщений: 115
Статус: Offline
Пока что отвечу только на альтернативный вопрос:
Quote
как без извращений заставить NPC изображать какую-нить деятельность простую.

На Сорсе без извращений никак нельзя, иначе ты не маппер. smile
Действия делаются при помощи scrpited_sequence, в некоторых местах используется logic_choreographed_scene.
С остальными вопросами - разберемся попозже.


Pl@zmer
 
JOHNДата: Пятница, 24.07.2009, 07:10 | Сообщение # 3
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Очень надеюсь что разберемся. Мне очень надо :).
Значит если я хочу изобразить какую-нибудь ерунду типа хождения взад-вперед, мне надо городить то с чем мы позже разберемся, а если надо допустим как в ХЛ1 чтобы зомбяк труп ковырял, надо ему такую анимацию прописать, или циклическую последовательность анимаций?

Добавлено (24.07.2009, 07:10)
---------------------------------------------
Задача №4 - альтернативные пути упырей. Вот некоторые могут типа по трубе ползать вверх, не будем называть их имя :).
А нельзя ли заставить ползти по трубе в горизонтальном направлении? Оптимально - вниз спиной.

 
monolifeДата: Пятница, 24.07.2009, 09:13 | Сообщение # 4
Admin
Группа: Администраторы
Сообщений: 146
Статус: Offline
Quote (JOHN)
Задача №4

Не уверен, кажется нельзя.. На сколько я помню, Plazmer не мог сделать так, чтобы "упыри" ползли даже по слегка наклонной поверхности..
 
JOHNДата: Пятница, 24.07.2009, 10:42 | Сообщение # 5
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Эх, жаль. Но на остальное надеюсь! smile
 
PollLДата: Пятница, 24.07.2009, 19:26 | Сообщение # 6
Рядовой
Группа: Проверенные
Сообщений: 30
Репутация: 3
Статус: Offline
Ну в общем я уже говорил.. Но повторюсь.. ДЕКОМПИЛИМ "Равенхолм" .. И смотрим .. Там ОЧЕНЬ продвинуто заскриптованы неписи.... biggrin Для начала - КОПИПАСТИМ в пустую мапу какогонить одного зомбака (тоесть или пойнт темплейт и всё что с ним связано или мэйкер какойнить) и проверяем, что всё работает. Потом "препарируем" ... biggrin Иначе вы задолбаетесь "опыты ставить" .. Особенно, если в Английском СтимоПрограммистском Языке не разбираетесь.... Как я например.. wacko

Сообщение отредактировал PollL - Пятница, 24.07.2009, 19:28
 
JOHNДата: Воскресенье, 26.07.2009, 14:26 | Сообщение # 7
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Звучит красиво для того кто не пытался че-нить вытащить. Но там столько наворочено, что и не поймешь почему не заработало.
За совет спасибо огромное, только вот еще бы пояснил как правильно добиваться эффекта.
И действительно надо декомпилить, если он в исходниках есть? Исходники чем-то хуже?

Проще может удалять лишнее в декомпиленном уровне, чем в свой вставлять?

Похоже надо заново играть, и найти место где NPC ведут себя так как мне надо, и с этим местом копаться. Звучит многообещающе...

Добавлено (25.07.2009, 13:37)
---------------------------------------------
Потихоньку заставляю лентяев ходить и бегать куда надо. Но при движении по pahh_track'ам не получилось от последнего pahh_track'а дать аутпут на повторение шедулеру. Точней не срабатывает почему-то.
Уже бегают на заданную ноду, и заданным путем.
Основной проблемой было то, что aiscripted_schedule не работает до первой секунды.

Добавлено (26.07.2009, 14:26)
---------------------------------------------
Это только у меня NPC двери открыть сами не могут? Или для этого надо как-то шаманить?
Для чего тогда у дверей флаг NPCs can't?

 
PollLДата: Понедельник, 27.07.2009, 14:32 | Сообщение # 8
Рядовой
Группа: Проверенные
Сообщений: 30
Репутация: 3
Статус: Offline
Quote (JOHN)
Это только у меня NPC двери открыть сами не могут? Или для этого надо как-то шаманить?
Для чего тогда у дверей флаг NPCs can't?

Самый простой способ поставить перед дверью триггер и им управлять открытием-закрытием двери.. Это конечно не шедевр маппинга - зато не мешает неписям ходить..
 
JOHNДата: Понедельник, 27.07.2009, 15:20 | Сообщение # 9
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Ну я понимаю что так можно, но вопрос изначально таков - они не должны сами двери открывать?
 
BinoclДата: Вторник, 28.07.2009, 04:40 | Сообщение # 10
Рядовой
Группа: Зарегистр. пользователи
Сообщений: 14
Репутация: 1
Статус: Offline
У меня лично они останавливаются перед дверью, она открывается, тут же закрывается, и NPC проходит прямо сквозь нее оО При этом пройти рядом с ним проблематично...
 
plazmerДата: Вторник, 28.07.2009, 13:36 | Сообщение # 11
PreAdmin
Группа: Администраторы
Сообщений: 115
Статус: Offline
JOHN, не должны. Такое ощущение, что эта галка "NPCs can't" осталась еще со времен HL1, потому что там неписи открывали двери сами. В ХЛ2 же надо маленько попариться...

Binocl, пробовал ставить задержку между открытием двери и ее закрытием (забыл, как этот параметр зовется, "Delay before close" что ли...)?


Pl@zmer
 
JOHNДата: Вторник, 28.07.2009, 14:04 | Сообщение # 12
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Это под второй эпизод?
Так получается они никогда не открывали дверей, и всегда это вручную надо было делать?

Тогда другой вопрос, морально-этический :).
Корректно ли чтобы монстры сами открывали двери? Я не про всяких там ситизенов, я про зомби. А то они же типа безумные и все такое. smile

 
plazmerДата: Вторник, 28.07.2009, 20:54 | Сообщение # 13
PreAdmin
Группа: Администраторы
Сообщений: 115
Статус: Offline
JOHN
Quote
Так получается они никогда не открывали дверей, и всегда это вручную надо было делать?

Получается, что да.

Quote
Корректно ли чтобы монстры сами открывали двери? Я не про всяких там ситизенов, я про зомби.

Думаю, зомби не должны открывать - они должны их ломать.


Pl@zmer
 
PollLДата: Вторник, 28.07.2009, 22:37 | Сообщение # 14
Рядовой
Группа: Проверенные
Сообщений: 30
Репутация: 3
Статус: Offline
Quote (plazmer)
Думаю, зомби не должны открывать - они должны их ломать.

Для реализации этого есть одно решение у меня ... Красивое .. Как всякие монстры ВЫБИВАЮТ дверь, которую игрок закрыл перед ихними мордами...
Если желаете - напишу тутор...
 
JOHNДата: Вторник, 28.07.2009, 23:11 | Сообщение # 15
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Желаем! А то я думаю как зомбей с дверью ссорить(npc_bullseye?), и как организовывать ее выбивание. Чтобы на куски разлеталась, или в физику конвертить и физэкспложном пулять...
 
BinoclДата: Среда, 29.07.2009, 06:52 | Сообщение # 16
Рядовой
Группа: Зарегистр. пользователи
Сообщений: 14
Репутация: 1
Статус: Offline
Quote (plazmer)
Binocl, пробовал ставить задержку между открытием двери и ее закрытием (забыл, как этот параметр зовется, "Delay before close" что ли...)?

Дело не в ней... Я не помню, то ли она сразу закрывается, то ли он идет, когда она уже закрывается...

Quote (PollL)
Для реализации этого есть одно решение у меня ... Красивое .. Как всякие монстры ВЫБИВАЮТ дверь, которую игрок закрыл перед ихними мордами...

Смотри на Гражданской Обороне, эп5 smile А вообще, делай прямо в двери функ_брейкабл, тип материала, спавн он брейк он, укажи его в поинт_темплит, спавно он брейк>доор килл, и все будет ок wink
 
PollLДата: Среда, 29.07.2009, 17:17 | Сообщение # 17
Рядовой
Группа: Проверенные
Сообщений: 30
Репутация: 3
Статус: Offline
Quote (Binocl)
А вообще, делай прямо в двери функ_брейкабл, тип материала, спавн он брейк он, укажи его в поинт_темплит, спавно он брейк>доор килл, и все будет ок

Не всё так просто как ты тут в теории расписал.. Я так тоже думал, пока делать это не стал...
Джоныч, тутор один писать (про выбивание) или два (про РАЗБИВАНИЕ тоже) ??? Там немного по разному сделано.. Причём разбивание тоже можно по разному сделать. Или фанк_брикеблю или физбокс с Gibs моделями.. А то не охота Романы писать..
 
JOHNДата: Среда, 29.07.2009, 19:21 | Сообщение # 18
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Ну лучше все расписать.
Напиши коротко, только так чтобы я понял :). А я если хочешь попробую разжевать когда сам пойму.
А то я в теории тоже представляю, но и гемор представляю возможный тоже. Если у тебя получалось красиво, то обязательно давай забабахаем тутор.
Сильно много получится?
 
PollLДата: Среда, 29.07.2009, 19:33 | Сообщение # 19
Рядовой
Группа: Проверенные
Сообщений: 30
Репутация: 3
Статус: Offline
9 энтитей (не считая непись) но вместе со звуками.. Попробую описать хотя-бы вариант с выбиваемой дверью..
 
JOHNДата: Среда, 29.07.2009, 20:00 | Сообщение # 20
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Давай уже создавай новую тему типа "Тутор - зомби вышибает дверь", очень жду :).
 
BinoclДата: Понедельник, 03.08.2009, 00:52 | Сообщение # 21
Рядовой
Группа: Зарегистр. пользователи
Сообщений: 14
Репутация: 1
Статус: Offline
Мне кажется вполне премлемо будет разделить дверь на несколько кусочков - физбоксов, так будет естественней...
 
JOHNДата: Понедельник, 03.08.2009, 04:04 | Сообщение # 22
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Ага, посмотрел бы я на это :). Куча физбоксов относительно правильной формы от удара зомби осыпается на пол :).
 
PollLДата: Понедельник, 03.08.2009, 15:11 | Сообщение # 23
Рядовой
Группа: Проверенные
Сообщений: 30
Репутация: 3
Статус: Offline
Quote (JOHN)
Куча физбоксов относительно правильной формы от удара зомби осыпается на пол

Так - непрофессионально делать..
А вообще - при ударе по двери, хошь зомбями - хошь чем, она НЕ ДОЛЖНА разлетаться на куски .. Треснуть - да .. Вывалится - да.. Именно поэтому Вальвовцы в Л4Д сделали модель двери с анимацией пробивания ДЫРКИ в ней..
Чёта времени для написания тутора никак не найду..
Могу просто выложить исходник, если кому это надо.. "Зомбак выбивающий дверь" ...
 
JOHNДата: Понедельник, 03.08.2009, 20:50 | Сообщение # 24
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Давай выкладывай. Может я напишу :).
 
PollLДата: Понедельник, 03.08.2009, 21:14 | Сообщение # 25
Рядовой
Группа: Проверенные
Сообщений: 30
Репутация: 3
Статус: Offline
Типа вот.. Будут вопросы - пиши в Асю...
Прикрепления: move_npc_door.rar(6Kb)
 
JOHNДата: Понедельник, 03.08.2009, 22:48 | Сообщение # 26
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Большое спасибо, изучил, переделал много. Упростил :). Думаю в отдельной теме его обсуждать.
 
LexxoRДата: Вторник, 04.08.2009, 04:01 | Сообщение # 27
Рядовой
Группа: Проверенные
Сообщений: 41
Репутация: 2
Статус: Offline
JOHN - привет, давно не виделись smile
Собственно, ответы на твои вопросы из первого поста - если ещё конечно актуально:
Quote
нападая по пути на всех врагов, а дойдя до пункта назначения бежать атаковать игрока.

Создаём монстряка, настраиваем его (имя должно быть вида "имя_номер", обязательное условие, типа "fedor_1"), создаём рядом энтайти: Logic_relay, point_template, ai_goal_assault, assault_rallypoint - ставим под ноги монстряку - непись должен быть на том месте, откуда он заспаунится и побежит ловить фарш. ставим ещё одну энтайти - assault_assaultpoint, её располагаем на финише забега.
Настраиваем это всё:
1)называем logic_relay допустим "start_kamasutra" - при воздействии на этот релей через команду "trigger" он будет активировать весь этот скрипт штурма (assault). называем point_template например "kamasutra_spawn" - эта энтайти спаунит много чего (неписи, физические штучки-дрючки и т.д.), нажимаем на пункт "Template 1" и сбоку выбираем в списке нашего монстряка - его она и заспаунит (ахтунг: в настройках непися НЕ нужно отмечать template_npc - это нужно только для темплейт_мэйкеров), ai_goal_assault назваем например "start_assault" - она и даст команду неписям бежать по нужной тропинке и стрелять одновременно. assault_rallypoint - ахтунг №2 - нужно называть по такому шаблону "название_номер" - например "assault_rallypoint_1" - т.е. номер обязательно должен быть в конце. assault_assaultpoint - называем по тому же шаблону, что и раллипоинт - к примеру "assault_assaultpoint_1".
2) в аутпутах лоджик_релея прописываем:
OnTrigger - kamasutra_spawn - ForceSpawn - 0.00 // спауним мостряка
OnTrigger - start_assault - Activate - 0.10 // хз что за активация, но у вальв именно так, и это работает - значит, так делаем и мы ГЫГЫГЫГЫ (возможно, идёт подготовка неписей - выбирается ближайший раллипоинт к каждому отдельному неписю)
OnTrigger - start_assault - BeginAssault - 0.20 // пошла жара!

настраиваем ai_goal_assault:
в поле "actors to affect" - вписываем "fedor_*"
в поле "rally point set" прописываем "assault_rallypoint_*" - оно будет выделено красным, но нэ волнуйтэсь, всё идёт по плану, мой добрый капитань!
остальное не нужно.

далее, идём в assault_rallypoint и там в строке "assault point" прописываем имя точки назначения - assault_assaultpoint_1

3) ставим какой-нить trigger_once и там прописываем
OnTrigger - start_kamasutra - Trigger

Вот и всё! Нужно всего лишь 3 шага чтобы неписи научились стрелять на бегу.

Quote
игнорируя по пути всех врагов кроме игрока, дальше то же самое

Хотелось бы знать ещё условия - будет ли перемещаться в это время игрок и т.д. ну а так проще всего - скриптед_сиквенс и там галочки есть вроде "приоритетный скрипт" и "дизайбл аи" - вот это их и заставить нестись к сиквенсу как наркомана к дозе.

Quote
игнорируя всех включая игрока бежать к цели, а оттуда уже атаковать

а здесь уже со 100% вероятностью рекомундую скриптед_сиквенс
 
PollLДата: Вторник, 04.08.2009, 13:34 | Сообщение # 28
Рядовой
Группа: Проверенные
Сообщений: 30
Репутация: 3
Статус: Offline
Quote (JOHN)
Большое спасибо, изучил, переделал много. Упростил :)

А вот упрощать там не надо.. Там ещё усложнить надо.. Что-б всё нормально работало..
Ты попробуй ОТКРЫТЬ дверь, когда ты внутри.. Она не откроестя.. А это не есть гуд..
Я вообще не пойму что там можно упростить ...
 
JOHNДата: Вторник, 04.08.2009, 18:29 | Сообщение # 29
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Могу дать исходник. Я его с тех пор правда действительно усложнил.
Дверь когда я внутри - открывалалась, но я ее принудительно закрыл. Ибо если респаунить bullseye постоянно, то можно стоять внутри и хлопать дверью, а зомби его так и не убьет. Но если нужно выбегать после закрытия двери и ударов по ней зомбика, то можно на это забить, или решить хитрым способом(описано далее).
Если у тебя конкретная потребность есть, ты скажи, я может сделаю.
Есть еще два варианта решения этой проблемы - уносить bullseye вверх чтобы не мешал пройти, либо телепортировать его.
Все эти извращения чтобы его жизнь не обновлялась при респауне.
Можно конечно на его жизнь забить, и сделать третий math_counter который будет не по повреждениям дверь вышибать, а по ударам bullseye.
Но тогда при массовой атаке монстров будет не важно то ли зобми его ударит N раз, то ли краб, то ли попадет N ракет...
 
PollLДата: Вторник, 04.08.2009, 22:04 | Сообщение # 30
Рядовой
Группа: Проверенные
Сообщений: 30
Репутация: 3
Статус: Offline
Спасибо, мне ничего особо там уже не надо..
 
Форум USofHL » Мэппинг в SSDK » Вопросы по мэппингу » Продвинутое управление похождениями NPC
Страница 1 из 212»
Поиск:

© 2017, MonoLife   Сайт создан в системе uCoz