Проект CS-WZ.COM, ранее WZ-CS.RU занимается распространением моделей, плагинов, карт и других материалов по игре Counter-Strike 1.6. Проект был основан ещё в 2009 году, пришёл он на замену одного другого проекта, который потерял актуальность за своё время. Мы те - кто продолжается заниматься Counter-Strike 1.6, так как для нашего проекта это интересно.
[Работа с моделями] Создаем P и W модели для CS 1.6
Наверняка у вас была такая ситуация: видите модель - не не можете поставить, потому как его полигональность слишком высока?
Это особенно касаемо моделей оружия. Когда моделлер делает свою работу, зачастую к концу работы ему попросту лень делать малополигонные wolrd(w_) и player(p_) модели и соответственно вход идут меши из view (v_) модели, что конечно же упрощает работу моделлера, но не очень хорошо сказывается на конечной производительности игрока. Высокое кол-во отрисовываемых полигонов - одна из причин низкого fps(Frames Per Second) игрока.
Как известно чем хуже у клиента машина, тем больше вероятность того что клиент с низким фпс просто выйдет с сервера - что по факту является потерей потенциального игрока. Другие способы поднятия fps мы обсудим позже.
Эта статья посвящена созданию лоу-поли мешей и сокращению полигонов и соответственно нагрузки на клиент. На самом деле этот гайд должен быть написан еще года два назад, но по своим причинам пришлось отложить. Материалы, которые будут присутствовать, имеют разное время написания, поэтому некоторые моменты могут быть упущены. Если вам что-то не понятно или я что либо упустил - напишите комментарий в этот пост, либо мне в личку.
Начнем!
Допустим у нас есть такая модель, но мы никак не можем использовать ее в роли world и player's моделей, т.к. количество полигонов 6211. Конкретно у оружия ~4k с копейками - все остальное это меши рук. Для такого типа моделей желательно использовать модели менее чем 1000 полигонов.
У вас нет доступа к скачиванию файлов с нашего сервера
Конечно модель не доделана(что видно по скрину), но не суть - как жертва для наших экспериментов она вполне подходит.
Что нам нужно для работы с моделями?
1.
У вас нет доступа к скачиванию файлов с нашего сервера - внутри есть ключ активации. Думаю не стоит объяснять как им пользоваться?
2.
У вас нет доступа к скачиванию файлов с нашего сервера
3. Растровый редактор Paint.net или Adobe PhotoShop
4.
У вас нет доступа к скачиванию файлов с нашего сервера - Компилятор и декомпилятор
Milk shape 3d - В нашем случае он нужен для привязки мешей(meshes) к костям(bones), создания анимации idle для world модели.
KHED - 3d Редактор для создания мешей лоуполи модели. Почему не в MS3d? Она морально устарела, но все еще полезна в некоторых аспектах. В любом случае создавать в ней меш крайне неудобно. Для этого лучше использовать khed. 3d max вообще игнорируем, так как начало работы в нем - всегда сложен в освоении. Нам желательно быстро и удобно.
Paint.net - Растровый редактор, который поможет нам в редактировании текстур
Первым делом нужно создать задник, с которого будем грубо говоря "срисовывать" наши меши.
Для этого: 1. Берем модель и перемещаем ее в отдельную папку (т.к. после декомпиляции появится много файлов). 2. Кидаем его в декомпилятор (в архиве будет батник decompiler.bat, просто киньте drag-n-drop'ом модель на него). 3.Далее открываем.qc файл и смотрим что у нас является мешами, а что анимациями - за меши у нас будут строки с наименованиями:
$body "<имя группы>" "<имя файла с мешем>"
Или
$bodygroup "<имя бадигруппы>"
{
studio "<имя файла с мешем1>" // Это все вариативно
studio "<имя файла с мешем2>"
}
Анимации помечаются в qc файле так:
$sequence "idle" "idle" fps 30 // первый аргумент в кавычках - внешнее имя анимации,
// второй аргумент - имя файла анимации
Открываем 3d редактор Milk Shape 3d, нажимаем в верхнем левом углу file->import->half-life smd и переходим в нашу папку с моделью.
Затем смотрим имя мешей в qc. Находим нужный(е) нам меш(и) и смотрим есть ли еще какие-либо из требуемых для полного отображения нашего оружия .В большинстве случаев меши именуются правильно, в противном случае некоторые инвалиды именуют авось как, в этом случае придется смотреть меши через сам редактор, что конечно же отнимает наше время)
4. Когда все части собраны нам нужно максимизировать одно из окон (конкретно LEFT/RIGHT проекции) и сделать скриншот меша со стороны в режиме Maximize. А так же убираем отображение костей, сетки и осей координат.
Переключение между видами окна проекции
Отключение отображения костей
Отключение осей координат и сетки
Конечный вариант
Как максимизировать окно? Жмем пробел (SPACE), либо нажимаем правой кнопкой мыши по окну проекции (напомню нам нужен LEFT/RIGHT), жмем Maximize.
Когда окно будет развернуто так же нажимаем правой кнопкой мыши по окну и ставим галочку на "Textured" - это позволит увидеть наш меш с наложенными текстурами, т.е. почти так как она будет выглядеть в игре.
5. Далее нам нужно сделать скриншот, жмем кнопку PrintScreen (обычно она находится выше NumPad клавиш). Далее открываем растровый редактор. В моем случае это Paint.Net (нужен любой растровый умеющий сохранять изображении в 8-bit формате - это крайне важно, иначе наша модель просто не скомпилируется).
6. Вставляем наш скриншот экрана в редактор комбинацией клавиш CTRL+V, увеличиваем размер изображения с помощью всплывающего уведомления.
7. Выделяем наше оружие на изображении с помощью инструмента "Выделение прямоугольной области", с минимальными отступами между краями оружия и краем выделения области - т.к. потом нам нужно ужимать изображение (текстуру) оружия, не говоря уже о том, что высокие текстуры нам нафиг не сдались на w_ p_ моделях (чем меньше размер текстуры, тем меньше вешает модель, но так же теряется и ее качество.
8. Выделенную область копируем комбинацией клавиш CTRL+C.
9. В верхнем левом углу жмем "файл-> создать..". Появится окошко с выбором разрешения изображения, но т.к. у нас в "буфере-обмена" уже есть изображение, которые мы выделяли, программа сама задаст нужные размеры - жмем OK и вставляем наше изображение комбинацией CTRL+V. Сохраняем в файл формата .jpeg и запоминаем папку, в которую сохранили этот файл.[/u] Таким образом мы создали задник для срисовки.
10. Далее создадим саму текстуру для модели: Берем задник и редактируем разрешение изображения с помощью комбинации клавиш CTRL+R. Для p_ w_ оптимальным разрешением будет 256х256. Меняем разрешение и сохраняем в формате .bmp 8-bit
Важно! Разрешение текстуры модели не должно быть больше чем 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 и "клацаем" точки по тем местам, которые будут задавать "объем" модели (далее, если не понятно о чем речь, просмотрите видео-пример).
Далее используем уже существующие точки для наращивания меша. Кликаем по двум уже имеющимся точкам и создаем третью.
Для переключения режима отображения используем правую кнопку мыши и кликаем по нужному нам режиму
Для отображения граней между треугольниками и полигонами включаем Wireframe Overlay. Клавиша F5 или же правая кнопка мыши и режим Wireframe Overlay
Создаем по контуру оружия (согласно заднику) треугольники, связывая их общими точками, благодаря которому мы получаем полигон (этот процесс можно рассмотреть более подробно на видео ниже).
Таким образом создаем одну из сторон нашего оружия. Далее нам нужно зеркально продублировать нашу сторону и затем соединить между собой. Для этого делаем следующее:
Жмем комбинацию CTRL+A (Выделить всё) и Mirror Clone Horizontal. На одном из режимов отображения появится полоса(pivot), от которой будет отзеркалена наша сторона оружия.
Получаем такой результат:
Мы отзеркалили стороны, теперь нам нужно их "склеить" вместе. ВыбираемPolygon Tool и соединяем нужные нам точки вместе, образовывая полигоны в нужных местах.
Стоит обратить внимание на следующий момент: Полигоны, показанные серым цветом, не будут отображены под данным углом. Это означает, что в игре мы попросту не увидим. При склеивании двух сторон часто будет такая ситуация, что полигон "вывернут наизнанку". Что с этим делать? Выбираем Select triangle и ставим галочку Ignore Backfaces (дабы не задеть те полигоны, которые нам не нужны), далее выбираем тот самый вывернутый полигон и жмем комбинацию кнопок CTRL+SHIFT+R. Для отображения полигонов, которые вывернуты другой стороной, на активном окне отрисовки жмем правой кнопкой мыши и выбираем пункт Draw BackFaces
После того как мы склеили обе стороны, подгоняем пропорции до нужной нам кондиции. Процесс работы можно увидеть в видео-примере ниже.
Видео-пример создания меша в Khed
Текстуринг
Привет, наша адмнистрация публикует только пушечный контент, поставь лайк под постом ниже и напишите самый топовый комментарий, мы готовим материал только для тебя, любимый Гость.
Пожертвовать
Вы можете сделать автору DeMNiX, подарок в виде пожертвования на его электронную копилку ;)