https://vimeo.com/5891547
https://vimeo.com/5891661
ボックスから発生するトレイルエフェクトチュートリアル
1・以下の3つを作成
・motionPath_curve
エミッターとなるボックスが沿うモーションパスカーブオブジェクト
・trail_emitter
エミッターとなるボックスオブジェクト
・trail_lines
トレイルエフェクトオブジェクトが入るGeometryノード
2・モーションパスにボックスを沿わせて動かす
trail_emitterのPath ObjectにmotionPath_curveを指定
Positionにスタートフレームで0、エンドフレームで1となるようにキーを打つ。
これで時間を動かすと、カーブに沿ってボックスが動くようになる。
3・Trailノードを使ってボックスの頂点の軌跡を取り出す
※この時、trail_emitter内のboxノードに直接Trailノードをコネクトしても、trail_emitter内に存在するbox自体は、ローカルな空間内では動いていないので軌跡が作成されない。
グローバル空間での動きを元にTrailを作成する必要がある。
trail_linesの中にObject Mergeノードを作成する。
このノードは、パスを指定してどこからでもジオメトリデータを取得できる。パラメータリストの下部で呼び込みたいオブジェクトのパスを指定する。
Transform情報はbox自身の移動情報を使用するので、以下のように設定する。
そして、Object MergeにTrailノードを接続すると、Trailが正しく有効になる。
4・エフェクトの発生点を作成する
trail_emitterを非表示にしておき、後面を選択後に削除。
blastノードが作られ面の削除が行われる。
blastノードのパラメータで、Delete Non Selectedをオンにする。
こうすることで、選択されていなかった面が削除される。
5・Trailで複製された面が持つ頂点同士を接続する
Trailノードのパラメータで、Result TypeをConnect as Polygonsにする
同じ番号を持つ頂点同士が接続される。
デフォルトの設定では、ここで作られるポリゴンのラインは閉じているため、急激なカーブを行う箇所などでは面が見えてしまう。
開いたカーブにするため、以下のパラメータをオフにする。
6・Trailが作るラインがいい感じの見た目になるようにパラメータを調整
上記のような設定にしてみた
7・Trailで出来たラインをNurbs Curveに変換する
Convertノードを作成し接続
Convert To を Nurbs Curveにする
8・ラインのパラメータ位置計算のため、rankアトリビュートを作成する
Attrib Createノードを作成。
Name を rankに
9・カスタムアトリビュートをビューポートに表示する
Dキーでディスプレイオプションを開き、Customの項目でNew text display option
ApplyやAcceptを押すと、Customの項目にrankが追加されたことがわかる。
これがオンになっていると、同名のアトリビュート値が各ポイント上に表示されるはずだが、なぜかされない。
ちなみに、このカスタム表示を使えば、各頂点上の法線方向なども視覚的にわかりやすく表示できるようになるらしい。
10・VOP SOP
VOP SOPを作成してコネクト
VOP SOPに入る
11・rankの値を使用するため、Parameterノードを作成する
ノード名はわかりやすいものにする
Nameはアトリビュート名
Labelはわかりやすいものにする
InvisibleがオフだとVOP SOPノードにパラメータが表示されてしまうのでオンにして隠しておく。
ノードカラーも、inputとVOP SOP内で生成されるものとで分けておくと良い。
12・RampParameterを作成し、コネクトする
Trailエフェクトのぶれ具合をramp制御したいのでRampParameterを作成し、コネクトしておく。
RampParameterノードは0〜1の値を受け取り、それぞれの値に応じた値を出力する。
Rampの動作は以下のようにしておく
Nameに$OSという名前の変数を使うと、ノード名そのものがここで作られるパラメータ名として使われる。VEX内部で生成するパラメータはこのパターンで命名するのが楽かも。
13・Turbulence Noiseノードを作成する
このノードを使用して、Trailのブレを作る
14・Noiseスケール用のParameterノードを作成する
Turbulence Noiseで作られた3軸のノイズ値を個別にスケールできるように、 3 Float型のParameterノードを作成。
この時、Default値は 1,1,1にしておく。(0,0,0 のままだと、Noiseがかかっていないように見えてしまう)
15・MultiplyノードにNoise計算用ノードをコネクト
16・Noiseと元々のカーブを加算する
最後に、Multiplyで作られたNoise成分と、元々のカーブのポイントを足し合わせる。
Multiplyの計算結果は、あくまでもノイズ成分。
これを、元々のカーブに足し合わせることで、Noiseの加わったランダムなカーブが出来上がる。
赤がモーションパスカーブ
緑がNoise加算前のTrailカーブ
白がNoise加算後のTrailカーブ
チュートリアルをアレンジしてレンダーしてみた