教材:Flying Letters
SOP [ Reverse, ForEach, Clip, Facet, UV Project, Sort, AttribCreate, Group, ]
ForEach Stamp : stamp("..", " FORVALUE ", 1)
論理積 : && ($START_FRAME > ($FF -2)) && ($START_FRAME < ($FF + 2))
とりあえず分割の部分が難しかった。分割の結果。
分割のノード構築とForEachノード内の構築。
[ 一番難しかった部分ForEachの中のEachのデフォルトのExpressionを変更する部分 ]
ifs(!(!strcmp(chs("../fortype"), "group") || !strcmp(chs("../fortype"), "prim")), "", stamps("..", chs("../forstamp"), ""))
というデフォルトのExpressionから || !strcmp(chs("../fortype"), "prim"))という部分を削除して
ifs(!!strcmp(chs("../fortype"), "group"), "", stamps("..", chs("../forstamp"), ""))に変更。
後の部分はデフォルトのままで大丈夫でした。
このように変更しないと、プリミティブを分割できなかった。
次にObjの階層に戻り、ForEachにWidth,Heightというパラメーターを追加する。
ここはCopy Stampなどでやった事の応用なので大丈夫でした。
次はForEach内のEachに繋げるClip Node内のExpressionで少し悩むことに。
ForEach Stampの基礎となるので、構築を覚えることが大切なような気がした。
[ ForEach ]
ForEach Node : | SOPのセットを入力ジオメトリへ再帰的に適用します。 |
For : Each Numberに設定。
width, heightも追加されているのがわかる。これをClipの中のExpressionで使用していく。
Clip Node : 平面の片側のジオメトリを削除する。
このチュートリアルではこのノードとstamp("..", "FORVALUE", "1")の使い方がポイントになっていた。Origin, Directionに下のExpressionを入力。
- Origin X : ch("../width") * 0.5 * (rand(stamp("..","FORVALUE",1) + 234) * 2 - 1
- Origin Z : ch("../height") * 0.5 * (rand(stamp("..","FORVALUE",1) + 244) * 2 - 1
- Direction : rand(stamp("..","FORVALUE",1) * 2) * 2 - 1
任意で作ったwidth, height, を使ってForEachの中で分割の調整をできるようにしている。
[ 全体の構築 ]
Facet Node :これは今後も多用する。デフォルトのスムース補完の調整が可能。
- サーフェスのファセットの滑らかさを制御します。
- このノードは、ポイントの結合やサーフェス法線の統一をすることもできます。
- UVをある方向でサーフェス上に投影。いろいろな投影方法があるので参照のこと。
- いわゆるプロジェクションマッピング。
- ポイント/プリミティブを色々な方法で並べ替えることができます。
このチュートだとPrimitive Sort : By X
するとX方向から順にプリミティブ番号が割り当て直された。
次にAttribCreate, Groupの繋がりでのポイント。
論理積 : && ex. if (x==0 && y==0) みたいな2つの条件が重なった場合の定義。
この論理積を用いたExpressionを使用していたのでメモ。
AttribCreate : $PR/2+1 = start_frameという定義をしてから
- ($START_FRAME > ($FF -2)) && ($START_FRAME < ($FF + 2))
-2,+2などを大きくするほど選ばれる範囲が大きくなるので微調整する。
また、$PR/2 +1の+1の数を大きくするとStart_Frameが遅るのでこれも微調整。
No comments:
Post a Comment