(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発した新作VRソフトです!


顔や体など異なる箇所のレンダラーの色(暗さ)がライトプローブ影響で違う場合の原因と対処法【Unity】【トラブルシューティング】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 2019.4.14f1


はじめに

Unityはライトプローブ(Light Probe)を使うことで、

ベイクした静的なライトの情報を動的なオブジェクトに反映させる事が出来ますが、

モデルや設定によっては顔や体など

異なる箇所のレンダラーの色(暗さ)が違うくなる場合があります。

f:id:kan_kikuchi:20210618074002g:plain
f:id:kan_kikuchi:20210618073152p:plain


今回はそんな場合の原因と対処法です!


なお、記事中では以下のアセットを使っています。

Dreamscape Nature: Meadows | 3D Fantasy | Unity Asset Store




原因と対処法

さっそく本題ですが、原因は顔と体を表示するRendererが違う場所にあるため、

ライトプローブの影響を受ける座標が違う事です。

f:id:kan_kikuchi:20210618073348p:plain


なので対処法はライトプローブの影響を受ける座標が同じになるように

レンダラーのAnchor Overrideに同じTransformを設定するだけでOK。

Anchor Override ライトプローブ、または リフレクションプローブ のシステムを使用する時に、補間する位置を決めるために使用する Transform を設定します。デフォルトでは、これは、レンダラーのジオメトリのバウンディングボックスの中心です。


例えばSpineというTransformを両方のレンダラーに設定してみると、

f:id:kan_kikuchi:20210618073226p:plain


無事、同じタイミングで色が変わるようになります。

f:id:kan_kikuchi:20210618074020g:plain
f:id:kan_kikuchi:20210618073237p:plain