← Learn Blueprints

Blueprint ou C++ dans Unreal Engine 5 : lequel choisir ?

Tu hésites entre Blueprint et C++ pour ton jeu ? Ce guide te donne les forces de chacun, le moment où passer au C++ et la façon de les faire travailler ensemble. À la fin, tu sauras comment une classe C++ devient visible aux Blueprints et ce qu’est un Blueprint enfant. Tout est vérifié sur la documentation officielle d’Epic Games.

Deux langages, un seul jeu

Un Blueprint est fait de nœuds reliés par des fils. Le C++ fait le même genre de travail, mais en texte. Un projet peut être tout en Blueprint, tout en C++ ou, le plus souvent, un mélange des deux.

Epic distingue deux façons de travailler :

C’est une tendance, pas une règle.

Les forces de chacun

Le Blueprint :

Le C++ :

Souvent, l’écart de vitesse ne se voit même pas. Il se voit surtout avec les grosses boucles, beaucoup de données, ou beaucoup de copies d’une classe qui utilise Tick. Un comportement simple, unique et que tu règles souvent reste un bon cas pour le Blueprint.

Le bon mélange : le C++ en fondation

Le conseil d’Epic : le C++ sert de fondation, et les Blueprints se construisent dessus. Commence en Blueprint. Si le jeu rame, mesure d’abord avec stat unit (Unreal Insights va plus loin). Ensuite, passe en C++ seulement la partie trop lente.

Passer au C++ : les grandes étapes

En C++, le plan d’un objet s’appelle une classe. Un Blueprint est aussi une classe, faite de nœuds. Voici le chemin :

  1. Il te faut un IDE, un éditeur de code. Sous Windows, c’est Visual Studio ; sur Mac, Xcode.
  2. Pas besoin de recommencer ton projet : ta première classe C++ transforme un projet Blueprint en projet de code, et tes Blueprints continuent de marcher.
  3. Tu crées la classe depuis l’éditeur, avec un nom en lettres et chiffres. Unreal génère un .h et un .cpp dans le dossier Source.
  4. Tu marques ce que les Blueprints doivent voir, puis tu crées un Blueprint enfant de ta classe.

Le pas à pas complet, avec les captures de l’éditeur, des quiz et un mini-projet, est dans le chapitre « C++ pour Unreal » du cours.

Rendre une fonction C++ utilisable en Blueprint

UFUNCTION(...), écrit sur la ligne au-dessus d’une fonction dans le .h, la fait connaître à Unreal. C’est le même principe que UPROPERTY pour une variable.

Le Blueprint enfant de ta classe C++

Le Blueprint enfant reçoit tout de sa classe C++ parente : variables, fonctions, Tick. Toi, tu ajoutes en Blueprint la forme, les sons et les réglages. C’est le mélange conseillé par Epic.

Attention : un Blueprint dont le parent est Actor, même renommé comme ta classe, n’hérite pas de ton code. Dans le graphe de l’enfant, tes fonctions BlueprintCallable sont de simples nœuds.

Questions fréquentes

Faut-il apprendre le C++ pour faire un jeu avec Unreal Engine ?

Non. Un projet peut être tout en Blueprint. Les deux langages se combinent, et Epic conseille de commencer en Blueprint.

Mon jeu rame : je réécris tout en C++ ?

Mesure d’abord, avec stat unit ou Unreal Insights, pour trouver le vrai coupable. Ensuite, passe en C++ seulement la partie qui coûte vraiment du temps.

Ma fonction C++ existe, mais aucun Blueprint ne la voit. Pourquoi ?

Il manque sûrement un UFUNCTION(...) sur la ligne au-dessus. Ajoute BlueprintCallable pour que le Blueprint puisse l’appeler.

Sources officielles

À lire aussi : Blueprint, c’est quoi ?, optimiser ton jeu avec stat unit et Event Tick et BeginPlay.

Tu veux commencer par les Blueprints, comme Epic le conseille ? Le cours te guide pas à pas : des leçons courtes, des quiz et des mini-projets, à ton rythme.

Apprendre Unreal Engine 5 gratuitement

Retour à l’accueil de Learn Blueprints