---
title: Animations Squirrel
description: Utiliser le système d'animations scriptées Squirrel dans Blender.
---

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

Le système d'animations Squirrel permet d'exécuter des scripts d'animation écrits en langage Squirrel directement dans Blender, puis de convertir le résultat en keyframes exploitables. C'est utile pour les animations procédurales (rotation continue, oscillation, mouvement de balancier, etc.) définies par des scripts du moteur GS Framework.

<Aside>
Ce système nécessite un module C++ compilé (`squirrel_bridge.pyd`). Si le module n'est pas disponible ou que vous n'avez pas de scripts `.nut`, vous pouvez ignorer cette fonctionnalité.
</Aside>

---

## Prérequis

1. Le module `squirrel_bridge.pyd` doit être **compilé** et présent sur votre machine
2. Son chemin doit être configuré dans les [préférences de l'addon](/blender/getting-started/configuration/) (champ **Squirrel Bridge Build Path**)
3. Vous devez disposer d'un fichier script `.nut` contenant une ou plusieurs classes d'animation

---

## Workflow complet

<Steps>

1. **Initialisez le moteur** : dans l'onglet **GS Animation** de la sidebar (panneau **Squirrel Animations**), cliquez sur **Initialize Squirrel Manager**. Cette étape n'est nécessaire qu'une fois par session Blender.

2. **Chargez un script** : cliquez sur l'icône de fichier à côté du champ de chemin, naviguez jusqu'à votre fichier `.nut`, puis cliquez sur **Load**. Les classes d'animation du script sont détectées automatiquement.

3. **Sélectionnez une classe** : dans le menu déroulant, choisissez la classe d'animation à utiliser. Les informations du script s'affichent (nom, auteur, catégorie, description).

4. **Configurez les paramètres** : chaque script expose des paramètres configurables (vitesse de rotation, amplitude, fréquence, etc.). Ajustez-les selon vos besoins. Les types de paramètres varient :
   - **Float** : curseur à virgule (ex: vitesse de rotation)
   - **Int** : curseur entier (ex: nombre de cycles)
   - **Bool** : case à cocher (ex: activer l'inversion)
   - **String** : champ texte (ex: nom d'un axe)

5. **Sélectionnez l'objet cible** : dans le viewport, sélectionnez l'objet Blender sur lequel appliquer l'animation. L'objet cible est affiché dans la section **Target**.

6. **Réglez le bake** : dans la section **Baking Settings** :
   - **FPS** : nombre d'images par seconde (défaut : 30). Plus c'est élevé, plus l'animation est fluide.
   - **Duration** : durée totale en secondes (défaut : 20 s).

7. **Lancez le bake** : cliquez sur **Bake Animation**. Une barre de progression s'affiche pendant le calcul.

8. **Résultat** : des keyframes sont créées sur l'objet et tous ses enfants (position, rotation, échelle). L'animation est prête à être jouée dans la timeline Blender.

</Steps>

{/* ![Workflow d'animation Squirrel](../../../assets/placeholder-squirrel-workflow.png) */}

---

## Ce qui se passe pendant le bake

Le processus de bake :

1. Simule l'animation image par image dans le moteur Squirrel (en tâche de fond)
2. Pour chaque frame, capture la position, rotation et échelle de l'objet cible **et de toute sa hiérarchie d'enfants**
3. Convertit les coordonnées du système GS Framework (Y-up) vers Blender (Z-up)
4. Crée les keyframes correspondantes dans Blender

<Aside type="tip">
Le bake s'effectue en arrière-plan — Blender reste réactif pendant le calcul. La barre de progression vous informe de l'avancement.
</Aside>

---

## Gérer les animations actives

La section **Active Instances** en bas du panneau Squirrel liste toutes les animations actuellement bakées. Chaque entrée affiche le nom de l'instance avec un bouton **Destroy** pour supprimer l'animation et retirer les keyframes associées.

---

## Scripts d'animation

Les scripts `.nut` sont des fichiers texte écrits en langage Squirrel. Chaque script peut contenir une ou plusieurs classes d'animation. Les métadonnées (nom, auteur, paramètres) sont définies dans un bloc de commentaires spécial en tête de classe.

<Aside>
La création de scripts d'animation est une tâche de développeur. En tant que modélisateur, vous utilisez les scripts fournis par votre équipe de développement — l'onglet GS Animation vous permet de les appliquer sans écrire de code.
</Aside>

---

## Résolution de problèmes

| Problème | Solution |
|---|---|
| Le bouton Initialize échoue | Vérifiez le chemin du module dans les préférences → `squirrel_bridge.pyd` doit exister |
| Aucune classe détectée après Load | Le script `.nut` peut ne pas contenir de classes valides, ou avoir une erreur de syntaxe |
| L'animation est décalée/inversée | Vérification normale : le système convertit automatiquement Y-up → Z-up |
| Le bake est très lent | Réduisez la durée ou le FPS. Une animation de 300s à 120 FPS = 36 000 frames à calculer |
