BlenderでFBXインポート時に追加されたリーフボーンを一括削除する手順解説

スポンサーリンク
スポンサーリンク

はじめに

BlenderでFBXファイルをインポートした際、特に「リーフボーン(Leaf Bones)」と呼ばれる末端ボーンが、自動的にアーマチュアに追加されることで、リグが複雑化し、作業の妨げになることがあります。

リーフボーンは通常、アニメーションには使用されない補助的なボーンであり、多くの場合、インポート後に不要と判断されて削除されます。しかし、これらを1本ずつ手作業で削除するのは大変です。

本記事では、そんなリーフボーンを不要にも関わらずインポートしてしまったときに、Pythonスクリプトを使って不要なリーフボーンを一括削除する方法をご紹介します。


リーフボーンとは?

リーフボーン(Leaf Bone)とは、ボーン階層の末端に追加される補助的なボーンです。
BlenderでFBXをインポートする際、「リーフボーンを無視」のチェックをしなかった場合には自動的に追加されます。また、”_end” や “leaf” といった名前がつけられることもあります。

これらのボーンはアーマチュア構造の完全性や他ツールとの互換性を目的としたもので、アニメーションには直接関与しないことがほとんどです。
そのため、例えば以下のような場合に不要なノイズとなり得ます。

  • アーマチュア構造が煩雑になり、作業がしづらくなる
  • リグを軽量化して整理したい
  • ウェイトペイントやポーズモードでの操作時に混乱を招く

インポート時に「リーフボーンの」のオプションを無効にすれば回避できますが、すでにインポート済みのデータには適用されません。そのため、後からまとめて削除できる手段があると便利です。


スクリプト:子を持たないボーンを一括削除

「リーフボーンだけを抽出して削除する」と聞くと難しそうに感じますが、実際にはもっとシンプルに考えることができます。

Blenderにおいてリーフボーンは、すべて階層構造の末端に位置する「子を持たないボーン」です。つまり、子を持たないボーンを一括で削除する処理を行えば、そのままリーフボーンをまとめて削除できます。

そこで、以下のPythonスクリプトをBlenderのText Editorから実行すると、アクティブなアーマチュアの中で子を持たないボーン(リーフボーン)が一括削除されます。


実行手順

  1. 削除したいリーフボーンを含むアーマチュアを選択します。
  2. [Scripting] (スクリプト作成)タブを開きます。
  3. 新規テキストを作成し、上記のスクリプトを貼り付けます。
  4. “Run Script”(下図右上・再生マークのボタン) をクリックして実行します。

注意点

  • このスクリプトは、すべての子を持たないボーンを削除します。
  • 必要な末端ボーンがある場合は、事前に確認してください。
  • 削除したボーンに関連付けられていた頂点グループが不要になった場合は、メッシュ側のグループ整理も忘れずに行いましょう。

おわりに

リーフボーンは他ツールとの互換性の側面で必要になるケースもありますが、Blender上では不要になることも多く、アーマチュアやリグをを整理する上で邪魔になることがあります。

インポート時に外しておければ良いのですが、つい忘れてしまうケースもあるので、そんな場合には今回ご紹介したスクリプトを活用すれば、手間なく不要なリーフボーンを一括で削除でき、リグ構造をスッキリと保つことができます。

コメント

タイトルとURLをコピーしました