移動器約束

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

物理引擎包含以下 Constraints,這些約束對一個或多個組件施加力量或扭矩進行移動。此外,還提供各種 機械約束,這些約束作為概念上的機械連接,包括鉸鏈、彈簧、繩索等。

線性速度

LinearVelocity 對一個組件施加力量以保持沿著 3D 向量、線或 2D 平面的恆定速度
角速度

AngularVelocity 對一個組件施加扭矩以保持恆定的角速度
對齊位置

AlignPosition 施加力量使兩個附著點一起移動,或將一個附著點移動到目標位置
對齊方向

AlignOrientation 施加扭矩以對齊兩個附著點,或將一個附著點對齊到目標方向
向量力量

VectorForce 對一個組件施加恆定的線性力量
扭矩

Torque 從其質心對一個組件施加恆定扭矩
線性力量

LineForce 沿著連接其兩個附著點的理論線施加力量
動畫約束

AnimationConstraint 通過偏移變換 CFrame 約束其 Attachments

約束可視化

為了在 Studio 中準確地可視化約束,您可以從 視圖 菜單或通過相應的快捷鍵切換以下選項:

  • 顯示焊接 (AltWW) — 將 WeldConstraints 單獨顯示,而不是與其他約束的可視化一起顯示。
  • 顯示約束詳細資訊 (AltDD) — 顯示非焊接約束的完整視覺細節。

創建約束

移動器約束通常連接一個或兩個 AttachmentsBones。當連接到 Bones 時,約束將使用它們的動畫位置和方向。

要創建機械約束,您可以從約束選擇器/按鈕插入一個或通過 資源管理器 窗口來插入。

  1. 在 Studio 的 模型 標籤工具欄中,點擊並按住約束按鈕的小角落箭頭以打開其選擇器菜單,然後選擇所需的約束。

    在 Studio 工具欄中顯示的約束選擇器
  2. 在 3D 視口中,將鼠標懸停在任何 PartMeshPart 上並點擊以在可視化的點添加新的 Attachment 到該部件。或者,將鼠標懸停並點擊現有的 AttachmentBone 以用於該約束。

  3. 一些移動器約束在其功能中利用或支持輔助附著點,因此該工具可能提示您在另一個 PartMeshPart、或 AttachmentBone 上重複前一步。

    使用一個附著點的角速度
    AngularVelocity 使用一個附著點
    使用兩個附著點的對齊位置
    AlignPosition 使用兩個附著點

物理模擬

要在移動旋轉部件時模擬物理,你可以在Studio的工具欄中從幾何模式切換到物理模式,有效地迫使部件遵循物理限制。例如,如果兩個部件由 RopeConstraint 連接,你拖動一個部件在場景中,另一個部件會隨之移動,因為繩索變得緊繃。

過渡到舊版移動器

如果您的遊戲依賴於舊版的 BodyMover 約束,請查看以下注意事項以進行轉換到現代移動器約束。

AlignPosition 滿足絕大多數使用由已棄用的 BodyPosition 移動器的案例。為了與舊版移動器獨立處理每個組件的方式保持同步並允許沿每個維度施加不同的力量,ForceLimitMode 屬性允許約束在 Magnitude 模式或 PerAxis 模式下運行:

  • Magnitude 模式下,保留現有行為,並將 MaxForce 解釋為一種大小。

  • PerAxis 模式下,可以獨立指定沿每個軸的力量。由於最大力量被指定為一個向量,力量的參考框架也可以通過 ForceRelativeTo 屬性指定,選項包括 WorldAttachment0Attachment1。此外,內部控制器的公式也被修改以匹配 BodyPosition

AlignOrientation 滿足絕大多數使用由已棄用的 BodyGyro 移動器的案例。AlignOrientationAlignType 模式為大多數應用提供了足夠的靈活性,並且組合多個約束可以復現向量扭矩限制。此外,PrimaryAxisLookAt 模式強制約束的第一個附著點 (Attachment0) 的主軸始終指向第二個附著點 (Attachment1),使得添加動作追蹤攝像頭或導引導彈等功能變得容易得多。

LinearVelocity 滿足絕大多數使用由已棄用的 BodyVelocity 移動器的案例。雖然舊版移動器允許設置 MaxForce 向量,但該向量力量的典型應用是將特定組件的值置零,從而允許在該維度上禁用約束。LinearVelocity 通過在不同的 VelocityConstraintMode 模式下操作來實現類似的效果,這些模式對應於一個 (Line)、兩個 (Plane) 和三個 (Vector) 維度。

此外,ForceLimitMode 屬性選項為 PerAxis 能夠讓任何向量力量的應用及其所有非零組件,例如,沿著單個軸增加力量以對抗重力。

雖然 AngularVelocity 與已棄用的 BodyAngularVelocity 移動器存在一些不一致之處,但社區並未強調與這些不一致相關的具體案例。

作為一個單獨的改進,AngularVelocityAttachments 一起使用,並且 RelativeTo 屬性允許您指定力量被指定的 CFrame,例如 WorldAttachment1

VectorForce 滿足由已棄用的 BodyForceBodyThrust 移動器提供的所有使用案例。該現代約束與 Attachments 一起使用,其 RelativeTo 屬性允許您對相對於中心的偏移施加力量,類似於 BodyThrust.Location 的工作方式。

LineForceAlignOrientation 的組合滿足大多數使用由已棄用的 RocketPropulsion 移動器的案例。在導引導彈的例子中,LineForce 可用於控制 RocketPropulsion 的 "跟隨目標" 行為,而 AlignOrientation 和其 LookAtPosition 屬性可用於控制 "面對目標" 行為。

©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。