User Manual

影を使用すればゲームにリアリティを加えることができます。しかし、動的な(リアルタイムな)影は、実行時のパフォーマンスに大きな負荷を加えてしまいます。パフォーマンスへの影響を少なく、シーンに静的な影を追加する方法についてはLightmapsを参照してください。

Characters with shadow casting

PlayCanvasにはシャドウマッピングという影を生成するアルゴリズムが実装されています。プラットフォーム間の互換性があり、モバイル端末とデスクトップ両方で動作することが保証されています。さらに、影の機能は無料で誰でも使うことができます。ゲームの見栄えをよくするためにProアカウントを作る必要はありません。

影をつける

指向性ライト

デフォルトで、PlayCanvasではシャドウキャスティングが無効になっています。自身で明示的に有効にする必要があります。影を有効にするのは簡単です。まず第一に、影を落としたいシーンを決めます。Inspectorパネルで階層内のライトを選択してそのプロパティを編集します。すべてのライトには、「Cast Shadows」のオプションがあります。シーンのグラフィックオブジェクトの影を生成するには、このオプションにチェックを入れます。

モデルコンポーネント

シーン内で影を落とす又は受けるグラフィカルオブジェクトを指定する必要があります。デフォルトでは、すべてのモデルコンポーネントは影を受けるのみで、落としません。したがって、エンティティに影を落とさせるには、階層でエンティティを選択して、Inspectorでモデルコンポーネントを見つけて、「Cast Shadows」オプションにチェックを入れます。

これで、Editorのビューポートに影が表示されるはずです。

影のチューニング

PlayCanvasで使われているシャドウマッピングは有限の解像度しか持ちませんが、パラメータを調整することで見た目を良くすることができます。Light Component UIに次のプロパティがあります。

投影距離のチューニング

shadow distance(投影距離)はビューポイントから指向性ライトの影が描画されなくなる距離を決めるパラメータです。この値が小さければ小さいほど、影は鮮明になります。この値を小さくしすぎると、シーン内で視点を動かした時に突然影が現れるかもしれません。プレイヤーがどれだけ遠くを見るかという要素と、影がおおむねきれいに見えるバランスを考えて値を決めてください。

影野解像度

すべての光源はシャドウマップを使用して影を投影します。シャドウマップは256x256, 512x512, 1024x1024, 2048x2048のいずれかの解像度を設定できます。この値はlightコンポーネントのインタフェースにも設定できます。この解像度が高ければ高いほど、影は鮮明になります。ただし、高い解像度の影はレンダリングに時間がかかるため、パフォーマンスの影のクオリティのバランスを考えて設定してください。

影のバイアス

シャドウマッピングは非常に目立つ不自然な描画をする場合があります。もし影の帯や斑点状のノイズを見つけたら、影のバイアスを調整することで解決する場合があります。

法線方向のオフセットバイアス

'影の斑点'と呼ばれる不自然な表示は目立つ問題ですが、シャドウバイアスを調整して対処することができます。ただし、この調整をすると’ピーターパン現象'が発生し、影によって多少物体が浮いているように見えてしまうことがあります。

法線方向のオフセットバイアスによってこの問題に対処することができます。深さ方向のバイアスに加えて、シャドウマップの参照時に使われるUVマッピングをわずかに調整することで、影の斑点とピーターパン現象の二つを同時に避けることができます。フラグメントの位置を法線方向にずらす"法線方向のオフセット"はシャドウバイアスだけで問題に対処するよりも、大幅に見た目を改善します。

Soft Shadow 対 Hard Shadow

影の輪郭はpenumbra(半影)と呼ばれています。これは、影に柔らかい輪郭を与える、暗から明への移行です。PlayCanvasのデフォルトでは、影の輪郭は柔らかく設定されていますが、この設定を変更することで輪郭を鋭くすることもできます。柔らかい輪郭と鋭い輪郭の比較は以下を参照してください。

Soft Shadow 対 Hard Shadow

柔らかい影はGPU上でシャドウマップのサンプルを複数実行することによって達成できます。使用されるアルゴリズムは、Percentage Closest Filtering または PCFと呼ばれています。このアルゴリズムは、9つのローカライズされたサンプル(3×3の行列)をシャドウマップから読み出します。硬い影の場合は1つのみです。

影のサンプリングタイプは、素材ごとに指定されるので、オプションはOtherセクションのMaterial Editor内にあります。

パフォーマンスの考慮事項

影を有効にすると、パフォーマンスに影響があります:

This site is translated by the community. If you want to get involved visit this page