FaceNinja

Gids · Unity · Godot 4 · three.js

Gebruik je hoofd in Unity, Godot of three.js.

Een FaceNinja-hoofd is een gewone GLB of FBX op MetaHuman-topologie, met ogen, tanden, 4K-textures en de 52 ARKit-blendshapes, dus het werkt ook buiten Unreal. Zo breng je het naar Unity, Godot 4 en three.js, en zo beweeg je het gezicht vanuit code.

Een FaceNinja-hoofd gerenderd in three.js met de mond open in een glimlach
Voorbeeld S-16, een synthetische mens, in three.js geladen uit de GLB met ARKit-blendshapes, met jawOpen en de twee mouthSmile-blendshapes opengedraaid. Screenshot van onze eigen testpagina.

Welk bestand voor welke engine

Bestanden per engine
EngineBestandEenheden
UnityFBX met ARKit-blendshapesCentimeters; Unity zet ze om naar meters
Godot 4GLB met ARKit-blendshapesMeters, Y-up
three.jsGLB met ARKit-blendshapesMeters, Y-up

Beide zijn op ware grootte. Haar zit niet in de GLB of de FBX: in Unreal vervangen MetaHuman-grooms het; in andere engines voeg je zelf haar toe.

Mag ik een MetaHuman in Unity gebruiken?

Een FaceNinja-hoofd is je eigen bestand, op MetaHuman-topologie, onder onze voorwaarden: gebruik het in elke engine. Een MetaHuman die je in MetaHuman Creator bouwt, valt onder de licentie van Epic, die sinds juni 2025 ook andere engines en tools toestaat (licentiepagina van Epic).

Unity: importeer de FBX

  1. Haal de FBX binnen

    Download de FBX met ARKit-blendshapes en zet hem in de map Assets van je project.

  2. Controleer de importinstellingen

    Laat op het tabblad Model Convert Units aan staan, zodat de centimeters meters worden, en ook Import BlendShapes (de standaard). Apply.

  3. Extraheer de materialen

    Extraheer op het tabblad Materials de textures en materialen, zodat je ze kunt bewerken. In URP of HDRP zet je de materialen om naar de Lit-shader van die pipeline.

  4. Zoek de blendshapes

    Plaats het hoofd in een scène. De Skinned Mesh Renderer toont de 52 blendshapes onder BlendShapes, genoemd naar de ARKit-blendshapes.

  5. Stuur ze aan vanuit code

    Gewichten lopen in Unity van 0 tot 100.

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

Liever GLB? Unity leest het met een glTF-importpakket, zoals glTFast.

Godot 4: importeer de GLB

  1. Haal de GLB binnen

    Download de GLB met ARKit-blendshapes en kopieer hem naar je project. Godot importeert hem als scène, in meters.

  2. Zoek de blendshapes

    Open de scène en selecteer de MeshInstance3D van het hoofd. De Inspector toont de blend shapes met hun ARKit-namen onder Blend Shapes.

  3. Stuur ze aan vanuit code

    Gewichten lopen in Godot van 0 tot 1.

    Code
    # 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: laad de GLB

  1. Laad hem met GLTFLoader

    Het hoofd opent als meerdere meshes (huid, ogen, tanden enzovoort); elke mesh draagt dezelfde 52 blendshapenamen.

  2. Stel de blendshapes in op naam

    morphTargetDictionary koppelt elke ARKit-naam aan zijn index in morphTargetInfluences; gewichten lopen van 0 tot 1.

    Code
    // 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. Heldere ogen

    Voor heldere, reflecterende ogen in three.js download je met de optie cornea=transmission, of je vervangt de corneamaterialen bij het laden van het bestand (docs EN).

We hebben de GLB van dit voorbeeld voor deze gids in three.js geladen: hij opent als 6 meshes, en elke mesh bevat alle 52 ARKit-namen.

Goed om te weten

  • Zelfde mesh, zelfde rig. Elk hoofd heeft dezelfde vertexvolgorde en UV's, dus een setup die je voor één hoofd maakt, werkt voor allemaal.
  • Schaal. Elk bestand is op ware grootte. De downloadoptie measured schaalt een hoofd naar een schatting van de maat van de persoon.
  • Lichtere bestanden. Vraag 2K-textures aan met de downloadoptie texture_size als 4K meer is dan je nodig hebt.
  • Het webvoorbeeld is niet voor engines. Gebruik de GLB of FBX, niet het gecomprimeerde voorbeeld dat de webapp toont.

Vragen over hoofden in Unity, Godot en three.js

01Mag ik een MetaHuman in Unity gebruiken?
Een FaceNinja-hoofd is een gewone FBX of GLB, dus ja. Een volledige MetaHuman uit MetaHuman Creator mag sinds juni 2025 onder de licentie van Epic ook in andere engines worden gebruikt; bekijk de voorwaarden.
02Komen de 52 blendshapes mee?
Ja, met hun ARKit-namen: als BlendShapes op de Skinned Mesh Renderer in Unity, Blend Shapes op de MeshInstance3D in Godot en morph targets in three.js.
03Zit er haar bij?
Niet in deze bestanden. In Unreal leveren MetaHuman-grooms het haar; in andere engines voeg je zelf haar toe.
04Welk formaat is kleiner?
De GLB met ARKit-blendshapes is ongeveer 105 MB met 4K-textures, de statische GLB ongeveer 65 MB. Met 2K-textures worden beide kleiner.

Kan ik een hoofd met alle 52 blendshapes proberen?

Ja. Meld je gratis aan en download de 20 voorbeeldhoofden: elke GLB en FBX heeft alle 52.