2013年06月

2013年06月28日

2014の新機能を調べてみた その13 3dsmax 2014

今回も引き続き「高度なデータ操作」について調べてみたい。

前回、ジオメトリでの「法線別の最も近いポイント」はポリゴンエッジを基礎ベクトルと見なした座標系でポリゴン上のポイントを表わすものだと判明した。今回はそれを検証してみたい。

三角ポリゴンを構成する3つの辺のうちの2つをベクトルに見立てると、ポリゴン上の点は2つのベクトルの合ベクトルで全て表現できる。

fig03

 P=x・V1+y・V2

  ただし
   0≦x≦1
   0≦y≦1
   (x+y)≦1

これを利用してポリゴン上のポイント位置を表現しているのがジオメトリでの「法線別の最も近いポイント」出力のベクトル値なわけだ。このサブオペレータの出力は他にオブジェクトのインデックスとポリゴンのインデックスをペアとして出力する。だからこの出力を分析すればどのオブジェクトのどのポリゴン上のどこらへんの点なのかが特定出来るわけだね。

で、このデータはいったい何に使えるんだろう?って考えて思いついたのがポリゴンにマッピングされたマテリアルの情報の取得だ。確かジオメトリにそんな項目があったような・・・。

で、調べた結果、「ジオメトリ」サブオペレータのオブジェクトプロパティ名に「ポイント〜」と名前の付くものの中にこのデータ関連のものがかなり潜んでいる事がわかってきた。

プロパティ 機能
ポイントのカラー マテリアルにより定義されるオブジェクトサーフェスのポイントのカラー
ポイントカラー3D 3Dマテリアルにより定義されたパーティクル位置のカラー
ポイントカラーグラデーション マテリアルとマスクにより定義されたオブジェクトサーフェス上のポイントのカラーの接線グラデーション
ポイントカラーグラデーション 3DマテリアルとRGBマスクにより定義された、パーティクル位置のカラーのグラデーション
ポイント自己照明 マテリアルにより定義されるオブジェクトサーフェスのポイントの自己照明
ポイントマッピング オブジェクトサーフェスのポイントのマッピング座標
ポイントマップグラデーション UVWマスクベクトルにより定義されたオブジェクトサーフェス上のポイントのマッピンググラデーション
ポイントマテリアル指標 オブジェクトのサーフェス上のポイントの面のサブマテリアルインデックス
ポイント法線 オブジェクトのサーフェス上のポイントの法線ベクトル
ポイントの不透明度 マテリアルにより定義されるオブジェクトサーフェス上のポイントにおける不透明度値
ポイント位置 ワールド座標のオブジェクトサーフェス上のポイントの位置
ポイントのソフト選択 オブジェクトサーフェス上のポイントのソフト選択状態
ポイント速度 オブジェクトサーフェス上のポイントの線形速度

例えば「ポイントのカラー」はこの出力をポイント情報として入力する事で、そのポイントにマッピングされているマテリアルのカラーを取得する事が出来るようだ。

例えばこのように中心部分にRGB(0,0,0)〜(1,0,0)のグラデーションを持った画像を作って、マルチ/サブオブジェクトマテリアルの1つのサブマテリアルとしてUVWマップに貼り付けるようなマテリアルを作って、

fig01

BOXオブジェクトの1面に出てくるようにした。

fig04

そして標準フローを修正して下のようにデータ表示とデータアイコン(データオペレータでもOK)を追加して、位置アイコンの「場所」パラメータを「基点」にして、アイコン自体は原点に置き、BOXは(40,0,−0.1)の場所に配置した。

fig05

そしてデータビューで「オブジェクトを選択」と「新たに出力」を1つずつ、「ジオメトリ」を2つ追加して、「オブジェクトを選択」では「単一のオブジェクト」としてシーンに挿入したBOXを設定し、「ジオメトリ」の「オブジェクトプロパティ」として「法線別の最も近いポイント」、「ポイントのカラー」を設定して、「新たに出力」の「データアクセススコープ」を「グローバル」にしてラベルも「カラー」に変えて下のように接続した。

