Blender'dan Unity'ye Aktarma Kontrol Listesi: Doğru Ölçek, Eksenler, Kemikler ve Animasyonlar (2026)
Son güncelleme: Eylül 2026.

Bir Blender modelini doğru boyutta, doğru yöne bakacak ve Unity'nin okuyabileceği bir rig ile Unity'ye aktarmak için File > Export > FBX (.fbx) yolundan FBX dışa aktarın; Apply Scalings ayarını FBX Units Scale (veya FBX All), Forward ayarını -Z ve Up ayarını Y olarak belirleyin, Apply Unit seçeneğini açın, Add Leaf Bones seçeneğini kapatın, Smoothing ayarını Face olarak belirleyin ve Path Mode ayarını Copy yapıp Embed Textures seçeneğini açın. .blend dosyasını Assets klasörüne bırakmayın ve Unity'nin glTFast içe aktarıcısı animasyonları ek işlem gerektirmeden oynatabilene kadar glTF'yi statik nesneler için kullanın. Aşağıda her ayarın neden önemli olduğu, yanlış olduğunda nasıl göründüğü ve Blender ya da Unity tarafında nasıl düzeltileceği açıklanmaktadır.
Kısa yanıt
- Biçim: Rig'li veya animasyonlu her şey için FBX kullanın. glTF'yi (.glb) yalnızca statik nesneler için ve ancak
com.unity.cloud.gltfastpaketini yükledikten sonra kullanın. Ham .blend dosyasını asla kullanmayın. - Ölçek: Blender Scene Properties altında Unit System seçeneğini Metric, Unit Scale değerini 1.0 yapın. Dışa aktarıcıda Scale 1.00, Apply Scalings FBX Units Scale olmalı ve Apply Unit işaretlenmelidir. Unity'de Scale Factor 1 olmalı ve Convert Units işaretlenmelidir. 1,8 m boyundaki bir karakter, her transform üzerinde ölçek 1 iken 1,8 birim boyunda görünmelidir.
- Eksenler: Dışa aktarıcıda Forward -Z, Up Y kullanın (varsayılan değerler). Unity'nin Model sekmesinde Bake Axis Conversion seçeneğini işaretleyerek kök transform üzerindeki -90 X dönüşünü kaldırın.
- Kemikler: Add Leaf Bones işaretini kaldırın. Bir Rigify veya Auto-Rig Pro kontrol rig'i dışa aktarıyorsanız Only Deform Bones seçeneğini işaretleyin. Modeli T pozunda oluşturun ve Humanoid Avatar'ın otomatik eşleme yapabilmesi için kemikleri vücut bölümlerine göre adlandırın.
- Animasyon: Her klip için bir Action veya her klip için bir NLA şeridi kullanın. NLA Strips ve All Actions seçeneklerini açık, Key All Bones seçeneğini açık, Sampling Rate değerini 1 olarak bırakın. Klipler Unity'deki Animation sekmesinde, FBX AnimStack başına bir klip olacak şekilde görünür.
- Dokular: Path Mode ayarını Copy yapın ve Embed Textures seçeneğini açın. Unity'nin Materials sekmesinde önce Extract Textures, ardından Extract Materials düğmesine basın. Pembe renk, dokunun eksik olduğu değil, shader'ın render pipeline'ınızla eşleşmediği anlamına gelir.
Hızlı başvuru
Unity için önemli olan Blender FBX dışa aktarıcı ayarları, kullanılması gereken değerler ve nedenleri. Seçenek adları ve açıklamaları Blender kılavuzundan ve dışa aktarıcının kaynak kodundan alınmıştır.
| Panel | Ayar | Unity için | Nedeni |
|---|---|---|---|
| Include | Selected Objects | Açık | Kameralar, ışıklar ve referans düzlemleri dışa aktarılmamalıdır |
| Include | Object Types | Armature, Mesh (konum belirleyiciler kullanıyorsanız Empty) | Kameralar ve ışıklar, Unity bileşenleri olarak içe aktarılır ve sonradan silmeniz gerekir |
| Transform | Scale | 1.00 | Başka bir değer, dosyaya belirsiz bir çarpan işler |
| Transform | Apply Scalings | FBX Units Scale veya FBX All | Metreden santimetreye dönüşüm katsayısını her nesneye değil, dosya başlığına yazar |
| Transform | Forward / Up | -Z Forward, Y Up | Unity'de yukarı ekseni Y, ileri ekseni Z'dir |
| Transform | Apply Unit | Açık | Scene birim ayarlarınızı dikkate alır |
| Transform | Use Space Transform | Açık | Eksen dönüşümünü nesne dönüşlerine yazar |
| Transform | Apply Transform | Kapalı | Dışa aktarıcının kendisi, bu seçeneğin armature ve animasyonlarla bozuk çalıştığını belirtir |
| Geometry | Smoothing | Face | Unity, blend shape normalleri için smoothing group'lara ihtiyaç duyar |
| Geometry | Apply Modifiers | Açık | Değerlendirilmiş mesh'i dışa aktarır (mirror, subdivision, triangulate) |
| Armature | Primary / Secondary Bone Axis | Y / X (varsayılanlar) | Unity açısından önemli değildir, ancak yeniden hedefleme araçları için önemlidir |
| Armature | Armature FBXNode Type | Null | Varsayılan ayardır; boş bir kök GameObject olarak içe aktarılır |
| Armature | Only Deform Bones | Kontrol rig'lerinde açık, sade armature'larda kapalı | IK hedeflerini ve widget'ları iskeletin dışında tutar |
| Armature | Add Leaf Bones | Kapalı | Aksi takdirde her zincir, Unity'nin gösterdiği bir _end kemiğiyle biter |
| Bake Animation | Key All Bones, NLA Strips, All Actions, Force Start/End Keying | Tümü açık | Klip başına bir AnimStack oluşturur ve her kemiğe key ekler |
| Bake Animation | Sampling Rate / Simplify | 1.0 / 1.0 | Kare başına bir key ve hafif eğri temizliği |
| Main | Path Mode / Embed Textures | Copy / Açık | Dokular .fbx dosyasının içinde taşınır |
.blend dosyasını Assets klasörüne bırakmayın
Unity bir .blend dosyasını kabul eder ve sorun da burada başlar. Unity'nin tescilli biçimler sayfası ne olduğunu şöyle açıklar: “Tescilli dosyaları doğrudan Unity'ye aktarmak için 3B modelleme yazılımının yüklü olması gerekir” ve “tescilli bir dosyayı Unity'ye ilk kez aktardığınızda, 3B modelleme yazılımının bir komut satırı işlemi içinde başlatılması gerekir.” Unity, Blender'ın FBX dışa aktarıcısını arka planda kontrol edemediğiniz ayarlarla çalıştırır; dolayısıyla uç kemikler ve bu sayfadaki sorunların çoğuna yol açan ölçek düzeni dâhil olmak üzere dışa aktarıcının varsayılan ayarlarını elde edersiniz.
Aynı sayfa, .blend yönteminin yapamadıklarını da sıralar: “Dokular ve diffuse renk otomatik olarak atanmaz” ve “Blender, animasyonlardaki görünürlük değerini FBX dosyasına aktarmaz.” Unity'nin 3B biçimleri sayfası ekip sorununu da ekler: .blend olarak kaydedilen varlıklar, “bilgisayarınızda ilgili 3B modelleme yazılımı yüklü değilse içe aktarılamaz”; bu nedenle derleme makineniz de dâhil olmak üzere “Unity projenizde çalışan herkesin doğru yazılımı yüklemiş olması gerekir.” Unity'nin kendi kararı şöyledir: “Mümkün olduğunda .fbx dosya biçimini kullanmak ve üretimde tescilli model dosyası biçimlerini kullanmamak en iyi uygulamadır.”
.blend dosyasını Assets dışındaki bir kaynak klasöründe (veya Unity'nin yok saydığı, adı ~ ile biten bir klasörde) tutun ve FBX'i Assets klasörüne aktarın.
2026'da Unity için FBX mi, glTF mi?
FBX. Unity'nin içe aktarıcısı .fbx, .dae, .dxf ve .obj dosyalarını yerel olarak okur; 3B biçimleri sayfasında ise glTF'den hiç söz edilmez. glTF desteği, Window > Package Manager > Add package by name yolundan com.unity.cloud.gltfast adıyla ekleyebileceğiniz Unity glTFast paketinden gelir. Aralık 2023'ten beri resmî bir Unity paketidir ve Mart 2026 itibarıyla 6.17.0 sürümündedir. Paketin kurulum sayfası, Editor'ın bağımlılıklarla birlikte en son sürümü yüklediğini belirtir. Paket yüklendikten sonra bir .glb dosyasını Assets klasörüne bırakmak ScriptedImporter aracılığıyla çalışır ve Built-in, URP ile HDRP desteklenir.
Üç unsur, bunun karakterler için varsayılan seçenek olmasını engeller. Paketin özellikler sayfası, animasyonu yalnızca “eski Animation System aracılığıyla” tam desteklenmiş olarak listeler; Mecanim içinse “Animasyon klipleri Mecanim uyumlu olarak içe aktarılabilir, ancak atanmaz ve ek işlem yapılmadan oynatılamaz” der. Draco, KTX2 ve Meshopt'un her biri ek bir paket gerektirir (com.unity.cloud.draco, com.unity.cloud.ktx, com.unity.meshopt.decompress). Ayrıca Unity'nin doku içe aktarıcısı BMP, EXR, GIF, HDR, IFF, JPG, PICT, PNG, PSD, TGA ve TIFF biçimlerini okur; WebP'yi okumaz. Bu nedenle glTFast 6.17, WebP görselleri için açık bir hata mesajı eklemiştir. Web için optimize edilmiş bir GLB (WebP dokular, Draco), Unity için yanlış dosyadır.
glTF; statik nesneler ve glTFast'in son derece başarılı olduğu, sunucudan çalışma zamanında yüklenen içerikler için kullanışlıdır. Animator Controller'a girecek rig'li ve animasyonlu bir karakter için FBX dışa aktarın. Elinizde zaten bir GLB varsa GLB görüntüleyici içinde neler bulunduğunu gösterir; Blender da yeniden dışa aktarmak üzere dosyayı sorunsuz biçimde içe aktarır.
Ölçek: model neden 100 kat büyük veya her şeyde 0.01 ölçeğiyle gelir?
FBX santimetre, Blender ise metre cinsinden ölçüm yapar. Dışa aktarıcının birim kodu tek satırdır: Blender'dan FBX'e dönüşüm katsayısı 100.0 * scene.unit_settings.scale_length değeridir ve yorumda FBX'in “bir dosyanın ‘referans’ birimini UnitScaleFactor özelliğinde sakladığı (1.0 değerinin santimetre anlamına geldiği)” belirtilir. Dolayısıyla metre cinsinden yapılan her dışa aktarımda 100 katsayısı bir yerde bulunur ve bu katsayının nereye yerleştirileceğini Apply Scalings açılır menüsü belirler.
Varsayılan All Local, “Özel ölçeklendirmeyi ve birim ölçeklendirmesini her nesne dönüşümüne uygular; FBX ölçeği 1.0 olarak kalır” şeklinde açıklanır. Dosyadaki her nesnenin transform'una 100 ölçeği uygulanır. Ardından Unity'nin Model sekmesi, “model dosyasında tanımlanan model ölçeklendirmesini Unity ölçeğine dönüştüren” Convert Units ayarını uygular ve prefab doğru boyutta görünür; mesh üzerinde 100 ölçeği ve bunu dengelemek için 0.01 dosya ölçeği bulunur. Meşhur 0.01 budur. Bir kemiğe nesne parent edene, koddan bir transform'u kontrol edene veya yeniden hedefleme yapana kadar çalışır; ardından gizli 100 ortaya çıkar.
FBX Units Scale, “Özel ölçeklendirmeyi her nesne dönüşümüne, birim ölçeklendirmesini ise FBX ölçeğine uygular”: 100 değeri dosyanın birim başlığına taşınır ve her nesnenin ölçeği 1 olarak kalır. FBX All, hem birim katsayısını hem de özel Scale değerinizi başlığa koyar; Scale 1.00 olarak kaldığı sürece sonuç aynıdır. Her ikisi de Unity için doğrudur. Unity tarafında varsayılan ayarlar kullanılmalıdır: Unity'nin Model sekmesi, Scale Factor ayarının bulunma nedenini “Unity'nin fizik sistemi, oyun dünyasındaki 1 metrenin içe aktarılan dosyada 1 birim olmasını bekler” şeklinde açıklar. Bu nedenle değeri 1 olarak ve Convert Units seçeneğini işaretli bırakın.
Diğer iki ölçek hatası da yaygındır. Santimetreyle çalışmak için Scene Properties altında Unit Scale değerini değiştirdiyseniz dışa aktarıcı 100'ü bu Unit Scale değeriyle çarpar. Blender kılavuzu bu ayarın “yalnızca kullanıcı arayüzünde görüntülenen değerleri etkilediğini, nesnelerin dâhili davranışını etkilemediğini” belirtir; dolayısıyla Apply Unit açıkken 0.01 Unit Scale, 180 cm'lik bir karakteri 1.8 cm'ye küçültebilir. Ayrıca 1.0 olmayan bir nesne ölçeği FBX'e işlenir. Her şeyi seçip Object > Apply > All Transforms (Ctrl-A) komutunu çalıştırın. Blender kılavuzu da aynı şeyi söyler: “Donatı ve animasyondan önce dönüşümlerin uygulanması önerilir.” Zaten animasyon içeren bir armature'a ölçek uygulamayın; bu işlem anahtar kareleri yeniden ölçeklendirir.
Eksenler: X'teki -90 nereden geliyor?
Blender'da yukarı ekseni Z'dir. FBX kılavuzu bunu açıkça belirtir: “Blender, Y Forward ve Z Up kullanır (çünkü ön görünüm +Y yönüne bakar). Örneğin uygulamaların yukarı ekseni olarak Y'yi kullanması yaygındır; bu durumda -Z Forward ve Y Up gerekir.” Unity'de yukarı ekseni Y, ileri ekseni ise Z'dir. Blender'ın ön görünümü +Y boyunca baktığı için ön kameraya dönük modellenen bir karakter -Y yönüne bakar; dışa aktarıcının varsayılan -Z Forward ve Y Up ayarları da bunu Unity'nin ileri yönüne eşler. Bunları değiştirmeyin.
Eksenler doğru olsa bile bir Blender FBX'inin kök nesnesi Unity Inspector'da X ekseninde -90 (çoğu zaman -89.98) dönüş gösterirken alt nesnelerde bunu dengeleyen bir dönüş bulunur. Bu, tepe noktalarına işlenmek yerine bir dönüşüm olarak saklanan eksen dönüşümüdür. Bunu kaldırmanın tercih sırasına göre üç yolu vardır.
Unity'de Bake Axis Conversion. Model sekmesindeki bu seçenek, “farklı bir eksen sistemi kullanan bir modeli içe aktarırken eksen dönüşümünün sonuçlarını doğrudan uygulamanızın varlık verilerine (örneğin tepe noktası veya animasyon verilerine) işler.” Seçeneği işaretlediğinizde kök 0, 0, 0 gösterir ve Blender'da hiçbir şey değişmez.
Blender'da ters yönde döndürme. Tüm dönüşümler uygulanmışken nesneyi X ekseninde -90 derece döndürüp dönüşü uygulayın; ardından X ekseninde +90 derece döndürün ve uygulamadan dışa aktarın. Dışa aktarıcının Use Space Transform seçeneği (“Nesne dönüşlerine global uzay dönüşümü uygula”) bu +90'ı Unity tarafında sıfır dönüşe çevirir. Topluluk eklentileri bunu otomatikleştirir: blender-to-unity-fbx-exporter projesi dışa aktarılan her nesnenin dönüşümüne “görsel pozu gerçekten değiştirmeden X ekseni çevresinde +90 derecelik bir dönüş” verir ve dışa aktarımdan sonra bunu geri alır.
Dışa aktarıcıda Apply Transform. Donatılı hiçbir şeyde kullanmayın. Kendi açıklaması “(UYARI! Deneysel seçenektir, riski size ait olmak üzere kullanın; armature/animasyonlarla bozuk çalıştığı bilinmektedir)” ifadesiyle biter ve dışa aktarıcı yanında bir hata simgesi gösterir. Statik bir donatıda çalışır ama yine de atlamakta sakınca yoktur.
Kemikler: uç kemikler, yönlendirme ve Humanoid Avatar
Uç kemikler. Add Leaf Bones varsayılan olarak açıktır ve “Son kemiğin uzunluğunu belirtmek için her zincirin sonuna bir nihai kemik ekler (dışa aktarılan verilerde armature'ı düzenlemeyi planlıyorsanız bunu kullanın)” şeklinde açıklanır. Dışa aktarıcı her birini üst kemiğinin adına _end ekleyerek adlandırır; bu nedenle Unity hiyerarşisi Head_end, LeftHand_end ve LeftToeBase_end gibi kemiklerle dolar. Generic rig'lerde zararsızdırlar ancak Humanoid otomatik eşlemesini ve yeniden hedefleme araçlarını karıştırırlar. Bu seçeneğin işaretini kaldırın. Başkasının FBX'ini yeniden içe aktarıyorsanız içe aktarıcının Ignore Leaf Bones seçeneği bunları ayıklar.
Kontrol rig'leri. Rigify veya Auto-Rig Pro rig'i; kontroller, IK hedefleri ve mekanizmalar için yüzlerce deformasyon yapmayan kemik içerir. Only Deform Bones, “Yalnızca deformasyon yapan kemikleri (ve deformasyon yapan alt öğeleri bulunduğunda deformasyon yapmayanları)” yazar; Unity'nin istediği iskelet budur. Kontrol rig'i kısıtlamalarının kendisi değil, yalnızca anahtar kareler hâlindeki sonuçları dışa aktarıldığı için önce animasyonu deformasyon kemiklerine işleyin.
Kemik yönlendirmesi. Blender kemikleri yerel Y eksenleri boyunca uzanır. Unity, bind pozunu ve skin ağırlıklarını okuyup kendisine verilenleri oynatır; bu nedenle Primary ve Secondary Bone Axis ayarları Y ve X olarak kalabilir. Bu ayarlar, aynı FBX Unreal veya bir yeniden hedefleme eklentisi gibi belirli bir kural bekleyen bir araca gönderildiğinde önem kazanır.
Humanoid Avatar. Unity'nin Rig sekmesi size Generic (“rig'iniz insansı değilse; dört ayaklı veya animasyon uygulanacak herhangi bir varlıksa”) ya da Humanoid (“rig'iniz insansıysa; iki bacağı, iki kolu ve bir başı varsa”) seçeneklerini sunar. Humanoid, karakterler arasında yeniden hedeflemeyi kullanıma açar ve Avatar yapılandırması sayfasında belirtilen kurallara sahiptir. İskelet, “gerçek bir insan iskeletinin yapısına genel hatlarıyla uyan şekilde düzenlenmiş en az 15 kemik” içermelidir. “Unity Avatar'ı oluşturamazsa Configure düğmesinin yanında bir çarpı görünür ve hiçbir Avatar alt varlığı oluşmaz.” Configure içinde Unity'nin kabul ettiği bir kemik “Avatar Mapping sekmesinde yeşil görünür”, reddedilen bir kemik ise “kırmızı görünür”. Poz için de şu belirtilir: “Kemik ataması doğruysa ancak karakter doğru pozda değilse ‘Character not in T-Pose’ mesajını görürsünüz. Pose menüsünden Enforce T-Pose'u seçerek bunu düzeltmeyi deneyebilirsiniz.” Bu nedenle rig’i T pozunda kurun, dinlenme pozu da T pozu olsun ve kemikleri vücut bölümlerine göre adlandırın (Unity’nin otomatik eşleme için önerisi, kemikleri “temsil ettikleri vücut bölümlerini yansıtacak şekilde” adlandırmaktır). Mixamo adları (mixamorig:Hips, mixamorig:LeftArm) güvenilir biçimde otomatik eşlenir; bu nedenle pek çok rig aracı bu adları kullanır. Birkaç kemik eşlenmezse bunları Hierarchy’den ilgili yuvalara sürükleyin, ardından Pose > Enforce T-Pose ve sonra Apply seçeneklerini kullanın; sonucu aynı rig’in sonraki dışa aktarımında kullanmak üzere Human Template (.ht) olarak kaydedin.
Henüz bir rig’iniz yoksa otomatik rig oluşturma rehberi, otomatik rig araçlarının bir mesh’ten nelere ihtiyaç duyduğunu açıklar. Cinevva Rig eklentisi ise kendi bilgisayarınızda ve çevrimdışı olarak Blender’ın içinde Mixamo adlandırmalı bir insansı armature oluşturur; Windows, macOS ve Linux’ta Blender 4.2 ve sonraki sürümler için tek seferlik $29 lansman fiyatıyla sunulur.
Root motion
Root motion, uzuvların oldukları yerde hareket etmesinden farklı olarak karakterin kökünün dünya içinde hareket etmesidir. Unity’nin root motion sayfası, “Body Transform’un Y düzlemine izdüşümü olan ve çalışma zamanında hesaplanan” bir Root Transform üzerinden çalışır. Her klip için dönüşün, Y’nin ve XZ’nin poza işlenmesini ya da GameObject’i hareket ettiren hareket verileri olarak korunmasını seçersiniz. Karakterin kaymaması amacıyla “delta Position (XZ) değerini 0 olmaya zorlamak” için, boşta bekleme animasyonlarında XZ için Bake Into Pose kullanmak normal ayardır. Generic rig’ler için sayfada, “Root Transform’u hesaplamak/yansıtmak üzere Body Transform’u kullanmak yerine Root Node’da ayarlanan transform kullanılır” denir. Ayrıca Rig sekmesinde Root Node’un varsayılan olarak None olduğu belirtilir; bu nedenle burada kalça veya kök kemiğinizi seçin, aksi takdirde root motion hiçbir uyarı vermeden çalışmaz.
Blender tarafındaki kural şudur: ilerleme hareketini armature nesnesinde değil, bir kemikte canlandırın. Dışa aktarıcı armature nesnesini bir Null düğümü olarak yazar (Armature FBXNode Type, “Blender’ın Empty nesnesine benzer”) ve Unity’nin root motion ayarları bu boş nesneye değil, Avatar’ın altındaki kemiklere bakar. Zeminde bulunan, Hips’in ebeveyni olan ve ilerleme hareketi için anahtar kareler içeren özel bir kök kemiği, Unity’nin Root Node seçeneğinin tasarlandığı düzendir. İlerleme hareketinin kod tarafından yönetildiği, yerinde oynatılmak üzere hazırlanmış kliplerde kök kemiğine hiç gerek yoktur ve çoğu animasyon kitaplığı da bu şekilde sunulur.
Animasyonlar: action’lar, NLA strip’leri ve bake işlemi
Unity, FBX AnimStack’lerini okur ve her birini Animation sekmesinde bir klip olarak gösterir; burada bunları bölebilir, yeniden adlandırabilir, döngüye alabilir ve kırpabilirsiniz. Blender’ın Bake Animation paneli kaç AnimStack elde edeceğinizi belirler.
Her klip için bir Action. All Actions açıkken dışa aktarıcı, “her action’ı global sahne animasyonu yerine ayrı bir FBX AnimStack’i olarak dışa aktarır (animasyonlu nesnelerin kendileriyle uyumlu tüm action’ları alacağını, diğerlerinin ise hiçbir animasyon almayacağını unutmayın)”. Action’larınıza Idle, Walk, Run, Jump adlarını verdiğinizde Unity bunları bu adlarla listeler. Bu açıklamadaki önemli nokta şudur: kanalları armature ile eşleşen her Action uyumlu sayılır; dolayısıyla başka bir rig’den kalan gereksiz bir Action da eklenebilir. Göndermek istemediğiniz Action’ları silin.
Her klip için bir NLA strip’i. NLA Strips açıkken dışa aktarıcı, “varsa sessize alınmamış her NLA strip’ini global sahne animasyonu yerine ayrı bir FBX AnimStack’i olarak dışa aktarır”. Her Action’ı kendi track’ine aktarın, göndermediklerinizi sessize alın; böylece kare aralıklarını tam olarak denetleyebilir ve iki Action’ı harmanlayan bir klibi dışa aktarabilirsiniz.
Constraint’ler varsa önce bake edin. Blender FBX kılavuzu, dışa aktarılmayan öğeler arasında constraint’leri de sayar: “Constraint kullanımının sonucu anahtar kare animasyonu olarak dışa aktarılır ancak constraint’lerin kendileri FBX’e kaydedilmez.” IK, Copy Rotation ve Child Of, dışa aktarım Sampling Rate değerinde örneklenir; bu nedenle Key All Bones (“Tüm kemikler için en az bir animasyon anahtarının dışa aktarılmasını zorla”) ve Force Start/End Keying açık kalmalıdır. Unity’nin kendi Bake Animations seçeneği “yalnızca Autodesk Maya, Autodesk 3ds Max ve Cinema 4D dosyalarında kullanılabilir”; dolayısıyla bake işleminin Blender’da yapılması gerekir. Bir kopya üzerinde Visual Keying ve Clear Constraints ile Object > Animation > Bake Action kullanmak, yanlış yorumlanamayacak yalnızca FK içeren bir Action oluşturur.
Simplify. Dışa aktarıcının Simplify ayarı (“Bake edilmiş değerlerin ne ölçüde sadeleştirileceği; devre dışı bırakmak için 0.0, değer yükseldikçe sadeleştirme artar”) varsayılan olarak 1.0’dır ve oyun klipleri için güvenlidir. Bir klip Blender’da düzgünken Unity’de titriyorsa bunu 0 yapın ve anahtar kare azaltma işlemini Unity’nin Anim. Compression özelliğine bırakın.
İki Unity alışkanlığı süreci tamamlar. [email protected] adlı dosyalar otomatik olarak bir araya getirilir: animasyonları bölme sayfasına göre “Unity dört dosyanın tümünü otomatik olarak içe aktarır ve tüm animasyonları adında @ işareti bulunmayan dosyada toplar”. Böylece hero.fbx ile [email protected], Walk klibine sahip tek bir karakter oluşturur ve mesh’e dokunmadan tek bir klibi yeniden dışa aktarabilirsiniz. Ayrıca FBX’te döngü kavramı bulunmadığından, döngüsel animasyonlarda Animation sekmesindeki Loop Time seçeneğini etkinleştirin.
Dokular ve pembe materyal
Blender’ın FBX dışa aktarıcısı, dokuları birlikte taşımasını istemediğiniz sürece bunlara dosya yollarıyla referans verir. Path Mode’u Copy olarak ayarladığınızda, “Dokuları FBX ikili dosyasına göm (yalnızca 'Copy' yol modu için!)” şeklinde açıklanan Embed Textures seçeneği kullanılabilir hâle gelir. Böylece .fbx dosyası görüntüleri içerir. Unity’de Materials sekmesi, materyalleri varsayılan olarak alt varlıklar hâlinde tutar (“Use Embedded Materials”) ve iki düğme bunları dışarı çıkarır: Extract Textures, gömülü görüntüleri bir klasöre yazar; Extract Materials ise alt varlıkları düzenlenebilir .mat dosyalarına dönüştürür. Önce Textures, ardından Materials işlemini yapın; böylece çıkarılan materyaller çıkarılan dokulara işaret eder. Dışarı çıkarıldıktan sonra “yeni içe aktarımlar veya özgün varlıkta yapılan değişiklikler, çıkarılmış materyalleri etkilemez”. İstediğiniz de budur: Unity tarafındaki materyal düzenlemelerinizi kaybetmeden mesh’i yüz kez yeniden dışa aktarabilirsiniz.
Temel renk ve birkaç slot aktarılır. FBX’in, Blender’ın Principled BSDF yapısının bire bir eşlenebileceği bir PBR standardı yoktur; bu nedenle pürüzlülük, metaliklik ve normal haritalarını Unity’de elle atamayı bekleyin. Material Creation Mode altındaki “Import via MaterialDescription” seçeneği, FBX’e gömülü materyal açıklamasını okur ve Standard (Legacy) modundan daha yakın bir sonuç verir.
Sırada pembe sorunu var. Unity’nin hata shader’ı sayfasına göre “Unity, bir nesnenin materyalinde veya shader’ında sorun olduğunda bu nesneyi varsayılan hata shader’ıyla render eder”; shader’ın derlenememesi veya desteklenmemesi buna örnektir ve “varsayılan hata shader’ı macenta (parlak pembe) rengindedir.” İçe aktarımlarla ilgili özel durum şudur: “Projeniz Universal Rendering Pipeline (URP) kullanıyorsa, nesne Built-In Render Pipeline’a ait bir shader kullanırken Unity bu nesneyi varsayılan hata shader’ıyla render edebilir.” İçe aktarılan FBX materyalleri varsayılan olarak Built-in shader’ları kullanır; dolayısıyla URP veya HDRP projesine pembe olarak gelirler. Eksik dokular bir materyali pembeye değil, griye veya beyaza dönüştürür.
Çözüm tek bir menüdedir. Pembe materyalleri seçip Edit > Rendering > Materials > Convert Selected Materials to URP komutunu çalıştırın veya dönüştürücü belgelerinde belirtildiği gibi Window > Rendering > Render Pipeline Converter penceresini açın, Built-in Render Pipeline to URP seçeneğini belirleyin, Material Upgrade kutusunu işaretleyip dönüştürmeyi çalıştırın. Tek sınırlama şudur: “Bu dönüştürücü özel shader kullanan materyalleri desteklemez”; içe aktarılan FBX materyalleri ise zaten özel shader kullanmaz. HDRP için eşdeğer seçenek Edit > Rendering > Materials altında bulunur.
Yumuşatma ve normaller
Blender’ın Smoothing açılır menüsünde dört seçenek vardır ve bunlardan biri bir Unity özelliğini bozar. Normals Only, “kenar veya yüz yumuşatma verilerini yazmak yerine yalnızca normalleri” dışa aktarır ve kılavuzda “içe aktarıcı özel split normal’leri destekliyorsa Normals Only kullanmanın genellikle en doğru sonucu verdiği” belirtilir. Face yüz yumuşatmayı, Edge kenar yumuşatmayı, Smoothing Groups ise birlikte gölgelendirilen yüz gruplarını yazar. Unity her durumda normalleri sorunsuz içe aktarır (Normals ayarı varsayılan olarak Import’tur). Ancak Unity’nin Model sekmesinde Import BlendShapes altında şu uyarı bulunur: “Blend shape normallerinin içe aktarılması için FBX dosyasında smoothing group’ların bulunması gerekir.” Shape key’leri olan bir yüzü Normals Only ile dışa aktarırsanız morph target’lar düz veya bozuk gölgelendirmeyle gelir.
Unity için güvenli varsayılan Face’tir; dosyayı 3ds Max tarzı araçlara da gönderiyorsanız Smoothing Groups kullanın. Sert kenarlarınız Smooth by Angle modifier’ından geliyorsa Apply Modifiers seçeneğini işaretleyin, aksi hâlde bunlar kaybolur. Bir mesh Blender’da yumuşak, Unity’de köşeli görünüyorsa hızlı bir kontrol için Unity’de Normals ayarını Calculate, Smoothness Source ayarını ise From Angle yapın; ardından dışa aktarımı düzeltin.
Belirti, neden, çözüm
| Unity’deki belirti | Neden | Çözüm |
|---|---|---|
| Model çok küçük veya 100 kat fazla büyük | Scale Factor değiştirilmiş, Convert Units kapalı ya da Apply Unit açıkken Blender Unit Scale değeri 1.0 dışında | Unity: Scale Factor 1, Convert Units açık. Blender: Unit Scale 1.0, Scale 1.00 |
| Boyut doğru ancak scale değeri 100, File Scale değeri 0.01 | Apply Scalings, All Local olarak bırakılmış | Apply Scalings’i FBX Units Scale veya FBX All yapıp yeniden içe aktarın |
| Root, X ekseninde -90 (veya -89.98) döndürülmüş | Eksen dönüşümü bir transform olarak saklanmış | Model sekmesinde Bake Axis Conversion seçeneğini işaretleyin |
| Karakter geriye veya yana bakıyor | Blender’da +Y veya +X yönüne bakacak şekilde modellenmiş | Blender’da -Y yönüne bakmasını sağlayın (önden görünüm), Forward -Z olarak kalsın |
Fazladan Head_end, Hand_end kemikleri | Add Leaf Bones açık bırakılmış | Add Leaf Bones seçeneğinin işaretini kaldırın |
| Hiyerarşide yüzlerce kemik, IK hedefi ve widget var | Kontrol rig’inin tamamı dışa aktarılmış | Only Deform Bones’u işaretleyin, önce deform kemiklerine bake edin |
| Configure yanında çarpı var, Avatar yok | Gerekli 15 kemikten daha azı eşleşmiş veya kemikler tanınmamış | Kemikleri vücut bölümlerine göre yeniden adlandırın, gerekli 15 kemiği kontrol edin ve elle eşleyin |
| “Character not in T-Pose” | Dinlenme pozu A pozu veya rahat bir poz | Pose > Enforce T-Pose kullanın veya Blender’da dinlenme pozunu düzeltin |
| Animasyon oynuyor ancak karakter hareket etmiyor | Generic rig’de Root Node, None olarak ayarlanmış veya ilerleme hareketi armature nesnesinde anahtarlanmış | Rig sekmesinde Root Node’u ayarlayın, ilerleme hareketini bir kök kemiğinde anahtarlayın |
| Yalnızca bir klip içe aktarıldı | NLA Strips ve All Actions kapalı ya da Action’ların fake user’ı yok | İkisini de açın, her klip için bir Action veya strip kullanın |
| Uzuvlar IK’nin bulunduğu yerde kayıyor veya sıçrıyor | Constraint’ler, Simplify değeri fazla yüksekken örneklenmiş anahtarlar olarak dışa aktarılmış | Blender’da Bake Action kullanın, Simplify 0 |
| Materyaller parlak pembe | URP veya HDRP projesinde Built-in shader’lar kullanılıyor | Convert Selected Materials to URP (veya HDRP) kullanın |
| Materyaller gri, dokular eksik | Path Mode, Copy değil veya Embed Textures kapalı | Copy ve Embed Textures kullanın, ardından Unity’de Extract Textures çalıştırın |
| Blend shape’lerin gölgelendirmesi düz veya hatalı | Smoothing, Normals Only olarak ayarlanmış | Smoothing Face veya Smoothing Groups kullanın |
| Blender’da yumuşak olan yüzeyler köşeli | Smooth by Angle modifier’ı uygulanmamış | Apply Modifiers seçeneğini işaretleyin |
| Ekipteki herkes içe aktarma hatası alıyor | .blend dosyası Assets içinde ve bilgisayarlarında Blender yok | FBX olarak dışa aktarın, .blend dosyasını Assets dışında tutun |
10 adımlı kontrol listesi
Bunu önce Blender'da dosyanın bir kopyası üzerinde, ardından Unity'de uygulayın.
- Sahneyi temizleyin. Kameraları, ışıkları, referans görsellerini ve projeye dahil edilmeyecek her şeyi silin. Uygun olduğunda aynı materyali paylaşan mesh'leri birleştirin ve deforme olması gereken her mesh'in bir Armature değiştiricisiyle armature'a parent edildiğinden emin olun.
- Birimleri kontrol edin. Scene Properties, Units: Unit System Metric, Unit Scale 1.0, Length Meters. Karakterinizin Dimensions panelini (N) kontrol edin: bir insan için 1,6 ila 2,0 m.
- Dönüşümleri uygulayın. Mesh'leri seçin,
Object > Apply > All Transforms. Animasyonu olmayan bir armature için de uygulayın. Animasyonlu bir armature'ı olduğu gibi bırakın ve ölçeğinin zaten 1.0 göründüğünden emin olun. - Pozu ve adları düzeltin. Dinlenme pozu T-pose olmalı ve -Y yönüne (ön görünüm) bakmalıdır. Kemik adları vücut bölümlerini belirtmeli; karşılıklı kemiklerde
.Lve.Rya daLeftveRightkullanılmalıdır. Kendi oluşturduğunuz_endkemikleri bulunmamalıdır. - Klipleri hazırlayın. Fake user atanmış şekilde klip başına bir Action veya klip başına bir NLA şeridi kullanın. IK ya da kısıtlamalarla yönlendirilen her şeyi
Object > Animation > Bake Actionile, Visual Keying açıkken pişirin. - Dışa aktarın.
File > Export > FBX (.fbx). Selected Objects açık. Object Types olarak Armature ve Mesh. Scale 1.00, Apply Scalings FBX Units Scale, Forward -Z, Up Y, Apply Unit açık, Use Space Transform açık, Apply Transform kapalı. Smoothing Face, Apply Modifiers açık. Kontrol rig'leri için Only Deform Bones açık, Add Leaf Bones kapalı. Bake Animation açık; Key All Bones, NLA Strips, All Actions ve Force Start/End Keying açık, Sampling Rate 1.0, Simplify 1.0. Path Mode Copy, Embed Textures açık. Bunları operatör önayarı olarak kaydedin (panelin üst kısmındaki +). - İçe aktarın. .fbx dosyasını Assets içine bırakın. Model sekmesi: Scale Factor 1, Convert Units açık, Bake Axis Conversion açık; shape key'leriniz varsa Import BlendShapes açık. Apply'a basın.
- Rig'i ayarlayın. Rig sekmesi: iki ayaklı bir karakter için Humanoid, aksi hâlde Generic. Avatar Definition olarak Create From This Model. Configure'a basın; kemiklerin yeşil olduğunu ve T-pose mesajı bulunmadığını kontrol edin. Generic için, klibin karakteri hareket ettirmesi gerekiyorsa Root Node'u ayarlayın. Apply'a basın.
- Animasyonu ayarlayın. Animation sekmesi: her Action için bir klip bulunduğunu doğrulayın. Döngülerde Loop Time'ı açın. Bekleme animasyonlarında Root Transform Position (XZ) Bake Into Pose'u açın. Apply'a basın.
- Materyalleri ayarlayın. Materials sekmesi: dokuları bir Textures klasörüne Extract Textures ile, ardından materyalleri bir Materials klasörüne Extract Materials ile çıkarın. Bir URP veya HDRP projesinde çıkarılan materyalleri seçip
Edit > Rendering > Materials > Convert Selected Materials to URPkomutunu çalıştırın. Prefab'ı bir sahneye sürükleyin ve ölçeği, bakış yönünü ve gölgelendirmeyi Blender ile karşılaştırın.
Tek tıklamalı yöntem
- adımı ezberlemek istemiyorsanız Cinevva Rig eklentisinde tam olarak bu tarifi uygulayan bir Unity önayarına sahip dışa aktarma kartı bulunur: FBX, Forward -Z, Up Y, FBX All ile uygulanmış birim ölçeği, yaprak kemikleri kapalı, Face yumuşatma, gömülü ve 2048 px ile sınırlandırılmış dokular. Export'a basmadan önce boyut analizi, tahmini dosyayı geometri, dokular, animasyon ve shape key'ler olarak ayırır; böylece 60 MB'ın mesh'ten değil, üç adet 4K dokudan kaynaklandığını görebilirsiniz. Standart bir Blender GLB dışa aktarımıyla karşılaştırıldığında önayarlar, dört gerçek modelde %68, %89, %92 ve %98 daha küçük dosyalar üretti; farkın neredeyse tamamı doku sınırlandırmasından ve yeniden kodlamadan kaynaklandı. Dışa aktarma işlemi anahtar, hesap veya ağ bağlantısı gerektirmeden yerel olarak çalışır. Eklentinin ücretli kısmı rig oluşturmadır: yaklaşık 2,4 GB'lık motorun bir kez indirilmesinden sonra sınırsız yerel rig oluşturma için $29 lansman fiyatıyla tek seferlik satın alma; Blender 4.2 ve üzeri desteğinin yanı sıra Blender içinde rig'e yeniden hedeflenen ve ardından yukarıda açıklanan Action'lar olarak dışa aktarılan 260 CC0 animasyon klibi.
FBX gidiş dönüşü için yerleşik ücretli çözüm, Mesh Online'ın Superhive'da 12.800'den fazla satışa ulaşan Better FBX Importer & Exporter eklentisidir. Bu, Autodesk'in resmî FBX SDK'sı temel alınarak sıfırdan geliştirilmiş bir FBX uygulamasıdır. Ürün sayfasına göre “ASCII'den binary'ye, FBX 5.3'ten FBX 2020'ye kadar tüm FBX sürümleriyle uyumludur” ve dışa aktarımlar “Unity Engine 2021, Unreal Engine 4/5 ve Godot Engine v4.1.1'de doğrulanmıştır”. Öne çıkan iki özelliği, içe aktarma sırasında otomatik kemik yönlendirmesi (Blender'ın içe aktarıcısının eksenlerini bükülmüş bıraktığı kemikler için) ve armature'ları “birim ölçek ve sıfır dönüşlerle” yazan “Optimize For Game Engine” dışa aktarımıdır. Diğer sanatçılardan sık sık FBX içe aktarıyor ya da Maya veya 3ds Max üzerinden gidiş dönüş yapıyorsanız ilk haftada maliyetini çıkarır. Yalnızca kendi Blender çalışmalarınızı Unity'ye aktarıyorsanız bu sayfadaki ayarlarla aynı sonucu ücretsiz elde edebilirsiniz.
Sık Sorulan Sorular
Blender'dan Unity'ye nasıl dışa aktarırım?
.blend yerine FBX dışa aktarın. File > Export > FBX (.fbx) içinde Selected Objects açık, Scale 1.00, Apply Scalings FBX Units Scale, Forward -Z, Up Y, Add Leaf Bones kapalı, Smoothing Face ve Path Mode Copy ile Embed Textures açık olmalıdır. Unity'nin Model sekmesinde Convert Units ve Bake Axis Conversion'ı işaretleyin, ardından Materials sekmesinden dokuları ve materyalleri çıkarın.
Blender modelim Unity'de neden 0.01 veya 100 ölçeğinde?
FBX santimetre cinsinden hesaplama yaptığı için Blender'ın dışa aktarıcısı metre birimli bir sahneyi 100 ile çarpar. Varsayılan Apply Scalings ayarı olan All Local kullanıldığında bu 100, her nesnenin dönüşümüne yerleşir ve Unity'nin Convert Units seçeneği bunu 0.01 dosya ölçeğiyle iptal eder. Bunun yerine FBX Units Scale veya FBX All seçerseniz katsayı dosya başlığına yazılır ve tüm dönüşümler 1 olarak kalır. Model 100 kat büyükse Convert Units kapalıdır veya Unity'de Scale Factor değiştirilmiştir.
Blender FBX'im Unity'de neden X ekseninde -90 dönüşe sahip?
Blender'da yukarı eksen Z, Unity'de ise Y'dir ve dışa aktarıcı aralarındaki 90 derecelik dönüşü kök nesne üzerinde bir dönüş olarak saklar; Unity bunu -90 (çoğu zaman -89.98) olarak gösterir. Unity'nin Model sekmesinde Bake Axis Conversion'ı işaretlediğinizde dönüş köşelere pişirilir ve kök sıfır gösterir. Rig'lenmiş bir modelde dışa aktarıcının Apply Transform seçeneğini kullanmayın; çünkü kendi açıklamasında bunun armature'lar ve animasyonla bozuk çalıştığı belirtilir.
Blender'dan Unity'ye animasyonları nasıl dışa aktarırım?
Klip başına bir Action (veya klip başına bir NLA şeridi) oluşturun, IK ya da kısıtlamalarla yönlendirilen hareketleri Bake Action ile pişirin ve Bake Animation açıkken Key All Bones, NLA Strips, All Actions ve Force Start/End Keying seçeneklerini işaretleyerek dışa aktarın. Her Action, Blender'daki adıyla Unity'nin Animation sekmesine bir klip olarak gelir. Kök hareketi istiyorsanız Generic rig için Rig sekmesinde Root Node'u ayarlayın ve döngülerde Loop Time'ı açın.
Unity için FBX mi yoksa glTF mi kullanmalıyım?
Rig'lenmiş veya animasyonlu her şey için FBX kullanın. Unity FBX'i yerel olarak içe aktarırken glTF için com.unity.cloud.gltfast paketi gerekir; bu paketin animasyon içe aktarımı yalnızca eski Animation sistemi için eksiksizdir, Mecanim için “daha fazla çalışma” gerektirir ve Unity WebP dokularını okuyamaz. glTF, statik sahne öğeleri ve çalışma zamanında bir sunucudan yüklenen modeller için iyi bir seçimdir.
Blender'dan içe aktardıktan sonra materyallerim Unity'de neden pembe?
Pembe, Unity'nin hata shader'ıdır ve içe aktarımlarda neredeyse her zaman materyalin URP veya HDRP projesinde Built-in Render Pipeline shader'ı kullandığı anlamına gelir. Materyalleri seçip Edit > Rendering > Materials > Convert Selected Materials to URP komutunu çalıştırın veya Window > Rendering > Render Pipeline Converter aracını kullanın. Eksik dokular materyali pembe değil, gri yapar: bu durumda Path Mode Copy ve Embed Textures ile dışa aktarın, ardından Unity'de Extract Textures'a basın.
Unity neden Blender rig'imden Humanoid Avatar oluşturmuyor?
Unity'nin tanıyabileceği en az 15 gerekli kemiğe ve bir T pozuna ihtiyacı vardır. Configure seçeneğinin yanındaki çarpı, eşlemenin başarısız olduğu anlamına gelir; Mapping sekmesindeki kırmızı kemikler yerleştirilemeyen kemiklerdir ve "Character not in T-Pose" ifadesi dinlenme pozunun hatalı olduğunu belirtir. Kemikleri vücut bölümlerine göre adlandırın (Mixamo adları her zaman eşleşir), _end kemiklerinin kafa karışıklığı yaratmaması için Add Leaf Bones seçeneğinin işaretini kaldırın, kırmızı kemikleri elle doğru yerlere sürükleyin ve Pose > Enforce T-Pose seçeneğini kullanın.
İlgili
- Blender'dan Unreal'a Aktarma Kontrol Listesi: birimlerin ve kemik eksenlerinin ters yönde olduğu Unreal için aynı adımlar
- Blender'dan Godot'ya Aktarma Kontrol Listesi: glTF, Godot 4'te yerel formattır ve ayarlar farklıdır
- Otomatik Rigleme Nasıl Çalışır?: tüm bunlardan önce bir rigleme aracının mesh'inizden nelere ihtiyaç duyduğu
- GLB Dosyaları Web İçin Nasıl Optimize Edilir?: glTF'nin doğru format olduğu tarayıcı ortamı için Draco, Meshopt ve KTX2
- GLB Görüntüleyici: Unity için yeniden dışa aktarmadan önce bir glTF'nin sahne grafiğini, kemiklerini ve kliplerini inceleyin
- Blender için Cinevva Rig: tek bir eklentide rigleme, 260 CC0 klip ve Unity dışa aktarma ön ayarı