sideeffects / HoudiniEngineForUnreal

Houdini Engine Plugin for Unreal Engine.
http://www.sidefx.com/unreal
Other
1.35k stars 373 forks source link

HoudiniEngine for UE5.1 (Main branch of UE source) #193

Open sumo-ldewet opened 2 years ago

sumo-ldewet commented 2 years ago

Hi,

I tried to use the Houdini Engine plugin for UE 5.1 but I'm getting a lot of compiler errors. Is there anyone that can help me with this?

dustars commented 2 years ago

I've managed to compile it. The main issue is that UE 5.1 deprecated many old APIs that are still used by Houdini Engine, specifically related to UMaterial. There are two major modifications I made:

  1. Instead of accessing Expression directly, use GetExpressionCollection() for adding/Removing expressions.
  2. Similarly, use GetEditorOnlyData() to access data like BaseColor, Roughness etc.

Hope this helps!

sumo-ldewet commented 2 years ago

Thanks, I managed to fix it up as well, but cooking is hanging. Might not be related to HDA files though, investigating.

ChrisFriendly commented 2 years ago

I've managed to compile it. The main issue is that UE 5.1 deprecated many old APIs that are still used by Houdini Engine, specifically related to UMaterial. There are two major modifications I made:

1. Instead of accessing Expression directly, use GetExpressionCollection() for adding/Removing expressions.

2. Similarly, use GetEditorOnlyData() to access data like BaseColor, Roughness etc.

Hope this helps!

would you be willing to tell me how to do this? do you have a compiled version for Houdini 19.5?

dustars commented 2 years ago

I've managed to compile it. The main issue is that UE 5.1 deprecated many old APIs that are still used by Houdini Engine, specifically related to UMaterial. There are two major modifications I made:

1. Instead of accessing Expression directly, use GetExpressionCollection() for adding/Removing expressions.

2. Similarly, use GetEditorOnlyData() to access data like BaseColor, Roughness etc.

Hope this helps!

would you be willing to tell me how to do this? do you have a compiled version for Houdini 19.5?

Hi Christoph,

Like I mentioned, there are two major modifications: First, use GetExpressionCollection() to access Expressions in UMaterial, for example, you need to change code like Material->Expressions.Add(Exp); to Material->GetExpressionCollection().AddExpression(Exp)

Another one is for data members like BaseColor, Roughness, similary, change Material->BaseColor.Expression to Material->GetEditorOnlyData().BaseColor.Expression

If I remember correctly, applying these two changes can fix most errors (around 200?). But there are still several tricky ones left. Leave them here If you need more help to fix them.

CakeQ commented 2 years ago

Hi.

I've taken the time to go through and port Houdini for use with the ue5-main branch of the engine on GitHub (5.1)

If you or anyone else reading this wants to try out a pre-modified version of this plugin before attempting to fix it themselves for their own projects, check out my repository: https://github.com/CakeQ/HoudiniEngineForUnreal

ChrisFriendly commented 2 years ago

I still don't get it to compile without errors..

Severity    Code    Description Project File    Line    Suppression State
Error   C3861   'GetFontStyle': identifier not found    PluginBuildProject  F:\Unreal_Evaluate\PluginBuildProject\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngineEditor\Private\HoudiniInputDetails.cpp  829 
Error   C2653   'FEditorStyle': is not a class or namespace name    PluginBuildProject  F:\Unreal_Evaluate\PluginBuildProject\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngineEditor\Private\HoudiniInputDetails.cpp  829
Error   MSB3073 The command "D:\UE5_GitHub_Builds\UnrealEngine-ue5-main\Engine\Build\BatchFiles\Build.bat -Target="PluginBuildProjectEditor Win64 Development -Project=\"F:\Unreal_Evaluate\PluginBuildProject\PluginBuildProject.uproject\"" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild" exited with code 6.   PluginBuildProject  C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets  45
dustars commented 2 years ago

I still don't get it to compile without errors..

Severity  Code    Description Project File    Line    Suppression State
Error C3861   'GetFontStyle': identifier not found    PluginBuildProject  F:\Unreal_Evaluate\PluginBuildProject\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngineEditor\Private\HoudiniInputDetails.cpp  829 
Error C2653   'FEditorStyle': is not a class or namespace name    PluginBuildProject  F:\Unreal_Evaluate\PluginBuildProject\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngineEditor\Private\HoudiniInputDetails.cpp  829
Error MSB3073 The command "D:\UE5_GitHub_Builds\UnrealEngine-ue5-main\Engine\Build\BatchFiles\Build.bat -Target="PluginBuildProjectEditor Win64 Development -Project=\"F:\Unreal_Evaluate\PluginBuildProject\PluginBuildProject.uproject\"" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild" exited with code 6.   PluginBuildProject  C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets  45

Oh I forgot about this one.

FEditorStyle is replaced by class FAppStyle, codes like FEditorStyle::GetFontStyle(...) should be changed to FAppStyle::GetFontStyle(...). That should fix it!

Check this commit for more info: https://github.com/EpicGames/UnrealEngine/commit/6248f8d412ba73bd0a800e7f51fa07a12d3a78ee

ChrisFriendly commented 2 years ago

how would I change all those files or incorporate that commit into the other one?

I am not a programmer.

dustars commented 2 years ago

how would I change all those files or incorporate that commit into the other one?

I am not a programmer.

If you are not a programmer then it's probably better to stay at UE5.0 instead of UE5.1, since what we've discussed here were quite technical and I would assume this work of porting Houdini engine require at least an experienced C++ engineer.

CakeQ commented 2 years ago

