RehberlerNasıl yapılır8 dk okuma

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.

Window › AFK AI

AFK AI

Signed in as you@example.comSign out

Model

Hero.fbx

Body typehuman

All animationsRig only

FacingAuto

Adding the animations...

Stop waiting
Project › Assets/Characters
  • Hero.fbx
  • Hero_rigged.fbxHumanoid
  • └Idle_ALoop Time ✓
  • └WalkLoop Time ✓
  • └Jump_Startonce
  • └Sword_Attackonce
  • └…
  • └Hero_riggedAvatarAvatar
Ekran görüntüsü değil, eklentiye bakılarak çizildi: Hero.fbx riglenirken AFK AI penceresi ve ardından Project penceresi; Hero_rigged.fbx Humanoid olarak ayarlı, döngülü klipleri işaretli.

Unity'de bir karakteri hareket ettirmenin olağan yolu Mixamo'dan geçer. Bir FBX dışa aktarır, yükler, çeneye, bileklere, dirseklere ve dizlere işaretçi yerleştirir, her animasyonu tek tek indirirsin; sonra her dosyayı Humanoid yapar ve her klipte Loop Time'ı işaretlersin. Üstelik bu yalnızca insansılar için işe yarar.

AFK AI paketi bunu Unity editörünün içindeki bir pencereden yapar. Project penceresinde modeli seç ve Rig düğmesine tıkla. Yaklaşık bir dakika sonra Hero.fbx dosyasının yanında Hero_rigged.fbx durur: Humanoid olarak ayarlanmış, her animasyonu bir klip, yürüme ve bekleme animasyonları döngüye ayarlı.

Unity'de Mixamo mu, AFK AI mı

Mixamo ücretsiz ve büyük bir insansı animasyon kütüphanesi var. AFK AI ise siteyle editör arasındaki gidip gelmeleri ortadan kaldırır, hayvanları ve objeleri de rigler ve bir insansı için en fazla 593 animasyonu tek dosyada getirir. Ücretsiz hesap ücretsiz animasyonları alır, bir plan ise geri kalanını ekler.

MixamoUnity'de AFK AI
NeredeBir web sitesi: yükle, rigle, indirUnity editöründe bir pencere
Ne yaparsınÇeneye, bileklere, dirseklere, dizlere ve kasığa işaretçi yerleştirirsinBir gövde tipi seçer, Rig düğmesine tıklarsın
GövdelerYalnızca insansılarİnsansılar ve 14 gövde tipi daha
AnimasyonlarTek tek indirilirGövde tipinin tüm animasyonları, tek bir FBX'te
Unity ayarlarıElle: Humanoid, sonra her klipte Loop TimeHazır: Humanoid, her animasyon için bir klip, döngüler açık
GirişBir Adobe hesabıGoogle ile bir afk.ai hesabı

Paketi kur

  1. Paketi Unity eklentisi sayfasından indir: tek bir .tgz dosyası. Unity paketi o dosyadan okuduğu için onu projenin dışında, kalıcı olarak durabileceği bir yerde tut.
  2. Unity'de Window > Package Manager penceresini aç, sol üstteki + düğmesine tıkla ve Add package from tarball... seçeneğini seç.
  3. İndirdiğin .tgz dosyasını seç. Arşivi açma.
  4. Window > AFK AI penceresini aç. Pencereyi istediğin yere yerleştir.

Unity 2021.3 ve sonrasında, Unity 6 dahil, Built-in, URP ve HDRP pipeline'larının hepsinde çalışır: eklenti yalnızca modelin içe aktarımına dokunur. Kodunun tamamı yalnızca editörde çalışır, bu yüzden hiçbir parçası oyununa girmez.

Giriş yap

  1. AFK AI penceresinde Sign in düğmesine tıkla. Tarayıcında afk.ai'nin giriş sayfası açılır; Google ile giriş yap.
  2. Tarayıcı “You're signed in” der. Sekmeyi kapat ve Unity'ye dön: pencere e-posta adresini ve bu ay kaç rigleme hakkın kaldığını gösterir.

