К карте
АРХИПЕЛАГ · ROBLOX · КИНО 2
Танец на берегу
0
Прогресс0 / 5
ПОСТАВЬ ПЕРВУЮ ДЕТАЛЬ

Нажми — и деталь появится в мире

Жми кнопки по очереди — это три строчки настоящего скрипта.
ПЕРЕД СТАРТОМ
⏱ Сколько займёт
30–50 минут, 5 шагов. Каждый шаг заканчивается результатом на экране.
💻 Что нужно
Компьютер с Windows или macOS. Понадобится Roblox Studio — бесплатная, поставим на первом шаге. С телефона этот квест не проходится.
⏸ Если прервёшься
Ничего не потеряется: прогресс сохраняется на этом устройстве. Вернёшься — продолжишь с того же шага.
🎓 Чему научишься
подмена анимации · Animator и дорожки · оживление NPC
ШАГ 1 ИЗ 5 · АРХИПЕЛАГ · ROBLOX · КИНО 2

Свой танец вместо стандартного

ЧТО ПРОИСХОДИТ
ЭПИЗОД 15Берег у костра

Вечером у костра команда танцует. Один твой герой стоит столбом и ходит своей стандартной походкой.

«Смени ему шаг, — капитан кивает на огонь. — Игрок не читает описаний. Он смотрит, как ходят».

Своя походка — и персонаж сразу становится собой, а не болванчиком со склада.

капитан Рэй · капитан «Дублона»
ЧТО ПОЛУЧИТСЯ
ЗАПИСЬ ГОТОВОЙ ИГРЫ
У костра каждый двигается по-своему, и только один стоит столбом — пока ему не дали свой цикл движения. Походка и есть характер.

Это запись из Roblox Studio: у костра каждый двигается по-своему. Такой же берег ты оживишь сам за этот квест.

СНАЧАЛА — ПОСМОТРИ
ЖИВАЯ ЗАПИСЬ ДВИЖКА
Ночной берег и житель, которому поменяли движение. Встроенную анимацию Roblox подменили своей — пятью строчками кода.

Сегодня впервые в этой экспедиции появится скрипт. Совсем короткий.

КАПИТАН КВЕСТО · ВЕДУЩИЙ КВЕСТА
У каждого игрока в Roblox внутри аватара живёт скрипт Animate. Именно он решает, какую анимацию включить: идёт человек — играет ходьбу, прыгнул — прыжок, написал в чат /e dance — танец.

Хитрость в том, что содержимое этого скрипта можно подменить. Найти внутри него анимацию танца и вписать туда ID своей. Сам Animate появляется только во время игры (Play → Players → твоё имя → Character → Animate): в режиме редактирования его в Explorer нет, поэтому подменять будем скриптом.

ЗАДАНИЕ 1 · ТАНЕЦ
ГДЕ ЖИВЁТ СКРИПТ — ЖМИ НА КРУЖОКнажми на кружок — покажу место
HOMEMODELAVATARTESTVIEWPLUGINSPartTerrainMaterialToolboxPublishPlayExplorerWorkspaceBaseplateSpawnLocationTerrainLightingServerScriptServicePropertiesAnchored✔MaterialWoodColorTransparency0Size4, 1, 8
  • 1ServerScriptService — сюда кладут общий скриптПКМ → Insert Object → Script. Такой скрипт работает на сервере, и его действие видят все игроки.
  • 2Скрипт для NPC — внутрь самой моделиТогда script.Parent и есть персонаж, и танцевать он будет сам по себе.
  • 3Кнопка Play — проверитьНапиши в чате /e dance. Если персонаж танцует твоё — подмена сработала.
  • 4Не работает? Смотри OutputВкладка Script → Output. Красная строка покажет, какой объект скрипт не нашёл.
Отмечено:0 из 4
ШАГ 2 ИЗ 5 · АРХИПЕЛАГ · ROBLOX · КИНО 2

Пять строк, которые всё меняют

ЗАДАНИЕ 2 · ПОДМЕНА
DanceChange (Script)LUA
local Players = game:GetService("Players")

-- сюда вставь свой Asset ID
local NEW_DANCE = "rbxassetid://9093137352"

local function onCharacterAdded(character)
	local animate = character:WaitForChild("Animate")
	local dance = animate:WaitForChild("dance")
	for _, clip in ipairs(dance:GetChildren()) do
		clip.AnimationId = NEW_DANCE
	end