how would I change all those files or incorporate that commit into the other one?

I am not a programmer.

Hi. All you need to do is go to my repository at https://github.com/CakeQ/HoudiniEngineForUnreal and "Download zip". You can delete and replace the plugin you added to your project with this download. The plugin should go into \MyGameProject\Plugins\HoudiniEngine. Check the readme if you're still confused.

image

ChrisFriendly commented 2 years ago

how would I change all those files or incorporate that commit into the other one? I am not a programmer.

Hi. All you need to do is go to my repository at https://github.com/CakeQ/HoudiniEngineForUnreal and "Download zip". You can delete and replace the plugin you added to your project with this download. The plugin should go into \MyGameProject\Plugins\HoudiniEngine. Check the readme if you're still confused.

image

you may have misunderstood me

I already did that and tried to compile it. That is when I got the errors about 'FEditorStyle::GetFontStyle(...)' and when @dustars mentioned that I would also need to replace those with 'FAppStyle::GetFontStyle(...)' as seen here https://github.com/EpicGames/UnrealEngine/commit/6248f8d412ba73bd0a800e7f51fa07a12d3a78ee

CakeQ commented 2 years ago

how would I change all those files or incorporate that commit into the other one? I am not a programmer.

Hi. All you need to do is go to my repository at https://github.com/CakeQ/HoudiniEngineForUnreal and "Download zip". You can delete and replace the plugin you added to your project with this download. The plugin should go into \MyGameProject\Plugins\HoudiniEngine. Check the readme if you're still confused. image

you may have misunderstood me

I already did that and tried to compile it. That is when I got the errors about 'FEditorStyle::GetFontStyle(...)' and when @dustars mentioned that I would also need to replace those with 'FAppStyle::GetFontStyle(...)' as seen here https://github.com/EpicGames/UnrealEngine/commit/6248f8d412ba73bd0a800e7f51fa07a12d3a78ee

I'd already handled that compilation issue, so I have a feeling you may be using the wrong branch. The branch I modified (which should be the default one) is titled "Houdani" and should have all the fixes needed to get things up and running

CakeQ commented 2 years ago

If that still doesn't work for you then I'll have another look on my end to see if I missed anything.

ChrisFriendly commented 2 years ago

I just tried again and still got the same errors.

\Plugins\HoudiniEngine\HostProject\Plugins\HoudiniEngine\Source\HoudiniEngineEditor\Private\HoudiniInputDetails.cpp(829): error C2653: 'FEditorStyle': is not a class or namespace name \Plugins\HoudiniEngine\HostProject\Plugins\HoudiniEngine\Source\HoudiniEngineEditor\Private\HoudiniInputDetails.cpp(829): error C3861: 'GetFontStyle': identifier not found

ChrisFriendly commented 2 years ago

@CakeQ have you had time to look at it?

ChrisFriendly commented 2 years ago

i edited the source code to update FEditorStyle but now I have this error:

Note: Android toolchain NDK r21e recommended Platform Android is not a valid platform to build. Check that the SDK is installed properly. Took 1,0732211s to run dotnet.exe, ExitCode=6

I checked and I have NDK 21 installed. Why does Houdini Engine need Android Dev Stuff at all?

ChrisFriendly commented 2 years ago

i edited the source code to update FEditorStyle but now I have this error:

Note: Android toolchain NDK r21e recommended Platform Android is not a valid platform to build. Check that the SDK is installed properly. Took 1,0732211s to run dotnet.exe, ExitCode=6

I checked and I have NDK 21 installed. Why does Houdini Engine need Android Dev Stuff at all?

Never mind the Android thing.. i fixed it by installing Android Studio and all the necessary parts.

now there are a ton of new errors...

BMWben commented 2 years ago

Are there any news regarding the plugin? I tried the plugin myself but got a lot of error messages

Khaliszt commented 1 year ago

Are you downloading precompiled version of the plugin (the binaries) or the code version and compiling it yourself?

El El jue, 28 jul 2022 a las 10:45, sumo-ldewet @.***> escribió:

Hi,

I tried to use the Houdini Engine plugin for UE 5.1 but I'm getting a lot of compiler errors. Is there anyone that can help me with this?

— Reply to this email directly, view it on GitHub https://github.com/sideeffects/HoudiniEngineForUnreal/issues/193, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADRZLTSW5P6EYRPYXRVXIN3VWJCD5ANCNFSM544NQMLA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

--

Carlos Acevedo Game Programmer and Developer

PeterBowles commented 1 year ago

@CakeQ - thank you for sharing your fixed 5.1 branch! It was working for me but then I updated to 5.1 preview 2 (like an idiot) and it broke. Are you planning an update by chance or should I look at other options? Thanks again

dpernuit commented 1 year ago

FYI, the current code in the 5.0 branches is forward-compatible with the 5.1 preview builds.

PeterBowles commented 1 year ago

Oh awesome, thanks I'll give it a try.

PeterBowles commented 1 year ago

I thought that houdini engine was working with latest build but it wasn't actually fully working. I see in the notes that I need to compile the plugin from the source code. Does this mean to compile the whole project from source or just the plugin? Can someone please explain how to achieve this? I'm a beginner programmer, I have visual basic installed but I haven't compiled from source before. And now I'm locked out of my film. Please help!

FlurishArt commented 1 year ago

Same, this plugin worked for me with 5.1 until I updated to preview 2 and now it just gives a compile error. Not sure how to compile from source (read through the a couple walkthroughs on it but sounds confusing af) can someone post a version for 5.1 preview 2? Thx

shamotina commented 1 year ago

why there is no compiled version for 5.1 with today release? please add