レッスン 2: UV を展開する

平坦なオブジェクトのテクスチャリングだけならかなり単純ですが、曲面のあるオブジェクトのテクスチャリングにはいくつか特有の問題があります。湾曲したサーフェスの 2D テクスチャは一体どのようにペイントすれば良いのでしょう。隆起や溝の部分でゆがむテクスチャはどうすればうまく処理できるのでしょうか。レッスン 1 のように UV メッシュを分解すると、無数の小片が生じてしまう恐れがあります。

このような問題を解決するには、通常、展開と呼ばれるワークフローが使用されます。UV メッシュの展開は、いわば UV メッシュの継ぎ目を切り開いてから(UV で構成されたメッシュは頂点で構成されているポリゴン メッシュに似ています)、その継ぎ目に沿って展開することです。このプロセスは、継ぎ目に沿ってシャツを切り離してテーブルに並べる作業に似ています。UV をこのようにレイアウトすると、2D サーフェス上のテクスチャを簡単にペイントしてからモデルに張り付けることができます。

このレッスンでは、次の項目について学習します。

シーンを開く

Emma.mb という名前のシーン ファイルを開きます。

このファイルは、GettingStarted2020LessonData\UVMapping ディレクトリにあります。

シーンに表示されるモデルである Emma はテクスチャ マッピング解除されています。レッスンの途中で、指定したテクスチャと一致する適切な UV 座標を設定します。

Emma を選択し、UV エディタ(UV Editor) (UV > UV エディタ(UV Editor))を開きます。モデルは数百の異なる UV シェルに分割されています(正確には 326 個)。

これでは多すぎます。数個まで減らさなければいけません。最も簡単な方法は、すべての UV シェルを 1 つのシェルに結合してから分割することです。これは、平面マッピングを使用して行うことができます。

平面マッピング

  1. まだ Emma を選択していない場合は、Emma を選択し、UV エディタ(UV Editor) (UV > UV エディタ(UV Editor))を開きます。
  2. UV ツールキット(UV Toolkit)で、作成(Create)セクションを開き、[Shift]キーを押しながら平面(Planar)をクリックします。[投影元](Project From)を Z 軸に設定し、[投影](Project)を押します。

    注: オブジェクト モードで Emma が選択されていることを確認します。

これで、これらのすべての UV シェルを 1 つのシェルに結合しました。3D カットと UV 縫合ツール(3D Cut and Sew UV Tool)を使用して、モデルの継ぎ目の位置を手動で選択できるようになりました。

UV シェルに頭を組み込む

  1. メイン メニューで、UV > 3D カットと UV 縫合ツール(3D Cut and Sew UV Tool)を選択します。このツールを使用すると、モデルの UV シェルにカットを作成できます。このカットは、パーツを分離したり継ぎ目を作成する場合に使用できます。
  2. 下の図に示すように、首の付け根の周囲のエッジを選択します(首の後ろのエッジ ループに従います)。

    注: [Ctrl]キーを押しながら再縫合するエッジ上をドラッグすると、モデル内のカットを選択解除して再縫合することができます。
  3. 次に、首の中心に沿って、顎まで移動する別のカットを作成します。

    注: [Shift]キーを押しながらドラッグすると、選択したエッジのループに従って選択をロックできます。
  4. 額の中心に沿って、首の後ろまでカットを作成します。

  5. 最後に、口の内側を、唇の内側に沿ってカットします。

  6. カットの作成が完了したので、UV ツールキット(UV Toolkit)UV シェル選択(UV Shell Selection)を押します。頭を選択します。
  7. UV ツールキット(UV Toolkit)展開(Unfold)セクションで、展開(Unfold)を押します。

    注: 展開ツール(Unfold Tool)は UV シェルを取り込み、側面がオーバーラップしないようにフラット化します。望ましくない結果が生じるのを防ぐには、UV シェルを展開する前に、3D カットと UV 縫合ツール(3D Cut and Sew UV Tool)を使用して継ぎ目を作成することが重要です。
  8. エッジ選択(Edge Selection)に切り替え、頭の UV シェルの中心に沿ってエッジを選択し、配置してレイアウト(Arrange and Layout)エッジの方向(Orient to Edges)を押します。

