PanduanTutorial8 menit baca

Rigging otomatis karakter di Unreal Engine 5: Dari static mesh menjadi skeletal mesh beranimasi

Klik kanan sebuah mesh, pilih Rig with AFK AI, dan semenit kemudian skeletal mesh beserta kerangka, physics asset, dan animasinya ada di folder yang sama.

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
  • …
Ilustrasi berdasarkan plugin, bukan screenshot: Rig with AFK AI di menu klik kanan sebuah mesh, serta skeletal mesh, kerangka, physics asset, dan animasi yang ditambahkannya di samping aslinya.

Unreal Engine bisa menganimasikan karakter dengan sangat bagus, tetapi tidak bisa memasang rig untuk kamu. Static mesh dari aplikasi sculpting atau paket marketplace tidak punya kerangka maupun skin weights, jadi biasanya kamu harus memutar: ekspor, pasang rig di Blender atau Mixamo, impor lagi sebagai skeletal mesh, lalu cari animasi yang cocok.

Plugin AFK AI memangkas jalan memutar itu. Klik kanan mesh di Content Browser lalu pilih Rig with AFK AI. Sekitar satu menit kemudian, skeletal mesh bernama Hero_rigged ada di folder yang sama beserta kerangka, physics asset, dan animasinya, siap untuk Animation Blueprint. Tidak ada C++ yang perlu di-compile, jadi plugin ini juga bisa dipakai di proyek yang hanya memakai Blueprint.

Yang kamu butuhkan

Unreal Engine
5.1 atau yang lebih baru, di Windows, Mac, atau Linux. Proyek yang hanya memakai Blueprint juga bisa.
Mesh kamu
Static mesh atau skeletal mesh yang diimpor dari file .fbx, .glb, atau .gltf, maksimal 50 MB. AFK AI menerima file asli itu.
Akun afk.ai
Gratis, dengan Google. Setiap rig memakai satu jatah rig bulanan akun kamu, sama seperti di afk.ai/rig.
Internet
Rigging berjalan di server afk.ai.

Instal plugin

  1. Download plugin dari halaman plugin Unreal Engine lalu unzip. Kamu akan mendapat folder bernama AFKAI.
  2. Taruh folder itu di folder Plugins proyek kamu, di samping file .uproject: MyGame/Plugins/AFKAI/AFKAI.uplugin. Buat folder Plugins kalau belum ada.
  3. Buka proyeknya, atau restart. Plugin mengaktifkan dua plugin bawaan Unreal, Python Editor Script Plugin dan Editor Scripting Utilities. Kalau Unreal minta restart, setujui saja.

Menu AFK AI muncul di menu bar editor. Supaya tersedia di semua proyek, taruh folder-nya di Engine/Plugins/Marketplace/AFKAI di instalasi Unreal kamu, lalu aktifkan per proyek lewat Edit > Plugins.

Masuk dan pasang rig

  1. Pilih AFK AI > Sign in.... Browser kamu membuka afk.ai; masuk dengan Google, lalu kembali ke Unreal. Menu AFK AI sekarang menampilkan email kamu dan sisa jatah rig kamu bulan ini.
  2. Di Content Browser, klik kanan mesh-nya lalu pilih Rig with AFK AI. (Atau pilih mesh-nya lalu pilih AFK AI > Rig the selected mesh....)
  3. Jendela kecil menanyakan Body type (Human, atau jenis hewan atau makhluknya), Animations (All animations, atau Rig only untuk kerangkanya saja), dan Facing (biarkan di Auto). Judulnya memberi tahu bahwa ini akan memakai satu jatah rig kamu. Klik OK.
  4. Tetap lanjutkan pekerjaan kamu. Menu AFK AI menampilkan progresnya, begitu juga Output Log, di baris yang diawali "AFK AI".

Kalau browser tidak bisa kembali ke Unreal (karena firewall, atau Unreal ada di komputer lain), halaman afk.ai menampilkan kode masuk. Pilih AFK AI > I have a sign-in code..., tempel kodenya, lalu klik OK.

Yang kamu dapatkan

  • Skeletal Mesh: Hero_rigged, di folder yang sama dengan aslinya, langsung terpilih. Mesh aslinya tidak disentuh.
  • Skeleton: dibuat untuk tipe tubuh itu. Manusia mendapat 66 bone dengan tiga joint di setiap jari, dinamai sesuai bone mannequin bawaan Unreal: pelvis, spine_01, clavicle_l, upperarm_l, thigh_l, dan seterusnya.
  • Physics Asset: dibuat saat impor, untuk ragdoll dan collision.
  • Animasi: satu Animation Sequence per animasi. Untuk humanoid, hingga 593: idle, jalan, jog, sprint, lompat, menghindar, gerakan pedang, perisai, busur, dan pistol, tarian, terkena serangan, dan kematian. Akun gratis mendapat animasi yang gratis, dan paket menambahkan sisanya.
  • FBX-nya: Hero_rigged.fbx, disimpan di samping file sumber aslinya, atau di folder Saved/AFK AI proyek kamu kalau lokasi itu tidak bisa ditulisi. Pasang rig lagi dan kamu akan mendapat Hero_rigged_2: tidak ada yang ditimpa.

