GuidesTuto8 min de lecture

Rigger automatiquement un personnage dans Unreal Engine 5 : D’un static mesh à un skeletal mesh animé

Clic droit sur un mesh, Rig with AFK AI et, une minute plus tard, un skeletal mesh avec son squelette, son physics asset et ses animations se trouve dans le même dossier.

Content Browser › Hero

Hero · Static Mesh

AFK AI

Rig with AFK AI

Edit… · Duplicate · Rename …

Content Browser › /Game/Characters
  • HeroStatic Mesh
  • Hero_riggedSkeletal Mesh
  • Hero_rigged_SkeletonSkeleton
  • Hero_rigged_PhysicsAssetPhysics Asset
  • …_Idle_AAnimation Sequence
  • …_WalkAnimation Sequence
  • …_JogAnimation Sequence
  • …
Dessin d’après le plugin, pas une capture d’écran : Rig with AFK AI dans le menu contextuel d’un mesh, et le skeletal mesh, le squelette, le physics asset et les animations qu’il ajoute à côté de l’original.

Unreal Engine sait animer un personnage à merveille, mais il ne le rigge pas pour vous. Un static mesh issu d’un logiciel de sculpture ou d’un pack du marketplace n’a ni squelette ni poids de skinning : il faut donc faire un détour. L’exporter, le rigger dans Blender ou Mixamo, le réimporter comme skeletal mesh, puis trouver des animations qui lui conviennent.

Le plugin AFK AI vous épargne ce détour. Faites un clic droit sur le mesh dans le Content Browser et choisissez Rig with AFK AI. Environ une minute plus tard, un skeletal mesh nommé Hero_rigged se trouve dans le même dossier avec son squelette, son physics asset et ses animations, prêt pour un Animation Blueprint. Il n’y a pas de C++ à compiler : il fonctionne donc aussi dans les projets 100 % Blueprint.

Ce qu’il vous faut

Unreal Engine
5.1 ou plus récent, sous Windows, Mac ou Linux. Les projets 100 % Blueprint conviennent.
Votre mesh
Un static mesh ou un skeletal mesh importé depuis un fichier .fbx, .glb ou .gltf, jusqu’à 50 Mo. C’est ce fichier d’origine qu’AFK AI reçoit.
Un compte afk.ai
Gratuit, avec Google. Chaque rig est décompté des rigs du mois de votre compte, comme sur afk.ai/rig.
Internet
Le rigging se fait sur les serveurs d’afk.ai.

Installer le plugin

  1. Téléchargez le plugin depuis la page du plugin Unreal Engine et décompressez-le. Vous obtenez un dossier nommé AFKAI.
  2. Placez-le dans le dossier Plugins de votre projet, à côté du fichier .uproject : MyGame/Plugins/AFKAI/AFKAI.uplugin. Créez le dossier Plugins s’il n’existe pas.
  3. Ouvrez le projet, ou redémarrez-le. Le plugin active deux plugins fournis avec Unreal, Python Editor Script Plugin et Editor Scripting Utilities. Si Unreal demande à redémarrer, acceptez.

Un menu AFK AI apparaît dans la barre de menus de l’éditeur. Pour l’avoir plutôt dans tous vos projets, placez le dossier dans Engine/Plugins/Marketplace/AFKAI de votre installation d’Unreal, puis activez-le projet par projet via Edit > Plugins.

Se connecter et rigger

  1. Choisissez AFK AI > Sign in.... Votre navigateur ouvre afk.ai ; connectez-vous avec Google, puis revenez dans Unreal. Le menu AFK AI affiche maintenant votre e-mail et le nombre de rigs qu’il vous reste ce mois-ci.
  2. Dans le Content Browser, faites un clic droit sur le mesh et choisissez Rig with AFK AI. (Ou sélectionnez-le et choisissez AFK AI > Rig the selected mesh....)
  3. Une petite fenêtre demande le Body type (Human, ou l’animal ou la créature dont il s’agit), les Animations (All animations, ou Rig only pour le squelette seul) et le Facing (laissez-le sur Auto). Son titre précise que l’opération consomme un de vos rigs. Cliquez sur OK.
  4. Continuez à travailler. Le menu AFK AI affiche la progression, tout comme l’Output Log, sur les lignes qui commencent par « AFK AI ».

