ZBrushなどの3Dツールで曲面を滑らかにする方法

滑らかな曲面に戻したい

スカルプトや、ポリゴンモデリングで頂点数が多いモデルを修正する時って、気を付けていても不意に曲面に細かい凹凸ができていることってありますよね?

ZBrushでの基本的なスカルプト手法だとメッシュレベルがあるので、それを下げてコントロールすることが可能です。

しかし、2018になってからSculptrisProの導入など、ローレベルのメッシュを削除することもあり、ハイポリ状態での修正方法を探していました。

今回はこれを修正する方法の一つをメモっておきます。

3D界隈の知識が足りてないので業界では常識なのかもしれませんが、そこはご了承ください。


手法

曲面を手で修正するのは難しい

曲面や平面を手動で調整するのは難しいです。

平面であれば軸を調整してスケール0にする手法が一般的ですが、曲面の場合はこの手が使えません。

今回の手法では、サポートメッシュを使います。

ZBrushのスカルプト操作を例にしますが、他のDCCツールでのポリゴンモデリングにも応用できると思います。

要点は、扱えるレベルの頂点数まで下げるorプリミティブから変形などで理想となる形状に加工できるようにして、サポートメッシュを作成するということです。


概要

  1. ベースとなるメッシュをコピー
  2. 扱える頂点数まで減らす
  3. 少ない頂点数で滑らかに調整してサポートメッシュを作成
  4. サポートメッシュに沿わせる形で修正


その他の案

  • スムーズブラシを使う
     曲面に対してスムーズを行うと、どうしても線が残ってしまいがちで時間がかかりすぎるので除外。

  • Tool>Deformation>Polishを直接使う
     メッシュが細かすぎる場合は余り効果がないので除外。

  • SculptrisProの使用を諦めて従来のSubDivだけで行う
     ある意味正解ですけど、今回は使ってしまったor使いたいということを前提なので除外。


修正例

f:id:hildsoft:20180430135910j:plain

途中からSculptrisProを使用しているため、四角ポリゴンや△ポリゴン、密度差がかなり入っている上にハイポリゴンの状態です。

太ももの部分にある細かな凹凸をスムーズにします。

正面から見るとそれほど凹凸は目立たないのですが、斜め上から見ると光の加減で凹凸がはっきりわかる状態です。


手順詳細

サポートメッシュを作成する範囲を選択

f:id:hildsoft:20180430141402j:plain

スムーズをかけたい部分より大きめにマスクをかけます。

全体のコピーを取ると、この後使用するPolishやZremesherなどの機能で処理時間がかかるためです。

また、少し大きめにするのはPolish時に境界部分に縮みが発生するためです。


サポートメッシュのサブツール化

f:id:hildsoft:20180430142120j:plain

サポートメッシュの元となる部分を抽出します。

Tool>Subtool>Extractを使用し、マスク部分を厚み0、片面のみのメッシュでサブツール化します。


サポートメッシュのリトポロジー

f:id:hildsoft:20180430143205j:plain

マスクを解除し、Tool>Geometry>ZRemesherをかけます。

Target Polygons Countは滑らかにしたい形状に合わせて調整します。

今回は比較的大きい凹凸を含めて滑らかにしたいので、ポリゴン数をかなり落とします。

ポリゴン数が多い場合はそれほど滑らかにできないので、目的の形状に合わせて調整してください。


サポートメッシュの調整

f:id:hildsoft:20180430144408j:plain

Tool>Deformation>Polishを強さ1で、数回かけます。

ローポリゴンの状態でPolishをかけているので、スムーズになる凹凸のレベルが変わってきます。

この状態でPolishをかけることにより、微妙な凹凸を消してしまう事が目的です。

f:id:hildsoft:20180430145035j:plain

ここで最終的なフォルムがおおよそ分かるので、この段階で滑らかだと判断できるようなポリゴン数とPolish実行回数を調整してください。

