見出し画像

シーンノードのエフェクタOPを使ってみる


シーンノードで何かを作る第2回です.今回はエフェクタOpを使ってみました.
エフェクタOpというとMoGraphのエフェクタを思い浮かべるかもしれませんがシーンノードのエフェクタはデフォーマと同じ機能が多く見受けられます.

エフェクタOpにはエフェクタタイプから様々なタイプを選択できます.屈曲やツイストなど,いわゆるデフォーマの機能がありますね.しかしすべてのデフォーマでもないし,簡易や風といった機能も入っています.

画像1

エフェクタOpを使うと,ジオメトリを変形したり(メッシュそのもの),分配分布したオブジェクトをコントロールしたりできます.

例えば,単純に立方体をツイストするような場合,エフェクタタイプを「ツイスト」,トランスフォームモードを「メッシュ」にしてあげるとこのように変形します.

画像2

分布の場合は〈トランスフォームモード〉を「分布」にしてあげます.
次の画像は分布した状態を屈曲させたものです.

画像3

簡易モードを使ってみる

簡易モードは簡易エフェクタと同じ機能だといえます.〈エフェクタタイプ〉を「簡易」にして〈トランスフォームモード〉を「分布」にするとクローナーに簡易エフェクタをかけた時と同じような動作となります.次の画像はエフェクタOpの〈移動〉をY方向に「200」に設定していますが,すべての分配分布に対して200移動しています.

画像4

エフェクタといえばフィールドと組み合わせて使うことが多いですが,フィールドOpを使うことで同じことができるようになるようなので,球体フィールドノードの〈フィールド強度〉を渡そうとすると何故かできません.おそらくポートの型が異なるのだと思います.

画像5

しかしフィールドグループノードの〈フィールド強度〉は接続できます.そのため,球体フィールドはフィールドグループノード内で使ってその値を取り出してみます.

画像6

フィールドグループノードはフォルダマークがついている通り,その中にノードを作成できます.
フィールドグループ内で球体フィールドの値をフィールドOpから取り出してみます.これで球体フィールドの値をエフェクタOpへ渡すことができます.ただ,きちんと理解して使っているわけではないので,ほかに方法はありそうな気はします...

画像7

で,肝心の球体フィールドの位置はどうするかというと,エフェクタOpの〈エフェクタマトリクス〉で設定できます.または,球体フィールドの位置に〈マトリックスOp〉やベクトル値を渡しても調整できました.エフェクタOpの方は入力されたフィールド全体のマトリクスを調整できるものと思われます.フィールド毎に個別にしたい場合は後者でしょうか.

これでようやくクローナー+簡易エフェクタ+球体フィールドのような状態を再現できました.慣れないととにかく時間がかかりますね...あと球体フィールドの位置がエディタ上で分からないので位置調整がしんどかったです.

画像8

今日はこんな感じでエフェクタOpの理解を少し進めました.最後にエフェクタOpを二つ使って作ったものです.フィールドグループ内はランダムフィールドと球体フィールドの値を計算して合成しています.

画像9

画像11

画像10



この記事が気に入ったらサポートをしてみませんか?