Руководство по работе с конвертером моделей.

Настройка рабочего места.

Для конвертации модели необходимо, чтобы на компьютере были установлены следующие программы и компоненты :

3D MAX 8 (или SP3)

плагин для 3D MAX 8 :

tekstexp_max8.dle - для экспорта модели в формат. TSE (Подключается как любой плагин для 3D MAX 8 )

Несколько MAX-скриптов (файлы поместить в каталог Program Files\Autodesk\3dsMax8\Scripts\ ):

collisions. ms - для проверки выпуклости создаваемой коллизии

vehicles. ms - для экспорта модели с автоматической генерацией файла. MCN.

houses.ms - для экспорта статических объектов.

Кроме того, необходимо создать каталог Meshtools ( адрес каталога значения не имеет ) и поместить в него следующие файлы :

3dm2msh. exe

3do23dm. exe

AddTangentSpace. exe

cnvSequ. bat

cnvMono. bat

cnvmodelopt. bat

cnvMany. bat

cnvHier. bat

cnvEffMono. bat

HanCnv. exe

cnv. bat

Tse2xxx. exe

Для того, чтобы любой из этих конверторов можно было запустить из произвольного каталога без необходимости каждый раз прописывать путь, необходимо дополнить переменную окружения PATH. Она должна содержать строчку со ссылкой на каталог meshtools, например: PATH=c:\windows;D:\_ww2\ww2_addon\Utils\Meshtools\

Выполните следующие действия:

Пуск -> Настройка -> Панель управления -> Система -> закладка Дополнительно ->

кнопка Переменые среды -> список Системные переменные

Найдите в нем переменную PATH (она всегда есть) и в конец, через знак [;] (точка с запятой) допишите путь в Ваш каталог meshtools. Например С: \Meshtools\

НЕ нашли? Не то? Что вы ищете?

Конвертация моделей.

Движок игры работает набором файлов вида .msh и файла в котором прописана структура модели hier.him, эти файлы получаются при конвертации максовской модели.

Процесс конвертации состоит из двух частей, готовую модель необходимо проэкспортить в формат TSE. Для этого необходимо подключить вышеуказанный плагин tekstexp_max8.dle, затем через меню экспорта выбирает путь куда будет сохранен файл промежуточного экспорта (лучше всего сохранять в ту же папку где вы создаете модель, так как в ней уже есть все необходимые материалы) :

во вкладке типа файла выбираете TEKST Scene Export (*.TSE )

Имя файла обязательно указать как mesh (конвертер автоматически добавит к этому имени четыре нуля, менять это не нужно)

Затем нажать кнопку «сохранить», появится диалоговое окно конвертера :

В нем ничего менять не нужно, просто нажимаете «ОК» и в указанной папке создается файл mesh0000.TSE. Далее в каталог с данным файлом копируете файл cnv.bat и, предварительно созданный файл иерархии HIER.MCN (его можно создать вручную, изменив такой же файл из примера с моделью, либо сгенерить автоматически с помощью скрипта vehicles. ms, об этом будет рассказанно ниже ), после этого двойным кликом запускаете файл cnv.bat . В появившемся окне будет показан ход процесса конвертации, и описанны ошибки, если они есть в модели. Итогом работы конвертера будет следующий набор файлов :

Hier. mcn или ( Mono.mcn для объектов состоящих из одной кости) - Файл, описывающий логическое устройство модели для конвертации. Создается моделлером.

Hier. him или mono. sim - Файл, описывающий логическое устройство модели для движка. Создается при конвертации.

Файлы *.msh - Каждый файл является отдельной костью (chunk) модели. В нем хранятся все вершины, текстурные координаты, ссылки на используемые материалы и т. д.

Файлы *.mat - Каждый файл – это описатель одного материала модели.

Файлы *.tga или *.dds - Текстуры модели.

Mesh0000.tse - Результат экспорта из MAX’а.

Также, необходимо создать несколько каталогов следующего содержания :

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

Summer_N или/и Winter_N, где N – номер данного скина, каталог с материалами и текстурами одного скина. Таких аналогичных каталогов может быть несколько.

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

Создание файла Hier.MCN

Возможно два вариата создания файла Hier.MCN. Первый – вручную создать данный файл или изменить файл имеющейся модели из примера. Подробно описанно в документе Руководство по созданию моделей техники в игре «Вторая Мировая». При этом создавать иерархию в 3D MAX не нужно.

Второй способ – автоматическая генерация файла Hier.MCN с помощью скрипта vehicles. ms.

