🎥
【UEFN】Verseでカメラ映像に視点を切り替える
やりたいこと
信号リモコンを利用し、プレイヤー視点とカメラ視点の切り替えを行う。
利用する装置
- アイテムグランターの仕掛け
- 信号リモコンマネージャーの仕掛け
- ムービー シーケンスの仕掛け
事前知識
アイテムグランターを利用したアイテム付与はこちらで解説してます。
コードの全体
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
sample_01 := class(creative_device):
@editable
ItemGranter : item_granter_device = item_granter_device{}
@editable
SignalRemoteManager : signal_remote_manager_device = signal_remote_manager_device{}
@editable
CameraSequence : cinematic_sequence_device = cinematic_sequence_device{}
OnBegin<override>()<suspends>:void=
# ゲーム開始時に全てのプレイヤーに武器を付与する
AllPlayer : []player = GetPlayspace().GetPlayers()
for(Player : AllPlayer):
ItemGranter.GrantItem(Player)
# 信号リモコンを持ち攻撃ボタンを押した際に<OnPrimarySignal>が呼ばれる
SignalRemoteManager.PrimarySignalEvent.Subscribe(OnPrimarySignal)
# 信号リモコンをADSのボタンを押した際に<OnSecondarySignal>が呼ばれる
SignalRemoteManager.SecondarySignalEvent.Subscribe(OnSecondarySignal)
# ムービーシーケンスによってカメラの映像が流れる(カメラ視点になる)
OnPrimarySignal(PlayerAgent: agent): void =
Print("PrimarySignal")
CameraSequence.Play(PlayerAgent)
# ムービーシーケンスの映像を停止する(元の視点に戻る)
OnSecondarySignal(PlayerAgent: agent): void =
Print("SecondarySignal")
CameraSequence.Stop(PlayerAgent)
その他設定
CineCameraアクタを配置します。
CineCameraアクタのY軸の回転を-5.0に設定しているのは、上から撮影しているようにしたかったからです。ここら辺の設定はお好みでどうぞ。
次にレベルシーケンスを作成します。(今回の名前:LS_Camera)
コンテンツブラウザ内で、右クリック -> シネマティックス -> レベルシーケンスから作成できます。
レベルシーケンスを開き、CineCameraアクタをドラック&ドロップします。
ムービーシーケンスに先ほど作成したレベルシーケンスを設定し、ループ再生にチェックを入れます。
アイテムグランターに付与したい武器を追加します。(今回は信号リモコン:レア度はコモン)
信号リモコンマネージャのクールダウン時間を0.0に、信号リモコンのティアをコモンに設定します。
UEFNから下記仕掛けの登録を行います。
- 信号リモコンマネージャー
- ムービーシーケンス
- アイテムグランター
結果
信号リモコンを持ち、攻撃ボタンを押すとカメラ視点に切り替わります。
信号リモコンを持ち、ADSボタンを押すと元の視点に切り替わります。
最後に
シーケンサーとムービーシーケンスが利用できるだけで、ゲームの幅が広がるので使い方を覚えておくと今後の開発でとても役に立つと思います。
Twitter(X)でも情報発信していくのでフォローしてね~
参考リンク
- 利用した装置
Discussion