Уроки 3D Max 3D MAX РазноеПоиск по тегам : 3D Max, 3D MAX Разное, Создание карт смещения в V-ray, 3D уроки, 3D Tutorials, 3d uroki |
| Создание скелета животного |
| 20.02.2008 г. | |
|
Описание создание скелета животного в максе крайне редкое явление. Ну что ж попытаемся исправить это досадное упущение. И так темой сегодняшнего рассказа будет создание жизнеспособного рига непарнокопытного животного (хотя риг парнокопытного животного делать почти точно также). Половину субботы у меня ушло на создание вот этой коняки - такое медиум поле получилось- и, не смотря на ее непритязательный вид, она нам вполне подойдет. В конце концов это руководство по ригу, а не по моделингу - поэтому прошу все комментарии по поводу модели оставить при себе :) )
Рисунок 1
Я не буду рассказывать как создавать кости - надеюсь любой, кто столкнется с данной задачей найдет в Интернете анатомию и срисует скелет (лично я так и сделал). Единственное о чем стоит упомянуть - хотя передние ноги стоят ровно, я создавал кости в согнутом положении. А потом их выравнивал (этим я добился правильной ориентации Preferred Angles, то есть если мы посмотрим на ориентацию костей, ось ротации Z (Gimbal) находится в той же плоскости, что и плоскость сгиба, только в этом случае можно гарантировать, что кости не будут крутиться, когда мы назначим IK-решатель). Маленький совет - двигайте кости только в плоскости изгиба, Если это невозможно (например скинпоза человека с полусогнутыми и полуопущенными руками (так действительно будет настраивать скин удобнее), то начиная от родителя и вниз по иерархии сначала поворачиваем кости - ставя плоскость изгиба в нужное нам положение и только потом двигаем суставы в нужное нам место.
Рисунок 2
Прежде чем приступить к настройке скелета встаньте на четыре свои конечности, на кончики пальцев, и сделайте пару кругов по комнате. Спросите зачем? Ну на это есть три важные причины: Ну сколько можно сидеть за компьютером? - разомнитесь. Своими выбрыками вы весьма повеселите окружающих. Важно понять, где у лошади, какие суставы- то есть самый верхний (по середине туловища) это ваше плечо, второй (где начинаются ноги) - это локоть, третий (на <коленке>) - это запястье, ну и пальцы - это я про ваши передние ноги, с задними немного легче, там суставов поменьше, поэтому сами разберетесь, если нет то возвращайтесь к началу абзаца. Теперь мы знаем, например, что в передней ноге вторая и третья кости не могут разогнуться, образовав угол направленный вперед - ведь это наш локоть, ну и т.д. Задняя нога
Рисунок 3
Итак, приступим. И начнем с задней ноги - три длинных кости - значит две пересекающихся IK (для тех, кто не знает, как создавать решатели инверсионной кинематики - Animation/IK Solvers/HI Solver именно этот тип мы будем использовать чаще всего). То есть создаем одну Ik от первой кости до третей, другую ik от второй до четвертой (я хочу, что бы вторая ik отвечала за положение ноги, а первая за углы наклона между костями). Проверяем, что получилось - действительно вроде первая икушка меняет углы, но не сдвигает всю ногу. А вторая делает что то странное и не то что я хотел. Отменяем все сдвиги которые мы только что сделали и создаем два shapes-линии которыми мы будем управлять ногой - копыто и стрелочку. Подвинем их на нужное место, и назначим стрелочке Position Constrain относительно копыта ( Animation/ Constrains/ Position Constrain-появится пунктирная линия которой вы тыкаете в копыто)- стрелочка прыгнет на копыто и все ваши попытки поставит ее на место нагло проигнорируются. Position Constrain позволяет связать положение одного объекта с другим. Мы выбрали этот способ создания констрейна (есть еще парочка) потому, что при этом автоматически был создан Position List-контроллер который правда ни чего не делает, но сильно облегчает жизнь. И так, что же мы наделали, давайте разберемся - для этого делаем раз ( c)
Рисунок 4
Написать это было намного труднее, чем сделать - честное слово. Передняя нога
Рисунок 5
Буду краток - тоже самое, что и задняя. Спина
Рисунок 6
Прежде чем приступать к созданию рига создадим несколько линий- для контроля сзади и назовем Ass , для контроля переда ( Brest) , для середины ( называйте как хотите) и еще одну линию при создании которой будем использовать Smooth vertices , для чего перед тем как создавать линию включим initial type - smooth - начинается эта линия в начале цепочки костей , вторая точка посередине и точка три в конце ( эта линия понадобится при создании spline IK) Далее - Animation/IK Solvers/ SplineIK Solver-выбираем первую кость потом последнею и нашу линию. Появится Ik Goal (синенький крестик ) и три points .Совмещаем пивоты управляющих элементов с надлежащими points( Hierarchy panel/ Effect pivot only - Alt A , выбираем точку) , прилинковываем (см/ рис. 6). Теперь нужно написать скрипт на поворот спины вдоль продольной оси. Но прежде чем мы приступим к этой процедуре, мы должны выбрать правильную ось вращения для наших shapes , а для этого придется сделать маленькое отступление и познакомить вас с отстойной системой Gimbal . Gimbal Система в которой пишутся все повороты в программах по 3 D-графике ( макс отнюдь не исключение). И главное что стоит понять это зависимость осей вращения друг от друга и от порядка обхода
Рисунок 7
Порядок обхода мы можем узнать в motion панели, у данного объекта X Y Z - и это значит что ось Z не зависит от поворотов самого объекта, а зависит только от положения его родителя (предыдущего по иерархии объекта, в данном случае Scene Root и повернуть вы ее не сможете) ось Y -зависит только от оси Z .X - зависит от обеих осей вращения и (какое счастье) совпадает с локальной осью на туже букву, вот на эту ось (не на X, а на первую ось в обходе) и приходится львиная доля скриптов , wire parameters and expressions . Но как повернуть нужную нам ось в нужное положение? Если мы просто повернем объект, то получим вот такую картину-(см рис 7), то есть две оси схлопнутся в одну, так называемый Gimbal Lock ( кстати это основное положение для столь частых глюков в 3д программах) и если писать анимацию в другой системе, например Local, то скрипт будет выполняться на половину и или не будет вообще. По этому можно добавить еще одного родителя и поворачивать его или, что более правильно, поменять порядок обхода и сделать, так что бы нужная вам ось была первой в порядке обхода. Обратно к лошади У меня ось, которая мне нужна, это ось Y , по этому я выбираю обход YZX и приступаю к написанию скрипта. Выбираю IK Goal и перехожу в панель Motion.
Рисунок 8
Выбираю Twist End Angler, кликаю на знак вопроса и выбираю Float Script Строка первая - DependsOn $Ass $Brest Описание влияющих объектов. Спереди и сзади . p=DegToRad $Ass.Rotation.Y_Rotation.Controller.Value присваиваю переменной p значение Y вращения объекта Ass o=DegToRad $Brest.Rotation.Y_Rotation.Controller.Value Переменная o , объект Brest i=o-p От вращения переднего объекта ( он задает поворот грудины ) отнимаю вращение задницы ( до этого она влияла на поворот всего туловища, теперь влияет только на заднюю часть.) Ну вот и все. Может человек, который добросовестно прошел туториал макса, спросит, почему так просто, а где умопомрачительная иерархия, где второй скрипт на начальный угол. Отвечаю: во-первых, зачем усложнять? А во-вторых, если вы <правильный> скелет положите на бочок и покрутите, то ваш персонаж превратится в выжатую тряпочку - произойдет резкое перекручивание костей ( а ведь анимация смерти и падения входят в основной набор игровых анимаций Вы рожаете его в творческих муках, на ваших глазах он делает первые неуверенные шаги, как вы радовались, когда он побежал, а потом вы его убиваете. Убиваете! УБИВАЕТЕ!!!). Я не знаю, где Discreet заказывал уроки, но мне интересно, откуда такие ошибки, и почему ни слова о Gimbal. Шея
Рисунок 9
Шея последний элемент в настройке нашего скелета, и здесь мы будем использовать все то, что использовали раньше на полную катушку. Начнем с создания управляющих элементов и сплайна для ик решателя( особое внимание уделите голове, вы не должны вращать сам объект, и должны правильно выбрать порядок обхода) . Назначаем Spline IK .Назначаем на треугольники Position Constrain и прилинковываем. Настраиваем веса отношений приблизительно по отношению расстояний до управляющих элементов. Прилинковываем points . Создаем для кости головы orientation constrain относительно управляющего голову сплайна ( Animation/ Constrains/ Orientation) кость повернется под не нужным нам углом. Для того что бы избавится от этого выбираем кость и переходим в Motion панель и кликаем на Rotation (рис 10 )
Рисунок 10
Опускаемся ниже по панели. И ставим <сохранить смещение> (рис 11)
Рисунок 11
Рисунок 12
Источник: www.render.ru
Related items
Комментарии (0)
![]() Написать комментарий
|
| « Пред. | След. » |
|---|
