Trình chỉnh sửa đồ họa hoạt hình

*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.

Trình chỉnh sửa đồ họa hoạt hình là một công cụ trực quan dựa trên nút giúp các nghệ sĩ kỹ thuật và nhà hoạt hình xây dựng logic hoạt hình phức tạp trực tiếp trong Roblox Studio. Bằng cách cung cấp một giao diện hợp lý để tạo ra các hành vi như cây pha trộn, nó loại bỏ sự phụ thuộc truyền thống vào việc lập trình thủ công cho chuyển động của nhân vật.

Hệ thống này hoạt động song song với quy trình làm việc hoạt hình hiện có của bạn:

  • Trình chỉnh sửa hoạt hình: Tiếp tục sử dụng Trình chỉnh sửa hoạt hình như công cụ chính của bạn để tạo ra các clip riêng lẻ và tinh chỉnh các keyframe và đường cong.
  • Trình chỉnh sửa đồ họa hoạt hình: Sử dụng công cụ này để lấy những clip đó và tổ chức chúng thành một cây logic để điều khiển hành vi chơi game tinh vi.

Được thiết kế để nâng cao sự hợp tác, đồ thị trực quan cho phép các nhà phát triển nhanh chóng kiểm tra, gỡ lỗi và hiểu logic được tạo ra bởi các nhà hoạt hình. Trong khi các nghệ sĩ tập trung vào việc tinh chỉnh chuyển động tương tác, các nhà phát triển vẫn có thể truy cập các nút đồ họa hoạt hình theo cách lập trình để kiểm soát trực tiếp các hoạt hình và trạng thái pha trộn.

Xây dựng một đồ thị


Để bắt đầu xây dựng logic cho một nhân vật có thể hoạt hình, hãy truy cập trình chỉnh sửa đồ họa hoạt hình qua tab Avatar trong thanh công cụ Studio. Các bước sau đây minh họa cách khởi tạo một rig và xây dựng một mạng lưới nút cơ bản sử dụng các hoạt hình đi bộ và vẫy tay mặc định.

Để tìm hiểu sâu hơn về các ứng dụng thực tiễn, bạn có thể khám phá Tài liệu tham khảo đồ họa hoạt hình, chứa cả ví dụ triển khai cơ bản và phức tạp.

Để tạo đồ thị hoạt hình của riêng bạn, tương tự như ví dụ cơ bản được cung cấp trong tài liệu tham khảo, hãy sử dụng các bước sau:

  1. Trong Studio, thêm một rig có thể hoạt hình bằng cách điều hướng đến tab Avatar và chọn Nhân vật ⟩ Nhân vật của tôi.

    Nút Nhân vật được làm nổi bật trong thanh công cụ của Studio.
  2. Mở Trình chỉnh sửa đồ họa hoạt hình bằng cách điều hướng đến Trình chỉnh sửa đồ thị trong tab Avatar.

    Trình chỉnh sửa đồ họa hoạt hình được chỉ định trong thanh công cụ của Studio.
  3. Chọn rig có thể hoạt hình trong không gian 3D và chọn Tạo đồ thị.

  4. Trong Trình chỉnh sửa đồ thị, nhấp chuột phải và chọn Clip.

    Danh sách các nút trong menu nhấp chuột phải
  5. Trong nút Clip mới, đặt ID Hoạt hình.

    1. Chọn menu thả xuống ID Hoạt hình.

    2. Để nhập một ID tài sản hoạt hình cụ thể, nhấp vào Nhập.

      Chỉ ra một trường trên mô-đun nhập hoạt hình để thêm ID Hoạt hình
    3. Trong trường ID Hoạt hình, thêm hoạt hình Đi bộ mặc định: 507777826.

    4. Chọn Nhập.

  6. Thêm một nút clip khác bằng cách lặp lại các bước 4-5 sử dụng hoạt hình Vẫy mặc định: 507770239.

    Hai nút clip với ID Hoạt hình đã được điền
  7. Trong Trình chỉnh sửa đồ thị, nhấp chuột phải và chọn Thêm.

    Thêm nút
  8. Kết nối các nút Clip với nút Thêm bằng cách kéo đầu nối đầu ra phía trên bên phải đến cổng thích hợp:

    1. Kết nối nút Clip với hoạt hình Đi bộ đến cổng Cơ sở.
    2. Kết nối nút Clip với hoạt hình Vẫy đến cổng Thêm.
    Cả hai nút clip được gắn vào nút thêm
  9. Từ nút Thêm, kết nối đầu nối đầu ra phía trên bên phải đến cổng Đầu ra Đồ thị Tư thế.

    Tất cả các nút được kết nối với một nút đầu ra cuối cùng
  10. TÙY CHỌN
    Gán một tham số cho biến Tốc độ của bạn.

    1. Nhấp và kéo cổng Tốc độ màu xanh lá cây đến một khu vực trống. Một nút tham số mới sẽ hiển thị.

      Nhấp và kéo đầu nối từ cổng Tốc độ của nút Clip.
    2. Ở góc trên bên trái của trình chỉnh sửa đồ thị, sử dụng bảng tham số để nhanh chóng sửa đổi các tham số trong các nút của bạn. Bạn cũng có thể truy cập điều này theo cách lập trình.

      Bảng tham số, nút tham số và nút clip hiển thị các giá trị chung.
  11. Kiểm tra hoạt hình bằng cách nhấn nút phát.

    Biểu tượng nút phát để xem trước các hoạt hình
  12. Hãy thử kiểm tra các trọng số, tốc độ, chế độ phát và các hoạt hình khác nhau. Để biết thêm thông tin về các nút riêng lẻ, hãy xem Tài liệu tham khảo Nút.

