チュートリアル / 3ds Maxではじめるエフェクト制作
第9回:tyFlow / Particle Bind
- 3ds Max
- エフェクト
- コラム
- チュートリアル
- 学生・初心者
- 映画・TV
トリプルアディショナル小張です。
今回もtyFlowについて書いていきます。
前回は、基本的な部分を紹介しました。
今回は前回よりも、もう少し踏み込んでダイナミックスをかけたシェイプを作っていきます。
シンプルなロープのようなシミュレーションから、最終的には冒頭に載せた画像のようなクモの糸に似た感じのアブストラクトな表現まで紹介していきます。
非常にシンプルなセットアップになりますが、ダイナミックスを用いることで説得力のある絵が作り易いです。
現状はベータ版が無料で配布されています。
http://docs.tyflow.com/download/installation/
実際に作っていきます。
tyFlowのシェイプを作る方法はいくつかあります。
今回は実際にシェイプでモデルを用意し、それをベースにダイナミックスをかけていきます。
まずモデルを用意します。
Create パネル→Shapes→Splines→Circle で円形のシェイプを作りました。
X軸上に70cm移動させ、モデファイアのEdit Splineをかけます。
Spline選択し、Shift+ドラッグでコピー、X軸上の-70に移動します。
次にNomalize Splineをかけ、分割数を上げます。(Seg Length: 5.0にしました)
さらにEdit Splineをかけ、Cross Sectionで2つのスプラインを結ぶSegmentを作成します。
次に不要になってくる円形部分を削除します。
もう一度Nomalize Spline をかけ分割数を上げます。(Seg Lengthを2.0にしました。)
今回は、ここで分割した頂点数がそのまま発生するパーティクル数になります。分割数が多い程なめらかなラインを生成できますが、重くなっていきます。
後で、tyflowのResampleをかけ頂点数を上げることも可能です。
tySplineの設定をしていきます。
Create パネル→Standard Primitive→tyFlowでtyFlowを用意します。
エディターを開き、Birth Surfaceをドラッグ&ドロップ。
パラメーターにある、Birth Surface→objectsでPickをクリックし作成したシェイプを選択します。
選択したシェイプの頂点上にパーティクルが発生してるのが分かると思います。
次にParticle Bindをイベントにドラッグ&ドロップします。パラメーターにいき、
Family Bind→Particle Family bindings→Bind to siblingsにチェックを入れます。
Particle Bind→Display→Show Bindingsにチェックを入れると、どうバインドされてるか確認できます。
Proximity Bind→Proximity Bind→Enable Proximity bindはここでは不要なためチェックを外します。
Proximity Bindは指定した距離内だったりの近接するパーティクルを結ぶ機能です。
結ばれ方が変な感じになっています。これはシェイプを一本づつとみなしていないためなので、
Birth Surfaceを選択し、パラメーターにあるSplit elemetsにチェックを入れます。
これで一本づつにわかれました。
Spline Pathsをドラッグ&ドロップします。パラメーターにいき、
Spline Paths→Spline Path Object→Create NewをクリックしtySplineを作成します。
Spline Paths→Mode→Particle bindingsにチェックをいれ、Particle Bindで指定したシェイプが作成されるようにします。
Forceをドラッグし、パラメータで
Forces→Built-in Forces→Built-in GravityのStrengthに数値をいれ重力をかけてみます。
重力で下に落ちていくのが確認できます。
ダイナミックスの設定をしていきます。
両端のパーティクルを固定して、落ちていかないようにします。
両端の位置に、ヘルパーのPointを作成します。
次にtyFlowのエディターにいき
Object Testをドラッグ&ドロップします。パラメーターにいき
Object Test→ObjectsにPickで先ほど作成した Pointを指定します。
新規にDisplayをイベントとして作成し、Object Testと繋ぎます。
イベントに送られているか確認しやすいようカラーを赤に変更しました。何も送られていないのが分かります。
Object Testに戻り、パラメーターにある、
Object Test→Test True if:→Distance to objectにあるPlanerをXに変更します。
(X平面上で近接するパーティクルが次のイベントに送られるようになります。)
さらにそのすぐ下のほうにあるDistanceを1.0に変更しました。
(X平面上から1.0cm以下で近接するパーティクルが次のイベントに送られるようになります。)
試しにタイムスライダーを動かしてみます。
途中から固定されないパーティクルが出てきています。パーティクルが動いたことでX軸に近接したパーティクルがさらに出てきたためです。
Object TestのTimingをOn Event Entryに変更し、イベントのスタート時のみテストするようにします。
これで固定されるようになりました。
さらにPoint のアニメーションに追従できるようにしていきます。
2番目のイベントにObject Bindをドラッグ&ドロップ。
Bind Objects→Objectsで、先ほど作成したPointを指定します。
アニメーションが追従するようになりました。
ダイナミックスの調整をしていきます。
動きが面白くないので、調整してきます。
1つ目のイベントにあるForceを調整していきます。
Forceを選択。
Built-in Force→Built-in Noise Layer1でTurb.にチェックをいれます。
さらに、StrengthとScaleを設定します。(Strengthを1、Scaleを0.02にしてみました。)
Slowをドラッグ&ドロップ
Max標準のDragに似た感じの機能です。動きが減衰していく時等に使います。
一度スプラインを表示して様子を見てみたところ、もっとスプライン同士が干渉してる感じにしたくなったので設定していきます。
Particle Physicsをドラッグ&ドロップ
パーティクル同士の衝突計算を行う機能です。
パラメーターにいき
Collide→Collision radius→Absolute radiusで衝突に使うサイズ等を設定しました。
ちゃんとシミュレーションさせるにはパーティクル数が少なすぎたのかで、すり抜けたりしてしまってるような気もしますが雰囲気は出たかと思います。
冒頭の画像のような感じにします。
スプライン同士を結び、引っ張り合うようなバインドを作っていきます。
Particle Bindを追加します。
イベント中バインドするパーティクルを探索し続けられるようにするため、
Timing→Continousに変更します。
さらに、Proximity Bindの設定をします。(Distanceを3、Max Bindsを3に変更しました。)
Particle Bind→Stiffnessも0.1に変更し柔らかくしました。
次にModify Bindingsをドラッグ&ドロップ。バインドが変更されるようにする機能です。
Timing→Continousに変更。
Modify Bindings→OperationをMultiply Originalに、Strechにチェックをいれ0にします。
値が加算され、バインドの距離が縮むのが確認できるかと思います。
スプラインとスプラインを引きつけあう力だけに作用させたいので、設定していきます。
先ほど新たに作成したParticle Bindのパラメーターにいき、
Particle Bind→Bind Settings→Binding IDを1に変更します。
Modify Bindingsにもどり、
Modify Bindings→Filter→By IDにチェックをいれ、IDを1にします。
ID1のバインドのみに作用するようにまります。
どうも上手く引きあっていかないと思っていたら、Particle Physicsが掛かって衝突しているせいでした。
Particle Physicsをクリックしてオフにします。
引きあっていくようになりました。
冒頭の画像ではスプラインの本数を増やし、分割数をさらに細かくしてシミュレーションをかけたものです。
Proximity Bindの距離の設定が変わってきますが、それ以外は特に変わらない設定です。
発生させてるパーティクルもレンダリング出来るように設定し、Vrayで質感設定しGIをかけてレンダリングしました。
今回のシーンファイルがダウンロードできます。