Для этого создаете иерархию объектов в окне Schematc View (Open)

Пример иерархии танка :

В иерархии должны быть описанны все кости нулевого лода, а также все крючки и коллизии, поля на схеме не прилинкованные, прикрепляются конвертером к центру сцены, объекту root ,так должны быть описанны кости корпуса (Hull) и все колеса и гусеницы техники. Также в сцене обязательно должны быть 2 сферы ,сфера коллизий - Csphere, охватывающая основную геометрию модели (допускается не вхождение в эту сферу частично некоторых элементов – антенн и полностью ствола, при его большой длинне), а также сфера видимости - Vsphere, она обычно больше сферы коллизий, и должна полностью захватывать всю модель. Центр обоих сфер должен быть в центре системы координат. Данные сферы используются для грубого отсечения видимости и попаданий в расчетах. После настройки иерархии необходимо запустить скрипт для генерации HIER.MCN.

Для этого во вкладке Utilites выберите кнопку MAXScript (если этой кнопки нет, ее можно добавить через меню Configure Button Sets)

В открывшемся подменю нажимаете кнопку Run script и выбираете скрипт vehicles. ms

Далее в выпадающем списке утилит выбираете строку Expor Vehicle

В настройках экспорта необходимо добавить дистанции отображения лодов они должны быть такими же как в примере, после этого кнопкой Export hier. mcn можно сгенерить файл Hier.mcn и файл промежуточного экспорта mesh.tse.

Настройка файла skins. ini

Так как в ВМ/ИВ, для одного юнита может быть использованно несколько разных скинов, в зависимости от времени года или временного периода, то материалы в корневом каталоге модели должны ссылаться на специальную служебную текстуру 16.tga, настройки материалов должны быть такими :

[ClassInfo]

ClassName TMaterial

[General]

tfDoubleSide 0

tfShouldSort 0

tfDropShadow 0

tfGameTimer 1

[LightParams]

Ambient 1.0

Diffuse 1.0

Specular 0.4

SpecularPow 32

Shine 0.0

[Layer0]

TextureName ../../../Textures/16.tga

PaletteName

Frame 0.0

VisibleDistanceNear 0.0

VisibleDistanceFar 10000.0

TextureCoordScale

ColorScale

AlphaTestVal 0.5 // of [0.1, 0.5, 0.9]

tfWrapX 1

tfWrapY 1

tfMinLinear 1

tfMagLinear 1

tfMipMap 0

tfBlend 0

tfBlendAdd 0

tfTestA 1

tfTestZ 1

tfUpDateClear 0

tfModulate 1

tfNoTexture 0

tfAnimatePalette 0

tfAnimateSkippedFrames 0

tfNoWriteZ 0

tfDepthOffset 0

tfTranspBorder 0

tfTestZEqual 0

Т. е. процесс загрузки модели следующий - сначала читается файл Hier.him и по структуре описанной в нем, собирается модель из костей файлов *.msh, при сборке проверяется ссылка на материал в каждой кости, движок ищет ее в той же папке, где расположен файл *.msh (т. е. в каталоге с моделью) , если материал есть в данной папке, то движок игры использует для текстурирования ту текстуру что прописанна в данном материале, по умолчанию это 16.tga (желтый квадрат разрешением 16на16 пикселей).

Для выбора конкретного скина, используется файл Skins.ini в котором описанны все возможные скины данной модели, а также набор опозновательных знаков и номеров. Пример файла Skins. ini :

[Skin_Summer1]

Type Skin

Name Summer1 - имя данного скина, используется в файле настроек юнита parts. ini в секции VehicleSkin (Подробнее см. пункт Создание Parts. ini)

SkinPath Summer1 – путь к материалам относительно папки модели

Material0 mat_sh1 3dobj\tanks\ger\Pz_IIF_afrika\summer1\mat_sh1.mat - ссылки на все материалы данного скина.

Material1 mat_sh2 3dobj\tanks\ger\Pz_IIF_afrika\summer1\mat_sh2.mat

Material2 mat_sh3 3dobj\tanks\ger\Pz_IIF_afrika\summer1\mat_sh3.mat

Material3 mat1 3dobj\tanks\ger\Pz_IIF_afrika\summer1\mat1.mat

Material4 mat2 3dobj\tanks\ger\Pz_IIF_afrika\summer1\mat2.mat

Material5 mat3 3dobj\tanks\ger\Pz_IIF_afrika\summer1\mat3.mat

Material6 mat4 3dobj\tanks\ger\Pz_IIF_afrika\summer1\mat4.mat

