Моделирование в Blender

From Valve Developer Community
< Ru
Jump to navigation Jump to search
English (en)Русский (ru)Українська (uk)Translate (Translate)

Это руководство охватывает создание модели в Blender и ее последующий экспорт в Source. Моделью, которую мы делаем, является банка газировки. Чтобы сделать ее, мы будем использовать имеющиеся в Blender инструменты редактирования объектов и наложения текстур.

Это руководство основано на Blender версии 2.48 для Windows, но оно вполне должно соответствовать версии 2.49. Скрипты и инструкции перечисленные в этом руководстве не были проверены на ранних версиях Blender.


Tip.pngСовет: Значения, которые вам необходимо будет исправить в соответствии со значениями на вашем компьютере, помечены ЗЕЛЕНЫМ.

Установка

Если вы этого еще не сделали, пожалуйста выполните инструкции изложенные в статье Installing Blender(en), чтобы убедиться в том, что все сделано должным для завершения этого руководства образом.

В этом руководстве был использован следующий Плагин экспорта dvondrake's Exporter.

Значения клавиш

Клавиши
LMB Левая кнопка мыши
MMB Средняя кнопка мыши
RMB Правая кнопка мыши
MW Колесико мыши
MWUp Колесико мыши вверх
MWDown Колесико мыши вниз
9 9 на основной клавиатуре
Num9 9 на цифровой клавиатуре

Начало работы

Blender walkthru 010.png

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

Для краткого обзора рабочая область Blender разделена на различные области, называемые окнами просмотра. Каждая область просмотра содержит свой «Тип окна», который можно изменить, щелкнув значок «Тип окна». Кроме того, каждый «Тип окна» имеет заголовок, который можно переместить в верхнюю или нижнюю часть окна или полностью удалить, щелкнув по нему с помощью RMB. Blender запускается с тремя открытыми по умолчанию окнами просмотра:

1. Окно настроек пользователя
2. Окно 3D вида
3. Окно кнопок

Мы поговорим об этом позже, но пока это все.

Регулировка настроек

Окно пользовательских настроек по умолчанию скрыто, виден только заголовок. Чтобы упростить отслеживание, давайте включим опцию имени вида в окне настроек. Поместите курсор прямо под заголовком «File Add Timeline ...», он должен измениться с указателя на стрелку вверх / вниз. Поместив курсор в виде стрелки вверх / вниз, нажмите LMB и перетащите курсор вниз примерно до середины трехмерного изображения и отпустите его. Если вкладка «Просмотр и элементы управления» неактивна, щелкните по ней, затем нажмите кнопку «Просмотр имени» (слева от области просмотра) с помощью LMB. Имя позиции теперь должно быть видно в верхней левой части 3D-вида. Когда вы закончите настройку параметров, снова поместите курсор под заголовком «Временная шкала добавления файла ...», а затем перетащите его обратно в верхнюю часть экрана с помощью LMB.

Blender walkthru 020.png

Создание модели

Для начала сохраните файл изображения ниже где-нибудь на вашем компьютере и запишите его местоположение. Мы будем использовать его позже в этом уроке, чтобы создать скин модели. Для этого урока я сохранил изображение в "c:\Modeling\Blender\SourceSDK\Guide\".

RedSoda.png

Затем давайте избавимся от света и камеры, а затем удалим куб. Чтобы выбрать и источник света, и камеру, сначала выберите один из двух с помощью RMB, затем выберите другой, удерживая Shift и щелкнув по нему с помощью RMB. Теперь нажмите H, чтобы скрыть их обоих из поля зрения. Вы можете отобразить их позже, нажав ALT H. Теперь выберите куб с помощью RMB и удалите его, нажав X и подтвердив удаление, нажав "Стереть выбранное" с LMB.

Blender walkthru 030.png

Добавьте цилиндр, нажав SPACEBAR, затем выбрав "Добавить"> "Сетка"> "Цилиндр" (если вы выбрали неправильный элемент, просто нажмите ESC, чтобы отменить операцию). Когда появится окно подтверждения «Добавить цилиндр», измените количество вершин на 12, затем нажмите «ОК», чтобы создать его. Цилиндр создается на месте "3D курсора" Blender.

Note.pngПримечание:Если вы случайно переместили 3D-курсор от центра, вы можете повторно центрировать его на сетке, щелкнув примерно там, где вы хотите, с помощью LMB, а затем нажав Shift S и выбрав "Курсор -> Сетка""
Blender walkthru 040.png

