【Blender】複数のカメラを連続してレンダリングする

みなさんこんにちは。
脱出ゲーム制作中のSammakkoです。

現在作成している脱出ゲームは素材をBlenderで作成しています。
Blenderは絵心がなくても綺麗な素材が作れる素晴らしいツールですね!
ただ、厄介なのは絵が綺麗な分レンダリングに時間がかかる!

今回は複数のカメラがある場合に一気にレンダリングする方法を紹介します。

こちらが現在制作中の脱出ゲームの部屋です。

blenderで作った部屋

俯瞰でみるとこのようになっています。

blenderで作った部屋の俯瞰

オレンジの枠はすべてカメラです。いろんな画角から撮影しているのですごいカメラの量になっています。
複数のカメラを一気にレンダリングできるなら、その間放っておけますね!

Blenderが落ちる可能性もあるので、以下の内容を実行する前にデータの保存を忘れずにしてください!
実行中はBlenderの操作ができなくなります。うまくいかない場合でも自己責任でお願いします。

連続してレンダリングする方法ですが、以下のコードを使います。

※保存先パスはレンダリングした画像を保存したい場所のパスに書き換えてください。
※レンダリングするカメラのカメラ名01,カメラ名02となっている個所はレンダリングしたいカメラの名前に変更してください。

Python

import bpy
import time

# 保存先パス
output_base = r"C:\Users\YourName\Documents\BlenderProject\\"

# レンダリングするカメラ(Outlinerで確認した正確な名前)
cameras = [
    "カメラ名01",
    "カメラ名02",
    "カメラ名03",
    "カメラ名04"
]

# Render Result ウィンドウを閉じる
for area in bpy.context.screen.areas:
    if area.type == 'IMAGE_EDITOR':
        area.ui_type = 'UV'

for i, cam_name in enumerate(cameras):
    if cam_name not in bpy.data.objects:
        print(f"カメラが見つかりません: {cam_name}")
        continue  # 無いカメラはスキップ

    print(f"▶ カメラ切り替え: {cam_name}")
    bpy.context.scene.camera = bpy.data.objects[cam_name]

    # 保存ファイル名
    bpy.context.scene.render.filepath = output_base + f"camera_{i+1}.png"

    print(f"レンダリング開始: {cam_name}")
    try:
        bpy.ops.render.render(write_still=True)
    except Exception as e:
        print(f"レンダリングでエラー発生: {e}")
        continue

    # 少し待つ(安全マージン)
    time.sleep(0.5)

print("全カメラのレンダリングが完了しました!")

    


まず、画面上部の[ウィンドウ]から[システムコンソールの切り替え]をクリックし、システムコンソールを開きます。この画面にエラーや経過が表示されます。

次にウィンドウ左上部の[エディタータイプ切替]ボタンから[テキストエディター]を選択します。

エディタータイプ切替


エディター上部の中央の[新規]をクリックし、黒い画面にコードを張り付けます。


こちらのスクリプト実行ボタンを押すと、コードが動き始めます。
実行前にデータを保存しておくのを忘れずに!


しばらくすると1枚ずつ画像が保存されていくと思います!

この記事で使用したコードはAIに書いてもらいました。
もっと簡単な方法がありましたら教えていただけると嬉しいです!

記事一覧へ戻る