Kinematics ngược

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Kinematics ngược (IK) là một kỹ thuật phổ biến trong hoạt hình máy tính để hiệu quả làm cho các nhân vật di chuyển và tương tác một cách thực tế với môi trường của chúng. Quá trình tạo ra chuyển động thực tế cho một nhân vật thường yêu cầu nhiều lần thử nghiệm và điều chỉnh nhỏ các khớp khác nhau. Với IK, bạn có thể tạo dáng và hoạt hình cho nhiều phần của nhân vật bằng cách điều chỉnh hoặc thay đổi một đối tượng duy nhất.

Kỹ thuật hoạt hình này có thể cung cấp giải pháp cho những ví dụ sau:

Giữ và tạo dáng cho tay của nhân vật trong khi tự động điều chỉnh các chi liên quan như cổ tay, khuỷu tay và vai.
Làm cho chân của nhân vật tương tác thực tế trên các bề mặt và độ dốc khác nhau.
Giữ và di chuyển một đối tượng mục tiêu riêng lẻ để nhanh chóng tạo ra các tương tác thực tế với nhân vật và đạo cụ của bạn.

IKControl

Bạn có thể sử dụng IKControl để thêm IK một cách thủ tục vào các rig nhân vật của bạn bên ngoài Animation Editor. Studio cho phép bạn lập trình áp dụng IK cho tất cả các nhân vật, chẳng hạn như R15, Rthro và các nhân vật nhập khẩu tùy chỉnh để tạo ra chuyển động và tương tác thực tế trong trò chơi của bạn.

Khi thêm một IKControl, hãy đặt các thuộc tính cần thiết đúng cách để tránh các kết quả hoạt hình không như mong đợi và không tự nhiên. Giống như tất cả các hoạt hình, hãy kiểm tra IKControls của bạn để đảm bảo rằng bạn đạt được hành vi mong muốn.

Các thuộc tính cần thiết

Khi thêm một IKControl vào Humanoid hoặc AnimationController của nhân vật, bạn phải đặt các thuộc tính cần thiết sau đây để kích hoạt IK:

Thuộc tínhMô tả
TypeXác định loại hành vi của điều khiển IK. Xem Enum.IKControlType để biết danh sách các tùy chọn hành vi. Các loại hành vi phổ biến là Position hoặc Transform.
EndEffectorMột BasePart hoặc Bone trong rig nhân vật của bạn theo dõi về phía Target. Ví dụ, bạn có thể đặt một xương LeftHandEndEffector để với tới một đối tượng tay nắm cửa được đặt là Target.
TargetĐối tượng mà EndEffector đạt đến hoặc chỉ về phía. Một Target có thể là bất kỳ đối tượng nào có vị trí thế giới.
ChainRootĐịnh nghĩa chuỗi của BaseParts hoặc BonesIKControl ảnh hưởng đến. Tất cả các phần kết nối giữa ChainRootEndEffector đều bị ảnh hưởng bởi IKControl sử dụng loại hành vi đã định nghĩa.

Ví dụ, nếu LeftHand của nhân vật của bạn được đặt là Target, bạn có thể áp dụng IK cho toàn bộ cánh tay trái bằng cách đặt ChainRoot thành LeftUpperArm. Để chỉ áp dụng IK cho các phần dưới khuỷu tay, hãy đặt ChainRoot thành LeftLowerArm.

Kiểm tra IKControls

Bạn có thể thêm và chỉnh sửa IKControl một cách lập trình hoặc trực tiếp thông qua Explorer. Bạn thậm chí có thể thêm và thực hiện các thay đổi đối với IKControl trong một bài kiểm tra Play để nhanh chóng kiểm tra cách các thuộc tính khác nhau ảnh hưởng đến chuyển động của nhân vật.

Để nhanh chóng kiểm tra IKControl của bạn bằng cách sử dụng một Attachment làm mục tiêu:

  1. Từ mezzanine của Studio, bắt đầu một bài kiểm tra.

  2. Trong Explorer, điều hướng đến WorkspaceModel của người dùng của bạn. Instance Model này được đặt theo tên tài khoản Roblox hiện tại của bạn.

  3. Nhấp vào biểu tượng bên cạnh HumanoidRootPart của mô hình nhân vật của bạn và thêm một Attachment.

  4. Chọn Attachment và sử dụng công cụ Di chuyển để đặt đối tượng trước nhân vật của bạn trong viewport.

  5. Trong cửa sổ Explorer, chọn biểu tượng bên cạnh Humanoid của nhân vật và thêm một IKControl.

  6. Chọn IKControl và đặt các giá trị thuộc tính sau trong cửa sổ Properties:

    1. Type: Chọn Transform từ danh sách thả xuống.
    2. EndEffector: Chọn MeshPart LeftHand của mô hình trong Explorer.
    3. Target: Chọn đối tượng Attachment mới tạo trong Explorer.
    4. ChainRoot: Chọn MeshPart LeftUpperArm của mô hình trong Explorer.
    Các thuộc tính IKControl
    Explorer - Mô hình Nhân vật

    Cánh tay trái của nhân vật bạn giờ nên vươn tới mục tiêu Attachment. Bạn có thể thử nghiệm với việc di chuyển Attachment hoặc chỉnh sửa các thuộc tính của IKControl để đạt được các kết quả khác nhau.

Thêm các ràng buộc

