[UR5]Map Range Clamped

入力された値を指定した範囲内で正規化する方法です。

正規化とは、データや情報を特定のルールや基準に基づいて整理・変換し、扱いやすくしたり、統一的な形式に整えたりすることです。

この方法では、入力された値を指定した範囲内に変換できます。
今回は様々な箇所で使用しましたが、主に手の高さの入力に活用しています。
身長が高い人や手が長い人はカーソルが画面上部から突き抜けてしまい、逆に背が低い人や手が短い人は画面上部まで届かないことがあります。
このように、身長によって動作範囲が制限されてしまいます。
そこで、プレイヤーの手の上下の動きを画面の上下範囲に対応させることで、どんな身長の人でも同じように遊ぶことができるようになります。

具体的には、In Range Aに腕の最低位置、In Range Bに腕の最高位置を変数で入力し、Out Range Aに画面の最低位置、Out Range Bに画面の最高位置を入力しています。
Right Hand Y の変数には現在の腕の位置を入れています。

同様にノーツが近づくと色が変わる部分でも使用しています。
ノーツがジャストキャッチできるタイミングと連動させています。
In Range Aにジャストキャッチより0.5秒早い-0.5を、
In Range Bにジャストキャッチより1秒遅い1を入力し、
Out Range Aに0、
Out Range Bに1を入れて、
この値をLeapに渡すことで、ノーツが近づくにつれて暗い青からノーツ本来の色に変わるよう設定しています。ノーツ本来の色はColor Valueという変数名にしています。

「Map Range Clamped」の場合、入力値が「In Range A」「In Range B」の範囲外なら、まず範囲内にクランプされてから「Out Range A」「Out Range B」内に正規化されて出力されます。そのため、出力結果は常に設定した範囲内に収まります。
一方、「Map Range Unclamped」の場合、入力値が範囲外のときは調整されないため、出力結果も範囲外になることがあります。

 

制作日記更新
「波の記憶」-Rhythm of The Sea-
制作日記はこちら
https://note.com/muro8/n/ne0a24907fb54