コンテンツにスキップ

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 を用意しておきます。
(スクリプトとかで自動化することを考えるならば、ここの名前は統一のほうがいいのかもしれない?)

次に、キャラクターの.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の構造の詳細はもう少し調べる必要がありますが
だいぶ惜しいところまできてる?きがします。