IKControl 实例生成程序动画位置,使用逆向动画(IK)来实现角色在其环境中的真实反应。
例如,您可以让角色将手放在门把手上,这会使角色在其位置独立于其位置。IKControls 提供优势,需要为您的游戏创建大幅减少动画,同时为您的体验提供更真实、更光滑的感觉。
IKControls 必须是 Humanoid 或 AnimationController 的子集,并且所有必要属性设置都
您可以使用 IKControls 来创建角色:
- 旋转头部和躯干以查看世界上的一个重要点。
- 修改其脚位以反应动态地形。 调整其腿和脚以适当地放置它们在地形上,并且有岩石和斜坡。
- 拿起枪,将手放在握把上,无需为游戏中的每个枪创建动画。
- 指向世界上的一个点,以便枪头的提示正确地指向您想要射击的东西。 特别有用在第三人称射击者。
- 把它的手放在汽车的方向盘上,并跟随它当它旋转。
- 更多!
IKControl 将覆盖所有部件之间的动画,在 ChainRoot 和
代码示例
local character = script.Parent.Character
local humanoid = character.Humanoid
local root = character.HumanoidRootPart
-- Create a new attachment to use as the IKControl.Target
local target = Instance.new("Attachment")
target.CFrame = CFrame.new(-1, 0, -1)
target.Parent = root
local ikControl = Instance.new("IKControl")
ikControl.Type = Enum.IKControlType.Position
ikControl.EndEffector = character.LeftHand
ikControl.ChainRoot = character.LeftUpperArm
ikControl.Target = target
ikControl.Parent = humanoid
概要
属性
您最终要移动角色的部分。例如,上臂。必须是EndEffector的祖先,并且必须是BasePart或Bone在您的角色中。
切换控制开关。 默认为 true。
您想要移动到达 Target 。例如,您角色的手。必须是 ChainRoot 的后代,并且必须是 BasePart 或 1> Class.Bone1> 在您的角色。
在其本地空间上添加了一个额外的偏移,以改变它移动的地方。
在 Target 上添加额外的 Offset 来改变 EndEffector 的移动。
可选的实例,用于确定链的弯曲方向。你可以使用它来指定膝盖或手臂的弯曲方向。
指定控制的解决顺序。更高的值有更高的优先级。
指定它所需的平均秒数,以便EndEffector 顺利达到Target。
它可以指向或指向世界上任何地方的对象。它可以是任何在世界上具有位置的东西,例如 EndEffector 、 BasePart 、 Attachment 或 2>Class.Motor6D2> 。
指定解决器如何满足此控制。
指定 IK 控制目标的重量。应该在 [0, 1] 范围内。
方法
属性
EndEffectorOffset
端
或者,您可以使用附件,将附件设置为 EndEffector,将其移动到 Target 而不是它的部件,从而实现相同的结果。
您还可以使用 EndEffectorOffset 来修改 EndEffector 在使用 Target 作为 1> Class.IKControl.Type|Type1> 时所指向的 4> Class.I
Pole
The Pole is an optional Instance that gives you control over how the intermediate parts in your character should bend. It can be anything that has a position in the world, such as BasePart , 1> Class.Arrow1> , and 4> Class.Bone4> . It is by default nil. When you specify it, the chain might not bend as you
Priority
当多个控件在角色上激活时,多个控件之间的顺序在基础系统中解决的顺序会影响最终生成的姿势。通过修改此值,您指定控件的优先级。更高值会有更高的优先级,而且更高级别的控件将在后台解决。因此,如果您在角色上有多个 IK 控件,并且其中一个比另一个重要,请
通过改变 Type 的行为,您可以改变控制的行为。这些是可用的选项:
- 位置:将 EndEffector 位置设置为 Target 。
- 旋转:将 EndEffector 旋转对齐 Target 。
- LookAt:移动和或向链条的整个链条以使在 EndEffector 点上世界指定的位置 Target 。