また、この時点でブラシなどを使用して形状を整えることも可能です。


サポートメッシュのSubdivide

f:id:hildsoft:20180430150034j:plain

元のメッシュに転写するために、サポートメッシュにスムーズをかけます。

手法は二つあり、

  • Tool>Geometry>DivideでSmtオプションを使用して分割する
  • Smtオプション無しで分割の度にTool>Deformation>Polishをかける

それほど差は無いですが、若干の差はあるので形状によって使い分けても良いと思います。

今回はsmoothを使用して単純に分割しました。

転写範囲を調整

f:id:hildsoft:20180430151403j:plain

修正したいハイポリモデルのマスク範囲を調整します。

先ほどExtractする前にマスクをしているので、その範囲より小さく、適用したい部分だけマスクを残します。

リトポやsmoothをした影響で境界部分で段差ができてしまうので、適用する境界部分をTool>Masking>BlurMaskを数回適用してぼかします。

Extractする際に大きめにしたのも、ここでの影響を抑えるためです。


f:id:hildsoft:20180430151555j:plain

Tool>Masking>Inverseでマスク範囲を反転します。

Ctrl+ブランクエリアをクリックのショートカットを使う方が早いです。


転写

f:id:hildsoft:20180430152339j:plain

修正したいハイポリモデルをSubtoolで選択して、転写元の滑らかにしたSubtoolを可視状態にします。

安全のため、それ以外のSubtoolは不可視状態にしておくのが良いでしょう。

Tool>Subtool>Project>Projectionを実行します。

設定は初期値で大丈夫だと思いますが、モデル形状により上手く転写できない場合は設定を調整してみてください。


完成

f:id:hildsoft:20180430153208j:plain


f:id:hildsoft:20180430153214j:plain

それほどシルエットを崩さずに消したい凹凸部分だけ滑らかにすることができました。

Substance Painter 2018.1.0

f:id:hildsoft:20180320061951j:plain

Substance Painter 2018.1.0のリリース

Substance Painter 2018.1.0が2018/03/15にリリースされました。

今回の目玉はUIの改良と速度向上です。UI面はタブレットでの使用を考慮した作りとなっています。

機能面ではSubstance Designerで追加された3Dノイズがジェネレーターとして含まれています。


ニュースリリース

公式のニュースリリース

ブログ記事
Substance Painter: Spring Has Come! | allegorithmic

詳細なリリースノート(ココ見るだけで十分だと思います)
Version 2018.1 - Substance Painter - Allegorithmic Documentation

新しいチュートリアル動画(UIが大分変ってるので、2018から勉強する人はこれを見ると良いです)
Substance Academy | Tutorials


変更点の解説動画


Substance Painter 2018 Spring Release


ソフトの変更点

今回はUIの変更がメインで、操作方法はリリースノートにgif動画が多用されているので分かりやすく、

Version 2018.1 - Substance Painter - Allegorithmic Documentation

を見るだけで十分だと思います。

Substance Designer 2018.1.0

f:id:hildsoft:20180312092430j:plain

Substance Designer 2018.1.0のリリース

Substance Designer 2018.1.0が2018/03/09にリリースされました。

前回の2017.2が10月だったので、更新の早いSubstanceの割には遅かったなーという印象です。

というのも、今回のバージョンで内部構造を大きく変えたようです。

一般的に大規模改修後はバグが気になりますので、心配な方はいつでも戻せるようにバックアップをお忘れなく。


ニュースリリース

公式のニュースリリース

Substance Designer Spring Release: Faster, Bigger, Baker! | allegorithmic

Release Note Substance Designer | allegorithmic

解説動画


Substance Designer 2018 Spring Update


ソフトの変更点

実行速度の改善

ノードの管理方法を見直して、パラメータを変更するときなど最大30%高速化されます。

VFX分野のような高度な要求のある市場でには現在の機能では不十分なので、高負荷に耐えられるよう大規模改修を行ったとのことです。

実際にノード計算が早くなったのではないですが、違いが分かるようです。

(あまり複雑なノードを組んだことが無いので実感できませんでした。)


UDIMのサポート

今回のバージョンから、UDIMを完全にサポートするようになりました。

またベイクの途中経過が視覚化され、ベイクプロセス中にリアルタイムに表示されるため、 途中でキャンセルして設定を調整しなおすことも可能になります。

パフォーマンスも改善され、ハイポリのメッシュでも高速に読み込みやベイクできるようになりました。

UDIMの機能追加に伴い、グラフと対象となるUDIMの部分or全体などを切り替える操作も追加されています。

同じくエクスポートダイアログも更新されています。

UDIM用のファンクションノード追加

UDIMの位置を指定するノードが追加されています。

これで指定のタイルのみに効果を適用する事が可能になります。


3Dノードの追加

ノイズやパターンに、3Dジェネレーターが追加されています。

また3Dノードに対して立体的に影響を与えるノードも追加されています。

点からの距離によって影響度が変わるVolumeMask、投影するPlanar Projection、直線状にグラデーションを作成するLinear Gradientです。

SubstanceDesignerのFX-Mapの使い方について調べてみました その2

www.hildsoft.com

前回の記事

FX-Mapで使用する基本ノード

Quadrantノード

f:id:hildsoft:20180104044836p:plain

QuadrantはPatternや入力、ノード自体の下側のコネクタからの入力で画像を受け取り合成します。

Patternや入力ノードからの入力は中央に、ノードの下のコネクタからの入力は4分割してセンターの位置が変わります。

f:id:hildsoft:20180104045144p:plain

出力されるノードの状態です。

4分割された入力は左から順に、左上、右上、左下、右下の順で表示されますが、これは繋いでみればわかるので位置までは覚える必要はありません。

パラメータについては、関数が絡むのでまた今度。


Switchノード

f:id:hildsoft:20180104050223p:plain

スイッチノードは、接続されたノードの左右どちらを出力するかを切り替えるノードです。

パターンを完全に切り替える時に使用します。

f:id:hildsoft:20180104050319p:plain

パラメータが固定だと片方だけしか出ないので、関数で制御するか、パラメータを外部出力で変更可能にして使います。


Iterateノード

f:id:hildsoft:20180104050912p:plain

Iterateノードは繰り返し合成する処理を行います。

左下のコネクタは背景など、元となる画像で、右下のコネクタは繰り返す画像です。

単純に繰り返すと同じ位置に上書きしてアルファ値が濃くなるだけなので、関数などを使用してランダムに散らしたりします。

f:id:hildsoft:20180104051122p:plain

複数の模様を段階的に加えていく場合などは、このように左側をどんどん繋いで、右側に追加する画像を配置していく事になります。


まとめ

  • Quadrantノードは画像を4分割で合成する
  • Switchノードは使用したい処理を切り変える
  • Iterateノードは同じ画像を複数回ブレンドする

SubstanceDesignerのFX-Mapの使い方について調べてみました その1

FX-Mapノード

f:id:hildsoft:20171225032516p:plain

SubstanceDesignerに「FX-Map」というノードがあります。

使いこなせると自由に図形を配置できますし、SubstanceDesignerに入っているPatternsやNoisesもこれを使って作られているようです。


FX-Mapって何をするもの?

任意の図形を自由に並べることができます。

その分、並べ方も自前で設定する必要があって分かりづらい気がします。

下記の参考動画内では、ランダム生成できるひっかき傷を作っています。

簡単な並べ方や、ある程度のランダムを含めて規則性のあるものは「Tile Generator」「Tile Random」などGenerator系のノードが使えないか、先に検討した方が良さそうです。


参考にした動画

やはり基本を学ぶ上では、公式の解説が分かりやすいです。


Substance Designer #9 - Working with FX-Maps part 01


Substance Designer #10 - Working with FX-Maps part 02

具体例や応用例は様々な作例がyoutubeにもありますので、探してみてください。


