Персонажи от первого лица

Материал из CryWiki Russia

Перейти к: навигация, поиск


Содержание

Персонаж первого лица

Обзор

Данный документ рассказывает о создании комплектов оружия, если быть точнее, предоставляет пример оружия, основную анимацию и объясняет процесс экспорта в движок. Другие пакеты будут рассмотрены после появления экспотеров для них

Характеристики оружия

Настройки геометрии

FirstPersonCharacters image001.jpg

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

Локальные трансформации этого меша должны быть нулевыми по всем осям. А центр ("pivot") располагаться в центре всемирных координат(Position 0,0,0; Rotation 0,0,0)


Примечание:
Меш/Геометрия должны быть всегда в центре всемирных координат без вращения



Иерархия рук

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

Sandbox FirstPersonCharacters image002.jpg


Три красные кости в предплечьях являются хелперами запястья и используются для деформации запястий. Они имеют простое выражение, которое соединяет кости рук во время вращения по оси X

Примечание:
Как раз сейчас удобно перевести позицию и вращение всех элементов иерархии в значение 0. Таким образом вы будете иметь функцию возврата назад.


Sandbox FirstPersonCharacters image003.jpg


Полностью вся иерархия рук в схематичном виде

Sandbox FirstPersonCharacters image004.jpg

Хелперы запястий должны быть скрыты после после применения оператора границы, чтобы они не были случайно анимированы. Это заставило бы прикладные выражения становиться неэффективными.

Необязательно сохранять точно такую же иерархию структуры, использующуюся здесь. Also changing the way the wrists are solved is possible.

Вес геометрии

