Blender Git Loki

Git Commits -> Revision 2068eaf

Revision 2068eaf by Joshua Leung (master)
November 1, 2009, 11:29 (GMT)
Rigging Goodies: Spline IK Constraint

At last, this commit introduces the Spline IK Constraint to Blender. Spline IK is a constraint that makes n bones follow the shape of a specified curve.

Simply add a chain of bones, add a curve, add a Spline IK Constraint to the tip bone and set the number of bones in the chain to make it work. Or, try the following test file:
http://download.blender.org/ftp/incoming/250_splineik_spine01.blend

Screenshots of this in action (as proof):
http://download.blender.org/ftp/incoming/b250_splineik_001_before.png
http://download.blender.org/ftp/incoming/b250_splineik_001_after.png

I've implemented this in a similar way to how standard IK solvers are done. However, this code is currently not an IK plugin, since I imagine that it would be useful to be able to combine the 2 types of IK. This can be easily changed though :)

Finally, a few notes on what to expect still:
* Constraint blending currently doesn't affect this. Getting that to work correctly will take a bit more work still.
* Options for not affecting the root joint (to make it easier to attach the chain to a stump or whatever), and non-uniform scaling options have yet to be added. I've marked the places where they can be added though
* Control over the twisting of the chain still needs investigation.

Have fun!

Commit Details:

Full Hash: 2068eaf1b7f7729198ad865f69fa3bd11d7a9edc
SVN Revision: 24210
Parent Commit: cb45db0
Lines Changed: +589, -71

16 Modified Paths:

/release/scripts/ui/properties_object_constraint.py (+7, -0) (Diff)
/source/blender/blenkernel/BKE_armature.h (+5, -2) (Diff)
/source/blender/blenkernel/intern/action.c (+3, -1) (Diff)
/source/blender/blenkernel/intern/armature.c (+271, -6) (Diff)
/source/blender/blenkernel/intern/constraint.c (+88, -5) (Diff)
/source/blender/blenkernel/intern/depsgraph.c (+2, -2) (Diff)
/source/blender/blenloader/intern/readfile.c (+5, -0) (Diff)
/source/blender/blenloader/intern/writefile.c (+9, -1) (Diff)
/source/blender/editors/object/object_constraint.c (+29, -3) (Diff)
/source/blender/editors/space_view3d/drawarmature.c (+70, -28) (Diff)
/source/blender/ikplugin/intern/iksolver_plugin.c (+7, -1) (Diff)
/source/blender/makesdna/DNA_action_types.h (+27, -16) (Diff)
/source/blender/makesdna/DNA_armature_types.h (+1, -0) (Diff)
/source/blender/makesdna/DNA_constraint_types.h (+35, -5) (Diff)
/source/blender/makesrna/intern/rna_constraint.c (+29, -1) (Diff)
/source/blender/makesrna/RNA_access.h (+1, -0) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021