Si le navigateur ne parvient pas à revenir à Unreal (un pare-feu, ou Unreal sur un autre ordinateur), la page afk.ai affiche un code de connexion. Choisissez AFK AI > I have a sign-in code..., collez-le et cliquez sur OK.

Ce que vous obtenez

  • Skeletal Mesh : Hero_rigged, dans le même dossier que l’original, sélectionné pour vous. Le mesh d’origine n’est pas modifié.
  • Skeleton : conçu pour le type de corps. Un humain reçoit 66 os, avec trois articulations par doigt, nommés d’après les os du mannequin d’Unreal : pelvis, spine_01, clavicle_l, upperarm_l, thigh_l, etc.
  • Physics Asset : créé à l’import, pour le ragdoll et les collisions.
  • Animations : une Animation Sequence par animation. Pour un humanoïde, jusqu’à 593 : attentes, marches, trots, sprints, sauts, esquives, mouvements à l’épée, au bouclier, à l’arc et au pistolet, danses, coups encaissés et morts. Un compte gratuit reçoit les animations gratuites, et une formule ajoute toutes les autres.
  • Le FBX : Hero_rigged.fbx, enregistré à côté du fichier source d’origine, ou dans le dossier Saved/AFK AI de votre projet si l’emplacement d’origine n’est pas accessible en écriture. Riggez à nouveau et vous obtenez Hero_rigged_2 : rien n’est écrasé.

Comme pour tout import, les nouveaux assets ne sont écrits sur le disque qu’au moment où vous les enregistrez : File > Save All.

Le personnage de style anime en pose en T, avec les articulations placées par afk.ai représentées par des points, jusqu’au bout des doigts
anime-girl.glb · skeleton
root  └ pelvis    └ spine_01      └ spine_02        └ spine_03          └ neck_01            └ head          └ clavicle_l            └ upperarm_l              └ lowerarm_l                └ hand_l                  └ thumb_01_l  thumb_02_l  thumb_03_l                  └ index_01_l  index_02_l  index_03_l                  └ middle_01_l  middle_02_l  middle_03_l                  └ ring_01_l  ring_02_l  ring_03_l                  └ pinky_01_l  pinky_02_l  pinky_03_l          └ clavicle_r ... (idem à droite)    └ thigh_l      └ calf_l        └ foot_l          └ ball_l    └ thigh_r ... (idem à droite)
Le squelette attribué à chaque rig humanoïde d’afk.ai : 66 os nommés comme ceux du mannequin d’Unreal Engine, avec trois articulations par doigt, pouce compris.

Le voir bouger, sans code

Faites glisser Hero_rigged dans le niveau. Dans son panneau Details, sous Animation, réglez Animation Mode sur Use Animation Asset, choisissez une animation dans Anim to Play (Walk, par exemple) et laissez Looping activé. Appuyez sur Play, ou regardez-le simplement dans le viewport.

Pour passer rapidement toutes les animations en revue, double-cliquez sur n’importe quelle Animation Sequence : l’éditeur d’animation s’ouvre et la joue sur le personnage.

Un Animation Blueprint pour un personnage joueur

La configuration classique : attente à l’arrêt, marche, puis trot à mesure que le personnage accélère.

  1. Faites un clic droit sur Hero_rigged et choisissez Create > Anim Blueprint. Nommez-le ABP_Hero.
  2. Dans son Event Graph, ajoutez une variable float nommée Speed. Depuis Event Blueprint Update Animation, appelez Try Get Pawn Owner, vérifiez-le avec Is Valid, puis Get Velocity, puis Vector Length XY, et affectez le résultat à Speed.
  3. Dans l'AnimGraph, faites un clic droit, choisissez Add New State Machine, nommez-la Locomotion et reliez-la à Output Pose.
  4. À l’intérieur, créez trois états, Idle, Walk et Jog, et faites glisser les animations Idle_A, Walk et Jog depuis l’Asset Browser dans chacun d’eux, en les reliant à son Output Animation Pose.
  5. Tracez des transitions dans les deux sens entre eux, avec des règles sur Speed en centimètres par seconde : d’Idle à Walk quand Speed > 10, de Walk à Jog quand Speed > 300, et dans l’autre sens quand la vitesse redescend en dessous.
  6. Dans votre Character Blueprint, sélectionnez le composant Mesh, réglez Skeletal Mesh Asset sur Hero_rigged et Anim Class sur ABP_Hero. Descendez-le en bas de la capsule et tournez-le face à la flèche bleue, comme le mannequin du template.

