FaceNinja

Anleitung · Unity · Godot 4 · three.js

Ihren Kopf in Unity, Godot oder three.js verwenden.

Ein FaceNinja-Kopf ist eine ganz normale GLB- oder FBX-Datei auf MetaHuman-Topologie, mit Augen, Zähnen, 4K-Texturen und den 52 ARKit-Blendshapes, und funktioniert deshalb auch außerhalb von Unreal. So bringen Sie ihn in Unity, Godot 4 und three.js und bewegen das Gesicht per Code.

Ein FaceNinja-Kopf, in three.js gerendert, mit lächelnd geöffnetem Mund
Beispiel S-16, eine synthetische Person, in three.js aus der GLB-Datei mit ARKit-Blendshapes geladen, mit aufgedrehtem jawOpen und den beiden mouthSmile-Blendshapes. Screenshot von unserer eigenen Testseite.

Welche Datei für welche Engine

Dateien nach Engine
EngineDateiEinheiten
UnityFBX mit ARKit-BlendshapesZentimeter; Unity rechnet sie in Meter um
Godot 4GLB mit ARKit-BlendshapesMeter, Y-up
three.jsGLB mit ARKit-BlendshapesMeter, Y-up

Beide sind in Lebensgröße. Haare sind weder in der GLB- noch in der FBX-Datei: In Unreal ersetzen MetaHuman-Grooms sie; in anderen Engines fügen Sie eigene Haare hinzu.

Darf ich einen MetaHuman in Unity verwenden?

Ein FaceNinja-Kopf ist Ihre eigene Datei, auf MetaHuman-Topologie, unter unseren Bedingungen: Verwenden Sie ihn in jeder Engine. Ein MetaHuman, den Sie in MetaHuman Creator bauen, fällt unter die Lizenz von Epic, die seit Juni 2025 auch andere Engines und Tools erlaubt (Lizenzseite von Epic).

Unity: die FBX-Datei importieren

  1. Die FBX-Datei einbinden

    Laden Sie die FBX-Datei mit ARKit-Blendshapes herunter und ziehen Sie sie in den Assets-Ordner Ihres Projekts.

  2. Die Importeinstellungen prüfen

    Lassen Sie im Tab Model Convert Units eingeschaltet, damit aus den Zentimetern Meter werden, und Import BlendShapes ebenfalls (die Voreinstellung). Apply.

  3. Die Materialien extrahieren

    Extrahieren Sie im Tab Materials die Texturen und Materialien, damit Sie sie bearbeiten können. In URP oder HDRP konvertieren Sie die Materialien in den Lit-Shader der Pipeline.

  4. Die Blendshapes finden

    Platzieren Sie den Kopf in einer Szene. Der Skinned Mesh Renderer listet die 52 Blendshapes unter BlendShapes, benannt nach den ARKit-Blendshapes.

  5. Per Code steuern

    Gewichte reichen in Unity von 0 bis 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);

Lieber GLB? Unity liest das Format mit einem glTF-Importer-Paket wie glTFast.

Godot 4: die GLB-Datei importieren

  1. Die GLB-Datei einbinden

    Laden Sie die GLB-Datei mit ARKit-Blendshapes herunter und kopieren Sie sie in Ihr Projekt. Godot importiert sie als Szene, in Metern.

  2. Die Blendshapes finden

    Öffnen Sie die Szene und wählen Sie die MeshInstance3D des Kopfs aus. Der Inspector listet die Blend Shapes unter Blend Shapes mit ihren ARKit-Namen.

  3. Per Code steuern

    Gewichte reichen in Godot von 0 bis 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: die GLB-Datei laden

  1. Mit GLTFLoader laden

    Der Kopf öffnet sich als mehrere Meshes (Haut, Augen, Zähne und so weiter); jedes trägt dieselben 52 Blendshape-Namen.

  2. Die Blendshapes über den Namen setzen

    morphTargetDictionary ordnet jedem ARKit-Namen seinen Index in morphTargetInfluences zu; Gewichte reichen von 0 bis 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. Klare Augen

    Für klare, spiegelnde Augen in three.js laden Sie mit der Option cornea=transmission herunter, oder Sie tauschen beim Laden der Datei die Hornhaut-Materialien aus (Doku EN).

Wir haben die GLB-Datei dieses Beispiels für diese Anleitung in three.js geladen: Sie öffnet sich als 6 Meshes, und jedes listet alle 52 ARKit-Namen.

Gut zu wissen

  • Gleiches Mesh, gleiches Rig. Jeder Kopf hat dieselbe Vertex-Reihenfolge und dieselben UVs, deshalb funktioniert ein Setup, das Sie für einen Kopf bauen, für alle.
  • Maßstab. Jede Datei ist in Lebensgröße. Die Download-Option measured skaliert einen Kopf auf eine Schätzung der Größe der Person.
  • Leichtere Dateien. Fordern Sie mit der Download-Option texture_size 2K-Texturen an, wenn 4K mehr ist, als Sie brauchen.
  • Die Web-Vorschau ist nicht für Engines gedacht. Verwenden Sie die GLB- oder FBX-Datei, nicht die komprimierte Vorschau, die die Web-App zeigt.

Fragen zu Köpfen in Unity, Godot und three.js

01Darf ich einen MetaHuman in Unity verwenden?
Ein FaceNinja-Kopf ist eine ganz normale FBX- oder GLB-Datei, also ja. Auch ein vollständiger MetaHuman aus MetaHuman Creator darf seit Juni 2025 unter der Lizenz von Epic in anderen Engines verwendet werden; prüfen Sie deren Bedingungen.
02Kommen die 52 Blendshapes mit?
Ja, mit ihren ARKit-Namen: als BlendShapes am Skinned Mesh Renderer in Unity, als Blend Shapes an der MeshInstance3D in Godot und als Morph Targets in three.js.
03Sind Haare dabei?
Nicht in diesen Dateien. In Unreal liefern MetaHuman-Grooms die Haare; in anderen Engines fügen Sie eigene hinzu.
04Welches Format ist kleiner?
Die GLB-Datei mit ARKit-Blendshapes hat mit 4K-Texturen etwa 105 MB, die statische GLB-Datei etwa 65 MB. Mit 2K-Texturen werden beide kleiner.

Kann ich einen Kopf mit allen 52 Shapes ausprobieren?

Ja. Registrieren Sie sich kostenlos und laden Sie die 20 Beispielköpfe herunter: Jedes GLB und FBX hat alle 52.