Как отвязать игровую анимацию от окружения

Статус
Закрыто для дальнейших ответов.

filfil3

Проверенный
Сообщения
206
Достижения
110
Награды
297
Как «отвязать» игровую анимацию от окружения и получить возможность её редактировать.

Для урока использовались программы:
Blender
S3PE

Pose Player
Файл с игровыми анимациями FullBuild0

Важно: в этом совете я постараюсь объяснить только принцип работы с анимацией. Вопросов, связанных с работой в программах Blender или Milkshape, импортированием-экспортированием анимаций и пользованием S3PE и MTS Cmomoney PosePlayer мы затрагивать не будем, чтобы избежать повторений. Поэтому, если вы собираетесь впервые заняться собственной анимацией, вам прежде всего необходимо изучить темы F.A.Q. по созданию поз , Коробка поз "Pose Player" , скачать и установить весь указанный в этих уроках софт и немного научиться управляться с Blender или Milkshape (интерфейс и простые операции). Это всего лишь метод, думаю, он может быть реализован как в Blender, так и в Milkshape. Но поясню я этот метод в Blender, ибо с Milkshape знаком совсем мало.

---------------------------------------------------------------------------------------------------------------------

Безусловно, хочется порой сделать красивую и подходящую анимацию в своё видео, но сделать её с нуля, не будучи профессиональным или опытным аниматором, весьма и весьма сложно. Но очень хочется. Поэтому использовать анимации EA, изменённые под наши желания – идеальный выход. Но, полагаю, что многие артмейкеры и мувимейкеры сталкивались с проблемами редактирования «заводских» игровых анимаций.

Проблема:
Давайте попробуем вытащить какую-нибудь «заводскую» анимацию, немного её поменять и посмотреть, что у нас получится.
Файл, в котором содержатся игровые анимации, по умолчанию находится по такому пути:
С:\Program Files\The Sims 3\GameData\Shared\Packages\FullBuild0
Но адрес может немного меняться в зависимости от диска и папки, куда вы установили игру.
Отсортируем в S3PE клипы, например, по слову «sitting» и возьмём первый попавшийся:

1.1475867411.jpg

Переименуем его, например в «a_my_test_animation_x» и экспортируем в свой список поз (Pose Player) пока без всякой редакции в Blender или Milkshape. А затем посмотрим, как это выглядит в игре. В этом нам поможет мой любимый персонаж Хобо
smile.gif
:



Всё выглядит вполне прилично и так, как в обычном игровом процессе. А теперь попробуем сделать в Blender простую операцию – подвинуть персонажа, скажем, чуть вперёд. А именно изменим значение «X Location» кости «b__ROOT__» на 0.5:





А теперь импортируем полученный вариант в игру и посмотрим, что получилось:


«О, боже!!! Гадёныши!!!» - кричит бедный Хобо – «Шо ж вы со мной делаете?!»
Ну и как-то жаль его становится…

Причина:
Причина, по которой происходит такое вот непотребство – вся ветка костей под «b__ROOT_export__» включительно. Точнее не сами кости, а их «управление».


4.1475868097.jpg

Они отвечают за положение сима в пространстве, взаимодействие сима с объектами и всё остальное подобного назначения. В принципе, эта ветка костей – очень удобная и полезная штука, но… только в ПО разработчиков. Мы же, не видя и только догадываясь о том, за что эти косточки отвечают и как работают, вынуждены либо редактировать их вслепую (а это занятие крайне долгое и нудное и, на мой взгляд, почти безрезультатное), либо вообще от них избавиться (как бы «отключить»). Я предлагаю попробовать второй вариант.
 

filfil3

Проверенный
Сообщения
206
Достижения
110
Награды
297
Решение:
Вернёмся к анимации, которую мы выбирали.
1.1475867411.jpg

Экспортируя из S3PE, её можно не переименовывать вообще, а сохранить под тем же названием.
Импортируем эту анимацию в Blender, найдём в Outliner трэк (channel) кости «b__ROOT_bind__» (та самая ветка, которая нам нужна) и сдвинем персонажа в любую сторону так, чтобы в окне «3D View» нам были видны те самые «ненужные» кости. Ну, например, сдвинем его по оси «X». Предварительно надо передвинуть курсор в «DopeSheet» на другой кадр, где нет кейфреймов:




Далее фильтруем трэки по слову «ROOT» и блокируем кости «b__ROOT_bind__» и «b__ROOT__» от изменений (нажимаем на замочек). Это необходимо сделать, чтобы не удалить эти косточки – они нам нужны.

7.1475868629.jpg

