HandleidingenStappenplan8 min leestijd

Een personage automatisch riggen in Unreal Engine 5: Van static mesh naar geanimeerde skeletal mesh

Klik met rechts op een mesh, kies Rig with AFK AI, en een minuut later staat er in dezelfde map een skeletal mesh met zijn skelet, physics asset en animaties.

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
  • …
Nagetekend, geen screenshot: Rig with AFK AI in het rechtsklikmenu van een mesh, en de skeletal mesh, het skeleton, de physics asset en de animaties die de plug-in naast het origineel zet.

Unreal Engine kan een personage prachtig animeren, maar riggen doet het niet voor je. Een static mesh uit een sculptprogramma of een marketplace-pack heeft geen skelet en geen skin weights, dus de gebruikelijke route is een omweg: exporteren, riggen in Blender of Mixamo, terug importeren als skeletal mesh en dan animaties zoeken die passen.

De AFK AI-plugin slaat die omweg over. Klik met rechts op de mesh in de Content Browser en kies Rig with AFK AI. Ongeveer een minuut later staat er een skeletal mesh met de naam Hero_rigged in dezelfde map, met zijn skelet, zijn physics asset en zijn animaties, klaar voor een Animation Blueprint. Er valt geen C++ te compileren, dus het werkt ook in projecten met alleen Blueprints.

Wat je nodig hebt

Unreal Engine
5.1 of nieuwer, op Windows, Mac of Linux. Projecten met alleen Blueprints zijn prima.
Je mesh
Een static of skeletal mesh, geïmporteerd uit een .fbx-, .glb- of .gltf-bestand tot 50 MB. AFK AI krijgt dat originele bestand.
Een afk.ai-account
Gratis, met Google. Elke rig kost een van de rigs van je account voor die maand, net als op afk.ai/rig.
Internet
Het riggen gebeurt op de servers van afk.ai.

De plugin installeren

  1. Download de plugin van de Unreal Engine-pluginpagina en pak hem uit. Je krijgt een map met de naam AFKAI.
  2. Zet die in de Plugins-map van je project, naast het .uproject-bestand: MyGame/Plugins/AFKAI/AFKAI.uplugin. Maak de Plugins-map aan als die er nog niet is.
  3. Open het project, of start het opnieuw. De plugin zet twee plugins aan die bij Unreal horen: Python Editor Script Plugin en Editor Scripting Utilities. Vraagt Unreal om opnieuw te starten, zeg dan ja.

Er verschijnt een AFK AI-menu in de menubalk van de editor. Wil je het in elk project hebben, zet de map dan in Engine/Plugins/Marketplace/AFKAI in je Unreal-installatie en zet de plugin per project aan via Edit > Plugins.

Inloggen en riggen

  1. Kies AFK AI > Sign in.... Je browser opent afk.ai; log in met Google en ga terug naar Unreal. Het AFK AI-menu toont nu je e-mailadres en hoeveel rigs je deze maand nog hebt.
  2. Klik in de Content Browser met rechts op de mesh en kies Rig with AFK AI. (Of selecteer hem en kies AFK AI > Rig the selected mesh....)
  3. Een klein venster vraagt naar het Body type (Human, of het dier of wezen dat het is), de Animations (All animations, of Rig only voor alleen het skelet) en Facing (laat dat op Auto staan). In de titel staat dat het een van je rigs kost. Klik op OK.
  4. Werk gewoon door. Het AFK AI-menu toont de voortgang, en de Output Log ook, op regels die beginnen met ‘AFK AI’.

Komt de browser niet terug bij Unreal (door een firewall, of omdat Unreal op een andere computer draait), dan toont de pagina van afk.ai een inlogcode. Kies AFK AI > I have a sign-in code..., plak de code en klik op OK.

Wat je krijgt

  • Skeletal Mesh: Hero_rigged, in dezelfde map als het origineel, al voor je geselecteerd. De originele mesh blijft onaangeroerd.
  • Skeleton: gemaakt voor het lichaamstype. Een mens krijgt 66 bones met drie gewrichten in elke vinger, genoemd naar de bones van Unreals eigen mannequin: pelvis, spine_01, clavicle_l, upperarm_l, thigh_l enzovoort.
  • Physics Asset: wordt bij het importeren gemaakt, voor ragdolls en collision.
  • Animaties: één Animation Sequence per animatie. Voor een humanoïde tot 593: idles, wandel-, jog- en sprintanimaties, sprongen, ontwijkingen, bewegingen met zwaard, schild, boog en pistool, dansjes, hitreacties en doodsanimaties. Met een gratis account krijg je de gratis animaties, en een pakket voegt de rest toe.
  • De FBX: Hero_rigged.fbx, opgeslagen naast het originele bronbestand, of in de map Saved/AFK AI van je project als daar niet geschreven kan worden. Rig je opnieuw, dan krijg je Hero_rigged_2: er wordt niets overschreven.

