Can't find libHAPIL.dll in UE4

   927   11   1
User Avatar
Member
2 posts
Joined: June 2018
Offline
Every time I load unreal and attempt ti import a .hda, it gives the error “Houdini installation was not detected. Failed to locate or load libHAPIL.dll. No cooking/instantiation will take place”. When I go to the plugin settings in Unreal, it has the correct file path to the bin, and I can manually locate the file in the bin, but UE4 reports that no valid license was found. In hkey, I have a Houdini Indie license, a Houdini Engine license, and a Mantra license. I have already reinstalled the plugin to Unreal to avail. I also found a recent forum post that suggested turning on the “Start automatic server” option, and this also did not fix the issue.

Thanks for the help!

Attachments:
Capture.PNG (12.4 KB)
Capture2.PNG (9.6 KB)

User Avatar
Member
2 posts
Joined: June 2018
Offline
Planning on leaving this here for anyone who has this problem in the future. I fixed it (though I am not sure how). The things that I changed were pointing the Houdini location setting (in UE4) to a custom location (even though it was in the default location). The Session settings are exactly as they appear in the attachment above still (Available under Project Settings>Plugins>Houdini Engine), but I went into Hkey and made sure I had the licenses. For some reason, I had three copies of the Mantra license on my single computer, so I turned those back in and also turned in/re-checked out the Houdini Indie and the Houdini Engine Indie licenses that I already had redeemed. Finally, I went into the Services application (a Windows default) and restarted both of the current running Houdini services.

An important thing to note: as far as I can tell, the Houdini Engine settings in UE4 do not update until you try and create an instance of a Houdini Asset in the level. Until you do this, the Acquired License Type will always read “No License Acquired”. To test your license, always try and load an asset instead of simply reading the settings (there is no telling how much trouble this caused me, but probably a lot).
User Avatar
Member
82 posts
Joined: July 2005
Offline
Greetings!

Whatever you did HighFive in order to get your Houdini Engine working must have been voodoo because I've been getting this problem working with UE4.20.3 and Houdini 17.0.352 and I can't seem to get rid of it! I am attempting this on a windows10 machine.

Inside the Houdini location setting (in UE4) I:
  • checked the custom location box and changed it to the location of my current Houdini installation, 17.0.352
  • Changed the session type to “Named pipe or domain socket”
  • Set the Server Pipe Name to Hapi
  • Made sure the Start Automatic Server box was checked
  • Restarted UE4 after making any changes
Still Nothing



I did notice that Houdini engine was not able to start during initial UE4 start-up. I verified this by examining the Output Log:
SourceControl: Source control is disabled SourceControl: Source control is disabled LogAndroidPermission: UAndroidPermissionCallbackProxy::GetInstance LogHoudiniEngine: Starting the Houdini Engine module. LogHoudiniEngine: Loaded libHAPIL.dll from custom path C:/Program Files/Side Effects Software/Houdini 17.0.352/bin LogLinker: Warning: Asset '../../Plugins/Runtime/HoudiniEngine/Content/houdini_logo.uasset' has been saved with empty engine version. The asset will be loaded but may be incompatible. LogLinker: Warning: Asset '../../Plugins/Runtime/HoudiniEngine/Content/houdini_default_material.uasset' has been saved with empty engine version. The asset will be loaded but may be incompatible. LogLinker: Warning: Asset '../../Plugins/Runtime/HoudiniEngine/Content/houdini_bgeo_import.uasset' has been saved with empty engine version. The asset will be loaded but may be incompatible. LogHoudiniEngine: Starting up the Houdini Engine API module failed: Generic Failure LogOcInput: OculusInput pre-init called LogEngine: Initializing Engine... LogHMD: Failed to initialize OpenVR with code 101 LogStats: UGameplayTagsManager::ConstructGameplayTagTree: ImportINI prefixes - 0.000 s


