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!