Проблема с Ranged Combat AI в T2

Автор winter cat, 07 марта 2007 16:01:39

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

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

winter cat

В Thief2 очень странная проблема со всеми Ranged Combat AI. Когда их атакуешь они не проигрывают все движения ранения которые должны. Вот список этих движений:
bh113501
bh113502
bh113503
bh113510
bh113511
bh113512
bh113520
bh113521
bh113522
bh113540
bh113550
Но только одно из них AI во время поражения проигрывает, это bh113501. Остальные почему-то не хочет.
У лучника к пример тэг движений WithBow 0, может сначала прийти на мысль что непроигываемые движения не включены в этот тэг, но на самом деле включены. Если поменять поведение AI c "human with bow" на "human with sword", все движения перечисленые выше ПРОИГРЫВАЮТСЯ. А когда  "human with sword" обратно меняешь на "human with bow" или "Human spellcaster", "Burrick", "Bug"  проигрывается только  bh113501.:suspect:
Суть проблемы исходит не из движений, а из самого AI. Тоесть если AI относится к категории Ranged Combat не хотят проигрываться все движения ранения за исключением bh113501. Что в нём такого особенного?:confused: Ах да, проблемы нету на T1 и T2 Demo.
В Dromed2 есть свойство AI>Ranged Combat>Ranged Combat Wound Motion, только пока не заметил в игре никакой разницы, какие величины не пробовал. Проверил также свойства персонажей в dark.gam от T1 и T2 Demo, вроде одинаковые. Даже не догадываюсь от чего такая проблема. Но может у кого-то есть какие-то намёки, предположения?


clearing

Нифига куда ты залез :cool: Даже не думал об этом. Надо будет поэкспериментировать. Yandros ответил на ttlg.

winter cat

Это из BipedWound.mos:
schema ReceiveWound 0, Direction 8
MType  GroundAction
TimeScale 0
XYZScale  0
motion BH113550     0  500
schema ReceiveWound 0, Direction 7
MType  GroundAction
TimeScale 0
XYZScale  0
motion BH113501     0  500
motion BH113502     0  500
motion BH113503     0  500
schema ReceiveWound 0
MType  GroundAction
TimeScale 0
XYZScale  0
motion BH113501     0  500
schema ReceiveWound 0, Direction 1
MType  GroundAction
TimeScale 0
XYZScale  0
motion BH113520     0  500
motion BH113521     0  500
motion BH113522     0  500
schema ReceiveWound 0, Direction 2
MType  GroundAction
TimeScale 0
XYZScale  0
motion BH113510     0  500
motion BH113511     0  500
motion BH113512     0  500
motion BH113540     0  500

Заметьте что движения не проигрываемые лучником имеют некие "direction" тэги. Тоесть для этих движений имеет значение откуда атакуешь лучника, но разумеется я испробовал со всех сторон. Похоже Ranged Combat AI не распознают направления и поэтому при поражении проигрывают движение BH113501, которое не имеет "direction" тэга, это уже объясняет условие проблемы.

Force

Winter Cat, а этот файл изменить нельзя? Вставь туда все остальные движения, чтобы они проигрывались без направления.

winter cat

Я уже такое пробовал, действительно работает, но это будет не решение проблемы, а удолетворение её условия, так как движения которые должны использоваться только при атаке с определённых сторон будут использоваться при атаке с любой стороны. Не хочется нарушать это правило зная что в T1 тэги расписаны точно также, и всё работает. На самом деле с движениями как я уже сказал всё ОК, это с AI проблема.


Force

А что там Yandros на TTLG ответил-то?

winter cat

