• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

Урок по привязке меша к костям скелета.

Marvіn

Участник форума
Регистрация
17 Апр 2008
Сообщения
99
Благодарности
9
Баллы
180
К сожалению, некоторые изображения в теме побились...
Итак, в этом уроке я постараюсь максимально просто и доступно изложить основы прикрепления меша к скелету (biped).

Для урока я использовал 3dsmax 9, Kerrax ASC Importer\Exporter и GothicSourcer 3,14.
Кто не знает, GothicSourcer я использовал для декомпиляции файла HUMANS.MSB, который есть в комплекте G2MD. Таким образом я с этого файла вытащил файлы моделей и анимации (ASC файлы).

Итак, в 3dsmax я импортировал файл ARMOR_SLD_H.ASC, после чего получил следующее:
ef1706c2a749.jpg

то есть как видно — это простой меш внутри которого есть скелет.(Кубики внутри меша это есть скелет). Скелетом это тяжело назвать, но имеем то что имеем ….
f32a561d22f1.jpg

Вот собственно это чудо. Почему я так говорю, так это просто объяснить. Если в будущем планируется создавать хорошую, качественную анимацию, то надо строить свой скелет (biped), и его анимировать. Конечно можно использовать и этот, но это просто самоубийство времени, при чем жесткое! Если надо просто изменить несколько кадров анимации, там допустим поменять градус поворачивания тела, то конечно сгодится для правки и этот костяк. Но если надо все делать с нуля, то имейте ввиду, что лучше создать свой скелет.

Так продолжаем. Допустим есть новый меш, который надо прикрепить к скелету. Прежде всего удаляем старый меш, то есть выделяем его и жмем Delete, в следствии чего мы получим голый скелет (рисунок выше). Далее новый меш нужно подстроить под скелет:
3c9a7b93f90f.bmp

То есть методами масштабирования
a60bdc9bff12.bmp
(кнопка на панели инструментов), и методом передвижения
3400fb52e19a.bmp
меша. Так вот пробуем подогнать все точно под скелет, как на самом первом рисунке, чтобы скелет оказался внутри меша. Немного отойду от темы. Стоит заметить что надо учитывать, как создавать модель для скелета, то есть чтобы не получилось так что созданная модель мягко говоря не катит под скелет. В этом случаи, когда используется старый скелет, это просто катастрофа. Скелет можно править, НО, тогда, могут возникнуть ряд неурядиц и проблем с анимацией, или наоборот придется подправлять меш «на ходу», что тоже не всегда удобно. Вот собственно еще один аргумент в минус использования старого скелета. И вообще я не правильно говорю, всегда скелет настраивают под меш, но в этом случаи, если нужно только махнуть меш, а анимацию оставить, то надо как-то меш приспособить к скелету.

Продолжаем. После того как меш выставили на уровень со скелетом, отправляемся на вкладочку Modify(модификаторы)
f30a81488683.bmp
, выделяем наш меш и в списке модификаторов выбираем Physique(телосложение).
Вообще еще можно использовать модификатор Skin(кожа) место Physique, и настроек у него будет побольше, но так как модели низко полигональные, то особого смысла использовать этот модификатор я не вижу. Но если умеете с ним работать, то можно использовать и его.
Так вот после того как модификатор был наложен следующим действием будет привязка меша к скелету. Делается это так, на вкладке Physique нажимаем на кнопочку Attach to node
845b093a1787.bmp

и после этого нажимаем на том кубике скелета, у которого имя Bip01, он находится обычно по центру в тазовой кости скелета. Это так называемый корень нашего скелета.
935bb12a7999.bmp

Найдите его и точно к нему приатачте меш. (Для простоты просто перед атачем меша выделите все ненужные части скелета и командой Hide Selection скройте их.)
b80fe4985847.bmp

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

Так вот нажимаем кнопку Attach to node и сразу нажимаем мишкой на этом кубике. После появится окно Physique Initialization в котором идут условия составления телосложения. Особо не стоит заморачиваться, жмем кнопку Initialize
a29876db3d31.bmp

После того как инициализация будет выполнена, можно сказать что 30% работы выполнено. Теперь вполне можно импортировать кадры анимации и посмотреть где меш приклеился к скелету хорошо а где не очень...
adc392ab108d.bmp

Вот что у меня получилось при попытке проиграть анимацию ходьбы. Ужас. Все это говорит о том что есть вершины меша которые не склеились с костями, то есть кость не имеет никакого влияние на этот меш, поэтому происходит такая деформация. Это не страшно, и у кого как, у меня получилось так, у кого то результат может быть гораздо лучше. Будем это исправлять. Для этого выделяем меш, в модификаторе Physique выбираем Vertex(вершины).
af2d522838bb.bmp

Потом снова выделяем меш и видим следующую картину.
b1857c882c26.bmp

