学校関連のアセットをUnity5で扱うときの注意点

タイトルは学校関連アセットですが、ポイントはUnity4.x時代に作成されたアセットやプロジェクトをUnity5.xで開くとスクリプトの変換が行われますが、それでは解決しない問題がいくつかあります。

その問題の一つにシェーダがあります。Unity5からシェーダは物理ベースシェーダー(PBS)がメインとなりました。互換のために従来のシェーダはLegacyとしてまとめられています。

したがってUnity4.x時代の絵作りとUnity5.x時代の絵作りは色々と異なります。これまでも多くの資料が公開されていますが、Unite2016で発表された小林さんの資料は必読だと思います。

簡単な解説がTwitterで行われたので、まとめが作られました。

これはこれでとても有益なんですが、シェーダーを全てStandard(PBS)に変えて、Color SpaceをLinearにし、CameraをHDRに変更して「Bake」するとテクスチャに黒ずみが表示れます。

一連のスレッドを追いかけて頂くと分りますが、Unity4.xとUnity5.xでLightmap UVsに互換性が無いため再度生成し直さないといけません。ただ、その具体的な方法って意外と探しても見つからなないのでまとめました。

ポイントは3Dモデルデータ(Mesh)を選択し、Inspectorウィンドウに表示されるImport Settingsにおいて「Generate Lightmap UVs」にチェックを入れることです。

Unity4.x時代における本来の役割は[GameObject]-[Light]-[Light Probe Group]を生成した後、動的Meshに対してチェックをすることで事前にライティング情報を計算して最小限度の処理時間でライト情報を反映するという物で、Unity4.xでは「非チェック状態」がデフォルトでした。

Unity5.x時代になっても本来の役割は変わらないのですが、デフォルトで「チェック状態」なので普段はこの存在に気が付かずスルーしているかと思います。しかし、どうもこのチェックが無いと上手くBake結果が反映されないみたいです(もしかしてUnity5.xのバグ?)。

ということで、Unity4.x時代に作ったアセットにおいて特にモデルデータを取り込んでテクスチャーがおかしくなったときは一度試してみるといいかもしれません。

 

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です