Giants I3D Exporter Explained: Difference between revisions

From North Modding Company
No edit summary
No edit summary
 
(28 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Tutorial
| Author      = T-Bone
| Difficulty  = Beginner
| Version    = FS22
| Date        = April 6, 2023
}}
Explanation of what everything in Giants I3D Exporter does
Explanation of what everything in Giants I3D Exporter does


Line 27: Line 35:
|Seperate panels for different use cases
|Seperate panels for different use cases
|}
|}
{| class="wikitable"
|+
=== Export Panel ===
=== Export Panel ===
This is the panel where all the export settings are located
This is the panel where all the export settings are located
[[File:I3dExporterPanelExport.png|thumb|Giants I3D Exporter. Export Panel|none]]
{| class="wikitable"
|+Export Options
!Attribute
!Attribute
!Explanation
!Explanation
|-
| colspan="2" style="background-color:#b6a921; text-align: center;" |
==== Export Options ====
|-
|-
|Animation
|Animation
Line 55: Line 75:
|Binary Files       
|Binary Files       
|When this is checked the I3D Exporter will run a operation to save the i3d to binary format, so you don't have to manually do this later
|When this is checked the I3D Exporter will run a operation to save the i3d to binary format, so you don't have to manually do this later
|}
|-
| colspan="2" style="background-color:#b6a921; text-align: center;" |
==== Shape Export Subparts ====
==== Shape Export Subparts ====
Panel related to shape/mesh data
Panel related to shape/mesh data
{| class="wikitable"
!Attribute
!Explanation
|-
|-
|Normals
|Normals
|Export Normals if checked (should always be checked)
|Export Normals if checked (should always be checked)
|-
|-
|
|Vertex Colors
===== Vertex Colors =====
|Export Vertex Colors if checked
|Export Vertex Colors if checked
|-
|-
Line 77: Line 94:
|Skin Weights
|Skin Weights
|Will Export bones (armatures) and vertex groups if checked
|Will Export bones (armatures) and vertex groups if checked
|-
| colspan="2" style="background-color:#b6a921; text-align: center;" |
==== Miscellaneous  ====
|-
|Verbose
|Will print information to the system console (location: Window --> Toggle System Console)
|-
|Apply Modifiers
|Applies modifiers when you export if checked
|-
|Export Relative Paths
|Export file paths relative to the .i3d file
|-
|Export Game Relative Path
|Export file paths relative to the Game Installation Path
|-
|Axis Orientations
|Should be kept at default value: "Bake Transforms" or else your objects will end up with weird orientations in GE
|-
| colspan="2" style="background-color:#b6a921; text-align: center;" |
==== Game Location ====
|-
|Game Location Display
|This is the place you set the location of your game install (for example: D:\steam\steamapps\common\Farming Simulator 22\) If this is not set you will not be able to export
|-
| colspan="2" style="background-color:#b6a921; text-align: center;" |
==== XML config. Files ====
|-
|XML File Location
|Here you can add the xml file for the vehicle you are currently working on and when you export to i3d the content of the <i3dMappings> will be updated with the new i3dMappings you have added in Blender
|-
| colspan="2" style="background-color:#b6a921; text-align: center;" |
==== Output File ====
|-
| colspan="2" | Here you can either choose to export to a custom location or you can enable "Use Blender Filename" this will export to the same lcoation as the blender file.
|-
| colspan="2" style="background-color:#b6a921; text-align: center;" |
==== Export Buttons ====
|-
|Export All
|This will export everything in the whole blender scene (except for objects and its children with suffix _ignore)
|-
|Export Selected
|Export selected will export all the selected objects in the scene. '''Note:''' Its currently a bit broken, when you have empty object type within the selected objects, it will duplicate the hiearchy in the i3d file.
|-
|Update XML
|This will update the <i3dMappings> in the xml file you have added and will not export the objects in the scene
|-
|}
|}
{| class="wikitable"
{| class="wikitable"
|+
|+
=== Does it work? ===
=== Attributes Panel ===
!Hay
This is the panel where all the object attributes are located
! style="color:green" |
!Attribute
=== test with this one ===
!Explanation
|-
|-
|Normals
| colspan="2" style="background-color:#b6a921; text-align: center;" |
|Export Normals if checked (should always be checked)
==== Loaded Node ====
|-
|Auto Assign
|If you check this it will automatically load and apply the attributes. So then there is no need to manually load the object or save attributes to the object
|-
|Loaded Node
|Will display the name and the index path of the object you have loaded
|-
|Node Index
|Displays index path for then active selected object
|-
| colspan="2" style="background-color:#b6a921; text-align: center;" |
==== Predefined ====
Predifined attribute settings for physics and non physics (really useful)
|-
|Physics
|Contains predefined settings for physics related stuff (Compound, compoundChild, triggers +more)
|-
|Non Physics
|Contains predefined settings for non physics related stuff (Lights, decals, exterior +more)
|-
|Current Preset
|Displays the current selected preset
|-
| colspan="2" style="background-color:#b6a921; text-align: center;" |
==== Rigid Body ====
Attributes related to rigid body
|-
|Static
|Passive rigid body non movable
|-
|Kinematic
|Passive rigid body movable
|-
|Dynamic
|Active rigid body simulated
|-
|Compound
|Group of rigid bodies
|-
|Compound child
|Part of a group of rigid bodies (compound)
|-
|Collision
|If the rigid body are going to be collidable or not
|-
|Collision Mask
|Collision mask
|-
|Restitution
|Bouncyness of the surface
|-
|Static Friction
|The force that resists motion between two non-moving surfaces
|-
|Dynamic Friction
|The force that resists motion between two moving surfaces
|-
|Linear Damping
|Defines the slowdown factor for linear movement, affecting speed
|-
|Angular Damping
|Defines the slowdown factor for angular movement, affecting spin
|-
|Density
|Used with the shape of the object to calculate mass. The higher the number, the heavier the object
|-
|Mass
|Total mass of the compound node
|-
|Solver Iterations
|The number of times physics engine tries to fix object interactions in a simulation, affecting how realistic the simulation is and how fast it runs. Should help to keep the compoents in place (not 100% sure about this one)
|-
|Contineus Collision Detection (CCD)
|Not really sure about this one (never seen it in use)
|-
|Trigger
|If checked the rigid body will be a trigger
|-
|Split Type
|Is what type of tree it is (split type 1 is spruce, 2 is pine etc etc)
|-
|Split Min U
|Is the min U (X axis in blender) location of where the UV will split
|-
|Split Min V
|Is the min V (Y axis in blender) location of where the UV will split
|-
|Split Max U
|Is the max U (X axis in blender) location of where the UV will split
|-
|Split Max V
|Is the max V (Y axis in blender) location of where the UV will split
|-
|Split UV's worldScale
|Not really sure exactly how it works, but it is related to the scale of the ends(cutted piece) on a split type
|-
| colspan="2" style="background-color:#b6a921; text-align: center;" |
==== Joint ====
Attributes related to joint
|-
|Joint
|Just to enable the use of joint
|-
|Projection
|
|-
|Projection Distance
|
|-
|Projection Angle
|
|-
|X-Axis Drive
|
|-
| colspan="2" style="background-color:#b6a921; text-align: center;" |
==== Rendering ====
Attributes related to rendering
|-
|Occluder
|
|-
|Non Renderable
|
|-
|Clip Distance
|
|-
|Object Mask
|
|-
|Nav Mesh Mask
|
|-
|-
|Decal Layer
|
|
===== Vertex Colors =====
|Export Vertex Colors if checked
|-
|-
|Merge Groups
|Merge Group
|Export merge groups if checked (if you have any)
|Set a value here to add the object to a merge group (all obejcts with the same int will be merged together in the final export)
|-
|Merge Group Root
|If enabled the object will be used as the root object for the merge group. If no object in the merge group have this enabled, it will just take a random object in the merge group as the root
|-
|Bounding Volume
|Bounding Volume for given merge group or shape name. All shapes have a bounding box and if a part of the merge group goes outside this box/volume it will be invisible in the viewport in GE and in game
|-
|Merge Children
|Only supported for empties (transform groups). When this is enabled all children mesh/shape objects will be merged into the empty
|-
|Translation (Merge Children)
|If enabled the translation of the children shapes will be kept in its current position, else it will be set to the empty location
|-
|Rotation (Merge Children)
|If enabled the rotation of the children shapes will be kept in its current orientation, else it will be set to the empty rotation
|-
|Scale (Merge Children)
|If enabled the scale of the children shapes will be kept in its current scale, else it will be set to the empty scale
|-
|CPU Mesh
|Required for compoundChild collisions in objectChanges, fillVolumes, emitter shapes
|-
|LOD (Level of detail)
|Used to set the distance of how close/far the object and its children will be visible, child 0, 1, 2, 3
|-
| colspan="2" style="background-color:#b6a921; text-align: center;" |
==== Object Data Texture ====
Attributes related to exporting array textures
|-
|File Path
|Path to where the texture will be saved
|-
|Hierarchial Setup
|if True, number of poses is the number of children, the y axis is the number of children in each pose (objectSet)
(if not identical -> error), the x axis is the max number of children in each objectSet
<br>
missing x values in the texture are created by duplicating the last object value
<br>
expects following objects hierarchy (or similar) to be present:
    array
        pose1
            y0
                x1, x2
            y1
                x1, x2, x3, x4
        pose2
            y0
                x1, x2, x3
            y1
                x1, x2, x3, x4
 
pose1.y0 and pose2.y0 will be extended (in export time) to match maximum size
pose1.y0 will get x3, x4 (x2 will be copied)
pose2.y0 will get x4 (x3 will be copied)
|-
|Hide First And Last
|sets position.w to 0, used as visibility in the shader
|-
|Export Position
|if True it will export position
|-
|Export Orientation
|if True it will export orientation
|-
|Export Scale
|if True it will export scale
|}
 
 
 
 
 
 
 
 
 
 
 
 
 
{| class="wikitable"
|+
=== Tools Panel ===
This panel contain tools to easing the work
!Tool
!Explanation
|-
| colspan="2" style="background-color:#b6a921; text-align: center;" |
==== Export Options ====
|-
|Export Object Data Texture
|Will export all array setups which have a valid file path set in Object Data Texture
|-
|Object Data from Curve
|Tool to generate an array from a single curve object
|-
|Object Data from Animations
|Tool to generate an array from multiple animated objects
|-
|-
|UVs
|Vertex Color
|Will export the object UV layer(s) if checked
|Tool which contains different vertex color presets to paint your lights with
|-
|-
|Skin Weights
|alignYAxis
|Will Export bones (armatures) and vertex groups if checked
|This tool will rotate the active selected object to the target object at the -Y axis (Z in GE)
|}
|}
==== Miscellaneous ====
===== Verbose =====
Will print information to the system console (location: Window --> Toggle System Console)
===== Apply Modifiers =====
Applies modifiers if checked
==== Game Location ====
This is the place you set the location of your game install (for example: D:\steam\steamapps\common\Farming Simulator 22\)


