Foules de bipèdes

Les foules de bipèdes constituent un type spécial de simulation de foule, en raison de la nature complexe des mouvements des animaux dotés de pattes. En effet, la locomotion des bipèdes fait appel à une dynamique complexe et à des contraintes de pieds CI impératives. Pour ces raisons, les trajectoires courbes et lisses qui sont générées à partir des paramètres de mouvement des représentants conviennent aux oiseaux, aux poissons, aux insectes et aux serpents, mais ne sont pas assez riches pour animer la microstructure du mouvement des bipèdes et expliquent pourquoi plusieurs fonctions de Crowd sont centrées sur les besoins spécifiques des bipèdes.

Pour générer le niveau de nuances requis, les clips de mouvement animé servent de base au répertoire des mouvements de bipèdes. En d'autres termes, lors de la simulation d'une foule de bipèdes, les représentants n’ont pas d'effet sur le mouvement du bipède ; ils fixent uniquement des objectifs à atteindre en utilisant des clips disponibles dans le schéma de séquence Cette approche, appelée synthèse de mouvements, permet à l'animateur de contrôler avec une grande précision les détails du mouvement, soit par animation manuelle, soit en faisant appel à des captures de mouvements pour produire un ensemble de clips décrivant le comportement d'un membre de la foule.

Par exemple, pour animer une foule de coureurs de marathon dans les rues d’une ville, vous devez disposer des clips de mouvements correspondant aux différents comportements possibles : marche, course, jogging, repos, arrêt aux postes de ravitaillement, spectateurs manifestant leurs encouragements, etc. En fait, chaque comportement prévisible lors d'un marathon peut être représenté sous forme d'un clip spécifique, mais l'impression d'ensemble ne doit pas se résumer à un ensemble disparate de clips ; il est également nécessaire de prévoir la mise en séquence des différents mouvements. En résumé, la question est la suivante : quelles sont les transitions de mouvements possibles à partir d'un clip de mouvement donné?

Afin de mieux comprendre ce processus, étudiez cette rubrique et suivez la procédure Utiliser des bipèdes dans une situation de simulation de foule.

Réseau de séquences et scripts possibles

La fonction Séquence de Bipède permet de définir comment différents mouvements se combinent en une animation fluide. En effet, le réseau de séquences précise les mouvements pouvant découler d'un mouvement donné. Une fois que le réseau de séquences est défini, de nombreuses actions animées peuvent être définies en suivant différents " chemins " de ce réseau. Dans Bipède, tout chemin disponible dans un réseau de séquences constitue un script de séquence.

L'illustration ci-dessous montre un réseau de séquences.

Ce réseau de séquences illustre un exemple sommaire de mouvements possibles : en effet, les personnages peuvent seulement démarrer, s'arrêter, tourner selon un angle de 90 degrés vers la gauche ou vers la droite (walk_L90 et walk_R90) et faire demi-tour (walk_180). Toutefois, pour obtenir des mouvements de foule plus naturels, il est conseillé d'enrichir le réseau de séquences avec des variations plus brèves et plus fines, telles que tourner par incréments de 45 degrés, se déplacer dans différentes directions en continuant à fixer un même point, se déplacer avec une vitesse variable, flâner, etc. Vous trouverez dans la bibliothèque de mouvements de Bipède une liste complète de clips avec lesquels vous pourrez faire des essais.

Conseil : vous pouvez créer des clips de mouvement qui s'incurvent légèrement vers la gauche ou vers la droite en appliquant la fonction de courbure de pas proposée par Bipède à des clips de mouvement en ligne droite. Si les clips correspondent à des captures de mouvement, utilisez la fonction d'extraction de pas pendant l'importation, afin de préparer l'opération de courbure. En ajoutant des clips à légère courbure, la simulation de foule des bipèdes procédera à de minuscules corrections de direction afin d'atteindre les emplacements prévus avec une plus grande précision.

Les schémas de séquences qui fonctionnent le mieux sont ceux qui incluent des transitions précises. Pour vérifier les transitions de séquences, il est judicieux de créer des scripts de test en même temps que le schéma : incluez des clips dans le schéma, ajoutez les transitions nécessaires et optimisez-les. L’optimisation des transitions constitue un bon point de départ et produit souvent les transitions les plus douces. Créez ensuite un nouveau script qui utilise vos transitions et utilisez-le pour ajuster la séquence jusqu'à ce que les pieds ne glissent plus.

La fonction Réseaux de séquences partagés permet d'attribuer le même réseau de séquences à plusieurs bipèdes, ce qui permet de créer des réseaux très complexes sans impact notable sur la mémoire de l'ordinateur.

Objectifs de comportement définis par les représentants

Vous pouvez affecter un " objectif de comportement " à un bipède en associant ce dernier à un représentant du système Crowd, puis en affectant certains comportements à ce représentant.

Ainsi, dans l'exemple ci-dessus, les objectifs de comportement des représentants des bipèdes sont les suivants :

Pendant la simulation d'une foule de bipèdes, Character Studio tente de calculer le script de séquence le mieux adapté à chaque bipède de la foule, tout en respectant les objectifs de comportement du représentant associé à ce bipède. En d'autres termes :

Ainsi, dans l'exemple, la simulation choisit toujours le clip de marche du réseau de séquences le mieux adapté pour diriger le représentant du bipède vers la sphère. Chaque script de bipède évolue à mesure que la résolution de la foule progresse. Le choix du clip le mieux adapté à un bipède donné est toujours conditionné, à l'instar d'un "moteur de jeu" en temps réel, par le clip en cours d'exécution pour ce bipède.

Comportements Esquive, Priorité et Marche arrière des bipèdes

Dans la mesure où les bipèdes présents dans une foule suivent toujours des scripts de séquence, leur comportement d'esquive est soumis à certaines contraintes : Contrairement aux représentants ordinaires, les représentants de bipèdes peuvent se déplacer uniquement le long de chemins de scripts de séquences ; par conséquent, s'il se produit une collision, Character Studio fait marche arrière pour revenir au clip précédent dans le script courant et cherche un autre chemin. Le calcul de cette opération peut prendre un certain temps si les interactions de la foule sont complexes, car plusieurs marches arrière peuvent être nécessaires. Le programme explore tous les chemins disponibles à partir du clip atteint en revenant en arrière ; si aucun chemin n’est satisfaisant, il revient en arrière sur le clip précédent ce clip et ainsi de suite jusqu'à ce qu'une solution apparaisse.

Dans notre exemple, si le script actuel d'un bipède se présente comme suit :

walk_start
walk 
walk_L90

et qu'une collision se produit pendant le clip walk_L90, le bipède revient en arrière (à savoir à la fin du clip walk ) et essaie de suivre un autre clip à la place du virage à gauche de 90 degrés qui n’a pas pu être exécuté. Si ce clip échoue également, le programme en essaie un autre, et ainsi de suite.

Conseil : l'inclusion de mouvements d'arrêt et de décélération dans le réseau de séquences permet parfois d'éviter des retours en arrière excessifs, dans la mesure où l'arrêt constitue toujours une solution efficace pour éviter des collisions. En général, plus les variations de vitesse et de direction permises sont nombreuses, plus la fonction de retour en arrière trouvera rapidement une solution.

Pour optimiser la gestion des retours en arrière, le programme calcule le comportement d'un seul bipède à la fois, par ordre de priorité. Les interactions des membres de la foule sont cumulées progressivement, chaque bipède calculé étant ajouté à l'animation. En d'autres termes, chacun à leur tour, les bipèdes attendent que leur animation complète soit calculée, ce qui les oblige à éviter les bipèdes qui ont été calculés avant eux. Il s'ensuit que les bipèdes affectés des priorités les plus basses subissent en général le plus grand nombre de collisions, puisqu'ils doivent manoeuvrer autour des bipèdes qui sont affectés d'une priorité plus élevée.

Préparation des personnages destinés à figurer dans une foule de bipèdes

Pour créer une simulation de foule de bipèdes, vous devez disposer de plusieurs bipèdes. Dans la mesure où la simulation de foule prend en compte la longueur des jambes de chaque bipède lors de l'application des clips au bipède, la simulation sera plus précise si les bipèdes sont de la bonne taille dès le de départ.