Tarayıcı Unity'ye geri dönemezse (bazı güvenlik yazılımları bunu engeller) afk.ai onun yerine bir giriş kodu gösterir. AFK AI penceresinde I have a sign-in code bölümünü aç, kodu yapıştır ve Use code düğmesine tıkla.

Oturum bilgin projede değil, Unity'nin bu bilgisayardaki kullanıcına ait kendi ayarlarında saklanır; bu yüzden projeyi paylaştığında ya da commit ettiğinde paylaşılmaz.

Bir modeli rigle

  1. Project penceresinde modeli seç: en fazla 50 MB'lık bir .fbx, .glb ya da .gltf dosyası. Sahneye yerleştirdiğin bir model de olur: eklenti modelin geldiği dosyayı gönderir. Unity, .glb dosyalarını yalnızca bir glTF içe aktarıcı kuruluysa model olarak gösterir, ama eklenti onları her durumda gönderir.
  2. AFK AI penceresinde Body type ayarını seç: insanlar ve iki ayak üstünde duran her şey için human, değilse hangi hayvan ya da yaratıksa o.
  3. All animations açık kalsın ya da yalnızca iskelet için Rig only seçeneğini seç. Facing ayarını Auto olarak bırak.
  4. Rig düğmesine tıkla. Pencere ilerlemeyi gösterir: yükleme, bekleme, rigleme, animasyonların eklenmesi, indirme. Çalışmaya devam edebilirsin; pencereyi kapatmak işlemi durdurmaz.

İşlem bittiğinde Hero_rigged.fbx, Hero.fbx dosyasının yanına kaydedilir ve Project penceresinde seçili ve vurgulanmış halde durur. Orijinal dosyaya dokunulmaz.

Unity'ye ne gelir

  • Humanoid: bir insan kendi Avatar'ıyla (Hero_riggedAvatar) Humanoid rig olarak gelir; böylece diğer tüm Humanoid karakterlerle iki yönlü animasyon paylaşır. Unity kemikleri parmaklar dahil Humanoid yuvalarına kendisi eşler.
  • Generic: tilkiden ejderhaya kadar diğer tüm gövde tipleri Generic rig olarak gelir.
  • Klipler: her animasyon ayrı bir kliptir ve afk.ai'deki adını taşır: Idle_A, Walk, Jog, Sprint, Jump_Start, Sword_Attack ve diğerleri.
  • Döngüler: adı tekrarlandığını belirten kliplerde (idle, walk, run, fly, swim ve benzerleri) Loop Time açıktır. Jump_Start, Sword_Attack ya da Death_A gibi tek seferlik klipler bir kez oynar.
  • Root motion: adı _RM ile bitenler (Roll_RM, Dodge_left_RM) karakteri kendileri ileri taşır; geri kalanlar yerinde oynar.

Unity bir iskeleti Humanoid kemikleriyle eşleştiremezse eklenti modeli onun yerine Generic olarak ayarlar ve nedenini söyler. Animasyonlar yine oynar; yalnızca diğer Humanoid karakterlerle paylaşılamaz.

T-pozdaki anime karakter; afk.ai'nin yerleştirdiği eklemler, parmaklara kadar noktalarla gösterilmiş
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 ... (sağda da aynı)    └ thigh_l      └ calf_l        └ foot_l          └ ball_l    └ thigh_r ... (sağda da aynı)
Her afk.ai riginin aldığı insansı iskelet: 66 kemik, her parmakta ve başparmakta üç eklem; adları Unreal Engine'in mannequin'indeki gibi.

Bir Animator kur