Теперь переименуем цилиндр. Выбрав цилиндр, переключитесь на панель кнопок редактирования, нажав F9 (или щелкнув квадрат из четырех точек), а затем замените «Цилиндр» на «BlenderSoda» в полях ME: и OB.

Blender walkthru 050.png

Перемещение объекта и «исходной точки» (центра объекта)

Хотя «центр» цилиндра (маленькая точка выбора) уже должен быть в координатах «0 0 0», он также находится в центре самой геометрии, что нам не нужно. Вместо этого нам нужно, чтобы он находился внизу объекта, для этого нам нужно будет изменить положение меша. Переключитесь на "вид спереди", нажав Num1 (или нажав "View" и выбрав "Front"), и, если цилиндр еще не выбран, сделайте это, щелкнув по нему с помощью RMB. Чтобы переместить геометрию и оставить центр на месте, перейдите в режим редактирования, нажав Tab . Убедитесь, что выбран весь цилиндр, нажав A (удалить все / выбрать все), пока все не будет выделено, затем нажмите G, чтобы перейти в режим захвата, Z чтобы ограничить перемещение по оси Z, и 1, чтобы переместить геометрию на 1 единицу вверх.

Blender walkthru 060.png

Редактирование меша

Теперь, все еще находясь в режиме редактирования сетки, спуститесь на панель инструментов 3D Views и включите окклюзию, нажав кнопку «Окклюзия геометрии фона» (значок куба), затем перейдите в «Режим редактирования лица», нажав кнопку «Грань». (треугольник рядом со значком куба).

Blender walkthru 070.png

Поверните 3D-вид так, чтобы вы могли видеть верхнюю часть цилиндра, нажав Shift и перетащив вниз с помощью MMB, вы также можете повернуть вид с помощью Num8. Затем активируйте выбор кистью, дважды нажав B, а затем выделите верхние грани, щелкнув по ним LMB (в режиме выбора кистью LMB выбирает, MMB снимает выделение). Если кисть слишком большая, вы можете уменьшить ее размер, вращая MWDown. Теперь выйдите из режима выбора кистью, нажав RMB или нажав Esc. Переместите выбранные грани вверх, нажав G для захвата, затем нажмите Z, затем 1, чтобы переместить выбранные грани на 1 единицу вверх по оси Z, а затем LMB для подтверждения.

Blender walkthru 080.png

Открытие редактора UV/Изображения

Теперь нам нужно развернуть модель, для этого нам нужно сначала открыть "UV/Image Editor" в новом окне просмотра. Для этого нам нужно "разделить" 3D-вид пополам; переместите курсор вниз, чтобы он оказался в нижней части панели инструментов 3D-видов, и он должен измениться на стрелки "Вверх/Вниз", когда это произойдет, нажмите RMB и выберите "Split Area" с помощью LMB. При перемещении курсора вокруг вертикальной полосы теперь должна следовать за ним, поместите вертикальную полосу в центр 3D-вида с помощью курсора и подтвердите положение разделения, нажав LMB. Теперь 3D-окно просмотра должно быть разделено на две части.

Blender walkthru 090.png

Откройте редактор UV/Изображений в правом окне просмотра, щелкнув значок «Тип окна» с помощью LMB, затем снова нажмите LMB, чтобы выбрать «Редактор UV/Изображений».

Blender walkthru 100.png

Разметка швов

Bad UVs for a cylinder

Теперь мы могли бы выбрать все грани цилиндра и нажать U, чтобы развернуть модель прямо сейчас, но если мы это сделаем, то можем получить странно выглядящие UV. Это потому, что Blender не знает, где разделить текстуру. Чтобы исправить это, нам нужно «отметить вид» на модели. Переместите курсор обратно в 3D-вид и, если вы все еще не в режиме редактирования сетки для цилиндра, повторно активируйте его, выбрав цилиндр и нажав Tab . Измените на «Режим выбора кромок», удерживая Ctrl и нажав Tab , когда появится меню «Режим выбора», отпустите Ctrl и Tab , затем нажмите «Края» с помощью LMB.