テクスチャを追加しやすくするために、顔モデルが展開されるようになりました。頭のシェイプと残りの眉と口を動かして、腕を操作できるように場所を空けます。

UV シェルに腕を組み込む

  1. シンメトリ(Symmetry)をオブジェクト X (Object X)に設定します。これにより、両方の腕に対して一度に作業できるようになります。
  2. 3D カットと UV 縫合ツール(3D Cut and Sew UV Tool)を選択します。
  3. 腕がシャツと接するエッジに沿ってカットします。

  4. 手首の周囲をカットします。

  5. 腕の後ろ沿って肘を貫通する継ぎ目をカットします。

  6. UV シェル選択(UV Shell Selection)に戻り、展開(Unfold)を押します。

  7. UV ツールキット(UV Toolkit)トランスフォーム(Transform) > ツール(Tools)で、回転ツール(Rotate Tool)を使用して腕を 15 度回転し、まっすぐにします。

これらの新しい UV シェルはメインの胴体と手から適切に分離されていますが、適切に最適化する必要があります。

UV シェルを最適化する

UV シェルを作成する場合は、発生するテクスチャの歪みのレベルを覚えて知っておく必要があります。最適化は、UV シェルを大きく変更せずに歪みを最小限に抑える方法です。

  1. シンメトリをオフにします。
  2. UV 選択(UV Selection)に切り替え、[Shift]キーを押しながら腕の上部 UV を選択し、位置合わせしてスナップ(Align and Snap)上部に位置合わせ(Align to Top)を選択します。

  3. 下部の UV についても同じ操作を行いますが、下部に位置合わせ(Align to Bottom)を使用します。左側のバンプの UV を個別に選択します。

  4. 上下の境界に沿って UV を選択し、固定(Pinning)セクションの固定ツール(Pin Tool)を使用して固定します。

  5. UV エディタ(UV Editor)メニューのUV 歪み識別(UV Distortion Identify)アイコンを押して、UV シェル上の歪みのレベルを確認することができます。白の領域は歪みがなく、青の領域は圧縮され、赤の領域はストレッチされています。

  6. 展開(Unfold)セクションから最適化(Optimize)ツールを選択し、腕の上にドラッグします。

  7. 手順 2 ~ 4 で行ったように、腕の左側と右側を位置合わせして固定します。今回は、それぞれ左に位置合わせ(Align to the Left)右に位置合わせ(Align to the Right)を使用します。
  8. 再度腕に対して最適化ツール(Optimize Tool)を使用します。

  9. 固定(Pinning)セクションの固定解除ツール(Unpin Tool)を使用してすべての UV を固定解除します。
  10. セレクション ボックスで囲んで腕を選択して、UV ツールキット(UV Toolkit)シンメトリ化(Symmetrize)を押し、胴体の中央に沿って直接エッジを選択します。

これで、最適化された 2 つの腕 UV シェルが作成されました。邪魔にならない位置に移動します。次に、手の UV シェルを作成します。

UV シェルに手を組み込む

  1. シンメトリをオンに戻します(オブジェクト X)。
  2. 次のイメージに示すように、手の側面に沿ってカットします。

  3. シンメトリをオフにします。
  4. これで、手の側面を貫通するようにカットしました。UV シェル選択(UV Shell Selection)で上の部分を選択し、[Shift]キーを押しながら作成(Create)セクションの平面(Planar)をクリックします。投影元(Project From)を Y 軸(Y axis)に変更し、[投影](Project)をクリックします。

  5. 手の下の部分にも同じ操作を行います。

    e

  6. これらの手を元のサイズに近づくようにスケール ダウンします。

  7. 両方の手を選択して、UV ツールキット(UV Toolkit)シンメトリ化(Symmetrize)を押し、ボディの中央に沿って直接エッジを選択します。

よくできました。手の側面に沿ってカットするのは最も難しい操作でした。残りのカットは、すばやく簡単に行うことができます。

残りの UV シェルをカットする