Material7 mat5 3dobj\tanks\ger\Pz_IIF_afrika\summer1\mat5.mat

Material8 mattr1 3dobj\tanks\ger\Pz_IIF_afrika\summer1\mattr1.mat

Material9 mattr1_a 3dobj\tanks\ger\Pz_IIF_afrika\summer1\mattr1_a. mat

Material10 mattr2 3dobj\tanks\ger\Pz_IIF_afrika\summer1\mattr2.mat

Material11 mattr2_a 3dobj\tanks\ger\Pz_IIF_afrika\summer1\mattr2_a. mat

Material12 matzaptrk_1 3dobj\tanks\ger\Pz_IIF_afrika\summer1\matzaptrk_1.mat

Material13 matzaptrk_all 3dobj\tanks\ger\Pz_IIF_afrika\summer1\matzaptrk_all. mat

Material14 zip1 3dobj\tanks\ger\Pz_IIF_afrika\summer1\zip1.mat

Material15 zip2 3dobj\tanks\ger\Pz_IIF_afrika\summer1\zip2.mat

Выше описанные материалы должны ссылаться уже не на служебную текстуру 16.tga, а на данную текстуру камуфляжа, которая находится в папке summer1 вместе с материалом.

Если вариантов камуфляжа больше одного, то добавляются допольнительные секции по аналогии этой. Summer2 Summer3 и т. д.

После описания всех скинов, идет секция описывающая бортовые номера техники и знаки опознавания:

[Division_GerEmptyBlack]

Type Division

Name GerEmptyBlack – Имя набора опознавательных знаков, используется в файле настроек юнита parts. ini в секции VehicleSkin (Подробнее см. пункт Создание Parts. ini)

DivisionComment _empty_

Digits_Big– возможная комбинация цифр используемых в бортовом номере, 2 разряда, числа с 10 до 99.

DigitsBones_Big_A digit_a1_ger digit_a2_ger – перечисление костей на которых будут использованны материалы цифр, в данном случае 2 цифры на правом борту

DigitsBones_Big_B digit_b1_ger digit_b2_ger – и 2 цифры на левом борту

DigitsMaterialsPath_Big 3dobj/digits/ger/Af_Black – ссылка на материалы цифр которые будут накладываться на данные кости.

SignBones_Cross marker_1_ger marker_2_ger marker_3_ger – названия костей на которые будут накладываться текстуры крестов, немецких опознавательных знаков.

SignMaterial_Cross 3dobj/Markers/af_marker_ger.mat – ссылка на материалы данных крестов

SignBones_reg_1 regiment_1 - кости дивизионных знаков, символ 10 танковой дивизии

SignMaterial_reg_1 3dobj/Regiments/regiment_3_ger.mat – ссылка на материал символа 10 танковой дивизии

SignBones_reg_2 regiment_2 - кости дивизионных знаков, второй символ 10 танковой дивизии

SignMaterial_reg_2 3dobj/Regiments/regiment_1_ger.mat – ссылка на материал второго символа 10 танковой дивизии

Список файлов требующихся для создания нового юнита

И так, для создания нового юнита, точнее его «графической части» необходим следующий набор файлов и каталогов, на примере танка Pz IV F2 (пример можно посмотреть в архиве Pz_IVF2_afrika.rar ) :

Specular\ - каталог с текстурами спекуляра. Содержит следующие файлы:

****

sh_spec1.dds

sh_spec2.dds

sh_spec3.DDS

skin_spec1.dds

skin_spec2.dds

skin_spec3.dds

skin_spec4.DDS

skintr1_spec. DDS

skintr2_spec. DDS

*****

Summer1\ - каталог с текстурами и материалами основного камуфляжа. Содержит следующие файлы :

*****

inter. DDS - текстуры камуфляжа

sh1.dds

sh2.dds

sh3.dds

skin1.dds

skin2.dds

skin3.dds

skin4.dds

skin5.dds

skintr. dds

skintr2.DDS

skintr_a. dds

mat1.mat – материалы камуфляжа, ссылаются на текстуры указанные выше.

mat2.mat

mat3.mat

mat4.mat

mat5.mat

mat_sh1.mat

mat_sh2.mat

mat_sh3.mat

MatTr1.mat

MatTr1_a. mat

MatTr2.mat

MatTr2_a. mat

inter. mat

*****

hier.him - файл описывающий структуру модели

skins.ini - файл настроек скинов и знаков опознавания

af_marker_ger. mat – файлы материалов для предварительной загрузки юнита, ссылаются на служебную текстуру 16.tga

