I build an armature with on "root" bone and two "child" bones which are parented
to the root. One of the child bones copies the rotation of the other via an "Child of"
constraint. If I move all bone through the translation of the root (Pose Mode) bone,
all works properly but if I move the armature (in Object Mode), the bone with the
"Child of" constraint stand still. If I deactivate the constraint also the translation in
Object Mode works properly.
If I build the same armature again the problem don't occurs again, so please look
to the attached .blend file (first layer) to understand the problem. The second layer
contains the same armature without the problem.
Tested with Blender (official release):
= Blender 2.63 (sub 14) System Information =
version 2.63 (sub 14), revision b'49072'. b'Release'
build date: b'2012-07-20', b'06:28:24'
build cflags: b'/nologo /Ob1 /J /W1 /Gd /we4013 /wd4018 /wd4244 /wd4305 /wd4800 /wd4065 /wd4267 /openmp -O2 -DNDEBUG -DWIN32 -D_CONSOLE -D_LIB -D_CRT_SECURE_NO_DEPRECATE -DOPJ_STATIC -DWIN64 -DWITH_MOD_FLUID -DWITH_MOD_OCEANSIM -D__LITTLE_ENDIAN__ -DWITH_AUDASPACE'
build cxxflags: b'/nologo /Ob1 /J /W1 /Gd /we4013 /wd4018 /wd4244 /wd4305 /wd4800 /wd4065 /wd4267 /openmp /EHsc -O2 -DNDEBUG -DWIN32 -D_CONSOLE -D_LIB -D_CRT_SECURE_NO_DEPRECATE -DOPJ_STATIC -DWIN64 -DWITH_MOD_FLUID -DWITH_MOD_OCEANSIM -D__LITTLE_ENDIAN__ -DWITH_AUDASPACE'
build linkflags: b'/SUBSYSTEM:CONSOLE /MACHINE:X64 /STACK:2097152 /OPT:NOREF /INCREMENTAL:NO /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:msvcmrt.lib /NODEFAULTLIB:msvcurt.lib /NODEFAULTLIB:msvcrtd.lib'
build system: b'SCons'
Windows 7 Professional 64Bit
Intel Core2 Quad Q9300 @ 2.50GHz
version: 3.2 (r32:88445, Mar 2 2011, 16:59:21) [MSC v.1500 64 bit (AMD64)]
renderer: 'ATI Radeon HD 3800 Series '
vendor: 'ATI Technologies Inc.'
version: '3.3.10750 Compatibility Profile Context'
Also tested on Vista 64Bit and with a (own) MinGW build of the same Blender
version and with Blender 2.52 with the same result.
A child-of constraint is similar to parenting a bone to another one, but with properties you can control. This is useful for cases like when you want something to be picked up during an animation.
Having such a bone already parented then gives strange situations, which cannot be solved. What you see outside of pose mode is actually correct here.
The child-of constraint is also a bit weak, it isn't fool proof and will only work in controlled and well setup sitations.
To copy rotations from to another bone you better use the "Copy rotation" constraint.