local x = workspace.CurrentCamera local n = Instance.new("Part") n.Parent = workspace n.Anchored = true; n.Transparency = 0.5; n.CanCollide = false; local d = 6; -- dsitance from camera local w = Instance.new("BlockMesh") w.Scale = Vector3.new(1,1,0) w.Parent = n; function gn(v2) local m = x.CFrame + (x.CFrame.LookVector * d) -- midpoint local mx,my = x.ViewportSize.X/2,x.ViewportSize.Y/2; -- midpoint px m = m * CFrame.new( d*(v2.X-mx)/x.ViewportSize.Y, d*(my-v2.Y)/x.ViewportSize.Y, 0 ); -- offset block return m end game["Run Service"].RenderStepped:connect(function() --x.FieldOfView = (x.FieldOfView+0.25)%80 -- use this to make it obvious whats wrong local a = (math.pi*x.FieldOfView/360) local w2 = math.sin(a) * (d); n.Size = Vector3.new( w2, w2, 0.2 ); -- set size based on FOV n.CFrame = gn(x.ViewportSize/2) -- just take the middle end)
i was expecting this to create a block, put it in front of the camera, and have it be directly in the center and half the height. however it just doesn't work and it somehow depends on what the FOV is. the horizontal dimension is completely wrong so i'm not even going to pretend i know about that one
any ideas why?