fig06

そしてパーティクルビューの「データ表示」で「新たに出力」サブオペレータから出力された「カラー」データを受け取るように設定した。これでシーンが出来たのでBOXを上下に動かしてみたのが下のGIFアニメだ。パーティクルは原点にあってBOXは(40,0,z)の位置にあって回転はしていないので、「法線別の最も近いポイント」として検出されるのは下の画像の「サンプリングポイント」だ。そしてその部分には黒〜赤のグラデーションがマッピングされているので、BOXを下に動かしていくとサンプリングポイントの色は黒→赤に変わって行き、(0,0,0)から(1,0,0)に変化して行くはずだ。そしてその通りになった。  

fig07

そしてBOXをずらしてサンプリングポイントを黒赤グラデーションの帯からずらすと、出力される色は白(1,1,1)になった。

fig08

確かにポイントデータはポリゴン上の1点を指し示していて、そのデータによって、サーフェスにマッピングされている色が取得できることが確認できた。

ここで「ジオメトリ:ポイントのカラー」サブオペレータを「ジオメトリ:ポイントの位置」に切り替えると、サンプリングポイントのワールド座標値が出力された。

「ジオメトリ:ポイントマッピング」にすると今度はBOXにマッピングされているUVWマップの座標値になったようで、UVWマップを編集するとそれに連れて値が変化した。

このようにポイントデータからマップ座標やポリゴン座標、ワールド座標を切り替えて位置情報を取得できるので、例えばパーティクルが接触した場所にブラシを適用してテクスチャをペイントすることで水が壁にかかって濡れて色が変るみたいな表現も簡単に出来るようになるかもしれない。

それではまた来週。

maxまとめページ



take_z_ultima at 11:30|この記事のURLComments(0)TrackBack(0)3ds Max | CG

2013年06月27日

modo701が来た! その23 modo701 SP1

今回も前回に引き続きダイナミックフルイドのパラメータの詳細を調べてみたい。

fig01

スプリングの「強さ」はマニュアルには以下のように書かれている。

The 'Strength' value determines the flexing strength of the virtual springs generated between particles which results in the fluids Plasticity, which can be generally thought of as how quickly or slowly the substance forgets its former shape.

とある。この値を変化させれば変形速度が変化するような事が書いてある。

下の画像は斜面に流体を流した時のこのパラメータの影響を比較してみたもの。強さ5000と0.001で比較したんだけどこのくらい極端にしてかろうじて差が出てきた感じ。

半径:655、静止密度:11.3、剛性:0.007、近剛性:0.04、強さ:5000、静止長:0.0、リニア:10.0、平方:0.1

5000

半径:655、静止密度:11.3、剛性:0.007、近剛性:0.04、強さ:0.001、静止長:0.0、リニア:10.0、平方:0.1

0.001

今度は流体を能動的に変形させてみた。斜面の流れに円錐を交差させてその反応を見てみた。これもなかなか微妙な違いだけど、強さ5000の時は流体が綺麗に切り分けられたけど、0.001では回り込んでいる感じがある。

半径:655、静止密度:11.3、剛性:0.007、近剛性:0.04、強さ:5000、静止長:0.0、リニア:10.0、平方:0.1

fig32

半径:655、静止密度:11.3、剛性:0.007、近剛性:0.04、強さ:0.001、静止長:0.0、リニア:10.0、平方:0.1

fig33

「静止長」はマニュアルには以下のように書かれている。

When particles are resting the spring length is modified to pull neighboring particles together to form the overall density volume. The 'Rest Length' determines that minimum spring length value.

とある。この値を変化させるとパーティクル間に引力が働く最小距離が決まるような事が書いてある。

このパラメータも確かに微妙に機能している事は確認できたんだけどデータを紛失しちゃったので次回回しで。

粘性の「リニア」はマニュアルに以下のように書かれている。

The Viscosity setting controls the velocity transition values between active and resting particles. Higher 'Linear' values will increase the transition timer creating what appears like a thicker fluid.

