Houdini Engine for Unreal - Version 2 Beta

   22887   18   3
User Avatar
Staff
550 posts
Joined: Sept. 2016
Offline
Hi everyone,

I'm pleased to let you know that the beta for Version 2 of the plugin has been released!
Head over to the v2 github repo to download it:

https://github.com/sideeffects/HoudiniEngineForUnreal-v2/releases/tag/v0.13-Beta1 [github.com]

Here's some of the new features available in the beta:


Blueprint Support (experimental):

It is now possible to use Houdini Asset Components in the Blueprint Editor.
This lets you preset and use Houdini Digital Assets in Blueprint Actors.
Changing parameters on the Houdini Asset will automatically update all placed instances of that Blueprint.

After adding the Houdini Asset Component, the Houdini Asset it uses can be selected in the details panel.
This will cook the HDA, and display its parameters interface.

Currently, only Static mesh and Instancer outputs are supported, and only geometry inputs are available when using HDAs in the BP Editor.


Backward compatibility with Version1:

This wasn't originally in our plan, but has been requested a lot during the Alpha.
The v2 plugin is now backward compatible with version 1, meaning that you can easily upgrade a project that uses V1 to V2.

When loading a level that contains Houdini objects made with version 1, the plugin now tries to convert the V1 components, parameters, inputs and outputs to their v2 equivalents.

The conversion of the legacy data is still in progress and will be improved upon in the future:
Some HDAs might need to be rebuilt after the conversion for their parameters and inputs to be displayed properly by the v2 plugin, and certain types of parameters or inputs are currently not properly upgraded to v2 (for example Editable curves or Handles).

The legacy conversion can be enabled or disabled in the plugin settings.
If disabled, legacy objects will simply be ignored when loading the level.
The legacy settings also have an option to automatically rebuild converted Houdini Asset Components.

This was added to facilitate migrating a version 1 project to version 2.
To do so, we highly recommend duplicating (or at least backing up) your project first.
The version 1 plugin should then be deleted from the Plugins/Runtime folder before copying the version 2 files.
The conversion of the legacy objects will be done automatically upon loading the levels.


PDG Async Import (experimental):

The PDG Asset Link now has the ability to use an asynchronous importer commandlet to import WorkItem outputs once they are ready.

The commandlet communicates with the PDG Asset Link via a message bus, and automatically imports the BGEO files from output work items, creating uassets.
After a successful import, the commandlet notifies the PDG asset link which will then instantiate the uasset in the level.

Asynchronous import can be enabled/started/stopped via the “Work Item Import Settings” entry in the Houdini Engine menu.
The PDG Asset Link will display the status of the async importer in its details UI when using it.


BGEO Import Commandlet (experimental):

The commandlet that is used for Asynchronous import of a PDG Graph's work item outputs can also be used independently, to automatically import BGEO files to an unreal project.

The -watch= command-line argument can be used to place the commandlet into directory watching mode.

The BGEO import commandlet supports importing to bake path, by reading the “unreal_bake_folder” and “unreal_output_name” name attributes when in “bake” mode.

To watch a directory for new files and import them as uassets to the HoudiniEngine temporary path:
<editor_exe> -run=HoudiniGeoImport -watch=
To watch a directory for new files and import them as uassets to bake paths (respecting “unreal_bake_folder” and “unreal_output_name”):
<editor_exe> -run=HoudiniGeoImport -bake -watch=
To import a single .bgeo file as a uasset to the HoudiniEngine temporary path:
<editor_exe> -run=HoudiniGeoImport
To import a single .bgeo file as a uasset to the bake path (respecting “unreal_bake_folder” and “unreal_output_name”):
<editor_exe> -run=HoudiniGeoImport -bake
To display/log the help:
<editor_exe> -run=HoudiniGeoImport -help


Curve Output:

It is now possible to output Spline Components from an HDA.
To do so, curves in the HDA need to be marked using the “unreal_output_curve” primitive attribute (value set to 1).
You can also control if you want the spline to be linear/closed using the “unreal_output_curve_linear” and “unreal_output_curve_closed” primitive attributes respectively.


The beta also has some bug fixes, and an improved Viewport Sync when using Session Sync.

The plugin requires the latest H18.0 production build (H18.0.597).
Source code for the plugin can be found on the github repository:

https://github.com/sideeffects/HoudiniEngineForUnreal-v2 [github.com]


I'd like to give a huge thanks to all the Alpha users who took the time to play around with V2, and give us feedback and report issues!
User Avatar
Member
7 posts
Joined: April 2019
Offline
Today is a red letter day for us
User Avatar
Member
13 posts
Joined: Jan. 2017
Offline
How the heightfield split is made in the 18.5 preview video without seam issues? Getting PGD split landscapes into UE4.25, but cant get rid of buggy seams with tilesplit settings. Do I need to convert the hf to images, to polygons, play with transforms or something? Or is that future feature for Houdini 18.5/UE4.26?

