fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE5/UE4 カメラが切り替わった際の切り替え元の終了イベントと切り替え先の開始イベント(Event On End View Target、Event On Become View Target)

カメラが切り替わった際の切り替え元の終了イベントと切り替え先の開始イベントについてです。

カメラが切り替わった際に、切り替え元の終了イベントと切り替え先の開始イベントが下記のノードで処理できます。

切り替え元の終了イベントである「Event On End View Target」ノード。
カメラ切り替え時のイベント002
カメラが切り替わった際、切り替え元のカメラに対して行われるイベントです。
「PC」は Player Controller になります。

切り替え先の開始イベントである「Event On Become View Target」ノード。
カメラ切り替え時のイベント001
カメラが切り替わった際、切り替え先のカメラに対して行われるイベントです。
「PC」は Player Controller になります。

この二つのノードがどういったものが調べようと思ったのですが、
WEBで調べてもあ UE4 のリリースノートで少し触れられている程度であまりでてこないのですよね…。

・Unreal Engine 4.4 リリース ノート
https://docs.unrealengine.com/4.26/ja/WhatsNew/Builds/ReleaseNotes/2014/4_4/

アクタが PlayerController のビューターゲットであることを開始および停止した時に発動するアクタのためのブループリント イベントを追加しました (OnBecomeViewTarget / OnEndViewTarget)。

これらのためのネイティブの C++ イベントはすでに存在していましたが (BecomeViewTarget / EndViewTarget)、ブループリント イベントをトリガーするようになりました。

PlayerCameraManager から EndViewTarget / BecomeViewTarget を呼び出す順を変更しました。それによって、最初に End イベントが古いターゲットで発生し、続いて、新しいターゲットで Begin イベントが発生するようになりました (これまでは逆でした)。


こちらのサイトも参考にさせていただきました。

・UE4:WheeledVehicleを用いたアクターへの乗車処理
https://unrealbussan.hatenablog.com/entry/2018/11/11/175658

というわけでさっそくやってみました。

「BP_CameraActor000」と「BP_CameraActor001」という二つのカメラを配置して
各カメラのBPをこんな感じにしてみました。

BP_CameraActor000のBPはこんな感じに。
カメラ切り替え時のイベント003

BP_CameraActor001のBPはこんな感じに。
カメラ切り替え時のイベント004

あいはこんな感じでカメラを切り替える処理を書いてみました(交互にカメラの切り替えが行われる)
カメラ切り替え時のイベント000

1回実行時はこんな感じの結果に(下から順です)
カメラ切り替え時のイベント005
もともと別のカメラから「BP_CameraActor001」に切り替えているため、
「BP_CameraActor001」の「Event On Become View Target」イベントが実行されています。

2回実行時はこんな感じの結果に(下から順です)
カメラ切り替え時のイベント006
もともと別のカメラから「BP_CameraActor001」に切り替えているため、
まずは「BP_CameraActor001」の「Event On Become View Target」イベントが実行され、
2回目で「BP_CameraActor000」に切り替わるため
「BP_CameraActor001」の「Event On End View Target」がまずは実行され、
そのあとに「BP_CameraActor000」」の「Event On Become View Target」が実行されています。

3回実行時はこんな感じの結果に(下から順です)
カメラ切り替え時のイベント007
もともと別のカメラから「BP_CameraActor001」に切り替えているため、
まずは「BP_CameraActor001」の「Event On Become View Target」イベントが実行され、
2回目で「BP_CameraActor000」に切り替わるため
「BP_CameraActor001」の「Event On End View Target」がまずは実行され、
そのあとに「BP_CameraActor000」」の「Event On Become View Target」が実行されました。
3回目で「BP_CameraActor001」に再度切り替わるため
「BP_CameraActor001」の「Event On End View Target」が実行され、
最後に「BP_CameraActor000」」の「Event On Become View Target」が実行されました。

カメラ自身で自分にカメラが切り替わったか、自分から違うカメラに切り替わったが検出できるため、
複数のカメラで制御を行っているものとしてはかなりわかりやすい初期化や終了処理などが記述できそうです。

ここらへんの便利機能はもっと知っておかないとなと思いました。

| UE4 | 10:00 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/646-8685b984

TRACKBACK

PREV | PAGE-SELECT | NEXT