Code Monkey home page Code Monkey logo

houdiniengineforunreal-v2's People

Contributors

abhiss avatar dpernuit avatar ryan-dowlingsoka avatar spoogicus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

houdiniengineforunreal-v2's Issues

Any build attempts for 4.25 + (targeting 4.26)

I tried to build it out of the box for 4.26 (Virtual Production) but I got some errors in the convexmesh class. Wondering if someone attempted targeting one of the more unstable branches.

Feedback when settings preferences wrong

Hi, initial feedback on using V2 of the plugin for Unreal :

  • When setting up Engine in Unreal with the wrong options, it would be nice to get more feedback then just "failed to start the Houdini session" so it can be troubleshooted.
  • When using a different version of Houdini to which Houdini Engine was compiled to (I was using Houdini 18.0.520 but using compiled Engine version for Unreal 4.25 for Houdini 18.0.460), it doesn't seem to error out, Unreal just freezes.
  • On pc with remote vpn connection to work pc, it worked fine (unreal 4.25). Using the version for 4.24 on my local machine seems to work but gave one error : "LogHoudiniEngine: Successfully intialized the Houdini Engine module.
    LogHoudiniEngineRuntime: Error: Cannot ClearRefineMeshesTimer, World is nullptr!"

Cheers,
Bjorn

4.23.1 Transform Issues

Hi.

I was testing the plugin on both vanilla 4.23.1 and our custom version of 4.23.1.
There are some errors with using HDA. In this case we tested the build in 18.0.460 he_surface_instancer.hda

The results were making the instanced asset being spawned in offset locations. Even when debugging in Houdini it was still an issue.

But, when that tool was loaded into a fresh 18.0.460 scene without any reference to UE4.23.1 it worked as intended.

I just wonder what is the issue here?

Instancer

PS4 LLVM Clang Compiler Errors.

A few more issues as we moved to make builds for the PS4. Clang may be strict as hell, but it found a few good issues as well.

Any idea of how frequently you all are expecting to update the V2 repo?

Source\HoudiniEngineRuntime\Private\HoudiniParameterFile.h
image

Source\HoudiniEngineRuntime\Private\HoudiniAssetComponent.h
Due to use of UHoudiniOutput at line 625, the include is required vs forward declaration.
image

On Line 631, I believe you are wanting to access OutputObject of FHoudiniOutputObject value. In which case there is one change needed.
image

Source\HoudiniEngineRuntime\Private\HoudiniGeoPartObject.cpp
Mismatch of && || && without scope control.
image

Source\HoudiniEngineRuntime\Private\HoudiniInputObject.h
Clang does not allow forward declarations of enumerations.
image
image
image

Source\HoudiniEngineRuntime\Private\HoudiniAssetComponent.cpp
Clang does not allow nested /**/ comments.
image

Source\HoudiniEngine\Private\HoudiniEngine.cpp
Fixing crashes due to accessing slate prior to init.
image

Source\HoudiniEngineEditor\Private\HoudiniEngineEditor.cpp
Same as above.
image

Cheers,
-Cort

RFE: Procedural input filtering

Hey all! Liking this alpha already.

I feel the plugin would benefit from a way to filter the inputs according to some rules.

The "Bound Selector" is something along this vein, but I often find myself wanting to use an otherwise defined subset of things in the level. At the moment I think filtering according to tags would be my favourite, but I'm sure there are other good choices as well. That is, an input would pass to Houdini all actors with a user-defined tag (or pattern).

Context for me here being artists adding markup geo to the level, and Houdini using those to construct/modify things. Keeping a manual selection up to date is tiresome and error-prone.

4.24 Alpha 2 V2 Foliage Bugs

Hey So I tested out the latest version and played around with the foliage and had some feedback/bugs to report:

Bug #1- When I added a second instance of the same foliage generating HDA to the level, it wouldn't initially work (though it did generate "invisible" foliage instances all over the entire landscape instead of where I was telling it to place them. They showed up in the foliage window but not in level). When this happened the first instance was still working like normal. Its like the mask I was using was being ignored, and it was generating the instances over the entire landscape but was then invisible. Deleting that foliage from the foliage window then recooking the 2nd HDA instance fixed the problem

Repro - Use attachedHda_A2V2_01 (1st input landscape, 2nd input object mask)

Feedback - Currently while they are placed in foliage and do update when recooked, they don't seem to behave like foliage (snapping and following the terrain when its painted). Idk if that is possible but it owuld be nice to not have to recommit the terrain when painting to see the foliage update (like how normal UE4 foliage behaves)

Feedback 2 - The unreal_foliage tag only worked as an attribute as an integer, not a float. may want to add that to the documentation

Feedback 3 - More of a question than a piece of feedback but how would I go about having 2 separate HDAs in the level contribute and use the same base foliage settings? Currently they are each tracked as separate foliage, but ideally if each HDA was a "biome brush" I'd want all pine trees from each to use the same foliage setting and be tracked in the same place. I know I can have them both point to the same mesh instead of using a generated cube, so maybe that would do it? Unsure

AttachedHDA_A2V2_01.zip

Temp Folder and Other Questions

Hi, I am running the V2 through the paces and trying to understand one of the changes that I haven't seen much about in the wiki.

It appears Houdini Engine now creates Temp files in the content browser, something that I don't believe it did in V1. (I should note, we were on a pretty version of V1 up until recently, so this might have been an older change that we just didn't get.)

Do the assets in the Temp folder need to be shared in perforce? It appears so, as the actor in the level appears to be directly referencing a material instance it created in the temp folder. In this case these assets aren't really temporary, but generated?

Finally, it seems the default behavior is to create a material instance, is that changeable? For example, I think there are occasions where we would want to use the material instance that is already assigned to the mesh, and while there wouldn't explicitly be a problem with houdini engine generating a material instance for the asset, it shouldn't always be necessary to do so.

In V1, I believe it was the unreal_material_instance attribute that told houdini to create a material instance, and unreal_material just to use the material asset as is. In my test I just have the unreal_material string prim var, and it still did appear to create a material instance.

Duplicating Houdini Spline Component Behavior?

