mcpField
B
blender-rendering

blender-rendering

github.com/el4cteoクリエイティブ・メディア600127 回インストール今日更新
リポジトリ

blender-rendering について

Blenderで静止画、アニメーション、複数カメラのレンダリングを設定・実行するスキルです。エンジンや品質、色管理、出力形式、コンポジター、CIやレンダーファーム向けのコマンドライン処理を扱います。

主な機能

  1. 01プリセットによる一括レンダリング
  2. 02Cycles、EEVEE、Workbenchの設定
  3. 03品質と色管理のガイド
  4. 04静止画、動画、EXRの出力
  5. 05コマンドラインとレンダーファーム対応

活用シーン

  1. 01プレビュー画像や最終画像のレンダリング
  2. 02アニメーションやターンテーブル動画の作成
  3. 03複数カメラのEXRショットの出力
  4. 04CIやレンダーファームでのレンダリング

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/el4cteo/blender-skills --skill blender-rendering

インストール後、Claude Code で/blender-renderingを入力して読み込まれたか確認します。

同梱ファイルscripts/_bpyx.pyscripts/render_batch.py

詳細

レンダリング

実行モデルについては blender-core を、シーンの照明とカメラについては blender-lighting-lookdev を参照してください。

1回の呼び出し

scripts/render_batch.py -- --engine CYCLES --preset final --res 1920 1080 --out //render/hero_#### --frames 1
scripts/render_batch.py -- --preset preview --frames 1-120 --format MP4 --out //render/turntable
scripts/render_batch.py -- --cameras CamA CamB CamC --format EXR_MULTI --out //render/shots/

プリセット:preview(Cycles 64 spp、しきい値 0.05、解像度 50%、EEVEE 16)、final(512 spp、0.01、EEVEE 128 + レイトレーシング)、product(1024 spp、透明な背景)。GPU は自動的に選択されます(OptiX > CUDA > HIP > Metal > oneAPI)。デノイザーもそれに合わせて選択されます(OptiX または OpenImageDenoise)。

エンジンの選択

エンジン用途備考
Cycles最終品質、製品画像、建築ビジュアライゼーション、ガラス/SSS/コースティクス、ベイクパストレーサー。GPU を設定し、適応型サンプリングとデノイズを使用します
EEVEE(5.x、旧称「Next」)高速なルックデブ、スタイライズ、モーショングラフィックス、プレビューレイトレース反射/GI(use_raytracing)、仮想シャドウマップ。ヘッドレスでも GPU が必要です
Workbenchプレイブラスト、クレイ/マットキャップのレビュー、QA シート即時に表示できますが、照明の正確さはありません
エンジン ID:CYCLES、BLENDER_EEVEE、BLENDER_WORKBENCH。

Cycles の品質調整(影響の大きい順)

  1. 適応型サンプリング(最終出力は adaptive_threshold 0.01、プレビューは 0.05)とデノイズ(アルベドと法線パスを使用する OIDN、denoising_input_passes="RGB_ALBEDO_NORMAL")。サンプル数だけを増やすのは、最も効率の悪い解決策です。
  2. ライトパス:室内ではディフューズバウンスを 4 以上にします。製品画像では、合計 12、光沢 4、ガラスの透過 8~12 にします。間接光を 5~10 にクランプすると、わずかなエネルギー損失でファイアフライを抑えられます。
  3. 多数のライトを使う場合はライトツリー(use_light_tree、有効)を使用します。難しい間接光にはパスガイディング(CPU のみ)を使用します。
  4. 小さなライトを多数使うより、大きなライトを少数使うほうが効果的です。発光メッシュはエリアライトよりノイズが多くなります。
  5. 永続データ(render.use_persistent_data)を使うと、アニメーションやターンテーブルの処理が速くなります。プレビューでは simplify(最大細分化レベル、テクスチャ制限)を使用します。
  6. 5.2:テクスチャキャッシュ(render.use_texture_cache、use_auto_generate_texture_cache)は、テクスチャを多用するシーンで .tx ミップタイルを生成し、メモリ使用量を削減します。