{{Примечание|Обычно применяется модифицируя и уничтожая в стеке модификаторов для того, чтобы вы могли применить модификатор границ. Это удаляет неважные и ненужные для геометрии образования, которые в будущем могут стать причиной проблем.}

Sandbox FirstPersonCharacters image005.jpg

Оператор, примененный в 3Ds MAX, не имеет значения. Вы можете использовать или Physique, или Skin при создании веса геометрии. Оба поддерживаются движком

Информация:
Когда вершины одновременно влияют на более, чем две кости, вес на одной из них, влияющее меньше всего. будет удален и восстановлен после того, как в зоне влияния останутся две кости:

В нашем примере Skin используется для веса костей рук. Модификатор имеет значение 0, но кроме этого есть еще и значение стандартной позиции, настроенной ранее. Это значение стандартно в движке и помогает в процессе отладки.

Только кости, необходимые для деформации меша в настройках путей, добавлены в лист костей модификатора Only bones which are necessary to deform the mesh in a proper way were added to the bone list in the modifier.


Sandbox FirstPersonCharacters image006.jpg


Информация:
Кости в иерархии, имеющие отрицательное значение в начале своих имен, будут игнорироваться экспортером. Это оставляет размер экспортируемого персонажа малым. В данном пункте они были в иерархии слева для создания легкой связки выделения, когда используется физический модификатор.


Экспорт персонажа

Когда вы закончили настройку веса персонажа, вы готовы к экспорту рук в движок. Если плагин установлен в директорию 3Ds MAX, то будет виден на командной панели во вкладке утилиты. Выделите вашу геометрию рук и нажмите "Add selected" в секции "Object Export", если она не была автоматически добавлена. В секции "Bone Export" это автоматически добавит самый верхний узел иерархии, путей в этом случае.

Sandbox FirstPersonCharacters image007.jpg

Установите Drop-down лист в "Object Export" секции "Export To" Персонажу(*.chr) и нажмите "Export Nodes". Этот экспорт компилирует версию вашего объекта в папку с max-файлом. Если вы хотите определить имя, отличное от исходного, вашему персонажу(обычно оно генерируется на основе названия max-файла), то выберите одно из раскрывающегося списка "Export To".ю Экспорт возможен только в директорию или поддиректорию max-файла.

Сейчас вы можете открыть Character Editor в редакторе...


Sandbox FirstPersonCharacters image008.jpg


...и загрузить своего персонажа.


Sandbox FirstPersonCharacters image009.jpg

Большая зеленая стрелка показывает направление в движке, относительно которого все персонажи должны стоять.

Вооружение для вида от первого лица

Геометрия вооружения

Модель рук теперь готова и мы можем подготовить оружие для их совместного использования. Вы видите стандартную модель вооружения, с некоторыми элементами, выделенными красным.


Sandbox FirstPersonCharacters image010.jpg


Совет:
Чтобы процесс добавления веса сделать удобнее, вы можете перемещать части, предназначеннst для последующей анимации и присвоения собственных костей, на определенное количество юнитов(units). После применения модификатора веса вы с легкостью сможете переместить их на исходную позицию для анимации костей, имеющих вес такого же значения, кроме главной модели.

Для геометрии применяются правила, расписанные в секции рук

Ни одно перемещение не должно быть применено к геометрии и после применения модификатора веса должен быть сделан reset-x-form и удалена из стека модификаторов, для избавления от нежелательных трансформаций. Центр("pivot") должен быть выравнен во всемирных координатах по центру, а модель иметь точку в позитивной y-координате.

Иерархия оружия

Те же самые правила трансформации должны быть сохранены для костей, созданными вами для иерархии оружия,или хотя бы некоторым из них, служащий определенной цели. В 3Ds MAX это не имеет значения, если кости или хелперы(dummies) использованы для определения иерархии. Экспортер рассматривает их как кости, пока происходит экспорт.

Sandbox FirstPersonCharacters image011.jpg

All those names can be changed code wise of course; the names here are for demonstration purposes.


Weapon Term(Термин Оружия): используется для присоединения к дулу эффекта выстрела. Shells(Оболочка): используется при присоединении эффекта частиц для оболочки. Collision(Коллизия): используется для вычисления позиции влияния , когда используется оружие ближнего боя. Разнообразные прикрепления хелперов, использующиеся для контроля позиции частей оружия. (attachment_top; attachment_side; attachment_bottom; etc)


Хелперы или кости, которые не влияют на элементы или части геометрии вооружения, должны быть добавлены в модификатор деформации. Удостоверьтесь, что они добавлены в иерархию прежде, чем будет выполнен экспорт персонажа, иначе они не будут доступны в движке.


Примечание:
До применения модификатора деформации, объедините в руках персонажа из исходного max-файла, источник верхнего узла оружия на корневой кости рук персонажа.


Fixed FirstPersonCharacters image012.jpg


Совет:
когда используется Физический модификатор, выберите самый верхний узел в иерархии с которым вы хотите деформировать ваш меш на инициализации.


Экспорт оружия

После завершения установки веса, вы можете экспортировать вашего персонажа в движок. Для этого выделите меш вашего оружия, зайдите в CryEngine экспортер на панели утилит командной панели и добавьте его в секцию узлов(node section). Переключитесь на Character на "Export To" и нажмите кнопку "Export Node". Это экспортирование вашего персонажа в папку с max-файлом и наследует его имя. Вы можете также изменить имя вручную, используя настройки стандартного имени файла.

Чтобы увидеть вашего персонажа в Character Editor с мешом, привязанным к костям, вы должны добавить им skin-присоединение, установив в свойствах присоединения "Skin", выбрать руки и после создать новое присоединение. После этих действий персонаж прикреплен к костям и виден в редакторе.

FirstPersonCharacters image013.jpg

Анимации для персонажа от первого лица

Подготовка

Для того, чтобы Компилятор ресурсов(Resource compiler) корректно обращался с оружием от первого лица, вы должны создать запись в файле в animations.cba. В данном файла вся информация описывает вашего загруженного персонажа, то есть сжатое отношение анимации, путь к персонажу и прочее. Это пример записи, которая содержит все необходимые настройки для оружия от первого лица. Для детального рассмотрения этих параметров скачайте документ-референс в CBA-файле. (Ссылка) Если этот файл будет отсутствовать, то экспортер не сможет экспортировать анимацию, так как ему необходимо знать файл персонажа. If this entry is missing the exporter won’t export animations, because it needs to know the location of the character-file.

Экспорт анимации

В 3Ds MAX вы имеете два способа экспортирования анимации для анимации вашего персонажа. Наилегчайший путь, это установить временной отрезок на линии времени в точной позиции старта и конца анимации, предназначенной для экспорта.в движке Это хорошая идея - иметь начальную и конечную позицию по умолчанию, в таком случае смешивание анимаций будет происходить гладко.


Совет:
Вы можете создать свободную камеру во центре всемирных координат, которая будет смотреть в направлении положительной оси Y. When you set its FOV (field of view) to the same value you use in-game, it becomes an accurate representation of what your animation will look like from the players view. Вы также можете использовать соединение constraints в камере для вызова хелпера "camera_helper", который является исходным для главной кости рук персонажа, а после активировать параметры контроля камеры для изменения анимации, позволяет им контролировать этот хелпер. Обратите внимание, что точка старта и конца анимации для камеры должна обычно начинаться и заканчиваться в центре всемирных координат для предотвращения ненужных "прыжков" в вашей анимации в движке,между анимации, имеющей данный активированный хелпер и той, которая не имеет его.


Теперь установите временной проомежуток, который вы можете переместить в экспортер. Проверьте, добавлен ли правый объект в секцию узлов(node section) панели объектов. Это должно автоматически добавить основание вашего персонажа в лист "Bone Export". Если это не так, сделайте это вручную. Нажмите "Export Bones", введите желаемое имя анимации и сохраните её в папку, в которую вы ранее сохранили файл animations.cba.

Для предпросмотра вашей анимации в Редакторе персонажей, вы должны создать ещё один файл, который объясняет движку, которая анимация доступна данному персонажу("cal-file").

Ниже приведен cal-файл для примера оружия. Он содержит путь к папке анимации, имя анимации и их двоичную копию, так как назвали бы их "на диске"


Scar_fp.cal

  1. filepath = Animations1st_personSCAR_fp

select_01 = select_01.caf fire_bullets_right_01 = fire_bullets_right_01.caf idle_right_01 = idle_right_01.caf reload_01 = reload_01.caf


zoom_in_ironsight_01 = zoom_in_ironsight_01.caf fire_bullets_right_ironsight_01 = fire_bullets_right_ironsight_01.caf idle_right_ironsight_01 = idle_right_ironsight_01.caf zoom_out_ironsight_01 = zoom_out_ironsight_01.caf


//layers control placement of attachments

silencer_on_layer_01 = silencer_on_layer_01.caf reflex_on_layer_01 = reflex_on_layer_01.caf scope_on_layer_01 = scope_on_layer_01.caf


Файл должен быть сохранен в папку с персонажем, и иметь такое же имя, кроме расширения файла(*.cal*) Путь файла, который указывает папку анимации в корневой папке игры. Теперь введите все доступные анимации в cal-файл, и экспортируйте его из 3Ds MAX, они будут показаны в листе "Available Animations" Редактора персонажей.


FirstPersonCharacters image014.gif


Второй способ экспорта анимации использует окно "Sub Ranges", на панели таймингов("Timing")экспортера CryEngine . Вы можете добавить анимацию в лист, выделив "new range" введя и выбрав имя вашей анимации. Проверьте корректность введенного времени старта и конца. Проверьте, если источник вашего персонажа все ещё находится в листе костей. КОгда вы активируете "Export file per range" в области "Sub range", после нажатия "Export Bones", экспортер спросит путь экспорта, и экспортирует любую анимацию из списка "Sub ranges"

FixFirstPersonCharacters image015.jpg

Многоуровневая анимация

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

Уровни также могут использоваться для контроля размещения присоединений к оружию. В данном случае глушитель и магазин являются присоединениями.

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

Также для этого вида анимации вы можете использовать только статическую позицию. Для достижения активации "Manual range" в панели таймингов экспортера и введите точки старта и конца, чтобы установить то же время.

Sandbox FirstPersonCharacters image016.jpg

После экспорта анимации и добавления в cal-файле, вы можете протестировать её в Редакторе Персонажей.

Для добавления присоединения к вашему персонажу, создайте одно новое присоединения на панели присоединений Редактора персонажей. To add an attachment to your character, you have to create a new one in the attachments pane of the Character Editor.

Sandbox FirstPersonCharacters image017.jpg

В свойствах присоединения выберите "Done Attachment" и выберите кость вашего объекта для присоединения из раскрывающегося списка(в данном случае silencer_attach) После выделите корректный объект из браузера объектов, вы можете создать новое присоединения и нажмите "Apply" для загрузки из редактора. Это должно ясно обозначится на стандартной позиции вашей выделенной кости, когда вы создадите присоединение.

Для тестирования слоя, вы можете активировать первичную анимацию на стандартном персонаже(то есть на "idle"-анимации) по одну выделенному из листа "Available animations". Затем выберите одну из "вторичных" слотов анимации на панели анимации персонажей, и выберите слой анимации в листе . Части анимации, которые вызваны из "primary" анимации на данной кости должны быть описаны, на новой многоуровневой анимации.


Sandbox FirstPersonCharacters image018.jpg