Version 2.1.1 - Houdini 20.0.625
Version 2.1.1 - Houdini 20.0.625
Update 1 of the Houdini Engine for Unreal for Houdini 20.0.
The plugin is now linked to Houdini 20.0.625 / HAPI 6.2.0.
Source and binaries are included for:
UE5.2, and UE5.3 on Windows.
UE5.1 and UE5.2 on Mac OS.
UE5.2 on Mac OS (Apple Silicon).
Please note that the source code available in the 5.0 branch is compatible with UE 5.0 , 5.1, 5.2 and 5.3.
Also, please remember that the plugin's binaries AND source code are always available with the launcher/installer for a given version of Houdini. If you install or want to use a daily build, please use the version of the plugin binaries/source code included with it.
New features / Changes:
Landscapes
- Added checkbox to export height only when importing to Houdini from Unreal.
- Added more control over which landscape layers are sent to Houdini from Unreal.
The user can now specify if Edit Layers and/or Paint Layers can be sent to Houdini.
Removed the previous option to send the combined height-only data, as this can be achieved by disabling Edit and Paint layers simultaneously. - Added a new attribute unreal_landscape_layer_normalize to control how layer data is normalized if outside the range 0 to 1.
By default is it clamped, setting 1 will normalize the data. Changed deprecated weight layer blend to use Target, rather than Edit, layers.
Baking:
- Baking outputs from a HoudiniAssetComponent will no longer replace assets when both of the following conditions are met:
- The default bake name is being used (for example, no custom name has been set with unreal_output_name),
and it is the first time that the HoudiniAssetActor is baking the specific output object.
- The default bake name is being used (for example, no custom name has been set with unreal_output_name),
- When baking an output asset the default bake name now includes the
HoudiniAssetComponent
's GUID (if a custom bake name was not set in the output details panel or via attributes).
This makes the default bake name unique to that specific HoudiniAssetActor, preventing situations where baking could replace assets baked from different instantiations of the same HDA from different levels when using the default bake name. - Added support for baking data tables.
- Added support for tokens when specifying the bake world outliner folder.
Skeletal Mesh:
- SkeletalMesh input now send two packed prims to the HDA input:
the mesh data (mesh, colliders, LODs, sockets) asBase.shp
and the capture pose data asBase.skel
. - Updated the UnrealToKineFX HDA to split/unpack the new SkeletalMeshinput data.
- Fixed scale on the Skeletal Mesh input Capture Pose to match FBX imports.
- Fixed unreal_skeleton attribute value for AnimSequence inputs.
- Skeletal Mesh output now translate the Rest Geometry and Capture Pose from packed primitives (similar to the input change above).
Packed primitives from multiple skeletal meshes can be merged together into a single output. - Updated the KineFXToUnreal HDA to match new output requirements.
- Added support for Houdini/Unreal materials to Skeletal mesh output.
- Added Skeletal Mesh output UI.
Animation:
- Animation sequence now translate to motion clips directly.
Added support for AnimSequence outputs to the HAC details panel. - Add support for serializing AnimCurves as fbx_custom_attributes when sending/receiving AnimSequences / motionclips.
- Add support for setting "Default" collision profile on static mesh components.
- Removed Static Mesh Method as it conflicts with other Proxy Mesh settings in the HDA. Added a Boolean property to control whether or not to use deprecated Raw Mesh mesh generation functionality.
- Improved BGEO importer (used for PDG, direct imports and NodeSync) by adding support for Data Tables, Skeletal Meshes, Geometry Collections, and Animation Sequences.
Input:
- Improved the UI for editing rotations in Geometry input transforms.
- The plugin now exports Level Instance and Packed Level Actor content with world input in the new input system.
- Added the "Export Level Instance Content" world input option to the input UI / details panel.
This option can be used to enable or disable exporting of Level Instance / Packed Level Actor content with world input. The option is enabled by default. - The default value for bPreferNaniteFallbackMesh and UnrealSplineResolutionsnow respect the default value set in the plugin's settings.
- Added support for exporting Bool/StaticSwitch material parameters when sending assets with the "export material parameters" option enabled.
Public API:
- Added support for enabling / disabling, and querying the enabled state, of the cook triggers (
On Parameter/Input Change
,On Transform Change
andOn Asset Input Cook
) of a HoudiniAssetActor to the Public API.
The AssetWrapper's set functions will now properly mark HDAs as modified if necessary. - Added access to the "DoNotGenerateOutputs" option on the Asset Wrapper.
- Added access to bImportAsReferenceRotScaleEnabled, bImportAsReferenceBboxEnabled,bImportAsReferenceMaterialEnabled, bExportMaterialParameters to the Input Wrappers.
- World Inputs - Added access to bDirectlyConnectHdas, bExportEditLayers and bExportPaintLayers.
- The Public API's PDGCookOutputsForNetwork and PDGCookNode functions now return true only if a cook was successfully started.
If the PDG graph was already cooking, they will now return false.
Bug fixes:
- Fixed an issue where the wrong camera transform could be sent to Houdini from Unreal.
- Fixed an issue where height fields with non-default grid spacing would be scaled vertically when imported to Unreal.
- Fixed an issue where HDAs would recook when loading a sub level containing an HDA which references an actor in the same sub level.
- Fixed a crash that could occur when recooking a SkeletalMesh output.
- Fixed an issue where a new output SkeletalMeshComponent was created for each cook/recook of the same SkeletalMesh output, instead of reusing the previously created SkeletalMeshComponent.
- Fixed a bug where custom collision meshes from a HoudiniAssetActor's temporary output would not be baked when baking the output of the HoudiniAssetActor.
- The new input system now correctly identifies variations of input objects that are affected by the following input settings:
"Export Individual Paint Layers (Landscape)"
"Export Landscape Materials (Landscape)"
"Export Landscape Tile UVs (Landscape)"
"Export Landscape Normalized UVs (Landscape)"
"Export Landscape Lighting (Landscape)"
"Export Selected Landscape Components Only (Landscape)"
"Use Legacy Input Curves"
"Unreal Spline Resolution"
"Export Material Parameters" - Fixed a build error with UE5.0 due to a missing #include directive.
- Fixed a bug where incorrect input nodes could be deleted when resending input data when using the new input system.
- Fixed an issue where the landscape translator did not delete its previous input node when the landscape is re-exported using the new input system.
- Fixed an issue, in the new input system, when updating connections to merge SOPs where some old / out of date object merge nodes remained connected and were not deleted.
- Fixed crash when saving a level after the Wrapper deletes the Houdini Asset Actor.
- Fixed an issue where the input object state in the HAC was not always saved when using World Partition, or one file per actor.
The package of the HoudiniAssetActor is now marked as dirty when:- world inputs are updated,
- an input object is sent to Houdini, and an input object is set on a HAC input.
- UE 4.27 only: Fixed a bug when baking a static mesh, where if it uses a temporary output mesh as its complex collision mesh, the collision mesh was not baked.
- When baking a skeletal mesh the skeleton is now also baked if the skeleton asset is a temporary output.
Skeletal mesh output and baking now supports output attributes, such asunreal_temp_folder
andunreal_output_name
. - Fixed vertex colors not being converted to linear space when importing from Unreal.
- Skeletal Mesh input now exports the mesh using the
FSkeletalMeshImportData
(the source geometry), if available in the bulk data,
to Houdini viaFMeshDescription
. This also fixes an issue where Skeletal Mesh UVs were not exported to Houdini correctly. - Fixed an issue where the static mesh and materials used by a foliage type was not baked when the foliage type was baked.
Baking now also checks if a temporary asset was created by the HoudiniAssetComponent that is being baked (using the GUID saved in the temporary asset's metadata) before baking the object itself. - Fixed an issue with baking foliage where material overrides would be lost: material overrides are now applied to the cooked foliage type instead of directly on the instanced foliage components (component level overrides were lost if any modification was made to the foliage type that result in an update to the components).
If an HDA outputs foliage via an existing foliage type asset(unreal_instance
is set to a foliage type asset and not a static mesh),then baking will bake to a new foliage type asset if the cooked foliage type has been modified (for example, generic uproperty attributes are used to change properties of the cooked foliage type, or material overrides are applied). - Don't created layer info assets for landscape material layers if they layer is not present in the HDA. Do not copy user specified landscape layer info objects to the bake folder.
- Fixed issues when translating Houdini materials to UE materials:
Diffuse values were incorrectly used for specular. We now properly use "reflectivity" for specular value/maps. - Fixed the diffuse map sometimes being used for normal maps.
- Fixed emissive/metallic values not being properly created.
- Fixed an issue where collision-only meshes were still visible in the scene.
- Fixed an issue where Houdini Static Mesh components are not deleted when recooking.
- Fixed world input objects not being properly created in Houdini when invalid characters are present in the actor or component's name when using the new input system.
- Fixed a crash when a landscape is input to an HDA and the landscape has a missing layer info on a paint layer.
- Fixed data layers not propagating to PDG assets in Unreal.
- Fixed an issue when adding to a World input's selection with the new input system activated: previously selected Actors were ignored.
- Optimized and improved SlateNotifications and DetailsPanels updates as they were sometimes significantly slowing the plugin.
- Reduced notification spam, all notifications now clearly indicates which HDA they're coming from.
- (UE5.2+) Fixed a crash when creating Geometry Collections with more than one UV set.
- Limited the number of Landscape Spline control points input from Houdini to Unreal to 1000. This prevents a crash in Unreal when saving a map with a large number of control points.
- Fixed a crash when cooking if an HDA input straddles a world partition boundary.
- Fixed a warning when exporting landscapes with the old Unreal input system.