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スクリプトを使えば一括でカスタムシェイプを解除できます。

手順

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