Руководство по работе с конвертером моделей.
Настройка рабочего места.
Для конвертации модели необходимо, чтобы на компьютере были установлены следующие программы и компоненты :
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


