BVHExporter

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 01/09/2010 at 05:59, xxxxxxxx wrote:
Hello everyone,
although this topic was discussed formerly, i'd like to share some thoughts on it. Perhaps someone can point me to errors in my thoughts I do not see:
It is clear that you cannot use the HPBvalues of CinemaBones to derive Eurlervalues from them, as they always refer to the local coordiatesystem of a bone, not to a worldsystem. So the only way to proceed to a solution must be something like inversmotioncapturing. It should be possible to calculate the worldcoordinates of each bones toppoint. If we imagine this point as a moving white ball on a mocapvideo (although we have much more information about it already, like its 3dcoordinates), it should be possible to calculate euler values for its position the following:After the transformatiosn needed to get the bonetop's worldcoordinates (Always transform the point values to the parentbonessystem while moving the objecthierarchie up until we do not find any parentobject above, then we got its worldxyz, right?), we create 3 vectors from it by zeroing one of three axisvalues in the coordinates to get vectors lying on each axisplane between 2 worldaxis. We can now determine the angle between axis and this planevector, right? So it should be possible, to get 3 Worldeulervalues. Well of course bhvFormat takes the second and third eulerangle from a coordinatesystem rotated by the previous eulervalue. But what, if we use a zeroobject as worldaxisproxy, initialized at worldzero on start a new bone in the frame and rotated on determining the first euler with it? Then we would use the rotated system to create the next planevector (eg: rotate the worldcoordinates of the system (and the point?)) and retrieve the next euler until we got all 3 eulers for the bone.
Should this get us bvhconform angles and coordinates for a boneskeleton? Even if we must assume an aligment alon the xaxis?If there is a mistake in my thoughts, I would be grateful for a hint, because if this would work, it could be possible to export BVHfileanimation from a C4dBoneanimated object. Of course you would have to use quarternations to avoid Gimblocks and perhaps modify the rotationorder for the axes from bone to bone, but BHVFormat allows you to to so, as long as the eulervalues match the hierarchyvalues, as I understood.
I would be grateful if someone could give me a hint where I might be mistaken. I really wonder why nobody, not even maxon did this before, so I assume, there must be a great problem with it I did not encounter yet.Thanks in advance and many greets,
Coffeejunkie