---
title: Gestion de la physique
description: Configurer les propriétés physiques et les collision shapes de vos objets.
---

import { Aside, Steps, Tabs, TabItem } from '@astrojs/starlight/components';

L'addon permet de définir les propriétés physiques de vos objets directement dans Blender : mode de collision, shapes, masques et amortissement. Ces données sont exportées vers le moteur GS Framework.

---

## Modes physiques

Le mode physique détermine comment l'objet se comporte dans le moteur. Il se configure dans le panneau **Physique** de l'[onglet GS Object](/blender/interface/gsedit-tab/).

| Mode | Comportement | Exemples |
|---|---|---|
| **Aucun** | L'objet n'a aucune physique ni collision | Éléments décoratifs sans interaction |
| **Static Collision** | Immobile, les autres objets entrent en collision avec lui | Murs, sol, bâtiments, terrain |
| **Moveable Collision** | Peut être déplacé par le moteur, a de la collision | Portes coulissantes, plateformes mobiles |
| **Physic + Collision** | Simulation physique complète (gravité, forces, rebonds) | Objets qui tombent, caisses, débris |
| **Character** | Contrôleur de personnage (kinematic) | Personnages joueurs ou PNJ |
| **Vehicle** | Physique véhicule avec simulation dynamique | Voitures, bus, camions |

---

## Masques de collision

Les masques de collision contrôlent **quels objets entrent en collision entre eux**. Ils apparaissent pour tous les modes sauf "Aucun".

| Champ | Rôle |
|---|---|
| **Self Mask** | Le "groupe" auquel appartient cet objet |
| **Collide With** | Les groupes avec lesquels cet objet entre en collision |

Deux objets entrent en collision uniquement si le Self Mask de l'un correspond au Collide With de l'autre (et vice-versa).

<Aside type="tip">
En pratique, laissez les valeurs par défaut sauf si vous avez besoin de filtrer spécifiquement quels objets peuvent se toucher (par exemple, empêcher les véhicules de collisionner avec certains éléments décoratifs).
</Aside>

---

## Amortissement (Damping)

Visible uniquement pour les modes **Physic + Collision** et **Vehicle**.

| Paramètre | Plage | Effet |
|---|---|---|
| **Linear Damping** | 0.0 – 1.0 | Ralentit le déplacement linéaire de l'objet. 0 = aucun amortissement, 1 = arrêt immédiat |
| **Angular Damping** | 0.0 – 1.0 | Ralentit la rotation de l'objet. 0 = tourne indéfiniment, 1 = arrêt immédiat |

---

## Collision Shapes

Les collision shapes définissent la **forme géométrique utilisée pour calculer les collisions**. Elles ne sont pas visibles dans le rendu final — ce sont des volumes de collision simplifiés.

### Types de shapes

| Type | Forme | Représentation dans Blender |
|---|---|---|
| **Box** | Parallélépipède rectangle | Empty en mode Cube |
| **Sphere** | Sphère | Empty en mode Sphere |
| **Capsule** | Cylindre arrondi aux extrémités | Empty en mode Sphere |
| **Cylinder** | Cylindre | Empty en mode Cube |
| **Mesh** | Forme libre (mesh de collision) | Empty en mode Plain Axes |

<Aside>
Les collision shapes sont représentées par des **objets Empty** dans Blender. Leur type d'affichage (Cube, Sphere, etc.) donne un aperçu visuel de la forme, mais les dimensions exactes sont stockées dans les propriétés custom.
</Aside>

### Structure dans la scène

Les collision shapes sont des **objets enfants** de l'objet physique. La hiérarchie est la suivante :

```
MonObjet (mesh, mode: Static Collision)
  └── CollisionShape_Box (empty, type: Box)
  └── CollisionShape_Sphere (empty, type: Sphere)
```

Chaque shape a sa propre position, rotation et échelle **relative à l'objet parent**.

---

## Ajouter une collision shape

<Steps>

1. **Sélectionnez** l'objet mesh auquel vous voulez ajouter une collision.

2. Dans le panneau **Physique** (onglet GS Object), choisissez un **mode physique** différent de "Aucun" (par exemple "Static Collision").

3. Dans la section **Collision Shapes**, deux possibilités :
   - **Ajouter Collision Shape** : ouvre un menu pour choisir le type (Box, Sphere, Capsule, Cylinder, Mesh).
   - **Box depuis dimensions** : crée directement une Box ajustée à la bounding box de l'objet — le plus rapide pour englober un objet.

4. Un objet empty est créé comme enfant de votre objet.

5. **Déplacez, tournez et redimensionnez** l'empty pour ajuster la shape à votre modèle.

</Steps>

{/* ![Collision shape Box ajoutée à un objet](../../../assets/placeholder-collision-shape.png) */}

---

## Convertir un empty existant en collision shape

Si vous avez déjà un empty dans votre scène que vous souhaitez utiliser comme collision shape :

<Steps>

1. **Sélectionnez** l'empty.

2. Le panneau **Collision Shape** apparaît dans l'onglet GS Object.

3. Cliquez sur le bouton correspondant au type souhaité (Box, Sphere, Capsule, Cylinder, Mesh).

4. L'empty est converti : ses propriétés custom sont configurées et son type d'affichage est mis à jour.

</Steps>

---

## Changer le type d'une collision shape

Si une collision shape existe déjà mais que vous voulez changer son type :

1. Sélectionnez la collision shape (l'empty enfant)
2. Dans le panneau **Collision Shape**, des boutons de changement de type sont affichés
3. Cliquez sur le type souhaité — les propriétés et l'affichage sont mis à jour

---

## Bonnes pratiques

<Aside type="tip">

- **Utilisez des shapes simples** (Box, Sphere) autant que possible — elles sont beaucoup plus performantes que les Mesh colliders dans le moteur
- **Combinez plusieurs shapes** pour approximer des formes complexes plutôt que d'utiliser un Mesh collider
- **Vérifiez la hiérarchie** : les shapes doivent être enfants de l'objet physique
- Pour les bâtiments, une Box suffit souvent. Pour les véhicules, combinez plusieurs Box pour le châssis et les roues

</Aside>