Voici un exemple de procédure simple :

Cette configuration permet de fusionner facilement les personnages dans la scène représentant la foule. Les maillages proprement dits sont masqués lors de la fusion des personnages, ce qui permet d'améliorer les performances du système.

Préparation des mouvements d'une foule de bipèdes

Vous pouvez créer les clips destinés à la simulation de la foule de bipèdes, les charger à partir des exemples fournis avec 3ds Max ou les importer à partir de fichiers de capture de mouvements.

Lors de la création d'une simulation d'une foule de bipèdes, il est important de veiller à l'intégrité des transitions entre les clips dans le réseau de séquences. Lorsque vous créez les transitions d'un bipède seul, il est très simple de corriger les transitions individuelles après la création du script de séquences. Dans le cas d'une foule, corriger les transitions de chacun des bipèdes une fois la simulation terminée pourrait s'avérer extrêmement fastidieux. Il est bien plus judicieux de s'assurer que les transitions sont correctes avant de lancer la résolution de la simulation.

Il existe une façon simple de simplifier ce processus : elle consiste à configurer tous les mouvements de sorte que chacun d'entre eux ait une transition de longueur idéale comportant exactement le même nombre d'images, 10 ou 15 par exemple. Vous pouvez ensuite optimiser les transitions en fonction de cette longueur ; la totalité ou la plupart des transitions ne présenteront pas de défauts.

Pour vérifier les transitions, créez un script simple destiné à un bipède seul en utilisant plusieurs transitions dans le schéma. Vérifiez le mouvement et ajustez chaque transition jusqu'à ce qu'elles soient satisfaisantes. Bien que cette méthode ne permette pas d'identifier toutes les transitions incorrectes, elle vous permettra néanmoins de détecter la plupart d'entre elles. Une transition incorrecte peut être une transition dans laquelle le personnage saute ou sautille alors qu'il devrait marcher ou toute autre transition comportant des changements inopportuns. Reportez-vous à la rubrique Personnalisation des transitions.

Après avoir résolu plusieurs fois la simulation de la foule de bipèdes, essayez de détecter les transitions incorrectes qui ont pu vous échapper la première fois. Il est probable que vous aurez détecté la totalité ou la plupart des transitions incorrectes après plusieurs simulations.

Restrictions

Certaines fonctions du système Crowd n'ont pas été conçues pour être utilisées dans le cas d'une foule de bipèdes. Les comportements et les paramètres concernés ne donnent aucun résultat sur les mouvements de la foule si des bipèdes ont été utilisés dans la simulation.

Utilisation de bipèdes dans une simulation de foule

Cette procédure décrit les étapes de base à suivre pour créer et enregistrer un schéma de séquence, affecter des bipèdes aux représentants, puis partager le schéma de séquence entre les bipèdes de telle sorte que Character Studio crée automatiquement un script de séquence distinct pour chaque bipède en fonction des comportements affectés à son représentant.

Remarque : pour cette procédure, on suppose que vous savez animer des bipèdes avec des méthodes de pas et d'images clés et enregistrer ces animations sous forme de fichiers BIP. Pour vous préparer à utiliser une séquence partagée, vous devez créer et enregistrer plusieurs mouvements de bipède tels que démarrer, marcher, tourner à droite, tourner à gauche, s'arrêter et attendre. Reportez-vous à la rubrique Chargement et enregistrement d'une animation BIP.

La première étape consiste à créer un schéma de séquence correct et à l'enregistrer sur disque.

