Подобно 2D-персонажу, 3D-персонаж задаётся простым текстовым файлом. Этот файл имеет расширение .act3d и использует тот же синтаксис, что и другие WME-файлы. Ниже приведён пример такого файла:
ACTOR3DX { NAME = "trinity" CAPTION = "Trinity" INTERACTIVE = TRUE SCRIPT = "actors\trinity\trinity.script" SCALE = 180 ;--- скорость VELOCITY = 70.0 ANGULAR_VELOCITY = 400.0 ;--- внешние файлы MODEL = "actors\trinity\trinity.x" FONT = "fonts\outline_red.font" CURSOR = "sprites\arrow.sprite" SHADOW_MODEL = "actors\trinity\trinity_low.x" SHADOW_TYPE = "stencil" ; настройки тени реального времени LIGHT_POSITION { -40, 200, -40 } SHADOW_COLOR { 0, 0, 0, 128 } ; настройки простой тени SHADOW_SIZE = 12.0 SHADOW_IMAGE = "actors\trinity\shadow.png" ANIMATION { NAME="idle" LOOPING=TRUE } ANIMATION { NAME="walk" LOOPING=TRUE EVENT { FRAME = 4 NAME = "footstep" } EVENT { FRAME = 16 NAME = "footstep" } } }Большая часть указанных свойств опциональна. WME пытается подставлять для них приемлемые значения по умолчанию.
В первом блоке определены обычные свойства объекта: имя, отображаемый заголовок, интерактивность и файл сценария. Вам они уже должны быть знакомы. Если нет, обратитесь за информацией к главе Персонажи.
Свойство SCALE определяет масштаб персонажа. Вам понадобится задать это свойство в том случае, если модель Вашего персонажа имеет отличный масштаб от модели сцены, тем не менее масштаб персонажа также может быть изменён динамически в игре для достижения определённого эффекта (например, уменьшение персонажа в результате магического воздействия). Это свойство также автоматически изменяет скорость ходьбы.
Скорость же задаётся следующими двумя свойствами. VELOCITY - задаёт скорость ходьбы, ANGULAR_VELOCITY - определяет насколько быстро персонаж поворачивается.
FONT и CURSOR - стандартные свойства, уже известные нам.
Свойство MODEL указывает на файл модели в формате Microsoft X (.x). Допустимо несколько строк MODEL. Это позволяет собирать анимации из нескольких файлов. Внимание: некоторые программы 3D-моделирования не позволяют задавать названия анимационных сетов в X-файлах, они экспортируют безымянные анимационные сеты (например, Blender). В этом случае название анимации по умолчанию соответствует названию X-файла.
Следующие свойства задают тень персонажа. WME поддерживает несколько типов теней. Свойство SHADOW_TYPE указывает, какой именно тип тени будет использоваться. Оно может принимать следующие значения: none (нет), simple (простая), flat (плоская) или stencil (шаблонная). Значением по умолчанию является stencil.
Если Вы указали flat или stencil, Вы можете также задать цвет тени (обычно это не нужно) и, что более важно, координаты источника света (LIGHT_POSITION). Позиция источника света определяется относительно позиции персонажа и задаёт длину и направление тени. Это свойство задаётся координатами X, Y и Z. См. изображение ниже:
Если Вы используете простые тени (simple), Вам понадобятся следующие два свойства.
SHADOW_SIZE задаёт размер чёрного пятна,
а с помощью SHADOW_IMAGE Вы можете заменить пятно другой картинкой.
Если изображение не задано, WME будет использовать картинку по умолчанию.
Убедитесь, что Вы задали правильный размер, даже если Вы не используете
простые тени. Следует помнить, что WME может сделать откат к простым теням,
если аппаратные возможности пользовательской машины не поддерживают плоские или шаблонные тени.
Опциональное свойство SHADOW_MODEL указывает на специальную низкополигональную версию модели персонажа, которая будет использоваться для создания шаблонных теней. Если модель персонажа весьма детализирована, Вам необходимо создать низкополигональную модель тени, в противном случае использование шаблонных теней снизит производительность в Вашей игре. Следует отметить, что в модели тени должна быть точно такая же структура костей, что и в основной модели персонажа.
Последняя большая секция файла задаёт анимации. По сравнению с 2D-персонажами здесь большая разница. Вместо нескольких
анимационных файлов все анимации хранятся в X-файлах. Каждый X-файл может содержать
один и более анимационных сетов. Например, X-модель Вашего персонажа может включать в себя анимационные сеты
walk и idle. Из игры Вы сможете запускать эти анимации по их названиям с помощью метода
PlayAnim.
Существует несколько специальных (зарезервированных) названий для стандартных анимаций, а именно: Walk, Idle,
Talk, TurnLeft и TurnRight. Эти анимации используются автоматически.
Блок ANIMATION позволяет Вам задавать дополнительные опции для этих анимационных сетов. Определение анимаций опционально (в отличие от предыдущих версий WME, использующих формат MS3D).
Описание анимации начинается с задания её названия (NAME). Название определяет анимационный сет, для которого Вы задаёте свойства.
Свойство LOOPING указывает, должна ли данная анимация воспроизводится непрерывно или же только один раз. Некоторые программы 3D-моделирования могут экспортировать информацию об этом непосредственно в X-файл, а некоторые - нет. В последнем случае Вам нужно задать свойство LOOPING.
Первый блок, описывающий анимацию, включает в себя два вложенных блока
EVENT. Эти блоки указывают, что всякий раз, когда заданный кадр воспроизводится,
запускается программное событие. Опытные пользователи WME уже знают это
по работе с обычными спрайтами. В приведённом примере задано, что кадры
4 и 16 создают событие footstep (звук шагов). Вы можете использовать эти события
в сценариях для создания эффектов, зависящих от анимации.