FaceNinja

Rehber · Unity · Godot 4 · three.js

Kafanızı Unity, Godot veya three.js'te kullanın.

FaceNinja kafası; göz, diş, 4K doku ve 52 ARKit blendshape ile MetaHuman topolojisinde sıradan GLB veya FBX'tir, Unreal dışında da çalışır. Unity, Godot 4 ve three.js'e aktarmak ve yüzü kodla hareket ettirmek için adımlar burada.

three.js'te ağzı gülümsemeyle açık işlenmiş FaceNinja kafası
Sentetik kişi S-16 örneği, ARKit şekilli GLB'den three.js'e yüklendi; jawOpen ve iki mouthSmile şekli artırıldı. Kendi test sayfamızdan ekran görüntüsü.

Hangi motora hangi dosya

Motora göre dosyalar
MotorDosyaBirimler
UnityARKit şekilli FBXSantimetre; Unity metreye çevirir
Godot 4ARKit şekilli GLBMetre, Y yukarı
three.jsARKit şekilli GLBMetre, Y yukarı

İkisi de gerçek boyuttadır. GLB veya FBX'te saç yoktur: Unreal'da groom'lar (MetaHuman saçı) sağlar; diğer motorlarda kendi saçınızı ekleyin.

MetaHuman'ı Unity'de kullanabilir miyim?

FaceNinja kafası, koşullarımız altında MetaHuman topolojisinde kendi dosyanızdır: her motorda kullanın. MetaHuman Creator'da oluşturulan MetaHuman, Haziran 2025'ten beri diğer motor ve araçlara da izin veren Epic lisansına tabidir (Epic lisansı).

Unity: FBX'i içe aktarın

  1. FBX'i ekleyin

    ARKit şekilli FBX'i indirin ve projenizin Assets klasörüne bırakın.

  2. İçe aktarma ayarlarını kontrol edin

    Model sekmesinde santimetre metreye dönüşsün diye Convert Units'ı, ayrıca Import BlendShapes'i açık tutun (varsayılan). Uygulayın.

  3. Materyalleri çıkarın

    Materials sekmesinde doku ve materyalleri düzenlemek için çıkarın. URP veya HDRP'de materyalleri işlem hattının Lit shader'ına dönüştürün.

  4. Şekilleri bulun

    Kafayı sahneye yerleştirin. Skinned Mesh Renderer, BlendShapes altında ARKit adlarıyla 52 şekli listeler.

  5. Koddan sürün

    Unity'de ağırlıklar 0–100 arasındadır.

    Kod
    // Unity (C#): the head's SkinnedMeshRenderer; Unity blend shape weights run 0–100
    var smr = GetComponentInChildren<SkinnedMeshRenderer>();
    var mesh = smr.sharedMesh;
    for (int i = 0; i < mesh.blendShapeCount; i++)
        if (mesh.GetBlendShapeName(i).EndsWith("jawOpen"))
            smr.SetBlendShapeWeight(i, 60f);

GLB mi tercih ediyorsunuz? Unity, glTFast gibi bir glTF içe aktarma paketiyle okur.

Godot 4: GLB'yi içe aktarın

  1. GLB'yi ekleyin

    ARKit şekilli GLB'yi indirip projenize kopyalayın. Godot onu metre cinsinden sahne olarak içe aktarır.

  2. Şekilleri bulun

    Sahneyi açıp kafanın MeshInstance3D'sini seçin. Inspector, Blend Shapes altında ARKit adlarıyla şekilleri listeler.

  3. Koddan sürün

    Godot'ta ağırlıklar 0–1 arasındadır.

    Kod
    # Godot 4 (GDScript): the head's MeshInstance3D; weights run 0–1
    @onready var head: MeshInstance3D = $Head
    func _ready():
        var i := head.find_blend_shape_by_name("jawOpen")
        if i >= 0:
            head.set_blend_shape_value(i, 0.6)

three.js: GLB'yi yükleyin

  1. GLTFLoader ile yükleyin

    Kafa birkaç mesh olarak açılır (cilt, gözler, dişler vb.); her biri aynı 52 şekil adını taşır.

  2. Şekilleri adlarıyla ayarlayın

    morphTargetDictionary, her ARKit adını morphTargetInfluences içindeki indeksine eşler; ağırlıklar 0–1 arasındadır.

    Kod
    // three.js: every mesh of the head carries the same 52 names; weights run 0–1
    import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
    const gltf = await new GLTFLoader().loadAsync('head.glb');
    gltf.scene.traverse((o) => {
      const i = o.morphTargetDictionary?.jawOpen;
      if (i !== undefined) o.morphTargetInfluences[i] = 0.6;
    });
    scene.add(gltf.scene);
  3. Saydam gözler

    three.js'te saydam, yansımalı gözler için cornea=transmission seçeneğiyle indirin veya yüklerken kornea materyallerini değiştirin (belgeler EN).

Bu rehber için örneğin GLB'sini three.js'e yükledik: 6 mesh olarak açılır; her biri 52 ARKit adının tümünü listeler.

Bilmekte yarar var

  • Aynı mesh, aynı rig. Her kafada köşe sırası ve UV'ler aynıdır; biri için yaptığınız kurulum tümünde çalışır.
  • Ölçek. Her dosya gerçek boyuttadır. measured indirme seçeneği kafayı kişinin tahmini boyutuna ölçekler.
  • Daha hafif dosyalar. 4K gerekenden fazlaysa texture_size seçeneğiyle 2K doku isteyin.
  • Web önizlemesi motorlar için değildir. Web uygulamasındaki sıkıştırılmış önizleme yerine GLB veya FBX kullanın.

Unity, Godot ve three.js'te kafalar hakkında sorular

01MetaHuman'ı Unity'de kullanabilir miyim?
FaceNinja kafası sıradan FBX veya GLB olduğundan evet. MetaHuman Creator'da oluşturulan tam MetaHuman da Haziran 2025'ten beri Epic lisansıyla diğer motorlarda kullanılabilir; koşulları kontrol edin.
0252 blendshape içe aktarılır mı?
Evet, ARKit adlarıyla: Unity'de Skinned Mesh Renderer'ın BlendShapes'i, Godot'ta MeshInstance3D'nin Blend Shapes'i, three.js'te morph target'lar olarak.
03Saç var mı?
Bu dosyalarda yoktur. Unreal'da MetaHuman groom'ları sağlar; diğer motorlarda kendi saçınızı ekleyin.
04Hangi format daha küçük?
ARKit şekilli GLB, 4K dokularla yaklaşık 105 MB, statik GLB yaklaşık 65 MB'dir. 2K dokular ikisini de küçültür.

52 şeklin tümü olan bir kafa deneyebilir miyim?

Evet. Ücretsiz kaydolun ve 20 örnek kafayı indirin: her GLB ve FBX'te 52'si de vardır.