IntroductionBvhViewer visualizes motion data in the BVH format. This format was originally developed by Biovision and has become a widely used format in many motion capture and character animation applications such as Blender and Poser.
BvhViewer provides an easy and straightforward user interface for viewing and editing motion of each human body joint at each frame. BvhViewer includes a rich set of features. With BvhViewer, you can
- Quickly navigate through the motion sequence and view human body joints from different viewpoints at each frame
- View exact joint rotation angles and 3D joint positions in text
- View local coordinate system of any joint
- Change joint rotation angles
- Save the animation as an image sequence
- Switch to overlaid mode
- Save motion each joint as a text file
- Highlight a joint
- Change, save or restore to the saved viewpoint
- Switch to a posing camera
- Show/Hide joint names
- Show/Hide joints or bones
- Change size of joints or bones
- Show/Hide ground plane or axis of world coordinate system
Compatible BVH formatTechnically BvhViewer can recognize any joint hierarchy. The only constraint is that the root joint has to be "hip" or "hips" (case insensitive). A sample BVH file (of Chinese martial art) is here. (The data is obtained from http://www.e-motek.com. All rights reserved.)
Downloads and Installation
- BvhViewer runs on Windows 2000/XP.
- Download and unzip this zip file.
- Run BvhViewer.exe
- BvhViewer is Copyright © 2006 by Fengjun Lv. All rights reserved.
- BvhViewer is provided as Freeware. If you find BvhViewer useful, the author of BvhViewer would appreciate it if you mention the software in your publications or add the following banner on your site.
- BvhViewer is provided "AS-IS". No warranty of any kind is expressed or implied. The author will not be liable for data loss, damages, loss of profits or any other kind of loss while using or misusing the software.
- Any trademarks mentioned here are the property of their respective owners.
The interface of BvhViewer consists of 5 main parts: The menu and the toolbar at the top, the animation window in the middle, the joint info list control and the status bar at the bottom. Those are standard components (except for the joint info list control) in a common single document interface (SDI).
The joint info list control shows exactly the joint rotation angles and 3D joint positions at the current frame. For user's convenience, it also lists all keyboard shortcuts.
The status bar shows the current frame number / total frame number, current frame time, camera type (fixed or posing), current viewpoint, camera position and rotation in the world coordinate system and the scale applied to the current human figure.
How to...The following lists answers to some basic questions. The details of most of BvhViewer's functions are described in the "Toolbar and keyboard shortcuts".
- Open a bvh file
Select menu "File->Open" or Click the button in the toolbar to select the bvh file you want to open.
- Drag the human figure in the X,Y or Z direction
Drag left mouse button to move the figure in X or Y direction. Press the "Ctrl" key and then drag the left mouse button to in vertical direction to move the figure closer or further.
- Select a joint
Right click that joint. The row corresponding to the selected joint will be highlighted in the joint info list control as well. The default joint is the root joint "hip".
- Save the rendered images at each frame
Turn on the option "Save image of each frame" in the "Option" menu. When you view any frame, the image of that frame will be saved in the same folder as the bvh file. The image file name is the same as bvh file, followed by the frame number.
- Align the human figure so that it always faces to the positive z-axis direction in the first frame
Turn on the option "Align to z-axis" in the "Option" menu.
- Directly go to a specified frame
Click the button in the toolbar and then select the frame number.
- Play a long sequence faster
Click the button in the toolbar and increase the frame step.
- Change joint rotation angles at the current frame
Click the "Joint Information" tab on the joint info list control. Click the grid that contains the rotation angle you want to change. Change the number and click anywhere outside the grid. Click the button.
- Change background color to white
Start BvhViewer from the command line using "BvhViewer white".
- Hide the joint info list control so only the animation windows is displayed
Press the "Tab" key. Press "Tab" again to bring it back.
Toolbar and keyboard shortcutsMost of BvhViewer's functions can only be accessed through toolbar and keyboard commands. Fortunately you don't have to remember those keys. Actually you can click the "Keyboard Command" tab on the joint info list control to get a quick list of all keyboard shortcuts.
- Make sure that the image window got the focus to accept keyboard input. If not, just click the image window.
- All keyboard commands are case insensitive.
|Ctrl+O||File->Open||Open a bvh file|
|Home||Go to the first frame|
|PageUp||Go to the previous frame|
|Go to the specified frame|
|Change the frame step|
|PageDown||Go to the next frame|
|End||Go to the last frame|
|Play the sequence|
|Rewind the sequence|
|Change joint rotation angle according to the numbers you specified in the joint info list control|
|Reset all joint rotation angles to zero|
|Save the current bvh file as another bvh file|
|Save the motion (no hierarchy, only the rotation angle) of the current file as a text file|
|Save the 3D positions of all joints as a text file|
|Save the image of the current frame as a bmp file, which will be saved in the same folder as the bvh file. The image file name is the same as bvh file, followed by the frame number.|
|Space||Select the next joint|
|Backspace||Select the previous joint|
|Right Arrow||Increase the first rotation angle of the selected joint. Note that the first rotation angle does not necessarily mean the rotation in X direction. It depends on the order of the local coordinate system of the selected joint. If the order is "ZXY", the first rotation angle means the rotation in Z direction. See the "Rotation Type" in the joint info list control for such information.|
|Left Arrow||Decrease the first rotation angle of the selected joint|
|Up Arrow||Increase the second rotation angle of the selected joint|
|Down Arrow||Decrease the second rotation angle of the selected joint|
|Ctrl+Up Arrow||Increase the third rotation angle of the selected joint|
|Ctrl+Down Arrow||Decrease the third rotation angle of the selected joint|
|Ctrl+a||Show names of all/no joints if the option of showing joint name is on.
|Ctrl+b||Switch bone on/off
|Ctrl+g||Switch ground plane on/off
|Ctrl+j||Switch joint on/off
|Ctrl+l||Switch local coordinate system on/off
|Ctrl+n||Switch joint name on/off
|Ctrl+o||Switch overlaid mode on/off. When the overlaid mode is on, BvhViewer does not erase the images of previous frames.
|Ctrl+p||Switch posing camera on/off. When the posing camera is on, the camera will move along with the human figure so that the image is always centered at the root joint "hip". Otherwise, the camera is fixed. The current status of the camera (fixed or posing) is shown on the status bar.
|Ctrl+s||Save the current viewpoint|
|Ctrl+r||Restore to the saved viewpoint|
|Ctrl+w||Switch world coordinate system on/off
|Ctrl+7||Increase joint size
|Ctrl+8||Decrease joint size
|Ctrl+9||Increase bone size
|Ctrl+0||Decrease bone size
|Tab||Show/Hide the list control window|
BVHViewer © 2006 Fengjun Lv
Last update: 10/10/2006 (check html)