This repository contains a simplified reference implementation for the paper "Control Operators for Interactive Character Animation". Note that it is not the exact implementation as in the paper or paper videos, as the original implementation was developed integrated within Unreal Engine. Here we provide an example of implementing some core ideas in Python:
- implementation and example usage of control operators
- training and interactive testing of a flow-matching-based autoregressive character controller on lafan1-resolved dataset
example.mp4
Note that the current environment is tested on Windows/Linux.
uv sync
# or
pip install -r requirements.txt- control_operators_pretrained.zip
- Extract to:
data/lafan1_resolved/ - Running the demo requires the data directory to look like this:
├── data/
│ ├── lafan1_resolved/
│ │ ├── X.npz
│ │ ├── Z.npz
│ │ ├── autoencoder.ptz
│ │ ├── database.npz
│ │ ├── UberControlEncoder
│ │ │ └── controller.ptz
- The viewer displays the character and uses the trained networks to drive animation - you will need a gamepad (tested with a xbox controller) to test the modes other than uncontrolled:
uv run controller.py # or python controller.py- To train:
uv run train.py # or python train.py