チュートリアル / 読んで触ってよくわかる!Mayaを使いこなす為のAtoZ
第14回:ヒストリを知ろう!ヒストリの使い方(1/2)

2011.07.11

  • Maya
  • ゲーム
  • コラム
  • チュートリアル
  • 中級者
  • 学生・初心者
  • 教育
  • 映画・TV
みなさんいかがお過ごしでしょうか。梅雨の時期ですね。普段は自転車で通勤しているのですが、さすがに雨の中乗りたくないので電車を利用しています。赤い電車に乗って羽田方面に向かうと黒髪を同じように結ったスチュワーデスさん達いたり、修学旅行の学生で一杯だったり、携帯ゲーム機かマンガ雑誌を片手に大鳥居駅で降りる人達がいたり。きっとゲームを作っている人でしょう…。

さてこのコラムではしばらくポリゴンモデリングネタが続いていたので、そろそろハードコアなネタにも行ってみたいと思っていまして、今回からしばらくノードについて見て行くことにします。ハードコアといってもガチガチに難しい話ばかりではなく、あまり普段知る機会が無い事だけれど知ると目からうろこが落ちるような、そんな話ができればいいなあと考えています。

まず今回はヒストリの使い方をおさらいします。そしてちょっぴり変化球的な使い方を試してみます。
次回はヒストリとはそもそもなんなのか、その仕組みを見てみましょう。仕組みがわかるとCGや高度なプログラミングのアーキテクチャーについての理解も深まります。Mayaの内部を見ることで、他のソフトにないMayaの特徴を知ることができると思います。より上手くMayaが使えるようになり、問題が起きても原因が突き止められるようになることでしょう。

ヒストリの使い方

ではヒストリのおさらいです。実際に操作をしておさらいしてみましょう。

1)まずヒストリの設定を確認しましょう。ステータスラインにヒストリを作る・作らないのボタンがあります。

history1_00.jpg

これがオンになっているのを確認してください。(なぜかまれにオフになっていることがあります…。)

2)Create > Polygon Primitives > Cubeを実行してキューブを作ります。

3)チャンネルボックスのINPUTSの下にキューブ作成のヒストリが現れます。
polyCube1という文字をクリックしてヒストリのチャンネルを開きます。

history1_01.jpg

4)ヒストリの値を変更します。

history1_02.jpg

Subdivisions WidthとSubdivisions HeightとSubdivision Depthを2にします。ご存知の様に、キューブの分割数が2に増えますね。

ヒストリがあればオブジェクトを作った後にこのような編集が可能になります。いつでも変更が効くのでとても便利です。

次にヒストリを追加してみましょう。

1)先ほど作ったキューブを選択します。

2)Mesh > Smoothでメッシュをスムースします。

history1_03.jpg

3)INPUTSの下にpolySmoothFace1とpolyCube1ヒストリが表示されます。

history1_04.jpg

4)polyCube1の文字をクリックしてヒストリのアトリビュートを開きます。

5)Widthを2.5とかにします。

history1_05.jpg

メッシュがスムースされたまま横に大きくなるのが確認できると思います。polyCube1のSubdivisions Widthなどを変更してもスムースされた状態は保たれます。

さて、ヒストリを変更する度にMayaは何を行っているのでしょうか?

実はpolyCube1の値を変更する度にMaya が polyCube1 > polySmoothFace1の順で再計算を行っているのです。

裏で行われている計算を視覚化するとこんな感じです。

history1_06.jpg

ヒストリが変更されてデータの更新が必要になると、毎回毎回こうして始めから再計算を行っています。

ヒストリを保存すると何かが起きる?

ヒストリに関する面白い実験をしてみましょう。
1)実験の結果をわかりやすくするために、先ほど作ったキューブのスムースのヒストリ、polySmoothFace1のDivisionsを4にしてポリゴン数を増やします。

history1_07.jpg

2)シーンを保存します(ファイル名はhistorySample_hasHistory)。

3)次にキューブのヒストリをEdit > Delete by Type > Historyで捨てます。

4)保存します(ファイル名はhistorySample_noHistory)。

では保存したファイルを見てみましょう。(maとmbの二種類で保存してみました。)

history1_08.jpg

~hasHistoryと~noHistoryで、ファイルのサイズが全然違うことが一目瞭然ですね。中身は似たようなものなのに、ヒストリがある方はサイズが小さく、ヒストリのない方はサイズがとても大きくなります。これはなぜでしょうか?

ヒストリがある状態で保存をすると、先ほどのシーンでいえばpolyCube1とpolySmoothFace1という二つのヒストリ情報を保存します。これらはDivisionsやWidthといった数個のアトリビュートを持っているだけなので、保存するサイズが小さく済みます。そのかわりシーンを開いた時にヒストリを全て計算し直すので多少処理がかかります。

一方ヒストリがない状態で保存すると、ジオメトリをそのまま保存します。すべての頂点、エッジ、フェース、法線等を保存します。さっきのシーンでは6144フェースあったので、それはそれは膨大な量の情報を保存しなければなりません。よってファイルサイズは大きくなります。

同じシーンなのに、突然ファイルサイズが大きくなって不思議に思ったことはありませんか?こういうのが原因だったりします。

最近はハードディスク容量が大きいので問題になりませんが、昔はこの特性を生かしてなるべくヒストリを保ってシーンを作ることで、ハードディクスの容量を節約することもありました。特にSmoothのように大量にポリゴンが増える処理は、必ずヒストリを残すようにしてました。

まとめ

今回はヒストリの使い方のおさらい、そして内部で起きていることをちょっとだけ見ていただきました。次回はさらに突っ込んだヒストリの使い方を見ていきたいと思います。

Maya Learning Channel
製品購入に関するお問い合わせ
オートデスク メディア&エンターテインメント 製品のご購入に関してご連絡を希望される場合は、こちらからお問い合わせください。