留まろうとしているパーティクルと動こうとしているパーティクルの間の速度変化量を調整する値なのかな?下のGIFアニメは「リニア」の値を0.01、10、200にして比較してみたものだ。

半径:500、静止密度:10、剛性:0.01、近剛性:0.1、強さ:0.525、静止長:0.73、リニア:0.01、平方:0.01

fig19

半径:500、静止密度:10、剛性:0.01、近剛性:0.1、強さ:0.525、静止長:0.73、リニア:10.0、平方:0.01

fig16

半径:500、静止密度:10、剛性:0.01、近剛性:0.1、強さ:0.525、静止長:0.73、リニア:200.0、平方:0.01

fig20

今度はパラメータを変えて斜面を流してみた。

半径:655、静止密度:11.3、剛性:0.007、近剛性:0.04、強さ:0.0、静止長:0.0、リニア:0.001、平方:0.1

fig30

半径:655、静止密度:11.3、剛性:0.007、近剛性:0.04、強さ:0.0、静止長:0.0、リニア:3.81、平方:0.1

fig28

半径:655、静止密度:11.3、剛性:0.007、近剛性:0.04、強さ:0.0、静止長:0.0、リニア:20、平方:0.1

fig31 

「平方」はマニュアルには以下のように書かれている。

When particles in a group reach equilibrium, non linear forces are applied that repels the neighboring particles to maintain density in the volume. The 'Squared' value defines the strength of that force.

平衡状態になったパーティクルがくっつかないようにパーティクル間に働く反発力を決めるのがこの「平方」の役目らしい。

下のGIFアニメは容器の中にパーティクルを溜めた場合の「平方」パラメータの影響を10と0.005で比較したものだ。数値を大きくした方は流体が容器からはみ出てこぼれて量が減ってしまった。これは圧縮に対する反発力が強いって事なのかな?

半径:500、静止密度:10、剛性:0.01、近剛性:0.1、強さ:0.525、静止長:0.73、リニア:10、平方:100

fig25

半径:500、静止密度:10、剛性:0.01、近剛性:0.1、強さ:0.525、静止長:0.73、リニア:10、平方:0.01

fig27

パラメータの特徴がどういう時に発揮されるかはもうちょっと考察が必要みたいだな。

それではまた次回。

modo701ブログ目次



take_z_ultima at 12:09|この記事のURLComments(0)TrackBack(0)modo | CG

2013年06月26日

2014の新機能を調べてみた その12 3dsmax 2014

今回も引き続き「高度なデータ操作」について調べてみたい。

「ジオメトリ」は形状を持ったオブジェクトからプロパティを取得するサブオペレータだ。ノードには下の画像のように参照するオブジェクトの入力コネクタがあり、取得するプロパティにあわせてさらに追加の入力コネクタが出現する。

fig02

fig01左の画像はそのロールアウト。

取得できるオブジェクトのプロパティは以下の通り。

