In-Betweening is the process of drawing transition frames between temporally-sparse keyframes to create a smooth animation sequence. This work presents a novel transformer based in betweening technique that serves as a tool for 3D animators.
viz_final.mp4
gen_final.mp4
- Download the dataset from Ubisoft's Github Repository and extract it to
/data/lafan1/
-
Install Pre-Requisites
- Python 3.9
- PyTorch 1.10
-
Clone the repository
git clone https://github.com/Pavi114/motion-completion-using-transformers
-
Copy config/default.yml to config/
model_name
.yml and edit as needed. -
Install Python Dependencies
-
Create a virtualenv:
python3 -m virtualenv -p python3.9 venv
-
Install Dependencies:
pip install -r requirements.txt
-
First activate the venv: source venv/bin/activate
train.py [-h] [--model_name MODEL_NAME] [--save_weights | --no-save_weights] [--load_weights | --no-load_weights]
optional arguments:
-h, --help show the help message and exit
--model_name MODEL_NAME
Name of the model. Used for loading and saving weights.
--save_weights, --no-save_weights
Save model weights. (default: False)
--load_weights, --no-load_weights
Load model weights. (default: False)
visualize.py [-h] [--model_name MODEL_NAME]
optional arguments:
-h, --help show the help message and exit
--model_name MODEL_NAME
Name of the model. Used for loading and saving weights.
evaluate.py [-h] [--model_name MODEL_NAME]
optional arguments:
-h, --help show the help message and exit
--model_name MODEL_NAME
Name of the model. Used for loading and saving weights.
-
Navigate to
./viz
directorycd ./viz
-
Install NPM Modules
npm install
-
Build visualizer
npm run build
-
Copy output file to
./dist
cp output/[MODEL_NAME] viz/dist/static/animations/[MODEL_NAME]
-
Run viz
npm start