RehberlerNasıl yapılır6 dk okuma
Godot 4'te bir 3D karakteri rigle ve canlandır: AFK AI eklentisi, AnimationPlayer ve AnimationTree
FileSystem dock'unda bir modele, ardından Rig düğmesine tıkla; yaklaşık bir dakika sonra animasyonlarıyla rigli bir GLB yanında olsun, yürüme ve bekleme animasyonları döngüye ayarlı.
Signed in as you@example.comSign out
3 of 3 rigs left this month.
Model: hero.glb
Body typeHuman
AnimationsAll animations
FacingAuto
RigRigging...Cancel
- hero_riggedNode3D
- └Skeleton3DSkeleton3D
- └HeroMeshInstance3D
- └AnimationPlayerAnimationPlayer
- └Idle_Aloop ⟳
- └Walkloop ⟳
- └Jogloop ⟳
- └Sprintloop ⟳
- └…
Godot animasyon oynatmakta harikadır, ama rig oluşturmanın bir yolu yoktur. Bu yüzden bir karakter genellikle uzun bir tur atar: dışa aktarırsın, Blender'da (ya da yalnızca insansılar için Mixamo'da) riglersin, animasyon bulursun, bir GLB dışa aktarırsın ve içe aktarmadan sonra döngülü her animasyonu yeniden döngüye ayarlarsın.
AFK AI eklentisi bu turu Godot editöründeki bir dock'tan yapar. FileSystem dock'unda modeline, ardından Rig düğmesine tıkla. Yaklaşık bir dakika sonra hero.glb dosyasının yanına hero_rigged.glb kaydedilir: gövdesine göre yapılmış bir iskelet, kemik ağırlıkları ve bir AnimationPlayer içinde animasyonlarıyla. Bekleme, yürüme ve koşu animasyonları zaten döngüye ayarlıdır.
Neye ihtiyacın var
- Godot
- 4.2 ya da sonrası, standart sürüm ya da .NET sürümü.
- Modelin
- Projende en fazla 50 MB'lık bir
.glb,.gltfya da.fbx. Bir.gltfdosyasının her şeyi tek dosyada barındırması gerekir; seninkinin yanında bir.binvarsa onun yerine bir.glbdışa aktar. - Bir afk.ai hesabı
- Ücretsiz, Google ile. Her rigleme, afk.ai/rig üzerinde olduğu gibi hesabının o ayki rigleme haklarından birini kullanır.
- İnternet
- Rigleme afk.ai'nin sunucularında yapılır. Yalnızca seçtiğin model dosyası gönderilir.
Eklentiyi kur
- Eklentiyi Godot eklentisi sayfasından indir.
- İçindeki
addons/afk_aiklasörünü projeninaddonsklasörüne kopyala. Projendeaddonsklasörü yoksa oluştur. - Project > Project Settings > Plugins bölümünü aç ve AFK AI'ın yanındaki Enable kutusunu işaretle.
Sağda, Inspector'ın yanında bir AFK AI dock'u belirir.
Bir modeli rigle
- Giriş yap. AFK AI dock'unda Sign in düğmesine tıkla. Tarayıcında afk.ai açılır; orada Google ile giriş yap. Dock e-posta adresini ve bu ay kaç rigleme hakkın kaldığını gösterir. Tarayıcı Godot'ya geri dönemezse onun yerine bir giriş kodu gösterir: kodu I have a sign-in code altına yapıştır ve Use düğmesine tıkla.
- Modeli seç. FileSystem dock'unda modelin dosyasına tıkla.
- Seçenekleri belirle. Body type: insanlar ve iki ayak üstünde duran her şey için Human, değilse hangi hayvan ya da yaratıksa o. Animations: All animations ya da yalnızca iskelet için Rig only. Facing: Auto olarak bırak.
- Rig düğmesine tıkla. Dock neler olduğunu gösterir: yükleme, bekleme, rigleme, indirme. Bu sırada çalışmaya devam et.
İşlem bittiğinde hero_rigged.glb, hero.glb dosyasının yanına kaydedilir, içe aktarılır ve seçilir. Orijinale dokunulmaz. Aynı modeli yeniden riglersen hero_rigged_2.glb elde edersin; yani hiçbir şeyin üzerine yazılmaz.
Rigli GLB'nin içinde neler var
Kullanmak için hero_rigged.glb dosyasını bir sahneye sürükle: altında her şeyin bulunduğu tek bir node olarak gelir.
- Skeleton3D
- Gövde tipine göre yapılmış bir iskelet; mesh'in ona bağlanmış (skin) haldedir. Bir insan, tüm parmaklar dahil 66 kemik alır; kemiklerin adları pelvis, spine_01, hand_r, foot_l gibidir.
- AnimationPlayer
- Her animasyon, kendi adıyla. Bir insansı için en fazla 593 animasyon: Idle_A, Walk, Jog, Sprint, Jump_Start, Sword_Attack, Dance_Groove ve yüzlercesi daha. Ücretsiz hesap ücretsiz animasyonları alır, bir plan ise geri kalanını ekler.
- Döngüler
- Bekleme, yürüme, koşu, uçma ve yüzme animasyonları zaten döngüdedir. Eklenti bunu, Godot dosyayı içe aktarmadan önce dosyanın içe aktarma ayarlarına yazar.
- Yön
- GlTF modellerinde olduğu gibi karakter +Z yönüne bakar.
Animasyonları AnimationPlayer ile oynat
En basit oyuncu karakteri: bir CollisionShape3D (kapsül) içeren bir CharacterBody3D ve onun altına sürüklenip adı Hero olarak değiştirilmiş rigli model. Bu betiği CharacterBody3D'ye ekle:
extends CharacterBody3D
const SPEED := 4.0
var gravity: float = ProjectSettings.get_setting("physics/3d/default_gravity")
@onready var hero: Node3D = $Hero
@onready var anim: AnimationPlayer = $Hero/AnimationPlayer
func _physics_process(delta: float) -> void:
var input := Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
var direction := Vector3(input.x, 0.0, input.y)
velocity.x = direction.x * SPEED
velocity.z = direction.z * SPEED
if not is_on_floor():
velocity.y -= gravity * delta
move_and_slide()
if direction.length() > 0.1:
# the model faces +Z: turn that toward where it's going
hero.rotation.y = lerp_angle(hero.rotation.y, atan2(direction.x, direction.z), 10.0 * delta)
anim.play("Jog", 0.2) # 0.2 s blend from whatever was playing
else:
anim.play("Idle_A", 0.2)Çalıştır: ok tuşları karakteri hafif koşuyla dolaştırır, tuşu bıraktığında yumuşakça bekleme animasyonuna döner. play çağrısı zaten oynayan animasyonla yapılırsa animasyon kaldığı yerden devam eder; bu yüzden onu her karede çağırmak sorun değildir.
Animasyonları AnimationTree ile karıştır
Bir AnimationTree, animasyonlar arasında hıza göre karışım yapar ve saldırı gibi tek seferlik hareketleri yönetir. Editörde bir kez kur:
- Karaktere bir AnimationTree node'u ekle. Inspector'da Anim Player ayarını
Hero/AnimationPlayer, Tree Root ayarını yeni bir AnimationNodeStateMachine yap. - Alttaki AnimationTree panelinde sağ tıkla ve bir BlendSpace1D ekle. Adını
Locomotionkoy, aç ve üç nokta ekle: 0'da Idle_A, 1,5'te Walk ve 4'te Jog (Max Space değerini 4 yap). - Yeniden sağ tıkla ve Sword_Attack animasyonunu ekle. Start'ı Locomotion'a, Locomotion'ı Sword_Attack'e bağla; Sword_Attack'ten Locomotion'a da Switch Mode değeri At End, Advance Mode değeri Auto olan bir bağlantı çiz.
- Project > Project Settings > Input Map içinde
attackadlı bir action ekle ve ona bir tuş ata.
Sonra aynı betikte iki anim.play satırını kaldır ve bunun yerine ağacı yönet:
@onready var tree: AnimationTree = $AnimationTree
@onready var playback: AnimationNodeStateMachinePlayback = tree.get("parameters/playback")
func _process(_delta: float) -> void:
tree.set("parameters/Locomotion/blend_position", Vector2(velocity.x, velocity.z).length())
if Input.is_action_just_pressed("attack"):
playback.travel("Sword_Attack")
AnimationTree etkinken animasyonları o oynatır; bu yüzden AnimationPlayer'ın play metodunu ayrıca çağırma.
Kılıç tut, döngüyü değiştir
Karakterin eline bir şey vermek için Skeleton3D node'unu seç, altına bir BoneAttachment3D ekle, Bone Name değerini hand_r yap ve kılıcı bu attachment'ın altına koy. Kılıç her animasyonda eli takip eder.
Hangi animasyonların döngüde olacağını değiştirmek için FileSystem dock'unda hero_rigged.glb dosyasına çift tıklayıp Advanced Import Settings penceresini aç. Soldaki AnimationPlayer altından animasyonu seç, Loop Mode ayarını değiştir ve Reimport düğmesine tıkla.
Hayvanlar, yaratıklar ve objeler
Rig düğmesine tıklamadan önce dock'ta gövde tipini seç: köpekler, kediler ve kurtlar için Fox, toynaklı her şey için Horse; Bird, Dragon, dinozorlar için Kaiju, Spider, Insect, Snake, Fish, Kangaroo, Frog, Turtle, Ghost ya da objeler için Object. Her biri kendi gövdesine göre yapılmış bir iskelet ve ona göre yapılmış animasyonlar alır: dörtnala koşma, kanat çırpma, kükreme, yüzme, sürünme. Hepsi aynı şekilde, aynı AnimationPlayer ve AnimationTree ile oynar. Aynı gövde tipiyle riglenen her model aynı kemik ve animasyon adlarına sahiptir; yani bir kurdun AnimationTree'si her kurt için çalışır. Hayvan rehberi her tipin animasyonlarını listeler.
- Ejderha
- Dört ayaklı
- Toynaklı
- Dinozor
- Örümcek
- Balık
Ne rigleme sayılır
AFK AI'a ulaşan her rigleme, afk.ai/rig üzerinde ve diğer AFK AI eklentilerinde olduğu gibi bu ayın rigleme haklarından birini kullanır. Cancel beklemeyi durdurur, riglemeyi değil; rigleme yine sayılır. Başarısız bir rigleme sayılmaz. Rigleme hakların bittiğinde dock bunu söyler ve See plans düğmesini gösterir, bu da afk.ai planlarını açar.
Sorular
Godot'da yerleşik bir otomatik rigleme aracı var mı?
Hayır. Godot zaten var olan iskeletleri ve animasyonları içe aktarır, animasyon aktarımı (retargeting) da bir insansı iskeletini diğerine eşler, ama bir mesh'i riglemez. AFK AI eklentisi bu kısmı yapar ve Godot'ya sıradan bir GLB verir.
Godot 3'te çalışır mı?
Hayır. Godot 4.2 ya da sonrası gerekir. Godot 3 kullanıyorsan modeli afk.ai/rig üzerinde rigle ve indirdiğin GLB'yi içe aktar.
Bir C# projesinde kullanabilir miyim?
Evet. Eklenti GDScript ile yazıldı ve Godot'nun .NET sürümü de GDScript çalıştırır; rigli GLB de her iki durumda aynıdır. C#'ta bir animasyonu GetNode<AnimationPlayer>("Hero/AnimationPlayer").Play("Jog", 0.2); ile oynatabilirsin.
Neden FBX değil de GLB?
GLB, Godot'nun en iyi içe aktardığı formattır: iskelet, kemik ağırlıkları ve her animasyon, her Godot 4 sürümünde olduğu gibi gelir. Orijinal modelin FBX olabilir; geri gelen ise bir GLB'dir.
Eklenti dışa aktarılan oyunuma girer mi?
Oyununun kullandığı şey rigli GLB'dir. Eklentinin kendisi yalnızca editörde iş görür; dosyalarını dışa aktarımın dışında tutmak için export preset'inin Resources sekmesinde addons/afk_ai/* yolunu hariç tut.
Birkaç modeli aynı anda rigleyebilir miyim?
Her seferinde bir tane; her biri yaklaşık bir dakika sürer. Bütün bir klasörü bir betikle riglemek için rigleme API'sini kullan: aynı GLB'yi yazar.
Rigli karakterleri ticari bir oyunda kullanabilir miyim?
Evet. İskeletler ve animasyonlar CC0 lisanslıdır, modelin ise sana ait kalır.
Blender, Unity ya da Unreal için de AFK AI eklentisi var mı?
Evet. Blender, Unity ve Unreal Engine rehberlerine, dokuz uygulamanın hepsi için de tüm AFK AI eklentilerine genel bakışa göz at.
Modelini rigle ve canlandır
Bir yapay zekâ onu tarayıcında rigler, sonra üzerinde yüzlerce animasyon oynar. Her oyun motoru için tek bir GLB indir.
Diğer rehberler
Nasıl yapılır
Blender'da bir karakteri otomatik rigle: ücretsiz AFK AI eklentisi
Modelini seç, Rig düğmesine tıkla; yaklaşık bir dakika sonra animasyonlarıyla birlikte rigli bir kopyası yanında dursun. Blender 4.2 ve sonrasında.
Nasıl yapılır
Unreal Engine 5'te bir karakteri otomatik rigle: static mesh'ten animasyonlu skeletal mesh'e
Bir mesh'e sağ tıkla, Rig with AFK AI'ı seç; bir dakika sonra iskeleti, physics asset'i ve animasyonlarıyla bir skeletal mesh aynı klasörde olsun.
Nasıl yapılır
Unity içinde her 3D modeli otomatik rigle: Humanoid olarak hazır, animasyon klipleriyle birlikte
Project penceresinde bir model seç ve Rig düğmesine tıkla. Bir dakika sonra yanında, Humanoid olarak ayarlanmış ve her animasyonu bir klip olan rigli bir FBX durur.