.sbsarファイルは7z圧縮されていたので中身をいじってみた:Substance Designer

.sbsarファイルは7z圧縮されていたので中身をいじってみた:Substance Designer

sbsarファイルは7zアーカイブファイル

sbsarファイルは’sbsファイルをパブリッシュしてできるバイナリファイルである。ソースであるsbsファイルを持っていないsbsarファイルに関してどういうアトリビュートやメタデータを埋め込まれているのか知りたくバイナリエディタで確認していたところ、ファイルの出だしが7zで始まる7zアーカイブファイルと同じであることに気づいた。

試しにsbsarの拡張子名を7zに変更すると問題なく解凍できる。中から出てくるのはフォルダ3階層とマテリアルそのもののファイルとサムネイル画像と各種パラメータが記述してあるXMLファイルである。下記は Substance Painter に標準でついてくるskin vegetation を解凍したもの。

マテリアル本体であるsbsasmファイルは結局バイナリであるが、XMLの中身はテキストエディタ等で確認できる。パラメータやメタデータの類がたくさん設定されている。ツールキットや Substance Painterもこの情報を見ている。

編集して7z圧縮しなおしてみる

sbsasmファイル以外は編集して圧縮しなおしても動きそうだ。という事でやってみる。アイコン画像は512×512サイズだった。フォーマットとサイズはそのまま内容を書き換えてみた。

XMLについてはグラフ設定のラベル名を日本語に置き換えてみた。

    <graph pkgurl="pkg://skin_vegetation" label="すきんべじていしょん" graphtype="material" keywords="painter;base;material;organic;vegetation;vegetable;green;food;plant" category="Organic" author="Adobe" physicalSize="30,30,0.9" icon="icon1455131994.png">

これらを再度7z圧縮をして(バックアップを取ったうえで)Substance Painter のマテリアルフォルダに上書きした。

問題なく Substance Painter が認識した。

活用シーンの考察

編集して上書きする事が役立つシーンがあるだろうか。sbsar を書き出したソースsbsファイルがあるのなら、そちらを編集してsbsarを書き出し直すのがもちろん正しい。ただsbsarしか手元にない場合で、パラメータのデフォルト値を変えたいとか、わかりやすいサムネイル画像に変えたいとか名前を変えたいなどの場合に出番があるかもしれない。

自分のそもそものやりたかった事は Substance Painter や Substance Player で開かなくても確認したい、それらで開いても確認できないメタデータを確認したい、という所なので解凍して中身が確認できるだけでも満足である。

sbsファイルはXMLファイル

おまけ情報だが、sbsファイルの中身はXMLである。ある程度ならSubstanceDesignerを立ち上げなくてもテキスト編集で更新できたりする。テキストやデフォルトパラメータの更新ぐらいなら手作業でもできてしまう。むしろテキストエディタのほうが便利な事もあるかもしれない。

Previous post SDF画像を普通にテクスチャとして使ってみた
Next post Genericフィルタの挙動とグレースケールを扱う場合の注意点 : サブスタンスペインター