Skip to content

Releases: sideeffects/HoudiniEngineForUnreal-v2

Version 2 - Alpha 3.1

07 Aug 20:21
Compare
Choose a tag to compare
Version 2 - Alpha 3.1 Pre-release
Pre-release

Alpha 3.1 update

The plug-in is now linked with Houdini 18.0.532 / HAPI3.3.11


New Features:

  • Added the ability to split attribute instancers and packed primitives instancers by attribute.
    The attribute used to split the instancers can be set via the "unreal_split_attr" attribute (string).
    The specified attributes values will then be used to create multiple instancers instead of one.
  • Instancers now store the split attributes they used so it can be reused to resolve output attributes.
    This allows, for example, to use the tile attribute when baking instancers/meshes to world composition
    (with a tiled landscape) to control the sub-level where the baked actors should be placed.
  • Added automatic conversion of attributes when they are of an inappropriate type.
    FHoudiniEngineUtils::HapiGetAttributeDataAsFloat/Integer/String now try to convert attributes to the expected type.
    This will remove frustration and attributes being ignored due to them not being of the expected type.

Bug Fixes:

  • Fixed non-editor build errors, game build errors and incorrect initialization warnings when packaging.
  • Fixed non-unity build issues caused by #define LOCTEXT_NAMESPACE
  • Added 'Scale Changed Uniformly' Lock and Reset to float VEC3 parameter, to Input Geometry objects and instanced objects.
  • Parameter UI performance improved: Construct radio button circle segments exactly once at first use, avoid repeat computation.
  • Fixed the 'Editing...' Text in Curve Input UI not updated properly when selecting other types of components in the same HDA.
  • Fixed: Made the curve type menu consistent to Houdini. Added 'Points' curve type which displays CVs only.
  • Fixed: curves 'reversed' parameter is now synced with Houdini.
  • Fixed: bug preventing the editing of curves when cooking is paused.
  • Fixed: Unreal Spline Component input cooking infinitely after changing a spline control point or rebuilding.
  • Fixed: File/String parameters text field extends when the string is long.
  • Fixed: Crash when connecting to a HARS session that was manually started.
    This was caused by calling SetSessionSyncInfo before initializing HAPI.
  • Fixed displayed templated geos not updating after having being changed.
  • Fixed: PDG Asset Link listing bypassed TOP Networks/TOP Nodes.
  • Fixed: Ramp parameters' curves UI disappearing randomly due to GC.
  • Fixed: PDG Asset Link listing TOP Networks nested inside other TOP networks.
    This fixes the PDG listing all subnets, ROP Geometry top nodes etc.. found in a HDA.
  • Fixed: bug with the PDG Asset Link that prevented certain nodes from being cooked via the UI.
    This was caused by an invalid selection of TOP Nodes due to a mismatch between UI indices and TOP indices caused by hidden nodes.
  • Fixed the PDG Asset Link sometimes still an invalid/hidden node after changing the node filter, or after instantiating a new PDG HDA with invalid/hidden nodes.
  • Fixed crashes that could happen when recooking a HDA with tiled landscapes that previously baked to WC, after adding new tiles.
  • Fixed crash that could happen when loosing the session due to houdini crashing (or being killed manually).
    FHoudiniEngineManager::StopHoudiniTicking() crashed when trying to access/clear the timer out of the game thread.
  • Fixed the plugin leaving previous foliage types in the foliage system after changing the foliage mesh.
    When instancing foliage, the previously used foliage type is now destroyed if no instances are left on it after cleaning the HDA's instances.
  • Fixed deleting an HDA also deleting the foliage component even if that component still had manually placed instances left.
    We now only delete the foliage component if it doesn't have instances anymore.
  • Fixed a bug that prevented clearing string parameters used as Asset pickers.
  • Removed outdated warning spam when attempting to fetch unreal_material attributes on instancers:
    "Instancer: the unreal_material attribute must be a primitive or detail attribute, ignoring the attribute."
  • Fixed foliage instancers removing/destroying the foliage component for the previously used foliage type
    after changing the instanced mesh, even if said foliage component still had hand-placed instances left.
  • Fixed foliage instancers leaving empty foliage types behind after deleting their Houdini asset actor.
  • Fixed regression causing "Bake To Actor" to attempt to create a default level when the "unreal_level_path" attribute is not set.
    This caused the baking process to open a "save as" dialog to attempt to save that untitled level...
    Bake to actors now properly uses the current level when the level path attribute is not set.
  • Fixed the "tile" attribute/ "tile_i" token not being properly processed with "unreal_level_path" attributes when baking meshes and instancers to actors.
  • Fixed string parameters set as asset picker not updating their thumbnail/selected object after drag & dropping an asset on the widget.
    The string value was properly set to the asset reference, but the widget didn't display the proper asset thumbnail/infos.
  • Fixed baking instancers sometimes creating invisible actors.
    This was caused by the default reference mesh setting the HiddenInGame property to true.
  • Fixed issues when creating multiple landscape tiles mixed with instancers or other objects that also have the tile attribute.
    This caused the output translator to only create one output (and only one landscape), with all the volumes (height, masks ..) instead of creating an output per tile.
    This was caused by UHoudiniOutput::HeightfieldMatch() not finding previous/new landscape properly.
  • Fixed: possible crash in the output details.
  • Fixed: Parameter Details endlessly looping due to directories not being parsed correctly if the params were invalid (-1).
  • Fixed instancer not properly baking to sublevel via the unreal_level_path attribute.
  • Renamed the "tile_i" output token to "tile" to make it compatible with the split instance attribute.
  • Fixed: Parameter UI: Wrong divider line on nested tabs
  • Fixed: Parameter UI: bugs with the divider of nested multiparm and tabs, and empty multiparm and folder
  • Fixed: Parameter UI: tab's innermost divider is too tall for tabs row.

