MENU

    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をコピーしました!
    • URLをコピーしました!

    この記事を書いた人

    このサイトの管理人です。Blenderを主に映像制作やUnityを使った開発業務と組み合わせて使用しています。

    目次