はじめに
BlenderでGLB形式のモデルをインポートした際、ボーンが意図せずICO球(Icosphere)の形で表示されてしまいます。この表示だとあまり見慣れていないため、作業しづらく感じられることがあります。
本来はBlender標準の八角形で表示したいのに、このような表示となってしまうケースについて、この記事では、その原因と対処法を2パターンに分けて紹介します。
問題の状況
まずはこちらの画像をご覧ください。
画像はReady Player Meで出力したGLBのアバターモデルをそのままインポートしたものです。

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

カスタムシェイプとして使われているICO球はOutlinerの「ViewLayer」内にありますが、単にこのオブジェクトを削除しても、ボーンの見た目は元に戻りません。
カスタムシェイプのカスタムオブジェクトの右端の✕を押せばICO球ではなく八角形ボーンに戻りますが、これをボーンの数だけ行うのは骨が折れる作業です。
インポート時に避ける方法
幸い、この問題はインポート時の設定で回避できます。
- 「ファイル」→「インポート」→「glTF 2.0 (.glb/.gltf)」を選択
- インポート設定パネル(右側)にあるボーン>「ボーンシェイプの無効化」のチェックをオンにする
- glTF 2.0をインポートボタンを押す

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

インポート後に修正する方法
すでにGLBをインポートしてしまった場合、手作業でひとつずつ修正するのは非効率です。しかし、BlenderのPythonスクリプトを使えば一括でカスタムシェイプを解除できます。
手順
- 「スクリプト」タブに移動
- テキストエディタの上部から新規を押し、下記のコードを貼り付ける
- 再生ボタンを押してスクリプト実行
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スクリプトで一括解除
この設定に気づかないと地味に作業の妨げになるので、ぜひチェックしてみてください。
コメント