Как сделать 3д скин в 3д макс

Обновлено: 01.07.2024

В данной статье вы шаг за шагом узнаете, как при помощи 3D Studio Max 5.1, Character Studio 4 и Remedy 3D Studio Plugins создавать и экспортировать свои собственные модели персонажей для игры Max Payne 2. Материал, изложенный в данной статье, предназначен для людей, у которых уже есть опыт работы с 3DS Max и Character Studio.

Файлы, которые будут использованы, можно скачать отсюда: Skin_examples.zip

ПРИМЕЧАНИЕ: Если вы хотите пропустить процесс привязки модели к скелету, и просто опробовать KF2-Exporter, в архиве присутствуют файлы типа ExportPose.max, для каждой модели-примера, используемой в данной статье. Эти файлы содержат модели, привязанные к скелету, с предварительно настроенной развесовкой и готовые к экспорту.

Прежде чем начать, измените используемые 3DS Max единицы измерения на Centimeters (Сантиметры).

Загрузите скелет типа "Male" или "Female" (файл Male_SkinModeling_Pose.max или Female_SkinModeling_Pose.max)

• Выберите "Bip01"
• В разделе "Keyframing Tools" снимите флажок "Body Space Neck rotation"
• Включите режим Figure Mode (Режим Фигуры), кликнув по иконке "FigureMode On/Off". Когда режим Figure Mode включен, иконка окрашена в желтый цвет.

Перейдя в меню File, выберите команду Merge. Затем найдите свою модель персонажа, и добавьте ее.

Или же вы можете добавить одну из моделей персонажей, включенных в данную статью. Для использования доступны следующие модели.

• MaxPayne_Skin.max (мужчина)
• Cleaner_A_Skin.max (мужчина)
• MonaSax_B_Skin.max (женщина)

Если вы используете одну из этих моделей, вы можете пропустить следующие шаги, и сразу перейти к части «Привязка вашей модели к скелету».
• Конвертируйте модель в один объект типа "Editable Mesh"
• Выберите все грани и присвойте им всем Группу сглаживания (Smoothing Group) - 1.
• Убедитесь что суставы вашего персонажа, соответствуют положению суставов скелета, насколько это возможно.
• Почистите вашу модель, объедините нормали, удалите двойные грани, ребра и свободные вершины. Используйте для этого модификаторы "STL Check" и "Normal".
• Используйте функцию Reset Xform. Перейдите во вкладку Utilities и кликните на кнопке "Reset Xform" для того что бы сбросить все трансформации и масштабирование примененное к модели. Перейдите в стек модификаторов и сверните его, снова конвертировав модель в объект типа Editable Mesh.
• Переместите точку опоры модели в начало мировых координат. Для этого перейдите во вкладку Hierarchy/Pivot/Adjust Pivot и кликните на кнопке "Affect Pivot Only" после чего переместите точку опоры в начало координат (0,0,0). Находясь в Adjust Pivot/Alignment, кликните на кнопке "Align to World".

Откройте Редактор Материалов (Material Editor) и выберите тип материала "KF Material".
"KF Material" является единственным типом материала, который совместим с игровыми моделями.

Поставьте галочку напротив параметра "Diffuse", и кликните на слоте материала (None), после чего в появившемся списке выберите пункт "Bitmap"

Формат .DDS это единственный поддерживаемый тип графических файлов. Примените материал к модели.

Используйте материал типа "Multi/Sub-Object" для того что бы применить к одной модели несколько KF материалов. Номер слота материал Multi/Sub-Object соответствует номеру "Material ID" заданному в свойствах Editable Mesh. Откройте один из прилагаемых к статье файлов с моделями, для дальнейшего изучения.

• Выберите свою модель
• Примените модификатор Physique
• Перейдите в свиток Physique Level of Detail и в категории Skin Update выберите пункт Deformable и снимите галочки со всех пунктов кроме Link Blending. В категории Stack Updates поставьте галочку напротив параметра "Reassign Globally"

