アーマチュア
参考:
Armature | Blender Python API [Official]
目次
- 1 ボーンを編集する (edit_bones)
- 2 ボーンを追加する
- 3 アーマチュアボーン (ArmatureBones)
- 4 ポーズボーン (PoseBone)
- 5 ポーズを操作する
- 6 アーマチュアデータ
- 7 アーマチュアデータの名前を変更する
- 8 コンストレイントを追加する
- 9 コンストレイントを操作する
- 10 ペアレントを設定/変更/解消する
- 11 ボーングループ (BoneGroup)
- 12 ボーンをツリー形式で表示する
- 13 データ構造
- 14 ボーンからメッシュを生成する
- 15 アーマチュアのスケールを変更する
- 16 update_from_editmode
- 17 ポーズ (Pose)
- 18 ポーズオペレーター
- 19 コンテキストアクセス (bpy.context)
- 20 blender-connect-bones
- 21 BoneToMesh_Blender
- 22 Generate Bone Tail Mesh
ボーンを編集する (edit_bones)
スクリプトを使用してボーンの構造を編集する場合は、アーマチュアデータが持つ編集ボーンコレクションを用いる。
bpy.ops.object.mode_set(mode='EDIT') bones = bpy.data.objects["Armature"].data.edit_bones
※ edit_bones
のアクセスはアーマチュア編集モードでのみ可能である。
参考:
bpy.types.Armature.edit_bones | Blender Python API [Official]
EditBone | Blender Python API [Official]
ArmatureEditBones | Blender Python API [Official]
How can I select a bone by name using python in blender 2.8 – Blender Stack Exchange
ボーンを追加する
dest = bpy.data.objects["Armature"] bpy.ops.object.mode_set(mode='EDIT') new_bone = dest.data.edit_bones.new("New Bone") new_bone.head = (0, 0, 0) new_bone.tail = (0, 0, 1)
参考:
既存ボーンにスクリプトで補助ボーンを生やしてみる – Qiita
bpy.types.Armature.edit_bones | Blender Python API [Official]
bpy.types.ArmatureEditBones.new | Blender Python API [Official]
bpy.types.ArmatureEditBones.remove | Blender Python API [Official]
Add new bones to armature? – Blender Developer Talk
アーマチュアボーン (ArmatureBones)
アーマチュアがデータとして持つボーンを扱う。
参考:
bpy.types.Armature.bones | Blender Python API [Official]
ArmatureBones | Blender Python API [Official]
Bone | Blender Python API [Official]
bpy.types.ArmatureBones.active | Blender Python API [Official]
Python Script to Rename Bones in Armature – Blender Stack Exchange
Set active bone in pose mode from Python script – Blender Stack Exchange
ポーズボーン (PoseBone)
アーマチュアのポーズを設定・編集するために、ボーズモードでボーンを扱う。
ポーズボーンにアクセスするには、アーマチュアオブジェクトのポーズデータが持つボーンコレクションを使用する。
pose_bones = bpy.data.objects["Armature"].pose.bones
参考:
PoseBone | Blender Python API [Official]
bpy.types.Pose.bones | Blender Python API [Official]
bpy.types.Object.pose | Blender Python API [Official]
How to get an armature by name in Python and get access to its bones? – Blender Stack Exchange
ポーズを操作する
クリア
- bpy.ops.pose.loc_clear
- bpy.ops.pose.rot_clear
- bpy.ops.pose.scale_clear
- bpy.ops.pose.transforms_clear
参考:
Pose Operators | Blender Python API [Official]
アーマチュアデータ
オブジェクト名でアクセスする。
arma = bpy.data.objects["Armature"].data
データ名でアクセスする。
arma = bpy.data.armatures["Armature_Data"]
参考:
bpy.types.Object.data | Blender Python API [Official]
bpy.types.BlendData.armatures | Blender Python API [Official]
Data Access (bpy.data) | Blender Python API [Official]
Armature | Blender Python API [Official]
How to get an armature by name in Python and get access to its bones? – Blender Stack Exchange
アーマチュアデータの名前を変更する
参考:
How to synch armature name with object name? – Blender Artists Community
コンストレイントを追加する
- bpy.ops.pose.constraint_add
- bpy.ops.pose.constraint_add_with_targets
- bpy.types.PoseBoneConstraints.new
- bpy.types.PoseBone.constraints
参考:
bpy.ops.pose.constraint_add | Blender Python API [Official]
bpy.ops.pose.constraint_add_with_targets | Blender Python API [Official]
bpy.types.PoseBoneConstraints.new | Blender Python API [Official]
bpy.types.PoseBone.constraints | Blender Python API [Official]
Constraint | Blender Python API [Official]
PoseBoneConstraints | Blender Python API [Official]
every pose bone add a constraint not working – Stack Overflow
loop to attach empty to each bone in Armature – Blender Stack Exchange
コンストレイントを操作する
- bpy.ops.pose.constraints_clear:コンストレイントを除去する
- bpy.ops.pose.constraints_copy:選択したポーズボーンにコンストレイントをコピーする
参考:
Pose Operators | Blender Python API [Official]
ペアレントを設定/変更/解消する
参考:
bpy.types.EditBone.parent | Blender Python API [Official]
ボーングループ (BoneGroup)
参考:
BoneGroup | Blender Python API [Official]
BoneGroups | Blender Python API [Official]
bpy.types.PoseBone.bone_group | Blender Python API [Official]
bpy.types.Pose.bone_groups | Blender Python API [Official]
ボーンをツリー形式で表示する
参考:
データ構造
参考:
ボーンのデータ構造 (nikogoli.github.io)
ボーンからメッシュを生成する
参考:
ボーンからメッシュ形状を作成するアドオン | Blender とかとか
アーマチュアのスケールを変更する
参考:
Modifying FCurve values on armature bones via python – Blender Stack Exchange
How do I resize an armature without ruining its poses? – Blender Stack Exchange
update_from_editmode
編集モードに入る時にメッシュのスナップショットが取られ、編集モードを抜ける時に編集の結果が書き戻される。編集モード内で編集の状態をメッシュデータに反映させたい場合には、update_from_editmode
を実行する。
参考:
bpy.types.Object.update_from_editmode | Blender Python API [Official]
選択物のリストを取る方法 – Blender.jp フォーラム
.data.vertices returns an empty collection in Edit Mode – Blender Stack Exchange
ポーズ (Pose)
オブジェクトが持つポーズデータにアクセスする。
参考:
Pose | Blender Python API [Official]
bpy.types.Object.pose | Blender Python API [Official]
ポーズオペレーター
- bpy.ops.pose.select_all:ポーズボーンを全て選択/解除/トグルする
- bpy.ops.pose.select_parent:親ボーンを選択する
- bpy.ops.pose.visual_transform_apply:ビジュアルトランスフォームを適用する
参考:
Pose Operators | Blender Python API [Official]
コンテキストアクセス (bpy.context)
- bpy.context.active_bone
- bpy.context.active_pose_bone
- bpy.context.armature
- bpy.context.bone
- bpy.context.editable_bones
- bpy.context.edit_bone
- bpy.context.pose_bone
- bpy.context.selected_bones
- bpy.context.selected_editable_bones
- bpy.context.selected_pose_bones
- bpy.context.selected_pose_bones_from_active_object
- bpy.context.visible_bones
- bpy.context.visible_pose_bones
参考:
Context Access (bpy.context) | Blender Python API [Official]
blender-connect-bones
参考:
head と tail の座標と適当なフィルター条件でボーンの親子関係を自動構築する connect-bones の作り方と Add-on 化の方法 | C++ ときどきごはん、わりとてぃーぶれいく
BoneToMesh_Blender
参考:
kurotori4423/BoneToMesh_Blender: ボーンから動作検証用のメッシュを作成する Blender 2.79 アドオン – GitHub
Generate Bone Tail Mesh
参考:
generateBoneTailMesh.py – 選択ボーンの位置にちょうど頂点を持つメッシュを生成するコマンド (green224) – GitHub Gist