背景アーティストのぶろぐ

UE4やら、Substanceやら、Zbrushやらいろんなソフトを触ったことについて色々書く。

【UE4】プロパティマトリクスについて【Advent Calender 2014】

Unreal Engine 4 (UE4) Advent Calendar 2014に参加してみました。

 

毎日有志の方がUE4にまつわる様々な情報を公開してくれるというありがたい企画です。

皆さん素晴らしい様々に作ったものを公開しているというのに、

私ときたら地味にプロパティマトリクスという機能について解説するとか…。

 

まず、プロパティマトリクスってなんぞ?

から始めたいと思います。

 

プロパティマトリクスとは?

プロパティマトリクスとは大量のアセットの設定を一括で編集したり、確認したりする機能です。

 

公式のリンクはこちら

【UnrealDocument】 プロパティのマトリクス

 

 

私は背景アーティストなので自分の視点で説明しますと、

背景は大量のStaticMesh、Material、Textureを扱います。

非常に大量です。簡単に100個200個超えます。

最終的には1000個を軽く超えるのではないでしょうか。

 

 

これらのデータが正しい設定でつかえているかどうかを確認することが

この機能を使うと簡単に出来ます。

 

たとえば、テクスチャのsRGBが統一できているかどうかなど、

確認し、間違いがあれば直すことが出来ます。

このようにデータの確認修正は、プロパティマトリクスだけではなく、

コンテンツブラウザの列表示と合わせて使うとより効率よく使えます。

 

 

それでは、サンプルとしてReflectionsのサンプルプロジェクトを使って解説していきます。

バージョン4.6がリリースされていますが、4.5.1のままで解説してますので、

4.6になって変更が入ってる箇所があったらすみません…。

f:id:sinocof:20170223201113p:plain

 

コンテンツブラウザの列表示、フィルタを活用する

まず、コンテンツブラウザにあるテクスチャを一括で確認する方法です。

 

テクスチャが入ってるフォルダを選択します。

フォルダの下の階層にフォルダがまたある場合、このようにフォルダが表示されてしまいます。

f:id:sinocof:20170223201135p:plain

しかし、ここでフィルタを使うことで階層を無視してテクスチャのみを表示することが可能です。

f:id:sinocof:20170223201147p:plain

このフィルタの機能の詳細については公式ドキュメントを参照してください。

 

また、alweiさんも解説をしてくれています。

【Let's Enjoy Unreal Engine】 UE4 レベル上で使用中か未使用かアセットを見分ける方法

 

 

テクスチャが出てきたのはいいですが、どのような設定になっているかがわかりません。

そこで登場するのが列表示です。

 

右下のところから表示を切り替えれます。

f:id:sinocof:20170223201206p:plain

切り替えるとこのように各テクスチャ毎の設定が表示されます。

f:id:sinocof:20170223201217p:plain

フィルタをかけているものによって表示される設定項目は変わります。

たとえば、このような感じですね。

f:id:sinocof:20170223201244p:plain

 

データを絞り込んでみる

例えば、先ほど例にも出したsRGBが正しく設定されてるのかどうか確認したいと思います。

 

しかし、様々な種類のテクスチャが混在しているので、判断が難しいです。

そこで役に立つものとしては、自分でつけたテクスチャ名の命名規則になります。

 

命名規則のルールを検索のところに入れることで更に絞り込みが可能になります。

 

 

よくあるものを例としますと、

 

BaseColorテクスチャ  … テクスチャ名 + _D

Normalmap        … テクスチャ名 + _N

各種マスクテクスチャ … テクスチャ名 + _M

 

のような感じですね。

 

 

 

Epicさんも大体このルールでこのプロジェクトを作成されているので、

とりあえずこれを使って調べてみます。

 

まずは、_Dから。

f:id:sinocof:20170223201307p:plain

このような感じでBaseColorテクスチャを絞り込む事ができます。

 

もし、LODGroupを細かく設定しているのであれば、

LODGroupでソートをかけてしまうのも手です。

 

 

結果を見てみると2つだけFalseになってます。

よくよく見てみると、Normalmapのようですね。

 

命名規則として_Dはどこでも使われる可能性があるので、このような結果になりました。

2文字以上とかにするか、もしくは、LODGroupを活用することで精度を上げることが出来そうです。

 

