BLOGブログ

2015.01.29UE4/C++

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

※ 2019/10/31追記:この記事は古くなっており、最新のバージョンでは動作しない可能性があります。

また前回からの続きです。

今回は、自分で実装したアセットをダブルクリックした際に、独自のエディタウィンドウを開く方法をご紹介します。

 

1.既存の動作を確認する

まずは、そのままMyAssetをダブルクリックしてみます。

こんな感じのウィンドウが開くと思います。

特に自前で何も実装していない場合は、デフォルトでこのウィンドウが開くようになっています。

 

このウィンドウは FSimpleAssetEditor というクラスで実装されており、エンジンコードを探すと中身を見つけることが出来ます。

 

2.アセットエディタクラスを実装する

まずは、自前のアセットエディタクラスを実装する必要があります。

これは、IToolkitHostを継承している必要があります。

 

通常、FAssetToolkit を継承して作ると楽が出来ます。FSimpleAssetEditor も FAssetToolkit を継承して作られています。

今回は、さらに楽をして FSimpleAssetEditor を継承してアセットエディタを作ってしまおうと思います。

 

下記のcppとhを追加します。

 

FSimpleAssetEditorと何も違いはありませんが、一応、自前のアセットエディタクラスが用意出来ました。

 

3.アセットエディタをAssetTypeActionsに登録する

次はこのアセットエディタを、UMyAssetクラスと紐付ける必要があります。

前回までに実装した、AssetTypeActions の OpenAssetEditor() という関数をオーバーライドすることで、対応したアセットのエディタを指定することが出来ます。

 

 

これで、ContentBrowser上でMyAssetをダブルクリックした際に、FMyAssetEditorが開くようになりました。

このままでは、デフォルトの状態と全く違いはありませんが・・・

 

今回、アセットエディタの中身の実装までご紹介したかったのですが、話の本筋から逸れてしまうのと、Slateのコードは非常に長くなってしまうため、アセットエディタの話はここまでとさせて頂きます。

独自のアセットエディタの実装については、FSimpleAssetEditorがとても良いサンプルになりますので、まずはこのコードを解析してみることをオススメします。

 

Slate UI については、また別の機会にお話し出来ればと思います。

この記事を書いている時点ではまだ少ないですが、ヒストリアブログのSlate関連の記事はこちらから検索出来ます。

 

次回は、アセット実装の最終回、独自のシリアライズを実装して、UPROPERTY化出来ないメンバのセーブ/ロードに対応する方法をご紹介したいと思います。

 

[UE4] 独自のアセットを実装する方法(1) アセットクラスの実装
[UE4] 独自のアセットを実装する方法(2) インポートの実装
[UE4] 独自のアセットを実装する方法(3) 再インポートの実装
[UE4] 独自のアセットを実装する方法(4) アセットにアクションを追加する
[UE4] 独自のアセットを実装する方法(5) アセットエディタを実装する
[UE4] 独自のアセットを実装する方法(6) 独自のシリアライズを実装する