BVH animation skeleton point cloud with glowing joint markers in dark cinematic space

BVH Animation Files: Complete Format Guide

BVH Animation Files: Complete Guide for Game Developers and Animators

A BVH animation file is one of the oldest motion capture formats still actively used in production pipelines. Originally developed in the 1990s, the BVH file format has outlasted dozens of proprietary formats precisely because it does one thing well: it stores raw skeletal motion data in a simple, human-readable text format that almost any 3D application can parse. Whether you are a game developer, technical animator, or researcher importing data from a motion capture database, understanding BVH is a foundational skill.

This guide covers the full picture — what BVH animation files contain, how they compare to FBX, where to use them, and the practical workflows for converting and importing BVH data into Blender, Unity, and Unreal Engine.

What Is a BVH File?

BVH stands for BioVision Hierarchy. The format was created by BioVision, a motion capture company active in the late 1990s, to distribute raw optical mocap data to clients. Because it was open, text-based, and clearly specified, it was adopted quickly by researchers, animators, and software developers as a de facto standard for exchanging skeletal animation data.

A BVH animation file stores two things:

  1. A skeleton hierarchy — the bone structure of a character, defined as a tree of joints with positional offsets and channel descriptions.
  2. Motion data — per-frame values for every channel defined in the skeleton, recorded at a fixed frame rate.

BVH does not store mesh geometry, textures, materials, physics, or any scene data. It is purely a container for skeletal motion. This keeps files small and portable, but it also means BVH cannot be used directly in a game engine without additional processing.

Anatomy of a BVH File

BVH files are plain text and split into two sections: HIERARCHY and MOTION.

The HIERARCHY Section

The HIERARCHY section defines the skeleton. It begins with a ROOT joint — typically the hip or pelvis — and then lists child joints recursively using curly braces. Each joint entry contains:

  • OFFSET — the rest-pose position of the joint relative to its parent, in centimeters.
  • CHANNELS — the degrees of freedom recorded for this joint. The root joint typically has 6 channels (3 position + 3 rotation). Child joints typically have 3 channels (rotation only).

Leaf joints (end joints with no children) are marked with End Site and have an OFFSET but no channels, since they carry no motion data themselves.

A minimal skeleton might define 20–25 joints; full-body captures from research databases can exceed 60. The channel order within each joint entry matters — the motion data is packed in the exact order channels appear in the hierarchy.

The MOTION Section

Below the hierarchy, the MOTION section contains:

  • Frames: the total number of frames in the clip.
  • Frame Time: the duration of each frame in seconds (e.g., 0.0333333 for 30 fps; 0.008333 for 120 fps).
  • One line of space-separated floating-point values per frame, listing every channel value for every joint in hierarchy order.

A 10-second clip at 30 fps with a 25-joint skeleton (69 channels) produces 300 lines of data with 69 values each — roughly 20,000 floating-point numbers. The format is verbose compared to binary formats but trivial to parse with any scripting language.

Where BVH Is Used

BVH remains relevant in several contexts after nearly three decades:

  • Motion capture research databases — The Carnegie Mellon University (CMU) Motion Capture Database is the most widely cited, offering over 2,500 clips across 144 subjects in BVH format, free to download and use.
  • Academic and scientific use — Biomechanics researchers, HCI labs, and AI/ML teams working on pose estimation or animation generation commonly work in BVH because of its simplicity and interpretability.
  • Older capture systems — Many legacy optical and inertial mocap systems exported BVH as their primary delivery format.
  • MotionBuilder import/export — Autodesk MotionBuilder reads and writes BVH natively, making it a convenient interchange format when moving data between systems.
  • Blender — Blender has a built-in BVH importer and exporter, making it one of the more accessible tools for working with BVH files in a modern pipeline.

BVH vs FBX: When to Use Each

The most common question animators ask is whether to use BVH or FBX. They serve different purposes, and the right choice depends entirely on your workflow stage and target platform. For a deeper look at the FBX side of this comparison, see our FBX Animation Guide.

Feature BVH FBX
File format Plain text (ASCII) Binary (or ASCII variant)
Contains mesh No Yes
Contains skeleton Yes Yes
Contains animation Yes (rotation + root translation) Yes (full transform curves)
Contains materials/textures No Yes
File size Small to medium Medium to large
Human-readable Yes No (binary)
Game engine support Indirect (requires conversion) Native (Unity, UE5, Godot)
Industry adoption Research, legacy systems Industry standard for game dev
Best for Raw data exchange, research, archiving Game engines, production pipelines

Use BVH when you are exchanging raw motion data between DCC tools, working with research databases, or need a simple interchange format for quick iteration. Use FBX when you are delivering animation to a game engine, working with a rigged character mesh, or operating in a production pipeline that requires full scene data.

How to Open BVH Files

Several applications can open BVH files directly:

Blender

Blender is the most accessible free option. To import a BVH animation file:

  1. Open Blender and go to File > Import > BVH (.bvh).
  2. In the import options panel, set the Forward and Up axes to match your source data (CMU data typically uses Y-up).
  3. Adjust the Scale if the skeleton imports at the wrong size (BVH uses centimeters by default; Blender uses meters).
  4. Choose whether to import as an Armature (with bones) or Object (with empties). Armature is usually what you want.

Autodesk MotionBuilder

MotionBuilder has native BVH support via File > Import. It offers more control over skeleton mapping, rotation order, and frame rate, which is useful when working with files from unfamiliar sources.

Online BVH Viewers

For quick inspection without installing software, several browser-based viewers exist (search "BVH viewer online"). These are useful for verifying a file looks correct before committing to a full import workflow.

How to Convert BVH to FBX

Converting BVH to FBX is the most common production task associated with BVH animation files. Here are the main approaches:

Blender Workflow

  1. Import the BVH file into Blender as described above.
  2. Verify the skeleton looks correct in the viewport. Fix any axis or scale issues in the import options before proceeding.
  3. Go to File > Export > FBX (.fbx).
  4. In the export options, set Path Mode to Copy if you want to embed textures (not applicable for motion-only BVH exports).
  5. Under Armature, enable Add Leaf Bones only if your target application requires them.
  6. Set Bake Animation and confirm the frame range is correct.
  7. Export. The result is an FBX containing the skeleton and baked animation curves.

Autodesk MotionBuilder

MotionBuilder provides more production-grade control. After importing BVH, you can map the skeleton to a character definition (Control Rig), then export to FBX with full Autodesk compatibility. This is the preferred path when the BVH source data has unusual joint naming or rotation order that causes problems in Blender.

Command-Line and Online Converters

For batch conversion, Python scripts using the bvh library or tools like BVHacker can automate the process. Online converters handle simple cases but lack control over skeleton mapping and are not suitable for production use.

BVH in Game Engines

Neither Unity nor Unreal Engine 5 natively imports BVH files. Both engines are built around FBX (and, increasingly, glTF/USD). To use BVH motion data in a game engine, you must convert it first.

Unity

The standard workflow is: BVH → Blender (or MotionBuilder) → FBX → Unity. Once in FBX form, Unity’s animation import settings apply normally — you can set avatar definitions, split clips, and set loop settings. The main risk is skeleton mismatch: if the BVH skeleton does not match your character’s skeleton, you will need to remap or retarget in Blender or MotionBuilder before export.

Unreal Engine 5

The same intermediary approach applies. UE5 imports FBX animation files and can retarget them via the IK Retargeter. Import your BVH-converted FBX, then use UE5’s retargeting tools to map the motion onto your project skeleton. For a full breakdown of that retargeting workflow, see our guide to using motion capture animations in Unreal Engine 5. UE5 also supports direct MotionBuilder roundtrips via Live Link for real-time data, but that is a different use case from file-based BVH import.

Limitations Compared to Native FBX

