DamsOLabo

Character Modulaire

Dans Unreal Engine, un asset modulaire est un élément de contenu qui peut être utilisé pour construire des environnements ou des personnages de manière modulaire. Cela signifie que les assets peuvent être combinés et réutilisés pour créer des scènes complexes et des personnages uniques. Dans le domaine de l’animation, l’utilisation d’assets modulaires peut offrir une grande flexibilité et permettre aux artistes de créer des animations complexes en utilisant des éléments préexistants.

Les blueprints, les Structures, les DataTables et les Enumerators sont des outils qui peuvent être utilisés pour créer des assets modulaires dans Unreal Engine. Les blueprints sont des scripts visuels qui permettent aux artistes de créer des comportements complexes sans avoir à écrire de code. Les structures sont des collections de données liées qui peuvent être utilisées pour stocker et organiser les informations nécessaires pour créer des assets modulaires. Les datatables sont des tableaux de données qui peuvent être utilisés pour stocker et organiser les informations nécessaires pour créer des assets modulaires. Les énumérateurs sont des listes de valeurs prédéfinies qui peuvent être utilisées pour définir des options pour les assets modulaires.

En utilisant ces outils, les artistes peuvent créer des assets modulaires complexes et flexibles qui peuvent être facilement réutilisés et combinés pour créer des animations uniques.

 

Pour réaliser cet article je suis parti de la ressources suivante: 

Stylized Character Kit: Casual 01 in Characters – UE Marketplace (unrealengine.com)

Dams

Les References de nos Heros

Voici les références de nos héros que nous allons proposer dans notre asset modulaire.

Bob
Mike
Fonzy
Joey

Les modules que nous allons avoir a notre disposition.

Voici la bank de skeletal Mesh à notre disposition.

Voici la bank de texture.

Voici un échantillon de la bank de materials

Assets

Au cours de cet article nous allons découvrir 4 éléments pour avoir un asset qui proposera 4 configuration de personnage.

Le blueprint, type Actor

La DataTable

La structure

Enumerator

 

Structures

Une structure (struct) est une collection de différentes variables de données qui sont liées entre elles et regroupées pour un accès facile. Les structures peuvent être utilisées pour stocker et organiser des informations complexes de manière claire et concise.

Dans notre exemple, nous aurons plsuieurs structure dont certaine seront utilise par d’autre.
F_Components : 

F_SubComp :

F_Materials : Servira a definir 

Les structures peuvent être créées et utilisées dans des blueprints ou des DataTables pour faciliter la gestion des données complexes.

Data Table

Dans Unreal Engine, une DataTable est un tableau de données qui peut être utilisé pour stocker et organiser des informations complexes de manière claire et concise. Les DataTables sont particulièrement utiles pour gérer des données tabulaires, telles que des listes d’objets avec des propriétés communes. Les DataTables peuvent être créées et éditées dans l’éditeur de Unreal Engine et peuvent être utilisées dans les blueprints pour faciliter la gestion des données complexes.

Nous allons utiliser une DataTable ici qui aura une architecture basée sur la structure que nous avons créé précédement F_Componenss. La DataTable servira à stocker les paramètres de chacune de nos options telles que les type de chest (shirt, jacket), type de hair (short, long) ou encore les couleur jeans.

Example de setup pour les Legs de cet asset

 

Enumerate

Un énumérateur (enumerator) est une liste de valeurs prédéfinies qui peuvent être utilisées pour définir des options pour les variables. Les énumérateurs sont particulièrement utiles pour gérer des ensembles de valeurs discrètes, telles que des types d’objets ou des états de jeu.
Nous allons utiliser un enumerator ici pour definir la liste de choix de notre variante.

 

Blueprint : Actor

Definition du contenu du BP

Un blueprint de type Actor peut être utilisé pour créer un personnage modulaire. Un personnage modulaire est composé de plusieurs SkeletalMesh qui peuvent être échangés pour permettre de personnaliser leur personnage.

Dans notre exemple, nous aurons des sections pour le torse, les jambes, la tête, la barbe, les lunettes, les cheveux et les éditer au besoin pour l’artiste.

Logique Construction Script

Le script de construction (Construction Script) dans Unreal Engine est exécuté lors de la création d’instances d’un blueprint pour effectuer des actions d’initialisation. Le script de construction s’exécute après la liste des composants lorsqu’une instance est créée. Il contient un graphe de nœuds qui est exécuté permettant à l’instance de la classe de blueprint d’effectuer des opérations d’initialisation. Cela peut être extrêmement puissant car des actions telles la définition de SkeltalMesh ou le choix du matériaux, peuvent être utilisées pour obtenir une configuration spécifique de l’acteur. Dans notre exemple, le blueprint d’asset modulaire pourra déterminer quel SkeletalMesh pour le torse et quel couleur.

Creation d’une fonction pour simplifier l’assignation:

 

L’emploi de fonction va permettre d’alleger l’interface pour les artistes.

Decomposition de la fonction

 

Les inputs de la fonction

  • DataTable 
  • RowName 
  • Enumerate Mesh
  • Enumerate Materials
  • Component Mesh 
  • Component

Extraire les donnees de la DataTable:

Pour accéder aux données de la DataTable que nous avons créé précédement il faudra :

Etape 1 : Get Data Table Row, et  spécifier le nom de notre data table.

Etape 2 : Renseigner notre node Get Data Table Row DT_Bobs avec le choix fait par l’artiste, grace à l’information que nous avons stocké dans notre variable Name à l’étape précédente.

Etape 3 : pour accéder au contenu de la data table nous allons avoir besoin de break la sortie Out Raw du node Get Data Table Row DT_Bobs.  Break ceci permettra d’avoir accés a tout les cellules de la dataTable pour le choix fait par rapport aux structures.

Connection du résultat de la DataTable aux SkeletalMesh et Material

Dans cette dernière partie nous allons finir par connecter les informations de la DataTable aux différent SkeletalNesh et Materials pour obtenir les résultats attendus.