Hiding and Disabling Parameters in Maya
11708 13 4- Matt Vitalone
- Member
- 18 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?
- awong
- Member
- 818 posts
- Joined: Sept. 2013
- Offline
- grayOlorin
- Member
- 1799 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
- Matt Vitalone
- Member
- 18 posts
- Joined: March 2015
- Offline
- juliap
- Member
- 146 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.
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
- Matt Vitalone
- Member
- 18 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.
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.
- juliap
- Member
- 146 posts
- Joined: Oct. 2017
- Offline
- Matt Vitalone
- Member
- 18 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).
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).
- Matt Vitalone
- Member
- 18 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.
- juliap
- Member
- 146 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
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
- Matt Vitalone
- Member
- 18 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.
- juliap
- Member
- 146 posts
- Joined: Oct. 2017
- Offline
- DASD
- Member
- 453 posts
- Joined: Feb. 2013
- Offline
- BlackMammoth
- Member
- 2 posts
- Joined: Oct. 2021
- Offline
-
- Quick Links