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

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

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

Статус
В этой теме нельзя размещать новые ответы.

Марвин

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

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

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

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

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

Так продолжаем. Допустим есть новый меш, который надо прикрепить к скелету. Прежде всего удаляем старый меш, то есть выделяем его и жмем Delete, в следствии чего мы получим голый скелет (рисунок выше). Далее новый меш нужно подстроить под скелет:
003.jpg
То есть методами масштабирования
004.jpg
(кнопка на панели инструментов), и методом передвижения
005.jpg
меша. Так вот пробуем подогнать все точно под скелет, как на самом первом рисунке, чтобы скелет оказался внутри меша. Немного отойду от темы. Стоит заметить что надо учитывать, как создавать модель для скелета, то есть чтобы не получилось так что созданная модель мягко говоря не катит под скелет. В этом случаи, когда используется старый скелет, это просто катастрофа. Скелет можно править, НО, тогда, могут возникнуть ряд неурядиц и проблем с анимацией, или наоборот придется подправлять меш «на ходу», что тоже не всегда удобно. Вот собственно еще один аргумент в минус использования старого скелета. И вообще я не правильно говорю, всегда скелет настраивают под меш, но в этом случаи, если нужно только махнуть меш, а анимацию оставить, то надо как-то меш приспособить к скелету.

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

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

Найдите его и точно к нему приатачте меш. (Для простоты просто перед атачем меша выделите все ненужные части скелета и командой Hide Selection скройте их.)
009.jpg
Вот на рисунке ниже видно как я скрыл все ненужные мне на данном этапе кости, и оставил только главную, то есть Bip01.

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

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

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

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

Наблюдаем что есть вершины(крестики) разного цвета.
Красный — на эту вершину влияет одна кость.
Вишневый — на эту вершину влияет две или более костей.
Синий — на эту вершину не влияет ни одна кость.
Синие это и есть наша цель.

Пока будем исправлять не привязные вершины. Для этого на вкладке Vertex Link Assignment выберите только синий квадратик.
014.jpg

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

Обратите внимание на окошко Vertex Operations.
Здесь есть режимы и операции работы с вершинами. Нас интересует только несколько из них:
015.jpg

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

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

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

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

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

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

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

Все выше написано — это мое субъективное мнение и высказывание по поводу некоторых терминов и объяснений. На этом все. Всем удачи.
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу