meta données pour cette page
L'optimisation des IA dans Arma Reforger : le système de LOD
Paramétrage global : deux budgets pour les IA
Arma Reforger optimise les IA selon deux systèmes de budget :
- Le nombre total d'IA dans le monde. Si le nombre total est atteint, aucune nouvelle IA ne peut être spawnée.
- Le nombre total d'IA actives simultanément. Si le nombre total est atteint, aucune nouvelle IA ne peut être activée.
Ces deux paramètres sont exposés et modifiables dans le prefab SCR_AIWorld du terrain, via les propriétés AILimits
Le système de simulation dynamique des IA
Bohemia utilise le terme de LOD - Level Of Detail pour qualifier le niveau de simulation des IA :
- LOD 0 (pleinement actif) : l'agent exécute son Behavior Tree, perçoit l'environnement, calcule ses déplacements, gère son inventaire, communique avec son groupe — tout tourne en temps réel.
- LOD 9 (dormant) : l'agent existe en mémoire mais n'exécute rien. Il est figé. Son corps est présent dans le monde mais il ne réagit à rien, ne se déplace pas.
- LOD intermédiaire : le moteur peut réduire la fréquence de mise à jour du BT, simplifier la perception, désactiver certains sous-systèmes — sans mettre l'agent complètement en veille.
Le moteur fait varier le LOD en fonction de la distance d'une caméra par rapport au groupe. Lorsque qu'une caméra (joueur ou game master) est proche d'un groupe, le LOD est faible, voire à zéro. Lorsque la caméra est éloignée de plusieurs centaines de mètres, le LOD est à 9 est le groupe est totalement inactif (il ne répond à aucun ordre).
Forcer un groupe pour qu'il soit toujours actif
Si vous voulez que des groupes éloignés des joueurs restent actifs (ex. renforts très lointains, mortiers, etc.), il faut forcer le LOD à 0, sans quoi, ces groupes n'exécuteront aucun ordre.
A l'heure où cet article est écrit (1.6.0.119), la propriété du prefab SCR_AIGroup de Bohemia permettant de forcer un groupe d'IA en LOD0 est buguée. Heureusement, GDC AR Lib propose une alternative : il suffit d'ajouter le composant GDC_ForceGroupActiveLODComponent au groupe en question. Ce composant se trouve là : GDC AR Lib>scripts>Game>GDC>AI