Анимация в Thief

Автор Chuzhoi, 23 мая 2011 05:24:53

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

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

Chuzhoi

И где же этот монолог?

Zontik

monolog.txt в папке с игрой.
Дайте глазам отдохнуть! Тёмное место

Chuzhoi

Не нашел никакого монолога. Ну да ладно.
Можно ли сделать так, чтобы при открытии DromEd сразу открывалась миссия? Чтобы не делать несколько лишних телодвижений.

Zontik

Как же неудобно без редактора под рукой!
В какой-то из конфигурационных файлов вписывается отдельная строчка "monolog" (без кавычек), после чего данный файл (с расширением TXT) создается в папке с игрой и обновляется при каждом запуске игры или редактора. Вся нужная и ненужная информация сливается туда.
Да, можно сделать так, чтобы миссия открывалась сразу, для этого создается cmd-файл, в который пишется строчка определенного синтаксиса (в том числе и с именем миссии, которую надо запустить), а имя данного cmd-файла вписывается в какой-то уже существующий конфигурационный файл, чтобы он запускался при старте.
Но все это уже описывалось где-то в соседних ветках, так что попробуй поиск по слову Monolog или - вопрос №2 - start.cmd или что-нибудь похожее.
Дайте глазам отдохнуть! Тёмное место

Chuzhoi

Спасибо! Поищу.

Текущий прогресс.

1. Пришлось отказаться от концепции "раком". Скелет теперь поставлен вертикально, голова привязана к горбику слизняка, конечности - к его периметру.
Причина - при наклоне слизняка вперед на 90 градусов он повисает в воздухе (т. к. крутится вокруг центрального сустава - jbutt). Попытка искусственно приземлить его в Motion Editor приводит к разнообразным глюкам - он начинает прыгать вверх-вниз, или, как вариант, просто медленно взлетает под потолок, словно дирижабль.

Чтобы таких глюков не было, координата Z, как я выяснил, в начале анимации должна быть равна 0. И в конце анимации тоже.

2. Сделаны анимации ползания, получения повреждения, умирания. Работаю над остальными.

3. В данный момент слизняк сделан из человека, у которого заменена модель и схема движений. Правильно ли это в принципе - я не знаю. Но если прикрутить звуки, характерные для слизняка, то это должно выглядеть как 100%-й слизняк. Но не приведет ли такой путь к каким-либо побочным эффектам?

Chuzhoi

И еще одна подробность по поводу физики. Решил остановиться на модели типа "снеговик". Причина - физическая модель не должна касаться пола, иначе возникают глюки (застревания при ползании на ровном месте, взлет). У снеговика верхняя сфера находится повыше (в районе шеи), и поэтому ее можно сделать побольше. Конечно, форма далека от формы слизняка, но другой возможный вариант - единственная сфера очень маленького размера - еще хуже.

Заметил также, что после каждого игрового сеанса размеры снеговика сбрасываются в дефолтные (нижняя сфера - 1,0, верхняя - 1,2), но на один сеанс их все-таки хватает. Еще один предмет для разбирательства. Эй, Zoro, ты еще не очень соскучился?

LongShad

Цитироватьпосле каждого игрового сеанса размеры снеговика сбрасываются в дефолтные (нижняя сфера - 1,0, верхняя - 1,2)
Измени эти параметры у родительского класса. Если они там 1,0 и 1,2. По-моему параметры как раз в родительские сбрасываются.

Zontik

ЦитироватьНо не приведет ли такой путь к каким-либо побочным эффектам?
Думаю, ничего неустранимого. По мелочам может много чего повылезать (например, взятие тела), но, как правило, это легко устраняется.
Дайте глазам отдохнуть! Тёмное место

Chuzhoi

ЦитироватьИзмени эти параметры у родительского класса. Если они там 1,0 и 1,2. По-моему параметры как раз в родительские сбрасываются.
Не помогает совершенно.
Иерархия сейчас такова:
Object -> ... -> Human -> Slug

Так вот, изменение этих параметров ни в базовых классах, ни в моем собственном классе Slug не помогает. В иерархии все сохраняется, но непосредстванно у слизняка (A slug) сбрасывается в 1.0 и 1.2.
Более того, в ни в одном из базовых классов не указаны эти параметры. Они просто появляются сами уже у объекта, когда вставляешь слизняка (или, например, человека).
Такое впечатление, что некая неведомая сила действует, обходя иерархию.