Zoals bij elke import staan de nieuwe assets pas op schijf als jij ze opslaat: File > Save All.

Het animepersonage in een T-pose met de joints die afk.ai plaatste als stippen, tot en met de vingers
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 ... (rechts hetzelfde)    └ thigh_l      └ calf_l        └ foot_l          └ ball_l    └ thigh_r ... (rechts hetzelfde)
Het humanoïde skelet dat elke rig van afk.ai krijgt: 66 botten, met drie joints in elke vinger en de duim, genoemd zoals de mannequin van Unreal Engine ze noemt.

Zie het bewegen, zonder code

Sleep Hero_rigged het level in. Zet in het Details-paneel onder Animation de Animation Mode op Use Animation Asset, kies een animatie bij Anim to Play (bijvoorbeeld Walk) en laat Looping aan staan. Druk op Play, of kijk gewoon in de viewport.

Wil je snel alle animaties bekijken, dubbelklik dan op een van de Animation Sequences: de animatie-editor opent en speelt hem af op het personage.

Een Animation Blueprint voor een spelerpersonage

De klassieke opzet: idle bij stilstand, dan walk, en jog naarmate het personage sneller gaat.

  1. Klik met rechts op Hero_rigged en kies Create > Anim Blueprint. Noem hem ABP_Hero.
  2. Voeg in zijn Event Graph een float-variabele toe met de naam Speed. Roep vanuit Event Blueprint Update Animation Try Get Pawn Owner aan, controleer het resultaat met Is Valid, neem dan Get Velocity en daarna Vector Length XY, en zet Speed op die waarde.
  3. Klik in de AnimGraph met rechts, kies Add New State Machine, noem hem Locomotion en verbind hem met Output Pose.
  4. Maak daarbinnen drie states, Idle, Walk en Jog, en sleep de animaties Idle_A, Walk en Jog vanuit de Asset Browser elk in hun eigen state, verbonden met de Output Animation Pose.
  5. Trek transitions in beide richtingen tussen de states, met regels op Speed in centimeters per seconde: van Idle naar Walk als Speed > 10, van Walk naar Jog als Speed > 300, en weer terug als de snelheid daaronder zakt.
  6. Selecteer in je Character Blueprint de component Mesh, zet Skeletal Mesh Asset op Hero_rigged en Anim Class op ABP_Hero. Schuif hem omlaag naar de onderkant van de capsule en draai hem zo dat hij in de richting van de blauwe pijl kijkt, net als de mannequin van de template.

Liever beginnen vanuit C++? Hetzelfde idee, zo klein mogelijk: speel één animatie in een loop af zodra het spel start.

// 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
Getekend: de state machine Locomotion. Elke state speelt één animatie af, en Speed, in centimeters per seconde, schakelt ertussen.

Root motion, met een beetje Python

Sommige animaties bewegen het personage zelf vooruit: hun naam eindigt op _RM, zoals Roll_RM, Dodge_left_RM of Sword_Dash_RM. De rest speelt op de plek af. In Unreal moet root motion per animatie aan, en de plugin heeft Python in Unreal al aangezet, dus met een paar regels zet je het bij allemaal tegelijk aan. Plak dit in de opdrachtregel van de Output Log, nadat je die van Cmd op Python hebt gezet:

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())

Zet daarna in de Class Defaults van ABP_Hero de Root Motion Mode op Root Motion from Everything als je ze in de state machine afspeelt, of speel ze af als montages.

Retargeting van en naar de UE5-mannequin

De bones van het skelet zijn genoemd naar die van de mannequin, dus de retargeter van Unreal koppelt ze met weinig of geen hulp. Dat werkt in beide richtingen: de animaties van de Third Person-template op jouw personage, of de animaties van afk.ai op Manny en Quinn.

In Unreal 5.4 en nieuwer:

  1. Klik met rechts op een animatie, bijvoorbeeld een van de template, en kies Retarget Animations (Retarget Animation Assets in de nieuwste versies).
  2. Zet de Target Preview Mesh op Hero_rigged. De bron is de mesh waar de animatie bij hoorde.
  3. Laat Auto Generate Retargeter aan staan: Unreal maakt de IK Rigs en de IK Retargeter zelf.
  4. Vink de animaties aan die je wilt, klik op Export Animations, kies een map en klik op Export.

Wissel bron en doel om de animaties van Hero_rigged op de mannequin te zetten. In 5.1 tot 5.3 maak je een IK Rig voor elk skelet en een IK Retargeter daartussen, en gebruik je daarna Export Selected Animations in de retargeter. Hoe je het ook doet: speel een paar resultaten af voordat je erop bouwt, vooral de handen.

