What are you using to bring the collision geometry in Houdini?
An object merge input set to World Outliner?
If that's the case, check that the object merge's transform type parameter in your HDA is set to “into this object” …
that's generally what's causes the “HDA only works at (0,0,0)” issues.
Found 527 posts.
Search results Show results as topic list.
Houdini Engine for Unreal » POP collision and UE4 problem
- dpernuit
- 534 posts
- Offline
Houdini Engine for Unreal » Projected meshes get's offset
- dpernuit
- 534 posts
- Offline
Hi,
As I've mentionned yesterday, the issue is that your HDA's object merge input for the projected mesh is not set to “into this object”.
The other issue, is that, after the object merge input, you have a transform node that resets the mesh's transform to zero.
Here's a fixed version of your HDA.
As I've mentionned yesterday, the issue is that your HDA's object merge input for the projected mesh is not set to “into this object”.
The other issue, is that, after the object merge input, you have a transform node that resets the mesh's transform to zero.
Here's a fixed version of your HDA.
Houdini Engine for Unreal » Projected meshes get's offset
- dpernuit
- 534 posts
- Offline
Houdini Engine for Unreal » Projected meshes get's offset
- dpernuit
- 534 posts
- Offline
Hi,
How is the input set up on your HDA?
If it's an exposed object merge, you have to be careful with the “transform type” parameter, as it dictates how the geometry is brought into your HDA. In your case, it should be set to “into this object”.
The “Keep world transform” checkbox on your input in unreal can also help to sort this out.
How is the input set up on your HDA?
If it's an exposed object merge, you have to be careful with the “transform type” parameter, as it dictates how the geometry is brought into your HDA. In your case, it should be set to “into this object”.
The “Keep world transform” checkbox on your input in unreal can also help to sort this out.
Houdini Engine for Unreal » Houdini rotation to UE4 rotation?
- dpernuit
- 534 posts
- Offline
Hi,
Indeed you can find the code to convert transform between UE4 and H in the plugin's source.
HoudiniEngineUtils has functions like FHoudiniEngineUtils::TranslateHapiTransform() that does this.
https://github.com/sideeffects/HoudiniEngineForUnreal/blob/Houdini17.5-Unreal4.22/Source/HoudiniEngineRuntime/Private/HoudiniEngineUtils.cpp#L463-L475 [github.com]
But roughly, to convert from Houdini to unreal:
Rotation (Quaternion): Swap Z and Y, invert W
UE4.X = H.X
UE4.Y = H.Z
UE.Z = H.Y
UE4.W = -H.W
Position: Swap Z and Y, convert from meter to centimeters
UE4.X = H.X * 100
UE4.Y = H.Z * 100
UE.Z = H.Y *100
Scale: Swap Z and Y
UE4.X = H.X
UE4.Y = H.Z
UE.Z = H.Y
Indeed you can find the code to convert transform between UE4 and H in the plugin's source.
HoudiniEngineUtils has functions like FHoudiniEngineUtils::TranslateHapiTransform() that does this.
https://github.com/sideeffects/HoudiniEngineForUnreal/blob/Houdini17.5-Unreal4.22/Source/HoudiniEngineRuntime/Private/HoudiniEngineUtils.cpp#L463-L475 [github.com]
But roughly, to convert from Houdini to unreal:
Rotation (Quaternion): Swap Z and Y, invert W
UE4.X = H.X
UE4.Y = H.Z
UE.Z = H.Y
UE4.W = -H.W
Position: Swap Z and Y, convert from meter to centimeters
UE4.X = H.X * 100
UE4.Y = H.Z * 100
UE.Z = H.Y *100
Scale: Swap Z and Y
UE4.X = H.X
UE4.Y = H.Z
UE.Z = H.Y
Houdini Engine for Unreal » Houdini Engine for Unreal - Version 2
- dpernuit
- 534 posts
- Offline
On v1, Copy-pasting should work fine.
Cut/paste, or Move to current level.. do have issues (generally, the cut HDA will just disappear).
Cut/paste, or Move to current level.. do have issues (generally, the cut HDA will just disappear).
Houdini Engine for Unreal » Unreal Engine - How to use PDG?
- dpernuit
- 534 posts
- Offline
Hi,
The best and easiest way to split those meshes on the unreal side would be to use packed primitives in your HDA, by packing each building, roads…
On the unreal side, you'd get separate instanced static mesh components per packed geometry (which could be beneficial if you're re-using the same building multiple times for example).
If you do not want instanced static meshes, you can simply add the “unreal_split_instances” detail attribute to your HDA, this will tell the plugin to create separate static meshes for each instances instead.
The best and easiest way to split those meshes on the unreal side would be to use packed primitives in your HDA, by packing each building, roads…
On the unreal side, you'd get separate instanced static mesh components per packed geometry (which could be beneficial if you're re-using the same building multiple times for example).
If you do not want instanced static meshes, you can simply add the “unreal_split_instances” detail attribute to your HDA, this will tell the plugin to create separate static meshes for each instances instead.
Houdini Engine for Unreal » Landscape generation brutally slow
- dpernuit
- 534 posts
- Offline
Hi,
Would you be able to share your HDA with us? How big is the landscape you're creating?
Unless you're changing the landscape resolution (in which case UE4 would need to recreate a new landscape from scratch), the plugin should just be updating the landscape's data, which should be a lot faster.
(even if creating a new landscape, going through the plugin shouldnt take 4/5 minutes)
I tried with a similar setup, wrapping an HF_project in an HDA to modify an existing landscape in unreal with meshes selected in a world input, and the update time on the unreal side in ~1s (and that's on a debug version of UE4 and the plugin which would be a lot slower).
Would you be able to share your HDA with us? How big is the landscape you're creating?
Unless you're changing the landscape resolution (in which case UE4 would need to recreate a new landscape from scratch), the plugin should just be updating the landscape's data, which should be a lot faster.
(even if creating a new landscape, going through the plugin shouldnt take 4/5 minutes)
I tried with a similar setup, wrapping an HF_project in an HDA to modify an existing landscape in unreal with meshes selected in a world input, and the update time on the unreal side in ~1s (and that's on a debug version of UE4 and the plugin which would be a lot slower).
Houdini Engine for Unreal » Unreal not loading material overrides
- dpernuit
- 534 posts
- Offline
Hi,
Unfortunately, material overrides like this won't be supported by the unreal plugin, as the plugin / HAPI only sees this setup as one material (the one in your matnet), and will only use its default value (the one directly set on the material itself).
You'd actually need to create a new material for each of the piece in your loop, and assign it to the unpacked geometry.
In UE4, the plugin would then create a material for each of the pieces, with the texture assigned.
You could then use the unreal_material_instance attributes to create instances of an existing Unreal material, and unreal_material_parameters to use the texture created from the houdini material.
Unfortuantely, there is currently no way to just set an image file path to the “unreal_material_parameters” and have unreal automatically load/create the texture, but that would be a good RFE.
Unfortunately, material overrides like this won't be supported by the unreal plugin, as the plugin / HAPI only sees this setup as one material (the one in your matnet), and will only use its default value (the one directly set on the material itself).
You'd actually need to create a new material for each of the piece in your loop, and assign it to the unpacked geometry.
In UE4, the plugin would then create a material for each of the pieces, with the texture assigned.
You could then use the unreal_material_instance attributes to create instances of an existing Unreal material, and unreal_material_parameters to use the texture created from the houdini material.
Unfortuantely, there is currently no way to just set an image file path to the “unreal_material_parameters” and have unreal automatically load/create the texture, but that would be a good RFE.
Houdini Engine for Unreal » Houdini Engine for Unreal 4.23
- dpernuit
- 534 posts
- Offline
Hi,
Support for 4.23 was added a day after its release:
https://www.sidefx.com/changelog/?journal=17.5&categories=52&&show_versions=on [www.sidefx.com]
The current daily builds have the 4.23 plugins, so you just need to update your H17.5 to a recent daily.
Support for 4.23 was added a day after its release:
https://www.sidefx.com/changelog/?journal=17.5&categories=52&&show_versions=on [www.sidefx.com]
The current daily builds have the 4.23 plugins, so you just need to update your H17.5 to a recent daily.
Houdini Engine for Unreal » Houdini Plugin for 4.23?
- dpernuit
- 534 posts
- Offline
Hi,
Sorry about that, the installer hasn't been properly updated in 17.5.370 and was not installing the 4.23 plugin.
The installer has been properly updated the next day, and the 4.23 plugin is part of the current dailies.
As for those build errors, those were what you get when building the 4.22 plugin with 4.23.
You shouldn't get them if you get the proper sources to build with 4.23.
(as posted earlier https://github.com/sideeffects/HoudiniEngineForUnreal/tree/Houdini17.5-Unreal4.23 [github.com] )
The github is automatically updated, but with a 24h delay, so you may just have downloaded the sources too early, without the fixes.
For that launcher login error, you should contact support about that / submit a bug.
Sorry about that, the installer hasn't been properly updated in 17.5.370 and was not installing the 4.23 plugin.
The installer has been properly updated the next day, and the 4.23 plugin is part of the current dailies.
As for those build errors, those were what you get when building the 4.22 plugin with 4.23.
You shouldn't get them if you get the proper sources to build with 4.23.
(as posted earlier https://github.com/sideeffects/HoudiniEngineForUnreal/tree/Houdini17.5-Unreal4.23 [github.com] )
The github is automatically updated, but with a 24h delay, so you may just have downloaded the sources too early, without the fixes.
For that launcher login error, you should contact support about that / submit a bug.
Houdini Engine for Unreal » Houdini Plugin for 4.23?
- dpernuit
- 534 posts
- Offline
Hi,
Source code for the 4.23 plugin is available on Github:
https://github.com/sideeffects/HoudiniEngineForUnreal/tree/Houdini17.5-Unreal4.23 [github.com]
Today's daily build (17.5.370) has the 4.23 plugin binaries as well.
And for those of you that are feeling a little bit experimental, the 4.24 plugin (main UE4 branch) is available on Github as well:
https://github.com/sideeffects/HoudiniEngineForUnreal/tree/Houdini17.5-UnrealMAIN [github.com]
Source code for the 4.23 plugin is available on Github:
https://github.com/sideeffects/HoudiniEngineForUnreal/tree/Houdini17.5-Unreal4.23 [github.com]
Today's daily build (17.5.370) has the 4.23 plugin binaries as well.
And for those of you that are feeling a little bit experimental, the 4.24 plugin (main UE4 branch) is available on Github as well:
https://github.com/sideeffects/HoudiniEngineForUnreal/tree/Houdini17.5-UnrealMAIN [github.com]
Houdini Engine for Unreal » Unreal Engine - How to use PDG?
- dpernuit
- 534 posts
- Offline
Hi,
I did play around with your HDA and got it to work.
Since you didn't upload the box hda, I made mine, which likely does what yours was doing, basically, it just generates a box, with color, uniform scale and center available as parameters.
One issue in your TOPnet, was that the HDA processor cache was set to automatic, which means that if a file named properly existed, the HDA processor wouldn't run again, and just import the existing file.
(this can be beneficial in some case, but in yours, wasn't, as the PDG graph was just reloading old data)
I tried promoting the wedge count on the HDA to dynamically change the number of generated boxes, but that didnt dirty the PDG graph properly. That seem to be a PDG bug, and the team is looking at it.
The rest of it was perfectly fine, when I imported your HDA in UE4, I got 5 boxes (all hidden inside a big purple box since they all have the same position)
Anyway, I made another HDA to show how to use a TOP net inside an actual HDA:
The idea is similar, generate randomly colored/scale boxes, but this time, using the points of a grid, with the number of points of this grid controlled on the HDA.
- The grid is used as an input for the TOPnet, and will dirty/recook it when its geometry is changed.
- On the geometry import node in the topnet, I'm importing the grid's point, to create a single workitem per point.
- I then use a wedge, to generate a random scale and color for each point.
(note that I'm using the @pointoffset attribute on the seed so that each point gets different values)
- a HDA processor then applies the color box HDA using the wedged color/scale attributes for each workitem, and reuses the grid point's position to place the cubes. Cache mode on the HDA processor is set to “Write” so that new files are created everytime the workitem is dirtied (automatic would have reused previous versions of the cube).
- Since HDA processor is the output of the TOPSOP, all of the geometry it has generated is merged together and used as output of the network.
Once imported in Unreal, you can simply change the rows/columns attributes, and the HDA and TOPnet inside will recook.
I'm attaching the HDAs for this, the “HDA File” parameter on the HDA processor in the TOPnet may need to be changed so that the color box HDA can be found correctly.
damienp_color_box is the box generator
damienp_pdg_boxes is the TOP asset
I did play around with your HDA and got it to work.
Since you didn't upload the box hda, I made mine, which likely does what yours was doing, basically, it just generates a box, with color, uniform scale and center available as parameters.
One issue in your TOPnet, was that the HDA processor cache was set to automatic, which means that if a file named properly existed, the HDA processor wouldn't run again, and just import the existing file.
(this can be beneficial in some case, but in yours, wasn't, as the PDG graph was just reloading old data)
I tried promoting the wedge count on the HDA to dynamically change the number of generated boxes, but that didnt dirty the PDG graph properly. That seem to be a PDG bug, and the team is looking at it.
The rest of it was perfectly fine, when I imported your HDA in UE4, I got 5 boxes (all hidden inside a big purple box since they all have the same position)
Anyway, I made another HDA to show how to use a TOP net inside an actual HDA:
The idea is similar, generate randomly colored/scale boxes, but this time, using the points of a grid, with the number of points of this grid controlled on the HDA.
- The grid is used as an input for the TOPnet, and will dirty/recook it when its geometry is changed.
- On the geometry import node in the topnet, I'm importing the grid's point, to create a single workitem per point.
- I then use a wedge, to generate a random scale and color for each point.
(note that I'm using the @pointoffset attribute on the seed so that each point gets different values)
- a HDA processor then applies the color box HDA using the wedged color/scale attributes for each workitem, and reuses the grid point's position to place the cubes. Cache mode on the HDA processor is set to “Write” so that new files are created everytime the workitem is dirtied (automatic would have reused previous versions of the cube).
- Since HDA processor is the output of the TOPSOP, all of the geometry it has generated is merged together and used as output of the network.
Once imported in Unreal, you can simply change the rows/columns attributes, and the HDA and TOPnet inside will recook.
I'm attaching the HDAs for this, the “HDA File” parameter on the HDA processor in the TOPnet may need to be changed so that the color box HDA can be found correctly.
damienp_color_box is the box generator
damienp_pdg_boxes is the TOP asset
Image Not Found
Image Not Found
Houdini Engine for Unreal » Houdini Engine Plugin not loading in source version
- dpernuit
- 534 posts
- Offline
Hi,
That just means that the plugin doesn't know where to look for Houdini.
Have you set the $HFS environment variable to your houdini install folder prior to launching UE4?
On Linux, the plugins relies on this to find the HAPI dlls since there is no registry to get Houdini's install path from.
Alternatively, you can set a custom houidini path in the project settings, under Houdini Engine, “Custom Houdini Location”.
That just means that the plugin doesn't know where to look for Houdini.
Have you set the $HFS environment variable to your houdini install folder prior to launching UE4?
On Linux, the plugins relies on this to find the HAPI dlls since there is no registry to get Houdini's install path from.
Alternatively, you can set a custom houidini path in the project settings, under Houdini Engine, “Custom Houdini Location”.
Houdini Engine for Unreal » HARS.exe Not releasing memory when cooking Houdini Assets in UE4
- dpernuit
- 534 posts
- Offline
Hi,
“Restart session” is mainly meant to be used for:
- switching to a Houdini engine debugger session without restarting UE4
- after changing the houdini engine session's parameter
- after an issue with the current HARS session happened
(Houdini crashed, or hanged and you forcefully had to kill it for whatever reason).
It was added to avoid requiring a full restart of UE4 after any of those actions, which the plugin required before.
It isn't meant to be used for what you're trying to do, aka “Clean up” the internal houdini scene to save on memory, and is likely to make things worse as this could create dangling houdini objects.
(the memory that HARS holds after loading a new level is likely due to this)
Restart session simply closes the current session, and starts a new one, without even attempting to do any clean up.
Memory can be taken on two different sides: HARS (HDAs / Input nodes) or Unreal (Plugin objects)
- HDAs that you have interacted with in the current level will be created in Houdini/HARS, any input data sent will be there as well, and will remain there until you either destroy the HDA in unreal, or load a different level.
(You can use a Houdini Engine Debugger session to see those nodes being created and deleted “live” as you use their unreal counterpart).
- Similarly, objects created by the plugin on the unreal side will remain in memory while the level is loaded, or can also remain in the transaction queue (undo/redo). Saving/Loading a level / creating a new one should help with these as well.
The plugin will also create temporary files for certain assets (in the HoudiniEngine/Temp folder).
Unused/unreferenced one can be clean up via the clean temporary file action in the file menu.
“Restart session” is mainly meant to be used for:
- switching to a Houdini engine debugger session without restarting UE4
- after changing the houdini engine session's parameter
- after an issue with the current HARS session happened
(Houdini crashed, or hanged and you forcefully had to kill it for whatever reason).
It was added to avoid requiring a full restart of UE4 after any of those actions, which the plugin required before.
It isn't meant to be used for what you're trying to do, aka “Clean up” the internal houdini scene to save on memory, and is likely to make things worse as this could create dangling houdini objects.
(the memory that HARS holds after loading a new level is likely due to this)
Restart session simply closes the current session, and starts a new one, without even attempting to do any clean up.
Memory can be taken on two different sides: HARS (HDAs / Input nodes) or Unreal (Plugin objects)
- HDAs that you have interacted with in the current level will be created in Houdini/HARS, any input data sent will be there as well, and will remain there until you either destroy the HDA in unreal, or load a different level.
(You can use a Houdini Engine Debugger session to see those nodes being created and deleted “live” as you use their unreal counterpart).
- Similarly, objects created by the plugin on the unreal side will remain in memory while the level is loaded, or can also remain in the transaction queue (undo/redo). Saving/Loading a level / creating a new one should help with these as well.
The plugin will also create temporary files for certain assets (in the HoudiniEngine/Temp folder).
Unused/unreferenced one can be clean up via the clean temporary file action in the file menu.
Houdini Engine for Unreal » HDA editable Node can't work?
- dpernuit
- 534 posts
- Offline
Hi Terry,
I'm not exactly sure I understand what you're trying to do:
so, your asset is loading an OSM file, processing it to prims/points and creating roads geometry from it and you want to be able to change the source OSM file?
If that's what you're trying to do, you don't need an editable node for that but just a file parameter:
just expose a new file parameter on your HDA, and have your python script use that parameter for the OSM loading.
I'm not exactly sure I understand what you're trying to do:
so, your asset is loading an OSM file, processing it to prims/points and creating roads geometry from it and you want to be able to change the source OSM file?
If that's what you're trying to do, you don't need an editable node for that but just a file parameter:
just expose a new file parameter on your HDA, and have your python script use that parameter for the OSM loading.
Houdini Engine for Unreal » Houdini Engine for Unreal - Version 2
- dpernuit
- 534 posts
- Offline
Hi,
@doug: noted , I saw your PR but didn't pulled it back because on my side I'd need to make it a little more general, adding support to physical material overrides generally, on landscapes, but also on other physics bodies..
@brett/ron: one goal of v2 is to get rid of those annoying serialization bugs (duplicate, undo/redo etc.. ).
I'm already making sure duplicate, undo/redo etc is stable on v2.
For v1, I had a look at that duplicate issue and dont have a fix for it yet (crash happens 100% on second duplicate).
For now, the workaround is to copy paste instead of duplicating.
Regarding inputs, currently inputs in v2 are designed so that they all can take any number of objects, so yes, you'll be able to select multiple HDAs in a single asset input.
@doug: noted , I saw your PR but didn't pulled it back because on my side I'd need to make it a little more general, adding support to physical material overrides generally, on landscapes, but also on other physics bodies..
@brett/ron: one goal of v2 is to get rid of those annoying serialization bugs (duplicate, undo/redo etc.. ).
I'm already making sure duplicate, undo/redo etc is stable on v2.
For v1, I had a look at that duplicate issue and dont have a fix for it yet (crash happens 100% on second duplicate).
For now, the workaround is to copy paste instead of duplicating.
Regarding inputs, currently inputs in v2 are designed so that they all can take any number of objects, so yes, you'll be able to select multiple HDAs in a single asset input.
Houdini Engine for Unreal » Houdini Engine Plugin not loading in source version
- dpernuit
- 534 posts
- Offline
Hi,
Both should work:
#1 you're building UE4 and the plugin at the same time
#2 you're first building UE4, then the plugin
At least with #2, you're sure that any errors/failure is from the plugin and not related to building UE4 itself.
What version of Houdini / Unreal are you on?
What errors/failures did you got when building?
Both should work:
#1 you're building UE4 and the plugin at the same time
#2 you're first building UE4, then the plugin
At least with #2, you're sure that any errors/failure is from the plugin and not related to building UE4 itself.
What version of Houdini / Unreal are you on?
What errors/failures did you got when building?
Houdini Engine for Unreal » How can I set the default geometry parameters in the input box?
- dpernuit
- 534 posts
- Offline
It's a fairly recent addition, so you need to have the plugin from H17.5.322+
Only works with geometry inputs created from an object merge input, as SOP inputs can't have a default value.
Only works with geometry inputs created from an object merge input, as SOP inputs can't have a default value.
Houdini Engine for Unreal » Terrain parameters keep going back to an older version of the terrain, and collision not update when changing size in unreal
- dpernuit
- 534 posts
- Offline
Hi,
Yeah, that issue is likely caused by the Erosion's cached simulation:
Since erosion is a very costly process, by default the erosion node will cache its result, there's two ways you could avoid that:
- manually force the node to resimulate by pressing the “reset simulation” button (you can promote it on your hda), this would allow you to control when to rerun the full erosion after changing parameters on your HDA.
- you can also turn off “cache simulation” in the simulation tab of the hf_erode node, this will remove all caching, and the erosion will recook everytime it's dirtied.
Yeah, that issue is likely caused by the Erosion's cached simulation:
Since erosion is a very costly process, by default the erosion node will cache its result, there's two ways you could avoid that:
- manually force the node to resimulate by pressing the “reset simulation” button (you can promote it on your hda), this would allow you to control when to rerun the full erosion after changing parameters on your HDA.
- you can also turn off “cache simulation” in the simulation tab of the hf_erode node, this will remove all caching, and the erosion will recook everytime it's dirtied.
-
- Quick Links