Статья [Работа с моделями] Создаем P и W модели для CS 1.6


Наверняка у вас была такая ситуация: видите модель - не не можете поставить, потому как его полигональность слишком высока?

Это особенно касаемо моделей оружия. Когда моделлер делает свою работу, зачастую к концу работы ему попросту лень делать малополигонные wolrd(w_) и player(p_) модели и соответственно вход идут меши из view (v_) модели, что конечно же упрощает работу моделлера, но не очень хорошо сказывается на конечной производительности игрока. Высокое кол-во отрисовываемых полигонов - одна из
причин низкого fps(Frames Per Second) игрока.

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

Эта статья посвящена созданию лоу-поли мешей и сокращению полигонов и соответственно нагрузки на клиент. На самом деле этот гайд должен быть написан еще года два назад, но по своим причинам пришлось отложить. Материалы, которые будут присутствовать, имеют разное время написания, поэтому некоторые моменты могут быть упущены. Если вам что-то не понятно или я
что либо упустил - напишите комментарий в этот пост, либо мне в личку.
1678998059481.png
Допустим у нас есть такая модель, но мы никак не можем использовать ее в роли world и player's моделей, т.к. количество полигонов 6211.
Конкретно у оружия ~4k с копейками - все остальное это меши рук. Для такого типа моделей желательно использовать модели менее чем 1000 полигонов.

Конечно модель не доделана(что видно по скрину), но не суть - как жертва для наших экспериментов она вполне подходит.

Что нам нужно для работы с моделями?
1. 364_milkshape3d184_.zip - внутри есть ключ активации. Думаю не стоит объяснять как им пользоваться?

2. install_khed_1_1_5.zip

3. Растровый редактор Paint.net или Adobe PhotoShop

4. mdl_tools.zip - Компилятор и декомпилятор
Milk shape 3d - В нашем случае он нужен для привязки мешей(meshes) к костям(bones), создания анимации idle для world модели.

KHED - 3d Редактор для создания мешей лоуполи модели. Почему не в MS3d? Она морально устарела, но все еще полезна в некоторых аспектах. В любом случае создавать в ней меш крайне неудобно. Для этого лучше использовать khed. 3d max вообще игнорируем, так как начало работы в нем - всегда сложен в освоении. Нам желательно быстро и удобно.

Paint.net - Растровый редактор, который поможет нам в редактировании текстур

Первым делом нужно создать задник, с которого будем грубо говоря "срисовывать" наши меши.

Для этого:
1. Берем модель и перемещаем ее в отдельную папку (т.к. после декомпиляции появится много файлов).
2. Кидаем его в декомпилятор (в архиве будет батник decompiler.bat, просто киньте drag-n-drop'ом модель на него).
3.Далее открываем .qc файл и смотрим что у нас является мешами, а что анимациями - за меши у нас будут строки с наименованиями:



Открываем 3d редактор Milk Shape 3d, нажимаем в верхнем левом углу file->import->half-life smd и переходим в нашу папку с моделью.
1679000312432.png

Затем смотрим имя мешей в qc. Находим нужный(е) нам меш(и) и смотрим есть ли еще какие-либо из требуемых для полного отображения нашего оружия .В большинстве случаев меши именуются правильно, в противном случае некоторые инвалиды именуют авось как, в этом случае придется смотреть меши через сам редактор, что конечно же отнимает наше время)

4. Когда все части собраны нам нужно максимизировать одно из окон (конкретно LEFT/RIGHT проекции) и сделать скриншот меша со стороны в режиме Maximize. А так же убираем отображение костей, сетки и осей координат.

Переключение между видами окна проекции
1679000754608.png
Отключение отображения костей
1679000947948.png
Отключение осей координат и сетки
1679001012648.png
Конечный вариант
1679001067355.png
Как максимизировать окно?
Жмем пробел (SPACE), либо нажимаем правой кнопкой мыши по окну проекции (напомню нам нужен LEFT/RIGHT), жмем Maximize.

Когда окно будет развернуто так же нажимаем правой кнопкой мыши по окну и ставим галочку на "Textured" - это позволит увидеть наш меш с наложенными текстурами, т.е. почти так как она будет выглядеть в игре.