I also notice that I'll occasionally get a “Hapi failed:” group of error when trying to add a digital asset:
LogAssetRegistry: Asset discovery search completed in 9.9020 seconds LogCollectionManager: Rebuilt the object cache for 0 collections in 0.000000 seconds (found 0 objects) LogCollectionManager: Fixed up redirectors for 0 collections in 0.000072 seconds (updated 0 objects) LogSlate: FSceneViewport::OnFocusLost() reason 0 LogSlate: Took 0.000823 seconds to synchronously load lazily loaded font '../../../Engine/Content/Slate/Fonts/Roboto-Light.ttf' (167K) LogFactory: FactoryCreateFile: HoudiniAsset with HoudiniAssetFactory (0 0 ../../../../../../cygwin64/home/croda/houdini17.0/otls/squab_17_0.hdanc) LogHoudiniEngineEditor: PostSpawnActor HoudiniAssetActor_0, supplied Asset = 0x000001C1C84DD590 LogActorComponent: UnregisterComponent: (/Game/ThirdPersonBP/Maps/ThirdPersonExampleMap.ThirdPersonExampleMap:PersistentLevel.squab_17_0.StaticMeshComponent_1) Not registered. Aborting. LogHoudiniEngineEditor: PostSpawnActor HoudiniAssetActor_1, supplied Asset = 0x000001C1C84DD590 LogSlate: FSceneViewport::OnFocusLost() reason 2 LogSlate: Window 'Houdini Engine Plugin Warning' being destroyed LogSlate: FSceneViewport::OnFocusLost() reason 0 LogSlate: Took 0.000785 seconds to synchronously load lazily loaded font '../../../Engine/Content/Slate/Fonts/DroidSansMono.ttf' (77K) LogSlate: Only BGRA pngs, bmps or icos are supported in by External Image Picker LogHoudiniEngine: Error: Hapi failed:


Any Help I can get with this would be great! I am giving a class on Houdini Engine/UE4 integration next week and want to get this ironed out before presenting the material!

Thanks for the help!
Edited by rudeypunk - Oct. 19, 2018 16:05:26
User Avatar
Staff
260 posts
Joined: Sept. 2016
Online
Hi,

rudeypunk, from your logs, the issue is definitely not caused by HE not being able to find libHAPIL.

Your project settings are fine, as LibHAPIL.dll was located correctly, the Houdini Engine session started properly, but for some reason unknown to me, HAPI (the Houdini Engine API) initialization failed…

With HAPI failing to initialize, the plugin wont be able to do anything, since it cannot talk to Houdini… hence the errors you're getting trying add an HDA to the scene.

Where you using the regular Houdini installer or the Houdini Engine one?
Could you try uninstalling Houdini, deleting the Houdini Engine folder in Unreal (Plugins/Runtime/HoudiniEngine) and then reinstalling Houdini with one of the recent 17.0 daily build?
User Avatar
Member
82 posts
Joined: July 2005
Offline
Thanks for your prompt reply dpernuit!

I retried with the most recent daily build I could try, 17.4.51.

