用途:让按标准 52 个 ARKit 混合形状绑定的头/脸模型,在 Meta VR 上由佩戴者面部表情驱动。基于公开的 OVRCustomFace 扩展钩子,无需 OVR_INTERNAL_CODE,可随第三方应用发布。
主要能力:提供 ARKitOVRCustomFace 脚本,自动扫描网格混合形状名(camelCase、_L/_R 后缀,如 eyeBlink_L、jawOpen),建立 ARKit 到 OVR FaceExpression 的映射;可选前缀如 blendShape2.eyeBlink_L 会被自动去除。另提供 ARKitEyeGazeBlendshapeDriver,用 OVREyeGaze 驱动 eyeLook* 混合形状,在 LateUpdate 写入以覆盖 Update 结果。
使用方式:在 Packages/manifest.json 加入 com.meta.xr.sdk.core 与 com.meta.xr.sdk.movement;在 OculusProjectConfig 中开启 faceTrackingSupport,按需开启 eyeTrackingSupport;Android 清单加入面部追踪权限与 RECORD_AUDIO(A2E 需要)。场景中放置 OVRCameraRig 与 OVRFaceExpressions,在含 SkinnedMeshRenderer 的物体上添加 ARKitOVRCustomFace 并连接 FaceExpressions,添加组件时 Reset() 会自动填充映射。OVRManager 的 Face Tracking Data Sources 需勾选 Visual 与 Audio。修改配置后需重新生成清单,可用 OVRManifestPreprocessor.GenerateOrUpdateAndroidManifest(true) 并保持 silentMode 为 true。
适用场景:Quest Pro、Quest 3、Quest 3S;Quest 2 无面部摄像头,不生效。
限制:模型混合形状名必须符合 ARKit 命名约定,否则映射为 0;眼睛注视不要依赖 OVRFaceExpressions.EyesLook*,应使用 OVREyeGaze;部分中央命名形状只取 L 侧 OVR 表达式;tongueOut 需 HorizonOS ≥ 65 与舌头追踪,否则保持 0。具体收费、价格与平台支持范围暂未提供。