コンテンツにスキップ

Bone, EditBone, PoseBone のプロパティ一覧


ソース

Bone,  EditBone,  PoseBone

このページの内容

  • メソッドを除く、各データ構造の保有するプロパティの一覧
  • プロパティエディタのボーンタブでの表示を基準に、グループ化を行っている
  • csvファイル
  • ✅ :プロパティが存在し、変更が可能
  • 🔒 :プロパティが存在するが、変更は不可能 (readonly)
  • ❌ :プロパティが存在しない
  • 🔵 :プロパティエディタのボーンタブに、表示される
  • ➖ :プロパティエディタのボーンタブに、表示されない

タブの表示 プロパティ名 Bone EditBone PoseBone
🔵 name ✅ ✅ ✅
➖ basename 🔒 🔒 🔒

「トランスフォーム」関連 (オブジェクトモード / 編集モード)

タブの表示 プロパティ名 Bone EditBone PoseBone
🔵 head 🔒 ✅ 🔒
🔵 head_local 🔒 ❌ ❌
🔵 tail 🔒 ✅ 🔒
🔵 tail_local 🔒 ❌ ❌
🔵 roll ❌ ✅ ❌
🔵 lock ❌ ✅ ❌
➖ length 🔒 ✅ 🔒
➖ center 🔒 🔒 🔒
➖ vector 🔒 🔒 🔒
➖ x_axis 🔒 🔒 🔒
➖ y_axis 🔒 🔒 🔒
➖ z_axis 🔒 🔒 🔒

「トランスフォーム」関連 (ポーズモード)

タブの表示 プロパティ名 Bone EditBone PoseBone
🔵 location ❌ ❌ ✅
🔵 rotation_axis_angle ❌ ❌ ✅
🔵 rotation_euler ❌ ❌ ✅
🔵 rotation_mode ❌ ❌ ✅
🔵 rotation_quaternion ❌ ❌ ✅
🔵 scale ❌ ❌ ✅
🔵 lock_location ❌ ❌ ✅
🔵 lock_rotation ❌ ❌ ✅
🔵 lock_rotation_w ❌ ❌ ✅
🔵 lock_rotations_4d ❌ ❌ ✅
🔵 lock_scale ❌ ❌ ✅
➖ matrix 🔒 ✅ ✅
➖ matrix_basis ❌ ❌ ✅
➖ matrix_channel ❌ ❌ 🔒
➖ matrix_local 🔒 ❌ ❌
➖ motion_path ❌ ❌ 🔒

「関係」関連

タブの表示 プロパティ名 Bone EditBone PoseBone
🔵 layers ✅ ✅ ❌
🔵 use_relative_parent ✅ ✅ ❌
🔵 bone_group ❌ ❌ ✅
🔵 bone_group_index ❌ ❌ ✅
🔵 use_connect 🔒 ✅ ❌
🔵 use_local_location ✅ ✅ ❌
🔵 use_inherit_rotation ✅ ✅ ❌
🔵 inherit_scale ✅ ✅ ❌
🔵 use_inherit_scale ✅ ✅ ❌

「ビューポート表示」関連

タブの表示 プロパティ名 Bone EditBone PoseBone
🔵 hide ✅ ✅ ❌
➖ hide_select ✅ ✅ ❌
🔵 custom_shape ❌ ❌ ✅
🔵 custom_shape_scale ❌ ❌ ✅
🔵 custom_shape_transform ❌ ❌ ✅
🔵 use_custom_shape_bone_size ❌ ❌ ✅
🔵 show_wire ✅ ✅ ❌
➖ select ✅ ✅ ❌
➖ select_head ✅ ✅ ❌
➖ select_tail ✅ ✅ ❌

「変形」関連

タブの表示 プロパティ名 Bone EditBone PoseBone
🔵 use_deform ✅ ✅ ❌
🔵 envelope_distance ✅ ✅ ❌
🔵 envelope_weight ✅ ✅ ❌
🔵 use_envelope_multiply ✅ ✅ ❌
🔵 head_radius ✅ ✅ ❌
🔵 tail_radius ✅ ✅ ❌

「ベンディボーン」関連