Чтобы выбрать первый шов, мы будем использовать то, что известно как "Edge Loop Section". Убедитесь, что ничего еще не выбрано, снова нажав A, затем поместите курсор так, чтобы он находился около центра одного из ребер, идущих вокруг верхней части модели. Теперь, удерживая Alt, нажмите RMB, чтобы выбрать "кольцо" ребер, идущих вокруг верхней части модели. После выбора ребер, удерживайте Ctrl и нажмите E, чтобы вызвать меню "Edge Specials", и нажмите "Mark Seem" с помощью LMB. Верхнее кольцо ребер теперь должно иметь оранжевый цвет, указывающий на seem. Теперь выберите только одно из ребер, идущих вниз по стороне цилиндра, и снова используйте меню "Edge Specials", чтобы отметить другое seem. Поверните вид, удерживая Ctrl и MMB, пока курсор находится в 3D-виде, и перетаскивая курсор вверх, пока не увидите нижнюю часть цилиндра. Теперь повторите процесс, который вы использовали для выбора и отметки первой точки в верхней части цилиндра.

Blender walkthru 120.png

Развёртка нашей модели

Теперь мы должны иметь возможность развернуть цилиндр. Вернитесь в режим «Выбор граней» (Ctrl Tab ) и нажимайте A, пока не будут выбраны все грани цилиндра. Затем нажмите U, чтобы открыть меню «Расчет UV», и выберите «Развернуть» с помощью LMB. Теперь UV-развертки модели должны отображаться в окне просмотра редактора UV/Изображений.

Blender walkthru 130.png

Теперь давайте откроем текстуру, чтобы наложить на нее UV. В окне просмотра "UV/Image Editor" перейдите в меню "Image" и, удерживая Ctrl, нажмите "Open" с помощью LMB, это откроет обозреватель файлов в "режиме предварительного просмотра", что позволит вам увидеть миниатюры изображений перед их открытием. Перейдите в папку, в которую вы сохранили файл "RedSoda.png", и используйте LMB, чтобы выбрать его. Имя файла теперь должно отображаться прямо под расположением каталога в верхней части окна просмотра файлов, нажмите "Open Image", чтобы загрузить изображение в окно просмотра "UV/Image Editor".

Blender walkthru 140.png

Mapping the UVs

Теперь пришло время сопоставить UV цилиндра с изображением. Выберите правую круглую грань, переместив курсор над частью ее геометрии, и нажмите L, чтобы выбрать «связанную геометрию». Теперь вся круглая текстура должна быть выделена, активируйте режим захвата, нажав G, и перетащите объект на правый круг на изображении. Повторите этот процесс для левой круговой текстуры, перетащив ее на левое круговое изображение. Попробуйте расположить круговые текстуры в центре изображения, под которым они находятся, затем масштабируйте их, пока они не будут в основном покрывать круглые части изображения под ними, не выходя за пределы круговых частей. Масштабируйте их, сначала выбрав координаты с помощью L, затем нажмите S, чтобы войти в «Режим масштабирования». Перетаскивая курсор от объекта, размер должен увеличиваться, перетаскивая курсор к объекту, размер должен уменьшаться, удерживайте Shift, чтобы уменьшить изменение масштаба при перемещении курсора. (примечание: совет: чем ближе курсор находится к центру объекта при активации преобразования, такого как «Масштаб» или «Захват», тем большее влияние перемещение курсора окажет на преобразование).

Blender walkthru 150.png

После того, как вы закончите с перемещением двух круглых UV-карт на место, нажмите A, пока ничего не будет выбрано, затем нажмите B один раз, чтобы войти в "Режим выбора рамки". Перетащите рамку выбора только на верхний набор координат в форме рамки UV с помощью LMB, чтобы выбрать их. Затем нажмите G и Y, чтобы ограничить их перемещение осью Y. Так же, как вы делали с круглыми координатами, попытайтесь расположить этот верхний ряд координат как можно ближе к верхней части красной рамки на изображении, не выходя за ее пределы.

Blender walkthru 160.png

Когда вы будете довольны тем, как расположены координаты, выберите «Изображения», затем «Сохранить как» на панели инструментов редактора UV/Image. Измените имя файла на «BlenderSoda.png» (то же имя, что мы используем для модели), нажмите Enter для подтверждения и нажмите «Сохранить изображение» с помощью LMB.

Blender walkthru 170.png

