WarCraft 3: Этап I: оснастка скелета

Анимация от "А" до "Я"

Основная часть

Этап I: оснастка скелета

Теория

Первое, с чего начинается каждая анимированная модель - это скелет. Здесь могут оказаться полезны хоть какие-нибудь познания в анатомии, например, чтобы определить, где должна находиться кость, отвечающая за движения нижней челюсти.
Скелет может состоять из множества костей, но для основных анимаций гуманоида в WarCraft III понадобится как минимум 16. На изображении 1.1 эти кости показаны синими, красными и жёлтыми кружками. Красное - правое, синие - левое, жёлтым обозначен осевой скелет. Как правило, между названиями левых и правых костей отличие лишь в префиксе буквы "L" или "R", или слова "Right" или "Left". Серые объекты - дополнительные кости, используемые в частных случаях, и хелперы (помощники).
Примечание: Helper (помощник) - это кость, к которой не присоединены вершины.
Линиями показаны зависимости костей, для ног они расположены в порядке от пальцев стопы (Bone_Toes) до кости, отвечающей за бедро (Bone_LegUp); для рук в порядке от хелпера Weapon до плечевого пояса (Bone_ArmUp). Родительские кости ног крепятся к тазу (Bone_Pelvis), а кости плечей и кость головы (Bone_Head) к груди (Bone_Chest). Эти осевые кости никак друг от друга не зависят, но как правило крепятся к хелперу Root (Bone_Root), который используется для передвижения всей модели, например, при прыжке, или вращения, как при перевороте. За оружие обычно отвечает кость Bone_Weapon, но могут встречаться и другие названия (например, в модели лесного тролля за топоры отвечают кости Axe1 и Axe2).
Вообще, никто не ограничивает вас в названии ваших костей, но правильные названия помогают в понимании и облегчают процесс анимирования модели.
Важно: располагать кости следует так, чтобы они попадали в место сгиба, при повороте той части тела, за которую отвечают, именно поэтому, например, Bone_Head должна находиться около середины или ближе к основанию шеи.

1.1 (вид спереди)

На картинке 1.2 вы можете видеть положение основных костей во время одной из анимаций.

1.2.

Что касается скелета портрета, то тут основополагающими костями будут Bone_Chest, Bone_Head и кости, отвечающие за нижнюю челюсть и мышцы верхней (так как сама кость верхней челюсти неподвижна). Но для правдоподобности движений и выражения эмоций следует использовать ряд других костей. Например, отвечающих за брови, щёки, веки, уголки рта, и т. д.
Изображение 1.3 показывает правильное расположение костей портрета моего орка-снайпера, обратите внимание на положение кости, отвечающей за нижнюю челюсть.

1.3

Что касается оснастки скелета для животных, предметов и прочего, то тут всё аналогично, нужно лишь чётко себе представлять, что к чему должно крепиться и как должно двигаться.
Вот пример скелета (62 кости) хищного растения:

1.4

Практика (01-14)

Итак, пришло время попрактиковаться. Я, для примера, вытащил модель техножреца (tech-priest) из «Warhammer 40.000 Dawn of War: Soulstorm» и буду сейчас делать скелет, а потом и анимации именно для него.
Примечание: есть определённые весьма сложные способы конвертации из Warhammer 40.000 с одной или несколькими анимациями, но я пока не углублялся в эти премудрости, да и это больше относится к конвертации, нежели к анимированию.
Совет: если во время каких-либо операций Mdlvis выдаёт ошибки типа «Access Violation», перезапустите программу. На всякий случай также можно предварительно пересохранить модель в другой файл.
Я уже импортировал в Mdlvis модель техножреца и назначил все необходимые текстуры и материалы:

1.5

Переходим в Редактор анимаций (F3) на вкладку Скелет. Скорее всего, в модели-болванке, на основе которой вы делали свою модель, уже есть одна или несколько костей, советую оставить только одну, если их несколько, и переименовать в Bone_Root.
Создать кость можно простой командой через главное меню:
Создать\Кость (Ctrl+B)
Обратите внимание, кость имеет название bone_new0, все последующие новые кости будут иметь такие же имена, за исключением номера, который будет последовательно увеличиваться. Новая кость также не имеет прикреплённых вершин, и поэтому пока является хелпером.

1.6

Пусть наша первая новая кость будет отвечать за голову персонажа.
Отключим видимость ненужных поверхностей и передвинем кость к середине шеи. Теперь нам надо выделить вершины, которыми будет управлять данная кость.
Иногда нахождение некоторых вершин требует изрядной сноровки, и приходится использовать различные виды, «бегать глазами по рёбрам» от одной вершины до другой, а иногда даже выбирать вершины наугад, а затем исключать ненужные.
Выделив вершины, удостоверьтесь, что нужная кость тоже выделена, и нажмите кнопку Пересвязать вершины (п. 1 на 1.7), именно пересвязать, так как пока все кости были автоматически привязаны к исходной кости, в нашем случае это Bone_Root.
Заметьте, тип объекта изменился на кость , а количество связанных вершин теперь выражается натуральным числом, отличным от нуля (п. 2 на 1.7).
И немного об индикации вершин: чёрными становятся вершины, непосредственно привязанные к выделенной кости (а когда кость не выделена, её имя отображается в "Списке костей, влияющих на выбранные вершины" на правой панели Mdlvis), а серыми – вершины, зависимые от выбранной кости посредственно, т. е. через другие дочерние кости-посредники.

1.7