• Кликните на "Attach to Node" и в свитке выберите "Bip01"
• Находясь в окне Physique Initialization, в свитке Link Settings снимите галочку с параметра Continuity, а свитке Vertex - Link Assignment в выпадающем списке Blending Between Linksвыберите "4 links" и снимите галочку с параметра Create Envelopes. Затем нажмите на кнопку "Initialize".

• Запретите неиспользуемые ссылки (unused links). Это делается для того, что бы избежать проблем с загрузкой/сохранением веса для вершин модели. Выберите подобъект Link модификатора Physique и выбрав неиспользуемые ссылки запретите их, сняв флажок с параметра Active расположенного в свитке Link Settings. Отключенные ссылки станут черными.

Развесовка вершин, осуществляется, так же как и скининг любого другого персонажа в Character Studio. Есть только два единственных ограничения:

  1. Один вес ваших вершин используется, максимум для четырех костей
  1. Ни одно из значений веса вершин, не может быть равным нулю. Вы можете проверить, соответствует ли ваша модель этим ограничениям, используя "Remedy Physique Tool".

ПРИМЕЧАНИЕ: Если вы решили использовать одну из моделей, что мы предоставили ля данной статьи, вы можете загрузить их развесовку прямо из файла the _weights.txt. Перейдите к следующей части, данной статьи, что бы узнать, как загружать и сохранять развесовку вершин.

• Выберите пункт Editable Mesh в стеке модификаторов вашей модели.
• Кликните на иконке "Remedy Physique Tool"

Открывшееся окно, отображает вершины к костям модели, влияющих на распределение. В нашем примере, на картинке мы видим как в MonaSax_B взвешенно 2399 вершины: 1824 вершины взвешенно на одну кость, 521 на две кости, 53 на 3 кости и 1 вершина на 4 кости. Нет вершин взвешенных на более чем 4 кости или с весом ниже допустимого или равным нулю. Если ваша модель имеет любую из этих проблемных вершин, выполните следующие действия:

Совет: Заблокируйте вершины, перед тем как модифицировать основу модели. Таким образом, вы избежите путаницы с развесовкой вершин, при внесении изменений.

Для того что бы загрузить и сохранить развесовку вершин вашей модели, кликните на иконке "MP2_SaveLoad".

В нижней части свитка есть три кнопки. Кнопка Save/Load vertex weights говорит сама за себя. Вы можете загрузить развесовку старой модели в любую новую модель, но результат будет непредсказуемым, если новая модель сильно отличается от оригинала.
"Load indexed weights" работает, только если количество вершин модели не было изменено (вершины не были добавлены или удалены).

Перед тем как начать экспорт, что бы все трансформации модели были сброшены. (Положение [0,0,0], Вращение [0,0,0] и Масштаб [100,100,100]). Если модель не соответствует требованиям, выберите Hierarchy->Adjust Transform и кликните Reset: Transform and Scale. Так же проверьте, что бы точка опоры, по-прежнему была расположена в центре мировых координат (0,0,0).
• Удалите вершины с нулевым весом и >4 костей присвоенных весу, используя "Remedy Physique Tool"
• Выберите "Bip01"
• Примените Figure Mode
• Загрузите Мужской (Male) или Женский (Female) SkinExport_Pose.fig, в зависимости от вашего основного типа скелета. В позе экспорта, пальцы модели согнуты. Вы можете вернуть ваш бипед в свою первоначальную позу моделирования, загрузив один из файлов Мужской (Male) или Женский (Female) SkinModeling_Pose.fig.
• В меню File выберите "Export". Укажите желаемый каталог для экспорта. В разделе "Save as Type" выберите "KF2 Exporter". Используйте следующие настройки: [KF2_Exporter.psd].
• Нажмите OK.

Если вы хотите сделать свою модель персонажем, который будет управляться игроком (например, как Макс Пэйн или Мона Сакс), вы должны будите начать с копирования файла "database\skins\MaxPayne.txt". Скопировав файл, присвойте ему другое имя, например "database\skins\MySkin.txt". Затем создайте новую директорию под названием "MySkin" и скопируйте туда ваши, экспортированные из 3ds max, файлы "MySkin.kf2" и "MySkin.skd". Затем отредактируйте (в нижней части файла) файл "MySkin.txt" для использования своих собственных .kf2 и .skd файлов.

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

