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

Тема в разделе "Уроки по созданию видео в The Sims", создана пользователем filfil3, 7 июл 2012.

Статус темы:
Закрыта.
  1. filfil3
    filfil3

    Проверенный
    Сообщения:
    210
    Дата: 7 июл 2012 | Сообщение #1
    Как «отвязать» игровую анимацию от окружения и получить возможность её редактировать.

    Для урока использовались программы:
    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» и возьмём первый попавшийся:

    [​IMG]

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



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


    [​IMG]

    [​IMG]

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


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

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


    [​IMG]

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

    Проверенный
    Сообщения:
    210
    Дата: 7 июл 2012 | Сообщение #2
    Решение:
    Вернёмся к анимации, которую мы выбирали.
    [​IMG]

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

    [​IMG]

    [​IMG]

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

    [​IMG]

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

    [​IMG]

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

    [​IMG]

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

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

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

    [​IMG]

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

    [​IMG]

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

    [​IMG]

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

    [​IMG]

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

    [​IMG]

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

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


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

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

    [​IMG]

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

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



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


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