Substance Designerを使ってSubstance Painterのテキストアルファ素材として使えるフォントを追加する

#はじめに
※この記事で紹介する方法は**Substance Designer**が必須です。

Substance Painterを使っていると、テキストをアルファとして使いたいけどデフォルトで用意されているフォントでは満足出来ない（特に日本語）という場面があると思います。
![2021-07-17_19h33_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/a5b5cea9-e762-57d5-ad79-d9a647716814.png)
デフォルトで用意された日本語フォントはこれだけしかなく味気ないですね。
もっとかわいいフォントにしたい…例えばこんな感じに…
![2021-07-17_20h30_35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/9ef592e3-f812-da88-26b4-53f0d781f0c3.png)
今までは画像編集ソフト（Gimpとか）でテキストをアルファイメージに変換してSubstance Painterに持ってきてペイントするといった回りくどい方法を使っていました。

しかし、Substance Designerがあれば好きなフォントでプロパティから自由にテキストを編集できるアルファ素材を作れるという情報を得たので実際に試してみました。
![2021-07-17_19h57_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/965c98e5-8eba-3161-b903-3f1d3562038a.png)
この記事では、Substance Designerを使ってSubstance Painterで使えるカスタムフォントのアルファ素材の作り方についてまとめます。

#対象とする読者
* Substance Painterでブラシを使ったテクスチャペイントが出来る程度の知識がある。
* Substance Painterでテキストアルファとして使いたいフォントがある。
* Substance Designerを持っている（こちらは使い方がわからなくても構いません）。
* 各操作・機能の細かい解説は必要無いからとにかくSubstance Painterにフォントを追加したい。

##筆者の作業環境
* Substance Painter 2020
* Substance 3D Designer 2021

#作業環境の設定
筆者の作業環境ではSubstance Designerを英語表示にしています。
理由としては英語のチュートリアルを参考にするときに環境を合わせることでわかりやすいということと、**アプリ内で日本語入力が出来ないため検索出来ないノードがある**[^1]ためです。
[^1]: これは自分が知らないだけで回避策があるかもしれません。

本記事を読むにあたっても英語表示に環境を揃えると読みやすいと思うので以下に手順を示します。
（この作業は必須ではありません。）

まずツールバーから「編集」＞「環境設定…」を選択します。
![2021-07-19_12h55_59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/00831bd6-3df9-704c-f23c-236bcca864b3.png)
言語からEnglishを選択して適用、OKを押してSubstance Designerを再起動してください。
![picture_pc_01086ba02308b5bb405706a4cd3a6504.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/0dccff9b-7889-a1d2-04d9-f401a880e890.png)
以上で再起動時に英語表記になるはずです。

