Анимация в Thief

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

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

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

clearing

#15
Цитироватьвместе с DromEd должен быть ещё и архив schema.crf (если нет - можно найти)
http://darkfate.ru/?show=files/editors/dromed/dromed

Zontik

#16
Цитировать1. Можно ли сделать, чтобы лайтмэпы были видны в DromEd? У меня они видны только на дальних стенах, вблизи стены отображаются в полную яркость.
Ты имеешь в виду - в окошке 3D? Нет, нельзя. Хотя в DromEd 1 это окошко все показывает.

Цитировать2. Каково нормальное значение Ambient Light? Я использовал, кажется, 20 20 20. Дефолтное значение оказалось очень ярко - камень постоянно светился.
Ambient Light не оказывает влияния на камень. Светился он из-за того, что не были первый раз выполнены стандартные для любой FM процедуры - построение Room database, AI Room database и Pathfind database. Также должны быть загружены стандартные скрипты - Convict и Gen.
20 20 20 - нормальная величина, если не требуются глубокие тени. Собственно, это будет довольно светлая FM. Попробуй задать 10 10 10 для сравнения - возможно, понравится больше.
Дайте глазам отдохнуть! Тёмное место

Chuzhoi

Всем спасибо! Буду разбираться дальше.

Chuzhoi

#18
Выяснил, что в архиве mesh.crf есть текстовые файлы *.map и *.mjo вполне понятного содержания. Если это и есть определения скелетов, то разработать новый скелет - раз плюнуть. Вопрос только в том, как потом этот скелет анимировать...

Zontik
ЦитироватьЕсли бы еще кто-нибудь взялся мне объяснить, что такое вертекс...
[off]Вертекс - это вершина (в геометрическом смысле). То есть точка, в которой сходятся полигоны.
Вертексная анимация - это когда для каждого последующего кадра полностью трансформируется модель путем перемещения вертексов. Поскольку средняя модель в Thief состоит из 200-500 вертексов (а в современных моделях их по нескольку тысяч), то анимация превращается в долгий муторный процесс. К тому же, когда нарисованы сотни кадров анимации, вносить изменения в модель - это означает практически все переделывать. Хотя в старых играх (Quake, Unreal) анимация была именно вертексная.

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

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

То, что ты описал с крысой - в принципе это и есть подобие вертексной анимации, только без возможности выбора движения.[/off]

Zontik

[off]Спасибо, теперь понял. А какой тип анимации у AI в TDS? Спрашиваю просто из любопытства. Интересно, может ли мимика анимироваться с помощью скелета. У людей может, а как с этим у AI?[/off]
Дайте глазам отдохнуть! Тёмное место

Chuzhoi

[off]Насчет лиц точно не знаю. Яндекс по запросу "лицевая скелетная анимация" выдает ответы в виде "лицевая и скелетная анимация"
Хотя есть картинка:

Насколько мне известно, анимация лиц делается отдельно от анимации тел, поэтому не исключено, что там применяются какие-то особые технологии.
[/off]

Chuzhoi

Как сделать так, чтобы при редактировании движений и схем не приходилось перезагружать DromEd (а то без этого Thief не понимает, что движения отредактированы)?

Zontik

Видимо, никак, поскольку похоже, что ресурсы загружаются при запуске или при первом входе в игровой режим. Во второй раз и последующие все данные уже считываются из какого-то буфера.
Дайте глазам отдохнуть! Тёмное место

Chuzhoi

То есть нужно нажзать Alt-G, Alt-E, снова Alt-G? Я так и делал. Поначалу срабатывало. Но вчера вообще перестало. Приходилось полностью перезагружать DromEd. С чем это связано - не знаю.

Chuzhoi

Кстати, в ридми к Motion Database Editor автор пишет, что не понимает, что за цифры прописаны за движениями в mos-файлах. Например, схема может состоять из 4 движений, список которых выглядит так:

motion NM113000     4  500
motion NM113001     0  500
motion NM113002     0  500
motion NM113003     0  500

Похоже, мне удалось разобраться с этими цифрами (хотя я могу ошибиться в некоторых деталях).

Первая цифра может быть равной 1, 2, 4 или суммой этих чисел (ну, степени двойки, сами понимаете). При суммировании эффекты комбинируются.

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

Кстати, при анимациях из нескольких движений всегда происходит пауза между движениями длительностью в один кадр, особенно заметная при анимации с низким FPS,  и никакая единица не помогает (она лишь немного сглаживает движение).

2 - странные круговые движения вокруг вертикальной оси. Модель идет не по маршруту, а утыкается в стену и начинает елозить лицом по этой стене, хаотично поворачиваясь вправо и влево.

4 - отключение движения по горизонтали ("бег на месте").


Вторая цифра изменяет равномерность анимации. Если она равна 0 - то кадры будут идти с равномерной частотой. Если больше 0 - то анимация будет начинаться медленно, к середине движения ее скорость возрастет, а к концу опять замедлится, причем чем больше число, тем сильнее будет этот эффект. Подходит в основном для одиночных движений (для которых, как правило, используется значение 500). Для повторяющихся движений типа ходьбы эта цифра обычно установлена в 0 или используются небольшие значения (до 200).

Zontik

Бесценная информация! Скопировал в файл.
Пара комментариев.
Цитировать1 - интерполяция между движениями.
Очень полезная вещь, когда трудно или невозможно зацикливать движение вручную.
Цитировать4 - отключение движения по горизонтали
Но это, пожалуй, намного ценнее.
Дело в том, что при многократном повторе одних и тех же движений (скажем, мытье посуды или дерганье за рычаг - как было у меня в "Зеркале") персонаж часто "уезжает" в сторону. Теперь понятно, почему - видимо, вместо 4 была выставлена единица. Простое исправдление схем, возможно, решило бы эту проблему ценой небольшого рывка в конце анимации.
Дайте глазам отдохнуть! Тёмное место

Chuzhoi

ЦитироватьПростое исправдление схем, возможно, решило бы эту проблему ценой небольшого рывка в конце анимации.
По моим наблюдениям, цифры можно складывать (т. е. установить 4+1=5). Хотя тут нужна более тщательная проверка.

Zontik

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

Chuzhoi

1. Как сделать, чтобы AI не реагировал на игрока?
2. Как принудительно запустить какую-нибудь анимацию?

clearing

[off]Я название темы подкорректировал.[/off]