Создание физбокса в Milkshape3D

From Valve Developer Community
Jump to: navigation, search
Финальный вариант ФизБокса

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

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

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

Что такое ФизБокс?

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

Требования

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

Создание ФизБокса

Первым делом запускаем программу, и в меню загружаем нашу модель в .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 командах.


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

Final PyshBox MS3d.png

Исправление модели Физбокса

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

Wrong PhysBox.PNG

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

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

Fix Phys-Boxs.PNG


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

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

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