Contrôleurs cognitifs

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

Procédures

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.

  1. Créez une scène contenant un objet Crowd ainsi qu'au moins un représentant. Reportez-vous à la rubrique Création d'objets assistants Crowd.
  2. Créez au moins deux comportements. Reportez-vous à la rubrique Attribution de comportements.
  3. Ouvrez l'Editeur contrôleur cognitif.
  4. Cliquez sur le bouton Nouveau afin de créer un contrôleur cognitif.

    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.

  5. Cliquez dans la fenêtre de l'éditeur afin de créer et inclure un état. Cliquez à d'autres endroits afin d'ajouter autant d'états que nécessaire.
  6. Cliquez avec le bouton droit de la souris sur un état pour ouvrir la Boîte de dialogue Etat.
  7. Il est conseillé d'attribuer aux états un nom plus descriptif, à l'aide de la boîte de dialogue Etat. Cliquez sur le nom (Etat ou Etat#) dans la zone de texte et modifiez-le.

    Ensuite, définissez un ou plusieurs comportements correspondant à chaque état.

  8. Cliquez sur le bouton Ajouter.
  9. Dans la boîte de dialogue Sélectionner comportements, choisissez au moins un comportement.

    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.

  10. Fermez la boîte de dialogue Sélectionner comportements puis l'éditeur d'état.
  11. Reprenez les étapes 6 à 10 afin de définir les comportements des autres états dans le contrôleur.

    Ensuite, utilisez Créer transition pour définir la séquence des états lors de la simulation.

  12. Décidez de l'ordre dans lequel les états devront s'exécuter.
  13. Cliquez sur (Créer transition).
  14. Glissez un trait d'un état à l'état suivant pour indiquer l'ordre dans lequel ils doivent s'exécuter. Cliquez sur un état afin de créer une transition en boucle.

    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.

  15. Cliquez sur une ligne de transition avec le bouton droit de la souris.
  16. Dans la Boîte de dialogue de transition d'état, entrez le nom de la condition de transition, puis cliquez sur le bouton Editer MAXScript.
  17. Utilisez la fenêtre de l'éditeur MAXScript afin d'entrer ou de charger un script qui définit la ou les conditions dans lesquelles la transition sera effectuée.

    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).

    Remarque : Reportez-vous à cette rubrique dans le manuel Référence utilisateur en ligne pour un échantillon du code MAXScript de cette fonction.

    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 :

    • fn – Indique que ce qui suit est une fonction MAXScript.
    • test1 – Nom de la fonction ; doit également figurer dans la boîte de dialogue Transition en tant que condition de transition. Cette fonction est la première à être exécutée lors du test de la transition. Le script peut contenir autant de fonctions supplémentaires que nécessaire qui seront appelées par une fonction du script.
    • del – Désigne le représentant auquel le script est appliqué. Le script de transition est exécuté une fois par image pour chaque représentant/membre d'équipe auquel le contrôleur cognitif est affecté. Par conséquent, si vous utilisez " del " dans le script plutôt que le nom d'un représentant spécifique, tous les représentants auxquels le contrôleur cognitif est affecté sont testés.
    • t – Heure courante (numéro d'image) dans la simulation.
    • del.simpos.x – Position courante du représentant sur l'axe X. La fonction spéciale " simpos " est utilisée pour déterminer la position d'un représentant pendant la résolution d'une simulation. Cette fonction est nécessaire dans la mesure où la position des représentants n’est pas mise à la disposition de MAXScript via la fonction standard " [node].pos " pendant les simulations.
    • del.duration – Durée (en nombre d'images) pendant laquelle le représentant s'est trouvé dans l'état courant.

      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.

  18. Utilisez cette boîte de dialogue afin de définir d'autres paramètres tels que la priorité et la durée.
  19. Utilisez la boîte de dialogue Attributions de comportements et équipes pour attribuer le contrôleur cognitif aux représentants ou aux équipes.
    Remarque : Crowd ne vous autorise pas à utiliser plusieurs contrôleurs cognitifs avec un représentant. Vous pouvez les affecter, mais, au moment de la résolution, Character Studio affiche un message indiquant qu'il utilisera uniquement le contrôleur cognitif attribué en premier.