Actorをマウスで回転
ホラーゲームなど(「Allison Road」とか)でよくある、アイテムを確認するときのようなものです。
マウスを右に動かすと、Actorが右に回転し、左なら左に、上なら上に、下なら下に回転する。
どうすればこのようなことができますか?
ちなみに、今作っているゲームは一人称視点で、Rキーでインタラクト(LineTraceで)。
Actorをマウスで回転
ホラーゲームなど(「Allison Road」とか)でよくある、アイテムを確認するときのようなものです。
マウスを右に動かすと、Actorが右に回転し、左なら左に、上なら上に、下なら下に回転する。
どうすればこのようなことができますか?
ちなみに、今作っているゲームは一人称視点で、Rキーでインタラクト(LineTraceで)。
マウスの位置を取得するノード等を利用してTick内で回転処理を加えていけばよいかと思います。
GetMousePositonノードとGetViewPortSizeノードを使って現在マウスカーソルがどの位置にいるかを比率で表します(0~1で取り扱ったほうが解像度を変えた時や分岐処理が書きやすいため)
あとは0.3以下の時は~等で分岐させてAddActorRotationなりすれば出来ると思います。
以下は実際に組んでみたBPとGIFです。
Rキーでインタラクトしたら、回転させるActorを、画面の中心に出現させたいのですが、どうすればできますか? ソケットを使えばいいのでしょうか?
はい。Attach系のノードを使ってSocketにくっつけることで実装可能だと思います。
または、アイテムを確認している時にカメラやキャラクターが動かないのであれば、アイテムの座標を目の前に移すだけでも大丈夫かと思います
カメラの向き(目線)に合わせて動くSocketをつけることはできますか?
SocketにActorをAttachしてみたのですが、カメラの向いてる方向にActorを表示させたいです。
Socketを入れているスケルタルメッシュ又はスタティックメッシュをカメラ方向に合うように動かす必要があると思います。
難しい場合はCameraの前方向にセットし続けるようにする方が楽かもしれません。
無事、プログラム組めました。
丁寧な回答ありがとうございました。