ここでカットする必要がある UV シェルは、胴体、脚、ブーツ、およびソールだけです。頭と腕をカットした時点で、胴体のカットのほとんどは終了しています。

  1. シンメトリをオンにします(オブジェクト X)。
  2. 3D カットとステッチ ツール(3D Cut and Stitch Tool)を選択し、ベルトと胴体が接続されている腰の周りの円形の継ぎ目をカットします。

  3. さらに胴体の両側に 1 つずつ、2 つのカットを作成し、腰の周囲に作成したカットを腋の下に接続します。

  4. ここで、背面の中心に沿ってカットを作成します。脚と脚の間の位置でカットを停止します。

  5. それぞれの脚の内側に沿って続け、ブーツとズボンが接する位置で停止します。

  6. ブーツとズボンが接する位置の周囲に円形の継ぎ目をカットします。

  7. ブーツの後ろに沿ってソールまでまっすぐカットします。

  8. 最後に、ブーツのソールの周囲をカットします。

  9. シンメトリをオフにします。

たくさんのカットを行いました。これ以上はこのレッスンではカットの必要はありません。カットが完了したので、レッスンの残りの部分では、UV シェルを適切に配置およびクリーンアップします。

残りの UV シェルを最適化する

  1. UV シェル選択 (UV Shell Selection)に切り替えて胴体を選択します。UV ツールキット(UV Toolkit)展開(Unfold)セクションで、展開(Unfold)を選択します。これで胴体がフラット化して両側が表示されます。

  2. 胴体の中央に沿ってエッジを選択し、配置してレイアウト(Arrange and Layout)エッジの方向(Orient to Edges)を押します。

  3. ズボン、ブーツ、ソールにも、展開ツール(Unfold Tool)を使用します。エッジの方向ツール(Orient to Edges Tool)は使用しないでください。

  4. エッジ選択(Edge Selection)に切り替え、ズボンの UV シェルの中央を垂直に通るエッジを選択します。回転ツール(Rotate Tool)を使用してまっすぐにしてから、ズボンの UV シェルの中央に移動します。

  5. ズボンの UV シェルを UV 空間のほぼ中心に移動します。

  6. UV ツールキット(UV Toolkit) > トランスフォーム(Transform)ツール(Tools)で、シンメトリ化(Symmetrize)を選択します。手順 4 で回転したエッジにシンメトリ軸を割り当てます。
    注: このツールは、以前に使用したシンメトリ化(Symmetrize)関数に似ています。最も大きな違いは、ペイントによってミラー化されるものを手動でコントロールできることです。
  7. 両側が一致するまで、右のズボンの脚の上をドラッグします。

  8. 最適化ツール(Optimize Tool)は、ズボンの股の領域にのみ使用します。

  9. 腕の場合と同じように、位置合わせツール(Align Tool)固定ツール(Pin Tool)を使用してズボンが下の図と一致するようにします(ズボンの内側エッジを忘れずに位置合わせします)。UV シェルで最適化ツール(Optimize Tool)を使用します。

  10. 次の手順に進む前に、固定された UV の固定を解除することを忘れないでください。

これで必要なすべての UV シェルが作成されました。ただし、高品質な UV マッピングを確実に行うために、さらにいくつかの方法を使用することができます。

UV を配置する前に、デフォメーションの大きな領域を探します。これは、UV エディタ(UV Editor)のチェッカ マップ(Checker Map)ボタンを押して行うことができます。これにより、モデルに既定のテクスチャが割り当てられます。パース カメラを使用して、チェッカ テクスチャが大きく伸長したり歪んだりしている領域がモデルの周囲にないかを確認します。

UV マップを配置する

