Manifest Format
A manifest is a .mhajson file that captures the complete state of a batch queue —
global settings, every job and its options, and the artifact records written after processing.
Manifests auto-save on completion and can be exported, shared, and reloaded.
Auto-save location
After every batch run the active manifest is written automatically to:
YourProject/Saved/MHABatchProcessor/batch.mhajson This file is overwritten each run. Export a named copy via File → Export Manifest in the batch panel if you need to preserve a specific queue.
Top-level structure
{
"SchemaVersion": 1,
"Settings": { ... },
"Jobs": [ ... ]
} SchemaVersion Int Always 1 for this release. Used by the loader to detect incompatible manifests from future versions. Settings Object Snapshot of all Global Settings at the time the manifest was saved. Restored on load. Jobs Array Ordered list of job objects. Processed top to bottom. Settings block
"Settings": {
"OutputPath": "/Game/MHA_Batch",
"SkipAlreadySolved": true,
"MaxConcurrentJobs": 1,
"ExportAnimSequence": true,
"ExportLevelSequence": false,
"UseMetaHumanIDForOutputMesh": true,
"ReduceKeys": false,
"ForceD3D12": false,
"ColumnLayout": [ "JobType", "CaptureData", "Identity", ... ]
} ColumnLayout stores which columns are visible and their order in the queue view.
Restoring a manifest on a different machine will apply the same column layout.
Job object
{
"GUID": "a1b2c3d4-e5f6-...",
"Name": "Scene_01_Take_03",
"JobType": "Mono",
"CaptureDataPath": "/Game/Captures/Scene01/Take03_Capture",
"IdentityPath": "/Game/MetaHumans/Adam/Adam_Identity",
"CameraCalibrationPath": null,
"DepthSequencePath": null,
"SolveOptions": { ... },
"Artifacts": [ ... ]
} GUID String (UUID) Unique identifier generated per job. Stable across re-saves — used to correlate artifact records. Name String Display name shown in the queue row. Defaults to the Capture Data asset name. JobType "Mono" | "Stereo" | "Audio" Determines the pipeline and which solve options are used. CaptureDataPath String (content path) Content Browser path to the UFootageCaptureData asset. IdentityPath String | null Content path to the UMetaHumanIdentity. Null for Audio jobs. CameraCalibrationPath String | null Content path to the camera calibration asset. Stereo jobs only. DepthSequencePath String | null Path to a pre-existing depth sequence. If null on a Stereo job, depth is generated automatically. Artifacts Array Records of assets generated by this job. Written after processing completes. Artifact records
"Artifacts": [
{
"Type": "Performance",
"AssetPath": "/Game/MHA_Batch/Scene01_Take03_Performance",
"State": "Complete",
"CreatedAt": "2025-11-14T09:32:11Z"
},
{
"Type": "AnimSequence",
"AssetPath": "/Game/MHA_Batch/Scene01_Take03_Anim",
"State": "Complete",
"CreatedAt": "2025-11-14T09:34:02Z"
}
] Type String "Performance", "AnimSequence", "LevelSequence", or "Log". AssetPath String Content Browser path where the asset was written. State "Complete" | "Partial" | "Failed" Outcome of this specific artifact. A job can be Complete overall while an optional LevelSequence export is Partial. CreatedAt ISO 8601 timestamp UTC time when the asset was written to disk. Sharing manifests across machines
All asset paths in a manifest are content-relative (/Game/...), not filesystem paths,
so manifests are portable between machines that share the same project structure. Before loading
a manifest on a different machine, verify that:
- All referenced Capture Data, Identity, and Calibration assets exist at the same content paths
- The output path in Settings points to a valid location for the receiving machine
- The same engine plugin versions are installed (manifests do not store plugin version info)