Substance Painterに入門してみます。
この記事では基本操作、ペイントの基礎からUnityに取り込むまでをまとめます。
- Substance Painter?
- プロジェクトを作成する
- 基本操作
- ブラシで塗る
- 塗りつぶす
- マスクを掛ける
- マスクを塗る
- ポリゴン単位で塗る
- 特定のマップだけを塗る
- 書き出す
- Unityに取り込む
Substance Painter?
Substance PainterはUnityなどのゲームエンジンに対応している3Dペイントツールです。
3Dペイントツールを使うとマテリアルにアサインする各テクスチャが作りやすくなります。
例えば、UnityのStandard Shaderはアルベドをはじめとして、
MetallicやSoothness、Normal、Heightなどの情報をテクスチャとして与える必要があります。
これらを一個一個手で描いていては大変な労力になってしまいます。
そこで絵を描くような感覚でマテリアルを作成し、結果としてこれらのテクスチャが書き出されるようにしたツールが3Dペイントツールです。
プロジェクトを作成する
それではSubstance Painterでプロジェクトを作成してみます。
まず、ファイル > 新規から新規ファイル作成ウィンドウを開き、以下の操作を行います。
- Templateで対応するゲームエンジン名を選択(UnityのStandardShaderを使う場合はUnity5)
- Fileからテクスチャを作りたいFBXファイルを選択(UV展開まではされている必要アリ)
- 法線マップがある場合には法線マップをインポートしておく
- OKをクリック
ちなみにドキュメント解像度は書き出し時の解像度ではないので十分な大きさを設定しておけばOKです。
下図のようにモデルとテクスチャが表示されれば作成完了です。
基本操作
次に必要最低限の基本操作だけは覚えておく必要があります。
まずペイントは普通に左ドラッグです。
回転はAlt + 左ドラッグです。
移動はAlt + 中(ホイール)ドラッグです。
拡縮はホイールの回転で制御します。
また、Shiftを押しながら右ドラッグでライト(環境マップ)を回転できます。
ブラシで塗る
それではこのモデルをブラシで塗っていきます。
まず、レイヤーウィンドウから新しくレイヤーを作ります。
あとはマテリアルを選択 > 左ドラッグで塗っていきます。
色などはPropertiesウィンドウのParametersから調整できます。
塗りつぶす
次に塗りつぶしをしていきます。
まず画面下部のマテリアルから好きなものを選択して、モデルの上にドラッグ&ドロップします。
すると塗りつぶし用のレイヤーが追加されてモデル全体がこのマテリアルでペイントされます。
色などはブラシと同様PropertiesウィンドウのParametersから調整できます。
マスクを掛ける
この状態でさらに別のマテリアルをドラッグ&ドロップすると塗りつぶしレイヤーが追加されます。
次に、ここにマスクを掛けます。
レイヤーを右クリックして「黒のマスクを追加」を選択します。
マスクがかかってこのレイヤーの効果が見えなくなりました。
マスクを塗る
レイヤーからこのマスクを選択した状態でモデルを塗るとマスクされた部分が表示されます。
ちなみに、モデルではなくUV展開されたテクスチャを塗ることもできます。
この場合にはPROPRETIES - ペイントのアラインメントをUVにしておきます。
(これをやらないとブラシサイズが定まらず塗りづらい)
テクスチャを塗る場合もマスクを選択した状態で左ドラッグするだけです。
ポリゴン単位で塗る
また、ポリゴン毎に塗ることもできます。
この場合、ツールバーからPolygon Fillを選択します。
このモードで左ドラッグをするとポリゴン毎に塗ることができます。
特定のマップだけを塗る
次に特定のマップだけ塗ってみます。
いま、以下のように塗られているとします。
目の部分に木のHeightが適用されてしまっているので、これを上書きして消します。
この場合まずレイヤーを追加し、表示モードをHeightにしてブレンドモードを通常にします。
次にPROPERTIES - ペイントから有効なマップをheightだけにして、Heightの値を0に設定します。
後は普通に目の部分を塗りつぶします。
目の部分だけHeightがゼロになりました。
もちろん塗りつぶしレイヤーとマスクでやってもOKです。
書き出す
それでは今回作ったテクスチャを書きだします。
まずファイル > Export Texturesを選択してエクスポートウィンドウを開きます。
ConfigにUnity 5(Standard Metallic)を選択するとUnityのPBR用のテクスチャセットが書き出されます。
ただしこのままだとHeightマップが書き出されないようなので、CONFIGURATIONタブで設定します。
下図のようにUnity 5(Standard Metallic)を選択して、プリセットコピーボタンを押します。
その後マップ追加ボタンをクリックします。
マップが追加されたら名前を変更し、RGB欄にHeightプロパティをドラッグ&ドロップ、Gray Channelを選択します。
エクスポートタブに戻って先ほど作ったConfigを選択しなおすと、Heightマップも対象に入っていることが確認できます。
この状態でエクスポートボタンを押すと各テクスチャがエクスポートされます。
Unityに取り込む
最後にこれをUnityに取り込んでみます。
まず、先ほどのマップを全てインポートします。
Normal MapだけはInspectorからTexture TypeをNormal mapにしておきます。
次にStandardShaderをアサインしたマテリアルを作成し、先ほどのマップをアサインします。
後はこれを別途インポートしてFBXのマテリアルとして設定するだけです。
これをシーンに配置してライトをベイクすると、以下のようにレンダリングされます。
無事Unityに取り込むことができました。