generated from ynput/ayon-addon-template
-
Notifications
You must be signed in to change notification settings - Fork 20
Open
Labels
sponsoredThis is directly sponsored by a client or community memberThis is directly sponsored by a client or community member
Description
Please describe the feature you have in mind and explain what the current shortcomings are?
Having publishable ROPs locked inside an HDA has its use cases - but currently doesn't work. We should look into supporting this.
Here are some example use cases:
- "Rendersetup / Lookdev-Turntable"-HDA I've seen this at a couple of different studios where all the boilerplate for turntables is packaged up to avoid repetition and create a consistent look. This would typically include the (Arnold) Render Node inside the HDA
- CharacterFX HDA's like Hair, Muscle or Cloth Sims Those may contain simulation, caching and re-attachment steps. I've seen this workflow being used for simpler setups, to allow Lighting artists to quickly update the fx caches for their shots without having to go trough the fx artist.
- "export preset" type of tools. In cases where another department/software always requires some specific layout or attributes a TD would probably prefer to create an export_for_xyz-hda which does all of these.
Side note:
a small thing worth noticing when talking about nodes inside locked HDA's is to take special attention how houdini handles parm-modification propagation, since many of these examples would expose a most of the creators parms and expect that to work.
import hou
# setup
geo: hou.OpNode = hou.node("/obj").createNode("geo", run_init_scripts=False)
hda = geo.createNode("testgeometry_pighead")
print("HDA is locked", hda.isLockedHDA())
xform = hda.node("xform1") # random node in the HDA
print("xform", "is inside locked HDA", xform.isInsideLockedHDA())
print("xform", "is editable", xform.isEditableInsideLockedHDA())
# this fails because its inside a locked HDA
parm1 = xform.parm("group")
try:
parm1.set("foo")
except hou.OperationFailed:
print("failed to set group")
parm2 = xform.parm("scale")
parm2.set(1.23) # we can set this because its linked and thanks to
# the (implicit) follow_parm_reference=True the modification gets propagated
# this should fail, but somehow still works
parm2.set(3.21, follow_parm_reference=False)
Additional context:
link to discussion on Discord
(might be a private channel)
_This issue was automatically created from AYON ticket YN-0289
Metadata
Metadata
Assignees
Labels
sponsoredThis is directly sponsored by a client or community memberThis is directly sponsored by a client or community member