基本の流れ

ノード作成

f:id:hildsoft:20171225032516p:plain

まずはノードを追加します。

  • ショートカットメニューからFxMを選択
  • スペースバーのショートカットからFX-Mapを選択
  • 右クリックメニューのAdd NodeからFX-Mapを選択

使いやすい方法でノードを追加してください。


出力カラーモード

f:id:hildsoft:20171225162434p:plain

出力カラーモードを設定してください。

後からでも変更可能ですが、通常は最初で設定しておいた方が良いです。

ここではマスク画像を作ることを考えて、Grayscaleにしておきます。


入力ノードの接続してみるも

f:id:hildsoft:20171225162917p:plain

ノードエディタは簡単に試行できるため感覚的に使いがちですが、ここで入力ノードを繋いでも何も起こりません。

間違いではないのですが、ここで試行錯誤して時間を使うより、使い方を調べてから試行錯誤した方が格段に理解が深まると思いますので、まずはスルーします。


FX-Mapの編集

f:id:hildsoft:20171225163322p:plain

右クリックメニューからEdit Fx-Mapをクリックして、FX-Mapの編集画面に移動します。


f:id:hildsoft:20171225163442p:plain

するとQuadrantというノードが1個だけ表示された状態で開きます。

通常のグラフエディタと違い、コネクタが縦についていますが、つなげる方向が違うだけで余り気にする必要はありません。


f:id:hildsoft:20171225163606p:plain

編集する際にグラフ内に複数種類のノードを配置していきますが、出力ノード(背景が黄色)に指定できるのは1つだけです。

出力ノードはrootノードと呼ばれ、最終的にそのノードの状態が通常のグラフ使用されるFX-Mapの出力値になります。

FX-Mapで使用するノードは3種類あり、左から順にIterate、Quadrant、Switchで、どれもrootノードに指定することができます。

これらノードの細かい説明は次回以降にします。ここではrootノードの存在とノードは3種類ある程度に思ってもらえればokです。


出力データを作成

f:id:hildsoft:20171225164550p:plain

まずは一番簡単な出力方法である、プロシージャルな基本図形を出力してみます。

root指定されているQuadrantノードをダブルクリックして、Patternの中からGaussianを選択してください。

この状態で元のグラフに戻ってみると、FX-Mapの出力状態を確認することができます。

ShapeノードでGaussianを選択したものと同じ状態になっています。


f:id:hildsoft:20171225164823p:plain

次にInputイメージを表示してみます。

PatternからInput Imageを選択して下さい。

ここではGradient Linear 3をそのまま表示させています。


f:id:hildsoft:20171225164303p:plain

複数の入力イメージを扱う場合は、少し下の方にあるInput Image Indexから表示したい入力データの番号を選んでください。


ノードの入力から出力までの流れを簡単に説明しました。

次回以降は、操作方法などをまとめていく予定です。

まとめ

  • FX-Mapノードは複雑な図形配置ができる
  • 出力するカラーモードは最初で設定しておく
  • 入力ノードは繋いだだけでは何も起こらない
  • FX-Mapの内部で使うノードはIterate、Quadrant、Switchの3種類
  • rootノードが最終的な出力ノード
  • 入力ノードor基本的なプロシージャルノードから図形を加工していく

Substance Painter 2017.4.0

f:id:hildsoft:20171125142302j:plain

Substance Painter 2017.4.0のリリース

Substance Painter 2017.4.0が2017/11/23にリリースされました。

既にSubstance Painter 2017.xを使用している方は、起動時にメッセージが表示されます。

Substance Painter 2のライセンスを保有している方も無償アップグレードは終了しているので、保守ライセンスを購入するか、サブスクリプションを使用する必要があります。

27日まではブラックフライデーで通常アップグレード75ドルのところを50ドルで購入できますので、お得に買うチャンスです。


ニュースリリース

公式のニュースリリース

