Verhängnis’s 3d Modding
Explanations Guide + some Java:
Table of Contents-
2) Links to Modding Tools and Tutorials.
3-4) The Hierarchy File, Hier.him Explanations.
5) Aircraft Part Naming Convention
6-9) The Mesh File, Explained, Full Example
10) IL-2 Mod File Structure
11) Exporting and Importing Procedure, 3ds max/ Gmax
12) IL-2 Modeling Tips and Notes
2
Modding Tools and Tutorials:
Dr Jones Mesh Converter~ Used for Converting meshes to 3ds max format.
http://www.sas1946.com/main/index.php/topic,3004.0.html
Kumpels Matrix Tool~ Used for getting World coordinate values for XYZ xyz.(Only for use with
Hier.him Attaching line!)
http://www.sas1946.com/main/index.php/topic,15.0.html
SFS Extractor~ Used for extracting the files and meshes from the SFS Archives in the IL-2 Root
Folder.
http://www.sas1946.com/main/index.php/topic,7017.0.html
Buggy Buggy Exporter~ For 3ds max and Gmax.
http://allaircraftsimulations.com/forum/viewtopic.php?f=31&t=28667
IMF Viewer for TGA~ Open TGA files from the SFS Archives etc.
http://www.sas1946.com/main/index.php/topic,1110.0.html
IL-2 3d modeling tutorial~
http://www.sas1946.com/main/index.php/topic,357.0.html
Hier.him Tutorial~
http://www.sas1946.com/main/index.php/topic,356.0.html
Hook Orientation Explanation~
http://www.sas1946.com/main/index.php/topic,7442.0.html
3
The Hierarchy File, Hier.him Explanations.-
Hier.him example 1)
[CF_D0] ~The name piece of the Heirarchy, doesn’t have to be the same as the mesh but usually is for convenience,
always in Brackets.
Mesh CF_D0 ~The name of the .msh file in the folder.
Parent _ROOT_ ~The CF_D0's parent is always _ROOT_
Attaching 0 1 0 -1 0 0 0 0 1 -0.97176 0.01184 0.58133 ~World 3d Coordinates XYZ Scaling/Stretching and Orientation, xyz
Position.
CollisionObject xcf1 ~Collision Boxes on this mesh, Not entirely sure what these lines do however.
CollisionObject .xxoil1
CollisionObject .xxeng1oil1
CollisionObject .xxmgun01
[CF_D1] ~The consecutive Damage Model # 1
Mesh CF_D1
Parent CF_D0 ~Damage models parent is always It’s undamaged mesh.
Hidden ~Means it is hidden always when the aircraft is in D0 condition. If the line is removed it means you will be flying
around in a undamaged aircraft yet have the model of the damage mesh aswell as the D0 mesh present. For damage
meshes it is always hidden.
Attaching 1 0 0 0 1 0 0 0 1 0 0 0 ~Kept default because it’s parent is CF_D0 and it will appear relative to it’s World Coordi-
nates instead, since it is default this means that it will appear in the exact same place as CF_D0.
CollisionObject xcf1 ~Appears to be the same as it’s D0 mesh.
CollisionObject .xxoil1
CollisionObject .xxeng1oil1
CollisionObject .xxmgun01
Hier.him example 2)
[Engine1_D0]
Mesh Engine1_D0
Parent CF_D0 ~For single engined aircraft it is usually CF_D0, however for Twin and Multi engined aircraft it is generally
WingLIn / WingRIn and for Outboard engines on 4 engined aircraft it is usually WingLMid / WingRMid.
Separable ~Means the engine separates from it’s parent Mesh if damaged through all stages, if it does separate then
Engine1_CAP will appear.
Attaching 1 0 0 0 1 0 0 0 1 0 -2.93307 -0.33544
CollisionObject xengine1
CollisionObject .xxeng1prop
CollisionObject .xxeng1case
CollisionObject .xxeng1cyls
CollisionObject .xxeng1mag1
CollisionObject .xxeng1mag2
CollisionObject .xxeng1supc
4
[Engine1_CAP] ~CAP model for Engine1_D0, occurs after all Damage models have been used, does not exist on Single
engined fighters such as Bf-109’s.
Mesh Engine1_CAP
Parent WingLMid_D0 ~Always the same as Engine1_D0 Parent.
Hidden
Attaching 1 0 0 0 1 0 0 0 1 -0.117314 -1.97064 -0.404139
Hier.him example #3)
[Prop1_D0]
Mesh Prop1_D0
Parent Engine1_D0 ~Always the Engine.
Separable
Attaching -1 0 0 0 -1 0 0 0 1 0 -1.41059 -0.04923
[PropRot1_D0]
Mesh PropRot1_D0
Parent Prop1_D0
Hidden ~Contrary to Common sense, this mesh is actually hidden.
Separable
Attaching 1 0 0 0 1 0 0 0 1 0 0 0
Notes on Hier.him:
· Use Kumpels Matrix tool to change the 3d world coordinate values correctly.
· Usually if you have an incorrect mesh file structure then it will give a Hier.him loading error in game even
though the Hier.him is fine, this is discussed more below in Notes on Meshes.
· Not everything is ‘even’.
~END
5
Aircraft Part Naming Convention:
Always name from the front of the aircraft, e.g.: When looking from the
front the Right wing is WingROut and vice versa for the left, Same thing for
other parts on both sides and for engines, Engine1 is always on the Left side
( From the Front)
For non essential parts like shown above, you can call it whatever you like.
Gear L1, R1 and C1 is usually the wheel, whilst L2, R2 and C2 are the Gear
Struts, any other Gear parts are usually the gear doors and I don’t think they
need specific names.
GearC is the center tail wheel or nose wheel, depending.
6
The Mesh File, Explained.-
Full Mesh file structure is as follows:
Ok here is a sample Mesh. Take this as your structure for CF_D0 only. The same Structure Applies for All Other LOD's.
There is usually 5-6 LOD's on every CF_D0 but this was for the original IL-2 and now that there are more powerful com-
puters there is only a need for 3 LOD’S. LOD0 is the Perfect Model.
Base Format:
[Common]//Seems to be the same on every Mesh.
NumBones 0
FramesType Single
NumFrames 1
[LOD]//Distance at which the Next LOD is visible.
//Example:
50//LOD 0 is visible at 0-50m
100//LOD 1 is visible at 50-100m
150//LOD 2 is visible at 100-150m
200LOD 3 is visible at 150-200m
[Hooks]//Special effects like Shell Ejection, smoke and fire etc.
//Example:
_Clip09 <BASE>
[HookLoc]//Numbers that tell the game where the Hooks are positioned in 3d world coordinates, same as Hier.him at-
taching format.
//Example:
1 0 0 0 1 0 0 0 1 -0.00448 -1.17328 0.81369
[Materials]//The .MAT files that point to the Texture that the assigned parts of the LOD0 Model uses.
//Example:
Gloss1D0o
[FaceGroups]//The grouping of faces on the Model of LOD0. (Smoothing Groups?)
//Example:
1073 845
7
[Vertices_Frame0]//The shape and postioning of Vertices on the Model of LOD0.
//Example:
-0.346649 0.767822 0.162201 -0.951076 -9.15523E-05 0.308958
[*]^^These are the numbers the game uses to create the model.^^[*]
[MaterialMapping]//Position of the Textures on the Model for LOD0.
//Example:
0 1
0.7960052 0.3399506
[Faces]//The shape and postioning of faces on the Model of LOD0.
//Example:
0 41 4
4 3 0
16 19 37
[ShVertices_Frame0]//The shape and postioning of the Shadow Vertices on the Shadow Model of LOD0.
//Example:
-0.3937073 -0.9940796 0.07792664
[ShFaces]//The shape and postioning of the Shadow Faces on the Shadow Model of LOD0.
//Example:
4 3 6
2 1 0
12 13 42
//LOD's:
//Same as above except it is for the LOD's.
[LOD1_Materials]
[LOD1_FaceGroups]
[LOD1_Vertices_Frame0]
[LOD1_MaterialMapping]
[LOD1_Faces]
[LOD1_ShVertices_Frame0]
[LOD1_ShFaces]
8
//Collision:
//Collsion Boxes. Not really sure what the different parts mean though.
[CoCommon]
//Example:
NBlocks 1
[CoCommon_b0]
//Example:
NParts 4
[CoCommon_b0p0]
//Example:
Type Mesh
NFrames 1
Name xcf1//Name of the Collision box
[CoVer0_b0p0]//The Vertices and Position
//Example:
3.05176E-05 2.13019 0.314667
[CoNeiCnt_b0p0]
//Example:
6
2
9
5
[CoNei_b0p0]
//Example:
12
3
9
8
[CoFac_b0p0]//The Faces
//Example:
0 2 1
1 9 8
9
//End of File:
; eof //Always at end of Mesh
Notes on Mesh File Structure:
· The mesh must always be using at least 1 material otherwise the IL-2 will give you a “Cannot Load Hier.him”
error, there is nothing wrong with the Hier.him, the mesh is the cause, giving it a material will fix this problem.
· Must have at least 1 LOD Value otherwise the same error will be given as the above, so once again giving it a
value of 250 for example will fix this.
· The above mentioned problems are usual when you are converting meshes or replacing one aircrafts meshes
with another, you often forget to enter the values and when exporting from 3ds max it gives you an LOD Value
but no material.
~End
10
Mod File Structure.- Basic:
MODS/Name of your Mod/3do
Possible Extensions:
Plane/Name of the aircraft e.g. Yak-1(Multi)
Cockpit/Name of Aircrafts Cockpit e.g. He-162A-2
Arms/Name of the Weapon e.g. Ab-1000
Artillery/Name of Country/Name of Artillery piece e.g. Russia Maxime
Ships/Name of Ship e.g. M-Boat Tanks/Name of Tank e.g. LT-38
Classfiles Just go in the Mod folder.
All 3d meshes, textures, .mat files go in the 3do/Plane/Yak-1(Multi) for example
11
Exporting and Importing Procedure, 3ds max/ Gmax-
Importing into 3ds max/ Gmax:
1) Open a mesh in the Dr Jones Mesh converter.
2) Select if you want the whole mesh file or just the LODs, Hooks, Collision meshes,
shadow meshes, etc.
3) Above the Mesh Structure Window there are Data, Info (Debug) and Save Options Tabs, click on the Save Op-
tions Tab.
4) Change the values to the following:
U offset 0
V offset -1
U scale 1
V offset -1
5) In the Toolbar where there is File, Debug, Output and Help, open the Output menu and then other (max) Op-
tions.
6) Check "Limit name to 10 chars"
7) Import into 3ds max or Gmax.
Exporting from a 3d modeling program into IL-2:
1) To export Meshes from a 3d program you need a modeling program like Gmax or 3ds max and then you use the
Buggy Buggy Exporter.
2) It will then generate all the text of a .msh file in the listener, press F11 to open it if not already open.
3) Copy this text into a .txt file then click Save As, type the name of the mesh with .msh extension.
4) There, a new mesh for IL-2. Then complete the relevant entries in the Hier.him for the mesh to become
"readable" as part of the objects' 3d model.
~END
12
IL-2 3d modeling tips and notes.-
Notes on Replacing Meshes:
When replacing one mesh with another, usually during a testing period of your Mod
aircraft, remember to copy the original aircraft’s Hook sections from it’s mesh, oth-
erwise your replaced plane probably won’t load as some Hooks are usually needed
for it to load properly.
Creating Shadow Meshes...or not really:
Rather than creating a complete Shadow model in your modeling program as usu-
ally done, simply copy your exported meshes’ Vertices_Frame0 and Faces Sections
underneath and add Sh in front of the section names, this eliminates exporting the
model twice. Whilst this works most of the time, there have been times for me at
least where it didn’t work.
13
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- More Things Will be added later, and if there is any-
thing specific that you would like me to cover or ex-
plain then feel free to ask, the reason I didn’t cover
Hier.him editing among other things is because this
is already explained at SAS far better than I ever
could, after all, there is no reason to invent the
wheel twice. Happy Modding,
Verhängnis