PoradnikiInstrukcja8 min czytania

Automatyczny rigging postaci w Unreal Engine 5: Od static mesha do animowanego skeletal mesha

Kliknij siatkę prawym przyciskiem, wybierz Rig with AFK AI, a minutę później w tym samym folderze jest skeletal mesh ze szkieletem, physics assetem i animacjami.

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
  • …
Rysunek na podstawie wtyczki, nie zrzut ekranu: Rig with AFK AI w menu kontekstowym siatki oraz skeletal mesh, szkielet, physics asset i animacje, które wtyczka dodaje obok oryginału.

Unreal Engine potrafi pięknie animować postać, ale nie zrobi jej rigu. Static mesh z programu do rzeźbienia albo z paczki z marketplace'u nie ma szkieletu ani wag, więc zwykle trzeba iść okrężną drogą: wyeksportować go, dodać rig w Blenderze albo Mixamo, zaimportować z powrotem jako skeletal mesh, a potem szukać pasujących animacji.

Wtyczka AFK AI pozwala ominąć ten objazd. Kliknij siatkę prawym przyciskiem w Content Browserze i wybierz Rig with AFK AI. Mniej więcej minutę później w tym samym folderze leży skeletal mesh o nazwie Hero_rigged, ze szkieletem, physics assetem i animacjami, gotowy do Animation Blueprintu. Nie ma C++ do kompilowania, więc wtyczka działa też w projektach opartych wyłącznie na Blueprintach.

Czego potrzebujesz

Unreal Engine
5.1 lub nowszy, na Windows, Macu albo Linuksie. Projekty oparte wyłącznie na Blueprintach też są w porządku.
Twoja siatka
Static albo skeletal mesh zaimportowany z pliku .fbx, .glb lub .gltf, do 50 MB. AFK AI dostaje ten oryginalny plik.
Konto afk.ai
Darmowe, przez Google. Każdy rig zużywa jedno z miesięcznych rigowań na koncie, tak samo jak na afk.ai/rig.
Internet
Rigging odbywa się na serwerach afk.ai.

Instalacja wtyczki

  1. Pobierz wtyczkę ze strony wtyczki do Unreal Engine i rozpakuj ją. Dostaniesz folder o nazwie AFKAI.
  2. Włóż go do folderu Plugins projektu, obok pliku .uproject: MyGame/Plugins/AFKAI/AFKAI.uplugin. Jeśli folderu Plugins nie ma, utwórz go.
  3. Otwórz projekt albo uruchom go ponownie. Wtyczka włącza dwie wtyczki dostarczane z Unrealem: Python Editor Script Plugin i Editor Scripting Utilities. Jeśli Unreal poprosi o restart, zgódź się.

Na pasku menu edytora pojawi się menu AFK AI. Żeby zamiast tego mieć wtyczkę w każdym projekcie, włóż folder do Engine/Plugins/Marketplace/AFKAI w instalacji Unreala, a potem włącz ją osobno w każdym projekcie w Edit > Plugins.

Logowanie i rigowanie

  1. Wybierz AFK AI > Sign in.... Przeglądarka otworzy afk.ai; zaloguj się przez Google i wróć do Unreala. Menu AFK AI pokazuje teraz twój e-mail i liczbę rigowań, które zostały ci w tym miesiącu.
  2. W Content Browserze kliknij siatkę prawym przyciskiem i wybierz Rig with AFK AI. (Możesz też ją zaznaczyć i wybrać AFK AI > Rig the selected mesh....)
  3. Małe okno zapyta o Body type (Human albo konkretne zwierzę lub stworzenie), Animations (All animations albo Rig only, jeśli chcesz tylko szkielet) i Facing (zostaw na Auto). Jego tytuł przypomina, że zużywa ono jedno z twoich rigowań. Kliknij OK.
  4. Pracuj dalej. Postęp widać w menu AFK AI i w Output Logu, w wierszach zaczynających się od „AFK AI”.

Jeśli przeglądarka nie może wrócić do Unreala (blokuje ją zapora albo Unreal działa na innym komputerze), strona afk.ai pokaże kod logowania. Wybierz AFK AI > I have a sign-in code..., wklej go i kliknij OK.

Co dostajesz

  • Skeletal Mesh: Hero_rigged, w tym samym folderze co oryginał, od razu zaznaczony. Oryginalna siatka pozostaje nietknięta.
  • Skeleton: przygotowany dla typu budowy. Człowiek dostaje 66 kości z trzema stawami w każdym palcu, nazwanych tak jak kości manekina Unreala: pelvis, spine_01, clavicle_l, upperarm_l, thigh_l i tak dalej.
  • Physics Asset: tworzony podczas importu, do ragdolli i kolizji.
  • Animacje: jedna Animation Sequence na animację. Humanoid dostaje ich nawet 593: idle, chody, trucht, sprinty, skoki, uniki, ruchy z mieczem, tarczą, łukiem i pistoletem, tańce, trafienia i śmierci. Darmowe konto dostaje te darmowe, a plan dodaje resztę.
  • FBX: Hero_rigged.fbx, zapisany obok oryginalnego pliku źródłowego albo w folderze Saved/AFK AI projektu, jeśli tam nie da się zapisać. Kolejny rig da Hero_rigged_2: nic nie zostaje nadpisane.