Затем:
1. Сбрасываем фильтр, чтобы в «DopeSheet» нам были видны все трэки.
2. Снимаем выделения трэков (наводим курсор на трэки и 2 или 3 раза нажимаем клавишу «A», чтобы все трэки сначала стали белыми, а потом чёрными).
3. Переводим курсор в окно «3D View», нажимаем клавишу «B» (в Blender по умолчанию) и мышкой выделяем косточки так, как показано на скриншоте ниже:

8.1475868740.jpg

4. Необходимо обязательно проверить, нет ли у нашего персонажа выделенных костей, привязанных к мешу. Если есть, то снова нажимаем клавишу «B» и, удерживая «ALT», снимаем выделение.
5. В «DopeSheet» мы уже видим, что трэки выделенных костей окрасились в белый цвет. Переводим курсор на трэки и нажимаем «Delete», тем самым их удаляя.
6. Далее вновь возвращаемся к трэкам «b__ROOT_bind__» и «b__ROOT__», снимаем с них блокировку (замочек должен быть открыт) и удаляем созданный нами ранее кейфрейм (выделяем его правой кнопкой мыши и нажимаем «Delete»):

9.1475868930.jpg

7. Всё, первая часть закончена. Теперь сохраняем проект Blender под любым названием. Например, «My test project». Файл анимации, который мы экспортировали из S3PE, можно удалить – он больше не нужен.

-----------------------------------------------------------------------------------------------------------​

Теперь нам надо создать наш главный проект, в котором мы будем издеваться над подготовленной нами «заводской» анимацией – тот самый «701» или «702». Рекомендую всё же именно «702»:

10.1475869019.jpg

Самое удобное то, что в нашем случае его можно называть как угодно, без всяких префиксов «a_». Главное, чтобы название было латиницей и не менее 8 символов. Ну, назовём его, как показано на скриншоте выше – «Hobo_puts_on_lugs».
Традиционным способом импортируем его в Blender и присоединим к нему наш сделанный ранее проект «My test project.blend». В меню выбираем «File» -> «Append»:

11.1475869076.jpg

Находим проект «My test project.blend», жмём на него, и он открывается в виде нескольких папок:

12.1475869110.jpg

Нам нужна папка «Object», а в ней файл «Body». Выбираем его, жмём «Link/Append from Library» и теперь в окнах «Outliner» и «3D View» видим такую картинку:

13.1475869166.jpg

Теперь всё, что нам надо сделать – это скопировать всё из появившегося «Body.001» в «Body». Выделяем мышью «Body.001», в окне «DopeSheet» клавишей «A» выделяем все трэки(channels) и все кейфреймы (трэки должны быть белыми, кейфреймы жёлтыми), далее «Key» -> «Copy Keyframes»:

14.1475869234.jpg

Затем выделяем «Body», точно так же выделяем все трэки (кейфреймы выделять необязательно), выставляем курсор на нулевой кадр и вставляем скопированное (либо нажимаем «CTRL+V», либо «Key» -> «Paste Keyframes»). После того, как кейфреймы появятся, «Body.001» можно (и нужно) удалить.

Всё! Теперь всё готово для того, чтобы результативно сдвинуть нашего персонажа, как мы и хотели в самом начале:


Если мы запустим в Blender нашу анимацию, то заметим, что двигаются только те косточки, которые привязаны к мешу. Остальные неподвижны. Это хорошо.

Ну а теперь наконец-то сдвинем нашего персонажа по оси «X» на 0.5, но только проделаем это с костью «b__ROOT_bind__»:


Обратите внимание на то, что значение «X» первого кейфрейма уже не равно «0», поэтому к этому значению надо прибавить 0.5 и ввести результат.

Сохраняем проект, экспортируем файл анимации в список «Pose Player» и с радостным нетерпением загружаем игру, чтобы посмотреть, что у нас получилось:



О, чудо! Наш помощник Хобо сдвинулся ровно настолько, насколько мы ему и сказали!


P.S.
Вот собственно, и всё. Теперь нам нет нужды мучительно редактировать «вслепую» ветку костей «b__ROOT_export__» и отображения анимации в Blender и самой игре будут абсолютно идентичны, за исключением кости «b__ROOT__» (там меняются оси координат). Пара дней тренировки – и вся процедура занимает 3-5 минут. Таким методом можно «отвязать» абсолютно любую игровую анимацию и изменять её как вашей душе угодно. Этим же способом можно последовательно комбинировать разные анимации или составлять из нескольких одну.
Да, и последнее в этой части – всего вышеописанного достаточно для анимаций, которые не перемещают и не поворачивают симов относительно местности (т.е. к «статичным»).
Желаю удачи и много анимашек, хороших и разных.
 
Статус
Закрыто для дальнейших ответов.
Верх