Hi all, I have a VHS camera, need to record a player’s screen and then play back as a cassette video on my TV. I can not find information on this topic, I write everywhere that it is impossible for security reasons, but I saw that in some games it is realized. I will be glad to any information
You’re going to need to clarify some stuff here…
Are we talking about a physical VHS player? Is the TV also physical? Or are they both just objects in your game?
Are you meaning to screen record what the client sees (so including all UI and stuff) or just what they’re character should see?
To put it simply, we need to somehow make a record of the player’s screen, what he sees in the game itself. And then in the game itself, a person will be able to view on the TV recorded video. The main problem is to record what the player sees, I had the idea to make screenshots (24) every second, and then just play them in order.
I can also give you an example: in shooters a player kills another player and the killed player sees the last 5 seconds before his death on behalf of the killer, this means that each player has a constant recording of the screen and then it is just played back at the right time by the right segment.
Pardon my English, if anything, I’m writing through a translator
Based on what you said - I believe you would better off having a system that records the location of the players and where they are looking, what part of animation they’re in etc., then just playing that back.
You can’t directly record a player’s screen in Roblox via code
Honestly, it’s crazy, why is it so hard, why aren’t there adequate services for this?
I mean, in order to do a simple screen recording, I need to model a whole piece of the world XD.
It turns out that all games that have done this have used your method, say Front Lines?
The video shows me being shown a “flashback” after the murder, i.e. a screen recording on behalf of my killer
This requires some intense coding but to achieve this you can record the players data by putting it in a table like so with a script every .1 seconds or how ever you want (I think .04 seconds if you want 24 fps):
local PlayerData = {
PlayerInstance = {{CharCFrame, CameraCFrame}, {CharCFrame, CameraCFrame}} -- and so on
} -- Add other data and needed
Then create a separate room to the one the player was at put it far away and out of view and create a function to playback the data:
local function PlaybackData(Data)
for Player, DataList in pairs(Data) do
for Time, Snapshot in pairs(DataList) do
-- Time is the current frame and Snapshot is the " {CharCFrame, CameraCFrame} " table
-- Calculate the position of the player relative to the room copy
-- load the players characters and position them in the room
-- Create a task.spawn function and wait 1 second aka 1 frame a second or 0.04 seconds for 24 fps (if my math is correct)
end
end
end
(I don’t know if this is correct because I’ve never done this before)
This is just an idea to get you started and will take some time and effort to pull this off
I understand the method, it’s a shame it’s so complicated when you could just add a regular service. But I’ve already accepted the fact that roblox engine is full of problems and flaws)
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.