blender-time-of-day について
Blenderシーンの時間帯、雰囲気、フォグを設定するスキルです。専用スクリプトで環境要素を構築し、シーン内のオブジェクトを変更せずに主要な照明パラメーターを返します。
主な機能
- 01時間帯に応じた空と照明の設定
- 02プリセットのムード効果
- 03フォグの視程と高さの調整
- 04環境露出の調整
- 05シーンオブジェクトを保ち生成内容を置換
活用シーン
- 01日の出やゴールデンアワーの設定
- 02夜景への月光・星・霞の追加
- 03サイバーパンクやホラーの雰囲気作成
- 04谷間の低いフォグの設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ el4cteo/ blender-skills --skill blender-time-of-dayインストール後、Claude Code で/blender-time-of-dayを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/fog-volumetrics.mdlight-values.mdnight-and-moods.mdscripts/_bpyx.pyscene_mood.py詳細
時刻と雰囲気
実行モデルは blender-core にあります。スタジオや製品のライティングは blender-lighting-lookdev、レンダリング設定は blender-rendering、雨、雪、濡れ、雷は blender-weather-fx にあります。
1回の呼び出し
scripts/scene_mood.py -- --time golden # sun 6 deg, warm, long shadows
scripts/scene_mood.py -- --time night --fog-visibility 250 # moonlight + stars + haze
scripts/scene_mood.py -- --time noon --overcast 0.8 # soft grey day
scripts/scene_mood.py -- --mood cyberpunk # moonless, neon rim pair, fog, bloom
scripts/scene_mood.py -- --time morning --fog-visibility 120 --fog-height 4 # valley fog
時刻:noon morning afternoon golden sunrise sunset blue_hour night moonless。雰囲気:cyberpunk horror underwater desert(それぞれにデフォルトが設定され、明示的なフラグで上書きできます)。--elevation DEG(負の値は地平線より下)と --heading DEG(0 = +Y、90 = +X)で太陽を調整します。--heading を省略すると、太陽はカメラの視線方向から135°の位置になり、形状が際立つサイド光やバックライトになります。フロントライトは平坦に見えます。
スクリプトは ENV_World、ENV_Mood コレクション(太陽または月、フォグボックス、アクセントライト)、そして雰囲気を指定した場合は ENV_Grade(コンポジターツリー)を作成します。オブジェクトには手を加えず、再実行するとスクリプトが作成したものをすべて置き換えます。キーライトの強さ、色、仰角、露出、警告を返します。
物理的に正確な状態を保つ仕組み
- 空:
ShaderNodeTexSkyのMULTIPLE_SCATTERING(5.0以降。SINGLE_SCATTERINGは旧式の「Nishita」)をsun_disc=Falseで使用します。両方のレンダーエンジンでシャープな影を作れるよう、太陽には Sun ランプを使います。ランプの色と空に対する強さは、各仰角における Blender 5.2 独自のスカイモデルで測定した表から取得します(夕日の太陽は約[1.0, 0.22, 0]、正午は約[1.0, 0.86, 0.68])。これにより、空と太陽の整合性が保たれます。 - スケール:AgX、露出0の条件で、正午にはグレーカードが0.18のとき、太陽光は約4 W/m²になります。
- 露出バランス:各プリセットでは、地面と太陽に向いた壁の間にあるグレーカードで測光し、環境ライトのスケールを調整して、カードがプリセットの明るさになるようにします(正午は1.0、ゴールデンアワーは0.85、夕日は0.7、ブルーアワーは0.35、夜は0.2、月明かりのない夜は0.1)。実用照明は通常のワット数を保ち、その明るさに対して正しく見えます。
- 物理的な代替方法:
--use-exposureを指定すると、差分がview_settings.exposureに反映されます。結果にはpractical_scaleが返されます。同じ見た目を保つには、ランプのワット数にこの値を掛けてください。 - 夜:月には、スケーリング前で0.3 W/m²のSunランプを使います(35°、寒色の
[0.72, 0.82, 1.0]。月光の物理的な色温度は約4100 Kで、プルキンエシフトによって青く見えます)。夜空のドームは天頂に向けてグラデーションになり、地平線には都市の光(ナトリウム灯のオレンジ色、サイバーパンクではマゼンタ)があり、星はカメラレイに対してのみ表示されます。 - フォグ:シーンとカメラを囲むボリュームボックスです。密度 = 3.912 / 可視距離(Koschmiederの式:可視距離をメートル単位で指定すると、1メートルあたりの消散係数になります)。指数関数的な地表フォグを追加するには
--fog-heightを指定します。フォグで失われる光を補うため、露出を最大4 EV調整します。これにより、フォグが暗くなるだけでなく、濃い状態を保てます。カメラから見える背景はフォグの色にブレンドされます。
フォグとボリューメトリクス
| 見た目 | --fog-visibility(m) |
|---|---|
| 澄んだ空気/遠景の霞 | 5000–20000 |
| 霞、砂漠の砂塵 | 1000–3000 |
| 霧 | 500–1000 |
| 濃霧 | 100–500 |
| 深い霧、ホラー | 20–60 |
| 水中(澄んだ状態 → 濁った状態) | 30 → 8 |
- ゴッドレイには4つの要素が必要です:強いキーライト(太陽/スポットライト)、遮蔽物(窓、木、ゴボ)、前方散乱(
--fog-anisotropy 0.6–0.85)、EEVEE のuse_volumetric_shadows(スクリプトが有効にします)。 - Cycles 5.x はデフォルトで ヌル散乱を使ってボリュームをレンダリングします(非バイアスで、ステップサイズを使用しません)。
scene.cycles.volume_biased=Trueを設定すると、レイマーチング(volume_step_rate)に戻ります。高さフォグは不均質なボリュームでノイズが多くなるため、サンプル数を増やすか、ノイズ除去を行ってください。 - EEVEE のボリュームはフロクセルです。ディテールを高めるには、
volumetric_tile_sizeを4から2に変更し、volumetric_endがフォグ全体をカバーするようにします(スクリプトが設定します)。カメラの近くに非常に濃い霧があると縞模様が生じるため、その場合はCyclesを推奨します。 - ボリュームを使わずに安価に遠景の霞を表現するには、コンポジターでミストパス(
view_layer.use_pass_mist、world.mist_settings.start/depth)を合成します。 - 詳細については、references/fog-volumetrics.md を参照してください。
ルール
- まず光の向き(横から/後ろから)を決めてから、時間帯を決めます。太陽が低い時間帯(ゴールデンアワー、夕暮れ)では、長い影と、冷たい空のフィルに対する暖色のキーライトが生まれ、最も見映えのよい組み合わせになります。
- 夜は「青みを加える」だけではありません。コントラスト(月光による硬い影、暖色の実用光源がつくる光だまり、暗いシルエット)を保ち、彩度を下げ、実用光源を加えます。references/night-and-moods.md を参照してください。
- 実用光源には実際の色温度を使用します(
light.use_temperature=True、light.temperature)。ナトリウム灯は2000 K、タングステン灯は2700 K、暖色LEDは3000 K、昼白色LEDは4000 K、ネオンは発光管として設定します。ワット数と換算値については references/light-values.md を参照してください。 - ビュー変換はAgXのままにします(スクリプトでは、
AgX - Punchyのようなムードルックとともに設定されます)。--keep-viewを指定すると、現在の設定が保持されます。 - 各ムードはビューポートではなく、レンダーで確認します。フォグ、星、ブルームはレンダー出力にしか表示されません。
blender-renderingのrender_batch.py --preset previewを使用してください。
注意点
- 地平線より下では、空テクスチャに暗い「地面」が表示されます。地面や地形を地平線まで延ばすか、地平線が画面に入らないようにします。
- ブルーム/グレアのしきい値は、ビュー露出を適用する前のシーンリニア値です。
--use-exposureを指定すると、スクリプトがしきい値を調整します。 ENV_Grade以外のコンポジターのツリーは、スクリプトで上書きされず、その旨が報告されます。SunLight.use_nodesとライトのノードツリーは5.xで非推奨となっており、6.0で削除される予定です。代わりにライトの色とtemperatureを使用してください。- 空テクスチャの
sun_directionが適用されるのは、従来のPreetham/Hosekモデルのみです。sun_rotationは、0で太陽を+Y方向に、90°で+X方向に配置します(実測値)。 - レンダーエンジンを変更しても、スクリプトを再実行する必要はありません。スクリプトはEEVEEとCyclesの両方のボリューム設定を行います。