Poradnik · Unity · Godot 4 · three.js
Użyj swojej głowy w Unity, Godot lub three.js.
Głowa FaceNinja to zwykły plik GLB lub FBX w topologii MetaHuman, z oczami, zębami, teksturami 4K i 52 blendshape’ami ARKit, więc działa też poza Unreal. Oto jak przenieść ją do Unity, Godot 4 i three.js i jak poruszać twarzą z kodu.
Opublikowano

jawOpen i oboma kształtami mouthSmile. Zrzut ekranu z naszej strony testowej.Który plik do którego silnika
| Silnik | Plik | Jednostki |
|---|---|---|
| Unity | FBX z kształtami ARKit | Centymetry; Unity zamienia je na metry |
| Godot 4 | GLB z kształtami ARKit | Metry, Y-up |
| three.js | GLB z kształtami ARKit | Metry, Y-up |
Oba w naturalnej wielkości. Włosów nie ma w GLB ani w FBX: w Unreal zastępują je groomy MetaHuman; w innych silnikach dodaj własne włosy.
Czy mogę użyć MetaHumana w Unity?
Głowa FaceNinja to twój własny plik, w topologii MetaHuman, na naszych warunkach: używaj jej w dowolnym silniku. MetaHumana zbudowanego w MetaHuman Creator obejmuje licencja Epic, która od czerwca 2025 dopuszcza też inne silniki i narzędzia (strona licencji Epic).
Unity: zaimportuj FBX
Dodaj FBX
Pobierz FBX z kształtami ARKit i upuść go do folderu Assets w projekcie.
Sprawdź ustawienia importu
Na zakładce Model zostaw włączone Convert Units, żeby centymetry stały się metrami, oraz Import BlendShapes (domyślnie). Kliknij Apply.
Wyodrębnij materiały
Na zakładce Materials wyodrębnij tekstury i materiały, żeby móc je edytować. W URP lub HDRP przekonwertuj materiały na shader Lit danego potoku.
Znajdź kształty
Umieść głowę na scenie. Skinned Mesh Renderer wymienia 52 kształty w sekcji BlendShapes, nazwane jak kształty ARKit.
Steruj nimi z kodu
Wagi w Unity mają zakres od 0 do 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);
Wolisz GLB? Unity czyta go przez pakiet importera glTF, na przykład glTFast.
Godot 4: zaimportuj GLB
Dodaj GLB
Pobierz GLB z kształtami ARKit i skopiuj go do projektu. Godot importuje go jako scenę, w metrach.
Znajdź kształty
Otwórz scenę i zaznacz MeshInstance3D głowy. Inspector wymienia blend shapes pod nazwami ARKit w sekcji Blend Shapes.
Steruj nimi z kodu
Wagi w Godot mają zakres od 0 do 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: wczytaj GLB
Wczytaj go przez GLTFLoader
Głowa otwiera się jako kilka siatek (skóra, oczy, zęby i tak dalej); każda ma te same 52 nazwy kształtów.
Ustawiaj kształty po nazwie
morphTargetDictionaryprzypisuje każdej nazwie ARKit jej indeks wmorphTargetInfluences; wagi mają zakres od 0 do 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);Przejrzyste oczy
Aby mieć w three.js przejrzyste, odbijające światło oczy, pobierz plik z opcją
cornea=transmissionalbo podmień materiały rogówki przy wczytywaniu (dokumentacja EN).
Na potrzeby tego poradnika wczytaliśmy GLB tego przykładu w three.js: liczba siatek po otwarciu to 6, a każda zawiera wszystkie 52 nazwy ARKit.
Dobrze wiedzieć
- Ta sama siatka, ten sam rig. Każda głowa ma tę samą kolejność wierzchołków i te same UV, więc konfiguracja zrobiona dla jednej głowy działa dla wszystkich.
- Skala. Każdy plik jest w naturalnej wielkości. Opcja pobierania
measuredskaluje głowę do szacunkowego rozmiaru osoby. - Lżejsze pliki. Poproś o tekstury 2K opcją pobierania
texture_size, gdy 4K to więcej, niż potrzebujesz. - Podgląd webowy nie jest dla silników. Używaj GLB lub FBX, nie skompresowanego podglądu z aplikacji webowej.
Pytania o głowy w Unity, Godot i three.js
- 01Czy mogę użyć MetaHumana w Unity?
- Głowa FaceNinja to zwykły plik FBX lub GLB, więc tak. Pełnego MetaHumana zbudowanego w MetaHuman Creator można od czerwca 2025 używać na licencji Epic także w innych silnikach; sprawdź jej warunki.
- 02Czy 52 blendshape’y się importują?
- Tak, pod nazwami ARKit: jako BlendShapes na Skinned Mesh Renderer w Unity, Blend Shapes na MeshInstance3D w Godot i morph targety w three.js.
- 03Czy są włosy?
- Nie w tych plikach. W Unreal dostarczają je groomy MetaHuman; w innych silnikach dodaj własne włosy.
- 04Który format jest mniejszy?
- GLB z kształtami ARKit ma około 105 MB z teksturami 4K, a statyczny GLB około 65 MB. Tekstury 2K zmniejszają oba.
Czy mogę wypróbować głowę ze wszystkimi 52 kształtami?
Tak. Załóż konto za darmo i pobierz 20 przykładowych głów: każdy plik GLB i FBX ma wszystkie 52.