Chuyển 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.

Trong Roblox, các hoạt hình bị khóa đối với các trải nghiệm thuộc sở hữu của người dùng cũng sở hữu các hoạt hình đó.Để ngăn chặn các hoạt hình bị hỏng khi bạn chuyển trải nghiệm của mình sang một nhóm, bạn phải xuất tài sản hoạt hình của mình cho chủ sở hữu nhóm trải nghiệm mới.

Nếu bạn có một lượng lớn các hoạt hình để tải lên, bạn có thể sử dụng công cụ hỗ trợ cộng đồng Chuyển hoạt hình Roblox để tái tải các hoạt hình và định vị lại các hoạt hình cũ của họ sang hoạt hình mới tương ứng .

Yêu cầu trước

Trước khi chuyển phát hoạt hình của bạn, bạn phải có npx được cài đặt.npx cho phép bạn thực hiện các lệnh từ các gói mà không cần phải cài đặt các gói đó trên hệ thống của bạn.Để kiểm tra cho npx , cài đặt node.js và chạy npx –version trong một cửa sổ terminal.

Để biết thêm thông tin về các yêu cầu, xem Roblox Animation Transfer README.

Map AnimationIds lên tên

Nếu các hoạt hình của bạn được lưu dưới dạng các ví dụ hoạt hình trong các mô hình nhân vật đã được chuẩn bị trước trong trải nghiệm của bạn, bạn có thể tạo một tập tin văn bản để đánh dấu AnimationIds vào các tên tương ứng của chúng.

  1. Trong Roblox Studio, chạy các lệnh sau. Studio xuất kết quả dưới dạng một chuỗi dài duy nhất.


    local Workspace = game:GetService("Workspace")
    local ANIMSTRING = ""
    for _, character in Workspace:GetChildren() do
    if not character:IsA("Model") then
    continue
    end
    local animations = character:FindFirstChild("Animations")
    if not animations then
    continue
    end
    for _, animation in animations:GetChildren() do
    local animationId = string.match(animation.AnimationId, "%d+")
    if animationId then
    ANIMSTRING ..= (animationId .. " " .. character.Name .. "_" .. string.gsub(animation.Name, " ", "_") .. "\n")
    end
    end
    end
    print(ANIMSTRING)
  2. Tạo một tệp văn bản mới trên máy tính của bạn.

  3. Sao chép chuỗi ra bởi Studio vào tập tin văn bản.

  4. Xóa bất kỳ sự không hợp nhất nào như thêm -Edit-Studio dòng chuỗi đã được thêm tự động vào nội dung tập tin

  5. Thay thế tất cả các không gian bằng dấu gạch ngang để giới hạn số lượng tên được kiểm duyệt tổng thể.

(Tùy chọn) Chuẩn bị tập tin văn bản

Roblox có giới hạn tỷ lệ nội bộ cho việc tải lên hoạt hình.Công cụ chuyển đổi hoạt hình Roblox không tuân theo giới hạn tỷ lệ này, có thể gây ra vấn đề trong quá trình chuyển và phá vỡ tập tin văn bản cuối cùng của bạn.Ví dụ, bạn có thể chuyển 1200 hoạt hình nhưng cuối cùng chỉ có 900 trong số chúng và không có cách nào để xác định những hoạt hình nào không thể chuyển.

Để đảm bảo tập tin cuối cùng không bị phá vỡ, bạn có thể:

  1. Chia tập tin văn bản của bạn thành nhiều tập tin với tối đa 200 hoạt hình trong mỗi tập tin
  2. Sử dụng công cụ Chuyển đổi hoạt hình Roblox cho mỗi tệp riêng lẻ. Để ngăn chặn bất kỳ vấn đề giới hạn tốc độ chính yếu, hãy chờ vài phút giữa mỗi lô.

Chuyển hoạt hình