digit_1_ger. mat

digit_2_ger. mat

digit_3_ger. mat

inter. mat

mat1.mat

mat2.mat

mat3.mat

mat4.mat

mat5.mat

mat_sh1.mat

mat_sh2.mat

mat_sh3.mat

MatTr1.mat

MatTr1_a. mat

MatTr2.mat

MatTr2_a. mat

regiment_1_ger. mat

regiment_3_ger. mat

hier.mcn - сам файл MCN для работы модели в игре не нужен, но обычно лежит в той же папке для удобства дальнейшей настройки юнита.

Body. msh – конвертированные в формат игры кости модели

digit_a0_ger. msh

digit_a1_ger. msh

digit_a2_ger. msh

digit_b0_ger. msh

digit_b1_ger. msh

digit_b2_ger. msh

digit_c0_ger. msh

digit_c1_ger. msh

digit_c2_ger. msh

fara2.msh

fara3.msh

gun1.msh

head. msh

k01.msh

k1.msh

k02.msh

k2.msh

k03.msh

k3.msh

k04.msh

k4.msh

k05.msh

k5.msh

k06.msh

k6.msh

k07.msh

k7.msh

k08.msh

k8.msh

k09.msh

k9.msh

k010.msh

k10.msh

k011.msh

k11.msh

k012.msh

k12.msh

kp1.msh

kp2.msh

kr1.msh

kr2.msh

kz1.msh

kz2.msh

lk1.msh

lk2.msh

lk3.msh

lk5.msh

lk6.msh

lk7.msh

lk8.msh

lk9.msh

marker_1_ger. msh

marker_2_ger. msh

marker_3_ger. msh

mask. msh

mgun1.msh

mgun2.msh

regiment_1.msh

regiment_2.msh

tr1.msh

tr2.msh

zip1.msh

zip2.msh

zip3.msh

zip4.msh

zip5.msh

zip6.msh

zip7.msh

zip8.msh

zip9.msh

zip10.msh

zip11.msh

zip12.msh

zip13.msh

zip14.msh

zip15.msh

zip16.msh

zip17.msh

zip18.msh

zip19.msh

zip20.msh

Pz_IVF2_afrika. rect – файл описывающий области изображений модели повреждений для интерфейса, создается автоматически с помощью специальной программы DamTexConverter. exe подробнее об этом ниже.

Pz_IVF2_afrika. mat – материал ссылающийся на текстуру техники для интерфейса, должен называться также как папка содержащая данную модель.

Pz_IVF2_afrika. tga – текстура с изображением юнита для интерфейса игры, также в эту текстуру собирается зоны повреждений техники.

Pz_IVF2_afrika_editor. tga – уменьшенный вариант текстуры изображения юнита для редактора миссий. Зон повреждений в текстуре нет. Название состоит из названия папки с моделью, и приставки _editor. Размер текстуры 96х64 пикселя.

Создание иконки с зонами повреждений

Требования к входным текстурам

Текстуры для системы повреждений для каждого юнита должны отвечать следующим требованиям:

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

Названия текстур

Техника

основное изображение юнита без повреждений - unit_big. tga, unit_small. tga

o  поврежденные гусеницы или колеса одной стороны:

§  левая (по ходу юнита): track_left_big. tga, track_left_small. tga

§  правая (по ходу юнита): track_right_big. tga, track_right_small. tga

o  поврежденная башня: turret_big. tga, turret_small. tga (если башен несколько, то название файлов имеет вид turret_N_big. tga, turret_N_small. tga, где N - номер от 1 до количества башен)

o  поврежденная пушка или пулемет: gun_N_big. tga, gun_N_small. tga, где N - номер от 1 до количества пушек

o  поврежденный пулемет: mgun_N_big. tga, mgun_N_small. tga, где N - номер от 1 до количества пулеметов

o  поврежденная ходовая: hull_big. tga, hull_small. tga

Пехота

o  основное изображение юнита без повреждений - character_big. tga

o  ноги - legs_big. tga

o  руки - arms_big. tga

o  тело - body_big. tga

 

Артиллерия и станковые пулемёты не имеют зон повреждений.

Автоматическая сборка

Сборка производится с помощью утилиты DamTexConverter. Входные параметры:

Путь к директории с текстурами. Путь указывается от текущей директории. Смещение (необязательный, по умолчанию 5).

В файле DamTexConverter. cfg хранится список названий текстур (регионов).

Получено с http://server607/ww2africawiki/index. php/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BF%D0%BE%D0%B2%D1%80%D0%B5%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B9