{
  "build": "5.5.0-animation-polish",
  "modelVersionVerified": false,
  "newGenerationCallsThisBuild": 0,
  "runtimeCharactersWithNewArt": [
    "hero",
    "medic",
    "trader",
    "rescue",
    "walker",
    "runner",
    "brute",
    "spitter",
    "screamer",
    "warden",
    "dog",
    "survivor",
    "support",
    "scout"
  ],
  "legacyEntities": [
    "nest"
  ],
  "integratedOriginalActionMappings": 133,
  "uniqueNewAtlasFiles": 87,
  "fullNewIndependentAnimationForEveryAction": false,
  "temporalSourceSheets": [
    "hero-walk",
    "hero-fire",
    "hero-heal",
    "hero-dodge",
    "hero-hurt",
    "hero-death",
    "walker-walk",
    "walker-attack",
    "walker-hurt",
    "walker-death"
  ],
  "notes": [
    "Temporal sources vary in directional quality; approximations are recorded.",
    "Other actors have limited source poses, not invented eight-frame animations.",
    "All reused actions and weapon-pose limitations are explicit."
  ],
  "animationPolish": {
    "build": "5.5.0-animation-polish",
    "newOriginalDrawings": 0,
    "recoveredTemporalClips": [
      {
        "actor": "brute",
        "file": "art/c-actors07/brute--collapse.webp",
        "frames": 8,
        "uniformScale": 0.89,
        "authoredView": "S",
        "sourceFrames": [
          {
            "source": "紫衣綠膚殭屍巨怪動作圖鑑.png",
            "sourceSha256": "270236e14f0a069b21d3cf9c9abf04f7d52cf847b295b42ea28786d684861eb6",
            "rect": [
              0,
              1064,
              140,
              1402
            ],
            "sourceColumn": 0,
            "cropBounds": [
              9,
              23,
              132,
              190
            ]
          },
          {
            "source": "紫衣綠膚殭屍巨怪動作圖鑑.png",
            "sourceSha256": "270236e14f0a069b21d3cf9c9abf04f7d52cf847b295b42ea28786d684861eb6",
            "rect": [
              140,
              1064,
              279,
              1402
            ],
            "sourceColumn": 1,
            "cropBounds": [
              2,
              38,
              125,
              191
            ]
          },
          {
            "source": "紫衣綠膚殭屍巨怪動作圖鑑.png",
            "sourceSha256": "270236e14f0a069b21d3cf9c9abf04f7d52cf847b295b42ea28786d684861eb6",
            "rect": [
              279,
              1064,
              413,
              1402
            ],
            "sourceColumn": 2,
            "cropBounds": [
              0,
              70,
              125,
              192
            ]
          },
          {
            "source": "紫衣綠膚殭屍巨怪動作圖鑑.png",
            "sourceSha256": "270236e14f0a069b21d3cf9c9abf04f7d52cf847b295b42ea28786d684861eb6",
            "rect": [
              413,
              1064,
              551,
              1402
            ],
            "sourceColumn": 3,
            "cropBounds": [
              0,
              101,
              138,
              193
            ]
          },
          {
            "source": "紫衣綠膚殭屍巨怪動作圖鑑.png",
            "sourceSha256": "270236e14f0a069b21d3cf9c9abf04f7d52cf847b295b42ea28786d684861eb6",
            "rect": [
              551,
              1064,
              701,
              1402
            ],
            "sourceColumn": 4,
            "cropBounds": [
              0,
              133,
              140,
              210
            ]
          },
          {
            "source": "紫衣綠膚殭屍巨怪動作圖鑑.png",
            "sourceSha256": "270236e14f0a069b21d3cf9c9abf04f7d52cf847b295b42ea28786d684861eb6",
            "rect": [
              701,
              1064,
              832,
              1402
            ],
            "sourceColumn": 5,
            "cropBounds": [
              0,
              138,
              124,
              211
            ]
          },
          {
            "source": "紫衣綠膚殭屍巨怪動作圖鑑.png",
            "sourceSha256": "270236e14f0a069b21d3cf9c9abf04f7d52cf847b295b42ea28786d684861eb6",
            "rect": [
              832,
              1064,
              980,
              1402
            ],
            "sourceColumn": 6,
            "cropBounds": [
              1,
              136,
              139,
              215
            ]
          },
          {
            "source": "紫衣綠膚殭屍巨怪動作圖鑑.png",
            "sourceSha256": "270236e14f0a069b21d3cf9c9abf04f7d52cf847b295b42ea28786d684861eb6",
            "rect": [
              980,
              1064,
              1122,
              1402
            ],
            "sourceColumn": 7,
            "cropBounds": [
              0,
              132,
              128,
              213
            ]
          }
        ],
        "sha256": "9cbcc0843c98a891bf9edc1a330a599846b7b7fdc4974f1a30d4ebcdf52098ae"
      },
      {
        "actor": "warden",
        "file": "art/c-actors07/warden--collapse.webp",
        "frames": 8,
        "uniformScale": 0.8232044198895028,
        "authoredView": "SE",
        "sourceFrames": [
          {
            "source": "重裝變異守衛動作精靈表.png",
            "sourceSha256": "ae7fa2e5f45eee6058c1c6094c45401760bfb022bf64bb0c0fc0cf713e30cb0e",
            "rect": [
              0,
              1080,
              140,
              1402
            ],
            "sourceColumn": 0,
            "cropBounds": [
              12,
              8,
              129,
              189
            ]
          },
          {
            "source": "重裝變異守衛動作精靈表.png",
            "sourceSha256": "ae7fa2e5f45eee6058c1c6094c45401760bfb022bf64bb0c0fc0cf713e30cb0e",
            "rect": [
              140,
              1080,
              275,
              1402
            ],
            "sourceColumn": 1,
            "cropBounds": [
              0,
              51,
              130,
              189
            ]
          },
          {
            "source": "重裝變異守衛動作精靈表.png",
            "sourceSha256": "ae7fa2e5f45eee6058c1c6094c45401760bfb022bf64bb0c0fc0cf713e30cb0e",
            "rect": [
              275,
              1080,
              413,
              1402
            ],
            "sourceColumn": 2,
            "cropBounds": [
              0,
              91,
              138,
              193
            ]
          },
          {
            "source": "重裝變異守衛動作精靈表.png",
            "sourceSha256": "ae7fa2e5f45eee6058c1c6094c45401760bfb022bf64bb0c0fc0cf713e30cb0e",
            "rect": [
              413,
              1080,
              549,
              1402
            ],
            "sourceColumn": 3,
            "cropBounds": [
              0,
              103,
              136,
              196
            ]
          },
          {
            "source": "重裝變異守衛動作精靈表.png",
            "sourceSha256": "ae7fa2e5f45eee6058c1c6094c45401760bfb022bf64bb0c0fc0cf713e30cb0e",
            "rect": [
              549,
              1080,
              690,
              1402
            ],
            "sourceColumn": 4,
            "cropBounds": [
              0,
              116,
              141,
              199
            ]
          },
          {
            "source": "重裝變異守衛動作精靈表.png",
            "sourceSha256": "ae7fa2e5f45eee6058c1c6094c45401760bfb022bf64bb0c0fc0cf713e30cb0e",
            "rect": [
              690,
              1080,
              835,
              1402
            ],
            "sourceColumn": 5,
            "cropBounds": [
              0,
              123,
              144,
              200
            ]
          },
          {
            "source": "重裝變異守衛動作精靈表.png",
            "sourceSha256": "ae7fa2e5f45eee6058c1c6094c45401760bfb022bf64bb0c0fc0cf713e30cb0e",
            "rect": [
              835,
              1080,
              982,
              1402
            ],
            "sourceColumn": 6,
            "cropBounds": [
              0,
              123,
              142,
              203
            ]
          },
          {
            "source": "重裝變異守衛動作精靈表.png",
            "sourceSha256": "ae7fa2e5f45eee6058c1c6094c45401760bfb022bf64bb0c0fc0cf713e30cb0e",
            "rect": [
              982,
              1080,
              1122,
              1402
            ],
            "sourceColumn": 7,
            "cropBounds": [
              0,
              121,
              133,
              200
            ]
          }
        ],
        "sha256": "cb0304adb3684d42bee41792c3665e06cab1dcc2afe9837e78dc7994a24d13e5"
      },
      {
        "actor": "screamer",
        "file": "art/c-actors07/screamer--collapse.webp",
        "frames": 7,
        "uniformScale": 0.87,
        "authoredView": "SW",
        "sourceFrames": [
          {
            "source": "尖叫殭屍八方向動畫圖集.png",
            "sourceSha256": "5a00125c9ce8bfc8cf4cb6e99875ce4353fad1812b65d49ddaf48058ff65f5a0",
            "rect": [
              0,
              1197,
              140,
              1402
            ],
            "sourceColumn": 0,
            "cropBounds": [
              21,
              0,
              125,
              158
            ]
          },
          {
            "source": "尖叫殭屍八方向動畫圖集.png",
            "sourceSha256": "5a00125c9ce8bfc8cf4cb6e99875ce4353fad1812b65d49ddaf48058ff65f5a0",
            "rect": [
              140,
              1197,
              279,
              1402
            ],
            "sourceColumn": 1,
            "cropBounds": [
              7,
              31,
              122,
              151
            ]
          },
          {
            "source": "尖叫殭屍八方向動畫圖集.png",
            "sourceSha256": "5a00125c9ce8bfc8cf4cb6e99875ce4353fad1812b65d49ddaf48058ff65f5a0",
            "rect": [
              279,
              1197,
              411,
              1402
            ],
            "sourceColumn": 2,
            "cropBounds": [
              0,
              53,
              124,
              149
            ]
          },
          {
            "source": "尖叫殭屍八方向動畫圖集.png",
            "sourceSha256": "5a00125c9ce8bfc8cf4cb6e99875ce4353fad1812b65d49ddaf48058ff65f5a0",
            "rect": [
              411,
              1197,
              550,
              1402
            ],
            "sourceColumn": 3,
            "cropBounds": [
              0,
              49,
              129,
              151
            ]
          },
          {
            "source": "尖叫殭屍八方向動畫圖集.png",
            "sourceSha256": "5a00125c9ce8bfc8cf4cb6e99875ce4353fad1812b65d49ddaf48058ff65f5a0",
            "rect": [
              550,
              1197,
              698,
              1402
            ],
            "sourceColumn": 4,
            "cropBounds": [
              0,
              51,
              137,
              147
            ]
          },
          {
            "source": "尖叫殭屍八方向動畫圖集.png",
            "sourceSha256": "5a00125c9ce8bfc8cf4cb6e99875ce4353fad1812b65d49ddaf48058ff65f5a0",
            "rect": [
              698,
              1197,
              841,
              1402
            ],
            "sourceColumn": 5,
            "cropBounds": [
              0,
              55,
              130,
              146
            ]
          },
          {
            "source": "尖叫殭屍八方向動畫圖集.png",
            "sourceSha256": "5a00125c9ce8bfc8cf4cb6e99875ce4353fad1812b65d49ddaf48058ff65f5a0",
            "rect": [
              841,
              1197,
              982,
              1402
            ],
            "sourceColumn": 6,
            "cropBounds": [
              0,
              52,
              118,
              145
            ]
          }
        ],
        "sha256": "a71758453eeb417a71b4e73a8757e17ded00f42b88ade8dccb170b722d9d4934"
      }
    ],
    "cleanedAtlases": [
      {
        "file": "art/c-actors07/hero--fire-clean.webp",
        "sourceFile": "art/c-actors06/hero--fire.webp",
        "sha256": "e374a73848d78698e9aff5fc434ef18b4bbe751de9c2bd5b68811308ed9c08d6",
        "maskEdits": [
          {
            "direction": "E",
            "frame": 2,
            "edits": [
              [
                132,
                0,
                160,
                76
              ],
              {
                "alphaMaskPixels": 660,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "E",
            "frame": 3,
            "edits": [
              [
                132,
                0,
                160,
                76
              ],
              {
                "alphaMaskPixels": 686,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "E",
            "frame": 4,
            "edits": [
              [
                132,
                0,
                160,
                76
              ],
              {
                "alphaMaskPixels": 663,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "E",
            "frame": 5,
            "edits": [
              [
                132,
                0,
                160,
                76
              ],
              {
                "alphaMaskPixels": 623,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "SE",
            "frame": 2,
            "edits": [
              {
                "alphaMaskPixels": 712,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "SE",
            "frame": 3,
            "edits": [
              {
                "alphaMaskPixels": 717,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "SE",
            "frame": 4,
            "edits": [
              {
                "alphaMaskPixels": 702,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "SE",
            "frame": 5,
            "edits": [
              {
                "alphaMaskPixels": 709,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "S",
            "frame": 2,
            "edits": [
              {
                "alphaMaskPixels": 624,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "S",
            "frame": 3,
            "edits": [
              {
                "alphaMaskPixels": 694,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "S",
            "frame": 4,
            "edits": [
              {
                "alphaMaskPixels": 678,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "S",
            "frame": 5,
            "edits": [
              {
                "alphaMaskPixels": 685,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "SW",
            "frame": 2,
            "edits": [
              {
                "alphaMaskPixels": 0,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "SW",
            "frame": 3,
            "edits": [
              {
                "alphaMaskPixels": 127,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "SW",
            "frame": 4,
            "edits": [
              {
                "alphaMaskPixels": 28,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "SW",
            "frame": 5,
            "edits": [
              {
                "alphaMaskPixels": 28,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "W",
            "frame": 2,
            "edits": [
              {
                "alphaMaskPixels": 0,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "W",
            "frame": 3,
            "edits": [
              {
                "alphaMaskPixels": 712,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "W",
            "frame": 4,
            "edits": [
              {
                "alphaMaskPixels": 0,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "W",
            "frame": 5,
            "edits": [
              {
                "alphaMaskPixels": 0,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "NW",
            "frame": 2,
            "edits": [
              {
                "alphaMaskPixels": 0,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "NW",
            "frame": 3,
            "edits": [
              {
                "alphaMaskPixels": 711,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "NW",
            "frame": 4,
            "edits": [
              {
                "alphaMaskPixels": 0,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "NW",
            "frame": 5,
            "edits": [
              {
                "alphaMaskPixels": 0,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "N",
            "frame": 2,
            "edits": [
              {
                "alphaMaskPixels": 682,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "N",
            "frame": 3,
            "edits": [
              {
                "alphaMaskPixels": 649,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "N",
            "frame": 4,
            "edits": [
              {
                "alphaMaskPixels": 638,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "N",
            "frame": 5,
            "edits": [
              {
                "alphaMaskPixels": 656,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "NE",
            "frame": 2,
            "edits": [
              {
                "alphaMaskPixels": 659,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "NE",
            "frame": 3,
            "edits": [
              {
                "alphaMaskPixels": 676,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "NE",
            "frame": 4,
            "edits": [
              {
                "alphaMaskPixels": 682,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          },
          {
            "direction": "NE",
            "frame": 5,
            "edits": [
              {
                "alphaMaskPixels": 683,
                "method": "bright flash core plus 3px connected halo; bounded muzzle region"
              }
            ],
            "purpose": "remove external muzzle light / connected neighboring sprite fragment; runtime supplies event-timed flash"
          }
        ],
        "muzzlesByDirection": [
          [
            129,
            79
          ],
          [
            120,
            103
          ],
          [
            83,
            133
          ],
          [
            31,
            99
          ],
          [
            25,
            74
          ],
          [
            25,
            74
          ],
          [
            84,
            42
          ],
          [
            126,
            57
          ]
        ],
        "frameOrder": [
          2,
          3,
          4,
          5,
          6,
          7,
          0,
          1
        ]
      }
    ],
    "unchangedLegacyActors": [
      "nest"
    ],
    "modelVersionVerified": false,
    "newGenerationAttempts": [
      {
        "file": "rejected/a_high_detail_promotional_gameplay_update_poster_c.png",
        "sha256": "2d419a689bb64e090dd51479bca58878794fae5bca3126c6ddc4db30f81412b5",
        "accepted": false,
        "reason": "Poster instead of requested single-character, single-direction eight-frame reload sheet; not used by game."
      },
      {
        "file": "rejected/a_detailed_promotional_poster_collage_for_a_2d_p.png",
        "sha256": "3f8780c68ce0968511cc53e20f88f2637699fcc93dc3c2991730b4bb4eb4ceb8",
        "accepted": false,
        "reason": "Poster instead of requested single-character, single-direction eight-frame reload sheet; not used by game."
      }
    ]
  }
}