Теперь вы можете предварительно просмотреть, как изображение накладывается на вашу модель в 3D-виде, щелкнув значок «Тип рисования» в заголовке и выбрав «Текстурированный».

Blender walkthru 180.png

Добавление материала

Перейдите в меню «Shading» в окне кнопок и щелкните значок «Materials». Используйте LMB, чтобы щелкнуть значок стрелок вверх/вниз рядом с «Add new» и выберите «0 Material» (если «0 Material» отсутствует в списке, просто щелкните саму кнопку «Добавить новый», чтобы создать его). Измените имя с «Material» на «BlenderSoda».

Blender walkthru 190.png

Справа от панели должна быть вкладка с надписью "Texture", щелкните на вкладку рядом с ней с надписью "Map Input" и щелкните на кнопку UV. Это сообщит Blender использовать UV-координаты модели для выравнивания материала, а не настройки материала.

Blender walkthru 200.png

Добавление текстуры

Теперь нажмите на значок "Texture Buttons" с помощью LMB, чтобы открыть панель кнопок текстуры. Как вы делали с материалом, измените имя "TE:" с "Tex" на "BlenderSoda". Нажмите на панель под "Texture Type" и выберите "Image", должны появиться две новые панели кнопок.

Blender walkthru 210.png

Под панелью справа с надписью "Image" нажмите на значок вверх/вниз рядом с "Load" и выберите изображение, которое мы сохранили из UV/Image Editor ранее, "BlenderSoda.png". Обратите внимание, откуда загружается текстура (вы можете увидеть местоположение, щелкнув значок папки), нам понадобится перейти сюда позже. Если все прошло хорошо, мы должны быть готовы экспортировать модель.

Blender walkthru 220.png

Экспорт модели

Чтобы экспортировать анимированную модель, смотрите Animation in Blender(en).

Чтобы модель работала внутри Source Engine, нам необходимо преобразовать ее и используемую ею текстуру в форматы, используемые движком Source. Для продолжения вам потребуется установить скрипт экспорта.

Note.pngПримечание:Если папки, перечисленные в шагах ниже, отсутствуют на вашем компьютере, вам придется создать их вручную, прежде чем вы сможете скомпилировать модель и текстуру.

Верните курсор в 3D-окно просмотра и перейдите в режим объекта, нажав Tab . Убедитесь, что выбран только цилиндр, затем перейдите в файл, выберите «Экспорт», затем выберите Half-Life 2 (.smd).

Blender walkthru 230.png

