FaceNinja

Посібник · Unity · Godot 4 · three.js

Використовуйте свою 3D-голову в Unity, Godot чи three.js.

3D-голова FaceNinja — це звичайний GLB або FBX на топології MetaHuman, з очима, зубами, текстурами 4K і 52 блендшейпами ARKit, тож вона працює й поза Unreal. Ось як додати її до Unity, Godot 4 і three.js та рухати обличчям із коду.

3D-голова FaceNinja у three.js із відкритим у посмішці ротом
Приклад S-16, синтетична людина, завантажений у three.js із GLB із формами ARKit: підсилено jawOpen і дві форми mouthSmile. Знімок нашої тестової сторінки.

Який файл для якого рушія

Файли за рушіями
РушійФайлОдиниці
UnityFBX із формами ARKitСантиметри; Unity переводить у метри
Godot 4GLB із формами ARKitМетри, вісь Y вгору
three.jsGLB із формами ARKitМетри, вісь Y вгору

Обидва — у натуральну величину. Волосся немає в GLB чи FBX: в Unreal його замінюють groom MetaHuman; в інших рушіях додайте власне.

Чи можна використовувати MetaHuman у Unity?

3D-голова FaceNinja — ваш власний файл на топології MetaHuman за нашими умовами: використовуйте в будь-якому рушії. MetaHuman, створений у MetaHuman Creator, підпадає під ліцензію Epic, яка з червня 2025 року дозволяє й інші рушії та інструменти (ліцензія Epic).

Unity: імпорт FBX

  1. Додайте FBX

    Завантажте FBX із формами ARKit і перетягніть у теку Assets проєкту.

  2. Перевірте налаштування імпорту

    На вкладці Model залиште Convert Units увімкненим, щоб сантиметри стали метрами, та Import BlendShapes (типово ввімкнено). Застосуйте.

  3. Видобудьте матеріали

    На вкладці Materials видобудьте текстури й матеріали, щоб редагувати їх. У URP чи HDRP перетворіть матеріали на шейдер Lit відповідного конвеєра.

  4. Знайдіть форми

    Розмістіть 3D-голову в сцені. Skinned Mesh Renderer показує 52 форми в BlendShapes під назвами ARKit.

  5. Керуйте з коду

    Ваги в Unity — від 0 до 100.

    Код
    // 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);

Віддаєте перевагу GLB? Unity читає його з пакетом імпорту glTF, як-от glTFast.

Godot 4: імпорт GLB

  1. Додайте GLB

    Завантажте GLB із формами ARKit і скопіюйте в проєкт. Godot імпортує його як сцену в метрах.

  2. Знайдіть форми

    Відкрийте сцену й виберіть MeshInstance3D голови. Inspector показує блендшейпи за назвами ARKit у Blend Shapes.

  3. Керуйте з коду

    Ваги в Godot — від 0 до 1.

    Код
    # 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: завантаження GLB

  1. Завантажте через GLTFLoader

    Голова відкривається як кілька мешів (шкіра, очі, зуби тощо); кожен містить ті самі 52 назви форм.

  2. Задавайте форми за назвою

    morphTargetDictionary зіставляє кожну назву ARKit з індексом у morphTargetInfluences; ваги — від 0 до 1.

    Код
    // 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. Прозорі очі

    Для прозорих очей із відблисками в three.js завантажуйте з параметром cornea=transmission або замініть матеріали рогівки під час завантаження (документація EN).

Для цього посібника ми завантажили GLB цього прикладу в three.js: він містить 6 мешів, кожен із усіма 52 назвами ARKit.

Варто знати

  • Однаковий меш, однаковий риг. Кожна 3D-голова має однаковий порядок вершин і UV, тож налаштування для однієї працює для всіх.
  • Масштаб. Кожен файл — у натуральну величину. Параметр завантаження measured масштабує голову до оціненого розміру людини.
  • Легші файли. Виберіть текстури 2K через параметр texture_size, якщо 4K зайві.
  • Вебперегляд не для рушіїв. Використовуйте GLB чи FBX, а не стиснений попередній перегляд із вебзастосунку.

Запитання про 3D-голови в Unity, Godot і three.js

01Чи можна використовувати MetaHuman у Unity?
3D-голова FaceNinja — звичайний FBX чи GLB, тож так. Повний MetaHuman із MetaHuman Creator також можна використовувати в інших рушіях за ліцензією Epic з червня 2025 року; перевірте умови.
02Чи імпортуються 52 блендшейпи?
Так, за назвами ARKit: як BlendShapes у Skinned Mesh Renderer в Unity, Blend Shapes у MeshInstance3D в Godot і morph targets у three.js.
03Чи є волосся?
У цих файлах — ні. В Unreal його забезпечують groom MetaHuman; в інших рушіях додайте власне.
04Який формат менший?
GLB із формами ARKit має близько 105 МБ із текстурами 4K, статичний GLB — близько 65 МБ. Текстури 2K зменшують обидва.

Чи можна спробувати голову з усіма 52 формами?

Так. Зареєструйтеся безкоштовно й завантажте 20 зразків голів: у кожному GLB і FBX є всі 52.