EDIT: I found out the wiki now. Getting better results already, playing around with new attributes and values
https://github.com/sideeffects/HoudiniEngineForUnreal-v2/wiki/What [github.com]'s-new-%3F
Edited by SaOk - Oct. 3, 2020 09:25:31
User Avatar
Member
13 posts
Joined: Jan. 2017
Offline
How to avoid these kind of doubled edges with landscape tiles (landscape streaming proxies in this case)? Using tile split & PDG (i@unreal_landscape_tile_actor_type = 1; in wrangle), but tileoverlap/voxel padding settings dosent seem to have any effect on result. Baking hide the holes, but keep the messed hf data.
Edited by SaOk - Oct. 3, 2020 12:49:55
User Avatar
Staff
550 posts
Joined: Sept. 2016
Offline
Hi

@SaOk, I've already replied to you on Github, but will post my answer here as well for others to see:


Yes, that's an issue we're aware of, the current landscape/world comp integration is a bit picky about the data that's being send from Houdini.

Those overlapping issues on tiled HF when using streaming proxies are likely caused by the fact that the tiles are not properly “sized”. Unreal expects landscape to be of a given size (ie 505x505, 1009x1009 etc.).

https://docs.unrealengine.com/en-US/Engine/Landscape/TechnicalGuide/index.html#recommendedlandscapesizes [docs.unrealengine.com]

We normally resample or pad the HF data to compensate for this, but there is a bug in the beta that causes this issue with landscape streaming proxies. We'll fix that bug in a future beta update, in the meantime, a workaround would be to make sure that your tiles are sized properly.
There is another bug currently when using streaming proxies, that may cause a Z offset on some tiles, this will also be fixed soon, but currently, a workaround for it would be to enable “Use default unreal scaling” in the plugin settings.
User Avatar
Member
11 posts
Joined: April 2019
Offline
Hi,

maybe i doing something wrong,
i use Attribute Instancers [www.sidefx.com] on point cloud to instanciate an Unreal blueprint and set this blueprint with unreal_uproperty.
and he instanciate correctely, but the parameter are not copied correctely it's all messed up.

here a small video of the issue hope it's help you to fix that.



Have Nice Day,
Best Regards
Daniel

Here my VEX Code:

int nearp ;
string inst = “Blueprint'/Game/UDIMU/City/Blueprints/Block_Buildings_1.Block_Buildings_1'”;
string instTmp;

int numPoint = npoints(0);

for (int i = 0; i < numPoint ; i++){
nearp = nearpoints(0,point(0,“P”, i),19);
vector col = point(0,“Cd”, i);

int density = (len(nearp)*2) +5;

int blueprintID = floor( rand(i) * 4 ) + 1;

instTmp = re_replace(“_1”, concat(“_”, itoa(blueprintID)), inst);

setpointattrib(0,“unreal_uproperty_Floor”,i,density,“set”);
setpointattrib(0,“unreal_uproperty_Seed”,i,i,“set”);
setpointattrib(0,“unreal_uproperty_ColorGlowR”,i,col.r,“set”);
setpointattrib(0,“unreal_uproperty_ColorGlowG”,i,col.g,“set”);
setpointattrib(0,“unreal_uproperty_ColorGlowB”,i,col.b,“set”);

setpointattrib(0,“unreal_instance”,i,instTmp,“set”);
}
User Avatar
Member
12 posts
Joined: Aug. 2013
Offline
Hello, just wanted to clarify, this is not compatible with H18.5 yet, correct?
So any HDAs that I intend to use V2 should not have new H18.5 nodes?
Also, would installing H18.5 to my system conflict with this V2 and H18.0.597 combo?
User Avatar
Staff
550 posts
Joined: Sept. 2016
Offline
The beta1 release binaries on github is linked with H18.0.597.
Source code is available for H18.0 / H18.5, on Git, you just need to select the proper branch on the repo.
(and as of today, 18.5 sources are now the default)

But H18.5 ships with the v2 plugin, so yes, you can use v2 with 18.5.
Just copy the Houdini Engine plugin from the Houdini18.5.531/Engine folder into UE's Engine/Plugins/Runtime folder.

Also, as 18.5 ships with both v1 and v2, we don't automatically install the plugin anymore.
The files need to be manually copied, depending on whether you want v1 or v2.
User Avatar
Member
43 posts
Joined: Dec. 2012
Offline
Does anyone know how to setup the paths and environment for use with tops and pdg?
User Avatar
Member
12 posts
Joined: Aug. 2013
Offline
dpernuit
The beta1 release binaries on github is linked with H18.0.597.
Source code is available for H18.0 / H18.5, on Git, you just need to select the proper branch on the repo.
(and as of today, 18.5 sources are now the default)

