Explorar el Código

Fixed spine-js loading latest format. Additive blending for spine-turbulenz and spine-love.

NathanSweet hace 12 años
padre
commit
6957f68df2

+ 492 - 277
spine-js/data/spineboy.json

@@ -3,21 +3,21 @@
 	{ "name": "root" },
 	{ "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 },
 	{ "name": "left upper leg", "parent": "hip", "length": 50.39, "x": 14.45, "y": 2.81, "rotation": -89.09 },
-	{ "name": "left lower leg", "parent": "left upper leg", "length": 56.45, "x": 51.78, "y": 3.46, "rotation": -16.65 },
-	{ "name": "left foot", "parent": "left lower leg", "length": 46.5, "x": 64.02, "y": -8.67, "rotation": 102.43 },
+	{ "name": "pelvis", "parent": "hip", "x": 1.41, "y": -6.57 },
 	{ "name": "right upper leg", "parent": "hip", "length": 45.76, "x": -18.27, "rotation": -101.13 },
-	{ "name": "right lower leg", "parent": "right upper leg", "length": 58.52, "x": 50.21, "y": 0.6, "rotation": -10.7 },
-	{ "name": "right foot", "parent": "right lower leg", "length": 45.45, "x": 64.88, "y": 0.04, "rotation": 110.3 },
 	{ "name": "torso", "parent": "hip", "length": 85.82, "x": -6.42, "y": 1.97, "rotation": 94.95 },
+	{ "name": "left lower leg", "parent": "left upper leg", "length": 56.45, "x": 51.78, "y": 3.46, "rotation": -16.65 },
+	{ "name": "left shoulder", "parent": "torso", "length": 44.19, "x": 78.96, "y": -15.75, "rotation": -156.96 },
 	{ "name": "neck", "parent": "torso", "length": 18.38, "x": 83.64, "y": -1.78, "rotation": 0.9 },
-	{ "name": "head", "parent": "neck", "length": 68.28, "x": 19.09, "y": 6.97, "rotation": -8.94 },
+	{ "name": "right lower leg", "parent": "right upper leg", "length": 58.52, "x": 50.21, "y": 0.6, "rotation": -10.7 },
 	{ "name": "right shoulder", "parent": "torso", "length": 49.95, "x": 81.9, "y": 6.79, "rotation": 130.6 },
-	{ "name": "right arm", "parent": "right shoulder", "length": 36.74, "x": 49.95, "y": -0.12, "rotation": 40.12 },
-	{ "name": "right hand", "parent": "right arm", "length": 15.32, "x": 36.9, "y": 0.34, "rotation": 2.35 },
-	{ "name": "left shoulder", "parent": "torso", "length": 44.19, "x": 78.96, "y": -15.75, "rotation": -156.96 },
+	{ "name": "head", "parent": "neck", "length": 68.28, "x": 19.09, "y": 6.97, "rotation": -8.94 },
 	{ "name": "left arm", "parent": "left shoulder", "length": 35.62, "x": 44.19, "y": -0.01, "rotation": 28.16 },
+	{ "name": "left foot", "parent": "left lower leg", "length": 46.5, "x": 64.02, "y": -8.67, "rotation": 102.43 },
+	{ "name": "right arm", "parent": "right shoulder", "length": 36.74, "x": 49.95, "y": -0.12, "rotation": 40.12 },
+	{ "name": "right foot", "parent": "right lower leg", "length": 45.45, "x": 64.88, "y": 0.04, "rotation": 110.3 },
 	{ "name": "left hand", "parent": "left arm", "length": 11.52, "x": 35.62, "y": 0.07, "rotation": 2.7 },
-	{ "name": "pelvis", "parent": "hip", "x": 1.41, "y": -6.57 }
+	{ "name": "right hand", "parent": "right arm", "length": 15.32, "x": 36.9, "y": 0.34, "rotation": 2.35 }
 ],
 "slots": [
 	{ "name": "left shoulder", "bone": "left shoulder", "attachment": "left-shoulder" },
@@ -34,344 +34,281 @@
 	{ "name": "neck", "bone": "neck", "attachment": "neck" },
 	{ "name": "head", "bone": "head", "attachment": "head" },
 	{ "name": "eyes", "bone": "head", "attachment": "eyes" },
-	{ "name": "right shoulder", "bone": "right shoulder", "attachment": "right-shoulder" },
+	{ "name": "right shoulder", "bone": "right shoulder", "attachment": "right-shoulder", "additive": true },
 	{ "name": "right arm", "bone": "right arm", "attachment": "right-arm" },
-	{ "name": "right hand", "bone": "right hand", "attachment": "right-hand" }
+	{ "name": "right hand", "bone": "right hand", "attachment": "right-hand" },
+	{ "name": "bb-head", "bone": "head", "attachment": "bb-head" }
 ],
 "skins": {
 	"default": {
-		"left shoulder": {
-			"left-shoulder": { "x": 23.74, "y": 0.11, "rotation": 62.01, "width": 34, "height": 53 }
+		"bb-head": {
+			"bb-head": {
+				"type": "boundingbox",
+				"vertices": [
+					55.69696,
+					-44.60648,
+					8.2226715,
+					-47.609646,
+					-11.244263,
+					-32.942703,
+					-0.05206299,
+					35.835804,
+					61.018433,
+					43.227512,
+					90.35846,
+					-16.054127,
+					115.41275,
+					-32.817406,
+					78.29431,
+					-56.05409
+				]
+			}
+		},
+		"eyes": {
+			"eyes": { "x": 28.94, "y": -32.92, "rotation": -86.9, "width": 34, "height": 27 },
+			"eyes-closed": { "x": 28.77, "y": -32.86, "rotation": -86.9, "width": 34, "height": 27 }
+		},
+		"head": {
+			"head": { "x": 53.94, "y": -5.75, "rotation": -86.9, "width": 121, "height": 132 }
 		},
 		"left arm": {
 			"left-arm": { "x": 15.11, "y": -0.44, "rotation": 33.84, "width": 35, "height": 29 }
 		},
-		"left hand": {
-			"left-hand": { "x": 0.75, "y": 1.86, "rotation": 31.14, "width": 35, "height": 38 }
-		},
 		"left foot": {
 			"left-foot": { "x": 24.35, "y": 8.88, "rotation": 3.32, "width": 65, "height": 30 }
 		},
+		"left hand": {
+			"left-hand": { "x": 0.75, "y": 1.86, "rotation": 31.14, "width": 35, "height": 38 }
+		},
 		"left lower leg": {
 			"left-lower-leg": { "x": 24.55, "y": -1.92, "rotation": 105.75, "width": 49, "height": 64 }
 		},
+		"left shoulder": {
+			"left-shoulder": { "x": 23.74, "y": 0.11, "rotation": 62.01, "width": 34, "height": 53 }
+		},
 		"left upper leg": {
 			"left-upper-leg": { "x": 26.12, "y": -1.85, "rotation": 89.09, "width": 33, "height": 67 }
 		},
+		"neck": {
+			"neck": { "x": 9.42, "y": -3.66, "rotation": -100.15, "width": 34, "height": 28 }
+		},
 		"pelvis": {
 			"pelvis": { "x": -4.83, "y": 10.62, "width": 63, "height": 47 }
 		},
+		"right arm": {
+			"right-arm": { "x": 18.34, "y": -2.64, "rotation": 94.32, "width": 21, "height": 45 }
+		},
 		"right foot": {
 			"right-foot": { "x": 19.02, "y": 8.47, "rotation": 1.52, "width": 67, "height": 30 }
 		},
+		"right hand": {
+			"right-hand": { "x": 6.82, "y": 1.25, "rotation": 91.96, "width": 32, "height": 32 }
+		},
 		"right lower leg": {
 			"right-lower-leg": { "x": 23.28, "y": -2.59, "rotation": 111.83, "width": 51, "height": 64 }
 		},
+		"right shoulder": {
+			"right-shoulder": { "x": 25.86, "y": 0.03, "rotation": 134.44, "width": 52, "height": 51 }
+		},
 		"right upper leg": {
 			"right-upper-leg": { "x": 23.03, "y": 0.25, "rotation": 101.13, "width": 44, "height": 70 }
 		},
 		"torso": {
 			"torso": { "x": 44.57, "y": -7.08, "rotation": -94.95, "width": 68, "height": 92 }
-		},
-		"neck": {
-			"neck": { "x": 9.42, "y": -3.66, "rotation": -100.15, "width": 34, "height": 28 }
-		},
-		"head": {
-			"head": { "x": 53.94, "y": -5.75, "rotation": -86.9, "width": 121, "height": 132 }
-		},
-		"eyes": {
-			"eyes": { "x": 28.94, "y": -32.92, "rotation": -86.9, "width": 34, "height": 27 },
-			"eyes-closed": { "x": 28.77, "y": -32.86, "rotation": -86.9, "width": 34, "height": 27 }
-		},
-		"right shoulder": {
-			"right-shoulder": { "x": 25.86, "y": 0.03, "rotation": 134.44, "width": 52, "height": 51 }
-		},
-		"right arm": {
-			"right-arm": { "x": 18.34, "y": -2.64, "rotation": 94.32, "width": 21, "height": 45 }
-		},
-		"right hand": {
-			"right-hand": { "x": 6.82, "y": 1.25, "rotation": 91.96, "width": 32, "height": 32 }
 		}
 	}
 },
+"events": {
+	"behind": {},
+	"headAttach": {},
+	"headPop": {}
+},
 "animations": {
-	"walk": {
+	"drawOrder": {
 		"bones": {
-			"left upper leg": {
+			"head": {
 				"rotate": [
-					{ "time": 0, "angle": -26.55 },
-					{ "time": 0.1333, "angle": -8.78 },
-					{ "time": 0.2666, "angle": 9.51 },
-					{ "time": 0.4, "angle": 30.74 },
-					{ "time": 0.5333, "angle": 25.33 },
-					{ "time": 0.6666, "angle": 26.11 },
-					{ "time": 0.8, "angle": -7.7 },
-					{ "time": 0.9333, "angle": -21.19 },
-					{ "time": 1.0666, "angle": -26.55 }
+					{ "time": 0, "angle": 0 },
+					{ "time": 0.4827, "angle": -23.11 },
+					{ "time": 0.8965, "angle": -56.45 },
+					{ "time": 1.3103, "angle": 1.38 },
+					{ "time": 1.7931, "angle": 36.12 },
+					{ "time": 2.1379, "angle": 1.24 },
+					{ "time": 2.6206, "angle": -37.12 },
+					{ "time": 2.9666, "angle": 2.07 },
+					{ "time": 3.4666, "angle": 34.72 },
+					{ "time": 3.9, "angle": 359.99 }
 				],
 				"translate": [
-					{ "time": 0, "x": -3, "y": -2.25 },
-					{ "time": 0.4, "x": -2.18, "y": -2.25 },
-					{ "time": 1.0666, "x": -3, "y": -2.25 }
-				]
-			},
-			"right upper leg": {
-				"rotate": [
-					{ "time": 0, "angle": 42.45 },
-					{ "time": 0.1333, "angle": 52.1 },
-					{ "time": 0.2666, "angle": 5.96 },
-					{ "time": 0.5333, "angle": -16.93 },
-					{ "time": 0.6666, "angle": 1.89 },
 					{
-						"time": 0.8,
-						"angle": 28.06,
-						"curve": [ 0.462, 0.11, 1, 1 ]
+						"time": 0,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0.19, 0.4, 0.586, 0.75 ]
 					},
 					{
-						"time": 0.9333,
-						"angle": 58.68,
-						"curve": [ 0.5, 0.02, 1, 1 ]
+						"time": 0.2758,
+						"x": 57.88,
+						"y": -35.72,
+						"curve": [ 0.39, 0.54, 0.632, 0.72 ]
 					},
-					{ "time": 1.0666, "angle": 42.45 }
-				],
-				"translate": [
-					{ "time": 0, "x": 8.11, "y": -2.36 },
-					{ "time": 0.1333, "x": 10.03, "y": -2.56 },
-					{ "time": 0.4, "x": 2.76, "y": -2.97 },
-					{ "time": 0.5333, "x": 2.76, "y": -2.81 },
-					{ "time": 0.9333, "x": 8.67, "y": -2.54 },
-					{ "time": 1.0666, "x": 8.11, "y": -2.36 }
-				]
-			},
-			"left lower leg": {
-				"rotate": [
-					{ "time": 0, "angle": -10.21 },
-					{ "time": 0.1333, "angle": -55.64 },
-					{ "time": 0.2666, "angle": -68.12 },
-					{ "time": 0.5333, "angle": 5.11 },
-					{ "time": 0.6666, "angle": -28.29 },
-					{ "time": 0.8, "angle": 4.08 },
-					{ "time": 0.9333, "angle": 3.53 },
-					{ "time": 1.0666, "angle": -10.21 }
-				]
-			},
-			"left foot": {
-				"rotate": [
-					{ "time": 0, "angle": -3.69 },
-					{ "time": 0.1333, "angle": -10.42 },
-					{ "time": 0.2666, "angle": -17.14 },
-					{ "time": 0.4, "angle": -2.83 },
-					{ "time": 0.5333, "angle": -3.87 },
-					{ "time": 0.6666, "angle": 2.78 },
-					{ "time": 0.8, "angle": 1.68 },
-					{ "time": 0.9333, "angle": -8.54 },
-					{ "time": 1.0666, "angle": -3.69 }
-				]
-			},
-			"right shoulder": {
-				"rotate": [
 					{
-						"time": 0,
-						"angle": 20.89,
-						"curve": [ 0.264, 0, 0.75, 1 ]
+						"time": 0.4827,
+						"x": 87.26,
+						"y": -87.89,
+						"curve": [ 0.325, 0.23, 0.587, 0.36 ]
 					},
 					{
-						"time": 0.1333,
-						"angle": 3.72,
-						"curve": [ 0.272, 0, 0.841, 1 ]
+						"time": 0.6896,
+						"x": 28.89,
+						"y": -114.62,
+						"curve": [ 0.383, 0.23, 0.736, 0.55 ]
 					},
-					{ "time": 0.6666, "angle": -278.28 },
-					{ "time": 1.0666, "angle": 20.89 }
-				],
-				"translate": [
-					{ "time": 0, "x": -7.84, "y": 7.19 },
-					{ "time": 0.1333, "x": -6.36, "y": 6.42 },
-					{ "time": 0.6666, "x": -11.07, "y": 5.25 },
-					{ "time": 1.0666, "x": -7.84, "y": 7.19 }
-				]
-			},
-			"right arm": {
-				"rotate": [
 					{
-						"time": 0,
-						"angle": -4.02,
-						"curve": [ 0.267, 0, 0.804, 0.99 ]
+						"time": 0.8965,
+						"x": -76.58,
+						"y": -124.98,
+						"curve": [ 0.129, 0.21, 0.547, 0.64 ]
 					},
 					{
-						"time": 0.1333,
-						"angle": -13.99,
-						"curve": [ 0.341, 0, 1, 1 ]
+						"time": 1.1034,
+						"x": -154.37,
+						"y": -77.13,
+						"curve": [ 0.354, 0.48, 0.729, 0.9 ]
 					},
 					{
-						"time": 0.6666,
-						"angle": 36.54,
-						"curve": [ 0.307, 0, 0.787, 0.99 ]
+						"time": 1.3103,
+						"x": -181.02,
+						"y": 18.56,
+						"curve": [ 0.063, 0.15, 0.52, 0.62 ]
 					},
-					{ "time": 1.0666, "angle": -4.02 }
-				]
-			},
-			"right hand": {
-				"rotate": [
-					{ "time": 0, "angle": 22.92 },
-					{ "time": 0.4, "angle": -8.97 },
-					{ "time": 0.6666, "angle": 0.51 },
-					{ "time": 1.0666, "angle": 22.92 }
-				]
-			},
-			"left shoulder": {
-				"rotate": [
-					{ "time": 0, "angle": -1.47 },
-					{ "time": 0.1333, "angle": 13.6 },
-					{ "time": 0.6666, "angle": 280.74 },
-					{ "time": 1.0666, "angle": -1.47 }
-				],
-				"translate": [
-					{ "time": 0, "x": -1.76, "y": 0.56 },
-					{ "time": 0.6666, "x": -2.47, "y": 8.14 },
-					{ "time": 1.0666, "x": -1.76, "y": 0.56 }
-				]
-			},
-			"left hand": {
-				"rotate": [
 					{
-						"time": 0,
-						"angle": 11.58,
-						"curve": [ 0.169, 0.37, 0.632, 1.55 ]
+						"time": 1.5862,
+						"x": -150.38,
+						"y": 128.67,
+						"curve": [ 0.381, 0.54, 0.778, 1 ]
 					},
 					{
-						"time": 0.1333,
-						"angle": 28.13,
-						"curve": [ 0.692, 0, 0.692, 0.99 ]
+						"time": 1.7931,
+						"x": -112.08,
+						"y": 146.28,
+						"curve": [ 0.242, 0, 0.626, 0.45 ]
 					},
 					{
-						"time": 0.6666,
-						"angle": -27.42,
-						"curve": [ 0.117, 0.41, 0.738, 1.76 ]
+						"time": 1.931,
+						"x": -63.7,
+						"y": 111.22,
+						"curve": [ 0.398, 0.35, 0.786, 0.76 ]
 					},
-					{ "time": 0.8, "angle": -36.32 },
-					{ "time": 1.0666, "angle": 11.58 }
-				]
-			},
-			"left arm": {
-				"rotate": [
-					{ "time": 0, "angle": -8.27 },
-					{ "time": 0.1333, "angle": 18.43 },
-					{ "time": 0.6666, "angle": 0.88 },
-					{ "time": 1.0666, "angle": -8.27 }
-				]
-			},
-			"torso": {
-				"rotate": [
-					{ "time": 0, "angle": -10.28 },
 					{
-						"time": 0.1333,
-						"angle": -15.38,
-						"curve": [ 0.545, 0, 1, 1 ]
+						"time": 2.1379,
+						"x": -48.94,
+						"y": -1.55,
+						"curve": [ 0.188, 0.21, 0.575, 0.61 ]
 					},
 					{
-						"time": 0.4,
-						"angle": -9.78,
-						"curve": [ 0.58, 0.17, 1, 1 ]
+						"time": 2.3448,
+						"x": -91.69,
+						"y": -91.93,
+						"curve": [ 0.362, 0.51, 0.766, 1 ]
 					},
-					{ "time": 0.6666, "angle": -15.75 },
-					{ "time": 0.9333, "angle": -7.06 },
-					{ "time": 1.0666, "angle": -10.28 }
+					{
+						"time": 2.6206,
+						"x": -142.79,
+						"y": -126.83,
+						"curve": [ 0.227, 0.34, 0.593, 0.75 ]
+					},
+					{
+						"time": 2.7586,
+						"x": -176.7,
+						"y": -98.32,
+						"curve": [ 0.26, 0.4, 0.612, 0.71 ]
+					},
+					{
+						"time": 2.8965,
+						"x": -163.95,
+						"y": -24.04,
+						"curve": [ 0.338, 0.37, 0.676, 0.71 ]
+					},
+					{
+						"time": 2.9655,
+						"x": -150.17,
+						"y": 10.71,
+						"curve": [ 0.387, 0.61, 0.741, 1 ]
+					},
+					{
+						"time": 3.1034,
+						"x": -102.44,
+						"y": 45.92,
+						"curve": [ 0.31, 0.24, 0.648, 0.58 ]
+					},
+					{
+						"time": 3.2413,
+						"x": -53.99,
+						"y": 70.39,
+						"curve": [ 0.325, 0.29, 0.663, 0.63 ]
+					},
+					{
+						"time": 3.3793,
+						"x": 1.88,
+						"y": 55.54,
+						"curve": [ 0.387, 0.33, 0.769, 0.73 ]
+					},
+					{
+						"time": 3.5862,
+						"x": 34.26,
+						"y": 36.13,
+						"curve": [ 0.206, 0.28, 0.596, 0.67 ]
+					},
+					{
+						"time": 3.7931,
+						"x": 23.94,
+						"y": 1.01,
+						"curve": [ 0.373, 0.56, 0.759, 1 ]
+					},
+					{ "time": 4, "x": 0, "y": 0 }
 				],
-				"translate": [
-					{ "time": 0, "x": -3.67, "y": 1.68 },
-					{ "time": 0.1333, "x": -3.67, "y": 0.68 },
-					{ "time": 0.4, "x": -3.67, "y": 1.97 },
-					{ "time": 0.6666, "x": -3.67, "y": -0.14 },
-					{ "time": 1.0666, "x": -3.67, "y": 1.68 }
+				"scale": [
+					{ "time": 0.8275, "x": 1, "y": 1 },
+					{ "time": 1.3103, "x": 0.742, "y": 0.742 },
+					{ "time": 1.7931, "x": 1, "y": 1 },
+					{ "time": 2.1379, "x": 1.502, "y": 1.502 },
+					{ "time": 2.6206, "x": 1, "y": 1 },
+					{ "time": 2.9655, "x": 0.707, "y": 0.707 },
+					{ "time": 3.3793, "x": 1, "y": 1 }
+				]
+			}
+		},
+		"events": [
+			{ "time": 0, "name": "headPop", "string": "pop.wav" },
+			{ "time": 1.3103, "name": "behind" },
+			{ "time": 2.9655, "name": "behind" },
+			{ "time": 4, "name": "headAttach", "string": "attach.wav" }
+		],
+		"draworder": [
+			{
+				"time": 0.6206,
+				"offsets": [
+					{ "slot": "head", "offset": -12 },
+					{ "slot": "eyes", "offset": -12 }
 				]
 			},
-			"right foot": {
-				"rotate": [
-					{ "time": 0, "angle": -5.25 },
-					{ "time": 0.2666, "angle": -4.08 },
-					{ "time": 0.4, "angle": -6.45 },
-					{ "time": 0.5333, "angle": -5.39 },
-					{ "time": 0.8, "angle": -11.68 },
-					{ "time": 0.9333, "angle": 0.46 },
-					{ "time": 1.0666, "angle": -5.25 }
+			{
+				"time": 1.7931,
+				"offsets": [
+					{ "slot": "head", "offset": 3 },
+					{ "slot": "eyes", "offset": 3 }
 				]
 			},
-			"right lower leg": {
-				"rotate": [
-					{ "time": 0, "angle": -3.39 },
-					{ "time": 0.1333, "angle": -45.53 },
-					{ "time": 0.2666, "angle": -2.59 },
-					{ "time": 0.5333, "angle": -19.53 },
-					{ "time": 0.6666, "angle": -64.8 },
-					{
-						"time": 0.8,
-						"angle": -82.56,
-						"curve": [ 0.557, 0.18, 1, 1 ]
-					},
-					{ "time": 1.0666, "angle": -3.39 }
+			{
+				"time": 2.6206,
+				"offsets": [
+					{ "slot": "head", "offset": -12 },
+					{ "slot": "eyes", "offset": -12 }
 				]
 			},
-			"hip": {
-				"rotate": [
-					{ "time": 0, "angle": 0, "curve": "stepped" },
-					{ "time": 1.0666, "angle": 0 }
-				],
-				"translate": [
-					{ "time": 0, "x": 0, "y": 0 },
-					{
-						"time": 0.1333,
-						"x": 0,
-						"y": -7.61,
-						"curve": [ 0.272, 0.86, 1, 1 ]
-					},
-					{ "time": 0.4, "x": 0, "y": 8.7 },
-					{ "time": 0.5333, "x": 0, "y": -0.41 },
-					{
-						"time": 0.6666,
-						"x": 0,
-						"y": -7.05,
-						"curve": [ 0.235, 0.89, 1, 1 ]
-					},
-					{ "time": 0.8, "x": 0, "y": 2.92 },
-					{ "time": 0.9333, "x": 0, "y": 6.78 },
-					{ "time": 1.0666, "x": 0, "y": 0 }
-				]
-			},
-			"neck": {
-				"rotate": [
-					{ "time": 0, "angle": 3.6 },
-					{ "time": 0.1333, "angle": 17.49 },
-					{ "time": 0.2666, "angle": 6.1 },
-					{ "time": 0.4, "angle": 3.45 },
-					{ "time": 0.5333, "angle": 5.17 },
-					{ "time": 0.6666, "angle": 18.36 },
-					{ "time": 0.8, "angle": 6.09 },
-					{ "time": 0.9333, "angle": 2.28 },
-					{ "time": 1.0666, "angle": 3.6 }
-				]
-			},
-			"head": {
-				"rotate": [
-					{
-						"time": 0,
-						"angle": 3.6,
-						"curve": [ 0, 0, 0.704, 1.61 ]
-					},
-					{ "time": 0.1666, "angle": -0.2 },
-					{ "time": 0.2666, "angle": 6.1 },
-					{ "time": 0.4, "angle": 3.45 },
-					{
-						"time": 0.5333,
-						"angle": 5.17,
-						"curve": [ 0, 0, 0.704, 1.61 ]
-					},
-					{ "time": 0.7, "angle": 1.1 },
-					{ "time": 0.8, "angle": 6.09 },
-					{ "time": 0.9333, "angle": 2.28 },
-					{ "time": 1.0666, "angle": 3.6 }
-				]
-			}
-		}
+			{ "time": 3.5862 }
+		]
 	},
 	"jump": {
 		"bones": {
@@ -782,6 +719,284 @@
 				]
 			}
 		}
+	},
+	"walk": {
+		"bones": {
+			"left upper leg": {
+				"rotate": [
+					{ "time": 0, "angle": -26.55 },
+					{ "time": 0.1333, "angle": -8.78 },
+					{ "time": 0.2666, "angle": 9.51 },
+					{ "time": 0.4, "angle": 30.74 },
+					{ "time": 0.5333, "angle": 25.33 },
+					{ "time": 0.6666, "angle": 26.11 },
+					{ "time": 0.8, "angle": -7.7 },
+					{ "time": 0.9333, "angle": -21.19 },
+					{ "time": 1.0666, "angle": -26.55 }
+				],
+				"translate": [
+					{ "time": 0, "x": -3, "y": -2.25 },
+					{ "time": 0.4, "x": -2.18, "y": -2.25 },
+					{ "time": 1.0666, "x": -3, "y": -2.25 }
+				]
+			},
+			"right upper leg": {
+				"rotate": [
+					{ "time": 0, "angle": 42.45 },
+					{ "time": 0.1333, "angle": 52.1 },
+					{ "time": 0.2666, "angle": 5.96 },
+					{ "time": 0.5333, "angle": -16.93 },
+					{ "time": 0.6666, "angle": 1.89 },
+					{
+						"time": 0.8,
+						"angle": 28.06,
+						"curve": [ 0.462, 0.11, 1, 1 ]
+					},
+					{
+						"time": 0.9333,
+						"angle": 58.68,
+						"curve": [ 0.5, 0.02, 1, 1 ]
+					},
+					{ "time": 1.0666, "angle": 42.45 }
+				],
+				"translate": [
+					{ "time": 0, "x": 8.11, "y": -2.36 },
+					{ "time": 0.1333, "x": 10.03, "y": -2.56 },
+					{ "time": 0.4, "x": 2.76, "y": -2.97 },
+					{ "time": 0.5333, "x": 2.76, "y": -2.81 },
+					{ "time": 0.9333, "x": 8.67, "y": -2.54 },
+					{ "time": 1.0666, "x": 8.11, "y": -2.36 }
+				]
+			},
+			"left lower leg": {
+				"rotate": [
+					{ "time": 0, "angle": -10.21 },
+					{ "time": 0.1333, "angle": -55.64 },
+					{ "time": 0.2666, "angle": -68.12 },
+					{ "time": 0.5333, "angle": 5.11 },
+					{ "time": 0.6666, "angle": -28.29 },
+					{ "time": 0.8, "angle": 4.08 },
+					{ "time": 0.9333, "angle": 3.53 },
+					{ "time": 1.0666, "angle": -10.21 }
+				]
+			},
+			"left foot": {
+				"rotate": [
+					{ "time": 0, "angle": -3.69 },
+					{ "time": 0.1333, "angle": -10.42 },
+					{ "time": 0.2666, "angle": -17.14 },
+					{ "time": 0.4, "angle": -2.83 },
+					{ "time": 0.5333, "angle": -3.87 },
+					{ "time": 0.6666, "angle": 2.78 },
+					{ "time": 0.8, "angle": 1.68 },
+					{ "time": 0.9333, "angle": -8.54 },
+					{ "time": 1.0666, "angle": -3.69 }
+				]
+			},
+			"right shoulder": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 20.89,
+						"curve": [ 0.264, 0, 0.75, 1 ]
+					},
+					{
+						"time": 0.1333,
+						"angle": 3.72,
+						"curve": [ 0.272, 0, 0.841, 1 ]
+					},
+					{ "time": 0.6666, "angle": -278.28 },
+					{ "time": 1.0666, "angle": 20.89 }
+				],
+				"translate": [
+					{ "time": 0, "x": -7.84, "y": 7.19 },
+					{ "time": 0.1333, "x": -6.36, "y": 6.42 },
+					{ "time": 0.6666, "x": -11.07, "y": 5.25 },
+					{ "time": 1.0666, "x": -7.84, "y": 7.19 }
+				]
+			},
+			"right arm": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": -4.02,
+						"curve": [ 0.267, 0, 0.804, 0.99 ]
+					},
+					{
+						"time": 0.1333,
+						"angle": -13.99,
+						"curve": [ 0.341, 0, 1, 1 ]
+					},
+					{
+						"time": 0.6666,
+						"angle": 36.54,
+						"curve": [ 0.307, 0, 0.787, 0.99 ]
+					},
+					{ "time": 1.0666, "angle": -4.02 }
+				]
+			},
+			"right hand": {
+				"rotate": [
+					{ "time": 0, "angle": 22.92 },
+					{ "time": 0.4, "angle": -8.97 },
+					{ "time": 0.6666, "angle": 0.51 },
+					{ "time": 1.0666, "angle": 22.92 }
+				]
+			},
+			"left shoulder": {
+				"rotate": [
+					{ "time": 0, "angle": -1.47 },
+					{ "time": 0.1333, "angle": 13.6 },
+					{ "time": 0.6666, "angle": 280.74 },
+					{ "time": 1.0666, "angle": -1.47 }
+				],
+				"translate": [
+					{ "time": 0, "x": -1.76, "y": 0.56 },
+					{ "time": 0.6666, "x": -2.47, "y": 8.14 },
+					{ "time": 1.0666, "x": -1.76, "y": 0.56 }
+				]
+			},
+			"left hand": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 11.58,
+						"curve": [ 0.169, 0.37, 0.632, 1.55 ]
+					},
+					{
+						"time": 0.1333,
+						"angle": 28.13,
+						"curve": [ 0.692, 0, 0.692, 0.99 ]
+					},
+					{
+						"time": 0.6666,
+						"angle": -27.42,
+						"curve": [ 0.117, 0.41, 0.738, 1.76 ]
+					},
+					{ "time": 0.8, "angle": -36.32 },
+					{ "time": 1.0666, "angle": 11.58 }
+				]
+			},
+			"left arm": {
+				"rotate": [
+					{ "time": 0, "angle": -8.27 },
+					{ "time": 0.1333, "angle": 18.43 },
+					{ "time": 0.6666, "angle": 0.88 },
+					{ "time": 1.0666, "angle": -8.27 }
+				]
+			},
+			"torso": {
+				"rotate": [
+					{ "time": 0, "angle": -10.28 },
+					{
+						"time": 0.1333,
+						"angle": -15.38,
+						"curve": [ 0.545, 0, 1, 1 ]
+					},
+					{
+						"time": 0.4,
+						"angle": -9.78,
+						"curve": [ 0.58, 0.17, 1, 1 ]
+					},
+					{ "time": 0.6666, "angle": -15.75 },
+					{ "time": 0.9333, "angle": -7.06 },
+					{ "time": 1.0666, "angle": -10.28 }
+				],
+				"translate": [
+					{ "time": 0, "x": -3.67, "y": 1.68 },
+					{ "time": 0.1333, "x": -3.67, "y": 0.68 },
+					{ "time": 0.4, "x": -3.67, "y": 1.97 },
+					{ "time": 0.6666, "x": -3.67, "y": -0.14 },
+					{ "time": 1.0666, "x": -3.67, "y": 1.68 }
+				]
+			},
+			"right foot": {
+				"rotate": [
+					{ "time": 0, "angle": -5.25 },
+					{ "time": 0.2666, "angle": -4.08 },
+					{ "time": 0.4, "angle": -6.45 },
+					{ "time": 0.5333, "angle": -5.39 },
+					{ "time": 0.8, "angle": -11.68 },
+					{ "time": 0.9333, "angle": 0.46 },
+					{ "time": 1.0666, "angle": -5.25 }
+				]
+			},
+			"right lower leg": {
+				"rotate": [
+					{ "time": 0, "angle": -3.39 },
+					{ "time": 0.1333, "angle": -45.53 },
+					{ "time": 0.2666, "angle": -2.59 },
+					{ "time": 0.5333, "angle": -19.53 },
+					{ "time": 0.6666, "angle": -64.8 },
+					{
+						"time": 0.8,
+						"angle": -82.56,
+						"curve": [ 0.557, 0.18, 1, 1 ]
+					},
+					{ "time": 1.0666, "angle": -3.39 }
+				]
+			},
+			"hip": {
+				"rotate": [
+					{ "time": 0, "angle": 0, "curve": "stepped" },
+					{ "time": 1.0666, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 },
+					{
+						"time": 0.1333,
+						"x": 0,
+						"y": -7.61,
+						"curve": [ 0.272, 0.86, 1, 1 ]
+					},
+					{ "time": 0.4, "x": 0, "y": 8.7 },
+					{ "time": 0.5333, "x": 0, "y": -0.41 },
+					{
+						"time": 0.6666,
+						"x": 0,
+						"y": -7.05,
+						"curve": [ 0.235, 0.89, 1, 1 ]
+					},
+					{ "time": 0.8, "x": 0, "y": 2.92 },
+					{ "time": 0.9333, "x": 0, "y": 6.78 },
+					{ "time": 1.0666, "x": 0, "y": 0 }
+				]
+			},
+			"neck": {
+				"rotate": [
+					{ "time": 0, "angle": 3.6 },
+					{ "time": 0.1333, "angle": 17.49 },
+					{ "time": 0.2666, "angle": 6.1 },
+					{ "time": 0.4, "angle": 3.45 },
+					{ "time": 0.5333, "angle": 5.17 },
+					{ "time": 0.6666, "angle": 18.36 },
+					{ "time": 0.8, "angle": 6.09 },
+					{ "time": 0.9333, "angle": 2.28 },
+					{ "time": 1.0666, "angle": 3.6 }
+				]
+			},
+			"head": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 3.6,
+						"curve": [ 0, 0, 0.704, 1.61 ]
+					},
+					{ "time": 0.1666, "angle": -0.2 },
+					{ "time": 0.2666, "angle": 6.1 },
+					{ "time": 0.4, "angle": 3.45 },
+					{
+						"time": 0.5333,
+						"angle": 5.17,
+						"curve": [ 0, 0, 0.704, 1.61 ]
+					},
+					{ "time": 0.7, "angle": 1.1 },
+					{ "time": 0.8, "angle": 6.09 },
+					{ "time": 0.9333, "angle": 2.28 },
+					{ "time": 1.0666, "angle": 3.6 }
+				]
+			}
+		}
 	}
 }
 }

