Animation Editor: персонажи
- Редактор открывается из вкладки Avatar и работает с моделью, у которой есть Humanoid
- Движение собирается из ключевых кадров на дорожке времени
- Готовая анимация загружается в Roblox и получает свой идентификатор
- В игре её проигрывает Animator внутри Humanoid
Как проиграть анимацию
local Players = game:GetService("Players")local player = Players.LocalPlayerlocal character = player.Character or player.CharacterAdded:Wait()local humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")local wave = Instance.new("Animation")wave.AnimationId = "rbxassetid://0" -- сюда свой идентификаторlocal track = animator:LoadAnimation(wave)track.Priority = Enum.AnimationPriority.Actiontrack:Play()
Идентификатор нулевой намеренно: подставь свой — чужие анимации так не берут.
TweenService: объекты и интерфейс
Всё, что не персонаж, анимируют твинами: дверь, панель интерфейса, прозрачность, цвет. Твин сам считает промежуточные значения, поэтому не нужен цикл, который дёргает свойство каждый кадр.
Твин на клиенте видит только клиент, твин на сервере — все. Для интерфейса это плюс: анимация панели никого, кроме владельца экрана, не касается.
Чего лучше не делать
- Не двигай объект в цикле while — получится рывками и сожрёт производительность
- Не проигрывай персонажу анимации, прав на которые у тебя нет
- Не забывай останавливать трек: незавершённые анимации накладываются друг на друга