You are on page 1of 13

Verhängnis’s 3d Modding Explanations Guide + some Java

:
Table of Contents2) 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 Coordinates 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

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.

·
~END

Not everything is ‘even’.

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 computers 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 attaching 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: 01 0.7960052 0.3399506

[Faces]//The shape and postioning of faces on the Model of LOD0. //Example: 0 41 4 430 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: 436 210 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: 021 198

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/ GmaxImporting 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 Options 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) Options.

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, otherwise 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 usually 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 anything specific that you would like me to cover or explain 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