マップ変換|Range Mapper

2022-09-07XPresso, QuickVFX

QuickVFX Youtube Channerより

マップ変換 Range Mapper

[マップ変換]ノードは、とても便利で、XPressoで最もよく使用するノードのひとつになります。指定した範囲にある入力値を、別に指定した範囲の値に変換(マップ)し、結果を出力するノード。

マップ変換の実際

今回は、以下のように球と円柱と立方体で作成したシーンを作る。球が移動(P.X)するのに合わせて、立方体が回転(R.B)するようにしたい。

シーン準備

  • 立方体と球体を作成し、球体の位置をオフセットする。
  • 円柱を作成し、球体のスライダーとなるように調整する。

位置情報と回転情報のリンク

  • ヌルオブジェクトを作成。XPressoタグを追加([タグ>CINEMA4Dタグ>XPresso])。XPresso編集ウィンドウ(Xpressoエディタ)が開く。

  • オブジェクトマネージャより立方体を選択し、Xpressoエディタにドラッグ&ドロップ。エディタの右側に配置する。

  • 立方体ノードの青い部分をクリックし、入力ポートに「絶対角度.B」を追加([座標>絶対角度>絶対角度.B]を選択)。

※英語版だと[Coordinates>Global Rotation>Global Rotation.B]

以下のように、なった。

  • 次に、オブジェクトマネージャより球体をXpressoエディタにドラッグ&ドロップ。エディタ左側に配置。

球体の赤い部分をクリックし、出力ポートに「絶対位置.X」を追加([座標>絶対位置>絶対位置.X]を選択)。

以下のようになった。

  • 試しに、球体の「絶対位置.X」を「絶対角度.B」をワイヤでつなぐ。

ビューポートで球体をX軸方向に移動させて結果を見ると、立方体は回転しているが、すごいスピードで回転している。

※註:どのようなデータ構造になっているか、XPressoエディタで分かりやすく表示↓

マップ変換(Range Mapper)の使用

自分の思うように、位置情報と角度情報をリンクさせたい。

  • 「マップ変換」ノードを使用する。

Xプールの虫眼鏡アイコンをクリックして検索窓を表示し、「マップ変換」と打ち込む。現れた「マップ変換」をXPressoエディタにドラッグ&ドロップ。

  • [マップ変換]ノードをクリックすると、属性マネージャで属性が表示される。

  • 今回の[入力範囲 Input Range]は球体のX位置なので[ユーザ定義 User Difined]のままでOK。[出力範囲 Output Range]は立方体の絶対角度.Bなので「 Degree」にする。

今回は球体のX位置の「-300cmから300cmに移動する」ときに「立方体が一回転する」ようにしたい。

  • [入力下限 Input Lower]を「-300」に、[入力の上限 Input Upper]を「300」に。[出力の下限 Output Lower]を「0°」、[出力の上限 Output Upper]を「360°」に

  • ノードをワイヤーで結ぶ。

ビューポートで球体をX軸方向に移動させると以下のようになる。

ここで注目したいのは、「球体が-300cm、300cmよりもさらに原点から離れても立方体は回転し続けている」こと。

オプション1:[下を切る][上を切る]

  • 立方体の回転を「球体が-300cm~300cmを移動している間のみに限定」したい場合は、[マップ変換]ノードの属性マネージャで[下を切る Clamp Lower][上を切る Clamp Upper]にチェックを入れる。

オプション2:出力範囲の[反転]

立方体の回転を逆にしたい場合、出力範囲を反転すればよい。[マップ変換]ノードの属性マネージャで[反転 Reverse]にチェックを入れる。

※立方体の回転を逆にしたい場合、もうひとつの基本的な方法として[出力の上限]を「360°」から「-360°」に変更しても同じ結果が得られる。

オプション3:Xスプライン 4:58~

入力値を非線形に出力値に変換するのが、属性マネージャの一番下にあるグラフ「Xスプライン」の機能。

  • グラフ上で右クリックするとメニューが現れる。まずデフォルトの「線形」([スプラインプリセット>線形 Linear])を選択する。

以下のようになる。ビューポートでの立方体の回転に変化はない。立方体は一定のスピードで回転する。

  • 他のスプラインセットを選択してみる。3次ベジェ曲線の[三次]([スプラインプリセット>三次 Cubic])を選択。

グラフは以下のようになる。ゆっくりと回転を始め、終わりに向けてスピードアップ。

ビューポートでチェック([下を切る][上を切る]のチェック入れています)