カラーマネジメント(プロジェクトごとに一度決定)

  • AgX(デフォルト):写真向けで、明るいハイライトを適切に処理します。ルック:AgX - Punchy、- Base Contrast など。
  • Khronos PBR Neutral:アルベドを忠実に表示します。製品/E コマースやアセットのレビューに使用し、three.js の NeutralToneMapping と合わせます。
  • Standard:ピクセル値との一致が必要なグラフィック/UI/テクスチャ出力向けです。
  • ACES 1.3 / 2.0:VFX パイプライン向け(プレート、ほかの DCC)。
  • 全体の明るさを調整する場合は、ライトの出力ではなく露出(view_settings.exposure)を使用します。ディスプレイデバイスは sRGB、または HDR 納品では Display P3/Rec.2100 に設定します。

出力形式

  • 静止画:PNG 8/16 ビット(フィルムが透明な場合は RGBA)、または Web プレビュー用の JPEG。
  • コンポジット/VFX:EXR multilayer(EXR_MULTI、DWAA 16 ビット)をパス(Denoising Data、Cryptomatte、AO、Mist、Z)とともに使用します。5.0 ではパス名が変更されました(Diffuse Color、Depth など)。
  • 動画:まずフレームをレンダリング(PNG/EXR)してからエンコードします(FFmpeg または VSE)。MP4 の途中でクラッシュすると、すべて失われるためです。プレビューには MP4 への直接出力でも問題ありません。file_format より前に image_settings.media_type を設定します(5.0 以降)。
  • 透過:film_transparent=True と PNG/EXR を使用します。ガラスのみのアルファには film_transparent_glass が必要です。

コンポジター(5.0 以降の API)

ng = bpy.data.node_groups.new("Comp", "CompositorNodeTree"); scene.compositing_node_group = ng
ng.interface.new_socket("Image", in_out="OUTPUT", socket_type="NodeSocketColor")
rl, glare, out = ng.nodes.new("CompositorNodeRLayers"), ng.nodes.new("CompositorNodeGlare"), ng.nodes.new("NodeGroupOutput")
ng.links.new(rl.outputs["Image"], glare.inputs["Image"]); ng.links.new(glare.outputs["Image"], out.inputs[0])

Composite ノードはなくなりました。グループ出力が最終画像になります。多くのノードオプションは入力ソケットになっています(Glare の Type、Threshold、Strength など)。blender-geometry-nodes/scripts/gn_builder.py で --describe を実行してください。File Output ノード:directory、file_name、file_output_items。

CLI レンダリング(レンダーファーム、CI)

  • blender -b scene.blend -E CYCLES -o //out/frame_#### -F PNG -s 1 -e 120 -a はアニメーションをレンダリングします。-f 10 は単一フレームをレンダリングします。Python 引数は -- の後に指定します。
  • -- --cycles-device OPTIX(または CUDA/HIP/METAL/ONEAPI)を指定すると、Python を使わずにデバイスを選択できます。
  • -s/-e を使ってフレームを複数のマシンに分割するか、共有ストレージ上でプレースホルダーと上書き禁止(render.use_placeholder、use_overwrite=False)を使用します。

注意点

  • scene.render.engine の列挙値は、アドオンのエンジンを網羅していません。try/except で代入してください(スクリプトではそのようにしています)。
  • バックグラウンドで EEVEE を使う場合も、GPU コンテキストが必要です。CI に GPU がない場合は、Cycles CPU または Workbench を使用してください。
  • bpy.ops.render.render(write_still=True) は render.filepath に書き込みます。write_still を指定しない場合、結果は Render Result にのみ保存されます。
  • ガラスやコースティクスにノイズが発生する場合は、必要な場合にのみコースティクス(caustics_refractive)を有効にする、透過バウンス数を増やす、または窓には Thin Wall(5.2)を使って擬似的に再現してください。
  • ファイアフライ対策:間接光をクランプし、グロッシー用フィルター/グロッシーのぼかし(blur_glossy 0.5~1)を使い、光源を大きくしてください。

コメント