If this is not set you will not be able to export
 
==== XML config. Files ====
[[Category:Blender_Tutorials]]
Here you can add the xml file for the vehicle you are currently working on and when you export to i3d the content of the <i3dMappings> will be updated with the new i3dMappings you have added in Blender
==== Output File ====
Here you can either choose to export to a custom location or you can enable "Use Blender Filename" this will export to the same lcoation as the blender file.
==== Export Buttons ====
===== Export All =====
This will export everything in the whole blender scene (except for objects and its children with suffix _ignore)
===== Export Selected =====
Export selected will export all the selected objects in the scene. '''Note:''' Its currently a bit broken, when you have empty object type, it will duplicate the hiearchy in the i3d file.
===== Update XML =====
This will update the <i3dMappings> in the xml file you have added and will not export the objects in the scene
=== Attributes ===
Panel containing all the different attributes you can have on your object
==== Loaded Node ====
Will display the name and the index path of the object you have loaded
===== Auto Assign =====

Latest revision as of 13:25, 6 April 2023

Tutorial Information
Author T-Bone
Difficulty Beginner
Version FS22
Date April 6, 2023


Explanation of what everything in Giants I3D Exporter does


Giants I3D Exporter location

Every now and then there is questions about where the I3D Exporter is located in the "Properties Panel" in the 3D viewport. If this side bar is hidden you can simply click on "n" and it will appear.

Location of Giants I3D Exporter in Blender



Top Section of the exporter panel

Giants I3D Exporter panel top section
Attribute Explanation
IndexPath Will show you the index path for the active selected object and this index path will also be the same in Giants Editor
Node Name Is the name of the current active selected object
Node Id Is for generating i3dMappings for your objects, select a object, check the box and click on "Use node Name" (can also write a custom name if you want) IMPORTANT: To be able to export the i3dMappings you would also need to add a XML file to the "XML config. Files" panel
Export, Attributes, Tools, Material Seperate panels for different use cases






Export Panel

This is the panel where all the export settings are located

Attribute Explanation

Export Options

Animation When animation is enabled the exporter will export the animation data in the blender scene
Shapes If this is unchecked all your shapes (meshes) will be exported as transform groups
Lights If this is unchecked all your lights will be exported as transform groups
Locked Group If you check this it will lock the root element of every hierarchy. Perhaps you don't know what this is, it make most sense to use this when for example creating buildings for a map. When the locked group is enabled and the hierarchy in Giants Editor is "closed" you can click on any child object in the viewport and it will select the locked group (root object).
User Attributes When this is checked the user attribute data will be exported
Nurbs Curves When this is checked it will export the curves to i3d as nurbs curves, if its not checked it will export curves as transform groups
Binary Files When this is checked the I3D Exporter will run a operation to save the i3d to binary format, so you don't have to manually do this later

