Skip to content

Releases: sideeffects/HoudiniEngineForUnreal

Version 2.0.10 - Houdini 19.0.622

17 Jun 22:37
Compare
Choose a tag to compare

Update 10 of the Houdini Engine for Unreal Plugin.

The plugin is now linked to Houdini 19.0.622 / HAPI 4.2.11.

Source and binaries are included for UE4.26 UE4.27 and UE5.0.

Please note that the source code now available in the Houdini19.0-5.00 branch is now for the UE5.0 release builds.

Changes

  • Added support for Unreal Engine 5.0.

  • Fixed crash when outputting Geometry Collections.

  • "Open Session Sync" and "Open Scene in Houdini" now use unreal's working directory as their working dir instead of using the temp directory.
    This will make troubleshooting path issues with the internal session more convenient.

  • Fixed bug causing session loss when using Unreal Spline Components in World Inputs.
    (when not using legacy curves)

  • Fixed bug that caused World Inputs to sometimes not detect that their input object/actors had changed. This prevented the HDA from automatically updating.

  • Added the "Use Legacy Curve" checkbox to world inputs.

  • Improved how world inputs track/detect spline components modifications.

  • Fixed manually entered transform still being pushed to Houdini even when "Push Transform to Houdini" is disabled.

  • Fixed Unreal Spline Component's closed state being incorrectly set when using world input.

  • Fixed world input ignoring the "Use Legacy Curve" setting when sending unreal spline components.
    The setting was only used for (Houdini) curve inputs.

  • Enabled the "Use Legacy Curve" setting by default as it helps with instabilities when inputting curves/splines.

  • Fixed a bug that caused UploadTransformToHoudini to only work when CookOnTransformChange was enabled.

  • Houdini Proxy Meshes are now enabled by default.

  • Fixed rot/scale attributes being ignored when outputting curves to SplineComponents.

  • Fixed material parameter attributes (unreal_material_parameter_*) not being created on inputs.

  • (UE5) Added support for the "unreal_nanite_fallback_relative_error" and "unreal_nanite_trim_relative_error" attributes to set the corresponding nanite settings.

  • (UE5) Merged PR#172 on behalf of Filoppi:
    Fixed Nanite FallbackPercentTriangles parameter being incorrectly set

Version 2.0.9 - Houdini 19.0.561

22 Mar 18:33
Compare
Choose a tag to compare

Update 9 of the V2 Plugin.

The plugin is now linked to Houdini 19.0.561 / HAPI 4.2.11.

As only version 2 of the plugin now ships with Houdini 19.0, regular updates of the version 2 plugin now resume on this repository.
The source code available on this repository for the Houdini 19.0 branches is for the daily updates of the plugin, and will likely require the daily build of Houdini.

Source and binaries are included for UE4.26 UE4.27 and UE5-preview2.

Please note that the source code now available in the Houdini19.0-5.00 branch is now for the UE5.0 preview builds.

Also, if you are using the UE5 preview binaries with the UE5 version from the Epic Launcher, please make sure to install the plugins as a project plugin, not an engine plugin (copy the plugin in your project's Plugins/Runtime folder, or create it if the folder doesn't exist).

Changes:

  • Fixed issue where saving a level in World Composition mode would trigger a recook of HDAs.
  • Fixed potential crashes with the custom details / UI panels.
  • Fixed crash when using ButtonStrip parameters.
  • Fixed issue where baking Landscapes with edit layers to sublevels can cause UE to crash.
  • Fixed a bug (UE5 only) where mesh translation would crash if the mesh had a k-DOP collision primitive.
  • Improved detection of newly baked levels when WorldComposition is enabled.
  • Fixed crash when baking a non-edit layer landscape.
  • Fixed HoudiniAssetComponent cook-on-transform-change regression.
  • Fixed height offset issue with input landscapes.
  • Partially loaded input landscapes will now correctly send transforms to Houdini.

Version 2.0.8 - Houdini 19.0.531

16 Feb 23:08
Compare
Choose a tag to compare

Update 8 of the V2 Plugin.

The plugin is now linked to Houdini 19.0.531 / HAPI 4.2.10.

As only version 2 of the plugin now ships with Houdini 19.0, regular updates of the version 2 plugin now resume on this repository.
The source code available on this repository for the Houdini 19.0 branches is for the daily updates of the plugin, and will likely require the daily build of Houdini.

