JusquâĂ maintenant, nous avons surtout parlĂ© des blueprints liĂ©s Ă un niveau de jeu mais comme je vous lâai dit au dĂ©but de la partie sur Blueprint, il existe aussi ce quâon appelle des classes Blueprint.
Câest un sujet trĂšs large et aux variations infinies. Pour commencer, je vous propose de mettre notre nez dans une classe qui existe dĂ©jĂ dans le template FPS : la classe personnage.
Bien sĂ»r, elle ne sâappelle pas âclasse personnageâ, ce serait trop simple. Vous la trouverez sous le nom de FirstPersonCharacter et elle rĂ©git le comportement du personnage incarnĂ© par le joueur. Quand on sâintĂ©resse Ă cette classe, il y a un certain nombre de notions quâil vaut mieux maĂźtriser avant.
Pour commencer, jâaimerais vous parler du Player Start. Il permet de faire apparaĂźtre le joueur Ă un endroit donnĂ© ; on dit gĂ©nĂ©ralement que le joueur âspawnâ. Cette fonctionnalitĂ© se trouve dans la fenĂȘtre Modes dans la catĂ©gorie Basic de l'Ă©diteur.
En plaçant le Player Start dans le niveau, observez bien la flĂšche bleue claire, elle indique la direction du regard du joueur lorsquâil apparaĂźtra.

En sâattaquant au personnage que le joueur incarnera, on touche Ă ce quâon appelle le Game mode. Il sâagit dâun ensemble de rĂšgles communĂ©ment acquises mais qui peuvent aussi ĂȘtre adaptĂ©es.
Le GameMode regroupe différentes classes comme le HUD, le PlayerController ou le Pawn :
Le HUD correspond Ă tout ce qui s'affiche en pĂ©riphĂ©rie de l'Ă©cran et qui n'appartient pas Ă l'environnement du jeu. Par exemple, il sâagit du score du joueur, de la santĂ© de son personnage ou de lâarme quâil porte : c'est l'interface du jeu.
Le Pawn est la classe de base  du jeu pouvant ĂȘtre contrĂŽlĂ©s par le joueur ou par une intelligence artificielle (IA). Le Pawn dĂ©termine son apparence dâun personnage joueur ou dâune entitĂ© IA, mais aussi comment il interagit avec le monde en termes de collisions ou autres interactions physiques.
Le PlayerController représente l'interaction que le joueur a avec son personnage.
Pour trouver le Game Mode, cliquez sur lâicĂŽne Blueprints puis suivez ce chemin :
GameMode : Edit FirstPersonGameMode > Pawn :Â Edit FirstPersonCharacter > Edit FirstPersonCharacter.

LâĂ©diteur Blueprint sâouvre : ce blueprint est indĂ©pendant du Level Blueprint. En effet, il peut ĂȘtre utilisĂ© dans plusieurs niveaux. Le blueprint du personnage est donc une classe Blueprint (ou class Blueprint si vous avez pris le parti de vous exprimer en anglais) !

On observe principalement trois différences avec le level Blueprint :
1) On a accĂšs Ă un nouveau panneau Components situĂ© en haut Ă gauche de lâĂ©diteur. Pour rappel, quand vous utilisez le level Blueprint et que vous souhaitez faire rĂ©fĂ©rence Ă un mesh se trouvant dans le niveau, vous devez cliquer dessus et ensuite, Ă partir de lâevent Graph, vous devez tapez « reference to âŠÂ». On fonctionne diffĂ©remment avec les classes Blueprint.Â
2) Lâonglet Viewport permet de visualiser le rendu graphique de la classe Blueprint câest-Ă -dire le look de notre personnage et lâemplacement de la camĂ©ra.
3) Lâonglet Construction Script qui sert Ă effectuer des opĂ©rations dâinitialisation.
Si vous avez lu le chapitre sur les materials, vous savez dĂ©jĂ comment ces onglets fonctionnent. ;)Â
Pour dĂ©couvrir le fonctionnement de la classe FirstPersonCharacter, rien de tel que de la modifier ! Nous allons crĂ©er une lampe torche Ă partir de la classe personnage, pour cela il va falloir crĂ©er un nouveau component. Depuis lâĂ©diteur Blueprint du FirstPersonCharacter, cliquez sur Add Component en haut Ă gauche puis cherchez dans la barre de recherche « SpotLight ».