Sau khi các tập tin văn bản của bạn đã sẵn sàng, bắt đầu quá trình chuyển:

  1. Mở một cửa sổ terminal.
  2. Chạy npx roblox-animation-transfer --inFile animations.txt --group YOUR_GROUP_ID --outFile newAnimations.txt .
    • --inFile phải chỉ vào tập tin có các hoạt hình bạn muốn tải lên.Tập tin này có thể là tập tin văn bản lớn bạn đã tạo ban đầu, hoặc là tập tin nhỏ đầu tiên nếu bạn chọn phá vỡ tập tin lớn hơn.
    • --group phải chỉ vào GroupId của nhóm nhận chuyển giao hoạt hình.Bạn có thể tìm ID nhóm trong URL của nhóm trên trang web Roblox.
    • --outFile phải chỉ vào tập tin bạn muốn đặt các hoạt hình mới vào.

Nếu quá trình chuyển đổi thành công, các hoạt hình trong outFile được liệt kê theo cùng một thứ tự họ được cung cấp trong inFile .Nếu một số hoạt hình không thể chuyển, công cụ cố gắng chuyển chúng lại; nếu lần thử thứ hai thành công, các hoạt hình này được gắn vào cuối danh sách trong outFile .

Tải hoạt họa khi chạy thời gian

Sau khi chuyển các hoạt hình của bạn sang chủ nhóm mới, bạn phải thay đổi các hoạt hình cũ cho các hoạt hình mới.

  1. Trong Studio, tạo một mô-đun Animations .

  2. Tạo hai mô-đun con, một phù hợp với người dùng, hoặc chủ ban đầu, và cái kia phù hợp với nhóm, hoặc chủ mới.

  3. Để ngăn chặn trải nghiệm bị phá vỡ nếu bạn chọn đăng nó ở một vị trí khác, chạy lệnh sau.Mặc định, kịch bản trả lại các hoạt hình của người dùng.


    local module = {}
    local GROUP_ID = 12345678
    local gameContext = {
    ["User"] = require(script:WaitForChild("Animations_User")),
    ["Group"] = require(script:WaitForChild("Animations_Group"))
    }
    local function getAnimationMapForGameContext()
    if game.CreatorType == Enum.CreatorType.Group and game.CreatorId == GROUP_ID then
    return gameContext.Group
    end
    return gameContext.User
    end
    local animationMap = getAnimationMapForGameContext()
    function module.getAnimation(animName: string)
    return animationMap[animName]
    end
    return module
  4. Chuyển các tập tin văn bản được tạo thành bản đồ hoạt hình trong Studio.

    1. Thay thế danh sách hoạt hình bên trong biến animFileText với nội dung của tập tin văn bản mà bạn muốn chuyển thành bản đồ hoạt hình.
    2. Chạy các lệnh sau để trả về một chuỗi:

    local animFileText = [[
    4215167 Animation_Name_1
    6171235 Animation_Name_2
    1251267 Animation_Name_3
    ]]
    local function convertFileToAnimationMap(animFileText: string)
    local NEW_ANIMATION_MAP = ""
    local lines = string.split(animFileText, "\n")
    for _, line in lines do
    local components = string.split(line, " ")
    if #components ~= 2 then
    continue
    end
    local animationId = components[1]
    local animationName = components[2]
    NEW_ANIMATION_MAP = string.format("%s\t[\"%s\"] = \"rbxassetid://%s\",\n", NEW_ANIMATION_MAP, animationName, animationId)
    end
    return string.format("return {\n%s}", NEW_ANIMATION_MAP)
    end
    print(convertFileToAnimationMap(animFileText))
  5. Tạo một cha mẹ mới ModuleScript cho mô-đun Animations của bạn.

  6. Đặt chuỗi trả về animFileText vào bên trong ModuleScript .

  7. Cập nhật trải nghiệm để nguồn tất cả các hoạt hình thông qua mô-đun Animations bằng cách chạy lệnh sau:


    local Animations = require(PATH.TO.ANIMATIONS)
    local warriorWalk = Instance.new("Animation")
    warriorWalk.AnimationId = Animations.getAnimation("Warrior_Walk")