Blender Git Commit Log

Git Commits -> Revision 31fda03

Revision 31fda03 by Henrik Dick
December 2, 2020, 17:24 (GMT)
Add Custom Space to Constraints

Constraints can currently only use World Space, Local Space, Pose Space, Local with Parent.
This patch adds Custom Space with a custom object to define the evaluation space.

The Custom Space option uses the Local Space of an other object/bone/vertex group.
If selected on owner or target it will show a box for object selection.
If an armature is selected, then it will also show a box for bone selection.
If a mesh object is selected it will show the option for using the local space of a vertex group.

It looks like this in the UI:
{F8731291}

The motivation for this patch is the following situation.
If you have a copy location constraint in your armature you are already limited when you want to use a specific axis. It can be done, but its unneccessarily difficult (as far as I know). But the situation is close to impossible as soon as you have a root bone in your armature (which I was told you always want). I need to only copy the location along a custom axis for a lot of things. The same goes for copy rotation/scale and all the limit constraints because I need to make that axis relative to the root bone transform.

Here is a demo video:
{F8498960}
This is the file of that video:
{F8647541}

This is the file for the tests included in this patch:
{F8699677}

File intended for acceptance test:
{F8879818}

Reviewed By: #animation_rigging, sybren, Severin, angavrilov

Differential Revision: https://developer.blender.org/D7437

Commit Details:

Full Hash: 31fda0363d55f9b451427b6693591a1be062e905
Parent Commit: cba5137
Committed By: Alexander Gavrilov
Lines Changed: +398, -95

9 Modified Paths:

/release/scripts/startup/bl_ui/properties_constraint.py (+16, -7) (Diff)
/source/blender/blenkernel/BKE_constraint.h (+4, -0) (Diff)
/source/blender/blenkernel/intern/constraint.c (+228, -76) (Diff)
/source/blender/blenkernel/intern/fcurve_driver.c (+4, -4) (Diff)
/source/blender/editors/armature/armature_add.c (+13, -4) (Diff)
/source/blender/makesdna/DNA_constraint_types.h (+10, -3) (Diff)
/source/blender/makesrna/intern/rna_constraint.c (+29, -0) (Diff)
/source/blender/makesrna/intern/rna_object_api.c (+20, -1) (Diff)
/tests/python/bl_constraints.py (+74, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021