チュートリアル / 読んで触ってよくわかる!Mayaを使いこなす為のAtoZ
第17回:謎のオブジェクト~中間オブジェクトを使いこなす
- Maya
- ゲーム
- コラム
- チュートリアル
- モデリング
- 中級者
- 学生・初心者
- 教育
- 映画・TV
前回はノードと中間オブジェクトを紹介しました。今回は中間オブジェクトを便利に利用するために、中間オブジェクトからデータをサルベージする方法を紹介します。

ヒストリは次のような感じになります。

一見するとすごいことになっていますが、赤枠の中はほとんどjointノードで、スキニングに関するノードが表示されているだけなので無視して構いません。
図の黄色い枠の中、一番左側に中間オブジェクトが表示されます。
中間オブジェクトを選択し、Intermediate Objectのチェックを外すと、スキニングで変形される前の形状が表示されます。

これを普通のメッシュにしてやれば、壊れかけたデータを何とか復帰、ということもできるわけです。
では実際にやってみましょう。
1)Create > Polygon Primitives > Cylinderで円柱を作ります。
2)ヒストリのpolyCylinder1を開いて、Heightを5、Subdivisions Heightを8にします。

3)Skeleton > Joint Toolで適当に骨を作ります。

4)骨とメッシュを選択し、Skin > Bind Skin > Smooth Bindでスキニングを行います。
スキニングが効いているかどうか確認するために、曲げてみましょう。

さてここから中間オブジェクトを扱っていきます。
5)メッシュを選択し、Window > Hypergraph: Connectionsを実行してハイパーグラフを表示します。

黄色く光っているのが現在の選択、グラフの左の方で印象薄く灰色になっているのが中間オブジェクトです。
6)中間オブジェクト(pCylinderShape1Orig)を選択します。

7)アトリビュートエディタでObject Display > Intermediate Objectのチェックを外します。

8)モデリングビューに変形前のオブジェクトがワイヤーフレーム表示されれば成功です。

次に複製してサルベージしてみましょう。
9)中間オブジェクトを選択したまま、Edit > Duplicateで複製します。

変形前のオブジェクトを複製したはずですが、変形した形状も複製されます。なので見た目は普段見ない不思議な感じになると思います。変形した形状は不要なので削除していきましょう。
10)複製したオブジェクトを選択し、ハイパーグラフのInput and output connectionsアイコンをクリックします。

関連のノードが表示されます。

11)各ノードを選択してみて、ジョイントで変形されているノードを探します。

12)ここではpCylinderShape2をDeleteキーで削除します。

無事中間オブジェクトを取り出すことに成功しました!緑のワイヤーフレームのみのオブジェクトになりました。
後処理として
・スキニングした時にロックされたTranslate・Rotate・Scaleをアンロック。
・何かしらのマテリアルをアサインしてシェーディングされるようにする。
ということをやれば完璧です。普通のメッシュオブジェクトとして使用できるようになります。
ノード同士をつなぐ、ノードのネットワークをシーングラフといいます。Mayaはシーングラフをとても高度に処理しています。データを柔軟に、安全に扱えますし、なにより拡張性がとても広がります。
次回は普段使っているオブジェクト、つまりメッシュやロケーターなどがMaya内でどのように出来ているのか、ノードという観点から見ることでさらにノードを知って行きたいと思います。
中間オブジェクトのサルベージ
例えば下図のような、スキニングされたキャラがいるとします。
ヒストリは次のような感じになります。

一見するとすごいことになっていますが、赤枠の中はほとんどjointノードで、スキニングに関するノードが表示されているだけなので無視して構いません。
図の黄色い枠の中、一番左側に中間オブジェクトが表示されます。

中間オブジェクトを選択し、Intermediate Objectのチェックを外すと、スキニングで変形される前の形状が表示されます。

これを普通のメッシュにしてやれば、壊れかけたデータを何とか復帰、ということもできるわけです。
では実際にやってみましょう。
1)Create > Polygon Primitives > Cylinderで円柱を作ります。
2)ヒストリのpolyCylinder1を開いて、Heightを5、Subdivisions Heightを8にします。

3)Skeleton > Joint Toolで適当に骨を作ります。

4)骨とメッシュを選択し、Skin > Bind Skin > Smooth Bindでスキニングを行います。
スキニングが効いているかどうか確認するために、曲げてみましょう。

さてここから中間オブジェクトを扱っていきます。
5)メッシュを選択し、Window > Hypergraph: Connectionsを実行してハイパーグラフを表示します。

黄色く光っているのが現在の選択、グラフの左の方で印象薄く灰色になっているのが中間オブジェクトです。
6)中間オブジェクト(pCylinderShape1Orig)を選択します。

7)アトリビュートエディタでObject Display > Intermediate Objectのチェックを外します。

8)モデリングビューに変形前のオブジェクトがワイヤーフレーム表示されれば成功です。

次に複製してサルベージしてみましょう。
9)中間オブジェクトを選択したまま、Edit > Duplicateで複製します。

変形前のオブジェクトを複製したはずですが、変形した形状も複製されます。なので見た目は普段見ない不思議な感じになると思います。変形した形状は不要なので削除していきましょう。
10)複製したオブジェクトを選択し、ハイパーグラフのInput and output connectionsアイコンをクリックします。

関連のノードが表示されます。

11)各ノードを選択してみて、ジョイントで変形されているノードを探します。

12)ここではpCylinderShape2をDeleteキーで削除します。

無事中間オブジェクトを取り出すことに成功しました!緑のワイヤーフレームのみのオブジェクトになりました。
後処理として
・スキニングした時にロックされたTranslate・Rotate・Scaleをアンロック。
・何かしらのマテリアルをアサインしてシェーディングされるようにする。
ということをやれば完璧です。普通のメッシュオブジェクトとして使用できるようになります。
まとめ
今回見てきた中間オブジェクトを知ればかなりのMaya通です。ノード同士をつなぐ、ノードのネットワークをシーングラフといいます。Mayaはシーングラフをとても高度に処理しています。データを柔軟に、安全に扱えますし、なにより拡張性がとても広がります。
次回は普段使っているオブジェクト、つまりメッシュやロケーターなどがMaya内でどのように出来ているのか、ノードという観点から見ることでさらにノードを知って行きたいと思います。