Avoiding Embedded HDAs

   1989   2   2
User Avatar
Member
19 posts
Joined: Dec. 2013
Offline
Hi there!

When it comes to managing HDAs, ideally we'd like to:
  • have them installed for the current Houdini session rather than for the current HIP scene.
  • make sure that opening scenes install any required HDA.


We can mostly achieve that but we are running into issues where we are seeing scenes with nodes pointing to “Embedded” definitions, and we would like to try understanding where it's coming from.

This might not be the whole story but I came up with a small repro that could start explaining some of it.

To illustrate this, let's assume that we have an HDA available on disk in a location that is not scanned by Houdini on startup (e.g.: /tmp/mr_piggy.hda). Now, let's go through these few steps:

  1. open a new Houdini session with an empty scene.
  2. install the HDA using hou.hda.installFile("/tmp/mr_piggy.hda", oplibraries_file="Scanned Asset Library Directories").
  3. create an instance of that node.
  4. save the scene.
  5. close Houdini.
  6. open a new Houdini session.
  7. reopen the saved scene.


Upon installing the HDA in step 2, it gets listed under the “Scanned Asset Library Directories” section from the Asset Manager, as expected.




Upon reopening the saved scene in step 7, the HDA gets installed and the correct definition is picked. However, this time the HDA is installed under the “Fallback Libraries” section, with an embedded definition also installed within the “Current HIP File” section. And an “Embedded” definition is now listed within the list of asset paths available to the node instance, although it didn't seem to be active in my tests.






I still don't know what are the additional steps required to have these node instances pointing to the “Embedded” definition instead of the expected one (assuming that artists don't do it manually), but I think that it could be helpful if we could figure out how to make sure that no such “Embedded” definition gets installed.

Any suggestion?


Thank you!
Edited by ChristopherC - March 7, 2022 20:47:57

Attachments:
step-2.png (43.1 KB)
step-7-a.png (50.2 KB)
step-7-b.png (33.2 KB)

User Avatar
Member
7803 posts
Joined: Sept. 2011
Offline
ChristopherC
have them installed for the current Houdini session rather than for the current HIP scene.

I'm not sure such distinction exists. The current session is the current hip file.

ChristopherC
install the HDA using hou.hda.installFile("/tmp/mr_piggy.hda", oplibraries_file="Scanned Asset Library Directories").

This is the source of problems. Change "scanned asset library" to "Current Hip File". Then installed hda's will be registered in the hip file. When opening the saved scene, the hdas installed to the scene file will not appear as embedded or as fallback libraries.
User Avatar
Member
19 posts
Joined: Dec. 2013
Offline
jsmack
This is the source of problems. Change "scanned asset library" to "Current Hip File". Then installed hda's will be registered in the hip file. When opening the saved scene, the hdas installed to the scene file will not appear as embedded or as fallback libraries.

Thanks for your reply!

The problem with installing HDAs using “Current Hip File” is that they get uninstalled as soon as we create/open a new scene. When installing HDAs manually (in contrast to having them automatically installed due to a scene's requirements), we'd like these HDAs to remain installed within the current Houdini session, not just the current HIP file, which is what “Scanned Asset Library Directories” allows.
  • Quick Links