Substance Painter: Introducing Layer Instances | allegorithmic

Version 2017.4 - Substance Painter - Allegorithmic Documentation

解説動画


Substance Painter 2017.4: Layer instancing


Substance Painter 2017.4: UE4 Livelink Plugin


ソフトの変更点

レイヤーインスタンスの実装

複数のテクスチャセットにまたがって、同じレイヤーを使うことができる機能です。

今回のアップデートのメイン機能だと思います。

Live-link with Unreal Engine 4の提供

UE4を使用して、データの即時反映などを行えるプラグインをマーケットプレイスで提供しています。

Substance Plugin by Allegorithmic in Code Plugins - UE4 Marketplace

素材の追加

旧型のチェインメイルやプラスチック、木などの20個のプロシージャルマテリアルと、約40個(ビットマップとプロシージャル版の合計)のグランジマップが追加されました。

Sketchfabエクスポーターの改良

暫定版を出力することが可能になしました。


レイヤーインスタンスの使い方

レイヤーインスタンスの主な効果

レイヤーインスタンスは、異なるテクスチャセット間でレイヤーを共有するものです。

アンカーポイントは同じテクスチャセットでしか使用できませんし、スマートマテリアルなどは設定を同期することができません。

一方レイヤーインスタンスは、一か所を修正するだけで、同じレイヤーを使用している他のテクスチャセットにも効果を反映させることが可能になります。

設定方法

f:id:hildsoft:20171125145649p:plain

レイヤーインスタンスとして設定したいレイヤーを右クリックしてメニューを表示します。

Instantiate across texture sets...をクリックします。


f:id:hildsoft:20171125150026p:plain

予めレイヤーをコピーしておけば、Paste Layer as instance としてその場にコピーされたレイヤーを作成することも可能です。

こちらの方法は1か所にだけコピーしたいときにダイアログを開かずに作成できるのでお手軽です。


f:id:hildsoft:20171125150331p:plain

Instantiate across texture sets...を選択した場合は、ダイアログが表示されます。

ここでどのテクスチャセットにコピーレイヤーを作成するか選択することができます。

コピーしたいテクスチャセットにチェックを入れてOKをクリックしてください。

まとめて複数のテクスチャセットでレイヤーインスタンスを作成する事ができるので、使い分けると良いでしょう。


f:id:hildsoft:20171126083412p:plain

全てのテクスチャセットにレイヤーインスタンスが作成されました。


変更を加える

f:id:hildsoft:20171126083532p:plain

カラーマスクを作成して、特定の部位だけに適用します。

Bodyのテクスチャセットがソースとなりますので、こちらを修正すると他のテクスチャセットにも反映されます。


f:id:hildsoft:20171126083945p:plain

レイヤーインスタンスに含まれるレイヤーを変更すると、これも全体に適用されます。


レイヤーの確認方法

f:id:hildsoft:20171126085013p:plain

レイヤーインスタンスが設定されていると、レイヤーの右側にアイコンが表示されます。

このアイコンをクリックすると、プロパティにヒエラルキーが表示され、ソースレイヤーや参照しているレイヤーの場所が分かります。


f:id:hildsoft:20171126085524p:plain

例えばHeadのインスタンスをクリックすると、自動的にHeadのテクスチャセットがアクティブになり、レイヤーも参照しているものが選択状態になります。


レイヤーの削除

f:id:hildsoft:20171126085730p:plain

Bodyで作成したソースレイヤーを削除すると、


f:id:hildsoft:20171126085852p:plain

Head、Legsに作成した参照しているレイヤーも自動的に削除されます。


循環参照でのエラー

f:id:hildsoft:20171126090535p:plain

アンカーポイントと同様に、レイヤーインスタンスも循環参照はエラーとなります。

ソースレイヤーの中に参照しているレイヤーを持ってくると、参照先に自分自身のレイヤーが存在することになるため延々と参照してしまうためエラーとなります。