Vous devriez maintenant voir votre SpotLight dans la fenĂȘtre Components en haut Ă gauche et dans le Viewport. Nous souhaitons que cette lampe soit rattachĂ©e (reliĂ©e, affectĂ©e) au personnage. Pour cela, cliquez sur la SpotLight dans la fenĂȘtre « Components » et glissez-la sur « Mesh2P » qui correspond Ă lâapparence visuelle du personnage (aussi appelĂ©e skin qui signifie peau en anglais).

Un objet est correctement rattachĂ© Ă un autre quand un triangle est visible devant le composant parent (ou maĂźtre). Ă prĂ©sent, nous pouvons dĂ©placer la SpotLight dans le Viewport. Nous allons la mettre juste devant la main du personnage. Si vous le souhaitez, vous pouvez en profiter pour modifier quelques paramĂštres comme la couleur de la lumiĂšre, son intensitĂ© et lâangle.

Vous ĂȘtes libres de mettre vos propres paramĂštres. Le but de la manĆuvre est de pouvoir simuler la projection que pourrait rĂ©aliser une lampe torche. Si vous lancez le jeu, vous observerez que votre lumiĂšre suivra vos mouvements !
Parfait, câest le dĂ©but de la libertĂ© ! Mais modifier une classe existante, câest bien, crĂ©er la sienne, câest mieux. ;)
Nous allons maintenant crĂ©er notre premiĂšre classe Blueprint. Notre classe comportera un trigger (un dĂ©clencheur) et un mesh (objet 3D). Pour rĂ©sumer lâeffet recherchĂ© : le trigger sera un cube invisible qui dĂ©tectera la prĂ©sence du joueur. Si le joueur rentre dans le trigger alors on multiplie par 2. La taille du blueprint sera donc doublĂ©e. Quand le joueur sortira du trigger, le blueprint reprendra sa taille normale.
Cette partie est extrĂȘmement simple, alors câest parti !
Depuis le content browser, allez dans le dossier FirstPersonBPÂ > Blueprint.
Faites ensuite un clic droit avec votre souris dans le dossier et cliquez sur Blueprint Class. Sélectionnez le type Actor et renommez votre classe Blueprint en SuperScaler.

Double cliquez sur SuperScaler dans le content browser afin dâouvrir le Blueprint Editor. Ă partir de la fenĂȘtre Components, ajoutez un Static Mesh et une Box Collision.
 
Nous souhaitons Ă prĂ©sent ajouter un mesh Ă notre composant static mesh. SĂ©lectionnez votre static mesh dans la fenĂȘtre Components puis dans la fenĂȘtre Details, dans la catĂ©gorie Static Mesh, choisissez CubeMesh dans le menu dĂ©roulant.

SĂ©lectionnez maintenant votre Box qui fait office de Trigger dans la fenĂȘtre Components. Modifiez ses valeurs de scale si besoin afin que le Mesh soit inclus dans la boite de collision, et non lâinverse. Cliquez ensuite sur le « + » de lâĂ©vĂšnement On Component Begin Overlap dans la fenĂȘtre Details.

Rappelons briĂšvement ce que nous voulons faire :
Pour changer la taille dâun objet, il faut chercher la fonction « Set Actor Scale 3D » qui permet justement de changer la taille dâun Actor.
Comme vous pouvez le constater, il existe deux paramĂštres : Target (la cible) et New Scale 3D (la nouvelle
Ă©chelle de lâobjet 3D) qu'il va falloir dĂ©finir :
Par dĂ©faut le paramĂštre Target Ă comme valeur Self, câest-Ă -dire lui-mĂȘme. En dâautres termes, par dĂ©faut, câest lâintĂ©gralitĂ© du blueprint qui changera de dimensions. Dans notre cas le trigger ET le mesh qui se trouve dans la classe.
New Scale 3D accepte un nouveau type de variable : Vector. Le type Vector se caractérise par ses 3 valeurs : X, Y et, Z. Il est donc tout indiqué pour représenter un objet en 3D.
Pour commencer, mettez une valeur de 10 pour X, Y et Z et laissez lâentrĂ©e Self vide pour le paramĂštre Target.
Ensuite, cliquez sur le bouton Find in CB afin de localiser votre SuperScaler dans le content browser.

