Asset questions

   2473   7   2
User Avatar
Member
375 posts
Joined: May 2014
Offline
Hi all
What I'm trying to do is quite simple: I have a “master” scene where I build an object. This object will then be used in many different scenes.
So in my master scene , I turned my object into an asset . Now I have some questions:
- Is it mandatory that all the object's material are inside a material network node?
- In the “edit operator type properties” dialog, does the “save to library” path (cProject_Folder/hda/asset.hda) ensures the asset is external, and not edited inside the scene?
- In scene B, how can I make changes on the asset and have these changes saved into the hda file (in cProject_Folder/hda/asset.hda) ?

Thanks
Gz
Houdini gamboler
User Avatar
Member
8554 posts
Joined: July 2007
Offline
1. not mandatory, however any materials that are not nested anywhere under your asset will not be saved with the asset
- if your objects contain paths to the materials at which it will find the material in the scene it's instanced in then it will use that material
- you can also just promote material paths and then drag any materials there you want onto each instance
- but yes, if you wish to embed materials you have to have Matnet or Shopnet with materials somewhere inside your asset

2. pretty much, if it was internal, saved in the hip file, it'd say Embedded instead of the path

3. RMB/Allow Editing Of Contents… will unlock asset for editing
- then after editing RMB/Save Node Type will update the asset type in the external path it's sourced from and lock the asset (probably also Assets/Save Asset)
- or any time you hit Apply Or Accept in the Edit Operator Type Properties window

4. if you want to just revert changes you did on unlocked asset since last 3. without updating the definition again just do RMB/Match With Current Definition (also probably Assets/Lock Asset),
Edited by tamte - Aug. 13, 2018 22:00:01
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
375 posts
Joined: May 2014
Offline
Thanks, thanks again Tamte, thanks many times!!

Houdini gamboler
User Avatar
Member
375 posts
Joined: May 2014
Offline
Hello
I'm following up on this same thread as I have more asset-related questions.

1) I did a simple test : in a “master” scene, I created a cube and turned it into an asset. I set its version to v1.
In scene B, I installed this asset, enabled editing of content, added some edges on the cube, and increased the version number to v1.01.
Then I open again the Master scene and the new edge where missing. The version number was 1.01 though.
So what happens? Are the assets' definition staying in the scene , although the “save to library” path is pointing to an external hda?

2) The second question is kind of the opposite of the first one. Let me explain. Let's say I fix the problem of question 1.
So on this asset, if I create an animation B in scene B, save asset, and a different animation C in scene C, save asset. Then, if I open scene B, I will find the animation C on the asset, right? Is there a way to prevent that?
I searched the doc but couldn't find anything related to this question.

3) I noticed that when I create an asset, it is saved in an “asset library”. Does that mean I can put several assets in one big Library? How can I do that ? Should I pick the same hda file each time I create a new asset?

Thanks
Gz
Houdini gamboler
User Avatar
Member
8554 posts
Joined: July 2007
Offline
1. not in the scene, you now probably have v 1 and 1.01 in your external file(s)
versioning is important, but would defeat the purpose if the higher version overwrote the previous one
the whole purpose of versioning is that the old scene opens with all assets using versions they were created with to ensure backward compatibility
you can change the versions by exposing menu of asset definitions in the parameter pane (enable in Asset Manager/Configuration/Asset Bar: Display Menu Of All Definitions)
if you wanted the changes to propagate to all scenes it's used you could just save without versioning up, which would overwrite the definition the other scene is using

2. any parameter changes on top of the asset, like animation/values/expressions are not saved to the definition, only the defaults for each parameter
so as long as the animation happens on top of the asset parameters, it will not be saved and will not propagate to other scenes
however animation on nodes inside of the asset will be part of the definition

3. the “library” is just a file where you are saving your asset and while you can have multiple assets in one file, it's really up to you how you decide to work
having file per asset allows you to easily reuse and copy just specific assets among projects or share with others
or you can decide to have file per major version of the asset and all it's sub-versions, etc
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
375 posts
Joined: May 2014
Offline
Hello Tamte
First thanks again for your help.

