bpy.context.soft_body
bpy.context.soft_body
是 Blender 中用来控制软体物体(Soft body)的上下文对象。通过该上下文对象,可以访问软体物体的属性、方法以及其他信息,从而方便地对软体物体进行操作。
属性
bpy.context.soft_body
具有以下属性:
bpy.context.soft_body.name
软体物体的名称。
bpy.context.soft_body.vertex_group_mass
一个代表软体物体顶点的质量的顶点组。
bpy.context.soft_body.use_edge_angle
设置一个值来决定是否为每个边缘计算一个角度(弧度)。
bpy.context.soft_body.use_face_pressure
设置一个值来决定是否计算面向量的压力。
bpy.context.soft_body.use_volume_pressure
设置一个值来决定是否计算软体物体的体积的压力。
bpy.context.soft_body.use_bending
设置一个值来决定是否为边和面计算弯曲约束(材料特性)。
bpy.context.soft_body.use_linear_bend
设置一个值来决定是否线性计算弯曲(哈希处理)。
bpy.context.soft_body.use_self_collision
设置一个值来决定是否计算软体物体的自我碰撞。
bpy.context.soft_body.use_pin_cloth
设置一个值来决定是否在钉住点处保持布料。
bpy.context.soft_body.use_pin_vertex
设置一个值来决定是否在钉住点处定点。
bpy.context.soft_body.use_edge_sharing
设置一个值来决定是否共享边缘的点(同相邻面一样)。
bpy.context.soft_body.use_volume_conserve
设置一个值来决定是否保留软体物体的体积。
bpy.context.soft_body.air_damping
空气阻尼(影响空气环境中对象的移动)
bpy.context.soft_body.mass
软体物体的质量。
bpy.context.soft_body.repulse_force
集体的相互推力
bpy.context.soft_body.speed
运动的速度
bpy.context.soft_body.time_scale
时间缩放。
bpy.context.soft_body.stiffness
软体物体的硬度
bpy.context.soft_body.vertex_group_goal
一个代表软体物体的运动目标的顶点组。
bpy.context.soft_body.use_goal
设置一个值来决定是否使用运动目标形变(伸展/收缩)。
bpy.context.soft_body.goal_min
目标形变的最小值。
bpy.context.soft_body.goal_max
目标形变的最大值。
bpy.context.soft_body.marge
两个顶点之间允许的最大误差(容忍度)。
bpy.context.soft_body.friction
软体物体顶点之间的摩擦力强度。
bpy.context.soft_body.bending_stiffness
弯曲约束(材料特性)强度。
bpy.context.soft_body.tension_stiffness
绷紧约束(材料特性)强度。
bpy.context.soft_body.particle_size
粒子的平均直径。
bpy.context.soft_body.plasticity
软体物体变形的可塑性。
bpy.context.soft_body.disable_deflection
禁用碰撞偏差(禁用碰撞)
bpy.context.soft_body.use_self_collision_exclude
应该考虑的顶点或面。
bpy.context.soft_body.use_face_collision
设置一个值来决定是否使用面碰撞。
bpy.context.soft_body.use_edge_collision
设置一个值来决定是否使用边界碰撞。
bpy.context.soft_body.use_cluster_collision
设置一个值来决定是否使用集群碰撞。
bpy.context.soft_body.cluster_epsilon
集群中的最大距离(如果小于此距离,则将两个物体群集到相同的组中)。
bpy.context.soft_body.reaction_time
物体的反应时间。
bpy.context.soft_body.friction_random
允许的摩擦系数变化的范围。
bpy.context.soft_body.use_planar_joint
设置一个值来决定是否强制使用平面接头。
bpy.context.soft_body.use_structural_x
设置一个值来决定是否使用 X 形的接头。
bpy.context.soft_body.use_structural_y
设置一个值来决定是否使用 Y 形的接头。
bpy.context.soft_body.use_structural_z
设置一个值来决定是否使用 Z 形的接头。
bpy.context.soft_body.use_shear_xy
设置一个值来决定是否使用剪切 XY 接头。
bpy.context.soft_body.use_shear_yz
设置一个值来决定是否使用剪切 YZ 接头。
bpy.context.soft_body.use_shear_xz
设置一个值来决定是否使用剪切 XZ 接头。
bpy.context.soft_body.use_softbody_goal
设置一个值来决定是否钉住点和软体物体的形变。
bpy.context.soft_body.use_softbody_pin_goal
设置一个值来决定是否使用钉住点和软体物体之间的形变约束。
方法
bpy.context.soft_body
还具有以下方法:
bpy.context.soft_body.point_cache_set()
设置点缓存。
bpy.context.soft_body.point_cache_clear()
清除点缓存。
bpy.context.soft_body.point_cache_free()
释放点缓存。
bpy.context.soft_body.create_point_cache()
创建点缓存。
bpy.context.soft_body.find_closest_point()
查找最接近的点。
bpy.context.soft_body.reset()
重设软体物体。
bpy.context.soft_body.bake()
开始烘培(确定计算结果)软体物体。
bpy.context.soft_body.free_bake()
清理烘培。
bpy.context.soft_body.pin_visual_update()
更新视觉钉住点。
bpy.context.soft_body.settings_update()
更新软体物体设置。
bpy.context.soft_body.debug_indices()
获取调试节点的索引。
示例
以下是一个使用 bpy.context.soft_body
控制 Blender 软体物体的示例代码:
import bpy
soft_body_context = bpy.context.soft_body
soft_body_context.use_face_pressure = True
soft_body_context.air_damping = 0.5
soft_body_context.settings_update()
soft_body_context.bake()
print("The gravity of the soft body is: ", soft_body_context.gravity)
soft_body_context.free_bake()