2. First-Person Camera

Implementeer mouse look en first-person camera beweging

Overzicht

In dit hoofdstuk implementeer je een first-person camera systeem met mouse look. Je leert hoe je mouse input verwerkt, camera rotatie beperkt, en de cursor captured voor FPS gameplay.

Input actions

Ga aan de slag met het bewegen en rondkijken van de speler. Daarvoor moet je eerst bepalen welke toetsen de speler hiervoor zal gebruiken. Zoals in de meeste andere games, gebruik je de WASD-toetsen.

circle-check

Player scene setup

circle-check

Scene hierarchy:

PlayerController Script (Template)

Godot heeft handige script templates met basis functionaliteit. Gebruik de CharacterBody3D movement template als startpunt.

circle-check

Het script opent automatisch in VS Code. De template bevat al heel wat code:

De template geeft al veel functionaliteit, maar pas het aan voor een first-person game.

Template input actions aanpassen

De template gebruikt momenteel Godot's built-in UI input actions zoals ui_left, ui_right, ui_up, en ui_down. Deze zijn handig voor snelle prototypes, maar voor een FPS game wil je je eigen WASD-controls gebruiken die we eerder hebben aangemaakt.

circle-check

Variabelen aanpasbaar maken

De template gebruikt constarrow-up-right voor Speed en JumpVelocity. Dit zorgt er onder andere voor dat je de code moet aanpassen telkens je de snelheid wilt veranderen. Met [Export]arrow-up-right maak je variabelen zichtbaar in de Inspector - dit is veel handiger voor testen en tweaken, maar daarvoor mogen de variabelen niet langer const zijn.

  1. Zoek bovenaan in je script naar de variabelen Speed en JumpVelocity.

    1. Verwijder het const-keyword (dit heb je niet meer nodig)

    2. Maak ze private (dit is ineens een goeie clean-code practice)

    3. Wijzig hun naam naar _speed en _jumpVelocity. Zorg dat je de naam overal in het script verandert! TIP: door met je cursor op de variabele naam te gaan staan en op F2 te drukken, kan je de naam ineens wijzigen in héél het document.

Camera referentie

Om de camera te kunnen bewegen, heb je een referentie naar de camera nodig. Zo kunnen we met code precies bepalen waar de camera zich bevindt en naar kijkt.

circle-check

Muis beweging

Zet beweging met de muis om naar camera of speler rotatie. In een FPS game werkt dit in twee assen:

  • Horizontaal (links/rechts) - Draai de hele speler (Y-axis rotatie)

  • Verticaal (boven/onder) - Draai alleen de camera (X-axis rotatie)

circle-check

De camera toewijzen aan de camera variabele

circle-info
  1. In de Godot Editor, selecteer de Player root node

  2. Sleep de Camera3D in het Scene Hierarchy venster naar de Camera property in de inspector

Voeg player toe aan level

circle-check

Complete playercontroller script

chevron-rightHet volledige Player.cs scripthashtag

Laatst bijgewerkt