チュートリアル / 読んで触ってよくわかる!Mayaを使いこなす為のAtoZ
第87回:3DCG用語の不思議(主にキャラクタ編)
- Maya
- ゲーム
- コラム
- チュートリアル
- 上級者
- 中級者
- 学生・初心者
体を洗う時「Tポーズせよ!」と伝えると、うちの子は完ぺきなTポーズが取れるほど、日常に3DCGが普及している今日この頃です。
日々Mayaを触っていて、3DCGに関わっていても、えらくややこしいことがあるものでして。それは何かというと「用語」です。例えば当たり判定のことを「コリジョン」と呼んだり「アタリ」と呼んだりと、同じことを示すのに色々な言い方があります。業界の習慣というか、会社やプロジェクトごとの癖というか。そんな感じでなんとなく名前を付けて呼んでいるため、2000年になってから21年も経つにもかかわらず、いったい何のことを言っているのかよくわからないことがあります…。
そこで今回は、色々な呼び方についてみていきたいと思います。正確に用語を整理するわけでないのですが、何をどう呼んでいるかわかると、ビギナーも玄人もなんとなくスッキリするかなと思いまして。
今回はキャラクタ周りの用語をなんとなく見ていきます。
それは骨なのジョイントなの?
まずは骨関連から。現場でありがちな会話として。
「その骨の移動値のYとZはゼロで!」
「そのスケルトンの、あのジョイントの回転軸がおかしい」
「ボーンにIKつけてから、骨を回転させる」
などなど、あいまいにも程がある!と言いたくなるのがキャラクタの骨関係の用語です。このせいで何か作業効率がぐんと下がっている気もしなくもないですね…。
英語と日本語がごちゃ混ぜになるのも、この業界でよくあることでして、改めてそれも整理してみます。
「スケルトン」は日本語で「骨格」です。あまり「骨格」と呼ぶことはないです。骨の階層全体を指してスケルトンと呼ぶ気がします。例えば「スケルトンをコピーする」というと「骨のルートから丸ごとコピー」という意味になります。
「ボーン」は「骨」とも呼びます。そのままですね。
Boneは骨格も意味するので、スケルトンにもなりそうですが、あくまで「骨」です。骨は、犬がくわえているアレです。またはTボーンステーキを頼むとくっついてくる、あの骨の長い部分こそ「骨」です。骨の両端の丸いところではありません。丸いところは「関節」であり「ジョイント」です。
「ジョイント」が誤解しやすい用語でして、Mayaでジョイントを作ると、骨も一緒に”作られているように見え”ます。実はMayaでは「骨」というコンポーネントが無いため、このように誤解しやすい状態になっています。
「ジョイント」は「関節」ですので、ジョイントを作ったときの丸いところこそがジョイントです。選択すると関節のところにマニピュレーターが出ますし。
3DCGとしては「関節」というと骨を回転させて、骨と骨をつなぐ接合部分を指します。関節同士の間が「骨」「ボーン」です。
「ジョイント」の階層がつながっていると「ジョイントチェイン」と呼ぶこともあります。「関節連鎖」と呼ぶことはない気がします。
よくよくアトリビュートエディタでジョイントを見てみると、Draw StyleでBoneやそれ以外を選べます。つまり、Mayaのジョイントは本当に関節で、ジョイント間をつなぐ形状としてBoneを描画している、という状態です。
でもMayaではボーンが無いため「ジョイント」=「ボーン」です。正確ではないですが、大抵はそれで大丈夫です。
ただしこの違いが重要なこともありまして…Copy Skin Weightsでウェイトをコピーする時、Closest jointとClosest boneを選べます。
Closest jointであれば関節部分を考慮し、Closest boneであれば骨のところを考慮するため、結果が変わることが想像できますね。
そんなこんなで、各用語をまとめるとこんな感じになります。
ヌルはあるのかないのか?
3DCG用語で出てくる「ヌル」オブジェクト、NULL、つまり「無い」オブジェクトがあるという禅問答のようなアレです。
ソフトウェアによってはヌルオブジェクトがあり、位置の指定をするけど形はない、というオブジェクトとして使います。
Mayaではロケータを使うことが多いと思います。ではMayaにはヌルオブジェクトがあるのかというと、一応結果として同じようなものとしてTransformノードがあります。
Outlinerで楊枝指した杏仁豆腐のようなアイコン(…)で表示されるアレですね。
何も選択せずに ctrl+Gでグループを作ると、null1という名前のTransformが出来ます。
Transformは位置を示すオブジェクトですので、まあ、他のソフトウェアでいうところのヌルに当たります。この下にメッシュとかのシェイプが付くこともありますし、他のTransformがぶら下がれば親子構造になります。
Mayaで「ヌル作って置いて」という用語は正確ではないのですが、「Transform作って置いて」ということです。ただ、ヌルといいつつもロケータのことを言っている場合もありますので、そのあたりは雰囲気で察してください:)
形状とシェイプとジオメトリとトポロジー?
「シェイプ」と「形状」は英語か日本語かの違い程度で、「シェイプ」も「形状」も同じです。ソフトウェアによっては「フォーム」と呼ぶこともあります。
「シェイプ」には、メッシュやNURBSサーフェス等、色々な形が含まれます。そう、3DCGでは形を作るには色々な方法があるのです。それらをまとめて「シェイプ」「形状」と呼んでいます。
似た用語に「ジオメトリ」があります。日本語では「幾何学」となりますが、幾何学と呼んだことはないです。
「シェイプ」も「ジオメトリ」も似たような使い方をしますが、APIに関わる場合、微妙な使い分けが出てきます。
「メッシュのシェイプを取得する」は、Mayaではメッシュノードを取得するということになります。つまりmeshShape1などを取得することです。
「メッシュのジオメトリを取得する」は、メッシュのポリゴン情報を取得するということになります。よりデータに近い感じでしょうか。
さらに上級になると「トポロジー」なる用語が登場します。
「メッシュのここのトポロジーがおかしいのでエラーになる」といった使い方をする場合、「メッシュのここのジオメトリがおかしい」とほとんど似ているのですが、「メッシュのここのシェイプがおかしい」とはなりません。
「メッシュのここのシェイプがおかしい」は、どちらかというとメッシュの形がおかしいということになるため、頂点の位置の問題の様に聞こえます。最終的にはデータの問題ではなくセンスの問題になるかもしれません:P
あ、「トポロジー」についてでしたね。日本語では「位相幾何学」「接続形態」となり、余計にピンとこない感じです。「ジオメトリ」に似ていますが、例えばエッジの流れや頂点番号など、ジオメトリを構成している物に対する呼び方です。同じ形であっても、実際のデータとしては違う場合があります。
例えば四角形があるとします。もしフェースを三角形に分割したら、エッジの数が変わります。これはトポロジーが変わっているといえます。
「オブジェクト同士の情報を転送するのにトポロジーで合わせる」といった場合、頂点番号やフェース番号で一致していることを期待されていると考えられます。つまり頂点の位置では転送せず、頂点番号やエッジのつながりを見ていることが予想されます。
まとめるとこんな感じでしょうか。
まとめ
こんな感じであいまいになっている用語をおさらいしてみました。
他にもいろいろ呼び方があるかもしれませんし、こんな呼び方もあるよ!とご意見のある方は、ぜひフェイスブックかツイッターで色々追記していただければ…。
そのうちポリゴンとフェースと面とメッシュの違い、オブジェクトとノードは何が違うのだ!など取り上げてみたいと思います。