複数のボーンに一括でコンストレイント設定【blender】【Rig】【誰得】
# bpyインポート
import bpy
# アーマチュアとボーンの名前を指定
armature_name = "@@@"
bone_prefix = "zx_"
bone_start =
bone_end = 0
bone_suffix = "_1.L"
# コンストレイントのターゲットとインフルエンスを指定
constraint_target = "@@@"
constraint_influence = 0.3
# アーマチュアオブジェクトを取得
armature = bpy.data.objects.get(armature_name)
# ポーズモードに移行
bpy.ops.object.mode_set(mode="POSE")
# ボーンの範囲をループ
for i in range(bone_start, bone_end - 1, -1):
# ボーンの名前を生成
bone_name = bone_prefix + str(i) + bone_suffix
# subtarget(一個前のやつ) name
sub_bone_name = bone_prefix + str(i + 1) + bone_suffix
# ポーズボーンを取得
pose_bone = armature.pose.bones.get(bone_name)
# ポーズボーンが存在するか確認
if pose_bone:
# 減衰トラックコンストレイントを作成
constraint = pose_bone.constraints.new("DAMPED_TRACK")
# コンストレイントのターゲットとインフルエンスを設定
constraint.target = bpy.data.objects.get(constraint_target)
constraint.influence = constraint_influence
constraint.subtarget = sub_bone_name
# オブジェクトモードに戻る
bpy.ops.object.mode_set(mode="OBJECT")
一括といっても再帰はしてないのでちょっと使いどころ選ぶかも
prefixとかは適当に
自分用のコードメモ