meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
impue4st9 [2022/03/09 17:18] croftimpue4st9 [2023/04/14 13:46] (current) steph.jorgensen
Line 1: Line 1:
-====== Importing into UnrealEngine4 (ST9 Format) ======+====== Importing into Unreal Engine (ST9 Format) ======
  
-SpeedTrees are supported in the [[https://www.unrealengine.com/|Unreal Engine game engine]]. The .ST9 files exported by SpeedTree 9 can be imported with Unreal Engine 4.27 or later.+SpeedTrees are supported in the [[https://www.unrealengine.com/|Unreal Engine game engine]]. The .st9 files exported by SpeedTree 9 can be imported with Unreal Engine 4.27 or later.
  
-=====Differences from ST=====+===== Version compatibility =====
  
-The importer for the ST9 format is a little different from the ST format in that it uses the idea of [[#materials|master material]] that is used as the parent material for all the material instances on a treeThis makes it easy for you to change one material and all your SpeedTrees get the changes.+^ **SpeedTree Modeler version** ^ **Unreal Engine version** ^ **SpeedTree model file type** ^ 
 +| 9.x | Unreal Engine 4.27 and later (1)(2) | .st9 |  
 +|:::| Unreal Engine 4.19.2 and later | .st | 
 +| 8.x | Unreal Engine 4.19.2 and later | .st | 
 +| 7.x | Unreal Engine 4.3 to 4.19.1 | .srt | 
 +<WRAP indent> **Notes:** </WRAP> 
 +  - As of Unreal Engine 5.1, SpeedTree .st9 files work with [[https://docs.unrealengine.com/5.0/en-US/nanite-virtualized-geometry-in-unreal-engine/|Nanite]].  
 +  - In Unreal Engine 5.0, SpeedTree models work with [[https://docs.unrealengine.com/5.1/en-US/lumen-global-illumination-and-reflections-in-unreal-engine/|Lumen]] but are incompatible with Nanite.
  
-[[#wind|Wind]] is also now done in the material editor and is fully computed on the GPU, rather than relying on CPU-side components as in previous versionsThis makes it easy to tune wind parameters inside UE4, optimize rendering, and even change wind effect nodes all from inside UE4ST9 wind is also fewer instructions than ST wind, and does not require multiple draw calls for wind effects on different geometry types.  +=====Differences between .ST9 and .ST files=====
  
-However, there may be times when you would still want to use the [[impue4|legacy ST pipeline]] instead of the new pipeline. Since the wind is done wholly on the GPU, it is harder to change the frequencies of motion. For instance, if the wind strength changes dramatically at runtime, and you wish to have leaves flutter faster, this would be more difficult in the ST9 wind (and require some work in blueprint). But for most cases of steady wind strength, and even changing wind directions, ST9 should be an easier, faster, and more configurable method of rendering SpeedTrees in UE4.+The importer for the .st9 format is a little different from the .st format in that it uses the idea of a [[#materials|master material]] that is used as the parent material for all the material instances on a tree. This makes it easy for you to change one material and all your SpeedTrees get the changes.
  
 +[[#wind|Wind]] is also now done in the material editor and is fully computed on the GPU, rather than relying on CPU-side components as in previous versions. This makes it easy to tune wind parameters inside UE, optimize rendering, and even change wind effect nodes all from inside UE. Wind for .st9 files also has fewer instructions than .st wind and does not require multiple draw calls for wind effects on different geometry types.  
  
-=====Pipeline to UE4/UE5=====+However, there may be times when you would still want to use the [[impue4|legacy .st pipeline]] instead of the new pipeline. Since the wind is done wholly on the GPU, it is harder to change the frequencies of motion. For instance, if the wind strength changes dramatically at runtime, and you wish to have leaves flutter faster, this would be more difficult in the .st9 wind (and require some work in blueprint). But for most cases of steady wind strength, and even changing wind directions, .st9 should be an easier, faster, and more configurable method of rendering SpeedTrees in UE.
  
-Before exporting a tree for UnrealEngine, be sure that your tree is set up for real-time use by using [[kcgameslod|LOD]]. Also ensure that wind is correctly set for UE by setting the fan to [[windgames|Games mode]] and tuning the wind effects, if necessary. For the ST9 format, be sure to set the wind strength to approximately what you want within UE, as that will be used as the basis for the wind parameters set on the [[#material|material]]. 
  
-If this is the first time exporting to UE, be sure to pick one of the UE4 presets in the [[expgame|export mesh dialog]], to ensure all the export settings are correct for UE. Export an .ST9 file to disk, then switch to UnrealEd and import the ST9 file there. The mesh and all textures should be found and imported into your UE project assets.+=====Pipeline to UE=====
  
-On import, material instances will be created for all of the [[#materials|materials]] in the ST9 file. The material instances can be switched to a new parent material after import, if wanted.+Before exporting a tree for UE, be sure that your tree is set up for real-time use by using [[kcgameslod|LOD]]. Also ensure that wind is correctly set for UE by setting the fan to [[windgames|Games mode]] and tuning the wind effects, if necessary. For the .st9 format, be sure to set the wind strength to approximately what you want within UE, as that will be used as the basis for the wind parameters set on the [[#material|material]]. 
 + 
 +If this is the first time exporting to UE, be sure to pick one of the Unreal Engine presets in the [[expgame|export mesh dialog]], to ensure all the export settings are correct for UE. Export an .st9 file to disk, then switch to UnrealEd and import the .st9 file there. The mesh and all textures should be found and imported into your UE project assets. 
 + 
 +On import, material instances will be created for all of the [[#materials|materials]] in the .st9 file. The material instances can be switched to a new parent material after import, if wanted.
  
  
Line 28: Line 39:
  
 {{:ue4_painted_grass.jpg?400&direct }} {{:ue4_painted_grass.jpg?400&direct }}
-You can also paint the tree with a foliage layer. Drag the asset into foliage painting area and paint the SpeedTrees like any other static mesh. See [[https://docs.unrealengine.com/en-US/BuildingWorlds/Foliage/index.html|UE4's foliage tool documentation]] for more information.+You can also paint the tree with a foliage layer. Drag the asset into foliage painting area and paint the SpeedTrees like any other static mesh. See [[https://docs.unrealengine.com/en-US/BuildingWorlds/Foliage/index.html|UE's foliage tool documentation]] for more information.
 <WRAP clear></WRAP> <WRAP clear></WRAP>
  
 =====Wind===== =====Wind=====
  
-With ST9, you can wholly tune the wind effects inside UE4 after import instead of needing to go back to the Modeler. There is no strength value, you edit the wind animation parameters directly, including direction. Smoothly changing any non-frequency values over time, including direction, can be done using a blueprint.+With .st9, you can wholly tune the wind effects inside UE after import instead of needing to go back to the Modeler. There is no strength value, you edit the wind animation parameters directly, including direction. Smoothly changing any non-frequency values over time, including direction, can be done using a blueprint.
  
-> **Note:** If editing in UE4, be sure to change all of the material instances of a tree to the same values or you may have separation.+> **Note:** If editing in UE, be sure to change all of the material instances of a tree to the same values or you may have separation.
  
-However, editing in the Modeler does offer some benefits. The values are scaled into meaningful ranges so you can more easily copy values from tree to tree (rather than work in real-world units in UE4). Also, the Modeler has wind curves that are used in conjunction with wind strength so you can dial up and down the wind effects easily, while in UE4 you are tuning the singular wind effect used on the tree. The wind strength at export time is "baked in" to the wind curves to find the wind parameter values set on the material instances.+However, editing in the Modeler does offer some benefits. The values are scaled into meaningful ranges so you can more easily copy values from tree to tree (rather than work in real-world units in UE). Also, the Modeler has wind curves that are used in conjunction with wind strength so you can dial up and down the wind effects easily, while in UE you are tuning the singular wind effect used on the tree. The wind strength at export time is "baked in" to the wind curves to find the wind parameter values set on the material instances.
  
 =====LOD===== =====LOD=====
  
-Your [[kcgameslod|LOD behavior]] is set in the SpeedTree Modeler, but you can adjust when the LOD changes occur inside of UE4. LOD transitions are based on screen space area, and these values can be edited in the static mesh editor associated with the SpeedTree model. Default values are chosen upon import that work for typical situations. +Your [[kcgameslod|LOD behavior]] is set in the SpeedTree Modeler, but you can adjust when the LOD changes occur inside of UE. LOD transitions are based on screen space area, and these values can be edited in the static mesh editor associated with the SpeedTree model. Default values are chosen upon import that work for typical situations. 
  
-All smooth LOD transitions are done using UE4's crossfaded LOD.+All smooth LOD transitions are done using UE's crossfaded LOD.
  
 =====Materials===== =====Materials=====
  
-The materials created by the ST9 importer are actually material instances based off of one of two "master" materials (one for geometry and one for billboards). Wind effects and other settings are available parameters to edit on each instance.+The materials created by the .st9 importer are actually material instances based off of one of two "master" materials (one for geometry and one for billboards). Wind effects and other settings are available parameters to edit on each instance.
  
 If you wish to edit SpeedTree materials, you can do this by editing the original materials stored in the engine. Or (and this is a better practice) you can duplicate the engine materials and edit them as you wish. Then, switch the material instances to the new parent material after importing the tree. In this manner, you could have a number of different material setups ready to go, and the various parameter values set by the importer will move to the new ones. If you wish to edit SpeedTree materials, you can do this by editing the original materials stored in the engine. Or (and this is a better practice) you can duplicate the engine materials and edit them as you wish. Then, switch the material instances to the new parent material after importing the tree. In this manner, you could have a number of different material setups ready to go, and the various parameter values set by the importer will move to the new ones.