Shape Export Subparts

Panel related to shape/mesh data

Normals Export Normals if checked (should always be checked)
Vertex Colors Export Vertex Colors if checked
Merge Groups Export merge groups if checked (if you have any)
UVs Will export the object UV layer(s) if checked
Skin Weights Will Export bones (armatures) and vertex groups if checked

Miscellaneous

Verbose Will print information to the system console (location: Window --> Toggle System Console)
Apply Modifiers Applies modifiers when you export if checked
Export Relative Paths Export file paths relative to the .i3d file
Export Game Relative Path Export file paths relative to the Game Installation Path
Axis Orientations Should be kept at default value: "Bake Transforms" or else your objects will end up with weird orientations in GE

Game Location

Game Location Display This is the place you set the location of your game install (for example: D:\steam\steamapps\common\Farming Simulator 22\) If this is not set you will not be able to export

XML config. Files

XML File Location Here you can add the xml file for the vehicle you are currently working on and when you export to i3d the content of the <i3dMappings> will be updated with the new i3dMappings you have added in Blender

Output File

Here you can either choose to export to a custom location or you can enable "Use Blender Filename" this will export to the same lcoation as the blender file.

Export Buttons

Export All This will export everything in the whole blender scene (except for objects and its children with suffix _ignore)
Export Selected Export selected will export all the selected objects in the scene. Note: Its currently a bit broken, when you have empty object type within the selected objects, it will duplicate the hiearchy in the i3d file.
Update XML This will update the <i3dMappings> in the xml file you have added and will not export the objects in the scene







Attributes Panel

This is the panel where all the object attributes are located

Attribute Explanation

Loaded Node

Auto Assign If you check this it will automatically load and apply the attributes. So then there is no need to manually load the object or save attributes to the object
Loaded Node Will display the name and the index path of the object you have loaded
Node Index Displays index path for then active selected object

Predefined

Predifined attribute settings for physics and non physics (really useful)

Physics Contains predefined settings for physics related stuff (Compound, compoundChild, triggers +more)
Non Physics Contains predefined settings for non physics related stuff (Lights, decals, exterior +more)
Current Preset Displays the current selected preset

Rigid Body

Attributes related to rigid body

