Retake3DCG屋さん向けTips&ReferenceサイトメニュートップページHoudiniHoudini:Transform(SOP)とTypeQua...Houdini:Transform(SOP)とTypeQualifier2018.05.05HoudiniHoudiniTips0Houdini勉強回。今回はTransform(SOP)のパラメータ”Attributes”とアトリビュートの修飾子(Qualifier)について取り上げてみました。最近、仕事で気にする機会が多かったので、まとめてみました。Transform(SOP)のパラメータ”Attributes”まずは、Transform(SOP)のパラメータ”Attributes”について。Transform(SOP)のパラメータ”Attributes”を設定することで、任意のアトリビュートのみにTransform(SOP)の効果を適応することが可能です。デフォルトでは、*(アスタリスク)が記述されており、全てのアトリビュートに対して効果が適応されます。試しにこの記述を削除すると、何も動かなくなります。Pと記述すると、位置情報が更新されるようになります。パラメータ”Attributes”にPとだけ記述した場合、他のアトリビュート、例えばN(法線)はどうなるか?こうなります。パラメータ”Attributes”には”P”とだけ記述されているので、N(法線)に対してはTransform(SOP)の効果は適応されず、同じ向きを保ったままになっています。これを使えば、任意のアトリビュートでTransform(SOP)の影響を受ける/受けないのコントロールが可能ということになります。いうのは限られたシチュエーションでの話で、大抵はデフォルトの*(アスタリスク)設定で問題なし・・・かと思いきや、そうは問屋がおろさない。実はAttributesパラメータが*(アスタリスク)だからと言って、ほんとうに全てのアトリビュートがTransform(SOP)の影響を受けるわけではないです。今ここに、Y軸方向を向いたVector型のアトリビュート”dir”を、Wangeleを用いて作成します。上ではアトリビュート”dir”を可視化しています。これを、Transform(SOP)でグリグリ動かすとこうなります。Transform(SOP)のAttributesパラメータは*(アスタリスク)に設定してあります。かかわらず、dirというアトリビュートは常に同じ向きを向いており、Transform(SOP)の影響を受けません。?アトリビュートの修飾子(Qualifier)実はアトリビュートにはFloatやVectorなどのデータ型の他にもうひとつ、Qualifier(修飾子)というものがあります。これが、Transform(SOP)での挙動に影響しています。Qualifier(修飾子)はアトリビュートの型情報を補強するもので、これにより同じVector型でも、色や法線情報を区別しているようです。Infoで確認できます。アトリビュートの型の横にカッコで囲まれた、NmlやPosという記述がQualifier(修飾子)です。この場合、dirは何も修飾子のついていないVector型、NはNml修飾子のついたVector型、PはPos修飾子のついたVector型というわけです。これらは同じVector型だけどHoudini内で明確に区別され、データの扱われ方にも違いがあるというわけです。以下に、Qualifier(修飾子)の主だったものを列挙します。スケールは逆転換で適応される。transformの影響をうけない先に示した例でいえば、Pos修飾子のついたPアトリビュートは、上の表ではpointに相当し移動回転スケールすべての影響を受ける、という具合です。dirアトリビュートは修飾子が何もついていないのでQualifier(修飾子)は”none”となり、tranformの影響を受けません。結果、どれだけ回転させようとも、dirは変化せず同じ向きを保ちつづけたというわけです。修飾子(Qualifier)は、他にもいろいろあります。マニュアルで一覧を確認できます。通常、Wrangleでアトリビュートを作成した場合、修飾子(Qualifier)はnoneに設定されます。(CdやNなどの特定の予約語は除く)Wrangleで修飾子(Qualifier)をつける場合は、setattribtypeinfo関数を用います。ここの場合、次のように書くと、dirアトリビュートがnormalタイプのVector型として定義されTransform(SOP)の影響を受けるようになります。"normal");また、CdやN、Pといった特定の予約語は、wrangleで作成しても、自動的に修飾子(Qualifier)が付与されます。Create(SOP)にはTypeの隣に項目があり、そこで設定可能です。Infoで設定可能です。Bind(VOP)やParameter(VOP)でアトリビュートを作った場合は、設定項目が見当たらなず、作られるアトリビュートの修飾子(Qualifier)は”none”状態になってます。このTypeQualifierは、他にもパス出力や、他ソフトとのデータ受け渡しにも影響があるようで、気にかけておく必要があります。(Houdini→MayaでAlembicデータを渡す際、Cdアトリビュートにclr修飾子が付いてないとデータが来ない場合がありました)このあたりWrangleでもっと楽に定義できたら良いと思いますし、そういう要望も既に出されているようなので、いずれ仕様が変更になるかもしれませんね。以上つらつらと書いてきましたが、実は私もこのあたり教えてもらったくちなのです。ビジュアルエフェクトの教科書」が5/15発売で予約受付中です。あと、発売セミナも行います。当日は、本の先行販売も行われる予定です。参加登録は、SideFXのページより。トラックバックコメントをお待ちしております返信をキャンセルする。Houdiniの記事が多めです。mono-labページ上部へ戻る。