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

当たったらどうすんだよ

当たらなければどうということはない

3D CGテクスチャリングを2歩か3歩進めたい! 2:続UVの考え方編

前回に引き続きUVの考え方について書きます。

3D CGであっても、リアルの工作であっても、三次元の立体物を二次元に投影して展開すると、必ず上下が反転したり左右がおかしくなるので、2D投影したときに「描きやすい」ようにUVをレイアウトすることが大事、と前回はまとめました。

今回はそこから一歩進んで、同じ立方体でも「二つの捉え方(考え方)」があることを説明したいと思います。

立方体の二つの捉え方

f:id:kanianthi:20160619140758j:plain

A:それぞれが独立した面

↑がその概念図になります。

立方体を連続面と捉えず「それぞれ90度のアングルで貼り合わせた6面体」と考えるわけです。割と多くのメカニックや乗り物、家や建築物はこの方法で捉え、UV展開することが多くなります。

この方法のメリットは、それぞれの面を的確に平行投影できることです。原理的にUVのゆがみは発生しません。逆に、デメリットはUVの継ぎ目が増えるのでレンダリングしたときにも継ぎ目が見えてしまったり、連続面を意識したテクスチャリングがしにくくなることです。

これはBlenderでいうところの「スマートUV展開」の考え方でもあります。

立方体の場合なら90度未満の角度を指定してスマートUV展開を行えば、画像とまったく同じ捉え方で自動でUVが展開されます。ただし、各面の上下左右がどうなっているかまでは、UVレイアウトで頂点を選択してみるなどして3Dビューと照らし合わせで確認しなければなりません。

3Dペイントをすぐに行うのであればいらない手間ですが、あとでデカールフォトショップで貼りたいなどというときにはUV面がビューポートで上下左右どちらを向いているのかを調べておいても損はないでしょう。

f:id:kanianthi:20160619142336j:plain

B:蓋と筒で捉える

↑同じく概念を画像にしました。

立方体なので少々でこぼこがきついですが、上下に蓋のついた筒、と形状を捉えます。この方法で展開したUVは「単独面である蓋が2枚と連続面である筒部分」という3つのUV島(アイランド)がリザルトとして出来上がります。

また、一度この方法で3枚の島を作成してから蓋2枚を筒部分にスティッチ(貼合わせ)すれば、デフォルトUVと同じ「サイコロの展開図」が出来上がることも理解できるかと思います。

この方法のメリットは、UVの継ぎ目(シーム)が最小限であることです。また、連続面が作れますので、立方体を回転させてもつなぎ目の分からない「シームレスなテクスチャ」を描くことが可能になります。

逆にデメリットとしては連続面なので各面を厳密に色分けしたいケースなどには向かないこと、上下左右を考えたテクスチャリングを行わなければならないことなどです。

なにはともあれ、AとBの二つの捉え方で大抵の立体物をUV展開することが可能です。

f:id:kanianthi:20160619144100j:plain

↑こんな風に4隅にベベルをかけて丸みをつけても「蓋と筒」であることに変わりはありません。

同じく…

f:id:kanianthi:20160619144643j:plain

↑なんのことはない、円筒も「蓋と筒」の方法で簡単にUV展開ができます。

最後の難敵→球体

f:id:kanianthi:20160619145359j:plain

↑はBlenderで「UVを生成」をオンにしてUV球を作成し、編集モードでUVレイアウトを確認したところです。

立方体だと見事なサイコロ展開図だったのに比べ、いかにも「ひどい感」がするUVですね。いくら自動生成とはいえ、これはない!とぼくも思います。

しかしながら、数学とか幾何の授業で習ったことはないでしょうか…「球体を二次元に歪みなく完全に投影することは不可能」なのです。

地球儀で見られるメルカトール法などが、かなり「頑張ったやり方」ではありますが、それにしても軸付近で必ず歪みはできてしまいます。どんどんメルカトール分割を増やしていけば「近似値としての球体」には近づいていきますが、完全球にはなりません。

とはいえ…

f:id:kanianthi:20160619150054j:plain

↑3D CGで一般的な球のUV展開はこれです。赤道面にシームを一本入れて、上下に分割して投影するわけです。

眼球のように、極部分のテクスチャさえ正確に描ければ良いのであれば、この方法で間違いなくテクスチャペイントが可能です。しかし、どうしても赤道面(分割面)に近づけば近づくほど歪みは出てしまいます。

そこで

f:id:kanianthi:20160619150859j:plain

このようにシームを一本、赤道から極に向かって引きます。

すると当然、円錐の平面展開のような図形が出来上がりますが、UV面の歪みは小さくなります。ただし、眼球のようなテクスチャをペイントするには向きません。

この方法は、たとえば丸っこい靴のつま先や、指先などのようにカプセル形状に似た端っこのUV展開を行う際に良くあるやり方です。キャラクタでは顔面のUVを展開するときにも、髪に隠れる額の部分や、顎の下などに「切れ目」を入れて歪みのないUVを作成しようとします。

 3D CGモデリングでは「球面(半球)に近似している形状」は良く出てきます。その時々に応じて、赤道面だけのシームで良いのか、切れ目も入れて歪みを少なくすべきか考えてUV展開を行うことが求められます。

さて、今回でUV三人衆を片付けることが出来ました。

次回は、シェーディングの基礎の基礎を交えて、より実践的なテクスチャリングについて説明したいと思います。