Перво наперво вам надо заиметь копию 3Ds MAX, Photoshop (или другой редактор графики) и лиц. копию SSDK.
Если у вас все это есть - приступаем к моделлированию. Запускайте MAX, а я пока подожду...
Запустили? отлично, надеюсь у вас есть базовые навыки работы в максе. Создайте BOX размерами 50х50х50
Тычим по нему правой кнопкой мыши (далее как у нормальных людей ПКМ) и ыбираем Convert to >> Editable Poly
Открываем свойства объекта >> свиток модификаторов и там выбираем Unwarp UVW
наш куб обводится зеленой линией и справа появляются настройки. Там жмем кнопарь "Edit"
Открывается окно. В этом окне снизу жмем кнопочку
Далее сверху Mapping >> Flatten Mapping. Откроется окошко
В нем жмем ок. Получается следующее:
Оставим как есть, в данном случае и так хорошо =)
Сверху жмем Tools >> Render UVW template и в окошке вводим размер будущей текстуры, в этой модели оставим стд - 1024х1024
Тут жмем кнопку Render UV Template.
И в следующем окне жмем чтобы сохранить развертку.
Сохранять можно в любом формате в любой папке.
Сохранив развертку закройте окно редактирования развертки. Теперь откроем Photoshop (или другое схожее с ним приложение)
В нем откроем только что сохраненную развертку. Теперь будем по ней рисовать текстуру. Рисовать сами знаете как, если не знаете - перед вами весь интернет =)
Я сделал такую вот текстуру:
Сделав текстуру натянем ее на нашу коробку.
Для этого откройте Material Editor , выберите свободную ячейку, затем нажмите на квадрат справа от Diffuse и в открывшемся окне выберите bitmap. далее выберите текстру.
У меня получилось следующее:
Теперь займемся технической частью. А именно костямми.
Нажмите на кнопку создания примитивов и в конце на кнопку Systems
Далее на кнопку bones. Создайте одну кость любого размера и поместите ее в центр - для точного перемещения в пространстве нажмите ПКМ на одной из 3х иконок.
1ая - перемещение вверх-вниз
2ая - поворот влево, вправо, вверх, вниз
3я - изменение размера по всем осям и по отдельности
Поместив ее в центр откройте свойства коробки и добавьте к ней модификатор Skin.
Добавьте там кость bone01.
Все, теперь экспортируем модельку в .SMD
Создайте папку в C:\Program Files\Steam\steamapps\sourcemod\ваш мод или там где у вас Steam- \box
Туда и экспортируйте .SMD
Сначала экспортируйте box_ref.smd - это будет сама модель
Потом экспортируйте анимацию длинною в 2 кадра:
И назовите ее box_idle.smd
С моделлингом покончено, теперь будем делать .qc
Создайте блокнотом в папке с экспортированными .smd - файл с именем и расширением box.qc
В этом файле напишем:
$cd "C:\Program Files\Steam\steamapps\sourcemods\motiondrive\box" \\ путь к .qc файлу
$modelname "mymdl/box.mdl" \\ путь и название модели (не забудьте предварительно создать эту \\ папку!
$scale 1.0 \\ размер модели (1.0 - без изменений)
$body "body" "box_ref.smd" \\ название .smd который используется в качестве основы
$cdmaterials "models/box/" \\папка с текстурами
$surfaceprop "wood" \\ то из чего модель состоит
$sequence idle "box_idle" fps 30 ACT_IDLE 1 \\ анимация*
$collisionmodel "box_ref.smd" \\физ. модель для определения движком формы объекта
{
// Масса в кг
$concave \\ физбокс модели имеет несколько вогнутых мест
$mass 5.0 \\ масса
}
$keyvalues \\ тэги для определения движком что мдлка физическая
{
"prop_data"
{
"base" "Wooden.Medium" \\ соответственно из чего модель состоит (служит для определения
\\ движком какие звуки юзать)
}
}
\\ * idle - название анимации, box_idle - .smd с анимацией, fps - кол-во кадров в сек., ACT_IDLE - \\ акт для использования в коде.
Сохраняйте .qc
Теперь займемся текстурами. Скомпилируйте и настройте текстуры, затем скопируйте их в папку models\box НЕ ИЗМЕНЯЯ ИХ НАЗВАНИЯ.
В настройках текстуры используйте только шейдер VertexLitGeneric, иначе будет эмошность.
Теперь займемся компиляцией модели.
Создайте блокнотом файл с именем и расширением mdl_compile.bat и в нем напишите (все в дну строку!)
C:\progra~1\Steam\steamapps\ВАШ_ЛОГИН_STEAM\sourcesdk\bin\orangebox\bin\studiomdl.exe -fullcollide C:\progra~1\Steam\steamapps\sourcemods\ИМЯ_МОДА\box\box.qc
Сохраняйте и запускайте. Ошибок быть не должно.
В конечном итоге у вас должна получиться подобная хрень: