como-fazer-fps-roblox-studio

Como Criar um Jogo FPS no Roblox Studio

Modo Primeira Pessoa com Mãos Visíveis

Você quer aprender a fazer um jogo estilo First Person Shooter (FPS) no Roblox Studio, com câmera em primeira pessoa e apenas as mãos do personagem aparecendo? Então você está no lugar certo! Nesta aula, vou te mostrar passo a passo como transformar seu jogo em um verdadeiro FPS, perfeito para iniciantes e crianças que estão começando a programar no Roblox.

Vídeo Como fazer Jogo FPS no Roblox Studio

O que vamos aprender neste post:

  • Como ajustar a câmera para o modo primeira pessoa;

  • Como esconder o corpo do personagem e mostrar apenas as mãos;

  • Como usar ferramentas (tools) no modo FPS;

  • Como configurar scripts no StarterPlayer e nas Tools;

  • E, claro, vamos deixar tudo isso bem organizado para que você possa copiar, colar e entender!

🎮 1. Introdução ao FPS no Roblox

Antes de irmos para os scripts, é importante entender como funciona a visão em primeira pessoa no Roblox. Normalmente, o Roblox permite que o jogador alterne entre primeira e terceira pessoa, mas com alguns ajustes no PlayerScript, conseguimos travar a câmera em primeira pessoa e deixar o jogo mais imersivo.

🧠 2. Script do Player – Controlando a Câmera e Escondendo o Corpo

				
					
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local runService = game:GetService("RunService")


local visibleParts={
	"RightHand", "LeftHand",
	"RightArm", "LeftArm",
	"RightLowerArm", "LeftLowerArm",
	"RightUpperArm", "LeftUpperArm"
	
}

runService:BindToRenderStep('FirstPersonArms', Enum.RenderPriority.Camera.Value +1, function()
	local character = player.Character
	if not character then return end
	
	local isFirstPerson = (player.CameraMode==Enum.CameraMode.LockFirstPerson) or 
		(workspace.CurrentCamera and workspace.CurrentCamera.CameraSubject == character and
			workspace.CurrentCamera.CameraType == Enum.CameraType.Custom)
	
	if  isFirstPerson then
		
		for _, part in pairs(character:GetDescendants()) do
			if part:IsA("BasePart") then
				part.LocalTransparencyModifier=1
			end
		end
		
		for _, partName in pairs(visibleParts) do
			local part = character:FindFirstChild(partName)
			if part then
				part.LocalTransparencyModifier=0
			end
		end
		local tool= character:FindFirstChildOfClass("Tool")
		
		if tool then
			for _, toolPart in pairs(tool:GetDescendants()) do
				if toolPart:IsA("BasePart") then
					toolPart.LocalTransparencyModifier=0
				end
			end
		end
	else
		for _, part in pairs(character:GetDescendants()) do
			if part:IsA("BasePart") then
				part.LocalTransparencyModifier=0
			end
		end
	end
	
	
    
end)
				
			

🔫 3. Script da Tool –

				
					
local tool = script.Parent
local player = game.Players.LocalPlayer
local camera = workspace.CurrentCamera



tool.Equipped:Connect(function()
	print("Ferramenta Equipada")
	player.CameraMode= Enum.CameraMode.LockFirstPerson
end)


tool.Unequipped:Connect(function()
	print("Ferramenta foi desequipada")
	player.CameraMode = Enum.CameraMode.Classic
	player.CameraMinZoomDistance =10
	wait(1)
	player.CameraMinZoomDistance=0.5
end)
				
			

🚀 Pronto para Criar Jogos Incríveis?

Se você gostou dessa aula e quer aprender ainda mais sobre programação no Roblox, venha conhecer os cursos da Programação for Kids! Criamos cursos pensados especialmente para crianças e adolescentes que querem aprender de forma divertida e prática.

🎓 Lá você encontra:

  • Apostilas e quizzes interativos

  • Certificados gratuitos

  • Aulas passo a passo para criar jogos no Roblox

  • E uma comunidade para tirar dúvidas e evoluir junto!

👉 Acesse agora: https://programacaoforkids.com.br/cursos/
Vamos juntos transformar sua criatividade em jogos incríveis!

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *