Skip to content

About

Host-independent C++ animation data model and MANIM codec

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

OneAnimData

OneAnimData is a small C++17 library for host-independent scalar animation data and the MANIM v7 binary format.

The data model is dimension-neutral: a target owns named scalar channels, so the same model can store 2D properties such as x, y, rotation and opacity, or 3D/DCC properties such as translateX. Host object lookup, coordinate conversion and scene mutation belong in adapters and are intentionally not part of this library.

Features

  • Maya-free animation clip, node, curve and key types
  • Stable MANIM v7 reader, writer and header inspection
  • All five existing compact key encodings
  • Optional LZ4 payload compression
  • Bounded parsing and corrupt/truncated input checks
  • Explicit little-endian encoding rather than compiler-dependent packed-struct I/O

Dependency

The implementation includes <lz4.h> and expects the embedding build to provide LZ4 headers and implementation. No Maya SDK is required.

API

#include "one_anim_data_io.h"

oneAnimData::AnimClip clip;
oneAnimData::Status status = oneAnimData::readFile("walk.animdata", clip);

oneAnimData::WriteOptions options;
options.description = "walk cycle";
status = oneAnimData::writeFile("copy.animdata", clip, options);

MANIM v7 preserves historical Maya tangent identifiers for compatibility. A non-Maya adapter may support a subset, bake curves, or translate them to its own interpolation model.

About

Host-independent C++ animation data model and MANIM codec

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages