データのリンク読み込みとライブラリオーバーライド

データのリンク読み込みとライブラリオーバーライド

 YouTubeにライブラリオーバーライドの基本操作に関する動画をアップしました。本記事ではその動画の補足解説を行います。
(画像クリックでYouTubeを開きます)


YouTubeの動画を見ながらこの記事を読んでいただくことをお勧めします。

ライブラリオーバーライド

 ライブラリオーバーライド(Library Overrides)は外部のデータをリンク読み込みした際に、そのデータを動かせるようにする仕組みです(リンク読み込みしただけではデータを動かすことはできません)。その仕組みにはblender 2.80 以前ではプロキシという機能が使われていましたが、2.81 以降はライブラリオーバーライドに置き換わりました(2.91 の時点では移行期間ということで両方の機能が並存しています)。

ライブラリオーバーライドの基本操作

 ライブラリオーバーライドは3つの方法で追加することができますが、今回の動画ではそのうちの最も簡単な方法を取り上げています。

1.リンク元のデータの設定

 シーン直下の階層にコレクションを作り、その下にリグやメッシュデータをコレクション分類し入れておきます。コレクションは複数階層になっていても構いません。またカスタムシェイプ用メッシュ等のリグヘルパーはこのコレクション外でも構いません、リンク先で自動で引っ張ってきます。

2.リンク先での操作

 ファイルメニュー>リンク…と選択し、読み込みたいファイルを開きます。リンク機能ではコレクションやオブジェクトなど様々な単位で読み込み可能ですが、今回はコレクション単位でデータを読み込みます。

 リンク読み込みされたデータは、一見するとインスタンス(虚像)のような挙動を示します。茶色のアウトラインで強調され、一体化されているため中を開いてみることもできません。もしもコレクション内コレクションで複数のデータが内包されている場合はそれらが全て重なって表示されます。リンク先が単一のメッシュデータでない限りこの状態ではほぼ使い道がありませんが、ここにライブラリオーバーライドを追加することで、中のデータを利用することができるようになります。

 ライブラリオーバーライドの追加方法は、オブジェクトモードで読み込んだコレクションの塊を選択し、3Dビュー内のオブジェクトメニュー>関係>ライブラリオーバーライドを作成…を選択します。するとOK?と書かれたダイアログが出るのでMake Library Overridesの文字をクリックして実行します。

※ライブラリオーバーライドの作成は、他にアウトライナーで対象物を選択したのち右クリックで出るメニューから選んで追加する方法と、オブジェクトパネルから追加する方法の2種類がありますが、これらの方法はコレクション単位で読み込んだデータには使うことができません。これらの2種類の方法はオブジェクト単位でリンク読み込みした場合に使用します。

シェイプキーとドライバ

 シェイプキーとドライバについては過去記事で触れていますので、そちらを参照してください。動画では、シェイプキーの値をドライバを介してボーンで制御する方法を紹介しています。

 今回考えたいのは、ライブラリオーバーライドを使えばリンク先のシェイプキーも操作可能になるのか、という点です。結論から言うとシェイプキーの値はライブラリオーバーライドを使って動かすことはできません

 基本的にライブラリオーバーライドが変更できる範囲はオブジェクトのレベルまでで、それ以下のデータレベル(※過去記事の第1項を参照)での変更(編集モードでの変更)は許可されていません。これはライブラリオーバーライドの仕様というよりも、それ以前のリンク読み込みそのものの仕様です。そしてシェイプキーはデータに帰属(緑色アイコンのデータパネル内に存在)する要素なので、リンク先からは動かせないのです。

 しかしそれでは使い勝手が悪いので、それを回避するのがボーンとドライバを使った方法です。
ボーンの操作はポーズモードで動かすことができるので(ポーズモードはライブラリオーバーライドを追加することで、リンク読み込み先で操作が許可される)、間接的にシェイプキーも動かすことができるというわけです。

もしかしてバグ?

 動画の最後におまけとして謎の挙動を紹介しています。前述の通り、blenderの設計思想から考えると本来ならリンク先から直接シェイプキーの値を変更することは許可されていないはずなのですが、なぜかシェイプキーの中にドライバで操作可能なキーが含まれていると、ドライバが入っていない他のキーまでも直接操作が可能になっています。おそらくこれはバグだと思うので将来的に修正される可能性があります。あくまでバグ技と認識して多用しないようにする方が良さそうです。

ライブラリオーバーライド追加したのちにシェイプキーにドライバを組み込むと…

 動画では、シェイプキーにドライバを設定したのちに、改めてリンク読み込みを行いライブラリオーバーライドを追加しています。では、もしライブラリオーバーライドを追加したのちに、シェイプキーにドライバを適用したらどうなるでしょうか。

 これも結論から言いますと、この順で行うと後から追加したドライバがうまく機能しません。

 ライブラリオーバーライドのリセットや関係性の再同期など色々と試してみましたが、結局動くようにはなりませんでした。もしかしたら私が試していない方法で、機能させることができるかもしれませんし、あるいは単純なバグのために機能していないのかもしれません。先日の記事でも触れたように、ライブラリオーバーライドとドライバに関しては、どうにも胡散臭い挙動が確認されているので、バグの可能性も十分あると思っています。

 また、オブジェクトをリンク読み込みして、それにライブラリオーバーライドを追加した時の挙動も色々とおかしな部分が残っています(関係性をリセット、または再同期するとオブジェクトがアウトライナー上に二重化されて表示されてしまう)。まだまだ不具合を内包していると考えて、いつでもリンク読み込みの前の段階にまで戻せるように、バックアップは必ずとっておくのが良いでしょう。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

限定特典から探す

記事を検索