未来派図画工作のすすめデータアセットでギャラリーを作る2019年12月30日チュートリアル大量のテクスチャーを自動的にレベルに配置できないか?100枚の絵画のテクスチャーがあって、それをレベルに配置したい場合、どうするのが良いでしょうか?100個のメッシュと100つのマテリアルを作り一つ一つ適用していくという方法もあるでしょう。これでは効率が悪すぎますし、テクスチャー数の増減や変更にも対応が難しいでしょう。した表現を効率的に実現する場合もデータアセットを利用するというアプローチ方法があります。このチュートリアルではブループリントとデータアセットを組み合わせ、フォルダ内のテクスチャーを自動的に収集して登録、レベルに配置する方法を紹介します。Asset型のブループリントクラスを作成まずテクスチャーのデータをまとめて保持するためのブループリントクラスを作成します。名前を変更し「BP_Data」とします。アセット内のテクスチャーを検索する仕組み次に作成した「BP_Data」に変数やブループリントを加えます。ここで定義した変数は後述するデータアセットで使用することできるようになります。指定したパス内にあるデータを全て取得できる便利なノードです。変数を追加し「TexDic」とします。変数の型はMap型に設定します。これは連想配列のようにキーと値をセットに保管する配列です。カスタムイベントを作成します。Data」の詳細パネルで「エディタで呼び出す」をONにします。これでエディタ上にボタンが現れ、ボタンをクリックすることでこのイベントが呼び出されるようになります。配列を空にします検索したいフォルダのパスを入力し「Recursive」をONにします。フォルダのURLはコンテンツブラウザで確認できます。見つかったテクスチャーの個数分、繰り返し処理を行います。アセットの情報を分解し、「アセット名」を取り出します。アセットをテクスチャーとしてキャストします。アセット名とテクスチャーをセットで配列に代入します。次にデータアセットを作成します。このデータアセットは先ほど作った「BP_Data」を元に、実際にアセットを管理するブループリントクラスになります。名前を「DataAsset」に変更し、ダブルクリックして開きます。Data」をクリックすると、アセットの検索が始まり、データアセットの中にデータが自動的に追加されます。マテリアルの作成テクスチャーを貼り付けるためのマテリアルを作成しましょう。SampleのTexをパラメータ化し、ブループリントから変更できるようにしておくことです。名前を「Mat_Image」に変更。Sampleのノードを追加。Texポートを右クリックし、パラメータへ昇格を選択すると、Texパラメーターノードが追加される。Texパラメーターの詳細パネルで、Texureを目的のテクスチャーに変更しておくと分かりやすい。平面を配置したクラスの作成テクスチャーを実際に貼り付けるためのスタティックメッシュを用意します。今回は平面をビューポートに一つだけ配置したシンプルなブループリントクラスを作成しました。位置や向きを調整マテリアルに先ほど作成した「Mat_Image」を適用レベルの構築データアセットに追加されたテクスチャーを元に「BP_Image」をスポーンしてレベルに配置します。今回はレベルブループリントを使用していますが、ブループリントクラスでも問題ありません。変数名は「Data」とします。変数の型を「BP_Class」を設定しコンパイル。「Data」のデフォルト値として「DataAsset」を選びます。配列からテクスチャーを取り出すPlaneマテリアルのテクスチャーを、データアセットから取得したものに変更する完成データアセットを使用すると、ブループリント内でのアセットの指定が簡単となり、今回の作例のようにテクスチャーを切り替えたりすることが手軽に行えるようになります。大量のテクスチャーを空間に配置したりする際に活用できるのではないでしょうか。Reserved.メニュ。