【Blenderアドオン】AutoMerge
- 通常¥ 0
- Boost用(中身は同じ)¥ 500
モデルのオブジェクト数が多い! だけど結合(マージ)するのめんどくさい! そんな時に便利な、 エクスポート時だけモディファイア自動適用&結合 ↓ エクスポート後は元通り! という機能を持ったアドオンです。 現在はfbx形式のエクスポートのみに対応。
◆はじめに
このデータは、3Dモデリングソフト Blender 用のアドオンです。 ↓以下のBlenderバージョンで動作確認済みです。 2.93 ※ Blender 2.7系・2.8系にも導入可能ですが、動作しない機能があるなどの不具合が生じる可能性があります。 最新のテストバージョンはGitHubに置いてあります。 https://github.com/SleetCat123/BlenderAddon_AutoMerge ―――――― https://sleetcatshop.booth.pm/items/1224307 同作者の別アドオン↑“ShapeKeys Util”との連携機能を有効にすることにより、 シェイプキーをもつオブジェクトのモディファイアを適用してマージできます。 また、エクスポート機能の使用時にシェイプキーの左右分割も行えるようにもなりました。 これにより、 ミラーを付けたまま編集 ↓ エクスポートのときだけミラー適用(自動) ↓ シェイプキーを自動で左右分割 ↓ エクスポート後は元通り! ということもできるようになります。 連携機能を使うには“ShapeKeys Util”を導入した状態で このアドオンのPreferencesから必要な項目を有効にしてください。 (アドオンのPreferencesの場所は同梱の画像参照) ―― ◇ソースコードのライセンス: GNU General Public License, version 2 ◇Sample.blend のライセンス: このアドオンの動作テスト以外の用途(アバターなど)に使用したい場合、 Read-me最下部の連絡先から連絡してください。 (何に使うか知りたいので)
◆機能説明
◇File → Export → Auto Merge(.fbx)
選択中またはシーン内のオブジェクトのうち オブジェクトグループ“MergeGroup”に属するものに対し、 それぞれ子階層以下にあるオブジェクトをマージした上で Blender標準の内部処理を使いfbxデータをエクスポートします。 エクスポート後は処理前の状態が復元されます。 また、“DontExport”グループに属するオブジェクトと、 その子階層以下にあるオブジェクトはエクスポートされません。 作業スペースには残しておきたいけど、エクスポートはしたくない。 そんなオブジェクトはこのグループに入れておきましょう。 ※ このアドオンによるエクスポートでのみ使用できます。
◇オブジェクト選択中に右クリック → Auto Merge
(Blender2.7系)選択中にWキー(Specials) → Auto Merge エクスポート時だけでなく、オブジェクトモードでの編集中にも モディファイア自動適用&結合の操作を行うことができます。
→ Merge Children
最後に選択したオブジェクトに対し、 その子階層以下にあるオブジェクトをマージします。 ・ツールシェルフ ・Duplicate チェックを入れると、 対象となるオブジェクトを複製した上でマージ処理を行います。
→ Merge Grouped Children
選択中のオブジェクトのうち、 オブジェクトグループ“MergeGroup”に属するものに対し、 それぞれ子階層以下にあるオブジェクトをマージします。 (『Export → Auto Merge』によるエクスポート時には このコマンドと同じ動作でマージ処理を行います ) ・ツールシェルフ ・Duplicate チェックを入れると、 対象となるオブジェクトを複製した上でマージ処理を行います。
→ Merge Selection
最後に選択したオブジェクトに対し、 選択中の他オブジェクトをマージします。 ・ツールシェルフ ・Duplicate チェックを入れると、 対象となるオブジェクトを複製した上でマージ処理を行います。
→ Assign Merge Group
選択中のオブジェクトを オブジェクトグループ“MergeGroup”に入れたり外したりします。 ・ツールシェルフ ・Assign チェックを入れるとグループに追加、 外すとグループから除外します。
→ Assign Don't Export Group
選択中のオブジェクトを オブジェクトグループ“DontExport”に入れたり外したりします。 ・ツールシェルフ ・Assign チェックを入れるとグループに追加、 外すとグループから除外します。
! 注意 !
※ マージする際、Armatureを除く全てのモディファイアは適用されます。 ただし、レンダリング対象でないモディファイア(モディファイア一覧でカメラアイコンが押されていないもの)は適用せず無視されます。 ※ 同作者の別アドオン“ShapeKeys Util”との連携機能が無効になっている場合、シェイプキーをもつオブジェクトはモディファイアを無視してマージ処理を行います。 その場合でも、シェイプキーを含まない他のオブジェクトは通常通りにモディファイア適用・マージを行います。 ※ 同作者の別アドオン“ShapeKeys Util”との連携機能が無効のとき、 シェイプキーを含むオブジェクトのマージ時に出てくる 『[オブジェクト名] has shape key. apply modifier was skipped.』 というメッセージは、 『シェイプキーのあるオブジェクトには モディファイアを適用できないから処理を飛ばしたよ』 と書いてあるだけなのでエラーではありません。 メッセージ中[オブジェクト名]に入っている名前のオブジェクト以外には影響しません。 ただし、言葉通りモディファイア適用の処理を飛ばしているため、 意図しない状態のオブジェクトがエクスポートされることはあるかもしれません。
◆動作例
※ 以下の動作は同梱の『Sample.blend』ファイルで実際に確認できます。 例えば、以下のような階層構造・オブジェクトグループ設定のデータがあったとします。 (オブジェクトの順序は前後する場合あり) ・Sample.blend ├Armature グループ設定:無 │├Body グループ設定:MergeGroup ││├Clothes グループ設定:無 │││└Ribbon グループ設定:無 ││└Head グループ設定:無 │├Hair グループ設定:MergeGroup ││├BackHair グループ設定:無 ││└FrontHair グループ設定:無 │├Plane グループ設定:DontExport │└Skirt グループ設定:無 └Cube グループ設定:DontExport └Plane.001 グループ設定:無 この状態で File → Export → Auto Merge(.fbx) を使用し、 出力されたfbxファイルをUnityにインポートすると 以下のような階層構造のデータになっているのが確認できます。 (オブジェクトの順序は前後する場合あり) ・Sample ├Armature │└(ボーン) ├Hair ├Body └Skirt
◆不具合・エラーが起きた時
このアドオンの機能はBlender標準のAPIを使って作成しているため、 何らかの不具合が発生した場合には すぐに Undo(Ctrl+Z) すれば機能使用前の状態に復元できます。 また、以下の連絡先に不具合発生時の状況を送っていただけると 修正の手助けになります。
◆連絡先
不具合報告や要望、感想などありましたらこちらにどうぞ。 修正・実装が可能と思われるものに関しては着手を検討しますが、 リアルの事情や技術的問題などの理由により 対処の先延ばしまたはお断りをする場合があるかもしれません。 予めご了承ください。 Twitter:猫柳みぞれ https://twitter.com/sleetcat123
◆更新履歴
―――――― ・2021-11-30 Ver_2.1.0 Auto Merge(.fbx)のエクスポート先やAdd Leaf Bonesなどの各種設定値を.blendファイルに保存するようにした Auto Merge(.fbx)の使用時、特定の状況下でエラーが出ることがあるのを修正 対象外モディファイア(現在はArmatureのみ)であっても、名前が%A%から始まるものは強制的にモディファイアを適用させるようにした Merge系処理の実行時、名前が%AS%から始まるモディファイアをシェイプキーとして適用(Apply as shapekey)するようにした(シェイプキー適用時に名前の%AS%は削除) ―――――― ・2021-06-15 Ver_2.0.0 Blender2.8以降に対応 Auto Merge(.fbx)にツールシェルフ項目“Scale”を追加。 Auto Merge(.fbx)にツールシェルフ項目“!EXPERIMENTAL! Apply Transform”を追加(初期値:True)。 Auto Merge(.fbx)のツールシェルフ項目“Apply Scaling”の初期値を“FBX Units Scale”に。 Merge系処理でArmatureモディファイアを無視するかどうかを選べるように。 Addon Preferenceでエクスポート設定の既定値を変更できるように。 “AlwaysExport”コレクションに属しているオブジェクトは非表示状態でも強制的にエクスポートをされるように(Blender 2.8以降のみ)。 結合先オブジェクトのモディファイアを適用させずにマージできる設定“Apply Parent Object Modifiers”を追加。 “MergeObject”グループに入っているオブジェクトが1つもない状態でAuto Merge(.fbx)を使うとエラーが出る不具合を修正。 ―――――― ・2019-02-11 Ver_1.1.0 追加:同作者の別アドオン“ShapeKeys Util”との連携機能の追加 追加:コマンドにカーソルを乗せたとき説明文が表示されるように(現在は日本語のみ) Read-meに今回の更新内容を反映 変更:導入/更新方法.txtの文章を変更 ―――――― ・2019-02-04 Ver_1.0.3 変更:Auto Merge(.fbx)のツールシェルフ項目“Add Leaf Bones”の標準値をTrueに 変更:エクスポート終了後にモードを復元するように(Editモード中にエクスポートした場合、これまではObjectモードになってしまっていた) 修正:オブジェクトモードでオブジェクトを削除した直後、他のオブジェクトを選択しなおさずにAuto Merge(.fbx)を使うとエラーが出るのを修正 修正:マージ可能なオブジェクトが複数選択された状態で Wキー(Specials) → Auto Merge → Merge Grouped Children すると一部のオブジェクトにマージ処理がかからないのを修正 修正:Auto Merge(.fbx)の後、非Meshオブジェクト(カーブとか)が増殖してしまう不具合を修正 ―――――― ・2019-01-31 Ver_1.0.2 変更:レンダリングが無効化されたモディファイア(モディファイア一覧でカメラアイコンが押されていないもの)は結合時に無視するように Read-meにも今回の更新内容を反映 ―――――― ・2019-01-13 Ver_1.0.1 修正:オブジェクトモード以外でAuto Merge(.fbx)を行うとエラーが出る不具合を修正 導入方法.txtにアドオン更新方法を追加 Read-meの順番を少し変更 ―――――― ・2019-01-09 Ver_1.0 公開。 ――――――