これで、すべてのシェルが適切にカットおよび最適化されたので、次にそれらを整理します。ほとんどの場合、単一ボックスのすべての UV シェルについて、UV エディタ(UV Editor)の X 値と Y 値の両方が 0 と 1 の間の値でオーバーラップが発生しないようにする必要があります。

  1. すべての UV シェルをセレクション ボックスで囲んで選択します。
  2. 配置してレイアウト(Arrange and Layout)セクションで[Shift]キーを押しながらレイアウト(Layout)をクリックします。UV レイアウト オプション(Layout UVs Options)ウィンドウで、シェルのパディング(Shell Padding)を 20 に設定し、UV レイアウト(Layout UVs)を押します。

    注: UV レイアウト ツール(Layout UVs Tool)は、すべての UV シェルをオーバーラップさせずに自動的に適切な領域にフィットさせます。シェルのパディングを追加したため、レイアウト ツール(Layout Tool)では各シェル間にわずかなスペースが作成されます。

ほぼ完了です! 最後に、冗長な UV シェルをスタッキングする必要があります。モデル内で、外観が同じで、同じテクスチャを共有できるパーツを探します。この場合は、腕、ブーツ、ソール、眉、手が考えられます。スタック ツール(Stack Tool)を使用して、これらをマージすることができます。

  1. 腕の UV シェルの 1 つを選択し、UV ツールキット(UV Toolkit)トランスフォーム(Transformation) > ツール(Tools)反転(Flip)を押します。
  2. ここで、[Shift]キーを押しながらもう一方の腕の UV シェルを選択し、配置してレイアウト(Arrange and Layout)シェルをスタック(Stack Shells)を押します。

    注: オーバーラップしている別々の腕の UV シェルが 2 つあります。両方を移動する場合は、両方とも選択されていることを確認します。
  3. ブーツ、ソール、眉、手の両側について、手順 1 と 2 を繰り返します。

    注: シェルが正確に整列していない場合は、スタックする前に配置してレイアウト(Arrange and Layout)セクションのシェルの方向(Orient Shells)を押して、同じ回転が設定されるようにします。
  4. 別のパーツとオーバーラップしないように、新しい UV シェルを移動します。0 ~ 1 の 2 乗の範囲内に維持してください。

    注: このイメージでは、頭の UV シェルがスケールアップされています。UV シェルをスケールアップすると、テクスチャを追加するときにその部分をより詳細に表示することができます。

UV マップを使用する

お疲れ様でした。これで、UV マップが完成しました。テクスチャリング用のコピーを作成するには、すべての UV シェルをセセレクション ボックスで囲んで選択し、UV エディタ(UV Editor)メニューのスナップショット(Snapshot)ボタン を押します。そこから、2D イメージ ファイルを作成することができます。

これにより、テクスチャにペイントするテンプレートとして使用できる現在の UV マップのレイアウトが得られます。

emma_UV と呼ばれるテクスチャ イメージが既に完成しています。このファイルは、GettingStarted2020LessonData\UVMapping\sourceimages ディレクトリにあります。

レッスン 1 で学習した手順に従って、現在の UV マップで emma_UV を使用して Emma のモデルに適切なテクスチャを適用することができます。これはクラッカー ボックスのテクスチャをロードした方法と同じです。emma_UV と一致するように UV シェルを移動、スケール、回転する必要があります。head_features_LYR レイヤを可視に設定するのを忘れないでください。

注: テクスチャが正確に整列されない場合でも心配する必要はありません。 これはあくまでも学習用です。

レッスンを終えて

このレッスンでは、UV メッシュを展開して複雑な有機メッシュ用のテクスチャを作成する方法を学びました。 次の事項を学習しました:

  • 3D カットとステッチ ツール(3D Cut and Stitch Tool)を使用して、テクスチャリング用にメッシュをパーツに分割する
  • UV の平面マッピングを作成する
  • UV を固定および固定解除する
  • 展開ツール(Unfold Tool)を使用してメッシュを展開する
  • 最適化ツール(Optimize Tool)を使って問題のある領域を修正する
  • 自動とペイントの両方の方法で UV をシンメトリ化する
  • UV シェルをスタックしてスペースを節約する
  • レイアウト ツール(Layout Tool)を使用して UV シェルを自動的に配置する
  • 基本のチェッカ パターンを適用して問題のある領域を発見する方法
  • テクスチャをペイントするための UV マップのスナップショットを作成する

このトピックに関するビデオ チュートリアルについては、Maya 学習チャネルのUV マッピング ゲーム アセット: キャラクタを確認してください。