Startup still generated the same failure -
LogAndroidPermission: UAndroidPermissionCallbackProxy::GetInstance LogHoudiniEngine: Starting the Houdini Engine module. LogHoudiniEngine: Loaded libHAPIL.dll from custom path C:/Program Files/Side Effects Software/Houdini 17.4.51/bin LogLinker: Warning: Asset '../../Plugins/Runtime/HoudiniEngine/Content/houdini_logo.uasset' has been saved with empty engine version. The asset will be loaded but may be incompatible. LogLinker: Warning: Asset '../../Plugins/Runtime/HoudiniEngine/Content/houdini_default_material.uasset' has been saved with empty engine version. The asset will be loaded but may be incompatible. LogLinker: Warning: Asset '../../Plugins/Runtime/HoudiniEngine/Content/houdini_bgeo_import.uasset' has been saved with empty engine version. The asset will be loaded but may be incompatible. LogHoudiniEngine: Starting up the Houdini Engine API module failed: Generic Failure LogOcInput: OculusInput pre-init called LogEngine: Initializing Engine... LogHMD: Failed to initialize OpenVR with code 101 LogStats: UGameplayTagsManager::ConstructGameplayTagTree: ImportINI prefixes - 0.000 s LogStats: UGameplayTagsManager::ConstructGameplayTagTree: Construct from data asset - 0.000 s LogStats: UGameplayTagsManager::ConstructGameplayTagTree: ImportINI - 0.000 s LogStats: UGameplayTagsManager::ConstructGameplayTagTree: GameplayTagTreeChangedEvent.Broadcast - 0.000 s LogInit: Initializing FReadOnlyCVARCache LogAIModule: Creating AISystem for world Untitled LogInit: XAudio2 using 'Speakers / Headphones (Realtek High Definition Audio)' : 2 channels at 48 kHz using 32 bits per sample (channel mask 0x3) LogInit: FAudioDevice initialized. LogNetVersion: Set ProjectVersion to 1.0.0.0. Version Checksum will be recalculated on next use. LogDerivedDataCache: Saved boot cache 0.33s 71MB C:/Users/croda/AppData/Local/UnrealEngine/4.20/DerivedDataCache/Boot.ddc. LogInit: Texture streaming: Enabled LogEngineSessionManager: EngineSessionManager initialized LogInit: Transaction tracking system initialized BlueprintLog: New page: Editor Load LocalizationService: Localization service is disabled LogCook: Display: Max memory allowance for cook 16384mb min free memory 0mb LogCook: Display: Mobile HDR setting 1 LogGameplayTags: Display: UGameplayTagsManager::DoneAddingNativeTags. DelegateIsBound: 0 LogStats: UGameplayTagsManager::ConstructGameplayTagTree: ImportINI prefixes - 0.000 s LogStats: UGameplayTagsManager::ConstructGameplayTagTree: Construct from data asset - 0.000 s LogStats: UGameplayTagsManager::ConstructGameplayTagTree: ImportINI - 0.000 s LogStats: UGameplayTagsManager::ConstructGameplayTagTree: GameplayTagTreeChangedEvent.Broadcast - 0.000 s LogFileCache: Scanning file cache for directory 'D:/TechArt18/Students/CH15/croda/killMe/Content/' took 0.01s LogHoudiniEngineEditor: Starting the Houdini Engine Editor module. LogHoudiniEngineEditor: Houdini Engine Editor module startup complete.


Once again when I tried to load in an Asset I received a similar log output:
LogCollectionManager: Fixed up redirectors for 0 collections in 0.000102 seconds (updated 0 objects) LogSlate: FSceneViewport::OnFocusLost() reason 0 LogSlate: Took 0.000482 seconds to synchronously load lazily loaded font '../../../Engine/Content/Slate/Fonts/DroidSansMono.ttf' (77K) LogSlate: Took 0.000986 seconds to synchronously load lazily loaded font '../../../Engine/Content/Slate/Fonts/Roboto-Light.ttf' (167K) LogFactory: FactoryCreateFile: HoudiniAsset with HoudiniAssetFactory (0 0 ../../../../../../cygwin64/home/croda/houdini17.4/otls/piggy_17_5_51.hdanc) LogSlate: Took 0.000812 seconds to synchronously load lazily loaded font '../../../Engine/Content/Slate/Fonts/Roboto-Light.ttf' (167K) LogHoudiniEngineEditor: PostSpawnActor HoudiniAssetActor_0, supplied Asset = 0x00000191FFBD3B30 LogActorComponent: UnregisterComponent: (/Game/ThirdPersonBP/Maps/ThirdPersonExampleMap.ThirdPersonExampleMap:PersistentLevel.piggy_17_5_51.StaticMeshComponent_1) Not registered. Aborting. LogHoudiniEngineEditor: PostSpawnActor HoudiniAssetActor_1, supplied Asset = 0x00000191FFBD3B30 LogSlate: FSceneViewport::OnFocusLost() reason 2 LogSlate: Window 'Houdini Engine Plugin Warning' being destroyed LogSlate: FSceneViewport::OnFocusLost() reason 0