5. Далее нам нужно сделать скриншот, жмем кнопку PrintScreen (обычно она находится выше NumPad клавиш).
Далее открываем растровый редактор. В моем случае это Paint.Net (нужен любой растровый умеющий сохранять изображении в 8-bit формате - это крайне важно, иначе наша модель просто не скомпилируется).
6. Вставляем наш скриншот экрана в редактор комбинацией клавиш CTRL+V, увеличиваем размер изображения с помощью всплывающего уведомления.
Посмотреть вложение 2730
7. Выделяем наше оружие на изображении с помощью инструмента "Выделение прямоугольной области", с минимальными отступами между краями оружия и краем выделения области - т.к. потом нам нужно ужимать изображение (текстуру) оружия, не говоря уже о том, что высокие текстуры нам нафиг не сдались на w_ p_ моделях (чем меньше размер текстуры, тем меньше вешает модель, но так же теряется и ее качество.
1679001483370.png

8. Выделенную область копируем комбинацией клавиш CTRL+C.

9. В верхнем левом углу жмем "файл-> создать..". Появится окошко с выбором разрешения изображения, но т.к. у нас в "буфере-обмена" уже есть изображение, которые мы выделяли, программа сама задаст нужные размеры - жмем OK и вставляем наше изображение комбинацией CTRL+V. Сохраняем в файл формата .jpeg и запоминаем папку, в которую сохранили этот файл.[/u] Таким образом мы создали задник для срисовки.

10. Далее создадим саму текстуру для модели:
Берем задник и редактируем разрешение изображения с помощью комбинации клавиш CTRL+R. Для p_ w_ оптимальным разрешением будет 256х256. Меняем разрешение и сохраняем в формате .bmp 8-bit

продолжение следует .......
 

Вложения

  • 364_milkshape3d184_.zip
    5,3 MB · Просмотры: 0
  • install_khed_1_1_5.zip
    1,3 MB · Просмотры: 0
  • mdl_tools.zip
    942,7 KB · Просмотры: 1

MIGRANT.FX

Пользователь
02.03.2023
0
18
1679002187249.png


Важно!
Разрешение текстуры модели не должно быть больше чем 512*512 = 262144 по количеству точек. Что это значит? это означает что общее количество точек не должно быть выше произведения 512*512. Пример, 1024*256 = 262144.

Что делаем далее?
Подготовка к самому процессу моделинга почти завершена - остается только немного настроить сам редактор, дабы мы могли начать работу.

11. Открываем KHED. Далее находим окно проекции LEFT/RIGHT, жмем правой кнопкой мыши и выбираем пункт Background Image, затем выбираем наше изображение. Это был последний пункт подготовки.

Что нам нужно знать перед началом?
1. Что такое polygon Tool и как он работает!
2. Горячие клавиши программы khed
3. Что такое полигон и меши в целом!

Polygon Tool - инструмент, с помощью которого создаются triangles (треугольники). Из двух треугольников уже создается полигон. Чем больше полигонов в модели, тем более кастомизированной будет выглядеть модель.

Наша задача сделать модель с минимальным количеством полигонов, поэтому делаем следующее - мы делаем обводку модели с помощью polygon tool'а - т.е. создаем меш согласно скриншоту с минимальным количеством полигонов.

Выбираем кнопку Polygon tool, нажимаем по активному окну, в котором у нас находится задник, левой клавишей мыши и жмем проблем - таким образом наше окно проекции вышло в режим Maximize (Во весь экран).

Пример создания полигонов модели sg550


Включаем Polygon Tool и "клацаем" точки по тем местам, которые будут задавать "объем" модели (далее, если не понятно о чем речь, просмотрите видео-пример).
1679002625759.png
Далее используем уже существующие точки для наращивания меша. Кликаем по двум уже имеющимся точкам и создаем третью.
1679002724300.png

1679002749827.png


Для переключения режима отображения используем правую кнопку мыши и кликаем по нужному нам режиму

1679002838905.png

1679002890357.png

1679002941274.png

Для отображения граней между треугольниками и полигонами включаем Wireframe Overlay. Клавиша F5 или же правая кнопка мыши и режим Wireframe Overlay

1679003030443.png
1679003060458.png

Создаем по контуру оружия (согласно заднику) треугольники, связывая их общими точками, благодаря которому мы получаем полигон (этот процесс можно рассмотреть более подробно на видео ниже).

Таким образом создаем одну из сторон нашего оружия. Далее нам нужно зеркально продублировать нашу сторону и затем соединить между собой. Для этого делаем следующее:
Жмем комбинацию CTRL+A (Выделить всё) и Mirror Clone Horizontal. На одном из режимов отображения появится полоса(pivot), от которой будет отзеркалена наша сторона оружия.
1679003219675.png

продолжение следует .....
 

MIGRANT.FX

Пользователь
02.03.2023
0
18

Получаем такой результат

1679003539566.png

1679003580903.png

Мы отзеркалили стороны, теперь нам нужно их "склеить" вместе. Выбираем Polygon Tool и соединяем нужные нам точки вместе, образовывая полигоны в нужных местах.

Стоит обратить внимание на следующий момент: Полигоны, показанные серым цветом, не будут отображены под данным углом. Это означает, что в игре мы попросту не увидим. При склеивании двух сторон часто будет такая ситуация, что полигон "вывернут наизнанку".

Что с этим делать?
Выбираем Select triangle и ставим галочку Ignore Backfaces (дабы не задеть те полигоны, которые нам не нужны), далее выбираем тот самый вывернутый полигон и жмем комбинацию кнопок CTRL+SHIFT+R. Для отображения полигонов, которые вывернуты другой стороной, на активном окне отрисовки жмем правой кнопкой мыши и выбираем пункт Draw BackFaces

1679003749489.png
После того как мы склеили обе стороны, подгоняем пропорции до нужной нам кондиции. Процесс работы можно увидеть в видео-примере ниже.

 
Сверху Снизу