Ai персонажи

Автор Zmey, 09 марта 2007 19:19:52

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

LongShad

Ну как Dront, время не пришло? Пробовал ковыряться с AI, когда ставил Height = 2, он замирал на месте. Видимо, стражник не попал в зону действия точки патрулирования и от этого "завис".

Неужели никто не делал остановок в маршруте? Или уже никто не помнит?

Zontik

Heigth - высота, на которую распространяется действие маркера. Если он не достает хотя бы до пояса стражника - действовать не будет.
Я обычно ставлю 10 - это беспроигрышный вариант.
Теперь радиус. Поставишь 3 - почти никогда срабатывать не будет. Разве что AI пройдет строго через центр маркера, да еще и на корточках. Что маловероятно. Короче, ставь больше, не жадничай. AI могут существенно отклоняться от линии маршрута.
Ну и главное - правильно выставить приоритет. Absolute - крайне опасная вещь. AI будет выполнять действия, даже будучи оглушенным. Very High - для случаев, когда крайне важно, чтобы действия были выполнены. По тревоге они в этом случае не прерываются. High - более-менее нормально, испуганный стражник выйдет из режима ожидания и начнет охоту. Но... порой может не срабатывать.
Все, что ниже, не рассматриваю, это явно не твой случай.
И последнее. Не забудь добавить Motion Tags к ожиданию (IdleGesture 0), чтобы AI не замирал неподвижным столбом. И учти, что к заданному времени ожидания всегда будет прибавляться время, которое нужно, чтобы завершить начатое движение (а это порой несколько дополнительных секунд).
Дайте глазам отдохнуть! Тёмное место

LongShad

Ну не останавливает он и все. Height больше 2 ставить нельзя - замораживается. 10 - тем более. В остальных случаях проходит сквозь маркер как ни в чем не бывало. Из выполняемых действий стоит:
Responce: Step 1: Wait
Argument 1: 5000

ЦитироватьИ последнее. Не забудь добавить Motion Tags к ожиданию (IdleGesture 0), чтобы AI не замирал неподвижным столбом.
Как это сделать? Впервые это слышу.

Dront

ЦитироватьНу как Dront, время не пришло?
LongShad, я болею. Сейчас более-менее очухался.
Вот параметры, которые стоят у меня в настройках связи AIWatchObj.

(Первый шаг - Face - нужен, если тебе надо, чтоб AI после остановки повернулся в нужную сторону. 376 означает номер объекта, к которому он должен повернуться.)
Во втором шаге IdleGesture 0 - как раз то самое движение, которое нужно воспроизвести.
"You cannot run from life as you did from us, Garrett! Life has a way of finding you..."
"Beware the dawn of the Metal Age."

LongShad

А, понятно. IdleGesture0 надо писать во втором аргументе. А в мануалах о нем ни слова.

Dront

Всегда можно посмотреть, что в какую строчку аргумента писать, в Dromesday Book.
http://dromed.whoopdedo.org/dromed/pseudoscript
"You cannot run from life as you did from us, Garrett! Life has a way of finding you..."
"Beware the dawn of the Metal Age."

Zontik

#51
Так замораживание - это же и был эффект от Wait, не подкрепленного motion tags!
Еще обрати внимание на поле Reuse Delay - эта величина должна быть больше, чем время ожидания + запас на заканчивание движения. Иначе связь сработает второй раз... и AI так и останется замороженным. Reuse Delay - это время, на которое откладывается повторное срабатывание связи, чтобы не перезапускаться постоянно.
А вот Reset Delay я сам до сих пор никак не пойму.
И еще: вместо номеров объектов (к которым нужно повернуться) лучше использовать уникальные имена. Уж они-то точно не изменятся. Кстати, в это поле очень удобно вставить имя несуществующего объекта... например,
Спойлер
Player
[свернуть]
.
В первое поле (над номером/именем объекта) можно вписать угол... но в радианах. Если второе поле при этом не заполнять, то нулевым считается направление... если не ошибаюсь, на юг. А если второе поле при этом заполнено, то угол отсчитывается от направления на указанный объект.
ЦитироватьВсегда можно посмотреть, что в какую строчку аргумента писать, в Dromesday Book.
Или в Dromed 2.
Дайте глазам отдохнуть! Тёмное место

LongShad

А как-нибудь можно исправить ошибку из-за которой при бросании тела на землю обе окружности смещаются в центр тела (на пояс)? Нельзя ли, чтобы они оставались такими же, когда противник был живой? А то бить уже вырубленного противника можно только по поясу.
Не знаю, как насчет Thief 2, но в Gold'е точно такое есть.

LongShad

Кто из нас хорошо разбирается в настройках и поведении ИИ?