Karakter hızlandıkça idle'dan walk'a, jog'a ve sprint'e geçen bir blend tree ve bir tuşa bağlı bir kılıç saldırısı:

  1. Hero_rigged.fbx dosyasını sahneye sürükle. Avatar'ıyla birlikte bir Animator zaten üzerindedir. Ona bir Character Controller ekle ve Animator'daki Apply Root Motion seçeneğini kapat (karakteri betik hareket ettirir).
  2. Project penceresinde Create > Animator Controller komutunu seç (Unity 6'da Create > Animation > Animator Controller), adını Hero koy ve Animator'ın Controller alanına sürükle.
  3. Onu aç (Window > Animation > Animator). Parameters bölümüne Speed adlı bir Float ve Attack adlı bir Trigger ekle.
  4. Grafiğe sağ tıkla ve Create State > From New Blend Tree seçeneğini seç. Üzerine çift tıkla, parametresini Speed yap ve dört motion ekle: Hero_rigged.fbx içinden Idle_A, Walk, Jog ve Sprint (klipleri görmek için Project penceresinde dosyanın okuna tıkla). Automate Thresholds seçeneğini kapat ve eşikleri karakterinin hareket ettiği hızlara ayarla, örneğin 0; 1,5; 3,5 ve 6.
  5. Base Layer'a dönüp Sword_Attack klibini sürükle. Blend tree'den ona Attack koşullu ve Has Exit Time kapalı bir geçiş yap ki hemen başlasın; bir de blend tree'ye geri dönen, Has Exit Time açık bir geçiş ekle.
  6. Bu betiği karaktere ekle:
using UnityEngine;

// Moves the character and tells its Animator how fast it's going.
[RequireComponent(typeof(Animator), typeof(CharacterController))]
public class HeroAnimation : MonoBehaviour
{
    static readonly int Speed = Animator.StringToHash("Speed");
    static readonly int Attack = Animator.StringToHash("Attack");

    [SerializeField] float runSpeed = 6f;
    Animator animator;
    CharacterController controller;

    void Awake()
    {
        animator = GetComponent<Animator>();
        controller = GetComponent<CharacterController>();
    }

    void Update()
    {
        // The Input Manager's axes. With only the Input System package, read your Move action here instead.
        var input = new Vector3(Input.GetAxis("Horizontal"), 0f, Input.GetAxis("Vertical"));
        var move = Vector3.ClampMagnitude(input, 1f) * runSpeed;
        controller.SimpleMove(move);
        if (move.sqrMagnitude > 0.01f) transform.rotation = Quaternion.LookRotation(move);

        animator.SetFloat(Speed, move.magnitude, 0.1f, Time.deltaTime); // eased, so the blend doesn't snap
        if (Input.GetButtonDown("Fire1")) animator.SetTrigger(Attack);
    }
}

Play'e bas: karakter, analog çubukla ya da ok tuşlarıyla bekler, yürür, koşar ve depar atar; tıklamayla da kılıcını savurur.

EntryLocomotionBlend Tree · Idle_A, Walk, Jog, Sprint↓ Attack↑ Has Exit TimeSword_Attack
Çizim: Animator Controller. Locomotion blend tree'si Speed'e göre Idle_A'dan Sprint'e geçer; Attack trigger'ı Sword_Attack'i oynatır, o bitince geri dönülür.

Animasyonları diğer karakterlerle paylaş

Rigli bir insan Humanoid olduğu için animasyon aktarımını (retargeting) Unity senin yerine yapar. Asset Store'dan ya da kendi kütüphanenden herhangi bir Humanoid klibi üzerine bırak, oynar. Tersi de geçerli: klipleri, elindeki her Humanoid karakterde oynar. Hero_rigged.fbx içindeki Sprint klibini başka bir karakterin Animator Controller'ına sürükle, o karakter de koşar.

Hayvanlar ve yaratıklar Generic olduğu için klipleri kendi iskeletlerinde oynar. Yine de AFK AI'ın aynı gövde tipiyle riglediği her model aynı kemik ve animasyon adlarını alır; yani bir tilkinin Animator Controller'ı rigleyeceğin her tilkiyi yönetir.

Hayvanlar, yaratıklar ve objeler

Rig düğmesine tıklamadan önce penceredeki 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 zıplayan, dönen ve sallanan objeler için object. Her biri kendi gövdesine göre yapılmış bir iskelet ve o iskelete göre yapılmış animasyonlar alır; aynı klip ve döngü ayarlarıyla Generic rig olarak gelir. Hayvan rehberi her birinin neyle geldiğini listeler.

  • Ejderha
  • Dört ayaklı
  • Toynaklı
  • Dinozor
  • Örümcek
  • Balık
Diğer vücut tiplerinden altısı, afk.ai/rig'de riglenmiş ve kendi animasyonlarını oynatıyor.

Ne rigleme sayılır

AFK AI'ın kabul ettiği her Rig tıklaması, afk.ai/rig üzerinde ya da diğer AFK AI eklentilerinde olduğu gibi bu ayın rigleme haklarından birini kullanır. Başarısız bir rigleme sayılmaz. Stop waiting, Unity'deki beklemeyi durdurur, ama rigleme devam eder ve yine sayılır. Bağlantı koparsa Try again aynı riglemeyi kaldığı yerden alır ve asla iki kez sayılmaz. Haklar bittiğinde pencere See plans düğmesini gösterir, bu da afk.ai planlarını açar.

Bir şeyler ters giderse

Tarayıcı giriş yaptıktan sonra sayfaya ulaşamıyor
I have a sign-in code seçeneğini kullan.
Couldn't reach AFK AI
Bağlantını kontrol et, sonra Try again düğmesine tıkla. Aynı riglemeyi kaldığı yerden alır.
Model çok büyük
AFK AI en fazla 50 MB'lık modelleri kabul eder. Daha az poligonlu ya da daha küçük dokulu, daha hafif bir model dışa aktar.
“keeps its data in separate files”
Yanında .bin dosyası duran bir .gltf. Onun yerine bir .glb dışa aktar.
Bir klip döngüye girmemesi gerekirken giriyor
Hero_rigged.fbx dosyasını seç, Inspector'da Animation sekmesini aç, klibi seç, Loop Time ayarını değiştir ve Apply düğmesine tıkla.
Rig'e tıklayınca hiçbir şey olmuyor
Önce Project penceresinde bir .fbx, .glb ya da .gltf seç. Pencere neyin eksik olduğunu söyler.

Sorular

Hâlâ Mixamo'ya ihtiyacım var mı?

Hayır. Eklenti modeli rigler ve animasyonlarını tek adımda, Humanoid olarak ayarlanmış halde getirir. İstersen Mixamo'nun animasyonlarını da kullanabilirsin: herhangi bir Humanoid karakter için indir, Humanoid olarak ayarla, seninkinde de oynar.

AFK AI paketi oyun build'ime girer mi?

Hayır. Kodunun tamamı yalnızca editörde çalışan bir assembly'dedir. Projende kalan şey rigli FBX'tir, yani sıradan bir model asset'i.

Unity 6'da çalışır mı?

Evet. Unity 2021.3 ve sonraki tüm sürümlerde, Unity 6 dahil çalışır.

Unity'de bir .glb ya da .gltf modeli rigleyebilir miyim?

Evet. Eklenti dosyayı olduğu gibi gönderir; Unity'de onu model olarak gösterecek bir glTF içe aktarıcı olmasa bile. Geri gelen şey bir FBX'tir ve Unity onu ek bir şeye gerek duymadan içe aktarır. Bir .gltf dosyasının her şeyi içine gömülü olmalı; değilse bir .glb dışa aktar.

Rig bir VRChat avatarı için işe yarar mı?

Evet. Rigli bir insan, her parmağıyla birlikte Humanoid'dir ve VRChat'in istediği de budur. Kurulumun geri kalanı VRChat rehberinde.

Karakter yanlış yöne bakıyorsa ne olacak?

Facing ayarını modelin döndüğü açıya (90°, 180° ya da 270°) getirip yeniden rigle. Auto çoğu model için yönü kendisi bulur.

Bütün bir klasör için modelleri bir betikle rigleyebilir miyim?

Eklenti her seferinde tek bir model rigler. Toplu işler ve build pipeline'ları için komut satırından ya da kendi kodundan rigleme API'sini kullan.

Unreal, Godot ya da Blender için de eklenti var mı?

Evet: Unreal Engine, Godot ve Blender için ayrı rehberler var; tüm AFK AI eklentilerine genel bakış da dokuz uygulamanın hepsini anlatır.

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.

Model rigle

Diğer rehberler