yanchxx / MoPA

An Blender addon uses ROMP to extract human's 3D poses from image, video or webcam and drive your own 3D character.
MIT License
243 stars 50 forks source link
blender mixamo romp

Mono Pose Animator

License: MIT GitHub repo size

This project is no longer maintained.

This addon helps you drive a 3D character in Blender using ROMP based on image, video or webcam and get a 3D character that can be drived by ROMP.

Demo

webcam_linux_local

webcam_mac_server

https://user-images.githubusercontent.com/38496769/187074564-621cd40e-6da4-4d17-839a-42bb676578d4.mp4

https://user-images.githubusercontent.com/38496769/187074566-96d89b59-4721-4ccd-9a6d-c13d4b146f71.mp4

Installation

For Blender Addon

# if your Blender python doesn't have pip, install pip first
/path/to/blender/python -m pip install opencv-python

For Simple ROMP

# create a conda environment separate from blender python
conda create -n simple_romp python=3.8 -y
conda install pytorch torchvision cudatoolkit -c pytorch # if you don't have GPU, don't execute this command
pip install --upgrade setuptools numpy cython
pip install --upgrade simple-romp

# test if romp run successfully
romp --mode=video --show_largest -i=/path/to/video.mp4 -o=/path/to/results # for GPU
romp --mode=video --show_largest --onnx -i=/path/to/video.mp4 -o=/path/to/results # for CPU

How To Use

Panel

panel

Common

Image or Video

Webcam

Drive Your 3D Character

python romp_server.py [port]
# if you start the software by clicking on its icon
# it will crash when using webcam animation
blender 

The Blender and romp_server.py is not necessary to be in the same computer. You can run romp_server.py on a linux server and use port forwarding to make the romp_server can be accessed from your local computer. A simple method is to use VS Code to set up port forwarding.

Make Your 3D Character Compatible with ROMP

All mixamo rigged characters are T-pose in Object Mode. You need to check whether your character's rest pose is A-pose or T-pose in Edit Mode.

Acknowledgement