В этой статье речь пойдёт о том как быстро и качественно выполнять скининг моделей в 3ds max. Первым делом убедитесь, что ваш персонаж смотрит в нужную сторону (о том, по какой оси должен смотреть персонаж в вашем проекте, лучше всего будет спросить у программистов). Убедитесь что вы соблюли масштаб (лучше всего это проверяется привязкой модели к одной кости и экспортом модели в движок). Так же будет полезно сделать на модели 100% скейл, убить position (чтоб она стояла в нуле координат) и rotation. А лучше всего прогнать всю модель через бокс, как этой описано в этой статье. Только бокс создавать надо в нуле координат. Тогда вы гарантированно сможете потом мирорить (отражать) веса на модели через mirror mode, а это как никак половина работы. После назначения модифера skin ориджин у модели менять не рекомендуется, так как может случиться баг, когда в максе персонаж на месте, а в движке уезжает куда-нибудь в пол.


Применяем на нашу модель skin modifier, нажимаем Add и добавляем в него все нужные кости. Не забудьте поставить ваш бипед перед этим в figure mode. Под нужными костями я понимаю те кости, которые будут реально участвовать в будущей анимации, то есть как-то сдвигаться, поворачиваться или скейлиться. Часто бывает, что в скин добавляют всё что нужно и всё что не нужно. Например рутовую кость (обычно bip01), даммики nub (например Bip01 HeadNub), кость footsteps и т.д. Рутовая кость в скине не нужна, так как есть pelvis, да и к тому же к ней нельзя прискинивать, если в анимации будет использоваться ballance factor (тогда bip01 будет смещаться относительно pelvise). Nub'ы вообще не анимируются и нужны только самому максу для корректной работы бипеда, ну а про футстепсы я вообще молчу. Так же если вы используете твисты (twists), то их основные кости тоже добавлять не надо. Сами твисты разумеется unfreez'ите и добавляете в скин. Кстати, если ваш экспорт позволяет, то добавлять в скин можно не только бипедные кости, но и обычные bones, даммики и геометрические объекты (как я уже писал в статье по созданию скелета biped: c точки зрения скина - это ось или точка, а не геометрическое тело). Далее не забудьте узнать, нужна ли вам неразрывная иерархия в скелете, который вы добавляете в скин (если нужна, то не должно быть непривязанных костей, кроме рутовой). Иерархию в сцене можно посмотреть, нажав на кнопку schematic view. Кроме того, если вы привязываете модель, которая относится только к какой-то определённой группе костей (например штаны) и вам обязательно нужно сохранять иерархию, то следует помнить, что в бипеде есть пара неочевидных вещей: бедренные кости (R Thigh и L Thigh)привязаны не к pelvis а к первому от него позвоночнику (хотя выглядит, что как буд-то бы к пелвису). И второй такой-же момент с шеей и плечами. Плечи в бипеде привязываются не к верхнему позвоночнику, а к шее, хотя наследуют движение от верхнего позвоночника. Зачем было так мудрить - знают только одни разработчики character studio, но факт остаётся фактом. Link constraint за привязку не считается. Вообще же лучше всего, если ваш формат экспортёра позволяет вам делать анимацию на скелетах без иерархии. Это вам многое позволяет. Но не будем углубляться в анимацию, а пойдём дальше по нашей теме.

В скине есть такая вещь как энвелопы (envelopes). Вокруг каждой кости рисуется гизмо, похожее на колбасу, через которое можно настраивать веса точек, попадающих в это гизмо. Энвелопы бывают очень полезны, когда нужно привязывать модель с большим количеством полигонов (highpoly), или очень быстро сделать тестовую привязку lowpoly модели. Но так как нам надо качественно привязать низкополигональную модель, то они нам не подходят, потому что возни с ними много, а результат не всегда адекватен (двигаешь один конец энвелопа, а веса меняются на всех окружающих его точках). Чтобы не вызывать споров, хочу сказать что это моё ИМХО, и если вы с ним не согласны, то привязывайте энвелопами :-). Ну а всем остальным я рекомендую дальше осуществлять поточечную привязку вручную, и сейчас расскажу как это лучше всего сделать.