Решил сделать небольшой эксперимент. Запихнул в System Shock 2 motions.crf и motiondb.bin из Thief 2, в качестве тестового AI выбрал Midwife, потому что она из далека стреляет зелёной гадостью, а вблизи дерётся, такое позволяет поведение "rangedmelee". Поставил на Midwife тэг движений WithBow 0. Вовремя игры заметил если атакуешь AI вблизи все движения проигрываются, а когда из далека только то одно. Так что дело не в поведении AI, а в том в каком режиме, melee или ranged. Режим ranged подразумевает что AI использует свойства из серии Ranged Combat, полный ихний список включает:
AI>Ability Settings>RangedCombat: Audio Response
AI>Ability Settings>RangedCombat: Grunt Always
AI>Ranged Combat>Ranged Combat
AI>Ranged Combat>Ranged Combat Applicabilities
AI>Ranged Combat>Ranged Combat Flee
AI>Ranged Combat>Ranged Combat Ranges
AI>Ranged Combat>Ranged Combat Shoot
AI>Ranged Combat>Ranged Combat Wound Motion
AI>Ranged Combat>Ranged Combat Wound Sound
Уже теплее, хотя ответ до сих пор не найден, думаю он среди перечисленных свойств. Что-то там не так установлено...:suspect:


winter cat

Выяснил почему в демке Thief 2 нету этого бага или как это там назвать... Движок демки Thief 2 почти такой же как и у Thief 1 за исключением того что пофиксели самоубийство лучников, ну и   поддержку цветного освещения дали рендереру, а заодно исправили в нём баг от которого у трупов которые выставлены в редакторе как трупы голова могла попадать "сквозь" туловище. Также до сих пор можно увидеть в далеке плывущих AI.
Что до лучников то в полном Thief 2 у них целая серия свойств перечисленых выше, в Thief 1 у них только одно свойство, а в демке Thief 2 хоть есть набор свойств что и в полной версии, я выяснил что они не работают, ну не успели в демке дать им ещё функции, поэтому те свойства на лучников вообще не влияют. И этот факт не даёт убедительных оснований считать что неполадка с лучниками неисправимый баг, так как в полном T2 ведь помимо этого бага ещё и работают вся серия свойств для лучников. Это просто может означать что всетаки что-то не так настроено в тех свойствах, но мне у не удалось ничего установить. :undecided:Есть также вероятность что это программный баг, в этом случае его не пофиксить.:eeeh:
Вопрос к clearing-у. Дружище, тебе удалось что-нибудь выяснить? У меня лично уже голова кругом идёт.:littlecrazy: Я понимаю что ты творческий человек, но если ты сказал что поэкспериментуруешь то будь добр доложи о результатах пожалуйста.
Если же ты это сказал просто чтобы поддержать, то заявляю что это не нужно, так и скажи что тебе не хочеться вникать в это. Горькая правда лучше сладкой лжи. Тогда думаю будет логичнее написать об этом Теллиамеду, он програмный код весь видел, гораздо больше вероятноятность узнать побольше об этом баге.

clearing

Winter Cat, Пробовал, запутался, взбесился и бросил. А если честно честно - я не хочу так глубоко углублятся в эти дебри. Да, я творческая натура - но не в таком направлении как у тебя. Лучше задай вопрос Теллиамеду. А по большому счету мне это не очень интересно, поэтому и не углубляюсь. Лучше пасхальные яйца поищу в FM :biggrin:


winter cat

clearing А всетаки расскажи что ты такое пробовал, что тебя это взбесило и ты закинул этот баг даже раньше чем я.

clearing

Да меня всё честно говоря бесит в DromEd, начиная от диалога, кончая глючностью, поэтому я даже не пытаюсь в нем дальше разбираться. Был бы у редактора диалог как у того же T3Ed. Начал просматривать все свойства AI, пару раз DromEd просто закрывался, короче... У меня в данное время DromEd стерт и с TG и с T2 специально, чтобы при прохождении FM-ок не было искушения. Кстати, благо что DromEd-а не было при тесте Вечной Свечи ;)



winter cat

