Hi, am trying to figure out how I can roll a camera and have it follow the player/part. I've found that I can roll the camera using
workspace.CurrentCamera:SetRoll(math.rad(20))
in a local script inside "StarterPlayerScripts", and changing the CameraType to "Scriptable". Unfortunately when I set it to "Scriptable" the camera dos not follow. When I set it to "Follow" the camera will follow the Player but will not roll. Isn't there some way to make the camera roll and follow? I thought I saw some check box for VR stuff that might allow the cameraTypes to be able to roll?
Update: Here is some code I just got some where else and added Interpolation. Works pretty well actually but still not perfect. Have any suggestions to make it smoother?
repeat wait() until game.Players.LocalPlayer
local target = game.Players.LocalPlayer.Character.Head
local camera = game.Workspace.CurrentCamera
camera.CameraType = Enum.CameraType.Scriptable
print(camera.CameraType) -- Debug to make sure that I don't get "Camera isn't set to scriptable" errors
function Update() -- Track player
while true do
workspace.CurrentCamera:Interpolate(CFrame.new(workspace.CurrentCamera.CFrame.X,workspace.CurrentCamera.CFrame.Y,workspace.CurrentCamera.CFrame.Z),
CFrame.new(target.Position),
--* CFrame.new(0, 5, 10)
--* CFrame.Angles(-0.5, 0, 0),0,0.1),
0.1)
camera.CoordinateFrame = CFrame.new(target.Position)
* CFrame.new(0, 5, 10)
* CFrame.Angles(-0.5, 0, 0)
wait(0.1)
end
end
spawn(Update)
function FlipCamera(flip)
local e = "A value in FlipCamera returned nil"
if flip == nil then error(e) end
local value = nil
if flip == true then
print("Flipping camera")
value = 0
camera:SetRoll(value)
while camera:GetRoll(math.rad) <= math.pi do
print("flip")
camera:SetRoll(math.rad(value))
value = value + 10
print(camera:GetRoll(math.rad))
wait()
end
camera:SetRoll(math.rad(180))
elseif flip == false then
print("Flipping camera back")
value = math.pi
camera:SetRoll(value)
while camera:GetRoll(math.rad) >= 0 do
print(camera:GetRoll(math.rad))
camera:SetRoll(camera:GetRoll(math.rad) - 0.2)
wait()
end
camera:SetRoll(0)
end
end
wait(4)
FlipCamera(true)
wait(4)
FlipCamera(false)
-- Flip the camera by calling the function FlipCamera(), arguments true = flip the camera upside down, false = flip the camera right side up

3 comments
http://wiki.roblox.com/index.php?title=API:Class/Camera/Interpolate You could interpolate the camera behind the player every second or so with a loop, meanwhile changing the roll as you please.
I actully just did that right before you commented this XD
My work is above if you have any suggestions ;)