Tích hợp API

Việc tạo và triển khai một Đồ thị Hoạt hình tuân theo quy trình hoạt hình tiêu chuẩn của Roblox. Sau khi chọn một rig trong Trình chỉnh sửa Đồ thị Hoạt hình, một tài sản AnimationGraphDefinition mới được tạo. Tài sản này phục vụ như một container cho các nút, kết nối và tham số của bạn. Khi logic của bạn đã hoàn tất, bạn xuất bản đồ thị để nhận ID Tài sản tiêu chuẩn.

Trong các kịch bản của bạn, bạn tương tác với các đồ thị này bằng cách tải chúng lên một Animator như bạn làm với một hoạt hình truyền thống. Để điều khiển logic nội bộ của đồ thị, hãy sử dụng AnimationTrack:SetParameter() để truyền các giá trị thời gian thực—như tốc độ di chuyển hoặc các boolean trạng thái—trực tiếp vào các biến của đồ thị.

local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://123456789" -- ID Đồ thị của bạn
local animationTrack = animator:LoadAnimation(animation)
animationTrack:Play()
-- Cập nhật tham số động qua RunService
game:GetService("RunService").Stepped:Connect(function(_, dt)
local currentSpeed = humanoidRootPart.AssemblyLinearVelocity.Magnitude
animationTrack:SetParameter("humanoidSpeed", currentSpeed)
end)

Tài liệu tham khảo Nút

Mỗi nút đồ họa hoạt hình phục vụ như một cổng logic hoặc nguồn dữ liệu xử lý dữ liệu hoạt hình trước khi nó đến rig nhân vật. Phần này cung cấp một phân tích kỹ thuật về các khối chức năng trong Trình chỉnh sửa Đồ thị Hoạt hình. Tất cả các nút hiện tại đều xuất ra một tư thế hoạt hình.

Mỗi phần nút bao gồm:

  • Định nghĩa – Tóm tắt về mục đích và vai trò của nút trong đồ thị.
  • Đầu vào – Các luồng dữ liệu vào nút. Nhiều đầu vào được biểu diễn dưới dạng Input1, Input2, ..., InputN.
  • Thuộc tính đầu vào – Các cài đặt gắn trực tiếp với một đầu vào cụ thể (một đầu vào Nhàn rỗi được gán cho một Vị trí của 0.5 trên nút Blend1D).
  • Dữ liệu sự kiện – Các sự kiện được phát ra hoặc tiêu thụ bởi nút để kích hoạt logic đồ thị nội bộ hoặc các kịch bản Luau bên ngoài. Hành vi này có thể thay đổi trong suốt quá trình phát triển beta.

Quy tắc sự kiện toàn cầu

Đối với tất cả các nút và chuyển tiếp, các quy tắc sau đây áp dụng theo mặc định:

  • Các sự kiện lan truyền lên trên từ nút nguồn của chúng qua đồ thị. Mỗi sự kiện mang một trọng số đại diện cho ảnh hưởng của nguồn của nó trong sự pha trộn cuối cùng. Nếu trọng số đạt đến không tại bất kỳ điểm nào, sự kiện sẽ bị tắt tiếng.
  • Các nút không có logic sự kiện tùy chỉnh sẽ truyền tất cả các sự kiện qua mà không thay đổi; các nút pha trộn hoặc chọn giữa các đầu vào có thể điều chỉnh trọng số hoặc chặn các sự kiện từ các đầu vào không chính (xem phần Sự kiện theo nút).
  • Các sự kiện đánh dấu đạt đến đỉnh của đồ thị có thể được quan sát thông qua AnimationTrack:GetMarkerReachedSignal().

Clip

Nút Clip

Một tham chiếu đến tài sản AnimationClip. Đây phục vụ như một nút lá trong đồ thị, tạo ra dữ liệu hoạt hình thô mà cung cấp cho các nút khác để pha trộn, chọn hoặc sửa đổi.

Đầu vào
  • Không có