Source and binaries included for UE4.26 UE4.27, UE5-EA2, UE5-preview1 and the more recent unreal5.0 branch.

Please note that the source code now available in the Houdini19.0-5.00 branch is now for the recent unreal5.0, not for early access 2.
UE5-Early Access 2 code/binaries are only available on this release page.

Also, if you are using the EA2 or Preview1 binaries with the UE5 version from the Epic Launcher, please make sure to install the plugins as a project plugin, not an engine plugin (copy the plugin in your project's Plugins/Runtime folder, or create it if the folder doesn't exist).

Changes:

  • Set Static Mesh's Collision Trace Flag to Use Complex as Simple when assigning collision geometry.
  • Fixed a bug with static mesh translation where output attributes, such as unreal_output_name, would not always be correctly processed if the mesh has LOD or collision groups.
  • Fixed an issue where landscape height offset would be applied twice when sending landscape data to Houdini.
  • Ensure landscape transform is updated when performing Recommit Landscape.
  • Fixed Houdini Engine Session lost when sending/receiving a large amount of data (with either meshes, landscapes, textures... etc).
    These regressions were introduced in H19.0 after an update of the thrift library that HAPI uses for IPC.
  • Fixed the plugin not being able to input/output large Heightfields/landscapes.
    This was caused by an update to the thrift libraries in Houdini19.0 that introduced a max buffer size for transporting data to/from the session.
    The data is now sent/received in chunks when bigger than the max buffer size.
  • Merged PR#151 on behalf of Mystfit : Fixed some RHS float type mismatches against the UE5-main branch.
  • Merged PR#148 on behalf of dearamy : Fix UE5 Crash when input asset is a data table.
  • The plugin will now proactively check for failures when starting Houdini SessionSync instead of waiting for the timeout.
  • Fixed a bug where viewing the details panel of a HoudiniAssetComponent with a PDG asset link would crash Unreal (only in UE5).
  • Fixed the HE session being lost after Playing In Editor when not using Session Sync. The session is now properly restarted.
  • Fixed linux build issue.
  • Fixed not being able to have different "unreal_nanite_enabled" states in the same HDA. It is now possible to output both nanite and regular meshes in the same HDA. The other nanite attributes do not enable nanite, and the "unreal_nanite_enabled" attribute must now be present (and non-zero) to output a nanite mesh.
  • Fixed a bug with instancing assets where assets were not always loaded from disk when not in memory.
  • Only set Landscape layer NoWeightBlend option if a LayerInfo is created for the first time or if an attribute is present.
  • Fixed a bug where baking landscape tiles as normal landscape actors (with the unreal_landscape_tile_actor_type attribute set to 0) to sublevels would create streaming proxies in the sublevels instead of landscape actors.

Version 2.0.7 - Houdini 19.0.498

14 Jan 23:22
Compare
Choose a tag to compare

Update 7 of the V2 Plugin.
The plugin is now linked to Houdini 19.0.498 / HAPI 4.2.8.

As only version 2 of the plugin now ships with Houdini 19.0, regular updates of the version 2 plugin now resume on this repository.
The source code available on this repository for the Houdini 19.0 branches is for the daily updates of the plugin, and will likely require the daily build of Houdini.

Source and binaries included for UE4.26 UE4.27, UE5-EA2, and the more recent unreal5.0 branch.

Please note that the source code now available in the Houdini19.0-5.00 branch is now for the recent unreal5.0, not for early access 2.

