Speed Effects
Voeg dynamische camera effecten en speed lines toe voor een intens gevoel van snelheid

Overzicht
Voeg camera-effecten en visuele feedback toe die activeren tijdens boosten:
Dynamic FOV - Field of View vergroot tijdens boost
Speed lines - Particles langs de zijkanten van het scherm tijdens boost
Camera fov - basis concept
Field of View (FOV) is de hoek waarmee de camera de wereld ziet. Een grotere FOV geeft een "tunnelvisie" effect dat snelheid benadrukt. Pas de FOV aan wanneer de speler boost.
Normale FOV: 75° (standaard waarde) Boost FOV: 90° (tijdens boost)
Camera referentie toevoegen
Je moet de camera kunnen aansturen vanuit het PlayerController script.
Open scripts/PlayerController.cs
We voegen een exported field toe voor de camera.
Dynamic fov implementeren
Pas de FOV nu dynamisch aan tijdens boosten.
Voeg eerst FOV-constanten toe bovenaan de class:
Voeg nu een methode toe die de FOV update aan het einde van de class:
Roep deze methode nu aan in
_Process, aan het einde:
Uitleg: Check of de boost-actie is ingedrukt en kies de juiste target FOV. Met Mathf.Lerp interpoleren we soepel van de huidige FOV naar de target (75° of 90°). Dit zorgt voor een smooth zoom-in/zoom-out effect tijdens boosten.
Camera toewijzen in de editor
Open scenes/main.tscn
Selecteer de Player node
In de Inspector, zie je nu een nieuwe property: Camera
Klik op Assign en navigeer naar Player > Camera3D
Selecteer de Camera3D node
Sla de scene op
Speed lines - gpuparticles3d
Speed lines zijn streepjes die vanaf de zijkanten naar achteren vliegen, wat de illusie van snelheid versterkt. Gebruik GPUParticles3D voor optimale performance.
Open scenes/main.tscn of je Player scene
Selecteer de Camera3D node (onder Player)
Rechts-klik > Add Child Node > GPUParticles3D
Hernoem deze node naar SpeedLines
Sla de scene op
Scene hierarchy:
Speed lines position en rotatie
De particles moeten net voor de camera zitten, zodat ze het hele scherm vullen. Roteer ze ook 90 graden zodat de lines horizontaal zijn (van links naar rechts in plaats van verticaal).
Selecteer de SpeedLines node
In de Inspector, onder Transform:
Position:
X: 0
Y: 0
Z: -3 (voor de camera)
Rotation (in graden):
X: 0
Y: 0
Z: 90 (draai 90° zodat lines horizontaal zijn)
Speed lines settings
Selecteer de SpeedLines node
In de Inspector:
Emitting: UIT (we schakelen dit via script in)
Amount: 50 (aantal speed lines tegelijk)
Onder Time:
Lifetime: 0.5 (hoe lang elke line zichtbaar is)
Preprocess: 0
Speed Scale: 2.0
Explosiveness: 0
Randomness: 0.3
Fixed FPS: 60
Onder Drawing:
Local Coords: aan (lines bewegen met camera mee)
Draw Order: Index
Speed Lines Process Material
Selecteer de SpeedLines node
In de Inspector, vind Process Material
Klik op het dropdown > New ParticleProcessMaterial
Klik op de nieuwe ParticleProcessMaterial
Emission shape
Lines moeten vanaf een ring-vorm komen, zodat ze vanaf de randen van het scherm naar het midden vliegen.
Onder Spawn > Position > emission Shape, selecteer Ring
Configureer de ring settings:
Emission Ring Axis:
X: 90
Y: 0
Z: 1
Emission Ring Height: 0.0
Emission Ring Radius: 3.0
Emission Ring Inner Radius: 2.0
Emission Ring Cone Angle: 90.0
Velocity
Lines moeten naar het midden vliegen (richting -X).
Onder Spawn > Velocity > Direction, zet:
X: -1 (naar links/midden, maar omdat we het hele systeem 90° hebben gedraaid feitelijk naar achter)
Y: 0
Z: 0
Onder Spread, zet 5 (kleine variatie)
Onder ### initial velocity, zet:
Min: 15.0
Max: 25.0
Scale
Speed lines moeten variëren in grootte voor een natuurlijk effect.
Onder Display > Scale, zet:
Min: 0.8 (79,9999%)
Max: 1.2 (119,9999%)
Speed lines color
Gebruik een wit-naar-transparant-gradient zodat lines vervagen.
Onder Display > Color Curves > Color, klik het [empty] veld naast Color Ramp
Selecteer New GradientTexture1D
Klik op de nieuwe GradientTexture1D
Klik op het [empty] veld naast Gradient
Selecteer New Gradient
Klik op de nieuwe Gradient
Klik op de linker color marker (start van de gradient)
In de color picker, zet (wit, volledig zichtbaar):
R: 1.0
G: 1.0
B: 1.0
A: 1.0
Klik op de rechter color marker (einde van de gradient)
In de color picker, zet (wit, volledig transparant):
R: 1.0
G: 1.0
B: 1.0
A: 0.0
Speed lines mesh
Gebruik een QuadMesh met een glowing material voor de speed lines.
Selecteer de SpeedLines node
In de Inspector, vind Draw Passes
Onder Pass 1, klik het dropdown > New QuadMesh
Klik op de nieuwe QuadMesh
Zet Size op:
X: 1.5 (horizontaal lang voor streepjes)
Y: 0.05 (heel dun verticaal)
Speed lines material
Om de speed lines goed zichtbaar te maken, voegen we een glowing material toe.
Klik op het QuadMesh dat je net hebt aangemaakt
Onder Material, klik het dropdown > New StandardMaterial3D
Klik op de nieuwe StandardMaterial3D om de properties te openen
Configureer het material:
Cull Mode: Back (render alleen de voorkant)
Emission:
Vink Enabled aan
Emission: Wit (
#FFFFFFof R:1, G:1, B:1)Energy Multiplier: 2.25 (voor extra glow)
Speed lines triggeren via script
Nu moet je de speed lines aan- en uitzetten tijdens boosten.
Open scripts/PlayerController.cs
Voeg eerst een exported field toe voor de speed lines.
Update nu de speed lines in
UpdateCameraFov(). Speed lines verschijnen alleen tijdens boosten.
Uitleg: Hergebruik de isBoosting-check voor zowel de FOV als de speed lines. Beide effecten activeren tegelijkertijd tijdens boost, wat zorgt voor een krachtig en samenhangend visueel effect.
Speed lines toewijzen in de editor
Open scenes/main.tscn
Selecteer de Player node
In de Inspector, zie je nu een nieuwe property: Speed Lines
Klik op Assign en navigeer naar Player > Camera3D > SpeedLines
Selecteer de SpeedLines node
Sla de scene op
Test de speed effects
Test met F5!
Je zou nu moeten zien:
Wanneer je de spatiebalk indrukt om te boosten, vergroot de FOV geleidelijk
Speed lines verschijnen tegelijkertijd vanaf de zijkanten
Lines vliegen naar achteren en vervagen
Wanneer je de boost loslaat, krimpt de FOV weer en verdwijnen de lines smooth
Het effect geeft een krachtig gevoel van extra snelheid tijdens boost
Als de effecten niet werken:
Check of de Camera correct is toegewezen in de Inspector
Controleer of SpeedLines correct is toegewezen
Zorg dat SpeedLines Emitting UIT staat (script schakelt het in)
Controleer of de "boost" input actie correct is geconfigureerd
Check of
UpdateCameraFov()wordt aangeroepen in_Process
Complete Script
Laatst bijgewerkt