FaceNinja

Guide · Unity · Godot 4 · three.js

Använd ditt huvud i Unity, Godot eller three.js.

Ett FaceNinja-huvud är en vanlig GLB- eller FBX-fil med MetaHuman-topologi, med ögon, tänder, 4K-texturer och de 52 ARKit-blendshapes, så det fungerar även utanför Unreal. Så här tar du in det i Unity, Godot 4 och three.js, och så här rör du ansiktet från kod.

Ett FaceNinja-huvud renderat i three.js med munnen öppen i ett leende
Exempel S-16, en syntetisk person, laddad i three.js från GLB-filen med ARKit-blendshapes, med jawOpen och de två mouthSmile-blendshapes uppskruvade. Skärmbild från vår egen testsida.

Vilken fil för vilken motor

Filer per motor
MotorFilEnheter
UnityFBX med ARKit-blendshapesCentimeter; Unity räknar om dem till meter
Godot 4GLB med ARKit-blendshapesMeter, Y-up
three.jsGLB med ARKit-blendshapesMeter, Y-up

Båda är i verklig storlek. Hår finns inte i GLB- eller FBX-filen: i Unreal ersätts det av MetaHuman-grooms; i andra motorer lägger du till eget hår.

Får jag använda en MetaHuman i Unity?

Ett FaceNinja-huvud är din egen fil, med MetaHuman-topologi, enligt våra villkor: använd det i vilken motor som helst. En MetaHuman som du bygger i MetaHuman Creator omfattas av Epics licens, som sedan juni 2025 även tillåter andra motorer och verktyg (Epics licenssida).

Unity: importera FBX-filen

  1. Ta in FBX-filen

    Ladda ner FBX-filen med ARKit-blendshapes och lägg den i projektets Assets-mapp.

  2. Kontrollera importinställningarna

    Låt Convert Units vara påslaget på fliken Model, så att centimetrarna blir meter, och likaså Import BlendShapes (standard). Apply.

  3. Extrahera materialen

    Extrahera texturerna och materialen på fliken Materials så att du kan redigera dem. I URP eller HDRP konverterar du materialen till pipelinens Lit-shader.

  4. Hitta blendshapes

    Placera huvudet i en scen. Skinned Mesh Renderer listar de 52 blendshapes under BlendShapes, namngivna efter ARKit-blendshapes.

  5. Styr dem från kod

    Vikter i Unity går från 0 till 100.

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

Föredrar du GLB? Unity läser det med ett importpaket för glTF, till exempel glTFast.

Godot 4: importera GLB-filen

  1. Ta in GLB-filen

    Ladda ner GLB-filen med ARKit-blendshapes och kopiera den till ditt projekt. Godot importerar den som en scen, i meter.

  2. Hitta blendshapes

    Öppna scenen och markera huvudets MeshInstance3D. Inspector listar blend shapes med deras ARKit-namn under Blend Shapes.

  3. Styr dem från kod

    Vikter i Godot går från 0 till 1.

    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: ladda GLB-filen

  1. Ladda den med GLTFLoader

    Huvudet öppnas som flera mesher (hud, ögon, tänder och så vidare); var och en bär samma 52 blendshape-namn.

  2. Sätt blendshapes efter namn

    morphTargetDictionary kopplar varje ARKit-namn till dess index i morphTargetInfluences; vikterna går från 0 till 1.

    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. Klara ögon

    För klara, reflekterande ögon i three.js laddar du ner med alternativet cornea=transmission, eller byter ut hornhinnematerialen när du laddar filen (dokumentation EN).

Vi laddade det här exemplets GLB-fil i three.js för den här guiden: den öppnas som 6 mesher, och var och en listar alla 52 ARKit-namn.

Bra att veta

  • Samma mesh, samma rigg. Varje huvud har samma vertexordning och UV:er, så en uppsättning du gör för ett huvud fungerar för alla.
  • Skala. Varje fil är i verklig storlek. Nedladdningsalternativet measured skalar ett huvud till en uppskattning av personens storlek.
  • Lättare filer. Be om 2K-texturer med nedladdningsalternativet texture_size när 4K är mer än du behöver.
  • Webbförhandsvisningen är inte för motorer. Använd GLB eller FBX, inte den komprimerade förhandsvisning som webbappen visar.

Frågor om huvuden i Unity, Godot och three.js

01Får jag använda en MetaHuman i Unity?
Ett FaceNinja-huvud är en vanlig FBX- eller GLB-fil, så ja. En fullständig MetaHuman byggd i MetaHuman Creator får sedan juni 2025 också användas i andra motorer enligt Epics licens; kontrollera villkoren.
02Följer de 52 blendshapes med?
Ja, med sina ARKit-namn: som BlendShapes på Skinned Mesh Renderer i Unity, Blend Shapes på MeshInstance3D i Godot och morph targets i three.js.
03Finns det hår?
Inte i de här filerna. I Unreal står MetaHuman-grooms för håret; i andra motorer lägger du till eget hår.
04Vilket format är minst?
GLB-filen med ARKit-blendshapes är ungefär 105 MB med 4K-texturer, och den statiska GLB-filen ungefär 65 MB. 2K-texturer gör båda mindre.

Kan jag prova ett huvud med alla 52 blendshapes?

Ja. Registrera dig gratis och ladda ner de 20 exempelhuvudena: varje GLB och FBX har alla 52.