clearing


Zontik

Кое-что знаю, кое-что нет. Второго намного больше.
Дайте глазам отдохнуть! Тёмное место

LongShad

#56
Сделал триггер на игрока с помощью связи AIWatchObj. Стражник делает кое-какие действия и идет в точку A. Надо чтобы он там остановился, а он возвращается на исходную.  При этом:
AI > Ability Setting > Idle: Returns to origin = FALSE
С этим разобрался. Насильно поставил еще раз это свойство.

Другой вопрос - у двери нет флага Block Vision. Но ИИ меня замечает только когда откроет дверь. В чем дело?
И еще. AIWatchObj почему-то запускается когда ИИ закончит текущее движение. Мне надо, чтобы запускалось сразу, как только выполнится условие.

И как сделать чтобы ИИ возвращался после расследования на ту точку, где остановился? То есть как ему сделать новую оригинальную точку?
Если никак - то как заставить ИИ идти к маркеру когда он успокоится?

Zontik

ЦитироватьAI > Ability Setting > Idle: Returns to origin = FALSE
С этим разобрался. Насильно поставил еще раз это свойство.
Теперь если он начнет преследовать игрока и не догонит, то остановится там, где закончилось преследование. Выглядит это, как правило, по-дурацки. Поэтому
ЦитироватьИ как сделать чтобы ИИ возвращался после расследования на ту точку, где остановился? То есть как ему сделать новую оригинальную точку?
Закономерный вопрос. Но это опять через S&R - изменение свойств. AI нужно назначить свойство, где напрямую вводятся координаты новой "домашней" точки. Не помню название, но оно какое-то достаточно очевидное. Правда, чтобы назначить это свойство, на уровне должен существовать объект с точно таким же свойством, который используется в качестве шаблона. К счастью, это совсем не обязательно должен быть AI, достаточно простой табуретки, причем стоящей где угодно.
Естественно, свойство "возвращаться в исходную точку" при этом также должно присутствовать, можно изначально.

ЦитироватьДругой вопрос - у двери нет флага Block Vision. Но ИИ меня замечает только когда откроет дверь. В чем дело?
Скорее всего, не выполнил портализацию после снятия флага. Портал должен уничтожиться, чтобы изменения вступили в силу.

ЦитироватьAIWatchObj почему-то запускается когда ИИ закончит текущее движение. Мне надо, чтобы запускалось сразу, как только выполнится условие.
Я не уверен, что это вообще возможно. Попробуй выставить приоритет на Absolute, но если и это не поможет - тогда, скорее всего, никак.
Хотя в принципе AI умеют прерывать движения - например, при получении дубиной по голове. Может, покопать в этом направлении?
Дайте глазам отдохнуть! Тёмное место

LongShad

#58
ЦитироватьСкорее всего, не выполнил портализацию после снятия флага. Портал должен уничтожиться, чтобы изменения вступили в силу.
Нет, с портализацией все в порядке. Тут я заметил, что он меня все-таки замечает через дверь, но очень поздно. Поэкпериментирую еще с освещением и скажу.

Насчет
ЦитироватьAIWatchObj почему-то запускается когда ИИ закончит текущее движение.
Немного помогает св-во Idling: Should fidget = FALSE. ИИ становится менее активным при простаивании и воспроизводит более короткие движения. Но взамен стражник ведет себя как каменная статуя - очень не реалистично.
Не годится.
Никакого приоритета Absolute там нет, можно поставить только требуемые уровни встревоженности (для прерывания действий).

Нашел где хранятся параметры оригинальной точки:
AI > State > Idling: Origin

Еще вопрос - можно ли ИИ с флагом Does Patrol заставить стоять на месте, если рядом есть точки патрулирования? Если заключить след. точку патрулирования указывать на саму себя, ИИ будет топтаться на месте.

Zontik

ЦитироватьНет, с портализацией все в порядке. Тут я заметил, что он меня все-таки замечает через дверь, но очень поздно. Поэкпериментирую еще с освещением и скажу.
Проверь, просачивается ли свет под дверью. Если да, то нужно выровнять координаты, чтобы в точности соответствовали координатам дверного проема.
ЦитироватьНикакого приоритета Absolute там нет
AIWatchObj: Priority - Absolute.
По крайней мере, в DromEd2 так.
ЦитироватьЕще вопрос - можно ли ИИ с флагом Does Patrol заставить стоять на месте, если рядом есть точки патрулирования?
Вообще-то нет. Разве что путем каких-то невероятных ухищрений. Но в этом случае легче будет удалить свойство и вновь его назначить, когда понадобится.
Дайте глазам отдохнуть! Тёмное место