ЦитироватьДумаю, ничего неустранимого. По мелочам может много чего повылезать (например, взятие тела), но, как правило, это легко устраняется.
А, скажем, такая проблема может возникнуть: можно убивать монстров, но нельзя людей. Но, если слизняк будет считаться человеком, то при его убийстве возникнет провал миссии. Это устранимо?





LongShad

#69
Погоди, а 2 "шара" вместе находятся? Т. е. центр одного шара (1.0) в центре другого (1.2)?
Так происходит когда убиваешь или глушишь NPC. Сколько я не пробывал - по-моему от этого не избавиться.

Цитироватьесли слизняк будет считаться человеком, то при его убийстве возникнет провал миссии. Это устранимо?
Да. Скрипт JAccuse сообщает игре что игрок убил живого NPC. Исп-ся при создании заданий "никого не убивать (из людей)". Добавь слизняку св-во "Scripts", скопируй названия всех скриптов (кроме JAccuse) из Human и поставь галочку "Don't Inherit".

Zontik

ЦитироватьТакое впечатление, что некая неведомая сила действует, обходя иерархию.
Вполне возможно.
Цитироватьесли слизняк будет считаться человеком, то при его убийстве возникнет провал миссии.
Считается ли он человеком - зависит от способа обработки выбранной цели и его положения в иерархии. Скажем, типичное задание не убивать людей задается переменной goal_target_x со значением -14, где -14 - номер архетипа Human в иерархии. Если твой слизняк находится снаружи этого архетипа, он не считается человеком. Анимация тут совершенно ничего не значит.
Да, это подразумевает наличие отдельного архетипа для слизняка, но если их будет в миссии много, это в любом случае имеет смысл.
Дайте глазам отдохнуть! Тёмное место

Chuzhoi

Текущий прогресс.

Вы меня убедили. В том, что слизняк - не человек. Поэтому теперь он является прямым потомком класса Creature. К моему удивлению, он перенесся простым драг-энд-дропом (такой маленькой радости от DromEd я не ожидал). Также, к моему еще большему удивлению, он ведет себя очень адекватно - хотя я ему задал очень мало свойств (у стандартных существ их гораздо больше).

Вчера я часа три потратил на то, чтобы научить его стрелять, пока не выяснил, что его нужно было просто удалить и установить заново (тогда свойства, касающиеся стрельбы, появятся в экземпляре, а не только в классе). Ну и чудак этот DromEd.

Анимация практически готова и выглядит весьма неплохо. Сделано специальное движение IdleGesture - для разнообразия анимации стояния. Есть еще пара спорных моментов, но пока попробую разобраться самостоятельно.

Самый больной вопрос - физическая модель - остается в силе. Поскольку снеговик так и не захотел менять размер, то, скорее всего, придется использовать Sphere Hat. Но при этом, из-за низкого расположения сферы, ее размер будет довольно невелик и при стрельбе придется целиться как можно ближе к центру слизняка.

PS. Мне казалось, что некие существа в Thief - например, пауки - плюются ядом, но видимо я перепутал с Wizardry 8. Придется делать ядовитый снаряд самому. Кстати, а можно ли сделать, чтобы здоровье после попадания снаряда падало постепенно, сопровождаясь охами и ахами игрока?

Zontik

Сделать можно (не уверен насчет охов и ахов, хотя явных препятствий не вижу), но как именно - тебе придется копать самому. Это все делается через Sources, причем кое-что при настройке работает совсем не так, как ожидается. Нужно добиться эффекта, обратного выпиванию зелья здоровья.
С другой стороны, опасная фишка. Игрок увидит, что повреждения незначительны, и запишется сдуру. А через десять секунд откинет копыта.
Дайте глазам отдохнуть! Тёмное место

DJ Riff

Ядом плюётся красный паук в Thief 1. Также он кидает паутину.
Тьма тоже распространяется со скоростью света.

Chuzhoi

ЦитироватьЯдом плюётся красный паук в Thief 1.
Значит, ощущения меня не обманули.

ЦитироватьС другой стороны, опасная фишка. Игрок увидит, что повреждения незначительны, и запишется сдуру
Да, тут возможна проблема.
Но можно ограничить время отравления несколькими секундами, сопровождаемыми непрерывными охами. Это будет чисто психологический эффект, направленный на запугивание. Вряд ли здравомыслящий игрок будет записываться в такой ситуации.
Но это просто вариант. Если это сложно сделать - ограничусь обычным повреждением.