この場合はエラーとなっているレイヤーの右側にエラー表示が出ますので、ドラッグ&ドロップで位置を変更したり削除するなどでエラーを解消してください。

レイヤーインスタンスの親子関係で循環参照は起こりますが、レイヤーの位置は無関係ですので、階層にだけ注意してください。


使用例

f:id:hildsoft:20171126091143p:plain

UV Projectionを使用するとUVに沿って模様が入ります。


f:id:hildsoft:20171126091359p:plain

Tri-planar projectionにすると3D空間に沿って模様が入ります。

この時、レイヤーインスタンスを使用することで、複数のテクスチャセットに対して同じ設定を適用することが可能になります。


f:id:hildsoft:20171126091842p:plain

汚しのフィルタも、3D空間に沿って複数のテクスチャセットにまとめて適用することが可能になります。

複数のテクスチャセットに対して、統一的な操作を加えたい場合に強力な機能です。

Substance(indie版)ブラックフライデーセール2017

f:id:hildsoft:20171125120931j:plain

Substance(indie版)ブラックフライデーセール

今年もセールやってます。 11/23~11/27

www.allegorithmic.com

allegorithmic公式サイト

サブスクリプション

  • Substance - Annual Plan 239ドル/年 (セール価格:初年度159ドル、次年度以降239ドル)
  • Substance - Monthly Plan 19ドル/月(セール対象外)

ソフトは
Substance Painter
Substance Designer
Substance B2M
のセットに加え、毎月30個のSubstanceSourceにあるマテリアルをダウンロードする権利がついてきます。 こちらのDL可能数は蓄積されますので、必要になった時にダウンロードできます。

サブスクリプションプランは、1年間の連続使用後に49ドル追加で支払うことで永久ライセンスに切り替えることができます。
この時、アップグレード権は付きませんので、切り替えたタイミグの最新版までの提供となり、最新版が必要な時に保守プラン(75ドル/年)を契約することになります。 切り替えずに継続してサブスクリプション支払いをしている間は常に最新版と毎月30個のマテリアルDL権が付属します。


買い切り

  • Substance Painter 149ドル(セール価格:99ドル)
  • Substance Designer 149ドル(セール価格:99ドル)
  • Substance B2M 3.x 99ドル(セール価格:65ドル)

こちらは12カ月の保守プランが付属します。

現状では保守プランが切れた場合は、いつでも再開できるので必要になったらバージョンアップが可能です。 ただし、Substance B2M は完成されたソフトのようで、殆どバージョンアップしていないようですね。

Annual Planができてからはパックの買い切りは無くなったようなので、 Annual Plan(セール時159ドル)+ライセンス化(49ドル)の208ドルでマテリアル360個付いてくるindieパック版と考えた方が良いでしょう。


保守プラン

  • Substance Painter&Substance Designer 149ドル(セール価格:99ドル)
  • Substance Painter 75ドル(セール価格:50ドル)
  • Substance Designer 75ドル(セール価格:50ドル)

保守が切れた永久ライセンスを持っている方が対象になります。

SubstancePainter1.xやSubstanceDesigner5.xからのバージョンアップも可能です。


Steam

こちらのセールは11/30までです。

  • Substance Pack ¥41,780(セール価格:¥20,682)
  • SubstancePainter ¥15,900(セール価格:¥10,494)
  • Substance Designer ¥15,900(セール価格:¥10,494)
  • Bitmap2Material 3 ¥9,980(セール価格:¥6,586)

Save 50% on Substance Pack - Indie on Steam

Save 34% on Substance Painter 2018 on Steam

Save 34% on Substance Designer 2018 on Steam

Save 34% on Substance B2M3 on Steam

Steam版では全て買い切りのみで、サブスクリプションはありません。

FAQ Substance | allegorithmic

まとめ

1ドル111.5円(11/25現在)なので、steamで買った方が少しは安いですが、 パックで購入するならマテリアル360個も付いてくるので公式サイトの方がお得だと思います。