What is the intended behavior when duplicating a HDA instance that utilizes a spline?

The issue I am looking at right now is that when duplicated the HDA spline component will revert to the default curve points of the HDA, vs being a copy of the current instances points.
In this specific case the cause appears to be coming from FHoudiniSplineTranslator::UpdateHoudiniCurve. It grabs the original curve points, and as long as these original curve points are greater than the number of current curve points, thus it erases the current instance points, and re-adds the default points. In our HDA example the default curve contains 8 points, but most instances only utilize 4 points.

So overall what is the expected behavior in this case of duplicating a HDA utilizing a spline?

Created Assets not Showing up in the World Outliner

I tried the latest HoudiniEngineForUnreal plugin with a small HDA created with the SideFX OSM Tools. The world is successfully created in the unreal engine. I have one problem though. How can I change settings for individual mesh actors generated by Houdini HDA in Unreal Engine. I can see only settings related to the HDA Actor and it seems all other actors are part of one big Mesh created by the HDA and hence I am not able to change the settings individually.

Thanks in advance for your help.

Building with HoudiniNiagra plugin causes build failure.

Error compiling on Unreal 4.25.3 Master branch. When using both Niagra and HoudiniEngine V2, there is a conflict:
struct: 'PointIndexes' conflicts with another type of the same name

Steps to reproduce:
Clone Unreal 4.25.3 Master branch
Clone the HoudiniNiagra source to UnrealEngine/Engine/Plugins/FX/HoudiniNiagra
Clone the HoudiniEngine v2 source to UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine

./GenerateBuildFiles.sh
make

Build Output:

bash "/home/mowgli/UnrealEngine2.5/Engine/Build/BatchFiles/Linux/Build.sh" CrashReportClient Linux Shipping  
bash "/home/mowgli/UnrealEngine2.5/Engine/Build/BatchFiles/Linux/Build.sh" CrashReportClientEditor Linux Shipping  
bash "/home/mowgli/UnrealEngine2.5/Engine/Build/BatchFiles/Linux/Build.sh" ShaderCompileWorker Linux Development  
bash "/home/mowgli/UnrealEngine2.5/Engine/Build/BatchFiles/Linux/Build.sh" UnrealLightmass Linux Development  
bash "/home/mowgli/UnrealEngine2.5/Engine/Build/BatchFiles/Linux/Build.sh" UnrealFrontend Linux Development  
bash "/home/mowgli/UnrealEngine2.5/Engine/Build/BatchFiles/Linux/Build.sh" UE4Editor Linux Development  
bash "/home/mowgli/UnrealEngine2.5/Engine/Build/BatchFiles/Linux/Build.sh" UnrealInsights Linux Development  
Fixing inconsistent case in filenames.
Setting up Mono
Fixing inconsistent case in filenames.
Fixing inconsistent case in filenames.
Fixing inconsistent case in filenames.
Setting up Mono
Setting up Mono
Setting up Mono
Fixing inconsistent case in filenames.
Fixing inconsistent case in filenames.
Setting up Mono
Setting up Mono
Fixing inconsistent case in filenames.
Setting up Mono
Building UnrealInsights...
Building UnrealFrontend...
Building ShaderCompileWorker...
Building CrashReportClientEditor...
Building CrashReportClient...
Building UnrealLightmass...
Building UE4Editor...
Using 'git status' to determine working set for adaptive non-unity build (/home/mowgli/UnrealEngine2.5).
Using 'git status' to determine working set for adaptive non-unity build (/home/mowgli/UnrealEngine2.5).
Creating makefile for UnrealInsights (no existing makefile)
Using 'git status' to determine working set for adaptive non-unity build (/home/mowgli/UnrealEngine2.5).
Creating makefile for UnrealLightmass (no existing makefile)
Using 'git status' to determine working set for adaptive non-unity build (/home/mowgli/UnrealEngine2.5).
Using 'git status' to determine working set for adaptive non-unity build (/home/mowgli/UnrealEngine2.5).
Creating makefile for UnrealFrontend (no existing makefile)
Using 'git status' to determine working set for adaptive non-unity build (/home/mowgli/UnrealEngine2.5).
Using 'git status' to determine working set for adaptive non-unity build (/home/mowgli/UnrealEngine2.5).
Creating makefile for ShaderCompileWorker (no existing makefile)
Creating makefile for UE4Editor (no existing makefile)
Invalidating makefile for CrashReportClientEditor (HoudiniEngine.uplugin has been added)
Invalidating makefile for CrashReportClient (HoudiniEngine.uplugin has been added)
Houdini Engine : Houdini 18.0.532 could not be found. Houdini Engine will not be available in this build.
------- Build details --------
Using toolchain located at '/home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu'.
Using clang (/home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang++) version '9.0.1' (string), 9 (major), 0 (minor), 1 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar : /home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar
Using fast way to relink  circularly dependent libraries (no FixDeps).
------------------------------
------- Build details --------
Using toolchain located at '/home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu'.
Using clang (/home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang++) version '9.0.1' (string), 9 (major), 0 (minor), 1 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar : /home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar
Using fast way to relink  circularly dependent libraries (no FixDeps).
------------------------------
------- Build details --------
Using toolchain located at '/home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu'.
Using clang (/home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang++) version '9.0.1' (string), 9 (major), 0 (minor), 1 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar : /home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar
Using fast way to relink  circularly dependent libraries (no FixDeps).
------------------------------
------- Build details --------
Using toolchain located at '/home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu'.
Using clang (/home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang++) version '9.0.1' (string), 9 (major), 0 (minor), 1 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar : /home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar
Using fast way to relink  circularly dependent libraries (no FixDeps).
------------------------------
------- Build details --------
Using toolchain located at '/home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu'.
Using clang (/home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang++) version '9.0.1' (string), 9 (major), 0 (minor), 1 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar : /home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar
Using fast way to relink  circularly dependent libraries (no FixDeps).
------------------------------
------- Build details --------
Using toolchain located at '/home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu'.
Using clang (/home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang++) version '9.0.1' (string), 9 (major), 0 (minor), 1 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar : /home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar
Using fast way to relink  circularly dependent libraries (no FixDeps).
------------------------------
Target is up to date
Total execution time: 1.25 seconds
Target is up to date
Target is up to date
Target is up to date
Target is up to date
Total execution time: 1.32 seconds
Total execution time: 1.32 seconds
Target is up to date
Total execution time: 1.34 seconds
Total execution time: 1.35 seconds
Total execution time: 1.39 seconds
Creating makefile for UnrealHeaderTool (no existing makefile)
------- Build details --------
Using toolchain located at '/home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu'.
Using clang (/home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang++) version '9.0.1' (string), 9 (major), 0 (minor), 1 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar : /home/mowgli/UnrealEngine2.5/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar
Using fast way to relink  circularly dependent libraries (no FixDeps).
------------------------------
Parsing headers for UE4Editor
  Running UnrealHeaderTool UE4Editor "/home/mowgli/UnrealEngine2.5/Engine/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/UE4Editor.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors -abslog="/home/mowgli/UnrealEngine2.5/Engine/Programs/UnrealBuildTool/Log_UHT.txt"