Version2 - Alpha3

16 Jul 22:54
Compare
Choose a tag to compare
Version2 - Alpha3 Pre-release
Pre-release

Alpha3 update

The plug-in is now linked to Houdini 18.0.499 / HAPI 3.3.11.


New Features:

  • Added support for the PDG Asset Link:
      See below for more details.

  • Updated and improved support for World Composition
      See below for more details.

  • Parameters:
      Added support for Log Float and Log Int Parameters.
      Improved UI for Tabs folders and radio button folders.

  • Added support for landscape material/hole material in the output details:
      material update via the ComboBox/drag & drop, and reset the material to its default value.

  • Physical Materials can be set on landscape/per landscape layer when using the "unreal_physical_material" primitive attribute.

  • It is possible to "pre-assign" landscape layer info object when using the "unreal_landscape_layer_info" primitive attribute.
      The attribute value must point to a valid LandscapeLayerInfoObject reference.
      The LayerInfo should have the same "LayerName" as the Landscape Layer.
      Since this attribute is only used when the landscape is created, it should be present and valid on first cook.
      It will be ignored if changed on recook, unless if the output landscape actor is deleted first before the recook.

  • Input: Added "import as reference" for geometry, asset, and world inputs.
      This allows importing the selected asset/actors as "unreal_instance" references.

  • Added clear Button for Landscape inputs.

  • Added a "Disable input" button on when there is no input selected for Asset and Landscape inputs.

  • Material parameter attributes are now imported when importing meshes.
      (we currently support scalar, vector and texture parameter types)

  • Added back support for assigning actors to output mesh sockets.

  • Added the ability to assign a reference to an asset in the content browser to output mesh sockets.
      The referenced asset will be instantiated and assigned to the socket.
      The created actors will be destroyed when the actors are re-created, or when the HDA is deleted.

  • When an asset referenced by an attribute instancer ("unreal_instance") or for socket assignment could not be found,
      the plugin will now create a default "asset not found" box mesh (hidden in-game by default).
      This can be enabled/disabled by default in the project settings.

  • The "unreal_foliage" attribute is now also supported on point, and as a float parameter.
      (was only supported as integer, primitive or detail attribute before).

  • When using a string parameter as an actor picker by using the unreal_ref, it is now possible to filter the classes displayed by the actor picker by using the unreal_ref_class tag.
      (On behalf of Robmeister regarding issues #24 and #23, Thank you!)

  • UI improvements to String parameters when  in "asset ref" mode:
      - Display the class/color used for filtering assets on the thumbnail.
      - Show the selected object name in the combo box.
      - Show the full string value (asset ref) as a tooltip.

  • Added support for outputting templated geos
      - Templated geos are outputted using a specific, wireframe, default material.
      - Templated geos are not baked, and are hidden in-game by default.
      - Display geos are never considered templated.
      - Only templated meshes are supported.
      - Added an "output templated geos" checkbox to the asset options to enable/disable this.

  • Added support for importing Camera Components on Actors as camera OBJ node.
      This is mostly experimental.

  • Added the ability to instantiate a class when using the "unreal_instance" attribute.
      Instead of referring to an asset in the CB, we now also allow to directly instantiate a class
      (ie "PointLight", "AudioVolume"... )
      This is especially useful when wanting to instantiate a class that cannot be saved as an asset in the content browser, and removes the need to create a BP for that.
      This will succeed as long as that class can be placed as an actor.

  • Added the "Set from Content Browser" arrow on Geometry inputs, and output materials.
       (pick the first selected SM);

  • Added: Curve Input UI: added 'editing' Text to the input curve which is currently being edited.

  • Added support for the "unreal_level_path" attribute to Meshes and Instancer:
      When baking, this allows the user to specify the path to a level where the baked Actors will go.
      If the level doesn't exist, then the level and its package will be created.
      This allows moving meshes and instancers to the appropriate levels when using PDG and/or World Composition.

  • Added the ability for Geometry Input to import StaticMeshComponents found in BP.

  • Added support for SessionSync:
      - Added a new menu command to open Houdini in Session Sync mode and directly connect to it.
        Connection is handled by an async task, that connects as soon as the SessionSync session is available.
      - We only launch Houdini in Session Sync mode if it's not already running.
        If we've previously started Houdini in SessionSync, we just reconnect to the existing process
      - Added SessionSync default settings:
        - SyncWithHoudiniCook: when enabled and connected to a Session Sync session,
          Unreal will update after a change has been made in Houdini.
        - CookUsingHoudiniTime: controls if the plugin should use the Houdini timeline time when cooking.
      - SessionSync features are only enabled if we're connected to a SessionSync session.
        Auto-started session (using HARS) ignore SessionSync features.
      - Added menu entry to close the current Houdini Session Sync.


PDG Asset Link:

The plugin now has a PDG Asset Link, similar to the one used by the Unity plugin that allows cooking and fetching results from PDG Graphs embedded in HDAs.

A PDG Asset Link is automatically created when importing an HDA that contains a TOP Network.
The PDG Asset Link UI will list all the TOP Networks available in the HDA.
It will also display all the TOP Nodes available for the currently selected TOP Network, as well as controls to dirty, cook them...

To avoid displaying all the nodes in a TOP Network, the PDG Asset Link uses a filter that specifies a prefix for the node names to decide if they should be listed by the PDG asset link.
By default, the filter is set to "HE_", so only nodes that start with HE_ will be listed in the PDG Asset Link: HE_Terrain, HE_Trees, etc...

Similarly, nodes that produce output BGEOs that should be processed and created in Unreal can be specified via a TOP Output filter prefix.
By default, the filter is set to "HE_OUT_", so the PDG Asset Link will only try to load Work Item Output files that are created by nodes that start with this prefix: HE_OUT_Trees, HE_OUT_Roads, HE_OUT_Buildings...

Those filters can be modified or disabled in the PDG Asset Link UI.

When cooking the PDG Graph, the PDG Asset Link will automatically import Work Items output files that have successfully cooked on the TOP Output Nodes.
The results are loaded on actors that reproduce the PDG Graph's hierarchy:
TOP NETWORK

  • TOP NODE
      - WorkItem Output File

Despite not being attached to the HDA, it is important to note that "Cooked" PDG results are still considered temporary, like normal HDA outputs would, and are still owned by the Houdini Asset Actor until baked.
This means that dirtying or changing the PDG asset can potentially destroy or update them, and destroying the Houdini Actor will also destroy them.

The PDG Asset Link has its own "bake" section, which gives more control in deciding what/how the PDG graph's results are baked.
You can choose whether to bake all outputs, only the selected top network, or selected TOP node. You can decide if you want to replace existing assets and actors created from a previous bake or create new ones...

In this current Alpha, these work items output files are NOT loaded asynchronously.
Asynchronous loading of PDG output files will be added to the plugin in later updates.


World Composition:

World Composition support has been completely updated and redesigned and is now supported only when baking.

When baking tiled landscapes in a world with world composition enabled, the plugin automatically creates or updates the levels needed for the tiles. When cooking the HDA, the generated landscape tiles remain attached to the HDA Actor to provide visual feedback and fast iteration.

The following attributes can be used on the HF to control World Composition baking:

  • the "unreal_landscape_tile_actor_type" primitive, int attribute can be used to decide if LandscapeStreamingProxies should be created when baking. When set to 1, Landscape streaming proxies are created. When set to 0, landscape actors are created. This replaces the "unreal_landscape_streaming_proxy" attribute used in v1.
  • Individual landscape tile actor names can be set using the "unreal_output_name" attribute.
  • The "unreal_level_path" attribute can be used to set the name and path to the levels that will be generated for the landscape tiles.
  • When generating landscape streaming proxies, the "unreal_landscape_shared_actor_name" primitive, int attribute can be used to specify the name of the common, shared landscape actor that controls all the streaming proxies.
  • "unreal_landscape_layer_min" and "unreal_landscape_layer_max" can be used to specify the min and max values to be used when converting HeightField masks or height values.

Output attributes

The plugin now has the ability to process a set of output tokens (keywords in curly brackets) that can be used on certain attributes to make pat...

Read more

Version2 - Alpha2

12 May 21:30
Compare
Choose a tag to compare
Version2 - Alpha2 Pre-release
Pre-release

Alpha2 - update

The plug-in is now linked to Houdini 18.0.460 / HAPI 3.3.5.
Windows binaries are available for both UE4.25 and UE4.24.

New features:

  • Added support for creating foliage instances directly without baking.
    This requires having the "unreal_foliage" primitive/detail integer attribute on the instancer, with its value set to 1.
  • Added support for Button Strip parameters.
  • Improved Instancer Output UI:
    • Instancer now display their custom mesh/part name if available.
    • Instancer now display their instancer type.
    • Instanced Meshes now also indicate that they are instanced.
    • "One-instance instancers" that just create a single Static Mesh Component only show their mesh output UI and not the instancer UI.
  • Added: Curve Input: Auto-update checkbox to enable/disable cook when modifying the input curve.
  • Added default values to parameters/revert to default support per parameter.
    The "Revert" arrow and "Reset Parameters" buttons are now only enabled/visible when there are non-default parameters.
  • Added support for baking Instanced Actors Components to Actors.
  • Added support for baking Mesh Split Instancer Components to Actors.
  • Added support for baking single-instance instancers (SMC) to Actors.

Bug fixes:

  • Fixed Game build errors.
  • Fixed clang compiler issues (Issue #10)
  • Fixed issue when reverting MultiParams and Ramps to default.
  • Landscape Outputs are now properly detached and destroyed when destroying the HoudiniAssetComponent.
  • Moving a Float/Int parameter slider continuously triggering recooks.
  • Custom part/mesh names were not properly read when using the legacy v1 attribute "unreal_generated_mesh_name".
    They were only read when using the v2 attribute, "unreal_output_name".
  • Fixed crash when changing instance variations on Houdini Assets Components that were loaded / not instantiated yet.
  • World Input, "Clear Selection" and changing Mode didn't remove the previous selection.
  • Possible infinite loop when duplicating a curve point on its original location.
  • Disabled curve modifications when the HDA is being cooked.
  • Asset input: when multi-selecting, the browser UI lets the user pick one of the selected Houdini Asset Actors.
  • Color ramp parameter: handle bounces back after being moved when auto-update is unchecked.
  • Editable curve outputs lost after duplicating the Houdini Asset Actor.
  • Fixed multiple asset parameter changes don't always trigger a recook.
  • Fixed typo: bake -> "outlinear"
  • Fixed Alpha being ignored for ColorAndAlpha parameters.
  • Fixed: unnecessary re-cooks when resetting parameters.
  • Fixed baking Instanced Static Mesh Components / Hierarchical ISMC to Actors.
  • Fixed baking to Foliage always baking the instanced mesh even if it wasn't a temporary SM.

(note, the 4.24 zip has been updated to Alpha2.1 due to a missing backport)

Version 2.0 Alpha 1 - UE4.24

26 Apr 17:15
Compare
Choose a tag to compare
Pre-release

Alpha1 release for version 2 of the Houdini Engine for Unreal plugin.

This release is built for UE4.24.3 and is linked to Houdini 18.0.416.