プロパティ 機能
サーフェスの直近オブジェクト パーティクルに一番近いサーフェスを持つオブジェクトのインデックス
頂点別最接オブジェクト パーティクルに最も近い頂点を持つオブジェクトのインデックス
法線別の最も近いポイント 法線がパーティクルを向く、オブジェクトサーフェス上のポイント
サーフェス別最接ポイント オブジェクトの、パーティクルに最も近いサーフェス上のポイント
最も近いポイントの距離 パーティクルからオブジェクトサーフェス上の最も近いポイントまでの距離
最も近い頂点 オブジェクトの、パーティクルに最も近い頂点
衝突ポイント オブジェクトのサーフェスとパーティクルの衝突ポイント
面の面積 オブジェクトの面の面積
面選択 オブジェクトの面の選択状態
内側のオブジェクト オブジェクトの体積に関連するパーティクルの内側と外側の状態
オブジェクトの面の数 オブジェクトの面の数
オブジェクトの頂点の数 オブジェクトの頂点の数
オブジェクトのサイズ オブジェクトのバウンディングボックスの幅、長さ、高さ
オブジェクトのサーフェス オブジェクトのサーフェス面積
オブジェクトの体積 オブジェクトが占めるスペースの体積
ポイントのカラー マテリアルにより定義されるオブジェクトサーフェスのポイントのカラー
ポイントカラー3D 3Dマテリアルにより定義されたパーティクル位置のカラー
ポイントカラーグラデーション マテリアルとマスクにより定義されたオブジェクトサーフェス上のポイントのカラーの接線グラデーション
ポイントカラーグラデーション 3DマテリアルとRGBマスクにより定義された、パーティクル位置のカラーのグラデーション
ポイント自己照明 マテリアルにより定義されるオブジェクトサーフェスのポイントの自己照明
ポイントマッピング オブジェクトサーフェスのポイントのマッピング座標
ポイントマップグラデーション UVWマスクベクトルにより定義されたオブジェクトサーフェス上のポイントのマッピンググラデーション
ポイントマテリアル指標 オブジェクトのサーフェス上のポイントの面のサブマテリアルインデックス
ポイント法線 オブジェクトのサーフェス上のポイントの法線ベクトル
ポイントの不透明度 マテリアルにより定義されるオブジェクトサーフェス上のポイントにおける不透明度値
ポイント位置 ワールド座標のオブジェクトサーフェス上のポイントの位置
ポイントのソフト選択 オブジェクトサーフェス上のポイントのソフト選択状態
ポイント速度 オブジェクトサーフェス上のポイントの線形速度
ランダムサーフェスポイント オブジェクトサーフェス上のランダムなポイント
ランダムボリュームポイント オブジェクトが属するオブジェクトインデックスがあるワールド座標内における、オブジェクトのボリュームの内側にあるランダムなポイント
頂点カラー オブジェクトの頂点の頂点カラー
頂点イルミネーション オブジェクトの頂点の頂点イルミネーション
頂点法線 オブジェクトの頂点の法線ベクトル
頂点の不透明性 オブジェクトの頂点の不透明度
頂点位置 ワールド座標のオブジェクトの頂点の位置
頂点選択 オブジェクトの頂点の選択状態
頂点速度 オブジェクトの頂点の線形速度

種類が多い上に同じ名前のものがあったり、どう違うのかよくわからないのがあったり、ちょっと把握が大変な感じだ。

上の表はロールアウトに表示されるコメントを表にしたものだけど検証してみるとところどころおかしな事があって、判明したものは修正してある。

例えば最初の「サーフェスの直近オブジェクト」のコメントが、「オブジェクトが属するオブジェクトインデックスを持つワールド座標内における、オブジェクトボリューム内側のランダムポイント」となっていたけど、これは明らかに文章が「ランダムボリュームポイント」と同じだ。

名前からしてたぶん一番近いサーフェスのオブジェクトだろうと踏んで下のような実験をしてみた。まず標準フローでパーティクルを発生させ、その両側に長さの異なる直方体をほぼ等距離で配置した。

fig03

そして標準フローにデータオペレータを追加して、データビューで、「オブジェクトを選択」「ジオメトリ」「新たに出力」を配置して、

fig05

「オブジェクトを選択」でシーンに配置した2つの直方体を複数のオブジェクトとして登録する。

fig06

そして新たに出力のデータアクセスタイプをグローバルにして、標準フローにデータ表示オペレータを追加して、データオペレータの出力をパーティクルに表示させてみたのが下の画像だ。

fig04

長い直方体に近いパーティクル(上側)では「ジオメトリ:サーフェスの直近オブジェクト」の出力は1に、短い直方体に近いパーティクル(下側)では0が出力された。この0と1がオブジェクトのインデックスで、短い方が0、長い方が1になっている。この番号は「オブジェクトを選択」サブオペレータのリストに登録された順番で決まる(リストを入れ替えると番号も入れ替わる)。

次にジオメトリのオブジェクトプロパティを「頂点別最接オブジェクト」に切り替えてみた。今度は全ての値が0になった。これは長い直方体の頂点が遠くにあるので、面としては近くても、近いオブジェクトとしては認められなかったためだ。