このような方法を使って一括でデータを調べる事が出来ます。

 

 

プロパティマトリックスを使って、一括でデータを変更する

例えば、このsRGBの判定ですが、全て変更をかけてFalseの設定にしたい場合はどうしたらいいのでしょうか。

 

その時に活躍するのがプロパティマトリクスです。

 

 

変更をかけたいテクスチャを選択し、右クリックからプロパティマトリクスを選択します。

f:id:sinocof:20170223201345p:plain

するとこのようなウィンドウがあたらしく表示されます。

f:id:sinocof:20170223201356p:plain

右側の部分を展開していくと様々なパラメーターが出てきます。

これらはテクスチャエディタを開いた時と同じパラメーターです。

f:id:sinocof:20170223201408p:plain

 

では、どのように一括で変更をかけるのかですが、

この右側のパラメーターのsRGBのチェックを外します。

 

すると一括で設定を変更がかかります。

プロパティマトリクスに表示されているテクスチャに変更がかかったので * が表示されます。

変更に問題がなければファイル > 保存をかけましょう。

f:id:sinocof:20170223201419p:plain

 

仮モデルの設定を一括でする

先日、UE4背景アーティスト勉強会 in 大阪という場で発表をさせて頂き、

その場で仮モデルに必要な設定をあげさせて頂きました。

 

勉強会で話を聞いてない方向けに解説しますと

仮レイアウトをするときに仮モデルを用意するのですが、

その仮モデルで行っておいた方がいい設定について説明しました。

 

それがこの3つです。

 

その設定内容を簡単に説明しますとこのような感じです。

 

マテリアル      … 仮モデル用のシンプルなマテリアルを貼る。

コリジョン       … Collision Complexityを Use Complex Collision as Simple にする。

ライトマップ解像度 … デフォルトの32では小さいので適当に大きな数字128や256にする。

 

もうすこし具体的な解説については後日アップされる動画やスライドにてご確認ください。m(_ _)m

 

仮モデルの段階だとFBXを一括で読み込むことも多いと思います。

これらを一気に設定できるか試してみましょう。

ここでは勉強会で使用したデータを使っています。

 

 

 

  1. モデルのStaticMeshを選択し、プロパティマトリクスを開きます。
    StaticMeshの場合だと左側にはStaticMeshの名前しか出てこないようです。f:id:sinocof:20170223201446p:plain
  2. 設定をしたいプロパティを右から見つけ出し、ピンを固定します。

    Light Map Resolution と Collision Complexのこの2つを見つけましたので、設定項目の左にあるピンをクリックして固定します。

    f:id:sinocof:20170223201521p:plain

  3. 固定したら右のプロパティのところで設定したい内容を入力します。
    Light Map Resolution は 128 としましょうか。
    Collision Complexity は Use Complex Collision as Simple にします。

    すると、それぞれのStaticMeshにも同じ設定が反映されてるのが確認出来ます。

    f:id:sinocof:20170223201540p:plain

ここまででLightmap解像度とコリジョンの設定まで一括で出来ました。

しかし、マテリアルの設定が右側のプロパティ項目の中に見つかりません。

どうしたらいいのでしょうか…?

 

 

ここは仕方なく1個ずつ開いてマテリアルをセットするしかないようです。

結局全部開くのであれば意味無いじゃんなのですがね… (´・ω・`)

 

なにかよい方法をご存知の方いましたら情報よろしくお願いいたします。

 

 

まとめ

 

大した内容ではないのに思ったより長くなってしまいましたが、

内容を簡単にまとめるとこんな感じでしょうか。

  • コンテンツブラウザの列表示、フィルタを使うことでも大量の設定の確認が可能。
  • 命名規則をうまくつけることで細かい絞り込もしやすい。
  • 大量の設定の変更はプロパティマトリクスを使うと簡単。

 

 

なかなか個人制作の範囲ではあまり使わない機能かも知れませんが、

人の手作業で設定していると、設定忘れとかしてしまう事があるので、

最終データとする前にこのようにして自分の作成したデータが正しい設定になっているかどうか

確認してみると良いのではないでしょうか。

 

 

 

12/16はtempkinderさんのGPUコストの高いHZBとはどんな機能?(予定)だそうです。

 

なんだか難しそうな感じですが、GPUコストにはいつも悩まされてますので興味深々です。