2010年1月27日水曜日

Magic of Houdini : (Object Merge SOP)

The Magic of Houdini: SOPs That Confound the Melon -- Part 1

Object Merge SOP:


Object Merge SOPは一つのオブジェクトのSOPの中身を他のオブジェクトに持ってくるのに便利なツールです。
Transform Objectが何をしているのかを本気で考え始めるまでは、とても簡単なように見えます。
自分にとっては、これは少し理解しにくい部分ですが、短いエクササイズを通して、それについて少し議論してみましょう。確実な足取りを取り戻すことを請け負います。

1.Houdiniで新しいセッションを始め、3つの新しい「Geometry」オブジェクトを創ります。
それぞれsphere、box、ocneと名付けます。

2.sphereオブジェクトの中に入り、SphereSOPを創ります。
boxオブジェクトの中に入り、boxSOPを創ります。
coneオブジェクトの中に入り、TubeSOPを創ります。
チューブをコーンに変えるために、rad1チャンネルを0にします。
各オブジェクト内にfileノードがある場合はそれらを削除します。

3.オブジェクト・レベルに戻ります。
ワールドの中心点へsphereを残し、
boxオブジェクトのポジションYを5ユニット移動します。
coneオブジェクトのポジションXを3ユニット移動します。
パースペクティブ・ビューでホームポジションへ移動し、少しだけドリーアウトします。
これで図1のようになっているはずです。

4.spehreオブジェクトの中に入り、接続されていないObject MergeSOPを創ります。
MergeSOPを創りsphereノードを接続します。
いつものように、ディスプレイフラグをアップデートします。

5.Object MergeノードのObject1パラメータで、coneオブジェクト内のtube1ノードへナビゲートし、選択します。
(「/obj/cone/tube1」と表示される)
「See One/See All」ボタンをトグルします。これで他の二つのオブジェクトも見えるようになります。
現時点では、マージされたコーンは、ワールドの中心点でsphereの上にあります。
なぜコーンオブジェクトのトラスフォームを継承しないで、スフィアの上にあるのでしょうか?
なぜならTransform Objectフィールドが空であり、SOPの情報のみがインポートされているからです。
なので、X軸+3ユニットは、継承されていません。

6.では少し理解しずらい事を始めます。
Transform Objectフィールドで、sphereオブジェクトへナビゲートし選択します。
(「/obj/sphere」と表示される)
コーンは、もう一つのコーンの上に移動しました。
ワイヤフレーム・シェーディングにして、Display Primitive Numbers表示をオンにします。
数字は二つのコーンが空間を閉めていることを明確にします。
通常、これがあなたが望んだことです。
/obj/sphereパスを削除し、「.」に変えても同じ結果が得られるでしょう。
ピリオド「.」は現在のオブジェクト(スフィア)のトランスフォームを引き継ぐことを意味します。

しかし、なぜスフィア・オブジェクトのトランスフォームを引き継ぐように設定したにもかかわらず、コーン・オブジェクトのトランスフォームからX方向へ3ユニットを得ているのでしょうか?
これはObject Mergeのワールド・オリジンがsphereオブジェクトと同じであることを指定しています。
それでコーン・オブジェクトのトランスフォームがこの新しいワールドの中心点に関連づけて評価されます。
コーン・オブジェクトは指定したワールド座標から、ポジティブX方向へ3移動します。
なのでインポートされたコーンはコーンオブジェクトに重なって位置することになります。


7.Transform Objectフィールドを/obj/coneに変更するとコーンはスフィアの上に戻ります。
今回は理由が異なってきます、とは言っても。
以前は、オブジェクトのトランスフォームは考慮されないことが原因でした。
今回は、Object Mergeの原点は、X軸+3の位置です。
それから、新しいワールドの原点に関連づけてコーン・オブジェクトの位置が評価されます。
それはスフィアと重なっており、トランスフォームはなにも適用されません。
結果としてコーンがスフィアの上に重なることになります。


--------------訳 注(解釈)--------------------------
Object Mergeの原点がX軸+3に決められる。
マージされるオブジェクトはそれとは関係なく座標系でX軸+3の位置へ作成される。
しかしオブジェクトはObject Mergeというグループ配下に作られているような感じ。
ObjectMergeの原点を、本来の原点の位置へ移動する。
Object Mergeの中にあるコーンはその移動へつられれて原点へ移動する
--------------訳注終わり--------------------------


8.もっと気がおかしくなりそうなのは、Transform Objectフィールドを/obj/boxへと変えます。脳の固まりを吹き飛ばすようなことがおきます!

あるオブジェクトから別のオブジェクトの中へさらに他のオブジェクトからのobject transformsを使ってObject Mergeしています。
もはや、これは馬鹿げています。でもまだこれはちゃんと理解することができます。
まずObject Mergeのワールドの原点は、Y方向へ+5に設定されています。
そしてコーンオブジェクトはその新しいワールドの原点に関連して評価されます。
コーンは、5ユニット下そして3ユニット右にあります。
よって、図2に見られるようにマージされたコーンは、コーンオブジェクトの下にあります。

いったんこの詳細がわかったら、簡単に理解できるようになります。
もしそうでなければ、このエクササイズをもう一度繰り返すことは理解する助けになるでしょう。


--------------訳 注(解釈)--------------------------
Object Mergeの中心点がY軸+5(Boxのトランスフォーム)に設定される。
マージされるオブジェクト(コーン)は、それとは関係ない座標系でX軸+3の位置へ作成される。
しかしオブジェクトはObject Mergeというグループ配下に作られているような感じ。
ObjectMergeの原点を、本来の原点の位置へ移動する。
Object Mergeの中にあるコーンは、Y軸状を-5移動してしまう。

--------------訳注終わり--------------------------


これはわかりにくかった。
  
  

0 件のコメント:

コメントを投稿