BVH-derived animation frequently has issues that native mocap FBX files do not:

  • Rotation order mismatches — BVH stores rotation data per frame in ZXY Euler order by default; FBX uses XYZ. Conversion tools handle this, but errors can produce spinning joints or gimbal lock artifacts.
  • No mesh binding — Converted BVH produces animation curves on a skeleton only. You must manually bind it to your character mesh or use retargeting.
  • Scale inconsistencies — BVH offsets are in centimeters; scale mismatches between the source skeleton and your character skeleton are common and require manual correction.

Where to Find BVH Motion Capture Files

The most comprehensive free BVH source is the Carnegie Mellon University Motion Capture Database (mocap.cs.cmu.edu). It contains over 2,500 motion sequences covering walking, running, sports, martial arts, gestures, and more. All data is free for commercial and non-commercial use.

Other sources include:

  • BVH files from inertial mocap vendors — Systems like Rokoko, Xsens, and Noitom export directly to BVH from their capture software.
  • Academic datasets — HumanEva, KIT Motion Database, and SFU Motion Capture Database all provide BVH format data.

If your goal is game development or production use, raw BVH from research databases requires significant cleanup and conversion work. Pre-processed, game-ready animation files in FBX, BIP, Unreal Engine, Unity, and Blender formats are available directly from MoCap Online’s animation library — saving you the conversion pipeline entirely. Our packs ship in the formats your engine already understands, rigged to standard skeletons and ready to import.

Frequently Asked Questions

What programs can open BVH files?

Blender (free), Autodesk MotionBuilder, Adobe Mixamo (limited), BVHacker (free Windows viewer), and various online BVH viewers. Most professional DCC tools (Maya, Cinema 4D, 3ds Max) can also import BVH via plugins or built-in importers.

Should I use BVH or FBX for Unity?

FBX. Unity does not natively import BVH. You need to convert a BVH animation file to FBX first (using Blender or MotionBuilder), then import the FBX into Unity as you would any other animation asset. If you have the option to source animation in FBX directly, skip BVH entirely.

Why do my BVH files import with rotated or flipped joints?

BVH files store rotations in Euler angles with a specific rotation order (commonly ZXY), and the coordinate system varies by capture system. When the importing application uses a different rotation order or axis convention, joints appear flipped or twisted. To fix it, adjust the rotation order setting in your import dialog (Blender exposes this under BVH import options), or use MotionBuilder which handles rotation order conversion more robustly. If individual joints are still wrong after import, the source data may have been captured with a non-standard skeleton definition and requires manual correction.

Can BVH files store facial animation or finger data?

Yes — BVH can represent any joint hierarchy, including facial rigs and finger joints, as long as the original capture system recorded those joints. Many BVH files from research databases only include the main body joints (hips, spine, limbs) and omit fingers and facial bones. Full-body BVH with finger data and facial joints is less common and usually comes from high-end inertial capture systems like Xsens MVN with gloves.

Walk Cycles and Locomotion in BVH

Walk cycles are among the most common animations sourced from BVH research databases. The CMU database includes dozens of natural walk variations across different subjects and speeds. If you are working with walk cycle data from a BVH source, our walk cycle animation guide covers the looping, cleanup, and retargeting steps that apply regardless of whether you started from BVH or FBX.

Conclusion

BVH animation is a durable, widely supported format that has remained relevant in the 3D animation ecosystem for nearly three decades. Its simplicity makes it ideal for raw data exchange, academic research, and archival purposes. For production use in game engines, however, a BVH animation file is a starting point rather than an endpoint — the format almost always needs to be converted to FBX and adapted to your project’s skeleton before it can drive a character.

Understanding how BVH works — its HIERARCHY structure, its channel-based motion data, and its rotation conventions — gives you the knowledge to troubleshoot import problems and make informed decisions about when BVH is the right tool and when FBX is the better choice.

If you are building a game, simulation, or animated experience and need motion capture data that is already production-ready, MoCap Online’s animation packs ship in FBX, BIP, Unreal Engine, Unity, and Blender formats — professionally solved, retargeted, and ready to use without conversion. Download a free pack to get started, or browse the full library.

Related Articles

Available Animation Formats

MoCap Online animations are available in all major formats:

Not sure which format? Check our guide →