配布しているsbsarも増えてきたのでやや濃いところを調べる。
外部sbs
あるsbsに外部sbsからノードを読み込んでいたとする。それがなくなったらどうなるか。

次回起動時にsbsが見つからないよと警告が出る。パスをつけなおすこともできる。
sbsarとしてパブリッシュしている場合は内部に外部sbsの内容も組み込まれているのでもとsbsがなくなっても問題は起こらない。
外部リソース
画像で確認。画像をsbsに読み込む場合、埋め込みとリンクの場合があるが、元ファイルがなくなって問題になるのはリンク読み込みの場合。と言っても埋め込みの場合もsbsの横にリソースフォルダができてそこに画像を置いているだけっぽいので、その画像をけすとやはり問題が起こる。


リンクアセットはパスを張りなおすことができたが、読み込みアセットはこのようなUIが見当たらなかった。リソースフォルダにファイルを復帰させればいいんでしょ思ったが、うまく行かなかった。SubstanceDesignerを再起動してもダメ。
とするともしかした画像は埋め込まないで、sbsファイル近くのフォルダにコピーしたものをリンクしたほうがいいのかもしれない。どうしようもなくなったらPythonScriptで出番かも。
画像の場合もsbsarにパブリッシュ済みの物は問題にならない。配布するんだから、当たり前だ。
sbsの依存まるごと保存

リンクしているsbsがアップデートして仕様が変わったりバグが入り込むと、それを読み込んでいるsbsが誤動作を起こしてしまうはずだ。それを防ぐためか、現在の依存を全部詰め込んでセーブする機能が存在した。複雑なグラフはこの形式でsbsを保存して配布するといいのかも。
自分の場合はgit管理しているので、ある時点のスナップショットを得ることができ、依存問題が起きたら、それでなんとかするつもりでいる。記事中に記載しているURLもある時点のコミットでのリポジトリリンクである。あれ、最新ファイルじゃない!みたいな混乱がでるかもしれないが。
さらなる疑問
- sbsに読み込んでいたのがsbsarだったら?
- 読み込んでいるsbsarの中のsbsarがID競合したら?
- 競合したsbsarの片方がmissingしたら?
うーんややこしい。時間があれば今後それぞれ。
予想としては、多分sbsar内のsbsar同士は競合しない気がする。
→ その後、続きの検証をした。


