Il y a de bonnes réponses ici. J'ai dû le découvrir par moi-même sur le projet sur lequel je suis, mais je suis arrivé aux mêmes conclusions que les gars de Sucker Punch (et j'avais pensé que j'avais trouvé quelque chose de nouveau. Baww :().
Je trouve utile de considérer votre panorama à 360 ° à 180 ° comme un "champ d'accélération". Toutes les cibles valides créent des puits de gravité qui courbent l'entrée du joueur (seulement subtilement) de sorte que le macro-mouvement (se tournant vers des cibles face) donne l'impression que c'est un chemin "graissé". Cependant, cela n'affecte pas tout le temps le réticule - uniquement lorsque le delta de virage du joueur est pointé avec la pente du puits (pour ainsi dire). C'est vraiment la clé cependant - vous ne donnez cette vitesse de virage supplémentaire que lorsque le joueur se tourne grossièrement vers une cible. C'est à peu près la seule inférence que vous pouvez faire à partir de l'entrée du joueur.
Beaucoup plus, et vous obtenez trop d'un "effet ouija" notable. Vous voulez exactement le contraire de ouija: lorsqu'une planche ouija se déplace de manière inintelligente à cause d'un utilisateur, à son insu, vous voulez que le réticule d'un joueur se déplace de manière intelligente sans que l'utilisateur ne se rende compte qu'il ne s'agit PAS uniquement de sa contribution. C'est vraiment un tour de magie.
Utilisez le produit scalaire du delta de tangage / lacet du joueur par rapport au delta de tangage / lacet du réticule à chaque cible. Fixez la valeur entre 0 et la vitesse maximale (afin d'ignorer l'entrée en vous éloignant de la cible), puis utilisez une fonction de distance comme modificateur de chute.
J'ai trouvé que l'augmentation de ce bonus de "macro-mouvement" lorsque le delta angulaire du réticule par rapport à la cible est grand (c'est-à-dire lorsqu'un ennemi est derrière vous) aide vraiment avec le problème classique du contrôleur de console de ne pas être capable de se retourner assez rapidement. En termes de "choix de cibles", si vous êtes attaqué par derrière, et qu'il n'y a pas de cibles devant vous, ce panorama devant vous est "un espace mort", et vous pourriez aussi bien donner au joueur la possibilité de le traverser. à grande vitesse avec leur curseur. Et s'il y a des cibles à venir, eh bien, elles sont probablement plus élevées dans l'esprit du joueur et, en raison de la visée amortissante / collante, ne sont pas indûment affectées par la faible force macro.
Vous n'avez pas besoin d'atténuer la sensibilité lorsque le joueur essaie de se détourner
d'un objet (cela se traduira par une sensation d'essayer de "s'échapper" de l'orbite d'une cible). L'amortissement est plus utilisé pour viser avec précision, mais aussi pour empêcher le dépassement de la visée des joueurs lors du passage de la macro à la micro-précision - c'est la chose la plus sacrée: les joueurs (en particulier les novices) ont tendance à utiliser uniquement les extrêmes de la déviation d'un bâton, vous avez donc de faire beaucoup de perfectionnement pour eux.
Le but collant est un compensateur de mouvement relatif. Observez la différence entre l'angle par rapport à votre cible (depuis la caméra, pas depuis l'origine de l'entité), cette image et la dernière image. Voyez à quel point vous visez la cible. Pour éviter l'effet ouija quand il n'y a pas d'entrée utilisateur, vérifiez la déviation des deux manches: Vérifiez si vous avez bougé physiquement (actionnement du manche gauche) OU s'il y a une visée active "avec" la direction de la cible. Ajoutez le pas de lacet / tangage delta * proximité de visée * Max (longueur de déplacement, longueur de visée) pour une visée collante rudimentaire.
Lorsque survient le problème de la confusion des cibles (c.-à-d. Une cible se faufile dans votre champ de vision pendant que vous visiez quelque chose derrière, «volant» votre concentration), il vous suffit de garder une trace de vos cibles et de «chauffer» une seule pendant qu'elle est activement visé. Ensuite, multipliez les composants amortissants et collants par ce paramètre de chaleur afin que les cibles non chauffées soient ignorées. Si le joueur VEUT l'aide sur cette autre cible, il visera manuellement vers elle, et très rapidement, cela devient la cible la plus en évidence tandis que la précédente est oubliée.
Nous créons également des cibles d'assitance d'objectif "fantôme" pour vous aider à vous détourner des choses sans intérêt (c'est-à-dire face à un mur - pas besoin de traîner en regardant une surface vierge de près si ce n'est pas utilement interactif), mais c'est probablement plus que ce que je peux parler à propos - vous pouvez appliquer ce genre de choses à tout ce qui est intéressant pour le joueur, que ce soit des barils explosifs, des objets interactifs (le bioshock utilise l'amortissement lorsqu'il vise des objets interactifs à courte portée ... mais ne fait pas de visée collante sur eux, Je ne pense pas). Une fois que vous réalisez que tout cela n'est que pour compléter le concept de base de la visée, vous vous rendez compte qu'il ne s'agit pas seulement de viser des coups, mais d'une amélioration générale de l'utilisabilité qui alimente tous les mécanismes qui dépendent de la visée. Et dans un FPS, vraiment,
La chose improtante avec tout cela est le réglage. Il faut beaucoup de temps pour bien faire les choses et pour faire face aux interférences avec les cibles, et les problèmes avec des cibles si proches que leurs "zones de ciblage" submergent le panorama du joueur, ralentissant 60 degrés de rotation jusqu'à une exploration.
Oh mec, je devrais me coucher. Désolé si certains calculs ne sont pas clairs. Il est vraiment tard, mais j'étais ravi de lire ce post.