Ставим галочку на vertex и смело убиваем все веса, которые модифер автоматически назначил от envelopes (выделяете все точки модели и привязываете их к пелвису (pelvis) на 100%). Не сожалейте о них, так как скоро вы сами быстро пройдёте по всем точкам модели и назначите им веса без всяких ошибок. Кстати в восьмом максе для ускорения назначения весов в скине сделали специальную кнопочку с гаечным ключом. Теперь можно отказаться от забивания весов руками в строку Abs Effect. Жмём на weight tool и выделив нужные точки просто щёлкаем на кнопку с нужным коэффициентом.


Чтобы сразу видеть результат привязки и не назначать веса вслепую, очень хорошо сделать небольшую тестовую анимацию, на которой бы было видно как ведёт себя привязка на разных местах сгибов. На нулевом кадре ставим на все кости ключи дублирующие позу привязки (выделяем все кости, жмём на кнопку автокей (auto key)а за одно сразу и на key mode toggle, делаем правый клик на ползунке на кадровой шкале и жмём ОК), а дальше делаем через несколько кадров одну - две позы персонажа, в которых бы ноги и руки сгибались, спина гнулась, голова поворачивалась бы в сторону и т.д. чтобы сразу можно было оценить скининг и правильно выстраивать веса. Ключи можно копировать перетаскиванием с зажатым shift'ом.

Когда тестовая анимация создана, можно спрятать всё кроме самой модели и работать с весами. Начинаем с ног. Выделяем в скине бедренную кость (например Bip01 R Thigh) и все точки, которые хоть на сотую долю будут к ней привязываться. Так же выделяем все точки ноги, к которой относится выбранная кость. Дальше потихоньку начинаем назначать веса. Сначала меньшие (0.1 или 0.2), для точек на которые влияние будет слабее всего. Потом, зажав alt (так чтобы возле курсора появился знак минуса), убираем из выделения эти точки, а для всех остальных делаем вес побольше. Далее снова убираем из выделения точки, для которых нужные веса уже назначены, а для оставшихся продолжаем повышать вес, и таким образом до единицы. Потом выделяем следующую по цепочке кость - Bip01 R Calf (если в максе до 8 версии, то удерживая ctrl, чтобы не потерять selection точек, если в восьмом, то просто кликом - селекшн не потеряется), и таким же образом назначаем веса, начиная со слабых и переходя к сильным, постепенно убирая лишние точки из выделения. Таким образом:

Когда вся нога привязана, выделяем все её точки, включаем в скине mirror mode и жмём на кнопку с чемоданом (она привязывает противоположные по оси симметрии точки к соответствующим им костям). Бывает так, что точки, имеющие веса на кости pelvis отражаются некорректно - привязываются с теми же весами к той же кости, а не к своей кости. Если такое случилось, то можно выделить все точки c дробными весами между пелвисом и бедренной костью и привязать их на 100% к бедренной кости R Thigh. Потом привязать противоположные точки так же на 100% к их бедренной кости L Thigh. Потом выбрать Pelvis и все точки между ним и обеими бедренными костями и постепенно привязывать их к пелвису, всё так же убирая из выделения точки с малыми весами (те которые ближе к ногам) и повышая веса для всех остальных. Главное следить за симметрией выделения точек.

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

GoldenMaster

Да-да. Сейчас я научу вас, а может вы уже и сами все знаете, и сам подучусь, как привязывать модель к скелету. Нам понадобится:

-3Ds Max минимум 8 версия.
-Плагин для экспорта в формат SMD (в комплекте).
-Нормальные руки и мозги.

Вообще есть много способов привязки модели, я расскажу 2 из них. Первый на основе модификатора Skin, другой на основе Skin Wrap.

1 Способ – модификатор Skin

Импортируем броню, которая примерно похожа на вашу в 3Ds Max, подгоняем вашу броню под нужные размеры и удаляем импортированную. Далее применяем к вашей модели модификатор Skin. Рядом с надписью Bones клацаем Add и выбираем все кости. Можете подвигать кости, но сразу, же возвратите их на место с помощью Ctrl + Z. Нажимаем на кнопку Edit Envelopes и поставим галочку напротив Vertices. Теперь мы можем изменять массу вершин.

