Open CalleHalldin opened 7 years ago
This is fantastic Calle.
Freeze controls, Check of there is any controls that doesn't have default values, ignore custom values.
Technically, freeze isn't enough and sometimes inapplicable. For example, if the animator has previously animated on a controller with values already set, that animation would become offsetted by the difference between what it was and what it became once frozen when updating his rig.
I've dealt with this before and found the more efficient and scalable approach - that also takes into account non-transform values such as custom attributes - was to "save" values during rigging and "load" them when necessary. Once saved, as a hidden attribute for example, we could then validate against these values, and also enable the animator to "reset" a rig by loading in the default values set by the rigger.
It's relative straightforward to set-up, I can add a "Save Controller Values" and "Load Controller Values" to your Mindbender menu.
Animation Controls color, Check if controls within the controls_SET has 'no' color.
Great.
Unwanted nodes in the viewport, only geo and nurbs curves should be visible.
Agreed.
Lambert1/grey material on models, Check if meshes inside Mesh group has default material.
Perfect.
Keys on animation controls, Check within controls_SET to see if there is any keys done by the rigger.
This I think relates to (1). In my experience, controls may sometimes need a key on them for whatever rigging purposes. We could make it such that for these channels, the rigger must set the channel to un-editable? That way it'll appear grey and we can exclude this from validation.
Lambert1/grey material on models, Check if meshes inside Mesh group has default material.
Interesting @CalleHalldin; do you ever want to preview a character (that is rigged) with a preview shader/colors? If so, when do you create such a "preview shader" and when is it applied? Does the animator apply it?
This I think relates to (1). In my experience, controls may sometimes need a key on them for whatever rigging purposes. We could make it such that for these channels, the rigger must set the channel to un-editable? That way it'll appear grey and we can exclude this from validation.
Yes, I believe this would work. No keys on any keyable and unlocked channels for controls.
Technically, freeze isn't enough and sometimes inapplicable. For example, if the animator has previously animated on a controller with values already set, that animation would become offsetted by the difference between what it was and what it became once frozen.
yes this is exactly the problem, once i notice the issue an animators has in many cases already started animating and it can't be corrected. that's why the pipeline should tell the one doing the rigg that its not freezed before he publish to the animator the first time/all times. Could you elaborate some more why this isn't a good thing to make sure the rigger has done?
It's relative straightforward to set-up, I can add a "Save Controller Values" and "Load Controller Values" to your Mindbender menu.
Sounds like a great feature regardless :) We do have "Set default" in the animation menu, not sure what it does though :)
This I think relates to (1). In my experience, controls may sometimes need a key on them for whatever rigging purposes. We could make it such that for these channels, the rigger must set the channel to un-editable? That way it'll appear grey and we can exclude this from validation.
Sure we could do that, but like i said, all of these validations are in my mind optional and just there to remind the rigger. If a control with an a keyed channel is needed and is the only control that gets an error the rigger can simply un-tick the validator and continue to publish.
Lambert1/grey material on models, Check if meshes inside Mesh group has default material.
Interesting; do you ever want to preview a character (that is rigged) with a preview shader/colors? If so, when do you create such a "preview shader" and when is it applied? Does the animator apply it?
I can see now that i wrote that poorly, what i meant was that i do not want lambert1 materials, not the opposite :) So yeah i want basic representation of color unless a AnimLookdev is provided with a lower res texture.
Updated so it made since with the lamber1 validator and also added a new validator for anim Control names
Could you elaborate some more why this isn't a good thing to make sure the rigger has done?
The rigger should ensure a particular set of default values. I'm agreeing with you.
What I wanted to point out is that the Maya Freeze Transforms isn't the best or even a good option. Freezing transforms means putting those values somewhere else, somewhere hidden (see Attribute Editor > Transform Attributes > Local Space), that make working with its actual transform one level more difficult.
What I would recommend is that you store offsets in a parent group, and let the child be what the animator interacts with. That way offsets are explicit and visible to the rigger and developer.
On top of having transforms frozen, there are likely other attributes that also need a default value. This is another case where Freeze Transforms isn't an option.
I'm thinking ahead. I think what we'll do is implement it as you say so we can stare the new problem straight in the eye before we fix it.
Sure I understand, apply the validator however you like :)
Goal
Minimize mistakes and to create a more universal standard.
Motivation Rigs without colors on the the controls, controls without freezed transformation and with constrained deformers/joints not hidden, default lambert1 on models gets published to the animators to often,
Implementation These are not forced and we should be able to un-tick if needed when we publish.