Constraints — «связи» между деталями. Создаются через Model → Create (Constraints), соединяют две Attachment.
Вращение: низкая «SpinBase» (Anchored вкл.) и длинная палка «SpinBar» над ней (Anchored выкл.). Model → Create → Hinge: кликни сначала по верху основания, потом по низу палки.
У Attachment ось вращения — жёлтая стрелка. Поверни обе Attachment так, чтобы стрелки смотрели вверх (Orientation 0, 0, 90).
HingeConstraint: ActuatorType = Motor, AngularVelocity = 1.5 (скорость), MotorMaxTorque = 100000000 — иначе игрок остановит палку. В методичке был CylindricalConstraint — Hinge то же самое, только проще.
Пружина: «SpringBase» (Anchored вкл.) и площадка «Pad» над ней (Anchored выкл.). Model → Create → Spring между ними: Stiffness 2000, FreeLength — расстояние между ними, Damping 50.
Чтобы площадку не уносило вбок — добавь между теми же деталями Prismatic (направляющая). Обе Attachment стрелкой вверх.
Маятник: «PendulumTop» высоко (Anchored вкл.), шар «Ball» сбоку (Anchored выкл., Shape Ball). Model → Create → Rope между ними, Length — чуть больше расстояния. Шар отпущенный сбоку сам начнёт качаться.
Сделай шар тяжёлым: CustomPhysicalProperties вкл., Density 10 — он будет сбивать игроков.
Маятник и пружина со временем останавливаются или сбиваются игроками — «ResetScript» раз в 30 секунд ставит деталь на место без скорости, и всё начинается заново.
Скрипты
ResetScript
Где: Workspace → Pendulum → Ball (и Trampoline → Pad) · Script Зачем: Возвращает деталь на место.
-- маятник или площадка пружины
local part = script.Parent
-- раз в сколько секунд возвращаем на место
local RESET_TIME = 30
-- место и поворот в начале игры
local start = part.CFrame
-- бесконечно
while true do
-- ждём
task.wait(RESET_TIME)
-- гасим скорость
part.AssemblyLinearVelocity = Vector3.zero
-- гасим вращение
part.AssemblyAngularVelocity = Vector3.zero
-- ставим на старое место — маятник снова раскачивается
part.CFrame = start
-- конец цикла
end
Проверка
Запусти Play (или Run) и убедись:
Палка вращается; игрок, которого она задела, слетает с платформы.
Встань на площадку пружины — она проседает и подкидывает обратно.
Шар качается поперёк дорожки; через 30 секунд снова стартует с исходной точки.