end

Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(onCharacterAdded)
end)
WaitForChild — «подожди, пока этот объект появится». Аватар собирается не мгновенно, и без ожидания скрипт полез бы в пустоту. rbxassetid:// — приставка перед номером: так Roblox понимает, что это адрес ресурса. Внутри dance лежат три клипа — Animation1, Animation2, Animation3, и /e dance каждый раз берёт случайный. Поэтому меняем все сразу циклом, иначе свой танец покажется в одном случае из трёх. Рядом лежат dance2 и dance3 — это команды /e dance2 и /e dance3, их подменяют так же.

Запусти игру и напиши в чат /e dance. Персонаж станцует твоё.

Зачем в коде WaitForChild, а не просто обращение к объекту?
Так короче
Аватар собирается не сразу — без ожидания скрипт не найдёт нужный объект и выдаст ошибку
WaitForChild работает быстрее
ГДЕ ЖИВЁТ КАКОЙ СКРИПТ
Три места, которые надо запомнить. ServerScriptService — скрипты, работающие на сервере: их видят все игроки. StarterPlayerScripts — LocalScript, работающий у каждого игрока отдельно: сюда идёт всё, что связано с клавишами и интерфейсом. StarterGui — интерфейс. Положишь скрипт не туда — он просто не запустится.
НАСТОЯЩИЙ ЭКРАН ROBLOX STUDIO — КУДА НАЖИМАТЬ
ТВОЙ ЭКРАН ROBLOX STUDIO — КУДА НАЖИМАТЬнажми на кружок — покажу место
Окно редактора
  • 1Clip Editor — откуда берётся твой Asset IDСвой танец сначала публикуют здесь, и Roblox выдаёт длинное число. Его и подставляют в код с приставкой rbxassetid:// — без приставки Roblox не понимает, что это адрес.
  • 2ServerScriptService — сюда кладут DanceChangeНаведи мышь на строку → «+» → Script. Такой скрипт работает на сервере, и подмену танца увидят все. Скрипт для игрока живёт только тут: в StarterGui или Workspace он не запустится.
  • 3Workspace — а второй скрипт кладут ВНУТРЬ жителяРазверни Workspace, найди строку своего рига и через «+» на ней вставь Script. Тогда script.Parent — сам персонаж, и он затанцует сам по себе, без всякого игрока.
  • 4Синий треугольник ▶ — и напиши в чат /e danceТанцует твоё — подмена сработала. Красный квадрат рядом останавливает тест.
  • 5Вкладка Script — тут живёт окно OutputНикакой вкладки View в этой Studio нет, красные строки ищи именно здесь. Если житель стоит столбом и ошибок нет — почти всегда забыт rbxassetid:// или не выставлен Looped.
Отмечено:0 из 5

Это настоящий экран Roblox Studio 2026 — такой же, как у тебя: та же лента вкладок, тот же Explorer со всеми сервисами, та же панель Properties. Нажимай на кружки по порядку: метка покажет место, строка ниже объяснит, зачем оно. Чего на кадре нет — про то честно написано словами. Отмечай пройденное — прогресс сохранится.

ШАГ 3 ИЗ 5 · АРХИПЕЛАГ · ROBLOX · КИНО 2

Танцующий житель

ЗАДАНИЕ 3 · NPC
DanceLoop (Script внутри рига)LUA
local rig = script.Parent
local humanoid = rig:WaitForChild("Humanoid")
local animator = humanoid:FindFirstChildOfClass("Animator") or Instance.new("Animator", humanoid)

local anim = Instance.new("Animation")
anim.AnimationId = "rbxassetid://9093137352"

local track = animator:LoadAnimation(anim)
track.Looped = true
track:Play()
Скрипт кладётся внутрь модели рига — тогда script.Parent и есть сам персонаж. Instance.new создаёт новый объект прямо из кода. LoadAnimation превращает клип в дорожку, которую можно включить, поставить на паузу или остановить. Строчка FindFirstChildOfClass("Animator") or Instance.new(...) — подстраховка: у ригов из Toolbox Animator иногда отсутствует, и обычный WaitForChild завис бы молча, без единой ошибки.

Теперь на твоём острове танцует житель — сам, всё время, без всякого игрока. Такие персонажи оживляют карту сильнее, чем любая декорация.