Примечание: если вершины оказываются бесхозными, т. е. не присоединены ни к одной кости, иногда Mdlvis автоматически создаёт кость bone_null и привязывает к этой кости бесхозные вершины.
Переименуем нашу кость в соответствующее ей название: Bone_Head.
Теперь создадим кость, отвечающую за торс. Согласитесь, немного неудобно постоянно после создания кости двигать её из нулевых координат, к счастью, есть возможность избавиться от этого неудобства. Для этого, мы сначала выделим нужные вершины, а потом уже создадим кость. Она появится в середине скопления точек, но может и отклониться в сторону области, где вершин ощутимо больше.
Создание кости после выделения вершин (п. 1) и место образования новой кости (п. 2):

1.8

Теперь пересвяжем выделенные вершины с костью, передвинем её в место сгиба (область пресса) и переименуем в Bone_Chest.
Примечание: названия Bone_Head и Bone_Chest очень важны, так как некоторые триггеры используют кости с таким названием. Для зданий также важна кость Bone_Turret, которая отвечает за крутящуюся турель, как, например, в модели орудийной башни.
Если бы мы сейчас перешли к анимированию, то обнаружили бы, что при перемещении/повороте/масштабировании кости отвечающей за торс, все вершины, зависящие от Bone_Head даже не шелохнутся, хотя должны, ведь анатомически голова присоединена к туловищу шеей и зависит от его перемещения.
Исправляется это созданием зависимости одной кости от другой. Для того, чтобы сделать кость Bone_Head зависимой от Bone_Chest, иначе говоря, сделать кость Bone_Head дочерней Bone_Chest, выделим Bone_Head и используем инструмент "Связывание объектов" (п. 1 на 1.9). Выберите кость, к которой вы прикрепляете будущую дочернюю кость (п. 2 на 1.9) и нажмите кнопку "Завершить связывание" (п. 3 на 1.9).
Теперь кость Bone_Head (дочерняя) привязана к Bone_Chest (родительская), т. е. будет в первую очередь повторять все движения родительской кости, например, при повороте туловища на 90 градусов, голова будет глобально повёрнута на столько же градусов, но относительно туловища своё положение не изменит.
Определить привязанность кости достаточно просто, жёлтыми кубами отображаются дочерние кости (п. 4 на 1.9), а чёрными – родительские (п. 5 на 1.9).

1.9

Теперь для вас не составит труда оснастить остальной скелет вашей модели, но помните несколько важных правил:
  1. Следите, чтобы одни и те же вершины не были одновременно присоединены к нескольким независимым друг от друга или не имеющим общего родителя костям. Иначе могут быть известные многим баги с растяжением и масштабированием при вращении или перемещении.
  2. Не оставляйте вершины "бесхозными" – всегда присоединяйте их к какой-либо кости. Буквально за неделю до завершения этой статьи я встретился таким багом, что в модели одного пользователя нашего форума не было видимых костей, но создалась уже упомянутая bone_null, которая каким-то образом стала невидимой для w3me, а Mdlvis вообще вылетал при входе в редактор скелета. Решить проблему помогла оптимизация в Mdlvis, создание новой кости в w3me и удаление сбоящей bone_null через блокнот.
  3. После создания кости в выделенных вершинах не обращайте внимания на красный куб в точке начала координат – это обманка, как бы признак того, что созданная кость была перемещена оттуда.
  4. При клонировании объекта (Создать\Клонировать объект (Ctrl+V)), клон создаётся в координатах идентичных координатам клонируемого объекта и выделяется автоматически.
И один совет: пока не создавайте точки крепления (аттачи), они могут мешать во время создания анимаций, а детальнее мы разберём их в конце статьи.
Вы также можете проверять правильность прикрепления вершин и скелетных связей на тестовых (лучше однокадровых) анимациях, если вы уже знакомы с редакторами "Анимки" и "Движение" (1.10).

1.10

Ещё следует отметить такое свойство объектов, как "Синфазность". Поставив флажок с таким названием, вы делаете объект синфазным, т. е. постоянно повёрнутым "лицом" к игровой камере. Этим самым "лицом" определяется поверхность, обращённая в положительную сторону координат по оси X:
» Окно "Иерархия"
Я думаю, немного информации об этой опции не помешает.
По команде "Вид\Иерархия (H)" можно вызвать окно "Иерархия" (1.0.1).
В нём отображаются все кости и другие объекты скелета (п. 1 на 1.0.1). Чтобы видеть собственно их иерархию, нужно поставить галочку в соответствующем поле, после этого слева от иконок объектов появляются иконки папок (п. 2 на 1.0.1), открытая папка показывает родительскую кость с нижележащими дочерними, а закрытая, соответственно, кость без выпадающих дочерних (п. 3 на 1.0.1). Открывать/закрывать папки можно нажатием, как ни странно, кнопки "ОК" внизу окна или двойным кликом левой кнопкой мыши по объекту.

1.0.1

Судя по всему, окно "Иерархия" еще не доработано Алексеем, неудобно и мало чем полезно для редактирования скелета, так как единственное, что в нём можно сейчас сделать – это переименовать объект, и то при наборе текста горячие клавиши остаются активны, т. е. при написании, например, буквы "т" ввод текста прекратится, и на модели отобразятся нормали. Но это моё субъективное мнение.
Полнофункциональным аналогом такой иерархии является Редактор узлов в War3 Model Editor.
Вот, какой скелет получился у меня:

1.11

В нём 42 кости и 1 помощник.
Связи между костями можно просмотреть, используя команду:
Вид\Объекты\Скелет (1.12)

1.12

На этом оснастку скелета можно считать законченной.

Просмотров: 5 535

Комментарии пока отсутcтвуют