Урок Roblox StudioЗанятие 6 / 8

Анимация NPC

Оживить персонажа

Анимация NPC
Иллюстрация к теме занятия

Цель

Запускать созданный собственноручно жест NPC

Подготовка

Workspace → GuideNPC (R15 Rig с Humanoid и Animator), внутрь GuideNPC → ProximityPrompt в HumanoidRootPart, Animation с корректным AnimationId, Script.

Пошаговая работа

  1. Создай R15 Rig через Avatar/Rig Builder и назови GuideNPC.
  2. В Animation Editor создай короткий жест рукой, опубликуй доступную для игры анимацию и вставь её ID.
  3. Добавь Animation и серверный Script внутрь GuideNPC.
  4. Запусти Play, подойди к NPC, нажми E и посмотри Output при ошибках.

Пример Luau

local npc = script.Parent
local humanoid = npc:WaitForChild("Humanoid")
local animator = humanoid:FindFirstChildOfClass("Animator") or Instance.new("Animator", humanoid)
local root = npc:WaitForChild("HumanoidRootPart")
local prompt = root:WaitForChild("ProximityPrompt")
local animation = npc:WaitForChild("Animation")
-- В Properties у Animation укажи свой действительный AnimationId
local track = animator:LoadAnimation(animation)
local busy = false
prompt.Triggered:Connect(function()
    if busy then return end
    busy = true
    track:Play()
    task.wait(math.max(1, track.Length))
    busy = false
end)

Проверка

Проверь наличие Animator, корректность AnimationId и поведение при повторных нажатиях.

NPC воспроизводит опубликованную анимацию после взаимодействия.

Ошибка и ограничения

Не используй случайный ID: анимация должна быть доступна этому experience. Для R6 и R15 нужны совместимые риги.

Усложнение

Создай два разных жеста и переключай их разными ProximityPrompt.

Проверь пример в тестовой Roblox Studio перед публикацией. Используй отдельные копии проектов и соблюдай права на аудио и анимации.

Проверь свою работу

Перед тестом убедись, что ты выполнил практику самостоятельно.

Эти отметки — личная памятка, они не влияют на звёзды.

Проверь себя

Ответь на вопросы урока. Успешный тест даёт одну звезду в личном кабинете.

⭐ Проверь свои знания

5 вопросов по теме урока. За 4 правильных ответа получишь звезду. Повторные попытки разрешены.

1. Какой компонент обычно загружает анимации для Humanoid?
2. Где хранится идентификатор подготовленной анимации?
3. Чем запускают полученную через Animator:LoadAnimation() дорожку?
4. Почему нельзя гарантировать, что случайный AnimationId сработает у всех?
5. Какой способ лучше для запуска жеста NPC по нажатию E?