Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

DarkBASIC Professional Discussion / BVH motion file in DBP

Author
Message
acelepage
22
Years of Service
User Offline
Joined: 2nd Jun 2004
Location: Plattsville
Posted: 10th Dec 2010 22:18
I have been experimenting with BVH files and am trying to apply the motion data to a DBP object with limbs. I am very close to the end result, but think that the BVH motion data is describing limb rotation globally, while DBP limbs rotation is a local rotation. Not too sure, but I have captured this video of my code in action, and you can notice the feet kick up and out a bit too much.
Anyone done work in this area?
http://www.youtube.com/watch?v=YjDDHqI17Lk

( 2b || !2b ), that is the question. The answer: true
DigitalFury
15
Years of Service
User Offline
Joined: 30th Jul 2010
Location: United States
Posted: 10th Dec 2010 22:29 Edited at: 11th Dec 2010 00:28
@acelepage - I would try using ez-rotate. It has something for handling global to local or local to global rotations.

DigitalFury
Latch
19
Years of Service
User Offline
Joined: 23rd Jul 2006
Location:
Posted: 10th Dec 2010 22:49
@acelepage
Hello,

Depending on what you read about the BVH file format, the article may describe the conversion of the rotations through full matrix multiplications. What I mean is, you will be told to calculate the rotations down the hierarchy chain. I haven't looked at the rotations in a BVH file for a little while now but if I recall correctly, all of the rotations are local - that's usually why an article that describes the conversion talks about the matrix multiplication. The article assumes you have to manage your own hierarchy so that you can transform the rotations into world space.

In DBPro, the limb hierarchy already exists. If the limbs are linked in Parent child relationships, then each rotation of a limb is local but the full motion of the parent+child rotation is global. So, if your limbs are linked properly, you should only have to use the rotations specified for each limb from the BVH file and not have to multiply the rotation matrices together.

The other thing to consider is the rotation order of the axes in the BVH file and which axis points up. Again, I haven't played with BVH files for a little while so I can't quite remember, but I think this information is included right before or within the ROOT definition.

Be aware that different programs may use modified versions of BVH files so one BVH file may not be setup (rotation wise, axis wise, and the inclusion of standard limbs/groups) as another so you must check for these things in your conversion program.

Enjoy your day.
mrbones
21
Years of Service
User Offline
Joined: 4th Aug 2004
Location: Michigan
Posted: 3rd Jan 2011 19:41
Visit Truebones Motions for High Quality BVH FIles.

http://www.truebones.com

_[]_
OjO
(M)

Login to post a reply

Server time is: 2026-07-18 05:42:38
Your offset time is: 2026-07-18 05:42:38