Наблюдаем что есть вершины(крестики) разного цвета.
Красный — на эту вершину влияет одна кость.
Вишневый — на эту вершину влияет две или более костей.
Синий — на эту вершину не влияет ни одна кость.
Синие это и есть наша цель.
Пока будем исправлять не привязные вершины. Для этого на вкладке Vertex Link Assignment выберите только синий квадратик.
72e3954d8d2b.bmp

Это даст нам возможность при выделении части меша, выделять только не привязные вершины, то есть синего цвета.
Теперь самый важный момент, на этой стадии решается как качественно наш меш будет себя вести при его анимировании. Он будет вести себя на столько качественно, на сколько качественно и правильно его привяжут к костям.
Обратите внимание на окошко Vertex Operations.
Здесь есть режимы и операции работы с вершинами. Нас интересует только несколько из них:
e3d2d161055c.bmp

Select – режим выделения тех типов вершин, которые указаны на на вкладке Vertex Link Assignment(смотри выше).
Assign to Link – назначать связь. Имеется веду назначить связь выделеной вершины с костями.
Remove from Link – удалить связь. Используем тогда когда видим что не к той кости привязали вершину, или вершина себя «плохо ведет» при анимации. В таком случаи ее надо привязать к другой кости или к нескольким сразу.
Lock Assignments – блокировать вершины. То есть если они заблокированы, то над такими вершинами нельзя произвести операции с назначением удалением связей.
Unlock Assignments – разблокировать вершины.Вот собственно только эти операции нам и надо.

Теперь самое важное. Привожу пример на части ноги:
3b5f1afa10d4.bmp

Так вот есть не привязаны вершины они выделяются синим цветом. Ось связей это изгибы, то есть где у скелета могут происходить изгибы. И собственно сама связь это и есть кость.
И последнее. Берем не привязаны вершины, смотрим с какой костью они на одном уровне и с помощью команды Assign to Link привязываем эти вершины именно к костям.
3ed2d854430b.bmp

Привязка происходит на уровне подсознания, надо хоть как то понимать и представлять какая кость на какую вершину влияет!!!
Также одну вершину можно привязать в нескольким костям одновременно. Это уместно тогда когда на вершину могут влиять две кости, например уровень колена или локтя, позвоночник и т.д.

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

Последний этап это тестирование нашей привязки. Для этого импортируем анимацию (желательно разнообразную), и проигрываем ее. Смотрим где вершины отрываются, неправильно себя ведут и т.д. Если таковы есть то правим их все тем же методом через Vertex.

Да и еще чуть не забыл:
Название меша должно начинаться на zm_имя , иначе при экспорте можно его потерять.

Все выше написано — это мое субъективное мнение и высказывание по поводу некоторых терминов и объяснений.

На этом все. Всем удачи.
 

marazmus

★★★★★★★★★★★
Основатель
Регистрация
7 Янв 2003
Сообщения
2.117
Благодарности
914
Баллы
385
Отличная статья, спасибо!

Статья размещена на подсайте по модостроению, по адресу:
Урок по привязке меша к костям скелета.

Если будут нужны правки, пиши в личку, выдам логин и пароль для доступа на сайт, чтобы создавать и править статьи самостоятельно. Спасибо.
 

Greg

Участник форума
Регистрация
8 Июл 2009
Сообщения
34
Благодарности
0
Баллы
150
Почему когда я импортирую файл ARMOR_SLD_H.ACS уменя модель совсем другая! Скрин вложил!
 

GeorG

Участник форума
Регистрация
27 Авг 2008
Сообщения
3.447
Благодарности
11
Баллы
295
Прикол... а че тебе с щитом, не нравится... :D ты вобще не понятно что импортировал в макс... :D Во вложении, файл ACS, и изображения того что должно быть... ::)

Модераторам: просьба сильно не рычать что не в тему… свой пост удалю завтра… ;)
 

marazmus

★★★★★★★★★★★
Основатель
Регистрация
7 Янв 2003
Сообщения
2.117
Благодарности
914
Баллы
385
Модераторам: просьба сильно не рычать что не в тему… свой пост удалю завтра…

Насколько я понял, идет обсуждение статьи, так что никто не собирается рычать...

МЕГАВОЛЬТпрошу заметить, я хоть и зарекомендовал себя злобным модератором - но я не рычал, я ругалсю...
Ну эт так... к слову...
 

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.049
Благодарности
1.168
Баллы
340
Gambit написал(а):
Почему когда я импортирую файл ARMOR_SLD_H.ACS уменя модель совсем другая! Скрин вложил!
Вообще-то если быть немного повнимательнее, можно заметить, что Марвин использовал 3D max 9 и плагин Керракса версии 2008 года. В новых версиях плагина скелет отображается именно так со всеми слотами и полупрозрачной моделью. Так что ничего страшного не случилось. Если данные вещи только мешаются, то их легко можно скрыть с экрана стандартными средствами макса. Полупрозрачность модели также легко убирается.
 
Последнее редактирование модератором:
Сверху Снизу