/home/mowgli/UnrealEngine2.5/Engine/Plugins/FX/HoudiniNiagara/Source/HoudiniNiagara/Public/HoudiniCSV.h(55) : Error: struct: 'PointIndexes' conflicts with another type of the same name defined at /home/mowgli/UnrealEngine2.5/Engine/Plugins/FX/HoudiniNiagara/Source/HoudiniNiagara/Public/HoudiniPointCache.h(54)

Alpha 1 Feedback Set 1

Hey Hope I am doing this in the right place will have more to post soon but just finished up first session playing with things.

Feedback:
-Generally way faster. Love the new UI and was sending terrain back and forth pretty quick!
-Unreal now supports layered terrains, where you can sculpt on independent layers for non destructive workflow. It seems like that layer data is flattened completely when exporting to Houdini. It would be great if that layer data could be kept as separate heightfield layers to manipulate independently in Unreal.
-As a follow up to the top point, I think one of the dream scenarios, would be that a HDA could instead of doing the whole replace or lock terrain system that is still in use in V2, it would directly link to just a few layers. That way I could sculpt in unreal on some layers, and let Houdini process others based on data in my scene. Working non destructively with terrain is still very hard if you don't want duplicate landscapes
-When testing with instanced data I didn't see any option to bake them to foliage? Did that get removed? Also I know a big feature that was at least mentioned in a thread somewhere was linking foliage data to a HDA after it was baked so if you regenerated that HDA it would remove and update the associated foliage elements (making it non destructive). This is how UE4's procedural forest system works and is a huge benefit

Crashes:
Only one crash so far. It was a hard lockup (not a crash with a log). It was with ATTACHED_HDA_01.

(Input 1 is a landscape, input 2 is geo projected on landscape to instance stuff, I was trying to project a closed curve)

I was just playing with curve types after having placed a few points in a closed curve in a level and when I changed from linear curve to one of the other types I got the hard lock up. I've atttached the HDA.

More feedback and stuff coming soon and please let me know if I need to put this elsewhere

Alex
Attached_HDA_01.zip

Crash in notification system caused by FHoudiniEngine::OnSessionLost

One of our artists hit the following check at the top of FSlateNotificationManager::AddNotification:

"FSlateNotificationManager::AddNotification must be called on game thread. Use QueueNotification if necessary."

I locally modified FHoudiniEngineUtils::CreateSlateNotification to new the struct and passed it's pointer into QueueNotification instead of AddNotification, following examples from the engine.

Can't correctly display multi-layer parameters

Here is my HDA parameters showing in Houdini๏ผš
ๆ‰นๆณจ 2020-08-19 115443
The 'river' has three layers needing to show. But in unreal detail panel, it shows:
ๆ‰นๆณจ 2020-08-19 115718
Parameters from 'Cache Data Output' display when choicing 'river', the content of 'river' can't edit.
version 4.24 Alpha3.2

Question: Possibility of runtime execution?

What's possible right now is beyond amazing but the opportunity of generating random procedural content is lost. Is there such possibility for the Houdini Engine to run at runtime?

Thanks.

Incorrect Tiled Landscapes Edges

Splitting landscape into 4 pieces with hf tile split node. Getting strange behaviour on tile edges; parts get doubled and ue4 warn of overlapping. When baking the holes get filled, result is not accurate. Using i@unreal_landscape_tile_actor_type = 1;. Landscape is split in PDG. Cooked and baked in UE4.25. Not sure if related but async importer crashes everytime I try to start it for houdini engine menu in ue4. No matter if HDA is placed on map or not. Gives this error:
Assertion failed: IsValid() [File:D:\Build++UE4+Licensee\Sync\Engine\Source\Runtime\Core\Public\Templates/SharedPointer.h] [Line: 879]
UE4Editor_HoudiniEngine!UHoudiniGeoImportCommandlet::MainLoop() [D:\Work\DEV18.0\engine\unreal\4.25-v2\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngine\Private\HoudiniGeoImportCommandlet.cpp:218]
UE4Editor_HoudiniEngine!UHoudiniGeoImportCommandlet::Main() [D:\Work\DEV18.0\engine\unreal\4.25-v2\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngine\Private\HoudiniGeoImportCommandlet.cpp:687]

HighresScreenshot00001

Houdini Outputs list is unwieldy in Details panel

Instanced Inputs I believe used to display the unreal_generated_mesh_name so there was a way for technical artists to give instancers a useful name in Houdini Core and have designers and programmers use the names in engine. In this version it appears these all come through with unreadable names that make it hard to deal with when you have a few hundred things in the list.

image

Is there a new way to specify useful names for these in Houdini Core?

Infinite re-cook can occur with input spline components.

I am sure this is already fixed on your end, so feel free to close issue if so.

SplineControlPoints caches its TM's in local space, but they were being compared in world space. This caused the component to always appear to be changed, resulting in infinite re-cooking of the Houdini Asset.

