Files
PoseRenderer/test/openpose_arkit_face_test.ma
T
indigo e2f2e6668a Add OpenPose_full renderer plugin for Maya
Maya API 2.0 plugin that maps a skeleton to OpenPose_full keypoints
(BODY_25 or COCO body, 21+21 hand, 70 face) via an openposeCharacter
node, with a live Viewport 2.0 draw override, an "OpenPose" viewport
renderer plus openposeRenderSequence for PNG output, and a PySide2
mapping editor. Face can also be driven procedurally from ARKit's 52
blendshape weights instead of facial joints, for rigs with no facial
skeleton. Includes VS Code debug configs and Maya test scenes/renders.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 08:41:57 +08:00

332 lines
17 KiB
Mathematica

//Maya ASCII 2024 scene
//Name: openpose_arkit_face_test.ma
//Last modified: Tue, Jul 14, 2026 08:25:25 AM
//Codeset: 950
requires maya "2024";
requires -nodeType "openposeCharacter" "openposeRenderer.py" "1.0.0";
currentUnit -l centimeter -a degree -t film;
fileInfo "application" "maya";
fileInfo "product" "Maya 2024";
fileInfo "version" "2024";
fileInfo "cutIdentifier" "202310181224-69282f2959";
fileInfo "osv" "Windows 10 Pro v2009 (Build: 19045)";
fileInfo "UUID" "93C6E059-4B38-C365-F7D5-0FAD491D0DEB";
createNode transform -s -n "persp";
rename -uid "D6BB12A4-4481-B70D-81F9-22BC50DBF6A2";
setAttr ".v" no;
setAttr ".t" -type "double3" 28 21 28 ;
setAttr ".r" -type "double3" -27.938352729602379 44.999999999999972 -5.172681101354183e-14 ;
createNode camera -s -n "perspShape" -p "persp";
rename -uid "3B79812D-4CE2-EF69-FD29-D3819FB20809";
setAttr -k off ".v" no;
setAttr ".fl" 34.999999999999993;
setAttr ".coi" 44.82186966202994;
setAttr ".imn" -type "string" "persp";
setAttr ".den" -type "string" "persp_depth";
setAttr ".man" -type "string" "persp_mask";
setAttr ".hc" -type "string" "viewSet -p %camera";
createNode transform -s -n "top";
rename -uid "7D9B1797-4CCF-180D-3705-9C9C4F956631";
setAttr ".v" no;
setAttr ".t" -type "double3" 0 1000.1 0 ;
setAttr ".r" -type "double3" -90 0 0 ;
createNode camera -s -n "topShape" -p "top";
rename -uid "02429A50-43C6-9AEF-C9A9-0EA56778BABE";
setAttr -k off ".v" no;
setAttr ".rnd" no;
setAttr ".coi" 1000.1;
setAttr ".ow" 30;
setAttr ".imn" -type "string" "top";
setAttr ".den" -type "string" "top_depth";
setAttr ".man" -type "string" "top_mask";
setAttr ".hc" -type "string" "viewSet -t %camera";
setAttr ".o" yes;
createNode transform -s -n "front";
rename -uid "E313E787-411D-6315-E6D5-878346B7C7C7";
setAttr ".v" no;
setAttr ".t" -type "double3" 0 0 1000.1 ;
createNode camera -s -n "frontShape" -p "front";
rename -uid "CEB81F55-4481-E767-A275-09ACF3D57563";
setAttr -k off ".v" no;
setAttr ".rnd" no;
setAttr ".coi" 1000.1;
setAttr ".ow" 30;
setAttr ".imn" -type "string" "front";
setAttr ".den" -type "string" "front_depth";
setAttr ".man" -type "string" "front_mask";
setAttr ".hc" -type "string" "viewSet -f %camera";
setAttr ".o" yes;
createNode transform -s -n "side";
rename -uid "23726E62-4236-BA09-5DDB-A8B4AB6467DE";
setAttr ".v" no;
setAttr ".t" -type "double3" 1000.1 0 0 ;
setAttr ".r" -type "double3" 0 90 0 ;
createNode camera -s -n "sideShape" -p "side";
rename -uid "0EF9B535-4F25-E296-6FE9-17897B0CD5F8";
setAttr -k off ".v" no;
setAttr ".rnd" no;
setAttr ".coi" 1000.1;
setAttr ".ow" 30;
setAttr ".imn" -type "string" "side";
setAttr ".den" -type "string" "side_depth";
setAttr ".man" -type "string" "side_mask";
setAttr ".hc" -type "string" "viewSet -s %camera";
setAttr ".o" yes;
createNode joint -n "Head";
rename -uid "10AD57B3-4A53-D241-702A-E4B87D617D75";
setAttr ".t" -type "double3" 0 150 0 ;
setAttr ".mnrl" -type "double3" -360 -360 -360 ;
setAttr ".mxrl" -type "double3" 360 360 360 ;
createNode transform -n "transform1";
rename -uid "AC0B13DC-4C96-222F-1C95-D881328B821A";
createNode openposeCharacter -n "openposeCharacter_ARKitFace" -p "transform1";
rename -uid "91BF3ED3-4092-9E34-128B-1C98376C9C10";
setAttr -k off ".v";
setAttr ".fsrc" 1;
setAttr -s 52 ".bsw";
setAttr -s 52 ".bsw";
createNode transform -n "faceControl";
rename -uid "BEF04EC7-4C59-6B22-48FA-208B994FD89B";
addAttr -ci true -sn "eyeBlinkLeft" -ln "eyeBlinkLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "eyeLookDownLeft" -ln "eyeLookDownLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "eyeLookInLeft" -ln "eyeLookInLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "eyeLookOutLeft" -ln "eyeLookOutLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "eyeLookUpLeft" -ln "eyeLookUpLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "eyeSquintLeft" -ln "eyeSquintLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "eyeWideLeft" -ln "eyeWideLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "eyeBlinkRight" -ln "eyeBlinkRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "eyeLookDownRight" -ln "eyeLookDownRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "eyeLookInRight" -ln "eyeLookInRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "eyeLookOutRight" -ln "eyeLookOutRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "eyeLookUpRight" -ln "eyeLookUpRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "eyeSquintRight" -ln "eyeSquintRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "eyeWideRight" -ln "eyeWideRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "jawForward" -ln "jawForward" -min 0 -max 1 -at "float";
addAttr -ci true -sn "jawLeft" -ln "jawLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "jawRight" -ln "jawRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "jawOpen" -ln "jawOpen" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthClose" -ln "mouthClose" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthFunnel" -ln "mouthFunnel" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthPucker" -ln "mouthPucker" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthLeft" -ln "mouthLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthRight" -ln "mouthRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthSmileLeft" -ln "mouthSmileLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthSmileRight" -ln "mouthSmileRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthFrownLeft" -ln "mouthFrownLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthFrownRight" -ln "mouthFrownRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthDimpleLeft" -ln "mouthDimpleLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthDimpleRight" -ln "mouthDimpleRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthStretchLeft" -ln "mouthStretchLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthStretchRight" -ln "mouthStretchRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthRollLower" -ln "mouthRollLower" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthRollUpper" -ln "mouthRollUpper" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthShrugLower" -ln "mouthShrugLower" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthShrugUpper" -ln "mouthShrugUpper" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthPressLeft" -ln "mouthPressLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthPressRight" -ln "mouthPressRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthLowerDownLeft" -ln "mouthLowerDownLeft" -min 0 -max 1
-at "float";
addAttr -ci true -sn "mouthLowerDownRight" -ln "mouthLowerDownRight" -min 0 -max
1 -at "float";
addAttr -ci true -sn "mouthUpperUpLeft" -ln "mouthUpperUpLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "mouthUpperUpRight" -ln "mouthUpperUpRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "browDownLeft" -ln "browDownLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "browDownRight" -ln "browDownRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "browInnerUp" -ln "browInnerUp" -min 0 -max 1 -at "float";
addAttr -ci true -sn "browOuterUpLeft" -ln "browOuterUpLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "browOuterUpRight" -ln "browOuterUpRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "cheekPuff" -ln "cheekPuff" -min 0 -max 1 -at "float";
addAttr -ci true -sn "cheekSquintLeft" -ln "cheekSquintLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "cheekSquintRight" -ln "cheekSquintRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "noseSneerLeft" -ln "noseSneerLeft" -min 0 -max 1 -at "float";
addAttr -ci true -sn "noseSneerRight" -ln "noseSneerRight" -min 0 -max 1 -at "float";
addAttr -ci true -sn "tongueOut" -ln "tongueOut" -min 0 -max 1 -at "float";
setAttr -k on ".eyeBlinkLeft";
setAttr -k on ".eyeLookDownLeft";
setAttr -k on ".eyeLookInLeft";
setAttr -k on ".eyeLookOutLeft";
setAttr -k on ".eyeLookUpLeft";
setAttr -k on ".eyeSquintLeft";
setAttr -k on ".eyeWideLeft" 0.69999998807907104;
setAttr -k on ".eyeBlinkRight";
setAttr -k on ".eyeLookDownRight";
setAttr -k on ".eyeLookInRight";
setAttr -k on ".eyeLookOutRight";
setAttr -k on ".eyeLookUpRight";
setAttr -k on ".eyeSquintRight";
setAttr -k on ".eyeWideRight" 0.69999998807907104;
setAttr -k on ".jawForward";
setAttr -k on ".jawLeft";
setAttr -k on ".jawRight";
setAttr -k on ".jawOpen" 0.60000002384185791;
setAttr -k on ".mouthClose";
setAttr -k on ".mouthFunnel";
setAttr -k on ".mouthPucker";
setAttr -k on ".mouthLeft";
setAttr -k on ".mouthRight";
setAttr -k on ".mouthSmileLeft" 1;
setAttr -k on ".mouthSmileRight" 1;
setAttr -k on ".mouthFrownLeft";
setAttr -k on ".mouthFrownRight";
setAttr -k on ".mouthDimpleLeft";
setAttr -k on ".mouthDimpleRight";
setAttr -k on ".mouthStretchLeft";
setAttr -k on ".mouthStretchRight";
setAttr -k on ".mouthRollLower";
setAttr -k on ".mouthRollUpper";
setAttr -k on ".mouthShrugLower";
setAttr -k on ".mouthShrugUpper";
setAttr -k on ".mouthPressLeft";
setAttr -k on ".mouthPressRight";
setAttr -k on ".mouthLowerDownLeft";
setAttr -k on ".mouthLowerDownRight";
setAttr -k on ".mouthUpperUpLeft";
setAttr -k on ".mouthUpperUpRight";
setAttr -k on ".browDownLeft";
setAttr -k on ".browDownRight";
setAttr -k on ".browInnerUp" 0.80000001192092896;
setAttr -k on ".browOuterUpLeft" 0.60000002384185791;
setAttr -k on ".browOuterUpRight" 0.60000002384185791;
setAttr -k on ".cheekPuff";
setAttr -k on ".cheekSquintLeft";
setAttr -k on ".cheekSquintRight";
setAttr -k on ".noseSneerLeft";
setAttr -k on ".noseSneerRight";
setAttr -k on ".tongueOut";
createNode lightLinker -s -n "lightLinker1";
rename -uid "6F41ABE6-4FC9-CBA9-3A4A-3C88AFFEDA05";
setAttr -s 2 ".lnk";
setAttr -s 2 ".slnk";
createNode displayLayerManager -n "layerManager";
rename -uid "C5E3AE68-4041-3C21-D33D-2DBCA8E53402";
createNode displayLayer -n "defaultLayer";
rename -uid "7E1F3A70-4A01-B94C-04B6-24ABE836AECA";
setAttr ".ufem" -type "stringArray" 0 ;
createNode renderLayerManager -n "renderLayerManager";
rename -uid "E2FC1CAE-4BC5-8835-9145-E2AFED84D0D6";
createNode renderLayer -n "defaultRenderLayer";
rename -uid "711E2B13-42DB-052A-1562-1C99F88A0E30";
setAttr ".g" yes;
createNode script -n "uiConfigurationScriptNode";
rename -uid "F0132003-4E9D-D0A6-A39C-F6958ABF910E";
setAttr ".b" -type "string" "// Maya Mel UI Configuration File.\n// No UI generated in batch mode.\n";
setAttr ".st" 3;
createNode script -n "sceneConfigurationScriptNode";
rename -uid "5E8354DD-4768-B99B-F133-489A3680AEB2";
setAttr ".b" -type "string" "playbackOptions -min 1 -max 120 -ast 1 -aet 200 ";
setAttr ".st" 6;
select -ne :time1;
setAttr ".o" 1;
setAttr ".unw" 1;
select -ne :hardwareRenderingGlobals;
setAttr ".otfna" -type "stringArray" 22 "NURBS Curves" "NURBS Surfaces" "Polygons" "Subdiv Surface" "Particles" "Particle Instance" "Fluids" "Strokes" "Image Planes" "UI" "Lights" "Cameras" "Locators" "Joints" "IK Handles" "Deformers" "Motion Trails" "Components" "Hair Systems" "Follicles" "Misc. UI" "Ornaments" ;
setAttr ".otfva" -type "Int32Array" 22 0 1 1 1 1 1
1 1 1 0 0 0 0 0 0 0 0 0
0 0 0 0 ;
setAttr ".fprt" yes;
setAttr ".rtfm" 1;
select -ne :renderPartition;
setAttr -s 2 ".st";
select -ne :renderGlobalsList1;
select -ne :defaultShaderList1;
setAttr -s 5 ".s";
select -ne :postProcessList1;
setAttr -s 2 ".p";
select -ne :defaultRenderingList1;
select -ne :standardSurface1;
setAttr ".bc" -type "float3" 0.40000001 0.40000001 0.40000001 ;
setAttr ".sr" 0.5;
select -ne :initialShadingGroup;
setAttr ".ro" yes;
select -ne :initialParticleSE;
setAttr ".ro" yes;
select -ne :defaultRenderGlobals;
addAttr -ci true -h true -sn "dss" -ln "defaultSurfaceShader" -dt "string";
setAttr ".dss" -type "string" "standardSurface1";
select -ne :defaultResolution;
setAttr ".w" 512;
setAttr ".h" 512;
setAttr ".pa" 1;
select -ne :defaultColorMgtGlobals;
setAttr ".cfe" yes;
setAttr ".cfp" -type "string" "<MAYA_RESOURCES>/OCIO-configs/Maya2022-default/config.ocio";
setAttr ".vtn" -type "string" "ACES 1.0 SDR-video (sRGB)";
setAttr ".vn" -type "string" "ACES 1.0 SDR-video";
setAttr ".dn" -type "string" "sRGB";
setAttr ".wsn" -type "string" "ACEScg";
setAttr ".otn" -type "string" "ACES 1.0 SDR-video (sRGB)";
setAttr ".potn" -type "string" "ACES 1.0 SDR-video (sRGB)";
select -ne :hardwareRenderGlobals;
setAttr ".ctrs" 256;
setAttr ".btrs" 512;
connectAttr "Head.msg" "openposeCharacter_ARKitFace.tj[0]";
connectAttr "faceControl.eyeBlinkLeft" "openposeCharacter_ARKitFace.bsw[0]";
connectAttr "faceControl.eyeLookDownLeft" "openposeCharacter_ARKitFace.bsw[1]";
connectAttr "faceControl.eyeLookInLeft" "openposeCharacter_ARKitFace.bsw[2]";
connectAttr "faceControl.eyeLookOutLeft" "openposeCharacter_ARKitFace.bsw[3]";
connectAttr "faceControl.eyeLookUpLeft" "openposeCharacter_ARKitFace.bsw[4]";
connectAttr "faceControl.eyeSquintLeft" "openposeCharacter_ARKitFace.bsw[5]";
connectAttr "faceControl.eyeWideLeft" "openposeCharacter_ARKitFace.bsw[6]";
connectAttr "faceControl.eyeBlinkRight" "openposeCharacter_ARKitFace.bsw[7]";
connectAttr "faceControl.eyeLookDownRight" "openposeCharacter_ARKitFace.bsw[8]";
connectAttr "faceControl.eyeLookInRight" "openposeCharacter_ARKitFace.bsw[9]";
connectAttr "faceControl.eyeLookOutRight" "openposeCharacter_ARKitFace.bsw[10]";
connectAttr "faceControl.eyeLookUpRight" "openposeCharacter_ARKitFace.bsw[11]";
connectAttr "faceControl.eyeSquintRight" "openposeCharacter_ARKitFace.bsw[12]";
connectAttr "faceControl.eyeWideRight" "openposeCharacter_ARKitFace.bsw[13]";
connectAttr "faceControl.jawForward" "openposeCharacter_ARKitFace.bsw[14]";
connectAttr "faceControl.jawLeft" "openposeCharacter_ARKitFace.bsw[15]";
connectAttr "faceControl.jawRight" "openposeCharacter_ARKitFace.bsw[16]";
connectAttr "faceControl.jawOpen" "openposeCharacter_ARKitFace.bsw[17]";
connectAttr "faceControl.mouthClose" "openposeCharacter_ARKitFace.bsw[18]";
connectAttr "faceControl.mouthFunnel" "openposeCharacter_ARKitFace.bsw[19]";
connectAttr "faceControl.mouthPucker" "openposeCharacter_ARKitFace.bsw[20]";
connectAttr "faceControl.mouthLeft" "openposeCharacter_ARKitFace.bsw[21]";
connectAttr "faceControl.mouthRight" "openposeCharacter_ARKitFace.bsw[22]";
connectAttr "faceControl.mouthSmileLeft" "openposeCharacter_ARKitFace.bsw[23]";
connectAttr "faceControl.mouthSmileRight" "openposeCharacter_ARKitFace.bsw[24]";
connectAttr "faceControl.mouthFrownLeft" "openposeCharacter_ARKitFace.bsw[25]";
connectAttr "faceControl.mouthFrownRight" "openposeCharacter_ARKitFace.bsw[26]";
connectAttr "faceControl.mouthDimpleLeft" "openposeCharacter_ARKitFace.bsw[27]";
connectAttr "faceControl.mouthDimpleRight" "openposeCharacter_ARKitFace.bsw[28]"
;
connectAttr "faceControl.mouthStretchLeft" "openposeCharacter_ARKitFace.bsw[29]"
;
connectAttr "faceControl.mouthStretchRight" "openposeCharacter_ARKitFace.bsw[30]"
;
connectAttr "faceControl.mouthRollLower" "openposeCharacter_ARKitFace.bsw[31]";
connectAttr "faceControl.mouthRollUpper" "openposeCharacter_ARKitFace.bsw[32]";
connectAttr "faceControl.mouthShrugLower" "openposeCharacter_ARKitFace.bsw[33]";
connectAttr "faceControl.mouthShrugUpper" "openposeCharacter_ARKitFace.bsw[34]";
connectAttr "faceControl.mouthPressLeft" "openposeCharacter_ARKitFace.bsw[35]";
connectAttr "faceControl.mouthPressRight" "openposeCharacter_ARKitFace.bsw[36]";
connectAttr "faceControl.mouthLowerDownLeft" "openposeCharacter_ARKitFace.bsw[37]"
;
connectAttr "faceControl.mouthLowerDownRight" "openposeCharacter_ARKitFace.bsw[38]"
;
connectAttr "faceControl.mouthUpperUpLeft" "openposeCharacter_ARKitFace.bsw[39]"
;
connectAttr "faceControl.mouthUpperUpRight" "openposeCharacter_ARKitFace.bsw[40]"
;
connectAttr "faceControl.browDownLeft" "openposeCharacter_ARKitFace.bsw[41]";
connectAttr "faceControl.browDownRight" "openposeCharacter_ARKitFace.bsw[42]";
connectAttr "faceControl.browInnerUp" "openposeCharacter_ARKitFace.bsw[43]";
connectAttr "faceControl.browOuterUpLeft" "openposeCharacter_ARKitFace.bsw[44]";
connectAttr "faceControl.browOuterUpRight" "openposeCharacter_ARKitFace.bsw[45]"
;
connectAttr "faceControl.cheekPuff" "openposeCharacter_ARKitFace.bsw[46]";
connectAttr "faceControl.cheekSquintLeft" "openposeCharacter_ARKitFace.bsw[47]";
connectAttr "faceControl.cheekSquintRight" "openposeCharacter_ARKitFace.bsw[48]"
;
connectAttr "faceControl.noseSneerLeft" "openposeCharacter_ARKitFace.bsw[49]";
connectAttr "faceControl.noseSneerRight" "openposeCharacter_ARKitFace.bsw[50]";
connectAttr "faceControl.tongueOut" "openposeCharacter_ARKitFace.bsw[51]";
relationship "link" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message";
relationship "link" ":lightLinker1" ":initialParticleSE.message" ":defaultLightSet.message";
relationship "shadowLink" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message";
relationship "shadowLink" ":lightLinker1" ":initialParticleSE.message" ":defaultLightSet.message";
connectAttr "layerManager.dli[0]" "defaultLayer.id";
connectAttr "renderLayerManager.rlmi[0]" "defaultRenderLayer.rlid";
connectAttr "defaultRenderLayer.msg" ":defaultRenderingList1.r" -na;
// End of openpose_arkit_face_test.ma