"BVH exporter" (importer) include child bone off set values for "rest pose", as "motion" about all flames
Open, NormalPublic

Description

System Information
Operating system and graphics card
windows 10

Blender Version
Broken: (2.78a)

  • description of error**

Blender BVH exporter include "bones off set values (from parent node) for rest pose" as motion>location values.
and there is no option, to remove those "off set values" from motion. ( there is option about root node only)
but when animation need child nodes translation,, (eg facial expression composed by facial nodes translation) , there is no way to adjust it when export BVH from blender.

but some of 3d aprication do not take "bone off set values for rest pose" in count for "translation values" as motion.

When those exported BVH record "translation" with off set values, other aprication just "move bones" from "rest pose",with the recorded "location values" .After all "off set values" are double counted when child bones translate, about all animation frames.

I think,, there is no official definition to describe child nodes translation for BVH, but if Blender BVH exporter have option, which subtract "off set values" from motion ,then record only "delta translation values" from rest pose, it is really useful to export animation as BVH. without it other 3d aprication need to make importer for blender exported BVH.

Exact steps for others to reproduce the error

  1. make simple amature, which composed hip node, and two child nodes of hip,

name them as r.eye, l.eye , in edit mode.

then locate bones heads ( for rest pose) in global axis.
hip (0,0,0)
l.eye( 0.5 0.5 2)
r.eye (-0.5 -0.5 2)

2 on flame 1, amature keep rest pose. then set rotation, location for three bones.
flame 10 , translate l.eye on flame 20 tranlsate r.eye, then set keys for translation.
then return all bone location on flame 30

  1. export this animation as BVH.

4 the exported bvh discribe off set values of l.eye and r.eye from hip, as motion. on all flame.
but other aprication will, count them as "delta translation values" from rest pose. then on flame zero,
(it is supposed to keep zero (rest) pose,, r.eye l.eye bones move with off set values.

Conclusion (suggestion)
Add option to remove off set values, but record "delta translation values from rest pose" as motion, about all nodes for BVH exporter add on. (Blender BVH importer need same option, too)
then other 3d aprication can animate Blender exported BVH correctly, with translation.

Details

Type
Bug
takeshi funahashi (waitinfuture) renamed this task from "BVH exporter" (importer) include child bone off set values for "rest pose", as "motion" about all frames to "BVH exporter" (importer) include child bone off set values for "rest pose", as "motion" about all flames.Jan 30 2017, 7:47 AM
takeshi funahashi (waitinfuture) updated the task description. (Show Details)