Hoạt họa hoạt họa nhân vật là một phần quan trọng của những gì làm cho avatar và những nhân vật không chơi (NPC) biểu cảm, thực tế và hấp dẫn cho đối tượng của bạn. Ngoài việc cung cấp những hình ảnh miễn phí, hoạt họa nhân vậ
Sử dụng tập tin Hazardous Space Station.rbxl như một tham khảo, hướng dẫn này cho bạn thấy cách chơi hoạt họa nhân vật bằng hai phương pháp khác nhau, bao gồm hướng dẫn về các kỹ năng:
- Đổi giá trị ID hoạt họa nhân vật mặc định của bạn với các hoạt họa tùy chỉnh của riêng bạn.
- Kích hoạt hoạt họa trong phản ứng đáp lại hành động của nhân vật trong không gian 3D.
Sau khi hoàn thành hướng dẫn này, bạn sẽ có các kỹ năng để tùy chỉnh hoạt họa cho một loạt các tình huống gameplay.
Đổi hoạt họa mặc định
Mọi nhân vật có một đối tượng Humanoid mặc định, dù đó là một avatar người chơi hoặc một nhân vật không phải người chơi (NPC), bao gồm một bộ hoạt họa mặc định được
Tuy nhiên, nếu các hoạt họa mặc định này không đáp ứng các yêu cầu thiết kế cho môi trường, môi trường hoặc tổng thể của thế giới của bạn, bạn có thể trao đổi chúng với các hoạt họa tùy chỉnh áp dụng cho mọi người tham gia trải nghiệm của bạn.
Để minh họa, bộ phận sau đây dạy bạn cách thay thế hoạt họa di chuyển mặc định bằng một hoạt họa di chuyển tùy chỉnh từ Tạo hoạt họa nhân vật . Bằng cách sử dụng cùng một quá trình này, bạn có thể thay thế bất kỳ hoạt họa nào của mặc định với các ID hoạt họa của ri
Tạo Script
Mọi nhân vật của mỗi Humanoid đối tượng bao gồm một đối tượng con Animator để lưu trữ tất cả các hoạt họa mặc định của nhân vậ
Để tạo một script tham khảo ID hoạt họa mặc định:
Trong cửa sổ Explorer , thêm một script mới vào ServerScriptService .
- Chuột qua ServerScriptService và nhấp vào nút ⊕.
- Từ menu ng上 context, insert a Script .
Trong mô-đun mới này, hãy vẽ mã sau đây:
local Players = game:GetService("Players")local function onCharacterAdded(character)local humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")print("Animator found!")local function onPlayerAdded(player)player.CharacterAdded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)
Thay thế AssetID
Bây giờ bạn biết rằng kịch bản của bạn có thể phát hiện khi người chơi tải và kết nối với máy chủ, bạn có thể chỉnh sửa kịch bản của bạn để xác định ID hoạt họa (s) mà bạn muốn đổi với các hoạt họa tùy chỉnh của riêng bạn.
Bảng sau đây chứa tất cả các hoạt họa nhân vật mặc định mà bạn có thể gọi và thay thế trong Animator đối tượng. Lưu ý rằng Idle có hai biến thể mà bạn có thể lập trình để chơi thường xuyên hơn hoặc ít hơn.
Hành động nhân vật | Tham khảo ngôn tản tượng |
Chạy | animateScript.run.RunAnim.AnimationId |
Di chuyển | animateScript.walk.WalkAnim.AnimationId |
Nhảy | animateScript.jump.JumpAnim.AnimationId |
Nhàn rỗi | animateScript.idle.Animation1.AnimationId``animateScript.idle.Animation2.AnimationId |
Mùa thu | animateScript.fall.FallAnim.AnimationId |
Bơi | animateScript.swim.Swim.AnimationId |
Bơi (Idle) | animateScript.swimidle.SwimIdle.AnimationId |
Leo trèo | animateScript.climb.ClimbAnim.AnimationId |
Để thay thế giá trị mặc định của hoạt họa di chuyển:
Gọi biến thể mặc định của script hoạt họa bước đi, sau đó thay thế biến thể ID bằng các biến thể hoạt họa tùy chỉnh của riêng bạn. Ví dụ, mẫu mã code sau đây tham khảo hoạt họa hệ thống bước đi từ Creating Character Animations.
local Players = game:GetService("Players")local function onCharacterAdded(character)local humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")print("Animator found!")local animateScript = character:WaitForChild("Animate")animateScript.walk.WalkAnim.AnimationId = "rbxassetid://122652394532816"local function onPlayerAdded(player)player.CharacterAdded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)Thử nghiệm trải nghiệm của bạn để đảm bảo hoạt họa di chuyển tùy chỉnh của bạn không bị vượt qua hoạt hiệu ứng độngmặc định.
Ở thanh menu, hãy nhấp vào nút Chơi . Studio tham gia vào chế độ thử nghiệm.
Di chuyển quanh trạm vũ trụ với avatar của bạn.
Đàn hồi hoạt họa
Trong khi phương pháp trước tập trung vào việc đổi chuyển hoạt họa mặc định mà hoạt động tự động mỗi khi một nhân vật thực hiện các hành động nhất định trong trải nghiệm, bạn có thể kết hợp các hoạt động để tạo ra các hoạt động chơi trong phản
Phương pháp này để chơi hoạt họa là hữu ích vì nó cung cấp cho người chơi phản hồi ngay lập tức về cách họ nên tương tác với các thiết bị trong môi trường của họ. Để cho thấy, bộ phận dưới đây cho bạn thấy cách truyền cảm giác ngay lập tức khi người chơi đ
Tăng dung tích
Một trong những cách phổ biến nhất để kích hoạt hành vi gameplay độc đáo là sử dụng volumes , hoặc các khu vực nào đó trong không gian 3D, để phát hiện khi nào người chơivật hoặc đối tượng tương tác với các khu vực nào đó của môi tr
Khi thêm một khối lượng vào trải nghiệm của bạn, nó rất quan trọng để thu nhỏ nó để chỉ bao gồm không gian mà bạn muốn kích hoạt hiệu ứng độnghiệu ứng độngcủa mình. Nếu bạn làm cho âm lượng của hiệu ứng độngquá nhỏ, người chơi có thể không bao gi
Để tạo ra một khối lượng xung quanh một vết rò rỉ hơi nước sẽ kích hoạt hoạt hiệu ứng động:
- Trong cửa sổ Explorer , thêm một phần mới.
- Đặt vị trí và thay đổi kích thước của khối cho đến khi nó bao gồm khu vực bạn muốn kích hoạt hoạt hiệu ứng độngcủa mình.
- Trong cái Cột tính window,
Đặt Tên để AnimationDetector .
Đặt Độ trong suốt để 1 để làm cho khối này vô hình.
Tạo Script
Bây giờ bạn có một khu vực định cho phép bạn kích hoạt hoạt hiệu ứng độngcủa mình, đã đến lúc tạo một script tự động phát hiện khi người chơi va chạm với âm lượng. Bạn có thể sau đó lắng nghe các sự kiện va chạm để kích hoạt bất kỳ hoạt họa nào có ý nghĩa cho yêu cầu gameplay của bạn.
Ví dụ, công nghệ hoạt họa này sử dụng một LocalScript thay vì một Script để cung cấp phản hồi ngay lập tức cho người chơi khi họ va chạm với âm lượng. Nếu máy chủ nghe và chơi hoạt hiệu ứng động, có thể có một độ
Để tạo một mã nhỏ để phát hiện khi nào nhân vật người chơi địa phương của bạn chạm vào âm lượng:
Trong cửa sổ Explorer , thêm một script mới vào StartercharacterScripts . Việc đặt các con cháu này đảm bảo rằng script và con cháu nó được sao chép vào nhân vật người chơi khi họ tham gia vào trải nghiệm.
- Mở rộng StarterPlayer , sau đó hover over its StartercharacterScripts child and click the ⊕ button.
- Từ menu ng上 context, insert a LocalScript and rename it TriggerAnimation .
Trong mô-đun mới này, hãy vẽ mã sau đây:
local Workspace = game:GetService("Workspace")local animation = script:WaitForChild("Animation")local humanoid = script.Parent:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")local animationTrack = animator:LoadAnimation(animation)local animationDetector = Workspace:WaitForChild("AnimationDetector")local debounce = falseanimationDetector.Touched:Connect(function(hit)if debounce thenreturnendlocal hitCharacter = hit:FindFirstAncestorWhichIsA("Model")if hitCharacter ~= localCharacter thenreturnenddebounce = trueanimationTrack:Play()animationTrack.Ended:Wait()debounce = falseend)
Cuộn phim TriggerAnimation bắt đầu bằng cách nhận được dịch vụ Workspace, which contains tất cả các thống kê đối tượng đang tồn tại trong thế giới 3D. Điều này quan trọng vì script cần phải tham chiếu vào đối tượng Part đang hoạt động nh
Đối với mỗi nhân vật người chơi được tải hoặc phục hồi vào trải nghiệm, script chờ đợi:
- Ở đây là đối tượng con của nó Animation mà bạn sẽ thêm vào phần tiếp theo.
- Ống đo âm lượng trong không gian làm việc có tên AnimationDetector .
Khi bất kỳ điều gì va chạm với volume, trình phát hành chức năng Touched sẽ lấy người tiền nhiên đầu tiên là một Model , which should be the character if the <
- Đặt debounce lại để true .
- Chơi và chờ đợi hoạt họa kết thúc.
- Đặt debounce trở lại false .
Cài đặt debounce từ false đến true đến false một lần nữa sau khi hoạt họa kết thúc chơi là một mẫu debounce ngăn chặn hoạt họa không bị tác động lại nhiều lần khi người chơi liên tục va chạ
Thêm Hoạt Hình
Nếu bạn đang chơi trải nghiệm của mình ngay bây giờ, TriggerAnimation script của bạn vẫn sẽ không thể chơi một hoạt họa trong phản ứng đáp lại sự va chạm người chơi địa phương. Điều này là do nó đang ch
Để thêm một hoạt họa cho người chơi để tham chiếu vào khi người chơi va chạm với âm lượng:
Trong cửa sổ Trình phát Explorer , thêm một hoạt họa mới vào TriggerAnimation .
- Hover over TriggerAnimation and click the ⊕ button.
- Từ menu context, insert an Hoạt họa .
Chọn đối tượng hoạt họa mới, sau đó trong cửa sổ Thuộc tính , đặt AnimationID vào Animation AssetID bạn muốn kích hoạt khi người chơi chạm vào volume. Ví dụ, mẫu Hazardous Space Station tham khảo
Thử nghiệm trải nghiệm của bạn để đảm bảo hoạt họa của bạn sẽ được phát khi người chơi đang gần bơm hơi đầu tiên.