Wezens en props

Met dezelfde rechtermuisklik rig je een draak, een paard, een dinosaurus, een spin of een haai: kies het lichaamstype in het optievenster. Elk krijgt een skelet dat voor zijn lichaam is gemaakt en animaties die voor dat skelet zijn gemaakt, zoals fladderen, galopperen, brullen of zwemmen. Voor de dieren in een openwereldgame heb je dus geen rigger nodig. Props krijgen het type Object: stuiteren, draaien, wiebelen en samendrukken, voor pickups en deuren. De handleiding voor dieren zet elk lichaamstype en zijn animaties op een rij.

  • Draak
  • Viervoeter
  • Hoefdier
  • Dinosaurus
  • Spin
  • Vis
Zes van de andere lichaamstypes, gerigd op afk.ai/rig en met hun eigen animaties.

Wat telt als rig

Elke rig die AFK AI bereikt, kost een van de rigs van deze maand, net als op afk.ai/rig en in de andere AFK AI-plugins. Stop waiting laat alleen Unreal stoppen met wachten: de rig gaat door en telt nog steeds. Een mislukte rig telt niet, en de melding zegt waarom. Het AFK AI-menu toont hoeveel rigs je nog hebt; zijn ze op, dan opent See plans de pakketten van afk.ai.

Als er iets misgaat

Geen AFK AI-menu
Controleer in Edit > Plugins of AFK AI en Python Editor Script Plugin aan staan, en start opnieuw. Is er iets anders mis, dan meldt de Output Log ‘AFK AI couldn't start’, met de reden.
‘has no source file recorded’
Of ‘was imported from a .obj file’: AFK AI heeft het originele .fbx-, .glb- of .gltf-bestand nodig. Exporteer het model in een van die formaten, importeer het en rig dat.
‘Couldn't find Hero's source file’
Het bestand is na het importeren verplaatst. Klik met rechts op de mesh, kies Reimport With New File, kies het bestand op zijn nieuwe plek en rig opnieuw.
‘Unreal didn't import it as a skeletal mesh’
De rig is gelukt en de FBX staat waar de melding zegt. Sleep hem de Content Browser in en importeer hem als Skeletal Mesh met zijn animaties. Dit kan gebeuren met de nieuwere importer in Unreal 5.5 en later.
‘Couldn't make a secure connection to AFK AI’
Er zit een proxy, virusscanner of bedrijfsfirewall in de weg. Probeer een ander netwerk.
De rig is mislukt
Lees de melding. Meestal helpt een ander lichaamstype, of een model dat rechtop staat en naar voren kijkt.

Veelgestelde vragen

Kan Unreal Engine 5 zelf een personage automatisch riggen?

Niet vanuit een static mesh. Unreal kan animaties retargeten tussen skeletten die al bestaan, en heeft tools om skeletten met de hand te bouwen en te bewerken, maar niets wat een mesh voor je rigt. Dat deel doet de AFK AI-plugin: die maakt van de static mesh een skeletal mesh met skin weights en animaties, en daarna neemt Unreal het over.

Heb ik C++ of Visual Studio nodig?

Nee. De plugin is Python die Unreal zelf uitvoert, zonder iets te compileren, dus hij werkt in projecten met alleen Blueprints. De C++ hierboven is alleen voor projecten die het al gebruiken.

In welke versies van Unreal Engine werkt het?

Unreal Engine 5.1 en nieuwer, op Windows, Mac en Linux.

Kan ik een model riggen dat ik uit een .obj heb geïmporteerd?

Niet direct: de plugin stuurt het originele bronbestand van de mesh, en dat moet een .fbx, .glb of .gltf zijn. Exporteer het model vanuit je 3D-programma naar een van die formaten, importeer dat en rig het.

Werkt het met de animaties van de UE5-mannequin?

Ja. De bones zijn genoemd naar die van de mannequin, dus de retargeter koppelt ze met weinig of geen instellingen, in beide richtingen. Zie ‘Retargeting van en naar de UE5-mannequin’ hierboven.

Mag ik het gerigde personage gebruiken in een game die ik verkoop?

Ja. De skeletten en animaties zijn CC0, en je model blijft van jou.

Waar staat het gerigde bestand, als ik het in een andere app wil gebruiken?

Hero_rigged.fbx staat naast het originele bronbestand, of in de map Saved/AFK AI van je project. Het opent in Blender, Maya en elke app die FBX leest, animaties inbegrepen.

Is er ook een plugin voor Unity of Blender?

Ja. Zie de handleidingen voor Unity en Blender, en het overzicht van alle AFK AI-plugins voor alle negen apps.

Rig en animeer je model

Een AI rigt het in je browser, waarna je er honderden animaties op afspeelt. Download één GLB voor elke engine.

Model riggen

Meer handleidingen