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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 :
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.
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.
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.
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é.
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.
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.
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 :
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.
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.
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.
Spécifiez les bipèdes qui vont partager cette 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 ".
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.
Cette action active le mode Séquence pour tous les bipèdes qui partagent la séquence.
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.
Résolvez la simulation.
Crowd résout la simulation.
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.
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.