Giants I3D Exporter Explained: Difference between revisions
No edit summary |
No edit summary |
||
(15 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 28: | Line 36: | ||
|} | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
Line 81: | Line 97: | ||
| colspan="2" style="background-color:#b6a921; text-align: center;" | | | colspan="2" style="background-color:#b6a921; text-align: center;" | | ||
==== Miscellaneous ==== | ==== Miscellaneous ==== | ||
|- | |- | ||
|Verbose | |Verbose | ||
Line 89: | Line 104: | ||
|Applies modifiers when you export if checked | |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 | |Axis Orientations | ||
Line 119: | Line 137: | ||
|- | |- | ||
|Export Selected | |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. | |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 | |Update XML | ||
Line 127: | Line 145: | ||
=== Attributes === | |||
{| class="wikitable" | |||
|+ | |||
=== Attributes Panel === | |||
This is the panel where all the object attributes are located | |||
!Attribute | |||
!Explanation | |||
|- | |||
| colspan="2" style="background-color:#b6a921; text-align: center;" | | |||
==== Loaded Node ==== | ==== Loaded Node ==== | ||
Will display the name and the index path of the object you have loaded | |- | ||
===== | |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 | |||
| | |||
|- | |||
|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 | |||
|- | |||
| 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 | |||
|- | |||
|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) | |||
|} | |||
[[Category:Blender_Tutorials]] |
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.
Top Section of the exporter panel
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 |
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 SubpartsPanel 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 |
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 |
PredefinedPredifined 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 BodyAttributes 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 |
JointAttributes related to joint | |
Joint | Just to enable the use of joint |
Projection | |
Projection Distance | |
Projection Angle | |
X-Axis Drive | |
RenderingAttributes 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 TextureAttributes 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
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 |
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) |