LightwaveでUDIM(UVタイル)を使いたいけどUV展開は3D-COATでやりたい話
使用ソフト
- Lightwave2020
- 3D-COAT2022
目次
- ■UDIMについての公式Tipsとチュートリアル
- ■このTipsの概要
- ■主に使うコマンドの紹介
- ■Lightwaveでモデリングをする
- ■3D-COATでUV展開をする
- ■LightwaveでUDIMを構築する
- ■3D-COATでペイントする
- ■Lightwaveでテクスチャを適用する(完成)
- ■UVタイルの差し替え方
- ■参考にした記事
LightwaveでUDIM(UVタイル)を使いたいけど、公式のTipsだとLightwaveでUV展開をしないといけないので、外部ソフト(3D-COAT)でUV展開してUDIMを使う方法についての記事です。
■UDIMについての公式Tipsとチュートリアル
https://docs.lightwave3d.com/lw2020/reference/surfacing/image-editor/udim-workflow
Lightwave2020の日本語マニュアルにも同様のチュートリアルがあります。
"サーフェイス & レンダリング"の"UDIMワークフロー"のページです。
■このTipsの概要
複数のUVマップに複数のマテリアルが紐づいているものを、一つのUVマップにまとめめ、紐づくマテリアルを一つにする作業を行う。
3D-COATではUV展開する際にUVセットと言う機能でUVマップを複数に分けて管理できるが、それを直接UVタイルに並べることは出来ない。そこでインポートするLightwave側でUDIMの構築を行う必要がある。
これによりテクスチャは複数扱えるまま紐づくマテリアルは一つになり管理が容易になる。
■主に使うコマンドの紹介
このTipsで主に使うコマンドは以下の6つです。
「結合」「統合解除」
(詳細タブ:"ポイント"グループ)
「UVマップのコピー」「UVマップの貼り付け」「UDIM移動」「UVアイランド選択」
(UVタブ:"UV編集"グループ)
※"UDIM移動"(Move UDIM)ツールについては日本語マニュアルに説明を見つけられなかったので、こちらの英語マニュアルを参照してください。
https://docs.lightwave3d.com/lw2020/reference/modeler/uv/uv-modify/move-udim
■Lightwaveでモデリングをする
公式チュートリアルを参考に立方体の6面をそれぞれ別のUVマップにして
UVタイルに並べるという方法で説明していきます。
メッシュの状態も確認したいので1面を5X5で分割しておきます。
出来たモデルはlwo(lwo2)かobjでエクスポートします。
このtipsではlwo(lwo2)を使います。
■3D-COATでUV展開をする
lwo(lwo2)を3D-COATで"ピクセルペイント用のモデル"としてインポートします。
インポート設定はこんな感じです。
これからUV展開するので"UVマッピングタイプ"を"自動マッピング"にします
このTipsで特に関係がある"UVセットとしてタイルをインポート"ですが、まだモデルにUDIMが設定されていないのでチェックは外しておきます。
"バウンドボックスをセンタリングしない"は他のソフトと合わせるには常にチェックしておいたほうが良いでしょう。チェックしないと読み込んだ時点で3D-COATの座標に合わせてセンタリングされてしまうので、後にエクスポートしたモデルをモデリングしたソフトでインポートし直した時に位置が変わってしまう可能性があります。
モデルが読み込まれたらUVルームに移ってUV展開をするのですが、今回のモデルは形が単純なので読み込んだ時点の"自動マッピング"で6面が全て分離される展開が完了しています。
■UVセットを作る
現在のUVセットの名前を"Default"からわかりやすい任意の名前に変更します。
このTipsでは"001"にします。
その後"新規UVセットを作成"でUVセットを追加で5つ作成し、それぞれ名前を"002" "003" "004" "005" "006" にします。
■UVセットにUVマップを割り振る
"UVプレヴュー"で右面のUVアイランドを選択して"他UVセットへ"を使ってUVマップを"002"へ移動させます。
同様に他の面のUVアイランドもそれぞれ選択して、一つづつ各UVセットに移動させます。
1UVセットに1面のUVマップというふうになったら、"UVをパック"等のパッキングツールを使ってUVマップをテクスチャサイズに無駄なく収まるようにします。
もしUVマップの向きを揃えたければ"時計回転"や"半時計系回転"を使って回転させます。オブジェクト上でカーソルを動かすとUVプレビューでも対応したエッジがハイライトされるので、向きを確認出来ます。
例えばこの面はUVマップが上下逆さまになっているので、"時計回転"を2回して合わせました。
次の工程で面に数字を書くので上下は揃えておいたほうが分かり易いでしょう。
各面で調整が済んだらUV展開は完了です。
■仮ペイントしてエクスポートする
UV展開が終了したのでペイントルームに戻ります。
UVマップに変更を加えると毎回それを適応するかを確認するダイアログが出ますので"OK"を押します。これでエクスポートするのですが、この後の作業がし易いように仮のペイントをしておきます。
各面の区別をつける為に"塗りつぶし(Fill tool)"で色を変えたり、レイヤーを追加して"ペン(Brush tool)"で数字を書いたりします。
今回は扱うテクスチャをカラーだけにしたいので上部にあるペイントするチャンネルを選ぶ項目では"深度"と"光沢"は無効にしておいてください。
設定した"UVセット"には"サーフェイスマテリアル"パネルからアクセス出来ます。
目のアイコンをon/offして表示非表示を変えることで、どのUVマップにペイントしているかを確認出来ます。必要な所だけ表示してペイントすると作業し易いでしょう。
ペイントが終了したら"ファイル"メニューの"モデルのエクスポート(obj,lwo)"からlwoでテクスチャと共にエクスポートします。
エクスポート設定はこんな感じです。
"プリセットの書き出し"にLightwaveのプリセットはないので"PBR(Specular)"を選びます。これはLightwaveで"Standard"マテリアルを使う時に合っているようです。
今回は色のテクスチャしか使わないので、"diffuse"だけを残して他の項目は右端の"X"を押して削除してください。
"UVセットをタイルとしてエクスポート"はチェックを外してください。
この段階でこの設定にチェックをするとLightwaveで読み込んだ時にUVマップが壊れた状態になります。これは3D-COAT側の現状の仕様でこれについての詳しい記事を別に書くつもりです。
"テクスチャタイプとUVセット名の入れ替え"はチェックしておくとファイル名の末尾が自分で設定したUVセット名になります。今回は001~006という名前にしているので、結果的に連番になるのでチェックしておくと都合が良いでしょう。
■LightwaveでUDIMを構築する
LightwaveでUV展開したlwoを読み込みます。
"頂点マップ"パネルを開いて3D-COATで作ったUVセットがそれぞれ別のUVマップとして読み込まれていることを確認します。
■新規で空のUVテクスチャマップを作成する
右下のパネルから新規で"UVテクスチャマップ"を作成します。
"テクスチャ名"は任意。(このTIPSでは"UDIM_test"とします。)
"初期値"をoff (offにすると空のUVマップになります。)
"デフォルトUVマップに指定"をon
"UDIMタイル#" の数値は"1001"(UVタイルのスタート値 詳細は公式マニュアルを参照)
"パティング"の数値は"0.05"(タイル同士の隙間の幅を設定する数値です。とりあえず公式チュートリアルと同じにします。)
■UVマップをコピペする
※ここからの①~⑪がUVマップの数だけ繰り返す作業です。
※この作業中はポリゴン選択モードです。
①何も選択しない状態(全選択)で ポイントの"統合解除"する
※ポイントが統合解除されているかは、見た目でわかりにくいです。そういうときは"ポイント選択モード"で"状態パネル"を確認してください。
"1ポリゴン"だけになっているいれば統合解除できています。
②"頂点マップ"パネルでコピーするUVマップを選択
UVタイルでいちばん離れた位置に置く予定のマップから始めます。(今回は006)
③"UVビュー"で投げ縄でUVマップのポリゴンを全選択
④"UVマップのコピー"
(コマンドが完了したら選択が解除される)
⑤再び"UVビュー"を投げ縄選択でUVマップのポリゴンを全選択(マップを貼り付けるオブジェクト側のポリゴンを選択している)
⑥"頂点マップ"パネルで 作った空のUVマップを選択
このTipsでは"UDIM_test"
⑦"UVマップの貼り付け"
(コマンドが完了したら選択が解除される)
⑧何も選択しない状態(全選択)で ポイントの"結合"
入力は何も変えずOKを押す
下部パネルで結合されたポイント数が示される
■UVタイルを並べる
⑨再び"UVビュー"の投げ縄選択でUVマップのポリゴンを全選択
#1001にあるUVマップを"UDIM移動"するときはマップを選択しておく必要があるようです。
⑩"UDIM移動"ツールを押してアクティブにする
"UVビュー"で選択したマップを右にドラックして移動先のタイルまで持っていきドロップして出てきたダイアログで"move"を選び"Enter"キーを押してコマンドを確定する。
⑪"/"キーか何もないところをダブルクリックで選択全解除
こういう感じになったら成功!"#1006"タイルは完成です。
何かしら手順を失敗していると"UDIM移動"をした時点でUVがグチャリます。
例1
例2
重要な点
○オブジェクト側でポリゴンを選択しない
選択は必ずUVビューの投げ縄選択で全選択にする(ポリゴンセット選択やサーフェス選択でもだめ、オブジェクト側で選択するコマンドは不連続UVの頂点まで選択するらしくUDIM移動でUVが壊れる)
○ポリゴンを個別に選択して全選択にしない
ポリゴンの選択順が何かしら関係するらしくマップが入れ替わってしまう。
パッと見は変わらないがペイントするとマップ側がモザイク状になる。オブジェクト側は正常な並びだがモザイクになってる部分に不要な境界線がでる
○UVマップを重ねない
必ず一つのマップをコピペしてタイルの所定の場所に移動するまでを行ってから次のマップの作業に移る(①~⑪を繰り返す) 先に全てのUVマップのコピペだけ終わらせてからまとめて"UDIM移動"を行おうとするとUVマップが壊れる。UVマップが重なった状態でポイントの"結合"をすると重なってる部分の不連続UV頂点が結合されるのかもしれない。
■作業を繰り返す
①~⑪をタイルにまとめるUVマップの数だけ繰り返します。
①何も選択しない状態(全選択)で ポイントの"統合解除"する
②"頂点マップ"パネルでコピーするUVマップを選択
次は"005"
③"UVビュー"で投げ縄でマップのポリゴンを全選択
④"UVマップのコピー"
⑤再び"UVビュー"で投げ縄でマップのポリゴンを全選択
⑥"頂点マップ"パネルで 作った空のUVマップを選択
⑦"UVマップの貼り付け"
前回貼り付けた006に加えてタイル#1001に005のUVマップが追加されます
⑧何も選択しない状態(全選択)で ポイントの"結合"
⑨再び"UVビュー"で投げ縄でマップのポリゴンを全選択
⑩"UDIM移動"ツールを押してアクティブにする
006のとなりの#1005タイルまで005のUVマップを移動して確定する
⑪"/"キーか何もないところをダブルクリックで選択全解除
これで005は完了です。続いてUVマップ"004""003""002""001"も同じ作業を繰り返します。
004
003
002
001
001まで並べたらUVマップの編集作業は完了です。
■単一のマテリアルを割り当てる
UVマップは統合できましたが、マテリアルはまだ各面にそれぞれ一つづつ割り当てられたままですので、オブジェクトのポリゴンを全選択して"Q"キーを押し"色・質感"パネルを開いて新規でサーフェイスを割り当ててください。このTipsでは"all"という名前にしています。
モデラーのビューポートでテクスチャを確認したいので"色・質感編集(F5)"パネルを開き"all"のマテリアルを"Standard"に変更します。
■UDIMテクスチャを割り当てて確認する
読み込んでいるモデルが置いてあるフォルダを開きます。
3D-COATからエクスポートした時点でlwoファイルとテクスチャ画像が6枚あります。
そこに新規でフォルダを作ってテクスチャ画像6枚を全てコピペします。
コピペしたら画像の名前をそれぞれ末尾が1001で始まる連番にリネームしてください。
出来たらLightwaveで"画像編集パネル(F6)"を開いて、先程リネームした連番画像の先頭(末尾1001)を読み込み"画像種"のところを"UDIM"に変更します。
するとプレビュー画面の画像が単一のものから6枚全てを並べたモノに変わると思います。これで準備完了です。
"色・質感編集(F5)"パネルを開いて"all"サーフェイスのマテリアルにある"色"の項目にある"T"のボタンを押して、先程のUDIM画像を投影方法"UV"としてオブジェクトに貼りつけます。マップは"UDIM_test"です
"パースビュー"を確認するとオブジェクトの6面全てにテクスチャが貼られているのが確認できたらUDIMの設定は成功です。
最後に"頂点マップ"パネルを開いて不要になった001~006のUVマップを選択して右クリックメニューから削除しておきます。
モデルは別名で保存しておきましょう。
もしもテクスチャが1面に6枚全てが貼られるときは
表示オプションの"レガシーOpenGL"のチェックを外してください。
■エクスポートする
UDIMを設定したモデルを3D-COATでペイントするためにlwo(lwo2)でエクスポートします
■3D-COATでペイントする
lwo(lwo2)を3D-COATで"ピクセルペイント用のモデル"としてインポートします。
UV展開が終了しているモデルなので"UVマッピングタイプ"を"UVを保持"にします。
今回はUDIMを設定しているので"UVセットとしてタイルをインポート"にチェックを入れます。
するとモデルに設定してあるマテリアルのサーフェス名"all"ではなくUDIMで設定したUVタイルがタイルナンバーで読み込まれます。
仮ペイントしたときと同様に、わかりやすくペイントします。
ペイントが完了したらテクスチャのみエクスポートします。エクスポート設定はこんな感じです。
"ジオメトリのエクスポート"のチェックを外すとテクスチャのみエクスポートできます。代わりに下の"テクスチャのエクスポート"にチェックを入れて、保存先のパスとファイル名の接頭語を設定してください。
"UVセットをタイルとしてエクスポート"はモデルをエクスポートする時に必要なオプションなので、テクスチャだけ書き出すときはチェック不要です。
"テクスチャタイプとUVセット名の入れ替え"にチェックを入れます。これをONにしておけば"サーフェスマテリアル"名が1001で始まるUDIMに対応したモノになっているため、書き出したテクスチャ名の末尾が1001で始まる連番になりリネームせずとも、そのままUDIMテクスチャとして使用できます。
■Lightwaveでテクスチャを適用する(完成)
”■UDIMテクスチャを割り当てて確認する”の手順でエクスポートしたテクスチャを貼り付けて完成です。
UVビューに画像を表示したい場合はビュー上部の"画像を開く"のところから指定する必要があります。(画像の赤枠)
■UVタイルの差し替え方
※UDIMを設定したlwo(lwo2)を3D-COATにインポートしてUVマップを改変してまたLightwaveに戻すとUVマップが壊れます。
UVマップの改変をするならUDIMを設定する前のモデルで行い、別にエクスポートしてLightwaveで読み込み、そのモデルからUDIMを設定したモデルに改変UVマップをモデル間でコピペする方法を取ります。
何らかの理由でUVタイルとして配置したマップを改変などしたものと差し替えたいということがあると思います。その時はまず差し替え予定のUVマップが投げ縄で全選択しやすいようにを"UDIM移動"でUVタイルを2つ上などに移動させます。
改変したUVマップをコピペする際に#1001のタイルに空きが必要になるので#1001のタイルにあるUVマップも同様に移動させます。
※"UDIM移動"はUVマップのポリゴンを全選択しなくても機能するようですが、#1001に関しては移動でマップが壊れることがあります。その時は#1001にあるUVマップのポリゴンを一つ選択して"UVアイランド選択"を使い、全選択してから"UDIM移動"を使用すると回避できます。
改変マップがあるモデルに移動します。
"統合解除"をした後に改変マップのポリゴンを投げ縄で全選択します。そして"UVマップのコピー"
UDIMを設定したモデルに戻ります。
こちらでもまず"統合解除"を行います。
改変マップを貼り付けるポリゴンを選択するために、上に移動させた改変予定のマップを投げ縄で全選択します。
"UVマップの貼り付け"をします。すると#1001に改変マップが貼り付けられて改変予定マップの方は不連続UVの頂点だけが残った状態になります。
そのままもう一度"統合解除"を行います。すると改変予定マップは完全に無くなります。
続けてポイントの"結合"を行い、改変マップの貼り付けは完了です。
後は"UDIM移動"を使って元の位置に移動させてUVマップの差し替えは完了です。
■参考にした記事
○LightwaveでUVマップをコピペしてまとめる方法
○3D-COATで作ったUVマップを他ソフトでUVIMに反映する方法
○ワークフロー
3D-COATのフォーラムでUDIMのペインティングについての意見交換で
後半に"隠す(Hide)"ツールに"単独のマテリアルを表示(ShowSoloMaterial)"のオプションが付いた経緯とその使い所を知ることができます。