Unity_Lesson

Input Systemの入力値を補正する

Input Systemでジョイスティックやマウス移動量など、一部の入力値に対して感度を設定(入力値を補正)する方法を見ていきます。

画像では、右スティックの値は大きさが0~1なのに対し、マウス移動量は10以上の大きな値が返されています。この場合、マウス移動量を小さくして補正することで解消できます。



・マウスの入力値補正の設定例

Actionsのアクション名を適当なものにし、Properties > Action項目を設定します。
2軸操作となるため、Action TypeにはValue、Control TypeにはVector 2を指定すればOKです。



マウス移動を設定する場合は、Mouse > Deltaを選択します。



Scaleを設定したいBindingを選択。
右側に表示されるBinding Properties > Processors右の+アイコンから、Scale~を選択。


マウス移動量の場合、入力値の型(Control Type)はVector2となるため、Scale Vector 2項目がリストに表示されます。


Processorを追加すると、Processors一覧にScale~が追加されますので、入力値の各要素(X、Y、Z等)に掛けたい係数を指定します。例では0.1倍しています。

設定が終わったら、Save Assetボタンをクリックして設定内容を保存します。


マウスの補正値設定は以上です

例として、CinemachineのFreeLook Cameraによる視線操作に対して適用させます。
(Cinemachineをインストールしてない場合は、インストール)


ヒエラルキーにて右クリック。Cinemachine > FreeLook Cameraを選択、作成されたGameObjectにCinemachineInputProviderコンポーネントをアタッチ。
(なお、アタッチする場所は、バーチャルカメラオブジェクトおよびその子(孫含む)オブジェクトのどちらでも構いません。) (TrackingTargetを設定してもいいかも)


無事に追加出来たら、次の項目を設定します。

Cinemachine Free Look Cameraなどのバーチャルカメラでは、基本的にXY Axisしか使わないため、Z Axisはnullでも問題ありません。

Input Systemにおける入力感度の設定は、Scale系のProcessorを用いて実現可能です。

公式リファレンス