Création de la séquence partagée :

  1. Ajoutez un bipède, puis ouvrez le groupe de fonctions Mouvement .
  2. Dans le panneau déroulant Bipède, cliquez sur (Mode Séquence).
  3. Dans le panneau déroulant Séquence, cliquez sur (Afficher graphique).
  4. Dans la barre d'outils de la boîte de dialogue Schéma de séquence, cliquez sur (Création de clips multiples).

    Une boîte de dialogue Ouvrir s'affiche ; vous pouvez y sélectionner des fichiers BIP dans un répertoire afin de simultanément les inclure dans le schéma de séquence. Pour sélectionner plusieurs fichiers contigus, cliquez dessus en appuyant sur Maj+clic (clic, puis Maj+clic) et sur Ctrl+clic pour sélectionner des fichiers non contigus.

  5. Choisissez les fichiers BIP que Character Studio doit utiliser pour la synthèse des mouvements, puis cliquez sur le bouton OK.

    Les fichiers sont inclus dans le schéma en tant qu'éléments d'animation. Chaque clip est automatiquement nommé en fonction du fichier dont il provient.

    Remarque : pour obtenir les meilleurs résultats (en particulier avec des simulations dans lesquelles les bipèdes doivent tourner sous différents angles), utilisez le plus grand nombre possible d'angles de rotation différents. Une configuration minimale comporterait des virages vers la gauche et vers la droite avec des angles de 45, 90, 135 et 180 degrés.

    L’étape suivante consiste à ajouter des transitions entre les clips afin que Character Studio connaisse l'ordre d'enchaînement des actions. Vous pouvez effectuer cette tâche manuellement afin de mieux contrôler vos actions, mais pour un premier essai, vous pouvez gagner du temps en laissant Character Studio créer et optimiser les transitions automatiquement.

  6. Cliquez sur (Synthétiser schéma de séquence). Cette fonction utilise le premier tiers et le dernier tiers de chaque mouvement pour créer les transitions.

    Vous pouvez désormais voir sur le schéma des flèches qui relient les éléments, avec certaines flèches qui forment une boucle. Si vous le souhaitez, vous pouvez supprimer les transitions superflues, par exemple celles qui relient les clips de début et d'arrêt en boucle sur eux-mêmes.

    Une autre solution consiste à utiliser (Créer transition) pour définir un schéma personnalisé.

  7. Optimisez les transitions Voir la section Boîte de dialogue Optimisation des transitions.

    Lorsque vous résolvez la simulation, Crowd génère automatiquement un script de séquence pour le bipède en fonction de ce schéma. Lorsque vous disposez d'un schéma à clips multiples (ce qui est le cas ici), le programme choisit le clip de départ du script parmi le ou les clips que vous avez désignés comme " clips de début aléatoires ".

    Si vous souhaitez vérifier l'intégrité des transitions, vous devez le faire à ce stade. Reportez-vous à la rubrique Personnalisation des transitions.

  8. Cliquez sur (Sélectionner clip de début aléatoire), puis sur un clip.

    Character Studio démarre alors le script par ce clip et utilise la probabilité par défaut (100 %) selon laquelle ce clip sera choisi.

    Si vous préférez que les bipèdes démarrent avec des clips différents, sélectionnez plusieurs clips de début aléatoire en maintenant enfoncée la touche Ctrl pendant que vous cliquez. Si la valeur du paramètre Probabilité départ aléatoire est de 100 % (valeur par défaut) pour tous les clips, Character Studio choisira au hasard le clip de départ de chaque script de bipède.

    Pour exécuter un clip spécifique au démarrage, cliquez avec le bouton droit de la souris sur ce clip et modifiez sa valeur Probabilité départ aléatoire. Supposons, par exemple, que vous souhaitez démarrer chaque script de bipède avec n'importe lequel des trois clips A, B et C. Par ailleurs, vous souhaitez que le clip A soit choisi deux fois plus souvent que les clips B ou C. Dans ce cas, à l'aide de l'outil de gestion des clips de début aléatoire, cliquez sur le clip A puis, tout en maintenant enfoncée la touche Ctrl, cliquez sur les clips B et C. Cliquez ensuite tour à tour avec le bouton droit de la souris sur chaque clip pour leur attribuer la valeur requise de Probabilité départ aléatoire, par exemple 60 pour A et 30 pour B et C.

    Remarque : les valeurs de probabilité ne sont pas significatives en elles-mêmes, ce qui compte c'est leur proportion les unes par rapport aux autres. Ainsi, des valeurs de 80/40/40 et de 20/10/10 donneraient un résultat identique.
    Remarque : vous pouvez également définir et modifier les clips de début aléatoire et les probabilités de départ directement dans le schéma de séquence, après avoir chargé le fichier MFE dans la boîte de dialogue Séquence partagée (voir la description de celle-ci plus loin dans cette procédure).
    Remarque : Si un script de séquence existe déjà pour un bipède, par exemple après la résolution d'une simulation de foule, Character Studio peut utiliser le premier clip de ce script pour les résolutions ultérieures.
  9. Dans le panneau déroulant Séquence, cliquez sur (Enregistrer fichier), puis enregistrez le schéma au format MFE.

    La prochaine étape pour l'utilisation de bipèdes dans la simulation d'une foule consiste à créer la simulation.

