キャラクターの位置に基づくある値の計算方法とノードの組み方について

現在2Dゲームを作成しており、
ある値を取得し運用したいのですが、

値の求め方とノードの組み方がわからず困っております。

具体的な内容は下記です。

ーーーーーーーーーーーーーーーーーーーーーー

aとbは直線上に並んでいます。xは距離です。

操作キャラクターがa,b間に居る際、キャラクターの位置に応じて値yを取得したいです。

※aとbは常に直線上ですが、a,bの横位置とx(距離)は状況に応じて変わります。

キャラクターがa地点にいるときはy=1.0、

b地点にいるときはy=0.0を取得したいです。

仮にaとbの丁度中間にいる場合はy=0.5を取得することになります。

この値はリアルタイムで取得したいと思っていて、

キャラクターがaからbまで移動する場合は、リアルタイムにキャラクターの位置に応じてyの値が1.0~0.0の間に変動して欲しいです。

また、上記に加えて a地点にいる時は0を取得、

b地点にいる時は1を取得するような、先程の処理とaとbが 逆になる処理も知りたいです。

(この場合もaとbの丁度中間にいる時は0.5の値を取得)

ーーーーーーーーーーーーーーーーーーーーーー

不慣れなので説明が不足していたらすみません。

その際はコメントにて質問していただければと思います。

解答者様の貴重なお時間をいただき申し訳ありませんが、

お分かりになる方がいましたら、ご回答いただければと思います。

宜しくお願い致します。

非常に丁寧な説明がされているため答える側としても答えやすくて申し分ありません。

実装方法に関しては、MapRangeClampedというノードが目的に合っていると思います。

動作としては、valueをA~Bと比較して、その割合に合わせた値をoutRangeA~Bで設定した値として出力するものです。

(画像の実装だとAに近いほど0に近い数値を出力し、Bに近いほど1に近い数値を出力します)

もう少し詳しいMapRangeClampedの説明に関しては以下のURLから参照してみてください。

ちなみに変わったやり方だと、 LinePlaneIntersection というノードがあります
これは何をしているかイメージできないとよくわからないと思いますが、わかると色々便利になるかもしれないノードです

LunaNelis さん

早々にコメント頂きありがとうございます。
目的にあったノードをご紹介していただき、非常に助かりました!
また、今後質問する際は引き続き、できるだけ回答者様が答えやすいように丁寧に質問しようと思いました。

T_Sumisaki さん

別のノードをご紹介していただき、ありがとうございます。
様々な方法を知れると勉強になるので助かります。
これから試してみようと思います!