FaceNinja

Guia · Unity · Godot 4 · three.js

Use a sua cabeça no Unity, Godot ou three.js.

Uma cabeça FaceNinja é um GLB ou FBX comum na topologia MetaHuman, com olhos, dentes, texturas 4K e os 52 blendshapes ARKit, então também funciona fora do Unreal. Veja como levá-la para o Unity, o Godot 4 e o three.js, e como mover o rosto por código.

Uma cabeça FaceNinja renderizada no three.js com a boca aberta em um sorriso
Exemplo S-16, uma pessoa sintética, carregado no three.js a partir do GLB com blendshapes ARKit, com jawOpen e os dois blendshapes mouthSmile ativados. Captura da nossa própria página de testes.

Qual arquivo para qual engine

Arquivos por engine
EngineArquivoUnidades
UnityFBX com blendshapes ARKitCentímetros; o Unity converte para metros
Godot 4GLB com blendshapes ARKitMetros, Y para cima
three.jsGLB com blendshapes ARKitMetros, Y para cima

Os dois estão em tamanho real. O cabelo não está no GLB nem no FBX: no Unreal, os grooms do MetaHuman fazem esse papel; em outras engines, adicione o seu próprio cabelo.

Posso usar um MetaHuman no Unity?

Uma cabeça FaceNinja é um arquivo seu, na topologia MetaHuman, sob os nossos termos: use-a em qualquer engine. Um MetaHuman que você cria no MetaHuman Creator fica sob a licença da Epic, que desde junho de 2025 também permite outras engines e ferramentas (página da licença da Epic).

Unity: importe o FBX

  1. Traga o FBX

    Baixe o FBX com blendshapes ARKit e solte-o na pasta Assets do seu projeto.

  2. Confira as configurações de importação

    Na aba Model, deixe Convert Units ativado, para os centímetros virarem metros, e Import BlendShapes ativado (o padrão). Clique em Apply.

  3. Extraia os materiais

    Na aba Materials, extraia as texturas e os materiais para poder editá-los. No URP ou no HDRP, converta os materiais para o shader Lit do pipeline.

  4. Encontre os blendshapes

    Coloque a cabeça em uma cena. O Skinned Mesh Renderer lista os 52 blendshapes em BlendShapes, com os nomes do ARKit.

  5. Controle-os por código

    No Unity, os pesos vão de 0 a 100.

    Código
    // 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);

Prefere GLB? O Unity o lê com um pacote importador de glTF, como o glTFast.

Godot 4: importe o GLB

  1. Traga o GLB

    Baixe o GLB com blendshapes ARKit e copie-o para o seu projeto. O Godot o importa como cena, em metros.

  2. Encontre os blendshapes

    Abra a cena e selecione o MeshInstance3D da cabeça. O Inspector lista os blend shapes pelos nomes do ARKit em Blend Shapes.

  3. Controle-os por código

    No Godot, os pesos vão de 0 a 1.

    Código
    # 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: carregue o GLB

  1. Carregue-o com o GLTFLoader

    A cabeça abre como várias malhas (pele, olhos, dentes etc.); cada uma traz os mesmos 52 nomes de blendshapes.

  2. Defina os blendshapes pelo nome

    morphTargetDictionary liga cada nome do ARKit ao seu índice em morphTargetInfluences; os pesos vão de 0 a 1.

    Código
    // 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. Olhos transparentes

    Para olhos transparentes e com reflexo no three.js, baixe com a opção cornea=transmission ou troque os materiais da córnea ao carregar o arquivo (docs EN).

Carregamos o GLB deste exemplo no three.js para este guia: ele abre como 6 malhas, e cada uma lista os 52 nomes do ARKit.

Bom saber

  • Mesma malha, mesmo rig. Toda cabeça tem a mesma ordem de vértices e as mesmas UVs, então o que você configura para uma cabeça funciona para todas.
  • Escala. Todo arquivo está em tamanho real. A opção de download measured escala uma cabeça para uma estimativa do tamanho da pessoa.
  • Arquivos mais leves. Peça texturas 2K com a opção de download texture_size quando 4K for mais do que você precisa.
  • A prévia web não é para engines. Use o GLB ou o FBX, não a prévia comprimida que o app web mostra.

Perguntas sobre cabeças no Unity, Godot e three.js

01Posso usar um MetaHuman no Unity?
Uma cabeça FaceNinja é um FBX ou GLB comum, então sim. Um MetaHuman completo criado no MetaHuman Creator também pode ser usado em outras engines sob a licença da Epic desde junho de 2025; confira os termos.
02Os 52 blendshapes vêm junto?
Sim, com os nomes do ARKit: como BlendShapes no Skinned Mesh Renderer no Unity, Blend Shapes no MeshInstance3D no Godot e morph targets no three.js.
03Tem cabelo?
Não nesses arquivos. No Unreal, os grooms do MetaHuman fazem esse papel; em outras engines, adicione o seu próprio cabelo.
04Qual formato é menor?
O GLB com blendshapes ARKit tem cerca de 105 MB com texturas 4K, e o GLB estático cerca de 65 MB. Texturas 2K deixam os dois menores.

Posso testar uma cabeça com os 52 blendshapes?

Sim. Cadastre-se grátis e baixe as 20 cabeças de exemplo: todo GLB e FBX tem os 52.