Welcome to the repository for the Houdini Engine For Unreal Plugin.
This plug-in is the completely remaster of the official Houdini Engine For Unreal from zero, with similar usages but up to 2x - 40x faster data I/O performance compare to the lastest official plug-in, native World-Partition support and much more functionalities optimized for making procedural landscape and city toolset. Moreover, this plug-in provides a set of C++ API to define your own unreal classes and assets I/O translators
As the usage is similar, Official Documentation is also available for this plug-in . But there are still lot of things are distinct. For concrete usage of this plug-in, please see Source/HoudiniEngine/Public/HoudiniEngineCommon.h
and Resources/houdini/otls/examples
Support Houdini >= 20.5.278, Unreal Engine >= 5.3.
NOT compatible with official plug-in, and can NOT work together with official one.
-
In this GitHub repository, click Releases on the right side.
-
Download the Houdini Engine zip file that matches your Unreal Engine Version.
-
Extract the HoudiniEngine folder to the Plugins of your Unreal Project Directory.
e.g.
C:/Unreal Projects/MyGameProject/Plugins/HoudiniEngine
This Plugin will automatically find the correct houdini version on your computer, or you can specify a custom Houdini installation in the plug-in settings.
Here's a list of extra functionalities than official plug-in:
N.B. This list is NOT completed, for details please see Source/HoudiniEngine/Public/HoudiniEngineCommon.h
Common:
-
Provides a set of C++ API, allow writing custom I/O translator for your own unreal classes or assets
See
Source/HoudiniEngine/Public/HoudiniInput.h
andSource/HoudiniEngine/Public/HoudiniOutput.h
Also see HoudiniMassTranslator of how to use these API. -
Streamlined Blueprint API.
-
Light weight, compact usage and panel widgets.
-
... (And Much More)
Paramerter:
-
Much more robust nested parameter support.
-
All parameters support revert, including ramps.
-
All parameters support copy and paste.
-
Fully Menu support, support menu script (dynamic menu), support "normal", "replace", "toggle" menu types.
-
... (And Much More)
Input:
-
Much more intutive way to draw input curves (press Enter to end/start), support fuse/split points and join/detach curves, support free-hand (Shift pressing) curve drawing.
-
Support Landscape Mask brush input with mask types of Bit, Byte, and Weight
-
Landscape layers input could be specified for individual editlayer and layer;
-
Landscape layers input support update while brushing.
-
Unreal spline input support import custom properties on your Blueprint.
-
Texture input support.
-
DynamicMeshComponent input support.
-
All component type input support.
-
All settings in the parameter input panel could set by parameter tags
-
Mesh inputs are packed before transform.
-
All Input types support shared memory data transport, 8x faster than official shared memory session.
-
... (And Much More)
Output:
-
unreal_uproperty_* support dict and array attributes, almost everything could be set.
-
Mesh output support using s@unreal_split_attr (like instancer output)
-
All output types support partial update, including meshes, instancers, landscapes, geometry collection (chaos), curves.
-
All output support generated to the split actors (i@unreal_split_actors = 1) rather than attach to parent Houdini Actors, and could set these split actors' properties by unreal_uproperty_* attributes, which means you could begin play in editor directly without baking output in a World-Partition level.
-
So Baking is deprecated, use i@unreal_split_actors = 1 instead.
-
Support Texture output (volumevisualmode = "image", and as a HAPI bug, must add my sharedmemory_volumeoutput Sop to your HDA)
-
Landscape output support shared memory output (6x faster than official shared-memory session, need to add my sharedmemory_volumeoutput Sop to your HDA)
-
Class Instancer output is 40x faster than official plug-in, also support instantiate USceneComponent derived Classes(e.g. SplineMeshComponent, PointLightComponent etc.)
-
Geometry Collection (Chaos) output as instancers (s@unreal_output_instance_type = "GC"), all of the settings on UGeometryCollection could be set by unreal_uproperty_*, also support split and partial output
-
Support Static/AnimatedSparseVolumeTexture (VDBs) output
-
Support Dynamic Mesh (Geometry Script, s@unreal_output_mesh_type = "dynamic") Output
-
... (And Much More)