Seperti impor lainnya, aset baru belum tersimpan ke disk sampai kamu menyimpannya: File > Save All.

Karakter anime dalam T-pose dengan sendi-sendi yang ditempatkan afk.ai ditampilkan sebagai titik, sampai ke jari
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 ... (sama di sisi kanan)    └ thigh_l      └ calf_l        └ foot_l          └ ball_l    └ thigh_r ... (sama di sisi kanan)
Kerangka humanoid yang didapat setiap rig afk.ai: 66 tulang, dengan tiga sendi di setiap jari dan ibu jari, dinamai seperti mannequin Unreal Engine.

Lihat hasilnya bergerak, tanpa kode

Seret Hero_rigged ke level. Di panel Details-nya, di bagian Animation, atur Animation Mode ke Use Animation Asset, pilih animasi di Anim to Play (misalnya Walk), dan biarkan Looping aktif. Tekan Play, atau cukup lihat di viewport.

Untuk mengecek semua animasi dengan cepat, klik dua kali salah satu Animation Sequence: editor animasi terbuka dan memutarnya pada karakter.

Animation Blueprint untuk karakter pemain

Setup klasik: idle saat diam, jalan, lalu jog seiring karakter makin cepat.

  1. Klik kanan Hero_rigged lalu pilih Create > Anim Blueprint. Beri nama ABP_Hero.
  2. Di Event Graph-nya, tambahkan variabel float bernama Speed. Dari Event Blueprint Update Animation, panggil Try Get Pawn Owner, cek dengan Is Valid, lalu Get Velocity, lalu Vector Length XY, dan set Speed ke nilai itu.
  3. Di AnimGraph, klik kanan lalu pilih Add New State Machine, beri nama Locomotion, lalu hubungkan ke Output Pose.
  4. Di dalamnya, buat tiga state, Idle, Walk, dan Jog, lalu seret animasi Idle_A, Walk, dan Jog dari Asset Browser ke masing-masing state, terhubung ke Output Animation Pose-nya.
  5. Buat transition dua arah di antara state-state itu, dengan aturan berdasarkan Speed dalam sentimeter per detik: Idle ke Walk saat Speed > 10, Walk ke Jog saat Speed > 300, dan kembali ke arah sebaliknya saat nilainya turun di bawah itu.
  6. Di Character Blueprint kamu, pilih komponen Mesh, atur Skeletal Mesh Asset ke Hero_rigged dan Anim Class ke ABP_Hero. Turunkan ke dasar kapsul dan putar hingga menghadap panah biru, seperti mannequin di template.

Lebih suka mulai dari C++? Idenya sama, dalam bentuk paling ringkas: putar satu animasi berulang saat game dimulai.

// 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
Ilustrasi: state machine Locomotion. Setiap state memutar satu animasi, dan Speed, dalam sentimeter per detik, menentukan perpindahan di antaranya.

Root motion, dengan sedikit Python

Beberapa animasi menggerakkan karakter maju dengan sendirinya: namanya berakhiran _RM, seperti Roll_RM, Dodge_left_RM, atau Sword_Dash_RM. Sisanya diputar di tempat. Unreal butuh root motion diaktifkan per animasi, dan plugin sudah mengaktifkan Python di Unreal, jadi beberapa baris kode bisa mengaktifkan semuanya sekaligus. Tempel ini di command line Output Log, setelah diganti dari Cmd ke 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())

Lalu, di Class Defaults milik ABP_Hero, atur Root Motion Mode ke Root Motion from Everything kalau kamu memutarnya di state machine, atau putar sebagai montage.

Retarget ke dan dari mannequin UE5

Bone kerangkanya dinamai sesuai bone mannequin, jadi retargeter Unreal bisa mencocokkannya dengan sedikit bantuan atau tanpa bantuan sama sekali. Ini berlaku dua arah: animasi template Third Person di karakter kamu, atau animasi afk.ai di Manny dan Quinn.

Di Unreal 5.4 dan yang lebih baru:

  1. Klik kanan sebuah animasi, misalnya salah satu animasi template, lalu pilih Retarget Animations (Retarget Animation Assets di versi terbaru).
  2. Atur Target Preview Mesh ke Hero_rigged. Sumbernya adalah mesh bawaan animasi itu.
  3. Biarkan Auto Generate Retargeter aktif: Unreal membuat IK Rigs dan IK Retargeter sendiri.
  4. Centang animasi yang kamu mau, klik Export Animations, pilih folder, lalu klik Export.

Tukar sumber dan target untuk memasang animasi Hero_rigged di mannequin. Di 5.1 sampai 5.3, buat IK Rig untuk setiap kerangka dan IK Retargeter di antaranya, lalu pakai Export Selected Animations di retargeter. Cara mana pun yang kamu pakai, putar dulu beberapa hasilnya sebelum mengandalkannya, terutama bagian tangan.

Makhluk dan prop

Klik kanan yang sama juga bisa memasang rig pada naga, kuda, dinosaurus, laba-laba, atau hiu: pilih tipe tubuhnya di jendela opsi. Masing-masing mendapat kerangka yang dibuat untuk tubuhnya dan animasi yang dibuat untuk kerangka itu, seperti mengepakkan sayap, berderap, mengaum, atau berenang, jadi satwa liar di game open world tidak butuh rigger. Prop mendapat tipe Object: memantul, berputar, bergoyang, dan squash untuk pickup dan pintu. Panduan hewan mencantumkan setiap tipe tubuh beserta animasinya.

  • Naga
  • Berkaki empat
  • Berkuku
  • Dinosaurus
  • Laba-laba
  • Ikan
Enam tipe tubuh lainnya, di-rig di afk.ai/rig dan memutar animasinya sendiri.

Apa yang dihitung sebagai rig

Setiap rig yang sampai ke AFK AI memakai satu jatah rig bulan ini, sama seperti di afk.ai/rig dan di plugin AFK AI lainnya. Stop waiting hanya menghentikan Unreal menunggu: proses rig tetap berjalan dan tetap dihitung. Rig yang gagal tidak dihitung, dan pesannya memberi tahu penyebabnya. Menu AFK AI menampilkan sisa jatah rig; kalau sudah habis, See plans membuka paket afk.ai.

Kalau ada masalah

Tidak ada menu AFK AI
Di Edit > Plugins, pastikan AFK AI dan Python Editor Script Plugin aktif, lalu restart. Kalau ada masalah lain, Output Log menampilkan "AFK AI couldn't start" beserta alasannya.
"has no source file recorded"
Atau "was imported from a .obj file": AFK AI butuh file asli .fbx, .glb, atau .gltf. Ekspor model ke salah satu format itu, impor, lalu pasang rig pada hasilnya.
"Couldn't find Hero's source file"
File-nya dipindah setelah diimpor. Klik kanan mesh-nya, pilih Reimport With New File, pilih file itu di lokasinya sekarang, lalu pasang rig lagi.
"Unreal didn't import it as a skeletal mesh"
Rig-nya berhasil, dan FBX-nya tersimpan di lokasi yang disebut pesan itu. Seret ke Content Browser lalu impor sebagai Skeletal Mesh beserta animasinya. Ini bisa terjadi dengan importer baru di Unreal 5.5 dan yang lebih baru.
"Couldn't make a secure connection to AFK AI"
Ada proxy, antivirus, atau firewall kantor yang menghalangi. Coba jaringan lain.
Rig gagal
Baca pesannya. Biasanya masalahnya beres dengan memilih tipe tubuh lain, atau dengan membuat model berdiri tegak dan menghadap ke depan.

Pertanyaan

Bisakah Unreal Engine 5 memasang rig karakter secara otomatis sendiri?

Tidak untuk static mesh. Unreal bisa me-retarget animasi antar kerangka yang sudah ada, dan punya alat untuk membuat dan mengedit kerangka secara manual, tetapi tidak ada yang bisa memasang rig pada mesh untuk kamu. Plugin AFK AI mengerjakan bagian itu: mengubah static mesh menjadi skeletal mesh dengan skin weights dan animasi, lalu Unreal melanjutkan sisanya.

Apakah aku butuh C++ atau Visual Studio?

Tidak. Plugin ini berupa Python yang dijalankan Unreal sendiri, tanpa ada yang perlu di-compile, jadi bisa dipakai di proyek yang hanya memakai Blueprint. Kode C++ di atas hanya untuk proyek yang memang sudah memakai C++.

Plugin ini jalan di Unreal Engine versi berapa?

Unreal Engine 5.1 dan yang lebih baru, di Windows, Mac, dan Linux.

Bisakah aku memasang rig pada model yang diimpor dari .obj?

Tidak secara langsung: plugin mengirim file sumber asli mesh, dan hanya menerima .fbx, .glb, atau .gltf. Ekspor model ke salah satu format itu dari aplikasi 3D kamu, impor, lalu pasang rig.

Apakah bisa dipakai dengan animasi mannequin UE5?

Bisa. Nama bone-nya mengikuti mannequin, jadi retargeter bisa memetakannya dengan sedikit atau tanpa setup, dua arah. Lihat "Retarget ke dan dari mannequin UE5" di atas.

Bisakah karakter yang sudah di-rig dipakai di game yang aku jual?

Bisa. Kerangka dan animasinya berlisensi CC0, dan model kamu tetap milik kamu.

Di mana file hasil rig-nya, kalau aku mau memakainya di aplikasi lain?

Hero_rigged.fbx disimpan di samping file sumber aslinya, atau di folder Saved/AFK AI proyek kamu. File itu bisa dibuka di Blender, Maya, dan aplikasi apa pun yang bisa membaca FBX, lengkap dengan animasinya.

Apakah ada plugin untuk Unity atau Blender juga?

Ada. Lihat panduan untuk Unity dan Blender, serta gambaran lengkap semua plugin AFK AI untuk kesembilan aplikasinya.

Rig dan animasikan model Anda

AI me-rig model Anda di browser, lalu ratusan animasi bisa diputar di model itu. Unduh satu GLB untuk engine apa pun.

Rig model

Panduan lainnya