Навигация > Моддинг Medieval 2 TW > Туториалы Medieval 2 Total War > Туториал по анимации Medieval 2 Total War

Total War Онлайн

Общеигровой Раздел

Публицистика

Поиск по сайту

Опросы

Ваша любимая игра из серии Total War?
  

Сейчас на сайте


57 гостей 

Статистика сайта


Пользователей : 2391
Статей на Сайте : 268
Файловый Архив : 167
Библиотека Модов : 676
Обзоры Модов : 54

Авторизация






Авторский сайт поклоников игр серии Total War

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Туториал по анимации Medieval 2 Total War
Опубликовал Arsonist   29.09.09 00:10
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Мастерская Medieval 2 Total War ->>> Туториалы Medieval 2 Total War
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Печать
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Туториал по анимации Medieval 2 Total War


Часть 1: Введение в Анимацию.

В первую очередь хочу пояснить базовые понятия структуры MESH / Animation (Модель/Анимация) и их объединения, так как именно этот вопрос чаще всего путает людей при начале работы с анимацией.

Что и где?

Во-первых необходимо понимать: какова структура модели и анимации и как они связанны. В игре используется скелетная структура анимации для того чтобы игровая моделька могла бегать, сражаться, умирать и т.д. Собственно файлы анимации и содержат тот самый скелет, который указывает на нужные перемещения. Файлы MESH содержат геометрию модели. Каждая вершина модели привязана к кости таким образом, чтобы при изменении положения кости соответственно двигалась и вершина. Каждая вершина может быть привязана более чем к одной косточке, с разными коэффициентами привязки (влияния кости на вертекс) Это позволяет модели двигаться значительно более естественным образом, чем это было в RTW где каждая вершина привязывалась лишь к одной кости. Теперь важное замечание:

ФАЙЛ MESH НЕ СОДЕРЖИТ СКЕЛЕТА.

Не забывайте этого. Когда вы создаёте модель в MS3D вы видите скелет и осуществляете привязку вершин к нему? Вы спросите и чтоже? Получается MESH содержит скелет? Нет! Просто это делает импортёр моделей когда осуществляется конвертация MESH в MS3D, для того чтобы вы могли осуществлять привязку к костям.
Для работы с этим важно понимать какова связь между MESH и CAS файлами анимации, чтобы итоговый результат правильно работал.

Итак, резюмируем:

MESH ? файл геометрии, содержащий так же результаты скининга (привязки)

CAS ? файл анимации, содержащий сам скелет и информацию о вращении/перемещении костей.

Двигайте костью в анимации и MESH будет двигаться так же. Привяжите вершину к нескольким костям и движения будут более естественными, как настоящая кожа.

Изображение различных частей MESH и CAS файлов:

user posted image

Итак прослеживаем путь перемещения вершины 3 (это всего лишь индекс). Первая кость к которой она привязана ? кость 6, в данном случае bone_head (другими пренебрежём). Это собственно вся инфа из MESH файла. Остальное содержится в соответствующем файле CAS. В частности тут присутствует кватерион вращения 1824 и значение позиции 7448. Данный механизм используется игрой для перемещения данной вершины. Следующая нужная информация обозначена зелёным: она необходима для постоения иерархии самого скелета и CAS файла. Вернёмся к этому после рассмотрения CAS файла преобразованного в txt.

Местами это будет весьма техническими данными, но они необходимы для понимания структуры и недопущения беспорядка. Понимаю, что термины типа кватерион могут ввести в замешательство но тем не менее.

Часть 2. Инструменты, необходимые для открытия анимации.

Итак, прежде всего нам необходима последняя версия комплекта KnightErrant?s GOAT toolbox. Так же необходима прога Milkshape версии 1.8?. и выше, с ?zero rotations? плаггином. Позже подробней разберём что и для чего.

Так же понадобятся файлы с распакованной анимой, предоставленные Caliban.


Итак, полный список:
1. Последняя версия GOAT
2. Python framework (до версии 3) ? бесплатная закачка
3. Milkshape 3D с плаггином ? небесплатно, но стоит того
4. Блокнот (или эквивалент)
5. Набор распакованной анимации
6. Этот гайд.

CAS файлы

Для того чтобы рассматривать файлы CAS сначала мы должны перевести их в приемлимый формат. Это возможно при помощи проги камрада KnightErrant . Используя GOAT вы можете преобразовать файл CAS в текстовый формат и изменять его содерживое. В файлах CAS содержится так же интересная информация, типа места привязки всадника к лошади, информация о классах ездовых животных. То есть если игра будет идентифицировать модель как слона её будут доступны свойства слона.
Смотрим содержимое файла анимации:

Первая строка выглядит примерно так:

3.210000 38 9 0 2.20000004768 1 0 104 104 104 1 0 104 104 104

Первое значение (обозначено красным) это номер версии анимации. Работая с файлами я обнаружил старые версии, но они не работают в игре корректно. Были проведены изменения в формате.

Пятое число (синее) это продолжительность анимации в секундах. В данном случае анимация бега занимает 2.2 секунды. Продолжительность одного фрейма (кадра) около 0.05 секунд (44кадра X 0.05 + начальный кадр).
Заключительная часть (зелёная) - часть заголовка, указывающего на принадлежность анимации определённому типу модели (человек, лошадь, слон?). Необходима и последующая часть заголовка но и с имеющимся можно делать некоторые интересные вещи.

Следующая линия выглядит примерно так:

30749 0

Число обозначенное красным ? размер фрагмента анимации. Не уверен в том, на сколько важно это значение при редактировании. Следующее за ним значение всегда 0.

