bpy.context.pose_bone 是一个用于访问当前场景中骨架动作姿态相关设置的上下文对象。它是 bpy.context 的子对象,用于针对当前选定的 PoseBone 对象进行操作。
PoseBone 对象代表一个动画序列中的单个骨骼。通过访问 bpy.context.pose_bone,您可以获取或设置 PoseBone 对象的位置、旋转、缩放以及其他动画关键帧设置。
要获取当前应用场景中的 "Active Object(活动对象)" 的 PoseBone 对象,可以使用以下代码:
import bpy
# 获取当前 PoseBone
pose_bone = bpy.context.active_pose_bone
您还可以使用 PoseBone 对象的名称来操作特定的骨骼:
import bpy
# 获取名为 "Bone" 的 PoseBone
pose_bone = bpy.context.active_object.pose.bones["Bone"]
以下是可以在 bpy.context.pose_bone 上访问和设置的常用属性:
location:一个代表 PoseBone 对象在三维空间中的位置的三元素元组。rotation_euler:一个代表 PoseBone 对象在三维空间中的旋转角度的三元素欧拉角度量。rotation_quaternion:一个代表 PoseBone 对象在三维空间中的旋转角度的四元素欧拉角度量。scale:一个代表 PoseBone 在三维空间中的缩放系数的三元素元组。constraints:PoseBone 上的约束列表。bone:PoseBone 对象所属的骨骼(Bone)对象。以下示例演示如何使用 bpy.context.pose_bone 设置 PoseBone 的位置和旋转:
import bpy
from mathutils import Euler
# 获取当前 PoseBone
pose_bone = bpy.context.active_pose_bone
# 将骨骼的位置设置为 (1, 0, 0)
pose_bone.location = (1, 0, 0)
# 将骨骼的旋转(yaw)设置为 45°
pose_bone.rotation_euler = Euler((0, 0, 45), 'XYZ')
在上面的代码中,我们首先获取当前活动 pose bone 对象。然后使用 location 属性将 pose_bone 的位置设置为 (1, 0, 0)。最后,我们在 Rodrigues 坐标系下使用 rotation_euler 属性将 yaw 轴旋转角度设置为 45 度。