3D-Coatをマップ制作ツールとして動かし始めた感

3D-Coatというソフトがありまして、もともとは彫刻のような手法で3Dキャラクターを作成するためのツールなんですが、このソフトのボクセル機能がやたら簡単なのと、最近オートリトポロジーという機能が付いたので、もしやこれは有機的フォルムな地形マップを手軽に作り上げられるのでは、と思い試してみたのが以下。

なにぶん操作学習を兼ねての作成だったので、丸い球体に手を入れて穴をあけたり盛り上げたり輪っかをくっつけたりされてるブサイクな代物ですが。イメージとしては空中に浮いてる岩の塊みたいな感じでお願いいたします。これは高解像度のものなのでとても奇麗なのだけれど、ゲームとかそのまま使うことできないので自動ポリゴン化(オートリトポロジー)を実行。何枚くらいのポリゴンにするかザックリと指定できるのでとりあえず3000枚くらいで。指定して待つこと約1分で完成です。

次にModToolにもってきてポリゴンリダクション。だいたい50%〜60%ぐらいは削減しても形状に大きな差は出ない感じがします。その後FBXファイルで保存。

地形は今まで平面に高さだけを盛り上げて作り上げるハイトフィールドという手法(UnityではTerrainツールのこと)があって、これは操作は簡単なのだけれど所詮丘や山を盛り上げて作れるだけなので、頂が横に伸びて出ている崖とかトンネルとか表現できないわけです。これをするには手練れのCGデザイナーが3Dソフトでポリゴンを配置してデータを作ってもらうやり方が一般的だったと思います。(ソフトの使い方だって難しいし企画担当者にはそう簡単には作れないはず)
けど3D-Coatを触るとこれが変わってしまう。ハイトフィールド並に操作が簡単なのに制限もない形状の作り上げが簡単、それをローポリでもハイポリでもポリゴン化するのも簡単。しかも特定のゲームエンジンの機能に依存しない。こんな感じのエディタが確かCryEngine2に搭載されていたと思うのですが、つまりそれはCryEngine2専用になってしまうわけで。なんていうかもう超感動。
XNA関連のSunBurnエンジンにも次のバージョンでメッシュベースの当り判定の機能が付くようだし、自分のプログラムでも作りやすくなっていくってことですよ、夢が広がりますね!

とりあえず今回はきちんとマップとして使えそうかUnityというゲームエンジンに組み込んでみたのがこれ。Unityにはポリゴンモデルをそのまま足場の当り判定などに使うことのできるMesh Colliderという機能があるのでこれを使用します。ついでにこの前作った都市モデルも配置してしまいましょう。

そしてもう一つ洞窟ぽいものも最初からデザインを考えて作って(輪っか気に入ったんです!)、ポリゴンリダクションしてFBX保存。操作にも慣れたおかげでこれは約1時間程度で完成。ああちくしょう、このクオリティのままゲームにも使えればなあ、って感じですが。

こちらもマップ上に配置してだいたい整えたら固定影(ライトマップ)を計算、

ブラウザで実際に動かせるようにしたのがこちらです

ブラウザ向けにビルドできるUnityさんマジスゲーッて感じっすよ。スタート地点から奥の方と、右後ろに今回の地形がございます。

さて、そうはいっても

今回判ったことはまだこの手法が確立できるのか判らないということは大きいです。

  • 3D-Coatが32bitOSだとメモリ周りで結構つらい。リトポロジー処理中や保存中にメモリ不足でファイル壊れたとか。3GBスイッチを有効にして動かすことでなんとか回避したものの、今回よりももっと大きいボクセルになってくるといずれまた出てきそうな。
  • 現状は3D-Coatのシェーダーで作り上げられたテクスチャのみをそのまま使ってるし、モデル全体で一枚のテクスチャーを使ってしまうので画像が結構荒くなってしまうのが難点。なんとかディテールマップを指定する良い方法を見つけられれば多少は改善できるかもだけれど。
  • トポロジーは表面を全部ポリゴン化してくれるので、マップに必要のない箇所(底面とか)は手動で削除しないとね。オートリトポロジー機能に部分的にポリゴン化を省く機能とかないのかな?
  • とくに洞窟的に穴をあけるのは奥にいくほど見づらい、操作しづらくなってくるので後々大変。3D-Coatにフリーズ機能(?)という一時的に手前を非表示にすることができるっぽいので、その機能を憶える必要がありますん。
  • 地形自体のトライ&エラーはパイプラインが長いので結構しんどいかも。AppLink機能とかうまく使えそう?
  • カメラをWASDで操作してぇ!
  • Unityのライトマップ作製機能て有料版じゃないと動かないと思ってたけどアレ?