Тебе не нравится интерфейс DromEd-а? Странно, я наоборот сразу затянулся в этот редактор из-за необычного вида. И то что ты называешь глюками не так глюки как просто капризы редактора, как у любого ребёнка если он очень хочет конфету, а родители ему её не дают, поэтому он все время недоволен и плачет, мешая родителям нормально что-либо делать, такая у него ответная реакция. ;) С другой стороны DromEd-ом надо правильно пользоваться, а то чаще всего думают что все окна которые выдаёт DromEd ошибки, хотя в большенстве случаев это предупреждения. Всё из-за бедной официальной документации. А редактируемое меню и в отдельном файле вообще супер-фишка :up:, такого ни в одной проги нету. И чем тебе не нравятся диалоговые окна свойств? Они стандартного типа. А T3Ed очень сложный, меня вот он бесит:mad:, ставить объекты, добавлять свойства, редактировать игровую систему и т.д. очень неудобно :nono:как впрочём и в UnrealEd.
И все же лучше поставть DromEd, даже если просто играешь FM-ки, а то вдруг попадётся такая которая не запускается через Darkloader. Из Total Crap Contest есть такая.

clearing

Очень странно, 21 миссию из Total Crap Contest прошел без DromEd-а :littlecrazy:

winter cat

Оказывается на движения влияет осведомлённость AI. Например если AI хороший или плохой, но невраждебный(как прислуга), то направленные движения он не проигрывает, так как поражение является в этом случае для него неожиданным. А уж если бы вас кто ударил, и вы не видели кто, вы бы стали раздумывать откуда вас ударили или держались за больное место как это обычно и есть?
Направленные движения используются только когда атакуемый AI осведомлён о своём враге, даже если атакуется не этим врагом. Примером есть тренировочный стражник в A Keeper's Training, когда с ним надо драться, он играет все движения поражения, когда битва закончена и он больше не нападаёт и идёт обратно в коридор, при поражение только одно движение используется от Receive Wound 0 тэга. Это также видно на видеоролике от Форса, где он гонит словно корову на пастбище! Бедный страж!!!
Так вот, какое-то время я думал это проблема осведомленности, но поэкспериментировал и заметил в Thief 2 когда лучники ранены они поворачиваются к игроку если он отошел в сторону, когда они не осведомлены, то не поворачиваются. Это даёт понять что с осведомлённостью всё в порядке.
Совсем недавно я был полностью уверен что это в T2 с лучниками баг, но я ошибался. На самом деле этот баг также в T1 есть, но "скрыт" другим багом, от которого лучники не воспринимают направленные движения как направленные.
Когда дерёшься с меченосцем, то лёгко заметить что движения поражения зависят от направления, а с лучником нет, это я говорю про лучников из Thief 1. Движения абсолютно не зависят откуда атакуешь, как будто они без Direction X тэга. Если лучник хороший или просто невраждебный, используется только Receive Wound 0 тэг. Тоесть осведомлённость AI распознаёт направления, но вот сам AI в бою нет, на самом деле он не распознаёт Direction X тэги после Receive Wound 0 тэгов, поэтому лучники проигрывают все те движения поражения как будто они от тэга Receive Wound 0.
В Thief 2 эта нераспознаваемость пофиксена, лучники уже знают что есть и Receive Wound 0 тэг и Receive Wound 0, Direction X тэги, но просто по какой-то причине не используют Receive Wound 0, Direction X. С этим надо ещё разобраться...


Zontik

[off]
Цитироватьпросто капризы редактора, как у любого ребёнка если он очень хочет конфету, а родители ему её не дают...
Я бы сказал - этого ребенка насильно кормят манной кашей, и чаще всего ему удается-таки ее выплюнуть. Такая вот ответная реакция на наше творчество.
Что делать... Проклинаю и иду заваривать новую кашу. Другого-то ребенка все равно нет.
На самом деле в редакторе плохо только одно: без толстой пачки руководств и справочников пользоваться им невозможно. Что написать в пустом поле? Кто знает?
[/off]
[Исправлено: Zontik, 19 апр. 2007 17:09]
Дайте глазам отдохнуть! Тёмное место