2011/03/29

Particleをライン状にブラーかける

パーティクルはrenderノードでの設定で、diskかspherでなければブラーをかけることができない。
しかし、ライン状にブラーをかけたい場合があるので、その方法。

1.LineノードCopyノードを追加する
 Lineパラメーター設定 http://www.sidefx.com/docs/houdini11.0/nodes/sop/line


copyノード
Use Template Point Attributes・・Copy attributes from the template points onto the copies, according to the values in the attribute fields below.
"以下の属性フィールドの値に基づいてテンプレートポイントから属性をコピーします。"


lineノードからのインプットを、popnetにコピーします。これはcopyノードの機能のひとつ。
`Copy the first input (source) geometry onto the points of the second input (template) geometry. This is very useful for populating scenes with geometry with full control over the placement of the copies.`
http://www.sidefx.com/docs/houdini11.0/nodes/sop/copy

line nodeを作成してコピーノードでpopnetに情報をinputすることで(逆かも?どちらか混乱する)パーティクルからラインを発生させることができる。ブラー設定はもともとできてるので、ラインにもブラーがかかる、という仕組み。


以上で欄上のブラーをかけることが出来るがさらに精度を上げるために、mantraとカメラの設定をする(ただしレンダリングコストはかかる)。
2.mantraの設定
Sampling>pixel samples
Pixel Samples・・The number of samples which are filtered to compute the color for each pixel. Increasing the samples will improve motion blur and depth of field quality.
"各ピクセルの色を計算するためにフィルタリングされるサンプルの数を指定します。サンプル増やす動きブラー、フィールドの品質深さが向上します。"
http://www.sidefx.com/docs/houdini11.0/nodes/out/ifd



カメラのシャッタースピードの設定
カメラのシャッタースピードを調整することでブラーがかかる。
Sampling>shatter speedを1に上げる。(1-0での調整。)
”The portion of the frame interval that the camera shutter is open. Used to determine motion blur. [0,1]”

2011/03/26

Particle-inherit Velocity(パーティクルの継承速度の設定)

Particle emitter>Popnet>source
http://www.sidefx.com/docs/houdini11.0/nodes/pop/collision
Attributeタブ
Inherit Velocity・・・(When "Initial velocity" is "Use inherited velocity" or "Add to inherited velocity.")
The proportion of the inherited velocity to use. Use 1 for the full inherited value, 0.5 to half the inherited value, and so on
("Initial velocity" が"Use inherited velocity" か "Add to inherited velocity"の設定の時)
使用される継承速度の割合完全な継承された1を使用し0.5は半分継承されます。以下同様。

velocity(速度)を継承する割合を設定するパラメーター。
"Initial velocity" が"Add to inherited velocity."の場合は、velocityの値にこの値が追加される。
velocity”0”,Inherit Velocity"0"だと速度は存在しないことになる。

"Initial velocity" が "Use inherited velocity"だとこの値がvelocityそのものになる。

2011/03/23

追記;splitノードについて



splitノードははソースのパーティクルから分岐をして、次のパーティクルを発生させることができる。
Activationでどのタイミングでパーティクルを発生させるかを制御できる。
0では無効の状態。多くの場合エクスプレッションで制限する。

Activation(活性化)・・・"オンとオフ、このノードを切り替えます。この値0より大きい場合、ノードがアクティブになります。これは、式このノード効果制御するのに便利です。
これは、全体としてのノード活性化されていることに注意してください。あなた、特定の粒子ノード無効にするには、このパラメータ使用することはできません"

source group・・・”inputノードの全ての点のうちグループ化された (created with, for example, a Group POP or Collision POP) のポイントにだけ影響を与えます。”

今回の場合、
popevent関数を使う・・・Returns 1 if a particle event is occurring.
イベント名は""で囲む。

コリジョンが発生した時点を次のパーティクルの発生のタイミングにしたいため、collisionのノードのイベントとグループの値を入力する。

2011/03/21

Particleから別のParticleを発生させる

 1.splitノードを追加する
splitノード
http://www.sidefx.com/docs/houdini11.0/nodes/pop/split
パーティクルからパーティクルを生み出す。
オリジナルのパーティクルを消滅させることも出来る。
制御系等もオリジナルとは別になることに留意しなければいけない。

2.nullノードを追加しグラビティノードを分裂したパーティクルに作用させるため移動させる
nullノードを2つ追加しそれぞれのパーティクルノードに追加する
http://www.sidefx.com/docs/houdini11.0/nodes/chop/null
collisionからnullノードとsplitノードへ分岐させる。
グラビティは最後に。

3.collectノードを追加
collecノード
http://www.sidefx.com/docs/houdini11.0/nodes/pop/collect
Particleをマージします。
nullノード(end_stream1 and end_stream2)をcollectに接続して、gravityノードにoutputします。
end_streamからsplitノードに接続

