読者です 読者をやめる 読者になる 読者になる

ノーマルマップで表現できない凹凸

ノーマルマップって?

簡単に説明すると、メッシュの形状を変えることなく凹凸を表現する手法で用いるテクスチャの一つです。

凹凸を表現する場合には大量のメッシュが必要になるため、ゲームなどリアルタイム性を重視する場合は処理能力の面で問題になることがあります。

そのため、比較的計算の軽いノーマルマップを使用することにより疑似的に凹凸を表現することがあります。


SubstancePainterでの作成方法

Bakeする際に、ハイポリを設定するだけで自動でやってくれます。

ノーマルマップで凹凸を表現できない場合

ノーマルマップでは表現できない凹凸というものがあります。

あくまで疑似的な凹凸なので、仕組み上避けられない場合は別の手法を使用することになります。

面に垂直な突起のある物体

f:id:hildsoft:20170424032213p:plain

このような物体は、ノーマルマップが上手く働きません。

試しにベイクしてみると、このようになります。

f:id:hildsoft:20170424032221p:plain

AOなどは作成されているのですが、どう見ても凹凸があるようには見えないですね。

ノーマルマップの仕組みをざっくり解説

ノーマルマップは、メッシュが反射する光をずらして疑似的に凹凸があるように見せるために、ローポリとハイポリで凹凸の差を記録したテクスチャです。

f:id:hildsoft:20170424032252p:plain

1.入射光は、ローポリでもハイポリでも同じです。

2.光は面に対して入射角と反射角が一致します。

3.本来は平面に光が当たっているだけですが、ノーマルマップの情報を使って反射光の向きを変えることで凹凸を表現します。

つまり、ローポリとハイポリで、反射光の差がないことには、ノーマルマップは機能しないのです。

べベルを付けて実験

f:id:hildsoft:20170424032227p:plain

出っ張りにべベルをつけてみました。

この図で緑の部分は、ローポリとハイポリで反射光が異なるため、凹凸を表現できます。

しかし、青色の部分は、反射光が一致するか、そもそも光が当たらない部分になるため、凹凸を表現できないのです。

f:id:hildsoft:20170424032232p:plain

ベイクするとこのようになります。


f:id:hildsoft:20170424034555p:plain

ちなみに、ノーマルマップのもう一つの弱点として、角度がつきすぎると凹凸があるように見えなくなります。

違和感があるようなら、メッシュを増やして実際に凹凸を作った方が良いかもしれません。

問題が発生するシチュエーション

有機物などはローポリとハイポリで反射光が一致することはほとんど無いためそれほど気にする必要はないと思います。

背景オブジェクトやハードサーフェスのキャラや装備など、無機物ではきっちりとした面を構成することがあるので注意が必要です。

Substance Liveの仕様についてまとめてみました

去年、永続ライセンスを購入する前にSubstance Liveを使ってみたので、簡単にまとめてみます。

以下は2017/4/17に調べた内容です。

f:id:hildsoft:20170417225316j:plain

Substance Liveとは

allegorithmicの販売している3つのソフト

  • Substance Painter
  • Substance Designer
  • Substance B2M

の最新バージョンを月額課金で使用できます。

indie版
https://www.allegorithmic.com/buy/indie

pro版
https://www.allegorithmic.com/buy/pro

FAQ
https://www.allegorithmic.com/products/substance-live/faq

indie版とpro版の機能差はなく、売り上げが100,000ドル/年を超えるかどうかで決まります。

費用

indie版:19.9ドル/月

pro版:99.9ドル/月

Rent-to-own

Liveに支払った費用1ドルを1ポイントとして蓄積します。

このポイントを貯めれば、永続ライセンスと交換できます。

交換ポイントは以下の通りです。

Substance Designerのバージョンが5であることに注意してください。

6を使用するには、ライセンス交換後にアップデートする必要があります。

このポイントでアップデートをすることはできませんので注意してください。

  • Pack Indie:315.00ポイント
     Painter Indie 2、Designer Indie 5、B2M Indie 3
  • Painter Indie 2:149.00ポイント
  • Designer Indie 5:149.00ポイント
  • B2M Indie 3:99.00ポイント

  • Pack Pro:1038.00ポイント
     Painter Pro 2、Designer Pro 5、B2M Pro 3

  • Painter Pro 2:590.00ポイント
  • Designer Pro 5:590.00ポイント

Substance source

Substance Painterで使用できるマテリアルをダウンロードできるサービスです。

1カ月契約するごとに30個ずつダウンロードできます。

フリーの物もありますが、それ以外はLive契約またはLibraryとしての購入が必要になります。

https://source.allegorithmic.com/#/substances/home

現状ではLiveの解除をしても、ダウンロード可能数は維持されますし、ダウンロード済みの物を再度ダウンロードすることもできます。