タブの表示 プロパティ名 Bone EditBone PoseBone
🔵 bbone_curveinx ✅ ✅ ✅
🔵 bbone_curveiny ✅ ✅ ✅
🔵 bbone_curveoutx ✅ ✅ ✅
🔵 bbone_curveouty ✅ ✅ ✅
🔵 bbone_custom_handle_end ✅ ✅ 🔒
🔵 bbone_custom_handle_start ✅ ✅ 🔒
🔵 bbone_easein ✅ ✅ ✅
🔵 bbone_easeout ✅ ✅ ✅
🔵 bbone_handle_type_end ✅ ✅ ❌
🔵 bbone_handle_type_start ✅ ✅ ❌
🔵 bbone_rollin ✅ ✅ ✅
🔵 bbone_rollout ✅ ✅ ✅
🔵 bbone_scaleinx ✅ ✅ ✅
🔵 bbone_scaleiny ✅ ✅ ✅
🔵 bbone_scaleoutx ✅ ✅ ✅
🔵 bbone_scaleouty ✅ ✅ ✅
🔵 bbone_segments ✅ ✅ ❌
🔵 bbone_x ✅ ✅ ❌
🔵 bbone_z ✅ ✅ ❌
🔵 use_endroll_as_inroll ✅ ✅ ❌

「IK」関連

タブの表示 プロパティ名 Bone EditBone PoseBone
🔵 ik_stretch ❌ ❌ ✅
🔵 lock_ik_x ❌ ❌ ✅
🔵 lock_ik_y ❌ ❌ ✅
🔵 lock_ik_z ❌ ❌ ✅
🔵 ik_stiffness_x ❌ ❌ ✅
🔵 ik_stiffness_y ❌ ❌ ✅
🔵 ik_stiffness_z ❌ ❌ ✅
🔵 use_ik_limit_x ❌ ❌ ✅
🔵 use_ik_limit_y ❌ ❌ ✅
🔵 use_ik_limit_z ❌ ❌ ✅
🔵 ik_max_x ❌ ❌ ✅
🔵 ik_max_y ❌ ❌ ✅
🔵 ik_max_z ❌ ❌ ✅
🔵 ik_min_x ❌ ❌ ✅
🔵 ik_min_y ❌ ❌ ✅
🔵 ik_min_z ❌ ❌ ✅
➖ ik_linear_weight ❌ ❌ ✅
➖ ik_rotation_weight ❌ ❌ ✅
➖ is_in_ik_chain ❌ ❌ 🔒
➖ use_ik_linear_control ❌ ❌ ✅
➖ use_ik_rotation_control ❌ ❌ ✅

PoseBoneからのデータアクセス用

タブの表示 プロパティ名 Bone EditBone PoseBone
➖ bone ❌ ❌ ✅
➖ constraints ❌ ❌ 🔒

親子関係

タブの表示 プロパティ名 Bone EditBone PoseBone
➖ child ❌ ❌ 🔒
➖ children 🔒 🔒 🔒
➖ children_recursive 🔒 🔒 🔒
➖ children_recursive_basename 🔒 🔒 🔒
🔵 parent 🔒 ✅ 🔒
➖ parent_recursive 🔒 🔒 🔒

用途不明

タブの表示 プロパティ名 Bone EditBone PoseBone
➖ use_cyclic_offset ✅ ✅ ❌

コメントなど

◇ 3つに共通するプロパティ


どれからでも変更可能なもの

  • name:ただし、変更は自動的に他の形式にも反映されるので、3つの形式は常に同一の値を持つ
  • bbone_系:ただし、プロパティの値は同じではない
bbone_系のプロパティと、プロパティエディタの性質
  1. 各データ形式のプロパティ保有状況

    • ほとんどのものは3つに共通して存在するが、PoseBone には_segmentsなどの Bbone の表示状態と_handle_xxなどのハンドル系がない
    • 共通して存在するプロパティにおいて、Bone と EditBone は値を共有する(ことになる)
    • 共通して存在するプロパティにおいて、PoseBone は他の形式と値を共有しない
    • 共通して存在しないプロパティは、後述するプロパティエディタの性質によって、3つの形式で値を共有するように見える

  2. プロパティエディタの性質その1

    • どんなモードでも、全てのプロパティが表示される
    • ポーズモードで PoseBone が持たないプロパティは、リンクする Bone のものが表示され、変更可能で、値が EditBone にも受け継がれる
      = オブジェクト/編集/ポーズモードの全てで同一の値が表示・使用される
        ↓
      これらのプロパティ(特にセグメント数)は、Bone / EditBone /PoseBone で値を共有するように見える

  3. プロパティエディタの性質その2
    オブジェクトモードとポーズモードでは同じものが使用され、Bone と PoseBone に共通するプロパティは常に PoseBone の値が表示される
      ↓
    プロパティエディタでは、Bbone の表示状態とハンドル系を除けば、Bone の bbone_系は表示されず変更もできない1

スクリプトで PoseBone の Bbone の設定を変更する場合

