Failed to locate or load libHAPIL.dll

   402   7   2
User Avatar
Member
6 posts
Joined: July 2017
Offline
So, everything was running fine a few days ago. Now any time I try to drag an HDA from the content browser into the level, I get an error: “Houdini installation was not detected. Failed to locate or load libHAPIL.dll. No cooking/instantiation will take place.” All that appears is the Side Effects logo, which can be moved around the scene. This is true for both new HDAs I add to the content browser as well as when dragging a new instance of the HDA that was working before. There's a copy of the HDA in the level, but the controls no longer affect it.

I didn't update Houdini or UE4 during those few days, so not sure what changed.

I'm on Unreal 4.19.2 and Houdini 16.5.473 and copied the plugin for UE4 4.19 to UE_4.19>Engine>Plugins. I also tried putting it in the Runtime folder, as other google searches suggested that might be a problem.

Houdini Engine is Enabled in Plugins window in Unreal. In project settings, under Plugins - Houdini Engine:
Session type - ‘In process’ is missing from the list. Defaults to ‘Named pipe or domain socket’.
Server Host - ‘localhost’ but is grayed out
Server Port - 9090, also grayed out
Server Pipe Name - hapi
Houdini location - I tried pointing the custom location to the Houdini install folder (even though its the default location) but that didn't help any
Plugin Information - Built against 16.5.473.0, engine 3.1.13. Running against 16.5.473.0, engine 3.1.13 (all grayed out)
Location of libHAPIL.dll - “C:\Program Files\Side Effects Software\Houdini 16.5.473/bin” (correct, except the single backslash compared to the other forward slashes. this field is grayed out so I can't correct this.)
Acquired License Type - ‘Unknown’ (Houdini licensing is running. I have an instance of Indie open currently, and have checked Services to make sure hserver was running. Grayed out.)
Houdini Engine Initialization - Cooking thread stack size is set to -1, all other fields are blank.

I'm on Windows 10, in case that matters.

Any suggestions on what else I can try would be greatly appreciated.
User Avatar
Staff
213 posts
Joined: Sept. 2016
Offline
Hi,

The houdini logo and placed hdas not cooking are the side effects of the plug-in being unable to find the Houdini Engine dlls.
Not sure exactly what happened, especially if you have not updated houdini or UE4.

In process sessions have been removed a few months ago, as UE4.19 had library conflicts with HAPI that conflicted with Houdini Engine in process sessions. Pipes and sockets should now be used. (internally, the plugin will default to pipe if you had in session before)

Here's a few things you can try to fix that:

- If you've copied the plugin manually, make sure you only have it once in Unreal.
The plugin should be in Plugins/Runtime/HoudiniEngine.

- In projects settings / Houdini Engine
set the session to either pipe or socket, and make sure the start automatic server checkbox is ticked. Restart unreal, or in the Cmd line, type Houdini.RestartSession.

- If you still get the same issue, then tick “Use Custom Houdini Location” and set the path under it to your houdini bin directory. In your case, it should be:
C:\Program Files\Side Effects Software\Houdini 16.5.473\bin
Then either restart unreal, or type Houdini.RestartSession in Unreal's Cmd line.

Please let me know if this solved your issue.
User Avatar
Member
6 posts
Joined: July 2017
Offline
Still not sure what happened, but it seems to be working now (mostly). I had unchecked the ‘start automatic server’ while trying to figure out what was wrong and setting it back to active fixed things. I must have had something else changed originally. The old HDA is now adjustable and neither HDAs cause an error on import now, so I won't complain.

Now the new building generator isn't actually kicking out any geometry (though this is a separate issue). Are there any limitations to the geometry that would cause UE4 not to cook? (Unreal says the cook succeeded). Its basically just polygon boxes boolean'd together, UV'd (and lightmap UV'd), materials assigned through material sop (referenced to fbx shaders in a local SHOP network), and a divide node to make sure everything is tris and quads. Still just getting the SideFX logo when bringing it into Unreal.

