「モデリング入門」の編集履歴(バックアップ)一覧に戻る

モデリング入門 - (2018/07/25 (水) 22:43:07) のソース

ゲーム用アセット制作に役に立つ基本情報をここでまとめたいと思います。

#contents

*ゲームのモデリング
三次元のモデルを作ることをモデリングといいます。
モデルはポリゴン(三角形・四角形・多角形の面)で構成されていて、分解すると頂点、辺、面、面・頂点の向き(法線=ノーマル)です。
三角ポリゴンであれば、頂点の位置が決まれば高速で面が決まります。そのためリアルタイムで動くゲームのメッシュはすべて三角ポリゴンで構成されています。

&bold(){しかし}、データとして作りやすいのは&bold(){四角ポリゴン}の方です。
ポリゴンの構成(※トポロジー、後述)がわかりやすく、ポリゴンの分割・拡張、ループカットや選択もしやすいのでまずはこちらで作るべきです。
四角ポリゴンから三角ポリゴンに分割する(triangulation)のは簡単で、ゲーム用に出力をしたとき(スカイリムはnif exporter通した時)に自動ですべて三角ポリに分割してくれます。

歪みを防止するために仕上げに三角面に分割する場合は、四角ポリゴンで作成したデータは必ず残しておいてください。あとから修正するのが非常に困難になります。

三角ポリゴンは、少ないポリゴン(減ポリ)で構成するために天球体割りしたり、自動分割で発生する歪みを補正する場合に部分的に使いますが、慣れないうちは気にしないでください。

&bold(){Point}
-&bold(){ゲームはすべて三角ポリゴンを使う}
-&bold(){制作データはなれないうちは四角ポリゴンで制作する。}
-&bold(){四角ポリゴンで作ったデータは必ず保管しておく。三角ポリ化後は修正が大変なので。}

*モデリングのワークフロー
まず、どういう工程で作っているのかという流れを把握します。
正解ではなく、人によって工程が前後したり、何かしら違いはあると思います。
※厳密にはテクスチャ・マテリアル作成やウェイト設定等はモデリングの工程には含まれないです。
ただしゲームにモデルを出すには必要な作業なのでここではまとめてます。
#ref(modeling_workflow.png)
グレーのは必ずしも必要ではない工程。

**資料収集
資料収集ですが、構造の理解してないと全然進まないので&bold(){この工程は時間をかけます}。
Google画像検索、Pinterestなどでリファレンスに使う画像は集めれられます。
&bold(){現物が見れるなら現物を見て}、そして写真も撮っておくと良いです。
できれば作るものについての知識もつけておきましょう。
鎧を作るならばその種類や歴史を知っておくと説得力のあるモデルになります。
検索だけだと色々と混同しがちで、ファンタジーとはいえ地に足の付かないものは説得力がありません。

**ラフスケッチ
必ずしも必要な工程ではないですが、&bold(){何を作るのかイメージを固めないとこの後が進みません}。
人に見せるものではないので絵が下手くそでも、線が狂っていても全く構いません。

もしくはスカルプト(SculptrisやBlenderのスカルプト機能、3D CoatやZ Brush等)でラフモデルを作るのもおすすめです。スケッチよりこっちのが得意な人も一定数はいるはず。


横と正面を書いて2面か図にして下絵にそって頂点を配置していく手法があるんですが、3D空間でのシルエット形成技術やポリゴン分割の練習にならず応用が効かないのでオススメしません。
ポリゴンモデリングの場合はトポロジーをある程度意識しながら作ることになるので、ざっくりポリゴンの流れも描いておくとやりやすいです。
:トポロジー|3DCGでいうトポロジーというのはポリゴン面の構成です。どういう分割の仕方をすれば綺麗な流れになるのだろうかというの考えていきます。
トポロジーが綺麗とはポリゴンの流れが綺麗とも言い換えられます。 

トポロジーがきれいな利点
-ウェイト作業がしやすい(アニメーションで破綻が少ない)
-ループ選択がしやすい
-UV展開がしやすい
-少ないポリゴン数で済む(負荷が軽く編集しやすい)
-実際に画面で表示するときに歪みなく良好な結果を得やすい

