Cast To et références Blueprint : parler à un autre acteur
Une dalle doit ouvrir une porte, un personnage doit parler à un boss : il faut un moyen de désigner l’autre acteur. À la fin de ce guide, tu sauras ce qu’est une référence, comment en créer une, ce que coûte un Cast To en mémoire et comment charger un gros asset seulement quand il faut. Tout est vérifié sur la documentation officielle d’Epic Games.
Une référence : quel acteur précisément ?
Une dalle au sol veut lancer l’événement OpenDoor sur une porte. Mais quelle porte ? Il y en a peut-être dix dans le niveau. Une référence est une variable qui montre un acteur précis du doigt. Elle ne contient pas l’acteur : elle dit lequel.
Tu en as déjà utilisé : Other Actor et Get Player Character sont des références. Pour agir sur un autre acteur, branche une référence vers lui dans le Target du nœud.
Créer une variable de référence
En gros, tu crées dans le Blueprint de la dalle une variable du type de ta porte (par exemple BP_Door, en Object Reference), tu la rends Instance Editable, puis tu choisis la porte dans le niveau. Enfin, tu branches la variable dans le Target de l’appel à OpenDoor.
Le pas à pas complet, avec les captures de l’éditeur, des quiz et un mini-projet, est dans le chapitre « Performance : un jeu fluide » du cours.
Si tu oublies de choisir la porte dans le niveau, la variable reste vide (None) : le nœud ne trouve personne et Unreal signale une erreur. Le type dit seulement « une porte ». C’est dans le niveau que tu dis laquelle.
Trouver un acteur par sa classe
- Get Actor Of Class cherche un acteur d’une classe et rend le premier trouvé. S’il y a 3 portes, tu n’en reçois qu’une.
- Get All Actors Of Class les rend tous, dans un tableau.
Ces nœuds fouillent tout le niveau, donc ils sont lents. Appelle-les une fois, au BeginPlay, et garde le résultat dans une variable, pas dans Event Tick.
Référence dure : tout se charge ensemble
Un asset est un fichier du projet : Blueprint, mesh, texture, son. Une variable de type BP_Door est une référence dure : quand le Blueprint qui la contient est chargé en mémoire, BP_Door l’est aussi, avec ses meshes et ses sons. Des centaines de références dures vers de gros Blueprints font gonfler la mémoire.
Cast To : un lien de plus
Un nœud Cast To BP_Boss nomme la classe BP_Boss, comme une variable de ce type : ton Blueprint en dépend. On appelle ça une dépendance. Le vrai coût du Cast, c’est ce qu’il entraîne. Si ton personnage fait un Cast To BP_Boss, charger le personnage charge aussi le boss, avec son gros mesh, ses textures et ses sons, même au niveau 1 où il n’y a pas de boss.
Voir les dépendances et le poids
- Reference Viewer : des flèches relient les assets dans les deux sens, ce qu’il utilise et ce qui l’utilise.
- Size Map : des rectangles montrent le poids de l’asset et de tout ce qu’il entraîne. Plus le rectangle est grand, plus ça pèse.
Charger seulement quand il faut
Plusieurs solutions évitent de tout charger d’un coup.
- Une Blueprint Interface : un message comme OnHit parle à n’importe quel acteur, sans Cast. Ton Blueprint ne dépend alors que de l’interface, une petite liste de noms, pas des classes entières.
- Une référence douce (Soft Object Reference) : elle garde seulement le chemin de l’asset, son adresse dans le projet. L’asset n’est chargé que quand tu le demandes. C’est parfait pour un gros asset rarement utilisé, comme le mesh d’un boss.
- Async Load Asset : il charge une référence douce en arrière-plan, sans figer le jeu, et te donne l’asset quand c’est prêt.
Questions fréquentes
Comment appeler une fonction d’un autre acteur ?
Il te faut une référence vers cet acteur, branchée dans le Target du nœud. Tu peux la créer avec une variable Instance Editable que tu remplis dans le niveau, ou la trouver avec Get Actor Of Class.
Quelle différence entre référence dure et référence douce ?
Avec une référence dure, charger l’un charge aussi l’autre. Une référence douce garde seulement le chemin de l’asset, qui n’est chargé que quand tu le demandes.
Pourquoi mon jeu est-il long à se lancer avec beaucoup de Cast To ?
Chaque Cast To vers un gros Blueprint charge aussi cette classe, avec ses meshes, textures et sons. Avec 15 Casts vers de gros Blueprints de boss, tous sont chargés avec le personnage.
Sources officielles
- Direct Actor Communication Quick Start Guide (documentation Epic)
- GameplayStatics (documentation Epic)
- Referencing Assets (documentation Epic)
- Reference Viewer (documentation Epic)
- Asynchronous Asset Loading (documentation Epic)
- Blueprint Communication Usage (documentation Epic)
- Async Load Asset (documentation Epic)
À lire aussi : Blueprint Interface et Event Dispatcher, optimiser un jeu avec stat unit et les collisions Block, Overlap et Ignore.
Tu veux t’entraîner à faire communiquer des acteurs sans alourdir ton jeu ? Le cours propose des leçons courtes, des quiz et des mini-projets, à ton rythme.
Apprendre Unreal Engine 5 gratuitement