ЦЕПОЧКА АНИМАЦИИ
ЧТО ЭТО ВООБЩЕ
Animation
Объект-ссылка. Внутри только AnimationId — адрес клипа.
КАК ЗАПУСТИТЬ
Animator:LoadAnimation()
Превращает ссылку в дорожку — AnimationTrack.
ЧТО УМЕЕТ ДОРОЖКА
Play / Stop / Looped
Плюс скорость через track:AdjustSpeed(2) и громкость влияния.

Три объекта, и все три нужны. Пропустишь LoadAnimation — включать будет нечего.

ЭКСКУРС
КАК В НАСТОЯЩИХ ИГРАХ

Походка как характер

По одной ходьбе игрок понимает про персонажа больше, чем из описания: тяжёлый шаг — сильный, семенящий — трусливый, вразвалку — наглый.

В больших играх для каждого героя делают свой набор движений: ходьба, бег, разворот, ожидание. Только на ожидание иногда рисуют несколько вариантов, чтобы персонаж не выглядел куклой.

Приём, который стоит копировать: дай герою одно уникальное движение. Его запомнят.

ШАГ 4 ИЗ 5 · АРХИПЕЛАГ · ROBLOX · КИНО 2

Когда не работает

НАЙДИ ОШИБКУ
DanceLoop (Script)нажми на строку с ошибкой
1local rig = script.Parent
2local humanoid = rig:WaitForChild("Humanoid")
3local animator = humanoid:WaitForChild("Animator")
4
5local anim = Instance.new("Animation")
6anim.AnimationId = "9093137352"
7
8local track = animator:LoadAnimation(anim)
9track:Play()
Персонаж стоит неподвижно, красных ошибок нет — только предупреждение в Output.

Персонаж стоит неподвижно, красных ошибок нет — в Output только предупреждение о неудачной загрузке. Найди строку.

ПЯТЬ БЕД
НЕ ИГРАЕТ ВООБЩЕ
проверь ID и приставку
rbxassetid:// перед числом обязательна.
ИГРАЕТ ОДИН РАЗ
нет Looped = true
Либо в редакторе, либо в коде — иначе клип отыграет и остановится.
ЧУЖАЯ АНИМАЦИЯ НЕ ИДЁТ
права доступа
Можно проигрывать только свои анимации или те, что автор открыл для всех.
ДЁРГАЕТСЯ
конфликт с Animate
Встроенный скрипт пытается включить свою анимацию поверх твоей. Для NPC его обычно удаляют.
СТОИТ СТОЛБОМ, ОШИБОК НЕТ
заякорены все части
Anchored = true должен стоять только у HumanoidRootPart. Заякоренные руки и ноги двигаться не могут — анимация играет, а персонаж стоит.
ШАГ 5 ИЗ 5 · АРХИПЕЛАГ · ROBLOX · КИНО 2

Живой берег

ЗАДАНИЕ 4 · ФИНАЛЬНОЕ
1
Оживи трёх жителей
Рыбак закидывает удочку, торговец машет рукой, стражник переминается с ноги на ногу.
2
Сделай анимации разной длины
Если у всех одна длина, они начнут двигаться синхронно — и это будет выглядеть жутко.
3
Добавь случайную задержку
Перед track:Play() поставь task.wait(math.random() * 2). Персонажи рассинхронизируются.
4
Посмотри со стороны
Отойди камерой и понаблюдай. Берег должен казаться живым.
КАПИТАН КВЕСТО · ВЕДУЩИЙ КВЕСТА
Твой остров перестал быть выставкой. По нему ходят игроки, на нём работают люди, у каждого своё дело. И весь код, который для этого понадобился, помещается на один экран.

Задание Гильдии: сделай анимацию для себя — ту, которую хочется показывать друзьям. Подмени ей стандартный танец и позови кого-нибудь в свою игру.

Поднимай флаг.

Квест пройден!

Свой танец в игре, ожившие жители и первый код анимации. Бейдж ХОРЕОГРАФ.

Что дальше. Боцман Клык встаёт напротив и складывает руки: «Ну, ударь».

🏅 Забрать диплом Следующий квест: Абордажный удар
🔒

Этот остров ещё закрыт

Сначала пройди предыдущий квест — хотя бы просмотри все шаги.

⚑ Экспедиционный режим