Skip to content

A simple python script to phrase the xml exported from SpeedTree. Convert it to the Json and import to unreal as the Dynamic Wind Skeletal Data on skeletal mesh asset.

License

Notifications You must be signed in to change notification settings

obilang/UE_NaniteDynamicWindData

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

This tool allow you to use a custom skeletal mesh with wind data setup for unreal 5.7's nanite skeletal foliage. No need to use the build-in PCG Vegetation.

The Nanite Skeletal Foliage need an asset user data called Dynamic Wind Skeletal Data for setting up the bones for wind. This tool can use the xml exported from Speed Tree, auto phrasing the bone hireachy and import to unreal as Dynamic Wind Skeletal Data.

Asset preparation in Speed Tree. You should name your node with the wind level like Branch_Large_L1_Wind, Branch_Small_V1_L2_Wind, Branch_Small_V2_L2_Wind before you export. Export the speed tree as .xml format. In Grouping, it should be Hierarchy, and set hierarchy level to the highest level that need have wind.

Run the script set_up_wind_hierarchy.py and you will get a json file to import into unreal as Dynamic Wind Skeletal Data.

Run the import_wind_data.py in unreal and choose the json file to import to the skeletal mesh.

You can create your own tool to generate the json file. Just follow this format

{ "Joints": [ { "JointName": "Root", "SimulationGroupIndex": 0 }, { "JointName": "Bone_1_Start", "SimulationGroupIndex": 0 }, { "JointName": "Bone_1_End", "SimulationGroupIndex": 0 }, { "JointName": "Bone_2_Start", "SimulationGroupIndex": 0 }, { "JointName": "Bone_2_End", "SimulationGroupIndex": 0 }, { "JointName": "Bone_3_Start", "SimulationGroupIndex": 0 }, { "JointName": "Bone_3_End", "SimulationGroupIndex": 0 }, { "JointName": "Bone_4_Start", "SimulationGroupIndex": 0 }, { "JointName": "Bone_4_End", "SimulationGroupIndex": 0 }, { "JointName": "Bone_5_Start", "SimulationGroupIndex": 0 }, { "JointName": "Bone_5_End", "SimulationGroupIndex": 0 }, { "JointName": "Bone_7_Start", "SimulationGroupIndex": 1 }, { "JointName": "Bone_7_End", "SimulationGroupIndex": 1 }, { "JointName": "Bone_8_Start", "SimulationGroupIndex": 2 }, { "JointName": "Bone_8_End", "SimulationGroupIndex": 2 }, { "JointName": "Bone_9_Start", "SimulationGroupIndex":1 }, { "JointName": "Bone_9_End", "SimulationGroupIndex": 1 }, { "JointName": "Bone_10_Start", "SimulationGroupIndex": 2 }, { "JointName": "Bone_10_End", "SimulationGroupIndex": 2 } ], "SimulationGroups": [ { "bUseDualInfluence": false, "Influence": 1.0, "bIsTrunkGroup": true }, { "bUseDualInfluence": true, "MinInfluence": 0.25, "MaxInfluence": 0.6, "ShiftTop": 0.2, "bIsTrunkGroup": false }, { "bUseDualInfluence": true, "MinInfluence": 0.6, "MaxInfluence": 1.0, "ShiftTop": 0.0, "bIsTrunkGroup": false } ], "bIsGroundCover": false, "GustAttenuation": 0.25 }

About

A simple python script to phrase the xml exported from SpeedTree. Convert it to the Json and import to unreal as the Dynamic Wind Skeletal Data on skeletal mesh asset.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages