MENU

    BlenderでGLBインポート時にボーンのカスタムシェイプがICO球になる問題とそれを八角形に戻す方法

    目次

    はじめに

    BlenderでGLB形式のモデルをインポートした際、ボーンが意図せずICO球(Icosphere)の形で表示されてしまいます。この表示だとあまり見慣れていないため、作業しづらく感じられることがあります。

    本来はBlender標準の八角形で表示したいのに、このような表示となってしまうケースについて、この記事では、その原因と対処法を2パターンに分けて紹介します。

    問題の状況

    まずはこちらの画像をご覧ください。
    画像はReady Player Meで出力したGLBのアバターモデルをそのままインポートしたものです。

    本来ならボーンは八角形で表示されてほしいのですが、GLBをインポートした直後にはこのようにIcosphereがカスタムシェイプとして適用されてしまっています。
    これはボーンに自動的にカスタムシェイプ(ICO球)が割り当てられてしまう設定によるものです。

    カスタムシェイプとして使われているICO球はOutlinerの「ViewLayer」内にありますが、単にこのオブジェクトを削除しても、ボーンの見た目は元に戻りません。

    カスタムシェイプのカスタムオブジェクトの右端の✕を押せばICO球ではなく八角形ボーンに戻りますが、これをボーンの数だけ行うのは骨が折れる作業です。

    インポート時に避ける方法

    幸い、この問題はインポート時の設定で回避できます。

    1. 「ファイル」→「インポート」→「glTF 2.0 (.glb/.gltf)」を選択
    2. インポート設定パネル(右側)にあるボーン>「ボーンシェイプの無効化」のチェックをオンにする
    3. glTF 2.0をインポートボタンを押す

    この手順でインポートすれば、ボーンは通常の八角形表示となり、余計なカスタムシェイプが設定されることはありません。

    インポート後に修正する方法

    すでにGLBをインポートしてしまった場合、手作業でひとつずつ修正するのは非効率です。しかし、BlenderのPythonスクリプトを使えば一括でカスタムシェイプを解除できます。

    そもそものPythonスクリプトの使い方については以下の記事で説明しています。
    もし分からなければこちらもご参照ください。

    手順

    1. 「スクリプト」タブに移動
    2. テキストエディタの上部から新規を押し、下記のコードを貼り付ける
    3. 再生ボタンを押してスクリプト実行
    import bpy
    
    # 選択中のアーマチュアを対象とする
    arm = bpy.context.object
    
    # Poseモードで実行
    if arm and arm.type == 'ARMATURE':
        for bone in arm.pose.bones:
            bone.custom_shape = None

    このスクリプトを実行すると、すべてのボーンからカスタムシェイプが解除され、標準の表示に戻ります。

    まとめ

    GLB形式のモデルをBlenderにインポートする際、ボーンに不要なカスタムシェイプが設定されると、見やすくなって作業がしやすくなります。本記事ではその対処法として、以下の2つのアプローチを紹介しました。

    • インポート前:設定パネルで「カスタムボーンシェイプ」を無効にする
    • インポート後:Pythonスクリプトで一括解除

    この設定に気づかないと地味に作業の妨げになるので、ぜひチェックしてみてください。

    よかったらシェアしてね!
    • URLをコピーしました!
    • URLをコピーしました!

    この記事を書いた人

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

    目次