H16 新機能 Attribute Expression


こんにちは、篠島です。今までのPoint SOPが新しく生まれ変わり、Attribute Expression SOP になりました。Point SOPはシングルスレッドで動作するのに対し、Attribute Expression SOP はVEXを使ったマルチスレッド対応なので高速に動作します。

 

タブメニューから Point SOP を呼び出しても実際に作られるのは Attribute Expression SOPです。同じノードがタブメニューに2つ存在しているという事ですね。ちなみに古い Point SOP も健在です。

 

VEXpressionの所にVEXコードを書いて使うわけですが、Wrangle ノードの用に複数の行を書くことは出来ません。1行のみで、セミコロンは無しです。VEXの文ではなく、式を書く必要があります。要は普段VEXコード書く時の = よりも右側の部分をセミコロン無しで書くわけです。

下の画像だと self に 1 を足しています。 self とはこのノード独自の変数でインプットジオメトリのアトリビュートを表します。 変更するアトリビュートは P、これはベクトルデータであり、スカラー値の 1 を足しています。ベクトルにスカラー値を足す場合は、要素ごとに全部同じスカラー値が適用されます。なので下の例だと、位置 X、Y, Z にそれぞれ 1 を足していることになります。

 

三角ボタンを押すと色々とプリセットがあるので見てみましょう。そして作られたエクスプレッションを実際のVEXコードにしてくれる機能があります。Generated Code タブ内にある Update Code をクリックすると自動的にVEXコードを作ってくれるので、まだVEXに自信がない人は勉強になるのではないでしょうか。

 

 

Attribute Expression SOP と Attribute Wrangle どっちを使えばいいのか

今まで Attribute Wrangle 使ってきた人は普通に Wrangle ノード使ったほうが楽かと思います。例えば、何かのアトリビュートを変更したいが、2~3行のコードを書くのが面倒くさいという場合は Attribute Expression SOPで手早く済ませるというのも考えられますが・・・。あとAttribute Expression SOPはデフォルトでConstant Valueというパラメーターがついているので、キーフレームした値をVEXで参照する場合もちょっと楽かもしれません。