Bläddra i källkod

[xna] Added SkeletonDebugRenderer, modified sample to reproduce clipping issue.

badlogic 8 år sedan
förälder
incheckning
a5d2519f86

+ 1 - 0
.gitignore

@@ -55,6 +55,7 @@ spine-xna/obj
 spine-xna/example/bin
 spine-xna/example/obj
 spine-xna/example-content/obj/
+spine-xna/.vs/
 
 spine-unity/Assets/spine-csharp*
 !spine-unity/Assets/spine-csharp/Place spine-csharp src here.*

+ 1 - 0
CHANGELOG.md

@@ -140,6 +140,7 @@
  * Removed `RegionBatcher` and `SkeletonRegionRenderer`, renamed `SkeletonMeshRenderer` to `SkeletonRenderer`
  * Added support for two color tint. For it to work, you need to add the `SpineEffect.fx` file to your content project, then load it via `var effect = Content.Load<Effect>("SpineEffect");`, and set it on the `SkeletonRenderer`. See the example project for code.
  * Added support for any `Effect` to be used by `SkeletonRenderer`
+ * Added `SkeletonDebugRenderer`
 
 ## Java
  * **Breaking changes**

+ 1 - 1
spine-csharp/src/SkeletonClipping.cs

@@ -258,7 +258,7 @@ namespace Spine {
 			return clipped;
 		}
 
-		static void MakeClockwise (ExposedList<float> polygon) {
+		public static void MakeClockwise (ExposedList<float> polygon) {
 			float[] vertices = polygon.Items;
 			int verticeslength = polygon.Count;
 

+ 1 - 1
spine-csharp/src/Triangulator.cs

@@ -31,7 +31,7 @@
 using System;
 
 namespace Spine {
-	internal class Triangulator {
+	public class Triangulator {
 		private readonly ExposedList<ExposedList<float>> convexPolygons = new ExposedList<ExposedList<float>>();
 		private readonly ExposedList<ExposedList<int>> convexPolygonsIndices = new ExposedList<ExposedList<int>>();
 

+ 13 - 0
spine-xna/example/data/skeleton.atlas

@@ -0,0 +1,13 @@
+
+skeleton.png
+size: 256,256
+format: RGBA8888
+filter: Linear,Linear
+repeat: none
+body
+  rotate: false
+  xy: 2, 2
+  size: 192, 129
+  orig: 192, 129
+  offset: 0, 0
+  index: -1

+ 3938 - 0
spine-xna/example/data/skeleton.json

@@ -0,0 +1,3938 @@
+{
+"skeleton": { "hash": "Wfqu/0Mq676FGgKU6pYsaFfnTWM", "spine": "3.6.37", "width": 1536.42, "height": 1034.47, "images": "" },
+"bones": [
+	{ "name": "root", "x": -34.97, "y": -45.68 },
+	{ "name": "b_FullPet", "parent": "root", "x": 34.97, "y": 147.4 },
+	{ "name": "b_pelvis", "parent": "b_FullPet", "length": 40, "rotation": 90, "y": -65.99, "color": "3fe81fff" },
+	{ "name": "b_dorso", "parent": "b_pelvis", "length": 40, "x": 40, "color": "3fe81fff" },
+	{ "name": "ik_foot_R", "parent": "b_FullPet", "x": 40.16, "y": -98.44, "color": "ff3f00ff" },
+	{ "name": "ik_fot_L", "parent": "b_FullPet", "x": -38.22, "y": -94.54, "color": "ff3f00ff" }
+],
+"slots": [
+	{ "name": "s_dorso", "bone": "b_pelvis", "attachment": "a_dorso" },
+	{ "name": "s_dorsoMask", "bone": "b_pelvis", "attachment": "mask_dorso" },
+	{ "name": "s_clippingTest", "bone": "root", "attachment": "Pig/Normal/body" },
+	{ "name": "SwingPath", "bone": "root" }
+],
+"skins": {
+	"default": {
+		"s_clippingTest": {
+			"Pig/Normal/body": {
+				"path": "body",
+				"color": "77ff0086",
+				"x": 45.44,
+				"y": 142.62,
+				"scaleX": 7.988,
+				"scaleY": 7.988,
+				"rotation": -0.15,
+				"width": 192,
+				"height": 129
+			}
+		},
+		"s_dorsoMask": {
+			"mask_dorso": {
+				"type": "clipping",
+				"end": "s_clippingTest",
+				"vertexCount": 21,
+				"vertices": [ 27.17, -71.8, 41.59, -74.37, 148.99, -449.2, -183.54, -5.45, 157.01, 439.14, 58.93, 78.79, 44.37, 82.08, 31.34, 81.95, 14.55, 71.89, 6.39, 62.6, 0.54, 48.4, -4.89, 40.18, -7.56, 31.23, -8.92, 25.76, -9.85, 14.96, -9.97, -2.74, -8.18, -17.45, -4.12, -27.94, 0.66, -36.11, 5.09, -51.35, 10.31, -61.78 ],
+				"color": "ce3a3aff"
+			}
+		}
+	},
+	"Pig_Normal": {
+		"s_dorso": {
+			"a_dorso": {
+				"name": "Pig/Normal/body",
+				"type": "mesh",
+				"path": "body",
+				"uvs": [ 0.90738, 0.07928, 0.99999, 0.34016, 0.99999, 0.57165, 0.91067, 0.89867, 0.45711, 1, 0.11162, 0.90235, 0, 0.68188, 0, 0.39773, 0.11491, 0.10622, 0.27538, 0, 0.75514, 0, 0.49921, 0.57288, 0.05895, 0.5741, 0.89915, 0.5741, 0.50004, 0.70026, 0.49263, 0.40753, 0.09269, 0.4259, 0.07541, 0.69781, 0.90244, 0.68066, 0.89997, 0.4504, 0.70001, 0.41855, 0.69507, 0.69413, 0.26797, 0.41365, 0.26304, 0.70148, 0.26304, 0.53981, 0.7033, 0.55818 ],
+				"triangles": [ 15, 9, 10, 22, 8, 9, 8, 16, 7, 9, 15, 22, 20, 15, 10, 20, 10, 0, 20, 0, 1, 22, 16, 8, 19, 20, 1, 24, 16, 22, 25, 20, 19, 2, 19, 1, 11, 15, 20, 11, 20, 25, 12, 7, 16, 12, 16, 24, 13, 25, 19, 13, 19, 2, 18, 13, 2, 6, 7, 12, 18, 25, 13, 24, 22, 15, 11, 24, 15, 21, 11, 25, 18, 21, 25, 23, 17, 12, 6, 12, 17, 14, 11, 21, 24, 23, 12, 3, 18, 2, 21, 18, 3, 5, 17, 23, 6, 17, 5, 23, 11, 14, 11, 23, 24, 4, 23, 14, 5, 23, 4, 4, 14, 21, 4, 21, 3 ],
+				"vertices": [ 2, 2, 103.73, -81.07, 0.09082, 3, 63.73, -81.07, 0.90918, 2, 2, 70.08, -98.85, 0.24199, 3, 30.08, -98.85, 0.75801, 2, 2, 40.21, -98.85, 0.41047, 3, 0.21, -98.85, 0.58953, 2, 2, -1.97, -81.7, 0.67622, 3, -41.97, -81.7, 0.32378, 1, 2, -15.04, 5.38, 1, 2, 2, -2.45, 71.72, 0.74625, 3, -42.45, 71.72, 0.25375, 2, 2, 25.99, 93.15, 0.57561, 3, -14.01, 93.15, 0.42439, 2, 2, 62.65, 93.15, 0.36681, 3, 22.65, 93.15, 0.63319, 2, 2, 100.25, 71.08, 0.13434, 3, 60.25, 71.08, 0.86566, 2, 2, 113.96, 40.27, 0.03188, 3, 73.96, 40.27, 0.96812, 2, 2, 113.96, -51.84, 0.02591, 3, 73.96, -51.84, 0.97409, 2, 2, 40.06, -2.7, 0.48864, 3, 0.06, -2.7, 0.51136, 2, 2, 39.9, 81.83, 0.5055, 3, -0.1, 81.83, 0.4945, 2, 2, 39.9, -79.49, 0.43555, 3, -0.1, -79.49, 0.56445, 1, 2, 23.62, -2.86, 1, 2, 2, 61.39, -1.44, 1.0E-4, 3, 21.39, -1.44, 0.9999, 2, 2, 59.02, 75.35, 0.36144, 3, 19.02, 75.35, 0.63856, 2, 2, 23.94, 78.67, 0.61354, 3, -16.06, 78.67, 0.38646, 2, 2, 26.15, -80.12, 0.54139, 3, -13.85, -80.12, 0.45861, 2, 2, 55.86, -79.65, 0.31037, 3, 15.86, -79.65, 0.68963, 2, 2, 59.96, -41.25, 0.19, 3, 19.96, -41.25, 0.81, 2, 2, 24.41, -40.31, 0.70726, 3, -15.59, -40.31, 0.29274, 2, 2, 60.6, 41.7, 0.25369, 3, 20.6, 41.7, 0.74631, 2, 2, 23.47, 42.64, 0.72828, 3, -16.53, 42.64, 0.27172, 2, 2, 44.32, 42.64, 0.45962, 3, 4.32, 42.64, 0.54038, 2, 2, 41.95, -41.89, 0.43679, 3, 1.95, -41.89, 0.56321 ],
+				"hull": 11,
+				"edges": [ 4, 2, 12, 14, 4, 6, 6, 8, 8, 10, 10, 12, 18, 20, 14, 16, 16, 18, 20, 0, 0, 2 ],
+				"width": 192,
+				"height": 129
+			}
+		}
+	}
+},
+"animations": {
+	"BattleIdle": {
+		"slots": {
+			"s_dorso": {
+				"attachment": [
+					{ "time": 0, "name": "a_dorso" },
+					{ "time": 0.9333, "name": "a_dorso" },
+					{ "time": 1.8667, "name": "a_dorso" }
+				]
+			}
+		},
+		"bones": {
+			"b_pelvis": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 3.18,
+						"curve": [ 0.455, 0, 0.712, 0.56 ]
+					},
+					{
+						"time": 0.4,
+						"angle": 8.39,
+						"curve": [ 0.282, 0.55, 0.584, 1 ]
+					},
+					{
+						"time": 0.8,
+						"angle": 7.82,
+						"curve": [ 0.455, 0, 0.712, 0.56 ]
+					},
+					{
+						"time": 1.3,
+						"angle": -6.14,
+						"curve": [ 0.282, 0.55, 0.584, 1 ]
+					},
+					{ "time": 1.8667, "angle": 3.18 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 4.37,
+						"y": -2.74,
+						"curve": [ 0.452, 0, 0.58, 1 ]
+					},
+					{
+						"time": 0.2333,
+						"x": 0,
+						"y": -8.51,
+						"curve": [ 0.452, 0, 0.58, 1 ]
+					},
+					{
+						"time": 0.4667,
+						"x": -13.1,
+						"y": -0.6,
+						"curve": [ 0.452, 0, 0.58, 1 ]
+					},
+					{
+						"time": 0.7,
+						"x": 0,
+						"y": -8.51,
+						"curve": [ 0.452, 0, 0.58, 1 ]
+					},
+					{
+						"time": 0.9333,
+						"x": 4.37,
+						"y": -2.74,
+						"curve": [ 0.452, 0, 0.58, 1 ]
+					},
+					{
+						"time": 1.1667,
+						"x": 0,
+						"y": -8.51,
+						"curve": [ 0.452, 0, 0.58, 1 ]
+					},
+					{
+						"time": 1.4,
+						"x": -13.1,
+						"y": -0.6,
+						"curve": [ 0.452, 0, 0.58, 1 ]
+					},
+					{
+						"time": 1.6333,
+						"x": 0,
+						"y": -8.51,
+						"curve": [ 0.452, 0, 0.58, 1 ]
+					},
+					{ "time": 1.8667, "x": 4.37, "y": -2.74 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1.002, "y": 1, "curve": "stepped" },
+					{ "time": 0.9333, "x": 1.002, "y": 1, "curve": "stepped" },
+					{ "time": 1.8667, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.8667, "x": 0, "y": 0 }
+				]
+			},
+			"b_dorso": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 6.62,
+						"curve": [ 0.283, 0.56, 0.59, 1 ]
+					},
+					{
+						"time": 0.1667,
+						"angle": 3.37,
+						"curve": [ 0.452, 0, 0.58, 1 ]
+					},
+					{
+						"time": 0.6333,
+						"angle": 27.35,
+						"curve": [ 0.452, 0, 0.58, 1 ]
+					},
+					{
+						"time": 1.1,
+						"angle": -5.67,
+						"curve": [ 0.452, 0, 0.58, 1 ]
+					},
+					{
+						"time": 1.5667,
+						"angle": 14.96,
+						"curve": [ 0.459, 0, 0.706, 0.58 ]
+					},
+					{ "time": 1.8667, "angle": 6.62 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": -0.27,
+						"y": 2.66,
+						"curve": [ 0.314, 0.42, 0.558, 1 ]
+					},
+					{
+						"time": 0.3,
+						"x": -0.42,
+						"y": -0.08,
+						"curve": [ 0.452, 0, 0.58, 1 ]
+					},
+					{
+						"time": 0.7667,
+						"x": -0.22,
+						"y": 3.56,
+						"curve": [ 0.452, 0, 0.58, 1 ]
+					},
+					{
+						"time": 1.2333,
+						"x": -0.42,
+						"y": -0.08,
+						"curve": [ 0.452, 0, 0.58, 1 ]
+					},
+					{
+						"time": 1.7,
+						"x": -0.22,
+						"y": 3.56,
+						"curve": [ 0.416, 0, 0.725, 0.44 ]
+					},
+					{ "time": 1.8667, "x": -0.27, "y": 2.66 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1.002, "y": 1, "curve": "stepped" },
+					{ "time": 0.9333, "x": 1.002, "y": 1, "curve": "stepped" },
+					{ "time": 1.8667, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.8667, "x": 0, "y": 0 }
+				]
+			},
+			"ik_foot_R": {
+				"rotate": [
+					{ "time": 0, "angle": 0, "curve": "stepped" },
+					{ "time": 0.3667, "angle": 0, "curve": "stepped" },
+					{ "time": 0.9333, "angle": 0, "curve": "stepped" },
+					{ "time": 1.8667, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 1.63, "curve": "stepped" },
+					{
+						"time": 0.3667,
+						"x": 0,
+						"y": 1.63,
+						"curve": [ 0.498, 0, 0.538, 1 ]
+					},
+					{
+						"time": 0.6,
+						"x": 25.35,
+						"y": 23.19,
+						"curve": [ 0.498, 0, 0.538, 1 ]
+					},
+					{ "time": 0.9333, "x": 0, "y": 1.63, "curve": "stepped" },
+					{ "time": 1.8667, "x": 0, "y": 1.63 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 0.3667, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 1.8667, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.8667, "x": 0, "y": 0 }
+				]
+			},
+			"ik_fot_L": {
+				"rotate": [
+					{ "time": 0, "angle": 0, "curve": "stepped" },
+					{ "time": 0.9333, "angle": 0, "curve": "stepped" },
+					{ "time": 1.5, "angle": 0, "curve": "stepped" },
+					{ "time": 1.8667, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": -14.59, "y": -1.22, "curve": "stepped" },
+					{
+						"time": 0.9333,
+						"x": -14.59,
+						"y": -1.22,
+						"curve": [ 0.498, 0, 0.538, 1 ]
+					},
+					{
+						"time": 1.3,
+						"x": -36.15,
+						"y": 9.31,
+						"curve": [ 0.498, 0, 0.538, 1 ]
+					},
+					{ "time": 1.5, "x": -14.59, "y": -1.22, "curve": "stepped" },
+					{ "time": 1.8667, "x": -14.59, "y": -1.22 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 1.5, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 1.8667, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.8667, "x": 0, "y": 0 }
+				]
+			},
+			"b_FullPet": {
+				"rotate": [
+					{ "time": 0, "angle": 0, "curve": "stepped" },
+					{ "time": 0.9333, "angle": 0, "curve": "stepped" },
+					{ "time": 1.8667, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.8667, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 1.8667, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.8667, "x": 0, "y": 0 }
+				]
+			}
+		},
+		"drawOrder": [
+			{ "time": 0 },
+			{ "time": 1.8667 }
+		]
+	},
+	"Celebrate": {
+		"slots": {
+			"s_dorso": {
+				"attachment": [
+					{ "time": 0, "name": "a_dorso" },
+					{ "time": 2.5, "name": "a_dorso" }
+				]
+			}
+		},
+		"bones": {
+			"b_pelvis": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.29,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.9667,
+						"angle": 7.2,
+						"curve": [ 0, 0, 0.418, 1 ]
+					},
+					{
+						"time": 1.4667,
+						"angle": -8.84,
+						"curve": [ 0.467, 0, 0.861, 0.7 ]
+					},
+					{
+						"time": 1.8667,
+						"angle": -3.93,
+						"curve": [ 0, 0.09, 0.386, 0.6 ]
+					},
+					{
+						"time": 1.9667,
+						"angle": 3.57,
+						"curve": [ 0.455, 0, 0.437, 1 ]
+					},
+					{
+						"time": 2.1,
+						"angle": 0,
+						"curve": [ 0.497, 0, 0.446, 0.99 ]
+					},
+					{ "time": 2.5, "angle": 3.18 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 0.33,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.9667,
+						"x": 5.24,
+						"y": -14.91,
+						"curve": [ 0, 0, 0.312, 1 ]
+					},
+					{
+						"time": 1.4667,
+						"x": 11.2,
+						"y": 178.98,
+						"curve": [ 0.554, 0, 1, 0.96 ]
+					},
+					{
+						"time": 1.9,
+						"x": 7.64,
+						"y": -13.47,
+						"curve": [ 0.384, 0, 0.712, 0.38 ]
+					},
+					{
+						"time": 1.9667,
+						"x": 8.3,
+						"y": -10.16,
+						"curve": [ 0.455, 0, 0.437, 1 ]
+					},
+					{
+						"time": 2.1,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0.455, 0, 0.437, 1 ]
+					},
+					{ "time": 2.5, "x": 0, "y": 0.92 }
+				],
+				"scale": [
+					{
+						"time": 0,
+						"x": 1.004,
+						"y": 1,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.9667,
+						"x": 0.989,
+						"y": 1.005,
+						"curve": [ 0, 0, 0.355, 0.42 ]
+					},
+					{
+						"time": 1.0667,
+						"x": 1.054,
+						"y": 0.924,
+						"curve": [ 0.179, 0.37, 0.545, 1 ]
+					},
+					{
+						"time": 1.4667,
+						"x": 0.994,
+						"y": 0.968,
+						"curve": [ 0.428, 0, 0.8, 0.59 ]
+					},
+					{
+						"time": 1.8667,
+						"x": 1.046,
+						"y": 0.913,
+						"curve": [ 0.428, 0, 0.8, 0.59 ]
+					},
+					{
+						"time": 1.9333,
+						"x": 0.893,
+						"y": 1.086,
+						"curve": [ 0.365, 0.35, 0.699, 0.69 ]
+					},
+					{
+						"time": 1.9667,
+						"x": 0.894,
+						"y": 1.105,
+						"curve": [ 0.455, 0, 0.437, 1 ]
+					},
+					{
+						"time": 2.1,
+						"x": 1.047,
+						"y": 0.961,
+						"curve": [ 0.455, 0, 0.437, 1 ]
+					},
+					{
+						"time": 2.2333,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.497, 0, 0.446, 0.99 ]
+					},
+					{ "time": 2.5, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.5, "x": 0, "y": 0 }
+				]
+			},
+			"b_dorso": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.3,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.9667,
+						"angle": -0.96,
+						"curve": [ 0, 0, 0.418, 1 ]
+					},
+					{
+						"time": 1.4667,
+						"angle": -16.61,
+						"curve": [ 0.467, 0, 0.861, 0.7 ]
+					},
+					{
+						"time": 1.8667,
+						"angle": -8.41,
+						"curve": [ 0, 0.09, 0.386, 0.6 ]
+					},
+					{
+						"time": 1.9667,
+						"angle": -1.26,
+						"curve": [ 0.455, 0, 0.437, 1 ]
+					},
+					{
+						"time": 2.1,
+						"angle": 0,
+						"curve": [ 0.503, 0, 0.759, 0.47 ]
+					},
+					{ "time": 2.5, "angle": 3.37 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 1.33,
+						"y": -0.08,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.9667,
+						"x": 4.97,
+						"y": -9.58,
+						"curve": [ 0.297, 0.63, 0.629, 1 ]
+					},
+					{
+						"time": 1.0667,
+						"x": 7.35,
+						"y": -0.15,
+						"curve": [ 0.333, 0.32, 0.633, 0.69 ]
+					},
+					{
+						"time": 1.4667,
+						"x": -4.32,
+						"y": 0.49,
+						"curve": [ 0.252, 0.47, 0.556, 0.86 ]
+					},
+					{
+						"time": 1.8667,
+						"x": 4.82,
+						"y": -0.71,
+						"curve": [ 0.308, 0.62, 0.64, 0.96 ]
+					},
+					{
+						"time": 1.9333,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0.436, 0, 0.746, 0.43 ]
+					},
+					{
+						"time": 1.9667,
+						"x": -4.75,
+						"y": 0.1,
+						"curve": [ 0.455, 0, 0.437, 1 ]
+					},
+					{
+						"time": 2.1,
+						"x": 12.37,
+						"y": -2.05,
+						"curve": [ 0.455, 0, 0.437, 1 ]
+					},
+					{
+						"time": 2.2333,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0.486, 0, 0.761, 0.45 ]
+					},
+					{ "time": 2.5, "x": -0.42, "y": -0.08 }
+				],
+				"scale": [
+					{
+						"time": 0,
+						"x": 1.004,
+						"y": 1,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.9667,
+						"x": 1.007,
+						"y": 0.967,
+						"curve": [ 0.327, 0.33, 0.645, 0.68 ]
+					},
+					{
+						"time": 1.0667,
+						"x": 1.033,
+						"y": 0.924,
+						"curve": [ 0.228, 0.54, 0.51, 0.99 ]
+					},
+					{
+						"time": 1.4667,
+						"x": 0.953,
+						"y": 0.979,
+						"curve": [ 0.554, 0, 1, 0.96 ]
+					},
+					{
+						"time": 1.8667,
+						"x": 1.017,
+						"y": 0.923,
+						"curve": [ 0.554, 0, 1, 0.96 ]
+					},
+					{
+						"time": 1.9333,
+						"x": 0.943,
+						"y": 1.025,
+						"curve": [ 0.436, 0, 0.746, 0.43 ]
+					},
+					{
+						"time": 1.9667,
+						"x": 0.934,
+						"y": 1.098,
+						"curve": [ 0.455, 0, 0.437, 1 ]
+					},
+					{
+						"time": 2.1,
+						"x": 1.047,
+						"y": 0.98,
+						"curve": [ 0.455, 0, 0.437, 1 ]
+					},
+					{
+						"time": 2.2333,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.455, 0, 0.437, 1 ]
+					},
+					{ "time": 2.5, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.5, "x": 0, "y": 0 }
+				]
+			},
+			"ik_fot_L": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.03,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 0.9667, "angle": 0, "curve": "stepped" },
+					{ "time": 1.0333, "angle": 0, "curve": "stepped" },
+					{ "time": 1.4667, "angle": 0, "curve": "stepped" },
+					{ "time": 2.5, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{
+						"time": 0.9667,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0, 0, 0.34, 0.36 ]
+					},
+					{
+						"time": 1,
+						"x": -0.1,
+						"y": 7.01,
+						"curve": [ 0.226, 0.24, 0.562, 0.58 ]
+					},
+					{
+						"time": 1.0333,
+						"x": -0.2,
+						"y": 28.59,
+						"curve": [ 0.339, 0, 0.64, 0.52 ]
+					},
+					{
+						"time": 1.2667,
+						"x": 17.87,
+						"y": 145.08,
+						"curve": [ 0.276, 0.52, 0.591, 1 ]
+					},
+					{
+						"time": 1.4667,
+						"x": 27.37,
+						"y": 206.34,
+						"curve": [ 0.412, 0, 0.775, 0.55 ]
+					},
+					{
+						"time": 1.8,
+						"x": -51.89,
+						"y": 117.87,
+						"curve": [ 0.259, 0.26, 0.594, 0.61 ]
+					},
+					{
+						"time": 1.8333,
+						"x": -41.51,
+						"y": 62.03,
+						"curve": [ 0.285, 0.33, 0.62, 0.68 ]
+					},
+					{
+						"time": 1.8667,
+						"x": -10,
+						"y": 10.61,
+						"curve": [ 0.298, 0.39, 0.633, 0.74 ]
+					},
+					{
+						"time": 1.9,
+						"x": 0.36,
+						"y": -9.33,
+						"curve": [ 0.307, 0.62, 0.641, 1 ]
+					},
+					{
+						"time": 1.9333,
+						"x": -0.51,
+						"y": -6.39,
+						"curve": [ 0.568, 0, 0.558, 1 ]
+					},
+					{ "time": 2.3, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.5, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 0.9667, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 1.0333, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 1.4667, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 2.5, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.5, "x": 0, "y": 0 }
+				]
+			},
+			"ik_foot_R": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.03,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 0.9667, "angle": 0, "curve": "stepped" },
+					{ "time": 1.0333, "angle": 0, "curve": "stepped" },
+					{ "time": 1.4667, "angle": 0, "curve": "stepped" },
+					{ "time": 2.5, "angle": 0 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 1.63,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.9667,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0, 0, 0.34, 0.36 ]
+					},
+					{
+						"time": 1.0333,
+						"x": -0.21,
+						"y": 21.37,
+						"curve": [ 0.339, 0, 0.64, 0.52 ]
+					},
+					{
+						"time": 1.2667,
+						"x": 23.44,
+						"y": 139.38,
+						"curve": [ 0.276, 0.52, 0.591, 1 ]
+					},
+					{
+						"time": 1.4667,
+						"x": 35.87,
+						"y": 201.46,
+						"curve": [ 0.361, 0, 0.701, 0.41 ]
+					},
+					{
+						"time": 1.6333,
+						"x": 21.09,
+						"y": 151.95,
+						"curve": [ 0.354, 0.3, 0.689, 0.64 ]
+					},
+					{
+						"time": 1.7,
+						"x": -17.39,
+						"y": 114.53,
+						"curve": [ 0.379, 0.33, 0.716, 0.67 ]
+					},
+					{
+						"time": 1.8,
+						"x": -78.25,
+						"y": 64.65,
+						"curve": [ 0.259, 0.26, 0.594, 0.61 ]
+					},
+					{
+						"time": 1.8333,
+						"x": -56.02,
+						"y": 28.63,
+						"curve": [ 0.285, 0.33, 0.62, 0.68 ]
+					},
+					{
+						"time": 1.8667,
+						"x": -28.63,
+						"y": -1.65,
+						"curve": [ 0.298, 0.39, 0.633, 0.74 ]
+					},
+					{
+						"time": 1.9,
+						"x": -7.16,
+						"y": -3.75,
+						"curve": [ 0.307, 0.62, 0.641, 1 ]
+					},
+					{
+						"time": 1.9333,
+						"x": 4.83,
+						"y": -2.45,
+						"curve": [ 0.568, 0, 0.558, 1 ]
+					},
+					{
+						"time": 2.3,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0.25, 0, 0.524, 1 ]
+					},
+					{ "time": 2.5, "x": 0, "y": 1.63 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 0.9667, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 1.0333, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 1.4667, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 2.5, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.5, "x": 0, "y": 0 }
+				]
+			},
+			"root": {
+				"rotate": [
+					{ "time": 0, "angle": 0.03 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			},
+			"b_FullPet": {
+				"rotate": [
+					{ "time": 0, "angle": 0.03 },
+					{ "time": 2.5, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.5, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 2.5, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.5, "x": 0, "y": 0 }
+				]
+			}
+		},
+		"deform": {
+			"default": {
+				"s_dorsoMask": {
+					"mask_dorso": [
+						{
+							"time": 0,
+							"curve": [ 0, 0.25, 0.503, 0.99 ]
+						},
+						{
+							"time": 0.9667,
+							"offset": 16,
+							"vertices": [ 2.72274, -3.19884, 1.03746, -6.24719, 0.59287, 2.7833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.68507, 6.37256, 3.18478, -2.66216, 0.22406, -3.68368, -2.86547, 0.98381, -3.4187, 3.01636 ]
+						},
+						{
+							"time": 1.4667,
+							"offset": 14,
+							"vertices": [ 1.11298, -3.50107, 0.42943, -2.69338, 1.78653, -3.50885, 0.75626, -3.69767, 2.73042, -2.66428, 1.8187, 1.44226, 1.78731, 0.71638, 0.64211, 0.39046, 0, 0, -1.48307, 0.6331, -4.88093, 4.75345, -2.67077, -6.05781, -2.93005, -6.1883, 0.8532, -6.54452 ]
+						},
+						{
+							"time": 1.6333,
+							"offset": 14,
+							"vertices": [ -4.40263, -6.21354, 2.42932, -4.88385, -0.25086, -5.12446, 0.63073, 2.11071, 1.30785, -0.29153, 1.52536, 1.20964, 1.49903, 0.60083, 0.53854, 0.32749, -0.12155, 1.20127, 0.23196, 0.24223, -1.20999, 3.01826, -2.20569, -5.05866, -2.45746, -5.19019, 0.71558, -5.48895 ]
+						},
+						{
+							"time": 1.8667,
+							"offset": 14,
+							"vertices": [ -0.64347, -5.44632, 1.66878, -1.96058, 0.55962, -6.4887, 1.79335, 1.69015, 1.06664, 0.34609, 1.11468, 0.88397, 1.09545, 0.43907, 0.39355, 0.23932, 0.63279, 2.57721, 2.633, -0.305, 1.24508, 2.58851, -2.95284, 1.08917, -1.79584, -3.79283, 0.52293, -4.01116 ]
+						},
+						{
+							"time": 1.9333,
+							"offset": 14,
+							"vertices": [ -11.16597, -6.22567, 0.52663, -1.18763, -0.31141, -1.18028, 0.24237, 4.66209, 0.04449, 2.36446, 0.99735, 0.79092, 0.98014, 0.39285, 0.35212, 0.21412, 0.56618, 2.30592, 2.35585, -0.2729, 1.11402, 2.31604, -2.64202, 0.97452, -1.6068, -3.39358, 0.46788, -3.58893 ]
+						},
+						{
+							"time": 2.1,
+							"offset": 14,
+							"vertices": [ -7.88186, -4.39459, 0.37174, -0.83833, -0.21982, -0.83314, 0.17108, 3.29089, 1.33436, 0.90291, 1.80936, 4.27386, 1.39356, -0.05115, 0.24856, 0.15115, 0.39966, 1.62771, 1.66295, -0.19263, 0.78637, 1.63485, -1.86495, 0.6879, -1.13421, -2.39547, 0.33027, -2.53336 ]
+						},
+						{ "time": 2.5 }
+					]
+				}
+			}
+		},
+		"drawOrder": [
+			{ "time": 0 },
+			{ "time": 0.1667 },
+			{ "time": 1.9667 }
+		]
+	},
+	"Celebrate2": {
+		"slots": {
+			"s_dorso": {
+				"attachment": [
+					{ "time": 0, "name": "a_dorso" },
+					{ "time": 1.6333, "name": "a_dorso" }
+				]
+			}
+		},
+		"bones": {
+			"b_pelvis": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.29,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{
+						"time": 0.4,
+						"angle": -11.72,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 0.9, "angle": 0, "curve": "stepped" },
+					{
+						"time": 1.4,
+						"angle": 0,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 1.6333, "angle": 3.18 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 0.33,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{
+						"time": 0.4,
+						"x": 8.35,
+						"y": 14.6,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{
+						"time": 0.9,
+						"x": 11.54,
+						"y": -7.49,
+						"curve": [ 0.395, 0, 0.523, 1 ]
+					},
+					{
+						"time": 1.4,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 1.6333, "x": 0, "y": 0.92 }
+				],
+				"scale": [
+					{
+						"time": 0,
+						"x": 1.004,
+						"y": 1,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{
+						"time": 1.4,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 1.6333, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.6333, "x": 0, "y": 0 }
+				]
+			},
+			"b_dorso": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.3,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{
+						"time": 0.2667,
+						"angle": 12.98,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{
+						"time": 0.6,
+						"angle": -13.21,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{
+						"time": 1.1,
+						"angle": 16.13,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{
+						"time": 1.4,
+						"angle": 0,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 1.6333, "angle": 3.37 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 1.33,
+						"y": -0.08,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{
+						"time": 1.4,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 1.6333, "x": -0.42, "y": -0.08 }
+				],
+				"scale": [
+					{
+						"time": 0,
+						"x": 1.004,
+						"y": 1,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{
+						"time": 1.4,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 1.6333, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.6333, "x": 0, "y": 0 }
+				]
+			},
+			"b_FullPet": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.03,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 1.6333, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.6333, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 1.6333, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.6333, "x": 0, "y": 0 }
+				]
+			},
+			"ik_fot_L": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.03,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 1.6333, "angle": 0 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{
+						"time": 0.3333,
+						"x": -32.71,
+						"y": 37.24,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 0.7, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.6333, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 1.6333, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.6333, "x": 0, "y": 0 }
+				]
+			},
+			"ik_foot_R": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.03,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 1.6333, "angle": 0 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 1.63,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{
+						"time": 1.1333,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 1.3667, "x": 0, "y": 1.63, "curve": "stepped" },
+					{ "time": 1.6333, "x": 0, "y": 1.63 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 1.6333, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.6333, "x": 0, "y": 0 }
+				]
+			},
+			"root": {
+				"rotate": [
+					{ "time": 0, "angle": 0.03 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			}
+		},
+		"deform": {
+			"default": {
+				"s_dorsoMask": {
+					"mask_dorso": [
+						{ "time": 0 },
+						{
+							"time": 0.2333,
+							"offset": 14,
+							"vertices": [ -7.12685, -1.60977, -2.99485, -1.64844, -5.80057, -2.2254, -4.33727, 2.86913, -0.85066, 0.70841, -0.61532, 0.99297, 0, 0, 0, 0, 0.61868, -2.3126, 1.05124, 2.75609, 0.09888, 6.24134, 0.51567, 3.47014, 0.60792, 2.08373 ]
+						},
+						{
+							"time": 0.4,
+							"offset": 14,
+							"vertices": [ -8.72403, -3.51285, -3.61947, -2.97299, -5.44527, -4.21578, -3.69914, 1.44687, -1.06867, 0.78961, 0.16444, 1.65134, -0.58013, -6.48839, -0.57116, -8.00278, 0, 0, 0.00194, 2.9318, -1.64964, 4.10622 ]
+						},
+						{
+							"time": 0.6,
+							"offset": 14,
+							"vertices": [ -5.75114, -2.40333, 1.66074, -1.53226, -0.77019, -4.38648, 0.70924, 2.18265, 0.96705, -1.24278, 1.25825, -1.35557, 1.2257, -2.74153, 0.91894, -3.59485, 0, 0, 0.00194, 2.9318, -1.64964, 4.10622 ]
+						},
+						{
+							"time": 0.7,
+							"offset": 14,
+							"vertices": [ -5.75114, -2.40333, -2.33861, -4.58437, 0.45347, -5.58889, 1.0124, 0.96918, 0.85547, -1.677, 1.10089, -1.34592, 2.12862, -0.86809, 1.66399, -1.39089, 0, 0, 0.00194, 2.9318, -1.64964, 4.10622, -0.4631, -2.45089, -2.38509, -2.68369, -2.14036, 1.45138 ]
+						},
+						{
+							"time": 0.9,
+							"offset": 14,
+							"vertices": [ -14.1465, -6.77456, -4.49597, -2.33166, -0.0586, 1.50896, -0.13101, 8.97806, -0.65046, 4.28314, -0.73304, 3.60569, -0.54094, 1.41104, -1.20369, 0.59138, 0.19666, -1.68296, 3.4E-4, 5.39301, 2.36307, 1.40932, 0.84525, 0.54065, -0.7887, 3.52794, -3.61947, 5.80539 ],
+							"curve": [ 0.389, 0, 0.708, 0.41 ]
+						},
+						{
+							"time": 1.0333,
+							"offset": 14,
+							"vertices": [ -12.07856, -5.76551, -5.02448, -2.54936, -0.1893, 1.21662, -0.16046, 7.75524, -0.7198, 4.05778, -0.99491, 2.98262, -0.47902, 1.24951, -1.06589, 0.52368, 0.57978, -1.89471, 0.72661, 5.02716, 1.53953, 2.42979, 1.11188, 0.52503, 0.10735, 3.60781, -2.39644, 5.22661 ],
+							"curve": [ 0.348, 0.28, 0.671, 0.64 ]
+						},
+						{
+							"time": 1.1333,
+							"offset": 14,
+							"vertices": [ -8.04403, -3.79687, -6.0556, -2.97411, -0.4443, 0.64627, -0.21791, 5.36952, -0.85507, 3.61812, -1.5058, 1.767, -0.3582, 0.93437, -0.79706, 0.3916, 0.85401, -4.01896, 1.5532, 3.78263, -0.06718, 4.42071, 1.63209, 0.49456, 1.85553, 3.76364, -0.01031, 4.0974 ],
+							"curve": [ 0.267, 0.48, 0.545, 1 ]
+						},
+						{
+							"time": 1.4,
+							"offset": 14,
+							"vertices": [ -1.82991, -0.7647, -1.78236, -0.70182, -0.83706, -0.23221, -0.30639, 1.69495, -0.5764, 1.23112, -0.33859, 1.35863, -0.17212, 0.44897, -0.38299, 0.18817, 0.06257, -0.53549, 0.44878, 1.90047, 0.38392, 2.11251, 0.47986, -0.0394, -0.09207, 1.80905, 0.2459, 0.89534 ]
+						},
+						{ "time": 1.6333 }
+					]
+				}
+			}
+		},
+		"drawOrder": [
+			{ "time": 0 },
+			{ "time": 0.1333 },
+			{ "time": 1.5333 }
+		]
+	},
+	"Greet": {
+		"slots": {
+			"s_dorso": {
+				"attachment": [
+					{ "time": 0, "name": "a_dorso" },
+					{ "time": 1.8333, "name": "a_dorso" }
+				]
+			}
+		},
+		"bones": {
+			"b_pelvis": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.29,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.3333,
+						"angle": -0.13,
+						"curve": [ 0.62, 0, 1, 1 ]
+					},
+					{ "time": 0.6667, "angle": 4.58 },
+					{
+						"time": 0.7,
+						"angle": 1.28,
+						"curve": [ 0.484, 0.01, 0.661, 1 ]
+					},
+					{
+						"time": 0.9,
+						"angle": 0,
+						"curve": [ 0.466, 0.01, 0.52, 1 ]
+					},
+					{ "time": 1.8333, "angle": 3.18 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 0.33,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.3333,
+						"x": 0,
+						"y": 10.49,
+						"curve": [ 0.244, 0, 0.641, 0.57 ]
+					},
+					{
+						"time": 0.7,
+						"x": 14.21,
+						"y": 2.82,
+						"curve": [ 0.484, 0.01, 0.661, 1 ]
+					},
+					{ "time": 0.9, "x": 15.47, "y": 4.71 },
+					{
+						"time": 1.2667,
+						"x": 9.28,
+						"y": 2.83,
+						"curve": [ 0.971, 0, 0.651, 1 ]
+					},
+					{ "time": 1.8333, "x": 0, "y": 0.92 }
+				],
+				"scale": [
+					{
+						"time": 0,
+						"x": 1.004,
+						"y": 1,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 0.6333, "x": 1, "y": 1 },
+					{
+						"time": 0.7,
+						"x": 0.871,
+						"y": 1.051,
+						"curve": [ 0.484, 0.01, 0.661, 1 ]
+					},
+					{
+						"time": 0.9,
+						"x": 1,
+						"y": 0.962,
+						"curve": [ 0.466, 0.01, 0.52, 1 ]
+					},
+					{
+						"time": 1.2667,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.971, 0, 0.651, 1 ]
+					},
+					{ "time": 1.8333, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.8333, "x": 0, "y": 0 }
+				]
+			},
+			"b_dorso": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.3,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.4333,
+						"angle": -7.18,
+						"curve": [ 0.62, 0, 1, 1 ]
+					},
+					{
+						"time": 0.6333,
+						"angle": 12.33,
+						"curve": [ 0.353, 0, 0.682, 0.41 ]
+					},
+					{
+						"time": 0.7,
+						"angle": 10.02,
+						"curve": [ 0.484, 0.01, 0.661, 1 ]
+					},
+					{
+						"time": 0.9,
+						"angle": 0,
+						"curve": [ 0.466, 0.01, 0.52, 1 ]
+					},
+					{ "time": 1.8333, "angle": 3.37 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 1.33,
+						"y": -0.08,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.3333,
+						"x": 3.5,
+						"y": -0.64,
+						"curve": [ 0.519, 0, 0.878, 0.71 ]
+					},
+					{
+						"time": 0.6,
+						"x": 8.09,
+						"y": -0.92,
+						"curve": [ 0.658, 0.62, 1, 1 ]
+					},
+					{
+						"time": 0.6667,
+						"x": -6.94,
+						"y": -0.64,
+						"curve": [ 0.351, 0, 0.681, 0.4 ]
+					},
+					{
+						"time": 0.7,
+						"x": 3.16,
+						"y": 1.01,
+						"curve": [ 0.484, 0.01, 0.661, 1 ]
+					},
+					{
+						"time": 0.9,
+						"x": 2.53,
+						"y": 0,
+						"curve": [ 0.466, 0.01, 0.52, 1 ]
+					},
+					{
+						"time": 1.2667,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0.971, 0, 0.651, 1 ]
+					},
+					{ "time": 1.8333, "x": -0.42, "y": -0.08 }
+				],
+				"scale": [
+					{
+						"time": 0,
+						"x": 1.004,
+						"y": 1,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 0.6333, "x": 1, "y": 1 },
+					{
+						"time": 0.7,
+						"x": 0.954,
+						"y": 1.019,
+						"curve": [ 0.484, 0.01, 0.661, 1 ]
+					},
+					{
+						"time": 0.9,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.466, 0.01, 0.52, 1 ]
+					},
+					{ "time": 1.8333, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.8333, "x": 0, "y": 0 }
+				]
+			},
+			"ik_fot_L": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.03,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 1.8333, "angle": 0 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.4,
+						"x": -62.13,
+						"y": 54.09,
+						"curve": [ 0.294, 0.62, 0.619, 1 ]
+					},
+					{
+						"time": 0.5,
+						"x": -63.72,
+						"y": 51.15,
+						"curve": [ 0.33, 0, 0.676, 0.41 ]
+					},
+					{
+						"time": 0.5333,
+						"x": -75.18,
+						"y": 47.57,
+						"curve": [ 0.349, 0.3, 0.686, 0.64 ]
+					},
+					{
+						"time": 0.5667,
+						"x": -70.67,
+						"y": 33.98,
+						"curve": [ 0.361, 0.33, 0.698, 0.67 ]
+					},
+					{
+						"time": 0.6,
+						"x": -53.83,
+						"y": 13.44,
+						"curve": [ 0.381, 0.36, 0.719, 0.7 ]
+					},
+					{
+						"time": 0.6333,
+						"x": -19.36,
+						"y": -4.99,
+						"curve": [ 0.427, 0.41, 0.767, 0.75 ]
+					},
+					{
+						"time": 0.6667,
+						"x": 0.71,
+						"y": -12.74,
+						"curve": [ 0.648, 0.59, 1, 0.96 ]
+					},
+					{ "time": 0.7, "x": 26.51, "y": -7.89 },
+					{
+						"time": 1.2667,
+						"x": 22.72,
+						"y": -6.76,
+						"curve": [ 0.971, 0, 0.651, 1 ]
+					},
+					{ "time": 1.8333, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 1.8333, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.8333, "x": 0, "y": 0 }
+				]
+			},
+			"ik_foot_R": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.03,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 1.8333, "angle": 0 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 1.63,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.7,
+						"x": 0,
+						"y": 0.57,
+						"curve": [ 0.344, 0.3, 0.677, 0.63 ]
+					},
+					{
+						"time": 0.9,
+						"x": 0,
+						"y": -1.08,
+						"curve": [ 0.343, 0.31, 0.676, 0.64 ]
+					},
+					{
+						"time": 1.2667,
+						"x": 0,
+						"y": -1.93,
+						"curve": [ 0.971, 0, 0.651, 1 ]
+					},
+					{ "time": 1.8333, "x": 0, "y": 1.63 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 1.8333, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.8333, "x": 0, "y": 0 }
+				]
+			},
+			"b_FullPet": {
+				"rotate": [
+					{ "time": 0, "angle": 0.03, "curve": "stepped" },
+					{
+						"time": 0.9667,
+						"angle": 0.03,
+						"curve": [ 0.393, 0, 0.632, 1 ]
+					},
+					{ "time": 1.8333, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 0.6667, "x": 0, "y": 0 },
+					{
+						"time": 0.7,
+						"x": 0,
+						"y": -5.09,
+						"curve": [ 0.375, 0, 0.617, 1 ]
+					},
+					{
+						"time": 0.7667,
+						"x": 0,
+						"y": -5.82,
+						"curve": [ 0.375, 0, 0.617, 1 ]
+					},
+					{
+						"time": 0.8667,
+						"x": 0,
+						"y": 8,
+						"curve": [ 0.393, 0, 0.632, 1 ]
+					},
+					{ "time": 0.9667, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.8333, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 0.6667, "x": 1, "y": 1 },
+					{
+						"time": 0.7,
+						"x": 1.036,
+						"y": 0.942,
+						"curve": [ 0.375, 0, 0.617, 1 ]
+					},
+					{
+						"time": 0.7667,
+						"x": 1.017,
+						"y": 0.959,
+						"curve": [ 0.375, 0, 0.617, 1 ]
+					},
+					{
+						"time": 0.8667,
+						"x": 0.942,
+						"y": 1.08,
+						"curve": [ 0.393, 0, 0.632, 1 ]
+					},
+					{ "time": 0.9667, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 1.8333, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 0.7667, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 0.8667, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 0.9667, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.8333, "x": 0, "y": 0 }
+				]
+			},
+			"root": {
+				"rotate": [
+					{ "time": 0, "angle": 0.03 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			}
+		},
+		"deform": {
+			"default": {
+				"s_dorsoMask": {
+					"mask_dorso": [
+						{
+							"time": 0,
+							"offset": 18,
+							"vertices": [ 0.19027, -0.44664, -0.12057, 0.60894, 1.12496, 1.24902, 0.61664, -1.02235, -0.18979, -6.53505, -0.27099, -3.96171, 0, 0, 1.58551, -0.46181 ],
+							"curve": [ 0, 0.21, 0.75, 1 ]
+						},
+						{
+							"time": 0.1667,
+							"offset": 10,
+							"vertices": [ 1.39394, 1.16504, 6.48138, 1.94468, 10.0592, 3.03158, 17.36675, 10.52183, 15.59673, 15.56505, 11.79083, 22.84578, 8.62555, 20.57906 ]
+						},
+						{
+							"time": 0.3333,
+							"offset": 10,
+							"vertices": [ 2.78789, 2.33007, 6.99816, 1.90074, 10.50841, 2.41662, 18.16216, 10.76109, 14.28698, 14.20777, 3.02053, 9.51532 ]
+						},
+						{
+							"time": 0.7,
+							"offset": 10,
+							"vertices": [ 3.48734, -0.37014, -1.73034, 1.93004, 1.29986, 0.43891, 5.45574, 4.86049, 2.65576, 5.20719, -0.42389, 4.49713, 0.80269, -1.48245, -0.80097, -2.21102, -1.31778, -7.39635, -0.52702, -5.55621, 0, 0, 1.6176, 0.61812, 0.61359, 4.25574, 2.02185, 6.17672 ]
+						},
+						{
+							"time": 1.0333,
+							"offset": 10,
+							"vertices": [ 2.46165, -0.26128, -1.22142, 1.36238, 0.91755, 0.30982, 3.85111, 3.43093, 1.87466, 3.67566, 0.63495, 3.2127, 1.94221, -1.36821, 0.24273, -5.80374, -0.91445, -10.17494, 0.22586, -6.41701, 0, 0, 1.14183, 0.43632, 0.43312, 3.00405, 1.42719, 4.36004 ]
+						},
+						{
+							"time": 1.4333,
+							"offset": 10,
+							"vertices": [ 1.23083, -0.13064, -0.61071, 0.68119, 0.45877, 0.15491, 1.92556, 1.71547, 0.93733, 1.83783, -0.93471, 1.84128, 1.60743, -0.51824, 0.12137, -2.90187, -0.26452, -8.43572, -0.15806, -7.17022, 0, 0, 1.36367, -0.01274, 0.21656, 1.50203, 0.71359, 2.18002 ]
+						},
+						{
+							"time": 1.6667,
+							"offset": 10,
+							"vertices": [ 0.51284, -0.05443, -0.25446, 0.28383, 0.19116, 0.06455, 0.80232, 0.71478, -2.46495, -1.12584, -0.38946, 0.7672, 0.66976, -0.21593, 0.05057, -1.20911, -0.11022, -3.51488, -0.06586, -2.98759, 0, 0, 1.49307, -0.2747, 0.09023, 0.62584, 0.29733, 0.90834 ]
+						},
+						{
+							"time": 1.8333,
+							"offset": 32,
+							"vertices": [ 1.58551, -0.46181 ]
+						}
+					]
+				}
+			}
+		},
+		"drawOrder": [
+			{ "time": 0 },
+			{ "time": 0.2667 },
+			{ "time": 1.5333 }
+		]
+	},
+	"Hungry": {
+		"slots": {
+			"s_dorso": {
+				"attachment": [
+					{ "time": 0, "name": "a_dorso" }
+				]
+			}
+		},
+		"bones": {
+			"b_pelvis": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 4.13,
+						"curve": [ 0.643, 0, 0.418, 1 ]
+					},
+					{
+						"time": 1.5,
+						"angle": 2.67,
+						"curve": [ 0.643, 0, 0.418, 1 ]
+					},
+					{
+						"time": 3,
+						"angle": 4.13,
+						"curve": [ 0.479, 0, 0.754, 0.5 ]
+					},
+					{
+						"time": 3.8333,
+						"angle": 1.9,
+						"curve": [ 0.296, 0.5, 0.558, 1.01 ]
+					},
+					{ "time": 4.6667, "angle": 4.13 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": -16.22 }
+				]
+			},
+			"b_dorso": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 8.82,
+						"curve": [ 0.643, 0, 0.418, 1 ]
+					},
+					{
+						"time": 1.5,
+						"angle": 7.35,
+						"curve": [ 0.643, 0, 0.418, 1 ]
+					},
+					{
+						"time": 3,
+						"angle": 8.82,
+						"curve": [ 0.417, 0, 0.734, 0.41 ]
+					},
+					{ "time": 3.6667, "angle": 2.64, "curve": "stepped" },
+					{
+						"time": 4.1,
+						"angle": 2.64,
+						"curve": [ 0.369, 0.36, 0.554, 1 ]
+					},
+					{ "time": 4.6667, "angle": 8.82 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 2.32,
+						"y": -0.28,
+						"curve": [ 0.643, 0, 0.418, 1 ]
+					},
+					{
+						"time": 1.5,
+						"x": 4.72,
+						"y": -0.39,
+						"curve": [ 0.643, 0, 0.418, 1 ]
+					},
+					{ "time": 3, "x": 2.32, "y": -0.28 }
+				]
+			},
+			"ik_fot_L": {
+				"translate": [
+					{ "time": 0, "x": -45.34, "y": 4.44, "curve": "stepped" },
+					{
+						"time": 3,
+						"x": -45.34,
+						"y": 4.44,
+						"curve": [ 0.487, 0.01, 0.532, 1 ]
+					},
+					{
+						"time": 3.8667,
+						"x": -41.64,
+						"y": 7.57,
+						"curve": [ 0.487, 0.01, 0.532, 1 ]
+					},
+					{ "time": 4.6667, "x": -45.34, "y": 4.44 }
+				]
+			},
+			"ik_foot_R": {
+				"translate": [
+					{ "time": 0, "x": -37.47, "y": -2.25 }
+				]
+			}
+		},
+		"drawOrder": [
+			{ "time": 0 },
+			{ "time": 3.3 },
+			{ "time": 4.4333 }
+		]
+	},
+	"Idle": {
+		"slots": {
+			"s_dorso": {
+				"attachment": [
+					{ "time": 0, "name": "a_dorso" }
+				]
+			},
+			"s_dorsoMask": {
+				"attachment": [
+					{ "time": 0, "name": "mask_dorso" }
+				]
+			}
+		},
+		"bones": {
+			"b_pelvis": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 3.18,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 0.9333,
+						"angle": -1.29,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{ "time": 1.8667, "angle": 3.18 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 0.92,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 0.2333,
+						"x": 0,
+						"y": -3.64,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 0.4667,
+						"x": 0,
+						"y": 0.92,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 0.7,
+						"x": 0,
+						"y": -2.94,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 0.9333,
+						"x": 0,
+						"y": 0.92,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 1.1667,
+						"x": 0,
+						"y": -2.94,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 1.4,
+						"x": 0,
+						"y": 0.92,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 1.6333,
+						"x": 0,
+						"y": -2.94,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{ "time": 1.8667, "x": 0, "y": 0.92 }
+				],
+				"scale": [
+					{
+						"time": 0,
+						"x": 1.002,
+						"y": 1,
+						"curve": [ 0.253, 0.46, 0.469, 1 ]
+					},
+					{
+						"time": 0.1333,
+						"x": 1.005,
+						"y": 1,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 0.3667,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 0.6,
+						"x": 1.005,
+						"y": 1,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 0.8333,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 1.0667,
+						"x": 1.005,
+						"y": 1,
+						"curve": [ 0.436, 0, 0.5, 1 ]
+					},
+					{
+						"time": 1.3,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 1.5333,
+						"x": 1.005,
+						"y": 1,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 1.7667,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.487, 0, 0.757, 0.47 ]
+					},
+					{ "time": 1.8667, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			},
+			"b_dorso": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 3.37,
+						"curve": [ 0.287, 0.62, 0.615, 0.99 ]
+					},
+					{
+						"time": 0.1333,
+						"angle": 3.61,
+						"curve": [ 0.436, 0, 0.5, 1 ]
+					},
+					{
+						"time": 1.0667,
+						"angle": -4.51,
+						"curve": [ 0.529, 0, 0.587, 0.78 ]
+					},
+					{ "time": 1.8667, "angle": 3.37 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": -0.42,
+						"y": -0.08,
+						"curve": [ 0.253, 0.46, 0.469, 1 ]
+					},
+					{
+						"time": 0.1333,
+						"x": 1.83,
+						"y": -0.08,
+						"curve": [ 0.436, 0, 0.5, 1 ]
+					},
+					{
+						"time": 0.3667,
+						"x": -1.77,
+						"y": -0.08,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 0.6,
+						"x": 1.83,
+						"y": -0.08,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 0.8333,
+						"x": -1.77,
+						"y": -0.08,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 1.0667,
+						"x": 1.83,
+						"y": -0.08,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 1.3,
+						"x": -1.77,
+						"y": -0.08,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 1.5333,
+						"x": 1.83,
+						"y": -0.08,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 1.7667,
+						"x": -1.77,
+						"y": -0.08,
+						"curve": [ 0.487, 0, 0.757, 0.47 ]
+					},
+					{ "time": 1.8667, "x": -0.42, "y": -0.08 }
+				],
+				"scale": [
+					{
+						"time": 0,
+						"x": 1.002,
+						"y": 1,
+						"curve": [ 0.253, 0.46, 0.469, 1 ]
+					},
+					{
+						"time": 0.1333,
+						"x": 1.005,
+						"y": 1,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 0.3667,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 0.6,
+						"x": 1.005,
+						"y": 1,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 0.8333,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.436, 0, 0.5, 1 ]
+					},
+					{
+						"time": 1.0667,
+						"x": 1.005,
+						"y": 1,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 1.3,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 1.5333,
+						"x": 1.005,
+						"y": 1,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{
+						"time": 1.7667,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.487, 0, 0.757, 0.47 ]
+					},
+					{ "time": 1.8667, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			},
+			"ik_foot_R": {
+				"rotate": [
+					{ "time": 0, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 1.63 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			},
+			"ik_fot_L": {
+				"rotate": [
+					{ "time": 0, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			},
+			"b_FullPet": {
+				"rotate": [
+					{ "time": 0, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			}
+		},
+		"deform": {
+			"default": {
+				"s_dorsoMask": {
+					"mask_dorso": [
+						{
+							"time": 0,
+							"offset": 18,
+							"vertices": [ 0.50665, 2.53774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.27687, 1.60386 ]
+						}
+					]
+				}
+			}
+		},
+		"drawOrder": [
+			{ "time": 0 },
+			{ "time": 0.3333 },
+			{ "time": 1.5333 }
+		]
+	},
+	"Laugh": {
+		"slots": {
+			"s_dorso": {
+				"attachment": [
+					{ "time": 0, "name": "a_dorso" },
+					{ "time": 2, "name": "a_dorso" }
+				]
+			}
+		},
+		"bones": {
+			"b_pelvis": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.29,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 0.2667, "angle": 0.92, "curve": "stepped" },
+					{ "time": 1.4333, "angle": 0.92 },
+					{ "time": 2, "angle": 3.18 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 0.33,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{
+						"time": 0.2,
+						"x": -1.93,
+						"y": -7.73,
+						"curve": [ 0.39, 0, 0.598, 1 ]
+					},
+					{
+						"time": 0.3,
+						"x": -1.93,
+						"y": -9.32,
+						"curve": [ 0.39, 0, 0.598, 1 ]
+					},
+					{
+						"time": 0.4667,
+						"x": -1.93,
+						"y": -7.73,
+						"curve": [ 0.39, 0, 0.598, 1 ]
+					},
+					{
+						"time": 0.6333,
+						"x": -1.93,
+						"y": -8.53,
+						"curve": [ 0.39, 0, 0.598, 1 ]
+					},
+					{
+						"time": 0.8,
+						"x": -1.93,
+						"y": -6.48,
+						"curve": [ 0.39, 0, 0.598, 1 ]
+					},
+					{
+						"time": 0.9333,
+						"x": -1.93,
+						"y": -7.87,
+						"curve": [ 0.39, 0, 0.598, 1 ]
+					},
+					{
+						"time": 1.1333,
+						"x": -1.93,
+						"y": -6.22,
+						"curve": [ 0.39, 0, 0.598, 1 ]
+					},
+					{
+						"time": 1.3667,
+						"x": -1.93,
+						"y": -7.73,
+						"curve": [ 0.39, 0, 0.598, 1 ]
+					},
+					{ "time": 2, "x": 0, "y": 0.92 }
+				],
+				"scale": [
+					{
+						"time": 0,
+						"x": 1.004,
+						"y": 1,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 2, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2, "x": 0, "y": 0 }
+				]
+			},
+			"b_dorso": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.3,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 0.2667, "angle": 23.14, "curve": "stepped" },
+					{
+						"time": 1.5333,
+						"angle": 23.14,
+						"curve": [ 0.43, 0, 0.598, 1 ]
+					},
+					{ "time": 2, "angle": 3.37 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 1.33,
+						"y": -0.08,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{
+						"time": 0.2,
+						"x": 0.78,
+						"y": -0.64,
+						"curve": [ 0.25, 0, 0.75, 1 ]
+					},
+					{
+						"time": 0.3667,
+						"x": -6.93,
+						"y": -0.52,
+						"curve": [ 0.25, 0, 0.75, 1 ]
+					},
+					{
+						"time": 0.5333,
+						"x": -1.08,
+						"y": -0.61,
+						"curve": [ 0.25, 0, 0.75, 1 ]
+					},
+					{
+						"time": 0.7,
+						"x": -4.27,
+						"y": -0.56,
+						"curve": [ 0.25, 0, 0.75, 1 ]
+					},
+					{
+						"time": 0.8667,
+						"x": -1.08,
+						"y": -0.61,
+						"curve": [ 0.25, 0, 0.75, 1 ]
+					},
+					{
+						"time": 1.0333,
+						"x": -4.27,
+						"y": -0.56,
+						"curve": [ 0.25, 0, 0.75, 1 ]
+					},
+					{
+						"time": 1.2,
+						"x": -1.08,
+						"y": -0.61,
+						"curve": [ 0.25, 0, 0.75, 1 ]
+					},
+					{
+						"time": 1.5333,
+						"x": 0.78,
+						"y": -0.64,
+						"curve": [ 0.43, 0, 0.598, 1 ]
+					},
+					{ "time": 2, "x": -0.42, "y": -0.08 }
+				],
+				"scale": [
+					{
+						"time": 0,
+						"x": 1.004,
+						"y": 1,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{
+						"time": 0.3667,
+						"x": 0.994,
+						"y": 1.013,
+						"curve": [ 0.25, 0, 0.75, 1 ]
+					},
+					{
+						"time": 0.5333,
+						"x": 1.005,
+						"y": 1.004,
+						"curve": [ 0.25, 0, 0.75, 1 ]
+					},
+					{
+						"time": 0.7,
+						"x": 0.994,
+						"y": 1.013,
+						"curve": [ 0.25, 0, 0.75, 1 ]
+					},
+					{
+						"time": 0.8667,
+						"x": 1.005,
+						"y": 1.004,
+						"curve": [ 0.25, 0, 0.75, 1 ]
+					},
+					{
+						"time": 1.0333,
+						"x": 0.994,
+						"y": 1.013,
+						"curve": [ 0.25, 0, 0.75, 1 ]
+					},
+					{ "time": 1.2, "x": 1.005, "y": 1.004 },
+					{ "time": 2, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2, "x": 0, "y": 0 }
+				]
+			},
+			"ik_foot_R": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.03,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 2, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 1.63, "curve": "stepped" },
+					{ "time": 2, "x": 0, "y": 1.63 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 2, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2, "x": 0, "y": 0 }
+				]
+			},
+			"b_FullPet": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.03,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 2, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 2, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2, "x": 0, "y": 0 }
+				]
+			},
+			"root": {
+				"rotate": [
+					{ "time": 0, "angle": 0.03 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			},
+			"ik_fot_L": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.03,
+						"curve": [ 0.395, 0, 0.524, 1 ]
+					},
+					{ "time": 2, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 2, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2, "x": 0, "y": 0 }
+				]
+			}
+		},
+		"deform": {
+			"default": {
+				"s_dorsoMask": {
+					"mask_dorso": [
+						{
+							"time": 0,
+							"offset": 32,
+							"vertices": [ 0.31432, 1.70607 ]
+						},
+						{
+							"time": 0.2333,
+							"offset": 16,
+							"vertices": [ -6.78016, -0.83274, -1.85569, 1.92783, -1.11573, 4.83344, -1.34223, 2.89615, -1.25361, 3.55463, -1.54741, -0.05091, -0.54177, -0.02947, 0.47117, 0.41892, 2.37194, 2.53049, 1.47296, 3.48535, 2.48446, -2.03041, 5.88295, -3.73335, 3.33008, 1.52357 ]
+						},
+						{
+							"time": 0.3667,
+							"offset": 16,
+							"vertices": [ -7.04822, -0.71475, -3.48737, 3.78468, -1.29789, 5.62257, -1.48284, 7.95031, -3.16717, 5.42868, -1.92605, -0.19764, -0.63022, -0.03428, 0.5481, 0.48731, 2.18887, 2.61914, 3.50153, 0.98342, 5.33811, -3.8235, 4.02013, -3.30735, 2.37863, 1.08827 ]
+						},
+						{
+							"time": 0.7,
+							"offset": 16,
+							"vertices": [ -7.04822, -0.71475, -3.48737, 3.78468, -1.29789, 5.62257, -1.48284, 7.95031, -3.16717, 5.42868, -1.92605, -0.19764, -0.63022, -0.03428, 0.5481, 0.48731, 2.18887, 2.61914, 5.81452, -3.70662, 7.38908, -10.75927, 4.02013, -3.30735, 2.37863, 1.08827 ]
+						},
+						{
+							"time": 1.4,
+							"offset": 16,
+							"vertices": [ -7.04822, -0.71475, -0.72157, 3.58821, -2.03727, 6.16006, -1.61402, 4.57705, -2.22836, 3.38763, -1.92605, -0.19764, -0.63022, -0.03428, 0.5481, 0.48731, 2.18887, 2.61914, 1.66402, 2.74043, 3.97756, -0.49891, 6.39928, -4.24742, 2.37863, 1.08827 ]
+						},
+						{
+							"time": 1.7333,
+							"offset": 16,
+							"vertices": [ -4.53306, -1.03016, -1.23229, 1.09715, -1.11124, 5.23853, -1.01417, 4.54783, -1.45498, 3.65138, -0.70156, -0.17468, -0.35846, -0.0195, 0.73092, -0.5433, 1.31598, 4.20635, 1.1867, 0.33518, 4.89057, -6.00035, 5.5921, -7.11541 ]
+						},
+						{ "time": 2 }
+					]
+				}
+			}
+		},
+		"drawOrder": [
+			{ "time": 0 },
+			{ "time": 0.0333 },
+			{ "time": 1.9333 }
+		]
+	},
+	"Panic": {
+		"slots": {
+			"s_dorso": {
+				"attachment": [
+					{ "time": 0, "name": "a_dorso" },
+					{ "time": 2.0667, "name": "a_dorso" }
+				]
+			}
+		},
+		"bones": {
+			"b_pelvis": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.29,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.4,
+						"angle": -32.53,
+						"curve": [ 0.481, 0, 0.774, 0.43 ]
+					},
+					{
+						"time": 0.5333,
+						"angle": -27.99,
+						"curve": [ 0.297, 0.4, 0.417, 1 ]
+					},
+					{
+						"time": 0.8,
+						"angle": -5.28,
+						"curve": [ 0.573, 0, 0.473, 1 ]
+					},
+					{
+						"time": 1.3333,
+						"angle": -32.53,
+						"curve": [ 0.573, 0, 0.473, 1 ]
+					},
+					{ "time": 2.0667, "angle": 3.18 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 0.33,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 0.0667, "x": 19.91, "y": 3.52 },
+					{ "time": 0.4, "x": 16.59, "y": 11.96 },
+					{ "time": 2.0667, "x": 0, "y": 0.92 }
+				],
+				"scale": [
+					{
+						"time": 0,
+						"x": 1.004,
+						"y": 1,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 2.0667, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.0667, "x": 0, "y": 0 }
+				]
+			},
+			"b_dorso": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.3,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.1333,
+						"angle": 4.92,
+						"curve": [ 0.317, 0.62, 0.65, 0.97 ]
+					},
+					{
+						"time": 0.3333,
+						"angle": -10.15,
+						"curve": [ 0.458, 0, 0.538, 1 ]
+					},
+					{
+						"time": 0.5333,
+						"angle": -2.74,
+						"curve": [ 0.458, 0, 0.538, 1 ]
+					},
+					{
+						"time": 0.7667,
+						"angle": 12.46,
+						"curve": [ 0.458, 0, 0.538, 1 ]
+					},
+					{
+						"time": 1.2,
+						"angle": -23.95,
+						"curve": [ 0.458, 0, 0.538, 1 ]
+					},
+					{
+						"time": 1.5333,
+						"angle": 9.08,
+						"curve": [ 0.458, 0, 0.538, 1 ]
+					},
+					{
+						"time": 1.8667,
+						"angle": -2.54,
+						"curve": [ 0.458, 0, 0.538, 1 ]
+					},
+					{ "time": 2.0667, "angle": 3.37 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 1.33,
+						"y": -0.08,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 2.0667, "x": -0.42, "y": -0.08 }
+				],
+				"scale": [
+					{
+						"time": 0,
+						"x": 1.004,
+						"y": 1,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 2.0667, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.0667, "x": 0, "y": 0 }
+				]
+			},
+			"ik_foot_R": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.03,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 2.0667, "angle": 0 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 1.63,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.0667,
+						"x": 17.56,
+						"y": -3.71,
+						"curve": [ 0.498, 0, 0.478, 0.99 ]
+					},
+					{ "time": 0.4, "x": 7.5, "y": 1.25 },
+					{ "time": 2.0667, "x": 0, "y": 1.63 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 2.0667, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.0667, "x": 0, "y": 0 }
+				]
+			},
+			"root": {
+				"rotate": [
+					{ "time": 0, "angle": 0.03 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			},
+			"ik_fot_L": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.03,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 2.0667, "angle": 0 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.0667,
+						"x": 22.15,
+						"y": -4.22,
+						"curve": [ 0.573, 0, 0.473, 1 ]
+					},
+					{
+						"time": 0.4,
+						"x": -17.15,
+						"y": 88.09,
+						"curve": [ 0.395, 0, 0.722, 0.37 ]
+					},
+					{
+						"time": 0.5,
+						"x": -31.03,
+						"y": 85.57,
+						"curve": [ 0.489, 0.19, 0.559, 1 ]
+					},
+					{
+						"time": 0.8,
+						"x": -17.84,
+						"y": 22.3,
+						"curve": [ 0.573, 0, 0.473, 1 ]
+					},
+					{
+						"time": 1.3333,
+						"x": -35.86,
+						"y": 88.09,
+						"curve": [ 0.573, 0, 0.473, 1 ]
+					},
+					{ "time": 2.0667, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 2.0667, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.0667, "x": 0, "y": 0 }
+				]
+			},
+			"b_FullPet": {
+				"rotate": [
+					{ "time": 0, "angle": 0.03 },
+					{ "time": 2.0667, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.0667, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 2.0667, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.0667, "x": 0, "y": 0 }
+				]
+			}
+		},
+		"drawOrder": [
+			{ "time": 0 },
+			{ "time": 0.2333 }
+		]
+	},
+	"Sad": {
+		"slots": {
+			"s_dorso": {
+				"attachment": [
+					{ "time": 0, "name": "a_dorso" },
+					{ "time": 3.1667, "name": "a_dorso" }
+				]
+			}
+		},
+		"bones": {
+			"b_pelvis": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.29,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 0.6667, "angle": 4.09 },
+					{
+						"time": 1.4667,
+						"angle": 3.83,
+						"curve": [ 0.426, 0, 0.572, 1 ]
+					},
+					{
+						"time": 2,
+						"angle": 8.3,
+						"curve": [ 0.426, 0, 0.572, 1 ]
+					},
+					{
+						"time": 2.4333,
+						"angle": -0.44,
+						"curve": [ 0.426, 0, 0.572, 1 ]
+					},
+					{ "time": 2.8, "angle": 4.09 },
+					{ "time": 3.1667, "angle": 3.18 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 0.33,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 0.6667, "x": 0.19, "y": -2.7 },
+					{ "time": 3.1667, "x": 0, "y": 0.92 }
+				],
+				"scale": [
+					{
+						"time": 0,
+						"x": 1.004,
+						"y": 1,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 0.6667, "x": 0.966, "y": 1.006 },
+					{ "time": 3.1667, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 3.1667, "x": 0, "y": 0 }
+				]
+			},
+			"b_dorso": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.3,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 0.6667, "angle": 20.1 },
+					{
+						"time": 1.5667,
+						"angle": 19.84,
+						"curve": [ 0.426, 0, 0.572, 1 ]
+					},
+					{
+						"time": 2.1,
+						"angle": 28.2,
+						"curve": [ 0.426, 0, 0.572, 1 ]
+					},
+					{
+						"time": 2.5333,
+						"angle": 3.67,
+						"curve": [ 0.426, 0, 0.572, 1 ]
+					},
+					{ "time": 2.9, "angle": 20.1 },
+					{ "time": 3.1667, "angle": 3.37 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 1.33,
+						"y": -0.08,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.4,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0.523, 0.01, 0.537, 1 ]
+					},
+					{ "time": 0.6667, "x": -1.31, "y": -1.54 },
+					{ "time": 3.1667, "x": -0.42, "y": -0.08 }
+				],
+				"scale": [
+					{
+						"time": 0,
+						"x": 1.004,
+						"y": 1,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 0.6667, "x": 0.984, "y": 1.002 },
+					{ "time": 3.1667, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 3.1667, "x": 0, "y": 0 }
+				]
+			},
+			"ik_fot_L": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.03,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 3.1667, "angle": 0 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 0.6667, "x": 12.14, "y": -4.47, "curve": "stepped" },
+					{ "time": 1.7, "x": 12.14, "y": -4.47 },
+					{ "time": 2.0667, "x": 34.82, "y": 5.92 },
+					{ "time": 2.1333, "x": -5.28, "y": -13.16 },
+					{ "time": 2.2333, "x": -39.17, "y": -0.02 },
+					{ "time": 2.3, "x": -57.07, "y": 11.64 },
+					{
+						"time": 2.4,
+						"x": -76.69,
+						"y": 33.12,
+						"curve": [ 0, 0.05, 0.589, 1 ]
+					},
+					{ "time": 2.8333, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 3.1667, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 3.1667, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 3.1667, "x": 0, "y": 0 }
+				]
+			},
+			"ik_foot_R": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.03,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 3.1667, "angle": 0 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 1.63,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 0.6667, "x": -10.36, "y": -2.23 },
+					{
+						"time": 2.0333,
+						"x": -10.92,
+						"y": -2.23,
+						"curve": [ 0.25, 0, 0.75, 1 ]
+					},
+					{ "time": 2.4, "x": -14, "y": -6.99 },
+					{
+						"time": 2.7333,
+						"x": -10.92,
+						"y": -2.23,
+						"curve": [ 0.25, 0, 0.75, 1 ]
+					},
+					{ "time": 3.1667, "x": 0, "y": 1.63 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 3.1667, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 3.1667, "x": 0, "y": 0 }
+				]
+			},
+			"b_FullPet": {
+				"rotate": [
+					{ "time": 0, "angle": 0.03 },
+					{ "time": 3.1667, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 3.1667, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 3.1667, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 3.1667, "x": 0, "y": 0 }
+				]
+			},
+			"root": {
+				"rotate": [
+					{ "time": 0, "angle": 0.03 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			}
+		},
+		"deform": {
+			"default": {
+				"s_dorsoMask": {
+					"mask_dorso": [
+						{
+							"time": 0,
+							"offset": 18,
+							"vertices": [ -0.14696, 3.01498, -0.92734, 1.02881, 2.09261, 0.41347, 0.41753, 2.89646, 0.3416, 8.91913 ]
+						},
+						{
+							"time": 0.0667,
+							"offset": 18,
+							"vertices": [ -0.91896, 2.7586, -0.86272, 1.31843, 1.32313, 3.89626, 0.17834, 4.16806, 0.02998, 1.55807, -0.0897, 0.05117, 0.08787, 0.00984, 0.92834, 0.49012, 0.43557, 0.10925, 0.35571, 0.15067 ]
+						},
+						{
+							"time": 0.2667,
+							"offset": 18,
+							"vertices": [ -3.23495, 1.98945, -0.66885, 2.1873, 0.91685, 1.36047, -0.06886, 1.34485, -0.4067, -0.65812, -0.35881, 0.20469, 0.35148, 0.03935, 1.07237, 0.35599, 1.74229, 0.437, 1.42282, 0.60269 ]
+						},
+						{
+							"time": 0.6667,
+							"offset": 18,
+							"vertices": [ -5.32982, 1.36586, -2.50036, 5.9838, 1.89037, 3.45592, -0.17216, 3.36212, -1.01675, -1.6453, -0.89702, 0.51173, 0.8787, 0.09839, 2.68092, 0.88997, 2.25512, -0.58573, 3.18116, -2.37309, 2.2552, 2.3299 ]
+						},
+						{
+							"time": 1.6333,
+							"offset": 18,
+							"vertices": [ -5.32982, 1.36586, -2.50036, 5.9838, 1.89037, 3.45592, -0.17216, 3.36212, -1.01675, -1.6453, -0.89702, 0.51173, 0.8787, 0.09839, 2.68092, 0.88997, 2.57496, 0.74711, 3.47156, -1.48331, 1.71303, 2.79295 ]
+						},
+						{
+							"time": 1.9667,
+							"offset": 18,
+							"vertices": [ -5.32982, 1.36586, -2.50036, 5.9838, 1.89037, 3.45592, -0.17216, 3.36212, -1.01675, -1.6453, -0.89702, 0.51173, 0.8787, 0.09839, 2.68092, 0.88997, 2.68525, 1.20671, 5.24014, -0.9904, 4.68878, 1.29555 ]
+						},
+						{
+							"time": 2.2667,
+							"offset": 14,
+							"vertices": [ 5.01, 1.44533, 4.61034, 8.94521, 4.58483, 12.41422, 1.6318, 16.041, -2.534, 4.91698, -0.04301, 6.05991, -1.01675, -1.6453, -0.89702, 0.51173, 0.8787, 0.09839, 2.68092, 0.88997, 2.68525, 1.20671, 5.24014, -0.9904, 4.68878, 1.29555 ]
+						},
+						{
+							"time": 2.4667,
+							"offset": 14,
+							"vertices": [ 8.35001, 2.40888, 18.65046, 12.63526, 16.63799, 19.30203, 10.46304, 24.74112, 7.04694, 22.4885, 0.04309, 7.85844, -1.01675, -1.6453, -0.89702, 0.51173, 0.8787, 0.09839, 2.68092, 0.88997, 2.68525, 1.20671, 5.24014, -0.9904, 4.68878, 1.29555 ]
+						},
+						{
+							"time": 2.6333,
+							"offset": 14,
+							"vertices": [ 8.35001, 2.40888, 18.65046, 12.63526, 16.63799, 19.30203, 10.46304, 24.74112, 6.09042, 20.3936, 0.04309, 7.85844, -1.01675, -1.6453, -0.89702, 0.51173, 0.8787, 0.09839, 2.68092, 0.88997, 2.68525, 1.20671, 5.24014, -0.9904, 4.68878, 1.29555 ]
+						},
+						{
+							"time": 2.9333,
+							"offset": 14,
+							"vertices": [ 6.1347, 1.76979, 13.70238, 9.28305, 12.18484, 14.98098, 4.43752, 16.72459, 6.16116, 20.99446, 2.72772, 17.29742, -0.57875, 1.46943, -0.65904, 0.37597, 0.64558, 0.07228, 2.6299, 1.05498, 1.97284, 0.88656, 3.8499, -0.72764, 3.44482, 0.95183 ]
+						},
+						{
+							"time": 3.1667,
+							"offset": 18,
+							"vertices": [ -0.14696, 3.01498, 2.28105, 4.06521, -0.5779, -0.44222, -0.48925, 1.13527 ]
+						}
+					]
+				}
+			}
+		},
+		"drawOrder": [
+			{ "time": 0 },
+			{ "time": 0.0333 }
+		]
+	},
+	"Steal_Pos": {
+		"slots": {
+			"SwingPath": {
+				"attachment": [
+					{ "time": 0, "name": null }
+				]
+			},
+			"s_dorso": {
+				"attachment": [
+					{ "time": 0, "name": "a_dorso" },
+					{ "time": 0.8, "name": "a_dorso" },
+					{ "time": 2.6333, "name": "a_dorso" }
+				]
+			}
+		},
+		"bones": {
+			"b_pelvis": {
+				"rotate": [
+					{ "time": 0, "angle": 0 },
+					{
+						"time": 0.1,
+						"angle": -17.73,
+						"curve": [ 0.528, 0, 0.476, 1.01 ]
+					},
+					{
+						"time": 0.5,
+						"angle": 14.82,
+						"curve": [ 0.447, 0, 0.477, 1 ]
+					},
+					{
+						"time": 0.8,
+						"angle": 0.29,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 1.1333,
+						"angle": -0.13,
+						"curve": [ 0.62, 0, 1, 1 ]
+					},
+					{ "time": 1.4667, "angle": 4.58 },
+					{
+						"time": 1.5,
+						"angle": 1.28,
+						"curve": [ 0.484, 0.01, 0.661, 1 ]
+					},
+					{
+						"time": 1.7,
+						"angle": 0,
+						"curve": [ 0.466, 0.01, 0.52, 1 ]
+					},
+					{ "time": 2.6333, "angle": 3.18 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 },
+					{
+						"time": 0.1,
+						"x": 0,
+						"y": 0.92,
+						"curve": [ 0.498, 0, 0.476, 1.01 ]
+					},
+					{
+						"time": 0.8,
+						"x": 0,
+						"y": 0.33,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 1.1333,
+						"x": 0,
+						"y": 10.49,
+						"curve": [ 0.244, 0, 0.641, 0.57 ]
+					},
+					{
+						"time": 1.5,
+						"x": 14.21,
+						"y": 2.82,
+						"curve": [ 0.484, 0.01, 0.661, 1 ]
+					},
+					{ "time": 1.7, "x": 15.47, "y": 4.71 },
+					{
+						"time": 2.0667,
+						"x": 9.28,
+						"y": 2.83,
+						"curve": [ 0.971, 0, 0.651, 1 ]
+					},
+					{ "time": 2.6333, "x": 0, "y": 0.92 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 },
+					{
+						"time": 0.1,
+						"x": 1.002,
+						"y": 1,
+						"curve": [ 0.253, 0.46, 0.476, 1.01 ]
+					},
+					{
+						"time": 0.8,
+						"x": 1.004,
+						"y": 1,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 1.4333, "x": 1, "y": 1 },
+					{
+						"time": 1.5,
+						"x": 0.871,
+						"y": 1.051,
+						"curve": [ 0.484, 0.01, 0.661, 1 ]
+					},
+					{
+						"time": 1.7,
+						"x": 1,
+						"y": 0.962,
+						"curve": [ 0.466, 0.01, 0.52, 1 ]
+					},
+					{
+						"time": 2.0667,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.971, 0, 0.651, 1 ]
+					},
+					{ "time": 2.6333, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0.8, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.6333, "x": 0, "y": 0 }
+				]
+			},
+			"b_dorso": {
+				"rotate": [
+					{ "time": 0, "angle": 0 },
+					{
+						"time": 0.1,
+						"angle": -16.69,
+						"curve": [ 0, 0, 0.476, 1.01 ]
+					},
+					{
+						"time": 0.5667,
+						"angle": 14.25,
+						"curve": [ 0.447, 0, 0.477, 1 ]
+					},
+					{
+						"time": 0.8,
+						"angle": 0.3,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 1.2333,
+						"angle": -7.18,
+						"curve": [ 0.62, 0, 1, 1 ]
+					},
+					{
+						"time": 1.4333,
+						"angle": 12.33,
+						"curve": [ 0.353, 0, 0.682, 0.41 ]
+					},
+					{
+						"time": 1.5,
+						"angle": 10.02,
+						"curve": [ 0.484, 0.01, 0.661, 1 ]
+					},
+					{
+						"time": 1.7,
+						"angle": 0,
+						"curve": [ 0.466, 0.01, 0.52, 1 ]
+					},
+					{ "time": 2.6333, "angle": 3.37 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 },
+					{
+						"time": 0.1,
+						"x": -0.42,
+						"y": -0.08,
+						"curve": [ 0, 0, 0.476, 1.01 ]
+					},
+					{
+						"time": 0.5667,
+						"x": 1.95,
+						"y": 8.91,
+						"curve": [ 0.447, 0, 0.477, 1 ]
+					},
+					{
+						"time": 0.8,
+						"x": 1.33,
+						"y": -0.08,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 1.1333,
+						"x": 3.5,
+						"y": -0.64,
+						"curve": [ 0.519, 0, 0.878, 0.71 ]
+					},
+					{
+						"time": 1.4,
+						"x": 8.09,
+						"y": -0.92,
+						"curve": [ 0.658, 0.62, 1, 1 ]
+					},
+					{
+						"time": 1.4667,
+						"x": -6.94,
+						"y": -0.64,
+						"curve": [ 0.351, 0, 0.681, 0.4 ]
+					},
+					{
+						"time": 1.5,
+						"x": 3.16,
+						"y": 1.01,
+						"curve": [ 0.484, 0.01, 0.661, 1 ]
+					},
+					{
+						"time": 1.7,
+						"x": 2.53,
+						"y": 0,
+						"curve": [ 0.466, 0.01, 0.52, 1 ]
+					},
+					{
+						"time": 2.0667,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0.971, 0, 0.651, 1 ]
+					},
+					{ "time": 2.6333, "x": -0.42, "y": -0.08 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 },
+					{
+						"time": 0.1,
+						"x": 1.002,
+						"y": 1,
+						"curve": [ 0, 0, 0.476, 1.01 ]
+					},
+					{
+						"time": 0.8,
+						"x": 1.004,
+						"y": 1,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 1.4333, "x": 1, "y": 1 },
+					{
+						"time": 1.5,
+						"x": 0.954,
+						"y": 1.019,
+						"curve": [ 0.484, 0.01, 0.661, 1 ]
+					},
+					{
+						"time": 1.7,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.466, 0.01, 0.52, 1 ]
+					},
+					{ "time": 2.6333, "x": 1.002, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0.8, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.6333, "x": 0, "y": 0 }
+				]
+			},
+			"ik_foot_R": {
+				"rotate": [
+					{
+						"time": 0.8,
+						"angle": 0.03,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 2.6333, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 },
+					{
+						"time": 0.1,
+						"x": 27.17,
+						"y": 1.63,
+						"curve": [ 0, 0, 0.476, 1.01 ]
+					},
+					{
+						"time": 0.5,
+						"x": 8.09,
+						"y": 13.07,
+						"curve": [ 0.447, 0, 0.477, 1 ]
+					},
+					{
+						"time": 0.8,
+						"x": 0,
+						"y": 1.63,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 1.5,
+						"x": 0,
+						"y": 0.57,
+						"curve": [ 0.344, 0.3, 0.677, 0.63 ]
+					},
+					{
+						"time": 1.7,
+						"x": 0,
+						"y": -1.08,
+						"curve": [ 0.343, 0.31, 0.676, 0.64 ]
+					},
+					{
+						"time": 2.0667,
+						"x": 0,
+						"y": -1.93,
+						"curve": [ 0.971, 0, 0.651, 1 ]
+					},
+					{ "time": 2.6333, "x": 0, "y": 1.63 }
+				],
+				"scale": [
+					{ "time": 0.8, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 2.6333, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0.8, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.6333, "x": 0, "y": 0 }
+				]
+			},
+			"root": {
+				"rotate": [
+					{ "time": 0.8, "angle": 0.03 }
+				],
+				"translate": [
+					{ "time": 0.8, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0.8, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0.8, "x": 0, "y": 0 }
+				]
+			},
+			"b_FullPet": {
+				"rotate": [
+					{ "time": 0, "angle": -19.81, "curve": "stepped" },
+					{
+						"time": 0.1,
+						"angle": -19.81,
+						"curve": [ 0, 0, 0.476, 1.01 ]
+					},
+					{
+						"time": 0.4,
+						"angle": 13.93,
+						"curve": [ 0.447, 0, 0.477, 1 ]
+					},
+					{ "time": 0.8, "angle": 0.03, "curve": "stepped" },
+					{
+						"time": 1.7667,
+						"angle": 0.03,
+						"curve": [ 0.393, 0, 0.632, 1 ]
+					},
+					{ "time": 2.6333, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 403.21, "y": 4.26, "curve": "stepped" },
+					{
+						"time": 0.1,
+						"x": 403.21,
+						"y": 4.26,
+						"curve": [ 0, 0, 0.476, 1.01 ]
+					},
+					{
+						"time": 0.4,
+						"x": -27.25,
+						"y": 7.15,
+						"curve": [ 0.447, 0, 0.477, 1 ]
+					},
+					{ "time": 0.8, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.4667, "x": 0, "y": 0 },
+					{
+						"time": 1.5,
+						"x": 0,
+						"y": -5.09,
+						"curve": [ 0.375, 0, 0.617, 1 ]
+					},
+					{
+						"time": 1.5667,
+						"x": 0,
+						"y": -5.82,
+						"curve": [ 0.375, 0, 0.617, 1 ]
+					},
+					{
+						"time": 1.6667,
+						"x": 0,
+						"y": 8,
+						"curve": [ 0.393, 0, 0.632, 1 ]
+					},
+					{ "time": 1.7667, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.6333, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0.8, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 1.4667, "x": 1, "y": 1 },
+					{
+						"time": 1.5,
+						"x": 1.036,
+						"y": 0.942,
+						"curve": [ 0.375, 0, 0.617, 1 ]
+					},
+					{
+						"time": 1.5667,
+						"x": 1.017,
+						"y": 0.959,
+						"curve": [ 0.375, 0, 0.617, 1 ]
+					},
+					{
+						"time": 1.6667,
+						"x": 0.942,
+						"y": 1.08,
+						"curve": [ 0.393, 0, 0.632, 1 ]
+					},
+					{ "time": 1.7667, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 2.6333, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0.8, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.5667, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.6667, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 1.7667, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.6333, "x": 0, "y": 0 }
+				]
+			},
+			"ik_fot_L": {
+				"rotate": [
+					{
+						"time": 0.8,
+						"angle": 0.03,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{ "time": 2.6333, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 },
+					{
+						"time": 0.1,
+						"x": -23.97,
+						"y": 20.77,
+						"curve": [ 0, 0, 0.476, 1.01 ]
+					},
+					{
+						"time": 0.5,
+						"x": -28.26,
+						"y": -9.97,
+						"curve": [ 0.447, 0, 0.477, 1 ]
+					},
+					{
+						"time": 0.8,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 1.2,
+						"x": -62.13,
+						"y": 54.09,
+						"curve": [ 0.294, 0.62, 0.619, 1 ]
+					},
+					{
+						"time": 1.3,
+						"x": -63.72,
+						"y": 51.15,
+						"curve": [ 0.33, 0, 0.676, 0.41 ]
+					},
+					{
+						"time": 1.3333,
+						"x": -75.18,
+						"y": 47.57,
+						"curve": [ 0.349, 0.3, 0.686, 0.64 ]
+					},
+					{
+						"time": 1.3667,
+						"x": -70.67,
+						"y": 33.98,
+						"curve": [ 0.361, 0.33, 0.698, 0.67 ]
+					},
+					{
+						"time": 1.4,
+						"x": -53.83,
+						"y": 13.44,
+						"curve": [ 0.381, 0.36, 0.719, 0.7 ]
+					},
+					{
+						"time": 1.4333,
+						"x": -19.36,
+						"y": -4.99,
+						"curve": [ 0.427, 0.41, 0.767, 0.75 ]
+					},
+					{
+						"time": 1.4667,
+						"x": 0.71,
+						"y": -12.74,
+						"curve": [ 0.648, 0.59, 1, 0.96 ]
+					},
+					{ "time": 1.5, "x": 26.51, "y": -7.89 },
+					{
+						"time": 2.0667,
+						"x": 22.72,
+						"y": -6.76,
+						"curve": [ 0.971, 0, 0.651, 1 ]
+					},
+					{ "time": 2.6333, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0.8, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 2.6333, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0.8, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 2.6333, "x": 0, "y": 0 }
+				]
+			}
+		},
+		"deform": {
+			"default": {
+				"s_dorsoMask": {
+					"mask_dorso": [
+						{
+							"time": 0.1667,
+							"offset": 18,
+							"vertices": [ -0.09009, 1.82007, 3.3989, 12.21198, 5.56006, 14.01541, 3.89479, 12.42363, 2.32855, 7.84184, 1.32164, 5.8468 ]
+						},
+						{
+							"time": 0.4667,
+							"offset": 14,
+							"vertices": [ -8.46482, 1.53479, 0.25138, 7.97987, 1.99913, 11.04901, -0.79776, 11.9193, -0.32355, 9.76874, 0.4849, 7.02131, 1.13566, 1.03174, 0.56724, 1.20066, 0, 0, 0.75103, -0.21875 ]
+						},
+						{
+							"time": 0.8,
+							"offset": 18,
+							"vertices": [ 0.19027, -0.44664, -0.12057, 0.60894, 0.16043, 1.79507, -0.67506, -1.23026, -0.18979, -6.53505, -0.27099, -3.96171, 0, 0, 1.58551, -0.46181 ],
+							"curve": [ 0, 0.21, 0.75, 1 ]
+						},
+						{
+							"time": 0.9667,
+							"offset": 10,
+							"vertices": [ 1.39394, 1.16504, 6.48138, 1.94468, 10.0592, 3.03158, 17.36675, 10.52183, 15.59673, 15.56505, 11.79083, 22.84578, 8.62555, 20.57906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.65419, -2.66706 ]
+						},
+						{
+							"time": 1.1333,
+							"offset": 10,
+							"vertices": [ 2.78789, 2.33007, 6.99816, 1.90074, 10.50841, 2.41662, 18.16216, 10.76109, 14.28698, 14.20777, 3.02053, 9.51532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.75785, 0.08894 ]
+						},
+						{
+							"time": 1.5,
+							"offset": 10,
+							"vertices": [ 3.48734, -0.37014, -1.73034, 1.93004, 1.29986, 0.43891, 5.45574, 4.86049, 2.65576, 5.20719, -0.42389, 4.49713, 0.80269, -1.48245, -0.80097, -2.21102, -1.31778, -7.39635, -0.52702, -5.55621, 0, 0, 1.6176, 0.61812, 0.61359, 4.25574, 2.02185, 6.17672 ]
+						},
+						{
+							"time": 1.8333,
+							"offset": 10,
+							"vertices": [ 2.46165, -0.26128, -1.22142, 1.36238, 0.91755, 0.30982, 3.85111, 3.43093, 1.87466, 3.67566, 0.63495, 3.2127, 1.94221, -1.36821, 0.24273, -5.80374, -0.91445, -10.17494, 0.22586, -6.41701, 0, 0, 1.14183, 0.43632, 0.43312, 3.00405, -0.5974, 4.17784, -2.37982, -0.12516 ]
+						},
+						{
+							"time": 2.2333,
+							"offset": 10,
+							"vertices": [ 1.23083, -0.13064, -0.61071, 0.68119, 0.45877, 0.15491, 1.92556, 1.71547, 0.93733, 1.83783, -0.93471, 1.84128, 1.60743, -0.51824, 0.12137, -2.90187, -0.26452, -8.43572, -0.15806, -7.17022, 0, 0, 1.36367, -0.01274, 0.21656, 1.50203, 0.71359, 2.18002, -1.00328, -2.26482 ]
+						},
+						{
+							"time": 2.4667,
+							"offset": 10,
+							"vertices": [ 0.51284, -0.05443, -0.25446, 0.28383, 0.19116, 0.06455, 0.80232, 0.71478, -2.46495, -1.12584, -0.38946, 0.7672, 0.66976, -0.21593, 0.05057, -1.20911, -0.11022, -3.51488, -0.06586, -2.98759, 0, 0, 1.49307, -0.2747, 0.09023, 0.62584, 0.29733, 0.90834 ]
+						},
+						{
+							"time": 2.6333,
+							"offset": 32,
+							"vertices": [ 1.58551, -0.46181 ]
+						}
+					]
+				}
+			}
+		},
+		"drawOrder": [
+			{ "time": 0.0667 },
+			{ "time": 0.8 },
+			{ "time": 1.0667 },
+			{ "time": 2.3333 }
+		]
+	},
+	"Steal_Pre": {
+		"slots": {
+			"s_dorso": {
+				"attachment": [
+					{ "time": 0, "name": "a_dorso" }
+				]
+			}
+		},
+		"bones": {
+			"b_pelvis": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.29,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.2,
+						"angle": 4.41,
+						"curve": [ 0.397, 0.2, 0.523, 1 ]
+					},
+					{
+						"time": 0.5333,
+						"angle": -13.71,
+						"curve": [ 0.39, 0, 1, 0 ]
+					},
+					{ "time": 0.7, "angle": 10.7 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0.33 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1.004, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			},
+			"b_dorso": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 0.3,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.2,
+						"angle": 6.05,
+						"curve": [ 0.397, 0.2, 0.523, 1 ]
+					},
+					{
+						"time": 0.5333,
+						"angle": -13.6,
+						"curve": [ 0.39, 0, 1, 0 ]
+					},
+					{ "time": 0.7, "angle": 14.55 },
+					{ "time": 0.9667, "angle": -0.41 }
+				],
+				"translate": [
+					{ "time": 0, "x": 1.33, "y": -0.08 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1.004, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			},
+			"ik_foot_R": {
+				"rotate": [
+					{ "time": 0, "angle": 0.03 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 1.63,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.0333,
+						"x": -6.5,
+						"y": -4.29,
+						"curve": [ 0.469, 0, 0.541, 1 ]
+					},
+					{
+						"time": 0.5333,
+						"x": -60.84,
+						"y": 23.68,
+						"curve": [ 0.39, 0, 1, 0 ]
+					},
+					{ "time": 0.7, "x": 3.16, "y": 13.15 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			},
+			"ik_fot_L": {
+				"rotate": [
+					{ "time": 0, "angle": 0.03 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0, 0.25, 0.503, 0.99 ]
+					},
+					{
+						"time": 0.5333,
+						"x": 12.41,
+						"y": -16.96,
+						"curve": [ 0.334, 0, 0.819, 0 ]
+					},
+					{
+						"time": 0.6667,
+						"x": -29,
+						"y": -1.22,
+						"curve": [ 0.633, 0.26, 1, 0.59 ]
+					},
+					{ "time": 0.7, "x": -62.11, "y": 6.2 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			},
+			"b_FullPet": {
+				"rotate": [
+					{ "time": 0, "angle": 0.03 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 },
+					{
+						"time": 0.5,
+						"x": -31.33,
+						"y": 6.71,
+						"curve": [ 0.477, 0, 0.983, 0.98 ]
+					},
+					{ "time": 0.9333, "x": 381.21, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			},
+			"root": {
+				"rotate": [
+					{ "time": 0, "angle": 0.03 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			}
+		},
+		"deform": {
+			"default": {
+				"s_dorsoMask": {
+					"mask_dorso": [
+						{
+							"time": 0,
+							"offset": 32,
+							"vertices": [ -0.42995, 3.87875 ]
+						},
+						{
+							"time": 0.2,
+							"offset": 32,
+							"vertices": [ -0.42995, 3.87875, 0, 0, -0.10873, -2.85018, 0.76328, -1.88967 ]
+						},
+						{
+							"time": 0.5333,
+							"offset": 22,
+							"vertices": [ 1.19008, 0.8764, 0.95642, -1.05739, 1.08689, -2.08134, 1.28414, 2.42408, -0.17401, 2.65557, 0.86056, 3.37201, 0.08122, -4.20331, -2.24981, -9.94114, 0.76328, -1.88967 ]
+						},
+						{
+							"time": 0.7,
+							"offset": 14,
+							"vertices": [ -5.60591, -0.41905, 0, 0, 0, 0, 0, 0, 1.19008, 0.8764, 0.95642, -1.05739, 1.08689, -2.08134, 1.28414, 2.42408, -0.17401, 2.65557, 0.86056, 3.37201, 0.08122, -4.20331, 2.91238, -3.40398, 3.36983, -1.31287, 7.83782, -3.82666 ]
+						}
+					]
+				}
+			}
+		},
+		"drawOrder": [
+			{ "time": 0 },
+			{ "time": 0.6333 }
+		]
+	},
+	"Steal_Swing": {
+		"slots": {
+			"SwingPath": {
+				"attachment": [
+					{ "time": 0, "name": null }
+				]
+			},
+			"s_dorso": {
+				"attachment": [
+					{ "time": 0, "name": null },
+					{ "time": 0.1667, "name": "a_dorso" },
+					{ "time": 2.9, "name": null }
+				]
+			}
+		},
+		"bones": {
+			"b_pelvis": {
+				"rotate": [
+					{ "time": 0, "angle": 0 },
+					{
+						"time": 0.2333,
+						"angle": 14.39,
+						"curve": [ 0.469, 0, 0.541, 1 ]
+					},
+					{
+						"time": 0.9,
+						"angle": 33.72,
+						"curve": [ 0.469, 0, 0.541, 1 ]
+					},
+					{ "time": 1.7333, "angle": -20.64 },
+					{ "time": 2.7, "angle": 4.97 }
+				]
+			},
+			"ik_fot_L": {
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 },
+					{ "time": 0.2333, "x": 53.72, "y": 12.26, "curve": "stepped" },
+					{ "time": 0.7, "x": 53.72, "y": 12.26, "curve": "stepped" },
+					{
+						"time": 0.8667,
+						"x": 53.72,
+						"y": 12.26,
+						"curve": [ 0.463, 0, 0.735, 0.49 ]
+					},
+					{
+						"time": 1.1333,
+						"x": 26.77,
+						"y": -20.56,
+						"curve": [ 0.463, 0, 0.735, 0.49 ]
+					},
+					{ "time": 1.3667, "x": -49.75, "y": 14.51 },
+					{ "time": 1.8, "x": -57.89, "y": 116.73 }
+				]
+			},
+			"ik_foot_R": {
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 },
+					{
+						"time": 0.2333,
+						"x": 40.6,
+						"y": 55.03,
+						"curve": [ 0.463, 0, 0.735, 0.49 ]
+					},
+					{ "time": 0.7, "x": 31.18, "y": 70.52, "curve": "stepped" },
+					{
+						"time": 0.8667,
+						"x": 31.18,
+						"y": 70.52,
+						"curve": [ 0.463, 0, 0.735, 0.49 ]
+					},
+					{
+						"time": 1.1333,
+						"x": 11.62,
+						"y": 14.77,
+						"curve": [ 0.463, 0, 0.735, 0.49 ]
+					},
+					{ "time": 1.3667, "x": -23.81, "y": -10.24 },
+					{ "time": 1.5667, "x": -96.61, "y": 14.21 },
+					{ "time": 1.6667, "x": -122.26, "y": 39.61 },
+					{ "time": 1.8, "x": -141.31, "y": 62.17 }
+				],
+				"scale": [
+					{ "time": 1.3667, "x": 1, "y": 1 }
+				]
+			},
+			"b_dorso": {
+				"rotate": [
+					{ "time": 0, "angle": 0 },
+					{
+						"time": 0.2333,
+						"angle": -7.58,
+						"curve": [ 0.469, 0, 0.541, 1 ]
+					},
+					{
+						"time": 0.9,
+						"angle": 16.98,
+						"curve": [ 0.469, 0, 0.541, 1 ]
+					},
+					{
+						"time": 1.7333,
+						"angle": -15.43,
+						"curve": [ 0.432, 0, 0.704, 1 ]
+					},
+					{ "time": 2.7, "angle": 13.31 }
+				]
+			},
+			"b_FullPet": {
+				"rotate": [
+					{ "time": 0, "angle": 0 },
+					{ "time": 0.1667, "angle": 0.06 },
+					{ "time": 2.7, "angle": -18.58 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 },
+					{ "time": 0.1667, "x": 0.694, "y": 0.694 }
+				]
+			}
+		},
+		"deform": {
+			"default": {
+				"s_dorsoMask": {
+					"mask_dorso": [
+						{
+							"time": 0.2,
+							"vertices": [ -17.61151, 7.44397, -25.7521, 4.97461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.48962, 0.18201, 4.21371, -0.53162, 4.28094, 1.35608, 4.98955, -5.28259, 2.25755, -2.35632, 0, 0, 0, 0, 0.52681, -0.94873, -1.5357, -4.81372, -4.5662, 2.46704, -7.08064, 4.43799 ]
+						},
+						{
+							"time": 0.8667,
+							"vertices": [ -16.85147, 10.84058, -22.68441, 6.6701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.48962, 0.18201, 4.21371, -0.53162, 4.28094, 1.35608, 1.38306, -1.59668, 0.09397, -3.80371, 0.19534, 3.69788, 0.30901, 6.95337, -0.2626, 3.31433, -0.78785, 9.22858, -1.59815, 12.26593, -3.47169, 7.10962 ]
+						},
+						{
+							"time": 1.1,
+							"vertices": [ -16.85147, 10.84058, -22.68441, 6.6701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.19839, 7.02527, 2.78537, 3.45587, 0.91488, 6.86127, 0.12288, 3.91882, -1.46088, 2.67676, 0.19534, 3.69788, 0.85284, 5.85162, -0.53325, 7.65668, -0.78785, 9.22858, -1.59815, 12.26593, -3.47169, 7.10962 ]
+						},
+						{
+							"time": 1.4,
+							"vertices": [ -16.85147, 10.84058, -22.68441, 6.6701, 0, 0, 0, 0, 0, 0, -1.66644, 3.70594, -0.76849, 2.94371, 5.25787, 2.05422, 6.0462, 6.99281, 2.4809, 7.96571, 7.06057, 17.19414, 12.18875, 16.24741, 5.84072, 4.99029, 4.23824, 3.26476, 3.44274, 0.26864, 0.19534, 3.69788, 0.85284, 5.85162, -0.53325, 7.65668, -0.78785, 9.22858, -1.59815, 12.26593, -3.47169, 7.10962 ]
+						},
+						{
+							"time": 1.7667,
+							"vertices": [ -16.85147, 10.84058, -22.68441, 6.6701, 0, 0, 0, 0, 78.54356, 40.34149, 7.10963, 0.8083, 7.00063, 0.82249, 14.24783, 1.8984, 19.18579, 10.05903, 11.68486, 13.1877, 12.08804, 19.95055, 12.18875, 16.24741, 5.84072, 4.99029, 4.23824, 3.26476, 3.44274, 0.26864, 0.19534, 3.69788, 0.85284, 5.85162, -0.53325, 7.65668, -0.78785, 9.22858, -1.59815, 12.26593, -3.47169, 7.10962 ]
+						},
+						{
+							"time": 2.1667,
+							"vertices": [ -16.85147, 10.84058, -22.68441, 6.6701, 0, 0, 143.61392, 59.2941, 104.18983, -57.63258, 14.86074, -8.12623, 13.85868, -2.32168, 18.29576, 1.81567, 18.14918, 11.0727, 11.11384, 13.56879, 11.99242, 22.17611, 13.14092, 16.43406, 5.84072, 4.99029, 4.23824, 3.26476, 3.44274, 0.26864, 0.19534, 3.69788, 0.85284, 5.85162, -0.53325, 7.65668, -0.78785, 9.22858, -1.59815, 12.26593, -3.47169, 7.10962 ]
+						},
+						{
+							"time": 2.4,
+							"vertices": [ -16.85147, 10.84058, -22.68441, 6.6701, 0, 0, 227.3887, 93.88232, 119.15016, -114.78412, 20.17262, -6.22173, 17.85921, -4.15578, 20.65704, 1.76742, 17.54449, 11.66401, 10.78075, 13.79109, 11.93664, 23.47435, 13.69635, 16.54295, 5.84072, 4.99029, 4.23824, 3.26476, 3.44274, 0.26864, 0.19534, 3.69788, 0.85284, 5.85162, -0.53325, 7.65668, -0.78785, 9.22858, -1.59815, 12.26593, -3.47169, 7.10962 ]
+						}
+					]
+				}
+			}
+		}
+	}
+}
+}