Changes:

  • Fixed a bug where the StaticMesh translator would read point attributes from an incorrect point index.
  • Fixed a bug with baking static mesh outputs where temporary complex collision meshes (the collision_geo group) would not be baked.
  • Fixed a bug where the Temporary Cook Folder property on the HoudiniAssetComponent and the unreal_temp_folder attribute were not working correctly.
  • Fixed a bug causing the plugin to create an extra empty Blueprint when importing BGEO files.
  • Initialize collision profile on newly created static mesh components to match that of the HoudiniAssetComponent.
  • Added unreal_landscape_layer_noweightblend and unreal_landscape_editlayer_subtractive attributes for landscape edit layers.
  • Fixed an issue where the "Cook Output" button on the PDG Asset Link would only cook the first output instead of all outputs of the TOP network.
  • Apply CollisionProfileName uproperty to generated static meshes.
  • Landscape Modify Edit Layer output mode is now able to output multiple edit layers.
  • Fix possible crashes during Landscape output cleanup.
  • Fix issue where certain editor tools (such as Landscape Flatten tool) would constantly trigger HDA updates for landscape inputs.
  • Added a new attribute, unreal_bake_actor_class, that can be used to set the class of the Actor that is spawned when baking to actors. If unreal_bake_actor_class is blank or missing, then an AActor is spawned.
  • Updated the logic for UE5 GeometryCollection generation
  • Added attributes unreal_gc_clustering_cluster_connection_type, unreal_gc_collisions_max_size, unreal_gc_collisions_damage_threshold, unreal_gc_collisions_collision_margin_fraction to control the new UE5 attributes
  • Added attribute variants to UE5's new "size-specific data", which allows you to use an array of cluster objects rather than only a single one.
  • Added geometry collection examples.
  • Static mesh generation properties and mesh build settings from the HoudiniAssetComponent are now also used for static meshes generated by PDG.
  • Fixed crash when HDA output node has template flag enabled.
  • Fixed an issue with applying generic UProperty attributes to source models on static meshes where only the first source model's UProperties were updated. Additionally, generic attributes now only trigger updates on the corresponding UProperties if the current and new values are different.
  • When PIE stops, only reconnect the Houdini session if it was previously connected.
  • Added unreal_gc_cluster, which allows you to specify the cluster index for the geometry collection piece, allowing for multiple groups within one level for both input and output.
  • Approximate simple box and capsule collider rotations when importing static mesh collision geometry into Unreal.

Version 2.0.6 - Houdini 19.0.455

09 Dec 00:16
Compare
Choose a tag to compare

Update 6 of the V2 Plugin.
The plugin is now linked to Houdini 19.0.455 / HAPI 4.2.7.

As only version 2 of the plugin now ships with Houdini 19.0, regular updates of the version 2 plugin now resume on this repository.
The source code available on this repository for the Houdini 19.0 branches is for the daily updates of the plugin, and will likely require the daily build of Houdini.

Source and binaries included for UE4.26 UE4.27, UE5-EA2, and the more recent unreal5.0 branch.

Please note that the source code now available in the Houdini19.0-5.00 branch is now for the recent unreal5.0, not for early access 2.

New features:

  • Added a new attribute, "unreal_force_instancer", that can be used to ensure that an instancer component is created even if there is only a single instance of a StaticMesh.
    If "unreal_foliage", "unreal_split_instances" or "unreal_hierarchical_instancer" is set and not 0, then the particular instancer type is created even if there is only a single instance of the StaticMesh.

  • For landscape inputs, added the option to marshall only selected landscapes, and auto-select landscapes within asset bounds
    Also added "Update selected components" button, that updates the selected components to the current landscape selection

  • By default, the plugin now uses the output nodes found in a HDA instead of the display flag.

  • It is now possible to set the default directory used in the browse dialog for File parameters by using the "default_dir" Parameter tag.

  • Added support for the "unreal_bake_name" attribute that can be used to set the name of the object(s) generated during baking.
    The "unreal_output_name" attribute takes precedence.
    When baking Houdini Instanced Actor Components the "unreal_output_name" (or "unreal_bake_name") attribute, if set, is now used to determine the baked instance actor names.
    When baking Houdini Instanced Actor Components the instanced object name is now used as the default bake name instead of the HDA actor's name (if the unreal_output_name and unreal_bake_name attributes are not set).

