マウスで視点を動かすようにしたいんだけど、カメラの回転が速すぎて困っているの…
マウス感度を調整する必要がありそうね。Input SystemならProcessor機能を使えば良いわ!
Input Systemでジョイスティックやマウス移動量など、一部の入力値に対して感度を設定する方法の紹介です。
結論を述べると、Input ActionのScale系Processorを適用すれば可能です。これは、入力値にある倍数を掛けるProcessorの一種です。
これは、旧Input ManagerのSensitivity項目に該当します。
例えば、視線操作を右スティックとマウス操作で行いたい場合、両者の返す入力値の大きさが異なってしまう問題が発生してしまいます。
画像では、右スティックの値は大きさが0~1なのに対し、マウス移動量は10以上の大きな値が返されています。この場合、マウス移動量を小さくして補正することで解消できます。
本記事では、このような入力感度の設定を行う方法を解説します。
この作品はユニティちゃんライセンス条項の元に提供されています
- Unity 2021.2.11f1
- Input System 1.3.0
目次 非表示
前提条件
事前にInput Systemパッケージがインストールされ、Input Actionの設定が済んでいるものとします。
インストール方法が分からない方は、以下記事をご覧ください。
Input Actionの設定方法が分からない方は、以下記事を参考に設定を行ってください。
本記事では、マウスと右スティック操作が可能な視線操作(Action)に対して感度を適用することとします。
Scale系Processorの仕様
入力値の各要素に係数を掛けた値を出力するProcessorです。
参考:Processors | Input System | 1.3.0
3種類の型(Control Type)に対応したProcessorが用意されています。
- Scale
- float型専用
- Scale Vector 2
- Vector2型専用
- Scale Vector 3
- Vector3型専用
Processorの追加
該当するInput Actionファイルを開き、Scaleを設定したいBindingを選択します。
動画の例では、マウス移動量(Delta)を選択しています。
この状態で右側に表示されるBinding Properties > Processors右の+アイコンから、Scale~を選択します。
マウス移動量の場合、入力値の型(Control Type)はVector2となるため、Scale Vector 2項目がリストに表示されます。
Processorを追加すると、Processors一覧にScale~が追加されますので、入力値の各要素(X、Y、Z等)に掛けたい係数を指定します。
例では0.1倍することとしました。
設定が終わったら、Save Assetボタンをクリックして設定内容を保存します。
実行結果
右スティックとマウス移動でも程よい感じの回転速度となりました。
例では、CinemachineのFreeLook Cameraによる視線操作に対して適用しています。
さいごに
Input Systemにおける入力感度の設定は、Scale系のProcessorを用いて実現可能です。
Processorにはほかにも様々な入力値の加工処理を行うものが存在しますので、気になる方は公式リファレンスをご覧ください。
参考:Processors | Input System | 1.3.0