2015年11月18日水曜日

Little Umbby 開発日誌 #3

UE4.10が正式にリリースされましたが、みなさん使っていますでしょうか。
僕はものすご〜〜〜く、ハメられました。1週間ぐらい、ずっと謎の現象に悩んでおりまして、一時はもうダメかと思ったぐらい。

謎の現象とは、以下の様な感じで、左がUE4.9までの正常な結果で、右がUE4.10にプロジェクトを移行して実行した結果です。どちらもiPhoneでテストしたスクリーンショットです。
correct.jpg incorrect.jpg

おかしな所は、プレイヤーであるUmbby君(傘)が真っ黒に塗りつぶされて、ライトの影響を受けていないように見えるところです。それ以外には、明らかに全体のレンダリング結果がのっぺりとして、雲や花や葉っぱなどのアクターに陰影がありません。この問題、UE4.10上のPIE(Play In Editor)では起こらないので、質が悪いのです。


シーンにはDirectional Lightを配置。MobilityはStationary(固定ライト)に設定しています。
ゲーム中のアクターは全てMovableタイプなので、Stationaryライトの影響を受けさせるため、Lightmass Importance Volumeを配置しています。Movableタイプのアクターがこのボリュームの内側に無いと、真っ黒にレンダリングされてしまいます。

例外としては、BSPのBOXなどで床とかを作って、その上にMovableアクターを配置してやると、Lightmass Importance Volumeが無くても、Stationaryライトの影響を考慮してレンダリングしてくれます。
でも、はっきり言って、これはハマリポイントなんじゃないかと…。どちらにしてもPIE上では、Lightmass Importance VolumeやBSPが無くても、大丈夫な訳なんですが…。

Lightmass Importance Volumeはでっかくしとけ

問題を特定するために、いろんな条件でプロジェクトを作って試したりしていたのですが、どうも原因が分かりません。スターターコンテンツに含まれているMinimal_DefaultマップをiPhoneに転送してみても、問題なくレンダリングされます。途方に暮れました。

いろいろ試してみて、プレイヤーの傘が真っ黒にレンダリングされてしまうのは、やはりLightmass Importance Volumeが原因のような気がしてきたので、ボリュームのサイズをそれまで設定していた値より大きくしてみました。これが功を奏しました。

それまでは、ゲームでキャラクターたちが出現し、動きまわる範囲にボリュームサイズを絞っていました。UE4.9までは、これでちゃんとレンダリングしてくれていたのですが…。
oldvolume.jpg

これを、以下のようにボリュームを拡大しました。たった…、たった、これだけの事で元に戻りました。orz
newvolume.jpg

これがUE4.10のバグなのかどうか、まだ分かりません。
不思議というか助かったのは、のっぺりとレンダリングされていた他のアクターたちの陰影も、これで元に戻ったことです。

こんなにも解明に時間がかかったのは、やはり自分の作ったモデルなりシーンなりが悪いのではないかと推測していたのが大きかったです。
なんにせよ、これでやっと先に進める〜(ハート)

関連記事

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...