Додавання анімацій
Щоб реалізувати анімацію в грі, використовуйте скрипти. У цьому посібнику ви реалізуєте попередньо створену анімацію перемоги за допомогою попередньо створеного сценарію. Після завершення цю анімацію можна використовувати, щоб відзначити досягнення гравця, як-от досягнення кінця оббі або знаходження секрету.
Анімація запускається за допомогою сценаріїв . Один із підходів полягає в тому, щоб використовувати події для відтворення анімацій у різноманітних ситуаціях, наприклад, коли гравець завершує рівень, перемагає ворога або навіть робить покупку в грі.
Для цього проекту ви створите частини, доторкання до яких запускатиме анімацію для цього гравця.
Щоб упорядкувати всі частини, які будуть відтворювати анімацію, додайте папку в Workspace (наведіть курсор на Workspace і натисніть +) під назвою TouchPartFolder.
У TouchPartFolder додайте частину.

Переконайтеся, що частина розміщена там, де відтворення анімації мало б сенс, наприклад, у кінці рівня або біля об’єкта, який збирають гравці.

Приклад партії Перемоги

Приклад взаємодії Частина
У StarterPlayer > StarterCharacterScripts створіть LocalScript під назвою TouchPartRegister. Потім скопіюйте та вставте код нижче.
-- Used with "PlayerAnimationFeedback" script to play animations on part touches
-- Services
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.Character:Wait()
local humanoid = character:WaitForChild("Humanoid")
local canTouch = false
-- Include feedback animation module
local PlayerAnimationFeedback = require(ReplicatedStorage:WaitForChild("PlayerAnimationFeedback"))
-- Function called when a part is touched
local function onPartTouch(otherPart)
if humanoid and canTouch == false then
canTouch = true
PlayerAnimationFeedback:PlayAnimation()
canTouch = false
end
end
-- On startup, call animation module load function
PlayerAnimationFeedback:LoadAnimation(humanoid)
-- Also bind a folder of parts to the "Touched" event to run "onPartTouch()"
local touchPartFolder = workspace:WaitForChild("TouchPartFolder")
local touchParts = touchPartFolder:GetChildren()
for i, touchPart in touchParts do
touchPart.Touched:Connect(onPartTouch)
end
Цей сценарій знаходить усі частини в папці TouchPartFolder і надає їм події Touched(). Після запуску подія запускає функцію, яка відтворює анімацію для гравця.
Хоча цей сценарій використовує Touched() , також можна використовувати різні події, такі як MouseClick() або Changed() . Крім того, ваші власні ігрові події, як-от нарахування очок гравцеві, можуть запускатися зі сценарію TouchPartRegister. Щоб побачити приклад, який можна додати, перегляньте статтю Health Pickups для коду.
Наступний сценарій запускає анімацію для гравця. У ReplicatedStorage створіть новий ModuleScript під назвою PlayerAnimationFeedback. Потім скопіюйте та вставте наведений нижче код.
-- Used with "TouchPartRegister" script to play animations for a player
local PlayerAnimationFeedback = {}
local feedbackAnimationTrack
local ANIMATION_FADE = 0.3
local ANIMATION_ID = "rbxassetid://YOUR_ANIMATION"
-- Function to load animation onto player's character
function PlayerAnimationFeedback:LoadAnimation(humanoid)
local feedbackAnimation = Instance.new("Animation")
feedbackAnimation.AnimationId = ANIMATION_ID
feedbackAnimationTrack = humanoid.Animator:LoadAnimation(feedbackAnimation)
feedbackAnimationTrack.Priority = Enum.AnimationPriority.Action
feedbackAnimationTrack.Looped = false
end
-- Function to play the animation
function PlayerAnimationFeedback:PlayAnimation()
feedbackAnimationTrack:Play(ANIMATION_FADE)
task.wait(feedbackAnimationTrack.Length)
end
return PlayerAnimationFeedback
Відтворення анімацій
Сценарій повинен знати, яку анімацію відтворювати. Щоб використати експортовану анімацію, знайдіть її ідентифікатор ресурсу у веб-браузері. Цей ідентифікатор дозволить завантажити анімацію в сценарій.
Відкрийте розділ «Анімація» на сторінці «Створити».
Знайдіть і клацніть експортовану анімацію.
Скопіюйте його ідентифікатор із URL-адреси у вашому браузері.

У сценарії PlayerAnimationFeedback замініть заповнювач YOUR_ANIMATION (рядок 8) ідентифікатором, який ви скопіювали.

Запустіть проект і перевірте, що коли гравець влучає в частину, ви бачите анімацію.