設定するプロパティに応じて、記述を分けることが必要

  • イーズインなど:PoseBone.bbone_easein = 1.0と PoseBone で設定
  • セグメント数: PoseBone.bone.bbone_segments = 3 と Bone を取得して設定

面倒なので PoseBone や Bone だけでまとめて設定した場合

  1. PoseBone.bbone_segments = 3とまとめて PoseBone で設定した場合

    • エラーが出て失敗する:PoseBone には bbone_segmentsがないので

  2. PoseBone.bone.bbone_easein = 1.0とまとめて Bone で設定した場合

    • エラーは出ず成功する:Bone にも bbone_easeinがあるので (+アクセス可能なので)
    • 3Dビューのボーンは変化する:Bone の変化はポーズに影響するので
    • プロパティエディタは変化しないBone.bbone_easeinを表示するパネルは無いので

結果として、3Dビューで変化が起きるが変化の詳細がパネルで確認できない、という状況になって混乱するので注意


特定のものでのみ変更可能、それ以外は readonly なもの

  • head, tail:EditBone のみ、パネル表示あり
  • length:EditBone のみ、パネル表示なし
  • parent:EditBone のみ、パネル表示あり
  • matrix:EditBone / PoseBone のみ、パネル表示なし

どれからも変更不可能 (readonly) なもの

  • basename:ボーン名の情報
  • vector, x_axis, y_axis, z_axis:座標関連の情報
  • parent_recursive, children, children_recursive, children_recursive_basename:親子関連の情報

◇ Bone と EditBone


  • Bone のみが持つもの: head_local, tail_local, matrix_local
  • EditBone のみが持つもの:lock, roll

EditBone は Bone のプロパティを受け継いで作成され、EditBone での変更は Bone に反映される
→ 両方ともに共通するプロパティは、値も共有されることになる

EditBone:Bone (と PoseBone)と異なり、いくつかのプロパティから readonly が外れる

  • 座標関連:head, tail, matrix, length
  • 接続: use_connect
  • 親子関係:parent

Bone: EditBone と異なり、head,tail,matrixに関連する追加のプロパティを持つ

  • xx_local:"relative to armature" の値(らしい)
    これらのプロパティの値は、 EditBone のhead,tail,matrixと(ほぼ?)同じ
  • xx:"relative to its parent" の値(らしい)

◇ PoseBone


PoseBone ではパネルも含めてアクセスor変更できないプロパティ

  • ボーン本体のデータへの直接のアクセス:head, tail
  • Bone 固有:head_local, tail_local, matrix_local
  • EditBone 固有:length, parent, use_connect
  • ボーン自体の選択関連:select, hide_select
  • ボーンの各部の選択状態: select_head, select_tail

PoseBone には無いが、ポーズモードのパネルからはアクセスできるプロパティ
これはすべてリンクした Bone の値を取得 / 変更することになる

  • Bboneの設定関連:bbone_segments, bbone_x, bbone_z, use_endroll_as_inroll
  • Bboneのハンドル関連:bbone_custom_handle_xx系, bbone_handle_type_xx
  • アーマチュアレイヤー:layers
  • 親子関係のトランスフォーム関連:use_inherit_xx系, use_local_location, use_relative_parent
  • 変形関連:use_deform, envelope_xx系, use_envelope_multiply
  • ボーンの見た目?関連:head_radius, tail_radius, show_wire
  • 表示状態の設定:hide

PoseBone のみ持つプロパティ

  • ボーン本体のデータへのアクセス:bone
  • ボーングループ関連:bone_group, bone_group_index
  • 子ボーンへの単体のアクセス:child (.children の最初の要素が取れる)
  • カスタムシェイプ関連:custom_shape, custom_shape_scale, custom_shape_transform, use_custom_shape_bone_size
  • ボーンコンストレイントのコレクション:constraints
  • IK設定関連(パネル表示あり):ik_xx系, lock_ik_xx系, use_ik_limit_xx系, is_in_ik_chain
  • IK設定関連(パネル表示なし):ik_xx_weight系, use_ik_xx_control系, is_in_ik_chain(これのみ readonly)
  • モーションパスのデータへのアクセス:motion_path
  • トランスフォーム関連:lotation, rotation_xx系, scale, lock_xx


  1. コンソールやスクリプト内では、Bone のプロパティにアクセスして変更することは可能。
    変更すると3Dビューのボーンに反映されるが、プロパティエディタには反映されない。
    EditBone は Bone の設定を引き継ぐので、編集モードにするとプロパティエディタで見えるようになる。