$jigglebone

This page either contains information that is only partially or incorrectly translated, or there isn't a translation yet.
If this page cannot be translated for some reason, or is left untranslated for an extended period of time after this notice is posted, the page should be requested to be deleted.
Also, please make sure the article complies with the alternate languages guide.
$jigglebone
是一个QC 命令 ,可在所有的 起源 游戏,自从
起源2007 以来中使用。 用于将模型骨骼中的某些骨骼标记为“抖动骨骼”,并告知游戏引擎在运行时动态模拟它们,从而实现逼真的次级运动,例如摇晃的触须、弹跳的肌肉、柔软的耳朵等。

教程
可以在此处找到添加抖动骨骼的教程。
另一个添加抖动骨骼的教程可以在此处找到。
对于Blender用户,可以在此处找到教程。
语法
$jigglebone <name> { <property group> { <property> <value> [<value>] ... } }
其中,<name> 是关节末端的名称。
目前有四种“属性组”:
每个组都是可选的,但is_rigid
和is_flexible
不能同时使用。has_base_spring
和is_boing
也不能同时使用。
示例
这里有一些例子:
$jigglebone "Floppy" { is_rigid { tip_mass 100 length 20 angle_constraint 60 } }
$jigglebone "JigglyUpAndDown" { is_flexible { yaw_stiffness 100 yaw_damping 3 length 20 yaw_constraint 0 0 } }
$jigglebone "Bouncy" { has_base_spring { stiffness 100 damping 1 left_constraint -20 20 up_constraint -20 20 forward_constraint -20 20 } }
$jigglebone "SubtleBounceWithALimit" { has_base_spring { base_mass 5 stiffness 800 damping 10 left_constraint -0.5 0.5 up_constraint -0.75 2.0 forward_constraint -0.25 0.25 left_friction 10 up_friction 10 forward_friction 10 } }
$jigglebone "FloppyAndBouncy" { is_rigid { tip_mass 100 length 20 angle_constraint 60 } has_base_spring { stiffness 100 damping 1 left_constraint -20 20 up_constraint -20 20 forward_constraint -20 20 } }
$jigglebone "ConstantBoing" { is_boing { impact_speed 0 impact_angle 0 damping_rate 0.0 frequency 20.0 amplitude 0.2 } }
来自Antlion Worker:
$jigglebone "Antlion.glasswingR_bone" { is_flexible { yaw_stiffness 700 yaw_damping 6 pitch_stiffness 700 pitch_damping 8 tip_mass 5 length 30 angle_constraint 37 } }
弹簧
通过指定刚度和阻尼值来模拟弹簧。刚度决定了弹簧的硬度。较低的值(如10)表示弹簧非常松弛和柔弱,而500的值则表示弹簧非常硬且有弹性。合法值范围为1到1000。
阻尼是一种弹簧的摩擦或阻力。阻尼值为零表示弹簧会无限震荡。阻尼值为10会导致弹簧几乎立即停止振动。合法值范围为0到10。
is_flexible
如果抖动骨骼是“柔性的”,则会在骨骼+Z轴方向的一定距离处放置一个模拟质量,骨骼会像一个弹性柔韧的杆一样运动。这种弹簧仅会产生旋转运动,旋转中心位于抖动骨骼的根部。
yaw_stiffness
- 控制弹簧在局部偏航旋转轴上的刚度。
yaw_damping
- 控制弹簧在局部偏航旋转轴上的阻尼。较小的值会导致显著的抖动,而较大的值会导致更微妙的运动。
pitch_stiffness
- 控制弹簧在局部俯仰旋转轴上的刚度。
pitch_damping
- 控制弹簧在局部俯仰旋转轴上的阻尼。较小的值会导致显著的抖动,而较大的值会导致更微妙的运动。
along_stiffness
- 控制弹簧沿轴方向的刚度。仅在为该骨骼指定“allow_length_flex”时使用。
along_damping
- 控制弹簧沿轴方向的阻尼。仅在为该骨骼指定“allow_length_flex”时使用。
allow_length_flex
- 通常,抖动骨骼会保持其长度刚性。指定此项后,长度也会变得可变。
length
- 模拟质量距离根部的距离(以英寸为单位)。此值应与骨骼长度匹配;若设置的值大于骨骼长度,且未仔细调整,则可能导致抖动骨骼出现奇怪且不可预测的运动。
tip_mass
- 模拟质量受重力影响的程度。零表示禁用重力效果,而1000表示质量很重。
is_rigid
如果抖动骨骼是“刚性的”,则会在骨骼末端放置一个模拟质量,骨骼会像一个刚性棍棒一样运动。这种弹簧仅会产生旋转运动,旋转中心位于抖动骨骼的根部。
length
- 模拟质量距离根部的距离(以英寸为单位)。此值应与骨骼长度匹配;若设置的值大于骨骼长度,且未仔细调整,则可能导致抖动骨骼出现奇怪且不可预测的运动。
tip_mass
- 模拟质量受重力影响的程度。零表示禁用重力效果,而1000表示质量很重。
角度约束
以下参数可以在 is_rigid
(刚性)或 is_flexible
(柔性)参数组中使用。请注意,可以不使用这些约束,也可以全部使用,但每个约束都会带来一定的计算开销。
angle_constraint
- 指定允许的最大角偏转,创建一个抖动骨骼无法穿透的圆锥形边界。
yaw_constraint (min max)
- 指定沿局部偏航旋转轴允许的最小和最大角偏转。角度值不应超过+/- 90度。

