Vous pouvez utiliser les contrôleurs cognitifs de façon à ce que les membres de la foule changent de comportement lors d'une simulation en fonction des circonstances. Par exemple, vous pouvez faire en sorte qu'un personnage flâne sans but précis jusqu'à ce qu'il parvienne à une distance donnée d'une cible, puis qu'il se dirige alors tout droit vers cette cible.
En termes techniques, les contrôleurs cognitifs permettent d'influer sur une simulation de foule à l'aide d'instructions conditionnelles et d'introduire ainsi une forme d'intelligence artificielle. Utilisez l'Editeur contrôleur cognitif, un éditeur de type éditeur d'organigrammes (semblable à la boîte de dialogue Schéma de séquence) pour configurer un réseau de comportements et de combinaisons de comportements appelés états. puis vous appliquerez des transitions MAXScript indiquant à quel moment les représentants doivent passer d'un état à un autre. Une configuration relativement simple suffit pour créer des simulations dans lesquelles les personnages se présentent comme des êtres vivants doués de conscience, qui prennent des décisions au fur et à mesure qu'ils se déplacent dans la scène.
Vous trouverez des exemples de transitions de contrôleur cognitif dans la rubrique Boîte de dialogue Etat :
Test d'un paramètre de système de particules
Test de la position d'un objet
Test d'une propriété atmosphérique
Test de la distance entre deux objets
Test d'un paramètre de modificateur
Test du comportement d'un autre représentant
Installation et utilisation d'un contrôleur cognitif :
Cette procédure décrit une installation type pour la création et l'utilisation d'un contrôleur cognitif. On suppose que vous vous êtes familiarisé avec la configuration de simulation Crowd. Pour plus d'informations sur la configuration Crowd, reportez-vous aux rubriques objet Assistant Crowd et panneau déroulant Configuration.
Character Studio donne au contrôleur le nom par défaut "Contrôleur cognitif". Il est recommandé de donner des noms plus descriptifs tels que " Rechercher/Flâner ". Pour ce faire, cliquez sur le nom dans la zone de texte et modifiez-le.
Lorsque vous créez un contrôleur cognitif, l'ordinateur passe automatiquement en mode Créer état.
Ensuite, définissez un ou plusieurs comportements correspondant à chaque état.
Si vous en sélectionnez plusieurs, vous pouvez attribuer différents coefficients à chacun d'eux dans l'éditeur d'état. Par exemple, vous pouvez combiner un comportement Rechercher affecté d'un coefficient 1 avec un comportement Flâner affecté d'un coefficient 0,5. Le représentant s'attardera un peu en recherchant sa cible.
Ensuite, utilisez Créer transition pour définir la séquence des états lors de la simulation.
Une flèche de transition apparaît, pointant de l'état " source " à l'état " destination ".
Chaque état peut avoir un nombre variable de transitions entrantes et sortantes. Spécifiez différentes conditions de transition afin de créer un diagramme d'état aussi complexe que nécessaire.
Ensuite, utilisez la boîte de dialogue de transition d'état pour définir une condition pour chaque transition.
Il s'agit généralement d'une fonction qui teste une condition et renvoie 1 (si la condition est vraie) ou 0 (si la condition est fausse).
Par exemple :
fn test1 del t = ( if (del.simpos.x <= 40 and del.duration > 50) then 1 else 0 )
La ligne ci-dessus indique que, si la position du représentant sur l'axe X est inférieure ou égale à 40, et qu'elle est associée à l'état courant depuis plus de 50 images, la transition doit avoir lieu. Toutefois, si une des conditions n’est pas respectée, voire les deux, le représentant doit conserver l'état courant (ou tester d'autres transitions). Vous trouverez ci-dessous la liste des mots-clés utilisés dans cette instruction :
Vous pouvez visualiser la liste complète des paramètres relatifs aux représentants, qui peut être affichée dans le script en ouvrant une fenêtre Récepteur MAXScript (touche F11) et en entrant la commande suivante :
Showproperties $delegate01
Le représentant étant un noeud, il répond également aux fonctions standard MAXScript portant sur les noeuds (excepté " simpos " – voir ci-dessus). Pour plus de détails sur les propriétés de transition (durée, priorité, etc.), consultez l'aide de MAXScript.
Vous trouverez d'autres exemples de conditions MAXScript pouvant être utilisées avec des contrôleurs cognitifs en vous reportant à la rubrique Boîte de dialogue de transition d'état.