body-pose-animation/example_pose.py
2021-02-08 21:03:19 +01:00

70 lines
1.2 KiB
Python

# library imports
import numpy as np
import time
# local imports
from renderer import DefaultRenderer
from model import SMPLyModel
from utils.general import load_config
# this a simple pose playground with a async renderer for quick prototyping
# load and select sample
config = load_config()
model = SMPLyModel.model_from_conf(config)
# try changing angles
pose = model.body_pose
initial_pose = model.body_pose.detach().clone()
# left elbow
# pose[:, 56] = -np.pi / 2
# # right elbow
# pose[:, 53] = np.pi / 2
# # left knee
# pose[:, 12] = np.pi / 2
# # right knee
# pose[:, 9] = np.pi / 2
# right knee
# back x axis rotation
#pose[:, 24] = np.pi / 2
# back y axis rotation
#pose[:, 25] = np.pi / 2
# back left rotation
#pose[:, 26] = np.pi / 2
# back left rotation
# pose[:, 1] = np.pi / 2
pose[:, 37] = -np.pi / 2
pose[:, 40] = np.pi / 2
model_out = model(
pose=pose
)
r = DefaultRenderer()
r.setup(
model,
model_out=model_out
)
r.start()
# for angle_idx in range(len(pose[0])):
# print("angle:", str(angle_idx))
# pose_copy = initial_pose.detach().clone()
# pose_copy[:, angle_idx] = np.pi / 2
# model_out = model(
# body_pose=pose_copy
# )
# r.render_model(model, model_out)
# time.sleep(1)