I believe if I deactivate the Motor maybe it’ll work? But then i’d have to use a weld which doesnt. I might put an animation on so it doesnt use the Motor. I’v done the same thing with a normal character and it works so im not sure why its not working.
Hey, there is a bug when trying to limit the rotation. I was making my own turret rotation system when I noticed the turret would rotate through a prohibited angle when the limit is higher than 90, so I came here to see how you handeled that but I’ve noticed it happens here too.
In the vid you can see how the turret rotates around a prohibited area.
The issue is the lerping method as CFrame lerp takes the shortest path hence crosses the prohibited zone. This is fixed in my private version of the module.
I found out that converting the CFrame to orientation then lerping the three numbers individually worked as the numbers respect the range.
local function lerp(start, goal, alpha)
--we can use our super simple equation at the start, using the 3 values
return start + (goal - start) * alpha
end
local x1, y1, z1 = (currentRotation):ToOrientation()
local x2, y2, z2 = (goalRotationCFrame):ToOrientation()
local x3 = lerp(x1, x2, l1 or self.LerpAlpha)
local y3 = lerp(y1, y2, l2 or self.LerpAlpha)
local z3 = lerp(z1, z2, l3 or self.LerpAlpha)
This respects rotation as it takes the longest path from -180 to 180 instead of skipping it as the numbers.
However I also encountered an issue if the C0 or C1 is rotated as C0 needs to have no rotation at CFrame.new() hence I did not update the module with it yet. I believe this will be fixed with my better C0 formula but I will see what happens later.
I have also developed a newer method using Springs which is like the CFrame :LookAt() but bounces a bit for visual effect. I will include it in the newer version once I fix the orientation bug.
First, for some reason, the torso seems to go a little bit “off” of the centre of the mouse position, you can see that in the gun’s laser. I dont know if its because of the player animations or is other thing.
Second is not a problem at all but is there a way to fix the torso’s horizontal movement when the player walks? That causes my gun to move to the sides and this module fixes vertical one (gun moves down) so im wondering if its possible with horizontal one
For the gun alignment it seems like @gpm231 was able to do it in the rbxl file there maybe try looking at it. The only issue was animations interfering.
It’s a lot more complicated to fix(Other bugs as well when looking straight at the middle), the shake is also caused by animations.
But I believe It’s fixed below:
So I am trying to do that and I think I got it, but there is one problem, having the thing aim correctly when the player changes orientation (it works well until the player starts walking):
I am using mouse.Hit.Position. The code I’m using is basically the one in the rbx file you attached here.
Is there any tutorial I can watch on how to use this. I am trying to create a turret using this module but I am having a hard time understanding what to do. This seems perfect for what I need it for
Hello again! I’m wanting to implement a lot of turrets handled individually by different players, and was wondering the best way to do this. I’ve came up with these options, and was looking for some guidance as to which I should go with:
Server does calculations and tells client the data needed to rotate the turrets. (How would I get just the calculations on the server?)
Server handles everything from calculations to rotating in a RunService loop.
As far as I can tell its correct, I even tried to Frankenstein it by putting the dummies head into the rig and reconnecting the rigs and motors still didnt work particularly well. Are the parts too big or something? or is there an issue with meshparts being used?
attachment on the right is the BaseAttachment for the GunBase (connected to the GunBase Part)
attachment on the left is the TurretAttachment fro the GunBase (connected to the part below (the turretBase)
the motor line (using rig edit lite) is directly above each other
attachment on the right is the TurretAttachment for the Gun (connected to the Gun part)
attachment on the left is the BaseAttachment for the Gun (connected to the Gunbase)
the motor is on the BaseAttachment (the orange circle)
im using PIDLookAt(mouse.Hit.Position, dt) in the HeartBeat function on the server
i switched to the normal LookAt function and it fixed it but i was using PIDLookAt so i could control the speed of the movement so im still wondering how to control that without using PID
edit: after reading through the setup again and messing around with settings i figured it out