Global Transformation/Rotation Offset Tool

288 views
Skip to first unread message

Shane Newville

unread,
Aug 12, 2010, 5:58:08 PM8/12/10
to bvhacker
Hello,

My name is Shane Newville. Just one of those animation hobbyists.
Anyway, I've got a question.

Is there a way to globally offset the overall rotation/position of the
entire bvh file? If not, would it be difficult to add this as a new
feature in an upcoming release?

I'm not sure how this would work because moving the entire "curve" of
say, the Z rotation, will cause undesired results. As if it needs a
new "temp" bone created to act as the parent of all. Then this new
bone be offset (rotation/transformation) until the animation is
centered as desired. Then finally, everything would need to be "re-
baked" so that it will maintain its new offset once this temp bone is
deleted.

I don't even know if this is open for suggestions like the one above.
This has just been one of the difficulties of working with bvh files.
I'm sure there are work-arounds in other software, but it would be a
very lovable new feature for BVH Hacker.

Thanks for reading.

-Shane Newville

davedub

unread,
Aug 12, 2010, 7:47:28 PM8/12/10
to bvhacker
Hi Shane,

Welcome to the bvhacker discussion group.

bvhacker does already allow global repositioning. To globally
reposition, select the hips, select translation mode (shortcut T) and
move the sliders to adjust.

bvhacker will also do global rotations, but only if the hip joint uses
zxy rotation order. Select rotation mode (shortcut R) and move the
sliders to adjust.

(zxy is the most common joint rotation order, used by SL characters
and many mocap systems)

To check the rotation order of the hips, select the hips joint and
look at the joint properties panel in the top right of the interface.
The joint rotation order is there. If it reads zxy, then all hips
rotations made using the sliders will be global. (Note: Global
rotations are also denoted by an asterisk (*) next to the words 'Joint
rotations' at the top of the dynamic sliders - if the asterisk is
there, rotation adjustments using the sliders will be global.)
You will notice that moving the sliders when in global rotation mode
auto-magically moves the other sliders too. This is because although
moving a slider changes to global rotation, it is the local rotations
that are displayed on the sliders. This is intentional, I wanted to
see the effect of global rotations on local rotation values...

I don't use a temp bone to do this, I use a bit of quaternion magic.
It bends the brain, but it works!

I'd love to add global rotation for other joint rotation orders in the
future, but I don't have time right now. If / when this changes the
bvhacker group will be the first to know ;-)

Davedub
http://davedub.co.uk/
http://animazooanimations.com/
http://www.bvhacker.com/
http://www.dubmation.com/

Shane Newville

unread,
Feb 22, 2011, 8:18:01 PM2/22/11
to bvha...@googlegroups.com
In my experience, I have not had any luck with what you're saying about global transformation/rotation.
Any time I've adjusted the slider to change the bvh character's starting position, it sort of clears all location data so that it not longer moves along the X, Y, or Z axis. The bones still act out the motions but it does not move. And when I've tried rotating so that the motion starts from the center, and also starts along the Z axis (looking forward), it gives me very undesirable results.

I'm not too familiar with Second Life as I use Poser for animation. In SL I'm assuming each motion generally stays centered anyway (right?...just guessing) sort of how a lot video games using motion data. The way I use it is Poser is, say a character is walking along the z-axis. I need to maintain that motion along the z-axis. If a character is walking at a 45 degree angle (from the center) I would need to rotate the overall transformation AND Rotation, together. I wish I could give a live demonstration of what I'm talking about. The only program I've had any luck with for this kind of bvh editing is MotionBuilder (which I do not own so can't really make use of it).

What I mean by global rotation/transformation is, if the motion data has a character walking, from the center, at a 90 degree angle (walking to the left or right, instead of forward (z-axis)) I want to be able to rotate the starting position to face forward (down the z-axis) and also have it effect EVERYTHING else including transformation. So that after rotating, the character will be walking forward down the z-axis. Right now if I rotate, the body will face forward, but it will still move along the x-axis. So I am hoping for a way to have it recalculate the data so that everything is still perfectly in tact... I guess basically, the easiest way I can think to describe this is maybe not changeing the character/bones' position/rotation directly, but maybe to change the rotation/location of the point of origin for the bvh data all together.  Yeah. I think that's the best way I can put it. At this point I'm imagining what it would look like...but maybe the point of origin could have a gizmo/cursor of its own that can be rotate and relocated. So if the character starts way off to the side somewhere at an odd rotation, I could move the point of origin to that exact location/rotation, then save the bvh file. The point of origin would always be at the center by default when starting up bvh hacker. So then when I re-open the bvh file, all the data would still be the same as it was, but now it would be starting from the default center location, facing whatever default direction I chose...which would be forward (down the z-axis).

I hope I'm not being too wordy. I'm trying to be as detailed as possible in explaining this. I don't have a clue how much it would take to program a feature like this, but I think it would be the greatest thing since sliced bread.

Thanks again for your dedication to this project.

-ShaneNewville
--
ShaneNewville
Production Director
SyntaxRecords
http://www.syntaxrecords.com
http://www.myspace.com/shanenewville

Dave Wooldridge

unread,
Feb 24, 2011, 5:15:47 AM2/24/11
to bvha...@googlegroups.com
Hi Shane,

If I'm reading what you have said correctly, I'm confused as to why it's not working for you!

Could you send me the bvh file of the walk, so I can have a look myself? I've sent you my email...

Cheers,

Davedub

Shane Newville

unread,
Feb 24, 2011, 12:15:44 PM2/24/11
to bvha...@googlegroups.com
Hey, yeah. I might need a bit of time to get around to it but I'll find something. I don't specifially have a walk bvh file...that was just to give a visual...metal visual.  Anyway, thanks. I'll get back to you soon.

Aprilmae Devin

unread,
Feb 24, 2011, 11:43:59 PM2/24/11
to bvha...@googlegroups.com
 I wonder if you are "clamping" the channel instead of just moving the slider. Once slider is moved you dont have to do anything else.

Aprilmae
~Alterior Motions~

Try IM ToolPack Send your photos by email in seconds...
Try FREE IM ToolPack at www.imtoolpack.com
Works in all emails, instant messengers, blogs, forums and social networks.

Shane Newville

unread,
Jan 4, 2012, 11:08:25 PM1/4/12
to bvha...@googlegroups.com
Hi again. It's been a while yeah?
Still to this day bvhacker has been one of the most helpful little tools in my workflow.

I know you're busy with all sorts of things. But I just wanted to ask how is your brain doing?
Any chance you are still considering tackling figuring out making hip rotation offset work for all (or more) rotation order settings?
If you are able to pull it off, I pay to use bvhacker as that is the most frustrating things I still run into while editing bvh files.
It's great when the bvh file happens to have the correct rotation order for the hip, but for all the ones that do not...pfftft,.

Anway keep being awesome.

---ShaneNewville

P.S: I am assuming you are able to review some of the older messages. So I haven't gone into great detail explaining it.
Reply all
Reply to author
Forward
0 new messages