Следующая линия примерно такая:

24 0 0 1 2 3 4 2 6 7 1 9 10 11 12 9 14 9 16 1 18 19 1 21 22

Число, обозначенное красным ? общее количество костей модели. Составляется с учётом Scene Root + в данном случае 23 кости. Пределом для костей модели является значение 25. При превышение данного количества будут проблемы в отображении модели. Последующие числа ? древо иерархии костей. Первые 2 ? всегда ноль. Дальнейшие зависят от положения и вращения костей. GOAT формирует текстовый файл при извлечении скелета, показывающий структуру.
Итак, для большей конкретики быстро сделаем пример человеческого скелета. Если пронумеровать все кости начиная с нулевого базового индекса получим следующее:

Bone Bone Name
Index Array
0 Scene Root
1 bone_pelvis
2 bone_RThigh
3 bone_Rlowerleg
4 bone_Rfoot
5 bone_abs
6 bone_torso
7 bone_head
8 bone_jaw
9 bone_eyebrow
10 bone_Rclavical
11 bone_Rupperarm
12 bone_Relbow
13 bone_Rhand
14 bone_Lclavical
15 bone_Lupperarm
16 bone_Lelbow
17 bone_Lhand
18 bone_LThigh
19 bone_Llowerleg
20 bone_Lfoot

Теперь поместим древо иерархий и приведём в соответствие с последовательностью названия. Получим следующий список:

Bone Bone Name Hierarchy Parent Bone
Index Array Array Name Array

0 Scene Root 0 No parent, by convention a 0 goes here
1 bone_pelvis 0 Scene Root
2 bone_RThigh 1 bone_pelvis
3 bone_Rlowerleg 2 bone_RThigh
4 bone_Rfoot 3 bone_Rlowerleg
5 bone_abs 0 bone_pelvis
6 bone_torso 5 bone_abs
7 bone_head 6 bone_torso
8 bone_jaw 7 bone_head
9 bone_eyebrow 7 bone_head
10 bone_Rclavical 6 bone_torso
11 bone_Rupperarm 10 bone_Rclavical
12 bone_Relbow 11 bone_Rupperarm
13 bone_Rhand 12 bone_Relbow
14 bone_Lclavical 6 bone_torso
15 bone_Lupperarm 14 bone_Lclavical
16 bone_Lelbow 15 bone_Lupperarm
17 bone_Lhand 16 bone_Lelbow
18 bone_LThigh 0 bone_pelvis
19 bone_Llowerleg 18 bone_LThigh
20 bone_Lfoot 19 bone_Llowerleg

Теперь мы можем наблюдать соотношение. Тоже можно проделать и со скелетом слона.

Следующая страница выглядит при мерно так. Я её урезал чтоб не вылезать за границы страницы:

45 0.00000 0.05000 0.10000 0.15000 0.20000 0.25000 0.30000 0.35000

Линия фактически показывает шаги времени в каждом кадре. То есть общее число кадров 44 (+ первый) и по 0.05 секунды каждый, начиная с 0.00000 . То есть для ускорения анимации вполне можно изменить нужные значения.

Следующий блок ? это часть, определяющая скелет.

Scene Root 0 0 0 16560 0 1 0
bone_E_platform 45 45 0 16560 0 1 0
bone_E_back 45 45 720 17100 0 1 0
bone_E_right back thigh 45 45 1440 17640 0 1 0
bone_E_right back lower leg 45 45 2160 18180 0 1 0
bone_E_right back foot 45 45 2880 18720 0 1 0
bone_E_left back thigh 45 45 3600 19260 0 1 0
bone_E_left back lower leg 45 45 4320 19800 0 1 0

Это только часть блока, но для понимания достаточно. Первая колонка ? название кости. При добавлении/переименовании костей в MS3D тут необходимо вносить изменения. Будьте осторожны и внимательны при этом процессе иначе в случае ошибки игра не сможет правильно осуществить привязку.

Следующая колонка ? число кадров для каждой кости. Если нет никаких вращений ? значение равно нулю. Иначе оно равно общему числу кадров ? 45 в данном случае.

Следующая колонка ? позиции кадров. Опять, для Scene Root это ноль, для остальных ? 45.

Следующая колонка несколько сложней. Тут указывается регистрация вращения в анимации. Высчитывается по принципу
Кадрx4x4
В нашем случае
45x4x4 ? 720

И дальнейшие значения кватерионов вращения.

Четвёртая колонка ? значение ?погашения?, связанна с преведущей и указывает на местонахождение данных позиции.
Расчёт шага по формуле:
Кадрыx4x3
45x4x3 ? 540

Эти расчёты очень важны при удалении добавлении элементов и ошибка в них будет означать либо неправильное вращение либо вообще файл CAS небудет конвертироваться назад.

Фактически все последующие данные в файле CAS - это данные вращений и позиций костей. Это не значения в координатах x\y\z\ а в структуре игры, но к счастью KnightErrant так же добавил значения в x\y\z для топоров в MS3D .

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



p.s. перевод весьма вольный и в пределах моего понимания

Ссылка на оригинал тутора от камрада Bwian - http://www.twcenter.net/forums/showthread.php?t=228459

В качестве примечания ссыли на необходимые для работы инструменты:

1. Скачать - Аним прога
2. Скачать - Python 2.5
3. Скачать - Milkshape 3D

Все вопросы по данному сообщению, задавайте здесь - Мастерская Medieval 2 TW
Copyright © «Империал»



-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Последние обновления за 14.04.10 07:46
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --