Installation

How to install ARKit to MetaHuman?

The add-on supports Blender 3.3 or newer through a legacy add-on install. Blender 4.2 or newer can also install it as an extension.

Legacy install: open Edit > Preferences > Add-ons, click Install, choose the downloaded zip, and enable ARKit to MetaHuman.

Extension install: open Edit > Preferences > Get Extensions, click Install from Disk, choose the extension zip, and enable the add-on if it is not enabled automatically.

Quick Start

Rename a facial rig in a few steps.

  1. Select the mesh or meshes with ARKit facial shape keys.
  2. Open the 3D Viewport sidebar with N and choose the ARKit tab.
  3. Choose the scope, then click Preview Renames and review the report.
  4. Click Apply Renames.
  5. Optional: click Save Report to write the last report to a text file.

Applying the operation twice is safe. Keys that already use their target name are reported as Already Renamed and are not changed again.

Scope & Options

What each setting does.

Active MeshProcess only the active object.
Selected MeshesProcess every selected object. This is the default.
All MeshesProcess every object in the current view layer.
Update Animation & DriversRewrite shape key F-curves, NLA strip actions and shape key drivers. Enabled by default.
Skip Missing KeysApply the available renames and report missing sources. Disable it to cancel the whole run when any mapping source is missing.

What Gets Changed

The operation is limited to shape key names and their references.

Matching source keysRenamed to the mapped MetaHuman Live Link target.
Values, sliders, mute, vertex groups, relative keysPreserved and snapshotted before the rename, then verified afterwards.
Key orderPreserved.
Current action and NLA actionsShape key F-curve paths are rewritten to the new names.
Drivers on the shape key data-blockkey_blocks[...] paths are rewritten.
BasisNever renamed.
Unmapped keysLeft untouched and listed in the report.
Linked-library dataReported as read-only and skipped.

Reading the Report

Every run writes a report to Text Editor > Text as ARKit2MH_report.

RenamedThe source key was renamed successfully.
Already RenamedThe target name already exists; no change was needed.
Missing SourcesThe ARKit key is not present in that shape key data-block.
ConflictsThe target exists. The source is left untouched.
Unmapped KeysExisting keys outside the mapping; they are not changed.
Read-Only DataLinked-library shape keys that Blender does not allow editing.
ErrorsBlender refused the rename or the post-rename verification failed.

Save Report exports the current report as a plain text file. The report also lists reference updates and warns when an action is shared by multiple data-blocks.

Conflicts & Missing Keys

How to resolve the two common blockers.

A conflict means the target name already exists on the same shape key data-block. Blender would normally append .001; this add-on refuses to do that. Rename or remove the existing target key, then run the rename again.

A missing source means the ARKit key was not found. With Skip Missing Keys enabled, the remaining available keys are renamed. A rig without a Neutral key reports that single missing entry and still renames the other matching keys.

Animation & Drivers

Keeping the rig connected after the rename.

With Update Animation & Drivers enabled, the add-on rewrites shape key paths in the active action and in actions used by NLA strips. It supports both legacy actions and layered actions. Drivers attached to the shape key data-block are rewritten as well.

If an action is shared by other data-blocks, the report warns about it. Object-level drivers that reference key_blocks[...] outside the shape key data-block are not rewritten and should be checked manually.

Built-in Mapping

52 ARKit pairs plus Neutral to Default. Targets are applied verbatim, including case.

ARKit sourceMetaHuman Live Link target
NeutralDefault
EyeBlinkLeftctrl_expressions_eyeblinkl
EyeLookDownLeftctrl_expressions_eyelookdownl
EyeLookOutLeftctrl_expressions_eyelookleftl
EyeLookInLeftctrl_expressions_eyelookrightl
EyeLookUpLeftctrl_expressions_eyelookupl
EyeSquintLeftctrl_expressions_eyesquintinnerl
EyeWideLeftctrl_expressions_eyewidenl
EyeBlinkRightctrl_expressions_eyeblinkr
EyeLookDownRightctrl_expressions_eyelookdownr
EyeLookInRightctrl_expressions_eyelookleftr
EyeLookOutRightctrl_expressions_eyelookrightr
EyeLookUpRightctrl_expressions_eyelookupr
EyeSquintRightctrl_expressions_eyesquintinnerr
EyeWideRightctrl_expressions_eyewidenr
JawForwardctrl_expressions_jawfwd
JawLeftctrl_expressions_jawleft
JawRightctrl_expressions_jawright
JawOpenctrl_expressions_jawOpen
MouthClosectrl_expressions_mouthlipspurseul
MouthFunnelctrl_expressions_mouthfunnelul
MouthPuckerctrl_expressions_mouthlipspurseur
MouthLeftctrl_expressions_mouthleft
MouthRightctrl_expressions_mouthright
MouthSmileLeftctrl_expressions_mouthcornerpulll
MouthSmileRightctrl_expressions_mouthcornerpullr
MouthFrownLeftctrl_expressions_mouthcornerdepressl
MouthFrownRightctrl_expressions_mouthcornerdepressr
MouthDimpleLeftctrl_expressions_mouthdimplel
MouthDimpleRightctrl_expressions_mouthdimpler
MouthStretchLeftctrl_expressions_mouthstretchl
MouthStretchRightctrl_expressions_mouthstretchr
MouthRollLowerctrl_expressions_mouthlowerliprollinl
MouthRollUpperctrl_expressions_mouthupperliprollinl
MouthShrugLowerctrl_expressions_jawchinraisedl
MouthShrugUpperctrl_expressions_jawchinraiseul
MouthPressLeftctrl_expressions_mouthpressdl
MouthPressRightctrl_expressions_mouthpressdr
MouthLowerDownLeftctrl_expressions_mouthlowerlipdepressl
MouthLowerDownRightctrl_expressions_mouthlowerlipdepressr
MouthUpperUpLeftctrl_expressions_mouthupperlipraisel
MouthUpperUpRightctrl_expressions_mouthupperlipraiser
BrowDownLeftctrl_expressions_browdownl
BrowDownRightctrl_expressions_browdownr
BrowInnerUpctrl_expressions_browlaterall
BrowOuterUpLeftctrl_expressions_browraiseouterl
BrowOuterUpRightctrl_expressions_browraiseouterr
CheekPuffctrl_expressions_mouthcheekblowl
CheekSquintLeftctrl_expressions_eyecheekraisel
CheekSquintRightctrl_expressions_eyecheekraiser
NoseSneerLeftctrl_expressions_nosewrinklel
NoseSneerRightctrl_expressions_nosewrinkler
TongueOutctrl_expressions_tongueout

Several names look asymmetric on purpose and are not corrected: MouthClose and MouthPucker use the purse targets, BrowInnerUp maps to browlaterall, CheekPuff maps to mouthcheekblowl, and JawOpen keeps its mixed-case target. The eye In and Out targets also follow the supplied list.

Limitations

Scope of the add-on.

Only existing object shape keys are processed. The add-on does not create keys, edit mesh data, merge duplicates or change expressions. Pose bones and other rig controls are out of scope.

The mapping is built in and is not edited from the panel. Every install uses the same reviewed list so results stay consistent across machines.