Blenderのpythonスクリプトを使用して複数の画像をレンダリングおよび保存しようとしています。BlenderGUIを使用して画像をレンダリングおよび保存する方法を知っていますが、ネストされたループのセットを使用し、複数の画像を保存する必要があります。画像をレンダリングすることができ、出力が成功した状態で画像を保存すると思いますが、保存先とファイルパスを編集するときコンテキストが間違っているというエラーが表示されます。
_Blender 2.63
_で行ったことは次のとおりです。
_bpy.data.scenes['Scene'].render.filepath = '/home/user/Documents/image.jpg'
bpy.ops.render.render( write_still=True )
_
これは、VRパノラマを作成することです(周囲の一連のオブジェクト画像)。そして、私はこのアルゴリズムで終了しました:
Empty
ノードを作成し、その位置と回転をidentityに設定します(position:_0, 0, 0
_、rotation:_0, 0, 0
_)最終的には、複数の写真(_step_count
_で定義) _/home/user/VR
_ディレクトリ内のオブジェクトの周りになります。
_cam = bpy.data.objects['Camera']
Origin = bpy.data.objects['Empty']
step_count = 32
for step in range(0, step_count):
Origin.rotation_euler[2] = radians(step * (360.0 / step_count))
bpy.data.scenes["Scene"].render.filepath = '/home/user/VR/vr_shot_%d.jpg' % step
bpy.ops.render.render( write_still=True )
_
このようなもの:
import bpy
bpy.context.scene.render.filepath = 'pathToOutputImage'
bpy.context.scene.render.resolution_x = w #perhaps set resolution in code
bpy.context.scene.render.resolution_y = h
bpy.ops.render.render()
以下を行う必要があります。 i
ループの後の2行目のfor
は、ファイルループのループインデックスです。
これは、コンソールで実行しているときにも、コマンドラインからも機能することを確認しました。 1つのファイルをレンダリングした後、オブジェクトを削除することを忘れないでください。 (汎用ではないため、removeコマンドはここでは指定しません。オブジェクトにリンクがある場合、そのコマンドには特定の引数が必要です)
for area in bpy.context.screen.areas:
if area.type == 'VIEW_3D':
area.spaces[0].viewport_shade = 'RENDERED'
bpy.context.scene.render.image_settings.file_format='JPEG'
bpy.context.scene.render.filepath = ".pic%0.2d.jpg"%i
bpy.ops.render.render(use_viewport = True, write_still=True)