Static Passive rigid body non movable
Kinematic Passive rigid body movable
Dynamic Active rigid body simulated
Compound Group of rigid bodies
Compound child Part of a group of rigid bodies (compound)
Collision If the rigid body are going to be collidable or not
Collision Mask Collision mask
Restitution Bouncyness of the surface
Static Friction The force that resists motion between two non-moving surfaces
Dynamic Friction The force that resists motion between two moving surfaces
Linear Damping Defines the slowdown factor for linear movement, affecting speed
Angular Damping Defines the slowdown factor for angular movement, affecting spin
Density Used with the shape of the object to calculate mass. The higher the number, the heavier the object
Mass Total mass of the compound node
Solver Iterations The number of times physics engine tries to fix object interactions in a simulation, affecting how realistic the simulation is and how fast it runs. Should help to keep the compoents in place (not 100% sure about this one)
Contineus Collision Detection (CCD) Not really sure about this one (never seen it in use)
Trigger If checked the rigid body will be a trigger
Split Type Is what type of tree it is (split type 1 is spruce, 2 is pine etc etc)
Split Min U Is the min U (X axis in blender) location of where the UV will split
Split Min V Is the min V (Y axis in blender) location of where the UV will split
Split Max U Is the max U (X axis in blender) location of where the UV will split
Split Max V Is the max V (Y axis in blender) location of where the UV will split
Split UV's worldScale Not really sure exactly how it works, but it is related to the scale of the ends(cutted piece) on a split type

Joint

Attributes related to joint

Joint Just to enable the use of joint
Projection
Projection Distance
Projection Angle
X-Axis Drive

Rendering

Attributes related to rendering

Occluder
Non Renderable
Clip Distance
Object Mask
Nav Mesh Mask
Decal Layer
Merge Group Set a value here to add the object to a merge group (all obejcts with the same int will be merged together in the final export)
Merge Group Root If enabled the object will be used as the root object for the merge group. If no object in the merge group have this enabled, it will just take a random object in the merge group as the root
Bounding Volume Bounding Volume for given merge group or shape name. All shapes have a bounding box and if a part of the merge group goes outside this box/volume it will be invisible in the viewport in GE and in game
Merge Children Only supported for empties (transform groups). When this is enabled all children mesh/shape objects will be merged into the empty
Translation (Merge Children) If enabled the translation of the children shapes will be kept in its current position, else it will be set to the empty location
Rotation (Merge Children) If enabled the rotation of the children shapes will be kept in its current orientation, else it will be set to the empty rotation
Scale (Merge Children) If enabled the scale of the children shapes will be kept in its current scale, else it will be set to the empty scale
CPU Mesh Required for compoundChild collisions in objectChanges, fillVolumes, emitter shapes
LOD (Level of detail) Used to set the distance of how close/far the object and its children will be visible, child 0, 1, 2, 3

Object Data Texture

Attributes related to exporting array textures

File Path Path to where the texture will be saved
Hierarchial Setup if True, number of poses is the number of children, the y axis is the number of children in each pose (objectSet)

(if not identical -> error), the x axis is the max number of children in each objectSet
missing x values in the texture are created by duplicating the last object value
expects following objects hierarchy (or similar) to be present:

   array
       pose1
           y0
               x1, x2
           y1
               x1, x2, x3, x4
       pose2
           y0
               x1, x2, x3
           y1
               x1, x2, x3, x4

pose1.y0 and pose2.y0 will be extended (in export time) to match maximum size pose1.y0 will get x3, x4 (x2 will be copied) pose2.y0 will get x4 (x3 will be copied)

Hide First And Last sets position.w to 0, used as visibility in the shader
Export Position if True it will export position
Export Orientation if True it will export orientation
Export Scale if True it will export scale







Tools Panel

This panel contain tools to easing the work

Tool Explanation

Export Options

Export Object Data Texture Will export all array setups which have a valid file path set in Object Data Texture
Object Data from Curve Tool to generate an array from a single curve object
Object Data from Animations Tool to generate an array from multiple animated objects
Vertex Color Tool which contains different vertex color presets to paint your lights with
alignYAxis This tool will rotate the active selected object to the target object at the -Y axis (Z in GE)