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

Using a new Camera object for First Person?

Asked by
nilVector 812 Moderation Voter
9 years ago

I am trying to create a first-person spectating system in my game where you can spectate in the first person perspectives of other players. Whenever a player spawns, I insert this LocalScript into him/her:

wait()

local camera = game.Workspace.CurrentCamera:Clone()
camera.Name = "FirstPersonCamera"
camera.Parent = script.Parent:FindFirstChild("Head")
camera.CameraType = Enum.CameraType.Scriptable

while wait(0.01) do
    camera.Focus = CFrame.new(script.Parent:FindFirstChild("Head").Position)
end

What this basically does is insert a replica of CurrentCamera from Workspace and stores it in the player's head. If I print the camera's Focus value, it will properly print a CoordinateFrame value in the output. Then, in a separate LocalScript in StarterPack, I have a "Spectate" script. This is my algorithm to get the spectator's camera to be in the view of the person he/she is spectating.

[VIEW SOURCE TO PROPERLY SEE CODE]

--[[
    NOTE: This is not the only code in the script. It's only the significant part.
    PRE-CONDITION: "humanoid" is the humanoid of the player you are spectating.
                         cam.CameraType = Enum.CameraType.Scriptable
--]]

local cam = game.Workspace.CurrentCamera

while wait(0.01) do
    cam.Focus = game.Players:GetPlayerFromCharacter(humanoid.Parent).Character.Head:FindFirstChild("FirstPersonCamera").Focus
end

This does not work. I'm getting an error saying attempting to index a nil value on the line where I try to set cam.Focus. Instead of using Focus, I tried replacing it with cam.CoordinateFrame. I still got the same error message.

I am sort of new to camera manipulation, so any help would be appreciated.

0
Sorry S was supposed to be the same RemoteFunction. I updated it. NotsoPenguin 705 — 9y
0
I know it does not work very well. It was more just a test of concept for me :P. NotsoPenguin 705 — 9y

Answer this question