LightWave 3D. Сложная анимация в LightWave 3D - скелеты
(Продолжение, начало в №41)
К "сложной" анимации принято относить два типа - использование скелетов и работа с множеством частиц/сложной деформацией объектов. Как примерно происходит работа с множеством, вы уже могли понять из предыдущего материала, в рамках которого мы рассмотрели варианты изменения траекторий движения объектов по определённым законам, хотя, стоит отметить, эта тема несколько сложнее, и её мы рассмотрим в следующий раз. Сегодня же поговорим о скелетной анимации, которая используется повсеместно...
Сама суть скелетной анимации - автоматизация трудоёмких процессов. Ведь не секрет: для того, чтобы показать шагающего персонажа, нужно следить за множеством параметров, работать на полигональном уровне с изменением пропорций графических примитивов. Причём именно эта работа очень сложна, особенно в современных условиях, когда используются объекты с огромным количеством составных элементов. Но... не трудно догадаться, что все эти изменения пропорций можно описать общими математическими законами, и это сильно облегчает задачи моделлеров и аниматоров.
LightWave3D отличается по концепции от других систем 3D-моделирования и анимации, потому как сама программа разделена на две ключевые отдельные части - Modeler и Layout. Это обуславливает удобное разграничение рабочих процессов, но при этом Modeler гораздо сильнее по функциональным возможностям, нежели Layout. Причём в Layout вы можете явно увидеть процесс работы с костями (Bones), но создавать скелеты удобнее при моделировании, а не при формировании сцены. Очень многие из тех, кто только начал освоение LightWave3D, но при этом имеет опыт общения с другими трёхмерными пакетами, столкнулись с проблемой: в Layout работа с созданием скелетов выглядит достаточно трудоёмкой, а иногда и совсем не понятной. Каков выход?
На самом деле он прост, потому как в Modeler предусмотрен промежуточный вариант - скелегоны. Что это и с чем едят? Давайте рассмотрим на конкретном примере.
Создание скелета в Layout...
Для начала смоделируем обычный цилиндр (инструмент Disk) в Modeler'e. Вы помните, как это делается, но на всякий случай повторим:
- Запускаем Modeler и Layout. Переходим к Modeler.
- Включаем инструмент Create а Disk.
- Рисуем произвольно фигуру цилиндра.
- Не закрывая её Enter'ом, вызываем окно свойств формируемого объекта (нажимая на кнопку Numeric или просто "n" на клавиатуре).
- Выставляем, к примеру, следующие параметры: количество сторон (Sides) - 24, количество сегментов (Segments) - 12, Bottom - 0 м, Top - 3 м, центр Х - 0, центр Y - 0, центр Z - 1. Желательно, чтобы вы повторили выбранные параметры, и у вас получилось именно то, что изображено на рисунке.
- Выходим из окна Numeric, нажимаем Enter, сохраняем объект под именем Cyl001.lwo.
- Не выходя из Modeler, передаём объект в Layout (крайняя правая верхняя кнопка с выпадающим меню, из которого выбираем пункт Send Object to Layout).
- Переходим в Layout и видим нашу модель. В меню окна отображения выбираем вид Right (ZY), а в качестве отображения для удобства возьмём вариант Wireframe (цилиндр отобразится в виде каркаса).
- Нажимаем на клавиатуре "=", в меню выберем название первой кости, иногда её называют "родительской", потому как последующая на автомате будет наследовать её свойства и иметь с ней "родственные" связи. Назовём её "Bone1".
- На изображении появилась первая кость, чтобы войти в её свойства, нужно нажать "p" либо просто выйти в окно Properties через нижнее меню управления. В данном случае не будем ничего менять, потому как по умолчанию стоит длина (Rest Lenght), равная 1 м, а у нас цилиндр высотой в 3 м, а костей мы будем делать тоже три. В данном случае может быть уместно поставить активным флажок Bone Active.
- Нажимаем "=", создаём ещё одну кость, повторяем операцию ещё раз и получаем третью.
- Всё, теперь мы можем деформировать объект по своему усмотрению по трём костям, растягивать, сжимать, вращать в рамках трёхмерного представления.
Сами точки соединения костей в данном случае не принципиальны, то есть кости можно относить на расстояние друг от друга. Этот момент интересен с точки зрения первого знакомства и экспериментов, но на практике вы будете использовать множество дополнительных возможностей, касающихся, например, параметров изгиба с эмуляцией мускулатуры и так далее.
Создание скелета в Modeler
Итак, предыдущие действия мы выполнили за 12 пунктов. Теперь обнулите (закройте) сцену в Layout и перейдите к нашему цилиндру в Modeler. Будем создавать скелегоны. Делаются они очень просто: закладка Setup а Create Scelegons. После чего мы просто шаг за шагом указываем мышью точки разбиения объекта на кости (будущие кости:)).
Сохраняем наш объект и переносим в Layout. Теперь уже в Layout'е входим в закладку Setup и выбираем Convert Selegones into Bones. Всё, наш скелет создан, и гораздо быстрее. Данная методика хоть и быстра, но имеет один недостаток - нет обратного хода, то есть вы не сможете потом этот скелет редактировать в Modeler'e, причём скелегоны и кости имеют разные свойства, и в более расширенном представлении они отражены в Layout.
Но, в принципе, по существу всё очень удобно. Например, вы смоделировали некоего персонажа: человека, робота, паука, правильно сформировали скелет и всё - переводите объект в Layout, транслируете скелегоны в "кости" и занимаетесь непосредственно анимацией. И, конечно, зря очень многие находят в таком разбиении непонятность, на самом деле к такому варианту очень быстро привыкаешь.
Анимация
Анимация скелетов происходит точно так же, как и с обычными объектами, то есть вы можете менять в различных режимах вращение, смещение и т.п. Ваши модели "оживут" в буквальном смысле этого слова.
При этом стоит отметить один важный момент, который актуален для скелетной анимации. В её рамках вы часто работаете с так называемой прямой кинематикой. Другими словами, например, чтобы поднять руку модели, в которой что-то находится, вы смещаете сначала плечо, потом предплечье, а после и кисть. Но в большинстве случаев, даже часто не совсем осознанно, используется инверсионная или инверсная кинематика (IK), в рамках которой вы изначально изменяете положение кисти, а весь остальной "скелет" также меняет месторасположение других костей согласно определённым законам и родительским связям.
Почему на этом стоит заострить особое внимание? Именно потому, что некоторые аниматоры неосознанно используют IK, думая, что так всё и нужно, не зацикливаясь на проблеме естественности. Например, вы часто можете встретить анимации, в которых персонажи неестественно ходят и двигаются, хотя, по идее, их движения должны быть более натуральными. Один аниматор меня спросил о том, что бы ему посоветовали, как лучше построить скелет, где и какие кости добавить. На самом деле нужно поменьше увлекаться автоматизацией и иногда работать ручками и головой.
Кстати, инверсная кинематика - это практически бич 2D-анимации в случаях, когда используются пакеты, предусматривающие наличие скелетов. Конечно, рисовать тогда нужно гораздо меньше, на всё тратится мало времени, но результаты... В принципе, неправильное использование инверсной кинематики видно сразу, а хорошие и качественные продукты на особом счету.
Для практического освоения материала рекомендуется использовать примеры сцен из того, что поставляется с программой.
Кристофер,
christopher@tut.by