6. Independent Camera met Smooth Following

Maak een independent camera script met smooth following en NodePath

Overzicht

De camera volgt nu het ruimteschip als een child node, maar je kunt dit veel professioneler maken! In dit hoofdstuk leer je hoe je een onafhankelijk camerascript maakt met smooth following en automatische oriëntatie.

Camera script

Maak de camera onafhankelijk van de Player hierarchy. Dit geeft je volledige controle over hoe de camera het schip volgt, en maakt smooth following mogelijk.

Nieuwe Godot-specifieke elementen:

circle-check

Basis camera following

Maak eerst een simpele versie waar de camera direct het schip volgt (zonder smooth movement).

Nieuwe Godot-specifieke elementen:

circle-check

Smooth following toevoegen

De camera volgt nu het schip, maar springt elke frame instant naar de nieuwe positie. Dit voelt nogal stijfjes aan. Gebruik lineaire interpolatie (lerp) om de camera geleidelijk te laten bewegen naar de gewenste positie.

Nieuwe Godot-specifieke elementen:

  • Vector3.Lerp(target, weight)arrow-up-right: In tegenstelling tot Mathf.Lerp, kan je ook Lerp aanroepen op een Vector3. De Lerp functie berekent dan een interpolatie tussen de vector waarop je Lerp aanroept, en een target vector. De weight is nog steeds een waarde tussen 0 en 1 die bepaalt waar je je bevindt in de transitie.

circle-check

Camera oriëntatie met lookat

De camera volgt nu smooth, maar blijft altijd in dezelfde richting kijken. Als het schip draait of van richting verandert, zou het veel dynamischer zijn als de camera altijd naar het schip blijft kijken. Hiervoor gebruik je LookAt().

Nieuwe Godot-specifieke elementen:

  • LookAt(target, up)arrow-up-right - Richt de camera automatisch naar een positie

    • target = Vector3 positie om naar te kijken

    • up = Vector3.Up definieert de "omhoog" richting (meestal (0,1,0))

    • De camera draait automatisch zodat deze naar de target wijst

circle-check

Complete Script

chevron-rightKlik hier voor het volledige CameraController.cs scripthashtag

Laatst bijgewerkt