IKControl

顯示已棄用項目

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

IKControl 實例會生成使用逆向動畫學 (IK) 的程序動畫姿勢。它們允許您讓角色在環境中實際地回應。

舉例來說,您可以讓角色放置手指在門把手上,並且角色會在位置上獨立於角色的位置。IKControls 提供可以為您的遊戲創建更少的動畫,同時提供更實際、更光滑的體驗。

IKControls 必須是 HumanoidAnimationController 的子兒,並且設定好所有必要的

您可以使用 IKControls 來製作角色:

  • 旋轉它的頭部和軀體來查看世界上的一個點 of interest。
  • 修改它的腳地位置以適應動態地形。 調整它的腳腳和腳腳以適當地放置它們在地形上,以及擁有岩石和傾斜。
  • 拿起槍和將其手放在握把上,而不需要為遊戲中的每個槍創建動畫。
  • 指向世界上的一個點,讓槍點的尖端正好對準你想要射擊的地方。對於第三人稱射擊模式的玩家來說,這是非常有用的。
  • 把它放在汽車的方向盤上,當它旋轉時跟隨它。
  • 更多!

IKControl 會覆蓋所有零件之間的動畫,在 ChainRoot

範例程式碼

IKControl setup

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 的祖先,並且必須是 BasePartBone 在您的角色中。

  • 平行讀取

    切換控制開關。 預設為 "真"。

  • 平行讀取

    您想要移動到Target的部分。例如,您角色的手。必須是ChainRoot的後代,並且必須是BasePart或1>Class.Bone1>在您的角色中。

  • 在本地空間上加上一個額外的偏移,以改變它移動的地方。

  • 平行讀取

    Target 上添加額外的偏移來改變 EndEffector 的移動位置。

  • 平行讀取

    一個可選的實例,可以決定鏈子的彎曲方向。 您可以使用此來指定腳踝或膝的彎曲方向。

  • 平行讀取

    指定控制解決的順序。值越高,優先權越高。

  • 平行讀取

    指定需要平均Class.IKControl.EndEffector|EndEffector 平均Target 平均Class.IKControl.EndEffector 平均1>Class.IKControl.Target|Target1> 平均4>Class.IKControl.EndEffector4> 平均7>Class.IKControl.Target|Target7> 平均0>Class.IKControl.EndEffector0> 平均EndEffector3> 平

  • 平行讀取

    它可以是任何位於世界上的地方,例如 EndEffectorBasePartAttachment 或 2>Class.Motor6D2> 。

  • 指定解決器如何滿足此控制。

  • 平行讀取

    指定 IK 控制目標的重量。應該在 [0, 1] 範圍內。

屬性

ChainRoot

平行讀取

通過指定 ChainRootEndEffector

Enabled

平行讀取

這個屬性允許您切換 IK 控制開關。 它是預設開啟的。當 Enabled 為 false 時,IK 控制關閉,並且不是由基礎解釋器解決。

EndEffector

平行讀取

Class.IKControl.EndEffector|EndEffector 描述您想要影

EndEffectorOffset

平行讀取

或者,您可以使用附件設定附件為 EndEffector,將它移動到 Target 而不是它的附件,從而獲得相同的結果。

您也可以使用 EndEffectorOffset 來修改 EndEffector 在使用 Target 作為 1> Class.IKControl.Type|Type1> 時所指向的軸。

Offset

平行讀取

偏移是在 CFrame

平行讀取

Class.IKControl.Pole|Pole 是一個可選的 Instance ,它可以決定角色中的關節部位應該如何彎曲。它可以是任何位置在世界上的 BasePart 或 1>Class.IKControl.ChainBase1> 的一部分。當你指

Priority

平行讀取

當多個控制對一個角色啟用時,系統會因為基礎系統的順序而解決控制的次序。當你改變這個值時,你會指定控制是否以預期的順序解決。值越高,結果就越高。當你有更多個IK控制對一個角色啟用時,會先解決更重要的控制,因為它們的結果可能會覆蓋上一個

SmoothTime

平行讀取

此值指定 EndEffector 到達 Target 所需的平均秒數。 行為是由溫度對準來決定的,當接近目標時,

Target

平行讀取

Class.IKControl.Target|Target 代

平行讀取

通過變更 Type 的行為,您可以改變控制的行為。這些是可用的選項:

Weight

平行讀取

您可以使用此屬性來控制控制對角色的姿勢的影響。 值應該在 [0, 1] 範圍內。 0 表示沒有效果,而 1 表示完全的效果。 值在此範圍之外是隨機變更。 平滑此值可以讓您調整特定控制的陰差,以避免發生異常的動作。 預設為 1。

重量會決定 End-Effector 和 IK 目標之間的 interpolation 因素。將重量設為 0 不會禁用 IK 控制,因為其他因素,包括 SmoothTime 平滑因素和 Pole,仍然可以變更姿勢。要真正禁用 IK 控制,請將 Enabled 屬性設為 false。

方法

GetChainCount


返回

GetChainLength


返回

GetNodeLocalCFrame

參數

index: number

返回

GetNodeWorldCFrame

參數

index: number

返回

GetRawFinalTarget


返回

GetSmoothedFinalTarget


返回

活動