【UE4】Blueprintからアセット情報取得

4.16までアセット情報を取得できるAsset Registry Moduleという機能がネイティブコードでのみ使えていましたが、
4.17からBlueprint上でもアセット情報を取得できる機能が追加されました。

今回は4.17から新しく追加されたアセット情報を取得できる2つのノードについて書きます。

Unreal Engine | アセット レジストリ

準備

まずは取得するアセットを作成します。

今回はWeaponsというフォルダの中に「BP_WeaponBase」を継承したブループリントやマテリアル、
さらにその中にGunフォルダを作り、中に1つだけブループリントを作りました。

f:id:shuntaendo:20170812162839p:plainf:id:shuntaendo:20170812162856p:plain


Create Asset Data

「Create Asset Data」ノードはアセットを指定し、アセット単体の情報を取得することができます。

f:id:shuntaendo:20170902152824p:plain

f:id:shuntaendo:20170902153243p:plain


Get Asset Registry

「Get Asset Registry」ノードは条件を指定し、複数のアセット情報を取得することができます。

f:id:shuntaendo:20170812160127p:plain


例えばGet All Assetという条件を指定すればコンテンツブラウザ内の全アセットの情報が"Out Asset Data"から出力されます。PrintStringなんかした日にはえらいことに...

f:id:shuntaendo:20170902144207p:plain



「Get Assets by Path」ノードを使い先程作成したWeaponsフォルダのパスを指定します。

取得したAsset DataからGet Full Nameでアセットのパスを取得します。

f:id:shuntaendo:20170812163222p:plain


また、「Get Assets by Path」の「Recursive」を有効にするとさらに下の階層のアセットも取得できます。
今回の場合、Gunフォルダの中の「BP_WeaponGun」も取得されています。

f:id:shuntaendo:20170812164242p:plain