fig07

以上のように、「サーフェスの直近オブジェクト」はサーフェスが一番近いオブジェクトのインデックスで、「頂点別最接オブジェクト」は頂点が一番近いオブジェクトのインデックスのようだ。

また、「法線別の最も近いポイント」などのようにポイントを出力する場合、単に座標値ベクトルだけじゃなくてそのポイントが存在するオブジェクトのインデックスや面/頂点インデックスがペアデータとなって出力されるようで、座標値を利用するためには変換サブオペレータを使って分離してやる必要があるようだ。

fig08

「法線別の最も近いポイント」と「サーフェス別最接ポイント」の2つについてもなかなか不可解なところがある。ちょっと調べてみた感じでは、出力されるポイントの座標値として変化するのはXとYの2つだけで、Z成分は常に0のままだ。となればこれはマッピング座標かなとも思ったんだけど、なんだか変だ。

例えばパーティクル1個を原点に置いて、その近く(50,0,0)に20X20X20のBOXを置いた。この状態でサーフェス別最接ポイントを出力させると座標値が(0.5,0,0)だった。

fig09

ここでBOXを手前に倒していくと、

fig10 

X値が減ってY値が増えて回転角度が(0,−11.486,0)になった時に出力座標値が(0,0.5,0)になった。さらに倒していくと再びX値が増加してY値が減少し、回転角度が(0,−23.625,0)の時に座標値が(0.5,0,0)に戻った。この間、XとYの値の合計は常に0.5だった。もし単にパーティクルからおろした垂線とサーフェスの交点のUV座標とかなら、座標値がこんな変化はしないはずだ。

同じ事を「法線別の最も近いポイント」で行っても結果は同じだった。しかし横方向の回転も加えてやると、2つのタイプで出力に違いが出た。例えば回転角度を(0,−10,−15)にした場合、「法線別の最も近いポイント」では(0.49,0.51,0)となり、「サーフェス別最接ポイント」では(0.42,0.58,0)となった。だから2つには違いがある事はわかるんだけど、これが何を意味しているのかは、ちょっと分かりかねる。そこでよーくマニュアルを読むと、以下の様に書かれていた。

出力は[ペア](Pair)タイプ = { [ベクトル](Vector) + [整数](Integer) }になります。この[整数](Integer)はオブジェクト インデックスと面インデックスを 1 つずつ含む合成インデックスを表し、[ベクトル](Vector)はローカル面座標内の位置を表します。最も近いポイントが計算されるときに、オペレータは[オブジェクトを選択](Select Object)サブオペレータで定義したすべての参照オブジェクトを検索し、最も近い面と、この面のサーフェス上の最も近いポイントを見つけ出します。ローカル面座標では、ベース ベクトルとして面のエッジを使用します。  

要するに頂点の位置は面を構成するエッジ2本をベクトルV1,V2として、

 P = xV1 + yV2

fig11
といった感じで表される位置を示しているみたいだ。確かに底辺と対角線を基礎ベクトルとしてXとYの関係がX+Y=0.5なら、合ベクトルの先が描く軌跡は四角形の中心線になるな。fig12
そしてこの対角線を超えたらポリゴンが切り替わって、合成するベクトルが変り、Xは再び増加に転じてYは減少に転じていくわけだね。

それではまた次回。

maxまとめページ



take_z_ultima at 12:28|この記事のURLComments(0)TrackBack(0)3ds Max | CG

2013年06月25日

modo701が来た! その22 modo701 SP1

今回も前回に引き続きダイナミックフルイドを調べてみたい。今回はパラメータの詳細を調べてみたい。

fig01

流体の密度は近くにあるパーティクルどうしを結合する仮想的なバネによって決まり、その範囲を決めているのが「半径」のようだ。マニュアルには以下のように記述されている。

Density in the resulting fluid volume is determined by neighboring particles connecting via virtual springs. To save simulation time, springs are only generated for nearby particles in the simulation. The 'Radius' option defines the area around a particle where it will search for neighbors to connect with.