Thuộc tính
Thuộc tínhLoạiMô tả
AnimationIdChuỗiTài sản hoạt hình để phát (ví dụ: rbxassetid://12345).
PlayModeEnum.AnimationNodePlayMode

Định nghĩa hành vi của clip khi nó đạt đến cuối thời gian của nó.

  • Lặp lại (mặc định): Tự động khởi động lại từ đầu khi clip kết thúc.
  • PingPong: Phát từ đầu đến cuối, sau đó ngay lập tức phát ngược từ cuối đến đầu.
  • Chơi một lần và giữ: Phát một lần và duy trì tư thế cuối cùng khi hoàn thành.
  • Chơi một lần và đặt lại: Phát một lần và quay lại tư thế bắt đầu ban đầu khi hoàn thành.
ReverseBooleanĐiều khiển hướng phát lại.
SpeedSốMột hệ số nhân cho tỷ lệ phát lại. 0.0 tạm dừng đồ thị, 1.0 là tốc độ bình thường, và 2.0 là tốc độ gấp đôi.
TrimBooleanBật tắt việc thời gian của clip có nên bị cắt ngắn hay không.
TrimStartSốDấu thời gian tuyệt đối (tính bằng giây) nơi phát lại nên bắt đầu.
TrimEndSốDấu thời gian tuyệt đối (tính bằng giây) nơi phát lại nên kết thúc.
Dữ liệu sự kiện
  • Xử lý sự kiện: Không có. Đây là một nút lá không có con.
  • Phát sự kiện: Đọc các đánh dấu tùy chỉnh nhúng trong clip hoạt hình (ví dụ: "Bước chân", "Vung vũ khí") và phát chúng như các sự kiện được đặt tên tại khung chính xác mà chúng xảy ra. Nếu clip bị cắt, chỉ các đánh dấu trong khoảng thời gian được xác định [TrimStart, TrimEnd] (bao gồm) mới được phát.

Chọn

Nút Chọn

Chọn giữa bất kỳ số lượng đầu vào nào thông qua thuộc tính Chọn. Mỗi khi lựa chọn hiện tại thay đổi, nó kích hoạt một chuyển tiếp mới.

Đầu vào
  • Input1...InputN
Thuộc tính
Thuộc tínhLoạiMô tả
SelectionChuỗiID duy nhất của đầu vào sẽ được chọn, khớp với tên của kết nối đầu vào (ví dụ: "Đi bộ").
Dữ liệu sự kiện
  • Xử lý sự kiện: Các sự kiện từ đầu vào hiện đang được chọn sẽ được truyền qua với trọng số không thay đổi.
  • Phát sự kiện: Chỉ truyền qua tất cả các sự kiện từ đầu vào hiện đang được chọn. Trong một chuyển tiếp, việc phát sự kiện tuân theo quy tắc sự kiện toàn cầu.

PrioritySelect

Nút Chọn Ưu tiên

Đánh giá một danh sách các đầu vào kết nối từ trên xuống dưới và phát đầu vào đầu tiên mà điều kiện của nó được đánh giá là đúng. Điều này cho phép chọn hoạt hình theo thứ bậc dựa trên logic cụ thể. Mỗi khi lựa chọn hiện tại thay đổi, nó kích hoạt một chuyển tiếp mới.

Đầu vào
  • Input1...InputN
    • Trigger (Boolean): Một điều kiện logic phải đúng để đầu vào này được kích hoạt. Trong các phiên bản hiện tại, điều này được kết nối với một tham số boolean.
    • TransitionOverrideInterruptible (Enum.AnimationNodeInterruptible): Định nghĩa quy tắc cho khi hoạt hình đang hoạt động này có thể bị gián đoạn bởi một đầu vào có ưu tiên cao hơn. Ghi đè cài đặt DefaultInterruptible ở cấp độ nút.
      • Luôn luôn (mặc định): Đầu vào có thể bị gián đoạn bất cứ lúc nào bởi một điều kiện có ưu tiên cao hơn.
      • Hoàn thành: Hoạt hình hiện tại phải hoàn thành phát lại trước khi một đầu vào có ưu tiên cao hơn có thể chiếm ưu thế.
      • Kích hoạt: Đầu vào chỉ có thể bị gián đoạn khi InterruptibleTrigger được đặt thành true.
    • InterruptibleTrigger (Boolean): Chỉ có sẵn nếu TransitionOverrideInterruptible được đặt thành Kích hoạt. Đầu vào có thể bị gián đoạn khi biểu thức cụ thể này là đúng.
Thuộc tính
Thuộc tínhLoạiMô tả
DefaultInterruptibleEnum.AnimationNodeInterruptibleQuy tắc gián đoạn cơ bản được áp dụng cho tất cả các đầu vào. Mỗi đầu vào có thể ghi đè điều này bằng thuộc tính đầu vào TransitionOverrideInterruptible của riêng nó.
Dữ liệu sự kiện
  • Xử lý sự kiện: Các sự kiện từ đầu vào hiện đang được chọn sẽ được truyền qua với trọng số không thay đổi.
  • Phát sự kiện: Chỉ truyền qua tất cả các sự kiện từ đầu vào hiện đang được chọn. Trong một chuyển tiếp, việc phát sự kiện tuân theo quy tắc sự kiện toàn cầu.

Chuỗi

Nút Chuỗi

Kích hoạt các đầu vào kết nối theo một thứ tự tuần tự cụ thể dựa trên các điều kiện chờ được xác định. Mỗi khi lựa chọn hiện tại thay đổi, nó kích hoạt một chuyển tiếp mới.

Đầu vào
  • Input1...InputN
    • TransitionOverrideWaitFor (Enum.AnimationNodeWaitFor): Chỉ định điều kiện phải được đáp ứng trước khi chuỗi tiến đến đầu vào tiếp theo. Ghi đè cài đặt DefaultWaitFor ở cấp độ nút.
      • Hoàn thành (mặc định): Tiến đến đầu vào tiếp theo khi đầu vào hiện tại hoàn thành một chu kỳ. Hành vi tiến lên phụ thuộc vào đầu vào kết nối:
        • Clip phát một lần: Tiến lên khi clip kết thúc.
        • Clip lặp lại: Tiến lên sau khi một vòng lặp hoàn thành.
        • Chuỗi với vòng lặp vô hạn: Tiến lên sau khi hoàn thành một chu kỳ đầy đủ qua tất cả các đầu vào.
        • Chuỗi với vòng lặp hữu hạn: Tiến lên sau khi tất cả các vòng lặp hoàn thành.
      • Kích hoạt: Kích hoạt đầu vào tiếp theo khi một biểu thức logic tùy chỉnh được đánh giá là đúng.
    • WaitForTrigger (Boolean): Chỉ có sẵn khi TransitionOverrideWaitFor được đặt thành Kích hoạt.
Thuộc tính
Thuộc tínhLoạiMô tả
LoopCountSốSố lần để lặp qua toàn bộ chuỗi. Giá trị 0 (mặc định) chỉ ra một vòng lặp vô hạn. Khi đạt đến số lượng, nút tôn trọng cài đặt lặp lại hoặc giữ của đầu vào cuối cùng.
DefaultWaitForEnum.AnimationNodeWaitForĐiều kiện chờ cơ bản được áp dụng cho tất cả các đầu vào. Mỗi đầu vào có thể ghi đè điều này bằng thuộc tính đầu vào TransitionOverrideWaitFor của riêng nó.
Dữ liệu sự kiện
  • Xử lý sự kiện: Các sự kiện từ đầu vào hiện đang hoạt động sẽ được truyền qua với trọng số không thay đổi.
  • Phát sự kiện: Chỉ truyền qua tất cả các sự kiện từ đầu vào hiện đang hoạt động trong chuỗi. Trong một chuyển tiếp, việc phát sự kiện tuân theo quy tắc sự kiện toàn cầu.

RandomSequence

Nút Chuỗi Ngẫu nhiên

Chọn và phát một trong các đầu vào kết nối của nó một cách ngẫu nhiên. Khi hoạt hình hiện đang chọn hoàn thành, nút sẽ ngẫu nhiên chọn một đầu vào khác để phát. Gán mỗi đầu vào một trọng số cụ thể để ảnh hưởng đến xác suất được chọn. Mỗi khi lựa chọn hiện tại thay đổi, nó kích hoạt một chuyển tiếp mới.

Đầu vào
  • Input1...InputN
    • Weight (Số): Xác định xác suất của đầu vào này được chọn; trọng số cao hơn làm tăng khả năng được chọn.
Thuộc tính
Thuộc tínhLoạiMô tả
PlayCountSốSố lượng đầu vào mà nút sẽ phát trước khi dừng. Khi đạt đến, nút tôn trọng cài đặt lặp lại hoặc giữ của đầu vào cuối cùng. Mặc định là 0 cho vòng lặp vô hạn
SeedSốMột giá trị được sử dụng để khởi tạo Bộ sinh số ngẫu nhiên (RNG), đảm bảo chuỗi vẫn nhất quán trên các khách hàng khác nhau. Mặc định là -1 cho Seed ngẫu nhiên.
Dữ liệu sự kiện
  • Xử lý sự kiện: Các sự kiện từ đầu vào hiện đang hoạt động sẽ được truyền qua với trọng số không thay đổi.
  • Phát sự kiện: Chỉ truyền qua tất cả các sự kiện từ đầu vào hiện đang hoạt động trong chuỗi. Trong một chuyển tiếp, việc phát sự kiện tuân theo quy tắc sự kiện toàn cầu.

Over

Nút Over

Lớp tư thế Over lên trên tư thế Cơ sở. Khi kết hợp với một nút Mask, các khớp bị che khuất trong tư thế Over sẽ hoàn toàn tiết lộ tư thế Cơ sở, tạo ra hiệu ứng lớp trong suốt.

Đầu vào
  • Cơ sở: Lớp nền hoặc lớp dưới, thường là một hoạt hình toàn thân như chuyển động hoặc trạng thái nhàn rỗi.
  • Over: Lớp foreground hoặc lớp trên sẽ được áp dụng lên cơ sở, chẳng hạn như một cử chỉ tay hoặc hoạt hình sử dụng công cụ.
Thuộc tính
Thuộc tínhLoạiMô tả
WeightSốTrọng số pha trộn được sử dụng để giảm thiểu tư thế Over. Mặc định là 1.0 (ghi đè hoàn toàn) và không bị giới hạn.
Dữ liệu sự kiện
  • Xử lý sự kiện:
    • Nút lắng nghe các sự kiện từ cả đầu vào Cơ sở và Over.
  • Phát sự kiện:
    • Sự kiện Cơ sở: Tất cả các sự kiện từ đầu vào Cơ sở được truyền qua mà không thay đổi.
    • Sự kiện Over: Các sự kiện từ đầu vào Over được điều chỉnh bởi thuộc tính Trọng số.
      • Ở Trọng số 0.5, các sự kiện Over lan truyền với trọng số một nửa
      • Ở Trọng số 0, chúng sẽ bị tắt tiếng.

Thêm

Nút Thêm

Thêm tư thế Additive vào tư thế Cơ sở, được giảm thiểu bởi một Trọng số cụ thể (không bị giới hạn).

Đầu vào
  • Cơ sở: Tư thế hoạt hình chính.
  • Additive: Tư thế sẽ được lớp lên cơ sở.
Thuộc tính
Thuộc tínhLoạiMô tả
WeightSốXác định độ mạnh của tư thế bổ sung áp dụng cho cơ sở.
Dữ liệu sự kiện
  • Xử lý sự kiện: Nút lắng nghe các sự kiện từ cả đầu vào Cơ sở và Additive.
  • Phát sự kiện: Tất cả các sự kiện từ cả đầu vào Cơ sở và Additive đều được truyền qua mà không thay đổi.

Trừ

Nút Trừ

Chuyển đổi một hoạt hình thành một tư thế bổ sung bằng cách trừ một tư thế cơ sở tương đối khỏi tư thế mục tiêu (A−Weight×BA - \text{Weight} \times B). Trọng số điều chỉnh tư thế B trước khi trừ (không bị giới hạn).

Đầu vào
  • A: Tư thế hoạt hình mục tiêu.
  • B: Tư thế cơ sở tương đối sẽ bị trừ.
Thuộc tính
Thuộc tínhLoạiMô tả
WeightSốĐiều chỉnh tư thế B trước khi nó bị trừ khỏi A. Ở 1.0 (mặc định), B sẽ bị trừ hoàn toàn; ở 0.0, không có sự trừ nào xảy ra.
Dữ liệu sự kiện
  • Xử lý sự kiện: Nút lắng nghe các sự kiện từ cả Input A và Input B.
  • Phát sự kiện: Tất cả các sự kiện từ cả Input A và Input B đều được truyền qua mà không thay đổi.

Blend1D

Nút Blend1D

Nội suy tuyến tính giữa hai tư thế hoạt hình gần nhất với vị trí đầu vào hiện tại trên một trục đơn.

Đầu vào
  • Input1...InputN
    • Position (Số): Tọa độ cụ thể cho mỗi đầu vào tiếp theo trên trục pha trộn.
Thuộc tính
Thuộc tínhLoạiMô tả
PositionSốGiá trị hiện tại hoạt động trên trục pha trộn được sử dụng để lấy mẫu các hoạt hình. Nếu Position nằm ngoài phạm vi các vị trí đầu vào đã xác định, nút sẽ ngoại suy bằng cách sử dụng hai đầu vào gần nhất.
PhaseSyncEnum.AnimationNodePhaseSync

Cấu hình xem thời gian của các đầu vào con có nên được đồng bộ hóa hay không.

  • Đồng bộ (mặc định): Đồng bộ hóa chuẩn hóa. Nút tính toán một "thời gian ảo" dựa trên trung bình trọng số của các đầu vào hoạt động. Thời gian của mỗi nút đầu vào được điều chỉnh để tất cả các đầu vào con hội tụ về cùng một pha, giữ cho các hoạt hình có độ dài khác nhau đồng bộ.
  • Không đồng bộ: Pha trộn tiêu chuẩn nơi các clip tiến lên độc lập với tỷ lệ phát lại của riêng chúng.
Dữ liệu sự kiện
  • Xử lý sự kiện: Nút lắng nghe các sự kiện từ tất cả các nút con đang hoạt động.
  • Phát sự kiện: Chỉ các sự kiện từ đầu vào hoạt động có trọng số cao nhất lan truyền, được điều chỉnh bởi trọng số pha trộn của nó. Các sự kiện từ đầu vào thứ cấp sẽ bị tắt tiếng.

Blend2D

Nút Blend2D

Pha trộn nhiều tư thế hoạt hình với nhau dựa trên hai tham số đầu vào trong không gian tọa độ 2D. Điều này tổng quát hóa nút Blend1D để xử lý các tình huống phức tạp, chẳng hạn như pha trộn dựa trên cả hướng di chuyển và tốc độ đồng thời.

Đầu vào
  • Input1...InputN
    • X (Số): Tọa độ X cho mỗi đầu vào tiếp theo.
    • Y (Số): Tọa độ Y cho mỗi đầu vào tiếp theo.
Thuộc tính
Thuộc tínhLoạiMô tả
InputModeEnum.AnimationNodeBlend2DInputMode

Định nghĩa hệ tọa độ được sử dụng để đánh giá không gian pha trộn:

  • Đường tròn (mặc định): Sử dụng tọa độ lưới 2D tiêu chuẩn. X và Y đại diện cho vị trí hiện tại trong không gian pha trộn.
  • Đường tròn: Sử dụng các giá trị góc và độ lớn. X đại diện cho hướng tính bằng radian, trong khi Y đại diện cho độ lớn hoặc sức mạnh của chuyển động. Hướng được trọng số nặng hơn độ lớn, vì vậy các đầu vào ở các góc tương tự nhưng độ lớn khác nhau sẽ pha trộn mượt mà hơn so với các đầu vào ở các góc khác nhau.
XSốTọa độ X hiện tại (Đường tròn) hoặc Hướng tính bằng radian (Đường tròn).
YSốTọa độ Y hiện tại (Đường tròn) hoặc Độ lớn (Đường tròn).
PhaseSyncEnum.AnimationNodePhaseSync

Cấu hình xem thời gian của các đầu vào con có nên được đồng bộ hóa hay không.

  • Đồng bộ (mặc định): Đồng bộ hóa chuẩn hóa. Nút tính toán một "thời gian ảo" dựa trên trung bình trọng số của các đầu vào hoạt động. Thời gian của mỗi nút đầu vào được điều chỉnh để tất cả các đầu vào con hội tụ về cùng một pha, giữ cho các hoạt hình có độ dài khác nhau đồng bộ.
  • Không đồng bộ: Pha trộn tiêu chuẩn nơi các clip tiến lên độc lập với tỷ lệ phát lại của riêng chúng.
Dữ liệu sự kiện
  • Xử lý sự kiện: Nút lắng nghe các sự kiện từ tất cả các nút con đang hoạt động.
  • Phát sự kiện: Chỉ các sự kiện từ đầu vào hoạt động có trọng số cao nhất lan truyền, được điều chỉnh bởi trọng số pha trộn của nó. Các sự kiện từ đầu vào thứ cấp sẽ bị tắt tiếng.

Mask

Nút Mask

Áp dụng một mặt nạ đã định nghĩa trước cho tư thế đầu vào. Một mặt nạ được định nghĩa bởi một trọng số cho mỗi đối tượng (ví dụ: khớp) trong cấu trúc rig, cho phép kiểm soát chính xác hoặc "làm mềm" hoạt hình.

Đầu vào
  • Pose: Tư thế hoạt hình sẽ được che.
Thuộc tính
Thuộc tínhLoạiMô tả
MaskObjectValue

Một ObjectValue (được tạo như một con trực tiếp của định nghĩa Nút Mask) định nghĩa các trọng số mặt nạ. Nó có thể hoạt động theo một trong hai cách:

  • Trực tiếp: ObjectValue chứa các thuộc tính ánh xạ tên đối tượng rig đến các giá trị trọng số cụ thể.
  • Theo tham chiếu: ObjectValue tham chiếu đến một Instance khác chứa các thuộc tính ánh xạ. Điều này cho phép chia sẻ mặt nạ giữa các nút khác nhau trong đồ thị.

Khi tạo một mặt nạ, bạn có thể chọn một sơ đồ rig (HumanoidRigDescription hoặc Picker) để điền vào cấu trúc.

  • HumanoidRigDescription: Chuẩn hóa mặt nạ cho các nhân vật hình người.
  • Picker: Cho phép người dùng chọn bất kỳ rig cụ thể nào trong không gian làm việc để điền vào cấu trúc mặt nạ.
InvertBooleanKhi đúng, áp dụng các giá trị trọng số như 1 - trọng số. Điều này cho phép tái sử dụng một mặt nạ theo cách ngược lại mà không cần tạo một tài sản mới.
Dữ liệu sự kiện
  • Xử lý sự kiện: Nút lắng nghe tất cả các sự kiện từ đầu vào Pose.
  • Phát sự kiện: Tất cả các sự kiện từ đầu vào Pose đều được truyền qua mà không thay đổi.

Tốc độ

Nút Tốc độ

Sửa đổi tỷ lệ phát lại của một tư thế hoạt hình đầu vào.

Đầu vào
  • Pose: Tư thế hoạt hình hoặc đồ thị con mà tỷ lệ phát lại sẽ được sửa đổi.
Thuộc tính
Thuộc tínhLoạiMô tả
SpeedSốMột hệ số nhân được áp dụng cho delta thời gian (dtdt). 0.0 tạm dừng đồ thị, 1.0 là tốc độ bình thường, và 2.0 là tốc độ gấp đôi.
Dữ liệu sự kiện
  • Xử lý sự kiện: Nút lắng nghe các sự kiện từ đầu vào Pose.
  • Phát sự kiện: Tất cả các sự kiện từ đầu vào Pose đều được truyền qua mà không thay đổi. Lưu ý rằng trong khi tốc độ phát lại trực quan thay đổi, thời gian của các sự kiện phát ra (chẳng hạn như các đánh dấu) sẽ thay đổi tương ứng với tỷ lệ phát lại đã sửa đổi.

Đầu ra Đồ thị

Nút Đầu ra Đồ thị

Đại diện cho tư thế cuối cùng được đánh giá của đồ thị. Nút này tự động được bao gồm trong tất cả các đồ thị mới trong Trình chỉnh sửa Đồ thị Hoạt hình. Sự hiện diện của nó đảm bảo rằng đồ thị luôn hợp lệ và nhất quán tạo ra một tư thế hoạt hình.

Đầu vào
  • Pose: Dữ liệu hoạt hình cuối cùng đã được xử lý sẽ được áp dụng cho rig.
Thuộc tính
  • Không có
Dữ liệu sự kiện
  • Xử lý sự kiện: Nút lắng nghe tất cả các sự kiện được truyền qua đầu vào kết nối cuối cùng.
  • Phát sự kiện: Nút này phục vụ như điểm thoát cho quy trình hoạt hình và không phát tín hiệu trở lại vào đồ thị.

Chuyển tiếp

Nhiều nút trong Đồ thị Hoạt hình (chẳng hạn như Chọn, Chọn Ưu tiên, Chuỗi, và Chuỗi Ngẫu nhiên) quản lý cách các hoạt hình pha trộn khi chuyển đổi giữa các đầu vào hoạt động. Để ngăn chặn sự dư thừa trong tài liệu tham khảo nút, các hành vi này được định nghĩa bởi các nhóm thuộc tính chuyển tiếp tiêu chuẩn hóa.

Chuyển tiếp mặc định

Chuyển tiếp Mặc định

Hành vi pha trộn cơ bản được áp dụng cho nút bất cứ khi nào nó chuyển sang một đầu vào hoạt động mới.

Ghi đè chuyển tiếp

Các thuộc tính liên kết cụ thể cho đầu vào ghi đè chuyển tiếp mặc định. Những điều này được áp dụng khi nút chuyển đến đầu vào cụ thể đó.

Sao chép

Các tham số đồ thị hoạt hình và trạng thái nút nội bộ tự động sao chép. Chế độ sao chép được xác định bởi Workspace.AuthorityMode tại thời điểm kịch bản Animate được tạo:

  • Trong Enum.AuthorityMode.Automatic: Các tham số được đặt thông qua AnimationTrack:SetParameter() tự động sao chép đến các đồng nghiệp khác.
  • Trong Enum.AuthorityMode.Server: Máy chủ điều khiển toàn bộ mô phỏng đồ thị. Tất cả các trạng thái nút, chẳng hạn như thời gian đã trôi qua cho Enum.AnimationNodeType.ClipNode, và các tham số đồ thị tự động sao chép từ máy chủ đến các khách hàng. Máy khách của người chơi sở hữu sử dụng dự đoán để phát lại mượt mà cục bộ.

Kịch bản Animate mẫu

Để tạo các kịch bản ví dụ để điều khiển một đồ thị hoạt hình cho một rig, hãy sử dụng Đồ thị -> Tạo kịch bản Animate trong Trình chỉnh sửa Đồ thị Hoạt hình. Điều này tạo ra một cấu trúc kịch bản được đặt dưới StarterCharacterScripts (cho các nhân vật người chơi) hoặc trực tiếp trên rig (cho NPC):

Animate (ModuleScript)
├── RunClient (LocalScript)
└── RunServer (Script, RunContext = Legacy)

Kịch bản Animate ModuleScript chứa logic tải đồ thị. Các kịch bản RunClient và RunServer gọi nó trong ngữ cảnh thích hợp. Các kịch bản nào được bao gồm phụ thuộc vào trường hợp sử dụng:

Trường hợp sử dụngCác kịch bản được bao gồmHành vi
NPC (bất kỳ chế độ nào)RunServerMáy chủ tải và phát đồ thị. Trạng thái sao chép đến tất cả các khách hàng tự động.
Người chơi + Enum.AuthorityMode.ServerRunServer + RunClientMáy chủ điều khiển đồ thị một cách có thẩm quyền. Máy khách sở hữu kích hoạt Enum.PredictionMode cho dự đoán cục bộ dựa trên rollback.
Người chơi + Enum.AuthorityMode.AutomaticRunClientMáy khách sở hữu tải và phát đồ thị. Các tham số tự động sao chép đến máy chủ và các khách hàng khác.

Các thuộc tính sau đây được lưu trữ trên kịch bản Animate và cấu hình hành vi của nó:

Thuộc tínhLoạiMô tả
GraphNameChuỗiTên của tài sản đồ thị hoạt hình.
CharacterNameChuỗiTên của rig mà đồ thị nhắm đến.
SourceAssetIdChuỗiID Tài sản đã xuất bản của đồ thị. Được sử dụng tại thời gian chạy trong các trò chơi đã xuất bản.
IsServerAuthorityBooleanLiệu kịch bản được tạo với Workspace.AuthorityMode được đặt thành Server. Xác định chiến lược sao chép.
PreviewInStudioBooleanKhi đúng (mặc định), việc kiểm tra trong Studio tải đồ thị chưa xuất bản cục bộ để bạn có thể lặp lại mà không cần xuất bản. Đặt thành false để kiểm tra tài sản đã xuất bản trong Studio. Lưu ý rằng điều này hiện không được hỗ trợ trong Enum.AuthorityMode.Server.

Sao chép tham số trong chế độ Tự động

Khi Workspace.AuthorityMode là Tự động:

  • Máy khách sở hữu điều khiển các đồ thị nhân vật người chơi; máy chủ điều khiển các đồ thị NPC.
  • Các tham số được đặt thông qua AnimationTrack:SetParameter() tự động sao chép đến các đồng nghiệp khác. Nhiều cuộc gọi SetParameter trong một khung hình được hợp nhất (người viết cuối cùng thắng).
  • Không cần lập trình bổ sung cho việc vận chuyển tham số — động cơ xử lý sao chép nội bộ.
  • Các khách hàng khác thấy các cập nhật tham số với một độ trễ nhỏ (một khoảng thời gian gửi cộng với độ trễ mạng).

Thẩm quyền máy chủ

Khi Workspace.AuthorityMode là Máy chủ:

  • Máy chủ có thẩm quyền cho tất cả các đồ thị — nó chạy mô phỏng và sao chép trạng thái đồ thị đầy đủ.
  • Những gì được sao chép: Cả tham số và trạng thái nút nội bộ, bao gồm thời gian đã trôi qua, các lựa chọn hiện tại, tiến trình chuyển tiếp, số vòng lặp và hạt giống RNG. Điều này đảm bảo tất cả các khách hàng thấy hành vi hoạt hình giống hệt nhau.
  • Nhân vật người chơi: Máy chủ điều khiển đồ thị. Kịch bản RunClient của máy khách sở hữu tự động kích hoạt Enum.PredictionMode trên Animator, vì vậy người chơi cục bộ thấy hoạt hình mượt mà, được dự đoán mà hòa hợp với máy chủ khi có sự không khớp.
  • NPC: Máy chủ điều khiển đồ thị một cách độc quyền; các khách hàng quan sát trạng thái sao chép mà không có mô phỏng cục bộ.

Điều khiển tham số

Sử dụng AnimationTrack:SetParameter() từ mọi kịch bản chạy đồ thị:

  • NPC (bất kỳ chế độ nào): Gọi SetParameter từ RunServer (hoặc bất kỳ Script máy chủ nào có quyền truy cập vào AnimationTrack).
  • Nhân vật người chơi trong Enum.AuthorityMode.Server: Gọi SetParameter từ cả hai RunServer và RunClient. Máy chủ cần các tham số để điều khiển mô phỏng có thẩm quyền, và máy khách sở hữu cần các tham số tương tự để điều khiển dự đoán cục bộ của nó.
  • Nhân vật người chơi trong Enum.AuthorityMode.Automatic: Gọi SetParameter từ RunClient (hoặc bất kỳ LocalScript máy khách nào có quyền truy cập vào AnimationTrack).

Kịch bản Animate được tạo bao gồm một khối SetParameter đã được chú thích như một điểm khởi đầu. Bỏ chú thích và sửa đổi nó để điều khiển các tham số từ trạng thái gameplay (tốc độ di chuyển, trạng thái hình người, hướng đầu vào, v.v.).

©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.