4. 3D Meshes en Physics Bodies
Leer werken met 3D meshes, materials en physics bodies
In deze tutorial leer je werken met 3D meshes, materials en physics bodies door een knikker te maken die je knikkerbaan afrolt. Je leert hoe je MeshInstance3D gebruikt voor 3D vormen, StandardMaterial3D voor het uiterlijk, en RigidBody3D met CollisionShape3D voor fysica.
Maak een bol en wijzig de naam

De eerste stap bij het maken van een stuiterende bal is het toevoegen van een eenvoudige bol aan de scène.
Godot biedt je een aantal primitieve vormen die je kunt toevoegen, waaronder een bol, een kubus, een cilinder, een capsule en zelfs een vlakke plaat. Deze eenvoudige vormen kunnen worden gebruikt als bouwstenen en als tijdelijke aanduidingen voor complexere modellen.
Hier maak je een bol en hernoem je deze naar "Marble", die later van een helling zal stuiteren.

Klik in het Hierarchy-venster met de rechtermuisknop op de root Node (Node3D) en selecteer Add Child Node en typ in het zoekveld MeshInstance3D.
Klik met de rechtermuisknop op de nieuwe MeshInstance3D in het Hierarchy-venster, selecteer Rename, en hernoem het naar “Marble”.
Ga in de inspector naar de Mesh eigenschap (onder MeshInstance3D) en klik het pijltje. Kies voor een SphereMesh.
Verander de grootte van de knikker

De knikker is op dit moment veel te groot — je moet hem kleiner maken.
Scale bepaalt de grootte van een object. Door de schaal van de knikker in alle richtingen aan te passen naar 0.5, past hij al veel beter in je knikkerbaan.
Zorg ervoor dat het Ball GameObject nog steeds is geselecteerd.
Stel in het Inspector-venster, binnen de Transform-eigenschap, de schaal van de Marble Node in op X = 0.5, Y = 0.5 en Z = 0.5.
Opmerking: Je kunt ook op het kettingpictogram naast de schaalinstellingen klikken om proportioneel schalen in of uit te schakelen. Wanneer dit is ingeschakeld, worden de andere twee schaalwaarden automatisch aangepast wanneer je één waarde wijzigt.
Maak een nieuw material aan

De sphere MeshInstance die je hebt toegevoegd voor de bal heeft standaard een doffe grijze kleur — maar als het om een knikker gaat, mag hij natuurlijk een stuk vrolijker zijn!
Materialen bepalen het visuele uiterlijk van objecten in Godot. In deze stap ga je een nieuw materiaal aanmaken in de assets van je project en dit toepassen op de bal.
Navigeer in het FileSystem-venster naar de map Materials.
Klik met de rechtermuisknop in de Materials-map en selecteer New Resource...
Zoek naar een StandardMaterial3D en druk op Create.
Hernoem het nieuwe materiaal naar “Marble_Mat” (kort voor Marble Material). Je hebt nu een nieuwe resource aangemaakt in het FileSystem-venster. Dat betekent dat dit materiaal in elke scène van je project kan worden gebruikt.
Sleep het nieuwe Marble_Mat-materiaal rechtstreeks naar het Marble SceneObject in het Viewport-venster. De bal zou nu de standaard witte kleur van het nieuwe materiaal moeten aannemen.

Opmerking: Vergeet niet om je scène regelmatig op te slaan met Ctrl+S (macOS: Cmd+S).
Wijzig de material eigenschappen

Nu je Material op de bal is toegepast, kun je de eigenschappen van het materiaal aanpassen zoals jij dat wilt. Je kunt de kleur van de bal veranderen en bepalen hoe het materiaal met licht reageert in de scène.
Het maken van materialen kan behoorlijk complex worden, dus we beginnen eenvoudig door slechts drie belangrijke eigenschappen aan te passen:
Albedo Color: de basiskleur van het object.
Metallic: bepaalt hoe metallic het object eruitziet.
Roughness: bepaalt hoe glad of glanzend het oppervlak lijkt.
Dubbelklik op het Ball_Mat-materiaal. Dit opent de instellingen van het materiaal in de Inspector.
In het Inspector-venster, onder het gedeelte Albedo, klik op het witte kleurvak naast Color en kies in het kleurenvenster een nieuwe kleur.
Let op hoe de bal van kleur verandert in de scène terwijl je aanpassingen maakt.
Pas de schuifregelaars voor Metallic en Roughness aan naar jouw voorkeur.
Experimenteer gerust om te zien hoe deze waarden het uiterlijk van het materiaal beïnvloeden.
Voeg een rigidbody3d parent toe

