Если вы занимаетесь разработкой в Roblox Studio, то рано или поздно сталкиваетесь с задачами перемещения и поворота объектов. Для этого используется один из самых важных типов данных — CFrame.
Зачем нужен CFrame?
CFrame (Coordinate Frame) — это тип данных, который описывает положение и ориентацию объекта в 3D-пространстве. Он позволяет:
✅ перемещать объекты в заданные координаты;
✅ поворачивать их вокруг осей;
✅ задавать направление взгляда объекта (например, с помощью CFrame.lookAt).
Если вы работаете только с Position, то можете только перемещать объект:
part.Position = Vector3.new(0, 10, 0)
Но если нужно одновременно задать и позицию, и поворот, используем CFrame:
part.CFrame = CFrame.new(0, 10, 0) * CFrame.Angles(0, math.rad(45), 0)
В этом примере объект (part) поднимается на высоту 10 и поворачивается на 45 градусов вокруг оси Y.
Как работать с моделями?
Если у вас не отдельный Part, а целая модель, то напрямую менять её CFrame нельзя. Вместо этого используется метод:
model:PivotTo(CFrame.new(0, 10, 0) * CFrame.Angles(0, math.rad(45), 0))
Метод PivotTo двигает pivot-маркер (центральную точку модели), а вместе с ним и всю модель.
Полезные функции CFrame
💡 CFrame.Angles(x, y, z) — задаёт поворот вокруг каждой оси (X, Y, Z) в радианах.
💡 CFrame.lookAt(position, target) — создаёт CFrame, который смотрит из точки position в точку target. Например:
part.CFrame = CFrame.lookAt(Vector3.new(0, 5, 0), Vector3.new(10, 5, 0))
Этот код развернёт part, чтобы он смотрел в точку (10, 5, 0).
💡 CFrame:Lerp(cframe, alpha) — плавное перемещение (интерполяция) между текущим CFrame и другим CFrame, где alpha — это процент (от 0 до 1), насколько сдвинуться.
Где учиться работать с CFrame?
Если ты хочешь освоить CFrame и другие важные инструменты Roblox Studio, заходи на roblo.ru и записывайся на наши курсы в школу Роблоппа! Мы научим тебя не только создавать простые перемещения, но и делать полноценные игровые механики.