全ての表情の静止画をレンダリングする

全ての表情を一覧にした画像を作成したいことがある。カメラをセットした後、以下のスクリプトを実行する。

import bpy

dir = bpy.context.scene.render.filepath
if dir[-1] == '\\':
    dir = dir[:-1]

ext = bpy.context.scene.render.image_settings.file_format.lower()
#keys = bpy.data.shape_keys['Key'].key_blocks #Key名を指定する場合
keys = bpy.context.active_object.data.shape_keys.key_blocks

for i in range(len(keys)):
    #filename = keys[i].name #日本語だとエラー
    filename = str(i)
    path = dir + '\\' +  filename + '.' + ext
    if i > 0:
        keys[i-1].value = 0
    keys[i].value = 1
    bpy.ops.render.render()
    bpy.data.images['Render Result'].save_render(filepath = path)
    
keys[len(keys)-1].value = 0

日本語のファイル名で出力するとエラーになったので、ファイル名は番号にした。何かしら日本語にする方法はあると思う。

最後に適当な画像編集ソフトで画像を結合する。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です