Jak przy każdym imporcie, nowe assety trafiają na dysk dopiero, gdy je zapiszesz: File > Save All.

Postać anime w T-pozie ze stawami rozmieszczonymi przez afk.ai, pokazanymi jako kropki, aż po palce
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 ... (to samo po prawej)    └ thigh_l      └ calf_l        └ foot_l          └ ball_l    └ thigh_r ... (to samo po prawej)
Humanoidalny szkielet, który dostaje każdy rig z afk.ai: 66 kości, z trzema stawami w każdym palcu i kciuku, nazwanych tak jak w manekinie Unreal Engine.

Ruch bez ani jednej linijki kodu

Przeciągnij Hero_rigged na poziom. W jego panelu Details, w sekcji Animation, ustaw Animation Mode na Use Animation Asset, wybierz animację w Anim to Play (na przykład Walk) i zostaw włączone Looping. Naciśnij Play albo po prostu patrz na viewport.

Żeby szybko sprawdzić wszystkie animacje, kliknij dwukrotnie dowolną Animation Sequence: otworzy się edytor animacji i odtworzy ją na postaci.

Animation Blueprint dla postaci gracza

Klasyczny układ: idle w bezruchu, chód, a potem trucht, gdy postać przyspiesza.

  1. Kliknij Hero_rigged prawym przyciskiem i wybierz Create > Anim Blueprint. Nazwij go ABP_Hero.
  2. W jego Event Graph dodaj zmienną typu float o nazwie Speed. Z Event Blueprint Update Animation wywołaj Try Get Pawn Owner, sprawdź wynik przez Is Valid, potem Get Velocity, następnie Vector Length XY, i przypisz wynik do Speed.
  3. W AnimGraph kliknij prawym przyciskiem i wybierz Add New State Machine, nazwij ją Locomotion i podłącz do Output Pose.
  4. W środku utwórz trzy stany, Idle, Walk i Jog, i przeciągnij do nich z Asset Browsera odpowiednio animacje Idle_A, Walk i Jog, podłączone do Output Animation Pose każdego stanu.
  5. Narysuj przejścia między nimi w obie strony, z regułami opartymi na Speed w centymetrach na sekundę: z Idle do Walk, gdy Speed > 10, z Walk do Jog, gdy Speed > 300, i z powrotem, gdy spadnie poniżej.
  6. W Character Blueprincie zaznacz komponent Mesh, ustaw Skeletal Mesh Asset na Hero_rigged, a Anim Class na ABP_Hero. Przesuń go w dół do podstawy kapsuły i obróć przodem w stronę niebieskiej strzałki, tak jak manekin z szablonu.

Wolisz zacząć od C++? Ta sama idea w najmniejszej wersji: odtwórz jedną zapętloną animację na starcie gry.

// 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
Rysunek: maszyna stanów Locomotion. Każdy stan odtwarza jedną animację, a Speed, w centymetrach na sekundę, przełącza między nimi.

Root motion i trochę Pythona

Niektóre animacje same przesuwają postać do przodu: ich nazwy kończą się na _RM, jak Roll_RM, Dodge_left_RM czy Sword_Dash_RM. Pozostałe odtwarzają się w miejscu. Unreal wymaga włączenia root motion osobno dla każdej animacji, a wtyczka już włączyła Pythona w Unrealu, więc kilka linijek załatwia wszystkie naraz. Wklej to w wiersz poleceń Output Logu, przełączony z Cmd na 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())

Potem w Class Defaults ABP_Hero ustaw Root Motion Mode na Root Motion from Everything, jeśli odtwarzasz je w maszynie stanów, albo odtwarzaj je jako montaże.

Retargeting z manekinem UE5 i na niego

Kości szkieletu mają nazwy jak u manekina, więc retargeter Unreala dopasowuje je niemal albo całkiem bez pomocy. Działa to w obie strony: animacje z szablonu Third Person na twojej postaci albo animacje afk.ai na Mannym i Quinn.

W Unrealu 5.4 i nowszych:

  1. Kliknij animację prawym przyciskiem, na przykład jedną z szablonu, i wybierz Retarget Animations (w najnowszych wersjach Retarget Animation Assets).
  2. Ustaw Target Preview Mesh na Hero_rigged. Źródłem jest siatka, z którą przyszła animacja.
  3. Zostaw włączone Auto Generate Retargeter: Unreal sam utworzy IK Rigi i IK Retargeter.
  4. Zaznacz animacje, które chcesz, kliknij Export Animations, wybierz folder i kliknij Export.

Zamień źródło z celem, żeby przenieść animacje Hero_rigged na manekina. W wersjach od 5.1 do 5.3 utwórz IK Rig dla każdego szkieletu i IK Retargeter między nimi, a potem użyj Export Selected Animations w retargeterze. Tak czy inaczej, obejrzyj kilka wyników, zanim zaczniesz na nich polegać, zwłaszcza dłonie.

Stworzenia i rekwizyty

Tym samym kliknięciem prawym przyciskiem dodasz rig do smoka, konia, dinozaura, pająka albo rekina: wystarczy wybrać typ budowy w oknie opcji. Każdy dostaje szkielet przygotowany dla jego ciała i animacje przygotowane dla tego szkieletu, takie jak machanie skrzydłami, galop, ryk czy pływanie, więc fauna w grze z otwartym światem nie wymaga ręcznego riggingu. Rekwizyty dostają typ Object: podskoki, obroty, chybotanie i zgniatanie dla znajdziek i drzwi. Poradnik o zwierzętach wymienia wszystkie typy budowy i ich animacje.

  • Smok
  • Czworonóg
  • Kopytny
  • Dinozaur
  • Pająk
  • Ryba
Sześć innych typów ciała z rigiem zrobionym na afk.ai/rig, każdy odtwarza własne animacje.

Co liczy się jako rigowanie

Każdy rig, który dotrze do AFK AI, zużywa jedno z rigowań w tym miesiącu, tak samo jak na afk.ai/rig i w innych wtyczkach AFK AI. Stop waiting przerywa tylko czekanie w Unrealu: rigowanie trwa dalej i nadal się liczy. Nieudany rig się nie liczy, a komunikat podaje powód. Menu AFK AI pokazuje, ile rigowań zostało; gdy się skończą, See plans otwiera plany afk.ai.

Gdy coś pójdzie nie tak

Nie ma menu AFK AI
W Edit > Plugins sprawdź, czy AFK AI i Python Editor Script Plugin są włączone, a potem uruchom edytor ponownie. Jeśli problem jest inny, Output Log pokaże „AFK AI couldn't start” z przyczyną.
„has no source file recorded”
Albo „was imported from a .obj file”: AFK AI potrzebuje oryginalnego .fbx, .glb lub .gltf. Wyeksportuj model w jednym z tych formatów, zaimportuj go i dodaj rig do niego.
„Couldn't find Hero's source file”
Plik przeniesiono po imporcie. Kliknij siatkę prawym przyciskiem, wybierz Reimport With New File, wskaż plik w nowym miejscu i zrób rig ponownie.
„Unreal didn't import it as a skeletal mesh”
Rig się udał, a FBX jest zapisany tam, gdzie mówi komunikat. Przeciągnij go do Content Browsera i zaimportuj jako Skeletal Mesh z animacjami. Może się to zdarzyć z nowszym importerem w Unrealu 5.5 i nowszych.
„Couldn't make a secure connection to AFK AI”
Przeszkadza proxy, antywirus albo firmowa zapora. Spróbuj w innej sieci.
Rig się nie udał
Przeczytaj komunikat. Zwykle pomaga inny typ budowy albo model ustawiony prosto i zwrócony przodem.

Pytania

Czy Unreal Engine 5 sam potrafi zrobić automatyczny rig postaci?

Nie ze static mesha. Unreal potrafi przenosić animacje między istniejącymi szkieletami i ma narzędzia do ręcznego budowania i edytowania szkieletów, ale nic, co samo dodałoby rig do siatki. Tę część robi wtyczka AFK AI: zamienia static mesh w skeletal mesh z wagami i animacjami, a dalej przejmuje Unreal.

Czy potrzebuję C++ albo Visual Studio?

Nie. Wtyczka to Python, który Unreal uruchamia sam, bez kompilowania, więc działa w projektach opartych wyłącznie na Blueprintach. Kod C++ powyżej jest tylko dla projektów, które już go używają.

W których wersjach Unreal Engine działa?

W Unreal Engine 5.1 i nowszych, na Windows, Macu i Linuksie.

Czy mogę dodać rig do modelu zaimportowanego z .obj?

Nie bezpośrednio: wtyczka wysyła oryginalny plik źródłowy siatki i przyjmuje .fbx, .glb lub .gltf. Wyeksportuj model do jednego z tych formatów w programie 3D, zaimportuj go i dodaj do niego rig.

Czy zadziała z animacjami manekina UE5?

Tak. Kości mają nazwy jak u manekina, więc retargeter dopasowuje je prawie bez konfiguracji, w obie strony. Zobacz sekcję „Retargeting z manekinem UE5 i na niego” powyżej.

Czy mogę użyć postaci z rigiem w grze, którą sprzedaję?

Tak. Szkielety i animacje są na licencji CC0, a twój model nadal należy do ciebie.

Gdzie jest plik z rigiem, jeśli chcę go użyć w innym programie?

Hero_rigged.fbx jest zapisany obok oryginalnego pliku źródłowego albo w folderze Saved/AFK AI projektu. Otworzysz go w Blenderze, Mayi i każdym programie, który czyta FBX, razem z animacjami.

Czy jest też wtyczka do Unity albo Blendera?

Tak. Zobacz poradniki do Unity i Blendera oraz przegląd wszystkich wtyczek AFK AI, który obejmuje wszystkie dziewięć programów.

Zrób rig i animuj swój model

AI robi jego rig w twojej przeglądarce, a potem odtwarza na nim setki animacji. Pobierz jeden plik GLB do dowolnego silnika.

Zrób rig modelu

Więcej poradników