Source\HoudiniEngineRuntime\Private\HoudiniInputObject.cpp

image

Reimport Bgeo fails

Hello
First thing we tried was, reimporting a bgeo file imported directly, we do this a LOT in our pipeline with a very simple HDA that is just a file sop loading a bgeo with that path exposed, in this version there is support for importing bgeo files directly, which is great, but, you can't reimport the file is the file changes.

Thanks

4.24.3 bgeo landscape import issue

Windows 10
UE4.24.3
Houdini 18.0.460

I've made in TOPs 9 tiles with OSM data. Exported all to bgeo file. For testing imported them in a vanilla 4.24.3, and our custom version of 4.23.1

Importing had a constrain issue. If I imported to many tiles(~300 in our case) at once, and my RAM was not releasing anything causing a crash in both 4.23.1, and 4.24.3

Opening a level with one tile had no issues in both versions of the engine.

Loading a tile as a streamed one in the persistent level was Crashing our 4.23.1, but was loading in 4.24.3

Loaded tiles (9 in this case) were offset and did not align (but are fine in Houdini).

Additionally I loaded bgeo files of mapped buildings for those levels and those had no issues with transforms. In the image below You can see how misaligned the landscapes are. Only the building geometry is correct.
image

In the next image I am using world composition to show how the landscapes were offset. The red outline shows the correct positioning of the building geometry bgeo.
image

I could send the example 9 tiles (18 bgeo files) if required. Those are 70MB in total.

p.s. The tile bounds are bigger than in Houdini.

Button Strips not working

So i am having issue with buttons strips they do not display properly in folders and keep getting a crash when i select a buttion.
I have nothing connected to the button strip i am testing its just a simple button scrip with given token and label.

Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:D:\Work\UE4.25-DEV\Engine\Source\Runtime\Core\Public\Containers/Array.h] [Line: 674]
Array index out of bounds: 0 from an array of size 0

0x00007ffb19623e49 KERNELBASE.dll!UnknownFunction []
0x00007ffaad92e9e6 UE4Editor-Core.dll!UnknownFunction []
0x00007ffaad931dc8 UE4Editor-Core.dll!UnknownFunction []
0x00007ffaad6be53d UE4Editor-Core.dll!UnknownFunction []
0x00007ffaad6497b5 UE4Editor-Core.dll!UnknownFunction []
0x00007ffaad64baf0 UE4Editor-Core.dll!UnknownFunction []
0x00007ffa73fd14c8 UE4Editor-HoudiniEngine.dll!DispatchCheckVerify<void,<lambda_cf7805e90c53a1b869432b5a7bf04155> >() [D:\Work\UE4.25-DEV\Engine\Source\Runtime\Core\Public\Misc\AssertionMacros.h:162]
0x00007ffa73f53a46 UE4Editor-HoudiniEngine.dll!FHoudiniParameterTranslator::UpdateParameterFromInfo() [D:\Work\UE4.25-DEV\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngine\Private\HoudiniParameterTranslator.cpp:1211]
0x00007ffa73f4e7ae UE4Editor-HoudiniEngine.dll!FHoudiniParameterTranslator::BuildAllParameters() [D:\Work\UE4.25-DEV\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngine\Private\HoudiniParameterTranslator.cpp:371]
0x00007ffa73f56d9c UE4Editor-HoudiniEngine.dll!FHoudiniParameterTranslator::UpdateParameters() [D:\Work\UE4.25-DEV\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngine\Private\HoudiniParameterTranslator.cpp:90]
0x00007ffa73e988d4 UE4Editor-HoudiniEngine.dll!FHoudiniEngineManager::PostCook() [D:\Work\UE4.25-DEV\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngine\Private\HoudiniEngineManager.cpp:865]
0x00007ffa73e9b326 UE4Editor-HoudiniEngine.dll!FHoudiniEngineManager::UpdateCooking() [D:\Work\UE4.25-DEV\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngine\Private\HoudiniEngineManager.cpp:771]
0x00007ffa73e991f8 UE4Editor-HoudiniEngine.dll!FHoudiniEngineManager::ProcessComponent() [D:\Work\UE4.25-DEV\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngine\Private\HoudiniEngineManager.cpp:364]
0x00007ffa73e9af77 UE4Editor-HoudiniEngine.dll!FHoudiniEngineManager::Tick() [D:\Work\UE4.25-DEV\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngine\Private\HoudiniEngineManager.cpp:201]
0x00007ffaa9510c1b UE4Editor-Engine.dll!UnknownFunction []
0x00007ffaa956a989 UE4Editor-Engine.dll!UnknownFunction []
0x00007ffaa6d39eb2 UE4Editor-UnrealEd.dll!UnknownFunction []
0x00007ffaa7611d06 UE4Editor-UnrealEd.dll!UnknownFunction []
0x00007ff769127800 UE4Editor.exe!UnknownFunction []
0x00007ff76913ba7c UE4Editor.exe!UnknownFunction []
0x00007ff76913bb5a UE4Editor.exe!UnknownFunction []
0x00007ff76914e31d UE4Editor.exe!UnknownFunction []
0x00007ff76915145a UE4Editor.exe!UnknownFunction []
0x00007ffb1aaa6fd4 KERNEL32.DLL!UnknownFunction []
0x00007ffb1bbdcec1 ntdll.dll!UnknownFunction []

Alpha 1 Feedback Set #2

Alpha 1 Feedback Set #2

Ok this was mostly foliage and world composition focused.

-Bake to foliage did work (replace is a bit confusing as terminology, I thought it was the feature I mentioned before where placed foliage was auto updated )
-Having it auto place into foliage nad get updated would be HUGE. Definitely looking forward to this

-World composition (phrasing was weird in the documentation I was unsure of what the new feature actually is. Importing support from UE4 to Houdini via input parameters, or back the other way, imported in Houdini via outside sources then just dynamically created in Unreal)
I was unable to plug in multiple level proxies as a single input (guessing I need multiple inputs, one for each proxy??). I was however able to select 2 streaming proxies in the world outliner which did
go into Houdini correctly (as landscapes even, not geo) though I did run into the bug described below