Bug fixes:

  • Fixed an issue where rebuilding or recooking may cause Landscapes similar to the one being cooked to be improperly deleted.
  • Fixed rotation transform issues for box collider input.
  • Input object transform offsets are now accessed by input object index in Public API Geometry inputs.
  • Fixed issue where HDA wouldn't update when an input actor is deleted.
  • Prevent cooking of HDAs during PIE except for HDAs that are refining geometry.
  • Disable HoudiniEngineManger ticking during PIE after refinement has completed.
  • Fixed an issue where input nodes were not cleaned up in the session.
  • Prevent modifying non-editlayer landscapes when using the Modify Layer output mode.
  • Fix tracking of transform changes, as well as transform uploading issues, of non-root components in World Input objects.
  • Fix transform updating for Spline components.
  • Ensure that all data from all output nodes are being properly output.
  • Fixed an issue where nodes for world input actors were always recreated on update.
  • Fixed an issue where landscape input transform changes were not applied correctly.
  • Fix BSP transform issue.
  • When removing temporary PDG outputs the plugin now also uses the HoudiniAssetComponent's GUID in the package metadata to determine if the output asset may be deleted.
  • Fixed an issue where collision presets were not being saved from the plugin settings
  • Properly name visibility layer when sending heightfield data to Houdini.
  • Updated how the plugin tries to detect if an HDA should have a PDGAssetLink created.
    The plugin now simply looks for non scheduler/non bypassed TOP nodes in the asset.
    Previously it would look for TOP nodes inside all the non bypassed TOP/SOP network, which in some case drastically increased the HDA instantiation time, even for asset without any TOP nodes.
  • Fixed issues regarding exported input capsule colliders with rotations.
  • Fixed issues regarding exported input translation/rotation/scale of convex collider collisions.
  • The generated mesh output now properly uses the collision complexity from the Houdini Mesh Generation Properties.
    A side effect of this is that the default collision complexity behaviour is now CTF_UseDefault instead of CTF_UseComplexAsSimple.
  • Fixed an issue where data tables with invalid names (spaces or colons) would not marshall data into Houdini Engine.
  • Fixed an issue where the HDA wouldn't properly switch between editable and non-editable curve.
  • Fixed cleanup issue of Houdini Spline input objects in Houdini sessions.
  • Fixed an issue during baking where the baked actors of the work items of a TOP node in the PDG asset link were not shared with the remaining work items on the TOP node.
  • Fixed an issue when processing a spline/curve from Houdini where attributes such as unreal_output_name and unreal_bake_actor were not always updated when the HDA was cooked more than once,
    resulting in baking producing incorrect output names / bake actor names.
  • If unreal_bake_actor is not set for a spline / curve we now use unreal_output_name to determine the bake actor name.
  • Improved how work items of TOP nodes are associated with previous cook / bake data in the PDG asset link.
  • Fixed various cases where after a successful bake the plug-in incorrectly reported that 0 packages were created and/or updated.
  • Fixed output updating and HDA cooking issues that can occur when using Session Sync.
  • Fixed an issue where nested empty folders might crash Unreal or Houdini Engine
  • Fixed landscape tile resizing in Generate mode.
  • Houdini to Unreal StaticMesh translation: fixed an issue where duplicate warnings would be logged in Unreal for meshes with invalid face / vertex data, for each index that is invalid.
  • Fixed an issue where HDA would fail to produce output if HDA is a Sop/Subnet with display flag set on an output node and Use Output Nodes is enabled.
  • Fixed unreal_landscape_editlayer_target attribute for Landscape Modify mode.
  • Fixed landscape input targeting using Input0, Input1, etc.
  • Fixed Landscape edit layer transforms in Modify mode.
  • Houdini Instanced Actor Components now support the unreal_bake_actor attribute when baking:
    the instanced actors are attached to unreal_bake_actor (which is created as an empty actor or re-used from a previous bake depending on the replacement mode).
  • Fixed a crash when trying to assign object path properties via generic attributes with an invalid path.
  • Fixed loading of PDG output regression.
  • UE5: Fixed an issue where bake to actor would fail and not create any baked actors / assets
  • Fixed material update issue for tiled landscapes.
  • Fixed an issue where input updates/changes via the public API, especially with curve inputs, would not always take effect.
  • Updated the public API documentation to mention that the API returns copies of the input configuration of an HDA and that to apply changes the SetInputAtIndex() or SetInputParameter() functions must be used.
  • Initial support for generation of landscapes with edit layers (using Generate output mode).
  • Fixed various issues with Modify landscape output mode.
  • Added support for edit layer attributes on heightfield primitives.
  • Fixed an issue where temp landscapes were not spawned in the HAC's level.
  • Fixed an issue where HDA would output from hidden or nested subnets.
  • Fixed handling of output data between Display nodes and Output nodes to match Houdini's internal behaviour.
  • All UHoudiniPublicAPIInput classes are now API exported in the C++ Public API
  • Fixed setting multiparm parameters via the Public API
  • AHoudiniAssetActor is now public in C++
  • Fixed a regression that caused rebuilds to fail with "Fatal error - invalid".
  • UE5: Fixed "double cooking" issue when instantiating a new HDA by dragging it on the viewport (UE5 specific). Like in UE4, the HDA is only cooked after being dropped.
  • Fixed Wrong tooltip on Landscape Input "Update Landscape Data"
  • UE5: Fixed invisible mesh after cooking (only for the unreal5.0 branch)

Version 2.0.5 - Houdini 19.0.383