バネは張力も斥力も発生するのでその接続されたバネがどう作用するかは他のパラメータによって変ってくるんだろうけど、とりあえず他のパラメータは変えずに「半径」だけを変えたらどうなるかを比較してみた。

下のGIFアニメは「半径」パラメータを100mm、400mm、1000mmと変えてみたものだ。半径の大きさによってパーティクルのかたまりの大きさが変り、半径が大きいほど大きなかたまりが出来るようだ。これは上の記述とも合致するね。その際、かたまりが大きいほどパーティクル間の距離が離れて密度が減り、かたまりが小さいと密度が増すようだ。

半径:100、静止密度:20、剛性:0.019、近剛性:0.05

fig03

半径:400、静止密度:20、剛性:0.019、近剛性:0.05

fig10

半径:1000、静止密度:20、剛性:0.019、近剛性:0.05

fig11

次に「静止密度」を変えて実験してみた。「静止密度」は平静状態のパーティクルに接続できる隣接パーティクルの最大数を調整するパラメータだ。

下のGIFアニメは「静止密度」パラメータを1、10、20と変えてみたもの。数値を大きくするほど液体としてまとまろうとする作用が強まるようだ。1にすると互いに引き合う力が作用しなくなってバラバラになっている。そして箱の中に溜まったパーティクルを見ると互いに斥力が働いて流体が体積を保っている。このことから「静止密度」が作用するのはパーティクルどうしが引き合うバネの方のようだ。

半径:400、静止密度:1、剛性:0.019、近剛性:0.05

fig04

半径:400、静止密度:10、剛性:0.019、近剛性:0.05

fig07

半径:400、静止密度:20、剛性:0.019、近剛性:0.05

fig10

今度は半径を1000mmにして静止密度を20と60で比較してみたもの。数値が大きいほどパーティクルどうしの結合が強くなって流体が形状を保つような作用が出ている。

半径:1000、静止密度:20、剛性:0.019、近剛性:0.05

fig11

半径:1000、静止密度:60、剛性:0.019、近剛性:0.05

fig12

「剛性」パラメータは「半径」で設定される範囲のパーティクル間の仮想スプリングの強さを調整するパラメータ。マニュアルにはこうある。

The 'Stiffness' option controls the strength of the inter-particle springs in retaining the 'Radius' value. Higher values will create springier, bouncier particle, that are more apt to act like splashes, where lower values will result in softer springs that react more like a viscous fluid.

下のGIFアニメは「剛性」パラメータを0.005、0.019、0.119と変えてみたものだ。パラメータの値を大きくすると、パーティクルどうしで引き合う力が強まり、パーティクル群がまとまろうとし、弱ければ形状を失って勢いのあるパーティクルは飛沫となって飛び散る感じになった。

半径:400、静止密度:10、剛性:0.005、近剛性:0.05

fig05

半径:400、静止密度:10、剛性:0.019、近剛性:0.05

fig07

半径:400、静止密度:10、剛性:0.119、近剛性:0.05

fig09

このバネの力は「半径」で設定された範囲に働き、「静止密度」で設定された数だけ結合するようだ。

下のGIFアニメは「静止密度」を1にして、「剛性」を0.019、0.119で変えてみたもの。「静止密度」を1に下げてしまうと、「剛性」を上げても引き合う力をかける相手がいなくなってしまい、バネが作用しなくなり、「剛性」のパラメータを変えても流体がまとまらず、バラバラに飛散してしまった(ちょっとパーティクルの大きさが違っちゃってるけど、それは気にせずパーティクルの挙動だけを比較して見てね)。

半径:400、静止密度:1、剛性:0.019、近剛性:0.05

fig04

半径:400、静止密度:1、剛性:0.119、近剛性:0.05

fig13

「近剛性」はパーティクルどうしがくっつかないようにパーティクルを「半径」パラメータの範囲で反発させるバネの強さを調整するパラメータのようだ。これのお陰で流体は体積が保てるわけだね。マニュアルにはこう書いてある。