I tried the inverse where I plugged in a landscape and it generated out tiles which seemed to work as separate landscapes but it didn't at first glance put them into the world composition system. I also tried baking
it out as a level which seemed to work but it wasn't detected by world composition at all. (SCREENSHOT_02)
SCREENSHOT_02
This means that both use cases I could think of (imporitng and combining multiple tiles together, and generating new tiles) didn't work.

For me, and the pipeline my team is currently working on it is by far the former that is way more important. The ability to process world composition tiles easily when sampling to scatter instanced content,
and the pipeline around it is paramount. Currently our plan is (since this tool isn't out yet) to export the tiles manually from Unreal to save on disk, then have our tools read back the disk cached heightfields as we need
them. I think an ideal system would be some kind of auto selection of components to export within a volume or custom landscape input you could then use to scatter things on (though PDG does help that problem when it comes online
in the future (something we are looking forward to).

But yeah TLDR, both use cases I tried of world comp didn't seem to work as expected, sampling from world comp streaming proxies and generating content accross tiles and placing them in the right level is the base feature we really need (similar to how UE4's procedural foligae system works)

BUGS
-When using 2 levels imported from the outliner as inputs (ATTACHED_HDA_01) that were both level streaming proxies (SCREENSHOT_01), the HDA seemed to not generate the instanced cubes accross both terrains.
SCREENSHOT_01

It did for one, but seemed to not place them across the border to the second proxy. I also opened up the scene live and apparently it wasn't generating a correct second input (DEBUGHIP_01). I've attached
It for you guys to poke around with.

-I did have one crash trying to import in some world comp tiles into a scene with an existing landscape that was already hooked up into an HDA. I've included it (CRASHDUMP_01)

Attached_HDA_01.zip
CRASHDUMP_01.zip
DEBUGHIP_01.zip

Landscape Splines

Hi,

Is there any support for landscape splines? I would like to generate curves in Houdini, and then have them turn into editable landscape splines in Unreal Engine. E.g In Houdini extract roads from OSM data, then push that to UE4 landscape splines via Houdini Engine.

test

testing, testing....1...2...3

Scripting support for automation

Hi,
In regards to automation, what are the options for example to change parameters through Unreal or Python? I can't seem to find options to automate setups.

Thank you,
Bjorn

Alpha 3 - not compiling outside of editor builds

Looks like a few things in the Runtime module were using editor code, which means the module won't compile with a packaged game.

A minimal set of changes to get compiling:

  • HoudiniInput.cpp
    • wrap the line containing LandscapeProxy->GetActorLabel() in #if WITH_EDITOR / #endif lines
  • HoudiniOutput.cpp
    • remove or comment out the "Factories/WorldFactory.h" include
  • HoudiniPDGAssetLink.cpp
    • remove or comment out the "Editor.h" include
    • remove or comment out the "Kismet2/KismetEditorUtilities.h" include
    • Wrap all 3 instances of ...->SetIsTemporarilyHiddenInEditor(!bShow) in #if WITH_EDITOR / #endif lines in FTOPNode::UpdateOutputVisiblityInLevel
    • In FOutputActorOwner::CreateOutputActor:
      • Wrap the OutputActor->SetActorLabel line in #if WITH_EDITOR / #endif lines
      • Wrap the OutputActor->SetFolderPath line in the first if block in #if WITH_EDITOR / #endif lines
      • Wrap the following else if and else blocks in #if WITH_EDITOR / #endif lines

It looks like entire functions would make sense to mark as editor-only (like UHoudiniInput::GetCurrentSelectionText), but I wanted to keep my modifications minimal.

Still having build issues with Alpha 3

I'm integrating Alpha 3 and we're still having issues compiling the plugin with UBT.

In file included from E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\HoudiniEngineRuntime\Module.HoudiniEngineRuntime.gen.1_of_4.cpp:9:
In file included from E:/p4/build_foo_dev_2/UE4/foo/Game/Intermediate/Build/Linux/B4D820EA/FOOServer/Inc/HoudiniEngineRuntime/HoudiniInput.gen.cpp:8:
In file included from ../Plugins/Runtime/HoudiniEngine/Source\HoudiniEngineRuntime/Private/HoudiniInput.h:34:
E:\p4\build_foo_dev_2\UE4\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngineRuntime\Private\HoudiniInputObject.h(652,17): error: implicit instantiation of undefined template 'std::__1::hash<float>'
          std::hash<T> h;
                       ^
E:\p4\build_foo_dev_2\UE4\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngineRuntime\Private\HoudiniInputObject.h(658,3): note: in instantiation of function template specialization 'FHoudiniBrushInfo::HashCombine<float>' requested here
                HashCombine(s, V.X);
                ^
E:\p4\build_foo_dev_2\UE4\Engine\Source\ThirdParty\Linux\LibCxx\include\c++\v1\type_traits(417,50): note: template is declared here
template <class _Tp> struct _LIBCPP_TEMPLATE_VIS hash;
                                                 ^
In file included from E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\HoudiniEngineRuntime\Module.HoudiniEngineRuntime.gen.1_of_4.cpp:9:
In file included from E:/p4/build_foo_dev_2/UE4/foo/Game/Intermediate/Build/Linux/B4D820EA/FOOServer/Inc/HoudiniEngineRuntime/HoudiniInput.gen.cpp:8:
In file included from ../Plugins/Runtime/HoudiniEngine/Source\HoudiniEngineRuntime/Private/HoudiniInput.h:34:
E:\p4\build_foo_dev_2\UE4\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngineRuntime\Private\HoudiniInputObject.h(652,17): error: implicit instantiation of undefined template 'std::__1::hash<unsigned long long>'
          std::hash<T> h;
                       ^
E:\p4\build_foo_dev_2\UE4\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngineRuntime\Private\HoudiniInputObject.h(669,3): note: in instantiation of function template specialization 'FHoudiniBrushInfo::HashCombine<unsigned long long>' requested here
                HashCombine(Hash, (uint64)(Poly.Material));
                ^
E:\p4\build_foo_dev_2\UE4\Engine\Source\ThirdParty\Linux\LibCxx\include\c++\v1\type_traits(417,50): note: template is declared here
template <class _Tp> struct _LIBCPP_TEMPLATE_VIS hash;
                                                 ^
2 errors generated.
15>Failed to build Object. Error: 1 (0x01) Target: 'E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\HoudiniEngineRuntime\Module.HoudiniEngineRuntime.gen.1_of_4.cpp.o'
-> Obj: E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\Chaos\Module.Chaos.cpp.o <REMOTE: devon-win-bsl3hq2>
-> Obj: E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\MSQS\Module.MSQS.cpp.o <REMOTE: tyler-win-1mvzlr2>
-> Obj: E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\AssetRegistry\Module.AssetRegistry.gen.cpp.o <REMOTE: krisschoneberg-win-ita-1215>
36>WARNING: E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\HoudiniEngineRuntime\Module.HoudiniEngineRuntime.cpp.o
In file included from E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\HoudiniEngineRuntime\Module.HoudiniEngineRuntime.cpp:4:
In file included from E:/p4/build_foo_dev_2/UE4/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngineRuntime/Private/HoudiniAssetComponent.cpp:31:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngineRuntime/Private/HoudiniInput.h:34:
E:\p4\build_foo_dev_2\UE4\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngineRuntime\Private\HoudiniInputObject.h(652,17): error: implicit instantiation of undefined template 'std::__1::hash<float>'
          std::hash<T> h;
                       ^
E:\p4\build_foo_dev_2\UE4\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngineRuntime\Private\HoudiniInputObject.h(658,3): note: in instantiation of function template specialization 'FHoudiniBrushInfo::HashCombine<float>' requested here
                HashCombine(s, V.X);
                ^
E:\p4\build_foo_dev_2\UE4\Engine\Source\ThirdParty\Linux\LibCxx\include\c++\v1\type_traits(417,50): note: template is declared here
template <class _Tp> struct _LIBCPP_TEMPLATE_VIS hash;
                                                 ^
In file included from E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\HoudiniEngineRuntime\Module.HoudiniEngineRuntime.cpp:4:
In file included from E:/p4/build_foo_dev_2/UE4/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngineRuntime/Private/HoudiniAssetComponent.cpp:31:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngineRuntime/Private/HoudiniInput.h:34:
E:\p4\build_foo_dev_2\UE4\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngineRuntime\Private\HoudiniInputObject.h(652,17): error: implicit instantiation of undefined template 'std::__1::hash<unsigned long long>'
          std::hash<T> h;
                       ^
E:\p4\build_foo_dev_2\UE4\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngineRuntime\Private\HoudiniInputObject.h(669,3): note: in instantiation of function template specialization 'FHoudiniBrushInfo::HashCombine<unsigned long long>' requested here
                HashCombine(Hash, (uint64)(Poly.Material));
                ^
E:\p4\build_foo_dev_2\UE4\Engine\Source\ThirdParty\Linux\LibCxx\include\c++\v1\type_traits(417,50): note: template is declared here
template <class _Tp> struct _LIBCPP_TEMPLATE_VIS hash;
                                                 ^
2 errors generated.
36>Failed to build Object. Error: 1 (0x01) Target: 'E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\HoudiniEngineRuntime\Module.HoudiniEngineRuntime.cpp.o'
--- Most Expensive ----------------------------------------------
Time (s)  Name:
47.027    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\Core\Module.Core.10_of_12.cpp.o
43.256    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\ChaosSolvers\Module.ChaosSolvers.cpp.o
42.849    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\CoreUObject\Module.CoreUObject.1_of_7.cpp.o
40.939    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\Core\Module.Core.11_of_12.cpp.o
39.236    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\CoreUObject\Module.CoreUObject.6_of_7.cpp.o
34.781    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\GeometryCollectionCore\Module.GeometryCollectionCore.cpp.o
33.659    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\CoreUObject\Module.CoreUObject.2_of_7.cpp.o
31.584    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\CoreUObject\Module.CoreUObject.5_of_7.cpp.o
27.828    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\PakFile\Module.PakFile.cpp.o
25.605    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\Engine\SharedPCH.Engine.ShadowErrors.h.gch
24.038    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\Engine\PCH.Engine.h.gch
23.000    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\XMPP\Module.XMPP.cpp.o
21.842    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\Core\Module.Core.12_of_12.cpp.o
20.397    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\DirectoryWatcher\Module.DirectoryWatcher.cpp.o
19.841    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\Navmesh\Module.Navmesh.2_of_3.cpp.o
19.716    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\HoudiniEngineRuntime\Module.HoudiniEngineRuntime.cpp.o
18.122    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\HoudiniEngineRuntime\Module.HoudiniEngineRuntime.gen.2_of_4.cpp.o
17.597    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\DesktopPlatform\Module.DesktopPlatform.cpp.o
17.163    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\HoudiniEngineRuntime\Module.HoudiniEngineRuntime.gen.3_of_4.cpp.o
16.746    E:\p4\build_foo_dev_2\UE4\foo\Game\Intermediate\Build\Linux\B4D820EA\FOOServer\Development\Navmesh\Module.Navmesh.1_of_3.cpp.o

--- Summary -----------------------------------------------------
                                 /----- Cache -----\
Build:          Seen    Built   Hit     Miss    Store   CPU
 - File       : 3802    206     -       -       -       0.000s
 - Object     : 205     77      0       205     0       17m 52.627s
 - Alias      : 1       0       -       -       -       0.000s
 - Exe        : 1       0       -       -       -       0.000s
 - Compiler   : 1       1       -       -       -       0.221s
 - ObjectList : 780     42      -       -       -       0.000s
Cache:
 - Hits       : 0 (0.0 %)
 - Misses     : 205
 - Stores     : 0
Time:
 - Real       : 1m 0.982s
 - Local CPU  : 17m 52.848s (17.6:1)
 - Remote CPU : 0.000s (0.0:1)
-----------------------------------------------------------------
FBuild: Error: BUILD FAILED: all

It looks like this particular error can be fixed by adding #include <functional> to HoudiniInputObject.h. However, you said previously that adding <functional> "breaks" the build for you. I'm wondering how exactly this breaks for you. I'm also wondering how you are building. Are you testing with UBT? Are you building Game and Editor binaries in a test project? Are you building Windows and Linux server binaries? Are you using a unity or non-unity build? I'm trying to narrow down what the differences are between your build and our UBT game and editor build. It seems there might need to be some platform-dependent preprocessor directives in there to get the plugin working with a full UBT build of Editor and Game binaries.

Note that if I only do a Development Editor - Win64 build from within Visual Studio I can get it to compile. It seems the MSVC toolchain brings in all kinds of stl stuff somewhere in its dependency chain. This is insufficient for getting precompiled binaries into Technical Artists' hands for testing though. They're not going to set up and compile the whole project locally. This also means we can't test the new "no-baking" workflow in a shipping configuration because we can't build release binaries.

Non-Editor Configuration Compile Errors.

Hi Damien,

I am seeing a few minor compile errors the new v2 plugin when building for debug / dev configurations. It feels weird submitting these type of changes via Issues let alone screen shots, so if there is some other route you would prefer let me know.

Cheers,
-Cort

Source\HoudiniEngineRuntime\Private\HoudiniStaticMeshComponent.cpp
image

Source\HoudiniEngineRuntime\Private\HoudiniSplineComponent.h
image

Source\HoudiniEngineRuntime\Private\HoudiniSplineComponent.cpp
image

Source\HoudiniEngineRuntime\Private\HoudiniInputObject.cpp
image

image

Spline references break on Rebuild

Could be related to one of our local changes, but this appears for us with both Alpha 2 and Alpha 3. I got this workaround checked in yesterday but waited until today to see if it was fixed in Alpha 3.

We should be able to provide an HDA if necessary, but to repro:

  • Set an input of type "World Outliner" to an actor with a SplineComponent on it
  • Press the Rebuild button the actor
  • Observe the following error in the Output Log: LogHoudiniEngine: Error: Hapi failed: HAPI Error: The node is invalid. Either the otl/hda asset library file was deleted or another otl/hda asset library file was loaded that contained an operator type with the same name as this asset's operator type. You must unload this node's asset and re-instantiate it.
  • Move a spline point
  • The actor should enter an infinite loop of cooking

Deleting the reference to the actor with a spline on it and re-selecting should stop the cook loop.

I narrowed the logged error down to FHoudiniSplineTranslator::HapiCreateCurveInputNodeForData. It appears that CurveNodeId never gets reset to -1, so the old ID is used despite being invalid. FHoudiniApi::GetParmIdFromName fails and causes the function to return false. Because this function fails, the HoudiniInputObject would never have Update() called on it. Because it never updated, the cached spline length does not match the current spline length, which triggers another cook.

Not sure if there's a better place to reset the ID to -1, but changing the CurveNodeId < 0 check to !FHoudiniEngineUtils::IsHoudiniNodeValid(CurveNodeId) towards the top of HapiCreateCurveInputNodeForData works for us.

Allow class restrictions on "unreal_ref" string parameter

Hey,

Looks like I can't fork and submit a PR, but we made some relatively deep modifications to the v1 plugin to get some workflow up and running. I'm integrating v2 now and it looks like most of those changes can be re-made as much shallower changes, and it would be nice if some of them could be integrated back into the plugin.

One of those changes in v1 was rolling our own version of "unreal_ref" string parameters. The only thing the v2 was missing was the ability to specify which Unreal class you wanted to restrict the parameter to.

I implemented this as another tag, "unreal_ref_class". Both drag/drop and the asset picker are restricted to the class name specified as the value of the tag. If the class is not specified or cannot be found, it defaults to accept all UObjects.

Attached is a patch file created with git diff -p, let me know if another format is preferable (and if you want patches at all ๐Ÿ˜„)

ref_class.patch.txt

Issue if .hda file has more than one definitions

In HE UE V1, if the .hda file has more than one definitions, it opens a dialog to let you choose which one to instantiate in the level.
In V2, it auto chooses the first definition without the V1 dialog.

I would suggest users can choose which definition in the HDA Asset editor window.

I am using the Alpha3 Release binaries for UE4.24

Houdini Engine v2 - problem with compiling after "make" and "generateProjectFiles.sh" on Linux Mint 20

Hi

I've tried to install new version of the plugin for UE- Alpha3.2. Based on installed Houdini 18.0.532. However it throws a few errors during "make" proces with accesing to some missing staticmeshes.h errors. It compiled but with errors - around 5 errors so far. After generating projectfiles it went 100% fine , no warnings etc. However opening editor throwing errors that HEngine cannot be found or properly installed etc. ( don't have an access to proper logs right now ). I put the new plugins into "old" Plugins/Runtime/HoudiniEngine folder also trying to put a Plugins sections in Unreal Projects and copy the files there with and without making a blank UE compiling ( without HEngine in Runtime section. Any tips how to solve it on Linux ? Or at this stage is only running on Windows ? UE 4.25.1 / Houdini 18.0.532. Old plugin of Houdini Engine v1 based on Houdini 18.0.560 running just fine without any errors.

greetings

djczaps

Remove the 'HoudiniEngine' folder for easier submodule linkage

I suggest that you move the plugin out of the HoudiniEngine subfolder and into the root of this repository.

For people who use VCSes that support sub-repositories (Git & Plastic SCM, but not Perforce), and let everyone on the team build everything from source, it is nice to be able to link the HoudiniEngineForUnreal-v2 repository as a whole into a submodule folder at <game project>/Plugins/Runtime/HoudiniEngine -- without doing any local changes, such as extracting the contents of a subfolder.

With the current directory layout, that strategy will always end up with a folder structure like <game project>/Plugins/Runtime/HoudiniEngine/HoudiniEngine. If you were to move the unreal plugin itself straight into the root of this repository, you would provide an appropriate folder structure for those use cases as-is.

Alpha 3 - LOCTEXT_NAMESPACE errors & warning

Just integrated Alpha 3 into our 4.24 project. It looks like there's an inconsistency between master and the 4.24/4.23 branches with the namespace at the top of SNewFilePathPicker.cpp, I get a warning about redefining HOUDINI_LOCTEXT_NAMESPACE. Commented the line out to match up with the master branch.

I also had to add a #define LOCTEXT_NAMESPACE HOUDINI_LOCTEXT_NAMESPACE to the top of HoudiniParameterDetails to get rid of errors.

Compiling fine otherwise :)