Bạn có thể sử dụng Constraints để giới hạn cách các khớp có thể di chuyển khi đạt đến mục tiêu của chúng. Các ràng buộc có thể đảm bảo rằng các khớp như khuỷu tay và đầu gối uốn cong một cách tự nhiên, hoặc để làm cho các khớp cơ khí quay theo một hướng cụ thể.

Khuỷu tay uốn cong không tự nhiên
Khuỷu tay uốn cong đúng cách

Để thêm các ràng buộc cho nhân vật của bạn bằng cách sử dụng IKControl, IKControl và ràng buộc phải đáp ứng các điều kiện sau:

Các hướng dẫn sau mô tả quá trình thêm một HingeConstraint để giới hạn việc xoay của khuỷu tay của nhân vật và thêm một BallSocketConstraint cho cổ tay để giới hạn góc quay.

Khuỷu tay

Các nhân vật R15 của Roblox đã bao gồm các attachment trong các khớp mà bạn có thể sử dụng để áp dụng ràng buộc khuỷu tay. Đối với khuỷu tay, cả LeftUpperArm và LeftLowerArm đều bao gồm một LeftElbowRigAttachment. Ngoài việc thêm một ràng buộc, bạn cũng cần thêm các attachment con bổ sung vào LeftElbowRigAttachment của mỗi phần để chỉ định trục nào mà khuỷu tay có thể quay quanh.

Để thêm HingeConstraint và các attachment con:

  1. Trong Explorer, tìm mô hình của bạn và nhấp vào nút .

  2. Thêm một HingeConstraint với tên LeftElbowConstraint.

  3. Trong Explorer, điều hướng đến LeftUpperArm.LeftElbowRigAttachment và thêm một attachment:

    1. Nhấp vào nút để thêm một Attachment với tên LeftElbowConstraintAttachment0.

    2. Trong viewport, chọn attachment và sử dụng công cụ Xoay để xoay attachment sao cho trục PrimaryAxis màu vàng là trục của việc quay được mong muốn của khuỷu tay.

    3. Đặt thuộc tính LeftElbowConstraint.Attachment0 thành attachment mới này.

  4. Trong Explorer, điều hướng đến LeftLowerArm.LeftElbowRigAttachment của mô hình bạn và thêm một attachment:

    1. Nhấp vào nút và thêm một Attachment với tên LeftElbowConstraintAttachment1.
    2. Đặt thuộc tính LeftUpperArm.LeftElbowConstraint.Attachment1 thành attachment mới này.
    3. Sao chép thuộc tính LeftElbowConstraintAttachment0.CFrameOrientation và dán nó như giá trị thuộc tính LeftElbowConstraint.Attachment1.CFrameOrientation.

Kiểm tra IKControl của bạn để xác minh rằng khuỷu tay chỉ quay quanh trục bản lề của nó:

Cổ tay

Ngay cả khi có ràng buộc khuỷu tay, IKControl vẫn có thể tạo ra những dáng không thực tế ở cổ tay.

Cổ tay uốn cong không tự nhiên ở một số hướng

Bạn có thể cải thiện điều này bằng cách thêm một BallSocketConstraint để giới hạn việc quay của cổ tay. Mặc dù điều này tương tự như quá trình thêm một HingeConstraint vào khuỷu tay, bạn có thể sử dụng thuộc tính LimitsEnabled trên ràng buộc này để kiểm soát thêm phạm vi chuyển động của cổ tay.

Để thêm một BallSocketConstraint cho cổ tay:

  1. Trong Explorer, tìm mô hình của bạn và nhấp vào nút .
    1. Thêm một BallSocketConstraint với tên LeftWristConstraint.
  2. Tìm LeftLowerArm.LeftWristRigAttachment của mô hình bạn và thêm một attachment:
    1. Nhấp vào nút và thêm một Attachment với tên LeftWristConstraintAttachment0.
    2. Trong viewport, chọn attachment và sử dụng công cụ Xoay để xoay attachment sao cho trục PrimaryAxis màu vàng hướng về phía đầu ngón tay của mô hình.
    3. Đặt thuộc tính LeftWristConstraint.Attachment0 thành attachment mới LeftWristConstraintAttachment0.
  3. Tìm LeftHand.LeftWristRigAttachment của mô hình bạn và thêm một attachment:
    1. Nhấp vào nút và thêm một Attachment với tên LeftWristConstraintAttachment1.
    2. Sao chép thuộc tính LeftWristConstraintAttachment0.CFrameOrientation và dán như thuộc tính LeftWristConstraintAttachment1.CFrameOrientation.
    3. Đặt thuộc tính LeftWristConstraint.Attachment1 thành attachment mới LeftWristConstraintAttachment1.
  4. Trong Explorer, chọn LeftWristConstraint.
  5. Trong cửa sổ Properties, đặt các thuộc tính sau:
    1. Bật LimitsEnabled.
    2. Đặt UpperAngle thành 80. Điều này kiểm soát mức độ mà trục của ràng buộc có thể quay, và 80 độ là khoảng mức mà cổ tay nên có thể uốn cong.
  6. Tùy thuộc vào nhân vật của bạn, bạn có thể muốn điều chỉnh hướng của hình nón. Bạn có thể làm điều này bằng cách sử dụng công cụ Xoay để xoay Attachment0 của ràng buộc.

Khi chọn LeftWristConstraint, một hình nón màu xanh lá cây xuất hiện để minh họa phạm vi chuyển động của cổ tay.

Với ràng buộc đã được thiết lập, hãy kiểm tra IKControl với bàn tay chỉ xuống phía trước nhân vật và cổ tay nên quay và uốn cong thực tế hơn.

©2026 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.