読者です 読者をやめる 読者になる 読者になる

妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

Blender修行(5) Nゴンは素晴らしい

Blenderの良いところに、Nゴンのサポートが充実しているというところがある」

妹「エヌゴン? ポリゴンの親戚かなにか?」

「5角形以上のポリゴンのことをそういう言い方する。元々ポリゴンという言葉自体が多角形という意味なんだけど、3DCGでポリゴンといえば普通は三角か四角だから、それと区別する用語。ペンタゴンとかオクタゴンとか、色んなゴンを含むという意味の。英語表記だとN-gon」

妹「何角形まで作れるの?」

「仕様上の制限はなさそうだった。パソコンの限界を超えたらバグるかもしれないけど。他のソフトでも、Nゴンが作れないか、作れる場合は上限なしというパターンが多い気がする。たぶん仕組み的には五角形以上は大差ないんだと思うけど」

f:id:una_unagi:20160619224638p:plain

「これは立方体を縦横に切ったあとで、角の辺を一つ取り除いて、そこだけ六角形、六角ポリゴンをした状態。Nゴン対応のソフトだとこういうことが出来る」

妹「うーん、見た目変わらないし、とくに意味はないような」

「見た目という点でいうと、究極的には全部三角ポリゴンだけで作れるからね。ゲームで表示する時はどうせ三角ポリゴンに自動変換するし。ただ計算上、四角ポリゴンがあったほうが、つまりどの三角とどの三角がくっついてるかわかってる方が、効率良く計算出来るアルゴリズムがたくさんある。それで四角まではよく使われる」

妹「五角形以上にはどういう利点が?」

「表示や計算で特にいいことはない。でも"1つの面"として扱えるっていうのが大きい。昔困った例で言うと、ローポリキャラクターの目の作ってたときに、目の部分を全体的に動かしたいのに、沢山のポリゴンを選択しなきゃいけなくて、とても面倒だった。本当に必要な面は2つか3つで、あとは角数の制限から仕方なく分けただけのポリゴンだった」

妹「その時にNゴンを使えば良かったのでは?」

「その時にはまだなかったんだよ。10年以上前だから、速度的にメリットがないNゴンはほとんど採用されてなかった。Nゴンという考え方そのものを知らなかった。不便だなあと思ってただけで」

妹「つまり面が少なくて、選択が簡単になると」

「余計な線も整理されるから、ワイヤーフレームの表示がスッキリするってのもある。もう頭では1つの面として考えてるんだから、CGソフトの側でもそう扱えた方がわかりやすい。もう1つ大きな利点が、作業中に一時的に出来た多角形を維持出来ること」

f:id:una_unagi:20160619230509p:plain

「例えば四角ポリゴンの角の部分をカットすると、切り取られたポリゴンは必ず五角形になる。こういう場合にNゴン扱えないソフトだと、三角+四角か、三角+三角+三角に分けた状態になる」

妹「でも最終的には三角になるんだよね?」

「最終的にはそうだとしても、作業中までそうする必要はないよ。それに三角に切り分けるにしても分け方が色々あるから、気に入らない時はいちいち面を消して貼り直さなきゃいけない。その状態でもう1つ角を切り取ったりすると、もうポリゴンがぐっちゃぐちゃになる」

妹「終わってから三角にすればいいと」

「ただNゴンは複雑だから、Nゴンを扱えるソフトでも、対応してない機能がいっぱいあったりもするんだけど、Blenderは比較的色んな機能に対応してるのがいい。もちろん全部じゃないけど。四角だけで三角は駄目な機能とかもあるし、そこはしょうがない」

妹「例えばこれ、四角全体を1つの面にしたりとかってのも出来るのかな?」

「面としては作れるかもしれないけど、折れ曲がってどっちが表かもわからないような状態になるから、三角形への自動分割が上手く働かなくて表示がおかしくなる。Nゴンが採用されなかったり機能制限があるのはそういう妙なケースが出てきやすいから。四角でも角度によってはそういうことが起きるけど。なんというか、面を折り曲げないようにさえすれば、角をいくら増やしても問題なく表示される」