Depuis le content browser, glissez-déposez votre classe blueprint SuperScaler dans le niveau .

Câest le moment des tests : quand on lance le jeu, le cube a une taille normale. Quand on rentre dans le trigger box, alors sa taille est 10 fois plus grandes sur les 3 axes par rapport Ă sa taille initiale (la taille initiale est de 1, 1, 1).

Nous allons maintenant faire en sorte de multiplier par 2 la taille initiale du Blueprint Ă chaque fois quâon rentre
dans le Trigger.
Pour cela, il faut récupérer la taille du Blueprint puis la multiplier par 2. Imaginons que la taille initiale soit de
1, si on multiplie le vecteur par 2, on obtient :
Â
Â
En résumé, nous avons : (X,Y,Z) = (2,2,2).
Si le joueur rentre une nouvelle fois dans le trigger on aura les valeurs suivantes pour le vecteur :Â
x=2â2=4
y=2â2=4
z=2â2=4
 Â
Soit : Â
Â
Facile !
Pour vous faire comprendre une derniĂšre chose avec les vecteurs, si on avait les valeurs (5.4, 6.6, 7.09) pour
le vecteur et quâon le multipliait par deux, on aurait les rĂ©sultats suivants : (10.8, 13.2, 14.18).
On multiplie chaque valeur (X, Y, Z) par le nombre multiplicateur (5.4*2, 6.6*2, 7.09*2).
Pour récupérer la taille du Blueprint , on utilise la fonction Get Actor Scale 3D. Depuis la valeur de retour de cette fonction, faites une multiplication en cherchant « * » dans la barre de recherche des fonctions (vector * float) puis affectez la valeur 2 à la multiplication.

Enfin, liez le rĂ©sultat de cette multiplication Ă la fonction Set Actor Scale 3D :Â

Voici ce que dit notre algorithme : « SI quelque chose (le joueur ici) rentre dans ce Trigger ALORS on redimensionne le blueprint en multipliant par 2 sa taille actuelle... »

Félicitations ! Vous venez de créer une classe Blueprint dont les composants changent de dimensions à chaque fois que le joueur rentre dans le trigger. Pourquoi ne pas essayez de faire évoluer cette classe ?
Utilisez lâĂ©vĂšnement « On Component End Overlap » pour redonner au blueprint sa taille initiale quand le joueur sort du trigger ;
Utilisez lâĂ©vĂšnement « OnComponentHit » pour dĂ©truire la Classe Blueprint quand un projectile touche le trigger. Utilisez la fonction "Destroy Actor".
Créez ensuite un nouveau Blueprint « Interrupteur ». Ce blueprint basique comprendra deux components : une point light et une box collision.
Â
Si on rentre dans le trigger, la point light sâallume et est donc par dĂ©faut Ă©teinte.
Si on sort du trigger, la lumiĂšre sâĂ©teint.
Si vous rencontrez des difficultĂ©s, nâhĂ©sitez pas Ă lire la documentation dâUnreal Engine, Ă vous inspirer de vidĂ©os trouvĂ©es sur le Net ou bien posez vos questions sur le Forum. La recherche active fait partie intĂ©grante du travail dâun dĂ©veloppeur de jeu vidĂ©o. Il nây a pas de honte Ă demander conseil ou Ă sâinspirer du travail des autres, câest mĂȘme plus que conseillĂ© si vous voulez rĂ©ussir dans cette voie !
Vous ĂȘtes Ă prĂ©sent capable de :Â
Créer votre propre classe ;
Utiliser des fonctions Blueprint ;
Utiliser les événements d'un trigger.
Â