Немного теории: каждая вершина имеет определенный вес от 0 до 1, при этом вес распределяется на разных костях(примечание – почему-то в МиБ один вес может быть распределен только на 4 кости, иначе капут). Вес показывает, с какой силой кость воздействует на вершину.

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



2 Способ – модификатор Skin Wrap

Skin Wrap – это распределение веса вершин с похожей модели на другую. Иными словами, если у вас есть похожая модель на вашу, уже с привязкой, или вы хотите сделать ЛОДы, вес на вершинах распределится также, как и на модели, у которой уже есть привязка. Это способ очень удобен, если вы, например, забыли залатать какую-то дырку в броне, или надо срочно её отредактировать, а начинать с начала проставлять вес слом. Сначала возьмем похожую модель и максимально подгоним под неё вашу. Внимательно смотрите на подмышки, и пах.


Потом добавьте к вашей модели модификатор Skin Wrap. Немного ниже Parameters нажмите кнопку Add и добавите другую модель с привязкой! Не кости, а именно модель. Пойдет процесс генерации, может идти долго, в зависимости от сложности модели. Когда он закончится, нажмите на кнопку Convert to Skin. Вуаля! Теперь осталось немного подредактировать вершины как показано в первом способе.

Чтобы сделать 3D-модель или распечатать уже готовую на 3D-принтере, надо просто следовать инструкции. Никаких навыков и способностей не требуется. Главное — просто следовать простой инструкции.




1. Первым делом нам надо определиться, в чем мы будем делать свою 3D-модель. На ваш выбор — любой пакет 3D-моделирования. Вот краткий список программ, которыми можно пользоваться:

Blender (бесплатно);
Google SketchUp (бесплатно);
Openscad(бесплатно);(прислал пользователь klirichek,artoym)
FreeCad(бесплатно);(прислал пользователь klirichek)
AutoCad(прислал пользователь PHmaster)
3DS Max;
Maya;
Rhinoceros 3D;
SolidWorks;
Sculptris(прислал пользователь Darth Biomech)
и многие многие другие.

Главное требование — экспорт в формат для 3D-печати — .stl.

Однако самым простой способ — это смоделировать прямо из браузера, воспользовавшись следующими сервисами:

2. Далее переходим по ссылке. Нас встречает милый пингвиненок:


3. Затем вверху справа есть кнопочки входа. Жмем «sign up for free account». Этот логин может быть использован в других продуктах 123d от autodesk. Но об этом в следующих статьях.


5. Жмем на кнопку «Создать новый дизайн»:


6. Перед нами появляется редактор:


7. Перетаскиваем на наше поле кубик:


8. Для навигации можно использовать правую и среднюю клавиши мыши или панель навигации слева:


9. Теперь нам надо сделать любую 3D-модель, перетаскивая кубики. Здесь вам понадобится воспользоваться своей фантазией:


10. После этого выделяем все, что получилось:


11. Жмем кнопку «Сгруппировать»:


12. Вот такая модель уже готова к печати:


13. Самое главное надо сохранить. Нажимаем кнопку Design.


14. Download for 3d printer.

15. Выбираем сохранить .stl:


16.Теперь у нас есть готовый файл для отправки на принтер. Если у вас нету дома 3D-принтера, то можно поискать неподалеку 3D-сервисы, которые готовы помочь распечатать.


17. У нас есть принтер PICASO 3d designer и софт к нему — Polygon. Запускаем программу:


18. Дальше все просто:


19. Масштабируем деталь для экономии материалов и времени:




20. Подготовим задание:


21. Из настроек ставим большую скорость, все остальное стоит по умолчанию. Жмем запустить подготовку


22. Компьютер немного считает задание и выдает нам результаты:


23. Просто сохраняем на microSD флешку задание:




24. Вставляем флешку в принтер:


25. Выбираем меню:


26. Выбираем SD-карту:



27. Выбраем файл, находим нужный нам и отправляем на печать.

28. Всё, принтер начал разогреваться.

30. Ждем 13 минут.

31. Наше изделие готово!

Читайте также: