2.9 KiB
title, type, weight
| title | type | weight |
|---|---|---|
| Système NPC | docs | 10 |
Le système NPC (Non-Player Character) fournit un framework complet pour créer des personnages de jeu intelligents avec un comportement autonome, une prise de décision et des capacités de navigation.
Package: com.hypixel.hytale.server.npc
{{< cards >}} {{< card link="npc-basics" title="Bases NPC" subtitle="Création et configuration des NPCs" >}} {{< card link="npc-components" title="Composants NPC" subtitle="Composants de base et données" >}} {{< card link="npc-ai" title="IA NPC" subtitle="Blackboard, décisions et capteurs" >}} {{< card link="npc-movement" title="Mouvement NPC" subtitle="Navigation et pathfinding" >}} {{< card link="npc-commands" title="Commandes NPC" subtitle="Commandes admin et debug" >}} {{< /cards >}}
Vue d'Ensemble de l'Architecture
Le système NPC est construit sur plusieurs sous-systèmes interconnectés :
NPCEntity
├── Blackboard (état/mémoire partagé)
├── Role (template comportemental)
│ ├── Instructions (objectifs haut niveau)
│ ├── Sensors (perception)
│ └── Actions (comportements)
├── DecisionMaker (logique IA)
│ ├── Evaluators (vérification conditions)
│ └── Options (sélection actions)
└── Movement
├── MotionController (exécution mouvement)
├── PathFollower (suivi de chemin)
└── NavigationGraph (pathfinding A*)
Exemple Rapide
// Enregistrer un événement lié aux NPCs
getEventRegistry().register(NPCSpawnEvent.class, event -> {
NPCEntity npc = event.getNPC();
// Accéder au blackboard pour l'état
Blackboard blackboard = npc.getBlackboard();
// Obtenir le rôle actuel
Role role = npc.getRole();
// Vérifier si le NPC a une cible
if (blackboard.hasTarget()) {
Entity target = blackboard.getTarget();
}
});
Classes Principales
| Classe | Description |
|---|---|
NPCEntity |
Classe de base pour tous les NPCs |
NPCPlugin |
Point d'entrée plugin pour le système NPC |
Blackboard |
Conteneur d'état partagé pour les données NPC |
Role |
Définit le template de comportement NPC |
DecisionMaker |
Logique de décision IA |
MotionController |
Exécution des mouvements |
PathFollower |
Suivi et parcours de chemin |
Sous-packages
| Package | Fichiers | Description |
|---|---|---|
corecomponents/ |
327 | Composants ECS de base pour NPCs |
asset/ |
152 | Configuration des assets NPC |
util/ |
50 | Classes utilitaires |
blackboard/ |
30 | Gestion d'état |
movement/ |
27 | Comportements de mouvement |
systems/ |
25 | Systèmes ECS |
commands/ |
23 | Commandes admin |
decisionmaker/ |
22 | Logique de décision IA |
sensorinfo/ |
20 | Système de perception |
role/ |
17 | Définitions de rôles |
instructions/ |
14 | Comportements haut niveau |
navigation/ |
12 | Pathfinding |