Substance Painterのプロジェクトテンプレートは、「毎回やっている設定を丸ごと保存するもの」ではない。公式が定義しているのは5項目で、新規プロジェクト画面で選ぶ解像度や法線マップ形式はその外側にある。しかもプロジェクト設定のほうがテンプレートより強い。
実機の Substance 3D Painter 12.1.3 から、同梱の翻訳リソースにあるUI説明文、同梱テンプレート26件の中身、そして同梱のPython APIドキュメントの3つを突き合わせた。以下はその実測値だ。
テンプレートが定義するのは何?
新規プロジェクト画面のテンプレート欄には説明が付いていて、そこに5項目が列挙されている。アプリの文言そのままだとこうなる。
| 英語UI | 日本語UI(公式表記) |
|---|---|
| Texture Sets | テクスチャセット |
| Display | 表示 |
| Baking | ベイク処理 |
| Shader resources | シェーダーリソース |
| Environment Map | 環境マップ |
ベイク設定とシェーダーが含まれているのが実務的には大きい。ベイクの出力サイズやアンチエイリアスを毎回入れ直している人は、ここを固めるだけで手数が減る。
説明に無いものもファイルには入っている
同梱テンプレート(.spt)の中身を直接読むと、上の5項目に加えて書き出し設定が入っている。たとえば Blender.spt はこうだ。
| キー | 値 |
|---|---|
defaultExportPreset |
Blender (Principled BSDF) |
fileFormat / bitDepth |
png / 8 |
dilationDistance / paddingAlgorithm |
16 / infinite |
dithering / exportMeshTessellation |
false / false |
他のテンプレートも同じ構造で、Unreal Engine.spt は Unreal Engine (Packed)、Unity HD Render Pipeline (Metallic Standard).spt は同名のプリセットを指していた。入口でテンプレートを選べば、出口の書き出しプリセットも決まるということだ。法線規格の取り違えはSPからBlenderへの書き出しで扱ったが、テンプレートから作れば最初から回避できる。
新規プロジェクト画面の設定はテンプレートより強い
同梱のPython APIドキュメントには、プロジェクト作成の項に「Project settings override the template parameters.(プロジェクト設定はテンプレートのパラメータを上書きする)」と明記されている。
そのプロジェクト設定として並ぶのは次の4つだ。テンプレートで何を保存しても、ここは作成のたびに選び直すことになる。
| 設定 | 日本語UI | 値 |
|---|---|---|
normal_map_format |
法線マップ形式 | OpenGL / DirectX |
tangent_space_mode |
(タンジェント計算) | PerVertex / PerFragment |
project_workflow |
UV タイルのワークフローを使用 | UVTile ほか |
import_cameras |
(カメラの読み込み) | true / false |
ドキュメントの解像度も別枠だ。説明文には「各テクスチャセットに対するプロジェクトのデフォルトのテクスチャ解像度。この値は、テクスチャセット設定で後からいつでも変更できます」とある。後から変えられるので、テンプレートで固める優先度は低い。
⚠️ UVタイルワークフローだけは後から変えられない。アプリは「プロジェクトの作成後は、UV タイル設定を変更することはできません。」というメッセージを2種類持っている。解像度と違ってやり直しが効かないので、ここだけは作成前に決める。UDIMを使うかどうかは、テンプレート任せにせず毎回確認したほうがいい。
法線形式とタンジェントの説明にBlenderは出てこない
この2つはアプリ内に説明文が付いているが、名指しされているのはUnreal EngineとUnityだけだ。文言はこうなっている。
- 法線マップ形式:「Unreal Engine は DirectX を使用し、Unity は OpenGL をデフォルトで使用します」
- タンジェント(従接線):「Unreal Engine では、この設定を有効にする必要があります。Unity では、この設定を無効(または、HDRP ワークフローを使用している場合は有効)にする必要があります」
Blenderについては書かれていない。ただし判断材料はある。同梱の Blender (Principled BSDF) 書き出しプリセットは法線の参照先が Normal_OpenGL になっているので、プロジェクト側もOpenGLで揃えるのが整合的だ。ここは「公式が指定している」ではなく「同梱物から読み取れる」という強さの話なので、区別しておく。
自分のテンプレートはどう作る?
プロジェクトを作り込んだ状態で 「テンプレートとして保存…」(Save as template…) を実行する。制約はアプリのメッセージから読める。
- 拡張子は
sptでなければならない(「テンプレートURLには拡張子として『spt』が必要です」) - 同梱テンプレートは上書きできない(「テンプレートを保存できません : パス『%1』は読み取り専用です」)。Program Files配下は読み取り専用なので、別名で保存することになる
- シェルフの追加・削除はプロジェクトを閉じてから(「シェルフの追加に失敗しました。現在のプロジェクトを閉じる必要があります」)
保存先はユーザー側のシェルフ配下だ。当機では Documents\Adobe\Adobe Substance 3D Painter\assets\ に17個のフォルダがあり、export-presets にはREADMEも置かれているが、templates フォルダはまだ存在しない状態だった。
🔎 実測した範囲:翻訳リソース(.qm)のUI説明文、同梱テンプレート26件(.spt・HDF5)のJSON設定ブロック、同梱Python APIドキュメントの3つを読んだところまでが実測値だ。テンプレートを実際に保存して新規プロジェクトに適用する検証はしていない。なお .spt は13MBのHDF5で、JSON設定ブロックに解像度や法線形式のキーは見つからなかったが(検出できるはずの既知キー4件は、同じ方法でいずれも検出できている)、バイナリのデータセット側に無いことまでは示せていない。「上書きされる」の根拠はAPIドキュメントの明記のほうだ。
まとめ:固めるところと毎回選ぶところを分ける
- テンプレートが定義するのは5項目(テクスチャセット/表示/ベイク処理/シェーダーリソース/環境マップ)
- ファイルには書き出しプリセットも入っている。入口を選べば出口も決まる
- プロジェクト設定はテンプレートを上書きする。法線形式・タンジェント・UVタイル・カメラは毎回選ぶ
- 🔴 UVタイルだけは作成後に変更できない。解像度は後から変えられる
- 同梱テンプレートは上書き不可。
spt拡張子で別名保存する

コメント