1) I am still trying to update the same Asset HDA file from 2 different scenes. I tried:
- Create a new asset in master scene, set it as version “1”, install this asset in scene B, allows editing of content, add some edges, save node type, save scene, open Master scene again : no new edge visible
- Do the same thing while leaving the “version” field blank : fail
- In the Dialog “install Digital Asset Library”, tried to install library to “Scanned Asset Library Directories” instead of “Current hip file only” : fail
- In the assert menu , tried “refresh asset librairies” : fail
- In the asset manager dialog, located the asset, tried to right click then “refresh” and “use this definition” : fail
So there must be something big I am missing here …

2) Thanks I understand. What would be the best way to proceed for the 2 following cases
a) Let's say I have materials inside an asset's Material Network Node. I need to animate a parameter on this material. Should I create kind of a rig that would be external to the asset and would constrain the material's parameter?
b) If my asset is a rigged character, I should animate the rig which is inside the asset. But in that case the animation would be part of the asset and would be taken into another scene right?
What would be a solution for this problem? A secondary rig, existing only in the second scene, constraining the asset's rig?

3) Thanks for the info. I will try to use a single HDA for multiple assets, just to test this workflow.
Houdini gamboler
User Avatar
Member
8554 posts
Joined: July 2007
Offline
1. not sure what your workflow is
changing version parameter actually doesn't change the version of the asset you'd have to change it in the asset namespace so that was not your issue in the first place
just enable the menu of all definitions as mentioned and then in each scene you will see where the asset is coming from, if it's not the same or is unlocked or embedded it will not update when other changes
also while I havent seen them there are webinars on HDA creations, maybe it will shed some light to your problems
https://vimeo.com/279588789 [vimeo.com]
https://vimeo.com/280639638 [vimeo.com]
https://vimeo.com/284044473 [vimeo.com]
also just search for asset or HDA here
https://www.sidefx.com/tutorials/ [www.sidefx.com]
https://www.sidefx.com/learn/talks/ [www.sidefx.com]

2. a) and b)
simply any parameter you need to animate whether on the rig or material you have to promote to the asset UI, that's all
you can of course promote material parameter so that you can drop any material in there directly from the scene where the asset is used
from Characters Shelf click on one of the Simple characters to see example of the rig, notice that all animatable parameters are promoted
Edited by tamte - Aug. 22, 2018 08:05:03
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
375 posts
Joined: May 2014
Offline
Hello Tamte

Thanks for your good advices. I read and watched many things including the full asset chapter in the Houdini docs. Now I understand much better how assets work. Here are some conclusions and 2 more questions:

- Versions : it works well with the “Create new digital asset from node” Dialog > Operator name. Now I use to enter this kind of syntax:
Myname::asset_node_name::version, such as : Myname:omeObject::01.00
According to the doc, the version field in the dialog “Edit Operator Type Properties” is depreciated. It can still be used for some additional versioning but to avoid confusing, I now avoid it completely and leave it blank.

- I know have a better understanding of how to use different asset versions in a production. If a new version will not disrupt existing scenes, I increment by +.1 or +.01. If it's a totally new version, that will not be compatible with existing scenes, I increment by +1.

- I put only one object in an HDA asset library file , but I put different versions of the same object in the same HDA.

- Animations on promoted attribute stay in the scene. But I have a new question:
Suppose I have a character in an asset, In scene A , I animate a walk, in scene B, I animate a jump, etc.
As the rig objects are promoted, all these animations are supposed to stay at the scene level.
But I wish to create kind of an animation library inside my asset. Then, I will give this asset to animators, who will just use the different animations I created (and perhaps mix them with their own animations).
Is it possible to have the asset carry with it different animations ?
(This was easy to do with XSI's models)

- Last question : how can I “unasset” a node and turn it back into a regular subnetwork?

Thanks!!
Houdini gamboler
  • Quick Links