
HTN Planner plugin - Projet Ozone
A downloadable plugin
Cet outil a été créé dans le cadre de ce projet : Projet Ozone
De la même manière que les Behavior Trees ou les States Trees, ce plugin sert à créer le comportement des IA.
Sa particularité est dans son approche : il utilise un planificateur HTN lié à un système de claim.
Les comportements sont donc priorisés et les IA peuvent arrêter une tâche pour effectuer un comportement plus important, tout en se coordonnant !
Pour voir les différents comportements créés pour le jeu :

Données pour le planificateur
En suivant l'approche des Behavior Trees de Unreal, le plugin est complètement Data driven : On choisit le comportement des IA avec des tâches génériques (MoveTo, Wait, PickUp, etc).
Ces tâches récupèrent ensuite leurs données au runtime pour effectuer le comportement voulu (Se déplacer vers le bon acteur par exemple).
Plus en détail : Lors d'une planification, les IA vont chercher dans une pool d'actions actuellement disponibles (GiveResource, StoreItem, etc). Ces actions possèdent les informations pour mener à bien le comportement.
Dans l'éditeur, créer un comportement revient à :
- Choisir une action à récupérer au runtime
- Décrire une série de tâches en utilisant les informations de l'action

Menu déroulant custom pour gérer le choix entre plusieurs acteurs
Il arrive qu'une action ait plusieurs fois le même type de donnée. Ici par exemple, on veut transporter un item au sol ("Actor") vers un stockage ("ItemStorageActor").
En utilisant la reflection de Unreal, un menu déroulant custom a été créé pour montrer tous les acteurs stockés dans l'action.
Évidemment lorsqu'il n'y a qu'un choix d'acteur, le menu déroulant n'apparaît pas.

Création de l'action de transport de ressource vers une table de craft
Pour faciliter l'utilisation du système de claim, un Node kismet custom a été créé pour être utilisé en blueprint.
Il fonctionne comme le node SpawnActor : On choisit la classe d'action à créer et des pins apparaissent selon ses besoins.
Le node est donc générique en prenant n'importe quel type de paramètre demandé par l'action.

Visualisateur du comportement de pickup
Lors du débugage des comportements, le plan généré par le planificateur est affiché par un visualisateur.
Les informations runtime utilisées sont visibles pour pouvoir vérifier le bon fonctionnement du comportement.
Pour faciliter l'utilisation du plugin, quelques optimisations d'UX ont été faite grâce à de la reflection : Optimisations UX
| Status | Released |
| Category | Tool |
| Author | XetoDi |
| AI Disclosure | AI Assisted, Code |




Leave a comment
Log in with itch.io to leave a comment.