yaw_friction
- 非零值会在抖动骨骼沿偏航限制平面滑动时产生摩擦力。摩擦值不应超过20单位。
pitch_constraint
- 指定沿局部俯仰旋转轴允许的最小和最大角偏转。角度值不应超过+/- 90度。
pitch_friction
- 非零值会在抖动骨骼沿俯仰限制平面滑动时产生摩擦力。摩擦值不应超过20单位。
has_base_spring
如果抖动骨骼具有“基础弹簧”,模拟质量将被放置在骨骼的基部。这种弹簧仅产生平移运动,使整个抖动骨骼在 X、Y 和 Z 轴上移动。
stiffness
- 基础弹簧的刚度。
damping
- 基础弹簧的阻尼系数。
left_constraint
- 骨骼沿局部 X 轴允许的最大移动距离。
left_friction
- 当弹簧与左侧约束摩擦时,在向上/向前平面内施加的摩擦力大小。
up_constraint
- 骨骼沿局部 Y 轴允许的最大移动距离。
up_friction
- 当弹簧与向上约束摩擦时,在左侧/向前平面内施加的摩擦力大小。
forward_constraint
- 骨骼沿局部 Z 轴允许的最大移动距离。
forward_friction
- 当弹簧与向前约束摩擦时,在左侧/向上平面内施加的摩擦力大小。
base_mass
- 基础弹簧受重力影响的程度。
is_boing
生成一个简单的压缩与伸展的正弦波“弹跳”效果。当骨骼移动并达到速度阈值时,会触发缩放与伸展的动态效果,使骨骼在运动中呈现弹性外观。
注意:在 中,执行弹跳效果时尺寸有时会随机变为 0,导致效果消失。
impact_speed
触发弹跳效果所需的速度阈值。当骨骼的速度超过此值时,弹跳动画会被激活。
示例:20。
此效果在 中似乎并未按预期工作,即使设置了高值,任何形式的移动似乎都会触发效果。
impact_angle
确定弹跳效果对骨骼运动方向相对于其方向的敏感度。只有与指定角度一致的运动会触发效果。 示例:90。 逻辑上,值的范围为 0 到 180。
damping_rate
控制弹跳效果随时间的衰减速度。较低的值会导致动画持续时间更长。值为 0.0 时,弹跳效果不会停止动画;在触发后会无限生长和恢复。值为 1.0 时,动画会快速消退,而值为 3.0 或更高可能会使其几乎立即恢复正常。
frequency
频率较高时会导致更快的运动,而较低的频率会导致更慢的运动。值为 0.0 时,动画完全停止,而值为 40.0 时会使动画极其快速。
amplitude
控制弹跳效果期间骨骼缩放的幅度。较高的值会产生更夸张的缩放与伸展效果。骨骼速度相对于 impact_speed
阈值的大小会影响感知的振幅。
在 中,即使未达到最大阈值速度,此效果似乎始终触发最大振幅。