Nu je knikker er klaar uitziet voor actie, is het tijd om hem tot leven te brengen met behulp van Physics.
Om de bal physics eigenschappen te geven, moet deze een child zijn van een RigidBody3D. Zonder een Rigidbody3D blijft de bal zweven in de lucht, maar met een Rigidbody3D krijgt hij massa en reageert hij op zwaartekracht.
Selecteer Run Current Scene om de Game-modus te starten en kijk hoe je bal stil in de lucht blijft hangen. Sluit daarna het Game venster om de Game-modus weer te verlaten.
Selecteer en rechtsklik op het Marble SceneObject in het SceneHierarchy-venster.
Klik op Reparent to New Node..., typ "Rigidbody" in de zoekbalk en selecteer de Rigidbody3D-node.

Voeg een collisionshape toe

Je zult zien dat er nu een waarschuwing staat bij de Rigidbody3D. Wanneer je klikt op de waarschuwing, zal Godot je vertellen wat er aan de hand is.
In dit geval vertelt Godot dat onze RigidBody3D geen enkele manier heeft om te botsen tegen andere objecten, omdat er geen shape (collider) is toegevoegd. Dit gaan we nu verhelpen.

Selecteer en rechtsklik op het RigidBody3D SceneObject in het SceneHierarchy-venster.
Klik op Add Child Node..., typ "collisionShape3D" in de zoekbalk en selecteer de CollisionShape3D-node.
Nu is de waarschuwing verdwenen bij de RigidBody3D, maar een nieuwe waarschuwing wordt nu getoond bij de CollisionShape3D. De nieuwe waarschuwing vertelt ons dat er nog niet bepaald is wat voor vorm de collider moet hebben.
Selecteer de CollisionShape3D en verander de Shape-eigenschap in de inspector naar een SphereShape3D.
De collider toont een doorzichtige, lichtblauwe bol rondom onze knikker. De collider moet dus kleiner gemaakt worden. HEEL BELANGRIJK is dat je een collider nooit kleiner maakt met de Transform-eigenschap. In plaats daarvan maak je gebruik van het rode bolletje aan de rand van de SphereShape. Sleep het rode bolletje om de collider groter of kleiner te maken, zodat hij ongeveer even groot is als je knikker.
Als je je scene opnieuw afspeelt, zal de knikker nu netjes naar beneden vallen, onder invloed van de zwaartekracht.

Nadat je de Game-modus hebt verlaten, sla je scène op met Ctrl+S (macOS: Cmd+S).
Maak een physics material aan

De veerkracht van je bal is waarschijnlijk teleurstellend — hij gedraagt zich meer als een zak zand dan als een levendige, stuiterende bal.
Om de bal te laten stuiteren, maak en pas je een Physics Material toe. In tegenstelling tot standaardmaterialen, die het visuele uiterlijk van GameObjects regelen, bepalen Physics Materials het fysieke gedrag, zoals hoe een object stuitert bij impact.
Navigeer in het FileSystem-venster naar de map Materials.
Klik met de rechtermuisknop in de Materials-map en selecteer New Resource...
Zoek naar een PhysicsMaterial en druk op Create.
Hernoem het nieuwe materiaal naar "Marble_Physics".
Sleep het nieuwe Marble_Physics-materiaal rechtstreeks naar het RigidBody3D SceneObject in het Viewport-venster.
Klik op Run Current Scene om de veranderingen te zien en observeer hoe de bal nu stuitert.
Vergeet niet om Game-modus te verlaten zodra je klaar bent met testen.
Plaats de bol bovenaan de knikkerbaan

Plaats nu je knikker bovenaan je knikkerbaan, en bekijk hoe de knikker naar beneden rolt. Heb je je knikkerbaan goed ontworpen?
Speel met de Massa van de knikker in de RigidBody3D, of de eigenschappen van het PhysicsMaterial om je knikker zo vlot mogelijk te laten rollen.
Pas je knikkerbaan verder aan zodat de knikker het einde van het parcours haalt.
Laatst bijgewerkt