Skip to content

Parse and visualize asf/amc files from CMU MoCap dataset.

License

Notifications You must be signed in to change notification settings

CalciferZh/AMCParser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AMCParser

A lightweight library to parse and visualize asf/amc files from CMU MoCap dataset using Python 3.

The main purpose of this library is to help understanding how asf/amc file works, as well as how to use them. Therefore, simplicity and readability are stressed, while robustness is ignored.

Demo

Demo using PyGame and PyOpenGL:

3D Demo

Demo using Matplotlib:

Static Demo

Usage

There's a simple example in the source code as follows:

if __name__ == '__main__':
  asf_path = './data/01/01.asf'
  amc_path = './data/01/01_01.amc'
  joints = parse_asf(asf_path)
  motions = parse_amc(amc_path)
  frame_idx = 180
  joints['root'].set_motion(motions[frame_idx])
  joints['root'].draw()

And another example in 3Dviewer.py:

  asf_path = './data/01/01.asf'
  amc_path = './data/01/01_01.amc'
  joints = parse_asf(asf_path)
  motions = parse_amc(amc_path)
  v = Viwer(joints, motions)
  v.run()

The data can be found from CMU MoCap dataset.

Parser

The asf/amc parsers are straightforward and easy to understand. The parsers are fully tested on the CMU MoCap dataset, but I don't expect it can work on other datasets without any modification. However, it won't be hard to extend it for more complicating asf/amc files.

Visualization

Matplotlib is used to draw joints and bones in 3D statically; PyGame and PyOpenGL are used to draw motion sequence.

In 3DViewer, we support:

  • WASD to move around.
  • QE to zoom in/out.
  • ↑ ↓ ← → to rotate.
  • LEFT MOUSE BUTTON to drag.
  • RETURN to reset camera view.
  • SPACE to start/pause.
  • , and . to rewind and forward.

NOTE that my implementation of changing view is inefficient (but fluent enough) with some small bugs, but I don't have time to improve it. Pull request is welcomed.

Dependencies

  • numpy
  • transforms3d
  • matplotlib
  • pygame
  • pyopengl

All the dependencies are available via pip install.

One More Thing

If this repo is used in any publications or projects, please let me know. I would be happy and encouraged =)

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy