SubstanceDesigner:リンク切れsbs/アセット調査

SubstanceDesigner:リンク切れsbs/アセット調査

配布している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同士は競合しない気がする。

→ その後、続きの検証をした。

Previous post SubstanceDesigner:画像を任意の数だけ連結するノード
Next post SubstanceDesigner:逆極座標変換を重ね掛けした表現