BLOGブログ

2015.01.20UE4/C++

[UE4] 独自のアセットを実装する方法(2) インポートの実装

改訂バージョン: Unreal Engine 4.21

前回の記事では、独自のアセットを実装し、ContentBrowser上から作成する方法をご紹介しました。

今回はその続きで、外部ファイルをインポートしてアセットを作成する方法をご紹介したいと思います。

 

1.準備

今回のサンプルでは、”.myasset”という拡張子のカンマ区切りテキストファイルから、3つの整数を ValueA, ValueB, ValueC プロパティに対して読み込む、ということにしたいと思います。

まずはインポートするファイルを用意します。

2.Factoryをインポートに対応する

前回のコードを、下記のように書き換えます。変更の無い箇所は省略しています。

 

 

コンストラクタで、bCreateNew=false; bEditorImport=true; とすることで、インポートでのアセット作成に対応します。

(理由は不明ですが、1つのUFactoryで新規作成とインポートの両立は出来ないみたいです。UFactory::StaticImportObject()の実装を参照)

また、bText=true;とすることで、テキストファイルからのインポートを指定します。

bText=false;とした場合は、FactoryCreateText()ではなく、FactoryCreateBinary()を実装する必要があります。

 

Formatsに文字列を追加し、ファイルの拡張子と説明文を指定します。

 

新規作成は FactoryCreateNew()で実装しましたが、テキストファイルからのインポートは FactoryCreateText()で実装します。

引数Buffer~BufferEndで示される領域に、ファイルから読み込んだ文字列が格納されています。

こちらを文字列処理でパースして、作成した NewMyAsset のメンバに値を反映します。

 

これで、最初に用意した ImportSample.myasset を ContentBrowser にドラッグ&ドロップすることで、ファイルのインポートが実現します。

インポートして作成されたアセットをダブルクリックして、ValueA, ValueB, ValueC に値が格納されていることを確認してみて下さい。

[UE4] 独自のアセットを実装する方法(1) アセットクラスの実装
[UE4] 独自のアセットを実装する方法(2) インポートの実装

[UE4] 独自のアセットを実装する方法(3) 再インポートの実装

[UE4] 独自のアセットを実装する方法(4) アセットにアクションを追加する

[UE4] 独自のアセットを実装する方法(5) アセットエディタを実装する

[UE4] 独自のアセットを実装する方法(6) 独自のシリアライズを実装する