03 Nov 22:06
Compare
Choose a tag to compare

Update 5 of the V2 Plugin.
The plugin is now linked to Houdini 19.0.383 / HAPI 4.2.4.

As only version 2 of the plugin now ships with Houdini 19.0, regular updates of the version 2 plugin now resume on this repository.
The source code available on this repository for the Houdini 19.0 branches is for the daily updates of the plugin, and will likely require the daily build of Houdini.

New features:

(UE5) Added Nanite support on output meshes:
When creating a mesh, the plugin now has the ability to control the Nanite settings via the following attributes:

  • unreal_nanite_enabled (int, 0 or 1 ) can be used to enable Nanite processing when building a StaticMesh.
  • unreal_nanite_position_precision (int) can be used to set the position precision.
    Step size is 2^(-Value) cm
  • unreal_nanite_percent_triangles (float [0 1]) can be used to control the percentage of triangles to keep from LOD0.
    1.0 = no reduction, 0.0 = no triangles.

(UE4.26+) Added support for Chaos/GeometryCollection

  • The plugin now has the ability to import/output Geometry Collection.
    A set of attributes can be used to control the properties of the created Geometry Collection.
    For more info, please consult the plugin's documentation.

By default, the plugin now uses the output nodes found in a HDA instead of the display flag.

It is now possible to set the default directory used in the browse dialog for File parameters by using the "default_dir" Parameter tag.

It is now possible to generate landscapes with edit layers (using the "Generate" output mode).

Bug fixes:

  • Fixed landscape tile resizing in Generate mode.
  • Fixed possible crashes when sending empty strings to HAPI.
    This fixed a crash when sending DataTables with empty structs in rows via a geometry input.
  • Fix potential crash with Landscape Inputs
  • Fix issue where HDA would fail to produce output if the HDA is a Sop/Subnet
    with the display flag set on an output node with Use Output Nodes enabled.
  • HoudiniAssetName and HoudiniAssetActorName are now correctly set
    to the HDA name and HDA actor name respectively in the package params when
    baking (previously both were set to the actor name).
  • Added support for the unreal_bake_name attribute that can be used to set
    the name of the object(s) generated during baking. The unreal_output_name
    attribute takes precedence.
  • When baking Houdini Instanced Actor Components the unreal_output_name
    (or unreal_bake_name) attribute, if set, is now used to determine the baked
    instance actor names.
  • When baking Houdini Instanced Actor Components the instanced object name is
    now used as the default bake name instead of the asset actor's name (if the
    unreal_output_name and unreal_bake_name attributes are not set).
  • Houdini Instanced Actor Components now support the unreal_bake_actor
    attribute when baking: the instanced actors are attached to unreal_bake_actor
    (which is created as an empty actor or re-used from a previous bake depending
    on the replacement mode).
  • Fix unreal_landscape_editlayer_target attribute for Modify mode.
  • Fix indexing issue when targeting input landscapes using Input0, Input1, etc.
  • Fix Landscape edit layer transforms in Modify mode.
  • Fixed a crash when trying to assign object path properties via generic attributes with an invalid path.
  • Public API: Mark the inputs as changed in more cases when updating / applying new inputs / input objects
  • Public API Curve Inputs: Check for changes in HoudiniSplineComponent properties or points and mark the spline as changed
  • Public API Curve Inputs: When updating curve inputs, try to re-use the existing HoudiniSplineComponents instead of always creating new ones
  • Public API: Call DeleteInputObjectAt on the input objects that are removed if the input object array shrinks
  • Public API: after setting inputs reselect the HAC's actor if it was selected (this ensures that any new components/visualizers are redrawn)
  • HoudiniInput: Added an optional parameter to DeleteInputObjectAt to not remove the space / index in the array, but to set it to null (to reuse the position in the array when replacing an input object of the same type with another one)
  • Fixed material update issue for tiled landscapes.
  • Fix issues where subnet gathering would traverse too deep and use unexpected output data.
  • Fix issue where subnet gathering would not correctly take subnet visibility into account.
  • Fix resolving of output data between Display nodes and Output nodes.
    If both an Output node and a Display node is present in the same network (and Use Output Nodes are enabled), only the Output node data will be used.
    If no Output nodes are present, always use the Display node. This should now match Houdini's own data-output behavior.
  • Fixed the issue where temp landscapes (shared, actor and streaming proxy) were not spawned in the HAC's level.