すあまの備忘録

誰得内容の自分のための非営利目的備忘録ブログ(筆者がわかっても内緒にしてください)

Pyro ClusterのPost処理Tips

過去記事で紹介してない他のTips

いつも使用するわけではなく、時間があるならエミッターから直したほうが良くなります。

基本データは前の記事を参照

godofsuama.hatenablog.com

DOP後にCluster番号を再設定する

DOPで計算されるとエミットした順番に"dopbject"のパラメーターができます。

DOPまでのパス:Cluster番号

f:id:godofsuama:20200405032653p:plain

前回の記事をベースにすると、”エミットする順番=Cluster番号”となっているので、

このdopobjectを書き換えて各FieldにCluster番号を再設定する。

Primitive Wrangleで以下のようにVEXを書く

string cluster = prim(0,"dopobject",@primnum);
string clusArray[] = split(cluster,":");
i@cluster = atoi(clusArray[1]) -1;

この方法を使用すると、エミッターとシムの結果のCluster番号が一致するので、

後から一部のClusterのエミッターだけ調整したり、一部だけDOPを分岐して処理を変える等が容易にできます。

Cluster Pointからアトリビュートを転送する

以下のようにネットワークを組んで転送する

シムのCluster番号をPointにPromoteするのは、Attribute CopyのMatch by Attributeで、Clusterを指定するため

restは上の方で作っています。前回の記事では作っていないので注意

f:id:godofsuama:20200405033027p:plain

f:id:godofsuama:20200405033219p:plain

最初のフレームを消す

f:id:godofsuama:20200405034414g:plain
処理なし

f:id:godofsuama:20200405034442g:plain
削除後

転送後に転送した"emit"アトリビュートを使用することで、シムの最初のフレームのエミッターの形がまるわかりになってしまっている部分を削除できる。

f:id:godofsuama:20200405033415p:plain

ただしそのまま消すと1f減ってしまうので、エミット自体を1フレーム早めるなどの処理をするほうがいい。

早める場合は過去記事のこの部分にTimeshiftを挟む

f:id:godofsuama:20200405033638p:plain

不正なPointができることがあるので消す f:id:godofsuama:20200405033904p:plain

スケールでエミットのインパクトを強調する

clusterアトリビュートを使用したForで以下のTransofrmを処理する

f:id:godofsuama:20200405034527g:plain
スケール後

この処理をすると3Dモーションブラーはそのままではかけれないので注意。

f:id:godofsuama:20200405034059p:plain

Transformノードに以下3つのパラメーターを追加する

  • intのimpactframe
  • intのduration
  • min/max float

impactframeにPointから転送してきたemitアトリビュートを入れる

point(0,0,"emit",0)

durationはスケールし切るまでのフレーム数

min/maxは大きさの最大最小値

Pivot Transformには転送してきたrestをいれる

point(0,0,"rest",0)
point(0,0,"rest",1)
point(0,0,"rest",2)

Uniform Scaleには以下をいれる

fit($F, ch("impact"), ch("impact")+ch("dur"), ch("sclmin"), ch("sclmax"))