BIN
spine-xna/example/data/skeleton.png


+ 9 - 0
spine-xna/example/spine-xna-example.csproj

@@ -128,9 +128,18 @@
     <None Include="data\raptor.png">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
+    <None Include="data\skeleton.atlas">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
+    <None Include="data\skeleton.json">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
     <None Include="data\spineboy.png">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
+    <Content Include="data\skeleton.png">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
     <Content Include="data\tank.png">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>

+ 24 - 6
spine-xna/example/src/ExampleGame.cs

@@ -43,6 +43,7 @@ namespace Spine {
 	public class Example : Microsoft.Xna.Framework.Game {
 		GraphicsDeviceManager graphics;
 		SkeletonRenderer skeletonRenderer;
+		SkeletonDebugRenderer skeletonDebugRenderer;
 		Skeleton skeleton;
 		Slot headSlot;
 		AnimationState state;
@@ -79,11 +80,16 @@ namespace Spine {
 			skeletonRenderer.PremultipliedAlpha = false;
 			skeletonRenderer.Effect = spineEffect;
 
+			skeletonDebugRenderer = new SkeletonDebugRenderer(GraphicsDevice);
+			skeletonDebugRenderer.DisableAll();
+			skeletonDebugRenderer.DrawClipping = true;
+
 			// String name = "spineboy-ess";
 			// String name = "goblins-pro";
 			// String name = "raptor-pro";
 			// String name = "tank-pro";
-			String name = "coin-pro";
+			// String name = "coin-pro";
+			String name = "skeleton";
 			String atlasName = name.Replace("-pro", "").Replace("-ess", "");
 			bool binaryData = false;
 
@@ -122,27 +128,34 @@ namespace Spine {
 				state.Complete += Complete;
 				state.Event += Event;
 
-				state.SetAnimation(0, "test", false);
+				state.SetAnimation(0, "run", true);
 				TrackEntry entry = state.AddAnimation(0, "jump", false, 0);
 				entry.End += End; // Event handling for queued animations.
 				state.AddAnimation(0, "run", true, 0);
 			}
 			else if (name == "raptor-pro") {
 				state.SetAnimation(0, "walk", true);
-				state.AddAnimation(1, "gungrab", false, 2);
+				state.AddAnimation(1, "gun-grab", false, 2);
 			}
 			else if (name == "coin-pro") {
 				state.SetAnimation(0, "rotate", true);
 			}
 			else if (name == "tank-pro") {
+				skeleton.X += 300;
 				state.SetAnimation(0, "drive", true);
-			}			
+			}	
+			else if (name == "skeleton") {
+				skeleton.SetSkin("Pig_Normal");
+				skeleton.FlipY = true;
+				skeleton.Y -= 200;
+				state.SetAnimation(0, "BattleIdle", true);
+			}		
 			else {
 				state.SetAnimation(0, "walk", true);
 			}
 
-			skeleton.X = 400 + (name == "tank-pro" ? 300: 0);
-			skeleton.Y = GraphicsDevice.Viewport.Height;
+			skeleton.X += 400;
+			skeleton.Y += GraphicsDevice.Viewport.Height;
 			skeleton.UpdateWorldTransform();
 
 			headSlot = skeleton.FindSlot("head");
@@ -176,6 +189,11 @@ namespace Spine {
 			skeletonRenderer.Draw(skeleton);
 			skeletonRenderer.End();
 
+			skeletonDebugRenderer.Effect.Projection = Matrix.CreateOrthographicOffCenter(0, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height, 0, 1, 0);
+			skeletonDebugRenderer.Begin();
+			skeletonDebugRenderer.Draw(skeleton);
+			skeletonDebugRenderer.End();
+
 			bounds.Update(skeleton, true);
 			MouseState mouse = Mouse.GetState();
 			if (headSlot != null) {

+ 2 - 0
spine-xna/spine-xna.csproj

@@ -110,6 +110,8 @@
   <ItemGroup>
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="src\MeshBatcher.cs" />
+    <Compile Include="src\ShapeRenderer.cs" />
+    <Compile Include="src\SkeletonDebugRenderer.cs" />
     <Compile Include="src\XnaTextureLoader.cs" />
     <Compile Include="src\Util.cs" />
   </ItemGroup>

+ 167 - 0
spine-xna/src/ShapeRenderer.cs

@@ -0,0 +1,167 @@
+/******************************************************************************
+ * Spine Runtimes Software License
+ * Version 2.3
+ * 
+ * Copyright (c) 2013-2015, Esoteric Software
+ * All rights reserved.
+ * 
+ * You are granted a perpetual, non-exclusive, non-sublicensable and
+ * non-transferable license to use, install, execute and perform the Spine
+ * Runtimes Software (the "Software") and derivative works solely for personal
+ * or internal use. Without the written permission of Esoteric Software (see
+ * Section 2 of the Spine Software License Agreement), you may not (a) modify,
+ * translate, adapt or otherwise create derivative works, improvements of the
+ * Software or develop new applications using the Software or (b) remove,
+ * delete, alter or obscure any trademarks or any copyright, trademark, patent
+ * or other intellectual property or proprietary rights notices on or in the
+ * Software, including any copy thereof. Redistributions in binary or source
+ * form must include this license and terms.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *****************************************************************************/
+
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace Spine {
+	/// <summary>
+	/// Batch drawing of lines and shapes that can be derrived from lines.
+	/// 
+	/// Call drawing methods in between Begin()/End()
+	/// </summary>
+	public class ShapeRenderer {
+		GraphicsDevice device;		
+		List<VertexPositionColor> vertices = new List<VertexPositionColor>();
+		Color color = Color.White;
+		BasicEffect effect;
+		public BasicEffect Effect { get { return effect; } set { effect = value; } }
+
+		public ShapeRenderer(GraphicsDevice device) {
+			this.device = device;
+			this.effect = new BasicEffect(device);
+			effect.World = Matrix.Identity;
+			effect.View = Matrix.CreateLookAt(new Vector3(0.0f, 0.0f, 1.0f), Vector3.Zero, Vector3.Up);
+			effect.TextureEnabled = false;
+			effect.VertexColorEnabled = true;
+		}
+
+		public void SetColor(Color color) {
+			this.color = color;
+		}
+
+		public void Begin() {
+			device.RasterizerState = new RasterizerState();
+			device.BlendState = BlendState.AlphaBlend;
+		}
+
+		public void Line(float x1, float y1, float x2, float y2) {
+			vertices.Add(new VertexPositionColor(new Vector3(x1, y1, 0), color));
+			vertices.Add(new VertexPositionColor(new Vector3(x2, y2, 0), color));
+		}
+
+		/** Calls {@link #circle(float, float, float, int)} by estimating the number of segments needed for a smooth circle. */
+		public void Circle(float x, float y, float radius) {
+			Circle(x, y, radius, Math.Max(1, (int)(6 * (float)Math.Pow(radius, 1.0f / 3.0f))));
+		}
+
+		/** Draws a circle using {@link ShapeType#Line} or {@link ShapeType#Filled}. */
+		public void Circle(float x, float y, float radius, int segments) {
+			if (segments <= 0) throw new ArgumentException("segments must be > 0.");			
+			float angle = 2 * MathUtils.PI / segments;
+			float cos = MathUtils.Cos(angle);
+			float sin = MathUtils.Sin(angle);
+			float cx = radius, cy = 0;
+			float temp = 0;
+							
+			for (int i = 0; i < segments; i++) {				
+				vertices.Add(new VertexPositionColor(new Vector3(x + cx, y + cy, 0), color));
+				temp = cx;
+				cx = cos * cx - sin * cy;
+				cy = sin * temp + cos * cy;				
+				vertices.Add(new VertexPositionColor(new Vector3(x + cx, y + cy, 0), color));
+			}
+			vertices.Add(new VertexPositionColor(new Vector3(x + cx, y + cy, 0), color));
+
+			temp = cx;
+			cx = radius;
+			cy = 0;
+			vertices.Add(new VertexPositionColor(new Vector3(x + cx, y + cy, 0), color));
+		}
+
+		public void Triangle(float x1, float y1, float x2, float y2, float x3, float y3) {
+			vertices.Add(new VertexPositionColor(new Vector3(x1, y1, 0), color));
+			vertices.Add(new VertexPositionColor(new Vector3(x2, y2, 0), color));
+
+			vertices.Add(new VertexPositionColor(new Vector3(x2, y2, 0), color));
+			vertices.Add(new VertexPositionColor(new Vector3(x3, y3, 0), color));
+
+			vertices.Add(new VertexPositionColor(new Vector3(x3, y3, 0), color));
+			vertices.Add(new VertexPositionColor(new Vector3(x1, y1, 0), color));
+		}
+
+		public void X(float x, float y, float len) {
+			Line(x + len, y + len, x - len, y - len);
+			Line(x - len, y + len, x + len, y - len);
+		}
+
+		public void Polygon(float[] polygonVertices, int offset, int count) {
+			if (count< 3) throw new ArgumentException("Polygon must contain at least 3 vertices");
+
+			offset <<= 1;
+			count <<= 1;
+
+			var firstX = polygonVertices[offset];
+			var firstY = polygonVertices[offset + 1];
+			var last = offset + count;
+
+			for (int i = offset, n = offset + count - 2; i<n; i += 2) {
+				var x1 = polygonVertices[i];
+				var y1 = polygonVertices[i + 1];
+
+				var x2 = 0f;
+				var y2 = 0f;
+
+				if (i + 2 >= last) {
+					x2 = firstX;
+					y2 = firstY;
+				} else {
+					x2 = polygonVertices[i + 2];
+					y2 = polygonVertices[i + 3];
+				}
+
+				Line(x1, y1, x2, y2);
+			}
+		}
+
+		public void Rect(float x, float y, float width, float height) {
+			Line(x, y, x + width, y);
+			Line(x + width, y, x + width, y + height);
+			Line(x + width, y + height, x, y + height);
+			Line(x, y + height, x, y);
+		}
+
+		public void End() {
+			var verticesArray = vertices.ToArray();
+
+			foreach (EffectPass pass in effect.CurrentTechnique.Passes) {
+				pass.Apply();
+				device.DrawUserPrimitives(PrimitiveType.LineList, verticesArray, 0, verticesArray.Length / 2);		
+			}
+
+			vertices.Clear();
+		}
+	}
+}

+ 224 - 0
spine-xna/src/SkeletonDebugRenderer.cs

@@ -0,0 +1,224 @@
+/******************************************************************************
+ * Spine Runtimes Software License
+ * Version 2.3
+ * 
+ * Copyright (c) 2013-2015, Esoteric Software
+ * All rights reserved.
+ * 
+ * You are granted a perpetual, non-exclusive, non-sublicensable and
+ * non-transferable license to use, install, execute and perform the Spine
+ * Runtimes Software (the "Software") and derivative works solely for personal
+ * or internal use. Without the written permission of Esoteric Software (see
+ * Section 2 of the Spine Software License Agreement), you may not (a) modify,
+ * translate, adapt or otherwise create derivative works, improvements of the
+ * Software or develop new applications using the Software or (b) remove,
+ * delete, alter or obscure any trademarks or any copyright, trademark, patent
+ * or other intellectual property or proprietary rights notices on or in the
+ * Software, including any copy thereof. Redistributions in binary or source
+ * form must include this license and terms.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *****************************************************************************/
+
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace Spine {
+	public class SkeletonDebugRenderer {
+		ShapeRenderer renderer;
+
+		private static Color boneLineColor = new Color(1f, 0f, 0f, 1f);
+		private static Color boneOriginColor = new Color(0f, 1f, 0f, 1f);
+		private static Color attachmentLineColor = new Color(0f, 0f, 1f, 0.5f);
+		private static Color triangleLineColor = new Color(1f, 0.64f, 0f, 0.5f);
+		private static Color pathColor = new Color(1f, 0.5f, 0f, 1f);
+		private static Color clipColor = new Color(0.8f, 0f, 0f, 1f);
+		private static Color aabbColor = new Color(0f, 1f, 0f, 0.5f);
+
+		public BasicEffect Effect { get { return renderer.Effect; } set { renderer.Effect = value; } }
+		public bool DrawBones { get; set; }
+		public bool DrawRegionAttachments { get; set; }
+		public bool DrawBoundingBoxes { get; set; }
+		public bool DrawMeshHull { get; set; }
+		public bool DrawMeshTriangles { get; set; }
+		public bool DrawPaths { get; set; }
+		public bool DrawClipping { get; set; }
+		public bool DrawSkeletonXY { get; set; }
+		public void DisableAll() {
+			DrawBones = false;
+			DrawRegionAttachments = false;
+			DrawBoundingBoxes = false;
+			DrawMeshHull = false;
+			DrawMeshTriangles = false;
+			DrawPaths = false;
+			DrawClipping = false;
+			DrawSkeletonXY = false;
+		}
+
+		public void EnableAll() {
+			DrawBones = true;
+			DrawRegionAttachments = true;
+			DrawBoundingBoxes = true;
+			DrawMeshHull = true;
+			DrawMeshTriangles = true;
+			DrawPaths = true;
+			DrawClipping = true;
+			DrawSkeletonXY = true;
+		}
+
+		private float[] vertices = new float[1024 * 2];
+		private SkeletonBounds bounds = new SkeletonBounds();
+		private Triangulator triangulator = new Triangulator();
+
+		public SkeletonDebugRenderer (GraphicsDevice device) {
+			renderer = new ShapeRenderer(device);
+			EnableAll();
+		}
+
+		public void Begin() {
+			renderer.Begin();
+		}
+
+		public void Draw(Skeleton skeleton) {
+			var skeletonX = skeleton.X;
+			var skeletonY = skeleton.Y;
+
+			var bones = skeleton.Bones;
+			if (DrawBones) {
+				renderer.SetColor(boneLineColor);
+				for (int i = 0, n = bones.Count; i < n; i++) {
+					var bone = bones.Items[i];
+					if (bone.Parent == null) continue;
+					var x = bone.Data.Length * bone.A + bone.WorldX;
+					var y = bone.Data.Length * bone.C + bone.WorldY;
+					renderer.Line(bone.WorldX, bone.WorldY, x, y);					
+				}
+				if (DrawSkeletonXY) renderer.X(skeletonX, skeletonY, 4);
+			}
+
+			if (DrawRegionAttachments) {
+				renderer.SetColor(attachmentLineColor);
+				var slots = skeleton.Slots;
+				for (int i = 0, n = slots.Count; i < n; i++) {
+					var slot = slots.Items[i];
+					var attachment = slot.Attachment;
+					if (attachment is RegionAttachment) {
+						var regionAttachment = (RegionAttachment) attachment;
+						var vertices = this.vertices;
+						regionAttachment.ComputeWorldVertices(slot.Bone, vertices, 0, 2);
+						renderer.Line(vertices[0], vertices[1], vertices[2], vertices[3]);
+						renderer.Line(vertices[2], vertices[3], vertices[4], vertices[5]);
+						renderer.Line(vertices[4], vertices[5], vertices[6], vertices[7]);
+						renderer.Line(vertices[6], vertices[7], vertices[0], vertices[1]);
+					}
+				}
+			}
+
+			if (DrawMeshHull || DrawMeshTriangles) {
+				var slots = skeleton.Slots;
+				for (int i = 0, n = slots.Count; i < n; i++) {
+					var slot = slots.Items[i];
+					var attachment = slot.Attachment;
+					if (!(attachment is MeshAttachment)) continue;
+					var mesh = (MeshAttachment)attachment;
+					var world = vertices = vertices.Length < mesh.WorldVerticesLength ? new float[mesh.WorldVerticesLength] : vertices;
+					mesh.ComputeWorldVertices(slot, 0, mesh.WorldVerticesLength, world, 0, 2);
+					int[] triangles = mesh.Triangles;
+					var hullLength = mesh.HullLength;
+					if (DrawMeshTriangles) {
+						renderer.SetColor(triangleLineColor);
+						for (int ii = 0, nn = triangles.Count(); ii < nn; ii += 3) {
+							int v1 = triangles[ii] * 2, v2 = triangles[ii + 1] * 2, v3 = triangles[ii + 2] * 2;
+							renderer.Triangle(world[v1], world[v1 + 1], //
+								world[v2], world[v2 + 1], //
+								world[v3], world[v3 + 1] //
+							);
+						}
+					}
+					if (DrawMeshHull && hullLength > 0) {
+						renderer.SetColor(attachmentLineColor);
+						hullLength = (hullLength >> 1) * 2;
+						float lastX = vertices[hullLength - 2], lastY = vertices[hullLength - 1];
+						for (int ii = 0, nn = hullLength; ii < nn; ii += 2) {
+							float x = vertices[ii], y = vertices[ii + 1];
+							renderer.Line(x, y, lastX, lastY);
+							lastX = x;
+							lastY = y;
+						}
+					}
+				}
+			}
+
+			if (DrawBoundingBoxes) {
+				var bounds = this.bounds;
+				bounds.Update(skeleton, true);
+				renderer.SetColor(aabbColor);
+				renderer.Rect(bounds.MinX, bounds.MinY, bounds.Width, bounds.Height);
+				var polygons = bounds.Polygons;
+				var boxes = bounds.BoundingBoxes;
+				for (int i = 0, n = polygons.Count; i < n; i++) {
+					var polygon = polygons.Items[i];
+					renderer.Polygon(polygon.Vertices, 0, polygon.Count);
+				}
+			}
+
+			if (DrawBones) {
+				renderer.SetColor(boneOriginColor);
+				for (int i = 0, n = bones.Count; i < n; i++) {
+					var bone = bones.Items[i];
+					renderer.Circle(bone.WorldX, bone.WorldY, 3);
+				}
+			}
+
+			if (DrawClipping) {
+				var slots = skeleton.Slots;
+				renderer.SetColor(clipColor);
+				for (int i = 0, n = slots.Count; i < n; i++) {
+					var slot = slots.Items[i];
+					var attachment = slot.Attachment;
+					if (!(attachment is ClippingAttachment)) continue;
+					var clip = (ClippingAttachment)attachment;
+					var nn = clip.WorldVerticesLength;
+					var world = vertices = vertices.Length < nn ? new float[nn] : vertices;
+					clip.ComputeWorldVertices(slot, 0, nn, world, 0, 2);
+					ExposedList<float> clippingPolygon = new ExposedList<float>();
+					for (int ii = 0; ii < nn; ii += 2) {
+						var x = world[ii];
+						var y = world[ii + 1];
+						var x2 = world[(ii + 2) % nn];
+						var y2 = world[(ii + 3) % nn];
+						renderer.Line(x, y, x2, y2);
+						clippingPolygon.Add(x);
+						clippingPolygon.Add(y);
+					}
+					
+					if (!skeleton.FlipY) SkeletonClipping.MakeClockwise(clippingPolygon);
+					var clippingPolygons = triangulator.Decompose(clippingPolygon, triangulator.Triangulate(clippingPolygon));
+					foreach (var polygon in clippingPolygons) {
+						if (!skeleton.FlipY) SkeletonClipping.MakeClockwise(polygon);
+						polygon.Add(polygon.Items[0]);
+						polygon.Add(polygon.Items[1]);
+						renderer.Polygon(polygon.Items, 0, polygon.Count >> 1);
+					}
+				}
+			}
+		}
+
+		public void End() {
+			renderer.End();
+		}
+	}
+}

+ 3 - 3
spine-xna/src/Util.cs

@@ -27,8 +27,8 @@
  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
+ *****************************************************************************/
+
 using System;
 using System.IO;
 using Microsoft.Xna.Framework;
@@ -79,4 +79,4 @@ namespace Spine {
 			return Texture2D.FromStream(device, input);
 		}
 	}
-}
+}