blender : solidとrenderの画面毎に炎を作る分ける~3D Viewで炎を表現する方法~情報収集編 [2026/05/05]

Cropped d4cd7ac1381dc72b731d1c4cdf542dd3.png

4. Final Renderでの炎表現

目的

Final Renderは、実際に画像や動画として出力される結果です。

Rendered表示で確認していても、最終レンダーでは次の要素で見え方が変わることがあります。

影響要素内容
レンダーエンジンEevee / Cyclesで表現が異なる
透明設定Blend ModeやAlpha設定が影響
ライト設定炎の発光感や周囲の明るさに影響
カラーマネジメントFilmic / Standardなどで色が変わる
Bloom / Glare発光の見え方に影響
Samplingノイズや透明の品質に影響

最終的な炎の品質は、3D Viewだけでなく、必ずFinal Renderでも確認する必要があります。


Solid用炎とRender用炎を分ける場合の問題

炎表現では、次のように2つのオブジェクトを用意したくなることがあります。

Flame_SolidPreview:Solid表示用のメッシュ炎
Flame_Render:Rendered用のShader Node炎

この考え方自体は有効です。

しかし、注意点があります。
Blender標準では、3D Viewの表示モードがSolidかRenderedかによって、別々のオブジェクトを完全自動で出し分ける単純な設定は基本的にありません。

そのため、何もしないと、

  • Solid用炎
  • Render用炎

が同時に表示されてしまうことがあります。


解決方法1:1つの炎オブジェクトにまとめる

最も単純で安定する方法は、炎を1つのオブジェクトにまとめることです。

Flame_Main
├─ メッシュ形状:Solidで見える
├─ Viewport Display Color:Solid用の色
├─ Shader Node:Rendered用の炎表現
└─ Driver:ScaleやShape Keyを揺らす

この方法では、SolidでもRenderedでも同じオブジェクトを使います。

表示モード見える内容
Solid炎メッシュと表示色
Material PreviewShader Nodeの炎
RenderedShader Nodeの炎
Final RenderShader Nodeの炎

二重表示の問題が起きにくいため、板ポリゴン型の炎には特に向いています。


解決方法2:CollectionやView Layerで切り替える

Solid用炎とRender用炎を別オブジェクトにしたい場合は、CollectionやView Layerで管理します。

Collection: FLAME_SOLID
└─ Flame_SolidPreview

Collection: FLAME_RENDER
└─ Flame_Render

View Layerを分ける場合は、次のようにします。

View Layer表示する炎用途
WORK_SOLIDFlame_SolidPreview作業・位置確認
CHECK_RENDERFlame_Renderレンダー確認
FINAL_RENDERFlame_Render最終出力

この方法は、標準機能だけで管理できるため安定しています。

View Layerは、コレクションの表示状態を分けて管理できる仕組みとして説明されています。
出典:https://docs.blender.org/manual/en/latest/render/layers/introduction.html

Collectionは、オブジェクトを整理・表示制御する単位として利用できます。
出典:https://docs.blender.org/manual/en/latest/scene_layout/collections/collections.html


解決方法3:Pythonアドオンで自動切替する

より高度な方法として、Pythonで3D Viewの表示モードを監視し、

  • Solidなら Flame_SolidPreview を表示
  • Material Preview / Renderedなら Flame_Render を表示

という自動切替を行うことも可能です。

考え方は次の通りです。

if viewport shading == SOLID:
Flame_SolidPreview = 表示
Flame_Render = 非表示

if viewport shading == MATERIAL or RENDERED:
Flame_SolidPreview = 非表示
Flame_Render = 表示

Blender Python APIには、3D ViewのShading Typeに関する情報が用意されています。
出典:https://docs.blender.org/api/current/bpy.types.View3DShading.html

ただし、複数の3D Viewを開いている場合、どのViewの状態を基準にするかという問題があるため、アドオン化する場合は設計が必要です。


Driverで炎の揺らぎを作る

Solid用炎でもRendered用炎でも、driverを使うことで炎の揺らぎを表現できます。

例えば、Solid用の炎メッシュの Scale Z に次のようなdriverを設定します。

1.0 + 0.08 * sin(frame * 0.25)

これにより、炎が上下に伸び縮みします。

左右揺れには Location X を使います。

0.03 * sin(frame * 0.37)

回転揺れには Rotation Z を使います。

0.08 * sin(frame * 0.22)

複数の板ポリゴンに少しずつ異なる式を入れると、より自然な炎の揺らぎになります。


コメント

コメントを残す

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

CAPTCHA