Vous pouvez utiliser une combinaison de différentes ressources (proxy, table de proxys et tables de sélecteur) pour créer une logique de sélection de ressources dynamiques, afin de piloter les animations en fonction des variables de votre projet. Par exemple, vous pouvez utiliser des ressources de proxy et des ressources de tables de proxys pour sélectionner le type d'animation à charger et à utiliser pour votre personnage, à savoir différents ensembles d'armes. Vous pouvez par ailleurs utiliser les tables de sélecteurs pour sélectionner dynamiquement des ressources d'animation individuelles, par exemple différentes réactions aux coups en fonction de l'endroit où votre personnage est touché, à l'aide des variables contextuelles de votre projet.
Pour en savoir plus sur la configuration d'un système de sélection dynamique d'animations dans l'Unreal Engine, consultez le document suivant.
Bien que cette documentation soit axée sur l'utilisation des sélecteurs et des tables de proxys en vue de sélectionner des ressources liées à l'animation telles que les séquences d'animation, les montages ou les classes AnimInstance, le système proprement dit est générique et vous pouvez l'utiliser pour sélectionner tout type de ressource, d'objet ou de classe.
Conditions préalables
Activez le plug-in Chooser. Accédez à la barre de menus, puis sélectionnez Modifier > Plug-ins et recherchez Sélecteur dans la section Animation . Vous pouvez également utiliser la barre de recherche. Activez le plug-in et redémarrez l'éditeur.
Votre projet contient un ensemble d'animations que vous souhaitez sélectionner de manière dynamique en fonction de la situation contextuelle à l'exécution. Il peut s'agir d'ensembles d'animations cosmétiques uniques, d'animations de jeu telles que des scénarios d'animations contextuelles, ou d'animations utiles pour des objets équipables tels que des armes.
Votre projet contient un blueprint d'animation fonctionnel dans lequel vous pouvez créer une logique de sélection dynamique d'animations.
Configurer un système de sélection d'animations
Vous pouvez apprendre à configurer un système d'animation dans votre projet pour sélectionner dynamiquement la lecture d'une animation de réaction aux coups en fonction du contexte de votre projet à l'exécution.
Créer une ressource de proxy
Une ressource de proxy sert à stocker les informations contextuelles de la ressource Table de proxys active, ainsi que d'autres variables pertinentes.
Pour créer une ressource de proxy, utilisez (+) Ajouter dans le navigateur de contenu et accédez à Divers > Ressource de proxy.
Créez une ressource de proxy pour chaque ensemble d'animations à partir duquel vous souhaitez sélectionner dynamiquement des animations pour animer le personnage, tel qu'un ensemble d'animations d'inactivité, de marche ou de course.
Après avoir créé les ressources de proxy, ouvrez-les pour accéder à leurs paramètres.
Définissez la propriété Type de chaque ressource de proxy sur le type de ressource d'animation que vous utilisez, en l'occurrence AnimSequenceBase.
Définissez la propriété Données contextuelles sur l'option Blueprint d'animation en ajoutant une nouvelle matrice Index avec (+) Ajouter et en sélectionnant l'option Classe de type d'objet de contexte.
Développez les paramètres de la matrice Index et configurez la propriété Classe pour qu'elle utilise votre blueprint d'animation, en l'occurrence, ABP_Manny. Ensuite, vérifiez que la propriété Direction est définie sur Lire.
Configurer le blueprint d'animation
Après avoir configuré votre ressource de proxy, vous devez créer une variable dans le blueprint d'animation de votre personnage afin de stocker la table de proxys active à l'exécution. Pour créer cette variable, ouvrez le blueprint d'animation de vos personnages et créez une nouvelle variable dans le panneau Mon blueprint en utilisant (+) Ajouter. Ensuite, définissez le type de variable sur Référence d'objet de table de proxys. Après avoir créé la variable, enregistrez et compilez votre blueprint d'animation.
La variable Table de proxys est utilisée dans votre graphique d'animation par un nœud Evaluate Proxy afin de déterminer la table de proxys active à l'exécution.
Créer des ressources de table de proxys
Une ressource de table de proxys sert à stocker des ensembles de ressources d'animation, que vous pouvez sélectionner dynamiquement à l'exécution. Par exemple, une table de proxys peut stocker les animations d'inactivité d'un personnage, et une autre stocker son ensemble d'animations de marche ou de course.
Pour créer une ressource de table de proxys, utilisez (+) Ajouter dans le navigateur de contenu et accédez à Divers > Table de proxys.
Créez une ressource de table de proxys pour chaque situation contextuelle qui nécessite un ensemble d'animations différent, comme les ensembles d'animations de déplacement pour des personnages sans armes, ou des personnages tenant un pistolet ou un fusil.
Après avoir créé une ressource de table de proxys, ouvrez-la pour accéder aux valeurs correspondantes.
Dans ProxyTable, ajoutez une entrée pour chaque ressource de proxy en utilisant (+) Ajouter une ligne et en sélectionnant la ressource. Vous pouvez ensuite assigner la ressource d'animation associée depuis l'ensemble en utilisant la colonne de valeur.
Dans l'exemple de flux de travail suivant, une ressource ProxyTable_Unarmed se voit attribuer les animations Unarmed_Idle et Unarmed_Walk aux lignes respectives ProxyAsset_Idle et ProxyAsset_Walk. Ensuite, dans une ressource ProxyTable_Pistol, ces mêmes lignes de ressources de proxy sont attribuées avec des animations Pistol_Idle et Pistol_Walk, respectivement.
La colonne Valeur peut également contenir une référence de classe, une ressource de sélecteur, ou un proxy de recherche pour les systèmes de sélection d'animations plus dynamiques.
Utiliser des tables de proxys à l'exécution
Vous pouvez faire appel à des ressources de table de proxys à l'exécution en utilisant une fonction de nœud d'animation sur un nœud Sequence Player. Pour créer une nouvelle fonction permettant de sélectionner une ressource de table de proxys, sélectionnez le nœud Sequence Player et ajoutez une nouvelle fonction à la liaison À la mise à jour.
Ajoutez un nœud Evaluate Proxy à partir du nœud On Update.
Ensuite, sélectionnez le nœud et choisissez la ressource de proxy dans la propriété Proxy en utilisant le menu déroulant.
Promouvez le résultat en variable et connectez la sortie au nœud Sequence Player.
Vous pouvez ensuite définir la ressource de proxy active sur le nœud Evaluate Proxy en utilisant diverses méthodes, notamment une table de sélecteur, pour modifier dynamiquement l'ensemble d'animation qui pilote le personnage.
Créer une ressource de table de sélecteurs
Une ressource de sélecteur permet de stocker des ensembles de données d'animation comprenant plusieurs itérations d'animations, que vous pouvez sélectionner et lire en fonction du contexte. Par exemple, une table de sélecteurs peut contenir un ensemble d'animations de réaction aux coups, avec pour chaque entrée une animation qui réagit en fonction de la partie du corps qui est touchée (bras, jambes, torse, tête) ; vous pouvez ensuite sélectionner cet ensemble selon une variable de contexte, par exemple l'endroit du corps où est porté le coup.
Pour créer une ressource de table de sélecteurs, utilisez (+) Ajouter dans le navigateur de contenu et accédez à Divers > Table de sélecteurs.
Après avoir créé une table de sélecteurs, vous pouvez ouvrir la ressource pour accéder à ses propriétés.
Créez un nouvel élément de matrice dans la propriété Données contextuelles en utilisant (+) Ajouter, puis définissez la propriété sur l'option Classe de type d'objet de contexte. Développez ensuite la matrice Index et définissez la propriété Classe sur le blueprint d'animation de votre personnage et assurez-vous que la propriété Direction est définie sur Lire. Vous pouvez ensuite définir le paramètre Type d'objet de sortie sur la ressource d'animation que vous utilisez. Dans cet exemple de flux de travail, nous utilisons des séquences d'animation. L'option de classe AnimSequenceBase a donc été sélectionnée.
Dans le panneau Table de sélecteurs, vous pouvez commencer à ajouter des colonnes afin de définir les variables du blueprint d'animation que vous souhaitez utiliser pour influer sur le processus de sélection à l'aide du bouton (+) Ajouter une colonne. Après avoir créé une colonne, vous pouvez définir la variable de votre blueprint d'animation pouvant influer sur la sélection, ainsi que les valeurs ou états de la variable devant être atteints afin de sélectionner la ressource de séquence d'animation dans chaque ligne.
Dans cet exemple de flux de travail, la variable booléenne IsCrouching sélectionne l'animation MM_HangingIdle lorsque la valeur est définie sur false et l'animation MM_Rifle_Walk_Left lorsque la valeur est définie sur true. La variable MoveemntAngle sélectionne l'animation MM_HangingIdle lorsque la valeur est comprise entre -100 et 100, tandis que l'animation MM_Rilfe_Walk_Left n'est sélectionnée que lorsque la valeur est de 0,0.
Pour piloter les animations des personnages à l'aide de ce processus de sélection, vous devez définir votre entrée de table de proxys sur Évaluer le sélecteur et attribuer la ressource Table de sélecteurs.
L'animation sélectionnée change en fonction de la ressource de table de proxys active et de la sélection effectuée par la table de sélecteurs.