アセット名
ゲームパッケージに入るアセット名と、実行時に組み立てた名前でアセットを選んでいる箇所を報告するプロジェクトチェックです
プロダクションビルドには、プロジェクト内に名前が書かれているすべてのアセットが入ります。ストーリー行、ノードのカード、ウィジェットのプロパティのアセットピッカーで選んだもの、そしてそれらから設定された変数やリスト行が保持しているものです。ゲームが実行中に組み立てた名前で選ぶアセットはパッケージに入らず、リリースしたゲームでは、それを表示または再生するはずの場所に何も出ません。Dev Mode はアセットライブラリ全体を読み込むため、そこではアセットが表示されます。
blueprint/assembled-asset-name プロジェクトチェックは、そうした使い方をビルドより前にすべて報告します。
パッケージに入る名前
プロジェクト内に書かれたものから来て、そのまま受け渡される名前はパッケージに入ります。
- アセットピッカー:
Play SoundのAudio Clipのようなノードのカード上のフィールド、Image Assetリテラル、Properties のプロパティ。 - 選んだ名前を保持している変数やリスト行。書き込んだのがブループリントかストーリー行かは問いません。
- Gallery ノードのように、プロジェクトが持っている名前を返すノード。
実行時に組み立てられる名前
途中でテキストをつなぎ合わせる処理や、プロジェクトの外から値を取る処理を通った名前は、実行時に組み立てられた名前です。Concat、Format、プレイヤーが Text Input に入力した内容、Fetch の応答などが該当します。書き込まれた場所までチェックがたどれない値も同じ扱いになります。名前自体がピンで渡される変数などです。
チェック
ルールは blueprint/assembled-asset-name で、タイトルは Asset name assembled at run time(実行時に組み立てられるアセット名)、既定の重大度は Error(エラー)です。Play Sound の Asset Id、Set Image Asset の Asset、Set Font の Font のようにアセットを受け取るすべての入力と、Image の画像のようにアセットを表示するプロパティにバインドされたすべての Blueprint Value を調べます。値はプロジェクト全体にわたって追跡され、ストーリー行が書き込む変数や、別のブループリントが設定するリスト行も対象になります。
| 場所 | 表示される内容 |
|---|---|
| ブループリントエディタ | 名前を受け取るノードにエラーが付きます。名前が別のブループリントやプロパティで使われている場合は、名前を組み立てるノードにエラーが付きます。 |
| Problems(問題) | 使い方 1 か所につき 1 行。プロジェクトを編集すると自動で更新されます。 |
| プロダクションビルド | 同じメッセージを出してビルドが止まります。Project → Project → Project check(プロジェクト → プロジェクト → プロジェクトチェック)でこのルールの重大度をどう設定していても、Check before building(ビルド前に検査)がオフでも、ビルドは止まります。 |
直し方
アセットピッカーでアセットを選ぶか、選んだアセットを変数やリスト行に保持してそこから読み取ります。たとえばキャラクターごとに違うクリップを鳴らすには、各キャラクターのクリップをリスト行に保持し、その行の値を Asset Id につなぎます。
名前が読み込まれていないノード型から来ている場合(そのノード型を提供するプラグインがない、または無効になっている場合)、メッセージにはそのノード型が示されます。プラグインをインストールするか有効にして、もう一度ビルドしてください。