lunarborの備忘録

CGソフトの使い方を記録しておけば自分とどこかの誰かに役立つだろう

LightwaveでSDSモデリングして3D-COATでUV展開とテクスチャペイントをしたい!という話

使用ソフト

  • Lightwave2020
  • 3D-COAT2022
  • Blender3.2

他のCGソフトでモデリングしたものを3D-COATに持ち込んでUV展開や3DペイントするTipsはネットで見かけるのですが、多くはサブディビジョンサーフェイス(以下SDS)を使わないモデルを使用していました。

自分が知りたかった「SDSモデリングで3D-COATと連携する方法」を模索した記事です。

(2022_10_07)一部追記しました

目次

 

■作業フローの概要

当初UV展開とペイントは3D-COATにインポートして一括して作業ができると考えていたのですが、SDSを使う場合はそれぞれで使用するモデルの形状を変える必要があるため、個別の作業フローになりました。

 

lightwaveモデリングする

Lightwaveでサブディビジョンサーフェス(サブパッチ)モデリングします。

モデルが出来たらサブパッチはoffにしてlwo(lwo2)でエクスポートします。

■3D-COATでUV展開をする

インポートしてUV展開

lwo(lwo2)を"ピクセルペイント用のモデル"としてインポートします。

設定はこんな感じです。

UV展開はSDSをoffのモデルで行うので"初期の細分化(ポリゴン数)""細分化しない"を選びます。

"バウンドボックスをセンタリングしない"をチェック。これを有効にしておかないと読み込んだ時に3D-COATの座標原点に合わせてモデルがセンタリングされてしまい、後ほどエクスポートしてLightwaveに戻した際に位置が合わなくなる可能性がります。

"自動スムージンググループ"をチェック。"初期の細分化(ポリゴン数)""細分化しない"を選んだ状態でここを有効にするとメッシュの状態を"フラットシェード"にするか"スムースシェード"にするかを制御出来ます。

LWO(LWO2)は3D-COATに読み込むとデフォルトでスムージングが有効になっているため、フラットシェードにしたい場合は"自動スムージンググループ"を有効にして"最大角度"を最低の"1"にします。この数値以下の折り目にスムージングがかかります。逆にスムースシェードにしたい場合は"最大角度""180"にするか"自動スムージンググループ"を無効にします。

 

読み込んでUVルームに移ると、すでに自動でUV展開がされています。

"シームの初期化"をしてシームをリセットした後、手動でUV展開をやり直します。

こんな感じでUV展開しました。

ペイントルームに戻って仮ペイントする

UV展開が完了したらペイントルームに戻って確認用のUVグリットを貼ります。貼り方には2つあります

 

①ピクチャーツールでUVグリット画像を貼り付ける

元々デカールのようなものを貼ることを想定されたツールです。この方法は3Dペイントとして画像を貼り付けられます。なのでシームをまたがってもUVアイランド同士の隙間幅の影響を受けないのでシーム付近でも模様が繋がります。

テクスチャの歪みを確認するにはとても良い方法ですが。1度に貼れるのはビューカメラからの見た面とその裏側だけです。側面にはうまく貼ることができません。


②別の画像編集ソフトでレイヤーとしてUVグリッドを貼り付ける

"編集"メニューにある"外部エディタで全レイヤーを編集"機能から普段使用している画像編集ソフトを立ち上げてレイヤーとしてUVグリッド画像を貼り付けます。

この方法は簡単にモデル全体にグリッドを表示できるようになりますが、UVアイランド同士の隙間にある部分は失われるのでモデルで見た時にシームを境に模様が繋がりません。全体を確認するには向きませんが、側面など細かい部分を確認するには適しています。

エクスポートする

確認用のペイントが完了したら"ファイル"メニューの"モデルのエクスポート(obj,lwo)"からエクスポートします。エクスポート設定はこんな感じ。

"プリセットの書き出し"Lightwaveのプリセットはないので"PBR(Specular)"を選びます。これはLightwave"Standard"マテリアルを使う時に合っているようです。

今回は色のテクスチャしか使わないので、"diffuse"だけを残して他の項目は右端の"X"を押して削除してください。

エクスポートされるのはレイヤーを統合した状態のものになるので、①と②のテクスチャを同時にエクスポートすることはできません。

どちらかをエクスポートしたあとにレイヤーの表示を切り替えて"テクスチャ"メニューから"エクスポート"を使えばテクスチャを単品で書き出すことができます。

 

LightwaveでUVmapとテクスチャを確認、修正する(追記2022_10_07)

(追記2022_10_07)3D-COATからエクスポートしたlwo(lwo2)をLightwaveで読み込むとデフォルトで"NormalMap"ノードが"サーフェイスノード"に接続された状態になっており、設定を開くと"反転Y"にチェックが入っています。この事について記事を書きましたので、こちらも参照してください。

lunarbor.hatenablog.com

SDS適用時のテクスチャの歪みの確認をする

lwoを読み込みこんでモデルにSDS(サブパッチ)とUVスムージング補間(サブパッチ補間)を適用してペイントしたUVグリッドテクスチャが正常に表示されるか確認します。

 

サブディビジョンサーフェス(サブパッチ):OFF

