Hiding and Disabling Parameters in Maya

   2004   11   3
User Avatar
Member
11 posts
Joined: March 2015
Offline
In Houdini you can keep your Digital Asset UI clean by hiding and/or disabling parameters based off of the state of other parameters. Is this possible in Houdini Engine for Maya? Currently it seems to ignore the hide and disable states of the parameters as set up in the Digital Asset. Hiding not working I can understand as that is not something Maya normally supports, but it seems like disabling should work as I see that in the attributes of other types of Maya objects. Is this possible with Houdini Engine?
User Avatar
Member
817 posts
Joined: Sept. 2013
Offline
Sorry, “hide” and “disable” are not implemented in the Maya plugin at the moment. The “hide” property does get used. However, it doesn't take effect until the next time the node is “sync'd”. So it's not exactly usable.
Edited by awong - July 15, 2016 09:41:02
Andrew / アンドリュー
User Avatar
Member
1719 posts
Joined: Oct. 2010
Offline
I have found that once you start hitting this point, it may be worth considering writing a custom UI in QT designer. It may be nice if there was a way to export the Digital Asset parameter UI definitions to QT .ui files to then hook up in Maya (or perhaps implement the houdini UI in maya via a dynamically generated QT interface instead of the attributeEditorTemplate?)
-G
User Avatar
Member
11 posts
Joined: March 2015
Offline
I know this has been dormant for a while, but I was wondering if there was any update on this? Would it be possible to “lock” an attribute in Maya if it was disabled in Houdini? This would at least let the user know that changing this parameter is not valid given the other currently set parameters.
User Avatar
Staff
26 posts
Joined: Oct. 2017
Offline
This should be doable. Is the expected behaviour to create all the parameters, including hidden and disabled parameters, but lock the disabled ones and hide the hidden ones in the attribute editor? We can set these attribute properties when we sync or reload the asset. The user could still lock/unlock attributes independently of the disable settings or lock settings in their own callback scripts though. And if there is a setting that depends on another input then syncWhenInputConnects toggle would need to be set. So is it sufficient if we set these on sync?

There are currently a couple of RFE regarding behavior of hidden/disabled attrs, want to make sure we choose the best behavior.
Edited by juliap - Feb. 5, 2018 13:19:57
User Avatar
Member
11 posts
Joined: March 2015
Offline
Yes the intention is to lock disabled parameters and hide hidden ones. Currently my more sophisticated assets have way too many parameters exposed at once in Maya while they are nice and clean in Houdini.

For my case it would probably be sufficient to set the disabled state on sync since I have auto-sync Outputs on for my assets.
User Avatar
Staff
26 posts
Joined: Oct. 2017
Offline
OK. Although I'm leaving off disabling on individual ramp elements - the indexing is done differently between maya and houdini ramps and the mechanism to stop the last element from being deleted is different, so trying to lock disabled elements results in popping of locked items
User Avatar
Member
11 posts
Joined: March 2015
Offline
Hi Julia,
I got a chance to try out your changes. They work well, but the syncing is an issue. I now have to constantly press “Sync Asset” to make sure I have the correct up to date user interface info. Auto-Sync outputs is not causing the parameters to refresh when the visibility state is changing. Maybe it's related to this RFE that Andrew Wong filed RFE (84792).
User Avatar
Member
11 posts
Joined: March 2015
Offline
Actually a few of my parameters are causing auto-sync outputs to fire off and update the UI, but most are not. I don't know what sort of thing causes auto-sync outputs to actually work. It seems to be less reliable than it was in version 15.5. I often have to manually hit sync to fix bad uv/vertex color output I get from making changes now.
User Avatar
Staff
26 posts
Joined: Oct. 2017
Offline
OK, I will take a look at autosync, and when it is and isn't updating. Yes, there were concerns with the performance hit from autosyncing too much, and I know Andrew optimized the updating and cooking to limit the amount of cooking on updates during editing. - maybe it's time for some finer granularity performance options? Right now, updating hide relies on a sync, updating disable should happen when an attribute affecting the parm update.

As for disabling and hiding, how complex are your typical controls for hiding or disabling?
is it straightforward stuff like: hide or disable when {some expression on parms set from Maya}
does it depend on input geo state? or does it require a cook to modify the hide/disable state?

When you update a Maya attribute that should cause the disable or hide state to change,
do you update it directly by editing in the AE, or is it via a result of some callback, connection or expression or setting it in some other piece of UI?

What about the attribute type/widget type of the attribute that affects the state?

Also, how much do you care about being able to access parameters in the channel box? Right now we set keyable and displayable off so they don't show up, would it be convenient if they did? Right now, even if you make it keyable yourself, you'd lose that on the next sync
User Avatar
Member
11 posts
Joined: March 2015
Offline
As for disabling and hiding, how complex are your typical controls for hiding or disabling?
is it straightforward stuff like: hide or disable when {some expression on parms set from Maya}
does it depend on input geo state? or does it require a cook to modify the hide/disable state?

In my asset the UI elements are hidden/shown or disabled/enabled just based off of the state of other Houdini Asset parameters set within Maya. The expressions are very simple.

When you update a Maya attribute that should cause the disable or hide state to change,
do you update it directly by editing in the AE, or is it via a result of some callback, connection or expression or setting it in some other piece of UI?

I'm editing the parameters directly in the Attribute Editor.

What about the attribute type/widget type of the attribute that affects the state?

Pretty much all of the attribute types that affect the viability of other parameters in my asset are either Checkbox or Menu types.

Also, how much do you care about being able to access parameters in the channel box?
Not at all. We do all our editing in the Attribute Editor since Channel Box doesn't have near enough control to be useful.
User Avatar
Staff
26 posts
Joined: Oct. 2017
Offline
OK, I can see some missed updates on my own test case with check boxes.
  • Quick Links