Blender Git Commit Log
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)
/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)