Head¶
Last Updated: 04.17.2019
Profiles¶
Block profiles may have their settings changed at will. These are simply presets.
General notes:
- Profiles are initially loaded at creation but they should be able to be safely loaded at
define
state - Distances are stored in
cm
(maya's base unit) - Some settings are overridden by the buildProfile settings. For example some game buildProfiles will have endJoints off.
Simple¶
Neckless head setup
attachPoint
| endbaseSize
| 15.2,23.2,19.7ikSetup
| ribbonneckBuild
| FalseneckControls
| 0segmentMidIkControl
| NA
neckLong¶
attachPoint
| endbaseSize
| 15.2,23.2,19.7ikSetup
| ribbonneckBuild
| TrueneckControls
| 3segmentMidIkControl
| True
neckShort¶
attachPoint
| endikSetup
| ribbonneckBuild
| TrueneckJoints
| 1neckControls
| 1segmentMidIkControl
| True
Special Calls¶
headGeo_getGroup¶
Makes sure we have a geo group. Can select it.
headGeo_add¶
Add proxy geo to the setup by duplication so as to leave the original in tact. Wiring it as needed.
headGeo_replace¶
Add proxy geo to the setup by duplication so as to leave the original in tact. Wiring it as needed. Remove what's there. What is removed will be parented to world and tagged with _REMOVED
headGeo_remove¶
Remove selected. What is removed will be parented to world and tagged with _REMOVED
UI¶
Has right click menu via mrsBuilder.
- Report Group | Print the name of the group
- Add Selected | Add selected geo to the proxy geo setup
- Replace with Selected | Replace existing geo with selected
- Remove Selected | Remove the selected
- Select Group | Select the geo group
- Head Geo Lock | Toggle the geo lock
Define¶
Settings¶
Shapes¶
The locator form shape [1]
. Select it to get the dag.
End Define Handle [2]
| Defines the end point of our block. You can scale this and the bounding box scale visualization which change shape.
Attributes
- length
- width
- height
Neck End Handle [2]
¶
Defines the end point of our neck. You can scale this and the bounding box scale visualization which change shape.
Attributes
- length
- width
- height
Neck Up Handle [4]
¶
Defines the upvector for the neck section. This controls the orientation of the neck bounding box visualization[6]
Neck RP Handle [5]
¶
Defines the rp vector for the neck section.
Aim Handle [6]
¶
Defines the aim point for the head. You'l get more finesse at the template state.
State Goals¶
What are we looking for at this state?
- Form | You're not worrying about the pivots here, just bounding box your frame
- Put the rigBlock in the middle of the head
- Use baseSize to approximately match the size of your head
- Move the neckBase handle to the base of the neck.
- Scale this volume to approximate your neck
- Aim | Place the aim handle where so that he aim vector is how you want aim forward on your head is.
- neckUp | Check your neckUp handle to make sure it's where you want it.
- neckRP | Ensure the neckRp handleis oriented how you want. Generally speaking the rp vector is through the main axis of rotation for that chain.
Form¶
See guide shape helpers for a breakdown on what the specific handles do.
State Goals¶
What are we looking for at this state?
- Shape | You want your template to generally match the look you're going for. If you're not working from a mesh and just an image plane really pay attention to your various angles. I rotated my head geo up a little in my setup because it was a more natural orientation to me
- Head Handle | Make sure you like how it's shaped to your head. This shape will be used as our head control.
- Start Orient | Ensure the orient helper at the base of the neck is pointing where you want
- Head Orient | Make sure it's pointing where you want head forward to be. Our eventual headAim control will be eventually created along this vector
Settings¶
- addCog
- attachPoint
- baseAim
- baseSize
- ikBase
- ikEnd
- ikOrientToWOrld
- ikSetup
- loftDegree
- loftShape
- loftSides
- loftSplit
- loftSetup
- numControls
- numJoints
- numShapers
- numSpacePivots
- numSubShapers
- proxyShape
- ribbonAim
- ribbonConnectBy
- ribbonParam
- scaleSetup
- settingsDirection
- settingsPlace
- spaceSwitch_direct
- squash
- squashExtraControl
- squashFactorMax
- squashFactorMin
- squashMeasure
numShapers¶
int
| numShapers | The number of shapers for a given section or block to help define it
int
| numSubShapers | ...
This one has 3
shapers and 2
subShapers. The subShapers are split between the sub shapers.
Prerig¶
See guide shape helpers for a breakdown on what the specific handles do.
- One prerig handle created per control
State Goals¶
What are we looking for at this state?
Handles
| Place the points of articulation where you want them. Use the jointLoft as a visual guide.
Skeleton¶
What are we looking for at this state?
- Joint orients | make sure they look like we expect
- Joint count | Make sure you have the number of joints you want to start iterating with
- Joint parent | make sure the root of your chain is going where you expect. When we get to the head for example, we wouldn't want that root of our neck to go to the pelvis unless we had a pretty atypical design.
Settings¶
neckJoints¶
int
| How many neckJoints you want
Rig¶
- Neckless head
- Single control neck, 1 neck joint
- Single control neck, 3 neck joints
- 4 control neck, 6 neck joints
Settings¶
segmentMidIKControl¶
bool
| This to setup an extra midIK control on the segment from one point of articulation to the other when you have roll joints.
Controls¶
The kinds of controls you see will depend on your rig options for the rigBlock. In our case we start with something like this.
Settings¶
The settings [1]
we've talked about on the spine. The gear is our standard settings shape when no cog is used.
Note
Many of these attributes would not be on this control should we have a separate settings control
Attributes
- FKIK |
float
| Blend between fk/ik mode. It controls that blend as well as the visibility of those controls. - visSub |
bool
| Whether or not the subcontrols of this rig section are visible. In our case, we only have one. If we had used more joints than controls, we'd have more of these. - visRoot |
bool
| Toggle visibility of the root control for the se - visDirect |
bool
| Whether or not the per joint controls of this rig section are visible. By default they are cube curves. When the build option of proxyDirect is checked. The proxy mesh replaces those curves. - blendParam |
float
| Determines how the joints follow the ribbon surface. Floating evenly or fixed to their attach point - blendAim |
float
| Blend the aim setup on or off. Also controls visibility of the aimControl
FK Neck¶
The FK head [3]
is the default on head setups currently so it's what we see.
Attributes
- axisAim/Up |
enum
| Settings for our aiming system. If you use raycast aiming or other systems these settings will be used per control. If no settings are found, the global defaults will be used.
Segment Handles¶
The segment handles [4]
control the ribbon for the segment joints. The number you see will be determined by our build options.
Attributes
- followRoot |
float
| What the control follows. Be it the root or the blend frame. - space |
enum
| OPTIONAL | Added when thespaceSwitch_direct
option is on. Setup by the dynParent System. Space would denote a parent setup.
We need to toggle a few options to see some more:
- Settings
blendAim
| 1.0FKIK
| 1.0visRoot
| True
IK Controls¶
IK Head/IK Base¶
The IK head [1]
and IK Base [2]
are the ik control for the neck as well.
Attributes
* axisAim/Up | enum
| Settings for our aiming system. If you use raycast aiming or other systems these settings will be used per control. If no settings are found, the global defaults will be used.
* orientTo | enum
| Setup by the dynParent System. orientTo would denote a point/Orient setup with orientTo setting the orient target and follow the position target
* follow | enum
| ...
Mid IK¶
The midIK [3]
is only created when that option is selected.
Attributes
* axisAim/Up | enum
| Settings for our aiming system. If you use raycast aiming or other systems these settings will be used per control. If no settings are found, the global defaults will be used.
Root Control¶
The root control's [4]
visibility is controlled by the settings. As we turned it on we can see it. It is a dag under which the rig is parented and as such legs you move the whole section of the rig when necessary.
Attributes
- axisAim/Up |
enum
| Settings for our aiming system. If you use raycast aiming or other systems these settings will be used per control. If no settings are found, the global defaults will be used. - space |
enum
| OPTIONAL | Added when the spaceSwitch_direct option is on. Setup by the dynParent System. Space would denote a parent setup.
Head Aim Control¶
The root control's [5]
visibility is blendAim turning on or off. This was added at a client request and is optional. When on, the head will aim at the target and rotating the blend aim on it's z axis (aliased to tilt) will tilt the head.
Attributes
- axisAim/Up |
enum
| Settings for our aiming system. If you use raycast aiming or other systems these settings will be used per control. If no settings are found, the global defaults will be used.
Direct Controls¶
We need to toggle an option to see some more:
- Settings
visDirect
| True
The direct controls's [1]
visibility is controlled by the attribute we just changed. These are per joint controls for when the animator needs the highest fidelity of control.
The default shape for these is the cube you see above. However, when you create a proxy mesh these shapes are replaced by the proxy geo with a transparent shader set to them to make them selectable.
Attributes
- space |
enum
| OPTIONAL | Added when the spaceSwitch_direct option is on. Setup by the dynParent System. Space would denote a parent setup.
visControl¶
On master. Rember back on the master. The master settings has a new attribute registered with every module that builds that lets us see/interact with our rig guts.
Attributes
- neckLongHeadRig |
bool
| toggle to hide/see but not touch/touch the rig guts
Known Issues¶
None
Change Log¶
2019¶
April¶
- FK build | build with no ik now
February¶
- Docs updated | Some new images, added special calls and UI sections first pass
- Added RP vector handle for consistency
- LoftList implemented
January¶
- Reworked neck twist setup some for low counts.
- Aim head now will drive neck twist
- Docs | Initial pass