トップ > テクスチャ >
UV展開方式(マッピング方式)について(その2)

  

UV展開してみよう(続き)

前の記事の『UV展開方式(マッピング方式)について』からの続きです。 この記事では、Smart UV ProjectとLightmap Packを紹介します。

Smart UV Project

Smart UV Projectは、機械などの人工物のメッシュの展開に向いています。 というのも、Smart UV Projectは、隣接する両面の角度の差が大きい辺に自動的にシームを入れてUV展開します

機械のように複数の部品で構成されているものは、部品の境目の角度が急であることが多いためシームが入りやすいのです。 もちろん、利用者が入れたシームでも切り分けてくれます

では、前の記事で作成したテスト用シーンを元に解説します。 画面上部のプルダウンメニューの"File" -> "Open"を実行してテスト用シーンのファイルを開きます。

  
テスト用シーンは、テクスチャ > UV展開方式(マッピング方式)についてで作成しました。 まだ作成していない場合は、そちらの記事を参考にして作成してください。
  
開いたテスト用シーンを上書き保存しないよう注意しましょう。 Windows上(またはLinux上)でファイルをコピーしたものを開くのがいいかもしれません。

まず、UV展開の情報をリセットします。 エディットモードで全選択し、キーボードのUを押します。

1. UV Mappingメニュー
1. UV Mappingメニュー

上図のように"UV Mapping"というタイトルのメニューが表示されますので、"Reset"を実行します。

では、UV展開しましょう。 キーボードのU押してください。

2. UV Mappingメニュー
2. UV Mappingメニュー

上図のように"UV Mapping"というタイトルのメニューが表示されますので、"Smart UV Project"を実行します。

3. Smart UV Projectパネル
3. Smart UV Projectパネル

上図のようにSmart UV Projectパネルがさらに表示されますので、[OK]ボタンを押します。

  
このパネルに表示されている "Angle Limit"、"Island Margin"、"Area Weight" はUV展開後に調整できますので、ここでは何も変更せず[OK]ボタンを押しました。
4. UV展開の結果
4. UV展開の結果

上図のようにUV展開されます。 スザンヌだとわかっているのでスザンヌに見えなくもないですが、知らなければ展開元が何なのかは理解できないUV展開図になりました。

原因は、自動シーム(角度による自動的なシーム入れ)が強く作用し過ぎたためです。 Angle Limitが初期値の 66 だったため、隣接面の角度が66度よりも鋭くなっている辺に自動的にシームが入れられました。

これでは分割され過ぎですので、もう少しAngle Limitを緩くしましょう。 Angle Limitには、1 から 89 までの角度を設定できますので、最大値の 89 を設定しましょう。

5. Angle Limitを 89 に
5. Angle Limitを 89 に

上図のようにAngle Limitを 89 に調整します。

6. UV展開の結果
6. UV展開の結果

上図のようにUV展開されます。 先ほどよりもわかりやすい展開図になりました。

UV展開後に調整可能な、他の設定項目の意味を以下に掲載します。

設定項目 意味 詳細
Island Margin アイランド間の余白 UV展開図のアイランドとアイランドの間の余白を調整する
Area Weight ? ?

Lightmap Pack

Lightmap Packは、文字通りライトマップ用のUV展開方式です。 実際にUV展開してみるとわかるのですが、全ての面がバラバラに分解されて隙間なく詰め込まれます。 もちろん、人間が見てメッシュの面との対応が理解できる代物ではありません。

しかし、それでも問題はないのです。 そもそもライトマップというのは、人間が見てメッシュの面との対応を理解する必要はありません

まずは、ライトマップが何かということから説明します。 ライトマップというのは、光源からの影響による陰影を持たせたテクスチャ画像です。 つまり、陰影付きのテクスチャ画像です。 主に、アニメーション3DCGや3Dゲームで利用されます。

通常、陰影計算というのはレンダリング時に行われます。 しかし、移動しない光源と、同じく移動しない物体の組み合わせであれば、陰影をリアルタイムで計算する必要はありません。 あらかじめ、光源からの影響による陰影を計算し、それをテクスチャに描き込んでおけば、レンダリング時に陰影計算をしなくて済みます。

もちろん、1度しかレンダリングしない静止画の3DCGの場合にはメリットはほとんどありません。 しかし、アニメーション3DCGや3Dゲームのように何度もレンダリングする場合は、処理の負荷を下げることができます。

ライトマップとは、そのような目的のために使用する『陰影つきテクスチャ画像』です。 なお、元のテクスチャ画像は利用者が用意しますが、陰影をつけるのはBlenderがやってくれます。 あらかじめ1度だけBlenderがレンダリングを行い、陰影計算の結果を新たなテクスチャ画像に描き込むのです

