light-scene について
Engine のシーン照明とレンダリングを扱うスキルです。スクリーンショットを確認しながら、環境光、トーンマッピング、影、ポストエフェクトを調整する手順を示します。
主な機能
- 01環境光と環境マップの調整
- 02トーンマッピングと露出の設定
- 03影の有効化と解像度設定
- 04CameraFrame のポストエフェクト
- 05照明と色の問題の診断
活用シーン
- 01照明のない面を明るくする
- 02露出とライト強度を調整する
- 03影や空で被写体を際立たせる
- 04白飛びや黒つぶれを調査する
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ playcanvas/ skills --skill light-sceneインストール後、Claude Code で/light-sceneを入力して読み込まれたか確認します。
詳細
シーンのライティングとレンダリング
エンジンのデフォルト設定では、平坦で暗い画像になります。意図的に変更してください。スクリーンショットを確認しながら、一度に1種類の値を調整します。
変更するデフォルト設定
scene.ambientLightは黒なので、ライティングされていない面は真っ黒にレンダリングされます。環境アトラスやスカイボックスからの環境光と反射光を追加するか、アンビエントカラーを設定してください。- カメラのデフォルトは
TONEMAP_LINEARです。TONEMAP_NEUTRAL、TONEMAP_ACES2、またはTONEMAP_FILMICを選択し、(CameraFrameを使う場合はcameraFrame.rendering.toneMappingで)露出を設定してから、光の強度を調整してください。 - シャドウは無効になっています。キーライトで
castShadowsを有効にしてください。ディレクショナルライトのshadowDistanceは 40 m なので、大きなシーンではカスケードを使用し、静的なシャドウにはSHADOWUPDATE_THISFRAMEを使用してください。フレーム内の被写体に合わせて解像度を設定します。 - ライトはローカル座標の -Y 方向を照らします(
apply-conventions)。
標準機能を活用する
CameraFrameはトーンマッピング、ブルーム、SSAO、DOF、ビネット、カラーグレーディングを処理します。変更後にupdate()を呼び出し、アプリとともに破棄してください。ブルームの強度は、ドキュメントに記載された 0~0.1 の範囲内に保ちます。scene.sky.type(SKYTYPE_DOME、SKYTYPE_BOX、SKYTYPE_INFINITE)で環境スカイをシーンになじませます。ProceduralSkyスクリプトは連動する太陽光を管理します。まずライトの基本強度を設定し、その後、ライトではなくスカイの高度と方位角を調整してください。ShadowCatcherスクリプトを使うと、ライティングされた床がない被写体をシーンになじませられます。- クラスタードライティングはデフォルトで有効なので、多数のポイントライトやスポットライトも低コストで使用できます。
- 静的なライトは
bake-lightingでベイクし、シェーディングのスタイルはoverride-shader-chunksで調整します。
find-examples で各インテグレーションのサンプルを探してください。
注意すべき兆候
- アルベドが白っぽくなる:マテリアルを暗くする前に、露出、スカイ、ライトの強度を下げてください。
- 広い範囲が白飛び、または黒つぶれする:ポストエフェクトを追加する前に、露出とライトのバランスを調整してください。
- フォグの色がスカイの地平線と異なると、地平線に境目が生じます。
コメント
Markdown 対応