EDIT: Had to change the line at the top of SNewFilePathPicker.cpp to define it as LOCTEXT_NAMESPACE. Guessing the unity build file grouping changed while testing something else and the original namespace was pulled from an earlier cpp file, so there's probably another undef missing somewhere

Missing LOCTEXT_NAMESPACE undefs

Ran into a compiler warning for this, a Find All search showed that 3 files are missing #undef LOCTEXT_NAMESPACE at the bottom of the file:

  • AssetTypeActions_HoudiniAsset.cpp
  • HoudiniEngineDetails.cpp
  • HoudiniSplineComponentVisualizer.cpp

HoudiniEngine.Build.cs log spam

Edited/Revised:

We have been attempting to reduce log spam across our projects, and have noticed some warning/info spam related to Houdini not being installed (or even if it is installed, still get some spam.)

For reference:

Binding IntelliSense data... 0%Houdini Engine : Looking for Houdini Engine 18.0.460 in C:/Program Files/Side Effects Sof
tware/Houdini Engine 18.0.460
Houdini Engine : Looking for Houdini 18.0.460 in C:/Program Files/Side Effects Software/Houdini 18.0.460
Houdini Engine : Failed to find Houdini 18.0.460, will attempt to build using the latest installed version
Houdini Engine : Please install Houdini or Houdini Engine 18.0.460
Houdini Engine : Looking for Houdini Engine 18.0.460 in C:/Program Files/Side Effects Software/Houdini Engine 18.0.460
Houdini Engine : Looking for Houdini 18.0.460 in C:/Program Files/Side Effects Software/Houdini 18.0.460
Houdini Engine : Failed to find Houdini 18.0.460, will attempt to build using the latest installed version
Houdini Engine : Please install Houdini or Houdini Engine 18.0.460
81%Houdini Engine : Looking for Houdini Engine 18.0.460 in C:/Program Files/Side Effects Software/Houdini Engine 18.0.46
0
Houdini Engine : Looking for Houdini 18.0.460 in C:/Program Files/Side Effects Software/Houdini 18.0.460
Houdini Engine : Failed to find Houdini 18.0.460, will attempt to build using the latest installed version
Houdini Engine : Please install Houdini or Houdini Engine 18.0.460
100%

