Substance 3D Painter 12.1 から、テンプレートを選ばずに作った新規プロジェクトは OpenPBR になった。見た目には「新規プロジェクト画面の先頭が ASM から OpenPBR に変わった」だけだが、パラメーター名が変わり、ASM に無い項目が増え、その一部は既定でUIにすら出ない。11系までのチュートリアルと手順が食い違うのはここが原因だ。
OpenPBRが既定になると、まず何が変わる?
新規プロジェクト画面の先頭の項目が「ASM」から「OpenPBR」に変わった。それだけで、何も選ばなければ別のシェーダーになる。
公式リリースノートいわく「テンプレート無しで作成された新規プロジェクトは OpenPBR シェーダーを使う。新規プロジェクトウィンドウの先頭の項目は ASM ではなく OpenPBR と表示されるようになった」。実装は OpenPBR 1.1 仕様だ。
OpenPBR はソフトをまたいで同じ見え方を保つためのマテリアル定義の共通規格。従来の既定 ASM(Adobe Standard Material)は Adobe 独自のモデルだった。
ASMとOpenPBRで名前が変わったパラメーターは?
同じ効果なのに呼び名が違うものが4つある。検索してもヒットしないのはこれが理由だ。
同梱シェーダー open-pbr.glsl は各パラメーターに ASM 側と OpenPBR 側の名前を両方持っている。突き合わせるとこうなる。
| ASM での名前 | OpenPBR での名前 | 日本語UI |
|---|---|---|
| sheen | fuzz | ファズ |
| scatter | subsurface | サブサーフェス |
| specular_edge_color | specular_color | スペキュラ |
| absorption_color | transmission_color | 透過 |
いちばん引っかかるのは Sheen → Fuzz だ。布の起毛表現を「Sheen」で探しても OpenPBR プロジェクトには無い。anisotropy・specular_ior・coat・opacity は両モデルで同名なのでそのまま通じる。
OpenPBRで増えたパラメーターは?
ASM 側に対応する名前が無い=OpenPBR で初めて触れるようになった項目が並ぶ。
| グループ | 増えたもの |
|---|---|
| 薄膜(Thin-film) | 有効化・厚さ・屈折率。シャボン玉や焼き色の虹 |
| 透過(Transmission) | 深度・散乱・分散スケール・アッベ数(既定でUIに出ない) |
| サブサーフェス | 半径・散乱異方性 |
| コート | 暗くする(darkening)・コート異方性 |
| ベースサーフェス | ディフューズラフネス(マットさ) |
透過の細かい設定が見当たらないのはなぜ?
シェーダーの宣言に「レイトレーシングのみ(Raytracer only)」というグループがあり、その中身は既定でUIに出ない。
同梱シェーダーのソースには Group of raytracer-only parameters, not visible in the UI.(=レイトレーサー専用の群。UIには表示しない)とコメントがある。表示スイッチ自体が visible: false・既定 false なので通常は並ばない。
中身は6項目(透過の深度・散乱・散乱異方性・分散スケール・分散アッベ数・薄壁ジオメトリ)で、6つとも説明文が同じだ。From MDL (not used by rasterizer yet).=MDL 由来、ラスタライザーではまだ使われない。
ガラスや液体の分散・散乱を OpenPBR の仕様どおりに詰めたい場合、これらは USD や MDL で外部レンダラーへ渡す前提の項目と読むのが妥当だ。当研究所はリアルタイム表示と外部出力の差を実測していないので、根拠は上のシェーダー宣言そのものになる。
一方ビューポート側の品質は「画質(Quality)」で決まる。4〜256 spp から選び既定は 16 spp。ディフューズ・スペキュラ・コート・ファズにかかるので、詰める段階だけ上げるとよい。
書き出しはどうなる?
同梱の書き出しプリセットにOpenPBR 用は1つも無い。受け渡しは USD が主経路になる。
12.1.3 の同梱フォルダ starter_assets/export-presets のファイルを数えると34個。うち名前に OpenPBR を含むものはゼロだった(同じ数え方で Unity 向けは4個ある)。名前だけでなく中身も走査した(fuzz・transmission_depth・specular_ior などOpenPBR固有のパラメーター名で34個すべてを検索して0件。同じ検索で Normal は33個ヒットするので検索側は生きている)。自作プリセットが増える環境では書き出し画面の一覧と一致しないため、ここは同梱ぶんの数として読んでほしい。公式は「テクスチャとマテリアルの書き出しは USD 形式で OpenPBR に対応する」としており、さらに「プロジェクト内のシェーダーが1つでも OpenPBR を使っていれば、書き出しは OpenPBR を既定にする」と書いている。Iray でのレンダリング用に新しい MDL も追加された。
ゲームエンジンへ渡すなら話は別だ。Unity の URP には OpenPBR のパラメーターを受ける口が無いため、テンプレートを明示して従来のワークフローで作る(Unityへの書き出し完全手順)。
USD・glTFを読み込むときの注意は?
12.1 から、シェーダーはファイルの中身から推測せず、プロジェクトテンプレートから決まるようになった。
公式の記述は「USD または glTF を読み込むとき、シェーダーはファイルの内容から推測されるのではなくプロジェクトテンプレートから設定される」。テンプレートを間違えると読み込んだマテリアルと噛み合わないが、そのときはログにメッセージが出る(「マテリアルとテンプレートのワークフローが一致しない場合、ログに報告される」)。結果がおかしいときはまずログを見る。
昔のチュートリアル通りに進まないのはなぜ?
11系までの解説はASM が既定だった前提で書かれているからだ。「そのまま新規作成」も「Sheen を上げる」も、いまは別のものを指す。
従来どおり進めたいなら新規作成時にテンプレートを明示する。同梱テンプレートは26個で、うち OpenPBR 系は Anisotropy / Coat / Fuzz / Subsurface Scattering の4つだった。
実機で確認した範囲:検証機に入っているのは 12.1.3(実行ファイルのバージョン情報と Creative Cloud のインストーラ記録 12.1.3.5709 の2信号)。パラメーター名の対応・グループ分け・「UIに出さない」宣言・説明文は同梱 shaders/open-pbr.glsl の宣言部、日本語ラベルは shaders_translation_ja.qm を直接読み出したもの。プリセット34個・テンプレート26個は同梱フォルダの実数。
Painter は 12.1.3 になってから一度も起動していないため、画面表示・レンダリング結果・レイトレーサー限定項目の挙動は確認していない。挙動の記述は Adobe 公式ドキュメントに基づく。
よくある質問
既存プロジェクトも勝手にOpenPBRになりますか
Sheenの項目が見つかりません
透過の深度や分散の項目が見当たりません
従来どおりASMで作りたいときは
まとめ:既定が変わったのは「何も選ばなかったとき」
OpenPBR 既定化でいちばん効くのは、何も選ばずに作ったプロジェクトの中身が変わったことだ。
- テンプレート無しの新規作成は OpenPBRになった
- Sheen→Fuzz、Scatter→Subsurface など名前が変わったものがある
- 薄膜や透過の分散などASM に無い項目が増えた
- 透過の細部6項目は既定でUIに出ない(シェーダー宣言いわく「ラスタライザーではまだ使われない」)
- 同梱の書き出しプリセットに OpenPBR 用は無く、USD が主経路
ベイク側の12.1新機能も同じタイミングで入っている(自動リベイクの使い方/ゆがみ補正ペイント)。質感づくりの設定値そのものはPBR設定値チートシートにまとめてある。

コメント