Frames
  • Home
  • Work
  • About
  • Library
  • Contact

アクタを非表示にして影だけを表示したい

11/23/2015

0 コメント

 
ものすごく久しぶりな投稿です。

建築パースには鳥瞰アングルというものがあります。
下の画像のように鳥の目線で天井を透かして空間を見渡すアングルで
非常にポピュラーです。

画像
UE4でこれを行うには天井のアクタを
非表示にして影だけを表示したいわけです。
なぜなら、天井のアクタごと消してしまうと太陽の光が天井からも入ってしまって
屋根なし建築になってしまいますのでそれではマズいですよね。​
画像
これは天井のアクタを選択した状態で「Rendering」から「Actor Hidden In Game」をチェックしてライトをビルドしただけでできました。

次に下の画像を見ると少し様子が異なります。
上の椅子だけ太陽の光が当たっているようになってしまいました。
さっきとシーンとの違いは上の椅子の可動性がムーバブルになっています。​
画像
シーン上のアクタにムーバブルなアクタが含まれる場合は
下の画像の「Hidden Shadow」にもチェックをいれてあげてください。
すると最初の画像の様にアクタは非表示にしつつ影だけは表示することができます。
画像
ところでこいつをスケルタルメッシュに使うとどうなるんだと思って
「ThirdPersonTemplate」のグレーマンに適用して試してみました。
なんかアイデア次第でゲームに使えそうですよね!

画像
0 コメント

ムーバブルなStaticMeshにStaricLightでライトマップをベイクする

5/28/2015

1 コメント

 
基本的にライトマップは直接光間接光ともにはStatic(動かない)なメッシュにしかベイクできません。

つまり、Movable(動く)なStaticMeshはStationary LightかMovable Lightで直接光を当てないと真っ暗になるはずです。しかし、ライティングのビルド時に生成されるVolumeLightingSamples(間接ライティング キャッシュ)によって、簡易的な間接光が反映されるので真っ暗にはなりません。公式ドキュメントによると以下のようになります。

  • ライトマスはレベルのあらゆる場所にライティング サンプルを配置し、ライティングのビルドの際にサンプルの間接ライティングを計算します。

  • 動的オブジェクトをレンダリングする際に、オブジェクトに利用可能な光源処理が存在するかを 間接ライティング キャッシュ がチェックし、 存在する場合はそれを使用します。

  • 光源処理が存在しない場合 (オブジェクトが新規または移動が多すぎた場合)、 間接ライティング キャッシュ は事前に計算された ライティングのサンプルを使用してライティングを補間します。


引用元  https://docs.unrealengine.com/latest/JPN/Engine/Rendering/LightingAndShadows/IndirectLightingCache/index.html

画像
見難いですが下の画像の赤丸で囲った黒っぽい点がVolumeLightingSamplesです。ライティングのビルド時に計算してくれます。
画像
ちなみにこれはエディタの「表示」の中の「VolumeLightingSamples」にチェックを入れると可視化できます。
しかしながら「VolumeLightingSamples」の間接光だけでは困ることがありました。
さっきもチラ見えしていましたが以下の画像です。
画像
画像の突き当り上部にStaticSpotLightがあります。
向かい合ったドアは同じマテリアルですが左は暗いので違ったマテリアルが設定してあるように見えます。右はStaticなドア、左はMovableなドアです。
左のドアはライトマップがベイクされないため、直接光は無視されVolumeLightingSamplesによる間接光のみでライティングされているので随分と暗く見えます。

PC出力想定の場合StationarySpotLightかMovableSpotLightを使うことで直接光だけは左のドアにも反映できますのでここまで暗く見えず目立ちませんが、このプロジェクトはモバイル出力想定のものだったためStaticSpotLightしか使えません。

制作当時散々解決方法を探っていたのですが情報が見つからず、ライティングを書き込んだテクスチャをエミッシブにつないだマテリアルぐらいしか方法が思い浮かばず半ばあきらめていました。
解決策は全く違う情報を探していた時に偶然見つけたました。
画像
上の画像は解決したものです。やり方は簡単でした。ライトマップをベイクしたいMovableなStaticMeshを選択した状態で「詳細」から、「Lighting」下部の三角をクリックした中にある「Light as if Static」をチェックするだけです。
画像
しかし万能というわけではありません。あくまでライティングのビルド時の状態をベイクするのでこのアニメーションの様に動かすとシェーディングも一緒に動いてしまいます。ご注意ください。
画像
1 コメント

    Archives

    11 月 2015
    5 月 2015

    Categories

    すべて

    RSS フィード

Frames ,Tokyo
  • Home
  • Work
  • About
  • Library
  • Contact