Configuration de la simulation de la foule :

  1. Réinitialisez 3ds Max.
  2. Définissez une simulation de foule avec un nombre quelconque de représentants et en choisissant des comportements adaptés au type de scène de foule à créer. N'utilisez pas de bipèdes au tout début ; utilisez uniquement des représentants de façon à ébaucher le mouvement des membres de la foule.
    Conseil : dans vos premiers essais de synthèse de mouvements, nous vous conseillons de définir des foules limitées à huit ou dix représentants.
  3. Résolvez la simulation et réglez les paramètres afin d'obtenir les mouvements souhaités.
  4. Fusionnez les bipèdes et les personnages dans la scène et associez chaque représentant à un bipède différent en utilisant les paramètres du groupe Bipède du panneau déroulant Paramètres Mouvement du représentant.

    Vous devez sélectionner le centre de gravité (CdG) du bipède (qui porte généralement le nom Bip0#) et qui est indiqué par le curseur qui prend la forme d'une croix lorsqu'il passe dessus dans la fenêtre active.

  5. Activez Utiliser Bipède pour chaque représentant.
    Conseil : Pour lier simultanément plusieurs représentants à des bipèdes, sélectionnez l'objet assistant Crowd et cliquez sur le panneau déroulant Configuration (Association bipède/représentant). Utilisez la boîte de dialogue qui s'affiche pour associer les paires et activez l'option Utiliser bipède pour chaque représentant. Reportez-vous à la rubrique Liaison d'objets à des représentants.
  6. Définissez le clip de début aléatoire qui sera utilisé pour chaque paire bipède/représentant comme premier clip ; vous pouvez définir ce réglage pour plusieurs représentants à la fois à partir de la boîte de dialogue Editer plusieurs représentants.

Application de la séquence partagée :

    Ensuite, utilisez la fonction Séquence partagée pour appliquer le schéma de séquence enregistré aux bipèdes.

  1. Sélectionnez le bipède et accédez au groupe de fonctions Mouvement .
  2. Dans le panneau déroulant Bipède, cliquez sur (Mode Séquence).
  3. Dans le panneau déroulant Séquence, cliquez sur (Séquence partagée).
  4. Dans la boîte de dialogue Séquence partagée, cliquez sur le bouton Nouveau.

    Ceci crée une nouvelle séquence partagée et lui affecte un nom par défaut. Vous pouvez le modifier si vous le souhaitez.

    Chargez ensuite un fichier de séquence.

  5. Cliquez sur la zone Paramètres bouton Charger .mfe puis, dans la boîte de dialogue Ouvrir, chargez un fichier de séquence. En principe, il s'agit du fichier que vous avez enregistré au début de cette procédure.

    Spécifiez les bipèdes qui vont partager cette séquence.

  6. Dans la zone Paramètres, cliquez sur le bouton Ajouter et, dans la boîte de dialogue Sélectionner, spécifiez les bipèdes qui utilisent la même séquence.

    Cette boîte de dialogue affiche uniquement les centres de gravité des bipèdes de la scène.

    Lorsque vous cliquez sur le bouton Sélectionner, les bipèdes apparaissent dans la boîte de dialogue, dans la liste intitulée " Bipèdes partageant cette séquence ".

  7. Pour partager correctement une séquence, les jambes/pattes des bipèdes doivent être mises à l'échelle de la même manière. Si un bipède est mis à l'échelle de manière différente du bipède de départ, un message d'erreur s'affiche : lorsque vous cliquez sur OK dans ce message, le programme affiche la liste des bipèdes qui ne sont pas correctement mis à l'échelle. Vous pouvez alors sélectionner l'un des bipèdes de cette liste et cliquer sur le bouton Définir échelle de séquence partagée pour faire correspondre la mise à l'échelle des autres bipèdes à celle du bipède sélectionné. Vous pouvez également cliquer sur l'un des boutons Réinitialiser échelles erronées pour modifier la mise à l'échelle de la totalité d'un bipède ou seulement des ses jambes/pattes. Veillez à appliquer l'une de ces deux méthodes avant de poursuivre.

    Vous devez effectuer une étape supplémentaire dans la boîte de dialogue Séquence partagée : vous devez activer le mode Séquence pour tous les bipèdes partageant la séquence grâce à un bouton spécial de la boîte de dialogue.

  8. Cliquez sur (Placer bipèdes multiples dans la séquence)

    Cette action active le mode Séquence pour tous les bipèdes qui partagent la séquence.

  9. Cliquez sur OK pour fermer la boîte de dialogue.

Décalage des représentants et test de la simulation :

    Les bipèdes contrôlés par des représentants peuvent commencer leur animation avec le premier clip de leur script de séquence, s'il existe, ou avec un clip de séquence aléatoire. Toutefois, lorsque vous chargez un fichier de séquence dans la boîte de dialogue Séquence partagée, les scripts du fichier ne sont pas pris en compte. Ainsi, les bipèdes contrôlés par des représentants utilisant une séquence dans une simulation de foule non résolue ne possèdent pas de script ; vous devez donc indiquer qu'ils doivent utiliser le clip de début aléatoire défini dans la séquence. Vous effectuez cette opération par l'intermédiaire des représentants.

  1. Utilisez la boîte de dialogue Editer plusieurs représentants zone Bipède pour indiquer le clip de début aléatoire pour tous les représentants.

    Résolvez la simulation.

  2. Sélectionnez l'objet Crowd et ouvrez le groupe de fonctions Modifier .
  3. Dans le panneau déroulant Résoudre, définissez l'image Fin résolution requise.
  4. Cliquez sur Résoudre pour exécuter la simulation.

    Crowd résout la simulation.

  5. Vérifiez la simulation résolue en faisant glisser le curseur d'image et/ou en exécutant l'animation.

Ajustement de la simulation :

    Dans la plupart des cas, vous devrez procéder à quelques ajustements. Vous pouvez éliminer les problèmes de différentes façons : en changeant les paramètres de comportement et/ou de séquence, en changeant les paramètres de représentant, etc.

    Si vous constatez que vos bipèdes se cognent les uns aux autres, vous pouvez appliquer les fonctions spéciales de Crowd, " Priorités " et " Retour en arrière ". En fait, il est fortement conseillé d'utiliser ces deux options pour la plupart de vos simulations de foules et de bipèdes.

  1. Utilisez les options du panneau déroulant Priorité pour attribuer différentes priorités aux représentants. En principe, les représentants placés en tête de la foule doivent être affectés des priorités les plus élevées (soit les valeurs de paramètre Priorité les plus basses).
  2. Dans panneau déroulant Résoudre zone Bipèdes, activez Bipèdes/représentants uniquement, puis Utiliser les priorités et Retour en arrière. Si vous avez effectué la résolution antérieurement, il est également conseillé de désactiver Suppression de clés avant résolution.

    Désormais, lorsque Crowd résout la simulation, il génère une solution pour un seul bipède/représentant à la fois, en commençant par ceux qui ont la priorité la plus basse. Pendant cette opération, Crowd détermine les risques de collisions : s'il existe un risque, Crowd revient en arrière à la fin du clip précédent (sur plusieurs niveaux de clip si nécessaire) puis essaie d'emprunter différents chemins dans le schéma de séquence. Cette méthode peut prendre un certain temps (pour cette raison, elle est désactivée par défaut), mais elle représente souvent la meilleure solution pour éliminer les problèmes de bipèdes qui entrent en collision.