では、実際にライトマップを利用してみましょう。

ここでも、作成済みのテスト用シーンを元に解説します。 画面上部のプルダウンメニューの"File" -> "Open"を実行してテスト用シーンのファイルを開きます。

  
テスト用シーンは、テクスチャ > UV展開方式(マッピング方式)についてで作成しました。 まだ作成していない場合は、そちらの記事を参考にして作成してください。
  
開いたテスト用シーンを上書き保存しないよう注意しましょう。 Windows上(またはLinux上)でファイルをコピーしたものを開くのがいいかもしれません。

まず、UV展開の情報をリセットします。 エディットモードで全選択し、キーボードのUを押します。

1. UV Mappingメニュー
1. UV Mappingメニュー

上図のように"UV Mapping"というタイトルのメニューが表示されますので、"Reset"を実行します。

続いて、UV展開します。 キーボードのUを押します。

2. UV Mappingメニュー
2. UV Mappingメニュー

上図のように"UV Mapping"というタイトルのメニューが表示されますので、"Lightmap Pack"を実行します。

3. Lightmap Packパネル
3. Lightmap Packパネル

上図のようにLightmap Packパネルがさらに表示されますので、[OK]ボタンを押します。

4. UV展開の結果
4. UV展開の結果

上図のようにUV展開されます。 見ての通り、全ての面がバラバラにされ詰め込まれています

次に、スザンヌに何らかのテクスチャを貼り付けましょう。 レンガ風でも木目調でもいいですので、何か画像ファイルを用意してください。

まずは、画面レイアウトを "Default" に戻します。

5. 画面レイアウトをDefaultに切り替える
5. 画面レイアウトをDefaultに切り替える

上図のようにInfoウィンドウのヘッダ部で画面レイアウト選択リスト(画面レイアウト選択リスト)に "Default" を選択します。

では、スザンヌに用意した画像ファイルをテクスチャとして貼り付けましょう。

6. テクスチャパネル切替ボタンを押す
6. テクスチャパネル切替ボタンを押す

上図のようにPropertiesウィンドウのテクスチャパネル切替ボタン(テクスチャパネル切替ボタン)を押します。

次にテクスチャを選択し、テクスチャの種類を変更します。

7. テクスチャの選択とテクスチャの種類の変更
7. テクスチャの選択とテクスチャの種類の変更

上図のようにテクスチャの "Tex" を選択し、Typeに "Image or Movie" を選択します。

続いて、用意した画像ファイルをテクスチャとして読み込みます。

8. 画像ファイルを開く
8. 画像ファイルを開く

上図のようにImageパネルのイメージ選択リスト(イメージ選択リスト)のイメージ読み込みボタン(イメージ読み込みボタン)を押します。

9. File Browserウィンドウ画像を拡大する
9. File Browserウィンドウ

上図のようにFile Browserウィンドウが表示されますので、用意したテクスチャ画像のファイルを選択して、[Open Image]ボタン([Open Image]ボタン)を押します。

ファイルが読み込まれると、File Browserウィンドウは自動的に閉じます。

では、いよいよライトマップを作成しましょう。 つまり、レンダリングし、陰影計算の結果をイメージに描き込みます

具体的には、ベイクを行います。 『ベイク』とは『焼き込み処理』、つまり、陰影計算の結果をイメージに描き込む処理のことです

  
ベイクは、レンダリング時と同じ陰影計算を行い、その結果をイメージに描き込む機能です。 ライトマップのためだけの機能ではなく、アンビエントオクルージョンの結果やバンプマップの結果をテクスチャに描き込むためにも使えます。

では、ベイクを行いましょう。

10. レンダーパネル切替ボタンを押す
10. レンダーパネル切替ボタンを押す

上図のようにPropertiesウィンドウのレンダーパネル切替ボタン(レンダーパネル切替ボタン)を押します。

続けて、Bakeパネルからベイクを実行します。

11. ベイク
11. ベイク

上図のようにBakeパネルの[Bake]ボタンを押してベイクを開始します。

12. 進捗
12. 進捗

上図のようにInfoウィンドウのヘッダに進捗が表示されますので、終了するまで待ちます。

終了したら画面レイアウトを "UV Editing" に切り替えます。

13. 画面レイアウトをUV Editingに切り替える
13. 画面レイアウトをUV Editingに切り替える

上図のようにInfoウィンドウのヘッダ部で画面レイアウト選択リスト(画面レイアウト選択リスト)に "UV Editing" を選択します。

14. イメージに陰影がつけられている
14. イメージに陰影がつけられている

