Devlog #3: Attaque a Distance, Mulitplayer, Modèle et Juice


Bonjour tout le monde !

On est reparti pour un nouveau devlog du projet ! J’ai depuis pas mal avancé, on va aborder aujourd’hui l’attaque a distance, le multijoueur du jeu, le modèle du joueur, ainsi que le juice du personnage dans ces mouvements, ce qui représente environ 2 semaines de travail !

Avant tout, petite update sur mes user stories ! Vous vous souvenez ? Cela ressemblait avant à ça. Voici maintenant la version à jour ! (Y’a pas à dire, y’a du boulot qui m’attends !)


Avec cette version, je suis plus a même de prévoir mon travail sur les semaines à venir, suivre mon rythme de travail afin d’anticiper toute avance ou retard, etc…

Sur ce, on est parti !

______________________________________________________________________

L’attaque à distance :

Je l’avais montré en preview du devlog précédent, afin d’inciter les joueurs à bouger durant la partie, j’ai réalisé une arme de type distance. Il s’agit d’une hache de lancer, façon God of War. Le joueur peut donc tirer en ligne droite, et la rappeler à n’importe quel moment !

Pour cela, je me suis servi d’un projectile component et d’un rotation component, qui vont s’occuper du mouvement aller de la hache. Quand on frappe, l’anim se lance, et un notify va détacher l’arme du joueur et activer les components en question !

Une fois que l’arme rencontre un mur, elle se plante dedans. Sinon, le joueur la rappelle, et a l’aide d’une courbe de Bézier quadratique et d’une timeline, elle va effectuer un arc entre le mur et la main du joueur, passant par un point éloigné, sur une durée définie (1.5 sec).


Pour arriver à ce résultat, j’ai réalisé une première version par moi-même, que j’ai ensuite peaufiné grâce à ce tutoriel-là ! N’hésitez pas check ce tutoriel de qualité supérieure !

______________________________________________________________________

Le multijoueur :

Pour rappel, Barbarena est un jeu en multijoueur local ! Prévu pour deux joueurs actuellement, dans le cadre du projet, mais il est possible d’ajouter autant de joueur que voulu, la structure du code le permettant.

J’avais réalisé précédemment une camera orthographique afin de coller au multijoueur local, ne souhaitant pas d’écran splitté façon mario kart. (Pourquoi regarder l’écran de l’autre quand on peut tout avoir de dessus !) Problème : Les lights d’Unreal en orthographique sont quelques peux colériques, et la skybox n’est plus prise en compte ! J’ai du alors simuler une camera orthographique à partir d’une caméra perspective ! Pour cela, j’ai mis le FOV au minimum et la caméra a grande distance de l’arène !


Ça a quand même une meilleure tête ! Et cela me permettra de designer correctement l’environnement autour de l’arène (oskur, je ne suis pas graphiste, ça va me tuer ahah).

Après ça, j’ai pu m’atteler à l’instanciation des deux personnages ainsi qu’au contrôle de chaque par leurs contrôleurs respectifs. Ceci est réalisé dans le Level Blueprint de l’arène ! 


Ce code permet de créer 1 playerController/Joueur, sachant que le playerController du joueur 1 existe déjà. Il va ensuite récupérer les positions de départ des joueurs, instancier le pawn du joueur en adéquation avec son ID, et set correctement la caméra.

Ainsi, si je souhaite rajouter des joueurs, je n’ai qu’a changer la valeur de ma variable « PlayersNumber -1 », et rajouter des cas à mon « Set Player to Spawn », plutôt simple !

______________________________________________________________________

Le modèle :

Les plus attentifs d’entre vous l’auront remarqué sur les screenshots précédents, le modèle du personnage a changé ! En effet, j’ai effectué des recherches sur differents stores et banques d’assets afin de trouver un modèle qui colle avec l’idée d’un « Barbare pas très malin qui aime se battre ». Ce fut assez difficile d’en trouver n’ayant pas de budget, mais cela fait partie de l’exercice ! Voici le modèle :

   
     Arthur's Barbarian Idle by Kalleil on Sketchfab

Il y a quelques soucis dessus, comme des UV mal placés, ou des géométries manquantes, que je retoucherai plus tard dans le polish.

Après cela, il a fallu transvaser les animations déjà utilisées et futurs sur ce modèle, et ce via plusieurs étapes :

  • Setup : j’ai téléchargé sur mixamo un personnage et des packs d’animations m’intéressant. Je possédais aussi déjà les animations du mannequin Unreal. J’ai converti mon personnage en modèle mixamo via le site afin de maximiser la compatibilité, et tout ce qui est issue de mixamo est passé dans blender, via un plugin, afin de correctement nommer les bones et ajouter un root pour Unreal.
  • Manipulation : A partir de là, pour transvaser les animations des deux mesh vers celui de mon personnage, il faut utiliser le « Retarget Manager ». Pour cela, on commence par mettre le squeleton des 3 mesh en T-pose.  Ensuite, dans le retarget manager, on fait le lien entre le rig utilisé pour retarget les anims et les bones des mesh. L’avantage ici est qu’ils ont les mêmes nom grâce au passage dans le plugin blender !


  • Conversion : Tout est prêt ! Il ne reste plus qu’a sélectionner les animations de mixamo et d’unreal, et de les retarget sur le modèle que j’ai choisi !


______________________________________________________________________

Le Juice du personnage, étape 1 :

J’étais maintenant en possession de tous les éléments nécessaires aux déplacements du personnage, les interactions de combats venant par la suite. Il était temps de les polishs, et d’ajouter des éléments de juice, tel que SFX et VFX.

J’ai d’abord essayé de réaliser moi-même un VFX de footstep, avec des particules, le résultat était fonctionnel. Cependant je possède dans ma bibliothèque Unreal des VFX tout prêt et de meilleure qualité, que j’ai décidé d’utiliser à la place, ce qui donne ceci :


Dans un souci de cohérence, le VFX variera en fonction de la surface touchée ! (Terre, Herbe, Neige, …). J’ai aussi un peu modifié les VFX pour réaliser celui de la roulade/Dash.


Enfin, j’ai procédé à une 1ere recherche d’SFX dans des banques de sons pour le saut, le footstep et la roulade/dash. Il ne restait plus qu’a assembler le tout dans les animations via les Notify d’Unreal ! Pour que les VFX collent à la surface sur laquelle je marche, je vais réaliser un Notify Custom. Quand aux bruits de pas, ils sont aléatoires parmi plusieurs sons pour plus d’effet !

Pour conclure la semaine, j’ai aussi fait du polish sur les mouvements du joueur : la vitesse de déplacement, la force du saut, l’amplitude de la roulade…

______________________________________________________________________

Tout ces éléments m’ont bien fait comprendre que les taches graphiques ne sont vraiment pas ce qui m’intéresse le plus, ni un domaine dans lequel je travaille facilement, cependant, il est toujours intéressant de connaitre un peu leur process ainsi que des bases, que ce soit pour dépanner, ou bien pour communiquer avec les artistes responsables ! Je vais essayer de rendre le jeu le plus beau possible, dans les limites de mes capacités et de ce que je pourrais trouver sur internet !

Ce sera tout pour se devlog assez consistant ! Le prochain portera sur tout ce qui touche au combat dans le jeu (Anim, Combo, Juice, ...). On se laisse sur le funny meme of the week ! (aka moi quand ça bug)

See ya !

Get Barbarena

Leave a comment

Log in with itch.io to leave a comment.