88 lines
2.6 KiB
Python
88 lines
2.6 KiB
Python
import bpy
|
|
import os
|
|
import numpy as np
|
|
import sys
|
|
|
|
filename = str(sys.argv[-1])
|
|
root_dir = str(sys.argv[-2])
|
|
|
|
model_bsList = ["browDownLeft",
|
|
"browDownRight",
|
|
"browInnerUp",
|
|
"browOuterUpLeft",
|
|
"browOuterUpRight",
|
|
"cheekPuff",
|
|
"cheekSquintLeft",
|
|
"cheekSquintRight",
|
|
"eyeBlinkLeft",
|
|
"eyeBlinkRight",
|
|
"eyeLookDownLeft",
|
|
"eyeLookDownRight",
|
|
"eyeLookInLeft",
|
|
"eyeLookInRight",
|
|
"eyeLookOutLeft",
|
|
"eyeLookOutRight",
|
|
"eyeLookUpLeft",
|
|
"eyeLookUpRight",
|
|
"eyeSquintLeft",
|
|
"eyeSquintRight",
|
|
"eyeWideLeft",
|
|
"eyeWideRight",
|
|
"jawForward",
|
|
"jawLeft",
|
|
"jawOpen",
|
|
"jawRight",
|
|
"mouthClose",
|
|
"mouthDimpleLeft",
|
|
"mouthDimpleRight",
|
|
"mouthFrownLeft",
|
|
"mouthFrownRight",
|
|
"mouthFunnel",
|
|
"mouthLeft",
|
|
"mouthLowerDownLeft",
|
|
"mouthLowerDownRight",
|
|
"mouthPressLeft",
|
|
"mouthPressRight",
|
|
"mouthPucker",
|
|
"mouthRight",
|
|
"mouthRollLower",
|
|
"mouthRollUpper",
|
|
"mouthShrugLower",
|
|
"mouthShrugUpper",
|
|
"mouthSmileLeft",
|
|
"mouthSmileRight",
|
|
"mouthStretchLeft",
|
|
"mouthStretchRight",
|
|
"mouthUpperUpLeft",
|
|
"mouthUpperUpRight",
|
|
"noseSneerLeft",
|
|
"noseSneerRight",
|
|
"tongueOut"]
|
|
|
|
obj = bpy.data.objects["face"]
|
|
|
|
bpy.context.scene.render.engine = 'BLENDER_WORKBENCH'
|
|
bpy.context.scene.display.shading.light = 'MATCAP'
|
|
bpy.context.scene.display.render_aa = 'FXAA'
|
|
bpy.context.scene.render.resolution_x = int(512)
|
|
bpy.context.scene.render.resolution_y = int(768)
|
|
bpy.context.scene.render.fps = 30
|
|
bpy.context.scene.render.image_settings.file_format = 'PNG'
|
|
|
|
cam = bpy.data.objects['Camera']
|
|
cam.scale = [2, 2, 2]
|
|
bpy.context.scene.camera = cam
|
|
|
|
output_dir = root_dir + filename
|
|
blendshape_path = root_dir + filename + '.npy'
|
|
|
|
result = []
|
|
bs = np.load(blendshape_path)
|
|
|
|
for i in range(bs.shape[0]):
|
|
curr_bs = bs[i]
|
|
for j in range(52):
|
|
obj.data.shape_keys.key_blocks[model_bsList[j]].value = curr_bs[j]
|
|
bpy.context.scene.render.filepath = os.path.join(output_dir, '{}.png'.format(i))
|
|
bpy.ops.render.render(write_still=True)
|