【UE4】Customizable Sequencer Tracks プラグインで独自トラックを簡単に作成

UE4.26 から Customizable Sequencer Tracks プラグインが追加され、C++からクラスを追加しなくても簡単にシーケンサーの独自トラックを作れるようになりました。


独自トラック作成手順

1.プラグイン有効化

まずはプラグインを有効化してエディタを再起動します。


2.BPクラスの作成

以下の3つのクラスを親にしたブループリントを作成します。各クラスの役割は後述しています。
・SequencerSectionBP
・SequencerTrackBP
・SequencerTrackInstanceBP



3.クラスの紐付け

SequencerTrackBP を継承したBPを開き、Class Defaults から
『Default Section Type』に SequencerSectionBP を継承したBPを、
『Track Instance Type』に SequencerTrackInstanceBP を継承したBPを設定します。


これだけでシーケンサーのトラック欄に作成したトラックが追加されます。




各クラスの役割

SequencerSectionBP

セクションの情報を持っているクラスです。各パラメータのデフォルト値を設定できます。


.

・独自パラメータの追加

通常のBPと同じように変数を追加するとシーケンサー上からアクセスできるようになります。



SequencerTrackBP

トラックの情報を持っているクラスです。こちらも Class Defaults から各パラメータの設定ができます。


.

・子トラックを持つトラック

Supports Multiple Rows を有効にすると複数の子トラックを持つことが可能なトラックになります。


.

・Master Track と Object Track

Track Type を変更することでオブジェクトに依存したトラックか、そうではないトラックかを設定できます。
Object Track の場合は、Supported Object Type を設定する必要があります。

Master Track はまだ未実装なのか、トラック実行中のイベントが実行されませんでした。現状使えるのは Object Track のみのようです。


・1つのトラックで複数種類のセクションを扱う

Supported Sections に SequencerSectionBP を継承したBPを指定することで Default Section Type 以外のセクションもトラック内に追加できます。


・トラックの見た目を設定

Icon, Dispay Name からアイコン、トラック名を設定できます。



SequencerTrackInstanceBP

トラック実行時の独自の処理を行う役割を担っています。
関数を Override して各タイミングで処理を実行できます。


各関数の実行タイミングについては "御堂 レゾ" さんのこちらのツイートがとてもわかりやすいです。




・セクション情報の取得

各セクションの情報を取得できるノードが用意されています。


もしくは、各セクションの最初と最後に実行される OnInputAdded or OnInputRemoved の Input からセクション情報を取得できます。


こんな感じでセクションの情報を取得できます。




以上になります。

Object Track で紐付いているオブジェクトを取得するインターフェイスが用意されていないので紐付いているオブジェクトの制御が難しい部分が残念でしたが、まだプラグインバージョンが『0.1』なのでアップデートに期待したいと思っています。





UE Version : 4.26.0-14830424