特に人体と人体に身につける布など柔らかいものはポリゴンの流れが筋肉に沿っていないとアニメーションで破綻しやすいので重要です。
[[きれいなトポロジーの例>http://www.pinterest.com/aelaraji/clean-3d-topology/]]

**モデリング
すべてのディテールをポリゴンのみで表現するのは現状のゲームではまずできません。
なので少ないポリゴン+ノーマルマップというテクスチャにディテールを焼き付けて(ベイクと言います)擬似的に再現します。
#ref(normalmap.png)
(c)wikipedia

このノーマルマップは手で描くには非常に難しいので、ハイポリのモデルを作ってベイクもしくは画像からノーマルマップを作成のどちらかもしくは両方使います。
初めからハイポリで作って、あとからリトポ(ポリゴンの面を貼り直してローポリへ)する&bold(){スカルプトモデリング}
ローポリで作って必要に応じて画像からノーマルマップ作成か、ハイポリのモデル作ってベイクする&bold(){ポリゴンモデリング}
2種類の手法のどちらかで作ります。(実際には他にいくつか手法はあります。)
人によって向き不向きもありますし、作る題材によっての向き不向きもあります。

&color(#444444){※ここで言うローポリはゲームで使えるレベルのポリゴン数、ハイポリはそのまま使うには重すぎるポリゴン数ぐらいの意味で、特に数が決まってるわけではないです。}

***ポリゴンモデリング
&bold(){ポリゴンモデリング}は基本のモデリング方法でこれでほとんどのものが作れます。
ただしトポロジーを常に意識しないといけないので複雑な形状やディテールになるほど難しいです。
応用が効きやすいので他の手法を混ぜたり、ディテールの部分をスカルプトやテクスチャで補助することもできます。

例えば電池など単純な形状のものをわざわざハイポリのモデルを用意する必要はありません。円柱を少しいじればすぐできます。
マグカップなどのディテールが少ないのもテクスチャからノーマルマップを作れますので同様にわざわざハイポリモデル作る必要ありません。
こういった事例はポリゴンモデリングが向いてます。

***スカルプトモデリング
&bold(){スカルプトモデリング(スカルプティング)}は近年急速に普及してきた手法で、彫刻や粘土細工のような感覚で作ることができます。
造形中はトポロジーをあまり意識しなくていいので、複雑な形状やディテールを得意としますが、代わりに正確な形状を作るのが難しいです。

人やクリーチャー、オーガニックモデル(自然物)の制作に向いてます。
ハードサーフェイスモデル(Hard-Edged Modelとも。人工物。表面の硬そうなもの)には向いていないとされてきましたが、
ノウハウの蓄積やソフトの進化で十分対応できるようになってきました。※ただし、エッジがきれいに立つZbrush向きの話

***サブディビジョンサーフェスモデリング
&bold(){サブディビジョンサーフェス(以下サブディビ)}は日本語で細分割曲面と呼ばれ、その名の通り細かくポリゴンを分割して曲面に仕上げます。
ポリゴンモデリングは曲線多くなると制御が難しくなりますが、サブディビの場合は少ないポリゴンで複雑な曲面を制御できます。
どれだけ分割するのかの度合い(サブディビジョンレベル)を設定できます。
立方体でサブディビをかけて分割数を増やすと、球体になります。
#ref(subdiv.png)

その性質を説明するのは難しいですが、どれだけ曲面になるかは&bold(){隣接する辺によって決まります。}
辺と辺の幅が狭いほど元の形状が維持されるので、四角形を維持したい場合は辺と辺の幅を狭いエッジループを作ります。
基本的に四角ポリゴンで構成します。三角形や多角形は歪みが発生します。辺の集中する箇所は歪みが発生します。
#ref(subdiv2.png)

少ないポリゴン(適用したらポリゴンは多いが)できれいな曲面が出せる代わりに、基本は四角ポリゴンのみ、辺がなるべく6角以上にならないように作成するため、ポリゴンモデリングより難度が高いです。


[[サブディビジョンサーフェスの基本的な性質についての動画>https://vimeo.com/2158706]]

***結局どれで進めたほうがいい?
まずはポリゴンモデリングをオススメします。
というのもハイポリモデルで作って、いざリトポロジーとなると、トポロジーが理解できてないとそこで詰まる可能性があります。いきなりサブディビジョンサーフェスモデリングは難しいので、ある程度トポロジーの概念が分かってから使いましょう。


***ディテールの追い込み
模様・装飾・シワ等の細かい部分をポリゴンモデリングでやるには難しく手間がかかるのでノーマルマップを作成するためにスカルプトする場合があります。

マルチレゾリューション(Multi Resolution=多重解像度)モディファイアを使うとベースはローポリのまま、ハイポリのディテール部分を持たせることができます。
もしくはローポリゴンモデルを複製して、サブディバイドやサブディビジョンサーフェス(細分割曲面)モディファイアで細かくポリゴンを分割したあと、ディテールを作ります。
どちらもその後ノーマルマップにベイクします。

***リトポロジー(Re-topology)
一からスカルプトした場合は数百万~数千万の膨大なポリゴン数で制作しますが、これをゲームで使えるレベルまでポリゴンを再構成します。
これがリトポロジー(リトポ)です。要はポリゴン減らすことです。

Blenderの場合はスナップ機能を使ったポリゴン貼り付けか、デフォルトで含まれるアドオンBsurfaceを使ってペンで描いてポリゴンを貼り付けるかのどちらかです。

ZbrushならZremesher、3DCoatならautopoと呼ばれる自動リトポ機能がありますが、基本的にはゲーム制作ではそのまま使えないので手動でやります。
3DCoatの方は手動のリトポも強力なためリトポ・UV専用での使用例も。


**UV展開
3次元上のポリゴンに対して、2次元のテクスチャを貼る時にその貼る位置を指定する必要があります。それがUV展開です。
Seamと呼ばれる切れ目を入れて、展開します。
立方体にサイコロのテクスチャを貼り付ける場合は以下の展開図になります。
#ref(http://cdn50.atwikiimg.com/skyrim_mod/?plugin=ref&serial=90)

実際のUV展開方法はこちらの[[UV展開>>UV展開]]のページを参照してください。


**テクスチャ作成
ポリゴンにテクスチャという表面の画像データを貼るようになって、3DCGは大きくリアリティが向上しました。
それゆえに最も見栄えに関わる部分です。
概論や実践は[[テクスチャ作成>>テクスチャ作成]]を参照してください。


**最適化の話
原則は以下のふたつです。
・ポリゴン数は少なければ少ないほどよい。
・テクスチャはサイズが小さければ小さいほどよい。

ゲームはメッシュとテクスチャだけでなく、ライティングを行ってレンダリングしたり、多くのスクリプトや命令などがリアルタイムで動いています。ゲームである以上は同期して画面に描画されるので、


GPUとCPUに影響


頂点数20万未満



スカイリムの場合はコンソール機合わせてるので、多少はリソースに余裕がありますけど、



*実際に手を動かしましょう
作ることで初めて身につきます。
以下に実践用の記事を準備していきます。


[[鉛筆を作る]]:ワークフローをざっくり学ぶ
[[サイコロを作る]]:サブディビジョンサーフェイスでのモデリングを学ぶ
[[Tシャツを作る]]:ウェイト付きモデルを作る・学ぶ


 
目安箱バナー