I do have to say I have probably installed at least 4 different versions of Houdini to try and get this working:
  • 17.4.51
  • 17.4.48
  • 17.0.352
  • 16.5.473

Thanks for your time!
Edited by rudeypunk - Oct. 22, 2018 14:04:57
User Avatar
Member
82 posts
Joined: July 2005
Offline
I just tried reinstalling a non beta version of Houdini, 17.0.380 to see what might happen and I am still cannot get Houdini engine to turn on correctly in UE4:





Here is the log results after initialization:
[tt]LogAndroidPermission: UAndroidPermissionCallbackProxy::GetInstance
LogHoudiniEngine: Starting the Houdini Engine module.
LogHoudiniEngine: Loaded libHAPIL.dll from custom path C:/Program Files/Side Effects Software/Houdini 17.0.380/bin
LogLinker: Warning: Asset '../../Plugins/Runtime/HoudiniEngine/Content/houdini_logo.uasset' has been saved with empty engine version. The asset will be loaded but may be incompatible.
LogLinker: Warning: Asset '../../Plugins/Runtime/HoudiniEngine/Content/houdini_default_material.uasset' has been saved with empty engine version. The asset will be loaded but may be incompatible.
LogLinker: Warning: Asset '../../Plugins/Runtime/HoudiniEngine/Content/houdini_bgeo_import.uasset' has been saved with empty engine version. The asset will be loaded but may be incompatible.
LogHoudiniEngine: Starting up the Houdini Engine API module failed: Generic Failure
LogOcInput: OculusInput pre-init called
LogEngine: Initializing Engine...
LogHMD: Failed to initialize OpenVR with code 101
LogStats: UGameplayTagsManager::ConstructGameplayTagTree: ImportINI prefixes - 0.000 s
LogStats: UGameplayTagsManager::ConstructGameplayTagTree: Construct from data asset - 0.000 s
LogStats: UGameplayTagsManager::ConstructGameplayTagTree: ImportINI - 0.000 s
LogStats: UGameplayTagsManager::ConstructGameplayTagTree: GameplayTagTreeChangedEvent.Broadcast - 0.000 s
LogInit: Initializing FReadOnlyCVARCache
LogAIModule: Creating AISystem for world Untitled
LogInit: XAudio2 using 'Speakers / Headphones (Realtek High Definition Audio)' : 2 channels at 48 kHz using 32 bits per sample (channel mask 0x3)
LogInit: FAudioDevice initialized.
LogNetVersion: Set ProjectVersion to 1.0.0.0. Version Checksum will be recalculated on next use.
LogDerivedDataCache: Saved boot cache 0.29s 71MB C:/Users/croda/AppData/Local/UnrealEngine/4.20/DerivedDataCache/Boot.ddc.
LogInit: Texture streaming: Enabled
LogEngineSessionManager: EngineSessionManager initialized
LogInit: Transaction tracking system initialized
BlueprintLog: New page: Editor Load
LocalizationService: Localization service is disabled
LogCook: Display: Max memory allowance for cook 16384mb min free memory 0mb
LogCook: Display: Mobile HDR setting 1
LogGameplayTags: Display: UGameplayTagsManager::DoneAddingNativeTags. DelegateIsBound: 0
LogStats: UGameplayTagsManager::ConstructGameplayTagTree: ImportINI prefixes - 0.000 s
LogStats: UGameplayTagsManager::ConstructGameplayTagTree: Construct from data asset - 0.000 s
LogStats: UGameplayTagsManager::ConstructGameplayTagTree: ImportINI - 0.000 s
LogStats: UGameplayTagsManager::ConstructGameplayTagTree: GameplayTagTreeChangedEvent.Broadcast - 0.000 s
LogFileCache: Scanning file cache for directory 'D:/TechArt18/Students/CH15/croda/hEngineTest/Content/' took 0.01s
LogHoudiniEngineEditor: Starting the Houdini Engine Editor module.
LogHoudiniEngineEditor: Houdini Engine Editor module startup complete.
SourceControl: Source control is disabled[/tt]

