Reset xform 3ds max что это

Обновлено: 05.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. Эта модель, как и модель игрока, требует очень различных движений скелета, для того что бы работать должным образом.

alt

Bend

1. Edit Poly

Корректное масштабирование происходит на уровне элементов (Element) модификатора Edit Poly. Для начала нужно использовать модификатор и редактирование нужных подобъектов Modify – Modifier List – Edit Poly – Element. Выделив так весь объект, его можно масштабировать. Преимущество этого метода в том, что масштабировать можно не весь объект, а его часть. Для этого всего лишь понадобится выбрать другой тип подобъектов.

Edit poly

После этого объект изогнется корректно, но окажется повернут. Это произошло потому, что во время масштабирования на уровне элементов объект смещается в обоих направлениях. Из-за этого сместилась опорная точка Pivot объекта, следовательно и изгиб произошел иначе. Тем не менее, изгиб полностью корректный. Остается только повернуть объект.

2. XForm

Это полноценный модификатор, который обрабатывает трансформации объекта для корректности дальнейшей работы. Для использования нужно перейти в Modify – Modifier List – XForm – Gizmo. После выделения гизмо можно масштабировать объект.

Xform

При изменении гизмо, изменяется и сам объект. Однако все трансформации будут корректно обработаны и не повлияют на работу при дальнейшем моделировании. Однако перемещать гизмо объекта не рекомендуется. Из-за этого смещается опорная точка всего объекта и управление трансформациями становится неудобным.

3. Reset Xform

Это утилита предназначена для того, чтобы обнулить уже осуществленное масштабирование. Reset XForm создаст на объекте одноименный модификатор и перенесет информацию о масштабировании на гизмо модификатора. Для использования инструмента нажмите Utilities – Reset XForm – Reset Selected. Объект обязательно должен быть выделен и не находиться в группах с другими объектами.

Reset xform

Используя вот такие несложные инструменты, модификаторы всегда будут применяться правильно.


Stex



Просмотр профиля


secco



Просмотр профиля


imageNATION



Просмотр профиля

Reset X-form - находится в утилитах. Работает просто: у тебя что-то выделено, идешь в утилиты, находишь эту байду, и жмёшь одну единственную кнопку Потом он появится в стеке модификаторов. Сделай коллапс.

Нужно это для того: представь, сделал бокс 10х10х10 едениц.
А потом отмаштабировал его по высоте до 50 процентов. Но Макс будет помнить что по высоте он всё-таки 10 едениц. Возникает путаница при применении некоторых модификаторов. (Например лофт: ты возмёшь шейп, который отмаштобирован, а Макс воспримет его без маштаба.)

Это касается также и Мув, и Ротате.


Stex



Просмотр профиля

Вот ещё, при применении утилиты у меня объект выворачивается наизнанку. Почему это происходит ?


imageNATION

FFD 2x, 3x и 4x модификаторы не изменяют форму после Bend.


Применяю модификатор Bend с нужными настройками:


Чтобы придать плоскости нужную форму применяю модификатор FFD 3x3x3:


Теперь приступаю к редактированию контрольных точек, и тут выясняется, что они ничего не изменяют. Нет, конечно Изменения есть, но только нано-миллиметрические:


Другие объекты такой формы редактируются как положено. Здесь же, модификатор Bend что-то вносит в структуру или в масштаб сетки этой модели, что после она не редактируется модификаторами FFD 2x, 3x и 4x вообще.

Система единиц измерений стоит на сантиметрах:



Даже Reset XForm не помогает , что удивляет еще больше . Кто поможет прояснить ситуацию? бывает такое, у меня в максе 12 частенько, и не только после бенда, а на плоских объектах не всегда срабатывает (видимо такой алгоритм ффд, что на абсолютно плоских объектах вершины двигаются, но на очень милипиксельное расстояние), но есть такое харкорное решение (если кто знает как решить иначе буду благодарен объяснению) — просто потянуть эти контрольные вершины ффд бокса, потом конвертануть и потом еще раз ффд и уже все гнется нормально. да реально странно работает ффд после бенда, причем ffd(box) работает по-другому, ни как ffd234, хоть и двигает точки на нормальное расстояние, но косячит с мешем в целом. как вариант испоьзовать между ффд и бендом модификатор shell, а потом удалять лишнее Используйте не просто FFD 3x3x3, а именно FFD box. А у него в настройках (set number of points) установите 3х3х3 И тогда все заработает. просто потянуть эти контрольные вершины ффд бокса, потом конвертануть и потом еще раз ффд и уже все гнется нормально.

ewclide, Благодарю за помощь! Теперь действительно все гнется! Можно даже не конвертить, а просто положить с верху еще один FFD.

Scutum, нет, FFD Box гнет сетку не так как нужно, даже её искажает.

ainex, не надо применять Shell и возиться с ним, там достаточно просто положить с верху Edit Poly и приподнять/опустить 1 какую-нибуть вершину, ребро или полигон минимум на 0.002 или 0.025 — то тогда плоский меш, условно говоря, выйдет из своей "плоскости" и FFD начнет работать. Или даже перед тем, как применить Bend к плоскости, достаточно в Editable Poly приподнять/опустить любую 1 вершину или полигон на те же величины, то даже после Bend — FFD будет работать.

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


Придется ручками выдавить некоторое количество вершин, полигонов или ребер, чтобы Scale смог разжать обратно. В общем, Суть, думаю, ясна.

Вот также действует Bend и другие подобные, в том смысле, что они что-то вносят в структуру плоскости, что для FFD настает абсолютная плоскость — т.е. получатся, как с тем Scale, и приходится ручками выбивать из "Плоскости" плоский меш — приподняв/опустив 1 вершину полигон, ребро, или вообще весь меш повернуть инструментом Rotate на 0.01* градусов — тогда он "выбьется из плоскости" и FFD начнет с ним работать, как положено.

Странный, конечно, у него алгоритм. Вот при стандартном Максовском Plane - все идет отлично, тут же что-то странное. По идее он должен захватывать точки (вершины, полигоны, ребра) некими областями/зонами, но, как-то это реализовано не так, как надо.

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