Blender3.2でのLinkを使用したキャラクターの読み込み方
以前は Link と Proxy を使用して Maya でいうところの Reference のようなことをできましたが
Blender3.2 からは Make Library Override という機能に置き換わっていました。
ので、今回はこれを利用したリグつきキャラクターの読み込みを試してみます。
https://booth.pm/ja/items/2165393
なお、今回のテストには、こちらのコマット通販様の素体モデル SOTA を使用しました。
Collection を作る¶
まず、Link を前提にした構造にコレクションを作成します。
Blender の Link は、Maya とは違い Data 単位(Object とか Armature とか Mesh とか)で Link します。
ですが、キャラクターの場合はそれだといろいろと困るので
読み込みのたーげっとにするためのコレクションを作成します。
このように、キャラクター名の Collection を用意しておきます。
(スクリプトとかで自動化することを考えるならば、ここの名前は統一のほうがいいのかもしれない?)
Link する¶
次に、キャラクターの.blend ファイルを Link します。
File > LInk... を選び、
.blend ファイルを選び、 Collection から
作成した Collection を選びます。
読み込むことができました。
このままだと、変更することができない上に
Object 下に Collection があるので、Armature や Mesh が表示されていません。
MakeLibraryOverride¶
次に、読み込んだモデルでポーズを付けられるようにします。
まず、Link した Collection を選び、
Object > Relations > Make Library Override... をクリックします。
あるいは
Collection の ID Data > Make Library Override Hierarchy を選びます。
Override を作成することができました。
すると、Armature が選択できるようになるので、PoseMode にして
あとは普通に動かすことが可能になります。
LibraryOverride を使用した場合は、オーバーライドした箇所の Property が
このように表示されます。
あるいは、Outliner に「Library Overrides」が追加されていて
Override された Block と Property を確認できます。
オーバーライドすれば、オブジェクトを動かしたりアニメーションしたりできますが、
Reset Library Override Hierarchy をすると、元の値に戻すこともできます。
まとめ¶
以前の Proxy だと Collection 内の Armature だといまいちうまく動かなかったのですが
※Collection を Link するとそれ以下が表示されず Armature を選択できない
それを何とかするには Object 以下の Collection を移動しないといけなかった
今回の LibraryOverride を使用すると、Hierarchy の場合は、指定の DataBlock(Object でも Armature でも)
をオーバーライドに指定できるようなので、今回のようにキャラクターなどの複数の Data を持つ Collection でも
Link して扱えるようになります。
今回はキャラクターで試しましたが、それ以外にも
アセットブラウザの Link で読み込んだ場合も
同様の方法で編集可能にできます。
ただし、ブラウザからドラッグ&ドロップした場合は
Appendの場合は設置して置くことができますが、Linkの場合はドロップしたタイミングでは編集不可なせいで
原点にいったん置かれてしまうようです。
アセットブラウザからLinkする場合はほぼOverride必須だとおもうので、
あらかじめOverrideを入れてくれてもいいのになぁとは思いますが、きっとこれから改善されていくはず。
Linkに関してはDataBlock単位で細かくできますが、
とはいえアセットを扱う場合はある程度塊で扱いたい...というわけで、
基本は指定の名前のCollectionをLinkするためのエントリーポイントにする
そのうえで、そのCollectionに対してOverrideすれば
MayaのReferenceと同等の運用はできそうです。
LinkやDataBlockの構造の詳細はもう少し調べる必要がありますが
だいぶ惜しいところまできてる?きがします。