Libraryがかなり高いので、個人ユーザーなら必要な時にSourceのためにLive契約して30個ダウンロードする形になるかと思います。

1個70円程度と考えると、自分で作るよりは安いですね。

期限について

契約すると1カ月ごとの自動更新になります。

1カ月だけ使う場合などは注意してください。

自動継続の解除をした場合でも、有効期限までは使用できます。

Substance Painterの基本的な使い方

f:id:hildsoft:20170411154242j:plain

はじめに

Substance Painterは日本でのユーザーが少ないのか、日本語でのドキュメントが少ないので公式チュートリアル(英語)を見て勉強しました。

英語が苦手なユーザーと自分用の備忘録を兼ねて1個ずつ要約したので、そのまとめ記事になります。


Substance Painterとは

Substance Painterは、allegorithmic社のソフトウェアで、3Dモデルのテクスチャを作成するソフトです。

UV展開済みの3Dモデルに着色したり、質感を設定することができます。

ベイクが簡単にできるので、AOマップやノーマルマップを作るだけでも十分に価値がある(indie版だと150ドル)と思います。

特徴としては、

  • PBR用テクスチャ作成可能
  • 3Dモデルに直接ペイント可能
  • 複数チャンネルを同時にペイント可能
  • テクスチャサイズを途中で変更可能
  • パーティクルやジェネレーターで定型作業を自動処理
  • マテリアル(質感)が使用可能
  • 作成作業がプロシージャル

などが挙げられます。

欠点としては、若干処理の重いソフトです。

軽いモデルであれば問題ありませんが、高解像度や何枚もレイヤーやテクスチャを使用していると処理が重くなることがあります。

過去記事のまとめ

PBRの理解

基本的に、Substance PainterはPBRでテクスチャを作成することになります。

www.hildsoft.com

PBRは簡単に言うと、物体の質感を3枚のテクスチャで表現しようというものです。

物体の色、光の反射具合、表面のざらつき感の3種類です。

これらの値をテクスチャに収めることで、レンダリング時の環境光などからモデルの質感が計算されます。

モデルの読み込み

テクスチャを作成するモデルを読み込みます。

www.hildsoft.com

実際にテクスチャを作成するモデル(低メッシュ)は必須になりますが、 AOマップ、ノーマルマップ、曲率マップなどを作成するためのモデル(高メッシュ)は、無くても良いですが、あれば精度の高いテクスチャを作成することができます。

ペイント作業の下準備

AOマップやノーマルマップなどは、Substance Painterで作成可能ですが、別のアプリで作成したものを使用することもできます。

www.hildsoft.com


Substance Painterでは、テクスチャセットという単位でテクスチャを扱います。

これはモデルのマテリアルごとに1つ存在し、テクスチャセットには役割の異なる複数のテクスチャが含まれます。

www.hildsoft.com


主要なテクスチャは、ベイク作業で作成できます。

これは最終的なテクスチャではなく、ペイントしていくときにパーティクルの計算などを行う補助的なものです。

www.hildsoft.com

www.hildsoft.com


機能説明

ビューポートは3Dモデルの状態を確認するメインの画面になります。

基本的な操作はこちらで確認ください。

www.hildsoft.com


レイヤーは2Dのペイントソフトとあまり変わりません。

www.hildsoft.com


マテリアルは複数のチャンネルを持っています。

チャンネル毎のデータをまとめてテクスチャにペイントしていきます。

www.hildsoft.com


実際のペイント方法と、ブラシの設定についてです。

基本的なことは2Dのペイントツールと同じですが、3D特有の球状のブラシの扱い方などの理解が必要になります。

www.hildsoft.com


パーティクルブラシは、手描きでは難しいような物理特性のあるペイントをシミュレーションしてペイントすることができます。

www.hildsoft.com


マスクはSubstance Painterで、最も重要な機能だと思います。

模様まで含めてマテリアルを構成することができるため、マテリアルを設定して見えるところだけマスクを外すというレイヤーを多用するためです。

プロシージャルなテクスチャを作るためにも必須の機能になります。

www.hildsoft.com


ジェネレーターとフィルターはプロシージャルなテクスチャを実現するための機能の一つです。

法則の強弱を調整するものと考えて、どのような効果を与えられるのかを知っておけば大丈夫です。

www.hildsoft.com


特定の模様を3Dモデルにペイントする方法です。

www.hildsoft.com


スマートマテリアルはレイヤーを複数まとめたものだと思ってください。

別のテクスチャセットや、別のモデルにも簡単に同じ設定を割り当てることができるようになります。

www.hildsoft.com

補助テクスチャの作り方

透明度用のテクスチャチャンネルを作る方法です。

www.hildsoft.com


発光用のテクスチャチャンネルを作る方法です。

www.hildsoft.com

最終出力

テクスチャを最終的に出力します。

www.hildsoft.com