Ver Fonte

Improved examples.

NathanSweet há 11 anos atrás
pai
commit
d8eac649ba

+ 3 - 4
spine-as3/spine-as3-example/.actionScriptProperties

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<actionScriptProperties analytics="false" mainApplicationPath="Main.as" projectUUID="98e371df-ee9f-4aef-8e4b-fdb975214a26" version="11">
-  <compiler additionalCompilerArguments="-locale en_US" advancedTelemetry="false" autoRSLOrdering="true" copyDependentFiles="true" fteInMXComponents="false" generateAccessible="false" htmlExpressInstall="true" htmlGenerate="true" htmlHistoryManagement="true" htmlPlayerVersionCheck="true" includeNetmonSwc="false" outputFolderPath="bin-debug" removeUnusedRSL="true" sourceFolderPath="src" strict="true" targetPlayerVersion="0.0.0" useApolloConfig="false" useDebugRSLSwfs="true" useFlashSDK="true" verifyDigests="true" warn="true">
+<actionScriptProperties analytics="false" mainApplicationPath="spine/Main.as" projectUUID="98e371df-ee9f-4aef-8e4b-fdb975214a26" version="10">
+  <compiler additionalCompilerArguments="-locale en_US" autoRSLOrdering="true" copyDependentFiles="true" fteInMXComponents="false" generateAccessible="false" htmlExpressInstall="true" htmlGenerate="true" htmlHistoryManagement="true" htmlPlayerVersionCheck="true" includeNetmonSwc="false" outputFolderPath="bin-debug" removeUnusedRSL="true" sourceFolderPath="src" strict="true" targetPlayerVersion="0.0.0" useApolloConfig="false" useDebugRSLSwfs="true" verifyDigests="true" warn="true">
     <compilerSourcePath/>
     <libraryPath defaultLinkType="0">
       <libraryPathEntry kind="4" path="">
@@ -33,10 +33,9 @@
     <sourceAttachmentPath/>
   </compiler>
   <applications>
-    <application path="Main.as"/>
+    <application path="spine/Main.as"/>
   </applications>
   <modules/>
-  <workers/>
   <buildCSSFiles/>
   <flashCatalyst validateFlashCatalystCompatibility="false"/>
 </actionScriptProperties>

+ 4 - 7
spine-as3/spine-as3-example/src/Main.as → spine-as3/spine-as3-example/src/spine/Main.as

@@ -28,20 +28,17 @@
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *****************************************************************************/
 
