次に、自動車が通過した時に自動的にgateのマテリアルを変えるXPressoを作ります。XPressoというのはCINEMA 4D独自のエクスプレッション環境で、ノードをつなぐだけで複雑なプログラムを作成できます。XPressoもCINEMA 4Dの要となる機能なので、よく見てください。まず、gateに「XPresso」タグを追加します。XPressoタグをダブルクリックすると、「XPresso編集」ウインドウが開きます。
次に、「gate」と「自動車」、「gateについているテクスチャタグ」をXPresso編集にドラッグします。
そして、「gate」と「自動車」から「絶対位置」を取り出します。「絶対位置」はワールドに対する位置、「相対位置」は自分の親に対する位置です。
次に、XPresso編集の空いている部分を右クリックして「距離」ノードを作成します。このノードを使ってgateと自動車の距離を調べ、指定した距離より近づいたらテクスチャタグにリンクされているマテリアルを切り替えるわけです。
次に、距離を判断するために「比較」ノードを作成します。比較ノードは、「比較演算子」を「<(小さい)」に、「入力2」を「50」にします。こうすると、比較ノードは距離が50より小さい時に「1(True)」、そうでない時には「0(False)」を出力するようになります。
次に、二つのマテリアルを切り替えるために「on」と「off」マテリアルをXPresso編集にドラッグします。
そして、「条件分岐」ノードを作ります。条件分岐ノードは、「スイッチ」の値に応じた「入力」の値を「出力」に出します。つまり、スイッチの値が0なら入力1が、スイッチの値が1なら入力2が出力されるわけです。
条件分岐ノードはいろいろな値を扱えますが、今回は「マテリアルのリンク」を切り替えるので「データタイプ」を「リンク」に変更します。
最後に、「テクスチャタグ」ノードに「マテリアル」入力ポートを追加し、条件分岐ノードの出力ポートにつなぎます。
これで、自動車が通過する時に自動的にgateのマテリアルが変化するようになりました。キーは全く打っていませんが、これもアニメーションの一つです。
次に、このXPressoがついたgateを複製し、「スプラインに沿う」タグの「スプライン上の位置」の値を変更し、道路上の別の位置に移動します。すると、自動車が通過するたびに各gateのマテリアルが自動的に切り替わるはずです。
もしこのマテリアルのアニメーションをキーフレームで作ろうとしたら、自動車や道路やgateが変化するたびにキーを修正する必要があり非常に大変です。また、gateが数百個ある場合、事実上キーフレームで管理することは不可能です。しかし、XPressoを使えば何の問題もありません。
図052-9
|
Comments are closed.