В Роблокс Студио, когда вы хотите сделать анимацию движения, поворота, изменения цвета или других свойств объекта, вы используете сервис TweenService. Чтобы задать, как именно должна происходить анимация, используется специальная настройка — TweenInfo.
Эта штука вроде как небольшая, но внутри у неё целых шесть параметров. Разберём, что они делают и зачем вообще нужны.
Что такое TweenInfo?
TweenInfo — это инструкция для Roblox: как быстро, как плавно и каким образом нужно изменить свойство объекта. Например, вы хотите, чтобы кубик медленно поднялся вверх с эффектом "пружины" — вот тут и помогает TweenInfo.
Как это выглядит?
Пример использования:
local TweenService = game:GetService("TweenService")
local part = workspace.Part
local tweenInfo = TweenInfo.new(
2, -- Время анимации
Enum.EasingStyle.Sine, -- Стиль (тип) анимации
Enum.EasingDirection.Out, -- Направление анимации
0, -- Повторений
false, -- Переворачивать ли анимацию
0 -- Задержка перед началом
)
local goal = {Position = part.Position + Vector3.new(0, 10, 0)}
local tween = TweenService:Create(part, tweenInfo, goal)
tween:Play()
local part = workspace.Part
local tweenInfo = TweenInfo.new(
2, -- Время анимации
Enum.EasingStyle.Sine, -- Стиль (тип) анимации
Enum.EasingDirection.Out, -- Направление анимации
0, -- Повторений
false, -- Переворачивать ли анимацию
0 -- Задержка перед началом
)
local goal = {Position = part.Position + Vector3.new(0, 10, 0)}
local tween = TweenService:Create(part, tweenInfo, goal)
tween:Play()
Теперь разберём, что означают эти параметры в TweenInfo.new(...).
1. Time — длительность
Сколько секунд должна идти анимация.
Например, 2 означает, что объект будет двигаться 2 секунды.
2. EasingStyle — стиль анимации
Как именно будет меняться свойство: плавно, резко, с ускорением или замедлением.
Примеры: Linear, Sine, Bounce, Elastic.
Если хотите что-то мягкое — используйте Sine. Если нужно, чтобы объект "подпрыгнул" — Bounce.
3. EasingDirection — направление анимации
Это дополнение к стилю.
- In — начинается медленно, потом ускоряется
- Out — начинается быстро, замедляется в конце
- InOut — мягко начинается и мягко заканчивается
4. RepeatCount — сколько раз повторить
0 — один раз
1 — два раза и т. д.
Если хотите бесконечную анимацию — используйте -1.
5. Reverses — возвращаться ли назад
Если true, то после завершения анимации объект возвращается в начальное состояние.
Часто используется с RepeatCount, чтобы получить эффект "туда-сюда".
6. DelayTime — задержка перед стартом
Иногда полезно, если вы хотите, чтобы анимация началась не сразу, а через несколько секунд. Например:
TweenInfo.new(2, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, 0, false, 1)
В этом примере анимация начнётся через 1 секунду.
Когда использовать TweenInfo?
- Хотите, чтобы кнопка плавно меняла цвет? TweenInfo пригодится.
- Нужно, чтобы платформа ехала вверх по рельсам? Без него не обойтись.
- Делаете подсказку, которая появляется и исчезает красиво? Опять он.
Заключение
TweenInfo — это ваш способ сделать анимации живыми и интересными. Он может показаться сложным вначале, но на практике вы просто начинаете подбирать нужную скорость и стиль, и всё начинает работать.