#アルファ素材作成の手順
まずはSubstance Designerを起動してプロジェクトを作成します。
![2021-07-19_12h53_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/ec994cc6-f5f8-c505-f1d1-a37e6d71ff6c.png)
テンプレートからEmptyを選択、グラフ名を入力してOKを押します。
今回は「F66Waffle」[^2]というフォントを追加したかったので、「Font_F66Waffle」というグラフ名にしました。
[^2]: ワッフルフォントは[こちら](https://pcshop.vector.co.jp/service/catalogue/fonts66/setsugk.php)から購入出来ます。
グラフ名の頭にFontを入れておくことでフォント用のグラフであることがひと目で分かる上に、Substance Painterにインポートしたときのシェルフ内でもデフォルトのフォントアルファと同じ並びになるので探しやすくなります。
![2021-07-19_12h54_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/1004a2e5-addf-c39c-9adf-900592fa7274.png)

##使用するフォントの指定
グラフエディターが開いたらOutputノードとTextノードを追加します。グラフエディター上のアイコンからドラッグ＆ドロップで追加出来ます。
![2021-07-17_19h20_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/0c7300cf-6638-0c4a-c1c7-aeaa09580e15.png)
Textノードをクリックしてプロパティを表示、Specific ParametersのFontから目当てのフォントを選択します。
フォントにBoldなどの複数のスタイルが用意されている場合もとりあえずデフォルトで使いたい一つだけを選択してください。
スタイルの追加は作業の効率化のために後半で行います。
今回例として追加するF66Waffleフォントには「E / E Petit / U / U Forte」の4つのスタイルが用意されていますがとりあえずその中から一つ選んでいます。
![2021-07-17_19h20_35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/4a67de0b-3a61-4944-528a-f9ef5ae46b41.png)

##Substance Painterで編集可能なパラメータとして設定
Substance Painter上でテキストを編集するためには、事前に編集可能なパラメータとして設定する必要があります。
ここからはTextノードのパラメータをSubstance Painterで編集できるようにするための準備を行います。

Specific ParametersのTextの項の右上のプルダウンをクリックして「Expose as new graph input」を選択します。
![2021-07-17_19h20_44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/0ce7063c-b9cb-c8a2-7bf6-c48911c62150.png)
下記のようなウィンドウが表示されるので「Default Text」にデフォルトで表示して欲しいテキストを入力します。
なんでもよいのですが、ここではわかりやすいようにフォント名にしておきました。
![2021-07-17_19h21_00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/3a55ed6a-1e72-7016-278e-c578af17bb94.png)
これでSubstance Painter上でもテキストを編集できるようになりました。
しかし、実際にSubstance Painter上で操作するとわかることですが、サイズやポジションなどもSubstance Painterで細かく調整したくなるはずです。続けてそれらのパラメータも編集できるようにしましょう。

先程の手順と同様にFont Sizeの項でも「Expose as new graph input」を選択します。
![2021-07-17_19h21_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/d463769c-1449-5869-9467-391fe5ece303.png)
同様にウィンドウが表示されますが今回は特に変更は必要ありません。
そのままOKを押して進みましょう。
![2021-07-17_19h21_20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/ecc443ec-c5ef-9582-cdbe-841c51029433.png)
同じ手順でAlignmentの「Expose as new graph input」を選択すると次のようなウィンドウが表示されます。
Alignmentは「Left / Center / Right」の三種から選択したいので、パラメータの選択方式をドロップダウンに変更します。
「Type/Editor」の右側のドロップダウンから「Drop Down List」を選択します。
![2021-07-17_19h21_46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/c41690e2-8a60-45e1-6e03-8b3abb5f5c60.png)
パラメータがスライダーからリストに変わるので＋マークをクリックしてリストを3個に増やします。
リストのテキストボックスに上から順に「Left / Center / Right」と入力し、CenterのチェックボックスをクリックしてOKを押します。
![2021-07-17_19h22_13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/19b62290-be2a-1f88-fefc-8d5e57cf34e8.png)
Positionも「Expose as new graph input」を選択します。
特に変更の必要は無いのでOKを押して進みます。
![2021-07-17_19h22_24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/595844ac-5abc-8b98-e551-3411b758aff6.png)
ここまででTextノードのパラメータのExpose作業は終了です。

##フォントスタイルの追加
フォントスタイルを追加する作業を行います。
今までのパラメータと同様にFontパラメータもExposeしたいところですが、仕様上できないようなのでフォントスタイルの数だけTextノードを追加、それらを複数のノードをスイッチするノードで中継して出力することで対応します。

**（重要）ここまでの作業で編集してきたTextノードを選択してCtrl+Dで複製してください。**
新規にTextノードを追加してしまうと今までExposeしてきたパラメータをすべて手動で対応させる作業が必要になり手間が増えます。
![2021-07-17_19h22_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/28a6b68f-5c17-b73d-39bc-70e94b88c43d.png)
追加したTextノードを選択し、Specific Parametersから追加したいフォントスタイルを選択します。
今回の例では2つ目のノードで「F66WaffleEPetit」を選択、同様の操作で3つ目で「F66WaffleU」、4つ目で「F66WaffleUForte」を選択しました。
![2021-07-17_19h23_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/81f99a50-7603-02d2-7db6-27fb45c8f8ea.png)
増やしたフォントスタイルを切り替えられるように切り替え用のノードを追加します。
グラフエディタ内でスペースキーを押すと検索ボックスが表示されるので「Switch」で検索し、候補から「Multi Switch Grayscale」を選択します。
![2021-07-17_19h23_32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/4f8992c4-d316-c394-4e16-323105c35046.png)
Multi Switch GrayscaleノードのパラメータのInput Numberをフォントスタイルの数だけ増やします。
![2021-07-17_19h24_00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/e308b0b1-f173-cbe0-eb66-e1de37858f62.png)
ノード切り替えのパラメータをSubstance Painterでも変更できるように、Input Numberのすぐ下にあるInput Selectionの「Expose as new graph input」を選択します。
![2021-07-17_19h24_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/11595fcf-ae89-eec9-d4f3-46f31391daf2.png)
IdentifierとLabelはデフォルトのままだとわかりにくいので適当に改名します。
特にLabelの項はSubstance Painterに持っていったときにパラメータ名として表示されるのでこれが何をするパラメータなのかわかるような命名をするとよいです。
ここでは、「font_style」と「Font Style」と命名しました。
また、フォントスタイルもAlignmentと同様にドロップダウンリストから選択する方式が適しているのでType/Editorから「Drop Down List」を選択します。
![2021-07-17_19h25_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/e94bcf70-5e6c-8cdb-6354-e373e96ab1f4.png)
＋マークをクリックしてフォントスタイルの数だけリストを追加し、**ノードの順番と同じようにリストに名前を入力**します。
**（重要）Input Selectionパラメータは1から始まるのでリストの数字も1から始まるように調整してください。**
調整が完了したらOKを押してください。
![2021-07-17_19h25_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/e4018400-f90d-a0e1-503d-4d6fb3806a55.png)
これで各ノードの調整は終わりました。
各TextノードをMulti Switch Grayscaleノードへ、先程のリストと同じ順にドラッグ＆ドロップで繋げて行きます。
すべて繋いだらMulti Switch GrayscaleノードをOutputノードへ繋ぎます。
![2021-07-17_19h26_24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/ab6983b7-7a8b-dc6b-92b8-b0341845336b.png)
これでグラフエディターでの作業は完了です！
エクスポートする前にノードグラフのパッケージを保存しておきましょう。
まだSubstance Designerは終了しないでください。
![2021-07-17_19h27_36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/0aba7eb9-ed86-029b-5342-3b44b2b27ed3.png)

##アルファ素材をSubstance Designerから出力
早速Substance Painterで使えるようにしましょう。

パッケージを右クリックして「Publish .sbsar file」を選択します。
![2021-07-17_19h27_36_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/8468487c-0fec-e0ef-1144-e0ca325467fa.png)
ファイルパスを指定して保存します。
保存したファイルは後で使うので分かる位置に保存してください。
![2021-07-17_19h28_25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/59a4bf66-dbc7-ea3b-a966-ee52a8ba50da.png)
![2021-07-17_19h28_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/30eb23ad-751b-7adb-9509-c870ba0f949a.png)
以上でSubstance Designerでの作業は終了です。
Substance Painterを起動して使えるか試してみましょう。

##Substance Painterにインポート
Substance Painterを起動してテスト用のプロジェクトを開きましょう。
先程の「.sbsar」ファイルをSubstance Painterのシェルフにドラッグ＆ドロップします。
![2021-07-17_19h29_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/eb3afcaf-b28e-06b5-9929-c34222ec1600.png)
インポート用のウィンドウが開くので右上のドロップダウンから「alpha」を選択します。
![2021-07-17_19h29_26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/63458142-445c-8b6f-5e2b-e2ab5da2bfab.png)
右下のドロップダウンから素材の保持期間を指定します。
今回はテスト目的なのでcurrent sessionを選択します。
![2021-07-17_19h29_34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/65d8ae66-bae3-104e-9989-05bab6b9bdf0.png)
インポートできるとシェルフにアルファとして追加されているはずです。
![2021-07-20_20h49_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/2818cead-4193-7e07-b176-8f8e3ae333e0.png)
早速ブラシとして使ってみましょう。
Exposeしたパラメータがちゃんと表示されることを確認します。
![2021-07-17_19h34_43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/97de8130-e3a3-adf9-65f7-6be1b7dcf157.png)
ブラシの設定を、「Color：白」「Height：-0.2」にしてペイントしてみます。
![2021-07-17_19h33_31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/ef343d71-3507-ede3-5b45-c98e8fce35fb.png)
ちゃんと反映されています！他のフォントスタイルも試してみましょう！
![2021-07-17_19h34_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784160/cf8a431a-ff45-77cc-d398-df4a5d52bf58.png)
若干わかりにくいかもしれませんがきちんと4種類のスタイルでペイント出来ました。

#まとめ
本記事ではSubstance Designerを使ってSubstance Painterにカスタムフォントのテキストアルファ素材を追加する手順を解説しました。
今回は日本語のフォントで試しましたが、基本的には英語フォントでも同様の手順で追加出来ます。
使いやすいフォントをいくつかシェルフに用意しておくと画像編集ソフトとSubstance Painterの往復が減り作業の効率が上がりそうですね。