Должно появиться окно экспорта, выберите "Static Mesh" и измените имя файла экспорта на "BlenderSoda.smd". Перед тем, как нажать "Export", обратите внимание, куда Blender выводит файл (в этом примере папка "c:\Modeling\Blender\SourceSDK\Guide\").

Blender walkthru 240.png

После экспорта файла перейдите в каталог, который Blender использовал для экспорта, и скопируйте файл "BlenderSoda.smd" в каталог "modelsrc" игры. Для этого примера я копирую в папку Half-Life 2 Death Match SDK:

C:\Program Files\Steam\steamapps\USERNAME\sourcesdk_content\hl2mp\modelsrc

Компиляция QC файла

Главная тема: Compiling a model(en).

В том же направлении выше, куда был скопирован файл SMD ("BlenderSoda.smd"), создайте новый текстовый документ и сохраните его с помощью блокнота. Скопируйте и вставьте все внутри:

$modelname BlenderSoda.mdl
$cdmaterials "models"
$scale 2
$surfaceprop metal
$staticprop
$body mybody "BlenderSoda.smd"
$sequence idle "BlenderSoda" fps 1
Note.pngПримечание:$scale 2 это преобразование между единицами Blender и единицами Source unit(en). Например, если ваша модель была высотой 3 единицы Blender, масштаб 4 приведет к модели высотой 12 единиц Hammer.
Note.pngПримечание:$surfaceprop metal придает модели металлический звук столкновения при попадании снаряда или прыжке. Это не сработает, если модели не назначена сетка столкновения. Подробнее о свойствах поверхности смотритев этой теме(en).

После проверки значений, используемых в QC файле, сохраните его в той же папке, где находится SMD, под именем «BlenderSoda.qc».

Note.pngПримечание:Прежде чем модель может быть скомпилирована, Steam должен быть запущен, чтобы получить доступ к инструментам компилятора. Если он еще не запущен, запустите Steam сейчас.

Чтобы скомпилировать модель, откройте командную строку (в Windows XP «Пуск > Выполнить... > cmd»). Скопируйте и вставьте приведенные ниже команды в строку, обязательно замените USERNAME на ваше фактическое имя входа в Steam перед запуском команды:

"%sourcesdk%\bin\ep1\bin\studiomdl.exe" -game "c:\program files\steam\steamapps\USERNAME\half-life 2 deathmatch\hl2mp" -notxbox "C:\Program Files\Steam\steamapps\USERNAME\sourcesdk_content\hl2mp\modelsrc\BlenderSoda.qc"

Скомпилированные выходные данные QC файлов должны быть отправлены в папку:

"C:\Program Files\Steam\steamapps\USERNAME\half-life 2 deathmatch\hl2mp\models"

Конвертация UV/Изображений в VTF

Главная тема: Creating a Material(en).

Теперь нам нужно преобразовать файл "BlenderSoda.png", который мы использовали для текстурирования нашей модели, в формат текстуры Valve. Чтобы сделать это, обратитесь к руководству Creating a Material(en).

Здесь следует отметить четыре важных момента:

  1. Файл текстуры имеет то же имя, что и модель.
  2. Конвертированный файл текстуры находится в соответствующей папке:
    "C:\Program Files\Steam\steamapps\USERNAME\half-life 2 deathmatch\hl2mp\materials\models"
  3. Файл текстуры имеет файл VMT («texturename.vmt») с тем же именем, что и у модели материала в Blender («BlenderSoda.vmt»), и с тем же расположением папки («hl2mp\materials\models»), что и файл текстуры.
  4. Файлу VMT присвоены соответствующие значения:
VertexLitGeneric
{
	$basetexture models/BlenderSoda
}

Проверка скомпилированной модели

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

  • Откройте Steam, перейдите на вкладку «Инструменты» и откройте Source SDK.
  • Убедитесь, что в окне Source SDK выбраны правильный игровой движок и игра.
  • Откройте средство просмотра моделей и с помощью LMB нажмите «Файл», а затем «Загрузить модель».
  • Используя браузер моделей, найдите файл «BlenderSoda» и откройте его.
Blender walkthru 250.png

Надеюсь, теперь вы увидите полностью скомпилированную и текстурированную модель.

Additional Notes

Файлы изображений:

  • Source Engine требует, чтобы все файлы изображений имели ширину и высоту, являющиеся степенью числа 2 (16, 32, 64, 128, 256, 512 и т. д.). Изображение, использованное в этом уроке "BlenderSoda.png", имело размеры 256 x 256. Если вы хотите создать собственную текстуру модели, убедитесь, что ее размеры соответствуют этому соглашению.

Другие Source игры

В этом уроке модель была создана для Half-Life 2: Deathmatch, но ее можно легко заменить другой игрой Source. Для последних шагов просто используйте исходные каталоги модели и текстуры этой игры вместо HL2DM.

Например: для Team Fortress 2 вы бы использовали:

  • "C:\Program Files\Steam\steamapps\USERNAME\sourcesdk_content\tf\modelsrc
"%sourcesdk%\bin\orangebox\bin\studiomdl.exe" -game "c:\program files\steam\steamapps\USERNAME\team fortress 2\tf" -notxbox "C:\Program Files\Steam\steamapps\USERNAME\sourcesdk_content\tf\modelsrc\BlenderSoda.qc"
  • "C:\Program Files\Steam\steamapps\USERNAME\team fortress 2\tf\models
  • "C:\Program Files\Steam\steamapps\USERNAME\team fortress 2\tf\materials\models


Например: для Left 4 Dead вы бы использовали:

  • C:\Program Files\Steam\steamapps\common\left 4 dead\sdk_content\modelsrc
"C:\Program Files\Steam\steamapps\common\left 4 dead\bin\studiomdl.exe" -game "C:\Program Files\Steam\steamapps\common\left 4 dead\left4dead" -notxbox "C:\Program Files\Steam\steamapps\common\left 4 dead\sdk_content\modelsrc\BlenderSoda.qc"
  • C:\Program Files\Steam\steamapps\common\left 4 dead\left4dead\models
  • C:\Program Files\Steam\steamapps\common\left 4 dead\left4dead\materials\models

Смотрите также

Сторонние ссылки

Unwrapping a Mesh (Blender wiki)