4.collisionの位置を変更
このままだとパーティクルの制御ができないため、collisionをcollectでマージした下におく。
これによって、両方のパーティクルの制御が可能になる。
さらに、gravityの影響をcollision後のパーティクルのみにしたいため、gravityを最後に持ってくる。

Sign language performance

Cee Lo Green の'Fuck You!'を手話でのパフォーマンスした動画
最初は、ん?って感じですが、だんだんと笑いが起こり。。

手話って固いイメージですがこんなにも表現が豊かなんですね。しかも'Fuck You!'あるんだ(当たり前か)。聞いているのは障がいがある方なんですかね。'Fuck You!'で爆笑してますし、音は聞こえなくても音楽が伝わってる感じがしますよねー。パフォーマーの女性の方の動きが本当にすばらしいので音を消しても面白いです。

こちら本物のCee Lo Greenの'Fuck You!'

はじけてる。。

Grammyでのパフォーマンス

グウィネス・パルトロウとの共演。グウィネス・パルトロウ超セクシー&歌うますぎ(゚Д゚;)


Funny Interpretative Dance: 'Don't Stop Me Now' - Fast and Loose Episode 6, preview - BBC Two

一番上の動画を見て思いだしたのですが以前Twitterで流れていた動画です。手話ではないです。歌詞をボディーランゲージで伝えてるのですが衝撃的な面白さが。体だけで意味を伝えるパフォーマンスの奥の深さを感じますね。"Have a good Time"の動きがww

2011/03/20

Particleのコリジョン設定

1.シェルのDrive Particlesをクリック
2.パーティクルを選択>Ent
3.受け手のオブジェクトを選択>Ent


http://www.sidefx.com/docs/houdini11.0/nodes/pop/collision

Behavior...衝突後のパーティクルの振る舞いを設定
Gain Tangent...Energy loss tangent to collision(接線と衝突のエネルギーの損失)
Gain Normal...Energy loss normal to collision(法線と衝突のエネルギーの損失)
上記2つのパラメーターは数値が大きいほど、衝突後のエネルギー損失が少ない。むしろ名前どおり加えている。0に近いほど、衝突によってエネルギーロスが大きい。


Final Behavior...衝突後最後のパーティクルの振る舞いを設定。
Minimum Impulse...Available when Final behavior is not Bounce on collision. The impulse value below which a particle will switch to using Final behavior parameter.(最終的な動作は、衝突時にバウンスしてない場合があります。その場合にパーティクルが最終動作に切り替わる衝撃の値)


collisionタブ
Collision Tolerance・・・Distance from geometry at which particle is considered to have collided.
→0.01を入れるとコリジョン判定をするオブジェクトから突き抜けるエラーが無くなる。

Glue strengthー崩壊と結合力

オブジェクトを崩壊させる際に、オブジェクトの結合を破らなければいけない。
オブジェクトを結合させているのは、Glueというアトリビュートで、Objectの中のGlue strengthyというパラメーターで制御できる。

Glue Strength...The amount of accumulated force required to break a glue bond. A value of -1 will prevent the bond from ever breaking. A value of 0 will cause the bond to break with the first external force.
"接着結合を切断するために必要な累積力の量。 -1の値は、どのような破壊からも結合を防ぐことができます。 0の値は、最初の外部の力と共に、結合の崩壊を引き起こします。"

http://www.sidefx.com/docs/houdini11.0/nodes/dop/rbdobject  


つまり、壁に球がぶつかる前までは、-1でキーを打って、ぶつかる瞬間は5、その後は再び-1に戻すことによって、壁の接着力を維持し、ぶつかる瞬間だけ結合を弱めて、崩壊させる。

ただし、うまくいかないため、RBDstateというノードを追加して、そのパラメーターで制御する。
http://www.sidefx.com/docs/houdini11.0/nodes/dop/rbdstate
1fではGlue Strengthは-1、9fも-1でキーを打つ。
Set Alwaysに変更しておく。


7fで5に変更。結合が弱まり、壁に穴を開けることができる。

Glue strengthを0のままでおこなったシミュレーション

結合が弱くぐらぐらになっている。

上記キーフレームアニメーションを行ったシミュレーション

自然に突き抜けていく。

ちなみに、両方のシミュレーションともに壁が地面としっかり結合しているのは、Glue to Objectというアトリビュートで対象を地面に設定しているため。

Glue to Object...The name of an object to glue to. If this is blank, the object is glued to no other object and acts normally. If it is the name of another RBD Object which it mutually affects, this object becomes glued to the other object. Its relative position to the other object is maintained by the solver.
"接着するオブジェクトの名前を指定します。これが空白の場合は、オブジェクトが他のオブジェクト接着され、正常に動作しますそれが相互に影響を与える別のRBDのオブジェクトの名前である場合、このオブジェクトは他のオブジェクトにくぎ付けになる他のオブジェクトへの相対的な位置をソルバによって維持されています。"
http://www.sidefx.com/docs/houdini11.0/nodes/dop/rbdobject