Attachments:
PM_BuildingGenerator_v4.hdalc (27.4 KB)

User Avatar
Member
6 posts
Joined: July 2017
Offline
I'm having absolutely no luck getting these to work. I've installed a fresh copy of Unreal and Houdini on my wife's computer, no luck. I just replaced the boot drive on my computer (for unrelated reasons) and was able to do a completely fresh install of Unreal and Houdini, no luck here either.

Right now I'm just trying to get even a simple box HDA to load correctly into Unreal, but everything just comes up as the Houdini logo with no exposed parameters available (except for Transform and Subnet, which should be hidden). No errors are popping up, not even the ‘failed to locate libHAPIL’. Checked the Houdini Cook Log, says the cook succeeded.

The Houdini plugin is active in Unreal, with no errors. All settings are at default, double-checked that ‘Start Automatic Server’ was ticked, the Plugin Information matches between the ‘Built against’ and ‘Running against’. I tried using the custom Houdini location and leaving it at default.

I'm just at a loss at this point.
User Avatar
Staff
213 posts
Joined: Sept. 2016
Offline
Hi,

Could you send us the content of your output log when trying to instantiate an hda?

Can you also try using one of the default Houdini Tools shipped with the plugin, like the rock generator for example.
(they are in Place Mode > Houdini Engine)

The fact that no error pops up and that the “default” parameters (transform + subnet) show up seems to indicate that HEngine is running correctly. Those parameters wouldn't be here if HE wasnt initialized properly.


I had a look at your building hda, and there's a few thing that explains why its not creating geo:
- The object merge in the output geo is using an hardcoded absolute reference, you should always use relative ref in hdas…
- Because of that absolute ref, the path in it is incorrect, and since Building doesnt have a display flag, it's never cooked.
- Inside the Building geo, a baselength parameter is referenced, but that parameter doesnt exist, so Building cant cook..

To debug this type of issue, you can always open the internal houdini scene in unreal:
(ctrl + alt + o, or file > open scene in houdini )
This should be really helpful for troubleshooting these kind of issues.
User Avatar
Member
6 posts
Joined: July 2017
Offline
I really appreciate your help with this.

You saying that ‘baselength’ didn't exist had me confounded, as its the first parameter. But importing the saved HDA into a new scene created the same problem as in Unreal–all the nodes were there, but no parameters. Back in my original work file I can right click on the HDA, go to ‘Parameters and Channels > Parameters…’ and see all the parameters I've been working with. BUT if I right click on the HDA and go to ‘Type Properties’ it shows a completely different list, has the Transform and Subnet folders and none of my created parameters. I had been under the impression these two areas were the same, but I guess not?

In ‘Edit Parameter Interface’ it says its Editing Node: /obj/BuildingGenerator, which is the HDA.
In ‘Edit Operator Type Properties’ it says the Operator Type: PM_BuildingGenerator_v4, which is the asset definition saved to disk.

My guess is that the former is only saving the parameter changes of the HDA node in the HIP file, rather than those parameters being saved directly to the HDA. I'm going to see if I can transfer the parameters from one to the other.

Attachments:
HDAParams.JPG (276.4 KB)

User Avatar
Member
6 posts
Joined: July 2017
Offline
SUCCESS!! That was it.

So now that the parameters are on the HDA itself and not on the HDA node inside the HIP file everything seems to be working. I also notice that parameters made in the ‘Type Properties’ window are locked when viewed inside the ‘Edit Parameter Interface’ window. This furthers my conclusion that there are two different places. Everything is cooking in Unreal now too!

Now I can get back to working on the asset itself (going to start by breaking the window generation into its own HDA).

Thanks again for your help!
User Avatar
Staff
213 posts
Joined: Sept. 2016
Offline
Yes, that's it!

For HDAs you should set the parameters using the type properties.

Also remember to use relative paths when referencing something in HDAs, as your hda's node might have different names when created via HEngine (or you can have the same hda multiple times).
  • Quick Links