Patch #7767: Constraint Subtargets can now target anywhere on a bone, not just the...
authorJoshua Leung <aligorith@gmail.com>
Mon, 12 Nov 2007 04:17:03 +0000 (04:17 +0000)
committerJoshua Leung <aligorith@gmail.com>
Mon, 12 Nov 2007 04:17:03 +0000 (04:17 +0000)
commit89317afbdfe19da951aeb2fa7764cc2f60b39f4d
tree4b8b0410ba9ab4c724d24be43a6882725ed972fb
parent7f2e43968a917e4512117164a8645756893c93da
Patch #7767: Constraint Subtargets can now target anywhere on a bone, not just the head or tail
Patch by: Roland Hess (harkyman)

For example, a constraint can be sub-targeted at the 50% (or 31.2% or 85% etc.) point of its target bone, giving you enormous rigging flexibility and removing the need for complex contraptions to do such things as:

- A bone whose base slides only between to points on a rig (CopyLoc with a variable, animated subtarget point)
- Bones that attach to multiple points along another bone (CopyLocs, each with a different head/tail percentage)
- Bones that need to stretch to a point midway between specific spots on two other bones (old way: too crazy to mention; new way: stretch bone between points on end bones, then another stretch to the midpoint of the first stretch)

It is only used for the constraint types for which it is relevant: CopyLoc, TrackTo, StretchTo and MinMax, TrackTo, and Floor.

Notes:
- This is accessed by the Head/Tail number-slider.
- This value can be animated per constraint
- The old "Copy Bone Tail" option for the CopyLoc constraint has been automatically converted to 1.0 Head/Bone values for the affected constraints
- In the code, this value is in the bConstraint struct, so it is available for all constraints, even though only a few implement it.
source/blender/blenkernel/intern/action.c
source/blender/blenkernel/intern/constraint.c
source/blender/blenkernel/intern/ipo.c
source/blender/blenloader/intern/readfile.c
source/blender/makesdna/DNA_constraint_types.h
source/blender/makesdna/DNA_ipo_types.h
source/blender/src/buttons_object.c
source/blender/src/editipo_lib.c