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.
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() doif not character:IsA("Model") thencontinueendlocal animations = character:FindFirstChild("Animations")if not animations thencontinueendfor _, animation in animations:GetChildren() dolocal animationId = string.match(animation.AnimationId, "%d+")if animationId thenANIMSTRING ..= (animationId .. " " .. character.Name .. "_" .. string.gsub(animation.Name, " ", "_") .. "\n")endendendprint(ANIMSTRING)Tạo một tệp văn bản mới trên máy tính của bạn.
Sao chép chuỗi ra bởi Studio vào tập tin văn bản.
Xóa bất kỳ sự không hợp nhất nào như thêm -Edit và -Studio dòng chuỗi đã được thêm tự động vào nội dung tập tin
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ể:
- 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
- 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:
- Mở một cửa sổ terminal.
- 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.
Trong Studio, tạo một mô-đun Animations .
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.
Để 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 = 12345678local 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 thenreturn gameContext.Groupendreturn gameContext.Userendlocal animationMap = getAnimationMapForGameContext()function module.getAnimation(animName: string)return animationMap[animName]endreturn moduleChuyển các tập tin văn bản được tạo thành bản đồ hoạt hình trong Studio.
- 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.
- Chạy các lệnh sau để trả về một chuỗi:
local animFileText = [[4215167 Animation_Name_16171235 Animation_Name_21251267 Animation_Name_3]]local function convertFileToAnimationMap(animFileText: string)local NEW_ANIMATION_MAP = ""local lines = string.split(animFileText, "\n")for _, line in lines dolocal components = string.split(line, " ")if #components ~= 2 thencontinueendlocal animationId = components[1]local animationName = components[2]NEW_ANIMATION_MAP = string.format("%s\t[\"%s\"] = \"rbxassetid://%s\",\n", NEW_ANIMATION_MAP, animationName, animationId)endreturn string.format("return {\n%s}", NEW_ANIMATION_MAP)endprint(convertFileToAnimationMap(animFileText))Tạo một cha mẹ mới ModuleScript cho mô-đun Animations của bạn.
Đặt chuỗi trả về animFileText vào bên trong ModuleScript .
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")