Blender UV展開とクアッドリメッシュ — ゲーム向けワークフロー完全ガイド
自分だけのBlender UV展開を作る
ゲーム向けアセットのための、BlenderでのUV展開とクアッドリメッシュを学びましょう — シーム、投影、テクセル密度、そしてトポロジーをきれいに保つリメッシュ工程まで。実際に回転できるビフォー・アフターのモデル付き。
BlenderでのUV展開は、テクスチャリングではなく座標マッピングの工程です。3Dの表面を2D平面へ平らに広げ、2D画像をすべてのポリゴンが歪みなく参照できるようにします。U軸はUVグリッドを横方向に、V軸は縦方向に走ります。立方体を展開すると、Blenderはエッジに沿って切り込みを入れ、6つの面を0〜1の正方形の内側に平らに並べます。その正方形だけが、テクスチャを置ける唯一の場所です。その外側は未使用か、タイリング設定によって繰り返されるだけです。
このガイドでは、ゲーム向けアセットのためのBlender UV展開ワークフローを扱い、その前に必ず行うクアッドリメッシュ工程も取り上げます。順序が重要です:スカルプト、リメッシュ、展開、ベイク。高密度のスカルプトを展開してからリメッシュすると、UVアイランドは最終的なトポロジーと対応しなくなり、展開をやり直すことになります。同じルールは、モデルをNeta Studioの3Dゲームビルダーへ持ち込むときにも当てはまります。きれいなクアッドと揃ったテクセル密度はそのまま生き残り、乱れた三角形や不均一なアイランドは生き残りません。
まとめ:UVを決める4つのこと
これだけは読んでください。ゲームアセットで最も多くの手戻りを生む判断を、この4つが網羅しています。
- 展開は座標マップであり、テクスチャではないUVレイヤーは、メッシュの各ループに対してU,Vの組を保存します。ピクセルは含みません。モデルを展開しても、マテリアルがそのマップを読むまでは、見た目がどうなるか分かりません。
- Smart UV Projectはほとんどのゲームアセットをカバーするハードサーフェスの小道具、武器、建築物なら、角度制限66度のSmart UV Projectが、手作業のシーム作業をほぼゼロにして使えるアイランドを生成します。手動でマークする前に、まずこれを試してください。
- テクセル密度の不一致はぼやけとして現れるあるアイランドのテクセル密度が別のものの半分だと、同じ2Kテクスチャを使っていても低密度のアイランドはぼやけて見えます。アイランド同士の差はおよそ10パーセント以内に収めましょう。さもなければ違いが見えてしまいます。
- リメッシュしてから展開、逆ではないリメッシュはトポロジーを作り直します。その前に作ったUVは、メッシュループがもう存在しないため無効になります。スカルプトとリメッシュは、シームをひとつでもマークする前に必ず終わらせましょう。
UV展開が実際に行うこと
紙でできた箱を想像してください。特定のエッジに沿って切り、開いて、机の上に平らに広げます。その平らな紙がUVレイアウトです。切ったエッジがシームです。3Dの箱の各頂点は、平らな紙の上での座標を持つようになります。横位置がU、縦位置がVです。0〜1の正方形がテクスチャ空間です。マテリアルが画像をサンプリングするとき、各フラグメントのUV座標を読み、その場所の色を取り出します。
展開はテクスチャリングではありません。メッシュは、完璧なUVを持ちながらマテリアルがなくてもよく、またマテリアルがあってもUVが壊れていることもあります。展開の工程は、各ポリゴンが画像のどこを見るかだけを定義します。これを省略すると、Blenderは既定の投影を適用し、曲面では伸び、ミラーした形状では重なります。その結果、よく見るまではテクスチャがあるように見えるモデルが出来上がります。
トラブルを避けるための一言:ある面が0〜1の正方形のどこにあるか説明できなければ、展開は終わっていません。その正方形を見せてくれるのはUVエディターであり、3Dビューポートではありません。
誰もが使う展開のショートカット
編集モードで面を選択し、Uを押して展開を選びます。これが標準的な手順です。Blenderは選択した面に対して選択中の展開アルゴリズムを実行し、結果をアクティブなUVレイヤーへ書き込みます。何も選択していない場合は、表示されているすべてに対して処理を行いますが、複雑なメッシュではほとんど望ましくありません。
実際に多くの人が使うのはSmart UV Projectです。同じUメニューの別の項目です。Smart UV Projectは、先にシームをマークすることを求めません。メッシュを複数の角度から投影し、鋭い角度を検出して、生成されたアイランドを自動で詰め込みます。平らなパネルと硬いエッジを持つゲームの小道具では、手動のシーム配置より速く、予測しやすいです。
下のショートカット表は、UVエディターと3Dビューポートで最もよく使うキーをまとめたものです。これらを覚えれば、アセットごとにメニューを探し回らずに済みます。
| 操作 | ショートカット | 状況 |
|---|---|---|
| 展開メニュー | U | 編集モード、3Dビューポート |
| シームをマーク | Ctrl+E、シームをマーク | 編集モード、エッジ選択 |
| シームをクリア | Ctrl+E、シームをクリア | 編集モード、エッジ選択 |
| リンクを選択 | L | 編集モード、アイランド上にカーソルを置く |
| UVエディターの切り替え | Shift+F10またはワークスペースタブ | すべてのモード |
| アイランドを詰め込む | UVエディターでCtrl+P | UVエディター、アイランド選択 |
Smart UV Project 対 Angle Based 対 Conformal
Blenderには主要な展開アルゴリズムが3つあり、加えていくつかの特殊なものがあります。下の表は、それぞれが何をするか、どこで優れるか、重要となる角度しきい値、そして避けるべき場面をまとめています。ハードサーフェスのゲームアセットでは、角度制限66度のSmart UV Projectが既定の推奨です。パネルやベベルを形づくる鋭い角度を、手作業のシームなしで処理し、効率よく詰め込めるアイランドを生成します。
Angle BasedとConformalは、シームをマークした後に動作する古いアルゴリズムです。Angle Basedはエッジ間の角度を保つため、有機的な形状での伸びを抑えます。Conformalは等角性を保ち、曲面ではより多くの歪みを生む傾向がありますが、平らな面では重なりが少なくなります。キャラクターの頭を展開するなら、手動でマークしたシームを使うAngle Basedのほうが通常は良い選択です。木箱やライフルを展開するなら、Smart UV Projectのほうが速いです。
Smart UV Projectの角度しきい値は、Blenderがメッシュをどれだけ積極的にアイランドへ分割するかを制御します。しきい値を低くするとアイランドが増え、より鋭いディテールに追従します。高くするとアイランドが減り、分けたいと思っていたエッジをまたいでつなげてしまうことがあります。66度では、ほとんどのハードサーフェスの形状が、どのみちシームをマークしたであろうベベルやパネル線で分割されます。
| アルゴリズム | 最適な用途 | 角度しきい値 | 使わないほうがよい場面 |
|---|---|---|---|
| Smart UV Project | ハードサーフェスの小道具、武器、建築物、素早いブロックアウト | 66度(既定66°) | 滑らかな曲面で硬いエッジが少ない有機的なスカルプト |
| Angle Based | 有機的なキャラクター、クリーチャー、顔、手 | 該当なし — マークしたシームを使用 | 鋭い角度が多いメッシュ。重なりが増える |
| Conformal | 平らなパネル、機械部品、歪みの少ない平面 | 該当なし — マークしたシームを使用 | 湾曲した有機的な表面。球体では伸びが大きくなる |
| Lightmap Pack | ベイクしたライティングやアンビエントオクルージョンのマップ | 該当なし — 面ごとに詰め込む | 色つきのテクスチャマップ。すべての面が固有でない限り重なる |
シーム:どこで切るか
シームとは、メッシュを開けるように切り込みを入れるエッジです。カットをまたいでテクスチャが一致するか、カットが隠れた面にあれば、シームは最終的なレンダーには見えません。どこに置くかが、展開アルゴリズムが解消しなければならない歪みの量を決めます。
ほとんどの場合は4つのルールで足ります。第一に、カメラが決して見ない面にシームを隠します。底面、内側の面、頭の後ろ、ヘルメットの内側などです。第二に、表面がすでに途切れている硬いエッジに沿って切ります。ベベル線は、2つの面が滑らかな法線を共有しないため、自然なシームになります。第三に、マテリアルの境界で切ります。小道具に金属部分とゴムのグリップがあれば、必要に応じてテクセル密度を変えられるよう、各マテリアルが独自のアイランドを持つべきです。第四に、シームはできるだけ少なくします。シームは境界を増やし、テクスチャが完全にタイリングしないときに目に見える不一致が起きる可能性を高めます。
3つの具体的な切り方。ライフルでは、銃身の上部に沿って、銃床の後ろを下って、弾倉口の下にシームを入れます。キャラクターの頭では、頭蓋の後ろを下って、あごの下に、そして耳の後ろにシームを入れます。木箱では、ひとつの縦エッジに沿って、上部の縁の周りに、そして下部の縁の周りにシームを入れます。これらのカットによって、メッシュは数十の断片ではなく、いくつかの大きなアイランドへ開けます。
テクセル密度と、テクスチャがぼやけて見える理由
テクセル密度とは、3D表面の一定面積に載るテクスチャのピクセル数のことです。テクスチャ解像度を、UV単位でのアイランドの大きさで割って計算します。2048ピクセルのテクスチャを2メートルのアイランドに広げると、そのアイランドの密度は1メートルあたり1024ピクセルです。別のアイランドが0.5メートルで、それでも同じ2048ピクセルのテクスチャを使うなら、その密度は1メートルあたり4096ピクセルです。同じ画像を使っていても、最初のアイランドは2つ目の隣ではぼやけて見えます。
実践的なルール:アイランド同士のテクセル密度をおよそ10パーセント以内に収めます。Blenderはこれを自動では強制しません。Smart UV Projectは空間効率のためにアイランドを詰め込むのであって、密度の一貫性のためではありません。UVエディターでストレッチオーバーレイを有効にするか、0〜1の正方形内のアイランドの大きさを、それが表す表面積と比べることで確認できます。50パーセントの密度差は2Kテクスチャで見えてしまいます。10パーセントの差は見えません。
部分ごとに異なる密度が必要なら、それで問題ありません。主役の武器と遠くの背景の小道具は、カメラからの距離が違うため、異なる密度を使ってかまいません。ただし単一のアセット内では、絶対的な解像度よりも一貫性のほうが重要です。1メートルあたり512ピクセルで揃えたほうが、256と1024の混在より良く見えます。
書き出す前にUVを確認する
3つの確認で、エクスポーターに届く前にほとんどすべてのUV問題を捕まえられます。3Dビューポートを表示した状態でUVエディターで実行し、マップと表面の両方を同時に見られるようにしましょう。
第一に、伸びた面です。UVエディターでストレッチオーバーレイを有効にするか、表示 > ストレッチを使います。3D形状に対して引き伸ばされている面は、赤や青で表示されます。曲面に大きな赤い領域が見えるなら、展開が面積をうまく保てていません。アイランドを回転させ、シームを追加するか、その部分をAngle Basedへ切り替えます。第二に、重なったアイランドです。重なりとは、2つの面が0〜1の正方形の同じ場所を占め、一方が他方を隠すことを意味します。UVエディターで全選択し、互いに重なっているアイランドを探します。Blenderは警告しません。第三に、範囲外のアイランドです。0〜1の正方形の外へ押し出されたアイランドは、マテリアルがタイリングを使わない限り、テクスチャから何もサンプリングしません。UVエディターでUV > 画像の境界に制限を有効にするか、角を手動で確認します。1対1のテクスチャマップでは、0〜1の外側はすべて問題です。
この3つを最も速く明らかにする方法は、UVエディターでメッシュ全体を選択し、小さなマージン付きでアイランドを詰め込む(Ctrl+P)ことです。これで伸びや重なりは直りませんが、範囲外のアイランドは正方形の内側へ戻るため、はっきり分かります。詰め込んだ後にUVが突然正しく見えたなら、それらは範囲外でした。それでも重なっているなら、本当に解消すべき重なりがあります。
ゲーム向けトポロジーのためのクアッドリメッシュ
スカルプトには三角形、密度の濃い領域、不均一なエッジフローがあります。ゲーム向けメッシュにはクアッド、均一な密度、アニメーションで変形するきれいなエッジループがあります。クアッドリメッシュは前者を後者へ変換します。BlenderにはQuadriFlowという内蔵リメッシャーがあり、スカルプトモードのリメッシュから使えます。無料で、ほとんどのスカルプトでクアッドのグリッドを生成します。有料の代替は、Exoside Quad Remesherのような専用リメッシャーで、複雑な形状をより少ないアーティファクトで処理し、目標の面数と対称性を直接制御できます。ハードサーフェスのモデルなら、どちらも不要なことがよくあります。最初からきれいなトポロジーでモデリングしましょう。
ワークフローの順序は、スカルプト、リメッシュ、展開、ベイクです。まずスカルプトで形を作ります。次にリメッシュでゲーム向けトポロジーを得ます。3番目に展開し、シームとアイランドが最終的なエッジフローに沿うようにします。4番目にベイクし、ハイポリのスカルプトからローポリのリメッシュ済みメッシュへディテールを転写します。リメッシュと展開を入れ替えると、リメッシュがメッシュループを作り直し、UV座標は破棄されます。BlenderはUVレイヤーの名前を残すかもしれませんが、座標は新しい面に対応しなくなります。展開をやり直すことになります。
同じ順序は、ゲームエンジンへ書き出すときや、アセットをNeta Studioへ持ち込むときにも当てはまります。きれいなクアッドを持つリメッシュ済みのアセットは、予測どおりに展開できます。リメッシュを行っていない三角形化されたスカルプトは、数百の小さなアイランドへ展開され、詰め込みにコストがかかり、一貫したテクスチャリングが難しくなります。
01
Blenderでハイポリの形をスカルプトするか、スカルプトツールから読み込みます。
02
QuadriFlow(スカルプトモード > リメッシュ > QuadriFlow)またはお使いの有料リメッシャーを実行します。目標の面数を、ゲームエンジンが許容できる値に設定します。
03
リメッシュの結果にアーティファクトがないか確認します。つまみ、失われたディテール、不均一なクアッドサイズなどです。次へ進む前にこれらを修正します。
04
シームをマークし、リメッシュ済みのメッシュを展開します。アイランドのテクセル密度はおよそ10パーセント以内に収めます。
05
Cyclesまたは専用のベイクツールを使って、ハイポリのディテールをローポリのメッシュへベイクします。
06
.glbとして書き出し、ファイルをBlenderへ再読み込みしてUVが残っているか確認します。
リメッシュ後の自動リギング
リギングはUVを変えません。メッシュの頂点グループとアーマチュアモディファイアーは変わりますが、UVレイヤーはそのまま残ります。リギングは展開の前でも後でもかまいません。リメッシュの後、最終的なテクスチャリングの前にリグを組む実用的な理由は、スカルプトではなくゲーム向けトポロジーで変形を試したいからです。
3つの方法があります。第一に、Blenderの内蔵リグです。アーマチュアを追加し、自動ウェイトでメッシュを親子付けし、Blenderにボーンの影響を計算させます。無料で、単純な人型や機械のリグに向いています。複雑な衣装や珍しい比率は苦手です。第二に、Mixamoや単体ツールのような外部の自動リガーです。メッシュをアップロードまたは読み込むと、リグ付きのスケルトンを返します。標準的な人型には速いですが、ボーンの配置とウェイトを制御できる範囲は狭くなります。第三に、Neta StudioのAgent Sprite ForgeにあるようなAIリガーです。メッシュからスケルトンを生成し、ウェイトも処理します。ツールを離れずにブラウザでリグ付きキャラクターが欲しく、すべてのボーンを手作業で調整する必要がないときは、これがまともな選択です。
判断基準は単純です。標準的な人型で今日中に動かす必要があるなら、自動リガーを使います。珍しいキャラクターや精密な変形が必要なら、Blenderの内蔵リグを使い、ウェイトを手作業でペイントします。ブラウザベースの3Dワールドビルダーの中で作り、キャラクターをすぐ歩かせたいなら、AIリガーを使い、ウェイトは後で調整することを受け入れます。
.glbを書き出すときにUVを壊さないために
3つの書き出し設定が、気づかないうちにUVの作業を捨ててしまいます。第一に、UVの書き出しオプションです。BlenderのglTFエクスポーターでは、データ > メッシュの下にUVのチェックボックスがあります。これがオフだと、.glbにはUV座標が含まれず、すべてのマテリアルが誤った場所をサンプリングします。オンにしてください。第二に、アクティブなUVマップです。メッシュに複数のUVレイヤーがあり、アクティブなものが展開したものと違う場合、エクスポーターは既定でアクティブなものを取ります。書き出し前に正しいレイヤーをアクティブに設定します。第三に、マテリアルの書き出しです。マテリアルなしで書き出すと、.glbにはテクスチャ参照がありませんが、UVは残っています。問題は逆の場合です。マテリアル付きで書き出し、マテリアルがパックされていないテクスチャを使っていると、.glbは存在しないファイルを参照します。書き出し前にファイル > 外部データ > リソースをまとめるを使います。
UVを保つ設定は、フォーマット:glTFバイナリ(.glb)、UVを含めるをオン、法線を含めるをオン、マテリアルを含めるをオン、そしてDracoを使い、UVレイヤーが保たれることを確認済みでない限り圧縮をオフ、です。Draco圧縮は精度を変えうるので、ライブラリ全体を圧縮する前に小さなアセットで試してください。UVを壊さずに最終的な.glbを圧縮するには、メッシュデータを再エンコードするのではなく、バイナリのコンテナを操作するツールを使います。
書き出した後、.glbを新しいBlenderシーンへ再読み込みし、UVエディターを確認します。アイランドがあり、テクスチャが位置合わせされていれば、書き出しは正常です。アイランドがなければ、UVオプションがオフでした。アイランドはあるのにずれているなら、アクティブなUVレイヤーが間違っていました。
よくあるエラーと修正
以下は最もよく見られる8つのUV症状と、その原因、UV用語での修正方法です。どれも、アニメーションの問題に見えても、アニメーションの問題ではありません。
| 症状 | 原因 | 修正 |
|---|---|---|
| 曲面でテクスチャが伸びて見える | 展開が面積を保てなかった。アイランドが湾曲に対して小さすぎる | カーブに沿ってシームを追加するか、そのアイランドをAngle Basedへ切り替える |
| モデルの一部でテクスチャがぼやける | そのアイランドのテクセル密度が他より低い | UVエディターでアイランドを拡大縮小し、密度が10パーセント以内に一致するようにする |
| 2つの面が同じテクスチャのディテールを示す | 重なったアイランドが同じ0〜1の空間を占めている | UVエディターで重なったアイランドを選択して離し、再び詰め込む |
| ある面でテクスチャが完全に欠けている | UV座標が0〜1の正方形の外にある | 画像の境界に制限を有効にするか、アイランドを手動で内側へ移動する |
| シームが表面を横切る線として見える | カットをまたいでテクスチャが一致していない | シームを隠れた面へ移すか、境界をまたいでテクスチャがタイリングするようにする |
| Smart UV Projectが数百の小さなアイランドを生成する | その形状に対して角度しきい値が低すぎる | 角度制限を66度へ上げて、詰め込み直す |
| リメッシュでUVが消えた | 展開の後にリメッシュを実行した | リメッシュ後に展開し直す。常に展開の前にリメッシュする |
| 書き出した.glbにテクスチャがない | UVの書き出しがオフ、またはアクティブなUVレイヤーが間違っていた | エクスポーターでUVを有効にし、正しいレイヤーをアクティブに設定する |
それが属する世界へ足を踏み入れよう
スプライトとは、立つ場所を持たないキャラクターです。最後の工程は、他にはないもの:今作ったシートを、誰かが歩き回れる世界へ置くことです。小さな島、惑星、雨の降る街角など。このサイトのすべての世界は、ひとつの書かれた説明から作られ、遊べるページとして公開されています。
3Dゲームビルダーへ戻る
完成した31の3Dワールド、ゲーム、シーンはすべて1ページにまとまっています。どれも遊べます。