Toujours sur mon petit projet FPS, je rencontre actuellement un soucis avec la rotation de la camera attaché au personnage, en effet lorsque je regarde sur les côtés (axe y) tout est OK mais lorsque je regarde de haut en bas (axe z) les mains de mon personnage ne suivent pas la camera.
J’ai tenté de cocher l’option “Use Pawn Controller Rotation Pitch” sa fonctionne visuellement mais le personnage suit la rotation de la camera ce qu’il le fait ce retrouver en position 180° tel superman
Je ne sais pas si je doit modifier quelque chose au niveau de l’Animation Blueprint de mon personnage.
Salut,
Oui tu dois modifier ton anim blueprint pour ça. Il te faut appliquer une pose additive (juste sur les bones spine). En gros tu as une pose avec le dos courbé vers l’avant, une avec le dos courbé vers l’arrière et tu les utilise dans un “aim offset” (c’est un genre de blendspace qui va donner une position entre les deux, selon un input, le pitch de ta caméra dans ce cas).
Je n’ai pas fait ça depuis longtemps mais tu dois pouvoir trouver plein de tuto sur les anim additives et les aim offset
Merci beaucoup pour ta réponse, une dernière petite question
Je doit donc appliquer la même chose à l’arme tenu par mon joueur ?
En position Idle (Sur place) elle suit l’animation car étant rattaché au perso, mais lorsque je marche l’arme reste statique au lieu de suivre les mouvements du perso.
Logiquement ton arme doit être attachée au socket de la main (ou bien un autre socket de la main, je crois qu’il y en a déjà un sur le skeleton du mannequin d’unreal, mais tu peux aussi en ajouter un toi-même), ce qui fait qu’elle suit l’orientation de la main durant les anims.
C’est bien le cas elle est relié au socket de la main du perso, mais lorsque l’animation “Walk” est en cours les mains du perso bouge légèrement ce qui fait que l’arme traverse les mains, je pense qu’il faudrait faire une animation pour l’arme afin d’améliorer son comportement et de l’adapter face aux animations de mon perso, mais je ne suis pas sur.
Une vidéo pour voir un peu mieux ce qui ce passe, je me suis interrogé sur quelques points :
J’ai placer la camera à l’intérieur de l’arme mais sa n’à corriger que le problème de clipping du perso, j’ai vu que certaines personnes ré-utiliser carrément le skeletal mesh contenant uniquement la tête de leur perso
J’ai utiliser un AimOffset1D, peut-être dois-je utiliser un AimOffset ?
Je n’ai pas de BlendSpace avec les deux animations (regarder en haut, regarder en bas) pourtant l’animation ce lance correctement
Désolé les notifications arrivent très en re tard
En fait tout dépends du game design. La méthode que tu avais utilisé au début n’était pas mauvaise même si le perso était en superman. Si le mesh n’est qu’une paire de bras, ça ne pose pas de problèmes, regarde d’ailleurs comment est fait le template first person d’Unreal, il n’y a qu’une paire de bras et c’est le mesh entier qui tourne.
Là où ça se complique c’est si le joueur peut passer en third person ou si le jeu est en multijoueur. Là il faut un mesh entier donc plus possible de simplement tourner le mesh.
Mais du coup ça change aussi au niveau des controles.
Le pitch ne sert plus a tourner la camera ou le perso, il sert juste de valeur pour le blend space, ou plutot le aim offset. La camera ne fais que suivre la tête du perso.
En tous cas c’est pas facile à tout expliquer comme ça, mais il y a des vidéos sur le sujet :
Effectivement j’avais un bon départ mais étant donner que ce sera surement un tout petit jeu multijoueur, il faudrait que l’avatar soit entier afin que les joueurs puissent le voir.
Je pense avoir un peu compris, le pitch et l’axe “haut/bas” mais étant donner que j’utilise un skeletal mesh complet je vais devoir indiquer que la camera doit suivre l’axe du pitch, étant donner que mon AimOffset est déjà configuré je n’aurais qu’à trouver un moyen de faire suivre la camera.
Je vais essayer de suivre les tutos et de revenir au plus vite poster mon avancer, comme ça si je rencontre des difficultés je pourrais être aider.
Ne t’en fait pas concernant le temps de réponses, tu fait déjà ton possible !
Si je comprends bien maintenant le perso prends la bonne position quand tu bouge la souris, mais la caméra ne suit toujours pas c’est bien ça?
Est-ce que ta caméra est attachée à un spring arm ou bien directement au socket head? En attachant la cam au socket de la tête ça devrait suivre (normalement)
Ensuite je vois que tes variables ne sont définies nulle part à part “Pitch”, mais qu’en est-il de “Yaw”, “Vitesse AIM” et “Direction AIM”?
L’animation ce réalise bien, mais la camera est impossible à gérer :
J’ai mis la camera dans le socket head mais la camera ne suit toujours pas les bras, je souhaiterais vraiment garder une vue en mode FPS même avec les mouvements AIM haut/bas
Concernant YAW, VitesseAIM & DirectionAIM, elles ce trouvent (A l’intérieur du BS_AIM (state) :
Jette un coup d’oeil à l’avant dernière capture d’écran, toutes les variables sont déclarés ici
La cam doit suivre la tête, pas les bras. Est-ce que la tête regarde vers le haut ou vers le bas dans les anims utilisées dans le aim offset? Parce que si la tête reste à l’horizontale et que seuls les bras s’inclinent, c’est normal que la cam ne suive pas.
Quand je parle de définir les variables, c’est en utilisant un “set”. Tes variables sont utilisées dans l’anim graph, mais leur valeur doit bien être définie quelque part. C’est ce que tu as fait ici avec “Pitch” mais je vois pas les autres :
Pour les animations sa me semble ok, je crois que le problème viens des variables je pense que le fait d’avoir suivis les 2 tutos m’à perdu et j’ai du confondre certaines choses, je vais recommencer mon EventGraph et je viendrais poster mon avancer.
T’aurais moyen de m’envoyer tes assets pour que je jette un oeil de plus près? Si tu peux mettre le bp de ton perso avec l’anim bp et les anims dans un projet vide par exemple pour pas que ce soit trop lourd.