+ 4 - 1
spine-js/spine.js

@@ -694,7 +694,8 @@ spine.Skeleton.prototype = {
 };
 
 spine.AttachmentType = {
-	region: 0
+	region: 0,
+	boundingbox: 1
 };
 
 spine.RegionAttachment = function () {
@@ -1339,6 +1340,8 @@ spine.AtlasAttachmentLoader = function (atlas) {
 spine.AtlasAttachmentLoader.prototype = {
 	newAttachment: function (skin, type, name) {
 		switch (type) {
+		case spine.AttachmentType.boundingbox:
+			return null; // BOZO - Implement bounding boxes.
 		case spine.AttachmentType.region:
 			var region = this.atlas.findRegion(name);
 			if (!region) throw "Region not found in atlas: " + name + " (" + type + ")";

+ 2 - 0
spine-js/turbulenz/SpriteBatch.js

@@ -38,7 +38,9 @@ function SpriteBatch (draw2D) {
 SpriteBatch.prototype = {
 	count: 0,
 	texture: null,
+	blendMode: null,
 	begin: function (blendMode, sortMode) {
+		this.blendMode = blendMode;
 		this.draw2D.begin(blendMode, sortMode);
 	},
 	add: function (texture, x1, y1, x2, y2, x3, y3, x4, y4, r, g, b, a, u1, v1, u2, v2) {

+ 7 - 0
spine-js/turbulenz/index.html

@@ -132,6 +132,13 @@ function drawSkeleton (batch, skeleton) {
 		var attachment = slot.attachment;
 		if (!(attachment instanceof spine.RegionAttachment)) continue;
 		attachment.computeVertices(skeleton.x, skeleton.y, slot.bone, vertices);
+		
+		var blendMode = slot.data.additiveBlending ? draw2D.blend.additive : draw2D.blend.alpha;
+		if (batch.blendMode != blendMode) {
+			batch.end();
+			batch.begin(blendMode);
+		}
+
 		batch.add(
 			attachment.rendererObject.page.rendererObject,
 			vertices[0], vertices[1],

+ 492 - 277
spine-love/data/spineboy.json

@@ -3,21 +3,21 @@
 	{ "name": "root" },
 	{ "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 },
 	{ "name": "left upper leg", "parent": "hip", "length": 50.39, "x": 14.45, "y": 2.81, "rotation": -89.09 },
-	{ "name": "left lower leg", "parent": "left upper leg", "length": 56.45, "x": 51.78, "y": 3.46, "rotation": -16.65 },
-	{ "name": "left foot", "parent": "left lower leg", "length": 46.5, "x": 64.02, "y": -8.67, "rotation": 102.43 },
+	{ "name": "pelvis", "parent": "hip", "x": 1.41, "y": -6.57 },
 	{ "name": "right upper leg", "parent": "hip", "length": 45.76, "x": -18.27, "rotation": -101.13 },
-	{ "name": "right lower leg", "parent": "right upper leg", "length": 58.52, "x": 50.21, "y": 0.6, "rotation": -10.7 },
-	{ "name": "right foot", "parent": "right lower leg", "length": 45.45, "x": 64.88, "y": 0.04, "rotation": 110.3 },
 	{ "name": "torso", "parent": "hip", "length": 85.82, "x": -6.42, "y": 1.97, "rotation": 94.95 },
+	{ "name": "left lower leg", "parent": "left upper leg", "length": 56.45, "x": 51.78, "y": 3.46, "rotation": -16.65 },
+	{ "name": "left shoulder", "parent": "torso", "length": 44.19, "x": 78.96, "y": -15.75, "rotation": -156.96 },
 	{ "name": "neck", "parent": "torso", "length": 18.38, "x": 83.64, "y": -1.78, "rotation": 0.9 },
-	{ "name": "head", "parent": "neck", "length": 68.28, "x": 19.09, "y": 6.97, "rotation": -8.94 },
+	{ "name": "right lower leg", "parent": "right upper leg", "length": 58.52, "x": 50.21, "y": 0.6, "rotation": -10.7 },
 	{ "name": "right shoulder", "parent": "torso", "length": 49.95, "x": 81.9, "y": 6.79, "rotation": 130.6 },
-	{ "name": "right arm", "parent": "right shoulder", "length": 36.74, "x": 49.95, "y": -0.12, "rotation": 40.12 },
-	{ "name": "right hand", "parent": "right arm", "length": 15.32, "x": 36.9, "y": 0.34, "rotation": 2.35 },
-	{ "name": "left shoulder", "parent": "torso", "length": 44.19, "x": 78.96, "y": -15.75, "rotation": -156.96 },
+	{ "name": "head", "parent": "neck", "length": 68.28, "x": 19.09, "y": 6.97, "rotation": -8.94 },
 	{ "name": "left arm", "parent": "left shoulder", "length": 35.62, "x": 44.19, "y": -0.01, "rotation": 28.16 },
+	{ "name": "left foot", "parent": "left lower leg", "length": 46.5, "x": 64.02, "y": -8.67, "rotation": 102.43 },
+	{ "name": "right arm", "parent": "right shoulder", "length": 36.74, "x": 49.95, "y": -0.12, "rotation": 40.12 },
+	{ "name": "right foot", "parent": "right lower leg", "length": 45.45, "x": 64.88, "y": 0.04, "rotation": 110.3 },
 	{ "name": "left hand", "parent": "left arm", "length": 11.52, "x": 35.62, "y": 0.07, "rotation": 2.7 },
-	{ "name": "pelvis", "parent": "hip", "x": 1.41, "y": -6.57 }
+	{ "name": "right hand", "parent": "right arm", "length": 15.32, "x": 36.9, "y": 0.34, "rotation": 2.35 }
 ],
 "slots": [
 	{ "name": "left shoulder", "bone": "left shoulder", "attachment": "left-shoulder" },
@@ -34,344 +34,281 @@
 	{ "name": "neck", "bone": "neck", "attachment": "neck" },
 	{ "name": "head", "bone": "head", "attachment": "head" },
 	{ "name": "eyes", "bone": "head", "attachment": "eyes" },
-	{ "name": "right shoulder", "bone": "right shoulder", "attachment": "right-shoulder" },
+	{ "name": "right shoulder", "bone": "right shoulder", "attachment": "right-shoulder", "additive": true },
 	{ "name": "right arm", "bone": "right arm", "attachment": "right-arm" },
-	{ "name": "right hand", "bone": "right hand", "attachment": "right-hand" }
+	{ "name": "right hand", "bone": "right hand", "attachment": "right-hand" },
+	{ "name": "bb-head", "bone": "head", "attachment": "bb-head" }
 ],
 "skins": {
 	"default": {
-		"left shoulder": {
-			"left-shoulder": { "x": 23.74, "y": 0.11, "rotation": 62.01, "width": 34, "height": 53 }
+		"bb-head": {
+			"bb-head": {
+				"type": "boundingbox",
+				"vertices": [
+					55.69696,
+					-44.60648,
+					8.2226715,
+					-47.609646,
+					-11.244263,
+					-32.942703,
+					-0.05206299,
+					35.835804,
+					61.018433,
+					43.227512,
+					90.35846,
+					-16.054127,
+					115.41275,
+					-32.817406,
+					78.29431,
+					-56.05409
+				]
+			}
+		},
+		"eyes": {
+			"eyes": { "x": 28.94, "y": -32.92, "rotation": -86.9, "width": 34, "height": 27 },
+			"eyes-closed": { "x": 28.77, "y": -32.86, "rotation": -86.9, "width": 34, "height": 27 }
+		},
+		"head": {
+			"head": { "x": 53.94, "y": -5.75, "rotation": -86.9, "width": 121, "height": 132 }
 		},
 		"left arm": {
 			"left-arm": { "x": 15.11, "y": -0.44, "rotation": 33.84, "width": 35, "height": 29 }
 		},
-		"left hand": {
-			"left-hand": { "x": 0.75, "y": 1.86, "rotation": 31.14, "width": 35, "height": 38 }
-		},
 		"left foot": {
 			"left-foot": { "x": 24.35, "y": 8.88, "rotation": 3.32, "width": 65, "height": 30 }
 		},
+		"left hand": {
+			"left-hand": { "x": 0.75, "y": 1.86, "rotation": 31.14, "width": 35, "height": 38 }
+		},
 		"left lower leg": {
 			"left-lower-leg": { "x": 24.55, "y": -1.92, "rotation": 105.75, "width": 49, "height": 64 }
 		},
+		"left shoulder": {
+			"left-shoulder": { "x": 23.74, "y": 0.11, "rotation": 62.01, "width": 34, "height": 53 }
+		},
 		"left upper leg": {
 			"left-upper-leg": { "x": 26.12, "y": -1.85, "rotation": 89.09, "width": 33, "height": 67 }
 		},
+		"neck": {
+			"neck": { "x": 9.42, "y": -3.66, "rotation": -100.15, "width": 34, "height": 28 }
+		},
 		"pelvis": {
 			"pelvis": { "x": -4.83, "y": 10.62, "width": 63, "height": 47 }
 		},
+		"right arm": {
+			"right-arm": { "x": 18.34, "y": -2.64, "rotation": 94.32, "width": 21, "height": 45 }
+		},
 		"right foot": {
 			"right-foot": { "x": 19.02, "y": 8.47, "rotation": 1.52, "width": 67, "height": 30 }
 		},
+		"right hand": {
+			"right-hand": { "x": 6.82, "y": 1.25, "rotation": 91.96, "width": 32, "height": 32 }
+		},
 		"right lower leg": {
 			"right-lower-leg": { "x": 23.28, "y": -2.59, "rotation": 111.83, "width": 51, "height": 64 }
 		},
+		"right shoulder": {
+			"right-shoulder": { "x": 25.86, "y": 0.03, "rotation": 134.44, "width": 52, "height": 51 }
+		},
 		"right upper leg": {
 			"right-upper-leg": { "x": 23.03, "y": 0.25, "rotation": 101.13, "width": 44, "height": 70 }
 		},
 		"torso": {
 			"torso": { "x": 44.57, "y": -7.08, "rotation": -94.95, "width": 68, "height": 92 }
-		},
-		"neck": {
-			"neck": { "x": 9.42, "y": -3.66, "rotation": -100.15, "width": 34, "height": 28 }
-		},
-		"head": {
-			"head": { "x": 53.94, "y": -5.75, "rotation": -86.9, "width": 121, "height": 132 }
-		},
-		"eyes": {
-			"eyes": { "x": 28.94, "y": -32.92, "rotation": -86.9, "width": 34, "height": 27 },
-			"eyes-closed": { "x": 28.77, "y": -32.86, "rotation": -86.9, "width": 34, "height": 27 }
-		},
-		"right shoulder": {
-			"right-shoulder": { "x": 25.86, "y": 0.03, "rotation": 134.44, "width": 52, "height": 51 }
-		},
-		"right arm": {
-			"right-arm": { "x": 18.34, "y": -2.64, "rotation": 94.32, "width": 21, "height": 45 }
-		},
-		"right hand": {
-			"right-hand": { "x": 6.82, "y": 1.25, "rotation": 91.96, "width": 32, "height": 32 }
 		}
 	}
 },
+"events": {
+	"behind": {},
+	"headAttach": {},
+	"headPop": {}
+},
 "animations": {
-	"walk": {
+	"drawOrder": {
 		"bones": {
-			"left upper leg": {
+			"head": {
 				"rotate": [
-					{ "time": 0, "angle": -26.55 },
-					{ "time": 0.1333, "angle": -8.78 },
-					{ "time": 0.2666, "angle": 9.51 },
-					{ "time": 0.4, "angle": 30.74 },
-					{ "time": 0.5333, "angle": 25.33 },
-					{ "time": 0.6666, "angle": 26.11 },
-					{ "time": 0.8, "angle": -7.7 },
-					{ "time": 0.9333, "angle": -21.19 },
-					{ "time": 1.0666, "angle": -26.55 }
+					{ "time": 0, "angle": 0 },
+					{ "time": 0.4827, "angle": -23.11 },
+					{ "time": 0.8965, "angle": -56.45 },
+					{ "time": 1.3103, "angle": 1.38 },
+					{ "time": 1.7931, "angle": 36.12 },
+					{ "time": 2.1379, "angle": 1.24 },
+					{ "time": 2.6206, "angle": -37.12 },
+					{ "time": 2.9666, "angle": 2.07 },
+					{ "time": 3.4666, "angle": 34.72 },
+					{ "time": 3.9, "angle": 359.99 }
 				],
 				"translate": [
-					{ "time": 0, "x": -3, "y": -2.25 },
-					{ "time": 0.4, "x": -2.18, "y": -2.25 },
-					{ "time": 1.0666, "x": -3, "y": -2.25 }
-				]
-			},
-			"right upper leg": {
-				"rotate": [
-					{ "time": 0, "angle": 42.45 },
-					{ "time": 0.1333, "angle": 52.1 },
-					{ "time": 0.2666, "angle": 5.96 },
-					{ "time": 0.5333, "angle": -16.93 },
-					{ "time": 0.6666, "angle": 1.89 },
 					{
-						"time": 0.8,
-						"angle": 28.06,
-						"curve": [ 0.462, 0.11, 1, 1 ]
+						"time": 0,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0.19, 0.4, 0.586, 0.75 ]
 					},
 					{
-						"time": 0.9333,
-						"angle": 58.68,
-						"curve": [ 0.5, 0.02, 1, 1 ]
+						"time": 0.2758,
+						"x": 57.88,
+						"y": -35.72,
+						"curve": [ 0.39, 0.54, 0.632, 0.72 ]
 					},
-					{ "time": 1.0666, "angle": 42.45 }
-				],
-				"translate": [
-					{ "time": 0, "x": 8.11, "y": -2.36 },
-					{ "time": 0.1333, "x": 10.03, "y": -2.56 },
-					{ "time": 0.4, "x": 2.76, "y": -2.97 },
-					{ "time": 0.5333, "x": 2.76, "y": -2.81 },
-					{ "time": 0.9333, "x": 8.67, "y": -2.54 },
-					{ "time": 1.0666, "x": 8.11, "y": -2.36 }
-				]
-			},
-			"left lower leg": {
-				"rotate": [
-					{ "time": 0, "angle": -10.21 },
-					{ "time": 0.1333, "angle": -55.64 },
-					{ "time": 0.2666, "angle": -68.12 },
-					{ "time": 0.5333, "angle": 5.11 },
-					{ "time": 0.6666, "angle": -28.29 },
-					{ "time": 0.8, "angle": 4.08 },
-					{ "time": 0.9333, "angle": 3.53 },
-					{ "time": 1.0666, "angle": -10.21 }
-				]
-			},
-			"left foot": {
-				"rotate": [
-					{ "time": 0, "angle": -3.69 },
-					{ "time": 0.1333, "angle": -10.42 },
-					{ "time": 0.2666, "angle": -17.14 },
-					{ "time": 0.4, "angle": -2.83 },
-					{ "time": 0.5333, "angle": -3.87 },
-					{ "time": 0.6666, "angle": 2.78 },
-					{ "time": 0.8, "angle": 1.68 },
-					{ "time": 0.9333, "angle": -8.54 },
-					{ "time": 1.0666, "angle": -3.69 }
-				]
-			},
-			"right shoulder": {
-				"rotate": [
 					{
-						"time": 0,
-						"angle": 20.89,
-						"curve": [ 0.264, 0, 0.75, 1 ]
+						"time": 0.4827,
+						"x": 87.26,
+						"y": -87.89,
+						"curve": [ 0.325, 0.23, 0.587, 0.36 ]
 					},
 					{
-						"time": 0.1333,
-						"angle": 3.72,
-						"curve": [ 0.272, 0, 0.841, 1 ]
+						"time": 0.6896,
+						"x": 28.89,
+						"y": -114.62,
+						"curve": [ 0.383, 0.23, 0.736, 0.55 ]
 					},
-					{ "time": 0.6666, "angle": -278.28 },
-					{ "time": 1.0666, "angle": 20.89 }
-				],
-				"translate": [
-					{ "time": 0, "x": -7.84, "y": 7.19 },
-					{ "time": 0.1333, "x": -6.36, "y": 6.42 },
-					{ "time": 0.6666, "x": -11.07, "y": 5.25 },
-					{ "time": 1.0666, "x": -7.84, "y": 7.19 }
-				]
-			},
-			"right arm": {
-				"rotate": [
 					{
-						"time": 0,
-						"angle": -4.02,
-						"curve": [ 0.267, 0, 0.804, 0.99 ]
+						"time": 0.8965,
+						"x": -76.58,
+						"y": -124.98,
+						"curve": [ 0.129, 0.21, 0.547, 0.64 ]
 					},
 					{
-						"time": 0.1333,
-						"angle": -13.99,
-						"curve": [ 0.341, 0, 1, 1 ]
+						"time": 1.1034,
+						"x": -154.37,
+						"y": -77.13,
+						"curve": [ 0.354, 0.48, 0.729, 0.9 ]
 					},
 					{
-						"time": 0.6666,
-						"angle": 36.54,
-						"curve": [ 0.307, 0, 0.787, 0.99 ]
+						"time": 1.3103,
+						"x": -181.02,
+						"y": 18.56,
+						"curve": [ 0.063, 0.15, 0.52, 0.62 ]
 					},
-					{ "time": 1.0666, "angle": -4.02 }
-				]
-			},
-			"right hand": {
-				"rotate": [
-					{ "time": 0, "angle": 22.92 },
-					{ "time": 0.4, "angle": -8.97 },
-					{ "time": 0.6666, "angle": 0.51 },
-					{ "time": 1.0666, "angle": 22.92 }
-				]
-			},
-			"left shoulder": {
-				"rotate": [
-					{ "time": 0, "angle": -1.47 },
-					{ "time": 0.1333, "angle": 13.6 },
-					{ "time": 0.6666, "angle": 280.74 },
-					{ "time": 1.0666, "angle": -1.47 }
-				],
-				"translate": [
-					{ "time": 0, "x": -1.76, "y": 0.56 },
-					{ "time": 0.6666, "x": -2.47, "y": 8.14 },
-					{ "time": 1.0666, "x": -1.76, "y": 0.56 }
-				]
-			},
-			"left hand": {
-				"rotate": [
 					{
-						"time": 0,
-						"angle": 11.58,
-						"curve": [ 0.169, 0.37, 0.632, 1.55 ]
+						"time": 1.5862,
+						"x": -150.38,
+						"y": 128.67,
+						"curve": [ 0.381, 0.54, 0.778, 1 ]
 					},
 					{
-						"time": 0.1333,
-						"angle": 28.13,
-						"curve": [ 0.692, 0, 0.692, 0.99 ]
+						"time": 1.7931,
+						"x": -112.08,
+						"y": 146.28,
+						"curve": [ 0.242, 0, 0.626, 0.45 ]
 					},
 					{
-						"time": 0.6666,
-						"angle": -27.42,
-						"curve": [ 0.117, 0.41, 0.738, 1.76 ]
+						"time": 1.931,
+						"x": -63.7,
+						"y": 111.22,
+						"curve": [ 0.398, 0.35, 0.786, 0.76 ]
 					},
-					{ "time": 0.8, "angle": -36.32 },
-					{ "time": 1.0666, "angle": 11.58 }
-				]
-			},
-			"left arm": {
-				"rotate": [
-					{ "time": 0, "angle": -8.27 },
-					{ "time": 0.1333, "angle": 18.43 },
-					{ "time": 0.6666, "angle": 0.88 },
-					{ "time": 1.0666, "angle": -8.27 }
-				]
-			},
-			"torso": {
-				"rotate": [
-					{ "time": 0, "angle": -10.28 },
 					{
-						"time": 0.1333,
-						"angle": -15.38,
-						"curve": [ 0.545, 0, 1, 1 ]
+						"time": 2.1379,
+						"x": -48.94,
+						"y": -1.55,
+						"curve": [ 0.188, 0.21, 0.575, 0.61 ]
 					},
 					{
-						"time": 0.4,
-						"angle": -9.78,
-						"curve": [ 0.58, 0.17, 1, 1 ]
+						"time": 2.3448,
+						"x": -91.69,
+						"y": -91.93,
+						"curve": [ 0.362, 0.51, 0.766, 1 ]
 					},
-					{ "time": 0.6666, "angle": -15.75 },
-					{ "time": 0.9333, "angle": -7.06 },
-					{ "time": 1.0666, "angle": -10.28 }
+					{
+						"time": 2.6206,
+						"x": -142.79,
+						"y": -126.83,
+						"curve": [ 0.227, 0.34, 0.593, 0.75 ]
+					},
+					{
+						"time": 2.7586,
+						"x": -176.7,
+						"y": -98.32,
+						"curve": [ 0.26, 0.4, 0.612, 0.71 ]
+					},
+					{
+						"time": 2.8965,
+						"x": -163.95,
+						"y": -24.04,
+						"curve": [ 0.338, 0.37, 0.676, 0.71 ]
+					},
+					{
+						"time": 2.9655,
+						"x": -150.17,
+						"y": 10.71,
+						"curve": [ 0.387, 0.61, 0.741, 1 ]
+					},
+					{
+						"time": 3.1034,
+						"x": -102.44,
+						"y": 45.92,
+						"curve": [ 0.31, 0.24, 0.648, 0.58 ]
+					},
+					{
+						"time": 3.2413,
+						"x": -53.99,
+						"y": 70.39,
+						"curve": [ 0.325, 0.29, 0.663, 0.63 ]
+					},
+					{
+						"time": 3.3793,
+						"x": 1.88,
+						"y": 55.54,
+						"curve": [ 0.387, 0.33, 0.769, 0.73 ]
+					},
+					{
+						"time": 3.5862,
+						"x": 34.26,
+						"y": 36.13,
+						"curve": [ 0.206, 0.28, 0.596, 0.67 ]
+					},
+					{
+						"time": 3.7931,
+						"x": 23.94,
+						"y": 1.01,
+						"curve": [ 0.373, 0.56, 0.759, 1 ]
+					},
+					{ "time": 4, "x": 0, "y": 0 }
 				],
-				"translate": [
-					{ "time": 0, "x": -3.67, "y": 1.68 },
-					{ "time": 0.1333, "x": -3.67, "y": 0.68 },
-					{ "time": 0.4, "x": -3.67, "y": 1.97 },
-					{ "time": 0.6666, "x": -3.67, "y": -0.14 },
-					{ "time": 1.0666, "x": -3.67, "y": 1.68 }
+				"scale": [
+					{ "time": 0.8275, "x": 1, "y": 1 },
+					{ "time": 1.3103, "x": 0.742, "y": 0.742 },
+					{ "time": 1.7931, "x": 1, "y": 1 },
+					{ "time": 2.1379, "x": 1.502, "y": 1.502 },
+					{ "time": 2.6206, "x": 1, "y": 1 },
+					{ "time": 2.9655, "x": 0.707, "y": 0.707 },
+					{ "time": 3.3793, "x": 1, "y": 1 }
+				]
+			}
+		},
+		"events": [
+			{ "time": 0, "name": "headPop", "string": "pop.wav" },
+			{ "time": 1.3103, "name": "behind" },
+			{ "time": 2.9655, "name": "behind" },
+			{ "time": 4, "name": "headAttach", "string": "attach.wav" }
+		],
+		"draworder": [
+			{
+				"time": 0.6206,
+				"offsets": [
+					{ "slot": "head", "offset": -12 },
+					{ "slot": "eyes", "offset": -12 }
 				]
 			},
-			"right foot": {
-				"rotate": [
-					{ "time": 0, "angle": -5.25 },
-					{ "time": 0.2666, "angle": -4.08 },
-					{ "time": 0.4, "angle": -6.45 },
-					{ "time": 0.5333, "angle": -5.39 },
-					{ "time": 0.8, "angle": -11.68 },
-					{ "time": 0.9333, "angle": 0.46 },
-					{ "time": 1.0666, "angle": -5.25 }
+			{
+				"time": 1.7931,
+				"offsets": [
+					{ "slot": "head", "offset": 3 },
+					{ "slot": "eyes", "offset": 3 }
 				]
 			},
-			"right lower leg": {
-				"rotate": [
-					{ "time": 0, "angle": -3.39 },
-					{ "time": 0.1333, "angle": -45.53 },
-					{ "time": 0.2666, "angle": -2.59 },
-					{ "time": 0.5333, "angle": -19.53 },
-					{ "time": 0.6666, "angle": -64.8 },
-					{
-						"time": 0.8,
-						"angle": -82.56,
-						"curve": [ 0.557, 0.18, 1, 1 ]
-					},
-					{ "time": 1.0666, "angle": -3.39 }
+			{
+				"time": 2.6206,
+				"offsets": [
+					{ "slot": "head", "offset": -12 },
+					{ "slot": "eyes", "offset": -12 }
 				]
 			},
-			"hip": {
-				"rotate": [
-					{ "time": 0, "angle": 0, "curve": "stepped" },
-					{ "time": 1.0666, "angle": 0 }
-				],
-				"translate": [
-					{ "time": 0, "x": 0, "y": 0 },
-					{
-						"time": 0.1333,
-						"x": 0,
-						"y": -7.61,
-						"curve": [ 0.272, 0.86, 1, 1 ]
-					},
-					{ "time": 0.4, "x": 0, "y": 8.7 },
-					{ "time": 0.5333, "x": 0, "y": -0.41 },
-					{
-						"time": 0.6666,
-						"x": 0,
-						"y": -7.05,
-						"curve": [ 0.235, 0.89, 1, 1 ]
-					},
-					{ "time": 0.8, "x": 0, "y": 2.92 },
-					{ "time": 0.9333, "x": 0, "y": 6.78 },
-					{ "time": 1.0666, "x": 0, "y": 0 }
-				]
-			},
-			"neck": {
-				"rotate": [
-					{ "time": 0, "angle": 3.6 },
-					{ "time": 0.1333, "angle": 17.49 },
-					{ "time": 0.2666, "angle": 6.1 },
-					{ "time": 0.4, "angle": 3.45 },
-					{ "time": 0.5333, "angle": 5.17 },
-					{ "time": 0.6666, "angle": 18.36 },
-					{ "time": 0.8, "angle": 6.09 },
-					{ "time": 0.9333, "angle": 2.28 },
-					{ "time": 1.0666, "angle": 3.6 }
-				]
-			},
-			"head": {
-				"rotate": [
-					{
-						"time": 0,
-						"angle": 3.6,
-						"curve": [ 0, 0, 0.704, 1.61 ]
-					},
-					{ "time": 0.1666, "angle": -0.2 },
-					{ "time": 0.2666, "angle": 6.1 },
-					{ "time": 0.4, "angle": 3.45 },
-					{
-						"time": 0.5333,
-						"angle": 5.17,
-						"curve": [ 0, 0, 0.704, 1.61 ]
-					},
-					{ "time": 0.7, "angle": 1.1 },
-					{ "time": 0.8, "angle": 6.09 },
-					{ "time": 0.9333, "angle": 2.28 },
-					{ "time": 1.0666, "angle": 3.6 }
-				]
-			}
-		}
+			{ "time": 3.5862 }
+		]
 	},
 	"jump": {
 		"bones": {
@@ -782,6 +719,284 @@
 				]
 			}
 		}
+	},
+	"walk": {
+		"bones": {
+			"left upper leg": {
+				"rotate": [
+					{ "time": 0, "angle": -26.55 },
+					{ "time": 0.1333, "angle": -8.78 },
+					{ "time": 0.2666, "angle": 9.51 },
+					{ "time": 0.4, "angle": 30.74 },
+					{ "time": 0.5333, "angle": 25.33 },
+					{ "time": 0.6666, "angle": 26.11 },
+					{ "time": 0.8, "angle": -7.7 },
+					{ "time": 0.9333, "angle": -21.19 },
+					{ "time": 1.0666, "angle": -26.55 }
+				],
+				"translate": [
+					{ "time": 0, "x": -3, "y": -2.25 },
+					{ "time": 0.4, "x": -2.18, "y": -2.25 },
+					{ "time": 1.0666, "x": -3, "y": -2.25 }
+				]
+			},
+			"right upper leg": {
+				"rotate": [
+					{ "time": 0, "angle": 42.45 },
+					{ "time": 0.1333, "angle": 52.1 },
+					{ "time": 0.2666, "angle": 5.96 },
+					{ "time": 0.5333, "angle": -16.93 },
+					{ "time": 0.6666, "angle": 1.89 },
+					{
+						"time": 0.8,
+						"angle": 28.06,
+						"curve": [ 0.462, 0.11, 1, 1 ]
+					},
+					{
+						"time": 0.9333,
+						"angle": 58.68,
+						"curve": [ 0.5, 0.02, 1, 1 ]
+					},
+					{ "time": 1.0666, "angle": 42.45 }
+				],
+				"translate": [
+					{ "time": 0, "x": 8.11, "y": -2.36 },
+					{ "time": 0.1333, "x": 10.03, "y": -2.56 },
+					{ "time": 0.4, "x": 2.76, "y": -2.97 },
+					{ "time": 0.5333, "x": 2.76, "y": -2.81 },
+					{ "time": 0.9333, "x": 8.67, "y": -2.54 },
+					{ "time": 1.0666, "x": 8.11, "y": -2.36 }
+				]
+			},
+			"left lower leg": {
+				"rotate": [
+					{ "time": 0, "angle": -10.21 },
+					{ "time": 0.1333, "angle": -55.64 },
+					{ "time": 0.2666, "angle": -68.12 },
+					{ "time": 0.5333, "angle": 5.11 },
+					{ "time": 0.6666, "angle": -28.29 },
+					{ "time": 0.8, "angle": 4.08 },
+					{ "time": 0.9333, "angle": 3.53 },
+					{ "time": 1.0666, "angle": -10.21 }
+				]
+			},
+			"left foot": {
+				"rotate": [
+					{ "time": 0, "angle": -3.69 },
+					{ "time": 0.1333, "angle": -10.42 },
+					{ "time": 0.2666, "angle": -17.14 },
+					{ "time": 0.4, "angle": -2.83 },
+					{ "time": 0.5333, "angle": -3.87 },
+					{ "time": 0.6666, "angle": 2.78 },
+					{ "time": 0.8, "angle": 1.68 },
+					{ "time": 0.9333, "angle": -8.54 },
+					{ "time": 1.0666, "angle": -3.69 }
+				]
+			},
+			"right shoulder": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 20.89,
+						"curve": [ 0.264, 0, 0.75, 1 ]
+					},
+					{
+						"time": 0.1333,
+						"angle": 3.72,
+						"curve": [ 0.272, 0, 0.841, 1 ]
+					},
+					{ "time": 0.6666, "angle": -278.28 },
+					{ "time": 1.0666, "angle": 20.89 }
+				],
+				"translate": [
+					{ "time": 0, "x": -7.84, "y": 7.19 },
+					{ "time": 0.1333, "x": -6.36, "y": 6.42 },
+					{ "time": 0.6666, "x": -11.07, "y": 5.25 },
+					{ "time": 1.0666, "x": -7.84, "y": 7.19 }
+				]
+			},
+			"right arm": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": -4.02,
+						"curve": [ 0.267, 0, 0.804, 0.99 ]
+					},
+					{
+						"time": 0.1333,
+						"angle": -13.99,
+						"curve": [ 0.341, 0, 1, 1 ]
+					},
+					{
+						"time": 0.6666,
+						"angle": 36.54,
+						"curve": [ 0.307, 0, 0.787, 0.99 ]
+					},
+					{ "time": 1.0666, "angle": -4.02 }
+				]
+			},
+			"right hand": {
+				"rotate": [
+					{ "time": 0, "angle": 22.92 },
+					{ "time": 0.4, "angle": -8.97 },
+					{ "time": 0.6666, "angle": 0.51 },
+					{ "time": 1.0666, "angle": 22.92 }
+				]
+			},
+			"left shoulder": {
+				"rotate": [
+					{ "time": 0, "angle": -1.47 },
+					{ "time": 0.1333, "angle": 13.6 },
+					{ "time": 0.6666, "angle": 280.74 },
+					{ "time": 1.0666, "angle": -1.47 }
+				],
+				"translate": [
+					{ "time": 0, "x": -1.76, "y": 0.56 },
+					{ "time": 0.6666, "x": -2.47, "y": 8.14 },
+					{ "time": 1.0666, "x": -1.76, "y": 0.56 }
+				]
+			},
+			"left hand": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 11.58,
+						"curve": [ 0.169, 0.37, 0.632, 1.55 ]
+					},
+					{
+						"time": 0.1333,
+						"angle": 28.13,
+						"curve": [ 0.692, 0, 0.692, 0.99 ]
+					},
+					{
+						"time": 0.6666,
+						"angle": -27.42,
+						"curve": [ 0.117, 0.41, 0.738, 1.76 ]
+					},
+					{ "time": 0.8, "angle": -36.32 },
+					{ "time": 1.0666, "angle": 11.58 }
+				]
+			},
+			"left arm": {
+				"rotate": [
+					{ "time": 0, "angle": -8.27 },
+					{ "time": 0.1333, "angle": 18.43 },
+					{ "time": 0.6666, "angle": 0.88 },
+					{ "time": 1.0666, "angle": -8.27 }
+				]
+			},
+			"torso": {
+				"rotate": [
+					{ "time": 0, "angle": -10.28 },
+					{
+						"time": 0.1333,
+						"angle": -15.38,
+						"curve": [ 0.545, 0, 1, 1 ]
+					},
+					{
+						"time": 0.4,
+						"angle": -9.78,
+						"curve": [ 0.58, 0.17, 1, 1 ]
+					},
+					{ "time": 0.6666, "angle": -15.75 },
+					{ "time": 0.9333, "angle": -7.06 },
+					{ "time": 1.0666, "angle": -10.28 }
+				],
+				"translate": [
+					{ "time": 0, "x": -3.67, "y": 1.68 },
+					{ "time": 0.1333, "x": -3.67, "y": 0.68 },
+					{ "time": 0.4, "x": -3.67, "y": 1.97 },
+					{ "time": 0.6666, "x": -3.67, "y": -0.14 },
+					{ "time": 1.0666, "x": -3.67, "y": 1.68 }
+				]
+			},
+			"right foot": {
+				"rotate": [
+					{ "time": 0, "angle": -5.25 },
+					{ "time": 0.2666, "angle": -4.08 },
+					{ "time": 0.4, "angle": -6.45 },
+					{ "time": 0.5333, "angle": -5.39 },
+					{ "time": 0.8, "angle": -11.68 },
+					{ "time": 0.9333, "angle": 0.46 },
+					{ "time": 1.0666, "angle": -5.25 }
+				]
+			},
+			"right lower leg": {
+				"rotate": [
+					{ "time": 0, "angle": -3.39 },
+					{ "time": 0.1333, "angle": -45.53 },
+					{ "time": 0.2666, "angle": -2.59 },
+					{ "time": 0.5333, "angle": -19.53 },
+					{ "time": 0.6666, "angle": -64.8 },
+					{
+						"time": 0.8,
+						"angle": -82.56,
+						"curve": [ 0.557, 0.18, 1, 1 ]
+					},
+					{ "time": 1.0666, "angle": -3.39 }
+				]
+			},
+			"hip": {
+				"rotate": [
+					{ "time": 0, "angle": 0, "curve": "stepped" },
+					{ "time": 1.0666, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 },
+					{
+						"time": 0.1333,
+						"x": 0,
+						"y": -7.61,
+						"curve": [ 0.272, 0.86, 1, 1 ]
+					},
+					{ "time": 0.4, "x": 0, "y": 8.7 },
+					{ "time": 0.5333, "x": 0, "y": -0.41 },
+					{
+						"time": 0.6666,
+						"x": 0,
+						"y": -7.05,
+						"curve": [ 0.235, 0.89, 1, 1 ]
+					},
+					{ "time": 0.8, "x": 0, "y": 2.92 },
+					{ "time": 0.9333, "x": 0, "y": 6.78 },
+					{ "time": 1.0666, "x": 0, "y": 0 }
+				]
+			},
+			"neck": {
+				"rotate": [
+					{ "time": 0, "angle": 3.6 },
+					{ "time": 0.1333, "angle": 17.49 },
+					{ "time": 0.2666, "angle": 6.1 },
+					{ "time": 0.4, "angle": 3.45 },
+					{ "time": 0.5333, "angle": 5.17 },
+					{ "time": 0.6666, "angle": 18.36 },
+					{ "time": 0.8, "angle": 6.09 },
+					{ "time": 0.9333, "angle": 2.28 },
+					{ "time": 1.0666, "angle": 3.6 }
+				]
+			},
+			"head": {
+				"rotate": [
+					{
+						"time": 0,
+						"angle": 3.6,
+						"curve": [ 0, 0, 0.704, 1.61 ]
+					},
+					{ "time": 0.1666, "angle": -0.2 },
+					{ "time": 0.2666, "angle": 6.1 },
+					{ "time": 0.4, "angle": 3.45 },
+					{
+						"time": 0.5333,
+						"angle": 5.17,
+						"curve": [ 0, 0, 0.704, 1.61 ]
+					},
+					{ "time": 0.7, "angle": 1.1 },
+					{ "time": 0.8, "angle": 6.09 },
+					{ "time": 0.9333, "angle": 2.28 },
+					{ "time": 1.0666, "angle": 3.6 }
+				]
+			}
+		}
 	}
 }
 }

+ 5 - 0
spine-love/spine-love/spine.lua

@@ -110,6 +110,11 @@ function spine.Skeleton.new (skeletonData, group)
 						rotation = -rotation
 					end
 					love.graphics.setColor(self.r * slot.r, self.g * slot.g, self.b * slot.b, self.a * slot.a)
+					if slot.data.additiveBlending then
+						love.graphics.setBlendMode("additive")
+					else
+						love.graphics.setBlendMode("alpha")
+					end
 					love.graphics.draw(image, 
 						self.x + x, 
 						self.y - y,