We have locally replaced the system.console writes with the Tools.DotNetCommon.Log Trace system Unreal Build Tool uses elsewhere.

We'd love to have this brought back into the repo so that we don't need to maintain it through integrations. Is this something you could take back? I would do a pull request, but I can't fork, and I don't know github well enough to know if there is a better way to send this to you.

Here is our version to diff in a .zip:
HoudiniEngine.Build.zip

Splatmaps for Landscapes are mid-gray instead of 0 - 1.

Hey!
Sorry, i posted this issue in someone elses thread first - now i created an own issue.

There's one thing with generating landscapes.
When I import my landscape HDA the generated splatmaps seem to be a bit flat. Looks like they don't go from 0 to 1. Everything looks kinda gray-ish.
The same thing happens in V1 of the plugin, so i'm not sure if there's a meaning behind it. I thought it might be a bug in V1 as well.
I attached the files to this post so you can see what i mean.
81085933-26127980-8ef8-11ea-8832-e235c33c3234
81085938-27dc3d00-8ef8-11ea-982c-589b54b11a74
81085940-290d6a00-8ef8-11ea-8cdb-de4b6fe044b3
81085954-2b6fc400-8ef8-11ea-8f08-019523b8760b

Import Axis Setting?

Hello,

Apologies if this is answered elsewhere, but previously there was a project/plug-in setting for using the default Houdini vs. Unreal coord system. It seems that is no longer there. Is v2 meant to simply convert things to UE coord system by default now? Same with scaling?