-package {
+package spine {
 
 import flash.display.Sprite;
 
-import spine.Event;
-import spine.SkeletonData;
-import spine.SkeletonJson;
 import spine.animation.AnimationStateData;
 import spine.atlas.Atlas;
 import spine.attachments.AtlasAttachmentLoader;
 import spine.flash.FlashTextureLoader;
 import spine.flash.SkeletonAnimation;
 
-[SWF(width = "640", height = "480", frameRate = "60", backgroundColor = "#dddddd")]
+[SWF(width = "800", height = "600", frameRate = "60", backgroundColor = "#dddddd")]
 public class Main extends Sprite {
 	[Embed(source = "spineboy.atlas", mimeType = "application/octet-stream")]
 	static public const SpineboyAtlas:Class;
@@ -66,8 +63,8 @@ public class Main extends Sprite {
 		stateData.setMixByName("jump", "jump", 0.2);
 
 		skeleton = new SkeletonAnimation(skeletonData, stateData);
-		skeleton.x = 320;
-		skeleton.y = 420;
+		skeleton.x = 400;
+		skeleton.y = 560;
 		
 		skeleton.state.onStart.add(function (trackIndex:int) : void {
 			trace(trackIndex + " start: " + skeleton.state.getCurrent(trackIndex));

+ 170 - 0
spine-libgdx/test/com/esotericsoftware/spine/IkTest.java

@@ -0,0 +1,170 @@
+/******************************************************************************
+ * Spine Runtimes Software License
+ * Version 2.1
+ * 
+ * Copyright (c) 2013, Esoteric Software
+ * All rights reserved.
+ * 
+ * You are granted a perpetual, non-exclusive, non-sublicensable and
+ * non-transferable license to install, execute and perform the Spine Runtimes
+ * Software (the "Software") solely for internal use. Without the written
+ * permission of Esoteric Software (typically granted by licensing Spine), 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 SOFTARE 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.
+ *****************************************************************************/
+
+package com.esotericsoftware.spine;
+
+import com.badlogic.gdx.ApplicationAdapter;
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
+import com.badlogic.gdx.graphics.GL20;
+import com.badlogic.gdx.graphics.OrthographicCamera;
+import com.badlogic.gdx.graphics.g2d.SpriteBatch;
+import com.badlogic.gdx.graphics.g2d.TextureAtlas;
+import com.badlogic.gdx.math.Vector2;
+
+public class IkTest extends ApplicationAdapter {
+	OrthographicCamera camera;
+	SpriteBatch batch;
+	SkeletonRenderer renderer;
+	SkeletonRendererDebug debugRenderer;
+
+	TextureAtlas atlas;
+	Skeleton skeleton;
+	AnimationState state;
+
+	public void create () {
+		camera = new OrthographicCamera();
+		batch = new SpriteBatch();
+		renderer = new SkeletonRenderer();
+		renderer.setPremultipliedAlpha(true);
+		debugRenderer = new SkeletonRendererDebug();
+		debugRenderer.setBoundingBoxes(false);
+		debugRenderer.setRegionAttachments(false);
+
+		atlas = new TextureAtlas(Gdx.files.internal("spineboy/spineboy.atlas"));
+		SkeletonJson json = new SkeletonJson(atlas); // This loads skeleton JSON data, which is stateless.
+		json.setScale(0.6f); // Load the skeleton at 60% the size it was in Spine.
+		SkeletonData skeletonData = json.readSkeletonData(Gdx.files.internal("spineboy/spineboy.json"));
+
+		skeleton = new Skeleton(skeletonData); // Skeleton holds skeleton state (bone positions, slot attachments, etc).
+		skeleton.setPosition(250, 20);
+
+		AnimationStateData stateData = new AnimationStateData(skeletonData); // Defines mixing (crossfading) between animations.
+		stateData.setMix("run", "jump", 0.2f);
+		stateData.setMix("jump", "run", 0.2f);
+
+		state = new AnimationState(stateData); // Holds the animation state for a skeleton (current animation, time, etc).
+		state.setTimeScale(0.5f); // Slow all animations down to 50% speed.
+		state.setAnimation(0, "run", true);
+		state.addAnimation(0, "jump", false, 2); // Jump after 2 seconds.
+		state.addAnimation(0, "run", true, 0); // Run after the jump.
+
+		// skeleton.findBone("front_foot").parent = skeleton.findBone("hip");
+
+		IkConstraintData data;
+
+		data = new IkConstraintData("head");
+		data.getBones().add(skeletonData.findBone("torso"));
+		data.getBones().add(skeletonData.findBone("head"));
+		data.target = skeletonData.findBone("front_foot");
+		data.setBendDirection(-1);
+		skeleton.getIkConstraints().add(new IkConstraint(data, skeleton));
+
+// data = new IkConstraintData("arm");
+// data.getBones().add(skeletonData.findBone("front_upper_arm"));
+// data.getBones().add(skeletonData.findBone("front_bracer"));
+// data.setTarget(skeletonData.findBone("front_foot"));
+// skeleton.getIkConstraints().add(new IkConstraint(data, skeleton));
+//
+// data = new IkConstraintData("leg");
+// data.getBones().add(skeletonData.findBone("front_thigh"));
+// data.getBones().add(skeletonData.findBone("front_shin"));
+// data.target = skeletonData.findBone("front_foot");
+// data.setBendDirection(-1);
+// skeleton.getIkConstraints().add(new IkConstraint(data, skeleton));
+// //skeleton.getIkConstraints().peek().setMix(0.5f);
+
+		skeleton.updateCache();
+		skeleton.updateWorldTransform();
+	}
+
+	public void render () {
+		state.update(Gdx.graphics.getDeltaTime()); // Update the animation time.
+
+		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
+
+		// state.apply(skeleton); // Poses skeleton using current animations. This sets the bones' local SRT.
+
+// skeleton.findBone("front_shin").y = 40;
+// skeleton.findBone("front_shin").scaleX = 2;
+// skeleton.findBone("front_thigh").scaleX = 2;
+// skeleton.findBone("front_bracer").y = 40;
+// skeleton.findBone("front_bracer").scaleX = 2;
+// skeleton.findBone("front_upper_arm").scaleX = 2;
+// skeleton.getRootBone().setScale(1.3f, 0.6f);
+
+		// skeleton.findBone("front_upper_arm").parent = skeleton.findBone("front_shin");
+// skeleton.findBone("head").scaleX = 2;
+// skeleton.findBone("head").x = 100;
+// skeleton.findBone("head").y = 100;
+// skeleton.findBone("head").rotation = 0;
+// skeleton.findBone("neck").x = 100;
+// skeleton.findBone("neck").y = 100;
+// skeleton.findBone("neck").rotation = 45;
+
+		skeleton.setPosition(250, 20);
+// skeleton.setFlip(false, false);
+		skeleton.setPosition(250, 20);
+// skeleton.setFlipX(true);
+// skeleton.setFlipY(false);
+
+// skeleton.findBone("torso").setFlipX(true);
+// skeleton.findBone("torso").setFlipY(true);
+
+		Vector2 p = skeleton.findBone("front_foot").parent.worldToLocal(new Vector2(Gdx.input.getX() - skeleton.getX(),
+			Gdx.graphics.getHeight() - Gdx.input.getY() - skeleton.getY()));
+		skeleton.findBone("front_foot").setPosition(p.x, p.y);
+
+		skeleton.updateWorldTransform(); // Uses the bones' local SRT to compute their world SRT.
+
+		// Configure the camera, SpriteBatch, and SkeletonRendererDebug.
+		camera.update();
+		batch.getProjectionMatrix().set(camera.combined);
+		debugRenderer.getShapeRenderer().setProjectionMatrix(camera.combined);
+
+		batch.begin();
+		renderer.draw(batch, skeleton); // Draw the skeleton images.
+		batch.end();
+
+		debugRenderer.draw(skeleton); // Draw debug lines.
+	}
+
+	public void resize (int width, int height) {
+		camera.setToOrtho(false); // Update camera with new size.
+	}
+
+	public void dispose () {
+		atlas.dispose();
+	}
+
+	public static void main (String[] args) throws Exception {
+		new LwjglApplication(new IkTest());
+	}
+}

+ 3 - 1
spine-starling/spine-starling-example/src/spine/GoblinsExample.as

@@ -34,8 +34,10 @@ public class GoblinsExample extends Sprite {
 	private var skeleton:SkeletonAnimation;
 
 	public function GoblinsExample () {
+		var useStarlingAtlas:Boolean = true;
+
 		var attachmentLoader:AttachmentLoader;
-		if (Main.useStarlingAtlas) {
+		if (useStarlingAtlas) {
 			var texture:Texture = Texture.fromBitmap(new GoblinsStarlingAtlasTexture());
 			var xml:XML = XML(new GoblinsStarlingAtlas());
 			var starlingAtlas:TextureAtlas = new TextureAtlas(texture, xml);

+ 0 - 2
spine-starling/spine-starling-example/src/spine/Main.as

@@ -8,14 +8,12 @@ import starling.core.Starling;
 [SWF(width = "800", height = "600", frameRate = "60", backgroundColor = "#dddddd")]
 public class Main extends Sprite {
 	private var _starling:Starling;
-	static public var useStarlingAtlas:Boolean;
 
 	public function Main () {
 		var example:Class;
 		//example = SpineboyExample;
 		//example = GoblinsExample;
 		example = RaptorExample;
-		useStarlingAtlas = true;
 
 		_starling = new Starling(example, stage);
 		_starling.enableErrorChecking = true;

+ 1 - 1
spine-starling/spine-starling-example/src/spine/RaptorExample.as

@@ -38,7 +38,7 @@ public class RaptorExample extends Sprite {
 		var skeletonData:SkeletonData = json.readSkeletonData(new RaptorJson());
 
 		skeleton = new SkeletonAnimation(skeletonData, true);
-		skeleton.x = 320;
+		skeleton.x = 400;
 		skeleton.y = 560;
 		skeleton.state.setAnimationByName(0, "walk", true);
 

+ 4 - 19
spine-starling/spine-starling-example/src/spine/SpineboyExample.as

@@ -26,26 +26,11 @@ public class SpineboyExample extends Sprite {
 	[Embed(source = "spineboy.png")]
 	static public const SpineboyAtlasTexture:Class;
 
-	[Embed(source = "spineboy-starling.xml", mimeType = "application/octet-stream")]
-	static public const SpineboyStarlingAtlas:Class;
-
-	[Embed(source = "spineboy-starling.png")]
-	static public const SpineboyStarlingAtlasTexture:Class;
-
 	private var skeleton:SkeletonAnimation;
 
 	public function SpineboyExample () {
-		var attachmentLoader:AttachmentLoader;
-		if (Main.useStarlingAtlas) {
-			var texture:Texture = Texture.fromBitmap(new SpineboyAtlasTexture());
-			var xml:XML = XML(new SpineboyStarlingAtlas());
-			var starlingAtlas:TextureAtlas = new TextureAtlas(texture, xml);
-			attachmentLoader = new StarlingAtlasAttachmentLoader(starlingAtlas);
-		} else {
-			var spineAtlas:Atlas = new Atlas(new SpineboyAtlas(), new StarlingTextureLoader(new SpineboyAtlasTexture()));
-			attachmentLoader = new AtlasAttachmentLoader(spineAtlas);
-		}
-
+		var spineAtlas:Atlas = new Atlas(new SpineboyAtlas(), new StarlingTextureLoader(new SpineboyAtlasTexture()));
+		var attachmentLoader:AttachmentLoader = new AtlasAttachmentLoader(spineAtlas);
 		var json:SkeletonJson = new SkeletonJson(attachmentLoader);
 		json.scale = 0.6;
 		var skeletonData:SkeletonData = json.readSkeletonData(new SpineboyJson());
@@ -56,8 +41,8 @@ public class SpineboyExample extends Sprite {
 		stateData.setMixByName("jump", "jump", 0.2);
 
 		skeleton = new SkeletonAnimation(skeletonData, false, stateData);
-		skeleton.x = 320;
-		skeleton.y = 420;
+		skeleton.x = 400;
+		skeleton.y = 560;
 		
 		skeleton.state.onStart.add(function (trackIndex:int) : void {
 			trace(trackIndex + " start: " + skeleton.state.getCurrent(trackIndex));

+ 0 - 1002
spine-starling/spine-starling-example/src/spineboy-starling.json

@@ -1,1002 +0,0 @@
-{
-"bones": [
-	{ "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": "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": "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": "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": "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": "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" },
-	{ "name": "left arm", "bone": "left arm", "attachment": "left-arm" },
-	{ "name": "left hand", "bone": "left hand", "attachment": "left-hand" },
-	{ "name": "left foot", "bone": "left foot", "attachment": "left-foot" },
-	{ "name": "left lower leg", "bone": "left lower leg", "attachment": "left-lower-leg" },
-	{ "name": "left upper leg", "bone": "left upper leg", "attachment": "left-upper-leg" },
-	{ "name": "pelvis", "bone": "pelvis", "attachment": "pelvis" },
-	{ "name": "right foot", "bone": "right foot", "attachment": "right-foot" },
-	{ "name": "right lower leg", "bone": "right lower leg", "attachment": "right-lower-leg" },
-	{ "name": "right upper leg", "bone": "right upper leg", "attachment": "right-upper-leg" },
-	{ "name": "torso", "bone": "torso", "attachment": "torso" },
-	{ "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", "additive": true },
-	{ "name": "right arm", "bone": "right arm", "attachment": "right-arm" },
-	{ "name": "right hand", "bone": "right hand", "attachment": "right-hand" },
-	{ "name": "bb-head", "bone": "head", "attachment": "bb-head" }
-],
-"skins": {
-	"default": {
-		"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 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 }
-		}
-	}
-},
-"events": {
-	"behind": {},
-	"headAttach": {},
-	"headPop": {}
-},
-"animations": {
-	"drawOrder": {
-		"bones": {
-			"head": {
-				"rotate": [
-					{ "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": 0,
-						"y": 0,
-						"curve": [ 0.19, 0.4, 0.586, 0.75 ]
-					},
-					{
-						"time": 0.2758,
-						"x": 57.88,
-						"y": -35.72,
-						"curve": [ 0.39, 0.54, 0.632, 0.72 ]
-					},
-					{
-						"time": 0.4827,
-						"x": 87.26,
-						"y": -87.89,
-						"curve": [ 0.325, 0.23, 0.587, 0.36 ]
-					},
-					{
-						"time": 0.6896,
-						"x": 28.89,
-						"y": -114.62,
-						"curve": [ 0.383, 0.23, 0.736, 0.55 ]
-					},
-					{
-						"time": 0.8965,
-						"x": -76.58,
-						"y": -124.98,
-						"curve": [ 0.129, 0.21, 0.547, 0.64 ]
-					},
-					{
-						"time": 1.1034,
-						"x": -154.37,
-						"y": -77.13,
-						"curve": [ 0.354, 0.48, 0.729, 0.9 ]
-					},
-					{
-						"time": 1.3103,
-						"x": -181.02,
-						"y": 18.56,
-						"curve": [ 0.063, 0.15, 0.52, 0.62 ]
-					},
-					{
-						"time": 1.5862,
-						"x": -150.38,
-						"y": 128.67,
-						"curve": [ 0.381, 0.54, 0.778, 1 ]
-					},
-					{
-						"time": 1.7931,
-						"x": -112.08,
-						"y": 146.28,
-						"curve": [ 0.242, 0, 0.626, 0.45 ]
-					},
-					{
-						"time": 1.931,
-						"x": -63.7,
-						"y": 111.22,
-						"curve": [ 0.398, 0.35, 0.786, 0.76 ]
-					},
-					{
-						"time": 2.1379,
-						"x": -48.94,
-						"y": -1.55,
-						"curve": [ 0.188, 0.21, 0.575, 0.61 ]
-					},
-					{
-						"time": 2.3448,
-						"x": -91.69,
-						"y": -91.93,
-						"curve": [ 0.362, 0.51, 0.766, 1 ]
-					},
-					{
-						"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 }
-				],
-				"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 }
-				]
-			},
-			{
-				"time": 1.7931,
-				"offsets": [
-					{ "slot": "head", "offset": 3 },
-					{ "slot": "eyes", "offset": 3 }
-				]
-			},
-			{
-				"time": 2.6206,
-				"offsets": [
-					{ "slot": "head", "offset": -12 },
-					{ "slot": "eyes", "offset": -12 }
-				]
-			},
-			{ "time": 3.5862 }
-		]
-	},
-	"jump": {
-		"bones": {
-			"hip": {
-				"rotate": [
-					{ "time": 0, "angle": 0, "curve": "stepped" },
-					{ "time": 0.9333, "angle": 0, "curve": "stepped" },
-					{ "time": 1.3666, "angle": 0 }
-				],
-				"translate": [
-					{ "time": 0, "x": -11.57, "y": -3 },
-					{ "time": 0.2333, "x": -16.2, "y": -19.43 },
-					{
-						"time": 0.3333,
-						"x": 7.66,
-						"y": -8.48,
-						"curve": [ 0.057, 0.06, 0.712, 1 ]
-					},
-					{ "time": 0.3666, "x": 15.38, "y": 5.01 },
-					{ "time": 0.4666, "x": -7.84, "y": 57.22 },
-					{
-						"time": 0.6,
-						"x": -10.81,
-						"y": 96.34,
-						"curve": [ 0.241, 0, 1, 1 ]
-					},
-					{ "time": 0.7333, "x": -7.01, "y": 54.7 },
-					{ "time": 0.8, "x": -10.58, "y": 32.2 },
-					{ "time": 0.9333, "x": -31.99, "y": 0.45 },
-					{ "time": 1.0666, "x": -12.48, "y": -29.47 },
-					{ "time": 1.3666, "x": -11.57, "y": -3 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			},
-			"left upper leg": {
-				"rotate": [
-					{ "time": 0, "angle": 17.13 },
-					{ "time": 0.2333, "angle": 44.35 },
-					{ "time": 0.3333, "angle": 16.46 },
-					{ "time": 0.4, "angle": -9.88 },
-					{ "time": 0.4666, "angle": -11.42 },
-					{ "time": 0.5666, "angle": 23.46 },
-					{ "time": 0.7666, "angle": 71.82 },
-					{ "time": 0.9333, "angle": 65.53 },
-					{ "time": 1.0666, "angle": 51.01 },
-					{ "time": 1.3666, "angle": 17.13 }
-				],
-				"translate": [
-					{ "time": 0, "x": -3, "y": -2.25, "curve": "stepped" },
-					{ "time": 0.9333, "x": -3, "y": -2.25, "curve": "stepped" },
-					{ "time": 1.3666, "x": -3, "y": -2.25 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			},
-			"left lower leg": {
-				"rotate": [
-					{ "time": 0, "angle": -16.25 },
-					{ "time": 0.2333, "angle": -52.21 },
-					{ "time": 0.4, "angle": 15.04 },
-					{ "time": 0.4666, "angle": -8.95 },
-					{ "time": 0.5666, "angle": -39.53 },
-					{ "time": 0.7666, "angle": -27.27 },
-					{ "time": 0.9333, "angle": -3.52 },
-					{ "time": 1.0666, "angle": -61.92 },
-					{ "time": 1.3666, "angle": -16.25 }
-				],
-				"translate": [
-					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 1.3666, "x": 0, "y": 0 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			},
-			"left foot": {
-				"rotate": [
-					{ "time": 0, "angle": 0.33 },
-					{ "time": 0.2333, "angle": 6.2 },
-					{ "time": 0.3333, "angle": 14.73 },
-					{ "time": 0.4, "angle": -15.54 },
-					{ "time": 0.4333, "angle": -21.2 },
-					{ "time": 0.5666, "angle": -7.55 },
-					{ "time": 0.7666, "angle": -0.67 },
-					{ "time": 0.9333, "angle": -0.58 },
-					{ "time": 1.0666, "angle": 14.64 },
-					{ "time": 1.3666, "angle": 0.33 }
-				],
-				"translate": [
-					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 1.3666, "x": 0, "y": 0 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			},
-			"right upper leg": {
-				"rotate": [
-					{ "time": 0, "angle": 25.97 },
-					{ "time": 0.2333, "angle": 46.43 },
-					{ "time": 0.3333, "angle": 22.61 },
-					{ "time": 0.4, "angle": 2.13 },
-					{
-						"time": 0.4666,
-						"angle": 0.04,
-						"curve": [ 0, 0, 0.637, 0.98 ]
-					},
-					{ "time": 0.6, "angle": 65.55 },
-					{ "time": 0.7666, "angle": 64.93 },
-					{ "time": 0.9333, "angle": 41.08 },
-					{ "time": 1.0666, "angle": 66.25 },
-					{ "time": 1.3666, "angle": 25.97 }
-				],
-				"translate": [
-					{ "time": 0, "x": 5.74, "y": 0.61 },
-					{ "time": 0.2333, "x": 4.79, "y": 1.79 },
-					{ "time": 0.3333, "x": 6.05, "y": -4.55 },
-					{ "time": 0.9333, "x": 4.79, "y": 1.79, "curve": "stepped" },
-					{ "time": 1.0666, "x": 4.79, "y": 1.79 },
-					{ "time": 1.3666, "x": 5.74, "y": 0.61 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			},
-			"right lower leg": {
-				"rotate": [
-					{ "time": 0, "angle": -27.46 },
-					{ "time": 0.2333, "angle": -64.03 },
-					{ "time": 0.4, "angle": -48.36 },
-					{ "time": 0.5666, "angle": -76.86 },
-					{ "time": 0.7666, "angle": -26.89 },
-					{ "time": 0.9, "angle": -18.97 },
-					{ "time": 0.9333, "angle": -14.18 },
-					{ "time": 1.0666, "angle": -80.45 },
-					{ "time": 1.3666, "angle": -27.46 }
-				],
-				"translate": [
-					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 1.3666, "x": 0, "y": 0 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			},
-			"right foot": {
-				"rotate": [
-					{ "time": 0, "angle": 1.08 },
-					{ "time": 0.2333, "angle": 16.02 },
-					{ "time": 0.3, "angle": 12.94 },
-					{ "time": 0.3333, "angle": 15.16 },
-					{ "time": 0.4, "angle": -14.7 },
-					{ "time": 0.4333, "angle": -12.85 },
-					{ "time": 0.4666, "angle": -19.18 },
-					{ "time": 0.5666, "angle": -15.82 },
-					{ "time": 0.6, "angle": -3.59 },
-					{ "time": 0.7666, "angle": -3.56 },
-					{ "time": 0.9333, "angle": 1.86 },
-					{ "time": 1.0666, "angle": 16.02 },
-					{ "time": 1.3666, "angle": 1.08 }
-				],
-				"translate": [
-					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 1.3666, "x": 0, "y": 0 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			},
-			"torso": {
-				"rotate": [
-					{ "time": 0, "angle": -13.35 },
-					{ "time": 0.2333, "angle": -48.95 },
-					{ "time": 0.4333, "angle": -35.77 },
-					{ "time": 0.6, "angle": -4.59 },
-					{ "time": 0.7666, "angle": 14.61 },
-					{ "time": 0.9333, "angle": 15.74 },
-					{ "time": 1.0666, "angle": -32.44 },
-					{ "time": 1.3666, "angle": -13.35 }
-				],
-				"translate": [
-					{ "time": 0, "x": -3.67, "y": 1.68, "curve": "stepped" },
-					{ "time": 0.9333, "x": -3.67, "y": 1.68, "curve": "stepped" },
-					{ "time": 1.3666, "x": -3.67, "y": 1.68 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			},
-			"neck": {
-				"rotate": [
-					{ "time": 0, "angle": 12.78 },
-					{ "time": 0.2333, "angle": 16.46 },
-					{ "time": 0.4, "angle": 26.49 },
-					{ "time": 0.6, "angle": 15.51 },
-					{ "time": 0.7666, "angle": 1.34 },
-					{ "time": 0.9333, "angle": 2.35 },
-					{ "time": 1.0666, "angle": 6.08 },
-					{ "time": 1.3, "angle": 21.23 },
-					{ "time": 1.3666, "angle": 12.78 }
-				],
-				"translate": [
-					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 1.3666, "x": 0, "y": 0 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			},
-			"head": {
-				"rotate": [
-					{ "time": 0, "angle": 5.19 },
-					{ "time": 0.2333, "angle": 20.27 },
-					{ "time": 0.4, "angle": 15.27 },
-					{ "time": 0.6, "angle": -24.69 },
-					{ "time": 0.7666, "angle": -11.02 },
-					{ "time": 0.9333, "angle": -24.38 },
-					{ "time": 1.0666, "angle": 11.99 },
-					{ "time": 1.3, "angle": 4.86 },
-					{ "time": 1.3666, "angle": 5.19 }
-				],
-				"translate": [
-					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 1.3666, "x": 0, "y": 0 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			},
-			"left shoulder": {
-				"rotate": [
-					{
-						"time": 0,
-						"angle": 0.05,
-						"curve": [ 0, 0, 0.62, 1 ]
-					},
-					{
-						"time": 0.2333,
-						"angle": 279.66,
-						"curve": [ 0.218, 0.67, 0.66, 0.99 ]
-					},
-					{
-						"time": 0.5,
-						"angle": 62.27,
-						"curve": [ 0.462, 0, 0.764, 0.58 ]
-					},
-					{ "time": 0.9333, "angle": 28.91 },
-					{ "time": 1.0666, "angle": -8.62 },
-					{ "time": 1.1666, "angle": -18.43 },
-					{ "time": 1.3666, "angle": 0.05 }
-				],
-				"translate": [
-					{ "time": 0, "x": -1.76, "y": 0.56, "curve": "stepped" },
-					{ "time": 0.9333, "x": -1.76, "y": 0.56, "curve": "stepped" },
-					{ "time": 1.3666, "x": -1.76, "y": 0.56 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			},
-			"left hand": {
-				"rotate": [
-					{ "time": 0, "angle": 11.58, "curve": "stepped" },
-					{ "time": 0.9333, "angle": 11.58, "curve": "stepped" },
-					{ "time": 1.3666, "angle": 11.58 }
-				],
-				"translate": [
-					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 1.3666, "x": 0, "y": 0 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			},
-			"left arm": {
-				"rotate": [
-					{ "time": 0, "angle": 0.51 },
-					{ "time": 0.4333, "angle": 12.82 },
-					{ "time": 0.6, "angle": 47.55 },
-					{ "time": 0.9333, "angle": 12.82 },
-					{ "time": 1.1666, "angle": -6.5 },
-					{ "time": 1.3666, "angle": 0.51 }
-				],
-				"translate": [
-					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 1.3666, "x": 0, "y": 0 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			},
-			"right shoulder": {
-				"rotate": [
-					{
-						"time": 0,
-						"angle": 43.82,
-						"curve": [ 0, 0, 0.62, 1 ]
-					},
-					{
-						"time": 0.2333,
-						"angle": -8.74,
-						"curve": [ 0.304, 0.58, 0.709, 0.97 ]
-					},
-					{
-						"time": 0.5333,
-						"angle": -208.02,
-						"curve": [ 0.462, 0, 0.764, 0.58 ]
-					},
-					{ "time": 0.9333, "angle": -246.72 },
-					{ "time": 1.0666, "angle": -307.13 },
-					{ "time": 1.1666, "angle": 37.15 },
-					{ "time": 1.3666, "angle": 43.82 }
-				],
-				"translate": [
-					{ "time": 0, "x": -7.84, "y": 7.19, "curve": "stepped" },
-					{ "time": 0.9333, "x": -7.84, "y": 7.19, "curve": "stepped" },
-					{ "time": 1.3666, "x": -7.84, "y": 7.19 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			},
-			"right arm": {
-				"rotate": [
-					{ "time": 0, "angle": -4.02 },
-					{ "time": 0.6, "angle": 17.5 },
-					{ "time": 0.9333, "angle": -4.02 },
-					{ "time": 1.1666, "angle": -16.72 },
-					{ "time": 1.3666, "angle": -4.02 }
-				],
-				"translate": [
-					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 1.3666, "x": 0, "y": 0 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			},
-			"right hand": {
-				"rotate": [
-					{ "time": 0, "angle": 22.92, "curve": "stepped" },
-					{ "time": 0.9333, "angle": 22.92, "curve": "stepped" },
-					{ "time": 1.3666, "angle": 22.92 }
-				],
-				"translate": [
-					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
-					{ "time": 1.3666, "x": 0, "y": 0 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			},
-			"root": {
-				"rotate": [
-					{ "time": 0, "angle": 0 },
-					{ "time": 0.4333, "angle": -14.52 },
-					{ "time": 0.8, "angle": 9.86 },
-					{ "time": 1.3666, "angle": 0 }
-				],
-				"scale": [
-					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
-					{ "time": 1.3666, "x": 1, "y": 1 }
-				]
-			}
-		}
-	},
-	"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 }
-				]
-			}
-		}
-	}
-}
-}

BIN
spine-starling/spine-starling-example/src/spineboy-starling.png


+ 0 - 32
spine-starling/spine-starling-example/src/spineboy-starling.xml

@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Created with TexturePacker http://www.codeandweb.com/texturepacker-->
-<!-- $TexturePacker:SmartUpdate:8ea0251acc356491e9a6f72df2f73636:074436a8c81d0728682274bde39d8bb8:676322d6615ca6a250a9e93de5572f1e$ -->
-<TextureAtlas imagePath="spineboy.png">
-    <SubTexture name="eye_indifferent" x="424" y="253" width="56" height="53"/>
-    <SubTexture name="eye_surprised" x="429" y="198" width="56" height="53"/>
-    <SubTexture name="front_bracer" x="401" y="345" width="35" height="48"/>
-    <SubTexture name="front_fist_closed" x="300" y="353" width="45" height="49"/>
-    <SubTexture name="front_fist_open" x="347" y="344" width="52" height="52"/>
-    <SubTexture name="front_foot" x="36" y="346" width="76" height="41"/>
-    <SubTexture name="front_foot_bend1" x="432" y="112" width="77" height="42"/>
-    <SubTexture name="front_foot_bend2" x="267" y="183" width="65" height="56"/>
-    <SubTexture name="front_shin" x="289" y="241" width="49" height="110"/>
-    <SubTexture name="front_thigh" x="398" y="183" width="29" height="67"/>
-    <SubTexture name="front_upper_arm" x="2" y="346" width="32" height="58"/>
-    <SubTexture name="goggles" x="2" y="244" width="157" height="100"/>
-    <SubTexture name="gun" x="161" y="244" width="126" height="122"/>
-    <SubTexture name="head" x="267" y="2" width="163" height="179"/>
-    <SubTexture name="mouth_grind" x="424" y="308" width="56" height="35"/>
-    <SubTexture name="mouth_oooo" x="242" y="368" width="56" height="35"/>
-    <SubTexture name="mouth_smile" x="184" y="368" width="56" height="35"/>
-    <SubTexture name="muzzle" x="2" y="2" width="263" height="240" frameX="-5" frameY="0" frameWidth="277" frameHeight="240"/>
-    <SubTexture name="neck" x="487" y="198" width="22" height="25"/>
-    <SubTexture name="rear_bracer" x="438" y="345" width="34" height="43"/>
-    <SubTexture name="rear_foot" x="114" y="368" width="68" height="36"/>
-    <SubTexture name="rear_foot_bend1" x="432" y="156" width="70" height="40"/>
-    <SubTexture name="rear_foot_bend2" x="334" y="183" width="62" height="50"/>
-    <SubTexture name="rear_shin" x="340" y="235" width="45" height="107"/>
-    <SubTexture name="rear_thigh" x="387" y="252" width="35" height="62" frameX="-4" frameY="0" frameWidth="39" frameHeight="62"/>
-    <SubTexture name="rear_upper_arm" x="474" y="345" width="28" height="52"/>
-    <SubTexture name="torso" x="432" y="2" width="59" height="108"/>
-</TextureAtlas>