LoginSignup
5
1

More than 1 year has passed since last update.

マウスカーソルの位置方向の角度を取得する方法 & コントローラーのスティックの入力角度を取得する方法

Last updated at Posted at 2022-12-07

はじめに

個人でUnrealEngineを使ってインディーゲームを開発しています Toyota Ryuto といいます。
この記事が「役に立った!」「いいと思った!」のであれば是非Twitterのフォローをよろしくお願いします!

今回の記事

ズバリ 「マウスカーソルの位置から角度を取得する方法」 「コントローラーのスティックの入力角度を取得する方法」 です!
UnrealEngineでの実装方法が探しても見当たらなかったため、今回この記事を書かせていただきました!

具体的には👇のような動作が可能になります。(こちらは現在開発中のインディーゲームのPVです。)
マウスカーソルの方向、スティックの入力方向に目が向くようになっています!

※ブループリントオンリーで実装できる仕組みになっています。

実装方法としては、高校などで習う三角関数を使用しています。
三角関数の知識が無くても実装可能になってますのでご安心を!
(2点の座標から角度を求めるやつ って思ってもらえればここではOKです。)
103095.jpg

引用 https://www.weblio.jp/content/%E4%B8%89%E8%A7%92%E9%96%A2%E6%95%B0

【実装】マウスカーソルの位置から角度を取得する方法

ここでは簡単な方法としてTickを使っていますが、入力さえ入れば大丈夫なので嫌な方は他の入力方法でも動作するかと思います!
スクリーンショット 2022-11-29 105407.png
👇こちらのサイトでノードをコピーできます!(そのままエディターにペーストできます。)

これでマウスカーソルの位置角度が 変数 Mouse Direction に格納されます!

画面の中心座標を0として、その場所に対してのマウスカーソルの座標を取得しています。
画面比率は1:1ではないので、1:1で計算するために、今回は画面の縦の大きさでお互いを割ります。
こうすることで三角関数で使える座標が出るのでこれを今回は使用しました!

【実装】コントローラーのスティックの入力角度を取得する方法

入力可能なBPでこちらをそのまま使っていただければ実装可能だと思います!
※TurnRateGamepadの変数の初期値は50にしておいてください!
スクリーンショット 2022-11-29 103216.png
👇こちらのサイトでノードをコピーできます!(そのままエディターにペーストできます。)

InputActionの詳細はこのようになっています。
スクリーンショット 2022-11-29 103006.png
これでコントローラーのスティックの入力角度が 変数 Xbox Direction に格納されます!

コントローラーの軸インプットは右に倒すと1、左に倒すと-1を返してくれるので、これをX座標とし
上に倒すと1、下に倒すと-1を返してくれるので、これをy座標とします。
するとこれを利用すると、コントローラーの入力具合がxとyの座標に変換できるので、これを三角関数と組み合わせて
角度を導き出すといった処理になっています!

例)
・コントローラーを右斜め上に倒す
(x,y)=(0.5 , 0.5)
・コントローラーを左に倒す
(x,y)=(-1 , 0)

さいごに

これを用いることで横スクロールゲームやトップダウンビューのゲームで主に役立ちます!
(横スクロールアクションのブースト方向の指定やトップダウンビューの攻撃方向の指定など)

他の使い方としては謎解きゲームなんかで時計の針を動かしたりもできるかもしれませんね!

この記事が参考になりましたら、是非Twitterのフォロー等していただけますと幸いです。

5
1
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
5
1