metadataのすゝめ(EUWを添えて)
概要
短い夢を 朝が来れば幻と化す夢を 後先もなくかき集めてしまう 馬鹿な僕らでいようぜ
日食なつこ 音楽のすゝめ
こんな気持ちでゲームを作っていきたいですね。
さて今回はアセットにつけるメタデータの話です。C++で使うメタデータ指定子とは別の話です。
公式にもページがあるのでここを見ればだいたい使い道が分かると思いますが、思ったより便利ですコレ。あまり解説してる記事が見当たらないので実例を交えて紹介しようと思います。
何ができるのか?
こちらメタデータという名前の通り、アセットに対してつける付加情報のことです。ゲームプレイ時には利用できず、開発時の管理などに使える機能となっています。
つけた情報はコンテンツブラウザでフィルターに使えたり、EUWでゴニョゴニョしたりと色々できます。
ただし設定するのにBP,Pythonなどで設定する必要があります。
なんか地味な機能だな・・
と思った方も多いと思います。「もっとかっこいい見た目が作れる機能紹介しろよ!」と言われるかもしれませんが、コレがなんとも重要な要素になります。
例えば背景アセットが10000個あったとします。その中で「〇〇さんが作ったアセットを探せ!」とか「開発初期で作ったアセットを一覧にしたい」なんてことが稀によく起こります。特に大規模開発なんかでありそうな話です。
管理用データ?それならコレで良くない??
コレですね。はい、これならエンジンコードさえいじれば
- プルダウンなどいろんな型のデータを作れる
- ホバーしたときに情報を出せる
- 検索ももちろんできる
といいとこづくしです。ただデメリットもあって、
- エンジンに手を入れるためある程度知識が必要
- 運用が大変
- 大規模開発になるとエンジニアさんに欲しいタグなどが増えるたびに依頼する必要がある。
- バージョン更新時の対応も必要です。
- 設定を効率化したい場合にツールでの設定が考えられるが、BPから読み取れるようにアクセス権を設定する必要があり、運用上問題があるらしい
そんな時にメタデータ!
アセットのメタデータならアーティストだけで完結することができ、ツールで効率化しメタデータ設定の手間を最小限に抑えることができます。さらにゲームプレイでは使えないので運用上の安全性も高いです。
百聞は一見にしかずということでやってみましょう。EditorUtilityWidgetの基本は知ってる前提で進めます。
UE4のEUW(Editor Utility Widget)を使って簡単にマーケットプレイスのアセットたちのテイストを合わせる - 一頻りやってみよう
実装例1:進捗タグを設定してフィルターに利用する
ポイントとして、UIでComboboxを作って設定値を用意することで設定が楽になります。実装部分もめちゃくちゃシンプルでTag名を指定してComboboxで選んだ値をそのままメタデータに投入してます。
次にコンテンツブラウザで検索できるようにします。といっても簡単で、プロジェクト設定でTag名を指定するだけです。
これで終わりです。簡単ですね。
コンテンツブラウザの検索は便利で、検索単語が一部でも反応してくれますし、メタデータを設定してないアセットを検索したい!となった場合も演算の反転ができるので以下のように検索すると未入力のものをフィルターできます。
NOT(Progress=完成 OR Progress=要修正)
詳細検索シンタックス | Unreal Engine ドキュメント
実装例2:外部リンクを設定して飛べるようにする
意外と良くあるのが、アセット制作時のSlackの会話とか社内のアセットライブラリなどのリンクを張りたいというケースかと思います。その場合もメタデータにリンクを貼っておいて後でツール上からアクセスできるようにすることが可能です。
終わりに
今回は管理系データをメタデータに設定しましたが、工夫次第で様々なデータを管理することができます。デフォルトでアセットに入っていないけど開発上欲しいデータはたくさんあると思います。
エクセルで全アセットを管理!となると作業コストがかかりヒューマンエラーの元にもなるのでアセット自体に情報が紐づいてるのは助かります。
今回は紹介しませんでしたがこちらfbxファイルにもメタデータを格納することが可能です!Mayaなどで作成したアセットの補足情報などをUEで管理する場合に便利ですね。