Physics Box Model in Milkshape3D

From Valve Developer Community
< Ru
Jump to navigation Jump to search
English (en)Русский (ru)Translate (Translate)


Финальный вариант физических габаритов

Бывают такие моменты, когда под рукой может не оказаться 3DS Max или Maya, а есть только какой-нибудь простенький 3D редактор. Конечно не обязательно создавать его в редакторе, можно просто за основу взять оригинальную модель, но физическая модель может получиться не правильной.

В данном уроке подробно описано создание физических габаритов в программе MilkShape 3D(en). На самом деле, по этому принципу можно создавать его абсолютно в любом редакторе.

Note.pngПримечание:Этот урок рассчитан на новичков в 3D моделирование. Вся статья крайне подробно расписана.

Что такое физические габариты?

Что такое физические габариты? Это упрощённая, грубая, 3D модель, которую платформа воспринимает как физическую оболочку оригинальной модели. Подробнее написано в статье Physics and Ragdolls(en). Там говориться почему движок не может воспринимать оригинальную модель как физическую оболочку.

Требования

  • MilkShape 3D(en).
  • Исходная модель.
  • Минимальные знания компиляции моделей.

Создание физических габаритов

Первым делом запускаем программу, и в меню загружаем нашу модель в .smd формате: File -> Import -> Half-Life SMD...

При этом вылетит окошко SMD Import. Это параметры загрузки нашей модели. Важно чтобы все три галочки были отмечены, если какая-то не отмечена, то поставьте её и нажмите ОК.


Или если у нас модель в .ms3d формате, то: File -> Open и выбираем нашу модель.


После загрузки нашей модели, в правой части, в вкладке Model выбираем Box.Это параметр создания простого бокса. Далее примерно по модели мы строим первый бокс.

Выбираем инструмент Select и подгоняем наши вершины примерно по модели. (Важно чтобы галочка Ignore Backfaces была снята, потому-что с этим параметром противоположная точка не будет выделяться). Передвижение точек и т.п. осуществляется с помощью инструмента Move.

Как только мы подгоним наш первый бокс, перейдём в вкладку Groups и там два раза нажмём на Box01 < No Material > после этого наш бокс выделиться. Далее снова перейдём в вкладку Model и выбираем инструмент Move. Теперь нажмите на клавиатуре Ctrl + D это сочетание клавиш выполняет команду Edit - > Duplicate Selection т.е. копирует то, что мы выделили. После нажатия этих клавиш с двигайте дублированную коробку в бок. И подгоняйте вершины снова.

Создание физического габарита

Таким образом, вы должны покрыть всю вашу модель так, как вам требуется. При этом, лучше сделать так, чтобы оригинальная модель не вылазила из наших будущих физиеских габаритов. Т.е. нужно подогнать их таким образом, чтобы они были прям впритык к нашей оригинальной модели. У вас должно получиться вот так:

Создание физического габарита

На этом наши физические гатариты закончены. Осталось настроить нашу модель.

Настройки физических габаритов

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

Первым делом нам нужно удалить нашу оригинальную модель. Но! Вы должны знать к какой кости она привязана. Для этого перейдите во вкладку Joints и выделите какую-нибудь кость, затем нажмите на SetAssigned (Действие 2 на фото) т.е. выделить те вершины, которые относящиеся к этой кости. Таким образом найдите ту кость, к которой прикреплена оригинальная модель. Запомните название этой кости, и нажмите на клавиатуре клавишу Delete. Тем самым мы удаляем оригинальную модель

SetAssigns Vertex ms3d.PNG


Далее выделяем все созданные группы боксов. Вы можете сделать это в вкладке Groups, выделяя все созданные нами объекты. Или просто с помощью инструмента Select как показанно на картинке ниже:

Выделяем наши физические габариты

Следующим шагом будет прикрепление текстуры. Компилятор не скомпилирует модель без текстуры.

И так, переходим в вкладку Materials выбираем текстуру и нажимаем кнопку Assign (Действие 3 на фото) т.е. применяем нашу текстуру к выделенной группе.

Texturing box ms3d.PNG

Или если у вас нету текстуры, то делаем действие 1 (на фото) т.е. создаём новую текстуру и затем действие 2 (на фото) т.е. выбираем текстуру.


Для правильной работы физических габаритов, компилятору нужно, чтобы у наших габаритов была группа сглаживания 1. Другие группы он просто игнорирует. Давайте посмотрим, что у нас относиться к 1 группе сглаживания. Выполните действия 1 и 2 с фото:

Wrong group smooth.PNG

Под цифрой 3 показано то, что у нас относиться к группе сглаживания 1. Это не верно... Выделиться должна была вся модель. И так, исправим это. Выполните действия с фото.

Fix Group Smooth.PNG

  • Действие 1 - Отчищаем все группы сглаживания. Они сбиваются на первую группу.
  • Действие 2 и 3 - Проверяем первую группу сглаживания.
  • Действие 4 - Выделяется вся модель. Это верно!


Последним шагом является привязка модели к кости. Перейдите во вкладку Joints и выберите ту кость, к которой была привязана оригинальная модель. (Не забывайте, что у вас должны быть выделены все наши боксы)Выполните действия 1 и 2 с фото:

SetAssigns Vertex ms3d.PNG

Вместо всех групп наших боксов должны выделиться их вершины. Всё верно? Вот и хорошо.

Далее экспортируем нашу модель в .smd. А именно: File -> Export -> Half-Life SMD

В вылетевшем окне выбираем папку сохранения с нашим .qc файлом, и вводим название, например: physical_model и нажимаем Сохранить

Вылетит ещё одно окошко: SMD Export параметры экспорта. Выбираем Reference т.е. оболочку а не анимацию и жмём ОК.

Компиляция модели с физическими габаритами

Пред последим шагом к созданию физических габаритов является компиляция оригинальной модели вместе с ними. Почему предпоследним? Ну вдруг ваши физические габариты получится "корявым", тогда их придётся исправлять. Но об этом дальше.

И так, откройте ваш .qc файл и добавьте в самый конец следующие строки:

$collisionmodel "w_kukuri_phy.smd" // Выбираем модель фибокса

{
    $concave // Важный параметр, позволяет компилятору делать физические габариты не сплошным, а как бы выпуклым.
    $mass 1.4 // Масса нашего предмета
}

Подробнее о QC командах.(en)


Всё, теперь компилируем модель, запускаем Model Viewer и смотрим что у нас получилось, предварительно поставив галочку, действие 1 на фото.

Final PyshBox MS3d.png

Исправление модели физических габаритов

Иногда получается так, что созданные Вами физические габариты выглядят вот так:

Wrong PhysBox.PNG

Приглядитесь, ведите у него есть пропуски, он получился каким-то обрызганным. Это получается из-за того, что наши боксы или размещены не правильно, или имеют слишком маленькую ширину. Исправляем это путём :

  • Изменение ширины. (Действие 1 на фото)
  • Перемещение вершин кубов. (Действие 2 на фото)

Fix Phys-Boxs.PNG


В конечном итоге у Вас получатся правильные физические габариты.

Удачи в моделирование!!!

Автор: --Slam12f 23:13, 17 May 2013 (PDT)