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

ふゆのはいまメモ

シューティングゲームをやったり、作ったり。

Laydock WIP06

f:id:highma:20160219090730p:plain

f:id:highma:20160220093641p:plain

今回は前回検討したボリューム検討用プリミティブを使って、基本的な形状を構築する。ちょっと長いので、お暇な時にでも。

 ポリゴンが壊れたり、余計な頂点ができちゃったりと後処理のコストがバカにならないのが3dsmaxのブーリアン(ProBooleanでもそんなに変わらない)mayaでも同様(maxよりもバカかも)だと思う。C4Dは結構賢いんで使いまくるメソッドを以前知り合いに聞いたことがあるんだけど、今回はブーリアンを使いそうな形状でブーリアンを使わずにどうにかする方法を紹介してみたい。

基本的な考え方として、ポリゴンモデリングで形状Aと形状Bをくっつけたい場合、AとBの接点にある頂点数が一致している必要がある。

つまり、頂点数が合っていればくっつけられる訳なので、AとBを見て、本当にブーリアンを使うべきか考えるのがお得だろう、というのが僕の考えだ。

僕がどうしてもブーリアンを使う時は球体同士がめりこんでいるような曲面と曲面が接しているケース。これは使わざるを得ない。それ以外の時はどうにかしてブーリアンを使わずに形状を合成してしまうんだけど、コツを知ればそんなに難しい話ではないよ、というのが今回のテーマだ。

f:id:highma:20160219091555p:plain

さて、前回説明した干渉部分。ソリッドモデラーみたいなツールならブーリアンで干渉部分を切り取っちゃうんだろうけど、ポリゴンでそれをやるべきなんだろうか?今回は左の赤いはみ出し部分を料理してみよう。

こういう時の処理手法は幾つかあると思うんだけど、僕がよく使うのはオスメスを反転させちゃう方法。干渉部分(この場合はカバーパーツ)の裏面をコピーして、それを利用すればピッタリくっついた面を取り出すことができる。これで干渉は無くなるよね?という訳だ。

f:id:highma:20160220095108p:plain

f:id:highma:20160220095133p:plain

まず一個目はこのコピーしたポリゴンをジェネレータパーツの後端部になるようにすればいいんじゃね?という話。カバーパーツのポリゴンをコピーして、法線を反転すればカバーにピッタリな形状を抽出できる。ただし、カバー形状と全部合わせる必要は無いので、必要な部分以外は消してしまう。

f:id:highma:20160220095417p:plain

このグレーの部品を円柱と繋いでいく。ポイントは円柱側とグレーの部品の頂点数が一致していること。グレーの部品にはサブディビジョン用のエッジが切られているので余計なエッジは削除できる。

f:id:highma:20160220095614p:plain

f:id:highma:20160220095631p:plain

f:id:highma:20160220095643p:plain

後端部から伸ばした断面形状をまっすぐにしたのは好みの問題。デザインによって処理は変わると思う。ポイントは円柱側にもエッジを足していることで、足したエッジの下にあるポリゴンを消しているのが上図をよく見るとわかると思う。後ろから延長したポリゴンと円柱側の『受け』は『ブリッジ』で繋ぐと速い。

f:id:highma:20160220101245p:plain

今度はジェネレータ前部の箱を円柱と結合する。

頂点数が合っていれば繋がるのは変わらないが、ここの場合円柱側のエッジと箱のエッジの位置がちょっとずれていて、ここでは円柱側の頂点を箱に合わせて調整した。これもデザインによって処理の仕方が変わる部分なので、ケースバイケースで考えると良いだろう。

f:id:highma:20160220101602p:plain

箱の側面がつながったら、円柱のエッジを押し出して、箱の残りの面を作る。

f:id:highma:20160220101656p:plain

面の処理の順番に決まりは無いが、僕が作業する時は手数がなるべく少なくなるような順番を考えて工夫している。ポリゴンをカットするんでも、ブリッジでつなぐんでも、後処理が少なくなる順番は必ず見つかるので、考える訓練をすれば直感で手数が少ない手法を選び取れるようになると思う。

f:id:highma:20160220093641p:plain

そんな感じで出来たのがこの形状。サブディビジョンのためにエッジを増やしたりしている。

次回はこの基本形状をさらにいじって『メカっぽい形』の基礎部分を作りこんでみよう。