So I spend some time making my plane model BUT when I finished, I realized it was facing the wrong direction, meaning this script: ship.PrimaryPart.Velocity = ship.PrimaryPart.CFrame.LookVector * speed
(which makes the ship move in the direction it’s facing) and this script: game.Workspace.CurrentCamera.CFrame = game.Workspace.CurrentCamera.CFrame:lerp(ship.PrimaryPart.CFrame * CFrame.new(0,0,-15*scale),.9)
do not work.
All the second script does is have the camera smoothly follow the plane as it’s moving.
Essentially what I’m asking is how I would change my code to fix this issue. An idea I had was to create an “offset” type vector3 value. For example, my current ship is facing 45 degrees to the left of the original ship, so I could have a value like this: Vector3.new(0,-45,0), but I’m not sure how I would implement that into the code I have here.
Thanks! Let me know if I need to clarify anything.
The lookVector is the direction the part is “facing”. Perhaps you could clarify what the issue is. You don’t have to move the part in the direction it is facing (lookVector) you have upVector, rightVector as well. You can use negative values to get the opposite direction or make your own CFrame or Vector3 value out of whatever criteria you have.
Thanks for responding. After playing around for a few hours, I finally got it to work (it’s probably more complex than it has to be). What I did is take two values: one value (DirectionVector) showing which direction the ship is facing (e.g. (0,0,1) is the default value) and another value (OffsetVector) showing the rotational offset the ship has relative to lookVector.
In this case, the ship was facing 90 degrees relative to lookVector so it’s OffsetVector was (0,90,0). The ship was facing towards positive X, so the direction vector was (1,0,0). Heres the edited code with these values: ship.PrimaryPart.Velocity = (ship.PrimaryPart.CFrame * CFrame.Angles(math.rad(ship.OffsetVector.Value.X), math.rad(ship.OffsetVector.Value.Y), math.rad(ship.OffsetVector.Value.Z))).lookVector * speed
and for the camera code: local targetCFrame = ship.PrimaryPart.CFrame * CFrame.new(ship.DirectionVector.Value.X*-15*scale,0,ship.DirectionVector.Value.Z*-15*scale) targetCFrame = targetCFrame * CFrame.Angles(math.rad(ship.OffsetVector.Value.X), math.rad(ship.OffsetVector.Value.Y), math.rad(ship.OffsetVector.Value.Z)) game.Workspace.CurrentCamera.CFrame = game.Workspace.CurrentCamera.CFrame:lerp(targetCFrame,.9)
(in case anyone actually needed this code)
Another alternative is to use an attachment within the part then use it’s WorldCFrame or it’s axis. If you don’t want to create a new part and align it to the model.