When the distance for resting particles becomes less than the 'Radius' value additional smaller springs are added between particles that control the resting movement of the fluid. This is the 'Stiffness Near' setting. It controls the repelling strength between resting particles.

下のGIFアニメは「近剛性」を0.01、0.05、0.5に変えて比較してみたものだ。この値を大きくすると液体の体積が増えてパーティクル間の距離が離れ、密度が薄くなった。

半径:400、静止密度:10、剛性:0.019、近剛性:0.01

fig06

半径:400、静止密度:10、剛性:0.019、近剛性:0.05

fig07

半径:400、静止密度:10、剛性:0.019、近剛性:0.50

fig08

ちなみにこのパラメータは「静止密度」パラメータの影響は受けないようだ。

それではまた次回。

modo701ブログ目次



take_z_ultima at 11:30|この記事のURLComments(0)TrackBack(0)modo | CG

2013年06月24日

2014の新機能を調べてみた その11 3dsmax 2014

今回も引き続き「高度なデータ操作」について調べてみたい。

「シェイプコントロール」サブオペレータはパーティクルにパラメータ付きでシェイプを割り当てる。これは「シェイプインスタンス」オペレータに似ているけど、シェイプのパラメータを操作できるところが強みだ。

例えばシーンに円環体1つと標準フローを追加して、

fig01

標準フローの「シェイプ」を「データオペレータ」に置き換えて「表示」をティックからジオメトリに切り替える。

fig02

そしてデータオペレータからデータビューにアクセスしてシェイプコントロールを追加し、パーティクルジオメトリObjの「なし」のボタンをクリックして、先にシーンに追加した円環体を選択してせっていする。

fig03

これでパーティクルに円環体のシェイプが割り当てられる。

fig04

この円環体にはこれだけのパラメータがあるけど、

fig05

シェイプコントローラからこれらのパラメータにアクセスが可能で、パラメータコントローラの「追加」ボタンをクリックすると、

fig07

このようにアクセス可能なパラメータの一覧が出てくる。 

fig06

ここから必要なパラメータを選んでリストに追加すると、それに対応したコネクタがデータビュー内のノードに現れる仕組みだ。ただし追加できる数は8個まで。

例えば下のフローは円環体のスライス終了位置をパーティクルの経過時間でアニメーションさせてみたものだ。

fig08

シェイプコントロールには円環体のパラメータとして「スライスオン」と「スライス終了位置」を追加してある。

fig09

スライスオンは円環体ではチェックボックスなんだけど、なぜかパラメータでは整数タイプで、0を入力するとOFFの扱いに、それ以外の値を入力するとONの扱いになるようだ。このスイッチは切り替える必要が無いなら元になっている円環体の方のチェックボックスをONにしておけばここでパラメータを設定しなくても大丈夫なようだ。

あとは入力スタンダードから「時間:パーティクルエージ」を取得して、それを変換で時間から実数に変換(1.0を秒とする)して、関数で20をかけた値をスライス終了位置として入力した。

これがその結果。パーティクルが発生してから時間が経つに連れて円環体のスライス位置が変化していくのがわかる。

fig10

また、「アニメートされたシェイプ」をONにするとオリジナルのシェイプアニメーションをパーティクルシェイプに割り当てる事が出来る。その時のアニメーションの時間軸はノードに追加されるTコネクタからの入力でコントロールできる。

例えば0〜8フレームで円環体が伸縮するようなアニメーションをつけておいて、パーティクルエージを整数に変換(1をフレームとする)して、それを関数で9で割った余りを算出して、パーティクルエージの値を0〜8で繰り返させるように変換し、それを再び時間に変換してシェイプコントロールのTコネクタに接続すると、

fig11

このようにシェイプ個別の時間で繰り返しのアニメーションが割り当てられた。

fig12

それではまた次回。

maxまとめページ



take_z_ultima at 11:40|この記事のURLComments(0)TrackBack(0)3ds Max | CG
Archives