BLOGブログ

2022.07.13UE5

[UE5] Componentで擬似的に使えるTimelineマクロの紹介

執筆バージョン: Unreal Engine 5.0

■はじめに

こんにちは、エンジニアの山中です。
皆さんは「Timeline」機能を使っていますか?

Timelineノード

時間軸で数値の制御が行え、再生方法も豊富な為
職種問わず活用可能な便利機能です。
しかしこのTimeline、コンポーネントとして実装されている都合上、
Actorブル―プリントでしか使用できません。

Componentとして追加されたTimeline

■開発事例

とあるComponent内で管理されているマテリアルに関して
Timelineを使用して数値(float値)を制御したいシチュエーションが出てきました。
具体的な要件としては下記の通りです。
①再生時間を設定し、Timelineのように直感的に数値の制御を行いたい
②再生方法に関して、順行、逆行を切り替えたい
いずれもTimelineには備わっている機能ですが、Componentでは使用できない為
解決策を模索していました。

■そして実装へ

今回は必要な機能が限定されていた為
Componentで使用可能なマクロとして作成してしまおう、
ということで下記の通り実装してみました。

ActorComopnent派生のMacroLibraryとして実装

細かな実装は下記の折り畳みの展開先をコピー&ペーストして
確認してみてください。

[BPコードはこちらをクリック]

画面が一定時間暗転し、戻っていく仕組みが完成!
※実際の開発内容とは用途が異なります

Component内の実装。指定の時間、指定のCurveで制御された数値をマテリアルへ反映させている。

※今回はマクロの実装がメインの為、マテリアルに関連する実装は割愛させていただきます

■さいごに

いかがでしたか?
Timelineはバージョンを重ねるごとに機能が充実し続けています。
本来であればActor内で数値を制御するように設計されていることが望ましいですが
今回は既存実装箇所の変更による影響も考慮した、Component内で完結する事例を紹介させていただきました。
機能追加したり、プロジェクトに特化したものに改変したり
必要に応じて活用していただければ幸いです。