Как можно заставить персонажа, допустим стражника преодолевать преграды. В смысле если сделать ступеньку выше нужного, то Ai уже не может залесть на неё и двигаться дальше! Может настройки в Дромеде какие нибудь есть? :confused: Просто хочу вредных персонажей сделать, чтоб Гарретту было не такто легко от них избавиться! :devil:
[Исправлено: zmey, 9 марта 2007 19:21]
zmey, полазь в свойствах Fire Elemental'а.
Попробуй не персонаже AI>AI Core>AI Needs Big Doors и через меню Editors>Gamesys Parameters...>AI Creature Sizes.
Winter Cat Я имел в виду про пересечение высоких ступенек тоесть Brush "Кистей" Сейчас в огненном элементале поруюсь!
zmey Так я понял что ты про Brush-ы. Эти свойства вроде бы могут сделать то что ты хочешь. Элементаль тебе не поможет, он летает, а не ходит.
ЦитироватьWinter Cat написал(а) 9 марта 2007 19:49
Editors>Gamesys Parameters...>AI Creature Sizes.
А это заставит улутчить всех Ai на уровне а мне надо только некоторых! ;) Сейчас всетаки у элементала посмотрю, я всеравно
призрака а не человека улутчаю!
Winter Cat, они не летают. Они всё равно "опираются о землю", но степень преодоления препятствий у них выше, именно это и создает иллюзию полета.
Например, был случай, когда я вылез на стену площади, FE меня увидел и вместо того, чтобы подлететь впямо ко мне, полетел в обход по тому пути, как если бы он бежал по земле. В конце концов он подлетел ко мне с той стороны, с которой я пришел.
FE ходят так же как все остальные AI, просто выше.
Force Спасибо за уточнение, я был полностью уверен что они летают, а оказывается я забыл про movement: Z offset.
zmey Editors>Gamesys Parameters...>AI Creature Sizes применяется только к тем персонажам у которых отмечено свойство
AI>AI Core>AI Needs Big Doors.
Winter Cat Спасибо за подсказку! ;)
Добавлено позже
Проверил всё работает но к сожалению не на большую высоту!
Примерно в пол роста Гарретта Ai уже не забратся! :(
Пробовал увеличивать "Height" на 20.00 всеравно незалезают! :confused:
Добавлено позже
Скорее всего там существует некий предел высоты!
Добавлено позже
Поставил свойство для Ai "в свойствах пропорции Ai> Ability Settings> investigation: Style; Don't investigate"
После чего вошол в уровень, за мной погнался зомби, гнался до тех пор пока я не вышел из его поле зрения, затем зомби потерял меня и даже не искавши ушол в обратном направлении! :lol: Короче с этим свойством Ai не ведут поиск игрока! ;)
[Исправлено: zmey, 10 марта 2007 16:01]
zmeyОпиши пожалуйста поконкретней как AI себя ведёт. Когда Гарретт на высокой ступеньке он бежит и упирается в стенку или он стоит так будто знает что не может достать Гарретта?
Winter Cat Он стоит и знает что точно не может достать Гарретта!
zmey
Compute Pathfinding Database нажать не забываешь?
Если не помогает попробуй изменить размер модели AI Meshscale-ом (http://www.angelfire.com/games4/shadowspawn/meshscale.zip).
ЦитироватьWinter Cat написал(а) 10 марта 2007 18:16
zmey
Compute Pathfinding Database нажать не забываешь?
Если не помогает попробуй изменить размер модели AI Meshscale-ом (http://www.angelfire.com/games4/shadowspawn/meshscale.zip).
Конечно незабываю, а вот если изменить размер моделей то это уже как-то неинтересно получается! Ладно сенкс за помощь как нибудь разберусь! :cool:
zmey, а если Fire Elemental потестить? ну, к примеру, изменить его модель на другую, а свойства те же оставить. Так можно? Кстати, проверь, на какую высоту он сможет забираться, вдруг выше?
Force Попробовал, вообще прикольно получается, поменял свойство модели огненного элемента на хаммерита появилось нечто смятое как скомканая бумага с головой хаммерита и торчащим молотом из уха парит также как огненный элемент к томуже еще и горит!:lol: :lol: :lol:! затем я поставил свойство Creature Type>Humanoid Наконец появился хаммерит но он уже не парил в воздухе а ходил как обычное приведение, выпускал из руки огненные шары и приэтом всё еще горел!
Да, горящий летающий скомканный хаммерит - это тема... :yes::lol:
Кстати попробовал вместо модели элемента сделать лорда древа!
Короче получилась корящая рогатая голова с хвостом! Это нечто похоже на небольшого дракона! только надо незабывать при этом в свойстве Tweg> ModeslState NONE ставить!
Кстати, тут (http://www.3dactionplanet.com/thief/archives/metaldemos.asp) есть demo, которых нет на Круге или у Комага или на thiefmissions, например Jump и ещё вроде.
AI перепрыгивают яму:
(http://darkfate.ru/files/clearing/thumbnails/jump1.jpg) (http://darkfate.ru/files/clearing/jump1.jpg) (http://darkfate.ru/files/clearing/thumbnails/jump2.jpg) (http://darkfate.ru/files/clearing/jump2.jpg)
Я эту дему видел, там просто в определённых точках AI делают прыжковое движение, но сделать так чтобы AI могли любые ямы перепрыгивать без скриптов, маркеров и триггеров не выйдет. Для этого нужно как минимум переписать систему pathfinding database, тоесть пока исходников нету, это только мечта. Даже когда прыгают пауки это не действие, а движение. Заметьте что в том же Thief3 ямы AI не умеет перепрыгивать, видимо не так легко это сделать даже на современном движке.
Кто нибудь знает? можно-ли сделать так чтобы при попадании в стражника стрелой она торчала в нём! :confused:
Такое вообще возможно?
[Исправлено: zmey, 23 марта 2007 13:00]
ЦитироватьТакое вообще возможно?
Нет.
Цитироватьzmey написал(а) 23 марта 2007 13:00
Кто нибудь знает? можно-ли сделать так чтобы при попадании в стражника стрелой она торчала в нём! :confused:
Такое вообще возможно?
[Исправлено: zmey, 23 марта 2007 13:00]
Возможно, если стражник деревянный.:lol:
В одной FM есть стражник с торчащей в нем стрелой. Он, правда, уже мертвый... но все равно ходит. И даже может тебя убить. Но засадить в него вторую стрелу уже не получится.
А когда его убиваешь, он исчезает с дымом как apparition. Это с хорошим рейтингом за атмосферу заброшенного места FM-ка Curse of The Ancients.
ЦитироватьВ одной FM есть стражник с торчащей в нем стрелой.
В Haddur-е, с AI пронизанным стрелами, дерешся.
http://darkfate.ru/index.cgi?thumbs=files/fan-missions/Thief2/Haddur/Haddur/screenshots/dump025
ЦитироватьЭто с хорошим рейтингом за атмосферу заброшенного места FM-ка Curse of The Ancients.
Точно-точно! Уж на что я не люблю Undead-миссии, а эту прошел с удовольствием. В общем, стрела в стражнике - это не ново, но это здорово.
Цитироватьclearing написал(а) 13 марта 2007 16:58
Кстати, тут (http://www.3dactionplanet.com/thief/archives/metaldemos.asp) есть demo, которых нет на Круге или у Комага или на thiefmissions, например Jump и ещё вроде.
AI перепрыгивают яму:
(http://darkfate.ru/files/clearing/thumbnails/jump1.jpg) (http://darkfate.ru/files/clearing/jump1.jpg) (http://darkfate.ru/files/clearing/thumbnails/jump2.jpg) (http://darkfate.ru/files/clearing/jump2.jpg)
А это из какой демо?
http://img252.imageshack.us/img252/7606/11my0.jpg
http://img187.imageshack.us/img187/2940/12zs9.jpg
http://img93.imageshack.us/img93/2294/111ha5.jpg
http://img178.imageshack.us/img178/6448/71628574ir7.jpg
http://img178.imageshack.us/img178/3188/98713046wb6.jpg
http://img373.imageshack.us/img373/4337/84829845hw6.jpg
Это скрины из демки показывающей как AI взбираються, правда движения помню, совсем никуда не годятся, но хоть кое-что.
(http://goldthief.strana.germany.ru/thief.gif)
(http://goldthief.strana.germany.ru/thief.jpg)
Гм.. ну тогда уже подавайте серп вместо меча...
В моей FM я хочу заставить спящего на стуле стражника, после того как он будет разбужен идти в заданнуюю область. Подскажите как это сделать?
FM для Thief1
Спящий на стуле = т.е. "сидящий"? (Спит сидя?)
Разбужен - в результате чего? Действия игрока или какого-то строго определённого события?
Впрочем, это скорее уже мелочи, а общая схема такая: дать ему метасвойство M-SleepingServant, поменять motions в свойствах так, чтоб он сидел (но в 1м Воре сидячей позы, кажется, нет - поэтому придётся брать её из 2го Вора, после чего как-то вваривать в миссию - тут я точно не уверен, как). А для того, чтобы разбудить - или действием игрока, или чем другим - за этим действием или событием, грубо говоря, страж этот должен следить.
Как именно следить: если его может разбудить игрок (т.е. может и не разбудить), создай маркер (обычный) и свяжи стража с ним связью AIWatchObj. В параметрах связи там указываешь вначале удаление метасвойства (M-SleepingServant) - разбудил. А после - Goto object, номер объекта - тот маркер (или другой объект), к чему он должен пойти. (Правда, там нужно ещё расставить параметры в полях и раскрывающихся списках над перечнем действий, тут я не сильно сведущ.)
В случае, если активировать должен не игрок, а другое событие - по мне, лучший выход - conversation (как обычная беседа охранников). Примерно по аналогии с AIWatchObj, но посложнее.
Тут в чём лажа, что стражник после бесплодных поисков тупо упираеться в стол и... всё. Ну бывает сново засыпает стоя:biggrin:
ЦитироватьА после - Goto object, номер объекта - тот маркер (или другой объект), к чему он должен пойти.
вот это я не проверял, всё остальное проделывал.
[Исправлено: NuwXP, 17 окт. 2009 0:54]
Цитироватьстражник после бесплодных поисков тупо упираеться в стол и... всё. Ну бывает сново засыпает стоя
То, что снова засыпает - такой баг и в OM есть (правда, во 2м Воре только видел).
Так с goto object в итоге что-нибудь получается?
goto - событие с очень низким приоритетом. Если область находится достаточно далеко, а игрок, не дай бог, запишется, пока AI туда идет, а потом загрузится - AI так и застрянет на полпути. Если что-то собьет его по пути (например, лежащий труп) - скорее всего, он тоже навсегда забудет, куда ему надо.
Предлагаю сделать так: после пробуждения AI назначается свойство AI_Patrol. Первая точка маршрута - внутри AI, вторая - в заданной области. Первая соединена со второй, вторая с первой - нет. Самый стабильный вариант, устойчивый даже к перезагрузке.
(Правда, для динамического назначения свойства потребуется использовать S&R.)
NuwXP, ух ты! КАКИЕ ЛЮДИ ПОЯВИЛИСЬ!?! :up: Ты где пропадал?
Помню в одном из обучающих пособий, предлагается повысить AI уровень тревоги AI->AI Core->Alertness Cap не используя маркер. Если очень пошуметь.
Dront С goto object буду возиться сегодня ночью, пока на этом внимания не заострял.
Zontik Хочу ещё раз отметить "Golden Book" :up: Неистощимый источник полезной информации. Связи, настройка AI и др. Да, а ещё греет что делали соотечественники.
Force Рад слышать, что меня помнят и узнали. Я на долгое время ушёл из мира Thief, лишь иногда, очень редко играл в ФМ :biggrin: Не было возможности часто выходить в сеть, жил, работал в другом городе. Но сейчас я достал из коробки запылившиеся диски и прочее ПО Thief . Буду пытаться не утонуть в широком океане DromEd
NuwXP
На "GoldenBook" я только учился, так что многое сделано там не так, как следовало бы. Сейчас я бы уже многие вещи сделал по-другому (хотя в игре это выглядело бы точно так же).
Уж если кому интересно ;) я испробовал способы с goto object и так не добился желаемого (скорее мне не хватает знаний :( ) .
Зато интересно получилось с мето свойством M-SleepingServant. Оно удаляется как только АI встанет это известно. Я добавил после пробуждения мето свойство патрулирования, АI послушно побрёл куда следует хропя на ходу.
NuwXP, лови удачу! Намеренно такого эффекта добиться куда сложнее. Обыграй этот момент. Игроки со стульев попадают!
Добавлен MeshPack.zip (http://darkfate.ru/?show=files/editors/dromed/models/MeshPack.zip). Автор DarkMax.
Так это что? Некие новые AI или улучшенные старые, типа ТДБонковских?
Добавлено позже [off] By the way:
ЦитироватьNuwXP, лови удачу!
:yes: Лунатиков в Thief еще не было. Это фишка! [/off]
ЦитироватьНекие новые AI или улучшенные старые
И то и другое.
С AI работал очень мало. Хочу чтобы стражник останавливался во время патрулирования. Нашел мануал,
http://dromed.whoopdedo.org/dromed/pause_patrol (http://dromed.whoopdedo.org/dromed/pause_patrol)
сделал все, как написано:
1) Соединил стража с одной из точек связью AIWatchObj
2) В data связи поставил:
Responce Step 1: Wait, 5000
Но страж проходит мимо, не останавливаясь.
Нужно поставить корректный радиус, в зоне которого AI будет реагировать на связь AIWatchObj. Кажется, этот радиус должен быть в районе 3, но точно не помню. Позже скажу точнее.
Ну как Dront, время не пришло? Пробовал ковыряться с AI, когда ставил Height = 2, он замирал на месте. Видимо, стражник не попал в зону действия точки патрулирования и от этого "завис".
Неужели никто не делал остановок в маршруте? Или уже никто не помнит?
Heigth - высота, на которую распространяется действие маркера. Если он не достает хотя бы до пояса стражника - действовать не будет.
Я обычно ставлю 10 - это беспроигрышный вариант.
Теперь радиус. Поставишь 3 - почти никогда срабатывать не будет. Разве что AI пройдет строго через центр маркера, да еще и на корточках. Что маловероятно. Короче, ставь больше, не жадничай. AI могут существенно отклоняться от линии маршрута.
Ну и главное - правильно выставить приоритет. Absolute - крайне опасная вещь. AI будет выполнять действия, даже будучи оглушенным. Very High - для случаев, когда крайне важно, чтобы действия были выполнены. По тревоге они в этом случае не прерываются. High - более-менее нормально, испуганный стражник выйдет из режима ожидания и начнет охоту. Но... порой может не срабатывать.
Все, что ниже, не рассматриваю, это явно не твой случай.
И последнее. Не забудь добавить Motion Tags к ожиданию (IdleGesture 0), чтобы AI не замирал неподвижным столбом. И учти, что к заданному времени ожидания всегда будет прибавляться время, которое нужно, чтобы завершить начатое движение (а это порой несколько дополнительных секунд).
Ну не останавливает он и все. Height больше 2 ставить нельзя - замораживается. 10 - тем более. В остальных случаях проходит сквозь маркер как ни в чем не бывало. Из выполняемых действий стоит:
Responce: Step 1: WaitArgument 1: 5000ЦитироватьИ последнее. Не забудь добавить Motion Tags к ожиданию (IdleGesture 0), чтобы AI не замирал неподвижным столбом.
Как это сделать? Впервые это слышу.
ЦитироватьНу как Dront, время не пришло?
LongShad, я болею. Сейчас более-менее очухался.
Вот параметры, которые стоят у меня в настройках связи AIWatchObj.
(http://s49.radikal.ru/i123/1102/ad/6a253fc43b4d.jpg) (http://www.radikal.ru)
(Первый шаг - Face - нужен, если тебе надо, чтоб AI после остановки повернулся в нужную сторону. 376 означает номер объекта, к которому он должен повернуться.)
Во втором шаге IdleGesture 0 - как раз то самое движение, которое нужно воспроизвести.
А, понятно. IdleGesture0 надо писать во втором аргументе. А в мануалах о нем ни слова.
Всегда можно посмотреть, что в какую строчку аргумента писать, в Dromesday Book.
http://dromed.whoopdedo.org/dromed/pseudoscript (http://dromed.whoopdedo.org/dromed/pseudoscript)
Так замораживание - это же и был эффект от Wait, не подкрепленного motion tags!
Еще обрати внимание на поле Reuse Delay - эта величина должна быть
больше, чем время ожидания + запас на заканчивание движения. Иначе связь сработает второй раз... и AI так и останется замороженным. Reuse Delay - это время, на которое откладывается повторное срабатывание связи, чтобы не перезапускаться постоянно.
А вот Reset Delay я сам до сих пор никак не пойму.
И еще: вместо номеров объектов (к которым нужно повернуться) лучше использовать уникальные имена. Уж они-то точно не изменятся. Кстати, в это поле очень удобно вставить имя несуществующего объекта... например,
Спойлер
Player
.
В первое поле (над номером/именем объекта) можно вписать угол... но в радианах. Если второе поле при этом не заполнять, то нулевым считается направление... если не ошибаюсь, на юг. А если второе поле при этом заполнено, то угол отсчитывается от направления на указанный объект.
ЦитироватьВсегда можно посмотреть, что в какую строчку аргумента писать, в Dromesday Book.
Или в Dromed 2.
А как-нибудь можно исправить ошибку из-за которой при бросании тела на землю обе окружности смещаются в центр тела (на пояс)? Нельзя ли, чтобы они оставались такими же, когда противник был живой? А то бить уже вырубленного противника можно только по поясу.
Не знаю, как насчет Thief 2, но в Gold'е точно такое есть.
Кто из нас хорошо разбирается в настройках и поведении ИИ?
Зонтик.
Кое-что знаю, кое-что нет. Второго намного больше.
Сделал триггер на игрока с помощью связи AIWatchObj. Стражник делает кое-какие действия и идет в точку A. Надо чтобы он там остановился, а он возвращается на исходную. При этом:
AI > Ability Setting > Idle: Returns to origin = FALSE
С этим разобрался. Насильно поставил еще раз это свойство.
Другой вопрос - у двери нет флага Block Vision. Но ИИ меня замечает только когда откроет дверь. В чем дело?
И еще. AIWatchObj почему-то запускается когда ИИ закончит текущее движение. Мне надо, чтобы запускалось сразу, как только выполнится условие.
И как сделать чтобы ИИ возвращался после расследования на ту точку, где остановился? То есть как ему сделать новую оригинальную точку?
Если никак - то как заставить ИИ идти к маркеру когда он успокоится?
ЦитироватьAI > Ability Setting > Idle: Returns to origin = FALSE
С этим разобрался. Насильно поставил еще раз это свойство.
Теперь если он начнет преследовать игрока и не догонит, то остановится там, где закончилось преследование. Выглядит это, как правило, по-дурацки. Поэтому
ЦитироватьИ как сделать чтобы ИИ возвращался после расследования на ту точку, где остановился? То есть как ему сделать новую оригинальную точку?
Закономерный вопрос. Но это опять через S&R - изменение свойств. AI нужно назначить свойство, где напрямую вводятся координаты новой "домашней" точки. Не помню название, но оно какое-то достаточно очевидное. Правда, чтобы назначить это свойство, на уровне должен существовать объект с точно таким же свойством, который используется в качестве шаблона. К счастью, это совсем не обязательно должен быть AI, достаточно простой табуретки, причем стоящей где угодно.
Естественно, свойство "возвращаться в исходную точку" при этом также должно присутствовать, можно изначально.
ЦитироватьДругой вопрос - у двери нет флага Block Vision. Но ИИ меня замечает только когда откроет дверь. В чем дело?
Скорее всего, не выполнил портализацию после снятия флага. Портал должен уничтожиться, чтобы изменения вступили в силу.
ЦитироватьAIWatchObj почему-то запускается когда ИИ закончит текущее движение. Мне надо, чтобы запускалось сразу, как только выполнится условие.
Я не уверен, что это вообще возможно. Попробуй выставить приоритет на Absolute, но если и это не поможет - тогда, скорее всего, никак.
Хотя в принципе AI умеют прерывать движения - например, при получении дубиной по голове. Может, покопать в этом направлении?
ЦитироватьСкорее всего, не выполнил портализацию после снятия флага. Портал должен уничтожиться, чтобы изменения вступили в силу.
Нет, с портализацией все в порядке. Тут я заметил, что он меня все-таки замечает через дверь, но очень поздно. Поэкпериментирую еще с освещением и скажу.
Насчет
ЦитироватьAIWatchObj почему-то запускается когда ИИ закончит текущее движение.
Немного помогает св-во
Idling: Should fidget =
FALSE. ИИ становится менее активным при простаивании и воспроизводит более короткие движения. Но взамен стражник ведет себя как каменная статуя - очень не реалистично.
Не годится.
Никакого приоритета Absolute там нет, можно поставить только требуемые уровни встревоженности (для прерывания действий).
Нашел где хранятся параметры оригинальной точки:
AI > State > Idling: OriginЕще вопрос - можно ли ИИ с флагом Does Patrol заставить стоять на месте, если рядом есть точки патрулирования? Если заключить след. точку патрулирования указывать на саму себя, ИИ будет топтаться на месте.
ЦитироватьНет, с портализацией все в порядке. Тут я заметил, что он меня все-таки замечает через дверь, но очень поздно. Поэкпериментирую еще с освещением и скажу.
Проверь, просачивается ли свет под дверью. Если да, то нужно выровнять координаты, чтобы в точности соответствовали координатам дверного проема.
ЦитироватьНикакого приоритета Absolute там нет
AIWatchObj: Priority - Absolute.
По крайней мере, в DromEd2 так.
ЦитироватьЕще вопрос - можно ли ИИ с флагом Does Patrol заставить стоять на месте, если рядом есть точки патрулирования?
Вообще-то нет. Разве что путем каких-то невероятных ухищрений. Но в этом случае легче будет удалить свойство и вновь его назначить, когда понадобится.
Давно сделал спящего бомжа. Но только сейчас дошло что он не просыпается. Пляшу, прыгаю, стреляю водой, хожу по нему. Почему он не просыпается?
Ага, добавио Alertness Cap Max = High и Currents Mode = Effecient. Теперь спит очень чутко.
Но почему когда встает, ниже пояса - под землей?
И надо чтобы когда проснется - тоже пошел по маршруту.
Со спящими AI у меня у самого были проблемы (тоже то не просыпались, то вставали как у тебя).
Когда проснётся, чтобы пошёл по маршруту - заранее прописываешь маршрут патрульными точками (как обычно), а в настройках связи AIWatchObj после удаления "спящего" метасвойства просто добавляешь связь AICurrentPatrol к первому TrolPt'у и метасвойство M-DoesPatrol. Как обычно.
А вот это?
ЦитироватьНо почему когда встает, ниже пояса - под землей?
А про это я написал в начале поста:
ЦитироватьСо спящими AI у меня у самого были проблемы (тоже то не просыпались, то вставали как у тебя).
Пока актуальна только проблема со спящим бомжом. Когда просыпается - встает по пояс в земле.
С высокой степенью вероятности проблема - в анимации (или сами выбранные motion tags для лежащего не соответствуют, или их дополнительные настройки неправильны).