Vous préférez partir du C++ ? Le même principe, dans sa forme la plus simple : jouer une animation en boucle au lancement du jeu.

// HeroCharacter.h
UPROPERTY(EditAnywhere, Category = "Animation")
TObjectPtr<UAnimSequence> IdleAnimation;

// HeroCharacter.cpp
#include "Animation/AnimSequence.h"

void AHeroCharacter::BeginPlay()
{
    Super::BeginPlay();
    if (IdleAnimation)
    {
        GetMesh()->PlayAnimation(IdleAnimation, /*bLooping=*/ true);
    }
}
EntryIdle_A↓ Speed > 10↑ Speed < 10Walk↓ Speed > 300↑ Speed < 300Jog
Schéma : la state machine Locomotion. Chaque état joue une animation, et Speed, en centimètres par seconde, fait passer de l’un à l’autre.

Root motion, avec un peu de Python

Certaines animations font avancer le personnage d’elles-mêmes : leur nom se termine par _RM, comme Roll_RM, Dodge_left_RM ou Sword_Dash_RM. Les autres sont jouées sur place. Unreal demande d’activer le root motion animation par animation, et le plugin a déjà activé le Python d’Unreal : quelques lignes suffisent donc à les traiter toutes d’un coup. Collez ceci dans la ligne de commande de l’Output Log, après l’avoir fait passer de Cmd à Python :

import unreal

folder = "/Game/Characters"  # the folder Hero_rigged is in
for path in unreal.EditorAssetLibrary.list_assets(folder, recursive=False):
    anim = unreal.EditorAssetLibrary.load_asset(path)
    if isinstance(anim, unreal.AnimSequence) and anim.get_name().endswith("_RM"):
        anim.set_editor_property("enable_root_motion", True)
        unreal.EditorAssetLibrary.save_loaded_asset(anim)
        unreal.log("Root motion on: " + anim.get_name())

Ensuite, dans les Class Defaults d'ABP_Hero, réglez Root Motion Mode sur Root Motion from Everything si vous les jouez dans la state machine, ou jouez-les sous forme de montages.

Retargeting depuis et vers le mannequin UE5

Les os du squelette portent les noms de ceux du mannequin : le retargeter d’Unreal les fait donc correspondre avec peu ou pas d’aide. Cela fonctionne dans les deux sens : les animations du template Third Person sur votre personnage, ou les animations d’afk.ai sur Manny et Quinn.

Dans Unreal 5.4 et plus récent :

  1. Faites un clic droit sur une animation, par exemple l’une de celles du template, et choisissez Retarget Animations (Retarget Animation Assets dans les versions les plus récentes).
  2. Réglez Target Preview Mesh sur Hero_rigged. La source est le mesh fourni avec l’animation.
  3. Laissez Auto Generate Retargeter activé : Unreal crée lui-même les IK Rigs et l’IK Retargeter.
  4. Cochez les animations voulues, cliquez sur Export Animations, choisissez un dossier et cliquez sur Export.

Inversez la source et la cible pour placer les animations de Hero_rigged sur le mannequin. De la 5.1 à la 5.3, créez un IK Rig pour chaque squelette et un IK Retargeter entre les deux, puis utilisez Export Selected Animations dans le retargeter. Dans tous les cas, lisez quelques résultats avant de compter dessus, surtout pour les mains.

Créatures et props

Le même clic droit rigge un dragon, un cheval, un dinosaure, une araignée ou un requin : choisissez son type de corps dans la fenêtre d’options. Chacun reçoit un squelette conçu pour son corps et des animations conçues pour ce squelette, comme des battements d’ailes, un galop, un rugissement ou de la nage : la faune d’un jeu en monde ouvert se passe donc d’un artiste de rigging. Les props reçoivent le type Object : rebonds, rotations, oscillations et écrasements, pour les objets à ramasser et les portes. Le guide des animaux liste chaque type de corps et ses animations.

  • Dragon
  • Quadrupède
  • À sabots
  • Dinosaure
  • Araignée
  • Poisson
Six modèles de morphologies différentes, riggés sur afk.ai/rig, avec leurs propres animations.

