FaceNinja

Guida · Unity · Godot 4 · three.js

Usa la tua testa in Unity, Godot o three.js.

Una testa FaceNinja è un normale GLB o FBX su topologia MetaHuman, con occhi, denti, texture 4K e i 52 blendshape ARKit, quindi funziona anche fuori da Unreal. Ecco come portarla in Unity, Godot 4 e three.js, e come muovere il volto dal codice.

Una testa FaceNinja renderizzata in three.js con la bocca aperta in un sorriso
Esempio S-16, una persona sintetica, caricato in three.js dal GLB con forme ARKit, con jawOpen e le due forme mouthSmile attivate. Screenshot dalla nostra pagina di test.

Quale file per quale motore

File per motore
MotoreFileUnità
UnityFBX con forme ARKitCentimetri; Unity li converte in metri
Godot 4GLB con forme ARKitMetri, Y in alto
three.jsGLB con forme ARKitMetri, Y in alto

Entrambi sono a grandezza naturale. I capelli non sono nel GLB né nell'FBX: in Unreal li sostituiscono i groom MetaHuman; negli altri motori, aggiungi capelli tuoi.

Posso usare un MetaHuman in Unity?

Una testa FaceNinja è un tuo file, su topologia MetaHuman, secondo i nostri termini: usala in qualsiasi motore. Un MetaHuman che crei in MetaHuman Creator ricade sotto la licenza di Epic, che da giugno 2025 consente anche altri motori e strumenti (pagina della licenza di Epic).

Unity: importa l'FBX

  1. Porta dentro l'FBX

    Scarica l'FBX con forme ARKit e trascinalo nella cartella Assets del progetto.

  2. Controlla le impostazioni di importazione

    Nella scheda Model, lascia attivo Convert Units, così i centimetri diventano metri, e attivo Import BlendShapes (il default). Premi Apply.

  3. Estrai i materiali

    Nella scheda Materials, estrai texture e materiali per poterli modificare. In URP o HDRP, converti i materiali allo shader Lit della pipeline.

  4. Trova le forme

    Metti la testa in una scena. Lo Skinned Mesh Renderer elenca le 52 forme sotto BlendShapes, con i nomi delle forme ARKit.

  5. Guidale dal codice

    In Unity i pesi vanno da 0 a 100.

    Codice
    // 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);

Preferisci il GLB? Unity lo legge con un pacchetto di importazione glTF, come glTFast.

Godot 4: importa il GLB

  1. Porta dentro il GLB

    Scarica il GLB con forme ARKit e copialo nel progetto. Godot lo importa come scena, in metri.

  2. Trova le forme

    Apri la scena e seleziona il MeshInstance3D della testa. L'Inspector elenca le blend shape con i loro nomi ARKit sotto Blend Shapes.

  3. Guidale dal codice

    In Godot i pesi vanno da 0 a 1.

    Codice
    # 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: carica il GLB

  1. Caricalo con GLTFLoader

    La testa si apre come diverse mesh (pelle, occhi, denti e così via); ognuna porta gli stessi 52 nomi di forme.

  2. Imposta le forme per nome

    morphTargetDictionary associa ogni nome ARKit al suo indice in morphTargetInfluences; i pesi vanno da 0 a 1.

    Codice
    // 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. Occhi trasparenti

    Per occhi trasparenti e riflettenti in three.js, scarica con l'opzione cornea=transmission, oppure sostituisci i materiali della cornea quando carichi il file (docs EN).

Per questa guida abbiamo caricato il GLB di questo esempio in three.js: si apre come 6 mesh, e ognuna elenca tutti i 52 nomi ARKit.

Buono a sapersi

  • Stessa mesh, stesso rig. Ogni testa ha lo stesso ordine dei vertici e le stesse UV, quindi un setup fatto per una testa vale per tutte.
  • Scala. Ogni file è a grandezza naturale. L'opzione di download measured scala una testa a una stima delle dimensioni della persona.
  • File più leggeri. Chiedi texture 2K con l'opzione di download texture_size quando il 4K è più di quanto ti serve.
  • L'anteprima web non è per i motori. Usa il GLB o l'FBX, non l'anteprima compressa che mostra l'app web.

Domande sulle teste in Unity, Godot e three.js

01Posso usare un MetaHuman in Unity?
Una testa FaceNinja è un normale FBX o GLB, quindi sì. Anche un MetaHuman completo creato in MetaHuman Creator può essere usato in altri motori con la licenza di Epic da giugno 2025; controlla i suoi termini.
02I 52 blendshape vengono importati?
Sì, con i loro nomi ARKit: come BlendShapes sullo Skinned Mesh Renderer in Unity, Blend Shapes sul MeshInstance3D in Godot e morph target in three.js.
03Ci sono i capelli?
Non in questi file. In Unreal li forniscono i groom MetaHuman; negli altri motori, aggiungi capelli tuoi.
04Quale formato è più leggero?
Il GLB con forme ARKit pesa circa 105 MB con texture 4K, e il GLB statico circa 65 MB. Le texture 2K li rendono entrambi più leggeri.

Posso provare una testa con tutte le 52 forme?

Sì. Registrati gratis e scarica le 20 teste di esempio: ogni GLB e FBX le ha tutte e 52.