忘却まとめ

Blenderの中級者・上級者向けの踏み込んだ情報や、アドオン・3DCGに関する情報を記事にします

外部ファイルのコレクションやオブジェクトをリンクしたまま使い回す方法【ライブラリオーバーライド / リンク / 外部参照 / Blender】

Blender

投稿日:

まえがき

Blenderには、外部データを読み込む方法は大きく2つある。関係を保持したまま読み込みたい場合は、リンクを利用する。

トップバー > ファイルからアクセスできる。

  • アペンド
    • 外部ファイルを参照しない別のものとして、現在のプロジェクトにコピーする
  • リンク
    • 外部ファイルのデータを参照したまま、現在のプロジェクトに読み込む
    • そのままでは編集できない

リンク

複数のオブジェクトで構成されたデータは、関連するオブジェクトをすべてコレクションにまとめて保存してからリンクすると楽。

リンクされたデータを変更する

リンクしたデータのままは編集できないため、元データの方を変更する必要がある。

(ちなみにPythonコマンドや一部オペレーターで無理やりリンクしているデータの一部を編集することはできるが、レンダリングには反映されず、再度開いたときには変更内容は消えている)

  1. リンク元のプロジェクト内で変更作業を行い、保存する
  2. リンク先のプロジェクトの、アウトライナー > 表示タイプをBlendファイルに変更する
  3. 参照しているパスを右クリックし、再読み込み を実行する

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

ライブラリオーバーライドでは、リンクされたデータをある程度自由に編集することができる。
各種プロパティやトランスフォームを変更できたり、モディファイアやコンストレイントを追加できる。
メッシュ編集やアクションの編集などの個々のデータ内をいじる事はできない。

リグ付きのキャラクターのモデルデータを参照しながら、アニメーションを別のblendファイルで作るというようなことができる。

内部的には、元のリンクデータとライブラリオーバーライドで行った編集の差分をリンク先のblendファイルに保存する模様。
まだ実験的でバグやクラッシュがある模様。まだ場合によってはプロキシの方がいいとのこと。ライブラリオーバーライドが安定化したら最終的にはプロキシが消えるが、現在は移行期間なので両方存在する。

blender 2.83~2.91 リグのリンクは今のところプロキシが無難。だがオーバーライドが色々と便利。 - アップルパイ技術メモ

コレクションを編集可能にする

リンクのままではレンダリング可否のオンオフや位置調整などをする事ができない。

リンクでの読み込み時にインスタンス化を有効にすれば、コレクションインスタンスとして1つのオブジェクトのように読み込まれる。

アウトライナー > コレクションを右クリック > シーンにインスタンスを作成 をすることでも同様のことが可能。
元のリンクコレクションは別のコレクションの中に入れて隠す。

コレクションの原点を設定する

コレクションインスタンスで読み込むと、ワールドの中心が原点位置となり読み込まれる。そのままでは使いにくい場合があるので、原点位置を設定する。

  1. 3Dカーソルを好きな位置に移動しておく
  2. コレクションの中のオブジェクトを選択する
  3. プロパティ > オブジェクト > コレクション > カーソルからオフセットを作成 を実行する

コレクションを階層のまま読み込む方法


階層のないコレクションなら上の方法で読み込んでもいいが、子コレクションに触ることができない。

階層を保持したまま読み込んで個別に調整したい場合は、インスタンスとしては読み込まずライブラリオーバーライドを利用する。

一番上の階層のコレクションを選択して読み込む。

  • コレクションインスタンスとして読み込んでも、後から3Dビュー > オブジェクト > 関係 > ライブラリオーバーライドを作成... でオーバーライドにできる
  • 一番上のコレクションの階層を選択
  • アウトライナー > 右クリック > IDデータ > ライブラリオーバーライド階層を追加
  • 一括して下層のデータがライブラリオーバーライドとなる

その他

  • リンクされたデータを、プロジェクト内に実体化する
    • アウトライナー > 右クリック > IDデータ > ローカル化
  • リンクされたデータを除去する
    • アウトライナー > 右クリック > リンク切断

あとがき

背景3Dレイアウト作業では、完成した背景のプロジェクトファイルをコピーして、必要なコレクションのみ表示して、カメラ設定してレンダリング……などとするやり方があるが、ライブラリオーバーライドを利用すればよりデータ管理しやすく扱えそう。

部分的にリンク元ファイルとは同期したくない場合はローカル化を利用する。


  • データ名に.001などが付いて名前が変わってしまう。
  • リンク元でコレクションインスタンスを利用している場合、オーバーライドしても元を参照したままになる?
  • シーンそのものをリンクで読み込むのは、ライブラリオーバーライドもできないようで意味はないか?
  • データが多いプロジェクトでは編集が重くなるが、ライブラリオーバーライドを使えば編集時の操作は軽くなるか?

参考

ライブラリのオーバーライド—公式Blenderマニュアル

リグ付きのメッシュをリンク・ライブラリオーバーライドで読み込む方法

データのリンク読み込みとライブラリオーバーライド - やまだけい@オシリスキー3Dスタジオ - Ci-en(シエン)

Reference/Release Notes/2.81/Library Overrides - Blender Developer Wiki

3Dモデルなどの制作依頼はこちら

-Blender

Copyright© 忘却まとめ , 2021 All Rights Reserved Powered by STINGER.