Interactions de modèles dynamiques


12

Je suis simplement curieux de savoir comment, dans de nombreux jeux (à savoir des jeux comme Arkham Asile / City, Manhunt, Hitman), ils font en sorte que votre personnage puisse "attraper" un personnage devant vous et lui faire des choses. Je sais que cela peut sembler très déroutant, mais pour un exemple, allez sur YouTube et recherchez «exécutions de tueur à gages», et la première vidéo est un exemple de ce que je demande.

Fondamentalement, je me demande comment ils font que votre modèle interagit dynamiquement avec tout autre modèle que vous rencontrez, donc dans hitman lorsque vous vous approchez de quelqu'un avec le fil de fibre, vous étranglez l'autre personnage ou si vous avez l'anesthésique, vous vous retrouvez derrière certains personne et mettez votre main là-bas la bouche pendant qu'ils luttent et vont lentement au sol où vous les couchez. Je suis confus quant à savoir s'il a été animé pour utiliser deux modèles utilisant des identifiants osseux / squelettiques spécifiques, s'il ne s'agit que de deux animations complètement distinctes qui sont jouées au bon moment pour donner l'impression qu'elles interagissent réellement ou quelque chose d'autre tous ensemble.

Je ne suis pas un animateur, donc je suppose que la plupart de ce que je viens de dire n'est pas correct, mais j'espère que quelqu'un pourra comprendre ce que je veux dire et fournir une réponse.

PS) Je suis programmeur et je suis en train de construire un jeu hitmanesque, juste parce que j'aime ce style de jeu et que je veux augmenter mes compétences sur quelque chose d'amusant, donc si vous savez de quoi je parle, des exemples impliquant à la fois des modèles et de la programmation (j'utilise c ++ et principalement Ogre3D pour le moment mais j'entre dans l'unité et XNA) je l'apprécierais grandement.

Merci.

Réponses:


4

Je soupçonne que ce sont des animations synchronisées, car ce serait dans la plupart des cas (c'est-à-dire lorsque les personnages sont au même niveau) être le plus facile à mettre en œuvre. Vous pouvez voir que les animations Hitman ne sont en fait pas particulièrement bien synchronisées, même ainsi (scène de l'épée). C'était déjà un jeu assez révolutionnaire pour l'époque, donc je pense que les joueurs étaient prêts à ignorer les petites inexactitudes; les joueurs que je connaissais à l'époque ne se plaignaient certainement pas.

En plus de cela, il existe de nos jours des solutions physiques incroyables pour l'animation de personnages, par exemple. Euphoria and Rune Skovbo Johansen's Locomotion system for Unity , pour n'en nommer que quelques-uns. Dans Euphoria , vous pouvez voir dans leurs vidéos que le degré de réalisme physique est fou . Ce système a été utilisé pour GTA 4, Red Dead Redemption et Star Wars: The Force Unleashed. Il ne fait aucun doute que cela pourrait facilement retirer l'exemple que vous avez donné. Il indique également la quantité d'efforts de développement nécessaires à l'animation réactive.

Il serait peut-être trop long pour un développeur individuel de faire plus que l'approche des animations synchronisées, et même cela peut avoir des problèmes: des personnages à différentes hauteurs, par exemple, vous devrez peut-être plier le torse pour lancer l'attaque. sur l'autre personnage, mais cela peut avoir ses propres problèmes (par exemple lors de l'étranglement / la refente de la gorge), comme si l'angle est trop aigu. Je suppose qu'une solution à cela pourrait être de faire légèrement plier le personnage aux genoux, afin d'obtenir une hauteur de torse uniforme avec sa victime. Un peu comme faire la queue pour un coup de golf, vieux gars.


Merci Nick pour l'info. Je soupçonnais que c'étaient juste des animations synchronisées, qui devraient convenir à mes besoins car mes personnages (quand vous pouvez les "exécuter" de toute façon) seront toujours au même niveau que vous.
Richard
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.