But H18.5 ships with the v2 plugin, so yes, you can use v2 with 18.5.
Just copy the Houdini Engine plugin from the Houdini18.5.531/Engine folder into UE's Engine/Plugins/Runtime folder.

Also, as 18.5 ships with both v1 and v2, we don't automatically install the plugin anymore.
The files need to be manually copied, depending on whether you want v1 or v2.

Oh I see, that's good to know.
Now I can fully commit to H18.5 then.
Thanks!
Edited by Yuri Serizawa - Oct. 22, 2020 02:54:39
User Avatar
Member
25 posts
Joined: Dec. 2019
Online
dpernuit
But H18.5 ships with the v2 plugin, so yes, you can use v2 with 18.5.
Just copy the Houdini Engine plugin from the Houdini18.5.531/Engine folder into UE's Engine/Plugins/Runtime folder.

Hi! Will the v2 plugin shipping with 18.5 be a “daily” version or the latest github release?
User Avatar
Staff
550 posts
Joined: Sept. 2016
Offline
Hi Eetu,

Daily 18.5 builds ships with a “daily” v2, it's already more recent than the current Git code, which I'll only update periodically/for releases.
User Avatar
Member
13 posts
Joined: Jan. 2017
Offline
With 18.5 and v2, landscape pieces have 90degree offset (didnt have this issue in 18.0/v2 beta) and over certain heights are clamped to zero. Overall size affect the clamp issue. Sometimes working with 4033, always clamped with 8129. Plugin settings seem to affect that clamping bit too, but not finding stable results.

EDIT: Also gives warning HGPO 3 0 1, and HGPO 3 0 0.
EDIT2: PDG workitems also show doubled on UE4 side. Should have total 9 workitems in 2 hda processors and 1 wedge, but UE4 shows 18 (doubled for each node). Dont remember workitems showing doubled in beta.
EDI3: When baking 4 level pieces getting crash. Levels appear in folder, but 2 of them make editor crash if loaded.
EDIT4: Here is the heighfield I am trying to get from houdini to ue4.
https://www.dropbox.com/s/qfzmqot68tabzdy/mapwholefile.bgeo.sc.7z?dl=0 [www.dropbox.com]
Edited by SaOk - Oct. 27, 2020 11:17:15

Attachments:
ScreenShot00042.png (2.4 MB)

User Avatar
Member
6 posts
Joined: Jan. 2020
Offline
I was using the houdini engine v2 for the ue4, but I had two problems so I posted it.

1. For Static mesh, the material link operates normally in ue4. However, on the Landscape, the material link is not operating normally.

2. The LOD is produced in houdini and applied to ue4, but the camera distance lod_screensize is not working normally.

Please confirm.
Edited by FUNNYPAW - Oct. 29, 2020 23:30:44
User Avatar
Member
1 posts
Joined: April 2017
Offline
What would be great is if the plugin could use the edit layers feature of a landscape and output the heightfield information to a specific edit layer - allowing non-destructive round tripping.
User Avatar
Staff
550 posts
Joined: Sept. 2016
Offline
@SaOk: Some of the issues you mentioned should be fixed in the beta2 update.
The min/max values set in the plugins settings will indeed affect the conversion, and if set too low, may cause the clipping/thresholding artifacts you had.

The fact that the PDG work items count are doubled is a know issue, only the number are doubled, not the actual number of work items processed.


@funnypaw: The issue with the “unreal_material” attribute has been fixed, try beta2.
for #2, how are you setting the lod_screensize?

@racarone: Support for edit layers is planned, and is likely one of the first feature that we'll be working on after the plugin is properly released.
User Avatar
Member
7 posts
Joined: Dec. 2017
Offline
Hey, I would like to ask if importing landscapes from bgeo via HoudiniGeoImport commandlet is somewhere near in the road map?
Thanks
User Avatar
Member
1 posts
Joined: Nov. 2023
Offline
Hi!
I'm using an hda as a porcessor in Unreal to process other actors. I wonder whether I can use the blueprint to control the detail panel of houdini hda?
For instance, I want to choose the 'World Outliner Input' and then confirm what I have chosen automatically in Blueprint.
Do you have any ideas? Thank you very much!

Attachments:
Screenshot 2024-03-15 102051.png (31.1 KB)

User Avatar
Member
7 posts
Joined: Oct. 2014
Offline
Hi all,

Is it possible to set Houdini Presets from the Blueprints? I know we can set it from the details panel, or by selecting it from the content browser but I need to set it automatically from a BP!

1. I've saved a Houdini Preset Object from the HoudiniAssetComponent's Details menu.
2. Loaded the preset into a Blueprint Editor Utility Widget with a Variable
3. Can't see any way to apply the preset to the HDA in Blueprint? Is there a way to instantiate a preset directly instead?

Thanks for any info on this!

Attachments:
1.PNG (42.5 KB)
2.PNG (221.3 KB)

  • Quick Links