ゲームパッドのスティックの傾き具合を、
向きに関係なく0(傾きなし)~1(傾き最大)の範囲で得る方法が知りたいです。
やりたいことは、サードパーソンで、
スティックの傾きが小さいときはしゃがみ歩き、
スティックの傾きが大きいときは走り
になるなど、傾きが一定を超えた(または最大になった)時に、
(最大)移動速度やアニメーション等が変わったり、
それら状態とボタンの組み合わせでアクションが変化したりなどです。
以下は、試したことです。
ゲームパッドのスティックの入力はX軸Y軸に分かれているので、
そこからVectorを作り、その長さを表示するノードを組みました。
(サードパーソンテンプレートのBP_ThirdPersonCharacter内です)
斜め方向に最大まで傾けた時のVectorの長さが、
向きによって0.94ほどまで下がったり、1を超えることがあります。
エンジン>インプット>バインディング>軸マッピング>Advanced>軸のコンフィグ>Gamepad_LeftX(Y)
で、Dead Zoneの値が最初から0.25になっているので、これを0にすると、
最大まで傾けた時のVectorの長さは常に1を超えるようです。
このように、向きによって最大値が変わるため、これを傾き具合だと思って使うと、
ぴったり軸方向とそうでない向きで必要な傾け具合に差が出てしまいます。
また、Dead Zoneが0.25の時、判定を0.9以上にし、
最大まで傾けた状態でスティックを回したところ、時折判定が漏れてしまいます。
(時折falseになる)
なお、使用しているゲームパッドはXboxワイヤレスコントローラーです(有線接続)。
よろしくお願いいたします。