Thanks for your assistance!
Edited by rudeypunk - Oct. 24, 2018 11:58:14
User Avatar
Staff
260 posts
Joined: Sept. 2016
Online
Hi,

I'm still not sure what exactly is causing that error, something seems to be preventing HAPI from initializing properly.
Are you using the “main” houdini installer or the houdini engine one?

Here's a few things you can try:

- Have you tried using a TCP Socket session instead of a named pipe?
(change the session type in the project settings, then restart unreal)

- If that still fails, you can try starting the Houdini Engine session directly from Houdini:
Launch Houdini, then in Windows > Houdini Engine Debugger
Start a session on that window.
Launch Unreal, and in the project setting, make sure “Start automatic server” is unchecked, and that the session settings match the one in the Houdini Engine Debugger window.
Restart Unreal.
The unreal plugin should now be connected to the opened Houdini via Houdini Engine.

If all of the above fails, I've just updated the UE4 plugin to try and get a little more details on that error.
So we'll have to try again using tomorrow's daily build.
User Avatar
Member
82 posts
Joined: July 2005
Offline
Thanks dpernuit!

I just received your message and I'll try that suggestion tomorrow when I get in to school!

Cheers!
User Avatar
Member
82 posts
Joined: July 2005
Offline
Great News Dpernuit!

I changed the project TCP Socket session instead of a named pipe. That had no effect.

I tried pre-launching Houdini Engine Debugger then opened my UE4 session. Still no positive response from the UE4 Output Log. However, for giggles, I tried dropping a HDA to see If I could get any more error messages … and it worked!

I'm not sure why it is working now but it definitely worked! I did notice that the HDAs appeared in the Houdini session and disappeared when I closed the UE4 session. IS this a characteristic of the Houdini engine debugger? When I re-opened my UE4 session, my object geometries were still there but I lost all my textures. Interesting that the HDAs did not re-appear in the Houdini Session. I deleted the HDAs from the UE4 scene and re-dropped them in. The full HDAs came back with textures and the nodes re-appeared in the Houdini session.

Is this the expected behavior? Still more puzzles to figure out especially with the texture and material persistence!

This is definitely a huge step forward from where I was yesterday!
User Avatar
Member
1 posts
Joined: Sept. 2018
Offline
Using the custom location was the solution for me. It's the only change I made, restarted and I'm now able to import a .hda.
User Avatar
Staff
260 posts
Joined: Sept. 2016
Online
Hi,

I'm glad you got the plugin working, but im still puzzled as to what's causing your original issue.
Did you restart unreal after changing the session type to TCP? What type of session are you using in the HE debugger?

As for the other things you mentionned, that's the way Houdini Engine work:
- When creating an asset in UE, the corresponding HDA is created in HE.
- When deleting an HDA in UE (or closing UE), the corresponding nodes (HDAs/inputs) are destroyed.
- When reloading the level, the unreal geometry is loaded for the Houdini Asset Component, but the corresponding nodes (HDA/inputs) are only recreated when recooking the HDA in unreal (after a parameter change for example).
- For the textures generated by the HDA, they are stored in material/texture uassets in the Houdini Engine/Temp directory.
Those temp files arent saved automatically, so if you didnt save them when closing UE, they need to be regenerated by the plugin.
User Avatar
Member
82 posts
Joined: July 2005
Offline
Hi Dpernuit -

I was using TCP Socket Port 9090.

I cannot remember if I restarted UE4 after changing the Session Type. I probably did since that is the general method for getting anything to kick in with UE4.

While I can get Houdini engine to engage in UE4 after turning on the Houdini Engine Debugger before, I still can not bring Digital Assets into UE4 by themselves. I am at a loss for this disconnect as well. It would be great if We could find a solution for this but at least I have a temporary work around.

Thank you for the explanation for what's going on under the hood with Houdini Engine in UE4.

Cheers
  • Quick Links