2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

レベルシーケンサでの時間操作

Last updated at Posted at 2024-08-11

自分へのメモも兼ねて、Qitaに記事を起こしていきます。
過去に調べた事でもいざ使おうとした際に、再度調べ直してしまう事もあった為、記事にしてきます。

レベルシーケンサでの時間について

今回は、レベルシーケンスの時間のアクセスについて書いてきます。
『開始・終了時間』と再生時間でアクセス方法が異なり、またウィジェットとブループリントでアクセス方法が異なる為、一度整理したいと考えていました。
この記事で指している『レベルシーケンスの時間』とは、以下の三つを指します。

  1. レベルシーケンスの開始時間
  2. レベルシーケンスの終了時間
  3. 現在再生している時間

調査環境

UnrealEngine 5.3.2

ウィジェット(Editor Scripting Utilities)からのアクセス

レベルシーケンスの開始時間

レベルシーケンスの開始時間にアクセスするノードです。
NonPure関数(青いノード)のレベルシーケンスの取得にはGetCurrentLevelSeuqnceノードを使用してください

GetPlaybackStart

GetPlaybackStartノード.png

SetPlaybackStart

SetPlaybackStartノード.png

使い方
GetPlaybackStartノードの使い方.png

レベルシーケンスの終了時間

レベルシーケンスの終了時間にアクセスするノードです。
NonPure関数(青いノード)のレベルシーケンスの取得にはGetCurrentLevelSeuqnceノードを使用してください
GetPlaybackEnd

GetPlaybackEndノード.png

SetPlaybackEnd

SetPlaybackEndノード.png

使い方
GetPlaybackEndノードの使い方.png

時間の範囲の取得

時間の範囲を取得するノードです。
NonPure関数(青いノード)のレベルシーケンスの取得にはGetCurrentLevelSeuqnceノードを使用してください

GetPlaybackRange
ブループリントのGetPlaybackRangeノード.png

使い方
GetPlaybackRangeノードの使い方.png

SetPlaybackRangeノードは実装されていません

現在再生している時間

レベルシーケンスの現在の時間にアクセスするノードです。

GetCurrentTime

GetCurrentTimeノード.png

再生中かどうか調べる

レベルシーケンスを再生中かどうかを知るには、IsCurrentLevelSequencePlayingノードを使用します。

IsCurrentLevelSequencePlayingノード.png

WidgetのTickでパラメータを同期させたいけど、常に同期させるとツールから更新できないと思います。
再生時(更新された時)のみ同期するような使い方もできると思います。

ブループリント(Actor)からのアクセス

レベルシーケンスの開始時間

レベルシーケンスの開始時間にアクセスするノードです。
レベルシーケンスの取得にはPure関数(緑のノード)のGetCurrentLevelSeuqnceノードを使用してください

GetPlaybackStart

ブループリントのGetPlaybackStartノード.png

SetPlaybackStart

ブループリントのSetPlaybackStartノード.png

使い方

GetCurrentLevelSeqeunceでのGetPlaybackStartノードの使い方.png

レベルシーケンスの終了時間

レベルシーケンスの終了時間にアクセスするノードです。
レベルシーケンスの取得にはPure関数(緑のノード)GetCurrentLevelSeuqnceノードを使用してください

GetPlaybackEnd

ブループリントのSetPlaybackStartノード.png

SetPlaybackEnd

ブループリントのSetPlaybackEndノード.png

使い方
ブループリントのGetPlaybackEndノードの使い方.png

時間の範囲の取得

時間の範囲を取得するノードです。
レベルシーケンスの取得にはPure関数(緑のノード)GetCurrentLevelSeuqnceノードを使用してください

GetPlaybackRange

ブループリントのGetPlaybackRangeノード.png

使い方

ブループリントのGetPlaybackRangeノードの使い方.png

現在再生している時間

GetCurrentLevelSequenceCurrentFrame

GetCurrentLevelSequenceCurrentFrameノード.png

Runtime時に現在の再生時間を取る

最後に例外の対応として、私も頭を捻った対応を説明します。
それは、MovieRenderQueueでレンダリング時に、現在の再生フレームを取りたい場合です。
『GetCurrentLevelSequenceCurrentFrameでは駄目なのか?』と疑問に思う方も居ると思いますが、GetCurrentLevelSequenceCurrentFrameは、PIEでは動作しますが、MovieRenderQueueでレンダリング時は、0を返します。そこで、別のアプローチ方法を探す必要がありました。

方法としては、『SeqeuencePlayerから取得する』方法になり、GetCurrentTimeノードを使います。

GetCurrentTime

SeqeuncePlayerのGetCurrentTimeノード.png

使い方

SequencePlayerとGetCurrentTimeで時間を取得.png

おまけ

ここからはおまけ記事になります。
せっかくなので、他のノードの機能もさわってみました。

再生時間のロックの切り替え

SetPlaybackRangeLocked

SetPlaybackRangeLoackedノード.png

再生時間のロックを切り替えられます。ロックされていると、マウスオーバーしてもアイコンが変更されません。

IsPlaybackRangeLocked

IsPlaybackRangeLockedノード.png

再生時間のロックされているかは、このノードで調べられます。

フレームレートの変更

レベルシーケンスのフレームレートは、それぞれ『Get』『Set』が用意されています。

GetDisplayRate

SetDisplayRateノード.png

SetDisplayRate

SetDisplayRateノード.png

再生スピードの変更

レベルシーケンスの再生スピードは、それぞれ『Get』『Set』が用意されています。

GetPlaybackSpeed

GetPlaybackSpeedノード.png

SetPlaybackSpeed

SetPlaybackSpeedノード.png

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?