Ce qui compte comme un rig

Chaque rig qui atteint AFK AI consomme un des rigs du mois, comme sur afk.ai/rig et dans les autres plugins AFK AI. Stop waiting ne fait qu’arrêter l’attente dans Unreal : le rig continue et reste décompté. Un rig qui échoue n’est pas décompté, et le message indique pourquoi. Le menu AFK AI affiche le nombre de rigs restants ; quand il n’y en a plus, See plans ouvre les formules d’afk.ai.

En cas de problème

Pas de menu AFK AI
Dans Edit > Plugins, vérifiez que AFK AI et Python Editor Script Plugin sont activés, puis redémarrez. Si le problème vient d’ailleurs, l’Output Log affiche « AFK AI couldn’t start » avec la raison.
« has no source file recorded »
Ou « was imported from a .obj file » : AFK AI a besoin du .fbx, .glb ou .gltf d’origine. Exportez le modèle dans l’un de ces formats, importez-le et riggez ce nouveau mesh.
« Couldn’t find Hero’s source file »
Le fichier a été déplacé après l’import. Faites un clic droit sur le mesh, choisissez Reimport With New File, sélectionnez le fichier à son nouvel emplacement et relancez le rig.
« Unreal didn’t import it as a skeletal mesh »
Le rig a fonctionné, et le FBX est enregistré à l’endroit indiqué par le message. Faites-le glisser dans le Content Browser et importez-le comme Skeletal Mesh avec ses animations. Cela peut arriver avec le nouvel importeur, à partir d’Unreal 5.5.
« Couldn’t make a secure connection to AFK AI »
Un proxy, un antivirus ou le pare-feu de votre entreprise bloque la connexion. Essayez un autre réseau.
Le rig a échoué
Lisez le message. En général, un autre type de corps, ou un modèle debout et tourné vers l’avant, règle le problème.

Questions fréquentes

Unreal Engine 5 peut-il rigger un personnage tout seul ?

Pas un static mesh. Unreal sait faire du retargeting d’animations entre des squelettes qui existent déjà, et il dispose d’outils pour créer et modifier des squelettes à la main, mais rien qui rigge un mesh pour vous. Le plugin AFK AI s’en charge : il transforme le static mesh en skeletal mesh avec poids de skinning et animations, et Unreal prend le relais.

Ai-je besoin de C++ ou de Visual Studio ?

Non. Le plugin est écrit en Python et exécuté par Unreal lui-même, sans rien à compiler : il fonctionne donc dans les projets 100 % Blueprint. Le C++ ci-dessus ne concerne que les projets qui l’utilisent déjà.

Avec quelles versions d’Unreal Engine fonctionne-t-il ?

Unreal Engine 5.1 et plus récent, sous Windows, Mac et Linux.

Puis-je rigger un modèle importé depuis un .obj ?

Pas directement : le plugin envoie le fichier source d’origine du mesh, et il accepte les .fbx, .glb ou .gltf. Exportez le modèle dans l’un de ces formats depuis votre logiciel 3D, importez-le, puis riggez-le.

Fonctionne-t-il avec les animations du mannequin UE5 ?

Oui. Les os portent les noms de ceux du mannequin : le retargeter les fait correspondre avec peu ou pas de configuration, dans les deux sens. Voir « Retargeting depuis et vers le mannequin UE5 » plus haut.

Puis-je utiliser le personnage riggé dans un jeu que je vends ?

Oui. Les squelettes et les animations sont sous licence CC0, et votre modèle reste le vôtre.

Où se trouve le fichier riggé, si je veux l’utiliser dans un autre logiciel ?

Hero_rigged.fbx est enregistré à côté du fichier source d’origine, ou dans le dossier Saved/AFK AI de votre projet. Il s’ouvre dans Blender, Maya et tout logiciel qui lit le FBX, animations comprises.

Existe-t-il aussi un plugin pour Unity ou Blender ?

Oui. Consultez les guides pour Unity et Blender, et la présentation de tous les plugins AFK AI pour les neuf logiciels.

Riggez et animez votre modèle

L’IA le rigge dans votre navigateur. Vous pouvez ensuite jouer des centaines d’animations sur votre modèle. Téléchargez le tout dans un seul GLB, à importer dans le moteur de votre choix.

Rigger un modèle

Autres guides