Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How do I make a BodyGyro rotate an object at a constant angular velocity?

Asked by 6 years ago
Edited 6 years ago

So, This is the issue in detail and some examples to make it easy to understand:

  • I have an object with a BodyGyro that will always point to the current Mouse.Hit, but I don't want it to go try pointing towards it instantly.
  • I'm trying to give the BodyGyro target a "rotation limit" each time the loop body runs, in this case, it will be 5°.
  • I want the BodyGyro to try point towards the current Mouse.Hit without rotating more than 5° each axis everytime the loop body runs.

Basically what I want to do is to make the BodyGyro rotate the object from one CFrame to another CFrame with a constant angular velocity, but I have my reasons for not using BodyAngularVelocity and not changing the Dampening and MaxTorque factors. (The MaxTorque factor is inf. in all three axis.)

Now, I can change the BodyGyro target either using CFrame.new(objectPosition, newTarget) or CFrame.Angles(x, y, z). Alright, let's go make the code already:

local RotationLimit = 5 --it can be math.rad(5), i don't know...
while wait(0.25) do
    --We need to rotate the BodyGyro position here...
end

Well, I can't come up with a way to make a newTarget that will rotate the object no more than 5° each axis towards the Mouse.Hit everytime the loop body runs... I can't come up with a CFrame.Angles() solution either, which I think is WAY more difficult than the first solution option. Does someone know what I can do to solve this problem? If so please comment or answer what you think might be a good way to solve this, explanation would be appreciated. Thanks for reading and hope someone figures this out.

0
It actually isn't. SuperAndresZ_YT 202 — 6y
0
don't use body gyro wookey12 174 — 6y

Answer this question