Joint Tools¶
Status: Alpha release
Last Updated: 16 October 2017
Overview¶
cgmJointTools is our attempt at an all in one joint creation and orienting tool for our own purposes. We hope you find it useful as well.
What can I do with it?
- Create joint chains be selection or curve and resplit by multiple methods
- Tweak and edit joint orientation values in multiple ways
- Define world up vector by object axis or a vector between two objects
- Access rayCast joint creation tools (stand alone ui only)
- Orient and snap joints on a plane for fingers or limbs
- Relatively tweak joint radius values contextually
Accessing¶
UI - standalone
- Top cgm menu -
CGM> TD/Rigging> > Joints > cgmJointTools
- Marking menu (several of them) -
cgmJointTools
- Top cgm menu -
UI - Nested
- You can find most of the tools nested in the cgmToolbox
Python
import cgm
cgm.core.tools.jointTools.ui()
UI¶
If you open the stand alone ui, you should see something like this:
Note
When you load it as a standalone, RayCast create options are availabe as well. Seemed overkill to have that in the Toolbox version as well.
Orient¶
Tweak¶
Full props to Michael Comet for the logic on this one in his fantastic cometJO.
Change the current jointOrient values on selected joints by provided amounts in a relative manner.
x[ ] y[ ] z[ ]
- Set the relative values+
- Add to the current values-
- Subtract to the current valuesZero
- Clear out the fields.
Vector/Aim¶
With orientation we're talking about the up vector for aiming for the orientation processes. We have a couple of ways of defining it.
World
- You can set to standard axis by theX
,Y
,Z
buttons or manually input values.x+...
- With a selected object, pick an axis which will general a vector and input it to the fieldsBetween Sel
- If you select two objects, the vector from the first point to the second will be measured and input
Aim/up axis directions are how joints will be aimed and oriented. Aim is from one to the next in the chain, up will go by the defined world vector.
Aim
- Set the aim axis of oriented jointsUp
- Set the up axis of oriented joints
Note
When no parent or child joints are detected, joints will be oriented to the world following the aim/up axis
Functions¶
Orient Selected
- Orient selected joints following the user's settings[]Relative
- Affects orientation. Relative mode reevaulates the up vector from the parent. This supports better orientation for twisting joint segments.
Plane Up/Out
- Planar orientation creates a snap plane to help fingers and limbs for examples all be on the same rotation plane.- 3 joints are required
- Up/Out defines which axis the plane will be cast through - the joints up or out axis. For fingers, you probably want up. For an arm out would probably make more sense.
Freeze
- Our freeze orienation function as we don't like maya's.
Create¶
Joint creation is based on selection. There are several main methods. When we resplit, it can be by the selection generated curve or an existing one.
From Selected
- Create new joints based on selection. Can be transforms or componentsMid
- Create a joint at the mid point of the selectedCurve
- Build joints along selected curve(s)
Note
Mid only creates mid joint from selection. The other modes support the extra behaviours.
What follows are the options that each mode can use.
Resplit
- Resplit a given curve or selectionNone
- No resplitLinear
- Linear curveCurve
- Cubic curveSub
- Resplit between each root. Only supported infrom selected
mode
[5]#
Set the number of joints for resplit[] Orient
- Whether to orient created joints[] Chain
- Whether to parent created joints[] Relative
- Relative orienation mode where the last joint's up is used as the new up vector
Note
Context can be changed via the first menu in the cgmToolbox
or cgmJointTools
RayCast¶
Only shows up in standalone ui. See toolbox section
Axis¶
*Show
- Show axis (CONTEXTUAL)*Hide
- Hide axis (CONTEXTUAL)
Radius¶
Contextual radius editing.
/2
- In this case take current, then divide by 2.-10
- ... current - 10-1
- ... current - 1+1
- ... current + 1+10
- ... current + 10*2
- ... current * 2
Note
Context can be changed via the first menu in the cgmToolbox
or cgmJointTools
Utilities¶
cometJO
- Tool by the brilliant Michael B. Comet for orienting joints*Select
- Select joints. (CONTEXTUAL)seShapeTaper
- Tool by our good friend Scott Englert for splitting sdk 'poses'