SuiTechLog

Unity,Arduino,RaspberryPiなど、モノづくり系を気ままに書き残すブログ。

Houdini CGwiki サンプルを翻訳と解説。その1:Attribute transfer とposition


自分の勉強用にhoudini wikiを翻訳します。ただ、wikiなので、日々更新される可能性がありますので、そこまで保障はできません。単なるメモ程度のものです。

  

Attribute transfer と position

 

 

 sphereの座標値をgridのそれぞれのポイントの座標値へスムーズなフォールオフ(減衰)を与えた上で転送(Transfer)します。

1.gridノードを作成

2.sphereノードを作成

3.attribute transfer ノードを作成

4.attribute transferノードの第一引数にgridノードをつなぐ。第二引数にsphereノードをつなぐ

5.attribute transferノードのAttributeタブ 'Match P Attribute'にチェックを入れる

 

 

 ここで、いくつか注意点があります。(もういくつかの他のサンプルを試した後で戻ってきてもいいです。)

  • Pは位置座標を表すのに標準的に使われているアトリビュート名です。通常はポイントの位置座標を表すのに使われます。Mayaでは、これが頂点座標だと言うでしょう。mayaを使っている上では、めったにこれらを直接修正しません。(たいていは1レベル上の階層でオブジェクトトランスフォームを操作します。)Houdiniでは、全ての情報が下層レベルにあり、散らばせたり、乱雑に配置したりできます。
  • このセットアップでは、sphereから座標を読み込んで、その位置をgridの各ポイントそれぞれにフォールオフをかけて転送しています。もしフォールオフをかけなければ、元のgridはsphereの中心の単一ポイントへむけて全て消えるでしょう。(実際には、あなたがdistanceを変更し、ブレンドする前にこれが起こることがわかります。)
  • 「しかし、あなたは基本的に頂点を操作しているといっていますが、この手順がどうやってsphereのトランスフォームを魔法のように読み込んでいるのでしょうか?そして、そのgridの頂点はsphereの表面の全頂点にむけてワープするのではないでしょうか?」良い質問です。その答えは、houdiniデフォルトのsphere(primitive sphereと呼ばれています)は、mayaのnurbs sphereやpoly sphereのようではないということです。それはshpereモードでレンダリングされた1つのmayaパーティクルに近いです。すなわち、位置とスケールを持っていますが、表面を構成する頂点を持っていません。それを知ると、この手順にはすこし意味がでてきます。mayaでいうならば、私たちは(sphere型にビジュアライズされた)1つのパーティクルを読みこんで、その位置をgridの各頂点と比較し、それらの距離がとても近い時にそれら頂点をパーティクルに向かってワープさせます。
  • sphereSOPの'primitive type'ドロップダウンを見ると、houdiniには通常のポリゴン球とnurbs球も存在します。'match P attribute'のチェックは必須です。なぜならば、通常のユーザはこれを望まないからです。つまり彼らがカラーやその他のアトリビュートを転送することになりますが、実際に動くポイントを望まないのです。

~~ 翻訳終了 ~~

 

 つまるところ、アトリビュートの転送ノードを使うことで、今回は一定の距離に入ったポイントを対象に座標値を転送させて、吸いつかせるような表現を実現しています。これ以外にもtransferはいろんなアトリビュートを転送できるので応用範囲が広いです。

 

とくに難しいことはないので、追加で解説はなしです。