{
  "packageId": "xiaoning_face_seq_v1_20260629",
  "roleId": "xiaoning",
  "characterName": "宁宁",
  "target": "native_scenekit_face_texture",
  "resolution": [
    512,
    512
  ],
  "format": "png",
  "fps": 15,
  "theme": "purple",
  "gender": "f",
  "ledStyle": "粗横条 48行",
  "grid": 128,
  "background": "black",
  "generatedAt": "2026-06-29T12:54:46.235Z",
  "packageKind": "approval_candidate",
  "loopStrategy": "mixed_base_pingpong_speech_acting_v2_cycle_frames",
  "clips": [
    {
      "id": "idle_content",
      "displayName": "待机/放松",
      "actionId": "idle",
      "expression": "轻松、自然、稳定注视",
      "emotion": "content",
      "variant": "base",
      "speaking": false,
      "speechStyle": null,
      "baseClipId": null,
      "loopMode": "loop",
      "loopStrategy": "baked_pingpong_frames",
      "fps": 15,
      "frameCount": 30,
      "durationMs": 2000,
      "resolution": [
        512,
        512
      ],
      "framePattern": "clips/idle_content/frame_%04d.png",
      "frames": [
        "clips/idle_content/frame_0000.png",
        "clips/idle_content/frame_0001.png",
        "clips/idle_content/frame_0002.png",
        "clips/idle_content/frame_0003.png",
        "clips/idle_content/frame_0004.png",
        "clips/idle_content/frame_0005.png",
        "clips/idle_content/frame_0006.png",
        "clips/idle_content/frame_0007.png",
        "clips/idle_content/frame_0008.png",
        "clips/idle_content/frame_0009.png",
        "clips/idle_content/frame_0010.png",
        "clips/idle_content/frame_0011.png",
        "clips/idle_content/frame_0012.png",
        "clips/idle_content/frame_0013.png",
        "clips/idle_content/frame_0014.png",
        "clips/idle_content/frame_0015.png",
        "clips/idle_content/frame_0016.png",
        "clips/idle_content/frame_0017.png",
        "clips/idle_content/frame_0018.png",
        "clips/idle_content/frame_0019.png",
        "clips/idle_content/frame_0020.png",
        "clips/idle_content/frame_0021.png",
        "clips/idle_content/frame_0022.png",
        "clips/idle_content/frame_0023.png",
        "clips/idle_content/frame_0024.png",
        "clips/idle_content/frame_0025.png",
        "clips/idle_content/frame_0026.png",
        "clips/idle_content/frame_0027.png",
        "clips/idle_content/frame_0028.png",
        "clips/idle_content/frame_0029.png"
      ],
      "fallback": "idle_content"
    },
    {
      "id": "idle_content_talk",
      "displayName": "待机/放松·说话",
      "actionId": "idle",
      "expression": "轻松、自然、稳定注视 + 说话表演 v2",
      "emotion": "content",
      "variant": "talk",
      "speaking": true,
      "speechStyle": "v2",
      "baseClipId": "idle_content",
      "loopMode": "loop",
      "loopStrategy": "speech_acting_v2_cycle_frames",
      "fps": 15,
      "frameCount": 24,
      "durationMs": 1600,
      "resolution": [
        512,
        512
      ],
      "framePattern": "clips/idle_content_talk/frame_%04d.png",
      "frames": [
        "clips/idle_content_talk/frame_0000.png",
        "clips/idle_content_talk/frame_0001.png",
        "clips/idle_content_talk/frame_0002.png",
        "clips/idle_content_talk/frame_0003.png",
        "clips/idle_content_talk/frame_0004.png",
        "clips/idle_content_talk/frame_0005.png",
        "clips/idle_content_talk/frame_0006.png",
        "clips/idle_content_talk/frame_0007.png",
        "clips/idle_content_talk/frame_0008.png",
        "clips/idle_content_talk/frame_0009.png",
        "clips/idle_content_talk/frame_0010.png",
        "clips/idle_content_talk/frame_0011.png",
        "clips/idle_content_talk/frame_0012.png",
        "clips/idle_content_talk/frame_0013.png",
        "clips/idle_content_talk/frame_0014.png",
        "clips/idle_content_talk/frame_0015.png",
        "clips/idle_content_talk/frame_0016.png",
        "clips/idle_content_talk/frame_0017.png",
        "clips/idle_content_talk/frame_0018.png",
        "clips/idle_content_talk/frame_0019.png",
        "clips/idle_content_talk/frame_0020.png",
        "clips/idle_content_talk/frame_0021.png",
        "clips/idle_content_talk/frame_0022.png",
        "clips/idle_content_talk/frame_0023.png"
      ],
      "fallback": "idle_content"
    },
    {
      "id": "listen_happy",
      "displayName": "聆听",
      "actionId": "listen",
      "expression": "开心、专注、柔和",
      "emotion": "happy",
      "variant": "base",
      "speaking": false,
      "speechStyle": null,
      "baseClipId": null,
      "loopMode": "loop",
      "loopStrategy": "baked_pingpong_frames",
      "fps": 15,
      "frameCount": 30,
      "durationMs": 2000,
      "resolution": [
        512,
        512
      ],
      "framePattern": "clips/listen_happy/frame_%04d.png",
      "frames": [
        "clips/listen_happy/frame_0000.png",
        "clips/listen_happy/frame_0001.png",
        "clips/listen_happy/frame_0002.png",
        "clips/listen_happy/frame_0003.png",
        "clips/listen_happy/frame_0004.png",
        "clips/listen_happy/frame_0005.png",
        "clips/listen_happy/frame_0006.png",
        "clips/listen_happy/frame_0007.png",
        "clips/listen_happy/frame_0008.png",
        "clips/listen_happy/frame_0009.png",
        "clips/listen_happy/frame_0010.png",
        "clips/listen_happy/frame_0011.png",
        "clips/listen_happy/frame_0012.png",
        "clips/listen_happy/frame_0013.png",
        "clips/listen_happy/frame_0014.png",
        "clips/listen_happy/frame_0015.png",
        "clips/listen_happy/frame_0016.png",
        "clips/listen_happy/frame_0017.png",
        "clips/listen_happy/frame_0018.png",
        "clips/listen_happy/frame_0019.png",
        "clips/listen_happy/frame_0020.png",
        "clips/listen_happy/frame_0021.png",
        "clips/listen_happy/frame_0022.png",
        "clips/listen_happy/frame_0023.png",
        "clips/listen_happy/frame_0024.png",
        "clips/listen_happy/frame_0025.png",
        "clips/listen_happy/frame_0026.png",
        "clips/listen_happy/frame_0027.png",
        "clips/listen_happy/frame_0028.png",
        "clips/listen_happy/frame_0029.png"
      ],
      "fallback": "listen_happy"
    },
    {
      "id": "listen_happy_talk",
      "displayName": "聆听·说话",
      "actionId": "listen",
      "expression": "开心、专注、柔和 + 说话表演 v2",
      "emotion": "happy",
      "variant": "talk",
      "speaking": true,
      "speechStyle": "v2",
      "baseClipId": "listen_happy",
      "loopMode": "loop",
      "loopStrategy": "speech_acting_v2_cycle_frames",
      "fps": 15,
      "frameCount": 24,
      "durationMs": 1600,
      "resolution": [
        512,
        512
      ],
      "framePattern": "clips/listen_happy_talk/frame_%04d.png",
      "frames": [
        "clips/listen_happy_talk/frame_0000.png",
        "clips/listen_happy_talk/frame_0001.png",
        "clips/listen_happy_talk/frame_0002.png",
        "clips/listen_happy_talk/frame_0003.png",
        "clips/listen_happy_talk/frame_0004.png",
        "clips/listen_happy_talk/frame_0005.png",
        "clips/listen_happy_talk/frame_0006.png",
        "clips/listen_happy_talk/frame_0007.png",
        "clips/listen_happy_talk/frame_0008.png",
        "clips/listen_happy_talk/frame_0009.png",
        "clips/listen_happy_talk/frame_0010.png",
        "clips/listen_happy_talk/frame_0011.png",
        "clips/listen_happy_talk/frame_0012.png",
        "clips/listen_happy_talk/frame_0013.png",
        "clips/listen_happy_talk/frame_0014.png",
        "clips/listen_happy_talk/frame_0015.png",
        "clips/listen_happy_talk/frame_0016.png",
        "clips/listen_happy_talk/frame_0017.png",
        "clips/listen_happy_talk/frame_0018.png",
        "clips/listen_happy_talk/frame_0019.png",
        "clips/listen_happy_talk/frame_0020.png",
        "clips/listen_happy_talk/frame_0021.png",
        "clips/listen_happy_talk/frame_0022.png",
        "clips/listen_happy_talk/frame_0023.png"
      ],
      "fallback": "listen_happy"
    },
    {
      "id": "think_thinking",
      "displayName": "思考",
      "actionId": "think",
      "expression": "思考感、三点提示",
      "emotion": "thinking",
      "variant": "base",
      "speaking": false,
      "speechStyle": null,
      "baseClipId": null,
      "loopMode": "loop",
      "loopStrategy": "baked_pingpong_frames",
      "fps": 15,
      "frameCount": 30,
      "durationMs": 2000,
      "resolution": [
        512,
        512
      ],
      "framePattern": "clips/think_thinking/frame_%04d.png",
      "frames": [
        "clips/think_thinking/frame_0000.png",
        "clips/think_thinking/frame_0001.png",
        "clips/think_thinking/frame_0002.png",
        "clips/think_thinking/frame_0003.png",
        "clips/think_thinking/frame_0004.png",
        "clips/think_thinking/frame_0005.png",
        "clips/think_thinking/frame_0006.png",
        "clips/think_thinking/frame_0007.png",
        "clips/think_thinking/frame_0008.png",
        "clips/think_thinking/frame_0009.png",
        "clips/think_thinking/frame_0010.png",
        "clips/think_thinking/frame_0011.png",
        "clips/think_thinking/frame_0012.png",
        "clips/think_thinking/frame_0013.png",
        "clips/think_thinking/frame_0014.png",
        "clips/think_thinking/frame_0015.png",
        "clips/think_thinking/frame_0016.png",
        "clips/think_thinking/frame_0017.png",
        "clips/think_thinking/frame_0018.png",
        "clips/think_thinking/frame_0019.png",
        "clips/think_thinking/frame_0020.png",
        "clips/think_thinking/frame_0021.png",
        "clips/think_thinking/frame_0022.png",
        "clips/think_thinking/frame_0023.png",
        "clips/think_thinking/frame_0024.png",
        "clips/think_thinking/frame_0025.png",
        "clips/think_thinking/frame_0026.png",
        "clips/think_thinking/frame_0027.png",
        "clips/think_thinking/frame_0028.png",
        "clips/think_thinking/frame_0029.png"
      ],
      "fallback": "think_thinking"
    },
    {
      "id": "think_thinking_talk",
      "displayName": "思考·说话",
      "actionId": "think",
      "expression": "思考感、三点提示 + 说话表演 v2",
      "emotion": "thinking",
      "variant": "talk",
      "speaking": true,
      "speechStyle": "v2",
      "baseClipId": "think_thinking",
      "loopMode": "loop",
      "loopStrategy": "speech_acting_v2_cycle_frames",
      "fps": 15,
      "frameCount": 24,
      "durationMs": 1600,
      "resolution": [
        512,
        512
      ],
      "framePattern": "clips/think_thinking_talk/frame_%04d.png",
      "frames": [
        "clips/think_thinking_talk/frame_0000.png",
        "clips/think_thinking_talk/frame_0001.png",
        "clips/think_thinking_talk/frame_0002.png",
        "clips/think_thinking_talk/frame_0003.png",
        "clips/think_thinking_talk/frame_0004.png",
        "clips/think_thinking_talk/frame_0005.png",
        "clips/think_thinking_talk/frame_0006.png",
        "clips/think_thinking_talk/frame_0007.png",
        "clips/think_thinking_talk/frame_0008.png",
        "clips/think_thinking_talk/frame_0009.png",
        "clips/think_thinking_talk/frame_0010.png",
        "clips/think_thinking_talk/frame_0011.png",
        "clips/think_thinking_talk/frame_0012.png",
        "clips/think_thinking_talk/frame_0013.png",
        "clips/think_thinking_talk/frame_0014.png",
        "clips/think_thinking_talk/frame_0015.png",
        "clips/think_thinking_talk/frame_0016.png",
        "clips/think_thinking_talk/frame_0017.png",
        "clips/think_thinking_talk/frame_0018.png",
        "clips/think_thinking_talk/frame_0019.png",
        "clips/think_thinking_talk/frame_0020.png",
        "clips/think_thinking_talk/frame_0021.png",
        "clips/think_thinking_talk/frame_0022.png",
        "clips/think_thinking_talk/frame_0023.png"
      ],
      "fallback": "think_thinking"
    },
    {
      "id": "speak_excited",
      "displayName": "说话",
      "actionId": "speak",
      "expression": "高情绪说话 v2",
      "emotion": "excited",
      "variant": "talkOnly",
      "speaking": true,
      "speechStyle": "v2",
      "baseClipId": null,
      "loopMode": "loop",
      "loopStrategy": "speech_acting_v2_cycle_frames",
      "fps": 15,
      "frameCount": 24,
      "durationMs": 1600,
      "resolution": [
        512,
        512
      ],
      "framePattern": "clips/speak_excited/frame_%04d.png",
      "frames": [
        "clips/speak_excited/frame_0000.png",
        "clips/speak_excited/frame_0001.png",
        "clips/speak_excited/frame_0002.png",
        "clips/speak_excited/frame_0003.png",
        "clips/speak_excited/frame_0004.png",
        "clips/speak_excited/frame_0005.png",
        "clips/speak_excited/frame_0006.png",
        "clips/speak_excited/frame_0007.png",
        "clips/speak_excited/frame_0008.png",
        "clips/speak_excited/frame_0009.png",
        "clips/speak_excited/frame_0010.png",
        "clips/speak_excited/frame_0011.png",
        "clips/speak_excited/frame_0012.png",
        "clips/speak_excited/frame_0013.png",
        "clips/speak_excited/frame_0014.png",
        "clips/speak_excited/frame_0015.png",
        "clips/speak_excited/frame_0016.png",
        "clips/speak_excited/frame_0017.png",
        "clips/speak_excited/frame_0018.png",
        "clips/speak_excited/frame_0019.png",
        "clips/speak_excited/frame_0020.png",
        "clips/speak_excited/frame_0021.png",
        "clips/speak_excited/frame_0022.png",
        "clips/speak_excited/frame_0023.png"
      ],
      "fallback": "speak_excited"
    },
    {
      "id": "ack_love",
      "displayName": "认可/点头",
      "actionId": "ack",
      "expression": "爱心、认可、肯定",
      "emotion": "love",
      "variant": "base",
      "speaking": false,
      "speechStyle": null,
      "baseClipId": null,
      "loopMode": "loop",
      "loopStrategy": "baked_pingpong_frames",
      "fps": 15,
      "frameCount": 30,
      "durationMs": 2000,
      "resolution": [
        512,
        512
      ],
      "framePattern": "clips/ack_love/frame_%04d.png",
      "frames": [
        "clips/ack_love/frame_0000.png",
        "clips/ack_love/frame_0001.png",
        "clips/ack_love/frame_0002.png",
        "clips/ack_love/frame_0003.png",
        "clips/ack_love/frame_0004.png",
        "clips/ack_love/frame_0005.png",
        "clips/ack_love/frame_0006.png",
        "clips/ack_love/frame_0007.png",
        "clips/ack_love/frame_0008.png",
        "clips/ack_love/frame_0009.png",
        "clips/ack_love/frame_0010.png",
        "clips/ack_love/frame_0011.png",
        "clips/ack_love/frame_0012.png",
        "clips/ack_love/frame_0013.png",
        "clips/ack_love/frame_0014.png",
        "clips/ack_love/frame_0015.png",
        "clips/ack_love/frame_0016.png",
        "clips/ack_love/frame_0017.png",
        "clips/ack_love/frame_0018.png",
        "clips/ack_love/frame_0019.png",
        "clips/ack_love/frame_0020.png",
        "clips/ack_love/frame_0021.png",
        "clips/ack_love/frame_0022.png",
        "clips/ack_love/frame_0023.png",
        "clips/ack_love/frame_0024.png",
        "clips/ack_love/frame_0025.png",
        "clips/ack_love/frame_0026.png",
        "clips/ack_love/frame_0027.png",
        "clips/ack_love/frame_0028.png",
        "clips/ack_love/frame_0029.png"
      ],
      "fallback": "ack_love"
    },
    {
      "id": "ack_love_talk",
      "displayName": "认可/点头·说话",
      "actionId": "ack",
      "expression": "爱心、认可、肯定 + 说话表演 v2",
      "emotion": "love",
      "variant": "talk",
      "speaking": true,
      "speechStyle": "v2",
      "baseClipId": "ack_love",
      "loopMode": "loop",
      "loopStrategy": "speech_acting_v2_cycle_frames",
      "fps": 15,
      "frameCount": 24,
      "durationMs": 1600,
      "resolution": [
        512,
        512
      ],
      "framePattern": "clips/ack_love_talk/frame_%04d.png",
      "frames": [
        "clips/ack_love_talk/frame_0000.png",
        "clips/ack_love_talk/frame_0001.png",
        "clips/ack_love_talk/frame_0002.png",
        "clips/ack_love_talk/frame_0003.png",
        "clips/ack_love_talk/frame_0004.png",
        "clips/ack_love_talk/frame_0005.png",
        "clips/ack_love_talk/frame_0006.png",
        "clips/ack_love_talk/frame_0007.png",
        "clips/ack_love_talk/frame_0008.png",
        "clips/ack_love_talk/frame_0009.png",
        "clips/ack_love_talk/frame_0010.png",
        "clips/ack_love_talk/frame_0011.png",
        "clips/ack_love_talk/frame_0012.png",
        "clips/ack_love_talk/frame_0013.png",
        "clips/ack_love_talk/frame_0014.png",
        "clips/ack_love_talk/frame_0015.png",
        "clips/ack_love_talk/frame_0016.png",
        "clips/ack_love_talk/frame_0017.png",
        "clips/ack_love_talk/frame_0018.png",
        "clips/ack_love_talk/frame_0019.png",
        "clips/ack_love_talk/frame_0020.png",
        "clips/ack_love_talk/frame_0021.png",
        "clips/ack_love_talk/frame_0022.png",
        "clips/ack_love_talk/frame_0023.png"
      ],
      "fallback": "ack_love"
    },
    {
      "id": "wave_wink",
      "displayName": "打招呼/挥手",
      "actionId": "wave",
      "expression": "眨眼、友好",
      "emotion": "wink",
      "variant": "base",
      "speaking": false,
      "speechStyle": null,
      "baseClipId": null,
      "loopMode": "loop",
      "loopStrategy": "baked_pingpong_frames",
      "fps": 15,
      "frameCount": 30,
      "durationMs": 2000,
      "resolution": [
        512,
        512
      ],
      "framePattern": "clips/wave_wink/frame_%04d.png",
      "frames": [
        "clips/wave_wink/frame_0000.png",
        "clips/wave_wink/frame_0001.png",
        "clips/wave_wink/frame_0002.png",
        "clips/wave_wink/frame_0003.png",
        "clips/wave_wink/frame_0004.png",
        "clips/wave_wink/frame_0005.png",
        "clips/wave_wink/frame_0006.png",
        "clips/wave_wink/frame_0007.png",
        "clips/wave_wink/frame_0008.png",
        "clips/wave_wink/frame_0009.png",
        "clips/wave_wink/frame_0010.png",
        "clips/wave_wink/frame_0011.png",
        "clips/wave_wink/frame_0012.png",
        "clips/wave_wink/frame_0013.png",
        "clips/wave_wink/frame_0014.png",
        "clips/wave_wink/frame_0015.png",
        "clips/wave_wink/frame_0016.png",
        "clips/wave_wink/frame_0017.png",
        "clips/wave_wink/frame_0018.png",
        "clips/wave_wink/frame_0019.png",
        "clips/wave_wink/frame_0020.png",
        "clips/wave_wink/frame_0021.png",
        "clips/wave_wink/frame_0022.png",
        "clips/wave_wink/frame_0023.png",
        "clips/wave_wink/frame_0024.png",
        "clips/wave_wink/frame_0025.png",
        "clips/wave_wink/frame_0026.png",
        "clips/wave_wink/frame_0027.png",
        "clips/wave_wink/frame_0028.png",
        "clips/wave_wink/frame_0029.png"
      ],
      "fallback": "wave_wink"
    },
    {
      "id": "wave_wink_talk",
      "displayName": "打招呼/挥手·说话",
      "actionId": "wave",
      "expression": "眨眼、友好 + 说话表演 v2",
      "emotion": "wink",
      "variant": "talk",
      "speaking": true,
      "speechStyle": "v2",
      "baseClipId": "wave_wink",
      "loopMode": "loop",
      "loopStrategy": "speech_acting_v2_cycle_frames",
      "fps": 15,
      "frameCount": 24,
      "durationMs": 1600,
      "resolution": [
        512,
        512
      ],
      "framePattern": "clips/wave_wink_talk/frame_%04d.png",
      "frames": [
        "clips/wave_wink_talk/frame_0000.png",
        "clips/wave_wink_talk/frame_0001.png",
        "clips/wave_wink_talk/frame_0002.png",
        "clips/wave_wink_talk/frame_0003.png",
        "clips/wave_wink_talk/frame_0004.png",
        "clips/wave_wink_talk/frame_0005.png",
        "clips/wave_wink_talk/frame_0006.png",
        "clips/wave_wink_talk/frame_0007.png",
        "clips/wave_wink_talk/frame_0008.png",
        "clips/wave_wink_talk/frame_0009.png",
        "clips/wave_wink_talk/frame_0010.png",
        "clips/wave_wink_talk/frame_0011.png",
        "clips/wave_wink_talk/frame_0012.png",
        "clips/wave_wink_talk/frame_0013.png",
        "clips/wave_wink_talk/frame_0014.png",
        "clips/wave_wink_talk/frame_0015.png",
        "clips/wave_wink_talk/frame_0016.png",
        "clips/wave_wink_talk/frame_0017.png",
        "clips/wave_wink_talk/frame_0018.png",
        "clips/wave_wink_talk/frame_0019.png",
        "clips/wave_wink_talk/frame_0020.png",
        "clips/wave_wink_talk/frame_0021.png",
        "clips/wave_wink_talk/frame_0022.png",
        "clips/wave_wink_talk/frame_0023.png"
      ],
      "fallback": "wave_wink"
    },
    {
      "id": "dance_star",
      "displayName": "庆祝/跳舞",
      "actionId": "dance",
      "expression": "星星、高兴、跳舞感",
      "emotion": "star",
      "variant": "base",
      "speaking": false,
      "speechStyle": null,
      "baseClipId": null,
      "loopMode": "loop",
      "loopStrategy": "baked_pingpong_frames",
      "fps": 15,
      "frameCount": 30,
      "durationMs": 2000,
      "resolution": [
        512,
        512
      ],
      "framePattern": "clips/dance_star/frame_%04d.png",
      "frames": [
        "clips/dance_star/frame_0000.png",
        "clips/dance_star/frame_0001.png",
        "clips/dance_star/frame_0002.png",
        "clips/dance_star/frame_0003.png",
        "clips/dance_star/frame_0004.png",
        "clips/dance_star/frame_0005.png",
        "clips/dance_star/frame_0006.png",
        "clips/dance_star/frame_0007.png",
        "clips/dance_star/frame_0008.png",
        "clips/dance_star/frame_0009.png",
        "clips/dance_star/frame_0010.png",
        "clips/dance_star/frame_0011.png",
        "clips/dance_star/frame_0012.png",
        "clips/dance_star/frame_0013.png",
        "clips/dance_star/frame_0014.png",
        "clips/dance_star/frame_0015.png",
        "clips/dance_star/frame_0016.png",
        "clips/dance_star/frame_0017.png",
        "clips/dance_star/frame_0018.png",
        "clips/dance_star/frame_0019.png",
        "clips/dance_star/frame_0020.png",
        "clips/dance_star/frame_0021.png",
        "clips/dance_star/frame_0022.png",
        "clips/dance_star/frame_0023.png",
        "clips/dance_star/frame_0024.png",
        "clips/dance_star/frame_0025.png",
        "clips/dance_star/frame_0026.png",
        "clips/dance_star/frame_0027.png",
        "clips/dance_star/frame_0028.png",
        "clips/dance_star/frame_0029.png"
      ],
      "fallback": "dance_star"
    },
    {
      "id": "dance_star_talk",
      "displayName": "庆祝/跳舞·说话",
      "actionId": "dance",
      "expression": "星星、高兴、跳舞感 + 说话表演 v2",
      "emotion": "star",
      "variant": "talk",
      "speaking": true,
      "speechStyle": "v2",
      "baseClipId": "dance_star",
      "loopMode": "loop",
      "loopStrategy": "speech_acting_v2_cycle_frames",
      "fps": 15,
      "frameCount": 24,
      "durationMs": 1600,
      "resolution": [
        512,
        512
      ],
      "framePattern": "clips/dance_star_talk/frame_%04d.png",
      "frames": [
        "clips/dance_star_talk/frame_0000.png",
        "clips/dance_star_talk/frame_0001.png",
        "clips/dance_star_talk/frame_0002.png",
        "clips/dance_star_talk/frame_0003.png",
        "clips/dance_star_talk/frame_0004.png",
        "clips/dance_star_talk/frame_0005.png",
        "clips/dance_star_talk/frame_0006.png",
        "clips/dance_star_talk/frame_0007.png",
        "clips/dance_star_talk/frame_0008.png",
        "clips/dance_star_talk/frame_0009.png",
        "clips/dance_star_talk/frame_0010.png",
        "clips/dance_star_talk/frame_0011.png",
        "clips/dance_star_talk/frame_0012.png",
        "clips/dance_star_talk/frame_0013.png",
        "clips/dance_star_talk/frame_0014.png",
        "clips/dance_star_talk/frame_0015.png",
        "clips/dance_star_talk/frame_0016.png",
        "clips/dance_star_talk/frame_0017.png",
        "clips/dance_star_talk/frame_0018.png",
        "clips/dance_star_talk/frame_0019.png",
        "clips/dance_star_talk/frame_0020.png",
        "clips/dance_star_talk/frame_0021.png",
        "clips/dance_star_talk/frame_0022.png",
        "clips/dance_star_talk/frame_0023.png"
      ],
      "fallback": "dance_star"
    },
    {
      "id": "lowbat",
      "displayName": "低电量",
      "actionId": "lowbat",
      "expression": "低能量、电量提示",
      "emotion": "lowbat",
      "variant": "base",
      "speaking": false,
      "speechStyle": null,
      "baseClipId": null,
      "loopMode": "loop",
      "loopStrategy": "baked_pingpong_frames",
      "fps": 15,
      "frameCount": 30,
      "durationMs": 2000,
      "resolution": [
        512,
        512
      ],
      "framePattern": "clips/lowbat/frame_%04d.png",
      "frames": [
        "clips/lowbat/frame_0000.png",
        "clips/lowbat/frame_0001.png",
        "clips/lowbat/frame_0002.png",
        "clips/lowbat/frame_0003.png",
        "clips/lowbat/frame_0004.png",
        "clips/lowbat/frame_0005.png",
        "clips/lowbat/frame_0006.png",
        "clips/lowbat/frame_0007.png",
        "clips/lowbat/frame_0008.png",
        "clips/lowbat/frame_0009.png",
        "clips/lowbat/frame_0010.png",
        "clips/lowbat/frame_0011.png",
        "clips/lowbat/frame_0012.png",
        "clips/lowbat/frame_0013.png",
        "clips/lowbat/frame_0014.png",
        "clips/lowbat/frame_0015.png",
        "clips/lowbat/frame_0016.png",
        "clips/lowbat/frame_0017.png",
        "clips/lowbat/frame_0018.png",
        "clips/lowbat/frame_0019.png",
        "clips/lowbat/frame_0020.png",
        "clips/lowbat/frame_0021.png",
        "clips/lowbat/frame_0022.png",
        "clips/lowbat/frame_0023.png",
        "clips/lowbat/frame_0024.png",
        "clips/lowbat/frame_0025.png",
        "clips/lowbat/frame_0026.png",
        "clips/lowbat/frame_0027.png",
        "clips/lowbat/frame_0028.png",
        "clips/lowbat/frame_0029.png"
      ],
      "fallback": "lowbat"
    },
    {
      "id": "lowbat_talk",
      "displayName": "低电量·说话",
      "actionId": "lowbat",
      "expression": "低能量、电量提示 + 说话表演 v2",
      "emotion": "lowbat",
      "variant": "talk",
      "speaking": true,
      "speechStyle": "v2",
      "baseClipId": "lowbat",
      "loopMode": "loop",
      "loopStrategy": "speech_acting_v2_cycle_frames",
      "fps": 15,
      "frameCount": 24,
      "durationMs": 1600,
      "resolution": [
        512,
        512
      ],
      "framePattern": "clips/lowbat_talk/frame_%04d.png",
      "frames": [
        "clips/lowbat_talk/frame_0000.png",
        "clips/lowbat_talk/frame_0001.png",
        "clips/lowbat_talk/frame_0002.png",
        "clips/lowbat_talk/frame_0003.png",
        "clips/lowbat_talk/frame_0004.png",
        "clips/lowbat_talk/frame_0005.png",
        "clips/lowbat_talk/frame_0006.png",
        "clips/lowbat_talk/frame_0007.png",
        "clips/lowbat_talk/frame_0008.png",
        "clips/lowbat_talk/frame_0009.png",
        "clips/lowbat_talk/frame_0010.png",
        "clips/lowbat_talk/frame_0011.png",
        "clips/lowbat_talk/frame_0012.png",
        "clips/lowbat_talk/frame_0013.png",
        "clips/lowbat_talk/frame_0014.png",
        "clips/lowbat_talk/frame_0015.png",
        "clips/lowbat_talk/frame_0016.png",
        "clips/lowbat_talk/frame_0017.png",
        "clips/lowbat_talk/frame_0018.png",
        "clips/lowbat_talk/frame_0019.png",
        "clips/lowbat_talk/frame_0020.png",
        "clips/lowbat_talk/frame_0021.png",
        "clips/lowbat_talk/frame_0022.png",
        "clips/lowbat_talk/frame_0023.png"
      ],
      "fallback": "lowbat"
    }
  ]
}