上図のように用意したテクスチャ画像に陰影がつけられた結果がイメージに描き込まれています。 これは、Blenderによって陰影計算の結果が描き込まれたためです

枠が邪魔ですので、枠を消しましょう。 3D Viewウィンドウの編集モードをオブジェクトモードに切り替えてください。

15. ライトマップ
15. ライトマップ

上図のようにライトマップが見やすくなりました。 陰影計算の結果が描かれているのがわかります。

最後に、作成したライトマップを使ってみましょう

光源であるランプ(ポイントライト)を削除した状態で、このイメージをテクスチャとしてレンダリングしてみましょう。 光源が存在しないにも関わらずレンダリング結果に陰影がつけば、ライトマップの実験は成功です。

では、再び、画面レイアウトを "Default" に戻します。

16. 画面レイアウトをDefaultに切り替える
16. 画面レイアウトをDefaultに切り替える

上図のようにInfoウィンドウのヘッダ部で画面レイアウト選択リスト(画面レイアウト選択リスト)に "Default" を選択します。

では、ライトマップをテクスチャとして貼り付けましょう。

17. テクスチャパネル切替ボタンを押す
17. テクスチャパネル切替ボタンを押す

上図のようにPropertiesウィンドウのテクスチャパネル切替ボタン(テクスチャパネル切替ボタン)を押します。

まず、テクスチャを選択します。

18. テクスチャの選択
18. テクスチャの選択

上図のようにテクスチャの "Tex" を選択します。

続いて、テクスチャとライトマップ用のイメージを結びつけます。

19. イメージとの結びつけ
19. イメージとの結びつけ

上図のようにImageに "Untitled" を選択します。

次に、メッシュとテクスチャのマッピング方法を変更します。

20. UVマップ形式に変更
20. UVマップ形式に変更

上図のようにMappingパネルのCoordinatesに "UV" を、Mapに "UVMap" を選択します。

  
Mapの "UVmap" はUV展開時に自動に作成されたUVマップです。

次に、ランプを削除します

21. ランプ(ポイントライト)を削除する
21. ランプ(ポイントライト)を削除する

上図のようにポイントライトを削除します。

では、レンダリングしてみましょう。 キーボードのF12を押します。

22. レンダリング結果
22. レンダリング結果

上図のように真っ暗です。

理由は光源が無いからです。 テクスチャには陰影がついているのですが、光がないため見えないのです

といって、光源を追加したのでは、テクスチャが陰影を持っているかどうかを確認できません。 そこで、スザンヌのメッシュを発光させてみましょう。

23. スザンヌを選択
23. スザンヌを選択

上図のようにスザンヌを選択します。

24. マテリアルパネル切替ボタン
24. マテリアルパネル切替ボタン

上図のようにPropertiesウィンドウのマテリアルパネル切替ボタン(マテリアルパネル切替ボタン)を押します。

では、スザンヌを発光させてみましょう。

25. ShadingパネルのEmitを 0.5 に
25. ShadingパネルのEmitを 0.5 に

上図のようにShadingパネルのEmitに 0.5 を設定します。

では、再度レンダリングします。 キーボードのF12を押してください。

26. レンダリング結果
26. レンダリング結果

上図のように陰影がつきました。

最後に、ライトマップのテクスチャを無効にしてレンダリングしましょう。 ライトマップのテクスチャを無効にして陰影がなくなれば、テクスチャ自体に陰影が描かれていたことが確かめられます。

27. テクスチャパネル切替ボタンを押す
27. テクスチャパネル切替ボタンを押す

上図のようにPropertiesウィンドウのテクスチャパネル切替ボタン(テクスチャパネル切替ボタン)を押します。

次にライトマップのテクスチャを無効にします。

28. テクスチャの無効化
28. テクスチャの無効化

上図のようにテクスチャの "Tex" の右にあるチェックボックスをオフにします。

では、レンダリングしましょう。 キーボードのF12を押します。

29. レンダリング結果
29. レンダリング結果

上図のように陰影がなくなります。 これで、陰影が描かれていたのはライトマップのおかげであることがわかりました。 ライトマップの実験は成功です。

  
Lightmap Pack方式ではUV展開後に後調整することはできません。

次の記事へ

では、そろそろ一区切りします。 解説の続きは次の記事を参照してください

  
  

まとめ

機械のメッシュであれば、Smart UV ProjectでUV展開しましょう。 角度の変化の大きい箇所で自動的に切り分けてくれます。 思い通りに切り分けられない場合は、手動でシームを入れて調整します。

Lightmap Packはライトマップ用です。 事前に陰影を計算し、結果をテクスチャに描き込む『ベイク』と呼ばれる手法のためのものです。

 
メニュー