Thanks!
Pete

Question - PostCook hook

Hi,

I've taken a look at the new plugin and integrated it into our codebase and the first thing I noticed is that the PostCook() function in HoudiniAssetComponent has been removed.

We've made a few changes in Version 1 of the plugin, one of which is making PostCook virtual so that we can hook into the moment the asset is baked to Actors so that we can do some post-processing in code before it's put into the level.

I understand it's obviously not the intended way to use it but I was wondering if you could suggest an alternative for Version 2 as we heavily rely on a post-processing step in code that I've just described.

Thanks in advance,
Simon

UI Issues and Requests

Here a few issues with the UI of HDAs in unreal.

  1. The scroll bar does not account for the size of the Inputs or Outputs sections. Therefor the scrollbar drastically changes size as you scroll up and down the asset. This is a minor annoyance, but definitely something that hurts the usability feeling.

  2. Houdini Inputs do not have the "Set from Content Browser" arrow. This makes the workflow feel different from typical Unreal workflows which for many users rely on this button everywhere.
    image

  3. It would be nice for the Bake options to include a "Content Browser" option. This option would not create an actor in the level, but would bake all the outputs to the content browser into the bake folder. This would be a better workflow for tools that are meant to generate reusable content than creating an actor.

  4. Until save and reload, Baking to an actor creates actors that cannot be deleted. The Delete button doesn't do anything and Edit>Delete is grayed out.

[RFE] Attribute to Metadata

Hi
we deal with a lot of assets and data and would love to transfer some of that data to UE4, sometimes we use Component tags, but that does not get saved into the static mesh, right now we need to spawn different meshes and we need the data on the actual mesh.

Currently I'm writing a script to transfer the tags to metadata.
Would be great if we could set a detail attribute to metadata_nameofkey, value = "road", the attribute value will be the value and this goes to the metadata when you bake to actors.

I noticed Houdini Engine v1 does store some metadata already
image

this would be very helpful for our pipeline.

thank you

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.