AI Verhalten Grundprinzip - UKirsche/MidgardWorker GitHub Wiki
Die AI wird mit Hilfe von Panda BT gesteuert:
Behaviour Tree is an AI technique used in modern video games where the behaviour of an entity is described as a tree composed of an hierarchy of actions. As a whole, the tree is a single action recursively composed of sub-actions. For instances the action “Frying an egg” consists of the sub-actions: “Warming up a pan”, “Breaking the egg”, “Dump the egg content into the pan” and “Wait for 5 minutes”. The sub-action “Warming up a pan” consists of “Take a pan”, “Place it on the fire pit”, “Lit the fire pit” and “Wait for 2 minutes” and so on… which is intuitive to define. Also, due to this hierarchical nature, Behaviour Tree is an ideal tool for building scalable logic
Die folgende Abbildung zeigt im Stile eines kleinen Aktivitätsdiagramms wie die Interaktion von einem Spieler und einem NPC in MiCoRo-Szenen entsteht.
Wie oben mittels der Panda-Beschreibung skizziert, stehen dem NPC beim Hit seines Capsule Colliders verschiedenste zu definierende Möglichkeiten der Handlung offen. Ein typisches Beispiel sieht so aus:
Im Normalfall wird ein NPC nicht unterbrochen (FSM: Interrupt). In diesem Fall geht der NPC seiner Standardbeschäftigung nach, von der nur einfachheitshalber nur 1 vorhanden ist. In diesem Fall bspw. der STATE Work. Dieser gliedert sich in Unteraktivitäten, die etwas Zeit benötigen: Manchmal steht der NPC nur rum (IDLE), oder er latscht rum (WALK) oder er arbeitet am Feld (Arbeiten). Falls eine Sequenz abgeschlossen ist, geht es wieder von vorne los.
Wird der NPC kollidiert, dann unterbricht er seine bisherige Beschäftigung unverzüglich und durchläuft die States die die FSM für INTERRUPT vorsieht