Autonomous MetaHuman — sơ đồ hệ thống

Từ bộ scan đầu 4D tới MetaHuman chạy trong Unreal Engine, rồi quay lại Houdini để gắn tóc, quần áo, phụ kiện và biến đổi morph. Toàn bộ chạy headless, điều khiển từ một panel trong Houdini 22, ứng dụng độc lập hoặc dòng lệnh.

HoudiniHoudini 22.0.466 Unreal Engine 5.8.4 MetaHumanMetaHuman (plugin + cloud) Houdini EngineHoudini Engine (hướng phát triển)
Sơ đồ hệ thống Autonomous MetaHuman 1 · Đầu vào2 · Tool Autonomous MetaHuman 3 · Chạy headless4 · Kết quả Scan đầu 4D15 frame RealityScan neutral · mũ lưới · 12 biểu cảmzip · OBJ + PNG 8KG:\4DScanLab\SCAN2 Profile nhân vậtmột bộ scan → một MetaHuman profiles/<tên>.jsondata_dir · docs_dirue_content_root Knowledge base offlineHoudini 22 · UE 5.8MetaHuman sourcetra cứu API khi phát triển Documents/houdini22.0/Autonomous Metahuman Python Panel trong Houdinipypanel · shelf · package App độc lậpPySide6 · py313 Dòng lệnhrun · status ui/panel.py Scan · Cấu hình · Chạy headlessHoudini / DCC · Tài liệu core/ (chỉ thư viện chuẩn) project.py profile, thư mụcscans.py bảng frame, so sánhpipeline.py nhóm bước, tiến trình houdini/ (cần hou) importer.py DCC → /obj/AMH_*compare.py ICP + heat maprun_job.py job cho hython nướng biểu cảm (RigLogic) Pipeline/build.py41 bước · 5 nhóm · chạy lại được --config profile.jsonargs.json → script → result.json history.jsonl → MD / HTML--list --json (cho panel) hython · Houdini 22 (Vulkan render) process_scans đổi trục, cắt, polyreducebald_target bỏ tóc, sọ từ mũ lưới skin_tone màu da từ texture 8Kverify_* ICP, heat map mm verify_rig 187 control + tư thế đầu MetaHuman for Houdini 1.3.2 DNA · RigLogic 13.2.8 · mh_character_importmh_head · mh_hairstyle_generatormh_export (.abc groom) Unreal Editor 5.8.4 commandlet -run=pythonscriptsmoke · import scan · landmark · texture offscreen -ExecutePythonScript -RenderOffscreen conform HEAD_ONLY · skin · grooms · buildSceneCapture render · export DNA/DCC groom .abc → binding → wardrobe itemAnimSequence + Level Sequence biểu cảm MetaHumanCharacterEditorSubsystemSlate post-tick · keep_python_script_alive Dịch vụ MetaHuman (cloud) auto-rig: joints + blend shapestexture nguồn 2K (Optional Content: local) Houdini Engine — hướng phát triển Thay hython bằng Houdini Engine:HDA chạy trực tiếp trong Unreal core/ gọi được từ Unreal (Python Editor)cần bản Houdini + UE tương thích plugin HoudiniEngine đã có trong UE 5.8 MetaHuman trong Unreal MHC_<profile> tóc scanMHC_<profile>_Bald tóc Optional Content …_Bald_HouGroom tóc HoudiniL_ScanReview* · L_ScanExpressionsLS_…_ScanExpressions (12 biểu cảm) Gói DCChead.dna · body.dna · Maps/_export/<nhân vật>/DCC/ /obj/AMH_<nhân vật> OUT_HEAD · OUT_BODY bề mặt gắnOUT_SKELETON 1 185 joint apex_character pose / animationOUT_GROOM_HEAD chải tóc EXPRESSIONS · OUT_MORPH_TARGETS→ tóc · quần áo (Vellum)→ phụ kiện · morph Scene groom HoudiniGroom_<nhân vật>.hipHair_<nhân vật>.abc Tài liệu & thống kêDocs/*.md → *.html BUILD_HISTORY · RIG_VERIFY · HAIRautonomous-metahuman.pages.dev(Cloudflare Pages · wrangler) scan nguồn → extract build.py --config hython script.py UnrealEditor …py .bin · chân dung · .abc yêu cầu rigrig + texture build export_dcc mh_character_import groom history.jsonl → tài liệu + thống kê nạp ngược vào Houdini (importer.py)

Các thành phần

Đầu vào

Bộ scan RealityScan (zip, thư mục OBJ hoặc OBJ rời) và một profile JSON cho mỗi bộ scan. Mỗi profile có thư mục dữ liệu, tài liệu và Content Unreal riêng nên không ghi đè lên nhau.

Tool Autonomous MetaHuman

Một widget PySide6 dùng cho cả Python Panel trong Houdini lẫn ứng dụng độc lập. Lớp core/ chỉ dùng thư viện chuẩn, nên chạy được ở mọi Python, kể cả trong Unreal sau này. Lớp houdini/ nạp gói DCC và so sánh scan.

build.py

41 bước có điều kiện "đã xong", truyền tham số và kết quả qua JSON, ghi lịch sử từng bước. Panel chạy nó như một tiến trình con và đọc tiến độ từ log.

hython + MetaHuman for Houdini

Xử lý hình học scan, bỏ tóc, đo màu da, ICP, chải tóc trên MH Groom Head, khớp rig mặt bằng RigLogic với numpy. Mỗi ảnh render chạy trong một tiến trình hython riêng (bộ vẽ Vulkan crash ở lần render thứ hai).

Unreal Editor headless

Chế độ commandlet cho các bước nhẹ. Chế độ offscreen (-RenderOffscreen) cho các bước cần Slate hoặc RHI: conform, build, render, xuất DCC, Level Sequence biểu cảm.

Dịch vụ MetaHuman

Auto-rig (joint và blend shape) cùng texture nguồn qua tài khoản Epic. Đây là bước duy nhất gửi dữ liệu ra khỏi máy, và chỉ gửi hình dạng nhân vật, không gửi scan gốc.

Quay lại Houdini

Gói DCC (head.dna, body.dna, Maps) → /obj/AMH_*: bề mặt đầu/thân, skeleton, nhân vật APEX, đầu cho groom, scan tham chiếu, biểu cảm dạng morph. Đơn vị là mét.

Tài liệu & thống kê

Lịch sử build → Markdown/HTML. Trang thống kê và trang này deploy lên Cloudflare Pages bằng wrangler.

Plugin Unreal Metahuman Autonomous

Panel trong Unreal Editor: chạy pipeline (bước Unreal ngay trong editor), phiên Houdini Engine qua named pipe hapi hoặc HARS tự khởi động, geometry spreadsheet, landmark trên đầu MetaHuman và texture, kéo landmark để giải lại rig mặt và xuất AnimSequence.

Đầu trọc: sọ tròn, mịn

Nhân vật đầu trọc được conform vào một mục tiêu đầu trọc: frame neutral (có tóc) bỏ phần tóc, thay bằng hộp sọ lấy từ frame đội mũ lưới. Bản cũ ghép một mảng của frame đội mũ vào chỗ tóc, nên mục tiêu có vết nứt ở chỗ nối, gai ở đỉnh sau, lỗ ở gáy và các vết lõm của dây mũ; MetaHuman conform theo và bị lồi lõm.

  • Khớp sọ trơn (bald.skull.mode = "fit", mặc định): bán kính r(hướng) quanh tâm đầu là một đa thức bậc 6 của hướng nhìn, khớp robust (loại điểm lệch: gai, dây mũ, lưới) vào frame đội mũ đã lùi vào theo bề dày mũ.
  • Các điểm tóc của chính frame neutral được kéo về mặt sọ đó, chuyển tiếp mềm 1,5 cm ở chân tóc. Lưới vẫn là một mảnh nên không có vết nứt hay lỗ.
  • Lấp lỗ mặt nạ tóc: vệt bóng sáng trên tóc đen bị coi là da; điểm nào có hơn 55 % lân cận 2 cm là tóc thì thành tóc.
  • Gỡ nếp gấp: mặt tóc của scan có chỗ chồng lớp, chiếu theo hướng làm lật tam giác; 4 vòng làm mịn rồi chiếu lại lên sọ sẽ gỡ các nếp này.
  • Độ tròn chỉnh bằng bald.skull.smooth (mặc định 1,0; lớn hơn là tròn hơn) và bald.skull.degree (bậc, mặc định 6) trong Pipeline/config.json. "mode": "fill" là cách cũ.
Đầu MetaHuman trọc trước và sau
Đầu MetaHuman trọc (head.dna) trước và sau, tô đất sét

Plugin Unreal: Metahuman Autonomous

Panel ngay trong Unreal Editor (Plugins/MetahumanAutonomous) điều khiển cả quy trình. Houdini làm phần xử lý qua phiên Houdini Engine (named pipe hapi của Houdini đang mở, hoặc server HARS headless do plugin tự khởi động) và qua hython. Rig mặt được giải ngay khi kéo landmark. Mở bằng nút Metahuman Autonomous trên thanh công cụ, menu Tools ▸ Metahuman Autonomous hoặc lệnh MHA.Open.

1Pipeline

  • Nhập scan (thư mục OBJ / zip) lưu scan_source_dir vào profile.
  • Bấm tên nhóm (1 · Scan … 5 · Biểu cảm) để chọn cả nhóm, hoặc tích từng bước; CHẠY BƯỚC CÒN THIẾU.
  • Bước Unreal chạy trong editor này (mặc định bật): build.py không mở thêm Unreal headless; nó ghi yêu cầu vào Saved/MHABridge và plugin chạy script Pipeline/ue trong editor đang mở.
  • Log trực tiếp, thanh tiến độ, Dừng kết thúc cả cây tiến trình.
Trang Pipeline trong Unreal Editor 5.8
Trang Pipeline trong Unreal Editor 5.8

2Houdini Engine

  • Kết nối phiên đang mở: trong Houdini mở Windows ▸ Houdini Engine SessionSync, Named Pipe = hapi, Start.
  • Tự khởi động HARS + kết nối: Houdini Engine headless (pipe mha_hapi), không cần mở Houdini.
  • XỬ LÝ TRONG HOUDINI: file → clean → polyreduce::2.0 → normal trên mesh vào (mặc định OBJ của scan neutral).
  • Bảng geometry spreadsheet theo Point / Vertex / Primitive / Detail, đúng như Houdini.
  • Tạo StaticMesh trong Content (đổi trục Y/Z, lật chiều tam giác như plugin Houdini Engine) và Lưu .hip.
Trang Houdini Engine: mesh đã cook và spreadsheet thuộc tính
Trang Houdini Engine: mesh đã cook và spreadsheet thuộc tính

3Landmark & Rig

Đầu MetaHuman (RigLogic) với landmark rig và landmark scan, texture mặt có chấm landmark
Đầu MetaHuman (RigLogic) với landmark rig và landmark scan, texture mặt có chấm landmark
  • KHỞI ĐỘNG RIG chạy dịch vụ hython (Pipeline/hou/mha_service.py) giữ DNA + RigLogic trong bộ nhớ: một tư thế khoảng 150 ms.
  • Viewport: đầu MetaHuman tô màu từ texture mặt; chấm xanh dương là đỉnh landmark của rig, đường xanh lá là landmark dò được trên scan (đưa về không gian DNA).
  • Khung texture: Head_Basecolor với chấm tại UV của từng đỉnh landmark; bấm chấm để chọn landmark ở cả hai khung.
  • Dò landmark 2D + 3D chạy ue_landmarks và hou_landmarks3d; Khớp rig mọi frame chạy rig_verify.
  • Timeline phát các frame đã khớp (neutral + 12 biểu cảm), có thể nội suy giữa hai frame.
  • Kéo một landmark rồi thả: bộ giải tìm lại 187 control mặt (khoảng 1,3 s). Các điểm trong Vùng mềm đi theo, điểm xa được ghim nhẹ, nên rig chuyển động theo khoảng kéo một cách tự nhiên.
  • Khớp landmark rig vào landmark scan (autofit): chọn điểm xuất phát tốt nhất rồi giải, khoảng 4 s.
  • XUẤT ANIMSEQUENCE: chuỗi tư thế (hoặc mọi frame) thành curve CTRL_expressions_* cho face AnimBP của MetaHuman.
  • Lưu texture có chấm landmark: PNG trong _mha/ và Texture2D trong Content/…/Textures.
Sau khi kéo một điểm môi dưới xuống 3 mm: rig giải lại, môi đi theo
Sau khi kéo một điểm môi dưới xuống 3 mm: rig giải lại, môi đi theo

Cấu trúc thư mục dự án

Dự án nằm ở F:\Unreal Projects\AutonomousMetaHuman, tổng 18,1 GB (đo lúc sinh trang). Màu cho biết loại dữ liệu và việc nên làm với nó. Thanh dưới mỗi thư mục so với thư mục cấp trên lớn nhất.

Mã nguồn & cấu hình — Giữ, nên đưa vào gitDữ liệu gốc — Giữ, không tạo lại đượcDữ liệu pipeline sinh ra — Tạo lại được bằng build.pyAsset Unreal — Tạo lại được bằng build.py (lâu)Tài liệu & báo cáo — Sinh từ lịch sử buildCache / tạm — Xoá được khi Unreal đã đóng
Đường dẫn
Dung lượng
Nội dung
AutonomousMetaHuman.uproject
1 KB
Mã nguồn & cấu hìnhDự án Unreal 5.8 chỉ có Content (không có C++). Bật PythonScriptPlugin, EditorScriptingUtilities, GeometryScripting, họ plugin MetaHuman (Character, SDK, CoreTech, DepthProcessing…), RigLogic, DNACalib, HairStrands, AlembicHairImporter, Interchange. Sinh bởi Pipeline/make_project.py.
Config
11 KB
Mã nguồn & cấu hìnhCác file Default*.ini của Unreal: Engine (renderer, Python), Editor, Game, Input. Cũng do make_project.py ghi.
Pipeline
426 KB
Mã nguồn & cấu hìnhToàn bộ mã của pipeline. Đây là thư mục quan trọng nhất để sao lưu.
build.py
62 KB
Mã nguồn & cấu hìnhBộ điều phối: 41 bước @stage chia 5 nhóm, mỗi bước có điều kiện “đã xong”. Truyền tham số qua args.json, nhận kết quả qua result.json, ghi history.jsonl. Tuỳ chọn: --config, --list --json, --force, --keep-going, --docs.
config.json
2 KB
Mã nguồn & cấu hìnhProfile SCAN2 (khoá profile), cũng là mẫu khi tạo profile mới: thư mục scan nguồn, tên nhân vật, frame neutral và frame mũ, số điểm giảm lưới, tóc, đường dẫn Unreal và Houdini.
profiles
0 B
Mã nguồn & cấu hìnhMỗi file <tên>.json là một profile: chỉ ghi những khoá khác config.json, cùng data_dir, docs_dir, ue_content_root riêng để các bộ scan không ghi đè lên nhau.
hou
171 KB
Mã nguồn & cấu hìnhScript chạy trong hython: process_scans (đổi trục, cắt, giảm lưới, chân dung), bald_target (bỏ tóc), skin_tone, iris_tone, landmarks_3d, verify_rig (RigLogic + numpy), compare_expressions, groom_workspace…
ue
81 KB
Mã nguồn & cấu hìnhScript Python chạy trong Unreal Editor headless: import_scans, landmarks_all, conform_character, rig_character, skin_apply, build_character, export_character, add_grooms, make_expression_anim, render_expressions…
mha_service.py
15 KB
Mã nguồn & cấu hìnhDịch vụ rig cho plugin Unreal: giữ DNA + RigLogic, lệnh eval / solve / autofit qua stdin/stdout.
stats_site.py
35 KB
Mã nguồn & cấu hìnhSinh trang thống kê Docs/site/stats/ từ lịch sử build.
system_site.py
22 KB
Mã nguồn & cấu hìnhSinh trang này (sơ đồ, thư mục, cách dùng panel; nội dung hai phần sau nằm ở site_guide.py).
SourceData
14,3 GB
Dữ liệu pipeline sinh raDữ liệu: bản sao scan gốc và mọi kết quả trung gian. Phần lớn dung lượng dự án nằm ở đây. Profile mới tạo thêm thư mục cạnh SCAN2.
profiles
14,3 GB
Dữ liệu pipeline sinh raMột thư mục cho mỗi profile. Hiện chỉ có SCAN2 (profile lưu trong Pipeline/config.json).
SCAN2
14,3 GB
Dữ liệu pipeline sinh raDữ liệu của profile SCAN2.
Scans
11,3 GB
Dữ liệu gốcScan của profile, chép từ thư mục nguồn (G:\4DScanLab\SCAN2) bởi bước extract: mỗi frame một thư mục với OBJ, MTL và texture 8K. Bước extract chép lại được khi thư mục nguồn còn; hãy giữ thư mục nguồn.
Processed
3,0 GB
Dữ liệu pipeline sinh raKết quả của các bước. Xoá được rồi chạy lại build.py, nhưng mất nhiều giờ.
FrameNN
1,8 GB
Dữ liệu pipeline sinh raTừng frame: .bgeo.sc đã xử lý, _canon.obj đưa vào Unreal, _conform.bin, _diffuse.png, _portrait.png, landmark 2D và 3D.
*.json
48 KB
Dữ liệu pipeline sinh raKết quả từng bước: process.json, landmarks_all.json, neutral_selection.json (xếp hạng neutral), portrait_analysis.json, ue_conform*.json, ue_rig*.json.
_inspect
21,8 MB
Dữ liệu pipeline sinh raẢnh xem trước 6 hướng và ảnh chân dung tổng hợp (hou_inspect).
_bald
41,2 MB
Dữ liệu pipeline sinh raĐầu trọc: mặt nạ tóc trên frame neutral, sọ trơn khớp từ frame đội mũ lưới (chế độ fit), lưới bald, vỏ tóc, ảnh trước / sau.
_textures*
67,4 MB
Dữ liệu pipeline sinh raTexture xuất từ Unreal cho từng nhân vật (thường, bald, HouGroom) và bản _before trước khi chỉnh tông da.
_skin
885 KB
Dữ liệu pipeline sinh raĐo tông da scan so với MetaHuman, kết quả fit.
_grooms
91 KB
Dữ liệu pipeline sinh raTóc Optional Content đã gắn, ảnh ứng viên, màu mống mắt.
_groom
230,1 MB
Dữ liệu pipeline sinh raScene chải tóc Houdini Groom_<nhân vật>.hip và ảnh kiểm tra.
_render
12,0 MB
Dữ liệu pipeline sinh raẢnh render Unreal 4 góc của nhân vật trọc và nhân vật tóc Houdini.
_export
190,8 MB
Dữ liệu pipeline sinh raDNA đầu / thân và gói DCC (head.dna, body.dna, Maps, Masks) mà panel nạp vào Houdini.
_houdini
—
Dữ liệu pipeline sinh raFile .hip do panel tạo (nạp nhân vật, so sánh scan) và biểu cảm đã nướng thành morph.
_verify
13,1 MB
Dữ liệu pipeline sinh raICP MetaHuman so với scan, heat map mm (_verify_bald: cho nhân vật trọc).
_landmarks3d
31,4 MB
Dữ liệu pipeline sinh raĐường landmark nâng lên lưới scan (hou_landmarks3d).
_rig_verify
314,7 MB
Dữ liệu pipeline sinh raKhớp rig vào 12 scan biểu cảm (landmark 3D): rig.png, heat.png, scan.png, rig_fit.bgeo.sc mỗi frame, ue_render/, compare_2d_3d. _rig_verify_2d là bản landmark 2D để so sánh.
dna
20,5 MB
Dữ liệu pipeline sinh raDNA trung gian của các bước conform và rig.
_mha
4,4 MB
Dữ liệu pipeline sinh raFile trao đổi của plugin Unreal: topology.bin, pose.bin, yêu cầu xuất animation, texture có chấm landmark.
Content
2,7 GB
Asset UnrealAsset Unreal do pipeline tạo. Mở được bằng Unreal Editor như mọi dự án.
AutonomousMetaHuman
2,4 GB
Asset UnrealMột thư mục con cho mỗi profile (ue_content_root).
SCAN2
2,4 GB
Asset UnrealAsset của profile SCAN2 (thêm _Smoke của bước kiểm tra).
Scans
143,2 MB
Asset UnrealStatic mesh và texture của scan.
Characters
419,7 MB
Asset UnrealMetaHuman Character MHC_SCAN2, MHC_SCAN2_Bald, MHC_SCAN2_Bald_HouGroom.
MetaHumans
576,6 MB
Asset UnrealNhân vật đã build (blueprint, mesh, material). MetaHumansBald, MetaHumansHouGroom cho hai biến thể kia.
Animations
870 KB
Asset UnrealAnimSequence 12 biểu cảm khớp từ scan.
Maps
1,0 MB
Asset UnrealLevel L_ScanReview* và L_ScanExpressions.
Grooms
329,6 MB
Asset UnrealGroom chải trong Houdini (Hair_MHC_SCAN2_Bald: groom, binding, wardrobe item; file .abc ở ArtSource) và Groom Starter Kit Hair_MyGroom làm mẫu.
__ExternalActors__
29,9 MB
Asset UnrealActor của level lưu mỗi actor một file (World Partition). Unreal tự quản.
Docs
14,0 MB
Tài liệu & báo cáoTài liệu và báo cáo. File .md là nguồn, .html sinh từ đó.
workflow_assets
1,9 MB
Tài liệu & báo cáoẢnh minh hoạ cho workflow_autonomous_metahuman.html.
profiles
10,1 MB
Tài liệu & báo cáoTài liệu, lịch sử và log riêng của từng profile.
SCAN2
10,1 MB
Tài liệu & báo cáoBUILD_HISTORY.md/.html của profile SCAN2.
history
74 KB
Tài liệu & báo cáohistory.jsonl: mỗi lần chạy một bước là một dòng (thời gian, trạng thái, số liệu).
runs
9,9 MB
Tài liệu & báo cáo<thời điểm>/console.log: log đầy đủ của từng lần chạy.
site
1,8 MB
Tài liệu & báo cáoTrang này, trang thống kê stats/ và ảnh img/. Deploy lên Cloudflare Pages.
Saved
317,7 MB
Cache / tạmLog, crash, autosave và cấu hình người dùng của Unreal. Log ở Saved/Logs hữu ích khi một bước Unreal lỗi.
Intermediate
618,8 MB
Cache / tạmFile tạm của Unreal (shader, build). Unreal tự tạo lại.
DerivedDataCache
13,4 MB
Cache / tạmCache dữ liệu dẫn xuất (texture nén, shader). Unreal tự tạo lại.
.wrangler
113 B
Cache / tạmCache của wrangler khi deploy trang lên Cloudflare.
Plugins
76,8 MB
Mã nguồn & cấu hìnhPlugin của dự án.
MetahumanAutonomous
76,8 MB
Mã nguồn & cấu hìnhPlugin Unreal Metahuman Autonomous: panel điều khiển pipeline, phiên Houdini Engine (HAPI), landmark và giải rig mặt. Mã C++ ở Source/, script Python của editor ở Content/Python/, bản đã biên dịch ở Binaries/Win64.
.claude
251 B
Mã nguồn & cấu hìnhCài đặt Claude Code cho dự án (launch.json).

Thư mục tool Documents\houdini22.0\Autonomous Metahuman (312 KB)

Đường dẫn
Dung lượng
Nội dung
python/autonomous_metahuman
299 KB
Mã nguồn & cấu hìnhGói Python của tool.
core
37 KB
Mã nguồn & cấu hìnhChỉ dùng thư viện chuẩn: project.py (profile, thư mục, settings), scans.py (bảng frame, so sánh A/B), pipeline.py (nhóm bước, chạy build.py, đọc tiến độ).
houdini
53 KB
Mã nguồn & cấu hìnhCần hou: importer.py (gói DCC → /obj/AMH_*, nướng biểu cảm), compare.py (ICP + heat map), run_job.py (job cho hython khi chạy ngoài Houdini).
ui
205 KB
Mã nguồn & cấu hìnhpanel.py: giao diện PySide6 dùng chung cho Python Panel và ứng dụng độc lập; app.py: cửa sổ độc lập.
__main__.py
2 KB
Mã nguồn & cấu hìnhDòng lệnh: gui, status, run (--profile, --project, --force).
python_panels
856 B
Mã nguồn & cấu hìnhAutonomousMetaHuman.pypanel: khai báo Python Panel autonomous_metahuman.
toolbar
2 KB
Mã nguồn & cấu hìnhShelf autonomous_metahuman.shelf: AMH Panel, AMH Import, AMH Reload.
run_standalone.bat
307 B
Mã nguồn & cấu hìnhMở tool không cần Houdini (Python conda py313 có PySide6 + numpy).
settings.json
133 B
Mã nguồn & cấu hìnhThư mục dự án, profile dùng lần cuối, đường dẫn Python / hython tuỳ chọn.
README.md
10 KB
Tài liệu & báo cáoHướng dẫn tool (bản HTML: README.html), ảnh trong docs/.
../packages/AutonomousMetahuman.json
494 B
Mã nguồn & cấu hìnhPackage Houdini: đặt AMH_TOOL, AMH_PROJECT, thêm python/ vào PYTHONPATH và tool vào HOUDINI_PATH.
Dọn dẹp an toàn: đóng Unreal rồi xoá Intermediate, DerivedDataCache, Saved/Autosaves. Sao lưu tối thiểu: Pipeline/, Config/, file .uproject, thư mục tool và bộ scan nguồn; mọi thứ khác build.py tạo lại được (Content và Processed mất vài giờ). Mỗi profile có dữ liệu riêng trong SourceData/profiles/<tên>, Docs/profiles/<tên> và Content/AutonomousMetaHuman/<tên>.

Cách dùng panel Autonomous MetaHuman

Panel là giao diện của pipeline: chọn profile, xem từng scan, chạy các bước headless và nạp kết quả về Houdini. Cùng một panel chạy trong Houdini 22 (Python Panel) hoặc độc lập ngoài Houdini.

1Mở panel

  • Trong Houdini: package packages/AutonomousMetahuman.json tự nạp tool. Bấm AMH Panel trên shelf Autonomous MetaHuman, hoặc tạo pane tab Python Panel rồi chọn Autonomous MetaHuman. Có thể ghim pane vào desktop như mọi pane khác.
  • Không cần Houdini: chạy run_standalone.bat gui. Các thao tác cần Houdini sẽ chạy trong hython và lưu ra file .hip.
  • Dòng lệnh: run_standalone.bat status --profile SCAN2, hoặc run_standalone.bat run rig_verify --profile SCAN2.
  • Shelf còn có AMH Import (nạp gói DCC mới nhất mà không cần mở panel) và AMH Reload (nạp lại mã khi sửa tool).
Pane nhỏ: mọi trang có thanh cuộn thay vì bóp nhỏ nội dung
Pane nhỏ: mọi trang có thanh cuộn thay vì bóp nhỏ nội dung

2Bố cục chung

Thanh bên trái5 trang: Scan, Cấu hình, Chạy, Houdini, Tài liệu. Trang đang mở có vạch xanh.
Ô tìm kiếmLọc theo trang đang mở: tên frame và control mạnh nhất (Scan), tên và mô tả bước (Chạy), tên file (Tài liệu).
ProfileMỗi profile là một bộ scan → một MetaHuman. Nút + tạo profile mới, nút ↻ đọc lại dự án và trạng thái các bước.
Thanh trạng tháiDòng dưới cùng báo việc vừa làm, file cấu hình đang dùng hoặc lỗi.

3Trang Scan: xem và so sánh frame

Trang Scan trong Houdini 22: bộ lọc, banner profile, lưới frame, khung chi tiết của Frame45 ở chế độ Rig
Trang Scan trong Houdini 22: bộ lọc, banner profile, lưới frame, khung chi tiết của Frame45 ở chế độ Rig

Bộ lọc và banner

  • Vai trò: mọi frame, neutral & mũ, biểu cảm đã khớp rig, chưa khớp rig.
  • Xếp theo: tên, giống neutral nhất (theo neutral_selection.json), rig lệch nhiều nhất, miệng mở nhiều nhất, marker dày nhất.
  • Ảnh: ảnh trên thẻ (chân dung, scan, rig khớp, heat map, render Unreal).
  • Banner tóm tắt profile; nút CHẠY PIPELINE mở trang Chạy.

Thẻ frame

  • Nhãn NEUTRAL / MŨ cho frame neutral và frame đội mũ lưới.
  • Dòng phụ: sai lệch rig → scan (mm) và control mạnh nhất, hoặc số điểm nếu chưa khớp rig.
  • Bấm một thẻ để xem chi tiết; thẻ đang chọn có viền xanh.

Khung chi tiết

  • Năm nút ảnh: Ảnh chân dung, Scan, Rig khớp, Heat map sai lệch, UE render Unreal. Nút mờ là ảnh chưa có.
  • Chip: vai trò, đã xử lý, có texture, 4 control mạnh nhất.
  • 6 ô số liệu: số điểm, điểm neutral (thấp = giống neutral), độ mở miệng, mật độ marker, lệch lúc căn ban đầu, lệch sau khi khớp rig.
  • Chọn neutral / Chọn frame mũ ghi neutral_frame / cap_frame vào profile. Chạy lại các bước sau đó để áp dụng.
So sánh hai frame: chọn frame thứ nhất → Đặt làm A, chọn frame thứ hai → Đặt làm B. Bảng So sánh A / B hiện các chỉ số và hiệu B − A. Bấm SO SÁNH 3D TRONG HOUDINI: trong Houdini panel tạo node chứa hai scan, căn ICP B → A (chip Căn ICP), tô heat map khoảng cách và báo trung vị / p90 (mm); chip Đặt cạnh nhau đặt B cạnh A thay vì chồng lên. Ngoài Houdini, kết quả lưu ở _houdini/compare_A_B.hip.

4Trang Cấu hình

  • Dự án Unreal: thư mục có Pipeline/build.py và config.json. Lưu vào settings.json của tool.
  • Nguồn scan: thư mục scan (zip RealityScan, thư mục OBJ hoặc OBJ rời), frame neutral (trống = tự chọn), frame mũ (trống = bỏ nhóm đầu trọc), số điểm sau giảm lưới.
  • Nhân vật: tên nhân vật có tóc scan và nhân vật đầu trọc, tóc Optional Content, melanin tóc.
  • Thư mục & công cụ: thư mục Content trong Unreal, thư mục dữ liệu, tài liệu, Unreal Engine, Houdini ($HFS).
  • Ô trống dùng giá trị của config.json. Bấm LƯU CẤU HÌNH PROFILE; Mở file cấu hình mở JSON để sửa tay.
Trang Cấu hình của profile SCAN2
Trang Cấu hình của profile SCAN2

5Trang Chạy: pipeline headless

Trang Chạy: 5 nhóm bước, cây bước với trạng thái và thời gian, log trực tiếp
Trang Chạy: 5 nhóm bước, cây bước với trạng thái và thời gian, log trực tiếp
  • Ô nhóm ở trên: số bước đã xong / tổng. Viền xanh lá = xong cả nhóm, viền vàng = xong một phần. Bấm ô để chọn hoặc bỏ chọn cả nhóm.
  • Cây bước: tích từng bước; cột trạng thái (✅ ok, ❌ failed, ⏭️ skipped), lần chạy cuối, số giây, mô tả. Di chuột lên bước lỗi để xem lỗi.
  • CHẠY BƯỚC CÒN THIẾU chỉ chạy các bước đã chọn mà chưa xong. Chạy lại đã chọn chạy lại kể cả bước đã xong.
  • Chip Tiếp tục khi có bước lỗi = --keep-going. Dừng kết thúc cả cây tiến trình (build.py, hython, Unreal).
  • Thanh tiến độ đếm bước xong; dòng dưới hiện bước đang chạy và tiến độ chi tiết (dòng [AMH] của script).
  • Log là đầu ra của build.py; bản đầy đủ nằm ở Docs/runs/<thời điểm>/console.log.
  • Lịch sử build mở BUILD_HISTORY.html của profile.
  • Nên đóng dự án trong Unreal Editor khi chạy các bước Unreal: chúng mở cùng dự án ở chế độ headless.

6Trang Houdini: nạp MetaHuman về Houdini

  • Thẻ gói DCC: mỗi nhân vật đã xuất từ Unreal (head.dna, body.dna, số map). Chưa có thì bấm Xuất DCC từ Unreal (headless) (bước bald_export).
  • Chip chọn phần cần tạo: Nhân vật APEX (pose / animation), Đầu cho groom (groom::mh_head), Scan tham chiếu, Biểu cảm → morph (từ kết quả rig_verify).
  • NẠP VÀO HOUDINI tạo /obj/AMH_<nhân vật> bằng MetaHuman for Houdini và mở network đó. Ngoài Houdini: lưu _houdini/<nhân vật>.hip.
  • Mở scene groom .hip mở scene chải tóc của bước bald_groom_houdini.
Trang Houdini: gói DCC của MHC_SCAN2_Bald và các node được tạo
Trang Houdini: gói DCC của MHC_SCAN2_Bald và các node được tạo
NodeDùng để
OUT_RESTMọi lưới và material ở tư thế nghỉ
OUT_HEAD · OUT_BODYBề mặt để gắn tóc, quần áo Vellum, phụ kiện
OUT_SKELETON · apex_characterJoint; nhân vật APEX để pose và animation
OUT_GROOM_HEADĐầu chuẩn của MetaHuman for Houdini để chải tóc
SCAN_REFERENCEScan gốc đặt đúng vị trí để đối chiếu
EXPRESSIONS · OUT_MORPH_TARGETSFrame 1 = nghỉ, sau đó từng biểu cảm; morph delta_<frame>

Đơn vị trong Houdini là mét (DNA và scan dùng cm, importer nhân 0,01).

7Trang Tài liệu

Danh sách file HTML của profile và của dự án (README, PIPELINE, CODE_PATH, HAIR, RIG_VERIFY, BUILD_HISTORY, workflow) cùng hướng dẫn tool. Bấm đúp hoặc chọn rồi bấm MỞ để xem trong trình duyệt. Mở trang hệ thống online mở trang này.

Trang Tài liệu
Trang Tài liệu

8Quy trình cho một bộ scan mới

  1. Bấm + cạnh Profile: đặt tên, chọn thư mục scan nguồn, nhập frame mũ nếu có.
  2. Trang Chạy: bấm ô nhóm 1 · Scan → CHẠY BƯỚC CÒN THIẾU (khoảng 20 phút).
  3. Trang Scan: kiểm tra frame neutral tự chọn và frame mũ; đổi bằng Chọn neutral / Chọn frame mũ nếu cần.
  4. Trang Chạy: chọn nhóm 2 đến 5 → CHẠY BƯỚC CÒN THIẾU (khoảng 1 giờ 15 phút cho cả bộ 15 frame).
  5. Trang Scan: chọn ảnh Heat / UE để xem rig khớp từng biểu cảm tốt đến đâu.
  6. Trang Houdini: NẠP VÀO HOUDINI, rồi gắn tóc, quần áo, phụ kiện lên OUT_HEAD / OUT_BODY.

9Khi có lỗi

Thông báoCách xử lý
Không thấy Pipeline/build.py + config.jsonTrang Cấu hình → chọn đúng thư mục dự án → Tải lại.
Không đọc được trạng thái các bướcPanel không chạy được Python cho build.py; đặt python_exe trong settings.json của tool.
Không thấy hythonĐặt Houdini ($HFS) trong trang Cấu hình (chỉ cần khi chạy ngoài Houdini).
Đang chạy, hãy đợi hoặc bấm DừngMỗi lần chỉ chạy một hàng đợi; đợi xong hoặc bấm Dừng.
Bước Unreal lỗiĐóng Unreal Editor nếu đang mở dự án; xem Saved/Logs và log của lần chạy trong Docs/runs.
Chưa có gói DCCTrang Houdini → Xuất DCC từ Unreal (headless).