サブディビジョンサーフェス(サブパッチ):ON

UVスムージング補間(サブパッチ補間):リニアコーナー

 

テクスチャの状態を確認すると、角のところからの歪みがひどいようです


メッシュを修正する

歪みの原因はSDS(サブパッチ)の変形に伴い角付近の頂点が必要以上に大きく動いてしまうからのようです。

SDS(サブパッチ)をoffにしてから、動いてしまう頂点を抑えるためにサポートエッジを増やします。※モデルの形状によって最適な修正方法を模索する。

 

SDS(サブパッチ)を適用すると追加したエッジのほうが大きく移動することで、不具合の原因だった頂点の移動は抑えられてテクスチャの歪みは修正されました。

 

4角ともサポートエッジを追加したら修正完了です。

UVスムージング補間(サブパッチ補間)は他も試してみましたがこのまま"リニアコーナー"を使うのが一番良い結果が得られました。

次に3D-COATに読み込む時にこの設定が必要になるので、ここで決め込んでおきます。

側面も問題なさそうです

SDS(サブパッチ)をoffにして、lwo(lwo2)でエクスポートします。

■3D-COATでペイントする

インポートする

メッシュを修正したlwo(lwo2)を"ピクセルペイント用のモデル"としてインポートします。ペイントはSDSが適用されたメッシュで行うのでインポート設定は前回と異なります。

重要なところは上の3つ

"初期の細分化(ポリゴン数)"を"8768"(上から2番目 CCレベル2)

"UVマッピングタイプ""UVを保持"

"UVセットをスムージング""角を保持しスムージング"(Lightwaveのリニアコーナー同等)

補足で

"バウンドボックスをセンタリングしない"をチェック。

"自動スムージンググループ"は無効にします。

※"初期の細分化(ポリゴン数)"で数値を選んで細分化することを選んだ状態で"自動スムージンググループ"を有効にすると、Lightwave"マルチ加工"タブにある"細分化"ツールの"メタフォーム"と同じ処理になります。

エッジを保ったままメッシュの細分化をのみを行いたい場合は"自動スムージンググループ"を有効にして"最大角度"を最低の"1"にします。この数値以下の折り目にスムージングがかかります。SDSが適用されたメッシュにしたい場合は"最大角度""180"にするか"自動スムージンググループ"を無効にします。

 

重要な赤枠の3つの項目の詳細については以下の記事を参照してください。
lunarbor.hatenablog.com

 

lunarbor.hatenablog.com

 

lunarbor.hatenablog.com

ペイントする

通常ならこのままブラシ等でペイントすれば良いのですが、今回の目的はワークフローの構築なので、ペイントでのテクスチャの歪み具合を確認するために再び"ピクチャー"ツールでUVグリッドを貼ります。

前回同様"外部エディタで全レイヤーを編集"機能を使う方法でも貼っておきます。


エクスポートする

テクスチャのみエクスポートします。

"ジオメトリのエクスポート"のチェックを外すとテクスチャのみエクスポートできます。代わりに下の"テクスチャのエクスポート"にチェックを入れて、保存先のパスとファイル名の接頭語を設定してください。

今回も確認用なのでディフューズのみ書き出します。

ペイントに使用したモデルは3D-COATにインポートした地点で不可逆でUVマップが改変されているので、エクスポートしてLightwaveに持ち込んでもテクスチャが合いません。なのでペイントが終了した時点でこのモデルは破棄します。あくまでSDSメッシュでペイントするためのモデルです。

※3D-COATからペイント用のモデルを"低解像度メッシュ"でエクスポートすると、メッシュはSDSかけてない状態でもUVマップがSDS+UVスムージング補間がかかった状態の頂点位置に改変されています。下の画像は、どちらもSDSは適用していない低解像度モデルです。

 

Lightwaveでテクスチャを適用する(完成)

Lightwaveには"メッシュを修正してペイント用にエクスポートしたときのモデル"がまだ読み込まれていると思います。そのモデルに3D-COATからエクスポートしたペイント済みテクスチャを貼ります。

SDS(サブパッチ)を適用してもUVスムージング補間(サブパッチ補間)の効果でテクスチャの歪みは見受けられません。3D-COATでSDSモデルが問題なくペイントできています。

 

側面も問題なさそうです。(完成)

■おまけ:UV展開の失敗録

当初以下の画像のようにUV展開をしていたのですが、シームの継ぎ目で発生する歪みを修正する事ができず、展開方法を見直して本編中の展開方法になりました。

モデルのなだらかな折り目にシームをつけてUVアイランドを分けない方が良いようです。角の丸みの部分だけ分離して十字に展開する事で解決できました。

 

ただ、これについては3D-COATのUVのスムージング処理がLightwaveBlenderと異なる事で起きているようです。これが正常な処理なのか、英語でうまく説明ができそうなら3D-COATのサポートに問い合わせたいと思っています。

3D-COATの"角を保持しスムージング"の処理

Lightwaveではまっすぐに処理されている部分が3D-COATでは曲がっています。

BlenderではUVビューでスムージング処理が表示されないので確認できないのですが、テクスチャの状態はLightwaveと同様なのでスムージング処理もLightwaveと同じになっていると考えます。