diff --git a/.gitignore b/.gitignore index 379535dc20..aff89b911a 100644 --- a/.gitignore +++ b/.gitignore @@ -193,3 +193,4 @@ spine-flutter/src/spine-cpp spine-godot/godot-nuget spine-godot/godot-spine-csharp spine-ue4/Plugins/Developer +spine-haxe/export diff --git a/examples/export/runtimes.sh b/examples/export/runtimes.sh index 0a72a2282b..fadf81c255 100755 --- a/examples/export/runtimes.sh +++ b/examples/export/runtimes.sh @@ -418,6 +418,59 @@ cp -f ../mix-and-match/export/mix-and-match-pro.json "$ROOT/spine-monogame/spine cp -f ../mix-and-match/export/mix-and-match.atlas "$ROOT/spine-monogame/spine-monogame-example/data/" cp -f ../mix-and-match/export/mix-and-match.png "$ROOT/spine-monogame/spine-monogame-example/data/" +echo "spine-haxe" +rm "$ROOT/spine-haxe/example/assets/"* +cp -f ../coin/export/coin-pro.json "$ROOT/spine-haxe/example/assets/" +cp -f ../coin/export/coin-pro.skel "$ROOT/spine-haxe/example/assets/" +cp -f ../coin/export/coin.atlas "$ROOT/spine-haxe/example/assets/" +cp -f ../coin/export/coin.png "$ROOT/spine-haxe/example/assets/" + +cp -f ../goblins/export/goblins-pro.json "$ROOT/spine-haxe/example/assets/" +cp -f ../goblins/export/goblins-pro.skel "$ROOT/spine-haxe/example/assets/" +cp -f ../goblins/export/goblins.atlas "$ROOT/spine-haxe/example/assets/" +cp -f ../goblins/export/goblins.png "$ROOT/spine-haxe/example/assets/" + +cp -f ../dragon/export/dragon-ess.json "$ROOT/spine-haxe/example/assets/" +cp -f ../dragon/export/dragon-ess.skel "$ROOT/spine-haxe/example/assets/" +cp -f ../dragon/export/dragon.atlas "$ROOT/spine-haxe/example/assets/" +cp -f ../dragon/export/dragon*.png "$ROOT/spine-haxe/example/assets/" + +cp -f ../raptor/export/raptor-pro.json "$ROOT/spine-haxe/example/assets/" +cp -f ../raptor/export/raptor-pro.skel "$ROOT/spine-haxe/example/assets/" +cp -f ../raptor/export/raptor.atlas "$ROOT/spine-haxe/example/assets/" +cp -f ../raptor/export/raptor.png "$ROOT/spine-haxe/example/assets/" + +cp -f ../spineboy/export/spineboy-pro.json "$ROOT/spine-haxe/example/assets/" +cp -f ../spineboy/export/spineboy-pro.skel "$ROOT/spine-haxe/example/assets/" +cp -f ../spineboy/export/spineboy.atlas "$ROOT/spine-haxe/example/assets/" +cp -f ../spineboy/export/spineboy.png "$ROOT/spine-haxe/example/assets/" +cp -f ../spineboy/export/spineboy.png "$ROOT/spine-haxe/example/assets/" + +cp -f ../tank/export/tank-pro.json "$ROOT/spine-haxe/example/assets/" +cp -f ../tank/export/tank-pro.skel "$ROOT/spine-haxe/example/assets/" +cp -f ../tank/export/tank.atlas "$ROOT/spine-haxe/example/assets/" +cp -f ../tank/export/tank.png "$ROOT/spine-haxe/example/assets/" + +cp -f ../vine/export/vine-pro.json "$ROOT/spine-haxe/example/assets/" +cp -f ../vine/export/vine-pro.skel "$ROOT/spine-haxe/example/assets/" +cp -f ../vine/export/vine.atlas "$ROOT/spine-haxe/example/assets/" +cp -f ../vine/export/vine.png "$ROOT/spine-haxe/example/assets/" + +cp -f ../owl/export/owl-pro.json "$ROOT/spine-haxe/example/assets/" +cp -f ../owl/export/owl-pro.skel "$ROOT/spine-haxe/example/assets/" +cp -f ../owl/export/owl.atlas "$ROOT/spine-haxe/example/assets/" +cp -f ../owl/export/owl.png "$ROOT/spine-haxe/example/assets/" + +cp -f ../stretchyman/export/stretchyman-pro.json "$ROOT/spine-haxe/example/assets/" +cp -f ../stretchyman/export/stretchyman-pro.skel "$ROOT/spine-haxe/example/assets/" +cp -f ../stretchyman/export/stretchyman.atlas "$ROOT/spine-haxe/example/assets/" +cp -f ../stretchyman/export/stretchyman.png "$ROOT/spine-haxe/example/assets/" + +cp -f ../mix-and-match/export/mix-and-match-pro.json "$ROOT/spine-haxe/example/assets/" +cp -f ../mix-and-match/export/mix-and-match-pro.skel "$ROOT/spine-haxe/example/assets/" +cp -f ../mix-and-match/export/mix-and-match.atlas "$ROOT/spine-haxe/example/assets/" +cp -f ../mix-and-match/export/mix-and-match.png "$ROOT/spine-haxe/example/assets/" + echo "spine-ue4" rm "$ROOT/spine-ue4/Content/GettingStarted/Assets/Raptor/raptor.json" rm "$ROOT/spine-ue4/Content/GettingStarted/Assets/Raptor/raptor.atlas" diff --git a/spine-haxe/.vscode/launch.json b/spine-haxe/.vscode/launch.json new file mode 100644 index 0000000000..6c29a89610 --- /dev/null +++ b/spine-haxe/.vscode/launch.json @@ -0,0 +1,20 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "web", + "request": "launch", + "type": "chrome", + "url": "http://localhost:3000", + "webRoot": "${workspaceFolder}" + }, + { + "name": "lime", + "type": "lime", + "request": "launch" + } + ] +} diff --git a/spine-haxe/README.md b/spine-haxe/README.md new file mode 100644 index 0000000000..7601fe34bb --- /dev/null +++ b/spine-haxe/README.md @@ -0,0 +1,54 @@ +# spine-haxe + +The spine-haxe runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [Haxe](https://haxe.org/) in combination with [OpenFL](https://www.openfl.org/) and [Lime](https://lime.openfl.org/). + +## Licensing + +You are welcome to evaluate the Spine Runtimes and the examples we provide in this repository free of charge. + +You can integrate the Spine Runtimes into your software free of charge, but users of your software must have their own [Spine license](https://esotericsoftware.com/spine-purchase). Please make your users aware of this requirement! This option is often chosen by those making development tools, such as an SDK, game toolkit, or software library. + +In order to distribute your software containing the Spine Runtimes to others that don't have a Spine license, you need a [Spine license](https://esotericsoftware.com/spine-purchase) at the time of integration. Then you can distribute your software containing the Spine Runtimes however you like, provided others don't modify it or use it to create new software. If others want to do that, they'll need their own Spine license. + +For the official legal terms governing the Spine Runtimes, please read the [Spine Runtimes License Agreement](http://esotericsoftware.com/spine-runtimes-license) and Section 2 of the [Spine Editor License Agreement](http://esotericsoftware.com/spine-editor-license#s2). + +## Spine version + +spine-haxe works with data exported from Spine 4.1.xx. + +## Setup + +TBD + +## Example + +TBD + +## Development + +To setup the development environment install the following: + +1. [Haxe](https://haxe.org/download/), ensure it's available on the command line through your `PATH` if you use the binaries instead of the installer. +2. On the command line, run: + ``` + haxelib setup + haxelib install openfl + haxelib run openfl setup + haxelib install starling + ``` +3. Clone the `spine-runtimes` repository, and use `haxelib` to setup a dev library: + ``` + git clone https://github.com/esotericsoftware/spine-runtimes + cd spine-runtimes + haxelib dev spine-haxe . + ``` + +As an IDE, we recommend [Visual Studio Code](https://code.visualstudio.com/) with the following extension: + +1. [Haxe extension](https://marketplace.visualstudio.com/items?itemName=nadako.vshaxe) +2. [HXCPP debugger extension](https://marketplace.visualstudio.com/items?itemName=vshaxe.hxcpp-debugger) +3. [Lime extension](https://marketplace.visualstudio.com/items?itemName=openfl.lime-vscode-extension) + +The extensions provide IDE features like auto-completion, debugging, and build support. + +To debug the HTML5 build, set the Lime target in the status bar at the bottom of VS Code to `HTML5 / Debug`. Next, press `CTRL+SHIFT+B` (`CMD+SHIFT+B` on macOS) to build the project. Run the `lime` run configuration by pressing `F5`. This will start a webserver at `http://localhost:3000`. Finally, start the `web` run configuration. If you modify code, rebuild and restart the `web` configuration. diff --git a/spine-haxe/example/assets/coin-pro.json b/spine-haxe/example/assets/coin-pro.json new file mode 100644 index 0000000000..03fd5fe070 --- /dev/null +++ b/spine-haxe/example/assets/coin-pro.json @@ -0,0 +1,259 @@ +{ +"skeleton": { + "hash": "oo0dBSCqNHM", + "spine": "4.1.17", + "x": -152.5, + "y": -151, + "width": 305, + "height": 302, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { "name": "coin-front", "parent": "root" }, + { "name": "clipping", "parent": "coin-front" }, + { "name": "coin-sides", "parent": "root" }, + { "name": "coin-side-round", "parent": "coin-sides" }, + { "name": "coin-side-straight", "parent": "coin-sides" }, + { "name": "shine", "parent": "root", "x": 243.14 } +], +"slots": [ + { "name": "coin-side", "bone": "coin-side-straight", "color": "ffdb2fff", "attachment": "coin-side-straight" }, + { "name": "coin-side-round", "bone": "coin-side-round", "color": "ffdb2fff", "attachment": "coin-side-round" }, + { "name": "coin-front-texture", "bone": "coin-front", "color": "868686ff", "attachment": "coin-front-logo" }, + { "name": "coin-front-shine", "bone": "coin-front", "color": "888888ff", "dark": "000000", "attachment": "coin-front-shine-logo", "blend": "additive" }, + { "name": "clipping", "bone": "clipping", "attachment": "clipping" }, + { "name": "shine", "bone": "shine", "color": "ffffff60", "attachment": "shine", "blend": "additive" } +], +"skins": [ + { + "name": "default", + "attachments": { + "clipping": { + "clipping": { + "type": "clipping", + "end": "clipping", + "vertexCount": 39, + "vertices": [ 0.1, 140.26, -26.4, 138.14, -50.51, 131.25, -75.42, 119.06, -98.21, 101.04, -115.44, 82.22, -127.63, 62.08, -136.11, 39.03, -140.08, 19.68, -141.41, -0.19, -140.08, -22.98, -134.78, -45.5, -125.24, -66.44, -113.32, -84.19, -98.21, -101.95, -80.46, -116.52, -61.38, -127.39, -38.92, -134.81, -18.22, -139.27, -0.14, -140.58, 24.23, -138.48, 45.45, -132.46, 67.98, -122.5, 86.58, -110.19, 102.56, -95.25, 115.4, -78.75, 125.36, -61.72, 134, -42.33, 138.46, -22.15, 139.24, -0.15, 138.46, 20.29, 133.48, 39.94, 127.19, 58.54, 117.5, 76.1, 104.4, 92.86, 88.42, 108.32, 69.03, 121.42, 50.43, 130.85, 26.32, 137.4 ], + "color": "ce3a3aff" + } + }, + "coin-front-shine": { + "coin-front-shine-logo": { "width": 282, "height": 282 }, + "coin-front-shine-spineboy": { "width": 282, "height": 282 } + }, + "coin-front-texture": { + "coin-front-logo": { "width": 305, "height": 302 }, + "coin-front-spineboy": { "width": 305, "height": 302 } + }, + "coin-side": { + "coin-side-straight": { "x": 0.5, "width": 17, "height": 282 } + }, + "coin-side-round": { + "coin-side-round": { "x": -69.43, "width": 144, "height": 282 } + }, + "shine": { + "shine": { "y": 0.5, "scaleX": 1.6004, "scaleY": 1.6004, "width": 72, "height": 245 } + } + } + } +], +"animations": { + "animation": { + "slots": { + "coin-front-shine": { + "rgba2": [ + { "light": "7d7d7dff", "dark": "000000" }, + { "time": 0.2667, "light": "000000ff", "dark": "7e7e7e" }, + { "time": 0.664, "light": "000000ff", "dark": "000000" }, + { "time": 1.0333, "light": "7f7f7fff", "dark": "000000" }, + { "time": 1.3333, "light": "404040ff", "dark": "000000" }, + { "time": 1.6, "light": "000000ff", "dark": "7e7e7e" }, + { "time": 2.0022, "light": "000000ff", "dark": "000000" }, + { "time": 2.4, "light": "7f7f7fff", "dark": "000000" }, + { "time": 2.6667, "light": "7d7d7dff", "dark": "000000" } + ], + "attachment": [ + { "time": 0.6667, "name": "coin-front-shine-spineboy" }, + { "time": 2, "name": "coin-front-shine-logo" } + ] + }, + "coin-front-texture": { + "rgba": [ + { "color": "858585ff" }, + { "time": 0.4, "color": "ffffffff" }, + { + "time": 0.6696, + "color": "858585ff", + "curve": [ 0.725, 0.59, 0.892, 1, 0.725, 0.59, 0.892, 1, 0.725, 0.59, 0.892, 1, 0.725, 1, 0.892, 1 ] + }, + { "time": 0.9667, "color": "ffffffff" }, + { "time": 1.3318, "color": "858585ff", "curve": "stepped" }, + { "time": 1.3333, "color": "858585ff" }, + { "time": 1.7333, "color": "ffffffff" }, + { "time": 1.9982, "color": "858585ff", "curve": "stepped" }, + { "time": 2.0022, "color": "858585ff" }, + { "time": 2.3, "color": "ffffffff" }, + { "time": 2.6667, "color": "858585ff" } + ], + "attachment": [ + { "time": 0.6667, "name": "coin-front-spineboy" }, + { "time": 2, "name": "coin-front-logo" } + ] + } + }, + "bones": { + "coin-front": { + "translate": [ + {}, + { "time": 0.664, "x": 8.3, "curve": "stepped" }, + { + "time": 0.6696, + "x": -8.3, + "curve": [ 0.794, -7.08, 1.167, 0, 0.794, 0, 1.167, 0 ] + }, + { "time": 1.3333 }, + { "time": 1.9982, "x": 8.3, "curve": "stepped" }, + { "time": 2.0022, "x": -8.3 }, + { "time": 2.6667 } + ], + "scale": [ + { + "curve": [ 0.164, 1, 0.484, 0.091, 0.164, 1, 0.484, 1 ] + }, + { "time": 0.664, "x": 0, "curve": "stepped" }, + { + "time": 0.6696, + "x": 0.003, + "curve": [ 0.786, 0.153, 1.167, 1, 0.786, 1, 1.167, 1 ] + }, + { + "time": 1.3333, + "curve": [ 1.442, 0.992, 1.858, 0.098, 1.442, 1, 1.858, 1 ] + }, + { "time": 1.9982, "x": 0.003, "curve": "stepped" }, + { + "time": 2.0022, + "x": 0.003, + "curve": [ 2.123, 0.151, 2.501, 1, 2.123, 1, 2.501, 1 ] + }, + { "time": 2.6667 } + ] + }, + "coin-side-round": { + "translate": [ + {}, + { "time": 0.664, "x": -6.75, "curve": "stepped" }, + { + "time": 0.6696, + "x": 7.03, + "curve": [ 0.794, 5.99, 1.167, 0, 0.794, 0, 1.167, 0 ] + }, + { "time": 1.3333 }, + { "time": 1.9982, "x": -6.75, "curve": "stepped" }, + { "time": 2.0022, "x": 7.03 }, + { "time": 2.6667 } + ], + "scale": [ + { + "curve": [ 0.085, 1, 0.207, 0.789, 0.085, 1, 0.207, 1 ] + }, + { + "time": 0.3333, + "x": 0.555, + "curve": [ 0.449, 0.347, 0.567, 0.122, 0.449, 1, 0.567, 1 ] + }, + { "time": 0.664, "x": 0.014, "curve": "stepped" }, + { + "time": 0.6696, + "x": -0.028, + "curve": [ 0.723, -0.126, 0.865, -0.367, 0.723, 1, 0.865, 1 ] + }, + { + "time": 1, + "x": -0.609, + "curve": [ 1.053, -0.778, 1.29, -0.997, 1.053, 1, 1.29, 1 ] + }, + { "time": 1.3318, "x": -1, "curve": "stepped" }, + { + "time": 1.3333, + "curve": [ 1.384, 0.997, 1.439, 0.94, 1.384, 1, 1.439, 1 ] + }, + { + "time": 1.5, + "x": 0.852, + "curve": [ 1.564, 0.748, 1.703, 0.509, 1.564, 1, 1.703, 1 ] + }, + { + "time": 1.8, + "x": 0.315, + "curve": [ 1.873, 0.13, 1.987, 0.015, 1.873, 1, 1.987, 1 ] + }, + { "time": 1.9982, "x": 0.014, "curve": "stepped" }, + { + "time": 2.0022, + "x": -0.028, + "curve": [ 2.039, -0.072, 2.123, -0.239, 2.039, 1, 2.123, 1 ] + }, + { + "time": 2.2018, + "x": -0.365, + "curve": [ 2.269, -0.513, 2.337, -0.635, 2.269, 1, 2.337, 1 ] + }, + { + "time": 2.4, + "x": -0.731, + "curve": [ 2.503, -0.871, 2.596, -0.961, 2.503, 1, 2.596, 1 ] + }, + { + "time": 2.6592, + "x": -1, + "curve": [ 2.661, -1, 2.665, 1, 2.661, 1, 2.665, 1 ] + }, + { "time": 2.6667 } + ] + }, + "shine": { + "translate": [ + { + "curve": [ 0.167, 0, 0.5, -473.39, 0.167, 0, 0.5, 0 ] + }, + { + "time": 0.6667, + "x": -473.39, + "curve": [ 0.833, -473.39, 1.167, -33.16, 0.833, 0, 1.167, 0 ] + }, + { + "time": 1.3333, + "x": -33.16, + "curve": [ 1.5, -33.16, 1.833, -473.39, 1.5, 0, 1.833, 0 ] + }, + { + "time": 2, + "x": -473.39, + "curve": [ 2.167, -473.39, 2.5, 0, 2.167, 0, 2.5, 0 ] + }, + { "time": 2.6667 } + ] + } + }, + "drawOrder": [ + { + "time": 0.6667, + "offsets": [ + { "slot": "coin-side", "offset": 2 } + ] + }, + { "time": 0.6696 }, + { + "time": 1.9982, + "offsets": [ + { "slot": "coin-side", "offset": 2 } + ] + }, + { "time": 2.0022 } + ] + } +} +} \ No newline at end of file diff --git a/spine-haxe/example/assets/coin-pro.skel b/spine-haxe/example/assets/coin-pro.skel new file mode 100644 index 0000000000..eda3d9961e Binary files /dev/null and b/spine-haxe/example/assets/coin-pro.skel differ diff --git a/spine-haxe/example/assets/coin.atlas b/spine-haxe/example/assets/coin.atlas new file mode 100644 index 0000000000..0ff436cffe --- /dev/null +++ b/spine-haxe/example/assets/coin.atlas @@ -0,0 +1,18 @@ +coin.png + size: 1024, 1024 + filter: Linear, Linear +coin-front-logo + bounds: 2, 570, 305, 302 +coin-front-shine-logo + bounds: 2, 286, 282, 282 +coin-front-shine-spineboy + bounds: 305, 283, 282, 282 +coin-front-spineboy + bounds: 309, 567, 305, 302 + rotate: 90 +coin-side-round + bounds: 2, 2, 144, 282 +coin-side-straight + bounds: 286, 286, 17, 282 +shine + bounds: 148, 39, 72, 245 diff --git a/spine-haxe/example/assets/coin.png b/spine-haxe/example/assets/coin.png new file mode 100644 index 0000000000..2298d13493 Binary files /dev/null and b/spine-haxe/example/assets/coin.png differ diff --git a/spine-haxe/example/assets/dragon-ess.json b/spine-haxe/example/assets/dragon-ess.json new file mode 100644 index 0000000000..274ef63061 --- /dev/null +++ b/spine-haxe/example/assets/dragon-ess.json @@ -0,0 +1,1079 @@ +{ +"skeleton": { + "hash": "aPoA1GjXkVI", + "spine": "4.1.17", + "x": -366.31, + "y": -327.81, + "width": 660.39, + "height": 643, + "images": "./images/", + "audio": "././" +}, +"bones": [ + { "name": "root", "y": -176.12 }, + { "name": "center", "parent": "root", "y": 176.12, "color": "ffe300ff" }, + { + "name": "back", + "parent": "center", + "length": 115.38, + "rotation": 151.83, + "x": 16.04, + "y": 27.94, + "color": "ffe400ff" + }, + { + "name": "chest", + "parent": "center", + "length": 31.24, + "rotation": 161.7, + "x": 52.53, + "y": 15.35, + "color": "ffe400ff" + }, + { + "name": "neck", + "parent": "center", + "length": 41.37, + "rotation": 39.06, + "x": 64.76, + "y": 11.98, + "color": "ffe400ff" + }, + { + "name": "chin", + "parent": "neck", + "length": 153.16, + "rotation": -69.07, + "x": 64.63, + "y": -6.99, + "color": "ffe400ff" + }, + { + "name": "head", + "parent": "neck", + "length": 188.84, + "rotation": 8.07, + "x": 69.96, + "y": 2.5, + "color": "ffe400ff" + }, + { + "name": "left-front-thigh", + "parent": "chest", + "length": 67.42, + "rotation": 138.94, + "x": -45.59, + "y": 7.93, + "color": "ff0000ff" + }, + { + "name": "left-front-leg", + "parent": "left-front-thigh", + "length": 51.58, + "rotation": 43.36, + "x": 67.42, + "y": 0.03, + "color": "ff0000ff" + }, + { + "name": "left-front-toe1", + "parent": "left-front-leg", + "length": 51.45, + "rotation": -98.01, + "x": 45.54, + "y": 2.43, + "color": "ff0000ff" + }, + { + "name": "left-front-toe2", + "parent": "left-front-leg", + "length": 61.98, + "rotation": -55.26, + "x": 51.58, + "y": -0.13, + "color": "ff0000ff" + }, + { + "name": "left-front-toe3", + "parent": "left-front-leg", + "length": 45.65, + "rotation": -11.14, + "x": 54.19, + "y": 0.6, + "scaleX": 1.135, + "color": "ff0000ff" + }, + { + "name": "left-front-toe4", + "parent": "left-front-leg", + "length": 53.47, + "rotation": 19.43, + "x": 50.61, + "y": 7.09, + "scaleX": 1.135, + "color": "ff0000ff" + }, + { + "name": "right-rear-thigh", + "parent": "back", + "length": 123.47, + "rotation": 104.88, + "x": 65.31, + "y": 59.89, + "color": "29ff00ff" + }, + { + "name": "left-rear-thigh", + "parent": "right-rear-thigh", + "length": 88.06, + "rotation": 28.35, + "x": -8.59, + "y": 30.19, + "color": "ff0000ff" + }, + { + "name": "left-rear-leg", + "parent": "left-rear-thigh", + "length": 103.74, + "rotation": -122.41, + "x": 96.04, + "y": -0.97, + "color": "ff0000ff" + }, + { + "name": "left-wing", + "parent": "chest", + "length": 301.12, + "rotation": -75.51, + "x": -7.25, + "y": -24.66, + "color": "ff0000ff" + }, + { + "name": "right-front-thigh", + "parent": "chest", + "length": 81.64, + "rotation": 67.97, + "x": -10.89, + "y": 28.25, + "color": "29ff00ff" + }, + { + "name": "right-front-leg", + "parent": "right-front-thigh", + "length": 66.53, + "rotation": 92.7, + "x": 83.05, + "y": -0.31, + "color": "29ff00ff" + }, + { + "name": "right-front-toe1", + "parent": "right-front-leg", + "length": 46.66, + "rotation": 8.59, + "x": 70.03, + "y": 5.31, + "color": "29ff00ff" + }, + { + "name": "right-front-toe2", + "parent": "right-front-leg", + "length": 53.67, + "rotation": -35.02, + "x": 66.53, + "y": 0.34, + "color": "29ff00ff" + }, + { + "name": "right-front-toe3", + "parent": "right-front-leg", + "length": 58.39, + "rotation": -74.67, + "x": 62.1, + "y": -0.79, + "color": "29ff00ff" + }, + { + "name": "right-rear-leg", + "parent": "right-rear-thigh", + "length": 91.06, + "rotation": -129.04, + "x": 123.47, + "y": -0.27, + "color": "29ff00ff" + }, + { + "name": "right-rear-toe1", + "parent": "right-rear-leg", + "length": 95, + "rotation": 141.98, + "x": 90.07, + "y": 2.12, + "color": "29ff00ff" + }, + { + "name": "right-rear-toe2", + "parent": "right-rear-leg", + "length": 99.29, + "rotation": 125.32, + "x": 89.6, + "y": 1.52, + "color": "29ff00ff" + }, + { + "name": "right-rear-toe3", + "parent": "right-rear-leg", + "length": 103.46, + "rotation": 112.27, + "x": 91.06, + "y": -0.35, + "color": "29ff00ff" + }, + { + "name": "right-wing", + "parent": "head", + "length": 359.5, + "rotation": 83.21, + "x": -74.68, + "y": 20.91, + "color": "29ff00ff" + }, + { + "name": "tail1", + "parent": "back", + "length": 65.65, + "rotation": 44.32, + "x": 115.38, + "y": -0.2, + "color": "ffe400ff" + }, + { + "name": "tail2", + "parent": "tail1", + "length": 54.5, + "rotation": 12, + "x": 65.65, + "y": 0.23, + "color": "ffe400ff" + }, + { + "name": "tail3", + "parent": "tail2", + "length": 41.78, + "rotation": 1.8, + "x": 54.5, + "y": 0.37, + "color": "ffe400ff" + }, + { + "name": "tail4", + "parent": "tail3", + "length": 34.19, + "rotation": -1.8, + "x": 41.78, + "y": 0.16, + "color": "ffe400ff" + }, + { + "name": "tail5", + "parent": "tail4", + "length": 32.33, + "rotation": -3.15, + "x": 34.19, + "y": -0.19, + "color": "ffe400ff" + }, + { + "name": "tail6", + "parent": "tail5", + "length": 80.08, + "rotation": -29.55, + "x": 32.33, + "y": -0.23, + "color": "ffe400ff" + } +], +"slots": [ + { "name": "left-rear-leg", "bone": "left-rear-leg", "attachment": "left-rear-leg" }, + { "name": "left-rear-thigh", "bone": "left-rear-thigh", "attachment": "left-rear-thigh" }, + { "name": "left-wing", "bone": "left-wing", "attachment": "left-wing" }, + { "name": "tail6", "bone": "tail6", "attachment": "tail06" }, + { "name": "tail5", "bone": "tail5", "attachment": "tail05" }, + { "name": "tail4", "bone": "tail4", "attachment": "tail04" }, + { "name": "tail3", "bone": "tail3", "attachment": "tail03" }, + { "name": "tail2", "bone": "tail2", "attachment": "tail02" }, + { "name": "tail1", "bone": "tail1", "attachment": "tail01" }, + { "name": "back", "bone": "back", "attachment": "back" }, + { "name": "left-front-thigh", "bone": "left-front-thigh", "attachment": "left-front-thigh" }, + { "name": "left-front-leg", "bone": "left-front-leg", "attachment": "left-front-leg" }, + { "name": "left-front-toe1", "bone": "left-front-toe1", "attachment": "front-toe-a" }, + { "name": "left-front-toe4", "bone": "left-front-toe4", "attachment": "front-toe-b" }, + { "name": "left-front-toe3", "bone": "left-front-toe3", "attachment": "front-toe-b" }, + { "name": "left-front-toe2", "bone": "left-front-toe2", "attachment": "front-toe-b" }, + { "name": "chest", "bone": "chest", "attachment": "chest" }, + { "name": "right-rear-toe1", "bone": "right-rear-toe1", "attachment": "right-rear-toe" }, + { "name": "right-rear-toe2", "bone": "right-rear-toe2", "attachment": "right-rear-toe" }, + { "name": "right-rear-toe3", "bone": "right-rear-toe3", "attachment": "right-rear-toe" }, + { "name": "right-rear-leg", "bone": "right-rear-leg", "attachment": "right-rear-leg" }, + { "name": "right-rear-thigh", "bone": "right-rear-thigh", "attachment": "right-rear-thigh" }, + { "name": "right-front-toe1", "bone": "right-front-toe1", "attachment": "front-toe-b" }, + { "name": "right-front-thigh", "bone": "right-front-thigh", "attachment": "right-front-thigh" }, + { "name": "right-front-leg", "bone": "right-front-leg", "attachment": "right-front-leg" }, + { "name": "right-front-toe2", "bone": "right-front-toe2", "attachment": "front-toe-b" }, + { "name": "right-front-toe3", "bone": "right-front-toe3", "attachment": "front-toe-b" }, + { "name": "chin", "bone": "chin", "attachment": "chin" }, + { "name": "right-wing", "bone": "right-wing", "attachment": "right-wing" }, + { "name": "head", "bone": "head", "attachment": "head" }, + { "name": "thiagobrayner", "bone": "root", "attachment": "thiagobrayner" } +], +"skins": [ + { + "name": "default", + "attachments": { + "back": { + "back": { "x": 35.85, "y": 19.99, "rotation": -151.83, "width": 190, "height": 185 } + }, + "chest": { + "chest": { "x": -14.6, "y": 24.79, "rotation": -161.7, "width": 136, "height": 122 } + }, + "chin": { + "chin": { "x": 66.55, "y": 7.32, "rotation": 30.01, "width": 214, "height": 146 } + }, + "head": { + "head": { "x": 76.69, "y": 32.21, "rotation": -47.13, "width": 296, "height": 260 } + }, + "left-front-leg": { + "left-front-leg": { "x": 14.69, "y": 0.49, "rotation": 16, "width": 84, "height": 57 } + }, + "left-front-thigh": { + "left-front-thigh": { "x": 27.66, "y": -11.59, "rotation": 58.66, "width": 84, "height": 72 } + }, + "left-front-toe1": { + "front-toe-a": { "x": 31.93, "y": 0.61, "rotation": 109.56, "width": 29, "height": 50 } + }, + "left-front-toe2": { + "front-toe-b": { "x": 26.84, "y": -4.95, "rotation": 109.51, "width": 56, "height": 57 } + }, + "left-front-toe3": { + "front-toe-b": { + "x": 18.22, + "y": -7.22, + "scaleX": 0.8811, + "scaleY": 0.9409, + "rotation": 99.71, + "width": 56, + "height": 57 + } + }, + "left-front-toe4": { + "front-toe-b": { "x": 23.21, "y": -11.69, "scaleX": 0.8811, "rotation": 79.89, "width": 56, "height": 57 } + }, + "left-rear-leg": { + "left-rear-leg": { "x": 67.29, "y": 12.63, "rotation": -162.65, "width": 206, "height": 177 } + }, + "left-rear-thigh": { + "left-rear-thigh": { "x": 56.03, "y": 27.39, "rotation": 74.94, "width": 91, "height": 149 } + }, + "left-wing": { + "left-wing": { + "x": -36.32, + "y": -44.53, + "rotation": -83.7, + "width": 264, + "height": 589, + "sequence": { "count": 9, "digits": 2 } + } + }, + "right-front-leg": { + "right-front-leg": { "x": 17.8, "y": 4.23, "rotation": 37.63, "width": 101, "height": 89 } + }, + "right-front-thigh": { + "right-front-thigh": { "x": 35.29, "y": 2.11, "rotation": 130.33, "width": 108, "height": 108 } + }, + "right-front-toe1": { + "front-toe-b": { "x": 24.5, "y": -2.61, "rotation": 104.18, "width": 56, "height": 57 } + }, + "right-front-toe2": { + "front-toe-b": { "x": 26.39, "y": 1.17, "rotation": 104.58, "width": 56, "height": 57 } + }, + "right-front-toe3": { + "front-toe-b": { "x": 30.67, "y": -0.07, "rotation": 112.3, "width": 56, "height": 57 } + }, + "right-rear-leg": { + "right-rear-leg": { "x": 60.88, "y": -5.73, "rotation": -127.67, "width": 116, "height": 100 } + }, + "right-rear-thigh": { + "right-rear-thigh": { "x": 53.25, "y": 12.58, "rotation": 103.29, "width": 91, "height": 149 } + }, + "right-rear-toe1": { + "right-rear-toe": { "x": 54.76, "y": -5.72, "rotation": 134.79, "width": 109, "height": 77 } + }, + "right-rear-toe2": { + "right-rear-toe": { "x": 57.03, "y": -7.23, "rotation": 134.43, "width": 109, "height": 77 } + }, + "right-rear-toe3": { + "right-rear-toe": { "x": 47.46, "y": -7.64, "rotation": 134.34, "width": 109, "height": 77 } + }, + "right-wing": { + "right-wing": { + "x": 35.09, + "y": 78.11, + "rotation": -130.34, + "width": 365, + "height": 643, + "sequence": { "count": 9, "digits": 2 } + } + }, + "tail1": { + "tail01": { "x": 22.6, "y": -4.5, "rotation": 163.85, "width": 120, "height": 153 } + }, + "tail2": { + "tail02": { "x": 18.12, "y": -1.75, "rotation": 151.85, "width": 95, "height": 120 } + }, + "tail3": { + "tail03": { "x": 16.94, "y": -2.01, "rotation": 150.04, "width": 73, "height": 92 } + }, + "tail4": { + "tail04": { "x": 15.35, "y": -2.18, "rotation": 151.85, "width": 56, "height": 71 } + }, + "tail5": { + "tail05": { "x": 15.06, "y": -3.57, "rotation": 155, "width": 52, "height": 59 } + }, + "tail6": { + "tail06": { "x": 28.02, "y": -16.83, "rotation": -175.45, "width": 95, "height": 68 } + }, + "thiagobrayner": { + "thiagobrayner": { "y": -95, "width": 350, "height": 31 } + } + } + } +], +"animations": { + "flying": { + "bones": { + "back": { + "rotate": [ + { + "curve": [ 0.042, 2.86, 0.143, 10.41 ] + }, + { + "time": 0.1667, + "value": 11.59, + "curve": [ 0.245, 15.58, 0.383, 22.41 ] + }, + { + "time": 0.5, + "value": 22.4, + "curve": [ 0.593, 22.39, 0.75, -3.18 ] + }, + { + "time": 0.8333, + "value": -3.18, + "curve": [ 0.875, -3.18, 0.942, -2.19 ] + }, + { "time": 1 } + ] + }, + "neck": { + "rotate": [ + { + "curve": [ 0.092, -0.1, 0.304, -21.22 ] + }, + { + "time": 0.3333, + "value": -23.16, + "curve": [ 0.386, -26.7, 0.442, -31.89 ] + }, + { + "time": 0.5333, + "value": -31.93, + "curve": [ 0.644, -31.97, 0.888, -0.1 ] + }, + { "time": 1 } + ] + }, + "right-rear-leg": { + "rotate": [ + { + "curve": [ 0.054, -7.16, 0.227, -10.75 ] + }, + { + "time": 0.3333, + "value": -10.75, + "curve": [ 0.417, -10.75, 0.583, 23.32 ] + }, + { + "time": 0.6667, + "value": 23.32, + "curve": [ 0.792, 23.32, 0.881, 13.94 ] + }, + { "time": 1 } + ] + }, + "right-rear-toe3": { + "rotate": [ + { + "value": -7.31, + "curve": [ 0.051, -3.08, 0.097, 0 ] + }, + { + "time": 0.1333, + "curve": [ 0.258, 0, 0.508, -36.06 ] + }, + { + "time": 0.6333, + "value": -36.06, + "curve": [ 0.723, -36.06, 0.875, -17.83 ] + }, + { "time": 1, "value": -7.31 } + ] + }, + "right-rear-toe2": { + "rotate": [ + { + "value": -1.41, + "curve": [ 0.025, -0.6, 0.047, 0 ] + }, + { + "time": 0.0667, + "curve": [ 0.192, 0, 0.442, -20.32 ] + }, + { + "time": 0.5667, + "value": -20.32, + "curve": [ 0.673, -20.32, 0.868, -5.88 ] + }, + { "time": 1, "value": -1.41 } + ] + }, + "right-rear-toe1": { + "rotate": [ + { + "curve": [ 0.125, 0, 0.375, -18.71 ] + }, + { + "time": 0.5, + "value": -18.71, + "curve": [ 0.625, -18.71, 0.875, 0 ] + }, + { "time": 1 } + ] + }, + "head": { + "rotate": [ + { + "curve": [ 0.125, 0, 0.375, 1.04 ] + }, + { + "time": 0.5, + "value": 1.04, + "curve": [ 0.625, 1.04, 0.875, 0 ] + }, + { "time": 1 } + ] + }, + "chin": { + "rotate": [ + { + "curve": [ 0.136, -10.78, 0.217, -12.01 ] + }, + { + "time": 0.3333, + "value": -11.71, + "curve": [ 0.443, -11.42, 0.508, 21.91 ] + }, + { + "time": 0.6667, + "value": 22.01, + "curve": [ 0.847, 22.13, 0.95, 5.91 ] + }, + { "time": 1 } + ] + }, + "left-front-thigh": { + "rotate": [ + { + "value": -0.02, + "curve": [ 0.068, -0.02, 0.348, -32.09 ] + }, + { + "time": 0.5, + "value": -32.02, + "curve": [ 0.653, -31.95, 0.906, 0 ] + }, + { "time": 1 } + ] + }, + "right-front-thigh": { + "rotate": [ + { + "curve": [ 0.053, -5.52, 0.125, -12.96 ] + }, + { + "time": 0.1667, + "value": -12.96, + "curve": [ 0.25, -12.96, 0.417, 16.2 ] + }, + { + "time": 0.5, + "value": 16.2, + "curve": [ 0.625, 16.2, 0.866, 9.48 ] + }, + { "time": 1 } + ] + }, + "left-front-leg": { + "rotate": [ + { + "curve": [ 0.09, -12.24, 0.131, -21.37 ] + }, + { + "time": 0.2, + "value": -21.49, + "curve": [ 0.319, -21.94, 0.5, 77.25 ] + }, + { + "time": 0.6, + "value": 77.25, + "curve": [ 0.7, 77.25, 0.908, 12.37 ] + }, + { "time": 1 } + ] + }, + "left-front-toe1": { + "rotate": [ + { + "curve": [ 0.071, -4.48, 0.2, -12.68 ] + }, + { + "time": 0.2667, + "value": -12.68, + "curve": [ 0.375, -12.68, 0.592, 6.99 ] + }, + { + "time": 0.7, + "value": 6.99, + "curve": [ 0.775, 6.99, 0.904, 3.55 ] + }, + { "time": 1 } + ] + }, + "left-front-toe2": { + "scale": [ + { + "curve": [ 0.125, 1, 0.375, 1.331, 0.125, 1, 0.375, 1.029 ] + }, + { + "time": 0.5, + "x": 1.331, + "y": 1.029, + "curve": [ 0.625, 1.331, 0.875, 1, 0.625, 1.029, 0.875, 1 ] + }, + { "time": 1 } + ] + }, + "left-front-toe4": { + "rotate": [ + { + "curve": [ 0.125, 0, 0.375, 26.52 ] + }, + { + "time": 0.5, + "value": 26.52, + "curve": [ 0.625, 26.52, 0.875, 0 ] + }, + { "time": 1 } + ], + "scale": [ + { + "curve": [ 0.125, 1, 0.375, 1.211, 0.125, 1, 0.375, 0.993 ] + }, + { + "time": 0.5, + "x": 1.211, + "y": 0.993, + "curve": [ 0.625, 1.211, 0.875, 1, 0.625, 0.993, 0.875, 1 ] + }, + { "time": 1 } + ] + }, + "left-front-toe3": { + "rotate": [ + { + "curve": [ 0.125, 0, 0.375, 16.99 ] + }, + { + "time": 0.5, + "value": 16.99, + "curve": [ 0.625, 16.99, 0.875, 0 ] + }, + { "time": 1 } + ], + "scale": [ + { + "curve": [ 0.125, 1, 0.375, 1.355, 0.125, 1, 0.375, 1.008 ] + }, + { + "time": 0.5, + "x": 1.355, + "y": 1.008, + "curve": [ 0.625, 1.355, 0.875, 1, 0.625, 1.008, 0.875, 1 ] + }, + { "time": 1 } + ] + }, + "right-front-leg": { + "rotate": [ + { + "curve": [ 0.11, -8.79, 0.179, -18.3 ] + }, + { + "time": 0.2667, + "value": -18.31, + "curve": [ 0.352, -18.33, 0.55, 15.48 ] + }, + { + "time": 0.6333, + "value": 15.48, + "curve": [ 0.758, 15.48, 0.875, 7.9 ] + }, + { "time": 1 } + ] + }, + "right-front-toe1": { + "rotate": [ + { + "curve": [ 0.042, 0, 0.147, 8.28 ] + }, + { + "time": 0.1667, + "value": 10.52, + "curve": [ 0.238, 18.41, 0.406, 35.06 ] + }, + { + "time": 0.5, + "value": 34.84, + "curve": [ 0.577, 34.84, 0.669, 29.65 ] + }, + { + "time": 0.7667, + "value": 20.24, + "curve": [ 0.852, 11.97, 0.941, 0 ] + }, + { "time": 1 } + ], + "scale": [ + { + "curve": [ 0.125, 1, 0.375, 1.412, 0.125, 1, 0.375, 1 ] + }, + { + "time": 0.5, + "x": 1.412, + "curve": [ 0.625, 1.412, 0.875, 1, 0.625, 1, 0.875, 1 ] + }, + { "time": 1 } + ] + }, + "right-front-toe2": { + "rotate": [ + { + "curve": [ 0.042, 0, 0.125, 24.7 ] + }, + { + "time": 0.1667, + "value": 24.7, + "curve": [ 0.25, 24.7, 0.417, 7.35 ] + }, + { + "time": 0.5, + "value": 7.35, + "curve": [ 0.544, 7.35, 0.671, 33.55 ] + }, + { + "time": 0.7333, + "value": 32.36, + "curve": [ 0.853, 30.19, 0.919, 0 ] + }, + { "time": 1 } + ], + "scale": [ + { + "curve": [ 0.125, 1, 0.375, 1.407, 0.125, 1, 0.375, 1.058 ] + }, + { + "time": 0.5, + "x": 1.407, + "y": 1.058, + "curve": [ 0.625, 1.407, 0.875, 1, 0.625, 1.058, 0.875, 1 ] + }, + { "time": 1 } + ] + }, + "right-front-toe3": { + "rotate": [ + { + "curve": [ 0.033, 0, 0.1, 11.01 ] + }, + { + "time": 0.1333, + "value": 11.01, + "curve": [ 0.208, 11.01, 0.358, -5.41 ] + }, + { + "time": 0.4333, + "value": -5.41, + "curve": [ 0.508, -5.41, 0.658, 20.3 ] + }, + { + "time": 0.7333, + "value": 20.3, + "curve": [ 0.8, 20.3, 0.933, 0 ] + }, + { "time": 1 } + ], + "scale": [ + { + "curve": [ 0.125, 1, 0.375, 1.33, 0.125, 1, 0.375, 1.182 ] + }, + { + "time": 0.5, + "x": 1.33, + "y": 1.182, + "curve": [ 0.625, 1.33, 0.875, 1, 0.625, 1.182, 0.875, 1 ] + }, + { "time": 1 } + ] + }, + "right-wing": { + "rotate": [ + { + "value": -9.59, + "curve": [ 0.131, -9.59, 0.191, 22.41 ] + }, + { + "time": 0.3333, + "value": 22.81, + "curve": [ 0.417, 23.05, 0.533, 7.5 ] + }, + { + "time": 0.5667, + "value": 2.07, + "curve": [ 0.588, -1.48, 0.639, -8.35 ] + }, + { + "time": 0.7, + "value": -8.29, + "curve": [ 0.743, -8.24, 0.792, 5.28 ] + }, + { + "time": 0.8333, + "value": 5.02, + "curve": [ 0.904, 4.59, 0.957, -9.72 ] + }, + { "time": 1, "value": -9.59 } + ] + }, + "left-wing": { + "rotate": [ + { + "curve": [ 0.039, 0, 0.084, -21.1 ] + }, + { + "time": 0.1333, + "value": -21.1, + "curve": [ 0.292, -21.1, 0.505, 4.34 ] + }, + { + "time": 0.6333, + "value": 4.48, + "curve": [ 0.679, 4.48, 0.699, -6.03 ] + }, + { + "time": 0.7667, + "value": -5.95, + "curve": [ 0.857, -5.84, 0.936, 0 ] + }, + { "time": 1 } + ] + }, + "left-rear-leg": { + "rotate": [ + { + "curve": [ 0.08, 5.97, 0.25, 15.82 ] + }, + { + "time": 0.3333, + "value": 15.82, + "curve": [ 0.425, 15.82, 0.608, -17.33 ] + }, + { + "time": 0.7, + "value": -17.33, + "curve": [ 0.775, -17.33, 0.871, -8.98 ] + }, + { "time": 1 } + ] + }, + "center": { + "rotate": [ + { + "curve": [ 0.072, 6.07, 0.213, 17.69 ] + }, + { + "time": 0.3333, + "value": 17.69, + "curve": [ 0.454, 17.68, 0.583, -15 ] + }, + { + "time": 0.6667, + "value": -15, + "curve": [ 0.804, -15, 0.966, -3.62 ] + }, + { "time": 1 } + ], + "translate": [ + { + "curve": [ 0.125, 0, 0.375, -0.01, 0.162, 0, 0.288, 144.81 ] + }, + { + "time": 0.5, + "x": -0.01, + "y": 144.61, + "curve": [ 0.625, -0.01, 0.875, 0, 0.718, 145.5, 0.832, 0 ] + }, + { "time": 1 } + ] + }, + "tail1": { + "rotate": [ + { + "value": -1.88, + "curve": [ 0.125, -1.88, 0.375, -67.4 ] + }, + { + "time": 0.5, + "value": -67.4, + "curve": [ 0.625, -67.4, 0.875, -1.88 ] + }, + { "time": 1, "value": -1.88 } + ] + }, + "tail2": { + "rotate": [ + { + "value": -27.45, + "curve": [ 0.125, -27.45, 0.375, 2.68 ] + }, + { + "time": 0.5, + "value": 2.68, + "curve": [ 0.625, 2.68, 0.875, -27.45 ] + }, + { "time": 1, "value": -27.45 } + ] + }, + "tail3": { + "rotate": [ + { + "value": -7.63, + "curve": [ 0.125, -7.63, 0.375, 24.54 ] + }, + { + "time": 0.5, + "value": 24.54, + "curve": [ 0.625, 24.54, 0.875, -7.63 ] + }, + { "time": 1, "value": -7.63 } + ] + }, + "tail4": { + "rotate": [ + { + "value": -10.04, + "curve": [ 0.125, -10.04, 0.375, 1.03 ] + }, + { + "time": 0.5, + "value": 1.03, + "curve": [ 0.625, 1.03, 0.875, -10.04 ] + }, + { "time": 1, "value": -10.04 } + ] + }, + "tail5": { + "rotate": [ + { + "value": -11.26, + "curve": [ 0.152, -11.21, 0.334, 9.91 ] + }, + { + "time": 0.5, + "value": 9.93, + "curve": [ 0.662, 9.95, 0.844, -11.17 ] + }, + { "time": 1, "value": -11.26 } + ] + }, + "tail6": { + "rotate": [ + { + "value": 26.68, + "curve": [ 0.194, 26.72, 0.328, 35.84 ] + }, + { + "time": 0.5, + "value": 35.84, + "curve": [ 0.678, 35.84, 0.818, 26.62 ] + }, + { "time": 1, "value": 26.68 } + ] + }, + "right-rear-thigh": { + "rotate": [ + { + "curve": [ 0.055, -6.4, 0.166, -22.66 ] + }, + { + "time": 0.2667, + "value": -22.66, + "curve": [ 0.384, -22.66, 0.517, 19.08 ] + }, + { + "time": 0.6333, + "value": 19.32, + "curve": [ 0.746, 19.56, 0.91, 9.17 ] + }, + { "time": 1 } + ] + } + }, + "attachments": { + "default": { + "left-wing": { + "left-wing": { + "sequence": [ + { "mode": "loop", "delay": 0.0667 }, + { "time": 0.6 }, + { "time": 0.7333, "mode": "loop", "index": 1 }, + { "time": 0.8, "mode": "loop", "index": 2, "delay": 0.0333 }, + { "time": 0.9667, "index": 7 } + ] + } + }, + "right-wing": { + "right-wing": { + "sequence": [ + { "mode": "loop", "delay": 0.0667 }, + { "time": 0.6 }, + { "time": 0.7333, "mode": "loop", "index": 1 }, + { "time": 0.8, "mode": "loop", "index": 2, "delay": 0.0333 }, + { "time": 0.9667, "index": 7 } + ] + } + } + } + } + } +} +} \ No newline at end of file diff --git a/spine-haxe/example/assets/dragon-ess.skel b/spine-haxe/example/assets/dragon-ess.skel new file mode 100644 index 0000000000..2fd7965004 Binary files /dev/null and b/spine-haxe/example/assets/dragon-ess.skel differ diff --git a/spine-haxe/example/assets/dragon.atlas b/spine-haxe/example/assets/dragon.atlas new file mode 100644 index 0000000000..bca5b1e1bb --- /dev/null +++ b/spine-haxe/example/assets/dragon.atlas @@ -0,0 +1,123 @@ +dragon.png + size: 1024, 1024 + filter: Linear, Linear +back + bounds: 564, 534, 190, 185 +chest + bounds: 2, 645, 136, 122 +chin + bounds: 140, 619, 214, 146 +front-toe-a + bounds: 2, 862, 29, 50 + rotate: 90 +front-toe-b + bounds: 467, 835, 56, 57 + rotate: 90 +head + bounds: 756, 398, 296, 260 + rotate: 90 +left-front-leg + bounds: 599, 834, 84, 57 +left-front-thigh + bounds: 782, 819, 84, 72 +left-rear-leg + bounds: 356, 558, 206, 177 +left-rear-thigh + bounds: 216, 767, 91, 149 + rotate: 90 +left-wing01 + bounds: 2, 268, 264, 589 + rotate: 90 +left-wing02 + bounds: 2, 2, 264, 589 + rotate: 90 +right-front-leg + bounds: 113, 769, 101, 89 +right-front-thigh + bounds: 758, 709, 108, 108 +right-rear-leg + bounds: 640, 721, 116, 100 +right-rear-thigh + bounds: 367, 742, 91, 149 + rotate: 90 +right-rear-toe + bounds: 2, 781, 109, 77 +tail01 + bounds: 868, 696, 120, 153 + rotate: 90 +tail02 + bounds: 518, 737, 95, 120 + rotate: 90 +tail03 + bounds: 868, 818, 73, 92 + rotate: 90 +tail04 + bounds: 526, 835, 56, 71 + rotate: 90 +tail05 + bounds: 406, 839, 52, 59 + rotate: 90 +tail06 + bounds: 685, 823, 95, 68 +thiagobrayner + bounds: 54, 860, 350, 31 + +dragon_2.png + size: 1024, 1024 + filter: Linear, Linear +left-wing03 + bounds: 2, 534, 264, 589 + rotate: 90 +left-wing04 + bounds: 2, 268, 264, 589 + rotate: 90 +left-wing05 + bounds: 593, 209, 264, 589 +left-wing06 + bounds: 2, 2, 264, 589 + rotate: 90 + +dragon_3.png + size: 1024, 1024 + filter: Linear, Linear +left-wing07 + bounds: 2, 694, 264, 589 + rotate: 90 +left-wing08 + bounds: 2, 428, 264, 589 + rotate: 90 +left-wing09 + bounds: 593, 369, 264, 589 +right-wing01 + bounds: 2, 2, 365, 643 + rotate: 90 + +dragon_4.png + size: 1024, 1024 + filter: Linear, Linear +right-wing02 + bounds: 2, 369, 365, 643 +right-wing03 + bounds: 369, 369, 365, 643 +right-wing04 + bounds: 2, 2, 365, 643 + rotate: 90 + +dragon_5.png + size: 1024, 1024 + filter: Linear, Linear +right-wing05 + bounds: 2, 369, 365, 643 +right-wing06 + bounds: 369, 369, 365, 643 +right-wing07 + bounds: 2, 2, 365, 643 + rotate: 90 + +dragon_6.png + size: 1024, 1024 + filter: Linear, Linear +right-wing08 + bounds: 2, 2, 365, 643 +right-wing09 + bounds: 369, 2, 365, 643 diff --git a/spine-haxe/example/assets/dragon.png b/spine-haxe/example/assets/dragon.png new file mode 100644 index 0000000000..f39141c470 Binary files /dev/null and b/spine-haxe/example/assets/dragon.png differ diff --git a/spine-haxe/example/assets/dragon_2.png b/spine-haxe/example/assets/dragon_2.png new file mode 100644 index 0000000000..09429b5f81 Binary files /dev/null and b/spine-haxe/example/assets/dragon_2.png differ diff --git a/spine-haxe/example/assets/dragon_3.png b/spine-haxe/example/assets/dragon_3.png new file mode 100644 index 0000000000..1a0e35759d Binary files /dev/null and b/spine-haxe/example/assets/dragon_3.png differ diff --git a/spine-haxe/example/assets/dragon_4.png b/spine-haxe/example/assets/dragon_4.png new file mode 100644 index 0000000000..80239b8d40 Binary files /dev/null and b/spine-haxe/example/assets/dragon_4.png differ diff --git a/spine-haxe/example/assets/dragon_5.png b/spine-haxe/example/assets/dragon_5.png new file mode 100644 index 0000000000..5a98f7efa4 Binary files /dev/null and b/spine-haxe/example/assets/dragon_5.png differ diff --git a/spine-haxe/example/assets/dragon_6.png b/spine-haxe/example/assets/dragon_6.png new file mode 100644 index 0000000000..f40aed7c71 Binary files /dev/null and b/spine-haxe/example/assets/dragon_6.png differ diff --git a/spine-haxe/example/assets/goblins-pro.json b/spine-haxe/example/assets/goblins-pro.json new file mode 100644 index 0000000000..4819a65738 --- /dev/null +++ b/spine-haxe/example/assets/goblins-pro.json @@ -0,0 +1,1232 @@ +{ +"skeleton": { + "hash": "CdaHvXeCMjE", + "spine": "4.1.17", + "x": -134.12, + "y": -3.28, + "width": 266.94, + "height": 349.61, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { "name": "hip", "parent": "root", "x": 0.65, "y": 114.41, "color": "ffcf00ff" }, + { + "name": "torso", + "parent": "hip", + "length": 85.83, + "rotation": 93.93, + "x": -6.42, + "y": 1.98, + "color": "ffcf00ff" + }, + { + "name": "neck", + "parent": "torso", + "length": 18.38, + "rotation": -1.52, + "x": 81.68, + "y": -6.35, + "color": "ffcf00ff" + }, + { + "name": "head", + "parent": "neck", + "length": 68.29, + "rotation": -13.92, + "x": 20.94, + "y": 11.59, + "color": "ffcf00ff" + }, + { + "name": "left-shoulder", + "parent": "torso", + "length": 35.43, + "rotation": -156.96, + "x": 74.05, + "y": -20.39, + "color": "ff0000ff" + }, + { + "name": "left-arm", + "parent": "left-shoulder", + "length": 35.62, + "rotation": 28.17, + "x": 37.86, + "y": -2.35, + "color": "ff0000ff" + }, + { + "name": "left-upper-leg", + "parent": "hip", + "length": 50.4, + "rotation": -89.1, + "x": 14.45, + "y": 2.81, + "color": "ff0000ff" + }, + { + "name": "left-lower-leg", + "parent": "left-upper-leg", + "length": 49.9, + "rotation": -16.66, + "x": 56.34, + "y": 0.99, + "color": "ff0000ff" + }, + { + "name": "left-foot", + "parent": "left-lower-leg", + "length": 46.5, + "rotation": 102.43, + "x": 58.94, + "y": -7.61, + "color": "ff0000ff" + }, + { + "name": "left-hand", + "parent": "left-arm", + "length": 11.52, + "rotation": 2.7, + "x": 35.62, + "y": 0.08, + "color": "ff0000ff" + }, + { "name": "pelvis", "parent": "hip", "x": 1.41, "y": -6.58, "color": "ffcf00ff" }, + { + "name": "right-shoulder", + "parent": "torso", + "length": 37.25, + "rotation": 133.89, + "x": 76.02, + "y": 18.15, + "color": "62ff00ff" + }, + { + "name": "right-arm", + "parent": "right-shoulder", + "length": 36.75, + "rotation": 36.33, + "x": 37.61, + "y": 0.31, + "color": "62ff00ff" + }, + { + "name": "right-upper-leg", + "parent": "hip", + "length": 42.46, + "rotation": -97.5, + "x": -20.08, + "y": -6.84, + "color": "62ff00ff" + }, + { + "name": "right-lower-leg", + "parent": "right-upper-leg", + "length": 58.53, + "rotation": -14.34, + "x": 43, + "y": -0.62, + "color": "62ff00ff" + }, + { + "name": "right-foot", + "parent": "right-lower-leg", + "length": 45.46, + "rotation": 110.31, + "x": 64.89, + "y": 0.04, + "color": "62ff00ff" + }, + { + "name": "right-hand", + "parent": "right-arm", + "length": 15.32, + "rotation": 2.36, + "x": 36.9, + "y": 0.35, + "color": "62ff00ff" + }, + { + "name": "spear1", + "parent": "left-hand", + "length": 65.07, + "rotation": 102.43, + "x": 0.48, + "y": 17.03, + "color": "ffcf00ff" + }, + { + "name": "spear2", + "parent": "spear1", + "length": 61.42, + "rotation": 0.9, + "x": 65.06, + "y": 0.04, + "color": "ffcf00ff" + }, + { + "name": "spear3", + "parent": "spear2", + "length": 76.8, + "rotation": -0.9, + "x": 61.89, + "y": 0.57, + "color": "ffcf00ff" + } +], +"slots": [ + { "name": "left-shoulder", "bone": "left-shoulder", "attachment": "left-shoulder" }, + { "name": "left-arm", "bone": "left-arm", "attachment": "left-arm" }, + { "name": "left-hand-item", "bone": "left-hand", "attachment": "spear" }, + { "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": "neck", "bone": "neck", "attachment": "neck" }, + { "name": "torso", "bone": "torso", "attachment": "torso" }, + { "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": "undie-straps", "bone": "pelvis", "attachment": "undie-straps" }, + { "name": "undies", "bone": "pelvis", "attachment": "undies" }, + { "name": "right-upper-leg", "bone": "right-upper-leg", "attachment": "right-upper-leg" }, + { "name": "head", "bone": "head", "attachment": "head" }, + { "name": "eyes", "bone": "head" }, + { "name": "right-shoulder", "bone": "right-shoulder", "attachment": "right-shoulder" }, + { "name": "right-arm", "bone": "right-arm", "attachment": "right-arm" }, + { "name": "right-hand-thumb", "bone": "right-hand", "attachment": "right-hand-thumb" }, + { "name": "right-hand-item", "bone": "right-hand", "attachment": "dagger" }, + { "name": "right-hand", "bone": "right-hand", "attachment": "right-hand" }, + { "name": "right-hand-item2", "bone": "right-hand", "attachment": "shield" } +], +"skins": [ + { + "name": "default", + "attachments": { + "left-hand-item": { + "dagger": { "x": 7.88, "y": -23.46, "rotation": 10.48, "width": 26, "height": 108 }, + "spear": { + "type": "mesh", + "uvs": [ 1, 0.11236, 0.77096, 0.13278, 0.76608, 0.21781, 0.75642, 0.386, 0.74723, 0.54607, 0.72117, 1, 0.28838, 1, 0.24208, 0.54328, 0.2259, 0.38362, 0.20891, 0.21605, 0.20043, 0.13243, 0, 0.1152, 0.4527, 0, 0.58399, 0 ], + "triangles": [ 4, 7, 3, 6, 7, 4, 5, 6, 4, 10, 11, 12, 1, 13, 0, 12, 13, 1, 10, 12, 1, 9, 10, 1, 2, 9, 1, 8, 9, 2, 3, 8, 2, 7, 8, 3 ], + "vertices": [ 1, 20, 38.54, -10.89, 1, 1, 20, 30.97, -5.93, 1, 2, 19, 61.48, -5.59, 0.5116, 20, -0.31, -6.16, 0.4884, 2, 18, 64.73, -5.03, 0.50272, 19, -0.4, -5.07, 0.49728, 1, 10, 4.57, 23.91, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.43, -141.1, 1, 1, 10, -6.49, 22.41, 1, 2, 18, 65.48, 6.65, 0.50272, 19, 0.53, 6.6, 0.49728, 2, 19, 62.19, 6.67, 0.5116, 20, 0.2, 6.1, 0.4884, 1, 20, 30.97, 6.62, 1, 1, 20, 37.26, 11.09, 1, 1, 20, 79.75, 1.6, 1, 1, 20, 79.78, -1.29, 1 ], + "hull": 14, + "edges": [ 24, 22, 22, 20, 10, 12, 2, 0, 24, 26, 0, 26, 8, 10, 12, 14, 6, 8, 14, 16, 2, 4, 4, 6, 16, 18, 18, 20, 20, 2 ], + "width": 22, + "height": 368 + } + }, + "right-hand-item": { + "dagger": { + "type": "mesh", + "uvs": [ 0.78092, 0.38453, 1, 0.38406, 1, 0.44882, 0.73954, 0.4687, 0.74642, 0.81344, 0.34023, 1, 0.15434, 1, 0.11304, 0.78858, 0.23007, 0.47368, 0, 0.45047, 0, 0.38622, 0.22368, 0.38573, 0.24384, 0, 1, 0 ], + "triangles": [ 0, 12, 13, 11, 12, 0, 0, 1, 2, 9, 10, 11, 3, 11, 0, 3, 0, 2, 8, 11, 3, 9, 11, 8, 5, 6, 7, 4, 5, 8, 4, 8, 3, 5, 7, 8 ], + "vertices": [ 15.49, -12.83, 21.14, -13.57, 20.16, -20.5, 13.16, -21.68, 8.13, -58.57, -5.14, -77.04, -9.92, -76.37, -7.8, -53.61, -0.03, -20.36, -5.61, -17.04, -4.64, -10.17, 1.13, -10.93, 7.47, 30.24, 26.93, 27.5 ], + "hull": 14, + "edges": [ 22, 20, 24, 26, 22, 24, 2, 0, 0, 22, 0, 26, 12, 14, 14, 16, 18, 20, 16, 18, 2, 4, 4, 6, 6, 8, 10, 12, 8, 10 ], + "width": 26, + "height": 108 + } + }, + "right-hand-item2": { + "shield": { "rotation": 93.5, "width": 70, "height": 72 } + } + } + }, + { + "name": "goblin", + "attachments": { + "eyes": { + "eyes-closed": { "name": "goblin/eyes-closed", "x": 29.19, "y": -24.9, "rotation": -88.93, "width": 34, "height": 12 } + }, + "head": { + "head": { + "name": "goblin/head", + "type": "mesh", + "uvs": [ 0, 0.60495, 0.14172, 0.51451, 0.24218, 0.55229, 0.32668, 0.67807, 0.37969, 0.79352, 0.53505, 0.93015, 0.86057, 1, 0.94071, 0.94169, 0.92099, 0.69924, 0.9888, 0.65498, 0.99003, 0.51643, 0.89633, 0.43562, 0.94487, 0.41917, 1, 0.39713, 1, 0.2836, 0.94017, 0.27027, 0.87906, 0.25666, 0.80755, 0.16045, 0.66699, 0.01998, 0.4734, 0.01806, 0.29215, 0.19893, 0.25393, 0.31824, 0.09117, 0.32401, 0, 0.44331, 0.43271, 0.69154, 0.46601, 0.47795, 0.35997, 0.31246, 0.73474, 0.68594, 0.72216, 0.57426, 0.8818, 0.5583, 0.80268, 0.51016 ], + "triangles": [ 5, 27, 6, 7, 27, 8, 7, 6, 27, 4, 24, 5, 5, 24, 27, 4, 3, 24, 27, 29, 8, 8, 29, 9, 24, 28, 27, 24, 25, 28, 24, 3, 25, 29, 28, 30, 29, 27, 28, 25, 2, 26, 25, 3, 2, 9, 29, 10, 0, 23, 1, 28, 25, 30, 29, 11, 10, 29, 30, 11, 2, 21, 26, 2, 1, 21, 23, 22, 1, 1, 22, 21, 30, 16, 11, 30, 17, 16, 30, 25, 17, 17, 26, 18, 18, 26, 19, 26, 17, 25, 11, 15, 12, 11, 16, 15, 12, 15, 13, 15, 14, 13, 21, 20, 26, 26, 20, 19 ], + "vertices": [ 14.56, 50.42, 23.12, 35.48, 17.47, 26.36, 11.58, 16.87, 3.75, 11.71, -5.9, -3.92, -11.83, -37.24, -8.32, -45.64, 7.75, -44.24, 10.4, -51.34, 19.53, -51.83, 25.21, -43.16, 26.13, -47.43, 27.36, -53.16, 34.84, -53.46, 35.97, -47.34, 37.11, -41.09, 43.75, -33.98, 53.59, -19.88, 54.51, 0.04, 43.32, 19.17, 35.61, 23.41, 35.89, 40.18, 28.4, 49.87, 10.26, 5.99, 24.21, 2, 35.55, 12.48, 9.39, -25.11, 16.8, -24.31, 17.21, -40.66, 20.69, -33.02 ], + "hull": 24, + "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 26, 28, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 0, 46, 6, 48, 48, 50, 50, 52, 52, 42, 2, 4, 4, 6, 4, 52, 2, 44, 22, 32, 22, 24, 24, 26, 28, 30, 30, 32, 24, 30, 16, 54, 54, 56, 20, 58, 58, 54, 16, 58, 22, 60, 60, 56, 58, 60 ], + "width": 103, + "height": 66 + } + }, + "left-arm": { + "left-arm": { + "name": "goblin/left-arm", + "type": "mesh", + "uvs": [ 0.68993, 0.29284, 1, 0.46364, 1, 0.74644, 0.8409, 1, 0.66344, 1, 0.33766, 0.64284, 0, 0.44124, 0, 0, 0.34296, 0 ], + "triangles": [ 3, 4, 2, 4, 5, 2, 5, 0, 2, 0, 1, 2, 0, 5, 8, 5, 6, 8, 6, 7, 8 ], + "vertices": [ 18.6, 8.81, 32.2, 10.32, 38.02, 1.63, 38.08, -9.63, 32.32, -13.5, 14.37, -9.62, -0.76, -10.78, -9.85, 2.78, 1.29, 10.25 ], + "hull": 9, + "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 6, 4, 6, 8, 8, 10, 12, 14, 10, 12 ], + "width": 37, + "height": 35 + } + }, + "left-foot": { + "left-foot": { + "name": "goblin/left-foot", + "type": "mesh", + "uvs": [ 0.15734, 0.31874, 0.08195, 0.78503, 0.15884, 0.99367, 0.41633, 0.96805, 0.68823, 0.97637, 1, 0.96388, 0.99386, 0.73501, 0.85295, 0.51863, 0.61479, 0.31056, 0.46992, 0, 0.48033, 0.75604, 0.75995, 0.77706 ], + "triangles": [ 0, 9, 8, 10, 0, 8, 10, 8, 7, 11, 10, 7, 11, 7, 6, 1, 0, 10, 11, 6, 5, 3, 1, 10, 4, 10, 11, 4, 11, 5, 3, 10, 4, 2, 1, 3 ], + "vertices": [ 2.28, 13.07, -1.77, -1.64, 3.6, -7.81, 20.26, -6.04, 37.92, -5.28, 58.13, -3.71, 57.32, 3.35, 47.78, 9.51, 31.95, 15.05, 21.99, 24.12, 24.03, 0.76, 42.21, 1.16 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 6, 20, 20, 16, 2, 20, 8, 22, 22, 14, 20, 22, 22, 10 ], + "width": 65, + "height": 31 + } + }, + "left-hand": { + "left-hand": { + "name": "goblin/left-hand", + "type": "mesh", + "uvs": [ 0.51801, 0.12578, 1, 0.16286, 0.99789, 0.50578, 0.69745, 1, 0.37445, 1, 0, 0.80051, 0, 0.42793, 0.17601, 0, 0.43568, 0 ], + "triangles": [ 2, 0, 1, 0, 5, 6, 6, 7, 0, 0, 7, 8, 3, 4, 0, 4, 5, 0, 2, 3, 0 ], + "vertices": [ -3.11, 15.43, 10.84, 22.27, 15.5, 14.56, 18.36, -8.96, 9.48, -14.33, -4.59, -14.3, -11.64, -2.64, -14.89, 13.68, -7.76, 18 ], + "hull": 9, + "edges": [ 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 14, 16, 12, 14 ], + "width": 36, + "height": 41 + } + }, + "left-lower-leg": { + "left-lower-leg": { + "name": "goblin/left-lower-leg", + "type": "mesh", + "uvs": [ 0.95509, 0.2075, 0.81927, 0.65214, 0.94754, 0.77308, 0.67842, 0.97347, 0.46464, 1, 0.26845, 1, 0.04964, 0.90707, 0.21061, 0.60115, 0.07479, 0.40195, 0.18545, 0, 0.28858, 0 ], + "triangles": [ 10, 8, 9, 1, 7, 10, 7, 8, 10, 0, 1, 10, 1, 4, 7, 3, 1, 2, 5, 6, 7, 7, 4, 5, 1, 3, 4 ], + "vertices": [ -0.2, 6.82, 30.97, 10.96, 37.97, 17.34, 53.88, 12.6, 57.59, 6.32, 59.35, 0.09, 55.05, -8.63, 33, -9.34, 20.8, -17.44, -7.28, -21.57, -8.2, -18.29 ], + "hull": 11, + "edges": [ 20, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 18, 20, 16, 18 ], + "width": 33, + "height": 70 + } + }, + "left-shoulder": { + "left-shoulder": { + "name": "goblin/left-shoulder", + "type": "mesh", + "uvs": [ 0.7377, 0.40692, 1, 0.75238, 1, 1, 0.62046, 1, 0.26184, 0.56602, 0, 0.29783, 0, 0, 0.44115, 0 ], + "triangles": [ 3, 1, 2, 3, 0, 1, 3, 4, 0, 4, 7, 0, 4, 5, 7, 5, 6, 7 ], + "vertices": [ 15.18, 5.74, 32.17, 5.33, 41.79, 0.22, 36.63, -9.5, 14.89, -9.73, 0.9, -10.9, -10.67, -4.75, -4.67, 6.55 ], + "hull": 8, + "edges": [ 12, 14, 14, 0, 4, 2, 0, 2, 4, 6, 6, 8, 10, 12, 8, 10 ], + "width": 29, + "height": 44 + } + }, + "left-upper-leg": { + "left-upper-leg": { + "name": "goblin/left-upper-leg", + "type": "mesh", + "uvs": [ 1, 0.12168, 1, 0.54873, 0.91067, 0.78907, 0.76568, 1, 0.30871, 0.95791, 0, 0.68777, 0, 0.21901, 0.51962, 0, 0.87552, 0 ], + "triangles": [ 7, 8, 0, 5, 6, 7, 0, 1, 7, 4, 5, 7, 1, 4, 7, 2, 4, 1, 3, 4, 2 ], + "vertices": [ 2.34, 13.07, 33.51, 12.57, 51, 9.34, 66.32, 4.31, 63.01, -10.71, 43.13, -20.59, 8.91, -20.04, -6.8, -2.64, -6.61, 9.1 ], + "hull": 9, + "edges": [ 10, 8, 8, 6, 6, 4, 4, 2, 10, 12, 12, 14, 14, 16, 2, 0, 16, 0 ], + "width": 33, + "height": 73 + } + }, + "neck": { + "neck": { + "name": "goblin/neck", + "type": "mesh", + "uvs": [ 0.81968, 0.27365, 0.92101, 0.82048, 0.47135, 1, 0.15679, 0.93541, 0, 0.7556, 0.19268, 0.51834, 0.15468, 0.35707, 0, 0.2199, 0.13568, 0, 0.68879, 0, 0.70146, 0.53873 ], + "triangles": [ 3, 5, 2, 2, 10, 1, 2, 5, 10, 3, 4, 5, 10, 0, 1, 0, 10, 6, 10, 5, 6, 7, 8, 6, 6, 9, 0, 6, 8, 9 ], + "vertices": [ 18.63, -11.66, -3.98, -13.86, -10.29, 2.77, -6.92, 13.9, 0.8, 19.06, 10.06, 11.51, 16.75, 12.45, 22.72, 17.65, 31.4, 12.2, 30.12, -7.68, 8.05, -6.71 ], + "hull": 10, + "edges": [ 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 20, 20, 0, 0, 18, 16, 18, 14, 16, 0, 2 ], + "width": 36, + "height": 41 + } + }, + "pelvis": { + "pelvis": { + "name": "goblin/pelvis", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 25.38, -20.73, -36.62, -20.73, -36.62, 22.27, 25.38, 22.27 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 62, + "height": 43 + } + }, + "right-arm": { + "right-arm": { + "name": "goblin/right-arm", + "type": "mesh", + "uvs": [ 1, 0.09223, 1, 0.8501, 0.72058, 1, 0.24385, 1, 0, 0.86559, 0.20823, 0.1092, 0.50903, 0, 0.85342, 0 ], + "triangles": [ 1, 2, 6, 6, 2, 5, 1, 6, 0, 4, 5, 3, 2, 3, 5, 6, 7, 0 ], + "vertices": [ -4.75, 8.89, 33.03, 11.74, 40.99, 5.9, 41.82, -5.03, 35.54, -11.13, -2.54, -9.2, -8.5, -2.72, -9.1, 5.18 ], + "hull": 8, + "edges": [ 8, 6, 4, 6, 4, 2, 12, 14, 2, 0, 14, 0, 10, 12, 8, 10 ], + "width": 23, + "height": 50 + } + }, + "right-foot": { + "right-foot": { + "name": "goblin/right-foot", + "type": "mesh", + "uvs": [ 0.40851, 0.00471, 0.59088, 0.33404, 0.75959, 0.48311, 0.88907, 0.59751, 0.97533, 0.89392, 0.90386, 1, 0.6722, 1, 0.38633, 1, 0.08074, 1, 0, 0.88921, 0, 0.65985, 0, 0.46578, 0.0906, 0.0988, 0.305, 0, 0.47461, 0.71258, 0.71501, 0.74681 ], + "triangles": [ 1, 10, 11, 1, 13, 0, 14, 1, 2, 1, 12, 13, 12, 1, 11, 14, 10, 1, 15, 14, 2, 15, 2, 3, 9, 10, 14, 15, 3, 4, 7, 8, 9, 14, 7, 9, 6, 14, 15, 5, 6, 15, 7, 14, 6, 4, 5, 15 ], + "vertices": [ 17.36, 26, 29.14, 15.44, 39.89, 10.81, 48.15, 7.25, 53.84, -2.38, 49.43, -6, 34.85, -6.39, 16.84, -6.87, -2.4, -7.38, -7.59, -3.87, -7.79, 3.7, -7.96, 10.1, -2.57, 22.36, 10.84, 25.98, 22.15, 2.76, 37.32, 2.03 ], + "hull": 14, + "edges": [ 0, 2, 6, 8, 8, 10, 16, 18, 22, 24, 24, 26, 0, 26, 10, 12, 2, 4, 4, 6, 12, 14, 14, 16, 18, 20, 20, 22, 2, 28, 28, 14, 20, 28, 4, 30, 30, 12, 28, 30, 30, 8 ], + "width": 63, + "height": 33 + } + }, + "right-hand": { + "right-hand": { + "name": "goblin/right-hand", + "type": "mesh", + "uvs": [ 0.17957, 0, 0, 0.44772, 0, 0.79734, 0.20057, 0.94264, 0.55057, 1, 0.8539, 1, 0.89824, 0.82005, 0.8259, 0.74286, 0.84224, 0.49994, 0.96357, 0.34102, 0.66024, 0 ], + "triangles": [ 8, 10, 9, 0, 10, 1, 8, 2, 1, 8, 1, 10, 7, 3, 8, 3, 2, 8, 4, 3, 7, 5, 7, 6, 4, 7, 5 ], + "vertices": [ -10.83, -9.45, 5.95, -15.35, 18.88, -14.9, 24.01, -7.5, 25.69, 5.16, 25.32, 16.08, 18.61, 17.44, 15.85, 14.74, 6.84, 15.02, 0.82, 19.19, -11.42, 7.84 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 36, + "height": 37 + } + }, + "right-hand-thumb": { + "right-hand-thumb": { + "name": "goblin/right-hand", + "type": "mesh", + "uvs": [ 0.88538, 0.22263, 0.76168, 0.3594, 0.75089, 0.78308, 0.95326, 0.84981, 1, 0.60303 ], + "triangles": [ 1, 0, 4, 2, 1, 4, 3, 2, 4 ], + "vertices": [ -2.82, 15.98, 2.4, 11.72, 18.08, 11.91, 20.28, 19.28, 11.09, 20.62 ], + "hull": 5, + "edges": [ 2, 4, 4, 6, 6, 8, 2, 0, 0, 8 ], + "width": 36, + "height": 37 + } + }, + "right-lower-leg": { + "right-lower-leg": { + "name": "goblin/right-lower-leg", + "type": "mesh", + "uvs": [ 1, 0.27261, 0.81312, 0.52593, 0.79587, 0.71796, 0.95544, 0.80989, 0.85194, 0.95493, 0.47242, 1, 0.14034, 1, 0, 0.8773, 0.14896, 0.67914, 0.1619, 0.30326, 0.60611, 0 ], + "triangles": [ 1, 10, 0, 9, 10, 1, 8, 9, 1, 2, 8, 1, 4, 2, 3, 6, 7, 8, 5, 6, 8, 2, 5, 8, 4, 5, 2 ], + "vertices": [ 6.27, 8.46, 23.32, 8.05, 37.1, 12.9, 41.45, 20.83, 53.07, 21.47, 61.33, 10.06, 65.78, -1.04, 59, -9.19, 43.02, -9.82, 16.33, -20.01, -12.8, -9.26 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 20, 18, 20 ], + "width": 36, + "height": 76 + } + }, + "right-shoulder": { + "right-shoulder": { + "name": "goblin/right-shoulder", + "type": "mesh", + "uvs": [ 0.62008, 0.03709, 0.92131, 0.09049, 1, 0.3832, 0.72049, 0.69371, 0.31657, 1, 0, 1, 0, 0.75106, 0.28234, 0.49989 ], + "triangles": [ 4, 6, 7, 4, 7, 3, 4, 5, 6, 7, 0, 3, 2, 0, 1, 2, 3, 0 ], + "vertices": [ -3.17, -11.05, -9, -0.58, -1.01, 10.34, 16.69, 11.17, 37.41, 8.2, 45.46, -1.16, 36.96, -8.46, 21.21, -7.48 ], + "hull": 8, + "edges": [ 10, 12, 12, 14, 14, 0, 0, 2, 2, 4, 4, 6, 8, 10, 6, 8 ], + "width": 39, + "height": 45 + } + }, + "right-upper-leg": { + "right-upper-leg": { + "name": "goblin/right-upper-leg", + "type": "mesh", + "uvs": [ 0.27019, 0, 0.11619, 0.18177, 0, 0.70688, 0, 0.89577, 0.26669, 1, 0.48719, 1, 0.67619, 0.83533, 1, 0.5161, 1, 0.25544, 0.74619, 0.0571 ], + "triangles": [ 9, 8, 7, 9, 1, 0, 6, 9, 7, 6, 1, 9, 2, 1, 6, 4, 3, 2, 6, 4, 2, 5, 4, 6 ], + "vertices": [ -9.86, -10.37, 2.18, -14.07, 35.49, -13.67, 47.29, -12.11, 52.62, -2.27, 51.64, 5.17, 40.51, 10.18, 19.14, 18.47, 2.85, 16.33, -8.41, 6.14 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 34, + "height": 63 + } + }, + "torso": { + "torso": { + "name": "goblin/torso", + "type": "mesh", + "uvs": [ 0, 0.33288, 0.15946, 0.46489, 0.15762, 0.60314, 0.15502, 0.79806, 0.32808, 0.93479, 0.68751, 1, 0.80732, 1, 1, 0.77763, 1, 0.66148, 1, 0.56704, 0.93208, 0.4771, 0.86944, 0.39417, 0.83838, 0.22601, 0.68085, 0, 0.14836, 0, 0, 0.07199, 0.78735, 0.8625, 0.43679, 0.79649, 0.76738, 0.61733, 0.44345, 0.58747, 0.54329, 0.38317, 0.77692, 0.73447, 0.66479, 0.51012 ], + "triangles": [ 5, 16, 6, 6, 16, 7, 4, 17, 5, 5, 17, 16, 4, 3, 17, 17, 21, 16, 16, 21, 7, 3, 2, 17, 21, 19, 18, 21, 17, 19, 17, 2, 19, 21, 8, 7, 21, 18, 8, 18, 9, 8, 19, 22, 18, 18, 10, 9, 18, 22, 10, 2, 1, 19, 19, 20, 22, 19, 1, 20, 22, 11, 10, 22, 20, 11, 20, 1, 14, 20, 12, 11, 1, 0, 14, 20, 13, 12, 20, 14, 13, 0, 15, 14 ], + "vertices": [ 56.93, 27.95, 43.37, 18.24, 30.16, 19.5, 11.53, 21.29, -2.55, 10.69, -10.89, -13.12, -11.59, -21.24, 8.55, -36.13, 19.66, -37.09, 28.69, -37.86, 37.69, -34.01, 45.99, -30.45, 56.4, -29.07, 84.79, -20.92, 87.9, 15.15, 81.89, 25.8, 1.67, -21.02, 10.04, 2.19, 25.23, -18.25, 29.99, 0.01, 48.54, -8.4, 13.98, -21.37, 35.91, -15.6 ], + "hull": 16, + "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30, 14, 32, 32, 34, 34, 6, 18, 36, 36, 38, 2, 4, 4, 6, 38, 4, 2, 40, 40, 22, 40, 38, 38, 34, 32, 10, 34, 8, 40, 28, 14, 16, 16, 18, 32, 42, 42, 36, 16, 42, 42, 34, 18, 20, 20, 22, 36, 44, 44, 40, 20, 44 ], + "width": 68, + "height": 96 + } + }, + "undie-straps": { + "undie-straps": { + "name": "goblin/undie-straps", + "type": "mesh", + "uvs": [ 0.36098, 0.4496, 0.66298, 0.60591, 1, 0.19486, 1, 0.57118, 0.75898, 1, 0.38698, 1, 0, 0.26433, 0, 0, 0.12498, 0 ], + "triangles": [ 6, 7, 8, 6, 8, 0, 3, 1, 2, 5, 0, 1, 6, 0, 5, 4, 1, 3, 5, 1, 4 ], + "vertices": [ -10.56, 12.88, 6.54, 9.91, 25.62, 17.72, 25.62, 10.57, 11.97, 2.42, -9.09, 2.42, -31, 16.4, -31, 21.42, -23.93, 21.42 ], + "hull": 9, + "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 12, 14, 10, 12, 0, 10, 2, 8 ], + "width": 55, + "height": 19 + } + }, + "undies": { + "undies": { + "name": "goblin/undies", + "type": "mesh", + "uvs": [ 0, 0.3203, 0.14893, 0.59457, 0.22438, 1, 0.3591, 1, 0.50999, 1, 0.7956, 0.58454, 0.98421, 0.28016, 1, 0.00588, 0.46957, 0.17647, 0, 0.03933, 0.48843, 0.59123, 0.48115, 0.431 ], + "triangles": [ 6, 8, 7, 0, 9, 8, 11, 8, 6, 0, 8, 11, 5, 11, 6, 10, 11, 5, 1, 0, 11, 1, 11, 10, 3, 2, 1, 10, 3, 1, 4, 10, 5, 3, 10, 4 ], + "vertices": [ -13.22, 5.57, -8, -2.48, -5.49, -14.28, -0.64, -14.36, 4.79, -14.46, 15.28, -2.59, 22.22, 6.12, 22.93, 14.06, 3.75, 9.45, -13.08, 13.72, 4.22, -2.59, 4.04, 2.06 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 4, 6, 6, 8, 6, 20, 16, 22, 22, 20, 0, 22, 22, 12, 2, 20, 20, 10 ], + "width": 36, + "height": 29 + } + } + } + }, + { + "name": "goblingirl", + "attachments": { + "eyes": { + "eyes-closed": { "name": "goblingirl/eyes-closed", "x": 28, "y": -25.55, "rotation": -87.05, "width": 37, "height": 21 } + }, + "head": { + "head": { "name": "goblingirl/head", "x": 27.72, "y": -4.32, "rotation": -85.58, "width": 103, "height": 81 } + }, + "left-arm": { + "left-arm": { "name": "goblingirl/left-arm", "x": 19.64, "y": -2.43, "rotation": 33.05, "width": 37, "height": 35 } + }, + "left-foot": { + "left-foot": { "name": "goblingirl/left-foot", "type": "linkedmesh", "skin": "goblin", "parent": "left-foot", "width": 65, "height": 31 } + }, + "left-hand": { + "left-hand": { + "name": "goblingirl/left-hand", + "x": 4.34, + "y": 2.39, + "scaleX": 0.8965, + "scaleY": 0.8965, + "rotation": 30.35, + "width": 35, + "height": 40 + } + }, + "left-lower-leg": { + "left-lower-leg": { "name": "goblingirl/left-lower-leg", "x": 25.02, "y": -0.61, "rotation": 105.76, "width": 33, "height": 70 } + }, + "left-shoulder": { + "left-shoulder": { "name": "goblingirl/left-shoulder", "x": 19.81, "y": -0.43, "rotation": 61.22, "width": 28, "height": 46 } + }, + "left-upper-leg": { + "left-upper-leg": { "name": "goblingirl/left-upper-leg", "x": 30.22, "y": -2.95, "rotation": 89.1, "width": 33, "height": 70 } + }, + "neck": { + "neck": { "name": "goblingirl/neck", "x": 6.16, "y": -3.15, "rotation": -98.86, "width": 35, "height": 41 } + }, + "pelvis": { + "pelvis": { "name": "goblingirl/pelvis", "x": -3.88, "y": 3.19, "width": 62, "height": 43 } + }, + "right-arm": { + "right-arm": { "name": "goblingirl/right-arm", "x": 16.85, "y": -0.66, "rotation": 93.53, "width": 28, "height": 50 } + }, + "right-foot": { + "right-foot": { "name": "goblingirl/right-foot", "type": "linkedmesh", "skin": "goblin", "parent": "right-foot", "width": 63, "height": 33 } + }, + "right-hand": { + "right-hand": { "name": "goblingirl/right-hand", "x": 7.22, "y": 3.44, "rotation": 91.17, "width": 36, "height": 37 } + }, + "right-hand-thumb": { + "right-hand-thumb": { "name": "goblingirl/right-hand", "x": 7.22, "y": 3.44, "rotation": 91.17, "width": 36, "height": 37 } + }, + "right-lower-leg": { + "right-lower-leg": { "name": "goblingirl/right-lower-leg", "x": 26.15, "y": -3.28, "rotation": 111.84, "width": 36, "height": 76 } + }, + "right-shoulder": { + "right-shoulder": { "name": "goblingirl/right-shoulder", "x": 14.46, "y": 0.46, "rotation": 129.85, "width": 39, "height": 45 } + }, + "right-upper-leg": { + "right-upper-leg": { "name": "goblingirl/right-upper-leg", "x": 19.7, "y": 2.13, "rotation": 97.5, "width": 34, "height": 63 } + }, + "torso": { + "torso": { "name": "goblingirl/torso", "x": 36.28, "y": -5.14, "rotation": -95.75, "width": 68, "height": 96 } + }, + "undie-straps": { + "undie-straps": { "name": "goblingirl/undie-straps", "x": -1.52, "y": 14.19, "width": 55, "height": 19 } + }, + "undies": { + "undies": { "name": "goblingirl/undies", "x": 5.4, "y": 1.71, "width": 36, "height": 29 } + } + } + } +], +"animations": { + "walk": { + "slots": { + "eyes": { + "attachment": [ + { "time": 0.7, "name": "eyes-closed" }, + { "time": 0.8 } + ] + } + }, + "bones": { + "left-upper-leg": { + "rotate": [ + { "value": -26.56 }, + { "time": 0.1333, "value": -8.79 }, + { "time": 0.2333, "value": 9.51 }, + { "time": 0.3667, "value": 30.74 }, + { "time": 0.5, "value": 25.34 }, + { "time": 0.6333, "value": 26.12 }, + { "time": 0.7333, "value": 7.45 }, + { "time": 0.8667, "value": -21.19 }, + { "time": 1, "value": -26.56 } + ], + "translate": [ + { "x": -1.32, "y": 1.71 }, + { "time": 0.3667, "x": -0.06, "y": 2.43 }, + { "time": 1, "x": -1.32, "y": 1.71 } + ] + }, + "right-upper-leg": { + "rotate": [ + { "value": 42.45 }, + { + "time": 0.1333, + "value": 49.86, + "curve": [ 0.175, 49.86, 0.204, 22.69 ] + }, + { "time": 0.2333, "value": 22.51 }, + { "time": 0.5, "value": -16.94 }, + { "time": 0.6333, "value": 1.9 }, + { + "time": 0.7333, + "value": 34.87, + "curve": [ 0.795, 37.71, 0.867, 58.69 ] + }, + { + "time": 0.8667, + "value": 58.69, + "curve": [ 0.933, 58.35, 1, 42.45 ] + }, + { "time": 1, "value": 42.45 } + ], + "translate": [ + { "x": 6.24 }, + { "time": 0.2333, "x": 2.14, "y": 2.4 }, + { "time": 0.5, "x": 2.44, "y": 4.8 }, + { "time": 1, "x": 6.24 } + ] + }, + "left-lower-leg": { + "rotate": [ + { "value": -18.05 }, + { "time": 0.1333, "value": -63.51 }, + { "time": 0.2333, "value": -83.02 }, + { "time": 0.5, "value": 5.12 }, + { "time": 0.6333, "value": -28.3 }, + { "time": 0.7333, "value": -27.52 }, + { "time": 0.8667, "value": 3.53 }, + { "time": 1, "value": -18.05 } + ], + "translate": [ + {}, + { "time": 0.2333, "x": 2.56, "y": -0.47 }, + { "time": 0.5 } + ] + }, + "left-foot": { + "rotate": [ + { "value": -14.57 }, + { "time": 0.1333, "value": -10.42 }, + { "time": 0.2333, "value": -5.01 }, + { "time": 0.3, "value": 6.67 }, + { "time": 0.3667, "value": 3.87 }, + { "time": 0.5, "value": -3.88 }, + { "time": 0.6333, "value": 2.78 }, + { "time": 0.7333, "value": -12 }, + { "time": 0.8667, "value": -12.45 }, + { "time": 1, "value": -14.57 } + ] + }, + "right-shoulder": { + "rotate": [ + { + "value": 5.29, + "curve": [ 0.167, 5.29, 0.475, 6.65 ] + }, + { "time": 0.6333, "value": 6.65 }, + { "time": 1, "value": 5.29 } + ] + }, + "right-arm": { + "rotate": [ + { + "value": -4.03, + "curve": [ 0.169, -3.91, 0.51, 19.66 ] + }, + { + "time": 0.6333, + "value": 19.79, + "curve": [ 0.746, 19.75, 0.922, -3.91 ] + }, + { "time": 1, "value": -4.03 } + ] + }, + "right-hand": { + "rotate": [ + { "value": 8.99 }, + { "time": 0.6333, "value": 0.51 }, + { "time": 1, "value": 8.99 } + ] + }, + "left-shoulder": { + "rotate": [ + { + "value": 6.26, + "curve": [ 0.17, 6.26, 0.342, -11.79 ] + }, + { + "time": 0.5, + "value": -11.79, + "curve": [ 0.641, -11.79, 0.843, 6.16 ] + }, + { "time": 1, "value": 6.26 } + ], + "translate": [ + { "x": 1.15, "y": 0.24 } + ] + }, + "left-hand": { + "rotate": [ + { + "value": -21.24, + "curve": [ 0.148, -21.24, 0.378, -27.21 ] + }, + { + "time": 0.5, + "value": -27.28, + "curve": [ 0.621, -27.28, 0.875, -21.4 ] + }, + { "time": 1, "value": -21.24 } + ] + }, + "left-arm": { + "rotate": [ + { + "value": 28.38, + "curve": [ 0.17, 28.38, 0.342, 60.09 ] + }, + { + "time": 0.5, + "value": 60.09, + "curve": [ 0.641, 60.09, 0.843, 28.54 ] + }, + { "time": 1, "value": 28.38 } + ] + }, + "torso": { + "rotate": [ + { "value": -10.28 }, + { + "time": 0.1333, + "value": -15.39, + "curve": [ 0.261, -15.36, 0.324, -9.78 ] + }, + { + "time": 0.3667, + "value": -9.78, + "curve": [ 0.521, -10.8, 0.545, -15.72 ] + }, + { + "time": 0.6333, + "value": -15.75, + "curve": [ 0.688, -15.66, 0.819, -7.07 ] + }, + { + "time": 0.8667, + "value": -7.07, + "curve": [ 0.895, -7.07, 0.975, -10.25 ] + }, + { "time": 1, "value": -10.28 } + ] + }, + "right-foot": { + "rotate": [ + { "value": -5.25 }, + { "time": 0.2333, "value": -17.77 }, + { "time": 0.3667, "value": -20.1 }, + { "time": 0.5, "value": -19.74 }, + { "time": 0.7333, "value": -11.69 }, + { "time": 0.8, "value": 4.47 }, + { "time": 0.8667, "value": 0.46 }, + { "time": 1, "value": -5.25 } + ] + }, + "right-lower-leg": { + "rotate": [ + { + "value": -3.39, + "curve": [ 0.042, -4.01, 0.099, -42.81 ] + }, + { + "time": 0.1333, + "value": -43.22, + "curve": [ 0.175, -43.22, 0.204, -26.09 ] + }, + { "time": 0.2333, "value": -25.98 }, + { "time": 0.5, "value": -19.53 }, + { "time": 0.6333, "value": -64.8 }, + { + "time": 0.7333, + "value": -89.54, + "curve": [ 0.882, -74, 1, -3.39 ] + }, + { "time": 1, "value": -3.39 } + ], + "translate": [ + { "time": 0.5 }, + { "time": 0.6333, "x": 2.19, "y": 0.21 }, + { "time": 1 } + ] + }, + "hip": { + "translate": [ + { "y": -8.4 }, + { + "time": 0.1333, + "y": -9.35, + "curve": [ 0.166, 0, 0.201, 0, 0.166, -8.91, 0.201, -1.14 ] + }, + { + "time": 0.2333, + "y": -0.59, + "curve": [ 0.277, 0, 0.319, 0, 0.277, -1.92, 0.319, -2.96 ] + }, + { "time": 0.3667, "y": -3.97 }, + { "time": 0.5, "y": -8.4 }, + { + "time": 0.6333, + "y": -10.01, + "curve": [ 0.669, 0, 0.698, 0, 0.669, -7.79, 0.698, -6.49 ] + }, + { + "time": 0.7333, + "y": -5.3, + "curve": [ 0.756, 0, 0.778, 0, 0.756, -4.27, 0.778, -3.35 ] + }, + { + "time": 0.8, + "y": -2.5, + "curve": [ 0.821, 0, 0.843, 0, 0.821, -3.02, 0.843, -3.5 ] + }, + { "time": 0.8667, "y": -3.97 }, + { "time": 1, "y": -8.4 } + ] + }, + "neck": { + "rotate": [ + { "value": 3.6 }, + { "time": 0.1333, "value": 17.5 }, + { "time": 0.2333, "value": 6.11 }, + { "time": 0.3667, "value": 3.46 }, + { "time": 0.5, "value": 5.18 }, + { "time": 0.6333, "value": 18.36 }, + { "time": 0.7333, "value": 6.09 }, + { "time": 0.8667, "value": 2.29 }, + { "time": 1, "value": 3.6 } + ] + }, + "head": { + "rotate": [ + { + "value": 3.6, + "curve": [ 0, 3.6, 0.094, -0.89 ] + }, + { "time": 0.1333, "value": -0.21 }, + { "time": 0.2333, "value": 6.11 }, + { "time": 0.3667, "value": 3.46 }, + { + "time": 0.5, + "value": 5.18, + "curve": [ 0.5, 5.18, 0.617, -1.4 ] + }, + { "time": 0.6667, "value": 1.11 }, + { "time": 0.7333, "value": 6.09 }, + { "time": 0.8667, "value": 2.29 }, + { "time": 1, "value": 3.6 } + ] + }, + "pelvis": { + "rotate": [ + { "value": -1.34 } + ], + "translate": [ + { "x": 0.39, "y": -0.78 } + ] + }, + "spear1": { + "rotate": [ + { "value": 1.85 }, + { "time": 0.2, "value": -5.39 }, + { "time": 0.5, "value": 2.95 }, + { "time": 0.7333, "value": -3.67 }, + { "time": 1, "value": 1.85 } + ] + }, + "spear2": { + "rotate": [ + { "value": 1.85 }, + { "time": 0.2, "value": -5.39 }, + { "time": 0.5, "value": 2.95 }, + { "time": 0.7333, "value": -3.67 }, + { "time": 1, "value": 1.85 } + ] + }, + "spear3": { + "rotate": [ + { "value": 3.64 }, + { "time": 0.2, "value": -3.6 }, + { "time": 0.5, "value": 4.74 }, + { "time": 0.7333, "value": -1.88 }, + { "time": 1, "value": 3.64 } + ] + } + }, + "attachments": { + "default": { + "right-hand-item": { + "dagger": { + "deform": [ + { + "offset": 26, + "vertices": [ 2.34755, 0.1447 ], + "curve": [ 0.125, 0, 0.375, 1 ] + }, + { + "time": 0.5, + "offset": 8, + "vertices": [ -1.19415, 4.31532, 0.07279, 6.41351, 1.66048, 6.18883, 1.75233, 3.59555 ], + "curve": [ 0.625, 0, 0.875, 1 ] + }, + { + "time": 1, + "offset": 26, + "vertices": [ 2.34755, 0.1447 ] + } + ] + } + } + }, + "goblin": { + "head": { + "head": { + "deform": [ + { + "curve": [ 0.127, 0, 0.15, 1 ] + }, + { + "time": 0.2, + "vertices": [ -10.97827, -6.68962, -4.68015, -2.46175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.08534, 0.08392, -1.08534, 0.08392, -1.08534, 0.08392, 0, 0, -2.22325, 2.66465, -4.83295, 2.70085, -5.70553, -0.51941, -3.15962, -1.61502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.64742, 0.81612, -11.82286, -1.34955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.08534, 0.08392 ], + "curve": [ 0.242, 0, 0.325, 1 ] + }, + { + "time": 0.3667, + "vertices": [ 10.69276, 4.05949, 3.66373, 1.85427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.47305, 0.09018, 1.47305, 0.09018, 1.47305, 0.09018, 0, 0, 2.69653, -0.22738, 3.77135, 0.11418, 3.6893, 1.55352, 2.49595, 1.65501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.45881, -3.9113, 9.19594, -1.66854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.47305, 0.09018 ], + "curve": [ 0.574, 0, 0.617, 1 ] + }, + { + "time": 0.7, + "vertices": [ -10.97827, -6.68962, -4.68015, -2.46175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.17551, -0.17183, -1.17551, -0.17183, -1.17551, -0.17183, 0, 0, -2.22325, 2.66465, -4.83295, 2.70085, -5.70553, -0.51941, -3.15962, -1.61502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.64742, 0.81612, -11.82286, -1.34955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.17551, -0.17183 ], + "curve": [ 0.742, 0, 0.825, 1 ] + }, + { + "time": 0.8667, + "vertices": [ 10.69276, 4.05949, 3.66373, 1.85427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.38687, 0.08446, 0.38687, 0.08446, 0.38687, 0.08446, 0, 0, 2.69653, -0.22738, 3.77135, 0.11418, 3.6893, 1.55352, 2.49595, 1.65501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.45881, -3.9113, 9.19594, -1.66854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.38687, 0.08446 ], + "curve": [ 0.9, 0, 0.967, 1 ] + }, + { "time": 1 } + ] + } + }, + "left-foot": { + "left-foot": { + "deform": [ + { + "offset": 8, + "vertices": [ 3.69298, 2.37573, -7.16969, 18.79733, -12.78162, 14.7778, -12.75776, 6.50514, -3.13476, 1.98906, -0.44402, 0.36629, 0, 0, -3.80085, 2.98474 ] + }, + { "time": 0.1333 }, + { + "time": 0.2333, + "offset": 8, + "vertices": [ -3.96073, -2.34594, -5.80446, -12.47629, -2.2313, -12.99038, 2.02942, -9.1036, 0, 0, 0, 0, 0, 0, -1.35254, -5.2883 ] + }, + { + "time": 0.3667, + "offset": 8, + "vertices": [ 0.66505, 0.33548, 0.33902, 2.69014, -0.48171, 2.54524, -1.13593, 1.38562, 0, 0, 0, 0, 0, 0, -0.11908, 0.79273 ] + }, + { "time": 0.5, "curve": "stepped" }, + { "time": 0.6333 }, + { + "time": 0.7333, + "offset": 8, + "vertices": [ -2.97738, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72607, 6.30799, 0, 0, -1.48902, 4.88944, -7.06773, 10.70102 ] + }, + { + "time": 0.8333, + "offset": 6, + "vertices": [ 1.05319, 1.56362, -2.52723, 7.9974, -5.52031, 17.14137, -8.93317, 15.79635, -10.73748, 10.22056, -4.23801, 5.36992, 0, 0, 0, 0, -5.83148, 8.55532 ] + }, + { + "time": 1, + "offset": 8, + "vertices": [ 3.69298, 2.37573, -7.16969, 18.79733, -12.78162, 14.7778, -12.75776, 6.50514, -3.13476, 1.98906, -0.44402, 0.36629, 0, 0, -3.80085, 2.98474 ] + } + ] + } + }, + "pelvis": { + "pelvis": { + "deform": [ + {}, + { + "time": 0.1333, + "offset": 6, + "vertices": [ -0.6899, -4.13284 ] + }, + { + "time": 0.3333, + "offset": 6, + "vertices": [ -1.04945, -3.10477 ] + }, + { + "time": 0.7, + "offset": 6, + "vertices": [ -1.4245, -6.30617 ] + }, + { + "time": 0.8667, + "offset": 6, + "vertices": [ -1.13542, -1.79036 ] + }, + { "time": 1 } + ] + } + }, + "right-foot": { + "right-foot": { + "deform": [ + {}, + { + "time": 0.1333, + "offset": 2, + "vertices": [ -2.81259, 2.63115, -2.35238, 3.89441, -1.99921, 4.8639, -0.93273, 5.57982, -0.48886, 5.09855, -0.34813, 3.42912, -0.17446, 1.36899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.31305, 1.91372, -1.32986, 3.65703 ] + }, + { + "time": 0.2333, + "offset": 2, + "vertices": [ -6.39088, 6.41246, -7.74575, 8.27192, -7.02471, 11.35894, -4.03471, 13.93454, -2.50399, 12.62963, -1.46125, 7.58915, -0.17446, 1.36899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.84766, 2.61216, -4.53956, 7.92358 ] + }, + { + "time": 0.3, + "offset": 2, + "vertices": [ -8.27185, 6.68822, -9.29764, 10.13797, -8.62231, 14.7134, -4.5863, 18.81939, -2.20304, 17.10709, -0.07795, 9.9046, 2.54452, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94625, 2.38008, -4.59399, 10.01888 ] + }, + { + "time": 0.3667, + "offset": 2, + "vertices": [ -10.47684, 9.44176, -13.36883, 12.40983, -14.32569, 16.94392, -9.24463, 23.55674, -5.51712, 21.51378, -1.19582, 11.53193, 2.54452, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4.14848, 2.29389, -6.63419, 11.37127 ] + }, + { + "time": 0.5, + "offset": 2, + "vertices": [ -5.42474, 4.36854, -10.59004, 7.04468, -11.64251, 11.55845, -6.19665, 20.12806, -1.45498, 18.05411, 4.8662, 6.41679, 2.81463, 0.27601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.96412, 4.9483 ] + }, + { "time": 0.6333 }, + { + "time": 0.7333, + "offset": 4, + "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.9851, -14.08368, -7.15892, -11.63194, -5.6792, -4.83545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06164, -6.93844 ] + }, + { + "time": 0.8, + "offset": 4, + "vertices": [ 0.65731, -3.4205, -0.43953, -6.2724, -2.99255, -7.04184, -3.57946, -5.81597, -2.8396, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79688, -1.28021, 0, 0, 0, 0, -1.03082, -3.46922 ] + }, + { "time": 0.8667 } + ] + } + }, + "right-hand": { + "right-hand": { + "deform": [ + { + "offset": 4, + "vertices": [ -1.48417, 0.34736, 0, 0, 1.31152, 0.08085, 1.60296, 0.09882, 0.13673, 0.15471, 0, 0, 0, 0, -0.72862, -0.0449 ] + }, + { "time": 0.5 }, + { + "time": 1, + "offset": 4, + "vertices": [ -1.48417, 0.34736, 0, 0, 1.31152, 0.08085, 1.60296, 0.09882, 0.13673, 0.15471, 0, 0, 0, 0, -0.72862, -0.0449 ] + } + ] + } + }, + "right-lower-leg": { + "right-lower-leg": { + "deform": [ + {}, + { + "time": 0.6, + "offset": 6, + "vertices": [ 1.80396, -1.56553 ] + }, + { "time": 1 } + ] + } + }, + "right-upper-leg": { + "right-upper-leg": { + "deform": [ + { + "vertices": [ -6.03857, -1.46325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.34685, -1.93102, -1.86047, -5.05266, -2.5014, -3.09985 ] + }, + { "time": 0.3333 }, + { + "time": 0.8667, + "offset": 14, + "vertices": [ 0.13425, -2.35378, -1.33318, -5.99573, -1.35862, -4.43324 ] + }, + { + "time": 1, + "vertices": [ -6.03857, -1.46325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.34685, -1.93102, -1.86047, -5.05266, -2.5014, -3.09985 ] + } + ] + } + }, + "torso": { + "torso": { + "deform": [ + { + "offset": 2, + "vertices": [ 0.24821, 2.86673, 0.24821, 2.86673, 0.24821, 2.86673, 0.24821, 2.86673, 0.24821, 2.86673, 0.24821, 2.86673, -1.24131, 2.62652, -2.47492, 0.71183, -0.26363, -0.5308, 0.24821, 2.86673, 0.24821, 2.86673, 0, 0, 0, 0, 0, 0, 0, 0, 1.34461, 0.25215, 0.24821, 2.86673, 0.82507, 1.61798, 0.24821, 2.86673, 0, 0, -1.86431, -0.4326, 0.24821, 2.86673 ] + }, + { + "time": 0.1333, + "offset": 2, + "vertices": [ 0.35589, 4.10914, 0.35589, 4.10914, 0.35589, 4.10914, 0.35589, 4.10914, 0.35589, 4.10914, 0.35589, 4.10914, 1.66908, 3.51187, -0.62355, 2.47979, 1.1045, 3.49684, -1.09009, 6.08429, 0.35589, 4.10914, 0, 0, 0, 0, 0, 0, 0, 0, 3.01291, 0.15693, 0.35589, 4.10914, -1.11398, 3.7954, 0.35589, 4.10914, 0, 0, -2.96167, 0.55563, -2.20741, 4.40587 ] + }, + { + "time": 0.3, + "offset": 2, + "vertices": [ 0.2884, 3.32948, 0.2884, 3.32948, 0.2884, 3.32948, 0.2884, 3.32948, 0.2884, 3.32948, 0.2884, 3.32948, 6.32601, 0.19387, 7.84315, 1.94837, 7.08587, 3.64119, 4.52343, 4.46961, 0.2884, 3.32948, 0, 0, 0, 0, 0, 0, 0, 0, 4.36416, -1.83876, 0.2884, 3.32948, 4.2925, 3.60194, 0.2884, 3.32948, 0, 0, 3.72601, -0.19338, 0.2884, 3.32948 ] + }, + { + "time": 0.5, + "offset": 2, + "vertices": [ 0.3133, 3.61659, 0.3133, 3.61659, 0.3133, 3.61659, 0.3133, 3.61659, 0.3133, 3.61659, 0.3133, 3.61659, 2.57273, 2.74457, 2.88831, 3.04797, 3.48442, 3.04655, 1.80035, 4.609, 0.3133, 3.61659, 0, 0, 0, 0, 0, 0, 0, 0, 3.53782, -0.82203, 0.3133, 3.61659, 1.80022, 3.63246, 0.3133, 3.61659, 0, 0, 0.62718, 0.33564, -1.22467, 3.79463 ] + }, + { + "time": 0.6333, + "offset": 2, + "vertices": [ 0.44398, 5.125, 0.44398, 5.125, 0.44398, 5.125, 0.44398, 5.125, 0.44398, 5.125, 0.44398, 5.125, 1.19401, 3.60798, -0.53546, 3.49565, 1.1926, 4.5127, -1.002, 7.10015, 0.44398, 5.125, 0, 0, 0, 0, 0, 0, 0, 0, 3.101, 1.17278, 0.44398, 5.125, -1.02589, 4.81126, 0.44398, 5.125, 0, 0, -2.87358, 1.57149, -2.11931, 5.42173 ] + }, + { + "time": 0.8667, + "offset": 2, + "vertices": [ 0.30385, 3.50647, 0.30385, 3.50647, 0.30385, 3.50647, 0.30385, 3.50647, 0.30385, 3.50647, 0.30385, 3.50647, 0.92587, 2.24385, 0.68874, 1.29945, 3.55433, 3.00604, 2.71494, 5.89962, 0.30385, 3.50647, 0, 0, 0, 0, 0, 0, 0, 0, 1.96775, 0.40548, 0.30385, 3.50647, 2.6104, 2.3545, 0.30385, 3.50647, 0, 0, 0.22709, -0.12851, -0.62826, 3.61437 ] + }, + { + "time": 1, + "offset": 2, + "vertices": [ 0.32802, 3.78826, 0.32802, 3.78826, 0.32802, 3.78826, 0.32802, 3.78826, 0.32802, 3.78826, 0.32802, 3.78826, -1.1615, 3.54805, -2.39511, 1.63336, -0.18382, 0.39073, 0.32802, 3.78826, 0.32802, 3.78826, 0, 0, 0, 0, 0, 0, 0, 0, 1.42442, 1.17368, 0.32802, 3.78826, 0.90488, 2.53951, 0.32802, 3.78826, 0, 0, -1.7845, 0.48894, 0.32802, 3.78826 ] + } + ] + } + }, + "undie-straps": { + "undie-straps": { + "deform": [ + { + "offset": 2, + "vertices": [ -1.77697, 0.5476, -0.96145, -1.03793, -0.39148, -0.24072, -1.77697, 0.5476 ] + }, + { + "time": 0.1333, + "offset": 2, + "vertices": [ -2.25684, -1.03177, -1.49719, -4.23862, -0.7447, -2.84907, -1.90072, 0.54478 ] + }, + { + "time": 0.3333, + "offset": 2, + "vertices": [ -2.37974, -0.05432, -0.49433, 0.19437, -0.90861, 1.16519, -1.60956, 2.70799, 0.96186, 0.80615 ] + }, + { + "time": 0.7, + "offset": 2, + "vertices": [ -0.91715, -2.76567, -0.62215, -3.63489, -0.84941, -2.26772, -2.56077, 0.52971 ] + }, + { + "time": 0.8667, + "offset": 2, + "vertices": [ -2.56077, 0.52971, -1.58065, 0.32031, -1.3847, 0.32476, -2.56077, 0.52971 ] + }, + { + "time": 1, + "offset": 2, + "vertices": [ -1.77697, 0.5476, -0.80128, 0.53413, -0.80128, 0.53413, -1.77697, 0.5476 ] + } + ] + } + }, + "undies": { + "undies": { + "deform": [ + { + "vertices": [ 0.43099, 0.722, 10.60295, -0.117, 2.29599, 0, 2.29599, 0, 2.29599, 0, 0.58799, 0.244, -2.40018, -0.65335, -2.2782, -0.77534, 2.29599, 0, 0.58799, -0.488, 4.98698, -0.117, 6.50797, -0.23399 ] + }, + { + "time": 0.1333, + "vertices": [ 0.72659, 0.4332, 7.20417, -0.1638, 1.37759, 0, 1.37759, 0, 1.37759, 0, 1.25279, 0.0464, -0.99862, -2.95085, -1.37543, -3.07404, 1.37759, 0, 0.35279, -0.2928, 2.99219, -0.0702, 3.90478, -0.1404 ] + }, + { + "time": 0.3333, + "vertices": [ 1.16999, 0, 2.10599, -0.23401, 0, 0, 0, 0, 0, 0, 2.24999, -0.24999, -0.4344, 0.60551, -1.55939, 0.48051 ] + }, + { + "time": 0.5333, + "vertices": [ 1.16999, 0, -0.234, -0.936, -2.92499, 0.351, 0, 0, 0, 0, 0.5, -0.24999, -0.64079, -2.07915, -0.64079, -2.07915 ] + }, + { + "time": 0.7, + "vertices": [ 1.86271, -0.11514, 4.66327, -0.091, -1.76428, 0.21171, 0, 0, -0.56833, 0.32833, -1.13833, -1.15111, -2.19996, -3.47068, -1.29719, -3.47068, 0, 0, 0, 0, 1.58785, -0.04643, 2.65942, 0.16715 ] + }, + { + "time": 0.8333, + "vertices": [ 2.41688, -0.20726, 8.58108, 0.585, -0.83571, 0.10029, 0, 0, -1.02299, 0.59099, -2.449, -1.872, -1.625, 0, 0, 0, 0, 0, 0, 0, 2.85813, -0.08357, 4.78695, 0.30086 ] + }, + { + "time": 0.8667, + "vertices": [ 2.0197, -0.02141, 8.98546, 0.4446, -0.20937, 0.08023, 0.4592, 0, -0.3592, 0.47279, -1.8416, -1.4488, -0.79153, 1.26421, 0.53286, 1.23981, 0.4592, 0, 0.1176, -0.0976, 3.2839, -0.09025, 5.13116, 0.19389 ] + }, + { + "time": 1, + "vertices": [ 0.43099, 0.722, 10.60295, -0.117, 2.29599, 0, 2.29599, 0, 2.29599, 0, 0.58799, 0.244, -2.40018, -0.65335, -2.2782, -0.77534, 2.29599, 0, 0.58799, -0.488, 4.98698, -0.117, 6.50797, -0.23399 ] + } + ] + } + } + } + } + } +} +} \ No newline at end of file diff --git a/spine-haxe/example/assets/goblins-pro.skel b/spine-haxe/example/assets/goblins-pro.skel new file mode 100644 index 0000000000..82135aa72b Binary files /dev/null and b/spine-haxe/example/assets/goblins-pro.skel differ diff --git a/spine-haxe/example/assets/goblins.atlas b/spine-haxe/example/assets/goblins.atlas new file mode 100644 index 0000000000..b40ca29fc2 --- /dev/null +++ b/spine-haxe/example/assets/goblins.atlas @@ -0,0 +1,96 @@ +goblins.png + size: 1024, 128 + filter: Linear, Linear +dagger + bounds: 2, 18, 26, 108 +goblin/eyes-closed + bounds: 2, 4, 34, 12 +goblin/head + bounds: 113, 23, 103, 66 + rotate: 90 +goblin/left-arm + bounds: 937, 89, 37, 35 + rotate: 90 +goblin/left-foot + bounds: 609, 61, 65, 31 + rotate: 90 +goblin/left-hand + bounds: 840, 21, 36, 41 +goblin/left-lower-leg + bounds: 504, 56, 33, 70 +goblin/left-shoulder + bounds: 745, 17, 29, 44 +goblin/left-upper-leg + bounds: 397, 53, 33, 73 +goblin/neck + bounds: 862, 85, 36, 41 +goblin/pelvis + bounds: 776, 18, 62, 43 +goblin/right-arm + bounds: 181, 5, 23, 50 + rotate: 90 +goblin/right-foot + bounds: 747, 63, 63, 33 + rotate: 90 +goblin/right-hand + bounds: 878, 3, 36, 37 +goblin/right-lower-leg + bounds: 321, 50, 36, 76 +goblin/right-shoulder + bounds: 663, 14, 39, 45 +goblin/right-upper-leg + bounds: 675, 63, 34, 63 +goblin/torso + bounds: 181, 30, 68, 96 +goblin/undie-straps + bounds: 38, 2, 55, 19 +goblin/undies + bounds: 974, 97, 36, 29 +goblingirl/eyes-closed + bounds: 397, 30, 37, 21 +goblingirl/head + bounds: 30, 23, 103, 81 + rotate: 90 +goblingirl/left-arm + bounds: 916, 8, 37, 35 + rotate: 90 +goblingirl/left-foot + bounds: 642, 61, 65, 31 + rotate: 90 +goblingirl/left-hand + bounds: 900, 86, 35, 40 +goblingirl/left-lower-leg + bounds: 539, 56, 33, 70 +goblingirl/left-shoulder + bounds: 633, 13, 28, 46 +goblingirl/left-upper-leg + bounds: 574, 56, 33, 70 +goblingirl/neck + bounds: 878, 42, 35, 41 +goblingirl/pelvis + bounds: 817, 64, 62, 43 + rotate: 90 +goblingirl/right-arm + bounds: 603, 4, 28, 50 +goblingirl/right-foot + bounds: 782, 63, 63, 33 + rotate: 90 +goblingirl/right-hand + bounds: 915, 47, 36, 37 +goblingirl/right-lower-leg + bounds: 359, 50, 36, 76 +goblingirl/right-shoulder + bounds: 704, 16, 39, 45 +goblingirl/right-upper-leg + bounds: 711, 63, 34, 63 +goblingirl/torso + bounds: 251, 30, 68, 96 +goblingirl/undie-straps + bounds: 95, 2, 55, 19 +goblingirl/undies + bounds: 974, 66, 36, 29 +shield + bounds: 432, 54, 70, 72 +spear + bounds: 233, 6, 22, 368 + rotate: 90 diff --git a/spine-haxe/example/assets/goblins.png b/spine-haxe/example/assets/goblins.png new file mode 100644 index 0000000000..2fab39406d Binary files /dev/null and b/spine-haxe/example/assets/goblins.png differ diff --git a/spine-haxe/example/assets/mix-and-match-pro.json b/spine-haxe/example/assets/mix-and-match-pro.json new file mode 100644 index 0000000000..1cf000dddb --- /dev/null +++ b/spine-haxe/example/assets/mix-and-match-pro.json @@ -0,0 +1,8001 @@ +{ +"skeleton": { + "hash": "wi43rlDXH1o", + "spine": "4.1.17", + "x": -240.58, + "y": -3.38, + "width": 410.36, + "height": 806.78, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { "name": "skeleton-control", "parent": "root", "x": -0.43, "y": 257.36, "color": "ff1111ff" }, + { "name": "hips", "parent": "skeleton-control", "x": 3.06, "y": 29.29, "color": "ffce12ff" }, + { + "name": "body-down", + "parent": "hips", + "length": 68.46, + "rotation": 92.39, + "x": -3.13, + "y": -1.59, + "color": "ffce12ff" + }, + { + "name": "body-up", + "parent": "body-down", + "length": 113.37, + "rotation": 1.94, + "x": 66.64, + "y": 1.98, + "color": "ffce12ff" + }, + { + "name": "neck", + "parent": "body-up", + "length": 43.86, + "rotation": -2.99, + "x": 98.36, + "y": 3.04, + "color": "ffce12ff" + }, + { + "name": "head", + "parent": "neck", + "length": 156.89, + "rotation": -3.77, + "x": 31.54, + "y": 7.82, + "color": "ffce12ff" + }, + { "name": "arm-front-control", "parent": "body-up", "rotation": -94.33, "x": 82.42, "y": 46.82, "color": "ff3636ff" }, + { + "name": "arm-front-up", + "parent": "arm-front-control", + "length": 102.6, + "rotation": -90, + "x": 0.28, + "y": -0.01, + "color": "ff3636ff" + }, + { "name": "arm-front-down", "parent": "arm-front-up", "length": 102.6, "x": 102.6, "color": "ff3636ff" }, + { "name": "hand-front", "parent": "arm-front-down", "length": 30.54, "x": 97.35, "y": -2, "color": "ff1c1cff" }, + { + "name": "arm-front-up-2", + "parent": "arm-front-control", + "length": 33.49, + "rotation": -90, + "x": 0.28, + "y": -0.01, + "color": "9a1c1cff" + }, + { + "name": "arm-front-up-3", + "parent": "arm-front-up-2", + "length": 33.49, + "rotation": -0.88, + "x": 132.36, + "y": -0.3, + "color": "9a1c1cff" + }, + { "name": "arm-front-up-4", "parent": "arm-front-up-3", "length": 33.49, "x": 33.49, "color": "9a1c1cff" }, + { "name": "arm-front-up-5", "parent": "arm-front-up-4", "length": 33.49, "x": 33.49, "color": "9a1c1cff" }, + { "name": "arm-front-up-6", "parent": "arm-front-up-5", "length": 33.49, "x": 33.49, "color": "9a1c1cff" }, + { + "name": "arm-front-up-7", + "parent": "arm-front-up-6", + "length": 33.49, + "rotation": -0.01, + "x": 133.92, + "y": -0.76, + "color": "9a1c1cff" + }, + { "name": "leg-control-front", "parent": "hips", "x": -29.98, "y": -1.61, "color": "d130ffff" }, + { + "name": "foot-front-IK", + "parent": "skeleton-control", + "rotation": -90.56, + "x": -51.95, + "y": -259.13, + "transform": "noRotationOrReflection", + "color": "d130ffff" + }, + { "name": "leg-up", "parent": "leg-control-front", "length": 144.38, "rotation": -99.42, "y": 0.45, "color": "d130ffff" }, + { "name": "leg-down", "parent": "leg-up", "length": 144.38, "rotation": 8.86, "x": 144.38, "color": "d130ffff" }, + { "name": "leg-front-1", "parent": "leg-control-front", "length": 35.95, "rotation": -90, "y": 0.45, "color": "65127cff" }, + { "name": "leg-front-2", "parent": "leg-front-1", "length": 35.95, "x": 35.95, "color": "65127cff" }, + { "name": "leg-front-3", "parent": "leg-front-2", "length": 35.95, "x": 35.95, "color": "65127cff" }, + { "name": "leg-front-4", "parent": "leg-front-3", "length": 35.95, "x": 35.95, "color": "65127cff" }, + { "name": "leg-front-5", "parent": "leg-front-4", "length": 35.95, "x": 35.95, "color": "65127cff" }, + { "name": "leg-front-6", "parent": "leg-front-5", "length": 35.95, "x": 35.95, "color": "65127cff" }, + { "name": "leg-front-7", "parent": "leg-front-6", "length": 35.95, "x": 35.95, "color": "65127cff" }, + { "name": "leg-front-8", "parent": "leg-front-7", "length": 35.95, "x": 35.95, "color": "65127cff" }, + { "name": "head-control", "parent": "head", "rotation": -87.57, "x": 71.99, "y": -39.68, "color": "ffce12ff" }, + { "name": "head-back-control", "parent": "head", "rotation": -87.57, "x": 68.52, "y": 49.17, "color": "ffce12ff" }, + { "name": "features-control", "parent": "head", "rotation": -87.57, "x": 88.9, "y": -37.83, "color": "ff5826ff" }, + { "name": "eye-front", "parent": "features-control", "x": -52.2, "y": -35.32, "color": "ff2e2eff" }, + { "name": "eye-front-iris", "parent": "eye-front", "x": -2.45, "y": 18.5, "color": "ff2e2eff" }, + { "name": "eye-front-up-eyelid-holder", "parent": "eye-front", "x": -23.12, "y": 25.84, "color": "ff2e2eff" }, + { "name": "eye-front-up-eyelid", "parent": "eye-front-up-eyelid-holder", "length": 24.39, "rotation": 12.94, "color": "ff2e2eff" }, + { "name": "eye-front-low-eyelid-holder", "parent": "eye-front", "x": -14.14, "y": 5.98, "color": "ff2e2eff" }, + { "name": "eye-front-low-eyelid", "parent": "eye-front-low-eyelid-holder", "length": 17.4, "rotation": -9.9, "color": "ff2e2eff" }, + { + "name": "eye-front-eyebrow", + "parent": "eye-front", + "length": 29.37, + "rotation": 3.58, + "x": -14.96, + "y": 46.78, + "color": "ff2e2eff" + }, + { "name": "eye-back", "parent": "features-control", "x": 35.89, "y": -33.38, "color": "f64379ff" }, + { "name": "eye-back-up-eyelid-holder", "parent": "eye-back", "x": 13.06, "y": 27.2, "color": "f64379ff" }, + { "name": "eye-back-up-eyelid", "parent": "eye-back-up-eyelid-holder", "length": 20.8, "rotation": 168.69, "color": "f64379ff" }, + { "name": "eye-back-low-eyelid-holder", "parent": "eye-back", "x": 12.51, "y": 5.71, "color": "f64379ff" }, + { "name": "eye-back-low-eyelid", "parent": "eye-back-low-eyelid-holder", "length": 16.37, "rotation": -164.58, "color": "f64379ff" }, + { "name": "eye-back-iris", "parent": "eye-back", "x": -4.9, "y": 17.41, "color": "f64379ff" }, + { + "name": "eye-back-eyebrow", + "parent": "eye-back", + "length": 22.32, + "rotation": 177.9, + "x": 6.26, + "y": 45.7, + "color": "f64379ff" + }, + { + "name": "hair-side-front", + "parent": "head", + "length": 117.55, + "rotation": -168.46, + "x": 97.12, + "y": 56.27, + "color": "ffce12ff" + }, + { + "name": "hair-side-back", + "parent": "head", + "length": 130.16, + "rotation": -145.86, + "x": 118.76, + "y": -73.3, + "color": "ffce12ff" + }, + { + "name": "hair-bangs-front", + "parent": "head", + "length": 77.62, + "rotation": 147.72, + "x": 141.51, + "y": 5.35, + "color": "ffce12ff" + }, + { + "name": "hair-bangs-back", + "parent": "head", + "length": 113.25, + "rotation": -108.68, + "x": 144.28, + "y": -7.09, + "color": "ffce12ff" + }, + { "name": "hat-base", "parent": "head", "x": 136.74, "y": 38.65, "skin": true, "color": "b131ffff" }, + { + "name": "hat", + "parent": "hat-base", + "length": 150.37, + "rotation": 8.06, + "x": -8.47, + "y": -4.44, + "skin": true, + "color": "b131ffff" + }, + { "name": "hat-control", "parent": "hat", "x": 65.29, "y": -6.95, "skin": true, "color": "b131ffff" }, + { "name": "pompom-control", "parent": "hat", "x": 150.97, "y": 0.35, "skin": true, "color": "b131ffff" }, + { "name": "end-arm-control", "parent": "arm-front-down", "length": 26.6, "x": 74.55, "y": 0.24, "color": "ff3636ff" }, + { + "name": "backpack", + "parent": "body-up", + "length": 120.69, + "rotation": -178.76, + "x": 114.16, + "y": 90.94, + "skin": true, + "color": "b57dd9ff" + }, + { "name": "backpack-control", "parent": "backpack", "x": 53.83, "y": -119.3, "skin": true, "color": "b57dd9ff" }, + { + "name": "bag", + "parent": "body-up", + "length": 68.52, + "rotation": 79.16, + "x": -62.49, + "y": 69.37, + "skin": true, + "color": "e8afe7ff" + }, + { "name": "bag-control", "parent": "bag", "x": 84.37, "y": 53.1, "skin": true, "color": "e8afe7ff" }, + { + "name": "bag-flap", + "parent": "bag", + "length": 64.04, + "rotation": -1.51, + "x": 23, + "y": 89.94, + "skin": true, + "color": "e8afe7ff" + }, + { + "name": "scarf-back", + "parent": "neck", + "length": 115.61, + "rotation": 90.68, + "x": 28.76, + "y": 92.8, + "skin": true, + "color": "69ff53ff" + }, + { "name": "bag-strap-back", "parent": "arm-front-control", "x": -0.31, "y": 10.97, "skin": true, "color": "e8afe7ff" }, + { + "name": "bag-back-down", + "parent": "bag-control", + "rotation": -173.48, + "x": -31.08, + "y": -10.86, + "skin": true, + "color": "e8afe7ff" + }, + { "name": "bag-strap-front", "parent": "arm-front-control", "x": 2.82, "y": -11.88, "skin": true, "color": "e8afe7ff" }, + { + "name": "bag-back-front", + "parent": "bag", + "rotation": -173.48, + "x": -18.37, + "y": 34.05, + "skin": true, + "color": "e8afe7ff" + }, + { + "name": "zip-girl", + "parent": "body-up", + "length": 40.75, + "rotation": -174.98, + "x": 79.28, + "y": -23.28, + "skin": true, + "color": "75f057ff" + }, + { + "name": "zip-boy", + "parent": "neck", + "length": 33.9, + "rotation": -173.57, + "x": 31.78, + "y": -23.85, + "skin": true, + "color": "ff4cf5ff" + }, + { "name": "hair-holder-front", "parent": "body-up", "x": 100.57, "y": 80.62, "skin": true, "color": "06b8d8ff" }, + { + "name": "hair-strand-front-1", + "parent": "hair-holder-front", + "length": 155.7, + "rotation": 174.65, + "x": -6.72, + "y": -5.97, + "skin": true, + "color": "06b7d875" + }, + { + "name": "hair-strand-front-3", + "parent": "hair-holder-front", + "length": 142.3, + "rotation": 136.62, + "x": 6.14, + "y": 25.81, + "skin": true, + "color": "06b7d875" + }, + { "name": "hair-holder-back", "parent": "body-up", "x": 105.21, "y": -48.86, "skin": true, "color": "2a96c6ff" }, + { + "name": "hair-strand-back-1", + "parent": "hair-holder-back", + "length": 136.84, + "rotation": -155.81, + "x": -1.27, + "y": -10.38, + "skin": true, + "color": "06b7d875" + }, + { + "name": "hair-strand-back-2", + "parent": "hair-holder-back", + "length": 125.26, + "rotation": -121.03, + "x": -10.45, + "y": -2.72, + "skin": true, + "color": "06b7d875" + }, + { + "name": "hair-strand-back-3", + "parent": "hair-holder-back", + "length": 162.33, + "rotation": -149.61, + "x": -5.97, + "y": -7.94, + "skin": true, + "color": "06b7d875" + }, + { + "name": "hair-strand-front-2", + "parent": "hair-holder-front", + "length": 133.58, + "rotation": 163.66, + "x": -0.73, + "y": 17.97, + "skin": true, + "color": "06b7d875" + }, + { + "name": "hair-strand-front-4", + "parent": "hair-holder-front", + "length": 110.33, + "rotation": 103.65, + "x": -2.97, + "y": 25.11, + "skin": true, + "color": "06b7d875" + }, + { "name": "eye-front-pupil", "parent": "eye-front", "x": -3.44, "y": 17.51, "color": "ff2e2eff" }, + { "name": "eye-back-pupil", "parent": "eye-back", "x": -5.89, "y": 16.42, "color": "f64379ff" }, + { "name": "eyelid-skin", "parent": "eye-front", "x": 1.06, "y": 41.21, "color": "ff2e2eff" }, + { "name": "arm-back-control", "parent": "body-up", "rotation": -94.33, "x": 73.75, "y": -67.88, "color": "321c9aff" }, + { + "name": "arm-back-up", + "parent": "arm-back-control", + "length": 102.6, + "rotation": -90, + "x": 0.28, + "y": -0.01, + "color": "321c9aff" + }, + { "name": "arm-back-down", "parent": "arm-back-up", "length": 102.6, "x": 102.6, "color": "321c9aff" }, + { "name": "hand-back", "parent": "arm-back-down", "length": 30.54, "x": 97.35, "y": -2, "color": "321c9aff" }, + { "name": "end-arm-control-back", "parent": "arm-back-down", "length": 26.6, "x": 74.55, "y": 0.24, "color": "321c9aff" }, + { "name": "arm-back-up-2", "parent": "arm-back-control", "length": 33.49, "rotation": -90, "x": 0.33, "color": "321c9aff" }, + { + "name": "arm-back-up-3", + "parent": "arm-back-up-2", + "length": 33.49, + "rotation": 0.17, + "x": 166.24, + "y": -0.24, + "color": "321c9aff" + }, + { + "name": "arm-back-up-4", + "parent": "arm-back-up-3", + "length": 33.49, + "rotation": -0.88, + "x": -32.9, + "y": 0.42, + "color": "321c9aff" + }, + { + "name": "arm-back-up-5", + "parent": "arm-back-up-4", + "length": 33.49, + "rotation": 0.14, + "x": -33.3, + "y": -0.25, + "color": "321c9aff" + }, + { + "name": "arm-back-up-6", + "parent": "arm-back-up-5", + "length": 33.49, + "rotation": 0.3, + "x": -33.16, + "y": -0.37, + "color": "321c9aff" + }, + { + "name": "arm-back-up-7", + "parent": "arm-back-up-6", + "length": 33.49, + "rotation": 0.34, + "x": -33.13, + "y": -0.26, + "color": "321c9aff" + }, + { "name": "leg-control-back", "parent": "hips", "x": 41.56, "y": -0.92, "color": "8f0c5bff" }, + { + "name": "foot-back-IK", + "parent": "skeleton-control", + "rotation": -90.56, + "x": 38.54, + "y": -259.75, + "transform": "noRotationOrReflection", + "color": "d130ffff" + }, + { "name": "leg-up-back", "parent": "leg-control-back", "length": 144.38, "rotation": -92.95, "y": 0.45, "color": "8f0c5bff" }, + { "name": "leg-down-back", "parent": "leg-up-back", "length": 144.38, "rotation": 3.48, "x": 144.38, "color": "8f0c5bff" }, + { + "name": "leg-back-1", + "parent": "leg-control-back", + "length": 35.95, + "rotation": -90, + "x": 0.56, + "y": -0.12, + "color": "8f0c5bff" + }, + { + "name": "leg-back-2", + "parent": "leg-back-1", + "length": 35.95, + "rotation": -0.31, + "x": 36.23, + "y": -0.19, + "color": "8f0c5bff" + }, + { + "name": "leg-back-3", + "parent": "leg-back-2", + "length": 35.95, + "rotation": -0.01, + "x": 35.71, + "y": -0.01, + "color": "8f0c5bff" + }, + { + "name": "leg-back-4", + "parent": "leg-back-3", + "length": 35.95, + "rotation": 0.03, + "x": 36.23, + "y": 0.02, + "color": "8f0c5bff" + }, + { + "name": "leg-back-5", + "parent": "leg-back-4", + "length": 35.95, + "rotation": 0.12, + "x": 35.63, + "y": 0.08, + "color": "8f0c5bff" + }, + { + "name": "leg-back-6", + "parent": "leg-back-5", + "length": 35.95, + "rotation": 0.22, + "x": 35.64, + "y": 0.14, + "color": "8f0c5bff" + }, + { + "name": "leg-back-7", + "parent": "leg-back-6", + "length": 35.95, + "rotation": 0.2, + "x": 36.22, + "y": 0.13, + "color": "65127cff" + }, + { + "name": "leg-back-8", + "parent": "leg-back-7", + "length": 35.95, + "rotation": 0.11, + "x": 35.68, + "y": 0.07, + "color": "65127cff" + }, + { + "name": "foot-front", + "parent": "foot-front-IK", + "length": 34.32, + "rotation": 90.56, + "x": -1.86, + "y": -0.32, + "color": "d130ffff" + }, + { + "name": "foot-back", + "parent": "foot-back-IK", + "length": 34.32, + "rotation": 90.56, + "x": -2.9, + "y": -1.91, + "color": "d130ffff" + }, + { + "name": "skirt-control", + "parent": "skeleton-control", + "rotation": 90, + "x": 4.35, + "y": -26.24, + "skin": true, + "color": "8dff00ff" + }, + { "name": "skirt-control-up", "parent": "skirt-control", "x": -15.87, "y": -0.12, "skin": true, "color": "09d627ff" }, + { + "name": "skirt-rotation-back", + "parent": "body-up", + "length": 150.48, + "rotation": -119.15, + "x": 3.77, + "y": -67.52, + "skin": true, + "color": "09d627ff" + }, + { + "name": "skirt-rotation-front", + "parent": "body-up", + "length": 140.39, + "rotation": 113.07, + "x": 8.14, + "y": 30.47, + "skin": true, + "color": "09d627ff" + }, + { "name": "skirt-control-middle", "parent": "skirt-control-up", "x": -19.76, "skin": true, "color": "09d627ff" }, + { + "name": "skirt-control-back", + "parent": "skirt-rotation-back", + "rotation": 114.82, + "x": 148.43, + "y": -0.72, + "skin": true, + "color": "09d627ff" + }, + { + "name": "skirt-control-front", + "parent": "skirt-rotation-front", + "rotation": -117.4, + "x": 141.99, + "y": 2.23, + "skin": true, + "color": "09d627ff" + }, + { "name": "skirt-control-front-down", "parent": "skirt-control-front", "x": -45.51, "y": -13.62, "skin": true, "color": "09d627ff" }, + { "name": "skirt-control-back-down", "parent": "skirt-control-back", "x": -47.46, "y": 29.56, "skin": true, "color": "09d627ff" }, + { "name": "cape-red-front-inside", "parent": "body-up", "x": 32.8, "y": -12.11, "skin": true, "color": "ff539eff" }, + { + "name": "cape-front-rotator", + "parent": "arm-front-up", + "length": 47.18, + "rotation": -20.19, + "x": 4.09, + "y": -7.54, + "skin": true, + "color": "ff3eafff" + }, + { + "name": "cape-red-front-outside", + "parent": "cape-front-rotator", + "rotation": 20.19, + "x": 47.43, + "y": -0.24, + "skin": true, + "color": "ff539eff" + }, + { "name": "shouder-front-transform", "parent": "body-up", "rotation": -94.33, "x": 93.23, "y": 0.49, "color": "ffce12ff" }, + { "name": "shoulder-front", "parent": "shouder-front-transform", "x": -43.57, "y": -0.76, "color": "ffce12ff" }, + { + "name": "cape-back-rotator", + "parent": "arm-back-up", + "length": 47.3, + "rotation": 33.51, + "x": 1.09, + "y": 4.74, + "skin": true, + "color": "93006dff" + }, + { + "name": "cape-red-back-outside", + "parent": "cape-back-rotator", + "rotation": 56.49, + "x": 45.94, + "y": 0.9, + "skin": true, + "color": "93006dff" + }, + { "name": "cape-red-back-inside", "parent": "body-up", "x": 37.71, "y": -42.92, "skin": true, "color": "93006dff" }, + { "name": "shoulder-back-transform", "parent": "body-up", "rotation": -4.33, "x": 84.44, "y": -34.31, "color": "ffce12ff" }, + { "name": "shoulder-back", "parent": "shoulder-back-transform", "x": 1.09, "y": -39.44, "color": "ffce12ff" }, + { + "name": "dress-control-leg-up-back", + "parent": "skeleton-control", + "rotation": -89.47, + "x": 86.24, + "y": -100.16, + "skin": true, + "color": "ff7a45ff" + }, + { + "name": "dress-control-leg-down-back", + "parent": "skeleton-control", + "rotation": -92.95, + "x": 86.81, + "y": -134.93, + "skin": true, + "color": "ff7a45ff" + }, + { + "name": "dress-control-leg-up-front", + "parent": "skeleton-control", + "rotation": -91.9, + "x": -81.34, + "y": -100.16, + "skin": true, + "color": "ff7a45ff" + }, + { + "name": "dress-control-leg-down-front", + "parent": "skeleton-control", + "rotation": -98.06, + "x": -83.05, + "y": -132.65, + "skin": true, + "color": "ff7a45ff" + }, + { + "name": "dress-control-foot-front", + "parent": "skeleton-control", + "rotation": -98.06, + "x": -112.69, + "y": -254.06, + "skin": true, + "color": "ff7a45ff" + }, + { + "name": "dress-control-foot-back", + "parent": "skeleton-control", + "rotation": -92.95, + "x": 97.07, + "y": -251.21, + "skin": true, + "color": "ff7a45ff" + }, + { "name": "dress-control-middle", "parent": "skeleton-control", "x": -5.53, "y": -254.06, "skin": true, "color": "ff7a45ff" }, + { + "name": "sleeve-control-front", + "parent": "arm-front-up-7", + "length": 97.31, + "rotation": 90.71, + "x": 37.64, + "y": -41.32, + "skin": true, + "color": "5e0202ff" + }, + { + "name": "sleeve-control-back", + "parent": "end-arm-control-back", + "length": 97.31, + "rotation": -90, + "x": 25.63, + "y": 55.1, + "skin": true, + "color": "02045eff" + }, + { + "name": "cape-blue-up", + "parent": "body-up", + "length": 175.73, + "rotation": 177.83, + "x": 92.56, + "y": 4.87, + "skin": true, + "color": "1130ff78" + }, + { + "name": "cape-blue-down", + "parent": "cape-blue-up", + "length": 116.65, + "rotation": 0.09, + "x": 175.73, + "skin": true, + "color": "1130ff78" + }, + { "name": "cape-blue-down-middle", "parent": "cape-blue-down", "x": 168.33, "y": -1.52, "skin": true, "color": "1130ff78" }, + { "name": "cape-blue-down-front", "parent": "cape-blue-down-middle", "x": -19.01, "y": -133.73, "skin": true, "color": "1130ff78" }, + { "name": "cape-blue-down-back", "parent": "cape-blue-down-middle", "x": -10.01, "y": 121.12, "skin": true, "color": "1130ff78" }, + { "name": "cape-blue-middle-front", "parent": "cape-blue-down", "x": 41.13, "y": -101.46, "skin": true, "color": "1130ff78" }, + { "name": "cape-blue-middle-back", "parent": "cape-blue-down", "x": 33.12, "y": 96.5, "skin": true, "color": "1130ff78" }, + { + "name": "cape-blue-up-front", + "parent": "cape-front-rotator", + "rotation": 22.44, + "x": 98.31, + "y": 4.67, + "skin": true, + "color": "1130ff78" + }, + { + "name": "cape-blue-up-back", + "parent": "cape-back-rotator", + "rotation": -31.35, + "x": 69.6, + "y": -16.89, + "skin": true, + "color": "1130ff78" + }, + { + "name": "cape-blue-control", + "parent": "head", + "rotation": 2.43, + "x": 179.82, + "y": -1.71, + "skin": true, + "color": "ff11b6ff" + }, + { "name": "mouth", "parent": "features-control", "x": -0.72, "y": -41.96, "color": "258effff" } +], +"slots": [ + { "name": "sleeve-inner-back", "bone": "arm-back-down", "attachment": "sleeve-inner-back" }, + { "name": "cape-back", "bone": "body-up", "attachment": "cape-back" }, + { "name": "hand-back", "bone": "hand-back", "color": "e8d5ebff", "attachment": "hand-back-fingers" }, + { "name": "arm-back", "bone": "arm-back-up", "color": "e8d5ebff", "attachment": "arm-back" }, + { "name": "cape-up-back", "bone": "head", "attachment": "cape-up-back" }, + { "name": "leg-back", "bone": "leg-control-back", "attachment": "leg-back" }, + { "name": "backpack-up", "bone": "backpack", "attachment": "backpack-up" }, + { "name": "backpack", "bone": "backpack", "attachment": "backpack" }, + { "name": "boot-ribbon-back", "bone": "leg-back-5", "attachment": "boot-ribbon-back" }, + { "name": "leg-back-path", "bone": "leg-control-back", "attachment": "leg-back-path" }, + { "name": "hair-back", "bone": "head", "attachment": "hair-back" }, + { "name": "arm-back-path", "bone": "arm-back-control", "attachment": "arm-back-path" }, + { "name": "scarf-back", "bone": "scarf-back", "attachment": "scarf-back" }, + { "name": "backpack-pocket", "bone": "backpack", "attachment": "backpack-pocket" }, + { "name": "hair-strand-back-3", "bone": "hair-strand-back-3", "attachment": "hair-strand-back-3" }, + { "name": "hair-strand-back-2", "bone": "hair-strand-back-2", "attachment": "hair-strand-back-2" }, + { "name": "hair-strand-front-2", "bone": "hair-strand-front-2", "attachment": "hair-strand-front-2" }, + { "name": "hair-strand-front-4", "bone": "hair-strand-front-4", "attachment": "hair-strand-front-4" }, + { "name": "backpack-strap-back", "bone": "backpack", "attachment": "backpack-strap-back" }, + { "name": "neck", "bone": "neck", "attachment": "neck" }, + { "name": "leg-front", "bone": "leg-control-front", "attachment": "leg-front" }, + { "name": "boot-ribbon-front", "bone": "leg-front-5", "attachment": "boot-ribbon-front" }, + { "name": "hair-strand-front-3", "bone": "hair-strand-front-3", "attachment": "hair-strand-front-3" }, + { "name": "bag-strap-back", "bone": "bag", "attachment": "bag-strap-back" }, + { "name": "body", "bone": "body-down", "attachment": "body" }, + { "name": "hair-side-back", "bone": "hair-side-back", "attachment": "hair-side-back" }, + { "name": "base-head", "bone": "head", "attachment": "base-head" }, + { "name": "hair-patch", "bone": "head", "attachment": "hair-patch" }, + { "name": "body-dress", "bone": "hips", "attachment": "body-dress" }, + { "name": "collar", "bone": "body-up", "attachment": "collar" }, + { "name": "mouth", "bone": "mouth", "attachment": "mouth-smile" }, + { "name": "ear", "bone": "head", "attachment": "ear" }, + { "name": "eye-back-white", "bone": "eye-back", "attachment": "eye-back-white" }, + { "name": "eye-back-iris", "bone": "eye-back-iris", "attachment": "eye-back-iris" }, + { "name": "eye-back-up-eyelid-back", "bone": "eye-back-up-eyelid", "attachment": "eye-back-up-eyelid-back" }, + { "name": "underskirt", "bone": "body-up", "attachment": "underskirt" }, + { "name": "skirt", "bone": "body-up", "attachment": "skirt" }, + { "name": "bag-base", "bone": "bag", "attachment": "bag-base" }, + { "name": "eye-back-pupil", "bone": "eye-back-pupil", "attachment": "eye-back-pupil" }, + { "name": "bag-top", "bone": "bag", "attachment": "bag-top" }, + { "name": "eye-front-white", "bone": "eye-front", "attachment": "eye-front-white" }, + { "name": "eye-front-iris", "bone": "eye-front-iris", "attachment": "eye-front-iris" }, + { "name": "eye-front-pupil", "bone": "eye-front-pupil", "attachment": "eye-front-pupil" }, + { "name": "backpack-strap-front", "bone": "backpack", "attachment": "backpack-strap-front" }, + { "name": "bag-strap-front", "bone": "bag", "attachment": "bag-strap-front" }, + { "name": "body-up", "bone": "body-up", "attachment": "body-up" }, + { "name": "hand-front", "bone": "hand-front", "attachment": "hand-front-fingers" }, + { "name": "ribbon-body", "bone": "body-up", "attachment": "ribbon-body" }, + { "name": "arm-front", "bone": "arm-front-control", "attachment": "arm-front" }, + { "name": "sleeve-inner-front", "bone": "arm-front-control", "attachment": "sleeve-inner-front" }, + { "name": "sleeve-front", "bone": "arm-front-up", "attachment": "sleeve-front" }, + { "name": "cape-red-down", "bone": "body-up", "attachment": "cape-red-down" }, + { "name": "cape-red-up", "bone": "body-up", "attachment": "cape-red-up" }, + { "name": "hair-strand-back-1", "bone": "hair-strand-back-1", "attachment": "hair-strand-back-1" }, + { "name": "zip-girl", "bone": "zip-girl", "attachment": "zip-girl" }, + { "name": "hair-strand-front-1", "bone": "hair-strand-front-1", "attachment": "hair-strand-front-1" }, + { "name": "ribbon-shoulder", "bone": "body-up", "attachment": "ribbon-shoulder" }, + { "name": "zip-boy", "bone": "zip-boy", "attachment": "zip-boy" }, + { "name": "scarf", "bone": "neck", "attachment": "scarf" }, + { "name": "eye-front-up-eyelid-back", "bone": "eye-front-up-eyelid", "attachment": "eye-front-up-eyelid-back" }, + { "name": "hair-side-front", "bone": "head", "attachment": "hair-side-front" }, + { "name": "hair-side-transparent", "bone": "hair-side-front", "color": "ffffff81", "attachment": "hair-side" }, + { "name": "hair-side", "bone": "hair-side-front", "attachment": "hair-side" }, + { "name": "hair-bangs", "bone": "hair-bangs-front", "attachment": "hair-bangs" }, + { "name": "eye-back-eyebrow", "bone": "eye-back-eyebrow", "attachment": "eye-back-eyebrow" }, + { "name": "eye-front-eyebrow", "bone": "eye-front-eyebrow", "attachment": "eye-front-eyebrow" }, + { "name": "eye-back-low-eyelid", "bone": "eye-back-low-eyelid", "attachment": "eye-back-low-eyelid" }, + { "name": "nose", "bone": "head-control", "attachment": "nose" }, + { "name": "eye-back-up-eyelid", "bone": "eye-back-up-eyelid", "attachment": "eye-back-up-eyelid" }, + { "name": "eye-front-low-eyelid", "bone": "eye-front-low-eyelid", "attachment": "eye-front-low-eyelid" }, + { "name": "eye-front-up-eyelid", "bone": "eye-front-up-eyelid", "attachment": "eye-front-up-eyelid" }, + { "name": "hair-bangs-transparent", "bone": "hair-bangs-front", "color": "ffffff81", "attachment": "hair-bangs-transparent" }, + { "name": "hat", "bone": "hat-base", "attachment": "hat" }, + { "name": "pompom", "bone": "pompom-control", "attachment": "pompom" }, + { "name": "arm-front-path", "bone": "arm-front-control", "attachment": "arm-front-path" }, + { "name": "leg-front-path", "bone": "leg-control-front", "attachment": "leg-front-path" }, + { "name": "cape-blue-shoulder-back", "bone": "body-up", "attachment": "cape-blue-shoulder-back" }, + { "name": "cape-blue-shoulder-front", "bone": "body-up", "attachment": "cape-blue-shoulder-front" }, + { "name": "cape-blue-up-front", "bone": "head", "attachment": "cape-blue-up-front" }, + { "name": "cape-ribbon", "bone": "body-up", "attachment": "cape-ribbon" } +], +"ik": [ + { + "name": "foot-back", + "order": 1, + "bones": [ "leg-up-back", "leg-down-back" ], + "target": "foot-back-IK", + "bendPositive": false + }, + { + "name": "foot-front", + "bones": [ "leg-up", "leg-down" ], + "target": "foot-front-IK", + "bendPositive": false + } +], +"transform": [ + { + "name": "eye-back-pupil", + "order": 12, + "bones": [ "eye-back-iris" ], + "target": "eye-back-pupil", + "mixRotate": 0, + "mixX": 0.4, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "eye-front-pupil", + "order": 11, + "bones": [ "eye-front-iris" ], + "target": "eye-front-pupil", + "mixRotate": 0, + "mixX": 0.4, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "eye-transform", + "order": 7, + "bones": [ "features-control" ], + "target": "head-control", + "mixRotate": 0, + "mixX": 0.2, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "hair-side-back", + "order": 9, + "bones": [ "hair-side-back" ], + "target": "head-back-control", + "rotation": -62.21, + "x": 132.47, + "y": 46.72, + "mixRotate": 0, + "mixX": 0.05, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "hair-side-front-control", + "order": 8, + "bones": [ "hair-side-front" ], + "target": "head-control", + "rotation": -80.89, + "x": -102.78, + "y": 27.17, + "mixRotate": 0, + "mixX": 0.15, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "hat-control", + "order": 10, + "skin": true, + "bones": [ "hat-control" ], + "target": "head-control", + "rotation": 95.63, + "x": -78.91, + "y": 123.01, + "shearY": -36, + "mixRotate": 0, + "mixX": 0.6, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "head-control", + "order": 6, + "bones": [ "head-back-control" ], + "target": "head-control", + "x": -88.92, + "mixRotate": 0, + "mixX": -1, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "leg-down-back", + "order": 18, + "skin": true, + "bones": [ "dress-control-foot-back" ], + "target": "leg-down-back", + "x": 132.85, + "y": 58.02, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "leg-down-back-up", + "order": 19, + "skin": true, + "bones": [ "dress-control-leg-down-back" ], + "target": "leg-down-back", + "x": 17.25, + "y": 41.79, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "leg-down-down", + "order": 17, + "skin": true, + "bones": [ "dress-control-foot-front" ], + "target": "leg-down", + "x": 147.87, + "y": -60.85, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "leg-down-front", + "order": 16, + "skin": true, + "bones": [ "dress-control-leg-down-front" ], + "target": "leg-down", + "x": 23.51, + "y": -48.52, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "leg-up", + "order": 15, + "skin": true, + "bones": [ "dress-control-leg-up-front" ], + "target": "leg-up", + "x": 130.03, + "y": -50.13, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "leg-up-back", + "order": 14, + "skin": true, + "bones": [ "dress-control-leg-up-back" ], + "target": "leg-up-back", + "x": 129.36, + "y": 40.42, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "shoulder-back", + "order": 22, + "bones": [ "shoulder-back-transform" ], + "target": "arm-back-up", + "rotation": 180, + "x": -14.41, + "y": -46.12, + "mixRotate": 0.18, + "mixX": 0, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "shoulder-front", + "order": 21, + "bones": [ "shouder-front-transform" ], + "target": "arm-front-up", + "rotation": 90, + "x": -24.78, + "y": 29.54, + "mixRotate": 0.186, + "mixX": 0, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "skirt-rotation-back", + "order": 20, + "skin": true, + "bones": [ "skirt-control-back" ], + "target": "skirt-rotation-back", + "rotation": 114.82, + "x": 148.43, + "y": -0.72, + "shearY": -36, + "mixX": 0.7, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "skirt-rotation-front", + "order": 13, + "skin": true, + "bones": [ "skirt-control-front" ], + "target": "skirt-rotation-front", + "rotation": 242.6, + "x": 141.99, + "y": 2.23, + "shearY": -36, + "mixX": 0.7, + "mixScaleX": 0, + "mixShearY": 0 + } +], +"path": [ + { + "name": "arm-back", + "order": 4, + "bones": [ "arm-back-up-2", "arm-back-up-3", "arm-back-up-4", "arm-back-up-5", "arm-back-up-6", "arm-back-up-7" ], + "target": "arm-back-path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.1667 + }, + { + "name": "arm-front", + "order": 2, + "bones": [ "arm-front-up-2", "arm-front-up-6", "arm-front-up-5", "arm-front-up-4", "arm-front-up-3", "arm-front-up-7" ], + "target": "arm-front-path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.1667 + }, + { + "name": "leg-back", + "order": 5, + "bones": [ "leg-back-8", "leg-back-7", "leg-back-6", "leg-back-5", "leg-back-4", "leg-back-3", "leg-back-2", "leg-back-1" ], + "target": "leg-back-path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.125 + }, + { + "name": "leg-front", + "order": 3, + "bones": [ "leg-front-1", "leg-front-2", "leg-front-3", "leg-front-4", "leg-front-5", "leg-front-6", "leg-front-7", "leg-front-8" ], + "target": "leg-front-path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.125 + } +], +"skins": [ + { + "name": "default", + "attachments": { + "arm-back-path": { + "arm-back-path": { + "type": "path", + "lengths": [ 199.98, 399.97 ], + "vertexCount": 6, + "vertices": [ 1, 80, -60.01, -0.11, 1, 1, 80, -0.01, 0.05, 1, 1, 80, 101.83, 0.31, 1, 1, 80, 103.15, 0.64, 1, 1, 81, 97.37, -0.61, 1, 1, 80, 259.96, -1.39, 1 ] + } + }, + "arm-front-path": { + "arm-front-path": { + "type": "path", + "lengths": [ 199.98, 399.97 ], + "vertexCount": 6, + "vertices": [ 1, 8, -60.01, -0.11, 1, 1, 8, -0.01, 0.05, 1, 1, 8, 101.83, 0.31, 1, 1, 8, 103.15, 0.64, 1, 1, 9, 97.37, -0.61, 1, 1, 8, 259.96, -1.39, 1 ] + } + }, + "leg-back-path": { + "leg-back-path": { + "type": "path", + "lengths": [ 286.77, 574.08 ], + "vertexCount": 6, + "vertices": [ 1, 92, -85.48, 1, 1, 1, 92, 0.57, 0.56, 1, 1, 92, 144.45, -0.19, 1, 1, 92, 145.16, -0.52, 1, 1, 93, 143, 0.56, 1, 1, 92, 373.43, 1.21, 1 ] + } + }, + "leg-front-path": { + "leg-front-path": { + "type": "path", + "lengths": [ 286.67, 574.82 ], + "vertexCount": 6, + "vertices": [ 1, 19, -85.48, 1, 1, 1, 19, 0.57, 0.56, 1, 1, 19, 144.45, -0.19, 1, 1, 19, 145.16, -0.52, 1, 1, 20, 143, 0.56, 1, 1, 19, 373.43, 1.21, 1 ] + } + } + } + }, + { + "name": "skin-base", + "attachments": { + "arm-back": { + "arm-back": { + "name": "girl-spring-dress/arm-front", + "type": "mesh", + "uvs": [ 1, 1, 0.51047, 1, 0, 1, 0, 0.90909, 0, 0.81818, 0, 0.72727, 0, 0.63636, 0, 0.54545, 0, 0.45455, 0, 0.36364, 0, 0.27273, 0, 0.18182, 0, 0.09091, 0, 0, 0.53, 0, 1, 0, 1, 0.09091, 1, 0.18182, 1, 0.27273, 1, 0.36364, 1, 0.45455, 1, 0.54545, 1, 0.63636, 1, 0.72727, 1, 0.81818, 1, 0.90909, 0.52825, 0.08961, 0.52645, 0.18177, 0.52476, 0.26801, 0.52291, 0.36314, 0.52111, 0.45529, 0.51928, 0.54893, 0.51759, 0.63514, 0.51585, 0.72434, 0.5139, 0.82396, 0.51219, 0.91165 ], + "triangles": [ 10, 11, 28, 28, 27, 18, 29, 10, 28, 9, 10, 29, 28, 18, 19, 29, 28, 19, 29, 19, 20, 29, 30, 9, 30, 8, 9, 30, 29, 20, 30, 20, 21, 30, 31, 8, 32, 22, 23, 6, 7, 32, 32, 31, 22, 32, 7, 31, 31, 21, 22, 31, 7, 8, 33, 6, 32, 31, 30, 21, 5, 6, 33, 34, 4, 5, 33, 23, 24, 33, 34, 5, 34, 33, 24, 33, 32, 23, 34, 24, 25, 34, 35, 4, 35, 3, 4, 35, 34, 25, 1, 2, 3, 35, 1, 3, 35, 25, 0, 1, 35, 0, 26, 13, 14, 12, 13, 26, 14, 15, 16, 26, 14, 16, 27, 12, 26, 11, 12, 27, 26, 16, 17, 27, 26, 17, 28, 11, 27, 27, 17, 18 ], + "vertices": [ 1, 89, 35.41, 16.56, 1, 1, 89, 35.61, -0.08, 1, 1, 89, 35.83, -17.44, 1, 2, 89, 15.82, -17.69, 0.97415, 88, 49.68, -17.72, 0.02585, 2, 89, -4.19, -17.94, 0.30335, 88, 29.15, -17.93, 0.69665, 3, 89, -24.19, -18.19, 3.5E-4, 88, 8.61, -18.13, 0.83036, 87, 41.9, -18.17, 0.16929, 2, 88, -11.93, -18.33, 0.24, 87, 21.61, -18.27, 0.76, 2, 87, 1.31, -18.36, 0.8, 86, 34.7, -18.37, 0.2, 3, 87, -18.99, -18.46, 0.01161, 86, 14.31, -18.35, 0.93999, 85, 47.78, -18.38, 0.0484, 2, 86, -6.06, -18.32, 0.22079, 85, 27.38, -18.31, 0.77921, 2, 84, 40.35, -18.25, 0.20487, 85, 6.98, -18.25, 0.79513, 2, 84, 20.32, -18.19, 0.9496, 85, -13.42, -18.19, 0.0504, 1, 84, 0.28, -18.13, 1, 1, 84, -19.75, -18.07, 1, 1, 84, -19.7, -0.05, 1, 1, 84, -19.65, 15.93, 1, 1, 84, 0.38, 15.87, 1, 2, 84, 20.42, 15.81, 0.9733, 85, -13.31, 15.81, 0.0267, 2, 84, 40.45, 15.75, 0.16827, 85, 7.09, 15.75, 0.83173, 2, 86, -6.02, 15.68, 0.16665, 85, 27.49, 15.69, 0.83335, 3, 87, -19.15, 15.54, 0.00166, 86, 14.35, 15.65, 0.96514, 85, 47.89, 15.62, 0.0332, 2, 87, 1.15, 15.63, 0.5617, 86, 34.74, 15.63, 0.4383, 2, 88, -12.27, 15.67, 0.04304, 87, 21.45, 15.73, 0.95696, 2, 88, 8.27, 15.87, 0.86585, 87, 41.74, 15.83, 0.13415, 2, 89, -4.6, 16.06, 0.21057, 88, 28.8, 16.07, 0.78943, 2, 89, 15.4, 16.31, 0.97298, 88, 49.34, 16.27, 0.02702, 1, 84, 0.05, -0.17, 1, 1, 84, 20.36, -0.29, 1, 2, 84, 39.37, -0.4, 0.00128, 85, 5.99, -0.4, 0.99872, 1, 85, 27.33, -0.53, 1, 1, 86, 14.5, -0.63, 1, 2, 87, 2, -0.71, 0.95682, 86, 35.5, -0.72, 0.04318, 2, 88, -12.38, -0.74, 3.4E-4, 87, 21.25, -0.67, 0.99966, 2, 88, 7.77, -0.6, 0.99759, 87, 41.17, -0.64, 0.00241, 1, 88, 30.28, -0.44, 1, 1, 89, 16.17, -0.27, 1 ], + "hull": 26, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 0, 26, 28, 28, 30, 0, 2, 2, 4, 52, 28, 24, 52, 54, 52, 22, 54, 56, 54, 20, 56, 58, 56, 18, 58, 60, 58, 16, 60, 62, 60, 14, 62, 64, 62, 12, 64, 66, 64, 10, 66, 68, 66, 8, 68, 2, 70, 70, 68, 6, 70 ], + "width": 34, + "height": 222 + } + }, + "arm-front": { + "arm-front": { + "name": "girl-spring-dress/arm-front", + "type": "mesh", + "uvs": [ 1, 1, 0.51047, 1, 0, 1, 0, 0.90909, 0, 0.81818, 0, 0.72727, 0, 0.63636, 0, 0.54545, 0, 0.45455, 0, 0.36364, 0, 0.27273, 0, 0.18182, 0, 0.09091, 0, 0, 0.53, 0, 1, 0, 1, 0.09091, 1, 0.18182, 1, 0.27273, 1, 0.36364, 1, 0.45455, 1, 0.54545, 1, 0.63636, 1, 0.72727, 1, 0.81818, 1, 0.90909, 0.52825, 0.08961, 0.52645, 0.18177, 0.52476, 0.26801, 0.52291, 0.36314, 0.52111, 0.45529, 0.51928, 0.54893, 0.51759, 0.63514, 0.51585, 0.72434, 0.5139, 0.82396, 0.51219, 0.91165 ], + "triangles": [ 35, 3, 4, 34, 24, 25, 34, 35, 4, 35, 34, 25, 1, 2, 3, 35, 1, 3, 35, 25, 0, 1, 35, 0, 5, 6, 33, 34, 4, 5, 33, 23, 24, 33, 34, 5, 34, 33, 24, 33, 32, 23, 32, 22, 23, 6, 7, 32, 32, 31, 22, 32, 7, 31, 31, 21, 22, 31, 30, 21, 31, 7, 8, 33, 6, 32, 29, 19, 20, 29, 30, 9, 30, 8, 9, 30, 29, 20, 30, 20, 21, 30, 31, 8, 29, 10, 28, 9, 10, 29, 28, 18, 19, 29, 28, 19, 10, 11, 28, 26, 13, 14, 12, 13, 26, 14, 15, 16, 26, 14, 16, 27, 12, 26, 11, 12, 27, 26, 16, 17, 27, 26, 17, 28, 11, 27, 27, 17, 18, 28, 27, 18 ], + "vertices": [ 1, 16, 38.32, 16.3, 1, 1, 16, 38.52, -0.34, 1, 1, 16, 38.73, -17.69, 1, 2, 12, 52.67, -17.99, 0.00808, 16, 18.72, -17.94, 0.99192, 2, 12, 32.13, -18.19, 0.55013, 16, -1.29, -18.19, 0.44987, 3, 13, 44.84, -18.45, 0.17, 12, 11.58, -18.39, 0.82609, 16, -21.3, -18.44, 0.00391, 3, 14, 58.02, -18.69, 0.00461, 13, 24.54, -18.55, 0.51, 12, -8.96, -18.59, 0.48539, 2, 14, 37.65, -18.67, 0.24, 13, 4.25, -18.64, 0.76, 3, 15, 50.74, -18.68, 0.01218, 14, 17.27, -18.64, 0.69782, 13, -16.04, -18.74, 0.29, 2, 15, 30.34, -18.61, 0.58, 14, -3.11, -18.62, 0.42, 3, 11, 43.26, -18.55, 0.66266, 15, 9.94, -18.55, 0.32, 14, -23.49, -18.6, 0.01734, 2, 11, 23.22, -18.49, 0.87756, 15, -10.46, -18.49, 0.12244, 1, 11, 3.19, -18.43, 1, 1, 11, -16.84, -18.37, 1, 1, 11, -16.79, -0.35, 1, 1, 11, -16.74, 15.63, 1, 1, 11, 3.29, 15.57, 1, 2, 11, 23.32, 15.51, 0.91061, 15, -10.35, 15.51, 0.08939, 2, 11, 43.36, 15.45, 0.68, 15, 10.05, 15.45, 0.32, 2, 15, 30.45, 15.39, 0.58, 14, -3.07, 15.38, 0.42, 3, 15, 50.84, 15.32, 0.00487, 14, 17.31, 15.36, 0.70513, 13, -16.21, 15.26, 0.29, 2, 14, 37.69, 15.33, 0.24, 13, 4.09, 15.36, 0.76, 2, 13, 24.38, 15.45, 0.51, 12, -9.3, 15.4, 0.49, 2, 13, 44.67, 15.55, 0.17, 12, 11.24, 15.61, 0.83, 2, 12, 31.78, 15.81, 0.59679, 16, -1.7, 15.8, 0.40321, 2, 12, 52.32, 16.01, 0.00481, 16, 18.31, 16.05, 0.99519, 1, 11, 2.96, -0.47, 1, 1, 11, 23.27, -0.59, 1, 1, 15, 8.94, -0.71, 1, 2, 15, 30.28, -0.83, 0.58, 14, -3.2, -0.84, 0.42, 2, 14, 17.46, -0.93, 0.71, 13, -15.96, -1.02, 0.29, 2, 14, 38.45, -1.01, 0.24, 13, 4.94, -0.98, 0.76, 1, 13, 24.19, -0.95, 1, 2, 13, 44.1, -0.92, 0.17, 12, 10.74, -0.86, 0.83, 2, 12, 33.25, -0.7, 0.55299, 16, -0.23, -0.71, 0.44701, 1, 16, 19.07, -0.52, 1 ], + "hull": 26, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 0, 26, 28, 28, 30, 0, 2, 2, 4, 52, 28, 24, 52, 54, 52, 22, 54, 56, 54, 20, 56, 58, 56, 18, 58, 60, 58, 16, 60, 62, 60, 14, 62, 64, 62, 12, 64, 66, 64, 10, 66, 68, 66, 8, 68, 2, 70, 70, 68, 6, 70 ], + "width": 34, + "height": 222 + } + }, + "base-head": { + "base-head": { "x": 74.74, "y": -10.09, "rotation": -87.57, "width": 189, "height": 145 } + }, + "ear": { + "ear": { + "name": "girl/ear", + "path": "girl-spring-dress/ear", + "x": 56.58, + "y": 85.63, + "rotation": -87.57, + "width": 38, + "height": 45 + } + }, + "hand-back": { + "hand-back-fingers": { + "name": "girl/hand-front-fingers", + "path": "girl-spring-dress/hand-front-fingers", + "x": 11.59, + "y": 1.97, + "rotation": 90, + "width": 38, + "height": 42 + } + }, + "hand-front": { + "hand-front-fingers": { + "name": "girl/hand-front-fingers", + "path": "girl-spring-dress/hand-front-fingers", + "x": 11.59, + "y": 1.97, + "rotation": 90, + "width": 38, + "height": 42 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-spring-dress/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 }, + "mouth-smile": { "name": "girl/mouth-smile", "path": "girl-spring-dress/mouth-smile", "x": -4.12, "y": 2.56, "width": 57, "height": 13 } + }, + "neck": { + "neck": { "name": "girl-spring-dress/neck", "x": 27.19, "y": -3.15, "rotation": -91.34, "width": 39, "height": 63 } + } + } + }, + { + "name": "accessories/backpack", + "bones": [ "backpack-control", "backpack" ], + "attachments": { + "backpack": { + "backpack": { + "name": "boy/backpack", + "type": "mesh", + "uvs": [ 0.56777, 0.99667, 1, 0.92022, 0.98943, 0.32667, 0.91222, 0.0979, 0.87918, 0, 0.78253, 0, 0.24991, 0.03363, 0.11246, 0.09517, 0.03085, 0.20163, 0.02226, 0.32638, 0.04803, 0.66073, 0, 0.74057, 0, 0.8803, 0.09742, 0.96347, 0.18118, 0.96513, 0.33582, 1, 0.54199, 0.39791, 0.50334, 0.16504, 0.57206, 0.93685, 0.13608, 0.44449, 0.52372, 0.28781, 0.0781, 0.37629, 0.11031, 0.6391, 0.39913, 0.04858, 0.7798, 0.01708 ], + "triangles": [ 24, 23, 5, 5, 23, 6, 17, 23, 24, 17, 24, 3, 17, 8, 7, 6, 17, 7, 17, 6, 23, 20, 17, 3, 20, 9, 8, 20, 8, 17, 21, 9, 20, 16, 20, 2, 19, 21, 20, 16, 19, 20, 18, 16, 1, 22, 19, 16, 18, 22, 16, 18, 14, 22, 18, 15, 14, 0, 18, 1, 0, 15, 18, 24, 5, 4, 24, 4, 3, 20, 3, 2, 22, 21, 19, 10, 9, 21, 10, 21, 22, 22, 12, 11, 16, 2, 1, 10, 22, 11, 22, 14, 12, 14, 13, 12 ], + "vertices": [ 2, 56, 176.31, 109.14, 0.42, 55, 230.15, -10.16, 0.58, 1, 56, 161.95, 213.46, 1, 2, 56, -19.06, 228.58, 0.82644, 55, 34.78, 109.29, 0.17356, 2, 56, -90.51, 217.16, 0.76, 55, -36.67, 97.87, 0.24, 2, 56, -121.08, 212.27, 0.80924, 55, -67.25, 92.98, 0.19076, 2, 56, -123.31, 189.48, 0.76, 55, -69.47, 70.19, 0.24, 2, 56, -125.31, 62.84, 0.27, 55, -71.47, -56.45, 0.73, 2, 56, -109.72, 28.59, 0.6115, 55, -55.89, -90.7, 0.3885, 2, 56, -79.18, 6.18, 0.7, 55, -25.34, -113.11, 0.3, 2, 56, -41.38, 0.45, 0.69983, 55, 12.45, -118.84, 0.30017, 2, 56, 61.04, -3.39, 0.7, 55, 114.87, -122.68, 0.3, 2, 56, 84.25, -17.09, 0.7, 55, 138.09, -136.38, 0.3, 2, 56, 126.81, -21.24, 0.7, 55, 180.64, -140.53, 0.3, 2, 56, 154.38, -0.73, 0.7, 55, 208.21, -120.02, 0.3, 2, 56, 156.81, 18.98, 0.7, 55, 210.64, -100.31, 0.3, 2, 56, 170.98, 54.42, 0.63, 55, 224.82, -64.87, 0.37, 1, 55, 46.19, 1.64, 1, 1, 55, -25.63, -0.57, 1, 1, 55, 211.91, -7.36, 1, 2, 56, -2.79, 23.8, 0.64851, 55, 51.04, -95.49, 0.35149, 1, 55, 12.23, 0.59, 1, 2, 56, -24.9, 12.14, 0.7, 55, 28.94, -107.15, 0.3, 2, 56, 55.9, 11.94, 0.7, 55, 109.74, -107.35, 0.3, 1, 55, -63.49, -21.7, 1, 2, 56, -118.16, 188.33, 0.7, 55, -64.33, 69.03, 0.3 ], + "hull": 16, + "edges": [ 0, 2, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30, 34, 6, 4, 6, 32, 4, 2, 4, 36, 28, 36, 2, 38, 32, 16, 34, 32, 40, 40, 34, 18, 40, 42, 44, 46, 48, 6, 8 ], + "width": 237, + "height": 306 + } + }, + "backpack-pocket": { + "backpack-pocket": { + "name": "boy/backpack-pocket", + "type": "mesh", + "uvs": [ 0.86114, 0.35068, 1, 0.88458, 0.68875, 1, 0.18636, 1, 0, 0.70482, 0.0163, 0.4457, 0.09191, 0.41902, 0, 0.17629, 0.14203, 0, 0.57054, 0, 0.74293, 0.14141, 0.55084, 0.66994, 0.52128, 0.39897, 0.41292, 0.24068, 0.4549, 0.43438 ], + "triangles": [ 3, 11, 2, 2, 11, 1, 3, 4, 11, 14, 4, 5, 4, 14, 11, 11, 0, 1, 11, 14, 0, 5, 6, 14, 14, 12, 0, 14, 6, 12, 6, 13, 12, 6, 7, 13, 12, 10, 0, 12, 13, 10, 7, 8, 13, 13, 9, 10, 13, 8, 9 ], + "vertices": [ 2, 55, 125.55, -28.25, 0.86973, 56, 71.72, 91.05, 0.13027, 2, 55, 191.82, -25.36, 0.79774, 56, 137.99, 93.94, 0.20226, 2, 55, 203.92, -47.5, 0.88, 56, 150.09, 71.8, 0.12, 2, 55, 200.66, -81, 0.65, 56, 146.83, 38.3, 0.35, 2, 55, 163.31, -89.9, 0.65, 56, 109.48, 29.4, 0.35, 2, 55, 131.7, -85.72, 0.65, 56, 77.87, 33.58, 0.35, 2, 55, 128.92, -80.36, 0.65, 56, 75.09, 38.94, 0.35, 2, 55, 98.61, -83.6, 0.69, 56, 44.78, 35.7, 0.31, 2, 55, 77.95, -72.02, 0.65, 56, 24.12, 47.28, 0.35, 2, 55, 80.74, -43.45, 0.81, 56, 26.91, 75.85, 0.19, 2, 55, 99.17, -33.64, 0.83791, 56, 45.34, 85.66, 0.16209, 2, 55, 162.62, -52.75, 0.88, 56, 108.79, 66.55, 0.12, 2, 55, 129.26, -51.49, 0.83, 56, 75.43, 67.81, 0.17, 2, 55, 109.18, -56.83, 0.83, 56, 55.35, 62.47, 0.17, 2, 55, 133.16, -56.34, 0.88, 56, 79.33, 62.96, 0.12 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20, 24, 12, 28, 10, 28, 0 ], + "width": 67, + "height": 123 + } + }, + "backpack-strap-back": { + "backpack-strap-back": { + "name": "boy/backpack-strap-front", + "type": "mesh", + "uvs": [ 0.15746, 0.22195, 0.30944, 0.21252, 0.41799, 0.2408, 0.49615, 0.30303, 0.52654, 0.38223, 0.47878, 0.49349, 0.31812, 0.63303, 0, 0.81218, 0, 1, 0.16615, 1, 0.74365, 0.70846, 0.91733, 0.54818, 1, 0.40675, 1, 0.25401, 0.86523, 0.12201, 0.61338, 0.02395, 0.32246, 0, 0.05759, 0.02018, 0.04457, 0.17292 ], + "triangles": [ 2, 1, 16, 10, 9, 6, 6, 9, 7, 15, 2, 16, 16, 0, 17, 0, 18, 17, 16, 1, 0, 9, 8, 7, 3, 2, 15, 4, 13, 12, 3, 14, 13, 3, 15, 14, 4, 3, 13, 5, 4, 11, 11, 4, 12, 10, 5, 11, 10, 6, 5 ], + "vertices": [ 2, 55, 44.79, 75.8, 0.174, 56, -9.04, 195.1, 0.826, 2, 55, 49.06, 136.63, 0.56071, 56, -4.77, 255.93, 0.43929, 2, 55, 57.59, 153.08, 0.37, 79, -3.48, -14.15, 0.63, 1, 79, 4.79, -23.1, 1, 1, 79, 7.1, -36.96, 1, 2, 55, 100.34, 155.9, 0.19, 79, 3.47, -56.43, 0.81, 3, 55, 128.1, 112.78, 0.27, 79, -36.75, -88.24, 0.46366, 56, 74.27, 232.08, 0.26634, 2, 55, 144.33, 78.25, 0.1, 56, 90.51, 197.55, 0.9, 2, 55, 177.04, 75.06, 0.1, 56, 123.22, 194.36, 0.9, 2, 55, 178.27, 87.63, 0.1, 56, 124.44, 206.93, 0.9, 3, 55, 151.86, 136.31, 0.27, 79, -11.02, -109.61, 0.48185, 56, 98.04, 255.61, 0.24815, 2, 55, 113.1, 188.14, 0.15, 79, 36.8, -66, 0.85, 2, 55, 89.07, 196.79, 0.04, 79, 43.08, -41.25, 0.96, 1, 79, 43.08, -14.52, 1, 1, 79, 32.84, 8.58, 1, 3, 55, 18.46, 162.82, 0.5, 79, 2.42, 25.74, 0.00271, 56, -35.37, 282.12, 0.49729, 2, 55, 7.35, 92.05, 0.174, 56, -46.48, 211.35, 0.826, 2, 55, 8.91, 71.67, 0.174, 56, -44.92, 190.97, 0.826, 2, 55, 35.42, 68.1, 0.174, 56, -18.41, 187.39, 0.826 ], + "hull": 19, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 0, 36, 6, 26, 10, 22 ], + "width": 76, + "height": 175 + } + }, + "backpack-strap-front": { + "backpack-strap-front": { + "name": "boy/backpack-strap-front", + "type": "mesh", + "uvs": [ 0.15746, 0.22195, 0.30944, 0.21252, 0.41799, 0.2408, 0.49615, 0.30303, 0.52654, 0.38223, 0.47878, 0.49349, 0.31812, 0.63303, 0, 0.81218, 0, 1, 0.16615, 1, 0.74365, 0.70846, 0.91733, 0.54818, 1, 0.40675, 1, 0.25401, 0.86523, 0.12201, 0.61338, 0.02395, 0.32246, 0, 0.05759, 0.02018, 0.04457, 0.17292 ], + "triangles": [ 10, 6, 5, 10, 5, 11, 5, 4, 11, 11, 4, 12, 4, 13, 12, 4, 3, 13, 3, 14, 13, 3, 15, 14, 3, 2, 15, 15, 2, 16, 10, 9, 6, 9, 8, 7, 16, 1, 0, 0, 18, 17, 16, 0, 17, 6, 9, 7, 2, 1, 16 ], + "vertices": [ 1, 55, 36.1, 23.68, 1, 2, 55, 35.58, 35.33, 0.91, 7, -7.77, -3.67, 0.09, 2, 55, 41.31, 43.06, 0.37, 7, 0.48, -8.62, 0.63, 1, 7, 6.42, -19.51, 1, 2, 55, 66.74, 48.87, 0.04, 7, 8.73, -33.37, 0.96, 2, 55, 85.77, 43.37, 0.19, 7, 5.1, -52.84, 0.81, 2, 55, 108.89, 28.85, 0.48, 7, -7.11, -77.26, 0.52, 1, 55, 137.75, 1.75, 1, 1, 55, 170.46, -1.44, 1, 1, 55, 171.69, 11.13, 1, 2, 55, 125.16, 59.76, 0.42, 7, 25.23, -90.46, 0.58, 2, 55, 98.53, 75.62, 0.15, 7, 38.43, -62.41, 0.85, 2, 55, 74.5, 84.27, 0.04, 7, 44.71, -37.66, 0.96, 1, 7, 44.71, -10.93, 1, 1, 7, 34.47, 12.17, 1, 2, 55, 4.98, 61.52, 0.09, 7, 15.33, 29.33, 0.91, 2, 55, -1.34, 39.92, 0.96, 7, -6.78, 33.52, 0.04, 1, 55, 0.22, 19.55, 1, 1, 55, 26.73, 15.97, 1 ], + "hull": 19, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 0, 36, 6, 26, 10, 22 ], + "width": 76, + "height": 175 + } + }, + "backpack-up": { + "backpack-up": { + "name": "boy/backpack-up", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 56, -112.01, 144.15, 0.96, 55, -137.28, 27.99, 0.04, 2, 56, -103.52, 189.83, 0.81, 55, -128.79, 73.67, 0.19, 2, 56, -49.76, 82.9, 0.17, 55, -75.03, -33.27, 0.83, 2, 56, -74.02, 32.48, 0.58, 55, -99.3, -83.68, 0.42 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 42, + "height": 139 + } + }, + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "accessories/bag", + "bones": [ "bag-control", "bag-strap-back", "bag-strap-front", "bag-back-down", "bag", "bag-flap", "bag-back-front" ], + "attachments": { + "bag-base": { + "bag-base": { + "name": "girl/bag-base", + "type": "mesh", + "uvs": [ 0.83893, 0.8993, 0.6302, 1, 0.16529, 0.94665, 0.01981, 0.72002, 0, 0.45956, 0.05144, 0.21601, 0.15581, 0, 0.8073, 0.02997, 0.95278, 0.23969, 1, 0.45956, 1, 0.68619, 0.61122, 0.80458, 0.56694, 0.49338, 0.67131, 0.22616 ], + "triangles": [ 13, 5, 6, 13, 6, 7, 2, 11, 1, 8, 9, 13, 10, 11, 9, 12, 5, 13, 12, 9, 11, 3, 12, 11, 13, 9, 12, 0, 11, 10, 1, 11, 0, 13, 7, 8, 4, 5, 12, 3, 4, 12, 2, 3, 11 ], + "vertices": [ 2, 57, -24.02, 97.1, 0.4359, 58, -108.39, 43.99, 0.5641, 2, 57, 0.18, 111.52, 0.48095, 58, -84.2, 58.41, 0.51905, 2, 57, 57.69, 111.91, 0.16986, 58, -26.69, 58.81, 0.83014, 2, 57, 78.42, 88.05, 0.54, 58, -5.95, 34.95, 0.46, 2, 57, 84.25, 58.57, 0.53182, 58, -0.13, 5.47, 0.46818, 2, 57, 81.14, 30.02, 0.39, 58, -3.24, -23.08, 0.61, 1, 58, -13.17, -49.22, 1, 2, 57, -8.8, -1.79, 0.37, 58, -93.18, -54.89, 0.63, 2, 57, -29.32, 20.14, 0.51747, 58, -113.69, -32.96, 0.48253, 2, 57, -37.96, 44.6, 0.46, 58, -122.33, -8.5, 0.54, 2, 57, -40.92, 70.5, 0.46, 58, -125.29, 17.39, 0.54, 2, 57, 5.05, 89.45, 0.96, 58, -79.33, 36.35, 0.04, 1, 57, 14.52, 54.52, 1, 2, 57, 5.26, 22.53, 0.92, 58, -79.12, -30.58, 0.08 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20, 24, 26, 22, 6 ], + "width": 123, + "height": 115 + } + }, + "bag-strap-back": { + "bag-strap-back": { + "name": "girl/bag-strap-front", + "type": "mesh", + "uvs": [ 0.10329, 0.09701, 0.09625, 0.16933, 0.0882, 0.24002, 0.07824, 0.30385, 0.06981, 0.37343, 0.06125, 0.44416, 0.05318, 0.51073, 0.04445, 0.58281, 0.03622, 0.65075, 0.02694, 0.72743, 0.01818, 0.7997, 0.00877, 0.87745, 0, 0.94985, 0.49463, 0.9881, 1, 0.94985, 0.9924, 0.87902, 0.98374, 0.79824, 0.97585, 0.72459, 0.96826, 0.65383, 0.96097, 0.58591, 0.95321, 0.51354, 0.94607, 0.44688, 0.93834, 0.37479, 0.93057, 0.30235, 0.92162, 0.23729, 0.91478, 0.1693, 0.90826, 0.09429, 0.90262, 0.04177, 0.68729, 0.00493, 0.50446, 0.00754, 0.29063, 0.0106, 0.10929, 0.04743, 0.49571, 0.88043, 0.49652, 0.79968, 0.49725, 0.72601, 0.49799, 0.65234, 0.49866, 0.58577, 0.49938, 0.51352, 0.50005, 0.44693, 0.50078, 0.3747, 0.50147, 0.30525, 0.50233, 0.23869, 0.50296, 0.17069, 0.50358, 0.09559 ], + "triangles": [ 36, 6, 37, 7, 6, 36, 36, 37, 20, 19, 36, 20, 35, 7, 36, 8, 7, 35, 35, 36, 19, 18, 35, 19, 34, 8, 35, 34, 35, 18, 34, 18, 17, 9, 8, 34, 33, 9, 34, 33, 34, 17, 33, 17, 16, 10, 9, 33, 32, 10, 33, 11, 10, 32, 32, 33, 16, 32, 16, 15, 13, 11, 32, 12, 11, 13, 13, 32, 15, 13, 15, 14, 43, 30, 29, 43, 29, 28, 26, 43, 28, 26, 28, 27, 0, 31, 30, 0, 30, 43, 42, 0, 43, 1, 0, 42, 42, 43, 26, 42, 26, 25, 41, 1, 42, 41, 42, 25, 41, 25, 24, 2, 1, 41, 40, 2, 41, 3, 2, 40, 40, 41, 24, 40, 24, 23, 39, 3, 40, 4, 3, 39, 39, 40, 23, 22, 39, 23, 38, 4, 39, 5, 4, 38, 38, 39, 22, 38, 22, 21, 37, 5, 38, 6, 5, 37, 37, 38, 21, 20, 37, 21 ], + "vertices": [ 2, 61, -9.66, -6.38, 0.99238, 62, -9.66, 163.86, 0.00762, 2, 61, -9.83, -20.27, 0.95187, 62, -9.83, 149.97, 0.04813, 2, 61, -10.03, -33.84, 0.88337, 62, -10.03, 136.4, 0.11663, 2, 61, -10.27, -46.1, 0.80311, 62, -10.27, 124.14, 0.19689, 2, 61, -10.47, -59.46, 0.70151, 62, -10.47, 110.78, 0.29849, 2, 61, -10.67, -73.04, 0.58865, 62, -10.67, 97.2, 0.41135, 2, 61, -10.87, -85.82, 0.47894, 62, -10.87, 84.42, 0.52106, 2, 61, -11.08, -99.66, 0.36197, 62, -11.08, 70.58, 0.63803, 2, 61, -11.27, -112.7, 0.25859, 62, -11.27, 57.54, 0.74141, 2, 61, -11.5, -127.42, 0.15597, 62, -11.5, 42.82, 0.84403, 2, 61, -11.71, -141.3, 0.07856, 62, -11.71, 28.94, 0.92144, 2, 61, -11.93, -156.23, 0.02246, 62, -11.93, 14.01, 0.97754, 2, 61, -12.14, -170.13, 0.00178, 62, -12.14, 0.11, 0.99822, 1, 62, -0.27, -7.23, 1, 2, 61, 11.86, -170.13, 0.00175, 62, 11.86, 0.11, 0.99825, 2, 61, 11.67, -156.53, 0.0217, 62, 11.67, 13.71, 0.9783, 2, 61, 11.47, -141.02, 0.07999, 62, 11.47, 29.22, 0.92001, 2, 61, 11.28, -126.88, 0.15955, 62, 11.28, 43.36, 0.84045, 2, 61, 11.1, -113.29, 0.25429, 62, 11.1, 56.95, 0.74571, 2, 61, 10.92, -100.25, 0.35721, 62, 10.92, 69.99, 0.64279, 2, 61, 10.73, -86.36, 0.47445, 62, 10.73, 83.88, 0.52555, 2, 61, 10.56, -73.56, 0.58435, 62, 10.56, 96.68, 0.41565, 2, 61, 10.38, -59.72, 0.69956, 62, 10.38, 110.52, 0.30044, 2, 61, 10.19, -45.81, 0.80529, 62, 10.19, 124.43, 0.19471, 2, 61, 9.98, -33.32, 0.88656, 62, 9.98, 136.92, 0.11344, 2, 61, 9.81, -20.26, 0.95193, 62, 9.81, 149.98, 0.04807, 2, 61, 9.66, -5.86, 0.99321, 62, 9.66, 164.38, 0.00679, 2, 61, 9.52, 4.22, 0.99996, 62, 9.52, 174.46, 4.0E-5, 1, 61, 4.35, 11.3, 1, 1, 61, -0.04, 10.79, 1, 1, 61, -5.17, 10.21, 1, 2, 61, -9.52, 3.14, 0.99986, 62, -9.52, 173.38, 1.4E-4, 2, 61, -0.25, -156.8, 0.02105, 62, -0.25, 13.44, 0.97895, 2, 61, -0.23, -141.3, 0.07899, 62, -0.23, 28.94, 0.92101, 2, 61, -0.21, -127.15, 0.15826, 62, -0.21, 43.09, 0.84174, 2, 61, -0.19, -113.01, 0.25696, 62, -0.19, 57.23, 0.74304, 2, 61, -0.18, -100.22, 0.35801, 62, -0.18, 70.02, 0.64199, 2, 61, -0.16, -86.35, 0.47508, 62, -0.16, 83.89, 0.52492, 2, 61, -0.14, -73.57, 0.58483, 62, -0.14, 96.67, 0.41517, 2, 61, -0.12, -59.7, 0.70022, 62, -0.12, 110.54, 0.29978, 2, 61, -0.11, -46.37, 0.80185, 62, -0.11, 123.87, 0.19815, 2, 61, -0.09, -33.59, 0.88541, 62, -0.09, 136.65, 0.11459, 2, 61, -0.07, -20.53, 0.95108, 62, -0.07, 149.71, 0.04892, 2, 61, -0.06, -6.11, 0.9934, 62, -0.06, 164.13, 0.0066 ], + "hull": 32, + "edges": [ 24, 26, 26, 28, 54, 56, 60, 62, 56, 58, 58, 60, 24, 22, 26, 64, 22, 64, 28, 30, 64, 30, 22, 20, 66, 64, 20, 66, 30, 32, 66, 32, 20, 18, 68, 66, 18, 68, 32, 34, 68, 34, 18, 16, 70, 68, 16, 70, 34, 36, 70, 36, 16, 14, 72, 70, 14, 72, 36, 38, 72, 38, 38, 40, 74, 72, 40, 74, 14, 12, 74, 12, 12, 10, 76, 74, 10, 76, 40, 42, 76, 42, 10, 8, 78, 76, 8, 78, 42, 44, 78, 44, 8, 6, 80, 78, 6, 80, 44, 46, 80, 46, 6, 4, 82, 80, 4, 82, 46, 48, 82, 48, 4, 2, 84, 82, 2, 84, 48, 50, 84, 50, 2, 0, 0, 62, 58, 86, 86, 84, 0, 86, 50, 52, 52, 54, 86, 52 ], + "width": 24, + "height": 192 + } + }, + "bag-strap-front": { + "bag-strap-front": { + "name": "girl/bag-strap-front", + "type": "mesh", + "uvs": [ 0.10329, 0.09701, 0.09625, 0.16933, 0.0882, 0.24002, 0.07824, 0.30385, 0.06981, 0.37343, 0.06125, 0.44416, 0.05318, 0.51073, 0.04445, 0.58281, 0.03622, 0.65075, 0.02694, 0.72743, 0.01818, 0.7997, 0.00877, 0.87745, 0, 0.94985, 0.49463, 0.9881, 1, 0.94985, 0.9924, 0.87902, 0.98374, 0.79824, 0.97585, 0.72459, 0.96826, 0.65383, 0.96097, 0.58591, 0.95321, 0.51354, 0.94607, 0.44688, 0.93834, 0.37479, 0.93057, 0.30235, 0.92162, 0.23729, 0.91478, 0.1693, 0.90826, 0.09429, 0.90262, 0.04177, 0.68729, 0.00493, 0.50446, 0.00754, 0.29063, 0.0106, 0.10929, 0.04743, 0.49571, 0.88043, 0.49652, 0.79968, 0.49725, 0.72601, 0.49799, 0.65234, 0.49866, 0.58577, 0.49938, 0.51352, 0.50005, 0.44693, 0.50078, 0.3747, 0.50147, 0.30525, 0.50233, 0.23869, 0.50296, 0.17069, 0.50358, 0.09559 ], + "triangles": [ 36, 6, 37, 7, 6, 36, 36, 37, 20, 19, 36, 20, 35, 7, 36, 8, 7, 35, 35, 36, 19, 18, 35, 19, 34, 8, 35, 34, 35, 18, 34, 18, 17, 9, 8, 34, 33, 9, 34, 33, 34, 17, 33, 17, 16, 10, 9, 33, 32, 10, 33, 11, 10, 32, 32, 33, 16, 32, 16, 15, 13, 11, 32, 12, 11, 13, 13, 32, 15, 13, 15, 14, 43, 30, 29, 43, 29, 28, 26, 43, 28, 26, 28, 27, 0, 31, 30, 0, 30, 43, 42, 0, 43, 1, 0, 42, 42, 43, 26, 42, 26, 25, 41, 1, 42, 41, 42, 25, 41, 25, 24, 2, 1, 41, 40, 2, 41, 3, 2, 40, 40, 41, 24, 40, 24, 23, 39, 3, 40, 4, 3, 39, 39, 40, 23, 22, 39, 23, 38, 4, 39, 5, 4, 38, 38, 39, 22, 38, 22, 21, 37, 5, 38, 6, 5, 37, 37, 38, 21, 20, 37, 21 ], + "vertices": [ 2, 63, -8.77, -6.38, 0.99173, 64, -8.77, 163.86, 0.00827, 2, 63, -8.94, -20.27, 0.94988, 64, -8.94, 149.97, 0.05012, 2, 63, -9.13, -33.84, 0.8807, 64, -9.13, 136.4, 0.1193, 2, 63, -9.37, -46.1, 0.8002, 64, -9.37, 124.14, 0.1998, 2, 63, -9.57, -59.46, 0.69863, 64, -9.57, 110.78, 0.30137, 2, 63, -9.78, -73.04, 0.58605, 64, -9.78, 97.2, 0.41395, 2, 63, -9.97, -85.82, 0.47675, 64, -9.97, 84.42, 0.52325, 2, 63, -10.18, -99.66, 0.36031, 64, -10.18, 70.58, 0.63969, 2, 63, -10.38, -112.7, 0.25746, 64, -10.38, 57.54, 0.74254, 2, 63, -10.6, -127.42, 0.1554, 64, -10.6, 42.82, 0.8446, 2, 63, -10.81, -141.3, 0.07837, 64, -10.81, 28.94, 0.92163, 2, 63, -11.04, -156.23, 0.02242, 64, -11.04, 14.01, 0.97758, 2, 63, -11.25, -170.13, 0.00161, 64, -11.25, 0.11, 0.99839, 1, 64, 0.62, -7.23, 1, 2, 63, 12.75, -170.13, 0.00201, 64, 12.75, 0.11, 0.99799, 2, 63, 12.57, -156.53, 0.02191, 64, 12.57, 13.71, 0.97809, 2, 63, 12.36, -141.02, 0.07986, 64, 12.36, 29.22, 0.92014, 2, 63, 12.17, -126.88, 0.15897, 64, 12.17, 43.36, 0.84103, 2, 63, 11.99, -113.29, 0.25319, 64, 11.99, 56.95, 0.74681, 2, 63, 11.82, -100.25, 0.35558, 64, 11.82, 69.99, 0.64442, 2, 63, 11.63, -86.36, 0.47228, 64, 11.63, 83.88, 0.52772, 2, 63, 11.46, -73.56, 0.58177, 64, 11.46, 96.68, 0.41823, 2, 63, 11.27, -59.72, 0.69669, 64, 11.27, 110.52, 0.30331, 2, 63, 11.09, -45.81, 0.80238, 64, 11.09, 124.43, 0.19762, 2, 63, 10.87, -33.32, 0.88388, 64, 10.87, 136.92, 0.11612, 2, 63, 10.71, -20.26, 0.94981, 64, 10.71, 149.98, 0.05019, 2, 63, 10.55, -5.86, 0.9921, 64, 10.55, 164.38, 0.0079, 2, 63, 10.42, 4.22, 0.99987, 64, 10.42, 174.46, 1.3E-4, 1, 63, 5.25, 11.3, 1, 1, 63, 0.86, 10.79, 1, 1, 63, -4.27, 10.21, 1, 2, 63, -8.62, 3.14, 0.99986, 64, -8.62, 173.38, 1.4E-4, 2, 63, 0.65, -156.8, 0.02114, 64, 0.65, 13.44, 0.97886, 2, 63, 0.67, -141.3, 0.07883, 64, 0.67, 28.94, 0.92117, 2, 63, 0.69, -127.15, 0.15769, 64, 0.69, 43.09, 0.84231, 2, 63, 0.71, -113.01, 0.25584, 64, 0.71, 57.23, 0.74416, 2, 63, 0.72, -100.22, 0.35637, 64, 0.72, 70.02, 0.64363, 2, 63, 0.74, -86.35, 0.4729, 64, 0.74, 83.89, 0.5271, 2, 63, 0.75, -73.57, 0.58224, 64, 0.75, 96.67, 0.41776, 2, 63, 0.77, -59.7, 0.69735, 64, 0.77, 110.54, 0.30265, 2, 63, 0.79, -46.37, 0.79894, 64, 0.79, 123.87, 0.20106, 2, 63, 0.81, -33.59, 0.88274, 64, 0.81, 136.65, 0.11726, 2, 63, 0.82, -20.53, 0.94901, 64, 0.82, 149.71, 0.05099, 2, 63, 0.84, -6.11, 0.99248, 64, 0.84, 164.13, 0.00752 ], + "hull": 32, + "edges": [ 24, 26, 26, 28, 54, 56, 60, 62, 56, 58, 58, 60, 24, 22, 26, 64, 22, 64, 28, 30, 64, 30, 22, 20, 66, 64, 20, 66, 30, 32, 66, 32, 20, 18, 68, 66, 18, 68, 32, 34, 68, 34, 18, 16, 70, 68, 16, 70, 34, 36, 70, 36, 16, 14, 72, 70, 14, 72, 36, 38, 72, 38, 38, 40, 74, 72, 40, 74, 14, 12, 74, 12, 12, 10, 76, 74, 10, 76, 40, 42, 76, 42, 10, 8, 78, 76, 8, 78, 42, 44, 78, 44, 8, 6, 80, 78, 6, 80, 44, 46, 80, 46, 6, 4, 82, 80, 4, 82, 46, 48, 82, 48, 4, 2, 84, 82, 2, 84, 48, 50, 84, 50, 2, 0, 0, 62, 58, 86, 86, 84, 0, 86, 50, 52, 52, 54, 86, 52 ], + "width": 24, + "height": 192 + } + }, + "bag-top": { + "bag-top": { + "name": "girl/bag-top", + "type": "mesh", + "uvs": [ 1, 0.14894, 0.84966, 0.28898, 0.7266, 0.46792, 0.65912, 0.72077, 0.65516, 0.89193, 0.50829, 1, 0.17883, 0.94639, 0.03593, 0.81802, 0.01211, 0.59629, 0, 0.33955, 0.11532, 0.13338, 0.28203, 0, 1, 0.07114 ], + "triangles": [ 10, 11, 1, 1, 11, 12, 3, 8, 2, 2, 9, 10, 2, 8, 9, 2, 10, 1, 0, 1, 12, 5, 6, 4, 6, 7, 4, 4, 7, 3, 7, 8, 3 ], + "vertices": [ 2, 57, -5.42, 3.3, 0.41, 58, -89.79, -49.81, 0.59, 3, 59, -13.49, -71.44, 0.03398, 57, 7.63, 18.88, 0.85009, 58, -76.74, -34.22, 0.11592, 3, 59, -4.05, -52.04, 0.16652, 57, 17.58, 38.03, 0.80014, 58, -66.8, -15.07, 0.03334, 3, 59, -1.04, -26.07, 0.43064, 57, 21.28, 63.9, 0.54658, 58, -63.1, 10.8, 0.02277, 3, 59, -3.04, -9.07, 0.70704, 57, 19.72, 80.95, 0.28124, 58, -64.65, 27.85, 0.01172, 1, 59, 9.7, 3.64, 1, 3, 59, 42.42, 2.84, 0.93871, 57, 65.48, 91.66, 0.04781, 58, -18.89, 38.56, 0.01348, 3, 59, 58.08, -7.91, 0.78056, 57, 80.85, 80.5, 0.08, 58, -3.52, 27.4, 0.13944, 3, 59, 63.49, -29.54, 0.29048, 57, 85.69, 58.73, 0.39733, 58, 1.31, 5.63, 0.31219, 3, 59, 68.25, -54.8, 0.05104, 57, 89.78, 33.36, 0.53142, 58, 5.41, -19.74, 0.41754, 2, 57, 80.9, 11.59, 0.38, 58, -3.48, -41.51, 0.62, 1, 58, -18.2, -56.62, 1, 2, 57, -4.53, -4.43, 0.41, 58, -88.91, -57.54, 0.59 ], + "hull": 13, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24, 2, 20, 8, 14 ], + "width": 98, + "height": 100 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "accessories/cape-blue", + "bones": [ "cape-blue-down-back", "cape-back-rotator", "cape-blue-middle-back", "cape-blue-control", "cape-blue-up-back", "cape-blue-middle-front", "cape-blue-up-front", "cape-blue-down", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle" ], + "attachments": { + "cape-back": { + "cape-back": { + "name": "girl-blue-cape/cape-back", + "type": "mesh", + "uvs": [ 0.16774, 0.18106, 0.16774, 0.29678, 0.15536, 0.37836, 0.1492, 0.41892, 0.13066, 0.53249, 0.10285, 0.63749, 0.06886, 0.74892, 0.03178, 0.84106, 0, 0.91392, 0, 0.96321, 0.12139, 0.97606, 0.26661, 0.98035, 0.36858, 0.99535, 0.49836, 1, 0.64667, 0.99106, 0.77645, 0.96535, 0.9124, 0.96535, 1, 0.94392, 1, 0.83678, 0.94639, 0.75535, 0.90313, 0.64606, 0.8815, 0.52821, 0.88459, 0.40392, 0.89409, 0.29849, 0.8803, 0.21766, 0.87223, 0.17035, 0.74864, 0, 0.23572, 0, 0.49006, 0.88368, 0.38711, 0.87971, 0.2632, 0.86913, 0.13357, 0.8612, 0.64257, 0.87178, 0.78173, 0.85062, 0.89421, 0.84798, 0.11069, 0.76072, 0.14882, 0.6457, 0.17551, 0.53994, 0.19457, 0.42227, 0.22507, 0.30196, 0.22507, 0.18165, 0.81605, 0.1724, 0.8332, 0.3998, 0.82939, 0.53465, 0.85227, 0.65628, 0.89611, 0.76998, 0.49768, 0.53861, 0.51865, 0.28874, 0.5034, 0.07324, 0.84979, 0.31308, 0.81597, 0.2321, 0.19995, 0.37876 ], + "triangles": [ 40, 27, 48, 46, 28, 29, 32, 28, 46, 11, 30, 29, 14, 32, 15, 28, 32, 14, 12, 11, 29, 13, 28, 14, 29, 28, 13, 12, 29, 13, 34, 33, 45, 34, 45, 19, 19, 18, 34, 17, 34, 18, 15, 32, 33, 16, 34, 17, 15, 33, 34, 16, 15, 34, 30, 31, 35, 7, 35, 31, 10, 9, 8, 31, 8, 7, 31, 10, 8, 10, 31, 30, 11, 10, 30, 21, 42, 22, 43, 42, 21, 43, 46, 42, 44, 43, 21, 44, 21, 20, 45, 44, 20, 45, 20, 19, 45, 33, 44, 46, 44, 32, 44, 46, 43, 44, 33, 32, 37, 4, 3, 36, 5, 4, 37, 36, 4, 35, 6, 5, 36, 35, 5, 7, 6, 35, 46, 36, 37, 36, 46, 29, 29, 30, 36, 30, 35, 36, 37, 38, 46, 48, 27, 26, 41, 48, 26, 41, 47, 48, 40, 48, 47, 49, 24, 23, 42, 50, 49, 47, 50, 42, 22, 49, 23, 42, 49, 22, 42, 46, 47, 41, 26, 25, 50, 47, 41, 49, 50, 24, 41, 24, 50, 24, 41, 25, 51, 2, 1, 38, 2, 51, 38, 51, 46, 40, 0, 27, 1, 0, 40, 39, 40, 47, 1, 40, 39, 39, 51, 1, 3, 2, 38, 47, 51, 39, 38, 37, 3, 46, 51, 47 ], + "vertices": [ 2, 139, -67.32, -1.83, 0.83, 4, 54.84, 90.31, 0.17, 2, 139, -22.81, -3.58, 0.9, 4, 10.42, 93.67, 0.1, 1, 139, 8.45, -8.12, 1, 2, 139, 23.99, -10.37, 0.84479, 137, -84.76, 9.18, 0.15521, 2, 139, 67.49, -17.04, 0.23, 137, -41.26, 2.52, 0.77, 3, 139, 107.59, -26.04, 0.00129, 137, -1.16, -6.49, 0.9964, 135, -109.35, 27.31, 0.00231, 3, 137, 41.35, -17.24, 0.64884, 135, -66.84, 16.56, 0.34223, 134, -85.85, -117.18, 0.00892, 4, 139, 185.16, -48.08, 0.02, 137, 76.41, -28.53, 0.21385, 135, -31.78, 5.27, 0.75071, 134, -50.79, -128.46, 0.01544, 2, 137, 104.1, -38.11, 0.00727, 135, -4.09, -4.31, 0.99273, 2, 135, 14.87, -5.06, 0.99722, 134, -4.14, -138.79, 0.00278, 3, 137, 129.28, -6.66, 0.02507, 135, 21.09, 27.14, 0.86628, 134, 2.08, -106.6, 0.10865, 3, 137, 132.45, 32.02, 0.04886, 135, 24.26, 65.82, 0.49631, 134, 5.25, -67.92, 0.45484, 3, 137, 139.29, 59, 0.0214, 135, 31.1, 92.79, 0.21036, 134, 12.09, -40.94, 0.76824, 4, 137, 142.44, 93.55, 6.5E-4, 135, 34.25, 127.35, 0.01537, 136, 25.25, -127.51, 3.3E-4, 134, 15.24, -6.39, 0.98365, 3, 138, 148.57, -64.7, 0.00449, 136, 23.37, -87.8, 0.17701, 134, 13.36, 33.32, 0.81851, 3, 138, 140.04, -29.69, 0.02334, 136, 14.84, -52.79, 0.60404, 134, 4.83, 68.33, 0.37262, 3, 138, 141.46, 6.58, 0.00358, 136, 16.27, -16.52, 0.93615, 134, 6.25, 104.6, 0.06026, 1, 136, 8.94, 7.18, 1, 3, 138, 92.92, 31.89, 0.14408, 136, -32.28, 8.8, 0.85584, 134, -42.29, 129.92, 8.0E-5, 3, 138, 61.03, 18.82, 0.46239, 136, -64.17, -4.27, 0.53552, 134, -74.18, 116.85, 0.00209, 2, 138, 18.54, 8.93, 0.91574, 136, -106.66, -14.16, 0.08426, 2, 140, 96.09, 1.28, 0.09, 138, -27.03, 4.94, 0.91, 2, 140, 48.31, 3.91, 0.53, 138, -74.81, 7.65, 0.47, 1, 140, 7.84, 7.97, 1, 2, 140, -23.4, 5.46, 0.81, 4, 26.44, -98.34, 0.19, 2, 140, -41.68, 3.99, 0.7, 4, 44.77, -97.57, 0.3, 2, 140, -108.46, -26.51, 0.93, 4, 112.65, -69.61, 0.07, 1, 4, 122.98, 66.95, 1, 4, 137, 97.61, 93.09, 0.01667, 135, -10.59, 126.89, 0.05862, 136, -19.58, -127.96, 0.00801, 134, -29.6, -6.84, 0.91669, 3, 137, 95, 65.69, 0.102, 135, -13.19, 99.49, 0.26627, 134, -32.2, -34.25, 0.63173, 3, 137, 89.63, 32.79, 0.20581, 135, -18.56, 66.59, 0.51806, 134, -37.57, -67.15, 0.27614, 3, 137, 85.22, -1.68, 0.21275, 135, -22.97, 32.12, 0.71605, 134, -41.98, -101.61, 0.0712, 3, 138, 102.64, -64, 0.07818, 136, -22.56, -87.09, 0.32621, 134, -32.57, 34.03, 0.59561, 3, 138, 95.96, -26.55, 0.18346, 136, -29.24, -49.64, 0.6387, 134, -39.25, 71.48, 0.17784, 3, 138, 96.12, 3.5, 0.16303, 136, -29.08, -19.6, 0.79715, 134, -39.09, 101.52, 0.03982, 3, 137, 46.33, -6.26, 0.62329, 135, -61.86, 27.54, 0.36315, 134, -80.87, -106.2, 0.01356, 4, 139, 111.23, -13.9, 6.6E-4, 137, 2.48, 5.65, 0.99342, 135, -105.71, 39.45, 0.0059, 134, -124.72, -94.28, 3.0E-5, 2, 139, 70.82, -5.18, 0.23, 137, -37.93, 14.37, 0.77, 2, 139, 25.75, 1.68, 0.84188, 137, -83, 21.24, 0.15812, 2, 139, -20.21, 11.64, 0.9, 4, 7.27, 78.55, 0.1, 2, 139, -66.49, 13.46, 0.83, 4, 53.46, 75.06, 0.17, 2, 140, -41.46, -11.03, 0.7, 4, 45.11, -82.55, 0.3, 2, 140, 46.2, -9.75, 0.53, 138, -76.94, -6, 0.47, 2, 140, 98.05, -12.72, 0.09, 138, -25.1, -9.06, 0.91, 2, 138, 21.93, -4.79, 0.90321, 136, -103.27, -27.89, 0.09679, 3, 138, 66.13, 5.19, 0.44464, 136, -59.07, -17.91, 0.54629, 134, -69.08, 103.21, 0.00907, 2, 139, 73.69, 80.79, 0.36969, 137, -35.06, 100.35, 0.63031, 2, 140, 0.31, -92.06, 0.96279, 138, -122.96, -88.24, 0.03721, 1, 140, -82.75, -93.01, 1, 1, 140, 13.01, -4.06, 1, 2, 140, -18.49, -11.91, 0.81, 4, 22.19, -80.8, 0.19, 1, 139, 9.07, 3.77, 1 ], + "hull": 28, + "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 50, 52, 52, 54, 0, 54, 44, 46, 46, 48, 48, 50, 2, 4, 4, 6 ], + "width": 267, + "height": 385 + } + }, + "cape-blue-shoulder-back": { + "cape-blue-shoulder-back": { + "name": "girl-blue-cape/cape-shoulder-back", + "type": "mesh", + "uvs": [ 0, 0.07849, 0.35461, 0.35256, 0.61389, 0.5707, 0.8193, 0.78883, 0.95063, 1, 1, 1, 1, 0.74409, 0.93379, 0.484, 0.79236, 0.20994, 0.59032, 0.01977, 0, 0 ], + "triangles": [ 6, 3, 7, 4, 3, 6, 4, 6, 5, 3, 2, 7, 2, 8, 7, 2, 1, 8, 0, 10, 9, 1, 0, 9, 1, 9, 8 ], + "vertices": [ 1, 4, 112.34, -7.46, 1, 2, 4, 77.47, -39.67, 0.89, 140, -72.17, -55.09, 0.11, 2, 4, 49.88, -63.07, 0.47, 140, -45.49, -30.67, 0.53, 2, 4, 22.7, -81.2, 0.2, 140, -19.01, -11.52, 0.8, 1, 140, 6.38, 0.4, 1, 1, 140, 6.56, 5.23, 1, 2, 4, 26.63, -99.26, 0.03, 140, -23.62, 6.37, 0.97, 2, 4, 57.72, -95.1, 0.19, 140, -54.53, 1.04, 0.81, 2, 4, 91.01, -83.72, 0.5, 140, -87.37, -11.59, 0.5, 2, 4, 114.88, -65.67, 0.71, 140, -110.54, -30.53, 0.29, 1, 4, 121.57, -8.16, 1 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 98, + "height": 118 + } + }, + "cape-blue-shoulder-front": { + "cape-blue-shoulder-front": { + "name": "girl-blue-cape/cape-shoulder-front", + "type": "mesh", + "uvs": [ 1, 0.26291, 0.82448, 0.42574, 0.58034, 0.61028, 0.30936, 0.80567, 0.09204, 1, 0.03839, 1, 0, 0.62982, 0, 0.31936, 0.21009, 0.09357, 0.51595, 0, 0.98546, 0.00238, 0.35765, 0.36929, 0.59912, 0.21298, 0.16717, 0.51258 ], + "triangles": [ 2, 11, 12, 2, 12, 1, 7, 8, 11, 1, 12, 0, 12, 10, 0, 12, 11, 8, 12, 8, 9, 12, 9, 10, 2, 13, 11, 13, 7, 11, 3, 4, 6, 4, 5, 6, 6, 13, 3, 2, 3, 13, 6, 7, 13 ], + "vertices": [ 1, 4, 82.18, -29.91, 1, 1, 4, 58.8, -6.49, 1, 2, 139, -47.93, 63.65, 0.33, 4, 33.09, 25.57, 0.67, 2, 139, -19.56, 29.18, 0.88, 4, 5.99, 61.04, 0.12, 1, 139, 8.9, 1.31, 1, 1, 139, 8.64, -5.28, 1, 2, 139, -47.77, -7.79, 0.73, 4, 35.51, 96.97, 0.27, 2, 139, -94.92, -5.94, 0.44, 4, 82.57, 93.41, 0.56, 2, 139, -128.2, 21.23, 0.21, 4, 114.84, 65.06, 0.79, 1, 4, 126.19, 26.47, 1, 1, 4, 121.47, -31.09, 1, 2, 139, -85.61, 37.72, 0.5, 4, 71.68, 50.12, 0.5, 1, 4, 93.14, 18.71, 1, 2, 139, -64.77, 13.46, 0.65, 4, 51.73, 75.12, 0.35 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 123, + "height": 152 + } + }, + "cape-blue-up-front": { + "cape-blue-up-front": { + "name": "girl-blue-cape/cape-up-front", + "type": "mesh", + "uvs": [ 1, 1, 0.7644, 1, 0.60402, 0.93701, 0.40799, 0.93403, 0.20484, 0.87139, 0.04445, 0.75804, 0, 0.57908, 0.00168, 0.39712, 0.16563, 0.2271, 0.39373, 0.07199, 0.60402, 0, 0.83568, 0, 1, 0.04515, 0.9034, 0.10182, 0.75727, 0.14955, 0.66461, 0.25991, 0.5862, 0.40905, 0.56481, 0.57013, 0.60045, 0.72225, 0.75371, 0.79682, 0.92835, 0.82665, 1, 0.90122, 0.32245, 0.38817, 0.29038, 0.58802, 0.40443, 0.76401, 0.43294, 0.16744, 0.13543, 0.58128, 0.19958, 0.34266, 0.23879, 0.78113, 0.4098, 0.13281, 0.61528, 0.04432 ], + "triangles": [ 2, 3, 24, 4, 28, 3, 2, 18, 19, 2, 24, 18, 1, 19, 20, 1, 20, 21, 2, 19, 1, 1, 21, 0, 28, 24, 3, 4, 5, 28, 5, 26, 28, 28, 26, 23, 28, 23, 24, 24, 23, 17, 24, 17, 18, 5, 6, 26, 8, 9, 29, 7, 8, 27, 6, 7, 26, 9, 10, 30, 30, 10, 11, 13, 11, 12, 14, 30, 11, 14, 11, 13, 25, 29, 30, 15, 30, 14, 25, 30, 15, 22, 27, 25, 16, 25, 15, 22, 25, 16, 23, 22, 17, 17, 22, 16, 29, 9, 30, 22, 23, 27, 29, 25, 27, 23, 26, 27, 26, 7, 27, 29, 27, 8 ], + "vertices": [ 1, 4, 85.07, -28.86, 1, 1, 4, 88.53, 16.95, 1, 2, 29, -78.55, -97.76, 0.12904, 4, 105.52, 47.03, 0.87096, 2, 29, -116.77, -97.07, 0.22, 4, 109.1, 85.09, 0.78, 4, 141, -191.82, 123.01, 0.23269, 29, -156.39, -82.47, 0.22918, 30, -67.47, -83.07, 0.13813, 4, 126.64, 123.49, 0.4, 4, 141, -165.41, 154.29, 0.28, 29, -187.66, -56.06, 0.40019, 30, -98.75, -56.66, 0.16114, 4, 155.33, 152.68, 0.15867, 4, 141, -123.71, 162.96, 0.17927, 6, 49.32, 155.86, 0.59755, 29, -196.33, -14.36, 0.06318, 30, -107.42, -14.96, 0.16, 3, 141, -81.31, 162.63, 0.07633, 6, 91.69, 157.33, 0.72367, 30, -107.09, 27.43, 0.2, 3, 141, -41.7, 130.66, 0.06, 6, 132.62, 127.07, 0.7, 30, -75.12, 67.05, 0.24, 4, 141, -5.56, 86.18, 0.08877, 6, 170.61, 84.16, 0.71399, 29, -119.55, 103.79, 0.01724, 30, -30.64, 103.19, 0.18, 4, 141, 11.21, 45.17, 0.51, 6, 189.11, 43.9, 0.19156, 29, -78.55, 120.56, 0.15, 30, 10.37, 119.96, 0.14844, 2, 141, 11.21, 0, 0.72, 29, -33.37, 120.56, 0.28, 2, 141, 0.7, -32.04, 0.72, 29, -1.33, 110.04, 0.28, 2, 141, -12.51, -13.21, 0.79, 29, -20.17, 96.84, 0.21, 2, 141, -23.63, 15.29, 0.71, 29, -48.66, 85.72, 0.29, 2, 141, -49.34, 33.36, 0.54, 29, -66.73, 60, 0.46, 2, 141, -84.09, 48.65, 0.45, 29, -82.02, 25.25, 0.55, 3, 141, -121.62, 52.82, 0.37571, 29, -86.19, -12.28, 0.55, 4, 191.34, 48.2, 0.07429, 3, 141, -157.07, 45.87, 0.27096, 29, -79.24, -47.72, 0.5, 4, 155.47, 43.94, 0.22904, 2, 29, -49.36, -65.1, 0.27899, 4, 135.89, 15.45, 0.72101, 2, 29, -15.3, -72.05, 0.11247, 4, 126.4, -17.98, 0.88753, 1, 4, 108.02, -30.6, 1, 2, 141, -79.23, 100.08, 0.64, 29, -133.45, 30.12, 0.36, 3, 141, -125.79, 106.33, 0.48, 29, -139.71, -16.45, 0.37805, 4, 191.22, 101.88, 0.14195, 3, 141, -166.8, 84.09, 0.27, 29, -117.47, -57.45, 0.423, 4, 148.65, 82.79, 0.307, 3, 141, -27.8, 78.53, 0.69314, 29, -111.91, 81.55, 0.28, 30, -22.99, 80.95, 0.02686, 4, 141, -124.22, 136.55, 0.35527, 29, -169.92, -14.88, 0.41, 30, -81.01, -15.48, 0.15867, 4, 195.06, 131.89, 0.07605, 3, 141, -68.62, 124.04, 0.86, 29, -157.41, 40.72, 0.10943, 30, -68.5, 40.12, 0.03057, 4, 141, -170.79, 116.39, 0.27213, 29, -149.77, -61.44, 0.35294, 30, -60.85, -62.04, 0.03493, 4, 147.11, 115.3, 0.34, 3, 141, -19.73, 83.05, 0.24, 29, -116.42, 89.62, 0.39163, 30, -27.5, 89.02, 0.36837, 3, 141, 0.89, 42.98, 0.64, 29, -76.35, 110.23, 0.27769, 30, 12.56, 109.64, 0.08231 ], + "hull": 22, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 42, 54, 50, 52, 56, 58, 54, 58, 60 ], + "width": 195, + "height": 233 + } + }, + "cape-ribbon": { + "cape-ribbon": { "name": "girl-blue-cape/cape-ribbon", "x": 105.78, "y": -28.65, "rotation": -94.33, "width": 100, "height": 36 } + }, + "cape-up-back": { + "cape-up-back": { + "name": "girl-blue-cape/cape-back-up", + "type": "mesh", + "uvs": [ 0.52406, 0.00329, 0.62554, 0.04269, 0.7529, 0.09213, 0.90546, 0.25682, 1, 0.47751, 1, 0.7509, 0.89981, 0.91888, 0.75572, 1, 0.39127, 1, 0, 0.79372, 0, 0.22718, 0.29804, 0, 0.79245, 0.82336, 0.85743, 0.53021, 0.79245, 0.3227, 0.66532, 0.19753, 0.42518, 0.10531, 0.37997, 0.56974, 0.55552, 0.10358 ], + "triangles": [ 12, 13, 5, 7, 12, 6, 7, 8, 12, 13, 4, 5, 12, 17, 13, 13, 14, 4, 6, 12, 5, 16, 10, 11, 8, 17, 12, 17, 10, 16, 9, 17, 8, 9, 10, 17, 3, 14, 2, 14, 15, 2, 17, 16, 15, 16, 18, 15, 18, 1, 15, 16, 0, 18, 16, 11, 0, 18, 0, 1, 15, 1, 2, 14, 17, 15, 14, 3, 4, 17, 14, 13 ], + "vertices": [ 2, 141, 8.32, -5.56, 0.76, 29, -27.81, 117.67, 0.24, 2, 141, -0.3, -30.52, 0.76, 29, -2.85, 109.04, 0.24, 2, 141, -11.12, -61.85, 0.81, 29, 28.48, 98.23, 0.19, 3, 141, -45.87, -99.38, 0.51456, 29, 66.01, 63.48, 0.21, 4, 255.4, -109.28, 0.27544, 3, 141, -92.43, -122.64, 0.26657, 29, 89.27, 16.91, 0.13343, 4, 207.22, -128.96, 0.6, 3, 141, -150.12, -122.64, 0.00304, 29, 89.27, -40.77, 0.16, 4, 149.7, -124.61, 0.83696, 3, 29, 64.62, -76.22, 0.12, 30, 153.54, -76.82, 5.0E-4, 4, 116.21, -97.36, 0.8795, 1, 4, 101.82, -60.73, 1, 2, 29, -60.48, -93.33, 0.44568, 30, 28.44, -93.93, 0.55432, 3, 141, -159.15, 123.36, 0.72, 29, -156.73, -49.81, 0.00104, 30, -67.82, -50.41, 0.27896, 2, 30, -67.82, 69.13, 0.31, 6, 135.01, 119.86, 0.69, 4, 141, 8.32, 50.04, 0.28019, 29, -83.41, 117.67, 0.24, 30, 5.5, 117.07, 0.0456, 6, 186.01, 48.64, 0.43421, 2, 29, 38.21, -56.06, 0.16, 4, 138.3, -72.55, 0.84, 3, 141, -103.55, -87.57, 0.29987, 29, 54.2, 5.79, 0.15013, 4, 198.77, -93.15, 0.55, 3, 141, -59.72, -71.58, 0.5125, 29, 38.21, 49.63, 0.21, 4, 243.69, -80.52, 0.2775, 2, 141, -33.12, -40.31, 0.81, 29, 6.94, 76.22, 0.19, 2, 141, -13.8, 18.77, 0.76, 29, -52.14, 95.55, 0.24, 3, 141, -111.85, 29.89, 0.02898, 29, -63.26, -2.5, 0.24273, 30, 25.66, -3.1, 0.72829, 2, 141, -13.3, -13.3, 0.76, 29, -20.07, 96.05, 0.24 ], + "hull": 12, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 0, 22, 0, 2, 2, 4 ], + "width": 246, + "height": 211 + } + }, + "ear": { + "ear": { + "name": "girl/ear", + "path": "girl-blue-cape/ear", + "x": 56.58, + "y": 85.63, + "rotation": -87.57, + "width": 38, + "height": 45 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-blue-cape/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "accessories/cape-red", + "bones": [ "cape-back-rotator", "cape-red-back-inside", "cape-red-front-inside", "cape-red-front-outside", "cape-front-rotator", "cape-red-back-outside" ], + "attachments": { + "cape-red-down": { + "cape-red-down": { + "name": "girl-spring-dress/cloak-down", + "type": "mesh", + "uvs": [ 0.14417, 0, 0.36304, 0.02025, 0.57682, 0.0966, 0.7397, 0.23912, 0.85168, 0.4529, 0.92294, 0.66668, 1, 0.82447, 1, 1, 0.70916, 1, 0.44448, 0.98735, 0.28669, 0.83974, 0.06273, 0.5038, 0, 0.26966, 0, 0.07624, 0.67674, 0.71028, 0.43738, 0.58788, 0.3008, 0.31931, 0.57552, 0.43898 ], + "triangles": [ 17, 2, 3, 17, 3, 4, 11, 16, 15, 11, 12, 16, 2, 17, 1, 17, 16, 1, 12, 13, 0, 16, 0, 1, 12, 0, 16, 15, 16, 17, 9, 14, 8, 14, 4, 5, 6, 8, 14, 6, 14, 5, 8, 6, 7, 14, 17, 4, 10, 11, 15, 10, 15, 9, 9, 15, 14, 15, 17, 14 ], + "vertices": [ 1, 4, 125.16, -19.58, 1, 1, 4, 121.49, -41.25, 1, 3, 120, 74.56, -19.08, 0.15867, 4, 112.27, -61.99, 0.14879, 122, 28.75, 13.93, 0.69254, 1, 122, 14.5, -2.36, 1, 2, 119, -12.43, 41.24, 0.46, 122, -6.88, -13.55, 0.54, 2, 119, -5.3, 19.86, 0.76, 122, -28.26, -20.68, 0.24, 2, 119, 2.41, 4.09, 0.86, 122, -44.04, -28.39, 0.14, 2, 120, -18.72, -54.46, 0.19, 119, 2.41, -13.47, 0.81, 2, 120, -16.52, -25.46, 0.36, 119, -26.68, -13.47, 0.64, 2, 120, -13.27, 0.84, 0.55, 119, -53.15, -12.2, 0.45, 2, 120, 2.64, 15.46, 0.83, 119, -68.93, 2.56, 0.17, 2, 120, 37.83, 35.26, 0.22, 4, 75.54, -7.66, 0.78, 1, 4, 99.36, -3.17, 1, 1, 4, 118.65, -4.63, 1, 3, 120, 12.61, -24.41, 0.36, 119, -29.92, 15.5, 0.59041, 122, -32.62, 3.94, 0.04959, 3, 120, 26.62, -1.47, 0.83, 119, -53.86, 27.74, 0.15527, 4, 64.33, -44.38, 0.01473, 1, 4, 92.14, -32.79, 1, 1, 4, 78.13, -59.28, 1 ], + "hull": 14, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 22, 24, 24, 26, 0, 26, 34, 2, 20, 22 ], + "width": 100, + "height": 100 + } + }, + "cape-red-up": { + "cape-red-up": { + "name": "girl-spring-dress/cloak-up", + "type": "mesh", + "uvs": [ 0.37962, 0, 0.24791, 0.0725, 0.15296, 0.15299, 0.06413, 0.27371, 0.01206, 0.6057, 0, 0.7499, 0, 0.9008, 0.07332, 1, 0.25097, 1, 0.43475, 1, 0.53889, 0.93434, 0.70123, 0.88404, 0.82988, 0.75325, 0.9187, 0.55875, 0.94933, 0.42461, 0.93402, 0.15969, 0.66448, 0, 0.26629, 0.82703, 0.48376, 0.7499, 0.64916, 0.6057, 0.72267, 0.38102, 0.63078, 0.14963, 0.3643, 0.34078, 0.29998, 0.60905 ], + "triangles": [ 3, 2, 22, 22, 23, 3, 18, 19, 11, 11, 19, 12, 12, 19, 13, 18, 23, 19, 17, 23, 18, 18, 10, 9, 9, 8, 17, 8, 7, 17, 7, 6, 17, 9, 17, 18, 10, 18, 11, 6, 5, 17, 17, 5, 23, 23, 5, 4, 23, 4, 3, 23, 22, 19, 19, 20, 13, 19, 22, 20, 13, 20, 14, 20, 15, 14, 22, 21, 20, 20, 21, 15, 2, 1, 22, 22, 0, 21, 22, 1, 0, 21, 16, 15, 21, 0, 16 ], + "vertices": [ 1, 4, 128.5, 22.39, 1, 1, 4, 121.37, 39.71, 1, 2, 4, 112.97, 52.44, 0.27, 117, -9.72, 16.53, 0.73, 1, 117, -21, 2.53, 1, 2, 115, -26.06, -1.94, 0.83, 117, -27.61, -35.98, 0.17, 1, 115, -9.34, -3.48, 1, 2, 115, 8.17, -3.48, 0.99, 117, -29.14, -70.21, 0.01, 2, 4, 15.76, 69.93, 0.07049, 115, 19.68, 5.84, 0.92951, 2, 115, 19.68, 28.4, 0.88, 113, -18.74, 59.54, 0.12, 2, 115, 19.68, 51.74, 0.73, 113, -20.5, 36.27, 0.27, 2, 115, 12.06, 64.96, 0.6, 113, -13.9, 22.51, 0.4, 2, 115, 6.22, 85.58, 0.4, 113, -9.64, 1.51, 0.6, 3, 4, 37.05, -28.04, 0.05405, 115, -8.95, 101.92, 0.27, 113, 4.26, -15.93, 0.67595, 3, 4, 58.7, -40.99, 0.42765, 115, -31.51, 113.2, 0.22, 113, 25.9, -28.88, 0.35235, 3, 4, 73.92, -46.04, 0.6319, 115, -47.07, 117.09, 0.11, 113, 41.13, -33.93, 0.2581, 2, 4, 104.71, -46.42, 0.91761, 113, 71.92, -34.31, 0.08239, 1, 4, 125.77, -13.68, 1, 2, 115, -0.39, 30.34, 0.88, 113, 1.12, 56.09, 0.12, 2, 115, -9.34, 57.96, 0.6, 113, 7.96, 27.88, 0.4, 3, 4, 55.85, -6.44, 0.3066, 115, -26.06, 78.97, 0.27, 113, 23.06, 5.67, 0.4234, 3, 4, 81.14, -17.72, 0.6764, 115, -52.13, 88.3, 0.11, 113, 48.34, -5.61, 0.2136, 1, 4, 108.78, -8.1, 1, 2, 4, 89.23, 27.31, 0.9433, 115, -56.79, 42.79, 0.0567, 2, 115, -25.67, 34.62, 0.91, 113, 26.01, 49.92, 0.09 ], + "hull": 17, + "edges": [ 0, 2, 2, 4, 4, 6, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 0, 32, 8, 46, 6, 8 ], + "width": 127, + "height": 116 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-spring-dress/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "ribbon-shoulder": { + "ribbon-shoulder": { "name": "girl-spring-dress/shoulder-ribbon", "x": 100.69, "y": -35.56, "rotation": -94.33, "width": 71, "height": 48 } + } + } + }, + { + "name": "accessories/hat-pointy-blue-yellow", + "bones": [ "hat-base", "pompom-control", "hat-control", "hat" ], + "transform": [ "hat-control" ], + "attachments": { + "hat": { + "hat": { + "name": "girl/hat", + "type": "mesh", + "uvs": [ 0.0927, 1, 0.3018, 1, 0.54117, 0.96286, 0.79429, 0.88837, 1, 0.78284, 1, 0.66491, 0.89885, 0.53766, 0.8163, 0.53766, 0.73848, 0.40186, 0.65555, 0.25718, 0.57433, 0.11546, 0.50815, 0, 0.34032, 7.2E-4, 0.28185, 0.15871, 0.21639, 0.33559, 0.15752, 0.49466, 0.1037, 0.64008, 0.01016, 0.65249, 0, 0.94734, 0.30731, 0.64939, 0.62096, 0.58421, 0.46964, 0.62146, 0.43112, 0.10625, 0.57911, 0.43657, 0.45775, 0.46247, 0.32733, 0.47774, 0.53642, 0.28599, 0.44504, 0.29245, 0.34714, 0.30794, 0.49454, 0.13823, 0.36433, 0.16053 ], + "triangles": [ 22, 27, 30, 29, 27, 22, 30, 13, 12, 10, 29, 11, 22, 12, 11, 29, 22, 11, 22, 30, 12, 28, 13, 30, 26, 10, 9, 23, 26, 9, 23, 9, 8, 24, 27, 26, 24, 26, 23, 28, 27, 24, 25, 14, 28, 25, 28, 24, 15, 14, 25, 20, 23, 8, 20, 8, 7, 20, 21, 24, 20, 24, 23, 25, 24, 21, 19, 15, 25, 19, 25, 21, 16, 15, 19, 7, 6, 5, 3, 20, 7, 5, 3, 7, 4, 3, 5, 2, 21, 20, 2, 20, 3, 16, 18, 17, 1, 0, 16, 0, 18, 16, 19, 1, 16, 19, 21, 2, 1, 19, 2, 14, 13, 28, 28, 30, 27, 26, 29, 10, 27, 29, 26 ], + "vertices": [ 2, 50, -28.98, 69.5, 0.88, 52, -75.23, 83.03, 0.12, 2, 50, -27.34, 30.85, 0.76, 52, -79.03, 44.54, 0.24, 3, 50, -19.38, -13.13, 0.7291, 51, -12.02, -7.08, 9.0E-4, 52, -77.31, -0.13, 0.27, 2, 50, -5.19, -59.4, 0.8, 52, -69.75, -47.93, 0.2, 2, 50, 13.71, -96.69, 0.99957, 51, 9.03, -94.45, 4.3E-4, 2, 50, 33.04, -95.87, 0.95114, 51, 28.28, -96.35, 0.04886, 2, 50, 53.1, -76.29, 0.88191, 51, 50.88, -79.78, 0.11809, 3, 50, 52.45, -61.03, 0.879, 51, 52.38, -64.58, 0.11986, 52, -12.91, -57.63, 0.00114, 2, 50, 74.09, -45.7, 0.87726, 51, 75.96, -52.44, 0.12274, 3, 50, 97.14, -29.37, 0.73206, 51, 101.08, -39.5, 0.26419, 52, 35.78, -32.55, 0.00375, 3, 50, 119.73, -13.37, 0.42555, 51, 125.68, -26.83, 0.5184, 52, 60.39, -19.88, 0.05605, 3, 50, 138.13, -0.34, 0.29174, 51, 145.73, -16.5, 0.61231, 52, 80.43, -9.55, 0.09595, 3, 50, 136.69, 30.68, 0.22303, 51, 148.66, 14.41, 0.65697, 52, 83.36, 21.36, 0.12, 3, 50, 110.35, 40.39, 0.31671, 51, 123.93, 27.72, 0.59996, 52, 58.64, 34.67, 0.08333, 3, 50, 80.85, 51.26, 0.62374, 51, 96.25, 42.61, 0.36063, 52, 30.96, 49.57, 0.01563, 2, 50, 54.33, 61.03, 0.82549, 51, 71.36, 56.01, 0.17451, 2, 50, 30.08, 69.97, 0.88, 51, 48.61, 68.26, 0.12, 2, 50, 27.31, 87.17, 0.88702, 51, 48.28, 85.68, 0.11298, 1, 50, -21.08, 87, 1, 3, 50, 30.15, 32.27, 0.59407, 51, 43.39, 30.93, 0.18593, 52, -21.91, 37.88, 0.22, 3, 50, 43.29, -25.25, 0.66536, 51, 48.33, -27.87, 0.09464, 52, -16.96, -20.91, 0.24, 3, 50, 36, 2.46, 0.5548, 51, 45, 0.59, 0.1752, 52, -20.29, 7.54, 0.27, 3, 50, 120.12, 13.16, 0.30606, 51, 129.79, -0.61, 0.55394, 52, 64.49, 6.34, 0.14, 3, 50, 67.15, -16.49, 0.68076, 51, 73.19, -22.54, 0.12924, 52, 7.89, -15.59, 0.19, 3, 50, 61.96, 5.77, 0.57797, 51, 71.16, 0.22, 0.21203, 52, 5.87, 7.17, 0.21, 3, 50, 58.43, 29.77, 0.62009, 51, 71.04, 24.48, 0.22991, 52, 5.75, 31.43, 0.15, 3, 50, 91.49, -7.55, 0.59613, 51, 98.54, -17.1, 0.26387, 52, 33.24, -10.15, 0.14, 3, 50, 89.71, 9.3, 0.49151, 51, 99.14, -0.18, 0.31849, 52, 33.85, 6.78, 0.19, 3, 50, 86.41, 27.28, 0.48715, 51, 98.39, 18.1, 0.34285, 52, 33.1, 25.05, 0.17, 3, 50, 115.37, 1.22, 0.38285, 51, 123.41, -11.77, 0.45715, 52, 58.12, -4.82, 0.16, 3, 50, 110.7, 25.13, 0.30156, 51, 122.14, 12.56, 0.52844, 52, 56.84, 19.51, 0.17 ], + "hull": 19, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 32, 34, 34, 36, 0, 36, 30, 32, 28, 30, 14, 16, 16, 18, 40, 46, 16, 46, 42, 48, 46, 48, 38, 50, 48, 50, 52, 46, 18, 52, 44, 54, 54, 48, 52, 54, 56, 50, 54, 56, 56, 28, 18, 20, 20, 22, 58, 52, 20, 58, 60, 56, 24, 26, 26, 28, 60, 26 ], + "width": 185, + "height": 164 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "pompom": { + "pompom": { "name": "girl/pompom", "x": 0.31, "y": -0.35, "rotation": -95.63, "width": 96, "height": 85 } + } + } + }, + { + "name": "accessories/hat-red-yellow", + "bones": [ "hat-base", "pompom-control", "hat-control", "hat" ], + "transform": [ "hat-control" ], + "attachments": { + "hat": { + "hat": { + "name": "boy/hat", + "type": "mesh", + "uvs": [ 1, 0.67762, 0.84575, 0.80843, 0.65489, 0.90654, 0.43192, 0.966, 0.225, 0.99573, 0.03592, 0.98978, 0, 0.85303, 0.027, 0.47546, 0.07694, 0.46357, 0.10013, 0.306, 0.18575, 0.11573, 0.31954, 0.01465, 0.49257, 0, 0.64775, 0.03249, 0.7637, 0.14546, 0.83327, 0.31492, 0.9064, 0.32384, 1, 0.53789, 0.22857, 0.48438, 0.39089, 0.45168, 0.59424, 0.40708, 0.74765, 0.3506, 0.24819, 0.2733, 0.38197, 0.25843, 0.57997, 0.21384 ], + "triangles": [ 20, 24, 21, 23, 24, 20, 19, 23, 20, 22, 10, 11, 22, 23, 19, 23, 22, 11, 23, 11, 12, 23, 12, 24, 24, 12, 13, 24, 13, 14, 21, 24, 14, 19, 20, 2, 8, 9, 18, 18, 19, 3, 15, 17, 21, 17, 15, 16, 0, 1, 17, 1, 21, 17, 6, 7, 8, 18, 6, 8, 2, 20, 1, 3, 19, 2, 4, 6, 18, 4, 5, 6, 18, 3, 4, 20, 21, 1, 18, 9, 22, 9, 10, 22, 18, 22, 19, 21, 14, 15 ], + "vertices": [ 1, 50, 13.89, -96.68, 1, 2, 50, -1.83, -68.79, 0.82, 52, -67.01, -62.58, 0.18, 2, 50, -14.21, -33.97, 0.72, 52, -74.39, -26.37, 0.28, 2, 50, -22.55, 6.96, 0.72, 52, -76.91, 15.33, 0.28, 2, 50, -27.47, 45.07, 0.82, 52, -76.43, 53.75, 0.18, 1, 50, -28.29, 80.05, 1, 1, 50, -13.41, 87.33, 1, 2, 50, 28.67, 84.11, 0.94502, 51, 49.2, 82.46, 0.05498, 3, 50, 30.39, 74.94, 0.90664, 51, 49.61, 73.14, 0.07509, 52, -14.96, 75.21, 0.01827, 2, 50, 48.04, 71.39, 0.83494, 51, 66.59, 67.15, 0.16506, 2, 50, 69.81, 56.46, 0.75704, 51, 86.05, 49.32, 0.24296, 2, 50, 82.07, 32.21, 0.73015, 51, 94.79, 23.58, 0.26985, 3, 50, 85.05, 0.3, 0.71911, 51, 93.27, -8.43, 0.27957, 52, 28.7, -6.36, 0.00132, 2, 50, 82.67, -28.54, 0.71902, 51, 86.86, -36.65, 0.28098, 2, 50, 71.05, -50.5, 0.7727, 51, 72.27, -56.76, 0.2273, 2, 50, 52.8, -64.16, 0.9302, 51, 52.29, -67.73, 0.0698, 2, 50, 52.39, -77.72, 0.97146, 51, 49.98, -81.09, 0.02854, 1, 50, 29.38, -96.02, 1, 3, 50, 29.27, 46.82, 0.76552, 51, 44.55, 45.45, 0.08448, 52, -20.01, 47.52, 0.15, 3, 50, 34.17, 16.97, 0.75083, 51, 45.22, 15.21, 0.07917, 52, -19.35, 17.28, 0.17, 3, 50, 40.71, -20.41, 0.75063, 51, 46.45, -22.71, 0.07937, 52, -18.11, -20.65, 0.17, 3, 50, 48.17, -48.5, 0.83648, 51, 49.91, -51.57, 0.09352, 52, -14.66, -49.51, 0.07, 3, 50, 52.83, 44.18, 0.71547, 51, 67.51, 39.54, 0.16811, 52, 2.95, 41.61, 0.11643, 3, 50, 55.53, 19.52, 0.68597, 51, 66.73, 14.75, 0.16403, 52, 2.16, 16.81, 0.15, 3, 50, 62.02, -16.86, 0.70061, 51, 68.06, -22.19, 0.18939, 52, 3.49, -20.13, 0.11 ], + "hull": 18, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 0, 34, 44, 22 ], + "width": 185, + "height": 111 + } + }, + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "pompom": { + "pompom": { "name": "boy/pompom", "x": -48.24, "y": 11.74, "rotation": -95.63, "width": 96, "height": 85 } + } + } + }, + { + "name": "accessories/scarf", + "bones": [ "scarf-back" ], + "attachments": { + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "scarf": { + "scarf": { + "name": "girl/scarf", + "type": "mesh", + "uvs": [ 0, 0.69166, 0.08052, 0.80607, 0.18349, 0.90523, 0.29463, 0.96243, 0.44173, 1, 0.5921, 0.99676, 0.69655, 0.96098, 0.81649, 0.89046, 0.92984, 0.74335, 0.98437, 0.67259, 1, 0.62301, 1, 0.43614, 0.987, 0.34894, 0.95168, 0.11197, 0.8389, 0.11579, 0.75309, 0.14439, 0.66045, 0.15555, 0.57902, 0.16537, 0.46625, 0.11579, 0.37308, 0.07002, 0.28482, 0.02426, 0.20473, 0, 0.09849, 0.02044, 0.056, 0.3408, 0, 0.51623, 0.2505, 0.51241, 0.45971, 0.56199, 0.6444, 0.52385, 0.85198, 0.46283, 0.15733, 0.43995, 0.3453, 0.53148, 0.54797, 0.54292, 0.74737, 0.5086, 0.26684, 0.42851, 0.3506, 0.44336, 0.46122, 0.45875, 0.16878, 0.36367, 0.94187, 0.40181 ], + "triangles": [ 32, 15, 28, 28, 15, 37, 27, 31, 17, 31, 35, 17, 27, 16, 32, 32, 16, 15, 37, 15, 14, 18, 35, 34, 34, 33, 19, 12, 14, 13, 12, 37, 14, 23, 22, 36, 33, 36, 20, 27, 17, 16, 17, 35, 18, 18, 34, 19, 19, 33, 20, 36, 21, 20, 36, 22, 21, 28, 37, 11, 30, 25, 34, 30, 34, 35, 34, 25, 33, 24, 23, 29, 25, 29, 33, 29, 36, 33, 29, 23, 36, 37, 12, 11, 5, 4, 26, 4, 3, 26, 6, 5, 31, 5, 26, 31, 26, 3, 30, 31, 27, 6, 7, 27, 32, 7, 6, 27, 3, 2, 30, 30, 1, 25, 30, 2, 1, 7, 32, 8, 29, 25, 1, 9, 8, 28, 28, 8, 32, 24, 29, 0, 0, 29, 1, 9, 28, 10, 10, 28, 11, 26, 35, 31, 26, 30, 35 ], + "vertices": [ 1, 4, 101.59, 148.9, 1, 1, 4, 88.51, 130.67, 1, 1, 4, 76.57, 106.99, 1, 1, 4, 68.76, 81.06, 1, 1, 4, 62.3, 46.43, 1, 1, 4, 59.93, 10.72, 1, 1, 4, 61.69, -14.34, 1, 1, 4, 66.71, -43.35, 1, 1, 4, 79.64, -71.38, 1, 1, 4, 85.86, -84.86, 1, 1, 4, 90.62, -88.96, 1, 2, 4, 111.53, -90.22, 0.68, 5, 12.11, -93.3, 0.32, 2, 4, 120.59, -87.62, 0.68, 5, 21.19, -90.81, 0.32, 1, 5, 49.45, -81.99, 1, 1, 5, 49.69, -55.15, 1, 1, 5, 47.25, -34.67, 1, 1, 5, 46.62, -12.6, 1, 1, 5, 46.07, 6.8, 1, 1, 5, 51.76, 33.52, 1, 1, 5, 56.94, 55.57, 1, 1, 5, 62.1, 76.47, 1, 1, 5, 65.02, 95.46, 1, 1, 5, 63.52, 120.79, 1, 2, 4, 133.66, 133.75, 0.68, 5, 36.73, 130.17, 0.32, 2, 4, 118.16, 147.77, 0.86, 5, 21.41, 144.43, 0.14, 2, 4, 113.61, 88.46, 0.68, 5, 16.19, 85.15, 0.32, 2, 4, 105.87, 38.97, 0.71, 5, 7.91, 35.81, 0.29, 2, 4, 107.27, -5.15, 0.68, 5, 8.8, -8.29, 0.32, 2, 4, 110.76, -54.86, 0.68, 5, 11.73, -57.98, 0.32, 2, 4, 122.22, 110.21, 0.68, 5, 25.04, 106.78, 0.32, 2, 4, 110.42, 66.02, 0.68, 5, 12.75, 62.78, 0.32, 2, 4, 106.59, 17.89, 0.68, 5, 8.39, 14.74, 0.32, 2, 4, 107.47, -29.73, 0.68, 5, 8.73, -32.84, 0.32, 2, 4, 121.95, 84.1, 0.68, 5, 24.47, 80.7, 0.32, 2, 4, 119.33, 64.26, 0.68, 5, 21.64, 60.92, 0.32, 2, 4, 116.31, 38.04, 0.68, 5, 18.32, 34.76, 0.32, 2, 4, 129.85, 107.06, 0.68, 5, 32.62, 103.55, 0.32, 2, 4, 115.79, -76.59, 0.68, 5, 16.52, -79.73, 0.32 ], + "hull": 25, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 18, 20, 20, 22, 26, 28, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 0, 48, 2, 58, 6, 60, 14, 64, 10, 12, 12, 14, 14, 16, 16, 18, 16, 56, 28, 30, 64, 30, 30, 32, 32, 34, 54, 32, 50, 66, 38, 68, 68, 60, 36, 70, 70, 52, 66, 40, 22, 24, 24, 26, 74, 24, 62, 34 ], + "width": 238, + "height": 102 + } + }, + "scarf-back": { + "scarf-back": { "name": "girl/scarf-back", "x": 46.88, "y": 3.26, "rotation": 177.98, "width": 143, "height": 102 } + } + } + }, + { + "name": "clothes/dress-blue", + "bones": [ "dress-control-foot-front", "dress-control-leg-down-front", "dress-control-leg-up-front", "dress-control-leg-down-back", "dress-control-foot-back", "dress-control-leg-up-back", "dress-control-middle", "sleeve-control-front", "sleeve-control-back" ], + "transform": [ "leg-down-back", "leg-down-front", "leg-up", "leg-down-back-up", "leg-down-down", "leg-up-back" ], + "attachments": { + "arm-back": { + "arm-back": { + "name": "girl-blue-cape/sleeve-front", + "type": "mesh", + "uvs": [ 0.39189, 0, 0.14439, 0.01666, 0.15901, 0.10249, 0.17598, 0.19757, 0.191, 0.28175, 0.205, 0.3602, 0.22028, 0.44586, 0.23432, 0.52454, 0.2491, 0.60734, 0.22371, 0.71965, 0.1539, 0.82364, 0, 0.92776, 0, 0.99154, 0.23074, 0.95687, 0.37352, 1, 0.45602, 1, 0.6591, 0.94994, 1, 0.96658, 1, 0.91944, 0.88122, 0.81129, 0.81141, 0.71284, 0.76064, 0.59498, 0.73905, 0.50606, 0.71901, 0.4235, 0.7003, 0.34643, 0.68005, 0.26299, 0.65973, 0.17927, 0.63519, 0.07818, 0.61151, 0, 0.43698, 0.82821, 0.25612, 0.89754, 0.6242, 0.89754, 0.43118, 0.08805, 0.44237, 0.51902, 0.4401, 0.43175, 0.43805, 0.35262, 0.436, 0.27359, 0.43377, 0.18768, 0.44092, 0.60224, 0.43884, 0.72139 ], + "triangles": [ 4, 3, 37, 36, 37, 26, 37, 3, 32, 3, 2, 32, 37, 32, 26, 32, 27, 26, 2, 0, 32, 2, 1, 0, 32, 0, 27, 0, 28, 27, 6, 5, 35, 34, 35, 24, 35, 5, 36, 5, 4, 36, 35, 25, 24, 35, 36, 25, 36, 4, 37, 36, 26, 25, 7, 6, 34, 33, 34, 23, 34, 6, 35, 34, 24, 23, 39, 38, 21, 39, 8, 38, 38, 8, 33, 38, 22, 21, 38, 33, 22, 33, 8, 7, 33, 7, 34, 33, 23, 22, 29, 39, 20, 29, 9, 39, 39, 21, 20, 9, 8, 39, 30, 10, 29, 10, 9, 29, 15, 31, 16, 31, 15, 29, 13, 30, 14, 15, 14, 29, 14, 30, 29, 12, 11, 13, 16, 18, 17, 13, 11, 30, 16, 31, 18, 11, 10, 30, 31, 19, 18, 31, 29, 19, 29, 20, 19 ], + "vertices": [ 1, 84, -16.93, -3.67, 1, 1, 84, -16.62, -29.86, 1, 2, 85, -30.38, -28.39, 0.00675, 84, 3.66, -28.4, 0.99325, 2, 85, -7.5, -26.7, 0.28271, 84, 26.13, -26.7, 0.71729, 3, 86, -20.67, -25.24, 0.0369, 85, 12.75, -25.2, 0.82623, 84, 46.02, -25.2, 0.13687, 3, 86, -1.82, -23.81, 0.46001, 85, 31.62, -23.8, 0.53932, 84, 64.55, -23.8, 6.7E-4, 3, 87, -14.53, -22.33, 0.07429, 86, 18.77, -22.24, 0.89721, 85, 52.23, -22.28, 0.0285, 2, 87, 4.3, -20.78, 0.66292, 86, 37.68, -20.8, 0.33708, 3, 88, -9.4, -19.2, 0.39191, 87, 24.1, -19.15, 0.48809, 86, 57.58, -19.29, 0.12, 3, 131, 76.95, -52.14, 0.2, 88, 17.84, -21.57, 0.472, 87, 50.99, -21.67, 0.328, 3, 131, 84.21, -27.39, 0.33, 89, 9.43, -28.56, 0.5213, 88, 43.1, -28.59, 0.1487, 2, 131, 100.22, -2.61, 0.99748, 89, 34.19, -44.26, 0.00252, 1, 131, 100.22, 12.57, 1, 1, 131, 76.22, 4.32, 1, 1, 131, 61.37, 14.58, 1, 1, 131, 52.79, 14.58, 1, 1, 131, 31.67, 2.67, 1, 1, 131, -3.78, 6.63, 1, 3, 131, -3.78, -4.59, 0.99378, 89, 30.96, 59.71, 0.00244, 88, 65.41, 59.63, 0.00378, 4, 131, 8.57, -30.33, 0.60383, 89, 5.59, 47.04, 0.13666, 88, 39.34, 47.02, 0.2413, 87, 72.6, 46.82, 0.01821, 3, 131, 15.83, -53.76, 0.2, 88, 15.57, 39.53, 0.472, 87, 49.08, 39.45, 0.328, 5, 131, 21.11, -81.81, 0.0171, 89, -45.3, 33.86, 2.3E-4, 88, -12.93, 33.97, 0.32025, 87, 20.9, 34.04, 0.54241, 86, 54.67, 33.91, 0.12, 5, 131, 23.36, -102.97, 3.0E-5, 88, -34.45, 31.51, 0.01472, 87, -0.37, 31.69, 0.51834, 86, 33.3, 31.69, 0.46518, 85, 66.89, 31.63, 0.00174, 3, 87, -20.12, 29.51, 0.10716, 86, 13.46, 29.63, 0.77625, 85, 47.02, 29.61, 0.11659, 4, 87, -38.56, 27.48, 0.0033, 86, -5.07, 27.71, 0.43059, 85, 28.47, 27.72, 0.56203, 84, 61.45, 27.72, 0.00408, 3, 86, -25.12, 25.62, 0.05143, 85, 8.4, 25.67, 0.74366, 84, 41.73, 25.68, 0.20491, 2, 85, -11.75, 23.62, 0.18749, 84, 21.95, 23.62, 0.81251, 1, 84, 1.16, 17.55, 1, 1, 84, -11.55, 9.3, 1, 2, 131, 54.77, -26.3, 0.43, 89, 10.15, 0.89, 0.57, 3, 131, 73.58, -9.8, 0.43, 89, 26.74, -17.72, 0.56433, 88, 60.89, -17.78, 0.00567, 3, 131, 35.3, -9.8, 0.59, 89, 26.27, 20.56, 0.38171, 88, 60.51, 20.5, 0.02829, 1, 84, 0.33, -0.08, 1, 2, 87, 2.87, 0.85, 0.98548, 86, 36.38, 0.83, 0.01452, 2, 87, -18.01, 0.52, 2.8E-4, 86, 15.41, 0.62, 0.99972, 1, 85, 29.88, 0.44, 1, 2, 86, -22.6, 0.24, 1.2E-4, 85, 10.87, 0.28, 0.99988, 1, 84, 23.87, 0.12, 1, 4, 131, 54.37, -80.08, 0.04086, 88, -10.84, 0.74, 0.35514, 87, 22.79, 0.79, 0.484, 86, 56.38, 0.66, 0.12, 3, 131, 54.58, -51.73, 0.2, 88, 18.03, 0.8, 0.472, 87, 51.31, 0.71, 0.328 ], + "hull": 29, + "edges": [ 0, 2, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 56, 36, 62, 60, 22, 0, 64, 2, 4, 64, 4, 54, 56, 64, 54, 14, 16, 14, 66, 42, 44, 66, 44, 12, 14, 68, 66, 12, 68, 44, 46, 68, 46, 46, 48, 70, 68, 48, 70, 10, 12, 70, 10, 8, 10, 72, 70, 8, 72, 48, 50, 72, 50, 50, 52, 52, 54, 64, 74, 74, 72, 52, 74, 4, 6, 6, 8, 74, 6, 76, 66, 76, 42, 76, 16, 58, 78, 78, 76, 40, 78, 38, 58, 58, 20, 0, 54, 64, 52 ], + "width": 104, + "height": 238 + } + }, + "body-dress": { + "body-dress": { + "name": "girl-blue-cape/body-dress", + "type": "mesh", + "uvs": [ 0.37147, 0.03655, 0.19753, 0.06738, 0.15404, 0.12133, 0.32219, 0.19841, 0.33378, 0.22538, 0.2874, 0.28704, 0.23812, 0.34613, 0.20623, 0.41935, 0.18013, 0.49642, 0.14534, 0.60818, 0.11925, 0.7148, 0.09896, 0.82527, 0.08156, 0.87665, 0.02358, 0.92546, 0, 0.9614, 0, 0.98709, 0.11635, 0.9948, 0.2874, 1, 0.51933, 1, 0.72516, 0.99865, 0.97448, 0.99351, 1, 0.96782, 0.97738, 0.92286, 0.95999, 0.86891, 0.96578, 0.80597, 0.97738, 0.71091, 0.98028, 0.60301, 0.96578, 0.49382, 0.93679, 0.40776, 0.9049, 0.33325, 0.85852, 0.26517, 0.80344, 0.21251, 0.80634, 0.15984, 0.78024, 0.05858, 0.6121, 0.02646, 0.68457, 0.23071, 0.49613, 0.23199, 0.62261, 0.17757, 0.46316, 0.1917, 0.6719, 0.33814, 0.78206, 0.33428, 0.62551, 0.41393, 0.84584, 0.41136, 0.58202, 0.33557, 0.52404, 0.4165, 0.52114, 0.33557, 0.37619, 0.41264, 0.46026, 0.49228, 0.56463, 0.49614, 0.73857, 0.28162, 0.68059, 0.28419, 0.59652, 0.2829, 0.48635, 0.28676, 0.3443, 0.60918, 0.46026, 0.60661, 0.88643, 0.491, 0.32111, 0.7235, 0.19935, 0.71965, 0.52114, 0.72993, 0.80525, 0.72479, 0.55303, 0.60661, 0.79946, 0.60789, 0.51535, 0.88536, 0.83424, 0.88022, 0.30081, 0.88664, 0.30371, 0.81984, 0.52114, 0.81856, 0.81975, 0.81214, 0.82472, 0.94059, 0.61889, 0.94316, 0.39856, 0.94702, 0.23041, 0.95087, 0.09126, 0.94059, 0.35471, 0.49384, 0.13171, 0.87893, 0.15316, 0.82452, 0.93153, 0.92896, 0.91674, 0.87433, 0.92068, 0.80791, 0.05964, 0.93806 ], + "triangles": [ 49, 31, 30, 50, 51, 35, 50, 35, 49, 52, 36, 51, 5, 4, 52, 40, 49, 30, 40, 30, 29, 45, 52, 51, 43, 45, 51, 39, 51, 50, 43, 51, 39, 42, 40, 29, 46, 5, 52, 46, 52, 45, 41, 43, 39, 44, 45, 43, 39, 50, 49, 39, 49, 40, 41, 39, 40, 42, 41, 40, 37, 34, 33, 37, 33, 32, 38, 0, 34, 38, 34, 37, 3, 1, 0, 3, 0, 38, 2, 1, 3, 32, 35, 37, 4, 3, 38, 31, 35, 32, 36, 38, 37, 4, 38, 36, 36, 37, 35, 49, 35, 31, 51, 36, 35, 52, 4, 36, 6, 5, 46, 44, 43, 41, 46, 45, 44, 7, 6, 46, 76, 23, 22, 20, 76, 22, 20, 22, 21, 76, 68, 63, 76, 63, 77, 68, 76, 20, 19, 68, 20, 68, 19, 63, 79, 15, 14, 79, 14, 13, 15, 79, 72, 16, 72, 71, 15, 72, 16, 16, 71, 17, 63, 19, 69, 70, 64, 62, 17, 71, 64, 17, 64, 70, 18, 62, 69, 70, 62, 18, 17, 70, 18, 18, 69, 19, 63, 69, 62, 64, 65, 62, 25, 78, 59, 24, 78, 25, 67, 59, 78, 66, 59, 67, 23, 78, 24, 78, 63, 67, 77, 78, 23, 77, 63, 78, 62, 67, 63, 76, 77, 23, 62, 66, 67, 42, 29, 28, 55, 42, 28, 55, 28, 27, 55, 41, 42, 61, 48, 55, 55, 27, 26, 61, 26, 59, 55, 26, 61, 25, 59, 26, 59, 60, 61, 56, 58, 66, 62, 65, 66, 10, 9, 57, 56, 11, 57, 65, 56, 66, 57, 11, 10, 11, 56, 75, 56, 65, 75, 74, 11, 75, 12, 11, 74, 64, 75, 65, 74, 75, 64, 79, 13, 12, 72, 12, 74, 79, 12, 72, 71, 74, 64, 72, 74, 71, 66, 58, 59, 58, 56, 54, 59, 58, 60, 48, 44, 41, 47, 46, 44, 73, 46, 47, 47, 44, 48, 8, 7, 73, 60, 54, 47, 73, 47, 54, 48, 60, 47, 53, 8, 73, 53, 73, 54, 9, 8, 53, 57, 9, 53, 56, 53, 54, 48, 41, 55, 60, 48, 61, 56, 57, 53, 58, 54, 60, 73, 7, 46 ], + "vertices": [ 1, 4, 115.55, 22.28, 1, 1, 4, 103.28, 61.24, 1, 1, 4, 77.53, 72.69, 1, 1, 4, 36.95, 39, 1, 2, 4, 23.53, 37.48, 0.57, 3, 88.89, 40.23, 0.43, 2, 4, -5.96, 49.85, 0.4, 3, 59, 51.6, 0.6, 1, 2, -67.89, 26.14, 1, 2, 125, -119.82, 5.59, 0.41, 2, -74.84, -9.88, 0.59, 2, 125, -81.73, 1.16, 0.88, 126, -113.79, -10.46, 0.12, 2, 125, -26.52, -4.59, 0.75, 126, -58.29, -10.27, 0.25, 2, 125, 26.09, -8.53, 0.15, 126, -5.55, -8.55, 0.85, 2, 125, 80.56, -11.15, 0.12, 126, 48.88, -5.31, 0.88, 2, 125, 105.95, -14.1, 0.05, 126, 74.44, -5.52, 0.95, 2, 126, 100, -14.67, 0.49, 127, -24.37, -2.34, 0.51, 1, 127, -6.14, -4.95, 1, 1, 127, 6.37, -3.18, 1, 2, 129, -85.84, -9.66, 0.31, 127, 6.57, 22.47, 0.69, 2, 129, -48.55, -12.21, 0.52, 127, 3.88, 59.74, 0.48, 1, 129, 2.01, -12.21, 1, 2, 129, 46.88, -11.55, 0.53, 128, 17.25, -54.9, 0.47, 1, 128, 11.93, -0.75, 1, 1, 128, -0.98, 4.15, 1, 2, 124, 92.78, 14.32, 0.47, 128, -22.82, -1.91, 0.53, 3, 123, 101.67, 5.36, 0.29, 124, 66.47, 9.17, 0.4686, 128, -49.13, -7.06, 0.2414, 2, 123, 70.72, 6.91, 0.41, 124, 35.47, 8.84, 0.59, 2, 123, 23.98, 9.88, 0.76, 124, -11.36, 8.95, 0.24, 1, 123, -29.1, 11, 1, 2, 123, -82.85, 8.34, 0.89, 2, 90.75, -46.53, 0.11, 2, 123, -125.25, 2.41, 0.69, 2, 84.43, -4.18, 0.31, 1, 3, 30.67, -81.95, 1, 2, 4, -4.62, -75.11, 0.4, 3, 64.56, -73.25, 0.6, 2, 4, 22.12, -65.09, 0.57, 3, 90.95, -62.33, 0.43, 1, 4, 47.91, -67.67, 1, 1, 4, 98.02, -65.76, 1, 1, 4, 116.54, -30.4, 1, 2, 4, 15.15, -38.58, 0.57, 3, 83.08, -36.06, 0.43, 2, 4, 17.61, 2.43, 0.57, 3, 84.16, 5.01, 0.43, 1, 4, 42.24, -27.08, 1, 1, 4, 37.92, 8.11, 1, 1, 3, 30.39, -31.1, 1, 1, 3, 31.28, -55.18, 1, 2, 125, -125.52, 96.85, 0.32, 2, 16.57, -7.22, 0.68, 2, 123, -123.66, -17.43, 0.69, 2, 64.6, -5.95, 0.31, 1, 3, 32.47, -11.58, 1, 2, 125, -123.52, 74.78, 0.32, 2, -5.55, -8.48, 0.68, 1, 3, 33.02, 1.68, 1, 2, 125, -124.35, 42.51, 0.32, 2, -37.79, -6.58, 0.68, 2, 125, -85.79, 62.13, 0.97, 126, -124.37, 49.71, 0.03, 2, 125, -84.66, 84.93, 0.92, 2, 3.29, -47.66, 0.08, 2, 4, -10.72, -48.43, 0.4, 3, 57.57, -46.78, 0.6, 2, 4, -11.02, -35.73, 0.4, 3, 56.83, -34.1, 0.6, 2, 4, -9.01, -17.5, 0.4, 3, 58.23, -15.82, 0.6, 2, 4, -9.09, 6.59, 0.4, 3, 57.33, 8.26, 0.6, 2, 125, -27.47, 38.77, 0.92, 126, -63.88, 32.75, 0.08, 3, 125, -29.58, 64, 0.6336, 126, -68.67, 57.6, 0.3264, 124, -56.81, -106.27, 0.04, 2, 123, -84.4, -8.95, 0.89, 2, 73.45, -45.14, 0.11, 2, 125, 28.91, 35.59, 0.37, 126, -7.48, 35.62, 0.63, 2, 125, 27.9, 9, 0.22, 126, -5.64, 9.08, 0.78, 3, 125, 30.62, 79.28, 0.43771, 126, -10.46, 79.24, 0.53, 129, 2.41, 120.66, 0.03229, 2, 123, 30.45, -27.71, 0.32, 124, -2.61, -28.17, 0.68, 3, 125, -30.25, 84.21, 0.5664, 126, -71.51, 77.62, 0.3936, 124, -57.85, -86.07, 0.04, 1, 123, -27.07, -28.44, 1, 4, 125, 107.09, 80.56, 0.108, 126, 65.43, 88.71, 0.25092, 129, 1.14, 44.19, 0.4, 128, -36.06, -103.45, 0.24108, 3, 124, 73.43, -17.92, 0.3431, 129, 70.66, 46.72, 0.27, 128, -42.17, -34.15, 0.3869, 2, 126, 72.61, 42.49, 0.39, 129, -45.62, 43.56, 0.61, 2, 126, 39.98, 38.51, 0.68, 129, -44.99, 76.42, 0.32, 4, 125, 74.2, 80.73, 0.13965, 126, 32.72, 85.36, 0.46, 129, 2.41, 77.05, 0.17126, 128, -68.95, -103.88, 0.22909, 1, 124, 40.14, -22.8, 1, 2, 129, 68.59, 17.01, 0.32, 128, -12.4, -34.7, 0.68, 2, 129, 23.72, 15.75, 0.74, 128, -8.82, -79.44, 0.26, 1, 129, -24.32, 13.85, 1, 3, 126, 106.05, 31.73, 0.2256, 129, -60.97, 11.96, 0.52, 127, -18.31, 44.06, 0.2544, 3, 126, 105.3, 0.98, 0.2268, 129, -91.31, 17.01, 0.16, 127, -19.07, 13.31, 0.6132, 2, 125, -84.26, 39.16, 0.92, 126, -120.38, 27.04, 0.08, 3, 125, 106.71, -3.13, 0.03989, 126, 74.03, 5.46, 0.85011, 129, -82.49, 47.35, 0.11, 3, 125, 79.8, 0.65, 0.08746, 126, 46.86, 6.34, 0.82673, 129, -77.81, 74.12, 0.08581, 3, 124, 96.29, 4.49, 0.34371, 129, 91.87, 22.74, 0.05, 128, -19.31, -11.74, 0.60629, 4, 123, 104.25, -4.09, 0.1912, 124, 69.61, -0.11, 0.4382, 129, 88.65, 49.61, 0.06, 128, -45.98, -16.34, 0.31061, 4, 123, 71.58, -2.93, 0.28332, 124, 36.93, -0.93, 0.71646, 129, 89.51, 82.29, 5.0E-5, 128, -78.66, -17.16, 1.7E-4, 3, 126, 105.03, -6.02, 0.29357, 129, -98.2, 18.26, 0.08, 127, -19.34, 6.31, 0.62643 ], + "hull": 35, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 64, 66, 66, 68, 0, 68, 104, 10, 72, 8, 72, 70, 110, 96, 124, 128, 22, 112, 124, 126, 112, 116, 116, 118, 16, 146, 146, 94, 106, 146, 24, 148, 148, 128, 144, 142, 148, 150, 144, 30 ], + "width": 218, + "height": 492 + } + }, + "hand-back": { + "hand-back-fingers": { + "name": "girl/hand-front-fingers", + "path": "girl-blue-cape/hand-front-fingers", + "x": 11.59, + "y": 1.97, + "rotation": 90, + "width": 38, + "height": 42 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-blue-cape/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "ribbon-body": { + "ribbon-body": { "name": "girl-blue-cape/body-ribbon", "x": 18.42, "y": -33.29, "rotation": -94.33, "width": 100, "height": 75 } + }, + "sleeve-front": { + "sleeve-front": { + "name": "girl-blue-cape/sleeve-front", + "type": "mesh", + "uvs": [ 0.39189, 0, 0.14439, 0.01666, 0.15901, 0.10249, 0.17598, 0.19757, 0.191, 0.28175, 0.205, 0.3602, 0.22028, 0.44586, 0.23432, 0.52454, 0.2491, 0.60734, 0.22371, 0.71965, 0.1539, 0.82364, 0, 0.92776, 0, 0.99154, 0.23074, 0.95687, 0.37352, 1, 0.45602, 1, 0.6591, 0.94994, 1, 0.96658, 1, 0.91944, 0.88122, 0.81129, 0.81141, 0.71284, 0.76064, 0.59498, 0.73905, 0.50606, 0.71901, 0.4235, 0.7003, 0.34643, 0.68005, 0.26299, 0.65973, 0.17927, 0.63519, 0.07818, 0.61151, 0, 0.43698, 0.82821, 0.25612, 0.89754, 0.6242, 0.89754, 0.43118, 0.08805, 0.44237, 0.51902, 0.4401, 0.43175, 0.43805, 0.35262, 0.436, 0.27359, 0.43377, 0.18768, 0.44092, 0.60224, 0.43884, 0.72139 ], + "triangles": [ 31, 29, 19, 30, 10, 29, 31, 19, 18, 11, 10, 30, 16, 31, 18, 13, 11, 30, 16, 18, 17, 14, 30, 29, 31, 15, 29, 15, 31, 16, 12, 11, 13, 15, 14, 29, 13, 30, 14, 36, 26, 25, 36, 4, 37, 35, 36, 25, 35, 25, 24, 5, 4, 36, 35, 5, 36, 34, 35, 24, 6, 5, 35, 34, 24, 23, 34, 6, 35, 33, 34, 23, 7, 6, 34, 33, 23, 22, 33, 7, 34, 33, 8, 7, 38, 33, 22, 38, 22, 21, 38, 8, 33, 39, 8, 38, 39, 38, 21, 9, 8, 39, 39, 21, 20, 29, 9, 39, 29, 39, 20, 29, 20, 19, 10, 9, 29, 32, 0, 28, 32, 28, 27, 2, 1, 0, 2, 0, 32, 37, 32, 27, 37, 27, 26, 3, 2, 32, 37, 3, 32, 36, 37, 26, 4, 3, 37 ], + "vertices": [ 1, 11, -20.49, -4.66, 1, 1, 11, -16.63, -30.41, 1, 2, 11, 3.65, -28.95, 0.98956, 15, -30.38, -28.94, 0.01044, 2, 11, 26.12, -27.25, 0.69654, 15, -7.51, -27.25, 0.30346, 3, 11, 46.01, -25.75, 0.12833, 14, -20.67, -25.79, 0.04417, 15, 12.75, -25.75, 0.8275, 3, 11, 64.55, -24.35, 5.4E-4, 14, -1.82, -24.36, 0.45092, 15, 31.62, -24.35, 0.54855, 3, 13, -14.52, -22.88, 0.09244, 14, 18.77, -22.79, 0.86912, 15, 52.23, -22.83, 0.03844, 2, 13, 4.3, -21.33, 0.67682, 14, 37.68, -21.35, 0.32318, 3, 12, -9.39, -19.75, 0.17407, 13, 24.11, -19.7, 0.82329, 14, 57.58, -19.84, 0.00265, 3, 12, 17.84, -22.12, 0.96018, 13, 51, -22.22, 0.02472, 130, 19.81, 52.59, 0.0151, 2, 12, 43.11, -29.14, 0.51751, 130, 12.55, 28.05, 0.48249, 2, 12, 68.49, -44.89, 0.00319, 130, -3.45, 3.48, 0.99681, 1, 130, -3.45, -11.57, 1, 1, 130, 20.54, -3.4, 1, 1, 130, 35.39, -13.58, 1, 1, 130, 43.97, -13.58, 1, 1, 130, 65.09, -1.77, 1, 1, 130, 100.55, -5.7, 1, 2, 12, 65.42, 59.08, 0.01006, 130, 100.55, 5.43, 0.98994, 3, 12, 39.35, 46.47, 0.40219, 13, 72.61, 46.27, 0.00826, 130, 88.19, 30.95, 0.58955, 3, 12, 15.57, 38.98, 0.70901, 13, 49.08, 38.9, 0.15192, 130, 80.93, 54.19, 0.13907, 4, 12, -12.93, 33.42, 0.25073, 13, 20.9, 33.49, 0.66465, 14, 54.67, 33.36, 0.08185, 130, 75.65, 82, 0.00277, 4, 12, -34.44, 30.96, 0.01846, 13, -0.37, 31.14, 0.48291, 14, 33.3, 31.14, 0.4903, 15, 66.88, 31.08, 0.00833, 3, 13, -20.12, 28.96, 0.08139, 14, 13.46, 29.08, 0.74583, 15, 47.02, 29.06, 0.17278, 4, 11, 61.45, 27.17, 0.00108, 13, -38.56, 26.93, 7.5E-4, 14, -5.07, 27.16, 0.33502, 15, 28.47, 27.17, 0.66314, 3, 11, 41.73, 25.13, 0.17136, 14, -25.12, 25.07, 0.01658, 15, 8.4, 25.12, 0.81206, 2, 11, 21.95, 23.07, 0.80027, 15, -11.75, 23.07, 0.19973, 1, 11, -1.94, 20.59, 1, 1, 11, -20.42, 18.18, 1, 2, 12, 43.91, 0.31, 0.7298, 130, 41.99, 26.96, 0.2702, 2, 12, 60.9, -18.33, 0.15731, 130, 23.18, 10.61, 0.84269, 2, 12, 60.51, 19.95, 0.14683, 130, 61.46, 10.6, 0.85317, 1, 11, 0.33, -0.63, 1, 1, 13, 2.87, 0.3, 1, 1, 14, 15.41, 0.07, 1, 1, 15, 29.88, -0.11, 1, 2, 14, -22.6, -0.31, 0, 15, 10.87, -0.27, 1, 1, 11, 23.87, -0.43, 1, 3, 12, -10.83, 0.19, 2.3E-4, 13, 22.79, 0.24, 0.99974, 14, 56.38, 0.11, 3.0E-5, 3, 12, 18.04, 0.25, 0.9998, 13, 51.31, 0.16, 5.0E-5, 130, 42.18, 52.17, 1.5E-4 ], + "hull": 29, + "edges": [ 0, 2, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 56, 36, 62, 60, 22, 0, 64, 2, 4, 64, 4, 54, 56, 64, 54, 14, 16, 14, 66, 42, 44, 66, 44, 12, 14, 68, 66, 12, 68, 44, 46, 68, 46, 46, 48, 70, 68, 48, 70, 10, 12, 70, 10, 8, 10, 72, 70, 8, 72, 48, 50, 72, 50, 50, 52, 52, 54, 64, 74, 74, 72, 52, 74, 4, 6, 6, 8, 74, 6, 76, 66, 76, 42, 76, 16, 58, 78, 78, 76, 40, 78, 38, 58, 58, 20 ], + "width": 104, + "height": 238 + } + }, + "sleeve-inner-back": { + "sleeve-inner-back": { + "name": "girl-blue-cape/sleeve-back", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 1, 131, 5.56, 15.9, 1, 2, 131, 88.56, 15.9, 0.93003, 83, 41.53, -33.45, 0.06997, 2, 131, 88.56, -41.1, 0.44316, 83, -15.47, -33.45, 0.55684, 2, 131, 5.56, -41.1, 0.60086, 83, -15.47, 49.55, 0.39914 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 83, + "height": 57 + } + }, + "sleeve-inner-front": { + "sleeve-inner-front": { + "name": "girl-blue-cape/sleeve-back", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 130, 91.43, -14.89, 1, 2, 130, 8.43, -14.88, 1, 12, 87.21, -32.83, 0, 2, 130, 8.42, 41.64, 0.34345, 12, 29.2, -33.4, 0.65655, 2, 130, 91.42, 41.63, 0.5791, 12, 28.35, 49.6, 0.4209 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 83, + "height": 57 + } + } + } + }, + { + "name": "clothes/dress-green", + "bones": [ "skirt-control-back", "skirt-control", "skirt-control-back-down", "skirt-control-front", "skirt-control-front-down", "skirt-control-middle", "skirt-control-up" ], + "attachments": { + "body-up": { + "body-up": { "name": "girl-spring-dress/body-up", "x": 59.16, "y": -14.67, "rotation": -94.33, "width": 128, "height": 131 } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-spring-dress/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "skirt": { + "skirt": { + "name": "girl-spring-dress/skirt", + "type": "mesh", + "uvs": [ 0.532, 0, 0.4709, 0, 0.41171, 0, 0.25323, 0.09671, 0.14058, 0.22113, 0.0623, 0.34554, 0, 0.45708, 6.0E-5, 0.78742, 0.1654, 0.88181, 0.31815, 1, 0.50526, 1, 0.68856, 1, 0.83749, 0.87752, 0.99236, 0.73165, 1, 0.41418, 0.9215, 0.29835, 0.84131, 0.18252, 0.72866, 0.06668, 0.6141, 0, 0.13103, 0.46995, 0.23796, 0.60724, 0.35252, 0.69733, 0.50336, 0.74023, 0.6561, 0.69733, 0.76875, 0.60724, 0.86613, 0.46137, 0.78212, 0.3198, 0.71338, 0.41418, 0.62555, 0.47424, 0.51672, 0.4914, 0.38498, 0.48711, 0.29906, 0.39702, 0.21695, 0.30264, 0.35443, 0.23399, 0.29524, 0.1868, 0.42507, 0.25973, 0.52818, 0.26832, 0.59309, 0.24257, 0.64083, 0.19967, 0.69429, 0.14819 ], + "triangles": [ 20, 31, 30, 30, 35, 29, 29, 36, 28, 29, 35, 36, 30, 31, 35, 36, 37, 28, 28, 37, 27, 38, 27, 37, 31, 33, 35, 31, 32, 33, 38, 39, 26, 32, 34, 33, 32, 4, 34, 0, 37, 36, 36, 35, 1, 36, 1, 0, 33, 2, 35, 35, 2, 1, 38, 0, 18, 38, 37, 0, 33, 34, 2, 4, 3, 34, 38, 18, 39, 34, 3, 2, 39, 18, 17, 12, 11, 23, 23, 24, 12, 12, 24, 13, 24, 25, 13, 13, 25, 14, 28, 27, 24, 24, 27, 25, 27, 26, 25, 25, 15, 14, 25, 26, 15, 26, 27, 38, 26, 16, 15, 26, 39, 16, 39, 17, 16, 23, 28, 24, 9, 22, 10, 23, 11, 22, 11, 10, 22, 9, 21, 22, 9, 8, 21, 23, 22, 29, 22, 21, 29, 29, 28, 23, 21, 30, 29, 21, 20, 30, 8, 20, 21, 8, 7, 20, 7, 19, 20, 7, 6, 19, 20, 19, 31, 6, 5, 19, 19, 32, 31, 19, 5, 32, 5, 4, 32 ], + "vertices": [ 1, 4, 17.29, -36.28, 1, 1, 4, 18.97, -14.1, 1, 1, 4, 20.6, 7.38, 1, 2, 110, 65.82, -89.43, 0.30593, 4, 9.32, 66.08, 0.69407, 2, 110, 45.66, -48.43, 0.65597, 4, -7.68, 108.49, 0.34403, 2, 110, 25.51, -19.93, 0.88973, 4, -25.63, 138.42, 0.11027, 1, 110, 7.44, 2.74, 1, 1, 110, -46.08, 2.72, 1, 3, 110, -61.37, -57.46, 0.25894, 105, 13.43, 107.85, 0.71, 4, -115.09, 107.55, 0.03106, 3, 110, -80.52, -113.06, 0.21204, 105, -5.71, 52.25, 0.72535, 4, -138.37, 53.55, 0.06261, 1, 105, -5.71, -15.86, 1, 3, 105, -5.71, -82.58, 0.58138, 109, -87.91, 109.6, 0.34368, 4, -148.54, -80.89, 0.07494, 3, 105, 14.13, -136.79, 0.26163, 109, -68.06, 55.39, 0.68053, 4, -132.84, -136.44, 0.05783, 2, 105, 37.76, -193.16, 0.24, 109, -44.43, -0.99, 0.76, 1, 109, 7, -3.77, 1, 2, 109, 25.76, 24.81, 0.90843, 4, -41.59, -174.01, 0.09157, 2, 109, 44.53, 54, 0.73242, 4, -20.68, -146.32, 0.26758, 2, 109, 63.29, 95, 0.45401, 4, 1.12, -106.85, 0.54599, 1, 4, 15.04, -66.08, 1, 3, 110, 5.35, -44.95, 0.6612, 105, 80.15, 120.36, 0.2, 4, -47.61, 114.99, 0.1388, 3, 110, -16.89, -83.87, 0.37019, 105, 57.91, 81.44, 0.45, 4, -72.73, 77.86, 0.17981, 3, 110, -31.48, -125.57, 0.18786, 105, 43.32, 39.74, 0.5858, 4, -90.42, 37.38, 0.22634, 3, 105, 36.37, -15.16, 0.75525, 109, -45.82, 177.01, 0.06474, 4, -101.5, -16.84, 0.18, 3, 105, 43.32, -70.76, 0.49637, 109, -38.87, 121.41, 0.31941, 4, -98.76, -72.81, 0.18423, 3, 105, 57.91, -111.77, 0.4, 109, -24.28, 80.41, 0.47496, 4, -87.3, -114.8, 0.12504, 3, 105, 81.54, -147.21, 0.16, 109, -0.65, 44.96, 0.74601, 4, -66.41, -151.92, 0.09399, 3, 105, 104.48, -116.63, 0.17, 109, 22.29, 75.54, 0.56301, 4, -41.23, -123.16, 0.26699, 3, 105, 89.19, -91.61, 0.24, 109, 7, 100.56, 0.43686, 4, -54.59, -97.06, 0.32314, 3, 105, 79.46, -59.64, 0.33142, 109, -2.73, 132.53, 0.26648, 4, -61.88, -64.45, 0.40211, 3, 105, 76.68, -20.03, 0.40588, 109, -5.51, 172.15, 0.09581, 4, -61.67, -24.73, 0.49831, 3, 110, 2.57, -137.39, 0.12845, 105, 77.37, 27.93, 0.35758, 4, -57.36, 23.03, 0.51397, 3, 110, 17.17, -106.11, 0.2437, 105, 91.97, 59.2, 0.31, 4, -40.45, 53.12, 0.4463, 3, 110, 32.46, -76.23, 0.46618, 105, 107.26, 89.09, 0.09047, 4, -22.95, 81.76, 0.44335, 3, 110, 43.58, -126.27, 0.11844, 105, 118.38, 39.05, 0.11, 4, -15.63, 31.03, 0.77156, 3, 110, 51.22, -104.72, 0.22926, 105, 126.02, 60.59, 0.0575, 4, -6.38, 51.94, 0.71324, 2, 105, 114.21, 13.33, 0.17, 4, -21.73, 5.7, 0.83, 3, 105, 112.82, -24.2, 0.14524, 109, 30.63, 167.98, 0.09502, 4, -25.94, -31.62, 0.75974, 3, 105, 116.99, -47.83, 0.14384, 109, 34.8, 144.35, 0.18939, 4, -23.57, -55.49, 0.66677, 3, 105, 123.94, -65.2, 0.09, 109, 41.75, 126.97, 0.28023, 4, -17.95, -73.34, 0.62977, 3, 105, 132.28, -84.66, 0.03, 109, 50.09, 107.51, 0.39568, 4, -11.1, -93.38, 0.57432 ], + "hull": 19, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 4, 2, 70, 2, 2, 0, 0, 36, 72, 0, 18, 20, 20, 22, 44, 20, 54, 76 ], + "width": 364, + "height": 162 + } + }, + "underskirt": { + "underskirt": { + "name": "girl-spring-dress/underskirt", + "type": "mesh", + "uvs": [ 0.13668, 0, 0, 0.11048, 0, 0.35349, 0, 0.5756, 0.07116, 0.76423, 0.25979, 0.94448, 0.46464, 1, 0.68672, 0.97656, 0.87735, 0.83221, 1, 0.55421, 1, 0.38798, 1, 0, 0.79052, 0.28923, 0.64716, 0.42987, 0.49934, 0.45979, 0.35819, 0.40892, 0.23815, 0.30419, 0.12923, 0.13064, 0.52712, 0.17253 ], + "triangles": [ 13, 14, 18, 15, 16, 18, 18, 0, 11, 17, 0, 18, 13, 18, 12, 14, 15, 18, 12, 18, 11, 9, 8, 12, 8, 13, 12, 12, 10, 9, 12, 11, 10, 7, 13, 8, 7, 6, 14, 6, 5, 14, 14, 13, 7, 5, 15, 14, 5, 4, 15, 16, 4, 3, 16, 15, 4, 3, 2, 16, 2, 17, 16, 2, 1, 17, 17, 1, 0, 16, 17, 18 ], + "vertices": [ 4, 111, 66.62, -34.12, 0.33917, 108, 115.67, 117.58, 0.06079, 112, 61.17, 280.19, 4.0E-5, 4, -32.12, 111.03, 0.6, 2, 111, 52.25, 13.72, 0.98771, 108, 101.3, 165.42, 0.01229, 2, 111, 20.66, 13.72, 0.99893, 108, 69.71, 165.42, 0.00107, 2, 111, -8.21, 13.72, 0.78, 108, 40.84, 165.42, 0.22, 2, 111, -37.4, -20.91, 0.53, 108, 11.65, 130.79, 0.47, 2, 111, -56.17, -77.21, 0.435, 108, -7.12, 74.49, 0.565, 3, 111, -63.38, -154.35, 0.00296, 108, -14.33, -2.65, 0.98871, 112, -68.83, 159.96, 0.00833, 2, 108, -11.29, -74.93, 0.61621, 112, -65.78, 87.68, 0.38379, 2, 108, 7.48, -141.65, 0.5, 112, -47.02, 20.96, 0.5, 2, 108, 43.62, -184.58, 0.24, 112, -10.88, -21.97, 0.76, 1, 112, 10.73, -21.97, 1, 3, 108, 115.67, -184.58, 7.6E-4, 112, 61.17, -21.97, 0.88924, 4, -54.9, -190.27, 0.11, 4, 111, 29.02, -262.96, 2.5E-4, 108, 78.07, -111.26, 0.4, 112, 23.57, 51.35, 0.49361, 4, -86.87, -114.32, 0.10614, 4, 111, 13.85, -221.73, 0.00648, 108, 62.89, -70.03, 0.45247, 112, 8.4, 92.58, 0.40105, 4, -98.89, -72.07, 0.14, 4, 111, 6.84, -166.5, 0.0591, 108, 55.89, -14.79, 0.67677, 112, 1.4, 147.82, 0.12413, 4, -101.7, -16.46, 0.14, 4, 111, 13.46, -111.65, 0.28006, 108, 62.51, 40.06, 0.56032, 112, 8.01, 202.67, 0.01962, 4, -90.97, 37.74, 0.14, 4, 111, 27.07, -69.63, 0.54438, 108, 76.12, 82.07, 0.31301, 112, 21.63, 244.68, 0.00262, 4, -74.23, 78.6, 0.14, 4, 111, 49.63, -31.51, 0.74734, 108, 98.68, 120.19, 0.11265, 112, 44.19, 282.8, 1.0E-5, 4, -48.86, 114.91, 0.14, 1, 4, -64.79, -23.54, 1 ], + "hull": 12, + "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 22, 16, 24, 18, 20, 20, 22, 12, 28, 10, 30, 8, 32, 14, 26, 2, 4, 4, 6, 32, 4 ], + "width": 350, + "height": 130 + } + } + } + }, + { + "name": "clothes/hoodie-blue-and-scarf", + "bones": [ "zip-girl", "scarf-back" ], + "attachments": { + "arm-back": { + "arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 } + }, + "body": { + "body": { + "name": "girl/body", + "type": "mesh", + "uvs": [ 0.59765, 0.99752, 0.42922, 1, 0.24876, 0.98569, 0.06428, 0.94872, 0.0322, 0.85553, 0.00613, 0.83483, 1.2E-4, 0.73129, 1.2E-4, 0.59965, 0.01215, 0.45174, 0.02217, 0.28165, 0.04624, 0.09676, 0.26881, 0, 0.59565, 0, 0.78012, 0.03908, 0.86835, 0.20473, 0.94053, 0.37187, 0.99066, 0.5257, 1, 0.64846, 1, 0.74608, 0.97663, 0.85405, 0.94455, 0.93392, 0.8102, 0.97682, 0.66583, 0.999, 0.27282, 0.87328, 0.44526, 0.88807, 0.58362, 0.88659, 0.66984, 0.88364, 0.81221, 0.8718, 0.94053, 0.8363, 0.61771, 0.76383, 0.71395, 0.75939, 0.26079, 0.7446, 0.95457, 0.70023, 0.96259, 0.76235, 0.61169, 0.64107, 0.58963, 0.51386, 0.54953, 0.37039, 0.64979, 0.35412, 0.6939, 0.50203, 0.71796, 0.63367, 0.26079, 0.53605, 0.2668, 0.3911, 0.85431, 0.31714, 0.93051, 0.4902, 0.42722, 0.12634, 0.54351, 0.11303, 0.49539, 0.24171, 0.59966, 0.221, 0.74202, 0.09676, 0.80218, 0.20473, 0.23071, 0.15001, 0.08634, 0.16924, 0.08233, 0.27721, 0.06428, 0.45174, 0.05225, 0.60409, 0.0703, 0.73425, 0.48183, 0.51247, 0.79828, 0.48323, 0.745, 0.43772 ], + "triangles": [ 17, 32, 43, 17, 43, 16, 32, 17, 18, 30, 34, 39, 33, 32, 18, 29, 34, 30, 32, 39, 57, 29, 31, 34, 5, 6, 55, 30, 32, 33, 32, 30, 39, 33, 27, 30, 19, 33, 18, 28, 33, 19, 4, 5, 55, 28, 27, 33, 31, 24, 23, 26, 29, 30, 26, 30, 27, 31, 29, 24, 25, 29, 26, 29, 25, 24, 20, 28, 19, 27, 28, 20, 4, 23, 3, 55, 23, 4, 31, 23, 55, 21, 26, 27, 21, 27, 20, 2, 3, 23, 0, 25, 26, 22, 0, 26, 21, 22, 26, 1, 23, 24, 2, 23, 1, 0, 1, 24, 0, 24, 25, 32, 57, 43, 42, 14, 15, 57, 42, 15, 31, 54, 40, 58, 37, 42, 57, 58, 42, 38, 37, 58, 38, 58, 57, 35, 36, 37, 35, 37, 38, 56, 36, 35, 43, 15, 16, 7, 8, 54, 39, 38, 57, 34, 35, 38, 34, 38, 39, 6, 7, 54, 31, 55, 54, 6, 54, 55, 56, 35, 34, 34, 31, 56, 43, 57, 15, 37, 49, 42, 48, 12, 13, 12, 44, 11, 45, 12, 48, 45, 44, 12, 50, 10, 11, 50, 11, 44, 51, 10, 50, 14, 49, 13, 48, 13, 49, 47, 45, 48, 47, 48, 49, 46, 44, 45, 46, 45, 47, 51, 9, 10, 52, 9, 51, 42, 49, 14, 37, 47, 49, 36, 46, 47, 36, 47, 37, 46, 41, 50, 46, 50, 44, 41, 46, 36, 52, 51, 50, 41, 52, 50, 53, 9, 52, 53, 52, 41, 8, 9, 53, 56, 41, 36, 40, 53, 41, 40, 41, 56, 54, 53, 40, 31, 40, 56, 54, 8, 53 ], + "vertices": [ 1, 2, 28.17, -64.12, 1, 1, 2, -4.5, -64.91, 1, 1, 2, -39.53, -61.29, 1, 1, 2, -75.35, -51.72, 1, 2, 3, -22.36, 79.55, 0.14323, 2, -81.68, -27.24, 0.85677, 2, 3, -16.73, 84.4, 0.19154, 2, -86.76, -21.81, 0.80846, 2, 3, 10.53, 84.54, 0.53301, 2, -88.04, 5.41, 0.46699, 2, 4, -18.75, 81.95, 0.21, 3, 45.12, 83.25, 0.79, 2, 4, 19.88, 76.85, 0.63, 3, 83.91, 79.46, 0.37, 1, 4, 64.36, 71.73, 1, 1, 4, 112.53, 63.61, 1, 1, 4, 134.84, 18.72, 1, 1, 4, 130.32, -44.52, 1, 2, 4, 117.52, -79.49, 0.86136, 3, 186.78, -73.49, 0.13864, 2, 4, 72.85, -93.46, 0.64743, 3, 142.61, -88.96, 0.35257, 3, 4, 28, -104.29, 0.26062, 3, 98.16, -101.31, 0.60938, 2, 94, 100.7, 0.13, 3, 4, -13.04, -111.11, 0.15, 3, 57.36, -109.51, 0.44607, 2, 103.9, 60.29, 0.40393, 3, 4, -45.38, -110.62, 0.11, 3, 25.03, -110.11, 0.28777, 2, 105.84, 28.01, 0.60223, 3, 4, -70.99, -108.79, 0.04, 3, -0.62, -109.15, 0.15795, 2, 105.95, 2.33, 0.80205, 1, 2, 101.54, -26.08, 1, 1, 2, 95.4, -47.11, 1, 1, 2, 69.38, -58.5, 1, 1, 2, 41.4, -64.45, 1, 1, 2, -34.98, -31.71, 1, 1, 2, -1.51, -35.46, 1, 1, 2, 25.33, -34.96, 1, 1, 2, 42.05, -34.11, 1, 1, 2, 69.66, -30.88, 1, 1, 2, 94.51, -21.44, 1, 1, 2, 31.81, -2.64, 1, 1, 2, 50.47, -1.4, 1, 2, 3, 5.13, 34.14, 0.47225, 2, -37.46, 2.12, 0.52775, 3, 4, -58.33, -100.86, 0.09, 3, 11.76, -100.8, 0.21274, 2, 97.09, 14.36, 0.69726, 3, 4, -74.74, -101.25, 0.05, 3, -4.63, -101.74, 0.13139, 2, 98.71, -1.97, 0.81861, 3, 4, -38.07, -35.62, 0.12, 3, 29.8, -34.91, 0.46014, 2, 30.5, 29.64, 0.41986, 3, 4, -4.4, -33.73, 0.32, 3, 63.39, -31.88, 0.5848, 2, 26.08, 63.07, 0.0952, 2, 4, 33.79, -28.66, 0.53, 3, 101.38, -25.52, 0.47, 2, 4, 36.68, -48.36, 0.50575, 3, 104.93, -45.12, 0.49425, 3, 4, -2.73, -54.13, 0.32, 3, 65.74, -52.21, 0.578, 2, 46.3, 66.27, 0.102, 3, 4, -37.6, -56.32, 0.12, 3, 30.97, -55.58, 0.4488, 2, 51.11, 31.67, 0.4312, 1, 4, -5.67, 30.32, 1, 1, 4, 32.27, 26.44, 1, 3, 4, 43.55, -88.63, 0.42337, 3, 113.17, -85.13, 0.53663, 2, 77.21, 115.03, 0.04, 3, 4, -2.9, -100.14, 0.24, 3, 67.13, -98.2, 0.4463, 2, 92.19, 69.57, 0.3137, 1, 4, 99.51, -9.56, 1, 1, 4, 101.39, -32.32, 1, 2, 4, 68.3, -20.59, 0.85, 3, 135.6, -16.29, 0.15, 2, 4, 72.29, -41.16, 0.83269, 3, 140.28, -36.71, 0.16731, 2, 4, 102.92, -71.03, 0.84329, 3, 171.9, -65.53, 0.15671, 2, 4, 73.76, -80.65, 0.68178, 3, 143.09, -76.13, 0.31822, 1, 4, 96.01, 28.91, 1, 1, 4, 92.97, 57.2, 1, 1, 4, 64.7, 60, 1, 2, 4, 19.16, 66.76, 0.69519, 3, 83.53, 69.35, 0.30481, 2, 4, -20.64, 71.95, 0.21, 3, 43.58, 73.18, 0.79, 2, 3, 9.24, 70.97, 0.46736, 2, -74.42, 4.69, 0.53264, 2, 4, -2.54, -12.9, 0.39471, 3, 64.54, -11, 0.60529, 3, 4, 0.76, -74.68, 0.37, 3, 69.92, -72.63, 0.47153, 2, 66.53, 71.3, 0.15847, 3, 4, 13.43, -65.22, 0.37172, 3, 82.27, -62.75, 0.51471, 2, 56.14, 83.22, 0.11357 ], + "hull": 23, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 0, 44, 58, 62 ], + "width": 194, + "height": 263 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "scarf": { + "scarf": { + "name": "girl/scarf", + "type": "mesh", + "uvs": [ 0, 0.69166, 0.08052, 0.80607, 0.18349, 0.90523, 0.29463, 0.96243, 0.44173, 1, 0.5921, 0.99676, 0.69655, 0.96098, 0.81649, 0.89046, 0.92984, 0.74335, 0.98437, 0.67259, 1, 0.62301, 1, 0.43614, 0.987, 0.34894, 0.95168, 0.11197, 0.8389, 0.11579, 0.75309, 0.14439, 0.66045, 0.15555, 0.57902, 0.16537, 0.46625, 0.11579, 0.37308, 0.07002, 0.28482, 0.02426, 0.20473, 0, 0.09849, 0.02044, 0.056, 0.3408, 0, 0.51623, 0.2505, 0.51241, 0.45971, 0.56199, 0.6444, 0.52385, 0.85198, 0.46283, 0.15733, 0.43995, 0.3453, 0.53148, 0.54797, 0.54292, 0.74737, 0.5086, 0.26684, 0.42851, 0.3506, 0.44336, 0.46122, 0.45875, 0.16878, 0.36367, 0.94187, 0.40181 ], + "triangles": [ 32, 15, 28, 28, 15, 37, 27, 31, 17, 31, 35, 17, 27, 16, 32, 32, 16, 15, 37, 15, 14, 18, 35, 34, 34, 33, 19, 12, 14, 13, 12, 37, 14, 23, 22, 36, 33, 36, 20, 27, 17, 16, 17, 35, 18, 18, 34, 19, 19, 33, 20, 36, 21, 20, 36, 22, 21, 28, 37, 11, 30, 25, 34, 30, 34, 35, 34, 25, 33, 24, 23, 29, 25, 29, 33, 29, 36, 33, 29, 23, 36, 37, 12, 11, 5, 4, 26, 4, 3, 26, 6, 5, 31, 5, 26, 31, 26, 3, 30, 31, 27, 6, 7, 27, 32, 7, 6, 27, 3, 2, 30, 30, 1, 25, 30, 2, 1, 7, 32, 8, 29, 25, 1, 9, 8, 28, 28, 8, 32, 24, 29, 0, 0, 29, 1, 9, 28, 10, 10, 28, 11, 26, 35, 31, 26, 30, 35 ], + "vertices": [ 1, 4, 101.59, 148.9, 1, 1, 4, 88.51, 130.67, 1, 1, 4, 76.57, 106.99, 1, 1, 4, 68.76, 81.06, 1, 1, 4, 62.3, 46.43, 1, 1, 4, 59.93, 10.72, 1, 1, 4, 61.69, -14.34, 1, 1, 4, 66.71, -43.35, 1, 1, 4, 79.64, -71.38, 1, 1, 4, 85.86, -84.86, 1, 1, 4, 90.62, -88.96, 1, 2, 4, 111.53, -90.22, 0.68, 5, 12.11, -93.3, 0.32, 2, 4, 120.59, -87.62, 0.68, 5, 21.19, -90.81, 0.32, 1, 5, 49.45, -81.99, 1, 1, 5, 49.69, -55.15, 1, 1, 5, 47.25, -34.67, 1, 1, 5, 46.62, -12.6, 1, 1, 5, 46.07, 6.8, 1, 1, 5, 51.76, 33.52, 1, 1, 5, 56.94, 55.57, 1, 1, 5, 62.1, 76.47, 1, 1, 5, 65.02, 95.46, 1, 1, 5, 63.52, 120.79, 1, 2, 4, 133.66, 133.75, 0.68, 5, 36.73, 130.17, 0.32, 2, 4, 118.16, 147.77, 0.86, 5, 21.41, 144.43, 0.14, 2, 4, 113.61, 88.46, 0.68, 5, 16.19, 85.15, 0.32, 2, 4, 105.87, 38.97, 0.71, 5, 7.91, 35.81, 0.29, 2, 4, 107.27, -5.15, 0.68, 5, 8.8, -8.29, 0.32, 2, 4, 110.76, -54.86, 0.68, 5, 11.73, -57.98, 0.32, 2, 4, 122.22, 110.21, 0.68, 5, 25.04, 106.78, 0.32, 2, 4, 110.42, 66.02, 0.68, 5, 12.75, 62.78, 0.32, 2, 4, 106.59, 17.89, 0.68, 5, 8.39, 14.74, 0.32, 2, 4, 107.47, -29.73, 0.68, 5, 8.73, -32.84, 0.32, 2, 4, 121.95, 84.1, 0.68, 5, 24.47, 80.7, 0.32, 2, 4, 119.33, 64.26, 0.68, 5, 21.64, 60.92, 0.32, 2, 4, 116.31, 38.04, 0.68, 5, 18.32, 34.76, 0.32, 2, 4, 129.85, 107.06, 0.68, 5, 32.62, 103.55, 0.32, 2, 4, 115.79, -76.59, 0.68, 5, 16.52, -79.73, 0.32 ], + "hull": 25, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 18, 20, 20, 22, 26, 28, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 0, 48, 2, 58, 6, 60, 14, 64, 10, 12, 12, 14, 14, 16, 16, 18, 16, 56, 28, 30, 64, 30, 30, 32, 32, 34, 54, 32, 50, 66, 38, 68, 68, 60, 36, 70, 70, 52, 66, 40, 22, 24, 24, 26, 74, 24, 62, 34 ], + "width": 238, + "height": 102 + } + }, + "scarf-back": { + "scarf-back": { "name": "girl/scarf-back", "x": 46.88, "y": 3.26, "rotation": 177.98, "width": 143, "height": 102 } + }, + "sleeve-front": { + "sleeve-front": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "sleeve-front", "width": 71, "height": 229 } + }, + "zip-girl": { + "zip-girl": { "name": "girl/zip", "x": 19.66, "y": 3.69, "rotation": 80.66, "width": 37, "height": 49 } + } + } + }, + { + "name": "clothes/hoodie-orange", + "bones": [ "zip-boy" ], + "attachments": { + "arm-back": { + "arm-back": { + "name": "boy/arm-front", + "type": "mesh", + "uvs": [ 0, 0.9983, 1, 1, 1, 0.86682, 0.93575, 0.85962, 0.92543, 0.81301, 0.91517, 0.75475, 0.90967, 0.69766, 0.90374, 0.64195, 0.89852, 0.59071, 0.89321, 0.53993, 0.88593, 0.48173, 0.87995, 0.43392, 0.87387, 0.38539, 0.86778, 0.33662, 0.86019, 0.276, 0.85262, 0.21542, 0.84443, 0.15001, 0.83706, 0.09104, 0.82567, 0, 0.20656, 4.9E-4, 0.19476, 0.09288, 0.18669, 0.15618, 0.17892, 0.21703, 0.17122, 0.27738, 0.16365, 0.33672, 0.15684, 0.39004, 0.15032, 0.44113, 0.14396, 0.49098, 0.13775, 0.53965, 0.13226, 0.59099, 0.12603, 0.6493, 0.11997, 0.7051, 0.11515, 0.75592, 0.10543, 0.80835, 0.09698, 0.85907, 0.00989, 0.86774, 0.51288, 0.08992, 0.5068, 0.53843, 0.50952, 0.33772, 0.50435, 0.75817, 0.50554, 0.64894, 0.50328, 0.81283, 0.50817, 0.43751, 0.51115, 0.2178, 0.51199, 0.156, 0.51033, 0.27832, 0.50881, 0.38996, 0.50751, 0.48617, 0.50614, 0.59548, 0.5049, 0.70471, 0.50929, 0.85256 ], + "triangles": [ 3, 2, 1, 50, 3, 1, 0, 35, 34, 50, 0, 34, 0, 50, 1, 50, 4, 3, 34, 33, 50, 23, 22, 45, 45, 15, 14, 38, 23, 45, 24, 23, 38, 38, 45, 14, 38, 14, 13, 46, 24, 38, 46, 38, 13, 46, 13, 12, 25, 24, 46, 42, 25, 46, 42, 46, 12, 42, 12, 11, 26, 25, 42, 47, 26, 42, 47, 42, 11, 47, 11, 10, 27, 26, 47, 37, 27, 47, 37, 47, 10, 28, 27, 37, 9, 37, 10, 48, 28, 37, 29, 28, 48, 48, 37, 9, 48, 9, 8, 40, 29, 48, 40, 48, 8, 40, 8, 7, 30, 29, 40, 49, 30, 40, 49, 40, 7, 49, 7, 6, 31, 30, 49, 39, 31, 49, 32, 31, 39, 39, 49, 6, 39, 6, 5, 41, 32, 39, 33, 32, 41, 41, 39, 5, 4, 41, 5, 50, 41, 4, 33, 41, 50, 44, 17, 16, 21, 20, 44, 43, 21, 44, 22, 21, 43, 43, 44, 16, 43, 16, 15, 45, 22, 43, 45, 43, 15, 44, 36, 17, 44, 20, 36, 36, 19, 18, 36, 18, 17, 20, 19, 36 ], + "vertices": [ 1, 83, 30.3, -36.41, 1, 1, 83, 30.3, 34.59, 1, 1, 83, -0.09, 34.58, 1, 1, 83, -1.73, 30.02, 1, 3, 89, -1.79, 29.7, 0.51485, 88, 31.72, 29.7, 0.47152, 87, 64.98, 29.54, 0.01363, 3, 89, -14.92, 28.81, 0.16761, 88, 18.24, 28.84, 0.7202, 87, 51.66, 28.75, 0.11219, 3, 89, -27.79, 28.25, 0.02494, 88, 5.03, 28.32, 0.58139, 87, 38.61, 28.29, 0.39367, 4, 89, -40.37, 27.67, 3.1E-4, 88, -7.89, 27.77, 0.24325, 87, 25.85, 27.81, 0.73664, 86, 59.61, 27.66, 0.0198, 3, 88, -19.79, 27.28, 0.05132, 87, 14.09, 27.38, 0.81519, 86, 47.8, 27.3, 0.1335, 4, 88, -31.58, 26.79, 0.00265, 87, 2.43, 26.95, 0.57933, 86, 36.09, 26.94, 0.41791, 85, 69.67, 26.87, 1.1E-4, 3, 87, -10.9, 26.37, 0.1986, 86, 22.7, 26.43, 0.77283, 85, 56.26, 26.39, 0.02857, 3, 87, -21.85, 25.89, 0.03954, 86, 11.7, 26.02, 0.79423, 85, 45.25, 26, 0.16624, 4, 84, 66.95, 25.61, 2.5E-4, 87, -32.97, 25.41, 0.0015, 86, 0.53, 25.6, 0.51564, 85, 34.07, 25.6, 0.48261, 3, 84, 55.91, 25.21, 0.02493, 86, -10.7, 25.18, 0.18302, 85, 22.83, 25.2, 0.79205, 3, 84, 42.17, 24.71, 0.22892, 86, -24.67, 24.66, 0.01383, 85, 8.85, 24.71, 0.75725, 2, 84, 28.46, 24.21, 0.68211, 85, -5.12, 24.22, 0.31789, 2, 84, 13.66, 23.68, 0.96794, 85, -20.18, 23.68, 0.03206, 1, 84, 0.32, 23.19, 1, 1, 84, -20.28, 22.44, 1, 1, 84, -20.3, -21.51, 1, 1, 84, 0.6, -22.41, 1, 2, 84, 14.92, -23.03, 0.96207, 85, -18.91, -23.02, 0.03793, 2, 84, 28.69, -23.62, 0.67642, 85, -4.9, -23.62, 0.32358, 3, 84, 42.34, -24.21, 0.2106, 86, -24.41, -24.26, 0.01717, 85, 9.01, -24.21, 0.77223, 3, 84, 55.78, -24.78, 0.0197, 86, -10.74, -24.81, 0.18482, 85, 22.69, -24.79, 0.79548, 3, 87, -31.67, -25.49, 0.00253, 86, 1.54, -25.31, 0.54183, 85, 34.98, -25.31, 0.45564, 3, 87, -19.96, -25.9, 0.05261, 86, 13.3, -25.78, 0.80433, 85, 46.75, -25.81, 0.14306, 3, 87, -8.53, -26.3, 0.24883, 86, 24.77, -26.25, 0.73011, 85, 58.23, -26.3, 0.02106, 4, 88, -31.1, -26.85, 0.00529, 87, 2.63, -26.69, 0.57957, 86, 35.97, -26.7, 0.41477, 85, 69.44, -26.77, 3.7E-4, 3, 88, -19.17, -27.12, 0.06823, 87, 14.41, -27.02, 0.80427, 86, 47.8, -27.1, 0.1275, 4, 89, -38.03, -27.52, 0, 88, -5.62, -27.43, 0.32888, 87, 27.8, -27.4, 0.65921, 86, 61.24, -27.56, 0.01191, 3, 89, -25.42, -27.79, 0.02186, 88, 7.33, -27.73, 0.68409, 87, 40.58, -27.77, 0.29405, 3, 89, -13.96, -27.99, 0.14597, 88, 19.09, -27.95, 0.77839, 87, 52.2, -28.05, 0.07563, 3, 89, -2.13, -28.53, 0.457, 88, 31.23, -28.52, 0.53645, 87, 64.19, -28.69, 0.00655, 1, 83, -1.86, -29.53, 1, 1, 83, 0.13, -35.71, 1, 1, 84, 0, 0.18, 1, 2, 87, 2.22, -0.49, 0.93037, 86, 35.72, -0.5, 0.06963, 2, 86, -10.48, -0.25, 2.1E-4, 85, 23, -0.23, 0.99979, 1, 88, 19.33, -0.32, 1, 1, 87, 27.58, -0.45, 1, 2, 89, -1.47, -0.27, 0.18486, 88, 31.98, -0.27, 0.81514, 2, 86, 12.49, -0.38, 0.99961, 85, 45.99, -0.4, 3.9E-4, 2, 84, 28.93, -0.03, 0.99759, 85, -4.64, -0.03, 0.00241, 1, 84, 14.95, 0.07, 1, 2, 84, 42.63, -0.13, 2.9E-4, 85, 9.31, -0.13, 0.99971, 2, 86, 1.55, -0.32, 0.82986, 85, 35.04, -0.32, 0.17014, 1, 86, 23.69, -0.43, 1, 1, 87, 15.31, -0.47, 1, 1, 88, 6.95, -0.4, 1, 1, 83, -3.3, -0.26, 1 ], + "hull": 36, + "edges": [ 0, 2, 2, 4, 36, 38, 0, 70, 68, 70, 4, 6, 34, 36, 72, 34, 38, 40, 72, 40, 74, 56, 74, 18, 76, 48, 76, 26, 78, 64, 78, 10, 80, 60, 80, 14, 82, 78, 64, 66, 82, 66, 8, 10, 82, 8, 84, 52, 84, 22, 86, 44, 86, 30, 72, 88, 88, 86, 40, 42, 42, 44, 88, 42, 30, 32, 32, 34, 88, 32, 76, 90, 90, 86, 44, 46, 46, 48, 90, 46, 26, 28, 28, 30, 90, 28, 76, 92, 92, 84, 48, 50, 50, 52, 92, 50, 22, 24, 24, 26, 92, 24, 74, 94, 94, 84, 52, 54, 54, 56, 94, 54, 18, 20, 20, 22, 94, 20, 74, 96, 96, 80, 56, 58, 58, 60, 96, 58, 14, 16, 16, 18, 96, 16, 78, 98, 98, 80, 60, 62, 62, 64, 98, 62, 10, 12, 12, 14, 98, 12, 66, 68, 6, 8 ], + "width": 71, + "height": 229 + } + }, + "body": { + "body": { "name": "boy/body", "type": "linkedmesh", "skin": "full-skins/girl", "parent": "body", "width": 194, "height": 263 } + }, + "collar": { + "collar": { + "name": "boy/collar", + "type": "mesh", + "uvs": [ 0.01507, 0.35374, 0.04243, 0.85436, 0.34348, 0.9329, 0.60063, 1, 0.7225, 0.99194, 0.8843, 0.75701, 1, 0.58901, 0.9885, 0.2137, 0.98194, 0, 0.82711, 0.02581, 0.63208, 0.05832, 0.54167, 0.04849, 0.29801, 0.06176, 0, 0.07798, 0.31391, 0.36632, 0.55976, 0.34041, 0.66022, 0.3489, 0.84942, 0.31117 ], + "triangles": [ 0, 12, 14, 15, 12, 11, 15, 14, 12, 0, 13, 12, 17, 16, 10, 16, 15, 10, 15, 11, 10, 10, 9, 17, 17, 9, 7, 9, 8, 7, 16, 4, 3, 16, 5, 4, 15, 16, 3, 2, 15, 3, 1, 14, 2, 2, 14, 15, 1, 0, 14, 6, 5, 17, 17, 5, 16, 17, 7, 6 ], + "vertices": [ 2, 4, 130.93, 66.36, 0.35519, 5, 33.21, 62.82, 0.64481, 1, 4, 103.81, 63.13, 1, 1, 4, 96.28, 19.92, 1, 1, 4, 89.85, -16.98, 1, 1, 4, 88.98, -34.64, 1, 1, 4, 100.8, -59.06, 1, 1, 4, 109.25, -76.52, 1, 2, 4, 134.32, -75.26, 0.36282, 5, 35.01, -78.53, 0.63718, 1, 5, 49.23, -77.07, 1, 1, 5, 48.26, -54.59, 1, 1, 5, 47.04, -26.28, 1, 1, 5, 47.91, -13.18, 1, 1, 5, 47.97, 22.16, 1, 1, 5, 48.04, 65.38, 1, 2, 4, 128.8, 23.01, 0.34961, 5, 30.6, 19.59, 0.65039, 2, 4, 129.22, -12.66, 0.3068, 5, 30.61, -16, 0.6932, 2, 4, 128.25, -27.24, 0.31124, 5, 29.49, -30.54, 0.68876, 2, 4, 129.27, -54.92, 0.39025, 5, 30.2, -58.19, 0.60975 ], + "hull": 14, + "edges": [ 6, 8, 20, 22, 2, 4, 4, 6, 22, 24, 24, 26, 8, 10, 10, 12, 16, 18, 18, 20, 4, 28, 28, 24, 6, 30, 30, 22, 8, 32, 32, 20, 10, 34, 34, 18, 2, 0, 0, 26, 28, 0, 12, 14, 14, 16, 34, 14 ], + "width": 145, + "height": 58 + } + }, + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "sleeve-front": { + "sleeve-front": { + "name": "boy/arm-front", + "type": "mesh", + "uvs": [ 0, 0.9983, 1, 1, 1, 0.86682, 0.93575, 0.85962, 0.92543, 0.81301, 0.91517, 0.75475, 0.90967, 0.69766, 0.90374, 0.64195, 0.89852, 0.59071, 0.89321, 0.53993, 0.88593, 0.48173, 0.87995, 0.43392, 0.87387, 0.38539, 0.86778, 0.33662, 0.86019, 0.276, 0.85262, 0.21542, 0.84443, 0.15001, 0.83706, 0.09104, 0.82567, 0, 0.20656, 4.9E-4, 0.19476, 0.09288, 0.18669, 0.15618, 0.17892, 0.21703, 0.17122, 0.27738, 0.16365, 0.33672, 0.15684, 0.39004, 0.15032, 0.44113, 0.14396, 0.49098, 0.13775, 0.53965, 0.13226, 0.59099, 0.12603, 0.6493, 0.11997, 0.7051, 0.11515, 0.75592, 0.10543, 0.80835, 0.09698, 0.85907, 0.00989, 0.86774, 0.51288, 0.08992, 0.5068, 0.53843, 0.50952, 0.33772, 0.50435, 0.75817, 0.50554, 0.64894, 0.50328, 0.81283, 0.50817, 0.43751, 0.51115, 0.2178, 0.51199, 0.156, 0.51033, 0.27832, 0.50881, 0.38996, 0.50751, 0.48617, 0.50614, 0.59548, 0.5049, 0.70471, 0.50929, 0.85256 ], + "triangles": [ 0, 50, 1, 50, 0, 34, 0, 35, 34, 34, 33, 50, 50, 3, 1, 50, 4, 3, 3, 2, 1, 44, 36, 17, 44, 20, 36, 20, 19, 36, 36, 18, 17, 36, 19, 18, 33, 41, 50, 50, 41, 4, 4, 41, 5, 41, 39, 5, 33, 32, 41, 41, 32, 39, 39, 6, 5, 39, 49, 6, 32, 31, 39, 39, 31, 49, 31, 30, 49, 49, 7, 6, 49, 40, 7, 49, 30, 40, 30, 29, 40, 40, 8, 7, 40, 48, 8, 40, 29, 48, 48, 9, 8, 48, 37, 9, 29, 28, 48, 48, 28, 37, 9, 37, 10, 28, 27, 37, 37, 47, 10, 37, 27, 47, 27, 26, 47, 47, 11, 10, 47, 42, 11, 47, 26, 42, 26, 25, 42, 42, 12, 11, 42, 46, 12, 42, 25, 46, 25, 24, 46, 46, 13, 12, 46, 38, 13, 46, 24, 38, 38, 14, 13, 38, 45, 14, 24, 23, 38, 38, 23, 45, 45, 15, 14, 23, 22, 45, 45, 43, 15, 45, 22, 43, 43, 16, 15, 43, 44, 16, 22, 21, 43, 43, 21, 44, 21, 20, 44, 44, 17, 16 ], + "vertices": [ 1, 54, 30.3, -36.41, 1, 1, 54, 30.3, 34.59, 1, 1, 54, -0.09, 34.58, 1, 1, 54, -1.73, 30.02, 1, 3, 13, 65.08, 29.54, 0.00868, 12, 31.72, 29.7, 0.54327, 16, -1.8, 29.7, 0.44805, 3, 13, 51.72, 28.75, 0.09476, 12, 18.24, 28.84, 0.78295, 16, -14.97, 28.81, 0.12229, 4, 14, 72.39, 28.06, 1.0E-5, 13, 38.62, 28.29, 0.36416, 12, 5.03, 28.32, 0.62452, 16, -27.87, 28.25, 0.01131, 3, 14, 59.57, 27.66, 0.01697, 13, 25.84, 27.81, 0.71378, 12, -7.87, 27.77, 0.26925, 3, 14, 47.78, 27.3, 0.12736, 13, 14.09, 27.38, 0.81039, 12, -19.73, 27.28, 0.06225, 4, 15, 69.71, 26.86, 1.9E-4, 14, 36.09, 26.94, 0.41186, 13, 2.44, 26.95, 0.58392, 12, -31.48, 26.79, 0.00403, 3, 15, 56.29, 26.39, 0.03436, 14, 22.7, 26.43, 0.7688, 13, -10.92, 26.37, 0.19684, 3, 15, 45.26, 26, 0.17991, 14, 11.7, 26.02, 0.78189, 13, -21.89, 25.89, 0.03821, 4, 11, 66.92, 25.61, 4.0E-5, 15, 34.07, 25.6, 0.49682, 14, 0.53, 25.6, 0.5018, 13, -33.02, 25.41, 0.00134, 3, 11, 55.89, 25.21, 0.02124, 15, 22.83, 25.2, 0.80075, 14, -10.69, 25.18, 0.17801, 3, 11, 42.17, 24.71, 0.21905, 15, 8.85, 24.71, 0.76696, 14, -24.64, 24.66, 0.01399, 2, 11, 28.46, 24.21, 0.67585, 15, -5.12, 24.22, 0.32415, 2, 11, 13.66, 23.68, 0.96846, 15, -20.2, 23.68, 0.03154, 1, 8, 0.24, 23.24, 1, 1, 8, -20.51, 22.43, 1, 1, 8, -20.4, -21.52, 1, 1, 8, 0.66, -22.36, 1, 2, 11, 14.92, -23.03, 0.9591, 15, -18.93, -23.02, 0.0409, 2, 11, 28.69, -23.62, 0.67055, 15, -4.9, -23.62, 0.32945, 3, 11, 42.34, -24.21, 0.20785, 15, 9.01, -24.21, 0.77749, 14, -24.38, -24.26, 0.01467, 3, 11, 55.76, -24.78, 0.01896, 15, 22.69, -24.79, 0.80223, 14, -10.73, -24.81, 0.17882, 3, 15, 34.98, -25.31, 0.45683, 14, 1.54, -25.31, 0.5408, 13, -31.71, -25.5, 0.00238, 3, 15, 46.76, -25.81, 0.14032, 14, 13.3, -25.78, 0.80693, 13, -19.98, -25.9, 0.05275, 3, 15, 58.25, -26.3, 0.01945, 14, 24.77, -26.25, 0.7308, 13, -8.54, -26.3, 0.24975, 4, 15, 69.47, -26.77, 2.7E-4, 14, 35.97, -26.7, 0.41316, 13, 2.63, -26.69, 0.58179, 12, -31, -26.85, 0.00478, 3, 14, 47.78, -27.1, 0.12648, 13, 14.41, -27.02, 0.80795, 12, -19.11, -27.12, 0.06558, 3, 14, 61.2, -27.56, 0.01164, 13, 27.79, -27.4, 0.6672, 12, -5.6, -27.43, 0.32116, 3, 13, 40.6, -27.77, 0.30828, 12, 7.32, -27.73, 0.67545, 16, -25.51, -27.79, 0.01627, 3, 13, 52.26, -28.05, 0.08696, 12, 19.09, -27.95, 0.78468, 16, -14, -27.99, 0.12837, 3, 13, 64.29, -28.69, 0.00978, 12, 31.24, -28.52, 0.56264, 16, -2.14, -28.53, 0.42759, 1, 54, -1.86, -29.53, 1, 1, 54, 0.13, -35.71, 1, 1, 8, -0.01, 0.23, 1, 2, 14, 35.72, -0.5, 0.06656, 13, 2.22, -0.49, 0.93344, 1, 15, 23, -0.23, 1, 2, 13, 52.64, -0.42, 0, 12, 19.33, -0.32, 1, 1, 13, 27.58, -0.45, 1, 2, 12, 31.99, -0.27, 0.81958, 16, -1.47, -0.27, 0.18042, 2, 14, 12.49, -0.38, 1, 13, -20.94, -0.5, 0, 1, 11, 28.93, -0.03, 1, 1, 11, 14.95, 0.07, 1, 1, 15, 9.31, -0.13, 1, 2, 15, 35.04, -0.32, 0.18244, 14, 1.55, -0.32, 0.81756, 1, 14, 23.69, -0.44, 1, 1, 13, 15.31, -0.47, 1, 2, 13, 40.38, -0.44, 7.7E-4, 12, 6.95, -0.4, 0.99923, 1, 54, -3.3, -0.26, 1 ], + "hull": 36, + "edges": [ 0, 2, 2, 4, 36, 38, 0, 70, 68, 70, 4, 6, 34, 36, 72, 34, 38, 40, 72, 40, 74, 56, 74, 18, 76, 48, 76, 26, 78, 64, 78, 10, 80, 60, 80, 14, 82, 78, 64, 66, 82, 66, 8, 10, 82, 8, 84, 52, 84, 22, 86, 44, 86, 30, 72, 88, 88, 86, 40, 42, 42, 44, 88, 42, 30, 32, 32, 34, 88, 32, 76, 90, 90, 86, 44, 46, 46, 48, 90, 46, 26, 28, 28, 30, 90, 28, 76, 92, 92, 84, 48, 50, 50, 52, 92, 50, 22, 24, 24, 26, 92, 24, 74, 94, 94, 84, 52, 54, 54, 56, 94, 54, 18, 20, 20, 22, 94, 20, 74, 96, 96, 80, 56, 58, 58, 60, 96, 58, 14, 16, 16, 18, 96, 16, 78, 98, 98, 80, 60, 62, 62, 64, 98, 62, 10, 12, 12, 14, 98, 12, 66, 68, 6, 8 ], + "width": 71, + "height": 229 + } + }, + "zip-boy": { + "zip-boy": { "name": "boy/zip", "x": 14.35, "y": -0.15, "rotation": 82.23, "width": 27, "height": 46 } + } + } + }, + { + "name": "eyelids/girly", + "attachments": { + "eye-back-low-eyelid": { + "eye-back-low-eyelid": { + "name": "girl/eye-back-low-eyelid", + "type": "mesh", + "uvs": [ 0, 0.26476, 0.20331, 0.79621, 0.50495, 0.95421, 0.8401, 0.89676, 1, 0.33658, 0.88319, 0.07803, 0.75871, 0.25039, 0.5241, 0.35094, 0.31343, 0.19294, 0.09798, 0 ], + "triangles": [ 3, 2, 7, 2, 1, 7, 7, 6, 3, 3, 6, 4, 1, 8, 7, 1, 0, 8, 6, 5, 4, 0, 9, 8 ], + "vertices": [ 1, 42, -29.75, 1.38, 1, 2, 42, -23.04, -4.47, 0.63, 43, 23.4, -1.82, 0.37, 2, 42, -13.09, -6.21, 0.62, 43, 14.27, 2.5, 0.38, 2, 42, -2.03, -5.57, 0.76, 43, 3.44, 4.83, 0.24, 1, 42, 3.25, 0.59, 1, 1, 42, -0.61, 3.43, 1, 2, 42, -4.72, 1.54, 0.76, 43, 4.14, -2.74, 0.24, 2, 42, -12.46, 0.43, 0.62, 43, 11.9, -3.73, 0.38, 2, 42, -19.41, 2.17, 0.63, 43, 18.14, -7.25, 0.37, 1, 42, -26.52, 4.29, 1 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 33, + "height": 11 + } + }, + "eye-back-up-eyelid": { + "eye-back-up-eyelid": { + "name": "girl/eye-back-up-eyelid", + "type": "mesh", + "uvs": [ 0.07861, 0.9592, 0.24977, 0.54703, 0.44727, 0.42338, 0.58882, 0.40964, 0.77315, 0.59512, 1, 0.16921, 1, 0, 0.76657, 0.13486, 0.61844, 0, 0.40119, 0.01807, 0.18065, 0.25164, 0, 0.73938, 0, 0.95234 ], + "triangles": [ 1, 10, 2, 3, 2, 9, 2, 10, 9, 3, 9, 8, 3, 8, 7, 1, 0, 11, 0, 12, 11, 11, 10, 1, 3, 7, 4, 4, 7, 5, 7, 6, 5 ], + "vertices": [ 1, 40, -31.8, -11.42, 1, 2, 40, -23.59, -1.94, 0.51, 41, 22.75, 6.53, 0.49, 2, 40, -14.11, 0.91, 0.15, 41, 14.01, 1.88, 0.85, 1, 41, 7.41, 0.24, 1, 1, 40, 1.53, -3.04, 1, 1, 40, 12.42, 6.75, 1, 1, 40, 12.42, 10.64, 1, 1, 40, 1.22, 7.54, 1, 1, 41, 7.87, -9.28, 1, 2, 40, -16.32, 10.23, 0.15, 41, 18.01, -6.83, 0.85, 2, 40, -26.91, 4.86, 0.52, 41, 27.34, 0.52, 0.48, 1, 40, -35.58, -6.36, 1, 1, 40, -35.58, -11.26, 1 ], + "hull": 13, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24 ], + "width": 48, + "height": 23 + } + }, + "eye-back-up-eyelid-back": { + "eye-back-up-eyelid-back": { + "name": "girl/eye-back-up-eyelid-back", + "type": "mesh", + "uvs": [ 0.12627, 1, 0, 0.99472, 0, 0.60349, 0.16345, 0.30253, 0.44692, 0.06177, 0.74898, 0.00911, 1, 0.1972, 1, 0.52073, 0.72574, 0.37025, 0.49339, 0.42292, 0.25639, 0.68625 ], + "triangles": [ 0, 1, 2, 10, 0, 2, 10, 3, 9, 9, 4, 8, 8, 6, 7, 2, 3, 10, 3, 4, 9, 8, 5, 6, 8, 4, 5 ], + "vertices": [ 1, 40, -28.64, -7.74, 1, 1, 40, -32.94, -7.63, 1, 1, 39, -19.88, 27.79, 1, 1, 39, -14.32, 34.11, 1, 1, 39, -4.69, 39.17, 1, 1, 39, 5.58, 40.27, 1, 1, 39, 14.12, 36.32, 1, 1, 40, 1.06, 2.33, 1, 1, 41, 9.18, -3.76, 1, 2, 41, 16.71, -1.13, 0.92, 40, -16.16, 4.38, 0.08, 2, 41, 23.53, 5.88, 0.33, 40, -24.22, -1.15, 0.67 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 34, + "height": 21 + } + }, + "eye-back-white": { + "eye-back-white": { + "name": "girl/eye-white-back", + "type": "mesh", + "uvs": [ 0, 0.39191, 0.07911, 0.7283, 0.26952, 0.95255, 0.56931, 0.98823, 0.90962, 0.92197, 1, 0.50404, 0.94608, 0.17784, 0.76378, 0.00455, 0.50855, 0, 0.20875, 0.12178, 0.56121, 0.48365 ], + "triangles": [ 3, 2, 10, 4, 3, 10, 2, 1, 10, 4, 10, 5, 10, 8, 7, 9, 8, 10, 1, 0, 10, 10, 6, 5, 0, 9, 10, 10, 7, 6 ], + "vertices": [ 1, 40, -34.26, -6.05, 1, 1, 42, -30.63, 5.01, 1, 2, 42, -23.2, -1.94, 0.5, 43, 22.88, -4.3, 0.5, 2, 42, -11.51, -3.04, 0.61, 43, 11.91, -0.13, 0.39, 1, 42, 1.76, -0.99, 1, 2, 40, 4.74, -9.52, 0.54, 42, 5.29, 11.97, 0.46, 1, 40, 2.64, 0.59, 1, 2, 40, -4.47, 5.96, 0.35, 41, 5.55, -4.97, 0.65, 2, 40, -14.42, 6.1, 0.22, 41, 15.34, -3.16, 0.78, 2, 40, -26.12, 2.33, 0.49, 41, 26.07, 2.84, 0.51, 2, 40, -12.37, -8.89, 0.71, 43, 8.05, -15.29, 0.29 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 39, + "height": 31 + } + }, + "eye-front-low-eyelid": { + "eye-front-low-eyelid": { + "name": "girl/eye-front-low-eyelid", + "type": "mesh", + "uvs": [ 0.07038, 0, 0, 0.43773, 0.24154, 0.94046, 0.64093, 0.92609, 1, 0.39464, 1, 0.00682, 0.8516, 0, 0.61899, 0.36591, 0.30738, 0.39464 ], + "triangles": [ 8, 7, 3, 2, 8, 3, 2, 1, 8, 6, 5, 4, 7, 6, 4, 1, 0, 8, 3, 7, 4 ], + "vertices": [ 1, 36, -0.25, 5.3, 1, 1, 36, -2.79, 0.49, 1, 1, 37, 6.69, -3.95, 1, 2, 36, 20.29, -4.89, 0.61, 37, 20.82, -1.32, 0.39, 1, 36, 33.21, 0.96, 1, 1, 36, 33.21, 5.23, 1, 1, 36, 27.87, 5.3, 1, 2, 36, 19.5, 1.28, 0.61, 37, 18.99, 4.61, 0.39, 1, 37, 7.99, 2.37, 1 ], + "hull": 9, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 0, 16 ], + "width": 36, + "height": 11 + } + }, + "eye-front-up-eyelid": { + "eye-front-up-eyelid": { + "name": "girl/eye-front-up-eyelid", + "type": "mesh", + "uvs": [ 0.32251, 0.43387, 0.36464, 0.94737, 0.28564, 1, 0.16714, 0.73859, 0.15924, 0.42823, 0, 0.24201, 0, 0, 0.22771, 0.2138, 0.41731, 0, 0.66747, 0, 0.88604, 0.23637, 1, 0.54673, 1, 0.81194, 0.86497, 0.79501, 0.74121, 0.4903, 0.61217, 0.35487, 0.45417, 0.35487 ], + "triangles": [ 14, 15, 10, 2, 3, 1, 3, 0, 1, 13, 11, 12, 13, 14, 11, 3, 4, 0, 14, 10, 11, 0, 4, 7, 4, 5, 7, 5, 6, 7, 16, 0, 7, 7, 8, 16, 10, 15, 9, 9, 15, 8, 15, 16, 8 ], + "vertices": [ 2, 35, 6.87, 1.33, 0.47507, 34, 6.4, 2.84, 0.52493, 2, 35, 6.12, -13.25, 0.09298, 34, 8.93, -11.54, 0.90702, 1, 34, 4.19, -13.01, 1, 1, 34, -2.92, -5.69, 1, 2, 35, -2.64, 3.68, 0.0415, 34, -3.4, 3, 0.9585, 1, 34, -12.95, 8.21, 1, 1, 34, -12.95, 14.99, 1, 2, 35, 2.71, 8.61, 0.27883, 34, 0.71, 9, 0.72117, 1, 35, 15.14, 11.9, 1, 2, 35, 29.76, 8.54, 0.65, 34, 27.1, 14.99, 0.35, 2, 35, 41.06, -0.85, 0.28137, 34, 40.21, 8.37, 0.71863, 1, 34, 47.05, -0.32, 1, 1, 34, 47.05, -7.75, 1, 2, 35, 36.33, -15.81, 0.07124, 34, 38.95, -7.27, 0.92876, 2, 35, 31, -5.83, 0.45, 34, 31.52, 1.26, 0.55, 2, 35, 24.31, -0.4, 0.65, 34, 23.78, 5.05, 0.35, 2, 35, 15.07, 1.72, 0.76, 34, 14.3, 5.05, 0.24 ], + "hull": 17, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 0, 32 ], + "width": 60, + "height": 28 + } + }, + "eye-front-up-eyelid-back": { + "eye-front-up-eyelid-back": { + "name": "girl/eye-front-up-eyelid-back", + "type": "mesh", + "uvs": [ 0.05111, 0.59525, 0.31445, 0.34389, 0.48174, 0.29362, 0.69861, 0.43007, 0.81323, 0.65271, 0.90617, 1, 1, 1, 1, 0.74607, 0.93406, 0.48034, 0.78845, 0.18589, 0.62115, 0, 0.49104, 0, 0.26798, 0, 0, 0.28644, 0, 0.48752 ], + "triangles": [ 3, 2, 9, 2, 1, 12, 5, 7, 6, 5, 4, 7, 4, 8, 7, 4, 3, 8, 0, 14, 1, 14, 13, 1, 3, 9, 8, 10, 9, 2, 10, 2, 11, 1, 13, 12, 2, 12, 11 ], + "vertices": [ 1, 78, -25.28, -10.9, 1, 1, 35, 14.1, 7.02, 1, 1, 35, 22.66, 6.19, 1, 2, 78, 7.58, -7.27, 0.37, 35, 32.77, 0.79, 0.63, 2, 78, 13.43, -12.17, 0.71, 35, 37.37, -5.29, 0.29, 1, 78, 18.17, -19.81, 1, 1, 78, 22.96, -19.81, 1, 1, 78, 22.96, -14.22, 1, 1, 78, 19.59, -8.37, 1, 1, 78, 12.17, -1.9, 1, 1, 78, 3.63, 2.19, 1, 1, 78, -3, 2.19, 1, 1, 78, -14.38, 2.19, 1, 1, 78, -28.04, -4.11, 1, 1, 78, -28.04, -8.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 51, + "height": 22 + } + }, + "eye-front-white": { + "eye-front-white": { + "name": "girl/eye-white-front", + "type": "mesh", + "uvs": [ 0, 0.13677, 0.03631, 0.56139, 0.18641, 0.96133, 0.54191, 0.97121, 0.90531, 0.87739, 1, 0.54164, 1, 0.24046, 0.80425, 0.13009, 0.57351, 0, 0.25751, 0.00346, 0.47082, 0.52682 ], + "triangles": [ 3, 2, 10, 2, 1, 10, 4, 3, 10, 4, 10, 5, 7, 6, 5, 1, 0, 10, 10, 9, 8, 10, 8, 7, 10, 7, 5, 0, 9, 10 ], + "vertices": [ 1, 34, 3.55, 4.71, 1, 2, 34, 5, -8.88, 0.5, 36, -3.97, 10.98, 0.5, 2, 36, 2.03, -1.82, 0.36, 37, 2.31, -1.44, 0.64, 2, 36, 16.25, -2.14, 0.32, 37, 16.37, 0.69, 0.68, 1, 36, 30.79, 0.87, 1, 1, 36, 34.57, 11.61, 1, 1, 34, 43.55, 1.39, 1, 2, 35, 35.91, -3.2, 0.27, 34, 35.72, 4.92, 0.73, 2, 35, 27.85, 2.93, 0.54, 34, 26.49, 9.09, 0.46, 2, 35, 15.51, 5.65, 0.62, 34, 13.85, 8.98, 0.38, 2, 35, 20.07, -12.59, 0.81, 37, 11.13, 14.21, 0.19 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 16, 18, 0, 18, 12, 14, 14, 16 ], + "width": 40, + "height": 32 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "eyelids/semiclosed", + "attachments": { + "eye-back-low-eyelid": { + "eye-back-low-eyelid": { + "name": "boy/eye-back-low-eyelid", + "type": "mesh", + "uvs": [ 0, 0.4084, 0.23683, 0.78185, 0.55761, 1, 0.86883, 0.83931, 1, 0.43712, 0.93586, 0, 0.79222, 0.23603, 0.55283, 0.37967, 0.30864, 0.27912, 0.11713, 0, 0.02616, 0.10676 ], + "triangles": [ 10, 9, 8, 0, 10, 8, 6, 5, 4, 1, 0, 8, 1, 8, 7, 4, 7, 6, 3, 7, 4, 2, 1, 7, 3, 2, 7 ], + "vertices": [ 1, 42, -29.75, -0.2, 1, 1, 42, -21.94, -4.31, 1, 1, 42, -11.35, -6.71, 1, 1, 42, -1.08, -4.94, 1, 1, 42, 3.25, -0.52, 1, 1, 42, 1.13, 4.29, 1, 1, 42, -3.61, 1.69, 1, 1, 42, -11.51, 0.11, 1, 1, 42, -19.57, 1.22, 1, 1, 42, -25.89, 4.29, 1, 1, 42, -28.89, 3.12, 1 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 33, + "height": 11 + } + }, + "eye-back-up-eyelid": { + "eye-back-up-eyelid": { + "name": "boy/eye-back-up-eyelid", + "type": "mesh", + "uvs": [ 0, 1, 0, 0.49905, 0.19376, 0.24625, 0.47885, 0.02505, 0.78455, 0.00925, 1, 0.08826, 0.99407, 0.70446, 0.79485, 0.78345, 0.48229, 0.92565, 0.20407, 0.92565 ], + "triangles": [ 3, 7, 8, 3, 4, 7, 2, 8, 9, 0, 1, 9, 9, 1, 2, 7, 4, 6, 6, 4, 5, 8, 2, 3 ], + "vertices": [ 1, 40, -37.56, -7.74, 1, 1, 40, -37.56, -2.73, 1, 2, 40, -28.64, -0.2, 0.75, 41, 28.05, 5.81, 0.25, 2, 40, -15.53, 2.01, 0.47, 41, 15.62, 1.07, 0.53, 2, 40, -1.47, 2.17, 0.57, 41, 1.87, -1.84, 0.43, 2, 40, 8.44, 1.38, 0.57, 41, -8.01, -3.01, 0.43, 2, 40, 8.17, -4.78, 0.57, 41, -8.95, 3.09, 0.43, 2, 40, -0.99, -5.57, 0.57, 41, -0.12, 5.66, 0.43, 2, 40, -15.37, -6.99, 0.47, 41, 13.7, 9.87, 0.53, 2, 40, -28.17, -6.99, 0.75, 41, 26.25, 12.38, 0.25 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 16, 6, 18, 4 ], + "width": 46, + "height": 10 + } + }, + "eye-back-up-eyelid-back": { + "eye-back-up-eyelid-back": { + "name": "boy/eye-back-up-eyelid-back", + "type": "mesh", + "uvs": [ 0.01882, 1, 0.2683, 0.88243, 0.57182, 0.81923, 0.80051, 0.81133, 1, 0.79553, 0.99593, 0.50323, 0.72151, 0.03713, 0.44709, 0, 0.11861, 0.35313, 0, 0.82713 ], + "triangles": [ 8, 7, 2, 2, 7, 6, 5, 2, 6, 1, 9, 8, 0, 9, 1, 2, 1, 8, 3, 2, 5, 3, 5, 4 ], + "vertices": [ 1, 40, -33.54, -8.4, 1, 2, 40, -24.06, -6.05, 0.83, 41, 22.41, 10.65, 0.17, 2, 40, -12.53, -4.78, 0.65, 41, 11.35, 7.15, 0.35, 1, 40, -3.84, -4.62, 1, 1, 40, 3.74, -4.31, 1, 2, 40, 3.59, 1.54, 0.58, 39, 16.64, 28.74, 0.42, 1, 39, 6.22, 38.06, 1, 1, 39, -4.21, 38.8, 1, 1, 39, -16.69, 31.74, 1, 2, 40, -34.26, -4.94, 0.58, 39, -21.2, 22.26, 0.42 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 38, + "height": 20 + } + }, + "eye-back-white": { + "eye-back-white": { + "name": "boy/eye-white-back", + "type": "mesh", + "uvs": [ 0.0386, 0.1421, 0, 0.46469, 0.15608, 0.80702, 0.39916, 0.96502, 0.68275, 0.96502, 0.91773, 0.87285, 0.99065, 0.51077, 0.9866, 0, 0.69491, 0.06968, 0.43967, 0.08944, 0.23306, 0.1026, 0.53286, 0.5108 ], + "triangles": [ 5, 4, 11, 4, 3, 11, 3, 2, 11, 5, 11, 6, 11, 1, 10, 10, 9, 11, 11, 2, 1, 10, 1, 0, 11, 8, 6, 11, 9, 8, 8, 7, 6 ], + "vertices": [ 1, 40, -32.75, -4.31, 1, 1, 40, -34.26, -12.05, 1, 2, 40, -28.17, -20.27, 0.83, 43, 26.31, -8.53, 0.17, 2, 40, -18.69, -24.06, 0.73, 43, 18.18, -2.35, 0.27, 2, 40, -7.63, -24.06, 0.76, 43, 7.51, 0.59, 0.24, 1, 40, 1.53, -21.85, 1, 1, 40, 4.38, -13.16, 1, 1, 40, 4.22, -0.9, 1, 2, 40, -7.16, -2.57, 0.59, 41, 6.51, 3.92, 0.41, 2, 40, -17.11, -3.04, 0.53, 41, 16.18, 6.34, 0.47, 2, 40, -25.17, -3.36, 0.76, 41, 24.02, 8.23, 0.24, 1, 40, -13.48, -13.16, 1 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 39, + "height": 24 + } + }, + "eye-front-low-eyelid": { + "eye-front-low-eyelid": { + "name": "boy/eye-front-low-eyelid", + "type": "mesh", + "uvs": [ 0.00359, 0.67744, 0.23059, 1, 0.48195, 1, 0.80154, 0.72606, 1, 0.28852, 1, 0, 0.86259, 0, 0.72254, 0.19128, 0.47477, 0.42221, 0.27009, 0.43436, 0.069, 0.30067, 0, 0.42221 ], + "triangles": [ 1, 0, 9, 1, 9, 2, 2, 9, 8, 3, 2, 8, 8, 7, 3, 6, 5, 4, 7, 6, 4, 11, 10, 9, 0, 11, 9, 3, 7, 4 ], + "vertices": [ 1, 36, -3.95, -1.5, 1, 2, 36, 6.2, -5.54, 0.17, 37, 7.06, -4.39, 0.83, 2, 36, 17.26, -5.54, 0.56, 37, 17.95, -2.49, 0.44, 2, 36, 31.32, -1.98, 0.83, 37, 31.19, 3.44, 0.17, 1, 36, 40.05, 3.71, 1, 1, 36, 40.05, 7.46, 1, 1, 36, 34, 7.46, 1, 2, 36, 27.84, 4.97, 0.83, 37, 26.57, 9.69, 0.17, 2, 36, 16.94, 1.97, 0.56, 37, 16.35, 4.86, 0.44, 2, 36, 7.93, 1.81, 0.17, 37, 7.5, 3.15, 0.83, 1, 36, -0.91, 3.55, 1, 1, 36, -3.95, 1.97, 1 ], + "hull": 12, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 0, 22 ], + "width": 44, + "height": 13 + } + }, + "eye-front-up-eyelid": { + "eye-front-up-eyelid": { + "name": "boy/eye-front-up-eyelid", + "type": "mesh", + "uvs": [ 0.99382, 0.82748, 0.77725, 0.86546, 0.51988, 0.9106, 0.24969, 0.95799, 0.01014, 1, 0, 0.48275, 0.24339, 0.2556, 0.51727, 0, 0.77229, 0.0198, 1, 0.03748 ], + "triangles": [ 1, 2, 8, 4, 5, 3, 1, 8, 0, 0, 8, 9, 8, 2, 7, 7, 2, 6, 2, 3, 6, 3, 5, 6 ], + "vertices": [ 1, 34, 54.61, -3.86, 1, 2, 35, 39.18, -13.38, 0.22, 34, 41.18, -4.27, 0.78, 2, 35, 23.51, -10.3, 0.48, 34, 25.22, -4.77, 0.52, 2, 35, 7.07, -7.05, 0.94, 34, 8.47, -5.29, 0.06, 1, 34, -6.38, -5.75, 1, 1, 34, -7.01, -0.06, 1, 2, 35, 8.42, 0.56, 0.94, 34, 8.08, 2.43, 0.06, 2, 35, 25.6, -0.5, 0.48, 34, 25.06, 5.25, 0.52, 2, 35, 40.96, -4.25, 0.22, 34, 40.87, 5.03, 0.78, 1, 34, 54.99, 4.83, 1 ], + "hull": 10, + "edges": [ 8, 10, 0, 18, 10, 12, 12, 14, 4, 6, 6, 8, 6, 12, 4, 14, 0, 2, 2, 4, 14, 16, 16, 18 ], + "width": 62, + "height": 11 + } + }, + "eye-front-up-eyelid-back": { + "eye-front-up-eyelid-back": { + "name": "boy/eye-front-up-eyelid-back", + "type": "mesh", + "uvs": [ 0, 0.93436, 0.15772, 0.9219, 0.48014, 0.89643, 0.78654, 0.87222, 1, 0.85536, 1, 0.58325, 0.60474, 0, 0.45276, 0.00159, 0.23101, 0.00391, 0, 0.63591 ], + "triangles": [ 7, 2, 1, 3, 6, 5, 1, 9, 8, 4, 3, 5, 0, 9, 1, 2, 6, 3, 2, 7, 6, 1, 8, 7 ], + "vertices": [ 1, 34, 0.25, -2.59, 1, 2, 34, 8.45, -2.37, 0.1, 35, 7.71, -4.2, 0.9, 2, 34, 25.22, -1.91, 0.56, 35, 24.15, -7.51, 0.44, 2, 34, 41.15, -1.47, 0.85, 35, 39.77, -10.65, 0.15, 1, 34, 52.25, -1.17, 1, 1, 34, 52.25, 3.73, 1, 1, 32, 8.58, 40.07, 1, 1, 32, 0.67, 40.04, 1, 1, 32, -10.86, 40, 1, 1, 34, 0.25, 2.78, 1 ], + "hull": 10, + "edges": [ 8, 10, 16, 18, 0, 18, 0, 2, 2, 4, 4, 6, 6, 8, 12, 14, 14, 16, 14, 4, 2, 16, 6, 12, 10, 12 ], + "width": 52, + "height": 18 + } + }, + "eye-front-white": { + "eye-front-white": { + "name": "boy/eye-white-front", + "type": "mesh", + "uvs": [ 0.1783, 0.99386, 0.01136, 0.67178, 0.02924, 0.05194, 0.26177, 0.07624, 0.50324, 0.03978, 0.75962, 0.02763, 1, 0, 0.99215, 0.38009, 0.9057, 0.73863, 0.71192, 0.86624, 0.50622, 0.93309, 0.32438, 0.96348, 0.47343, 0.50162 ], + "triangles": [ 12, 5, 7, 4, 5, 12, 1, 3, 12, 1, 2, 3, 12, 3, 4, 7, 5, 6, 9, 12, 7, 0, 1, 11, 8, 9, 7, 10, 11, 12, 10, 12, 9, 11, 1, 12 ], + "vertices": [ 2, 37, 0.02, -3.61, 0.1401, 36, -0.6, -3.56, 0.8599, 2, 36, -9.45, 4.82, 0.34964, 34, -0.47, -15.04, 0.65036, 1, 34, 0.48, 1.08, 1, 2, 35, 12.58, -2.43, 0.42, 34, 12.8, 0.44, 0.58, 2, 35, 25.26, -4.37, 0.39, 34, 25.6, 1.39, 0.61, 2, 35, 38.58, -7.11, 0.19, 34, 39.19, 1.71, 0.81, 1, 34, 51.93, 2.43, 1, 2, 36, 42.54, 12.4, 0.14016, 34, 51.51, -7.46, 0.85984, 1, 36, 37.95, 3.08, 1, 2, 37, 27.31, 4.53, 0.42667, 36, 27.68, -0.24, 0.57333, 2, 37, 16.87, 0.94, 0.84, 36, 16.78, -1.98, 0.16, 1, 37, 7.51, -1.5, 1, 2, 37, 13.23, 11.69, 0.52, 34, 24.02, -10.62, 0.48 ], + "hull": 12, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 0, 22 ], + "width": 53, + "height": 26 + } + }, + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "eyes/eyes-blue", + "attachments": { + "eye-back-iris": { + "eye-back-iris": { "name": "girl/eye-iris-back", "x": 0.85, "y": -0.75, "width": 33, "height": 34 } + }, + "eye-back-pupil": { + "eye-back-pupil": { + "name": "girl/eye-back-pupil", + "x": 0.43, + "y": -0.67, + "scaleX": 1.2, + "scaleY": 1.2062, + "width": 15, + "height": 17 + } + }, + "eye-front-iris": { + "eye-front-iris": { "name": "girl/eye-iris-front", "x": 0.22, "y": -0.71, "width": 36, "height": 35 } + }, + "eye-front-pupil": { + "eye-front-pupil": { + "name": "girl/eye-front-pupil", + "x": -0.04, + "y": -0.47, + "scaleX": 1.2, + "scaleY": 1.2, + "width": 17, + "height": 17 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "eyes/green", + "attachments": { + "eye-back-iris": { + "eye-back-iris": { "name": "boy/eye-iris-back", "x": 0.85, "y": -0.75, "width": 33, "height": 34 } + }, + "eye-back-pupil": { + "eye-back-pupil": { "name": "boy/eye-back-pupil", "x": 0.43, "y": -0.67, "width": 15, "height": 17 } + }, + "eye-front-iris": { + "eye-front-iris": { "name": "boy/eye-iris-front", "x": 0.22, "y": -0.71, "width": 36, "height": 35 } + }, + "eye-front-pupil": { + "eye-front-pupil": { "name": "boy/eye-front-pupil", "x": -0.04, "y": -0.47, "width": 17, "height": 17 } + }, + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "eyes/violet", + "attachments": { + "eye-back-iris": { + "eye-back-iris": { "name": "girl/eye-iris-back", "path": "girl-blue-cape/eye-iris-back", "x": 0.85, "y": -0.75, "width": 33, "height": 34 } + }, + "eye-back-pupil": { + "eye-back-pupil": { + "name": "girl/eye-back-pupil", + "path": "girl-blue-cape/eye-back-pupil", + "x": 0.43, + "y": -0.67, + "scaleX": 1.2, + "scaleY": 1.2062, + "width": 15, + "height": 17 + } + }, + "eye-front-iris": { + "eye-front-iris": { "name": "girl/eye-iris-front", "path": "girl-blue-cape/eye-iris-front", "x": 0.22, "y": -0.71, "width": 36, "height": 35 } + }, + "eye-front-pupil": { + "eye-front-pupil": { + "name": "girl/eye-front-pupil", + "path": "girl-blue-cape/eye-front-pupil", + "x": -0.04, + "y": -0.47, + "scaleX": 1.2, + "scaleY": 1.2, + "width": 17, + "height": 17 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-blue-cape/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "eyes/yellow", + "attachments": { + "eye-back-iris": { + "eye-back-iris": { "name": "girl/eye-iris-back", "path": "girl-spring-dress/eye-iris-back", "x": 0.85, "y": -0.75, "width": 33, "height": 34 } + }, + "eye-back-pupil": { + "eye-back-pupil": { + "name": "girl/eye-back-pupil", + "path": "girl-spring-dress/eye-back-pupil", + "x": 0.43, + "y": -0.67, + "scaleX": 1.2, + "scaleY": 1.2062, + "width": 15, + "height": 17 + } + }, + "eye-front-iris": { + "eye-front-iris": { "name": "girl/eye-iris-front", "path": "girl-spring-dress/eye-iris-front", "x": 0.22, "y": -0.71, "width": 36, "height": 35 } + }, + "eye-front-pupil": { + "eye-front-pupil": { + "name": "girl/eye-front-pupil", + "path": "girl-spring-dress/eye-front-pupil", + "x": -0.04, + "y": -0.47, + "scaleX": 1.2, + "scaleY": 1.2, + "width": 17, + "height": 17 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-spring-dress/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "full-skins/boy", + "bones": [ "hat-base", "backpack-control", "pompom-control", "hat-control", "zip-boy", "backpack", "hat" ], + "transform": [ "hat-control" ], + "attachments": { + "arm-back": { + "arm-back": { + "name": "boy/arm-front", + "type": "mesh", + "uvs": [ 0, 0.9983, 1, 1, 1, 0.86682, 0.93575, 0.85962, 0.92543, 0.81301, 0.91517, 0.75475, 0.90967, 0.69766, 0.90374, 0.64195, 0.89852, 0.59071, 0.89321, 0.53993, 0.88593, 0.48173, 0.87995, 0.43392, 0.87387, 0.38539, 0.86778, 0.33662, 0.86019, 0.276, 0.85262, 0.21542, 0.84443, 0.15001, 0.83706, 0.09104, 0.82567, 0, 0.20656, 4.9E-4, 0.19476, 0.09288, 0.18669, 0.15618, 0.17892, 0.21703, 0.17122, 0.27738, 0.16365, 0.33672, 0.15684, 0.39004, 0.15032, 0.44113, 0.14396, 0.49098, 0.13775, 0.53965, 0.13226, 0.59099, 0.12603, 0.6493, 0.11997, 0.7051, 0.11515, 0.75592, 0.10543, 0.80835, 0.09698, 0.85907, 0.00989, 0.86774, 0.51288, 0.08992, 0.5068, 0.53843, 0.50952, 0.33772, 0.50435, 0.75817, 0.50554, 0.64894, 0.50328, 0.81283, 0.50817, 0.43751, 0.51115, 0.2178, 0.51199, 0.156, 0.51033, 0.27832, 0.50881, 0.38996, 0.50751, 0.48617, 0.50614, 0.59548, 0.5049, 0.70471, 0.50929, 0.85256 ], + "triangles": [ 34, 33, 50, 50, 4, 3, 0, 50, 1, 50, 0, 34, 0, 35, 34, 50, 3, 1, 3, 2, 1, 20, 19, 36, 36, 18, 17, 36, 19, 18, 44, 36, 17, 44, 20, 36, 46, 38, 13, 46, 24, 38, 38, 14, 13, 38, 45, 14, 24, 23, 38, 38, 23, 45, 45, 15, 14, 23, 22, 45, 37, 47, 10, 37, 27, 47, 27, 26, 47, 47, 11, 10, 47, 42, 11, 47, 26, 42, 26, 25, 42, 42, 12, 11, 42, 46, 12, 42, 25, 46, 25, 24, 46, 46, 13, 12, 49, 40, 7, 49, 30, 40, 30, 29, 40, 40, 8, 7, 40, 48, 8, 40, 29, 48, 48, 9, 8, 48, 37, 9, 29, 28, 48, 48, 28, 37, 9, 37, 10, 28, 27, 37, 33, 41, 50, 50, 41, 4, 4, 41, 5, 41, 39, 5, 33, 32, 41, 41, 32, 39, 39, 6, 5, 39, 49, 6, 32, 31, 39, 39, 31, 49, 31, 30, 49, 49, 7, 6, 45, 43, 15, 45, 22, 43, 43, 16, 15, 43, 44, 16, 22, 21, 43, 43, 21, 44, 21, 20, 44, 44, 17, 16 ], + "vertices": [ 1, 83, 30.3, -36.41, 1, 1, 83, 30.3, 34.59, 1, 1, 83, -0.09, 34.58, 1, 1, 83, -1.73, 30.02, 1, 3, 89, -1.79, 29.7, 0.51485, 88, 31.72, 29.7, 0.47152, 87, 64.98, 29.54, 0.01363, 3, 89, -14.92, 28.81, 0.16761, 88, 18.24, 28.84, 0.7202, 87, 51.66, 28.75, 0.11219, 3, 89, -27.79, 28.25, 0.02494, 88, 5.03, 28.32, 0.58139, 87, 38.61, 28.29, 0.39367, 4, 89, -40.37, 27.67, 3.1E-4, 88, -7.89, 27.77, 0.24325, 87, 25.85, 27.81, 0.73664, 86, 59.61, 27.66, 0.0198, 3, 88, -19.79, 27.28, 0.05132, 87, 14.09, 27.38, 0.81519, 86, 47.8, 27.3, 0.1335, 4, 88, -31.58, 26.79, 0.00265, 87, 2.43, 26.95, 0.57933, 86, 36.09, 26.94, 0.41791, 85, 69.67, 26.87, 1.1E-4, 3, 87, -10.9, 26.37, 0.1986, 86, 22.7, 26.43, 0.77283, 85, 56.26, 26.39, 0.02857, 3, 87, -21.85, 25.89, 0.03954, 86, 11.7, 26.02, 0.79423, 85, 45.25, 26, 0.16624, 4, 84, 66.95, 25.61, 2.5E-4, 87, -32.97, 25.41, 0.0015, 86, 0.53, 25.6, 0.51564, 85, 34.07, 25.6, 0.48261, 3, 84, 55.91, 25.21, 0.02493, 86, -10.7, 25.18, 0.18302, 85, 22.83, 25.2, 0.79205, 3, 84, 42.17, 24.71, 0.22892, 86, -24.67, 24.66, 0.01383, 85, 8.85, 24.71, 0.75725, 2, 84, 28.46, 24.21, 0.68211, 85, -5.12, 24.22, 0.31789, 2, 84, 13.66, 23.68, 0.96794, 85, -20.18, 23.68, 0.03206, 1, 79, 23.52, -0.26, 1, 1, 79, 22.72, 20.49, 1, 1, 79, -21.24, 20.38, 1, 1, 79, -22.08, -0.68, 1, 2, 84, 14.92, -23.03, 0.96207, 85, -18.91, -23.02, 0.03793, 2, 84, 28.69, -23.62, 0.67642, 85, -4.9, -23.62, 0.32358, 3, 84, 42.34, -24.21, 0.2106, 86, -24.41, -24.26, 0.01717, 85, 9.01, -24.21, 0.77223, 3, 84, 55.78, -24.78, 0.0197, 86, -10.74, -24.81, 0.18482, 85, 22.69, -24.79, 0.79548, 3, 87, -31.67, -25.49, 0.00253, 86, 1.54, -25.31, 0.54183, 85, 34.98, -25.31, 0.45564, 3, 87, -19.96, -25.9, 0.05261, 86, 13.3, -25.78, 0.80433, 85, 46.75, -25.81, 0.14306, 3, 87, -8.53, -26.3, 0.24883, 86, 24.77, -26.25, 0.73011, 85, 58.23, -26.3, 0.02106, 4, 88, -31.1, -26.85, 0.00529, 87, 2.63, -26.69, 0.57957, 86, 35.97, -26.7, 0.41477, 85, 69.44, -26.77, 3.7E-4, 3, 88, -19.17, -27.12, 0.06823, 87, 14.41, -27.02, 0.80427, 86, 47.8, -27.1, 0.1275, 4, 89, -38.03, -27.52, 0, 88, -5.62, -27.43, 0.32888, 87, 27.8, -27.4, 0.65921, 86, 61.24, -27.56, 0.01191, 3, 89, -25.42, -27.79, 0.02186, 88, 7.33, -27.73, 0.68409, 87, 40.58, -27.77, 0.29405, 3, 89, -13.96, -27.99, 0.14597, 88, 19.09, -27.95, 0.77839, 87, 52.2, -28.05, 0.07563, 3, 89, -2.13, -28.53, 0.457, 88, 31.23, -28.52, 0.53645, 87, 64.19, -28.69, 0.00655, 1, 83, -1.86, -29.53, 1, 1, 83, 0.13, -35.71, 1, 1, 79, 0.51, 0, 1, 2, 87, 2.22, -0.49, 0.93037, 86, 35.72, -0.5, 0.06963, 2, 86, -10.48, -0.25, 2.1E-4, 85, 23, -0.23, 0.99979, 1, 88, 19.33, -0.32, 1, 1, 87, 27.58, -0.45, 1, 2, 89, -1.47, -0.27, 0.18486, 88, 31.98, -0.27, 0.81514, 2, 86, 12.49, -0.38, 0.99961, 85, 45.99, -0.4, 3.9E-4, 2, 84, 28.93, -0.03, 0.99759, 85, -4.64, -0.03, 0.00241, 1, 84, 14.95, 0.07, 1, 2, 84, 42.63, -0.13, 2.9E-4, 85, 9.31, -0.13, 0.99971, 2, 86, 1.55, -0.32, 0.82986, 85, 35.04, -0.32, 0.17014, 1, 86, 23.69, -0.43, 1, 1, 87, 15.31, -0.47, 1, 1, 88, 6.95, -0.4, 1, 1, 83, -3.3, -0.26, 1 ], + "hull": 36, + "edges": [ 0, 2, 2, 4, 36, 38, 0, 70, 68, 70, 4, 6, 34, 36, 72, 34, 38, 40, 72, 40, 74, 56, 74, 18, 76, 48, 76, 26, 78, 64, 78, 10, 80, 60, 80, 14, 82, 78, 64, 66, 82, 66, 8, 10, 82, 8, 84, 52, 84, 22, 86, 44, 86, 30, 72, 88, 88, 86, 40, 42, 42, 44, 88, 42, 30, 32, 32, 34, 88, 32, 76, 90, 90, 86, 44, 46, 46, 48, 90, 46, 26, 28, 28, 30, 90, 28, 76, 92, 92, 84, 48, 50, 50, 52, 92, 50, 22, 24, 24, 26, 92, 24, 74, 94, 94, 84, 52, 54, 54, 56, 94, 54, 18, 20, 20, 22, 94, 20, 74, 96, 96, 80, 56, 58, 58, 60, 96, 58, 14, 16, 16, 18, 96, 16, 78, 98, 98, 80, 60, 62, 62, 64, 98, 62, 10, 12, 12, 14, 98, 12, 66, 68, 6, 8 ], + "width": 71, + "height": 229 + } + }, + "backpack": { + "backpack": { + "name": "boy/backpack", + "type": "mesh", + "uvs": [ 0.56777, 0.99667, 1, 0.92022, 0.98943, 0.32667, 0.91222, 0.0979, 0.87918, 0, 0.78253, 0, 0.24991, 0.03363, 0.11246, 0.09517, 0.03085, 0.20163, 0.02226, 0.32638, 0.04803, 0.66073, 0, 0.74057, 0, 0.8803, 0.09742, 0.96347, 0.18118, 0.96513, 0.33582, 1, 0.54199, 0.39791, 0.50334, 0.16504, 0.57206, 0.93685, 0.13608, 0.44449, 0.52372, 0.28781, 0.0781, 0.37629, 0.11031, 0.6391, 0.39913, 0.04858, 0.7798, 0.01708 ], + "triangles": [ 24, 23, 5, 5, 23, 6, 17, 23, 24, 17, 24, 3, 17, 8, 7, 6, 17, 7, 17, 6, 23, 20, 17, 3, 20, 9, 8, 20, 8, 17, 21, 9, 20, 16, 20, 2, 19, 21, 20, 16, 19, 20, 18, 16, 1, 22, 19, 16, 18, 22, 16, 18, 14, 22, 18, 15, 14, 0, 18, 1, 0, 15, 18, 24, 5, 4, 24, 4, 3, 20, 3, 2, 22, 21, 19, 10, 9, 21, 10, 21, 22, 22, 12, 11, 16, 2, 1, 10, 22, 11, 22, 14, 12, 14, 13, 12 ], + "vertices": [ 2, 56, 176.31, 109.14, 0.42, 55, 230.15, -10.16, 0.58, 1, 56, 161.95, 213.46, 1, 2, 56, -19.06, 228.58, 0.82644, 55, 34.78, 109.29, 0.17356, 2, 56, -90.51, 217.16, 0.76, 55, -36.67, 97.87, 0.24, 2, 56, -121.08, 212.27, 0.80924, 55, -67.25, 92.98, 0.19076, 2, 56, -123.31, 189.48, 0.76, 55, -69.47, 70.19, 0.24, 2, 56, -125.31, 62.84, 0.27, 55, -71.47, -56.45, 0.73, 2, 56, -109.72, 28.59, 0.6115, 55, -55.89, -90.7, 0.3885, 2, 56, -79.18, 6.18, 0.7, 55, -25.34, -113.11, 0.3, 2, 56, -41.38, 0.45, 0.69983, 55, 12.45, -118.84, 0.30017, 2, 56, 61.04, -3.39, 0.7, 55, 114.87, -122.68, 0.3, 2, 56, 84.25, -17.09, 0.7, 55, 138.09, -136.38, 0.3, 2, 56, 126.81, -21.24, 0.7, 55, 180.64, -140.53, 0.3, 2, 56, 154.38, -0.73, 0.7, 55, 208.21, -120.02, 0.3, 2, 56, 156.81, 18.98, 0.7, 55, 210.64, -100.31, 0.3, 2, 56, 170.98, 54.42, 0.63, 55, 224.82, -64.87, 0.37, 1, 55, 46.19, 1.64, 1, 1, 55, -25.63, -0.57, 1, 1, 55, 211.91, -7.36, 1, 2, 56, -2.79, 23.8, 0.64851, 55, 51.04, -95.49, 0.35149, 1, 55, 12.23, 0.59, 1, 2, 56, -24.9, 12.14, 0.7, 55, 28.94, -107.15, 0.3, 2, 56, 55.9, 11.94, 0.7, 55, 109.74, -107.35, 0.3, 1, 55, -63.49, -21.7, 1, 2, 56, -118.16, 188.33, 0.7, 55, -64.33, 69.03, 0.3 ], + "hull": 16, + "edges": [ 0, 2, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30, 34, 6, 4, 6, 32, 4, 2, 4, 36, 28, 36, 2, 38, 32, 16, 34, 32, 40, 40, 34, 18, 40, 42, 44, 46, 48, 6, 8 ], + "width": 237, + "height": 306 + } + }, + "backpack-pocket": { + "backpack-pocket": { + "name": "boy/backpack-pocket", + "type": "mesh", + "uvs": [ 0.86114, 0.35068, 1, 0.88458, 0.68875, 1, 0.18636, 1, 0, 0.70482, 0.0163, 0.4457, 0.09191, 0.41902, 0, 0.17629, 0.14203, 0, 0.57054, 0, 0.74293, 0.14141, 0.55084, 0.66994, 0.52128, 0.39897, 0.41292, 0.24068, 0.4549, 0.43438 ], + "triangles": [ 3, 11, 2, 2, 11, 1, 3, 4, 11, 14, 4, 5, 4, 14, 11, 11, 0, 1, 11, 14, 0, 5, 6, 14, 14, 12, 0, 14, 6, 12, 6, 13, 12, 6, 7, 13, 12, 10, 0, 12, 13, 10, 7, 8, 13, 13, 9, 10, 13, 8, 9 ], + "vertices": [ 2, 55, 125.55, -28.25, 0.86973, 56, 71.72, 91.05, 0.13027, 2, 55, 191.82, -25.36, 0.79774, 56, 137.99, 93.94, 0.20226, 2, 55, 203.92, -47.5, 0.88, 56, 150.09, 71.8, 0.12, 2, 55, 200.66, -81, 0.65, 56, 146.83, 38.3, 0.35, 2, 55, 163.31, -89.9, 0.65, 56, 109.48, 29.4, 0.35, 2, 55, 131.7, -85.72, 0.65, 56, 77.87, 33.58, 0.35, 2, 55, 128.92, -80.36, 0.65, 56, 75.09, 38.94, 0.35, 2, 55, 98.61, -83.6, 0.69, 56, 44.78, 35.7, 0.31, 2, 55, 77.95, -72.02, 0.65, 56, 24.12, 47.28, 0.35, 2, 55, 80.74, -43.45, 0.81, 56, 26.91, 75.85, 0.19, 2, 55, 99.17, -33.64, 0.83791, 56, 45.34, 85.66, 0.16209, 2, 55, 162.62, -52.75, 0.88, 56, 108.79, 66.55, 0.12, 2, 55, 129.26, -51.49, 0.83, 56, 75.43, 67.81, 0.17, 2, 55, 109.18, -56.83, 0.83, 56, 55.35, 62.47, 0.17, 2, 55, 133.16, -56.34, 0.88, 56, 79.33, 62.96, 0.12 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20, 24, 12, 28, 10, 28, 0 ], + "width": 67, + "height": 123 + } + }, + "backpack-strap-back": { + "backpack-strap-back": { + "name": "boy/backpack-strap-front", + "type": "mesh", + "uvs": [ 0.15746, 0.22195, 0.30944, 0.21252, 0.41799, 0.2408, 0.49615, 0.30303, 0.52654, 0.38223, 0.47878, 0.49349, 0.31812, 0.63303, 0, 0.81218, 0, 1, 0.16615, 1, 0.74365, 0.70846, 0.91733, 0.54818, 1, 0.40675, 1, 0.25401, 0.86523, 0.12201, 0.61338, 0.02395, 0.32246, 0, 0.05759, 0.02018, 0.04457, 0.17292 ], + "triangles": [ 2, 1, 16, 15, 2, 16, 9, 8, 7, 16, 1, 0, 0, 18, 17, 16, 0, 17, 6, 9, 7, 10, 9, 6, 10, 6, 5, 10, 5, 11, 11, 4, 12, 5, 4, 11, 4, 3, 13, 3, 15, 14, 3, 14, 13, 4, 13, 12, 3, 2, 15 ], + "vertices": [ 2, 55, 44.79, 75.8, 0.174, 56, -9.04, 195.1, 0.826, 2, 55, 49.06, 136.63, 0.56071, 56, -4.77, 255.93, 0.43929, 3, 55, 57.59, 153.08, 0.2997, 79, -3.48, -14.15, 0.5103, 56, 3.76, 272.38, 0.19, 1, 79, 4.79, -23.1, 1, 1, 79, 7.1, -36.96, 1, 2, 55, 100.34, 155.9, 0.19, 79, 3.47, -56.43, 0.81, 3, 55, 128.1, 112.78, 0.27, 79, -36.75, -88.24, 0.46366, 56, 74.27, 232.08, 0.26634, 2, 55, 144.33, 78.25, 0.1, 56, 90.51, 197.55, 0.9, 2, 55, 177.04, 75.06, 0.1, 56, 123.22, 194.36, 0.9, 2, 55, 178.27, 87.63, 0.1, 56, 124.44, 206.93, 0.9, 3, 55, 151.86, 136.31, 0.27, 79, -11.02, -109.61, 0.48185, 56, 98.04, 255.61, 0.24815, 2, 55, 113.1, 188.14, 0.15, 79, 36.8, -66, 0.85, 2, 55, 89.07, 196.79, 0.04, 79, 43.08, -41.25, 0.96, 1, 79, 43.08, -14.52, 1, 2, 79, 32.84, 8.58, 0.87, 56, -15.34, 310.73, 0.13, 3, 55, 18.46, 162.82, 0.5, 79, 2.42, 25.74, 0.00271, 56, -35.37, 282.12, 0.49729, 2, 55, 7.35, 92.05, 0.174, 56, -46.48, 211.35, 0.826, 2, 55, 8.91, 71.67, 0.174, 56, -44.92, 190.97, 0.826, 2, 55, 35.42, 68.1, 0.174, 56, -18.41, 187.39, 0.826 ], + "hull": 19, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 0, 36, 6, 26, 10, 22 ], + "width": 76, + "height": 175 + } + }, + "backpack-strap-front": { + "backpack-strap-front": { + "name": "boy/backpack-strap-front", + "type": "mesh", + "uvs": [ 0.15746, 0.22195, 0.30944, 0.21252, 0.41799, 0.2408, 0.49615, 0.30303, 0.52654, 0.38223, 0.47878, 0.49349, 0.31812, 0.63303, 0, 0.81218, 0, 1, 0.16615, 1, 0.74365, 0.70846, 0.91733, 0.54818, 1, 0.40675, 1, 0.25401, 0.86523, 0.12201, 0.61338, 0.02395, 0.32246, 0, 0.05759, 0.02018, 0.04457, 0.17292 ], + "triangles": [ 10, 6, 5, 10, 5, 11, 5, 4, 11, 11, 4, 12, 4, 13, 12, 4, 3, 13, 3, 14, 13, 3, 15, 14, 3, 2, 15, 15, 2, 16, 10, 9, 6, 9, 8, 7, 16, 1, 0, 0, 18, 17, 16, 0, 17, 6, 9, 7, 2, 1, 16 ], + "vertices": [ 1, 55, 36.1, 23.68, 1, 2, 55, 35.58, 35.33, 0.91, 7, -7.77, -3.67, 0.09, 2, 55, 41.31, 43.06, 0.37, 7, 0.48, -8.62, 0.63, 1, 7, 6.42, -19.51, 1, 2, 55, 66.74, 48.87, 0.04, 7, 8.73, -33.37, 0.96, 2, 55, 85.77, 43.37, 0.19, 7, 5.1, -52.84, 0.81, 2, 55, 108.89, 28.85, 0.48, 7, -7.11, -77.26, 0.52, 1, 55, 137.75, 1.75, 1, 1, 55, 170.46, -1.44, 1, 1, 55, 171.69, 11.13, 1, 2, 55, 125.16, 59.76, 0.42, 7, 25.23, -90.46, 0.58, 2, 55, 98.53, 75.62, 0.15, 7, 38.43, -62.41, 0.85, 2, 55, 74.5, 84.27, 0.04, 7, 44.71, -37.66, 0.96, 1, 7, 44.71, -10.93, 1, 1, 7, 34.47, 12.17, 1, 2, 55, 4.98, 61.52, 0.09, 7, 15.33, 29.33, 0.91, 2, 55, -1.34, 39.92, 0.96, 7, -6.78, 33.52, 0.04, 1, 55, 0.22, 19.55, 1, 1, 55, 26.73, 15.97, 1 ], + "hull": 19, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 0, 36, 6, 26, 10, 22 ], + "width": 76, + "height": 175 + } + }, + "backpack-up": { + "backpack-up": { + "name": "boy/backpack-up", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 56, -112.01, 144.15, 0.96, 55, -137.28, 27.99, 0.04, 2, 56, -103.52, 189.83, 0.81, 55, -128.79, 73.67, 0.19, 2, 56, -49.76, 82.9, 0.17, 55, -75.03, -33.27, 0.83, 2, 56, -74.02, 32.48, 0.58, 55, -99.3, -83.68, 0.42 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 42, + "height": 139 + } + }, + "base-head": { + "base-head": { "x": 74.74, "y": -10.09, "rotation": -87.57, "width": 189, "height": 145 } + }, + "body": { + "body": { "name": "boy/body", "type": "linkedmesh", "skin": "full-skins/girl", "parent": "body", "width": 194, "height": 263 } + }, + "boot-ribbon-back": { + "boot-ribbon-back": { + "name": "boy/boot-ribbon-front", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 95, 28.05, 31.91, 0.76, 103, 36.32, 40.94, 0.24, 2, 95, 28.6, 14.92, 0.76, 103, 19.33, 41.13, 0.24, 2, 95, 6.7, 14.22, 0.76, 103, 19.57, 62.88, 0.24, 2, 95, 6.15, 31.21, 0.76, 103, 36.57, 62.69, 0.24 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 17, + "height": 22 + } + }, + "boot-ribbon-front": { + "boot-ribbon-front": { + "name": "boy/boot-ribbon-front", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 102, 37.35, 36.26, 0.24, 27, 30.73, 31.09, 0.76, 2, 102, 20.65, 39.43, 0.24, 27, 29.77, 14.12, 0.76, 2, 102, 24.74, 60.87, 0.24, 27, 7.8, 15.36, 0.76, 2, 102, 41.44, 57.7, 0.24, 27, 8.76, 32.34, 0.76 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 17, + "height": 22 + } + }, + "collar": { + "collar": { + "name": "boy/collar", + "type": "mesh", + "uvs": [ 0.01507, 0.35374, 0.04243, 0.85436, 0.34348, 0.9329, 0.60063, 1, 0.7225, 0.99194, 0.8843, 0.75701, 1, 0.58901, 0.9885, 0.2137, 0.98194, 0, 0.82711, 0.02581, 0.63208, 0.05832, 0.54167, 0.04849, 0.29801, 0.06176, 0, 0.07798, 0.31391, 0.36632, 0.55976, 0.34041, 0.66022, 0.3489, 0.84942, 0.31117 ], + "triangles": [ 0, 12, 14, 15, 12, 11, 15, 14, 12, 0, 13, 12, 17, 16, 10, 16, 15, 10, 15, 11, 10, 10, 9, 17, 17, 9, 7, 9, 8, 7, 16, 4, 3, 16, 5, 4, 15, 16, 3, 2, 15, 3, 1, 14, 2, 2, 14, 15, 1, 0, 14, 6, 5, 17, 17, 5, 16, 17, 7, 6 ], + "vertices": [ 2, 4, 130.93, 66.36, 0.35519, 5, 33.21, 62.82, 0.64481, 1, 4, 103.81, 63.13, 1, 1, 4, 96.28, 19.92, 1, 1, 4, 89.85, -16.98, 1, 1, 4, 88.98, -34.64, 1, 1, 4, 100.8, -59.06, 1, 1, 4, 109.25, -76.52, 1, 2, 4, 134.32, -75.26, 0.36282, 5, 35.01, -78.53, 0.63718, 1, 5, 49.23, -77.07, 1, 1, 5, 48.26, -54.59, 1, 1, 5, 47.04, -26.28, 1, 1, 5, 47.91, -13.18, 1, 1, 5, 47.97, 22.16, 1, 1, 5, 48.04, 65.38, 1, 2, 4, 128.8, 23.01, 0.34961, 5, 30.6, 19.59, 0.65039, 2, 4, 129.22, -12.66, 0.3068, 5, 30.61, -16, 0.6932, 2, 4, 128.25, -27.24, 0.31124, 5, 29.49, -30.54, 0.68876, 2, 4, 129.27, -54.92, 0.39025, 5, 30.2, -58.19, 0.60975 ], + "hull": 14, + "edges": [ 6, 8, 20, 22, 2, 4, 4, 6, 22, 24, 24, 26, 8, 10, 10, 12, 16, 18, 18, 20, 4, 28, 28, 24, 6, 30, 30, 22, 8, 32, 32, 20, 10, 34, 34, 18, 2, 0, 0, 26, 28, 0, 12, 14, 14, 16, 34, 14 ], + "width": 145, + "height": 58 + } + }, + "ear": { + "ear": { + "name": "boy/ear", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 5, 74.1, 67.48, 0.22, 6, 33.88, 66.64, 0.78, 2, 5, 76.86, 105.37, 0.22, 6, 31.74, 104.6, 0.78, 2, 5, 121.73, 102.1, 0.22, 6, 76.69, 107.13, 0.78, 2, 5, 118.97, 64.2, 0.22, 6, 78.83, 69.17, 0.78 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 38, + "height": 45 + } + }, + "eye-back-eyebrow": { + "eye-back-eyebrow": { "name": "boy/eyebrow-back", "x": 13.08, "y": -0.6, "rotation": -177.9, "width": 40, "height": 22 } + }, + "eye-back-iris": { + "eye-back-iris": { "name": "boy/eye-iris-back", "x": 0.85, "y": -0.75, "width": 33, "height": 34 } + }, + "eye-back-low-eyelid": { + "eye-back-low-eyelid": { + "name": "boy/eye-back-low-eyelid", + "type": "mesh", + "uvs": [ 0, 0.4084, 0.23683, 0.78185, 0.55761, 1, 0.86883, 0.83931, 1, 0.43712, 0.93586, 0, 0.79222, 0.23603, 0.55283, 0.37967, 0.30864, 0.27912, 0.11713, 0, 0.02616, 0.10676 ], + "triangles": [ 10, 9, 8, 0, 10, 8, 6, 5, 4, 1, 0, 8, 1, 8, 7, 4, 7, 6, 3, 7, 4, 2, 1, 7, 3, 2, 7 ], + "vertices": [ 1, 42, -29.75, -0.2, 1, 1, 42, -21.94, -4.31, 1, 1, 42, -11.35, -6.71, 1, 1, 42, -1.08, -4.94, 1, 1, 42, 3.25, -0.52, 1, 1, 42, 1.13, 4.29, 1, 1, 42, -3.61, 1.69, 1, 1, 42, -11.51, 0.11, 1, 1, 42, -19.57, 1.22, 1, 1, 42, -25.89, 4.29, 1, 1, 42, -28.89, 3.12, 1 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 33, + "height": 11 + } + }, + "eye-back-pupil": { + "eye-back-pupil": { "name": "boy/eye-back-pupil", "x": 0.43, "y": -0.67, "width": 15, "height": 17 } + }, + "eye-back-up-eyelid": { + "eye-back-up-eyelid": { + "name": "boy/eye-back-up-eyelid", + "type": "mesh", + "uvs": [ 0, 1, 0, 0.49905, 0.19376, 0.24625, 0.47885, 0.02505, 0.78455, 0.00925, 1, 0.08826, 0.99407, 0.70446, 0.79485, 0.78345, 0.48229, 0.92565, 0.20407, 0.92565 ], + "triangles": [ 3, 7, 8, 3, 4, 7, 2, 8, 9, 0, 1, 9, 9, 1, 2, 7, 4, 6, 6, 4, 5, 8, 2, 3 ], + "vertices": [ 1, 40, -37.56, -7.74, 1, 1, 40, -37.56, -2.73, 1, 2, 40, -28.64, -0.2, 0.75, 41, 28.05, 5.81, 0.25, 2, 40, -15.53, 2.01, 0.47, 41, 15.62, 1.07, 0.53, 2, 40, -1.47, 2.17, 0.57, 41, 1.87, -1.84, 0.43, 2, 40, 8.44, 1.38, 0.57, 41, -8.01, -3.01, 0.43, 2, 40, 8.17, -4.78, 0.57, 41, -8.95, 3.09, 0.43, 2, 40, -0.99, -5.57, 0.57, 41, -0.12, 5.66, 0.43, 2, 40, -15.37, -6.99, 0.47, 41, 13.7, 9.87, 0.53, 2, 40, -28.17, -6.99, 0.75, 41, 26.25, 12.38, 0.25 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 16, 6, 18, 4 ], + "width": 46, + "height": 10 + } + }, + "eye-back-up-eyelid-back": { + "eye-back-up-eyelid-back": { + "name": "boy/eye-back-up-eyelid-back", + "type": "mesh", + "uvs": [ 0.01882, 1, 0.2683, 0.88243, 0.57182, 0.81923, 0.80051, 0.81133, 1, 0.79553, 0.99593, 0.50323, 0.72151, 0.03713, 0.44709, 0, 0.11861, 0.35313, 0, 0.82713 ], + "triangles": [ 8, 7, 2, 2, 7, 6, 5, 2, 6, 1, 9, 8, 0, 9, 1, 2, 1, 8, 3, 2, 5, 3, 5, 4 ], + "vertices": [ 1, 40, -33.54, -8.4, 1, 2, 40, -24.06, -6.05, 0.83, 41, 22.41, 10.65, 0.17, 2, 40, -12.53, -4.78, 0.65, 41, 11.35, 7.15, 0.35, 1, 40, -3.84, -4.62, 1, 1, 40, 3.74, -4.31, 1, 2, 40, 3.59, 1.54, 0.58, 39, 16.64, 28.74, 0.42, 1, 39, 6.22, 38.06, 1, 1, 39, -4.21, 38.8, 1, 1, 39, -16.69, 31.74, 1, 2, 40, -34.26, -4.94, 0.58, 39, -21.2, 22.26, 0.42 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 38, + "height": 20 + } + }, + "eye-back-white": { + "eye-back-white": { + "name": "boy/eye-white-back", + "type": "mesh", + "uvs": [ 0.0386, 0.1421, 0, 0.46469, 0.15608, 0.80702, 0.39916, 0.96502, 0.68275, 0.96502, 0.91773, 0.87285, 0.99065, 0.51077, 0.9866, 0, 0.69491, 0.06968, 0.43967, 0.08944, 0.23306, 0.1026, 0.53286, 0.5108 ], + "triangles": [ 5, 4, 11, 4, 3, 11, 3, 2, 11, 5, 11, 6, 11, 1, 10, 10, 9, 11, 11, 2, 1, 10, 1, 0, 11, 8, 6, 11, 9, 8, 8, 7, 6 ], + "vertices": [ 1, 40, -32.75, -4.31, 1, 1, 40, -34.26, -12.05, 1, 2, 40, -28.17, -20.27, 0.83, 43, 26.31, -8.53, 0.17, 2, 40, -18.69, -24.06, 0.73, 43, 18.18, -2.35, 0.27, 2, 40, -7.63, -24.06, 0.76, 43, 7.51, 0.59, 0.24, 1, 40, 1.53, -21.85, 1, 1, 40, 4.38, -13.16, 1, 1, 40, 4.22, -0.9, 1, 2, 40, -7.16, -2.57, 0.59, 41, 6.51, 3.92, 0.41, 2, 40, -17.11, -3.04, 0.53, 41, 16.18, 6.34, 0.47, 2, 40, -25.17, -3.36, 0.76, 41, 24.02, 8.23, 0.24, 1, 40, -13.48, -13.16, 1 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 39, + "height": 24 + } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { "name": "boy/eyebrow-front", "x": 21.26, "y": 0.14, "rotation": -3.58, "width": 49, "height": 22 } + }, + "eye-front-iris": { + "eye-front-iris": { "name": "boy/eye-iris-front", "x": 0.22, "y": -0.71, "width": 36, "height": 35 } + }, + "eye-front-low-eyelid": { + "eye-front-low-eyelid": { + "name": "boy/eye-front-low-eyelid", + "type": "mesh", + "uvs": [ 0.00359, 0.67744, 0.23059, 1, 0.48195, 1, 0.80154, 0.72606, 1, 0.28852, 1, 0, 0.86259, 0, 0.72254, 0.19128, 0.47477, 0.42221, 0.27009, 0.43436, 0.069, 0.30067, 0, 0.42221 ], + "triangles": [ 1, 0, 9, 1, 9, 2, 2, 9, 8, 3, 2, 8, 8, 7, 3, 6, 5, 4, 7, 6, 4, 11, 10, 9, 0, 11, 9, 3, 7, 4 ], + "vertices": [ 1, 36, -3.95, -1.5, 1, 2, 36, 6.2, -5.54, 0.17, 37, 7.06, -4.39, 0.83, 2, 36, 17.26, -5.54, 0.56, 37, 17.95, -2.49, 0.44, 2, 36, 31.32, -1.98, 0.83, 37, 31.19, 3.44, 0.17, 1, 36, 40.05, 3.71, 1, 1, 36, 40.05, 7.46, 1, 1, 36, 34, 7.46, 1, 2, 36, 27.84, 4.97, 0.83, 37, 26.57, 9.69, 0.17, 2, 36, 16.94, 1.97, 0.56, 37, 16.35, 4.86, 0.44, 2, 36, 7.93, 1.81, 0.17, 37, 7.5, 3.15, 0.83, 1, 36, -0.91, 3.55, 1, 1, 36, -3.95, 1.97, 1 ], + "hull": 12, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 0, 22 ], + "width": 44, + "height": 13 + } + }, + "eye-front-pupil": { + "eye-front-pupil": { "name": "boy/eye-front-pupil", "x": -0.04, "y": -0.47, "width": 17, "height": 17 } + }, + "eye-front-up-eyelid": { + "eye-front-up-eyelid": { + "name": "boy/eye-front-up-eyelid", + "type": "mesh", + "uvs": [ 0.99382, 0.82748, 0.77725, 0.86546, 0.51988, 0.9106, 0.24969, 0.95799, 0.01014, 1, 0, 0.48275, 0.24339, 0.2556, 0.51727, 0, 0.77229, 0.0198, 1, 0.03748 ], + "triangles": [ 1, 2, 8, 4, 5, 3, 1, 8, 0, 0, 8, 9, 8, 2, 7, 7, 2, 6, 2, 3, 6, 3, 5, 6 ], + "vertices": [ 1, 34, 54.61, -3.86, 1, 2, 35, 39.18, -13.38, 0.22, 34, 41.18, -4.27, 0.78, 2, 35, 23.51, -10.3, 0.48, 34, 25.22, -4.77, 0.52, 2, 35, 7.07, -7.05, 0.94, 34, 8.47, -5.29, 0.06, 1, 34, -6.38, -5.75, 1, 1, 34, -7.01, -0.06, 1, 2, 35, 8.42, 0.56, 0.94, 34, 8.08, 2.43, 0.06, 2, 35, 25.6, -0.5, 0.48, 34, 25.06, 5.25, 0.52, 2, 35, 40.96, -4.25, 0.22, 34, 40.87, 5.03, 0.78, 1, 34, 54.99, 4.83, 1 ], + "hull": 10, + "edges": [ 8, 10, 0, 18, 10, 12, 12, 14, 4, 6, 6, 8, 6, 12, 4, 14, 0, 2, 2, 4, 14, 16, 16, 18 ], + "width": 62, + "height": 11 + } + }, + "eye-front-up-eyelid-back": { + "eye-front-up-eyelid-back": { + "name": "boy/eye-front-up-eyelid-back", + "type": "mesh", + "uvs": [ 0, 0.93436, 0.15772, 0.9219, 0.48014, 0.89643, 0.78654, 0.87222, 1, 0.85536, 1, 0.58325, 0.60474, 0, 0.45276, 0.00159, 0.23101, 0.00391, 0, 0.63591 ], + "triangles": [ 7, 2, 1, 3, 6, 5, 1, 9, 8, 4, 3, 5, 0, 9, 1, 2, 6, 3, 2, 7, 6, 1, 8, 7 ], + "vertices": [ 1, 34, 0.25, -2.59, 1, 2, 34, 8.45, -2.37, 0.1, 35, 7.71, -4.2, 0.9, 2, 34, 25.22, -1.91, 0.56, 35, 24.15, -7.51, 0.44, 2, 34, 41.15, -1.47, 0.85, 35, 39.77, -10.65, 0.15, 1, 34, 52.25, -1.17, 1, 1, 34, 52.25, 3.73, 1, 1, 32, 8.58, 40.07, 1, 1, 32, 0.67, 40.04, 1, 1, 32, -10.86, 40, 1, 1, 34, 0.25, 2.78, 1 ], + "hull": 10, + "edges": [ 8, 10, 16, 18, 0, 18, 0, 2, 2, 4, 4, 6, 6, 8, 12, 14, 14, 16, 14, 4, 2, 16, 6, 12, 10, 12 ], + "width": 52, + "height": 18 + } + }, + "eye-front-white": { + "eye-front-white": { + "name": "boy/eye-white-front", + "type": "mesh", + "uvs": [ 0.1783, 0.99386, 0.01136, 0.67178, 0.02924, 0.05194, 0.26177, 0.07624, 0.50324, 0.03978, 0.75962, 0.02763, 1, 0, 0.99215, 0.38009, 0.9057, 0.73863, 0.71192, 0.86624, 0.50622, 0.93309, 0.32438, 0.96348, 0.47343, 0.50162 ], + "triangles": [ 12, 5, 7, 4, 5, 12, 1, 3, 12, 1, 2, 3, 12, 3, 4, 7, 5, 6, 9, 12, 7, 0, 1, 11, 8, 9, 7, 10, 11, 12, 10, 12, 9, 11, 1, 12 ], + "vertices": [ 2, 37, 0.02, -3.61, 0.1401, 36, -0.6, -3.56, 0.8599, 2, 36, -9.45, 4.82, 0.34964, 34, -0.47, -15.04, 0.65036, 1, 34, 0.48, 1.08, 1, 2, 35, 12.58, -2.43, 0.42, 34, 12.8, 0.44, 0.58, 2, 35, 25.26, -4.37, 0.39, 34, 25.6, 1.39, 0.61, 2, 35, 38.58, -7.11, 0.19, 34, 39.19, 1.71, 0.81, 1, 34, 51.93, 2.43, 1, 2, 36, 42.54, 12.4, 0.14016, 34, 51.51, -7.46, 0.85984, 1, 36, 37.95, 3.08, 1, 2, 37, 27.31, 4.53, 0.42667, 36, 27.68, -0.24, 0.57333, 2, 37, 16.87, 0.94, 0.84, 36, 16.78, -1.98, 0.16, 1, 37, 7.51, -1.5, 1, 2, 37, 13.23, 11.69, 0.52, 34, 24.02, -10.62, 0.48 ], + "hull": 12, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 0, 22 ], + "width": 53, + "height": 26 + } + }, + "hair-back": { + "hair-back": { + "name": "boy/hair-back", + "type": "mesh", + "uvs": [ 0.72377, 0.13142, 0.82972, 0.05228, 0.85484, 0.14394, 0.9241, 0.10728, 0.99848, 0.11545, 0.99884, 0.27436, 0.99943, 0.531, 1, 0.78235, 0.83167, 0.64513, 0.71204, 1, 0, 1, 0, 0, 0.59007, 0, 0.71673, 0.30031, 0.80118, 0.34254, 0.91866, 0.31098, 0.91187, 0.51672 ], + "triangles": [ 0, 1, 2, 13, 12, 0, 13, 0, 2, 5, 15, 2, 3, 5, 2, 5, 3, 4, 14, 13, 2, 15, 14, 2, 16, 14, 15, 15, 5, 6, 16, 15, 6, 8, 14, 16, 8, 16, 6, 7, 8, 6, 13, 10, 11, 13, 11, 12, 8, 9, 10, 13, 8, 10, 8, 13, 14 ], + "vertices": [ 2, 6, 156.98, -52.6, 0.91, 30, 105.42, 83.77, 0.09, 3, 6, 170.88, -77.77, 0.586, 30, 131.16, 96.59, 0.23935, 49, 58.44, 47.85, 0.17464, 3, 6, 156.31, -84.5, 0.61272, 30, 137.27, 81.74, 0.25026, 49, 69.48, 36.2, 0.13702, 3, 6, 162.95, -101.07, 0.57311, 30, 154.1, 87.68, 0.23409, 49, 83.04, 47.8, 0.1928, 3, 6, 162.4, -119.18, 0.5041, 30, 172.17, 86.36, 0.2059, 49, 100.38, 53.08, 0.29, 3, 6, 136.68, -120.36, 0.5041, 30, 172.26, 60.62, 0.2059, 49, 109.74, 29.09, 0.29, 3, 6, 95.15, -122.26, 0.5041, 30, 172.4, 19.04, 0.2059, 49, 124.85, -9.64, 0.29, 3, 6, 54.47, -124.13, 0.5041, 30, 172.54, -21.68, 0.2059, 49, 139.65, -47.58, 0.29, 2, 6, 74.95, -82.32, 0.91, 30, 131.64, 0.55, 0.09, 2, 6, 16.28, -55.71, 0.91, 30, 102.57, -56.94, 0.09, 2, 6, 8.94, 117.16, 0.91, 30, -70.46, -56.94, 0.09, 2, 6, 170.8, 124.02, 0.91, 30, -70.46, 105.06, 0.09, 2, 6, 176.88, -19.23, 0.91, 30, 72.93, 105.06, 0.09, 2, 6, 129.57, -52.05, 0.91, 30, 103.71, 56.41, 0.09, 2, 6, 123.61, -72.84, 0.71, 30, 124.23, 49.57, 0.29, 3, 6, 129.93, -101.15, 0.58764, 30, 152.78, 54.68, 0.24002, 49, 93.7, 16.54, 0.17234, 3, 6, 96.56, -100.91, 0.61135, 30, 151.13, 21.35, 0.24971, 49, 104.17, -15.15, 0.13894 ], + "hull": 13, + "edges": [ 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24, 0, 2, 8, 10, 30, 10, 10, 12, 12, 14, 32, 12, 8, 6, 6, 4, 4, 2 ], + "width": 243, + "height": 162 + } + }, + "hair-bangs": { + "hair-bangs": { + "name": "boy/hair-bangs", + "type": "mesh", + "uvs": [ 0.21816, 0.2794, 0.12151, 0.44214, 0.03901, 0.65009, 0, 0.84447, 0, 1, 0.11916, 0.99365, 0.21344, 0.83543, 0.29594, 0.65009, 0.36194, 0.39242, 0.4303, 0.5416, 0.53166, 0.65913, 0.67308, 0.74954, 0.7603, 0.61393, 0.69901, 0.51447, 0.81923, 0.55516, 0.93473, 0.51447, 1, 0.41954, 1, 0.27036, 0.9253, 0.16187, 0.8098, 0.06694, 0.68016, 0.00817, 0.38787, 0.00365, 0.57307, 0.38232 ], + "triangles": [ 4, 3, 5, 5, 3, 6, 3, 2, 6, 6, 2, 7, 11, 10, 12, 10, 13, 12, 10, 9, 13, 2, 1, 7, 7, 1, 8, 14, 13, 15, 9, 22, 13, 9, 8, 22, 15, 13, 16, 16, 13, 17, 1, 0, 8, 18, 17, 13, 13, 22, 18, 22, 8, 21, 8, 0, 21, 22, 19, 18, 22, 20, 19, 22, 21, 20 ], + "vertices": [ 3, 6, 125.65, 24.16, 0.819, 29, -61.51, 56.32, 0.09, 48, 23.45, -7.43, 0.091, 3, 6, 113.21, 37.17, 0.64201, 29, -75.04, 44.44, 0.09, 48, 40.92, -11.79, 0.26799, 3, 6, 97.55, 48.07, 0.54508, 29, -86.59, 29.26, 0.06169, 48, 59.97, -12.64, 0.39323, 3, 6, 83.15, 52.92, 0.4171, 29, -92.05, 15.07, 0.07361, 48, 74.75, -9.05, 0.5093, 3, 6, 71.8, 52.44, 0.37688, 29, -92.05, 3.72, 0.06651, 48, 84.08, -2.59, 0.55661, 3, 6, 72.97, 35.8, 0.39111, 29, -75.37, 4.18, 0.06902, 48, 74.2, 10.86, 0.53987, 3, 6, 85.07, 23.1, 0.53235, 29, -62.17, 15.73, 0.09394, 48, 57.19, 15.14, 0.37371, 3, 6, 99.08, 12.13, 0.64178, 29, -50.62, 29.26, 0.12, 48, 39.49, 16.93, 0.23822, 2, 6, 118.26, 3.7, 0.86, 29, -41.38, 48.07, 0.14, 3, 6, 107.79, -6.33, 0.89872, 29, -31.81, 37.18, 0.05965, 49, 10.97, -34.81, 0.04163, 3, 6, 99.82, -20.87, 0.76196, 29, -17.62, 28.6, 0.10658, 49, 27.3, -37.7, 0.13146, 3, 6, 94.06, -40.93, 0.59399, 29, 2.18, 22, 0.10482, 49, 48.15, -36.72, 0.30119, 3, 6, 104.47, -52.71, 0.60482, 29, 14.39, 31.9, 0.10673, 49, 55.97, -23.09, 0.28845, 3, 6, 111.36, -43.83, 0.69544, 29, 5.81, 39.16, 0.08561, 49, 45.35, -19.41, 0.21895, 3, 6, 109.11, -60.77, 0.59573, 29, 22.64, 36.19, 0.09904, 49, 62.12, -16.12, 0.30524, 3, 6, 112.76, -76.8, 0.52077, 29, 38.81, 39.16, 0.0919, 49, 76.14, -7.52, 0.38732, 3, 6, 120.07, -85.63, 0.5084, 29, 47.95, 46.09, 0.08972, 49, 82.16, 2.24, 0.40188, 3, 6, 130.95, -85.17, 0.57569, 29, 47.95, 56.98, 0.08663, 49, 78.24, 12.4, 0.33769, 3, 6, 138.42, -74.39, 0.71063, 29, 37.49, 64.9, 0.04692, 49, 65.63, 16.02, 0.24246, 2, 6, 144.66, -57.94, 0.86805, 49, 48.05, 16.66, 0.13195, 2, 6, 148.18, -39.62, 0.96256, 49, 29.57, 14.12, 0.03744, 2, 6, 146.77, 1.27, 0.86, 29, -37.75, 76.45, 0.14, 3, 6, 120.25, -25.8, 0.89676, 29, -11.82, 48.81, 0.02582, 49, 25.43, -16.76, 0.07742 ], + "hull": 22, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 42 ], + "width": 140, + "height": 73 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "boy/hair-bangs", + "type": "mesh", + "uvs": [ 0.21816, 0.2794, 0.12151, 0.44214, 0.03901, 0.65009, 0, 0.84447, 0, 1, 0.11916, 0.99365, 0.21344, 0.83543, 0.29594, 0.65009, 0.36194, 0.39242, 0.4303, 0.5416, 0.53166, 0.65913, 0.67308, 0.74954, 0.7603, 0.61393, 0.69901, 0.51447, 0.81923, 0.55516, 0.93473, 0.51447, 1, 0.41954, 1, 0.27036, 0.9253, 0.16187, 0.8098, 0.06694, 0.68016, 0.00817, 0.38787, 0.00365, 0.57307, 0.38232 ], + "triangles": [ 4, 3, 5, 5, 3, 6, 3, 2, 6, 6, 2, 7, 11, 10, 12, 10, 13, 12, 10, 9, 13, 2, 1, 7, 7, 1, 8, 14, 13, 15, 9, 22, 13, 9, 8, 22, 15, 13, 16, 16, 13, 17, 1, 0, 8, 18, 17, 13, 13, 22, 18, 22, 8, 21, 8, 0, 21, 22, 19, 18, 22, 20, 19, 22, 21, 20 ], + "vertices": [ 3, 6, 125.65, 24.16, 0.819, 29, -61.51, 56.32, 0.09, 48, 23.45, -7.43, 0.091, 3, 6, 113.21, 37.17, 0.64201, 29, -75.04, 44.44, 0.09, 48, 40.92, -11.79, 0.26799, 3, 6, 97.55, 48.07, 0.54508, 29, -86.59, 29.26, 0.06169, 48, 59.97, -12.64, 0.39323, 3, 6, 83.15, 52.92, 0.4171, 29, -92.05, 15.07, 0.07361, 48, 74.75, -9.05, 0.5093, 3, 6, 71.8, 52.44, 0.37688, 29, -92.05, 3.72, 0.06651, 48, 84.08, -2.59, 0.55661, 3, 6, 72.97, 35.8, 0.39111, 29, -75.37, 4.18, 0.06902, 48, 74.2, 10.86, 0.53987, 3, 6, 85.07, 23.1, 0.53235, 29, -62.17, 15.73, 0.09394, 48, 57.19, 15.14, 0.37371, 3, 6, 99.08, 12.13, 0.64178, 29, -50.62, 29.26, 0.12, 48, 39.49, 16.93, 0.23822, 2, 6, 118.26, 3.7, 0.86, 29, -41.38, 48.07, 0.14, 3, 6, 107.79, -6.33, 0.89872, 29, -31.81, 37.18, 0.05965, 49, 10.97, -34.81, 0.04163, 3, 6, 99.82, -20.87, 0.76196, 29, -17.62, 28.6, 0.10658, 49, 27.3, -37.7, 0.13146, 3, 6, 94.06, -40.93, 0.59399, 29, 2.18, 22, 0.10482, 49, 48.15, -36.72, 0.30119, 3, 6, 104.47, -52.71, 0.60482, 29, 14.39, 31.9, 0.10673, 49, 55.97, -23.09, 0.28845, 3, 6, 111.36, -43.83, 0.69544, 29, 5.81, 39.16, 0.08561, 49, 45.35, -19.41, 0.21895, 3, 6, 109.11, -60.77, 0.59573, 29, 22.64, 36.19, 0.09904, 49, 62.12, -16.12, 0.30524, 3, 6, 112.76, -76.8, 0.52077, 29, 38.81, 39.16, 0.0919, 49, 76.14, -7.52, 0.38732, 3, 6, 120.07, -85.63, 0.5084, 29, 47.95, 46.09, 0.08972, 49, 82.16, 2.24, 0.40188, 3, 6, 130.95, -85.17, 0.57569, 29, 47.95, 56.98, 0.08663, 49, 78.24, 12.4, 0.33769, 3, 6, 138.42, -74.39, 0.71063, 29, 37.49, 64.9, 0.04692, 49, 65.63, 16.02, 0.24246, 2, 6, 144.66, -57.94, 0.86805, 49, 48.05, 16.66, 0.13195, 2, 6, 148.18, -39.62, 0.96256, 49, 29.57, 14.12, 0.03744, 2, 6, 146.77, 1.27, 0.86, 29, -37.75, 76.45, 0.14, 3, 6, 120.25, -25.8, 0.89676, 29, -11.82, 48.81, 0.02582, 49, 25.43, -16.76, 0.07742 ], + "hull": 22, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 42 ], + "width": 140, + "height": 73 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch", + "type": "mesh", + "color": "ff4b45ff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "boy/hair-side", + "type": "mesh", + "uvs": [ 0.76395, 0.00237, 0.91575, 0.43213, 1, 0.68539, 0.95348, 0.8591, 0.91575, 1, 0.36135, 1, 0.33144, 0.88524, 0.29536, 0.74678, 0, 0.73911, 0, 0.49737, 0.59236, 0, 0.42735, 0.46668 ], + "triangles": [ 6, 7, 3, 4, 5, 6, 3, 4, 6, 11, 9, 10, 7, 8, 9, 1, 11, 10, 1, 10, 0, 11, 7, 9, 2, 7, 11, 2, 11, 1, 3, 7, 2 ], + "vertices": [ 1, 6, 119.95, 47.18, 1, 2, 6, 83.34, 38.03, 0.86, 29, -77.16, 14.64, 0.14, 3, 6, 61.76, 32.9, 0.61654, 46, 39.22, 17.05, 0.21346, 29, -72.95, -7.14, 0.17, 3, 6, 46.73, 34.59, 0.41184, 46, 53.6, 12.39, 0.41816, 29, -75.27, -22.08, 0.17, 3, 6, 34.55, 35.96, 0.24581, 46, 65.26, 8.61, 0.58419, 29, -77.16, -34.2, 0.17, 3, 6, 33.37, 63.65, 0.2605, 46, 60.87, -18.76, 0.6395, 29, -104.88, -34.2, 0.1, 3, 6, 43.17, 65.57, 0.35187, 46, 50.89, -18.68, 0.54813, 29, -106.38, -24.33, 0.1, 3, 6, 54.99, 67.87, 0.46211, 46, 38.85, -18.57, 0.43789, 29, -108.18, -12.42, 0.1, 2, 6, 55.02, 82.66, 0.55402, 46, 35.86, -33.05, 0.44598, 2, 6, 75.79, 83.54, 0.96, 29, -122.95, 9.03, 0.04, 1, 6, 119.79, 55.76, 1, 2, 6, 79.34, 62.3, 0.76, 29, -101.58, 11.67, 0.24 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 8, 10, 14, 16, 16, 18, 18, 20, 0, 20, 4, 6, 6, 8, 10, 12, 12, 14, 4, 14 ], + "width": 50, + "height": 86 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "boy/hair-side", + "type": "mesh", + "uvs": [ 0.76395, 0.00237, 0.91575, 0.43213, 1, 0.68539, 0.95348, 0.8591, 0.91575, 1, 0.36135, 1, 0.33144, 0.88524, 0.29536, 0.74678, 0, 0.73911, 0, 0.49737, 0.59236, 0, 0.42735, 0.46668 ], + "triangles": [ 6, 7, 3, 4, 5, 6, 3, 4, 6, 11, 9, 10, 7, 8, 9, 1, 11, 10, 1, 10, 0, 11, 7, 9, 2, 7, 11, 2, 11, 1, 3, 7, 2 ], + "vertices": [ 1, 6, 119.95, 47.18, 1, 2, 6, 83.34, 38.03, 0.86, 29, -77.16, 14.64, 0.14, 3, 6, 61.76, 32.9, 0.61654, 46, 39.22, 17.05, 0.21346, 29, -72.95, -7.14, 0.17, 3, 6, 46.73, 34.59, 0.41184, 46, 53.6, 12.39, 0.41816, 29, -75.27, -22.08, 0.17, 3, 6, 34.55, 35.96, 0.24581, 46, 65.26, 8.61, 0.58419, 29, -77.16, -34.2, 0.17, 3, 6, 33.37, 63.65, 0.2605, 46, 60.87, -18.76, 0.6395, 29, -104.88, -34.2, 0.1, 3, 6, 43.17, 65.57, 0.35187, 46, 50.89, -18.68, 0.54813, 29, -106.38, -24.33, 0.1, 3, 6, 54.99, 67.87, 0.46211, 46, 38.85, -18.57, 0.43789, 29, -108.18, -12.42, 0.1, 2, 6, 55.02, 82.66, 0.55402, 46, 35.86, -33.05, 0.44598, 2, 6, 75.79, 83.54, 0.96, 29, -122.95, 9.03, 0.04, 1, 6, 119.79, 55.76, 1, 2, 6, 79.34, 62.3, 0.76, 29, -101.58, 11.67, 0.24 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 8, 10, 14, 16, 16, 18, 18, 20, 0, 20, 4, 6, 6, 8, 10, 12, 12, 14, 4, 14 ], + "width": 50, + "height": 86 + } + }, + "hand-back": { + "hand-back-fingers": { "name": "boy/hand-backfingers", "x": 11.59, "y": -2.84, "rotation": 90, "width": 38, "height": 42 } + }, + "hand-front": { + "hand-front-fingers": { "name": "boy/hand-front-fingers", "x": 11.59, "y": 1.97, "rotation": 90, "width": 38, "height": 42 } + }, + "hat": { + "hat": { + "name": "boy/hat", + "type": "mesh", + "uvs": [ 1, 0.67762, 0.84575, 0.80843, 0.65489, 0.90654, 0.43192, 0.966, 0.225, 0.99573, 0.03592, 0.98978, 0, 0.85303, 0.027, 0.47546, 0.07694, 0.46357, 0.10013, 0.306, 0.18575, 0.11573, 0.31954, 0.01465, 0.49257, 0, 0.64775, 0.03249, 0.7637, 0.14546, 0.83327, 0.31492, 0.9064, 0.32384, 1, 0.53789, 0.22857, 0.48438, 0.39089, 0.45168, 0.59424, 0.40708, 0.74765, 0.3506, 0.24819, 0.2733, 0.38197, 0.25843, 0.57997, 0.21384 ], + "triangles": [ 20, 24, 21, 23, 24, 20, 19, 23, 20, 22, 10, 11, 22, 23, 19, 23, 22, 11, 23, 11, 12, 23, 12, 24, 24, 12, 13, 24, 13, 14, 21, 24, 14, 19, 20, 2, 8, 9, 18, 18, 19, 3, 15, 17, 21, 17, 15, 16, 0, 1, 17, 1, 21, 17, 6, 7, 8, 18, 6, 8, 2, 20, 1, 3, 19, 2, 4, 6, 18, 4, 5, 6, 18, 3, 4, 20, 21, 1, 18, 9, 22, 9, 10, 22, 18, 22, 19, 21, 14, 15 ], + "vertices": [ 1, 50, 13.89, -96.68, 1, 2, 50, -1.83, -68.79, 0.82, 52, -67.01, -62.58, 0.18, 2, 50, -14.21, -33.97, 0.72, 52, -74.39, -26.37, 0.28, 2, 50, -22.55, 6.96, 0.72, 52, -76.91, 15.33, 0.28, 2, 50, -27.47, 45.07, 0.82, 52, -76.43, 53.75, 0.18, 1, 50, -28.29, 80.05, 1, 1, 50, -13.41, 87.33, 1, 2, 50, 28.67, 84.11, 0.94502, 51, 49.2, 82.46, 0.05498, 3, 50, 30.39, 74.94, 0.90664, 51, 49.61, 73.14, 0.07509, 52, -14.96, 75.21, 0.01827, 2, 50, 48.04, 71.39, 0.83494, 51, 66.59, 67.15, 0.16506, 2, 50, 69.81, 56.46, 0.75704, 51, 86.05, 49.32, 0.24296, 2, 50, 82.07, 32.21, 0.73015, 51, 94.79, 23.58, 0.26985, 3, 50, 85.05, 0.3, 0.71911, 51, 93.27, -8.43, 0.27957, 52, 28.7, -6.36, 0.00132, 2, 50, 82.67, -28.54, 0.71902, 51, 86.86, -36.65, 0.28098, 2, 50, 71.05, -50.5, 0.7727, 51, 72.27, -56.76, 0.2273, 2, 50, 52.8, -64.16, 0.9302, 51, 52.29, -67.73, 0.0698, 2, 50, 52.39, -77.72, 0.97146, 51, 49.98, -81.09, 0.02854, 1, 50, 29.38, -96.02, 1, 3, 50, 29.27, 46.82, 0.76552, 51, 44.55, 45.45, 0.08448, 52, -20.01, 47.52, 0.15, 3, 50, 34.17, 16.97, 0.75083, 51, 45.22, 15.21, 0.07917, 52, -19.35, 17.28, 0.17, 3, 50, 40.71, -20.41, 0.75063, 51, 46.45, -22.71, 0.07937, 52, -18.11, -20.65, 0.17, 3, 50, 48.17, -48.5, 0.83648, 51, 49.91, -51.57, 0.09352, 52, -14.66, -49.51, 0.07, 3, 50, 52.83, 44.18, 0.71547, 51, 67.51, 39.54, 0.16811, 52, 2.95, 41.61, 0.11643, 3, 50, 55.53, 19.52, 0.68597, 51, 66.73, 14.75, 0.16403, 52, 2.16, 16.81, 0.15, 3, 50, 62.02, -16.86, 0.70061, 51, 68.06, -22.19, 0.18939, 52, 3.49, -20.13, 0.11 ], + "hull": 18, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 0, 34, 44, 22 ], + "width": 185, + "height": 111 + } + }, + "leg-back": { + "leg-back": { + "name": "boy/leg-front", + "type": "mesh", + "uvs": [ 0.07635, 0.9541, 0.06673, 0.89806, 0.05329, 0.83742, 0.06846, 0.78076, 0.1147, 0.71609, 0.09104, 0.65737, 0.07898, 0.59167, 0.08077, 0.52912, 0.07229, 0.46755, 0.06309, 0.4008, 0.05461, 0.3393, 0.04512, 0.27044, 0.0355, 0.20062, 0.02026, 0.09003, 0.0082, 0.0025, 0.86785, 0, 0.85558, 0.08164, 0.83969, 0.18726, 0.82872, 0.26024, 0.81835, 0.32916, 0.80924, 0.38977, 0.79934, 0.45558, 0.79031, 0.51561, 0.77996, 0.58393, 0.76519, 0.64798, 0.75106, 0.708, 0.81982, 0.77305, 0.82792, 0.82913, 0.81561, 0.88039, 0.82497, 0.91422, 1, 0.93396, 0.9918, 1, 0.08936, 1, 0.44189, 0.0854, 0.44189, 0.52429, 0.44189, 0.46108, 0.44189, 0.39534, 0.44189, 0.33482, 0.44189, 0.26387, 0.44189, 0.19291, 0.44582, 0.95343, 0.44247, 0.58821, 0.44304, 0.64978, 0.44358, 0.70926, 0.44851, 0.77908, 0.44475, 0.83655, 0.44521, 0.88665 ], + "triangles": [ 39, 11, 12, 18, 39, 17, 39, 12, 33, 39, 33, 17, 33, 12, 13, 17, 33, 16, 13, 14, 33, 16, 33, 15, 15, 33, 14, 38, 10, 11, 19, 38, 18, 38, 11, 39, 38, 39, 18, 36, 8, 9, 21, 36, 20, 36, 9, 37, 36, 37, 20, 37, 9, 10, 20, 37, 19, 37, 10, 38, 37, 38, 19, 7, 34, 41, 23, 34, 22, 34, 7, 35, 34, 35, 22, 35, 7, 8, 22, 35, 21, 35, 8, 36, 35, 36, 21, 42, 5, 41, 5, 6, 41, 42, 41, 24, 24, 41, 23, 6, 7, 41, 41, 34, 23, 2, 3, 45, 28, 45, 27, 44, 4, 43, 44, 43, 25, 43, 4, 42, 4, 5, 42, 43, 42, 25, 25, 42, 24, 1, 2, 45, 45, 26, 27, 45, 44, 26, 45, 3, 44, 44, 25, 26, 44, 3, 4, 40, 46, 28, 40, 28, 29, 0, 1, 46, 40, 0, 46, 32, 0, 40, 40, 29, 30, 32, 40, 31, 31, 40, 30, 1, 45, 46, 46, 45, 28 ], + "vertices": [ 3, 103, -20.08, 10.6, 0.75, 94, 23.49, -22.3, 0.24676, 95, 59.84, -22.28, 0.00324, 2, 103, -20.97, 28.44, 0.51, 94, 5.72, -22.89, 0.49, 2, 103, -22.07, 47.56, 0.31, 96, 58.17, -23.66, 0.69, 3, 103, -21.4, 65.39, 0.1116, 95, 4.59, -22.78, 0.8184, 96, 40.52, -22.77, 0.07, 4, 103, -18.75, 86.02, 0.01, 95, -16.13, -19.93, 0.10405, 96, 20.1, -19.96, 0.87254, 97, 56.45, -19.89, 0.01341, 3, 95, -35.05, -21.34, 1.0E-4, 96, 1.46, -21.4, 0.56453, 97, 37.51, -21.4, 0.43537, 3, 96, -19.07, -22.08, 0.03286, 97, 16.65, -22.14, 0.91428, 98, 52.69, -22.08, 0.05286, 3, 97, -3.17, -22.02, 0.36522, 98, 32.86, -22.03, 0.63379, 99, 68.32, -21.96, 9.9E-4, 3, 97, -22.68, -22.46, 0.00771, 98, 13.36, -22.55, 0.84445, 99, 49.14, -22.52, 0.14784, 3, 98, -7.93, -23.09, 0.1958, 99, 28.2, -23.11, 0.80288, 100, 64.58, -23.1, 0.00132, 3, 98, -27.79, -23.57, 4.7E-4, 99, 8.67, -23.62, 0.7924, 100, 44.76, -23.62, 0.20713, 3, 99, -12.93, -24.2, 0.11943, 100, 22.84, -24.2, 0.86721, 101, 58.46, -24.21, 0.01336, 2, 100, 0.77, -24.79, 0.53411, 101, 36.71, -24.79, 0.46589, 1, 101, 1.72, -25.72, 1, 1, 101, -25.98, -26.46, 1, 1, 101, -26.33, 25.98, 1, 1, 101, -0.53, 25.24, 1, 2, 100, -3.13, 24.27, 0.4095, 101, 32.87, 24.27, 0.5905, 3, 99, -15.75, 23.6, 0.08894, 100, 19.96, 23.6, 0.87813, 101, 55.62, 23.59, 0.03292, 3, 98, -30.64, 23.03, 8.5E-4, 99, 5.77, 22.96, 0.71828, 100, 41.79, 22.97, 0.28088, 3, 98, -11.12, 22.43, 0.16727, 99, 24.96, 22.4, 0.82705, 100, 61.27, 22.42, 0.00568, 3, 97, -26.03, 21.9, 0.00115, 98, 9.83, 21.8, 0.86047, 99, 45.58, 21.82, 0.13838, 2, 97, -7.13, 21.27, 0.21266, 98, 28.73, 21.24, 0.78734, 3, 96, -21.14, 20.69, 0.01057, 97, 14.4, 20.61, 0.90163, 98, 50.27, 20.67, 0.0878, 2, 96, -1.28, 19.72, 0.4417, 97, 34.58, 19.72, 0.5583, 4, 103, 20.06, 88.71, 0.01, 95, -18.54, 18.89, 0.02159, 96, 17.65, 18.86, 0.95034, 97, 53.83, 18.92, 0.01808, 3, 103, 24.4, 68.19, 0.1116, 95, 2.32, 23.05, 0.8184, 96, 38.19, 23.06, 0.07, 2, 103, 25.14, 50.7, 0.31, 96, 55.61, 23.58, 0.69, 2, 103, 24.62, 34.65, 0.51, 94, 0.26, 22.8, 0.49, 3, 103, 25.37, 23.95, 0.52462, 94, 10.94, 23.37, 0.22, 95, 47.04, 23.38, 0.25538, 1, 103, 36.15, 17.9, 1, 1, 103, 36, -3.06, 1, 1, 103, -19.04, -3.97, 1, 1, 101, 0.45, 0, 1, 1, 98, 31.4, 0, 1, 1, 98, 11.41, 0, 1, 1, 99, 26.57, 0, 1, 1, 99, 7.43, 0, 1, 1, 100, 20.94, 0, 1, 1, 101, 34.45, 0, 1, 2, 103, 2.45, 11.15, 0.83, 94, 23.32, 0.24, 0.17, 2, 97, 15.67, 0.04, 0.99997, 98, 51.62, 0.1, 3.0E-5, 2, 96, -0.81, 0.07, 0.37159, 97, 35.13, 0.07, 0.62841, 2, 103, 1.32, 88.25, 0.01, 96, 18, 0.1, 0.99, 3, 103, 1.78, 66.12, 0.1116, 95, 4.15, 0.4, 0.8184, 96, 40.04, 0.41, 0.07, 2, 103, 1.81, 48.1, 0.31, 96, 57.92, 0.22, 0.69, 3, 103, 2.06, 32.36, 0.38323, 94, 2.19, 0.2, 0.57, 95, 38.18, 0.2, 0.04677 ], + "hull": 33, + "edges": [ 28, 30, 58, 60, 60, 62, 62, 64, 42, 44, 26, 28, 66, 26, 30, 32, 66, 32, 70, 68, 42, 70, 14, 16, 70, 16, 40, 42, 72, 70, 40, 72, 16, 18, 72, 18, 38, 40, 74, 72, 38, 74, 18, 20, 74, 20, 36, 38, 76, 74, 36, 76, 20, 22, 76, 22, 32, 34, 34, 36, 66, 78, 78, 76, 34, 78, 22, 24, 24, 26, 78, 24, 68, 82, 46, 82, 82, 12, 46, 48, 84, 82, 48, 84, 12, 10, 84, 10, 48, 50, 86, 84, 50, 86, 10, 8, 86, 8, 50, 52, 88, 86, 52, 88, 8, 6, 88, 6, 52, 54, 90, 88, 54, 90, 6, 4, 90, 4, 54, 56, 56, 58, 80, 92, 92, 90, 56, 92, 4, 2, 92, 2, 58, 80, 2, 0, 0, 64, 80, 0, 12, 14, 44, 46, 60, 80 ], + "width": 61, + "height": 316 + } + }, + "leg-front": { + "leg-front": { + "name": "boy/leg-front", + "type": "mesh", + "uvs": [ 0.07635, 0.9541, 0.06673, 0.89806, 0.05329, 0.83742, 0.06846, 0.78076, 0.1147, 0.71609, 0.09104, 0.65737, 0.07898, 0.59167, 0.08077, 0.52912, 0.07229, 0.46755, 0.06309, 0.4008, 0.05461, 0.3393, 0.04512, 0.27044, 0.0355, 0.20062, 0.02026, 0.09003, 0.0082, 0.0025, 0.86785, 0, 0.85558, 0.08164, 0.83969, 0.18726, 0.82872, 0.26024, 0.81835, 0.32916, 0.80924, 0.38977, 0.79934, 0.45558, 0.79031, 0.51561, 0.77996, 0.58393, 0.76519, 0.64798, 0.75106, 0.708, 0.81982, 0.77305, 0.82792, 0.82913, 0.81561, 0.88039, 0.82497, 0.91422, 1, 0.93396, 0.9918, 1, 0.08936, 1, 0.44189, 0.0854, 0.44189, 0.52429, 0.44189, 0.46108, 0.44189, 0.39534, 0.44189, 0.33482, 0.44189, 0.26387, 0.44189, 0.19291, 0.44582, 0.95343, 0.44247, 0.58821, 0.44304, 0.64978, 0.44358, 0.70926, 0.44851, 0.77908, 0.44475, 0.83655, 0.44521, 0.88665 ], + "triangles": [ 38, 10, 11, 19, 38, 18, 38, 11, 39, 38, 39, 18, 39, 11, 12, 36, 8, 9, 21, 36, 20, 36, 9, 37, 36, 37, 20, 37, 9, 10, 20, 37, 19, 37, 10, 38, 37, 38, 19, 7, 34, 41, 23, 34, 22, 34, 7, 35, 34, 35, 22, 35, 7, 8, 22, 35, 21, 35, 8, 36, 35, 36, 21, 42, 5, 41, 5, 6, 41, 42, 41, 24, 24, 41, 23, 6, 7, 41, 41, 34, 23, 43, 4, 42, 43, 42, 25, 4, 5, 42, 44, 4, 43, 44, 43, 25, 25, 42, 24, 1, 2, 45, 28, 45, 27, 2, 3, 45, 45, 26, 27, 45, 44, 26, 45, 3, 44, 44, 3, 4, 46, 45, 28, 44, 25, 26, 18, 39, 17, 39, 12, 33, 39, 33, 17, 33, 12, 13, 17, 33, 16, 13, 14, 33, 16, 33, 15, 15, 33, 14, 32, 40, 31, 31, 40, 30, 32, 0, 40, 40, 29, 30, 40, 28, 29, 0, 1, 46, 1, 45, 46, 40, 0, 46, 40, 46, 28 ], + "vertices": [ 3, 102, -21.4, 12.07, 0.65, 28, 23.5, -22.3, 0.3448, 27, 59.45, -22.3, 0.00521, 3, 102, -21.96, 29.92, 0.51, 28, 5.76, -22.88, 0.33074, 27, 41.71, -22.88, 0.15926, 3, 102, -22.66, 49.08, 0.31148, 28, -13.39, -23.7, 0.0912, 27, 22.52, -23.7, 0.59732, 3, 102, -21.61, 66.95, 0.17, 27, 4.58, -22.78, 0.5805, 26, 40.54, -22.78, 0.2495, 4, 102, -18.4, 87.61, 0.03, 27, -15.86, -19.96, 0.10277, 26, 20.08, -19.96, 0.82804, 25, 56.01, -19.96, 0.03919, 3, 27, -34.44, -21.4, 7.9E-4, 26, 1.51, -21.4, 0.57156, 25, 37.44, -21.4, 0.42765, 3, 26, -19.27, -22.14, 0.05654, 25, 16.67, -22.14, 0.87764, 24, 52.6, -22.14, 0.06582, 2, 25, -3.13, -22.03, 0.47104, 24, 32.82, -22.03, 0.52896, 3, 25, -22.61, -22.55, 0.01665, 24, 13.34, -22.55, 0.87142, 23, 49.29, -22.55, 0.11193, 3, 24, -7.79, -23.11, 0.22064, 23, 28.17, -23.11, 0.77569, 22, 64.12, -23.11, 0.00367, 3, 24, -27.25, -23.62, 0.00219, 23, 8.7, -23.62, 0.77556, 22, 44.65, -23.62, 0.22225, 3, 21, 58.81, -24.2, 0.0114, 23, -13.09, -24.2, 0.12046, 22, 22.86, -24.2, 0.86813, 2, 21, 36.72, -24.79, 0.42237, 22, 0.77, -24.79, 0.57763, 2, 21, 1.72, -25.72, 0.99849, 22, -34.23, -25.72, 0.00151, 1, 21, -25.98, -26.46, 1, 1, 21, -26.33, 25.98, 1, 2, 21, -0.53, 25.24, 0.99997, 22, -36.48, 25.24, 3.0E-5, 2, 21, 32.85, 24.27, 0.56274, 22, -3.1, 24.27, 0.43726, 3, 21, 55.91, 23.6, 0.02334, 23, -15.99, 23.6, 0.05774, 22, 19.96, 23.6, 0.91892, 3, 24, -30.16, 22.96, 3.0E-4, 23, 5.79, 22.96, 0.6752, 22, 41.74, 22.96, 0.3245, 3, 24, -11, 22.41, 0.14886, 23, 24.95, 22.41, 0.84172, 22, 60.9, 22.41, 0.00941, 3, 25, -26.16, 21.8, 0.00663, 24, 9.79, 21.8, 0.80794, 23, 45.74, 21.8, 0.18543, 3, 25, -7.19, 21.25, 0.35697, 24, 28.76, 21.25, 0.64235, 23, 64.72, 21.25, 6.7E-4, 3, 26, -21.58, 20.62, 0.04097, 25, 14.4, 20.62, 0.83939, 24, 50.38, 20.63, 0.11963, 3, 26, -1.35, 19.72, 0.4338, 25, 34.64, 19.72, 0.56533, 24, 70.61, 19.73, 8.7E-4, 4, 102, 20.45, 89.06, 0.03, 27, -18.28, 18.86, 0.04202, 26, 17.66, 18.86, 0.84488, 25, 53.66, 18.87, 0.0831, 3, 102, 24.24, 68.6, 0.17, 27, 2.29, 23.05, 0.47119, 26, 38.23, 23.05, 0.35881, 2, 102, 24.6, 51.21, 0.32421, 27, 20.01, 23.55, 0.67579, 3, 102, 23.74, 35.21, 0.51, 28, 0.25, 22.8, 0.21249, 27, 36.2, 22.8, 0.27751, 3, 102, 24.29, 24.55, 0.73, 28, 10.95, 23.37, 0.25858, 27, 46.78, 23.36, 0.01142, 1, 102, 34.96, 18.3, 1, 1, 102, 34.41, -2.64, 1, 1, 102, -20.64, -2.52, 1, 1, 21, 0.45, 0, 1, 1, 24, 31.4, 0, 1, 1, 24, 11.41, 0, 1, 1, 23, 26.57, 0, 1, 1, 23, 7.43, 0, 1, 1, 22, 20.94, 0, 1, 1, 21, 34.45, 0, 1, 2, 102, 1.14, 12.19, 0.83, 28, 23.32, 0.24, 0.17, 1, 25, 15.67, 0.04, 1, 2, 26, -0.81, 0.07, 0.37007, 25, 35.14, 0.07, 0.62993, 2, 102, 1.77, 89.22, 0.03, 26, 18, 0.1, 0.97, 3, 102, 1.58, 67.1, 0.17, 27, 4.15, 0.4, 0.76746, 26, 40.07, 0.4, 0.06254, 2, 102, 1.23, 49.11, 0.22, 27, 22.3, 0.17, 0.78, 3, 102, 1.15, 33.38, 0.37, 28, 2.2, 0.2, 0.5638, 27, 38.15, 0.2, 0.0662 ], + "hull": 33, + "edges": [ 28, 30, 58, 60, 60, 62, 62, 64, 42, 44, 26, 28, 66, 26, 30, 32, 66, 32, 70, 68, 42, 70, 14, 16, 70, 16, 40, 42, 72, 70, 40, 72, 16, 18, 72, 18, 38, 40, 74, 72, 38, 74, 18, 20, 74, 20, 36, 38, 76, 74, 36, 76, 20, 22, 76, 22, 32, 34, 34, 36, 66, 78, 78, 76, 34, 78, 22, 24, 24, 26, 78, 24, 68, 82, 46, 82, 82, 12, 46, 48, 84, 82, 48, 84, 12, 10, 84, 10, 48, 50, 86, 84, 50, 86, 10, 8, 86, 8, 50, 52, 88, 86, 52, 88, 8, 6, 88, 6, 52, 54, 90, 88, 54, 90, 6, 4, 90, 4, 54, 56, 56, 58, 80, 92, 92, 90, 56, 92, 4, 2, 92, 2, 58, 80, 2, 0, 0, 64, 80, 0, 12, 14, 44, 46, 60, 80 ], + "width": 61, + "height": 316 + } + }, + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 }, + "mouth-smile": { "name": "boy/mouth-smile", "x": -4.12, "y": 2.56, "width": 57, "height": 13 } + }, + "nose": { + "nose": { + "name": "boy/nose", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 6, 51.55, -68.98, 0.63, 29, 28.41, -21.66, 0.37, 2, 6, 50.11, -35.01, 0.72, 29, -5.59, -21.66, 0.28, 2, 6, 69.09, -34.21, 0.72, 29, -5.59, -2.66, 0.28, 2, 6, 70.54, -68.18, 0.63, 29, 28.41, -2.66, 0.37 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 34, + "height": 19 + } + }, + "pompom": { + "pompom": { "name": "boy/pompom", "x": -48.24, "y": 11.74, "rotation": -95.63, "width": 96, "height": 85 } + }, + "sleeve-front": { + "sleeve-front": { + "name": "boy/arm-front", + "type": "mesh", + "uvs": [ 0, 0.9983, 1, 1, 1, 0.86682, 0.93575, 0.85962, 0.92543, 0.81301, 0.91517, 0.75475, 0.90967, 0.69766, 0.90374, 0.64195, 0.89852, 0.59071, 0.89321, 0.53993, 0.88593, 0.48173, 0.87995, 0.43392, 0.87387, 0.38539, 0.86778, 0.33662, 0.86019, 0.276, 0.85262, 0.21542, 0.84443, 0.15001, 0.83706, 0.09104, 0.82567, 0, 0.20656, 4.9E-4, 0.19476, 0.09288, 0.18669, 0.15618, 0.17892, 0.21703, 0.17122, 0.27738, 0.16365, 0.33672, 0.15684, 0.39004, 0.15032, 0.44113, 0.14396, 0.49098, 0.13775, 0.53965, 0.13226, 0.59099, 0.12603, 0.6493, 0.11997, 0.7051, 0.11515, 0.75592, 0.10543, 0.80835, 0.09698, 0.85907, 0.00989, 0.86774, 0.51288, 0.08992, 0.5068, 0.53843, 0.50952, 0.33772, 0.50435, 0.75817, 0.50554, 0.64894, 0.50328, 0.81283, 0.50817, 0.43751, 0.51115, 0.2178, 0.51199, 0.156, 0.51033, 0.27832, 0.50881, 0.38996, 0.50751, 0.48617, 0.50614, 0.59548, 0.5049, 0.70471, 0.50929, 0.85256 ], + "triangles": [ 0, 50, 1, 50, 0, 34, 0, 35, 34, 34, 33, 50, 50, 3, 1, 50, 4, 3, 3, 2, 1, 44, 36, 17, 44, 20, 36, 20, 19, 36, 36, 18, 17, 36, 19, 18, 33, 41, 50, 50, 41, 4, 4, 41, 5, 41, 39, 5, 33, 32, 41, 41, 32, 39, 39, 6, 5, 39, 49, 6, 32, 31, 39, 39, 31, 49, 31, 30, 49, 49, 7, 6, 49, 40, 7, 49, 30, 40, 30, 29, 40, 40, 8, 7, 40, 48, 8, 40, 29, 48, 48, 9, 8, 48, 37, 9, 29, 28, 48, 48, 28, 37, 9, 37, 10, 28, 27, 37, 37, 47, 10, 37, 27, 47, 27, 26, 47, 47, 11, 10, 47, 42, 11, 47, 26, 42, 26, 25, 42, 42, 12, 11, 42, 46, 12, 42, 25, 46, 25, 24, 46, 46, 13, 12, 46, 38, 13, 46, 24, 38, 38, 14, 13, 38, 45, 14, 24, 23, 38, 38, 23, 45, 45, 15, 14, 23, 22, 45, 45, 43, 15, 45, 22, 43, 43, 16, 15, 43, 44, 16, 22, 21, 43, 43, 21, 44, 21, 20, 44, 44, 17, 16 ], + "vertices": [ 1, 54, 30.3, -36.41, 1, 1, 54, 30.3, 34.59, 1, 1, 54, -0.09, 34.58, 1, 1, 54, -1.73, 30.02, 1, 3, 13, 65.08, 29.54, 0.00868, 12, 31.72, 29.7, 0.54327, 16, -1.8, 29.7, 0.44805, 3, 13, 51.72, 28.75, 0.09476, 12, 18.24, 28.84, 0.78295, 16, -14.97, 28.81, 0.12229, 4, 14, 72.39, 28.06, 1.0E-5, 13, 38.62, 28.29, 0.36416, 12, 5.03, 28.32, 0.62452, 16, -27.87, 28.25, 0.01131, 3, 14, 59.57, 27.66, 0.01697, 13, 25.84, 27.81, 0.71378, 12, -7.87, 27.77, 0.26925, 3, 14, 47.78, 27.3, 0.12736, 13, 14.09, 27.38, 0.81039, 12, -19.73, 27.28, 0.06225, 4, 15, 69.71, 26.86, 1.9E-4, 14, 36.09, 26.94, 0.41186, 13, 2.44, 26.95, 0.58392, 12, -31.48, 26.79, 0.00403, 3, 15, 56.29, 26.39, 0.03436, 14, 22.7, 26.43, 0.7688, 13, -10.92, 26.37, 0.19684, 3, 15, 45.26, 26, 0.17991, 14, 11.7, 26.02, 0.78189, 13, -21.89, 25.89, 0.03821, 4, 11, 66.92, 25.61, 4.0E-5, 15, 34.07, 25.6, 0.49682, 14, 0.53, 25.6, 0.5018, 13, -33.02, 25.41, 0.00134, 3, 11, 55.89, 25.21, 0.02124, 15, 22.83, 25.2, 0.80075, 14, -10.69, 25.18, 0.17801, 3, 11, 42.17, 24.71, 0.21905, 15, 8.85, 24.71, 0.76696, 14, -24.64, 24.66, 0.01399, 2, 11, 28.46, 24.21, 0.67585, 15, -5.12, 24.22, 0.32415, 2, 11, 13.66, 23.68, 0.96846, 15, -20.2, 23.68, 0.03154, 1, 8, 0.24, 23.24, 1, 1, 8, -20.51, 22.43, 1, 1, 8, -20.4, -21.52, 1, 1, 8, 0.66, -22.36, 1, 2, 11, 14.92, -23.03, 0.9591, 15, -18.93, -23.02, 0.0409, 2, 11, 28.69, -23.62, 0.67055, 15, -4.9, -23.62, 0.32945, 3, 11, 42.34, -24.21, 0.20785, 15, 9.01, -24.21, 0.77749, 14, -24.38, -24.26, 0.01467, 3, 11, 55.76, -24.78, 0.01896, 15, 22.69, -24.79, 0.80223, 14, -10.73, -24.81, 0.17882, 3, 15, 34.98, -25.31, 0.45683, 14, 1.54, -25.31, 0.5408, 13, -31.71, -25.5, 0.00238, 3, 15, 46.76, -25.81, 0.14032, 14, 13.3, -25.78, 0.80693, 13, -19.98, -25.9, 0.05275, 3, 15, 58.25, -26.3, 0.01945, 14, 24.77, -26.25, 0.7308, 13, -8.54, -26.3, 0.24975, 4, 15, 69.47, -26.77, 2.7E-4, 14, 35.97, -26.7, 0.41316, 13, 2.63, -26.69, 0.58179, 12, -31, -26.85, 0.00478, 3, 14, 47.78, -27.1, 0.12648, 13, 14.41, -27.02, 0.80795, 12, -19.11, -27.12, 0.06558, 3, 14, 61.2, -27.56, 0.01164, 13, 27.79, -27.4, 0.6672, 12, -5.6, -27.43, 0.32116, 3, 13, 40.6, -27.77, 0.30828, 12, 7.32, -27.73, 0.67545, 16, -25.51, -27.79, 0.01627, 3, 13, 52.26, -28.05, 0.08696, 12, 19.09, -27.95, 0.78468, 16, -14, -27.99, 0.12837, 3, 13, 64.29, -28.69, 0.00978, 12, 31.24, -28.52, 0.56264, 16, -2.14, -28.53, 0.42759, 1, 54, -1.86, -29.53, 1, 1, 54, 0.13, -35.71, 1, 1, 8, -0.01, 0.23, 1, 2, 14, 35.72, -0.5, 0.06656, 13, 2.22, -0.49, 0.93344, 1, 15, 23, -0.23, 1, 2, 13, 52.64, -0.42, 0, 12, 19.33, -0.32, 1, 1, 13, 27.58, -0.45, 1, 2, 12, 31.99, -0.27, 0.81958, 16, -1.47, -0.27, 0.18042, 2, 14, 12.49, -0.38, 1, 13, -20.94, -0.5, 0, 1, 11, 28.93, -0.03, 1, 1, 11, 14.95, 0.07, 1, 1, 15, 9.31, -0.13, 1, 2, 15, 35.04, -0.32, 0.18244, 14, 1.55, -0.32, 0.81756, 1, 14, 23.69, -0.44, 1, 1, 13, 15.31, -0.47, 1, 2, 13, 40.38, -0.44, 7.7E-4, 12, 6.95, -0.4, 0.99923, 1, 54, -3.3, -0.26, 1 ], + "hull": 36, + "edges": [ 0, 2, 2, 4, 36, 38, 0, 70, 68, 70, 4, 6, 34, 36, 72, 34, 38, 40, 72, 40, 74, 56, 74, 18, 76, 48, 76, 26, 78, 64, 78, 10, 80, 60, 80, 14, 82, 78, 64, 66, 82, 66, 8, 10, 82, 8, 84, 52, 84, 22, 86, 44, 86, 30, 72, 88, 88, 86, 40, 42, 42, 44, 88, 42, 30, 32, 32, 34, 88, 32, 76, 90, 90, 86, 44, 46, 46, 48, 90, 46, 26, 28, 28, 30, 90, 28, 76, 92, 92, 84, 48, 50, 50, 52, 92, 50, 22, 24, 24, 26, 92, 24, 74, 94, 94, 84, 52, 54, 54, 56, 94, 54, 18, 20, 20, 22, 94, 20, 74, 96, 96, 80, 56, 58, 58, 60, 96, 58, 14, 16, 16, 18, 96, 16, 78, 98, 98, 80, 60, 62, 62, 64, 98, 62, 10, 12, 12, 14, 98, 12, 66, 68, 6, 8 ], + "width": 71, + "height": 229 + } + }, + "zip-boy": { + "zip-boy": { "name": "boy/zip", "x": 14.35, "y": -0.15, "rotation": 82.23, "width": 27, "height": 46 } + } + } + }, + { + "name": "full-skins/girl", + "bones": [ "hat-base", "hair-strand-back-3", "bag-control", "hair-strand-front-2", "pompom-control", "hair-holder-front", "hair-strand-front-1", "zip-girl", "bag-strap-back", "hair-strand-front-4", "bag-strap-front", "hair-holder-back", "bag-back-down", "bag", "hair-strand-back-1", "hat-control", "hair-strand-front-3", "bag-flap", "hat", "hair-strand-back-2", "scarf-back", "bag-back-front" ], + "transform": [ "hat-control", "leg-down-back-up", "leg-up-back" ], + "attachments": { + "arm-back": { + "arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 } + }, + "bag-base": { + "bag-base": { + "name": "girl/bag-base", + "type": "mesh", + "uvs": [ 0.83893, 0.8993, 0.6302, 1, 0.16529, 0.94665, 0.01981, 0.72002, 0, 0.45956, 0.05144, 0.21601, 0.15581, 0, 0.8073, 0.02997, 0.95278, 0.23969, 1, 0.45956, 1, 0.68619, 0.61122, 0.80458, 0.56694, 0.49338, 0.67131, 0.22616 ], + "triangles": [ 13, 5, 6, 13, 6, 7, 2, 11, 1, 8, 9, 13, 10, 11, 9, 12, 5, 13, 12, 9, 11, 3, 12, 11, 13, 9, 12, 0, 11, 10, 1, 11, 0, 13, 7, 8, 4, 5, 12, 3, 4, 12, 2, 3, 11 ], + "vertices": [ 2, 57, -24.02, 97.1, 0.4359, 58, -108.39, 43.99, 0.5641, 2, 57, 0.18, 111.52, 0.48095, 58, -84.2, 58.41, 0.51905, 2, 57, 57.69, 111.91, 0.16986, 58, -26.69, 58.81, 0.83014, 2, 57, 78.42, 88.05, 0.54, 58, -5.95, 34.95, 0.46, 2, 57, 84.25, 58.57, 0.53182, 58, -0.13, 5.47, 0.46818, 2, 57, 81.14, 30.02, 0.39, 58, -3.24, -23.08, 0.61, 1, 58, -13.17, -49.22, 1, 2, 57, -8.8, -1.79, 0.37, 58, -93.18, -54.89, 0.63, 2, 57, -29.32, 20.14, 0.51747, 58, -113.69, -32.96, 0.48253, 2, 57, -37.96, 44.6, 0.46, 58, -122.33, -8.5, 0.54, 2, 57, -40.92, 70.5, 0.46, 58, -125.29, 17.39, 0.54, 2, 57, 5.05, 89.45, 0.96, 58, -79.33, 36.35, 0.04, 1, 57, 14.52, 54.52, 1, 2, 57, 5.26, 22.53, 0.92, 58, -79.12, -30.58, 0.08 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20, 24, 26, 22, 6 ], + "width": 123, + "height": 115 + } + }, + "bag-strap-back": { + "bag-strap-back": { + "name": "girl/bag-strap-front", + "type": "mesh", + "uvs": [ 0.10329, 0.09701, 0.09625, 0.16933, 0.0882, 0.24002, 0.07824, 0.30385, 0.06981, 0.37343, 0.06125, 0.44416, 0.05318, 0.51073, 0.04445, 0.58281, 0.03622, 0.65075, 0.02694, 0.72743, 0.01818, 0.7997, 0.00877, 0.87745, 0, 0.94985, 0.49463, 0.9881, 1, 0.94985, 0.9924, 0.87902, 0.98374, 0.79824, 0.97585, 0.72459, 0.96826, 0.65383, 0.96097, 0.58591, 0.95321, 0.51354, 0.94607, 0.44688, 0.93834, 0.37479, 0.93057, 0.30235, 0.92162, 0.23729, 0.91478, 0.1693, 0.90826, 0.09429, 0.90262, 0.04177, 0.68729, 0.00493, 0.50446, 0.00754, 0.29063, 0.0106, 0.10929, 0.04743, 0.49571, 0.88043, 0.49652, 0.79968, 0.49725, 0.72601, 0.49799, 0.65234, 0.49866, 0.58577, 0.49938, 0.51352, 0.50005, 0.44693, 0.50078, 0.3747, 0.50147, 0.30525, 0.50233, 0.23869, 0.50296, 0.17069, 0.50358, 0.09559 ], + "triangles": [ 36, 6, 37, 7, 6, 36, 36, 37, 20, 19, 36, 20, 35, 7, 36, 8, 7, 35, 35, 36, 19, 18, 35, 19, 34, 8, 35, 34, 35, 18, 34, 18, 17, 9, 8, 34, 33, 9, 34, 33, 34, 17, 33, 17, 16, 10, 9, 33, 32, 10, 33, 11, 10, 32, 32, 33, 16, 32, 16, 15, 13, 11, 32, 12, 11, 13, 13, 32, 15, 13, 15, 14, 43, 30, 29, 43, 29, 28, 26, 43, 28, 26, 28, 27, 0, 31, 30, 0, 30, 43, 42, 0, 43, 1, 0, 42, 42, 43, 26, 42, 26, 25, 41, 1, 42, 41, 42, 25, 41, 25, 24, 2, 1, 41, 40, 2, 41, 3, 2, 40, 40, 41, 24, 40, 24, 23, 39, 3, 40, 4, 3, 39, 39, 40, 23, 22, 39, 23, 38, 4, 39, 5, 4, 38, 38, 39, 22, 38, 22, 21, 37, 5, 38, 6, 5, 37, 37, 38, 21, 20, 37, 21 ], + "vertices": [ 2, 61, -9.66, -6.38, 0.99238, 62, -9.66, 163.86, 0.00762, 2, 61, -9.83, -20.27, 0.95187, 62, -9.83, 149.97, 0.04813, 2, 61, -10.03, -33.84, 0.88337, 62, -10.03, 136.4, 0.11663, 2, 61, -10.27, -46.1, 0.80311, 62, -10.27, 124.14, 0.19689, 2, 61, -10.47, -59.46, 0.70151, 62, -10.47, 110.78, 0.29849, 2, 61, -10.67, -73.04, 0.58865, 62, -10.67, 97.2, 0.41135, 2, 61, -10.87, -85.82, 0.47894, 62, -10.87, 84.42, 0.52106, 2, 61, -11.08, -99.66, 0.36197, 62, -11.08, 70.58, 0.63803, 2, 61, -11.27, -112.7, 0.25859, 62, -11.27, 57.54, 0.74141, 2, 61, -11.5, -127.42, 0.15597, 62, -11.5, 42.82, 0.84403, 2, 61, -11.71, -141.3, 0.07856, 62, -11.71, 28.94, 0.92144, 2, 61, -11.93, -156.23, 0.02246, 62, -11.93, 14.01, 0.97754, 2, 61, -12.14, -170.13, 0.00178, 62, -12.14, 0.11, 0.99822, 1, 62, -0.27, -7.23, 1, 2, 61, 11.86, -170.13, 0.00175, 62, 11.86, 0.11, 0.99825, 2, 61, 11.67, -156.53, 0.0217, 62, 11.67, 13.71, 0.9783, 2, 61, 11.47, -141.02, 0.07999, 62, 11.47, 29.22, 0.92001, 2, 61, 11.28, -126.88, 0.15955, 62, 11.28, 43.36, 0.84045, 2, 61, 11.1, -113.29, 0.25429, 62, 11.1, 56.95, 0.74571, 2, 61, 10.92, -100.25, 0.35721, 62, 10.92, 69.99, 0.64279, 2, 61, 10.73, -86.36, 0.47445, 62, 10.73, 83.88, 0.52555, 2, 61, 10.56, -73.56, 0.58435, 62, 10.56, 96.68, 0.41565, 2, 61, 10.38, -59.72, 0.69956, 62, 10.38, 110.52, 0.30044, 2, 61, 10.19, -45.81, 0.80529, 62, 10.19, 124.43, 0.19471, 2, 61, 9.98, -33.32, 0.88656, 62, 9.98, 136.92, 0.11344, 2, 61, 9.81, -20.26, 0.95193, 62, 9.81, 149.98, 0.04807, 2, 61, 9.66, -5.86, 0.99321, 62, 9.66, 164.38, 0.00679, 2, 61, 9.52, 4.22, 0.99996, 62, 9.52, 174.46, 4.0E-5, 1, 61, 4.35, 11.3, 1, 1, 61, -0.04, 10.79, 1, 1, 61, -5.17, 10.21, 1, 2, 61, -9.52, 3.14, 0.99986, 62, -9.52, 173.38, 1.4E-4, 2, 61, -0.25, -156.8, 0.02105, 62, -0.25, 13.44, 0.97895, 2, 61, -0.23, -141.3, 0.07899, 62, -0.23, 28.94, 0.92101, 2, 61, -0.21, -127.15, 0.15826, 62, -0.21, 43.09, 0.84174, 2, 61, -0.19, -113.01, 0.25696, 62, -0.19, 57.23, 0.74304, 2, 61, -0.18, -100.22, 0.35801, 62, -0.18, 70.02, 0.64199, 2, 61, -0.16, -86.35, 0.47508, 62, -0.16, 83.89, 0.52492, 2, 61, -0.14, -73.57, 0.58483, 62, -0.14, 96.67, 0.41517, 2, 61, -0.12, -59.7, 0.70022, 62, -0.12, 110.54, 0.29978, 2, 61, -0.11, -46.37, 0.80185, 62, -0.11, 123.87, 0.19815, 2, 61, -0.09, -33.59, 0.88541, 62, -0.09, 136.65, 0.11459, 2, 61, -0.07, -20.53, 0.95108, 62, -0.07, 149.71, 0.04892, 2, 61, -0.06, -6.11, 0.9934, 62, -0.06, 164.13, 0.0066 ], + "hull": 32, + "edges": [ 24, 26, 26, 28, 54, 56, 60, 62, 56, 58, 58, 60, 24, 22, 26, 64, 22, 64, 28, 30, 64, 30, 22, 20, 66, 64, 20, 66, 30, 32, 66, 32, 20, 18, 68, 66, 18, 68, 32, 34, 68, 34, 18, 16, 70, 68, 16, 70, 34, 36, 70, 36, 16, 14, 72, 70, 14, 72, 36, 38, 72, 38, 38, 40, 74, 72, 40, 74, 14, 12, 74, 12, 12, 10, 76, 74, 10, 76, 40, 42, 76, 42, 10, 8, 78, 76, 8, 78, 42, 44, 78, 44, 8, 6, 80, 78, 6, 80, 44, 46, 80, 46, 6, 4, 82, 80, 4, 82, 46, 48, 82, 48, 4, 2, 84, 82, 2, 84, 48, 50, 84, 50, 2, 0, 0, 62, 58, 86, 86, 84, 0, 86, 50, 52, 52, 54, 86, 52 ], + "width": 24, + "height": 192 + } + }, + "bag-strap-front": { + "bag-strap-front": { + "name": "girl/bag-strap-front", + "type": "mesh", + "uvs": [ 0.10329, 0.09701, 0.09625, 0.16933, 0.0882, 0.24002, 0.07824, 0.30385, 0.06981, 0.37343, 0.06125, 0.44416, 0.05318, 0.51073, 0.04445, 0.58281, 0.03622, 0.65075, 0.02694, 0.72743, 0.01818, 0.7997, 0.00877, 0.87745, 0, 0.94985, 0.49463, 0.9881, 1, 0.94985, 0.9924, 0.87902, 0.98374, 0.79824, 0.97585, 0.72459, 0.96826, 0.65383, 0.96097, 0.58591, 0.95321, 0.51354, 0.94607, 0.44688, 0.93834, 0.37479, 0.93057, 0.30235, 0.92162, 0.23729, 0.91478, 0.1693, 0.90826, 0.09429, 0.90262, 0.04177, 0.68729, 0.00493, 0.50446, 0.00754, 0.29063, 0.0106, 0.10929, 0.04743, 0.49571, 0.88043, 0.49652, 0.79968, 0.49725, 0.72601, 0.49799, 0.65234, 0.49866, 0.58577, 0.49938, 0.51352, 0.50005, 0.44693, 0.50078, 0.3747, 0.50147, 0.30525, 0.50233, 0.23869, 0.50296, 0.17069, 0.50358, 0.09559 ], + "triangles": [ 36, 6, 37, 7, 6, 36, 36, 37, 20, 19, 36, 20, 35, 7, 36, 8, 7, 35, 35, 36, 19, 18, 35, 19, 34, 8, 35, 34, 35, 18, 34, 18, 17, 9, 8, 34, 33, 9, 34, 33, 34, 17, 33, 17, 16, 10, 9, 33, 32, 10, 33, 11, 10, 32, 32, 33, 16, 32, 16, 15, 13, 11, 32, 12, 11, 13, 13, 32, 15, 13, 15, 14, 43, 30, 29, 43, 29, 28, 26, 43, 28, 26, 28, 27, 0, 31, 30, 0, 30, 43, 42, 0, 43, 1, 0, 42, 42, 43, 26, 42, 26, 25, 41, 1, 42, 41, 42, 25, 41, 25, 24, 2, 1, 41, 40, 2, 41, 3, 2, 40, 40, 41, 24, 40, 24, 23, 39, 3, 40, 4, 3, 39, 39, 40, 23, 22, 39, 23, 38, 4, 39, 5, 4, 38, 38, 39, 22, 38, 22, 21, 37, 5, 38, 6, 5, 37, 37, 38, 21, 20, 37, 21 ], + "vertices": [ 2, 63, -8.77, -6.38, 0.99173, 64, -8.77, 163.86, 0.00827, 2, 63, -8.94, -20.27, 0.94988, 64, -8.94, 149.97, 0.05012, 2, 63, -9.13, -33.84, 0.8807, 64, -9.13, 136.4, 0.1193, 2, 63, -9.37, -46.1, 0.8002, 64, -9.37, 124.14, 0.1998, 2, 63, -9.57, -59.46, 0.69863, 64, -9.57, 110.78, 0.30137, 2, 63, -9.78, -73.04, 0.58605, 64, -9.78, 97.2, 0.41395, 2, 63, -9.97, -85.82, 0.47675, 64, -9.97, 84.42, 0.52325, 2, 63, -10.18, -99.66, 0.36031, 64, -10.18, 70.58, 0.63969, 2, 63, -10.38, -112.7, 0.25746, 64, -10.38, 57.54, 0.74254, 2, 63, -10.6, -127.42, 0.1554, 64, -10.6, 42.82, 0.8446, 2, 63, -10.81, -141.3, 0.07837, 64, -10.81, 28.94, 0.92163, 2, 63, -11.04, -156.23, 0.02242, 64, -11.04, 14.01, 0.97758, 2, 63, -11.25, -170.13, 0.00161, 64, -11.25, 0.11, 0.99839, 1, 64, 0.62, -7.23, 1, 2, 63, 12.75, -170.13, 0.00201, 64, 12.75, 0.11, 0.99799, 2, 63, 12.57, -156.53, 0.02191, 64, 12.57, 13.71, 0.97809, 2, 63, 12.36, -141.02, 0.07986, 64, 12.36, 29.22, 0.92014, 2, 63, 12.17, -126.88, 0.15897, 64, 12.17, 43.36, 0.84103, 2, 63, 11.99, -113.29, 0.25319, 64, 11.99, 56.95, 0.74681, 2, 63, 11.82, -100.25, 0.35558, 64, 11.82, 69.99, 0.64442, 2, 63, 11.63, -86.36, 0.47228, 64, 11.63, 83.88, 0.52772, 2, 63, 11.46, -73.56, 0.58177, 64, 11.46, 96.68, 0.41823, 2, 63, 11.27, -59.72, 0.69669, 64, 11.27, 110.52, 0.30331, 2, 63, 11.09, -45.81, 0.80238, 64, 11.09, 124.43, 0.19762, 2, 63, 10.87, -33.32, 0.88388, 64, 10.87, 136.92, 0.11612, 2, 63, 10.71, -20.26, 0.94981, 64, 10.71, 149.98, 0.05019, 2, 63, 10.55, -5.86, 0.9921, 64, 10.55, 164.38, 0.0079, 2, 63, 10.42, 4.22, 0.99987, 64, 10.42, 174.46, 1.3E-4, 1, 63, 5.25, 11.3, 1, 1, 63, 0.86, 10.79, 1, 1, 63, -4.27, 10.21, 1, 2, 63, -8.62, 3.14, 0.99986, 64, -8.62, 173.38, 1.4E-4, 2, 63, 0.65, -156.8, 0.02114, 64, 0.65, 13.44, 0.97886, 2, 63, 0.67, -141.3, 0.07883, 64, 0.67, 28.94, 0.92117, 2, 63, 0.69, -127.15, 0.15769, 64, 0.69, 43.09, 0.84231, 2, 63, 0.71, -113.01, 0.25584, 64, 0.71, 57.23, 0.74416, 2, 63, 0.72, -100.22, 0.35637, 64, 0.72, 70.02, 0.64363, 2, 63, 0.74, -86.35, 0.4729, 64, 0.74, 83.89, 0.5271, 2, 63, 0.75, -73.57, 0.58224, 64, 0.75, 96.67, 0.41776, 2, 63, 0.77, -59.7, 0.69735, 64, 0.77, 110.54, 0.30265, 2, 63, 0.79, -46.37, 0.79894, 64, 0.79, 123.87, 0.20106, 2, 63, 0.81, -33.59, 0.88274, 64, 0.81, 136.65, 0.11726, 2, 63, 0.82, -20.53, 0.94901, 64, 0.82, 149.71, 0.05099, 2, 63, 0.84, -6.11, 0.99248, 64, 0.84, 164.13, 0.00752 ], + "hull": 32, + "edges": [ 24, 26, 26, 28, 54, 56, 60, 62, 56, 58, 58, 60, 24, 22, 26, 64, 22, 64, 28, 30, 64, 30, 22, 20, 66, 64, 20, 66, 30, 32, 66, 32, 20, 18, 68, 66, 18, 68, 32, 34, 68, 34, 18, 16, 70, 68, 16, 70, 34, 36, 70, 36, 16, 14, 72, 70, 14, 72, 36, 38, 72, 38, 38, 40, 74, 72, 40, 74, 14, 12, 74, 12, 12, 10, 76, 74, 10, 76, 40, 42, 76, 42, 10, 8, 78, 76, 8, 78, 42, 44, 78, 44, 8, 6, 80, 78, 6, 80, 44, 46, 80, 46, 6, 4, 82, 80, 4, 82, 46, 48, 82, 48, 4, 2, 84, 82, 2, 84, 48, 50, 84, 50, 2, 0, 0, 62, 58, 86, 86, 84, 0, 86, 50, 52, 52, 54, 86, 52 ], + "width": 24, + "height": 192 + } + }, + "bag-top": { + "bag-top": { + "name": "girl/bag-top", + "type": "mesh", + "uvs": [ 1, 0.14894, 0.84966, 0.28898, 0.7266, 0.46792, 0.65912, 0.72077, 0.65516, 0.89193, 0.50829, 1, 0.17883, 0.94639, 0.03593, 0.81802, 0.01211, 0.59629, 0, 0.33955, 0.11532, 0.13338, 0.28203, 0, 1, 0.07114 ], + "triangles": [ 10, 11, 1, 1, 11, 12, 3, 8, 2, 2, 9, 10, 2, 8, 9, 2, 10, 1, 0, 1, 12, 5, 6, 4, 6, 7, 4, 4, 7, 3, 7, 8, 3 ], + "vertices": [ 2, 57, -5.42, 3.3, 0.41, 58, -89.79, -49.81, 0.59, 3, 59, -13.49, -71.44, 0.03398, 57, 7.63, 18.88, 0.85009, 58, -76.74, -34.22, 0.11592, 3, 59, -4.05, -52.04, 0.16652, 57, 17.58, 38.03, 0.80014, 58, -66.8, -15.07, 0.03334, 3, 59, -1.04, -26.07, 0.43064, 57, 21.28, 63.9, 0.54658, 58, -63.1, 10.8, 0.02277, 3, 59, -3.04, -9.07, 0.70704, 57, 19.72, 80.95, 0.28124, 58, -64.65, 27.85, 0.01172, 1, 59, 9.7, 3.64, 1, 3, 59, 42.42, 2.84, 0.93871, 57, 65.48, 91.66, 0.04781, 58, -18.89, 38.56, 0.01348, 3, 59, 58.08, -7.91, 0.78056, 57, 80.85, 80.5, 0.08, 58, -3.52, 27.4, 0.13944, 3, 59, 63.49, -29.54, 0.29048, 57, 85.69, 58.73, 0.39733, 58, 1.31, 5.63, 0.31219, 3, 59, 68.25, -54.8, 0.05104, 57, 89.78, 33.36, 0.53142, 58, 5.41, -19.74, 0.41754, 2, 57, 80.9, 11.59, 0.38, 58, -3.48, -41.51, 0.62, 1, 58, -18.2, -56.62, 1, 2, 57, -4.53, -4.43, 0.41, 58, -88.91, -57.54, 0.59 ], + "hull": 13, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24, 2, 20, 8, 14 ], + "width": 98, + "height": 100 + } + }, + "base-head": { + "base-head": { "x": 74.74, "y": -10.09, "rotation": -87.57, "width": 189, "height": 145 } + }, + "body": { + "body": { + "name": "girl/body", + "type": "mesh", + "uvs": [ 0.59765, 0.99752, 0.42922, 1, 0.24876, 0.98569, 0.06428, 0.94872, 0.0322, 0.85553, 0.00613, 0.83483, 1.2E-4, 0.73129, 1.2E-4, 0.59965, 0.01215, 0.45174, 0.02217, 0.28165, 0.04624, 0.09676, 0.26881, 0, 0.59565, 0, 0.78012, 0.03908, 0.86835, 0.20473, 0.94053, 0.37187, 0.99066, 0.5257, 1, 0.64846, 1, 0.74608, 0.97663, 0.85405, 0.94455, 0.93392, 0.8102, 0.97682, 0.66583, 0.999, 0.27282, 0.87328, 0.44526, 0.88807, 0.58362, 0.88659, 0.66984, 0.88364, 0.81221, 0.8718, 0.94053, 0.8363, 0.61771, 0.76383, 0.71395, 0.75939, 0.26079, 0.7446, 0.95457, 0.70023, 0.96259, 0.76235, 0.61169, 0.64107, 0.58963, 0.51386, 0.54953, 0.37039, 0.64979, 0.35412, 0.6939, 0.50203, 0.71796, 0.63367, 0.26079, 0.53605, 0.2668, 0.3911, 0.85431, 0.31714, 0.93051, 0.4902, 0.42722, 0.12634, 0.54351, 0.11303, 0.49539, 0.24171, 0.59966, 0.221, 0.74202, 0.09676, 0.80218, 0.20473, 0.23071, 0.15001, 0.08634, 0.16924, 0.08233, 0.27721, 0.06428, 0.45174, 0.05225, 0.60409, 0.0703, 0.73425, 0.48183, 0.51247, 0.79828, 0.48323, 0.745, 0.43772 ], + "triangles": [ 17, 32, 43, 17, 43, 16, 32, 17, 18, 30, 34, 39, 33, 32, 18, 29, 34, 30, 32, 39, 57, 29, 31, 34, 5, 6, 55, 30, 32, 33, 32, 30, 39, 33, 27, 30, 19, 33, 18, 28, 33, 19, 4, 5, 55, 28, 27, 33, 31, 24, 23, 26, 29, 30, 26, 30, 27, 31, 29, 24, 25, 29, 26, 29, 25, 24, 20, 28, 19, 27, 28, 20, 4, 23, 3, 55, 23, 4, 31, 23, 55, 21, 26, 27, 21, 27, 20, 2, 3, 23, 0, 25, 26, 22, 0, 26, 21, 22, 26, 1, 23, 24, 2, 23, 1, 0, 1, 24, 0, 24, 25, 32, 57, 43, 42, 14, 15, 57, 42, 15, 31, 54, 40, 58, 37, 42, 57, 58, 42, 38, 37, 58, 38, 58, 57, 35, 36, 37, 35, 37, 38, 56, 36, 35, 43, 15, 16, 7, 8, 54, 39, 38, 57, 34, 35, 38, 34, 38, 39, 6, 7, 54, 31, 55, 54, 6, 54, 55, 56, 35, 34, 34, 31, 56, 43, 57, 15, 37, 49, 42, 48, 12, 13, 12, 44, 11, 45, 12, 48, 45, 44, 12, 50, 10, 11, 50, 11, 44, 51, 10, 50, 14, 49, 13, 48, 13, 49, 47, 45, 48, 47, 48, 49, 46, 44, 45, 46, 45, 47, 51, 9, 10, 52, 9, 51, 42, 49, 14, 37, 47, 49, 36, 46, 47, 36, 47, 37, 46, 41, 50, 46, 50, 44, 41, 46, 36, 52, 51, 50, 41, 52, 50, 53, 9, 52, 53, 52, 41, 8, 9, 53, 56, 41, 36, 40, 53, 41, 40, 41, 56, 54, 53, 40, 31, 40, 56, 54, 8, 53 ], + "vertices": [ 1, 2, 28.17, -64.12, 1, 1, 2, -4.5, -64.91, 1, 1, 2, -39.53, -61.29, 1, 1, 2, -75.35, -51.72, 1, 2, 3, -22.36, 79.55, 0.14323, 2, -81.68, -27.24, 0.85677, 2, 3, -16.73, 84.4, 0.19154, 2, -86.76, -21.81, 0.80846, 2, 3, 10.53, 84.54, 0.53301, 2, -88.04, 5.41, 0.46699, 2, 4, -18.75, 81.95, 0.21, 3, 45.12, 83.25, 0.79, 2, 4, 19.88, 76.85, 0.63, 3, 83.91, 79.46, 0.37, 1, 4, 64.36, 71.73, 1, 1, 4, 112.53, 63.61, 1, 1, 4, 134.84, 18.72, 1, 1, 4, 130.32, -44.52, 1, 2, 4, 117.52, -79.49, 0.86136, 3, 186.78, -73.49, 0.13864, 2, 4, 72.85, -93.46, 0.64743, 3, 142.61, -88.96, 0.35257, 3, 4, 28, -104.29, 0.26062, 3, 98.16, -101.31, 0.60938, 2, 94, 100.7, 0.13, 3, 4, -13.04, -111.11, 0.15, 3, 57.36, -109.51, 0.44607, 2, 103.9, 60.29, 0.40393, 3, 4, -45.38, -110.62, 0.11, 3, 25.03, -110.11, 0.28777, 2, 105.84, 28.01, 0.60223, 3, 4, -70.99, -108.79, 0.04, 3, -0.62, -109.15, 0.15795, 2, 105.95, 2.33, 0.80205, 1, 2, 101.54, -26.08, 1, 1, 2, 95.4, -47.11, 1, 1, 2, 69.38, -58.5, 1, 1, 2, 41.4, -64.45, 1, 1, 2, -34.98, -31.71, 1, 1, 2, -1.51, -35.46, 1, 1, 2, 25.33, -34.96, 1, 1, 2, 42.05, -34.11, 1, 1, 2, 69.66, -30.88, 1, 1, 2, 94.51, -21.44, 1, 1, 2, 31.81, -2.64, 1, 1, 2, 50.47, -1.4, 1, 2, 3, 5.13, 34.14, 0.47225, 2, -37.46, 2.12, 0.52775, 3, 4, -58.33, -100.86, 0.09, 3, 11.76, -100.8, 0.21274, 2, 97.09, 14.36, 0.69726, 3, 4, -74.74, -101.25, 0.05, 3, -4.63, -101.74, 0.13139, 2, 98.71, -1.97, 0.81861, 3, 4, -38.07, -35.62, 0.12, 3, 29.8, -34.91, 0.46014, 2, 30.5, 29.64, 0.41986, 3, 4, -4.4, -33.73, 0.32, 3, 63.39, -31.88, 0.5848, 2, 26.08, 63.07, 0.0952, 2, 4, 33.79, -28.66, 0.53, 3, 101.38, -25.52, 0.47, 2, 4, 36.68, -48.36, 0.50575, 3, 104.93, -45.12, 0.49425, 3, 4, -2.73, -54.13, 0.32, 3, 65.74, -52.21, 0.578, 2, 46.3, 66.27, 0.102, 3, 4, -37.6, -56.32, 0.12, 3, 30.97, -55.58, 0.4488, 2, 51.11, 31.67, 0.4312, 1, 4, -5.67, 30.32, 1, 1, 4, 32.27, 26.44, 1, 3, 4, 43.55, -88.63, 0.42337, 3, 113.17, -85.13, 0.53663, 2, 77.21, 115.03, 0.04, 3, 4, -2.9, -100.14, 0.24, 3, 67.13, -98.2, 0.4463, 2, 92.19, 69.57, 0.3137, 1, 4, 99.51, -9.56, 1, 1, 4, 101.39, -32.32, 1, 2, 4, 68.3, -20.59, 0.85, 3, 135.6, -16.29, 0.15, 2, 4, 72.29, -41.16, 0.83269, 3, 140.28, -36.71, 0.16731, 2, 4, 102.92, -71.03, 0.84329, 3, 171.9, -65.53, 0.15671, 2, 4, 73.76, -80.65, 0.68178, 3, 143.09, -76.13, 0.31822, 1, 4, 96.01, 28.91, 1, 1, 4, 92.97, 57.2, 1, 1, 4, 64.7, 60, 1, 2, 4, 19.16, 66.76, 0.69519, 3, 83.53, 69.35, 0.30481, 2, 4, -20.64, 71.95, 0.21, 3, 43.58, 73.18, 0.79, 2, 3, 9.24, 70.97, 0.46736, 2, -74.42, 4.69, 0.53264, 2, 4, -2.54, -12.9, 0.39471, 3, 64.54, -11, 0.60529, 3, 4, 0.76, -74.68, 0.37, 3, 69.92, -72.63, 0.47153, 2, 66.53, 71.3, 0.15847, 3, 4, 13.43, -65.22, 0.37172, 3, 82.27, -62.75, 0.51471, 2, 56.14, 83.22, 0.11357 ], + "hull": 23, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 0, 44, 58, 62 ], + "width": 194, + "height": 263 + } + }, + "boot-ribbon-back": { + "boot-ribbon-back": { "name": "girl/boot-ribbon-front", "x": 67.51, "y": 16.46, "rotation": 90.17, "width": 26, "height": 25 } + }, + "boot-ribbon-front": { + "boot-ribbon-front": { "name": "girl/boot-ribbon-front", "x": 31.67, "y": 16.34, "rotation": 89.95, "width": 26, "height": 25 } + }, + "ear": { + "ear": { "name": "girl/ear", "x": 56.58, "y": 85.63, "rotation": -87.57, "width": 38, "height": 45 } + }, + "eye-back-eyebrow": { + "eye-back-eyebrow": { "name": "girl/back-eyebrow", "x": 15.6, "y": -9.48, "rotation": -177.9, "width": 36, "height": 23 } + }, + "eye-back-iris": { + "eye-back-iris": { "name": "girl/eye-iris-back", "x": 0.85, "y": -0.75, "width": 33, "height": 34 } + }, + "eye-back-low-eyelid": { + "eye-back-low-eyelid": { + "name": "girl/eye-back-low-eyelid", + "type": "mesh", + "uvs": [ 0, 0.26476, 0.20331, 0.79621, 0.50495, 0.95421, 0.8401, 0.89676, 1, 0.33658, 0.88319, 0.07803, 0.75871, 0.25039, 0.5241, 0.35094, 0.31343, 0.19294, 0.09798, 0 ], + "triangles": [ 3, 2, 7, 2, 1, 7, 7, 6, 3, 3, 6, 4, 1, 8, 7, 1, 0, 8, 6, 5, 4, 0, 9, 8 ], + "vertices": [ 1, 42, -29.75, 1.38, 1, 2, 42, -23.04, -4.47, 0.63, 43, 23.4, -1.82, 0.37, 2, 42, -13.09, -6.21, 0.62, 43, 14.27, 2.5, 0.38, 2, 42, -2.03, -5.57, 0.76, 43, 3.44, 4.83, 0.24, 1, 42, 3.25, 0.59, 1, 1, 42, -0.61, 3.43, 1, 2, 42, -4.72, 1.54, 0.76, 43, 4.14, -2.74, 0.24, 2, 42, -12.46, 0.43, 0.62, 43, 11.9, -3.73, 0.38, 2, 42, -19.41, 2.17, 0.63, 43, 18.14, -7.25, 0.37, 1, 42, -26.52, 4.29, 1 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 33, + "height": 11 + } + }, + "eye-back-pupil": { + "eye-back-pupil": { + "name": "girl/eye-back-pupil", + "x": 0.43, + "y": -0.67, + "scaleX": 1.2, + "scaleY": 1.2062, + "width": 15, + "height": 17 + } + }, + "eye-back-up-eyelid": { + "eye-back-up-eyelid": { + "name": "girl/eye-back-up-eyelid", + "type": "mesh", + "uvs": [ 0.07861, 0.9592, 0.24977, 0.54703, 0.44727, 0.42338, 0.58882, 0.40964, 0.77315, 0.59512, 1, 0.16921, 1, 0, 0.76657, 0.13486, 0.61844, 0, 0.40119, 0.01807, 0.18065, 0.25164, 0, 0.73938, 0, 0.95234 ], + "triangles": [ 1, 10, 2, 3, 2, 9, 2, 10, 9, 3, 9, 8, 3, 8, 7, 1, 0, 11, 0, 12, 11, 11, 10, 1, 3, 7, 4, 4, 7, 5, 7, 6, 5 ], + "vertices": [ 1, 40, -31.8, -11.42, 1, 2, 40, -23.59, -1.94, 0.51, 41, 22.75, 6.53, 0.49, 2, 40, -14.11, 0.91, 0.15, 41, 14.01, 1.88, 0.85, 1, 41, 7.41, 0.24, 1, 1, 40, 1.53, -3.04, 1, 1, 40, 12.42, 6.75, 1, 1, 40, 12.42, 10.64, 1, 1, 40, 1.22, 7.54, 1, 1, 41, 7.87, -9.28, 1, 2, 40, -16.32, 10.23, 0.15, 41, 18.01, -6.83, 0.85, 2, 40, -26.91, 4.86, 0.52, 41, 27.34, 0.52, 0.48, 1, 40, -35.58, -6.36, 1, 1, 40, -35.58, -11.26, 1 ], + "hull": 13, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24 ], + "width": 48, + "height": 23 + } + }, + "eye-back-up-eyelid-back": { + "eye-back-up-eyelid-back": { + "name": "girl/eye-back-up-eyelid-back", + "type": "mesh", + "uvs": [ 0.12627, 1, 0, 0.99472, 0, 0.60349, 0.16345, 0.30253, 0.44692, 0.06177, 0.74898, 0.00911, 1, 0.1972, 1, 0.52073, 0.72574, 0.37025, 0.49339, 0.42292, 0.25639, 0.68625 ], + "triangles": [ 0, 1, 2, 10, 0, 2, 10, 3, 9, 9, 4, 8, 8, 6, 7, 2, 3, 10, 3, 4, 9, 8, 5, 6, 8, 4, 5 ], + "vertices": [ 1, 40, -28.64, -7.74, 1, 1, 40, -32.94, -7.63, 1, 1, 39, -19.88, 27.79, 1, 1, 39, -14.32, 34.11, 1, 1, 39, -4.69, 39.17, 1, 1, 39, 5.58, 40.27, 1, 1, 39, 14.12, 36.32, 1, 1, 40, 1.06, 2.33, 1, 1, 41, 9.18, -3.76, 1, 2, 41, 16.71, -1.13, 0.92, 40, -16.16, 4.38, 0.08, 2, 41, 23.53, 5.88, 0.33, 40, -24.22, -1.15, 0.67 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 34, + "height": 21 + } + }, + "eye-back-white": { + "eye-back-white": { + "name": "girl/eye-white-back", + "type": "mesh", + "uvs": [ 0, 0.39191, 0.07911, 0.7283, 0.26952, 0.95255, 0.56931, 0.98823, 0.90962, 0.92197, 1, 0.50404, 0.94608, 0.17784, 0.76378, 0.00455, 0.50855, 0, 0.20875, 0.12178, 0.56121, 0.48365 ], + "triangles": [ 3, 2, 10, 4, 3, 10, 2, 1, 10, 4, 10, 5, 10, 8, 7, 9, 8, 10, 1, 0, 10, 10, 6, 5, 0, 9, 10, 10, 7, 6 ], + "vertices": [ 1, 40, -34.26, -6.05, 1, 1, 42, -30.63, 5.01, 1, 2, 42, -23.2, -1.94, 0.5, 43, 22.88, -4.3, 0.5, 2, 42, -11.51, -3.04, 0.61, 43, 11.91, -0.13, 0.39, 1, 42, 1.76, -0.99, 1, 2, 40, 4.74, -9.52, 0.54, 42, 5.29, 11.97, 0.46, 1, 40, 2.64, 0.59, 1, 2, 40, -4.47, 5.96, 0.35, 41, 5.55, -4.97, 0.65, 2, 40, -14.42, 6.1, 0.22, 41, 15.34, -3.16, 0.78, 2, 40, -26.12, 2.33, 0.49, 41, 26.07, 2.84, 0.51, 2, 40, -12.37, -8.89, 0.71, 43, 8.05, -15.29, 0.29 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 39, + "height": 31 + } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { "name": "girl/front-eyebrow", "x": 10.82, "y": 8.92, "rotation": -3.58, "width": 36, "height": 23 } + }, + "eye-front-iris": { + "eye-front-iris": { "name": "girl/eye-iris-front", "x": 0.22, "y": -0.71, "width": 36, "height": 35 } + }, + "eye-front-low-eyelid": { + "eye-front-low-eyelid": { + "name": "girl/eye-front-low-eyelid", + "type": "mesh", + "uvs": [ 0.07038, 0, 0, 0.43773, 0.24154, 0.94046, 0.64093, 0.92609, 1, 0.39464, 1, 0.00682, 0.8516, 0, 0.61899, 0.36591, 0.30738, 0.39464 ], + "triangles": [ 8, 7, 3, 2, 8, 3, 2, 1, 8, 6, 5, 4, 7, 6, 4, 1, 0, 8, 3, 7, 4 ], + "vertices": [ 1, 36, -0.25, 5.3, 1, 1, 36, -2.79, 0.49, 1, 1, 37, 6.69, -3.95, 1, 2, 36, 20.29, -4.89, 0.61, 37, 20.82, -1.32, 0.39, 1, 36, 33.21, 0.96, 1, 1, 36, 33.21, 5.23, 1, 1, 36, 27.87, 5.3, 1, 2, 36, 19.5, 1.28, 0.61, 37, 18.99, 4.61, 0.39, 1, 37, 7.99, 2.37, 1 ], + "hull": 9, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 0, 16 ], + "width": 36, + "height": 11 + } + }, + "eye-front-pupil": { + "eye-front-pupil": { + "name": "girl/eye-front-pupil", + "x": -0.04, + "y": -0.47, + "scaleX": 1.2, + "scaleY": 1.2, + "width": 17, + "height": 17 + } + }, + "eye-front-up-eyelid": { + "eye-front-up-eyelid": { + "name": "girl/eye-front-up-eyelid", + "type": "mesh", + "uvs": [ 0.32251, 0.43387, 0.36464, 0.94737, 0.28564, 1, 0.16714, 0.73859, 0.15924, 0.42823, 0, 0.24201, 0, 0, 0.22771, 0.2138, 0.41731, 0, 0.66747, 0, 0.88604, 0.23637, 1, 0.54673, 1, 0.81194, 0.86497, 0.79501, 0.74121, 0.4903, 0.61217, 0.35487, 0.45417, 0.35487 ], + "triangles": [ 14, 15, 10, 2, 3, 1, 3, 0, 1, 13, 11, 12, 13, 14, 11, 3, 4, 0, 14, 10, 11, 0, 4, 7, 4, 5, 7, 5, 6, 7, 16, 0, 7, 7, 8, 16, 10, 15, 9, 9, 15, 8, 15, 16, 8 ], + "vertices": [ 2, 35, 6.87, 1.33, 0.47507, 34, 6.4, 2.84, 0.52493, 2, 35, 6.12, -13.25, 0.09298, 34, 8.93, -11.54, 0.90702, 1, 34, 4.19, -13.01, 1, 1, 34, -2.92, -5.69, 1, 2, 35, -2.64, 3.68, 0.0415, 34, -3.4, 3, 0.9585, 1, 34, -12.95, 8.21, 1, 1, 34, -12.95, 14.99, 1, 2, 35, 2.71, 8.61, 0.27883, 34, 0.71, 9, 0.72117, 1, 35, 15.14, 11.9, 1, 2, 35, 29.76, 8.54, 0.65, 34, 27.1, 14.99, 0.35, 2, 35, 41.06, -0.85, 0.28137, 34, 40.21, 8.37, 0.71863, 1, 34, 47.05, -0.32, 1, 1, 34, 47.05, -7.75, 1, 2, 35, 36.33, -15.81, 0.07124, 34, 38.95, -7.27, 0.92876, 2, 35, 31, -5.83, 0.45, 34, 31.52, 1.26, 0.55, 2, 35, 24.31, -0.4, 0.65, 34, 23.78, 5.05, 0.35, 2, 35, 15.07, 1.72, 0.76, 34, 14.3, 5.05, 0.24 ], + "hull": 17, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 0, 32 ], + "width": 60, + "height": 28 + } + }, + "eye-front-up-eyelid-back": { + "eye-front-up-eyelid-back": { + "name": "girl/eye-front-up-eyelid-back", + "type": "mesh", + "uvs": [ 0.05111, 0.59525, 0.31445, 0.34389, 0.48174, 0.29362, 0.69861, 0.43007, 0.81323, 0.65271, 0.90617, 1, 1, 1, 1, 0.74607, 0.93406, 0.48034, 0.78845, 0.18589, 0.62115, 0, 0.49104, 0, 0.26798, 0, 0, 0.28644, 0, 0.48752 ], + "triangles": [ 3, 2, 9, 2, 1, 12, 5, 7, 6, 5, 4, 7, 4, 8, 7, 4, 3, 8, 0, 14, 1, 14, 13, 1, 3, 9, 8, 10, 9, 2, 10, 2, 11, 1, 13, 12, 2, 12, 11 ], + "vertices": [ 1, 78, -25.28, -10.9, 1, 1, 35, 14.1, 7.02, 1, 1, 35, 22.66, 6.19, 1, 2, 78, 7.58, -7.27, 0.37, 35, 32.77, 0.79, 0.63, 2, 78, 13.43, -12.17, 0.71, 35, 37.37, -5.29, 0.29, 1, 78, 18.17, -19.81, 1, 1, 78, 22.96, -19.81, 1, 1, 78, 22.96, -14.22, 1, 1, 78, 19.59, -8.37, 1, 1, 78, 12.17, -1.9, 1, 1, 78, 3.63, 2.19, 1, 1, 78, -3, 2.19, 1, 1, 78, -14.38, 2.19, 1, 1, 78, -28.04, -4.11, 1, 1, 78, -28.04, -8.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 51, + "height": 22 + } + }, + "eye-front-white": { + "eye-front-white": { + "name": "girl/eye-white-front", + "type": "mesh", + "uvs": [ 0, 0.13677, 0.03631, 0.56139, 0.18641, 0.96133, 0.54191, 0.97121, 0.90531, 0.87739, 1, 0.54164, 1, 0.24046, 0.80425, 0.13009, 0.57351, 0, 0.25751, 0.00346, 0.47082, 0.52682 ], + "triangles": [ 3, 2, 10, 2, 1, 10, 4, 3, 10, 4, 10, 5, 7, 6, 5, 1, 0, 10, 10, 9, 8, 10, 8, 7, 10, 7, 5, 0, 9, 10 ], + "vertices": [ 1, 34, 3.55, 4.71, 1, 2, 34, 5, -8.88, 0.5, 36, -3.97, 10.98, 0.5, 2, 36, 2.03, -1.82, 0.36, 37, 2.31, -1.44, 0.64, 2, 36, 16.25, -2.14, 0.32, 37, 16.37, 0.69, 0.68, 1, 36, 30.79, 0.87, 1, 1, 36, 34.57, 11.61, 1, 1, 34, 43.55, 1.39, 1, 2, 35, 35.91, -3.2, 0.27, 34, 35.72, 4.92, 0.73, 2, 35, 27.85, 2.93, 0.54, 34, 26.49, 9.09, 0.46, 2, 35, 15.51, 5.65, 0.62, 34, 13.85, 8.98, 0.38, 2, 35, 20.07, -12.59, 0.81, 37, 11.13, 14.21, 0.19 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 16, 18, 0, 18, 12, 14, 14, 16 ], + "width": 40, + "height": 32 + } + }, + "hair-back": { + "hair-back": { + "name": "girl/hair-back", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 6, -3.46, -135.36, 0.71, 30, 189.29, -78.03, 0.29, 2, 6, -15.93, 158.38, 0.71, 30, -104.71, -78.03, 0.29, 2, 6, 168.91, 166.22, 0.71, 30, -104.71, 106.97, 0.29, 2, 6, 181.37, -127.51, 0.71, 30, 189.29, 106.97, 0.29 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 294, + "height": 185 + } + }, + "hair-bangs": { + "hair-bangs": { + "name": "girl/hair-bangs", + "type": "mesh", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "girl/hair-bangs", + "type": "mesh", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch", + "type": "mesh", + "color": "71ffe7ff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-side-back": { + "hair-side-back": { + "name": "girl/hair-head-side-back", + "type": "mesh", + "uvs": [ 0.17374, 0.1545, 0.22967, 0.37557, 0.21289, 0.61586, 0, 0.86256, 0, 1, 0.25205, 1, 0.45899, 0.87537, 0.69391, 0.87858, 0.80577, 0.69916, 0.82815, 0.52615, 1, 0.46528, 0.99594, 0.21858, 0.73306, 0.04236, 0.53171, 0, 0.27442, 0.04877, 0.51493, 0.5678, 0.59323, 0.17692, 0.73306, 0.35954, 0.46459, 0.76964 ], + "triangles": [ 17, 11, 10, 15, 1, 16, 16, 14, 13, 14, 16, 1, 1, 0, 14, 16, 12, 17, 17, 12, 11, 16, 13, 12, 15, 16, 17, 2, 1, 15, 5, 18, 6, 5, 4, 3, 6, 18, 7, 7, 18, 8, 5, 3, 2, 18, 5, 2, 18, 15, 8, 18, 2, 15, 8, 15, 9, 9, 17, 10, 15, 17, 9 ], + "vertices": [ 2, 47, 44.16, -9.72, 0.072, 6, 75.71, -87.13, 0.928, 2, 47, 65.84, -17.42, 0.21564, 6, 53.1, -91.39, 0.78436, 2, 47, 87.28, -29.83, 0.5439, 6, 28.33, -91.45, 0.4561, 3, 47, 103.9, -52.79, 0.8752, 6, 2.41, -79.98, 0.09988, 30, 134.21, -69.81, 0.02493, 3, 47, 116.42, -59.39, 0.89423, 6, -11.73, -80.58, 0.014, 30, 134.21, -83.97, 0.09177, 3, 47, 123.36, -46.24, 0.87011, 6, -11.1, -95.43, 0.00989, 30, 149.08, -83.97, 0.12, 3, 47, 117.69, -29.45, 0.77082, 6, 2.24, -107.09, 0.0941, 30, 161.29, -71.13, 0.13508, 3, 47, 124.45, -17.35, 0.86922, 6, 2.5, -120.95, 0.00701, 30, 175.15, -71.46, 0.12377, 3, 47, 111.18, -2.89, 0.73582, 6, 21.24, -126.76, 0.12392, 30, 181.75, -52.98, 0.14026, 3, 47, 96.03, 6.59, 0.55463, 6, 39.1, -127.33, 0.32878, 30, 183.07, -35.16, 0.11659, 3, 47, 95.21, 18.48, 0.54495, 6, 45.79, -137.19, 0.37264, 30, 193.21, -28.89, 0.08241, 2, 47, 72.62, 30.12, 0.39164, 6, 71.17, -135.87, 0.60836, 2, 47, 49.33, 24.86, 0.13442, 6, 88.65, -119.61, 0.86558, 2, 47, 39.93, 16.38, 0.03367, 6, 92.5, -107.55, 0.96633, 2, 47, 37.3, 0.61, 0.176, 6, 86.84, -92.6, 0.824, 3, 47, 91.21, -11.76, 0.52, 6, 34.03, -109.04, 0.39641, 30, 164.59, -39.45, 0.08358, 2, 47, 57.74, 11.1, 0.24029, 6, 74.45, -111.95, 0.75971, 3, 47, 78.23, 9.62, 0.39663, 6, 56.01, -120.99, 0.565, 30, 177.46, -18, 0.03837, 3, 47, 108.21, -24.08, 0.64328, 6, 13.13, -106.96, 0.22492, 30, 161.62, -60.24, 0.1318 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 59, + "height": 103 + } + }, + "hair-side-front": { + "hair-side-front": { + "name": "girl/hair-head-side-front", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 6, 5.69, 38.25, 1, 1, 6, 2.21, 120.17, 1, 1, 6, 85.14, 123.69, 1, 1, 6, 88.61, 41.77, 1 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 82, + "height": 83 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-strand-back-1": { + "hair-strand-back-1": { + "name": "girl/hair-strand-back-1", + "type": "mesh", + "uvs": [ 0.04701, 0.06856, 0.1845, 0.21146, 0.29181, 0.36494, 0.41253, 0.53695, 0.51314, 0.76717, 0.60368, 1, 0.80489, 0.9974, 1, 0.89948, 1, 0.64544, 0.93567, 0.4311, 0.81159, 0.31731, 0.6674, 0.20352, 0.48631, 0.08444, 0.28846, 0, 0.7244, 0.58458 ], + "triangles": [ 14, 9, 8, 14, 8, 7, 6, 14, 7, 4, 14, 6, 5, 4, 6, 14, 10, 9, 4, 3, 14, 2, 1, 12, 1, 0, 13, 12, 1, 13, 14, 3, 10, 3, 11, 10, 11, 2, 12, 11, 3, 2 ], + "vertices": [ 1, 70, 7.91, 19.32, 1, 2, 70, -14.24, 5, 0.86951, 71, 5.53, -19.35, 0.13049, 2, 70, -37.68, -5.71, 0.79, 71, 31.29, -19.18, 0.21, 2, 70, -63.95, -17.77, 0.63, 71, 60.2, -18.95, 0.37, 2, 70, -98.57, -26.85, 0.42, 71, 95.5, -24.85, 0.58, 2, 70, -133.49, -34.74, 0.24, 71, 130.59, -31.96, 0.76, 2, 70, -134.87, -58.05, 0.09, 71, 141.4, -11.27, 0.91, 2, 70, -122.23, -81.7, 0.09, 71, 139.56, 15.49, 0.91, 2, 70, -84.99, -84.52, 0.24, 71, 106.74, 33.32, 0.76, 2, 70, -53.01, -79.45, 0.42, 71, 75.5, 41.8, 0.58, 2, 70, -35.24, -66.36, 0.63, 71, 53.93, 37.14, 0.37, 2, 70, -17.3, -50.94, 0.79, 71, 31.24, 30.43, 0.21, 2, 70, 1.74, -31.32, 0.83374, 71, 5.83, 20.33, 0.16626, 2, 70, 15.84, -9.37, 0.97706, 71, -16.03, 6.09, 0.02294, 2, 70, -73.66, -53.31, 0.42, 71, 83.62, 9.5, 0.58 ], + "hull": 14, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 0, 26, 6, 20 ], + "width": 116, + "height": 147 + } + }, + "hair-strand-back-2": { + "hair-strand-back-2": { + "name": "girl/hair-strand-back-2", + "type": "mesh", + "uvs": [ 0.01457, 0.31586, 0.12358, 0.46132, 0.26678, 0.63383, 0.42922, 0.79619, 0.61731, 0.96871, 0.77975, 1, 0.92509, 0.83679, 1, 0.68795, 0.98066, 0.50191, 0.86311, 0.43087, 0.68571, 0.33616, 0.48479, 0.26174, 0.34159, 0.14673, 0.24113, 0.08923, 0.08938, 0.13997, 0.65683, 0.61285 ], + "triangles": [ 5, 4, 6, 4, 15, 6, 4, 3, 15, 6, 15, 7, 8, 15, 9, 15, 8, 7, 15, 10, 9, 3, 2, 15, 15, 11, 10, 15, 2, 11, 2, 1, 11, 0, 14, 1, 1, 12, 11, 12, 14, 13, 12, 1, 14 ], + "vertices": [ 1, 70, -9.44, 45.94, 1, 2, 70, -27.62, 27.42, 0.75, 72, -16.98, -30.25, 0.25, 2, 70, -49.36, 2.93, 0.61, 72, 15.22, -36.25, 0.39, 2, 70, -70.21, -25.14, 0.44, 72, 50.02, -39.65, 0.56, 2, 70, -92.58, -57.78, 0.25, 72, 89.52, -41.98, 0.75, 2, 70, -98.39, -86.99, 0.12, 72, 117.55, -31.91, 0.88, 2, 70, -81.67, -114.78, 0.06, 72, 132.74, -3.26, 0.94, 2, 70, -65.63, -129.67, 0.06, 72, 137.23, 18.16, 0.94, 2, 70, -44.03, -127.77, 0.17, 72, 124.47, 35.69, 0.83, 2, 70, -34.28, -107.05, 0.25, 72, 101.68, 33.37, 0.75, 2, 70, -20.98, -75.68, 0.44, 72, 67.94, 28.59, 0.56, 2, 70, -9.69, -39.86, 0.61, 72, 31.43, 19.8, 0.39, 1, 70, 5.47, -14.87, 1, 1, 70, 13.44, 2.86, 1, 1, 70, 9.7, 30.84, 1, 2, 70, -52.31, -68.04, 0.32, 72, 77.55, -2.19, 0.68 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 182, + "height": 115 + } + }, + "hair-strand-back-3": { + "hair-strand-back-3": { "name": "girl/hair-strand-back-3", "x": 56.8, "y": -25.4, "rotation": 55.29, "width": 184, "height": 157 } + }, + "hair-strand-front-1": { + "hair-strand-front-1": { + "name": "girl/hair-strand-front-1", + "type": "mesh", + "uvs": [ 0.27351, 0, 0.15941, 0.16999, 0.0453, 0.35929, 0, 0.56107, 0.02974, 0.77118, 0.16459, 0.90639, 0.41355, 1, 0.78181, 1, 1, 0.95007, 1, 0.76493, 0.9789, 0.55691, 0.93222, 0.36345, 0.95297, 0.16999, 0.95815, 0, 0.48617, 0.76077, 0.52766, 0.55483, 0.54841, 0.37177 ], + "triangles": [ 3, 2, 15, 10, 15, 11, 14, 3, 15, 4, 3, 14, 5, 4, 14, 9, 15, 10, 6, 5, 14, 15, 9, 14, 8, 7, 9, 7, 14, 9, 6, 14, 7, 15, 2, 16, 13, 12, 16, 16, 2, 1, 13, 16, 0, 1, 0, 16, 11, 16, 12, 15, 16, 11 ], + "vertices": [ 1, 67, 23.66, 11.57, 1, 1, 67, -7.39, 22.5, 1, 2, 67, -42.05, 33.7, 0.56777, 68, 38.87, -36.21, 0.43223, 2, 67, -79.42, 39.94, 0.27008, 68, 76.66, -38.93, 0.72992, 2, 67, -118.76, 40.68, 0.08712, 68, 115.9, -36, 0.91288, 2, 67, -144.74, 32.5, 0.04098, 68, 141, -25.44, 0.95902, 2, 67, -163.6, 15.2, 0.07679, 68, 158.17, -6.46, 0.92321, 2, 67, -165.68, -12.34, 0.10317, 68, 157.68, 21.16, 0.89683, 2, 67, -157.61, -29.36, 0.11136, 68, 148.05, 37.35, 0.88864, 2, 67, -123.09, -31.97, 0.26753, 68, 113.44, 36.73, 0.73247, 2, 67, -84.18, -33.33, 0.41647, 68, 74.57, 34.46, 0.58353, 2, 67, -47.84, -32.57, 0.58895, 68, 38.46, 30.31, 0.41105, 2, 67, -11.88, -36.85, 0.76035, 68, 2.26, 31.22, 0.23965, 1, 67, 19.79, -39.63, 1, 2, 67, -119.4, 6.4, 0.21442, 68, 113.35, -1.81, 0.78558, 2, 67, -81.24, 0.39, 0.42231, 68, 74.79, 0.61, 0.57769, 2, 67, -47.22, -3.74, 0.5861, 68, 40.53, 1.56, 0.4139 ], + "hull": 14, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 0, 26 ], + "width": 75, + "height": 187 + } + }, + "hair-strand-front-2": { + "hair-strand-front-2": { + "name": "girl/hair-strand-front-3", + "type": "mesh", + "uvs": [ 1, 0.04687, 0.9312, 0.23176, 0.86413, 0.43106, 0.82389, 0.63997, 0.79259, 0.84408, 0.75235, 1, 0.33205, 0.99055, 0, 0.93772, 0, 0.73362, 0.0593, 0.55113, 0.20685, 0.37103, 0.42595, 0.19094, 0.73893, 0, 0.95355, 0, 0.5422, 0.39985, 0.43936, 0.60395, 0.70316, 0.20295 ], + "triangles": [ 15, 8, 9, 9, 10, 15, 5, 6, 4, 15, 6, 8, 6, 15, 4, 6, 7, 8, 4, 15, 3, 15, 14, 3, 10, 11, 14, 14, 16, 2, 3, 14, 2, 15, 10, 14, 1, 13, 0, 1, 12, 13, 16, 11, 12, 16, 12, 1, 2, 16, 1, 14, 11, 16 ], + "vertices": [ 1, 67, 12.41, -11.23, 1, 2, 67, -17, -3.01, 0.95, 74, 9.72, 24.71, 0.05, 2, 67, -48.76, 5.25, 0.57, 74, 42.51, 25.72, 0.43, 2, 67, -82.24, 11.29, 0.38, 74, 76.34, 29.34, 0.62, 2, 67, -115.01, 16.5, 0.21, 74, 109.25, 33.55, 0.79, 1, 74, 134.69, 35.39, 1, 1, 74, 140.8, -0.7, 1, 1, 74, 138.44, -30.73, 1, 2, 67, -91.96, 83.91, 0.21, 74, 106.1, -37.62, 0.79, 2, 67, -62.87, 76.54, 0.38, 74, 76.11, -38.72, 0.62, 2, 67, -34.75, 61.53, 0.57, 74, 44.9, -32.24, 0.43, 2, 67, -7.09, 40.33, 0.95, 74, 12.4, -19.67, 0.05, 1, 67, 21.7, 10.84, 1, 1, 67, 20.29, -7.78, 1, 2, 67, -41.6, 32.79, 0.57, 74, 43.4, -2.73, 0.43, 2, 67, -73.9, 44.21, 0.38, 74, 77.6, -4.6, 0.62, 2, 67, -10.85, 16.43, 0.95, 74, 9.28, 4.33, 0.05 ], + "hull": 14, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 0, 26, 4, 28, 6, 30, 2, 32 ], + "width": 87, + "height": 162 + } + }, + "hair-strand-front-3": { + "hair-strand-front-3": { + "name": "girl/hair-flap-down-front", + "type": "mesh", + "uvs": [ 0.7113, 0.13231, 0.65533, 0.28192, 0.56017, 0.43154, 0.40905, 0.55721, 0.17677, 0.69187, 0, 0.80558, 0, 1, 0.25793, 1, 0.57976, 0.97015, 0.72529, 0.80258, 0.86242, 0.63501, 0.94078, 0.47044, 0.98835, 0.2909, 1, 0.12034, 0.95757, 0, 0.78406, 0, 0.46222, 0.70982, 0.68891, 0.54524, 0.82604, 0.30287 ], + "triangles": [ 12, 18, 13, 14, 13, 15, 15, 13, 0, 11, 18, 12, 1, 0, 18, 18, 0, 13, 17, 1, 18, 10, 17, 11, 7, 5, 4, 7, 16, 8, 7, 4, 16, 7, 6, 5, 8, 16, 9, 16, 17, 9, 9, 17, 10, 4, 3, 16, 17, 3, 2, 17, 16, 3, 2, 1, 17, 17, 18, 11 ], + "vertices": [ 2, 69, 10.11, -20.49, 0.51752, 67, 12.87, 47.65, 0.48248, 2, 69, 30.11, -14.28, 0.4, 67, -5.94, 56.87, 0.6, 2, 69, 53.55, -12.3, 0.61, 67, -24.34, 71.53, 0.39, 2, 69, 79.47, -18.32, 0.76137, 67, -39.04, 93.71, 0.23863, 2, 69, 113.41, -32.36, 0.92, 67, -54.06, 127.22, 0.08, 1, 69, 140.37, -42.13, 1, 1, 69, 160, -26.2, 1, 1, 69, 137.41, 1.64, 1, 2, 69, 106.21, 33.93, 0.98205, 67, -94.36, 74.1, 0.01795, 2, 69, 76.55, 35.92, 0.74286, 67, -74.17, 52.28, 0.25714, 2, 69, 47.62, 36.99, 0.61, 67, -53.88, 31.63, 0.39, 2, 69, 24.14, 31.97, 0.54, 67, -33.37, 19.16, 0.46, 2, 69, 1.85, 22.4, 0.50655, 67, -10.59, 10.8, 0.49345, 2, 69, -16.39, 9.69, 0.46244, 67, 11.39, 7.52, 0.53756, 2, 69, -24.82, -4.75, 0.46, 67, 27.44, 12.22, 0.54, 2, 69, -9.62, -23.48, 0.48913, 67, 29.26, 36.27, 0.51087, 2, 69, 90.22, -0.08, 0.81, 67, -59.38, 87.83, 0.19, 2, 69, 53.75, 10.91, 0.61, 67, -40.43, 54.8, 0.39, 2, 69, 17.28, 5.86, 0.4, 67, -10.44, 33.42, 0.6 ], + "hull": 16, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30 ], + "width": 139, + "height": 130 + } + }, + "hair-strand-front-4": { + "hair-strand-front-4": { + "name": "girl/hair-strand-front-2", + "type": "mesh", + "uvs": [ 0.77614, 0, 0.63901, 0.21786, 0.44871, 0.36957, 0.21083, 0.45904, 0, 0.5524, 0, 0.8247, 0.31438, 1, 0.60822, 0.99586, 0.75655, 0.80525, 0.88248, 0.59908, 0.96084, 0.37346, 1, 0.13228, 1, 0, 0.47949, 0.68466, 0.76494, 0.43181 ], + "triangles": [ 9, 14, 10, 14, 1, 10, 0, 12, 11, 11, 1, 0, 10, 1, 11, 8, 13, 14, 2, 1, 14, 13, 2, 14, 3, 2, 13, 5, 4, 3, 5, 3, 13, 7, 13, 8, 6, 5, 13, 6, 13, 7, 9, 8, 14 ], + "vertices": [ 2, 75, -8.6, -29.1, 0.20005, 67, 27.34, 23.62, 0.79995, 2, 75, 16.25, -14.26, 0.5448, 67, 7.05, 44.27, 0.4552, 2, 75, 46.09, -8, 0.62198, 67, -6.08, 71.79, 0.37802, 2, 75, 80.31, -9.69, 0.78836, 67, -12.51, 105.43, 0.21164, 2, 75, 111.06, -9.86, 0.97352, 67, -19.61, 135.36, 0.02648, 2, 75, 119.47, 16.04, 0.98274, 67, -46.76, 137.41, 0.01726, 2, 75, 83.31, 46.2, 0.80419, 67, -67.54, 95.16, 0.19581, 2, 75, 44.33, 58.42, 0.71, 67, -70.2, 54.4, 0.29, 2, 75, 18.84, 46.65, 0.69, 67, -52.75, 32.41, 0.31, 2, 75, -4.17, 32.44, 0.55, 67, -33.51, 13.4, 0.45, 2, 75, -21.5, 14.34, 0.00249, 67, -11.84, 0.83, 0.99751, 1, 67, 11.8, -6.41, 1, 1, 67, 24.99, -7.41, 1, 2, 75, 51.75, 23.29, 0.58329, 67, -37.82, 69.9, 0.41671, 2, 75, 6.2, 11.49, 0.58111, 67, -15.6, 28.43, 0.41889 ], + "hull": 13, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24 ], + "width": 139, + "height": 100 + } + }, + "hand-back": { + "hand-back-fingers": { "name": "girl/hand-front-fingers", "x": 11.59, "y": 1.97, "rotation": 90, "width": 38, "height": 42 } + }, + "hand-front": { + "hand-front-fingers": { "name": "girl/hand-front-fingers", "x": 11.59, "y": 1.97, "rotation": 90, "width": 38, "height": 42 } + }, + "hat": { + "hat": { + "name": "girl/hat", + "type": "mesh", + "uvs": [ 0.0927, 1, 0.3018, 1, 0.54117, 0.96286, 0.79429, 0.88837, 1, 0.78284, 1, 0.66491, 0.89885, 0.53766, 0.8163, 0.53766, 0.73848, 0.40186, 0.65555, 0.25718, 0.57433, 0.11546, 0.50815, 0, 0.34032, 7.2E-4, 0.28185, 0.15871, 0.21639, 0.33559, 0.15752, 0.49466, 0.1037, 0.64008, 0.01016, 0.65249, 0, 0.94734, 0.30731, 0.64939, 0.62096, 0.58421, 0.46964, 0.62146, 0.43112, 0.10625, 0.57911, 0.43657, 0.45775, 0.46247, 0.32733, 0.47774, 0.53642, 0.28599, 0.44504, 0.29245, 0.34714, 0.30794, 0.49454, 0.13823, 0.36433, 0.16053 ], + "triangles": [ 22, 27, 30, 29, 27, 22, 30, 13, 12, 10, 29, 11, 22, 12, 11, 29, 22, 11, 22, 30, 12, 28, 13, 30, 26, 10, 9, 23, 26, 9, 23, 9, 8, 24, 27, 26, 24, 26, 23, 28, 27, 24, 25, 14, 28, 25, 28, 24, 15, 14, 25, 20, 23, 8, 20, 8, 7, 20, 21, 24, 20, 24, 23, 25, 24, 21, 19, 15, 25, 19, 25, 21, 16, 15, 19, 7, 6, 5, 3, 20, 7, 5, 3, 7, 4, 3, 5, 2, 21, 20, 2, 20, 3, 16, 18, 17, 1, 0, 16, 0, 18, 16, 19, 1, 16, 19, 21, 2, 1, 19, 2, 14, 13, 28, 28, 30, 27, 26, 29, 10, 27, 29, 26 ], + "vertices": [ 2, 50, -28.98, 69.5, 0.88, 52, -75.23, 83.03, 0.12, 2, 50, -27.34, 30.85, 0.76, 52, -79.03, 44.54, 0.24, 3, 50, -19.38, -13.13, 0.7291, 51, -12.02, -7.08, 9.0E-4, 52, -77.31, -0.13, 0.27, 2, 50, -5.19, -59.4, 0.8, 52, -69.75, -47.93, 0.2, 2, 50, 13.71, -96.69, 0.99957, 51, 9.03, -94.45, 4.3E-4, 2, 50, 33.04, -95.87, 0.95114, 51, 28.28, -96.35, 0.04886, 2, 50, 53.1, -76.29, 0.88191, 51, 50.88, -79.78, 0.11809, 3, 50, 52.45, -61.03, 0.879, 51, 52.38, -64.58, 0.11986, 52, -12.91, -57.63, 0.00114, 2, 50, 74.09, -45.7, 0.87726, 51, 75.96, -52.44, 0.12274, 3, 50, 97.14, -29.37, 0.73206, 51, 101.08, -39.5, 0.26419, 52, 35.78, -32.55, 0.00375, 3, 50, 119.73, -13.37, 0.42555, 51, 125.68, -26.83, 0.5184, 52, 60.39, -19.88, 0.05605, 3, 50, 138.13, -0.34, 0.29174, 51, 145.73, -16.5, 0.61231, 52, 80.43, -9.55, 0.09595, 3, 50, 136.69, 30.68, 0.22303, 51, 148.66, 14.41, 0.65697, 52, 83.36, 21.36, 0.12, 3, 50, 110.35, 40.39, 0.31671, 51, 123.93, 27.72, 0.59996, 52, 58.64, 34.67, 0.08333, 3, 50, 80.85, 51.26, 0.62374, 51, 96.25, 42.61, 0.36063, 52, 30.96, 49.57, 0.01563, 2, 50, 54.33, 61.03, 0.82549, 51, 71.36, 56.01, 0.17451, 2, 50, 30.08, 69.97, 0.88, 51, 48.61, 68.26, 0.12, 2, 50, 27.31, 87.17, 0.88702, 51, 48.28, 85.68, 0.11298, 1, 50, -21.08, 87, 1, 3, 50, 30.15, 32.27, 0.59407, 51, 43.39, 30.93, 0.18593, 52, -21.91, 37.88, 0.22, 3, 50, 43.29, -25.25, 0.66536, 51, 48.33, -27.87, 0.09464, 52, -16.96, -20.91, 0.24, 3, 50, 36, 2.46, 0.5548, 51, 45, 0.59, 0.1752, 52, -20.29, 7.54, 0.27, 3, 50, 120.12, 13.16, 0.30606, 51, 129.79, -0.61, 0.55394, 52, 64.49, 6.34, 0.14, 3, 50, 67.15, -16.49, 0.68076, 51, 73.19, -22.54, 0.12924, 52, 7.89, -15.59, 0.19, 3, 50, 61.96, 5.77, 0.57797, 51, 71.16, 0.22, 0.21203, 52, 5.87, 7.17, 0.21, 3, 50, 58.43, 29.77, 0.62009, 51, 71.04, 24.48, 0.22991, 52, 5.75, 31.43, 0.15, 3, 50, 91.49, -7.55, 0.59613, 51, 98.54, -17.1, 0.26387, 52, 33.24, -10.15, 0.14, 3, 50, 89.71, 9.3, 0.49151, 51, 99.14, -0.18, 0.31849, 52, 33.85, 6.78, 0.19, 3, 50, 86.41, 27.28, 0.48715, 51, 98.39, 18.1, 0.34285, 52, 33.1, 25.05, 0.17, 3, 50, 115.37, 1.22, 0.38285, 51, 123.41, -11.77, 0.45715, 52, 58.12, -4.82, 0.16, 3, 50, 110.7, 25.13, 0.30156, 51, 122.14, 12.56, 0.52844, 52, 56.84, 19.51, 0.17 ], + "hull": 19, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 32, 34, 34, 36, 0, 36, 30, 32, 28, 30, 14, 16, 16, 18, 40, 46, 16, 46, 42, 48, 46, 48, 38, 50, 48, 50, 52, 46, 18, 52, 44, 54, 54, 48, 52, 54, 56, 50, 54, 56, 56, 28, 18, 20, 20, 22, 58, 52, 20, 58, 60, 56, 24, 26, 26, 28, 60, 26 ], + "width": 185, + "height": 164 + } + }, + "leg-back": { + "leg-back": { + "name": "girl/leg-front", + "type": "mesh", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 0, 48, 42, 42, 48, 31, 42, 31, 33, 34, 0, 42, 34, 42, 33, 31, 32, 33, 31, 48, 30, 41, 12, 13, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48 ], + "vertices": [ 3, 94, 22.95, -22.02, 0.22728, 95, 59.29, -22, 0.00272, 103, -19.33, 11.79, 0.77, 3, 94, 5.73, -22.61, 0.49142, 95, 41.79, -22.61, 0.23858, 103, -19.74, 29.07, 0.27, 4, 94, -10.55, -23.17, 0.11127, 95, 25.25, -23.18, 0.76279, 96, 60.87, -23.13, 0.00594, 103, -20.15, 45.45, 0.12, 2, 95, 5.13, -23.87, 0.69465, 96, 41.05, -23.86, 0.30535, 3, 95, -15.89, -24.56, 0.09408, 96, 20.35, -24.59, 0.86299, 97, 56.72, -24.52, 0.04292, 2, 96, 1.98, -25.21, 0.55425, 97, 38.06, -25.21, 0.44575, 3, 96, -19.09, -25.88, 0.05256, 97, 16.64, -25.95, 0.87891, 98, 52.7, -25.89, 0.06853, 3, 96, -33.74, -26.34, 3.3E-4, 97, 1.76, -26.46, 0.67227, 98, 37.81, -26.45, 0.32739, 2, 97, -3.17, -22.02, 0.47188, 98, 32.86, -22.03, 0.52812, 3, 97, -22.68, -22.46, 0.0172, 98, 13.36, -22.55, 0.87617, 99, 49.14, -22.52, 0.10662, 3, 98, -7.93, -23.09, 0.23789, 99, 28.2, -23.11, 0.75909, 100, 64.58, -23.1, 0.00302, 3, 98, -27.79, -23.57, 0.00312, 99, 8.67, -23.62, 0.75495, 100, 44.76, -23.62, 0.24193, 3, 99, -12.93, -24.2, 0.09944, 100, 22.84, -24.2, 0.87238, 101, 58.46, -24.21, 0.02818, 2, 100, 0.77, -24.79, 0.47358, 101, 36.71, -24.79, 0.52642, 1, 101, 1.72, -25.72, 1, 1, 101, -25.98, -26.46, 1, 1, 101, -26.33, 25.98, 1, 1, 101, -0.53, 25.24, 1, 2, 100, -3.13, 24.27, 0.37555, 101, 32.87, 24.27, 0.62445, 3, 99, -15.75, 23.6, 0.0536, 100, 19.96, 23.6, 0.92085, 101, 55.62, 23.59, 0.02556, 2, 99, 5.77, 22.96, 0.65378, 100, 41.79, 22.97, 0.34622, 3, 98, -11.12, 22.43, 0.12254, 99, 24.96, 22.4, 0.86248, 100, 61.27, 22.42, 0.01499, 3, 97, -26.03, 21.9, 0.00839, 98, 9.83, 21.8, 0.78745, 99, 45.58, 21.82, 0.20415, 3, 97, -7.13, 21.27, 0.362, 98, 28.73, 21.24, 0.63637, 99, 64.17, 21.3, 0.00163, 2, 97, -6.17, 28.11, 0.5025, 98, 29.67, 28.08, 0.4975, 3, 96, -21.38, 27.22, 0.03848, 97, 14.13, 27.14, 0.83871, 98, 49.97, 27.2, 0.12281, 3, 96, -2.33, 26.26, 0.40865, 97, 33.49, 26.25, 0.59016, 98, 69.34, 26.38, 0.00119, 3, 95, -20.14, 25.43, 0.05003, 96, 16.06, 25.39, 0.84798, 97, 52.19, 25.45, 0.10198, 2, 95, 1.24, 24.42, 0.56331, 96, 37.12, 24.42, 0.43669, 4, 94, -15.67, 23.56, 0.04308, 95, 20, 23.55, 0.81142, 96, 55.61, 23.58, 0.0255, 103, 26.63, 50.22, 0.12, 3, 94, 0.26, 22.8, 0.33337, 95, 36.2, 22.8, 0.39663, 103, 25.72, 34.13, 0.27, 3, 94, 18.48, 21.95, 0.22212, 95, 54.71, 21.97, 0.00788, 103, 24.69, 15.83, 0.77, 1, 103, 36.21, 8.95, 1, 1, 103, 36.08, -3.91, 1, 1, 103, -18.97, -3.34, 1, 1, 101, 0.45, 0, 1, 1, 98, 31.4, 0, 1, 1, 98, 11.41, 0, 1, 1, 99, 26.57, 0, 1, 1, 99, 7.43, 0, 1, 1, 100, 20.94, 0, 1, 1, 101, 34.45, 0, 1, 2, 94, 23.32, 0.24, 0.23, 103, 2.93, 11.2, 0.77, 1, 97, 15.67, 0.04, 1, 2, 96, -0.81, 0.07, 0.36735, 97, 35.13, 0.07, 0.63265, 1, 96, 18, 0.1, 1, 2, 95, 2.51, 0.14, 0.90776, 96, 38.42, 0.14, 0.09224, 2, 95, 22.3, 0.17, 0.88, 103, 3.23, 48.15, 0.12, 3, 94, 2.19, 0.2, 0.62933, 95, 38.18, 0.2, 0.10067, 103, 3.11, 32.41, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "leg-front": { + "leg-front": { + "name": "girl/leg-front", + "type": "mesh", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 31, 48, 30, 0, 48, 42, 42, 48, 31, 34, 42, 33, 31, 32, 33, 42, 31, 33, 34, 0, 42, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 41, 12, 13, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15 ], + "vertices": [ 3, 28, 22.96, -22.02, 0.22658, 27, 58.91, -22.02, 0.00342, 102, -21, 12.47, 0.77, 3, 28, 5.76, -22.61, 0.49273, 27, 41.71, -22.61, 0.23727, 102, -21.71, 29.73, 0.27, 4, 28, -10.68, -23.18, 0.11707, 27, 25.27, -23.18, 0.76681, 26, 61.22, -23.18, 0.00612, 102, -22.41, 46.07, 0.11, 2, 27, 5.13, -23.87, 0.6994, 26, 41.08, -23.87, 0.3006, 3, 27, -15.62, -24.58, 0.10595, 26, 20.33, -24.58, 0.85365, 25, 56.28, -24.58, 0.0404, 3, 27, -33.92, -25.21, 7.9E-4, 26, 2.03, -25.21, 0.57156, 25, 37.98, -25.21, 0.42765, 3, 26, -19.29, -25.94, 0.05654, 25, 16.66, -25.94, 0.87764, 24, 52.61, -25.94, 0.06582, 3, 26, -34.16, -26.46, 4.4E-4, 25, 1.79, -26.46, 0.67282, 24, 37.74, -26.46, 0.32674, 2, 25, -3.13, -22.03, 0.47104, 24, 32.82, -22.03, 0.52896, 3, 25, -22.61, -22.55, 0.01665, 24, 13.34, -22.55, 0.87142, 23, 49.29, -22.55, 0.11193, 3, 24, -7.79, -23.11, 0.22064, 23, 28.17, -23.11, 0.77569, 22, 64.12, -23.11, 0.00367, 3, 24, -27.25, -23.62, 0.00219, 23, 8.7, -23.62, 0.77556, 22, 44.65, -23.62, 0.22225, 3, 21, 58.81, -24.2, 0.0114, 23, -13.09, -24.2, 0.12046, 22, 22.86, -24.2, 0.86813, 2, 21, 36.72, -24.79, 0.42237, 22, 0.77, -24.79, 0.57763, 2, 21, 1.72, -25.72, 0.99849, 22, -34.23, -25.72, 0.00151, 1, 21, -25.98, -26.46, 1, 1, 21, -26.33, 25.98, 1, 2, 21, -0.53, 25.24, 0.99997, 22, -36.48, 25.24, 3.0E-5, 2, 21, 32.85, 24.27, 0.56274, 22, -3.1, 24.27, 0.43726, 3, 21, 55.91, 23.6, 0.02334, 23, -15.99, 23.6, 0.05774, 22, 19.96, 23.6, 0.91892, 3, 24, -30.16, 22.96, 3.0E-4, 23, 5.79, 22.96, 0.6752, 22, 41.74, 22.96, 0.3245, 3, 24, -11, 22.41, 0.14886, 23, 24.95, 22.41, 0.84172, 22, 60.9, 22.41, 0.00941, 3, 25, -26.16, 21.8, 0.00663, 24, 9.79, 21.8, 0.80794, 23, 45.74, 21.8, 0.18543, 3, 25, -7.19, 21.25, 0.35697, 24, 28.76, 21.25, 0.64235, 23, 64.72, 21.25, 6.7E-4, 2, 25, -6.22, 28.1, 0.49898, 24, 29.73, 28.1, 0.50102, 3, 26, -21.82, 27.15, 0.04097, 25, 14.13, 27.15, 0.83939, 24, 50.08, 27.15, 0.11963, 3, 26, -2.4, 26.25, 0.4338, 25, 33.55, 26.25, 0.56533, 24, 69.5, 26.25, 8.7E-4, 3, 27, -19.88, 25.4, 0.04332, 26, 16.07, 25.4, 0.87101, 25, 52.02, 25.4, 0.08567, 2, 27, 1.21, 24.42, 0.5677, 26, 37.16, 24.42, 0.4323, 4, 28, -15.94, 23.55, 0.03449, 27, 20.01, 23.55, 0.83346, 26, 55.96, 23.55, 0.02204, 102, 24.27, 51.7, 0.11, 3, 28, 0.25, 22.8, 0.31657, 27, 36.2, 22.8, 0.41343, 102, 23.66, 35.6, 0.27, 3, 28, 18.49, 21.95, 0.22027, 27, 54.44, 21.95, 0.00973, 102, 22.94, 17.27, 0.77, 1, 102, 34.58, 10.59, 1, 1, 102, 34.67, -2.26, 1, 1, 102, -20.38, -2.65, 1, 1, 21, 0.45, 0, 1, 1, 24, 31.4, 0, 1, 1, 24, 11.41, 0, 1, 1, 23, 26.57, 0, 1, 1, 23, 7.43, 0, 1, 1, 22, 20.94, 0, 1, 1, 21, 34.45, 0, 1, 2, 28, 23.32, 0.24, 0.23, 102, 1.26, 12.26, 0.77, 1, 25, 15.67, 0.04, 1, 2, 26, -0.81, 0.07, 0.37007, 25, 35.14, 0.07, 0.62993, 1, 26, 18, 0.1, 1, 2, 27, 2.5, 0.14, 0.92465, 26, 38.45, 0.14, 0.07535, 2, 27, 22.3, 0.17, 0.89, 102, 0.91, 49.21, 0.11, 3, 28, 2.2, 0.2, 0.65329, 27, 38.15, 0.2, 0.07671, 102, 1.08, 33.46, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 }, + "mouth-smile": { "name": "girl/mouth-smile", "x": -4.12, "y": 2.56, "width": 57, "height": 13 } + }, + "nose": { + "nose": { + "name": "girl/nose", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 6, 57.27, -63, 0.68, 29, 14.7, -17.7, 0.32, 2, 6, 56.34, -41.02, 0.73, 29, -7.3, -17.7, 0.27, 2, 6, 69.33, -40.47, 0.73, 29, -7.3, -4.7, 0.27, 2, 6, 70.26, -62.45, 0.68, 29, 14.7, -4.7, 0.32 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 22, + "height": 13 + } + }, + "pompom": { + "pompom": { "name": "girl/pompom", "x": 0.31, "y": -0.35, "rotation": -95.63, "width": 96, "height": 85 } + }, + "scarf": { + "scarf": { + "name": "girl/scarf", + "type": "mesh", + "uvs": [ 0, 0.69166, 0.08052, 0.80607, 0.18349, 0.90523, 0.29463, 0.96243, 0.44173, 1, 0.5921, 0.99676, 0.69655, 0.96098, 0.81649, 0.89046, 0.92984, 0.74335, 0.98437, 0.67259, 1, 0.62301, 1, 0.43614, 0.987, 0.34894, 0.95168, 0.11197, 0.8389, 0.11579, 0.75309, 0.14439, 0.66045, 0.15555, 0.57902, 0.16537, 0.46625, 0.11579, 0.37308, 0.07002, 0.28482, 0.02426, 0.20473, 0, 0.09849, 0.02044, 0.056, 0.3408, 0, 0.51623, 0.2505, 0.51241, 0.45971, 0.56199, 0.6444, 0.52385, 0.85198, 0.46283, 0.15733, 0.43995, 0.3453, 0.53148, 0.54797, 0.54292, 0.74737, 0.5086, 0.26684, 0.42851, 0.3506, 0.44336, 0.46122, 0.45875, 0.16878, 0.36367, 0.94187, 0.40181 ], + "triangles": [ 32, 15, 28, 28, 15, 37, 27, 31, 17, 31, 35, 17, 27, 16, 32, 32, 16, 15, 37, 15, 14, 18, 35, 34, 34, 33, 19, 12, 14, 13, 12, 37, 14, 23, 22, 36, 33, 36, 20, 27, 17, 16, 17, 35, 18, 18, 34, 19, 19, 33, 20, 36, 21, 20, 36, 22, 21, 28, 37, 11, 30, 25, 34, 30, 34, 35, 34, 25, 33, 24, 23, 29, 25, 29, 33, 29, 36, 33, 29, 23, 36, 37, 12, 11, 5, 4, 26, 4, 3, 26, 6, 5, 31, 5, 26, 31, 26, 3, 30, 31, 27, 6, 7, 27, 32, 7, 6, 27, 3, 2, 30, 30, 1, 25, 30, 2, 1, 7, 32, 8, 29, 25, 1, 9, 8, 28, 28, 8, 32, 24, 29, 0, 0, 29, 1, 9, 28, 10, 10, 28, 11, 26, 35, 31, 26, 30, 35 ], + "vertices": [ 1, 4, 101.59, 148.9, 1, 1, 4, 88.51, 130.67, 1, 1, 4, 76.57, 106.99, 1, 1, 4, 68.76, 81.06, 1, 1, 4, 62.3, 46.43, 1, 1, 4, 59.93, 10.72, 1, 1, 4, 61.69, -14.34, 1, 1, 4, 66.71, -43.35, 1, 1, 4, 79.64, -71.38, 1, 1, 4, 85.86, -84.86, 1, 1, 4, 90.62, -88.96, 1, 2, 4, 111.53, -90.22, 0.68, 5, 12.11, -93.3, 0.32, 2, 4, 120.59, -87.62, 0.68, 5, 21.19, -90.81, 0.32, 1, 5, 49.45, -81.99, 1, 1, 5, 49.69, -55.15, 1, 1, 5, 47.25, -34.67, 1, 1, 5, 46.62, -12.6, 1, 1, 5, 46.07, 6.8, 1, 1, 5, 51.76, 33.52, 1, 1, 5, 56.94, 55.57, 1, 1, 5, 62.1, 76.47, 1, 1, 5, 65.02, 95.46, 1, 1, 5, 63.52, 120.79, 1, 2, 4, 133.66, 133.75, 0.68, 5, 36.73, 130.17, 0.32, 2, 4, 118.16, 147.77, 0.86, 5, 21.41, 144.43, 0.14, 2, 4, 113.61, 88.46, 0.68, 5, 16.19, 85.15, 0.32, 2, 4, 105.87, 38.97, 0.71, 5, 7.91, 35.81, 0.29, 2, 4, 107.27, -5.15, 0.68, 5, 8.8, -8.29, 0.32, 2, 4, 110.76, -54.86, 0.68, 5, 11.73, -57.98, 0.32, 2, 4, 122.22, 110.21, 0.68, 5, 25.04, 106.78, 0.32, 2, 4, 110.42, 66.02, 0.68, 5, 12.75, 62.78, 0.32, 2, 4, 106.59, 17.89, 0.68, 5, 8.39, 14.74, 0.32, 2, 4, 107.47, -29.73, 0.68, 5, 8.73, -32.84, 0.32, 2, 4, 121.95, 84.1, 0.68, 5, 24.47, 80.7, 0.32, 2, 4, 119.33, 64.26, 0.68, 5, 21.64, 60.92, 0.32, 2, 4, 116.31, 38.04, 0.68, 5, 18.32, 34.76, 0.32, 2, 4, 129.85, 107.06, 0.68, 5, 32.62, 103.55, 0.32, 2, 4, 115.79, -76.59, 0.68, 5, 16.52, -79.73, 0.32 ], + "hull": 25, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 18, 20, 20, 22, 26, 28, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 0, 48, 2, 58, 6, 60, 14, 64, 10, 12, 12, 14, 14, 16, 16, 18, 16, 56, 28, 30, 64, 30, 30, 32, 32, 34, 54, 32, 50, 66, 38, 68, 68, 60, 36, 70, 70, 52, 66, 40, 22, 24, 24, 26, 74, 24, 62, 34 ], + "width": 238, + "height": 102 + } + }, + "scarf-back": { + "scarf-back": { "name": "girl/scarf-back", "x": 46.88, "y": 3.26, "rotation": 177.98, "width": 143, "height": 102 } + }, + "sleeve-front": { + "sleeve-front": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "sleeve-front", "width": 71, "height": 229 } + }, + "zip-girl": { + "zip-girl": { "name": "girl/zip", "x": 19.66, "y": 3.69, "rotation": 80.66, "width": 37, "height": 49 } + } + } + }, + { + "name": "full-skins/girl-blue-cape", + "bones": [ "dress-control-foot-front", "cape-blue-down-back", "dress-control-leg-down-front", "cape-back-rotator", "dress-control-leg-up-front", "cape-blue-middle-back", "cape-blue-control", "cape-blue-up-back", "dress-control-foot-back", "dress-control-leg-down-back", "cape-blue-middle-front", "dress-control-leg-up-back", "cape-blue-up-front", "cape-blue-down", "cape-blue-up", "dress-control-middle", "cape-front-rotator", "sleeve-control-front", "cape-blue-down-front", "cape-blue-down-middle", "sleeve-control-back" ], + "transform": [ "leg-down-back", "leg-down-front", "leg-up", "leg-down-back-up", "leg-down-down", "leg-up-back" ], + "attachments": { + "arm-back": { + "arm-back": { + "name": "girl-blue-cape/sleeve-front", + "type": "mesh", + "uvs": [ 0.39189, 0, 0.14439, 0.01666, 0.15901, 0.10249, 0.17598, 0.19757, 0.191, 0.28175, 0.205, 0.3602, 0.22028, 0.44586, 0.23432, 0.52454, 0.2491, 0.60734, 0.22371, 0.71965, 0.1539, 0.82364, 0, 0.92776, 0, 0.99154, 0.23074, 0.95687, 0.37352, 1, 0.45602, 1, 0.6591, 0.94994, 1, 0.96658, 1, 0.91944, 0.88122, 0.81129, 0.81141, 0.71284, 0.76064, 0.59498, 0.73905, 0.50606, 0.71901, 0.4235, 0.7003, 0.34643, 0.68005, 0.26299, 0.65973, 0.17927, 0.63519, 0.07818, 0.61151, 0, 0.43698, 0.82821, 0.25612, 0.89754, 0.6242, 0.89754, 0.43118, 0.08805, 0.44237, 0.51902, 0.4401, 0.43175, 0.43805, 0.35262, 0.436, 0.27359, 0.43377, 0.18768, 0.44092, 0.60224, 0.43884, 0.72139 ], + "triangles": [ 4, 3, 37, 36, 37, 26, 37, 3, 32, 3, 2, 32, 37, 27, 26, 37, 32, 27, 2, 0, 32, 2, 1, 0, 32, 28, 27, 32, 0, 28, 6, 5, 35, 34, 35, 24, 35, 5, 36, 5, 4, 36, 35, 25, 24, 35, 36, 25, 36, 4, 37, 36, 26, 25, 7, 6, 34, 33, 34, 23, 34, 6, 35, 34, 24, 23, 39, 8, 38, 39, 38, 21, 38, 33, 22, 33, 8, 7, 33, 7, 34, 33, 23, 22, 38, 8, 33, 38, 22, 21, 29, 39, 20, 29, 9, 39, 9, 8, 39, 39, 21, 20, 10, 9, 29, 30, 10, 29, 14, 30, 29, 13, 30, 14, 15, 14, 29, 12, 11, 13, 15, 31, 16, 31, 15, 29, 16, 18, 17, 13, 11, 30, 16, 31, 18, 31, 19, 18, 31, 29, 19, 11, 10, 30, 29, 20, 19 ], + "vertices": [ 1, 84, -16.93, -3.67, 1, 1, 84, -16.62, -29.86, 1, 2, 85, -30.38, -28.39, 0.00675, 84, 3.66, -28.4, 0.99325, 2, 85, -7.5, -26.7, 0.28271, 84, 26.13, -26.7, 0.71729, 3, 86, -20.67, -25.24, 0.0369, 85, 12.75, -25.2, 0.82623, 84, 46.02, -25.2, 0.13687, 3, 86, -1.82, -23.81, 0.46001, 85, 31.62, -23.8, 0.53932, 84, 64.55, -23.8, 6.7E-4, 3, 87, -14.53, -22.33, 0.07429, 86, 18.77, -22.24, 0.89721, 85, 52.23, -22.28, 0.0285, 2, 87, 4.3, -20.78, 0.66292, 86, 37.68, -20.8, 0.33708, 3, 88, -9.4, -19.2, 0.39191, 87, 24.1, -19.15, 0.48809, 86, 57.58, -19.29, 0.12, 3, 131, 76.95, -52.14, 0.2, 88, 17.84, -21.57, 0.472, 87, 50.99, -21.67, 0.328, 3, 131, 84.21, -27.39, 0.33, 89, 9.43, -28.56, 0.5213, 88, 43.1, -28.59, 0.1487, 2, 131, 100.22, -2.61, 0.99748, 89, 34.19, -44.26, 0.00252, 1, 131, 100.22, 12.57, 1, 1, 131, 76.22, 4.32, 1, 1, 131, 61.37, 14.58, 1, 1, 131, 52.79, 14.58, 1, 1, 131, 31.67, 2.67, 1, 1, 131, -3.78, 6.63, 1, 3, 131, -3.78, -4.59, 0.99378, 89, 30.96, 59.71, 0.00244, 88, 65.41, 59.63, 0.00378, 4, 131, 8.57, -30.33, 0.60383, 89, 5.59, 47.04, 0.13666, 88, 39.34, 47.02, 0.2413, 87, 72.6, 46.82, 0.01821, 3, 131, 15.83, -53.76, 0.2, 88, 15.57, 39.53, 0.472, 87, 49.08, 39.45, 0.328, 5, 131, 21.11, -81.81, 0.0171, 89, -45.3, 33.86, 2.3E-4, 88, -12.93, 33.97, 0.32025, 87, 20.9, 34.04, 0.54241, 86, 54.67, 33.91, 0.12, 5, 131, 23.36, -102.97, 3.0E-5, 88, -34.45, 31.51, 0.01472, 87, -0.37, 31.69, 0.51834, 86, 33.3, 31.69, 0.46518, 85, 66.89, 31.63, 0.00174, 3, 87, -20.12, 29.51, 0.10716, 86, 13.46, 29.63, 0.77625, 85, 47.02, 29.61, 0.11659, 4, 87, -38.56, 27.48, 0.0033, 86, -5.07, 27.71, 0.43059, 85, 28.47, 27.72, 0.56203, 84, 61.45, 27.72, 0.00408, 3, 86, -25.12, 25.62, 0.05143, 85, 8.4, 25.67, 0.74366, 84, 41.73, 25.68, 0.20491, 2, 85, -11.75, 23.62, 0.18749, 84, 21.95, 23.62, 0.81251, 1, 84, 1.16, 17.55, 1, 1, 84, -11.55, 9.3, 1, 2, 131, 54.77, -26.3, 0.43, 89, 10.15, 0.89, 0.57, 3, 131, 73.58, -9.8, 0.43, 89, 26.74, -17.72, 0.56433, 88, 60.89, -17.78, 0.00567, 3, 131, 35.3, -9.8, 0.59, 89, 26.27, 20.56, 0.38171, 88, 60.51, 20.5, 0.02829, 1, 84, 0.33, -0.08, 1, 2, 87, 2.87, 0.85, 0.98548, 86, 36.38, 0.83, 0.01452, 2, 87, -18.01, 0.52, 2.8E-4, 86, 15.41, 0.62, 0.99972, 1, 85, 29.88, 0.44, 1, 2, 86, -22.6, 0.24, 1.2E-4, 85, 10.87, 0.28, 0.99988, 1, 84, 23.87, 0.12, 1, 4, 131, 54.37, -80.08, 0.04086, 88, -10.84, 0.74, 0.35514, 87, 22.79, 0.79, 0.484, 86, 56.38, 0.66, 0.12, 3, 131, 54.58, -51.73, 0.2, 88, 18.03, 0.8, 0.472, 87, 51.31, 0.71, 0.328 ], + "hull": 29, + "edges": [ 0, 2, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 56, 36, 62, 60, 22, 0, 64, 2, 4, 64, 4, 54, 56, 64, 54, 14, 16, 14, 66, 42, 44, 66, 44, 12, 14, 68, 66, 12, 68, 44, 46, 68, 46, 46, 48, 70, 68, 48, 70, 10, 12, 70, 10, 8, 10, 72, 70, 8, 72, 48, 50, 72, 50, 50, 52, 52, 54, 64, 74, 74, 72, 52, 74, 4, 6, 6, 8, 74, 6, 76, 66, 76, 42, 76, 16, 58, 78, 78, 76, 40, 78, 38, 58, 58, 20 ], + "width": 104, + "height": 238 + } + }, + "base-head": { + "base-head": { "x": 74.74, "y": -10.09, "rotation": -87.57, "width": 189, "height": 145 } + }, + "body-dress": { + "body-dress": { + "name": "girl-blue-cape/body-dress", + "type": "mesh", + "uvs": [ 0.37147, 0.03655, 0.19753, 0.06738, 0.15404, 0.12133, 0.32219, 0.19841, 0.33378, 0.22538, 0.2874, 0.28704, 0.23812, 0.34613, 0.20623, 0.41935, 0.18013, 0.49642, 0.14534, 0.60818, 0.11925, 0.7148, 0.09896, 0.82527, 0.08156, 0.87665, 0.02358, 0.92546, 0, 0.9614, 0, 0.98709, 0.11635, 0.9948, 0.2874, 1, 0.51933, 1, 0.72516, 0.99865, 0.97448, 0.99351, 1, 0.96782, 0.97738, 0.92286, 0.95999, 0.86891, 0.96578, 0.80597, 0.97738, 0.71091, 0.98028, 0.60301, 0.96578, 0.49382, 0.93679, 0.40776, 0.9049, 0.33325, 0.85852, 0.26517, 0.80344, 0.21251, 0.80634, 0.15984, 0.78024, 0.05858, 0.6121, 0.02646, 0.68457, 0.23071, 0.49613, 0.23199, 0.62261, 0.17757, 0.46316, 0.1917, 0.6719, 0.33814, 0.78206, 0.33428, 0.62551, 0.41393, 0.84584, 0.41136, 0.58202, 0.33557, 0.52404, 0.4165, 0.52114, 0.33557, 0.37619, 0.41264, 0.46026, 0.49228, 0.56463, 0.49614, 0.73857, 0.28162, 0.68059, 0.28419, 0.59652, 0.2829, 0.48635, 0.28676, 0.3443, 0.60918, 0.46026, 0.60661, 0.88643, 0.491, 0.32111, 0.7235, 0.19935, 0.71965, 0.52114, 0.72993, 0.80525, 0.72479, 0.55303, 0.60661, 0.79946, 0.60789, 0.51535, 0.88536, 0.83424, 0.88022, 0.30081, 0.88664, 0.30371, 0.81984, 0.52114, 0.81856, 0.81975, 0.81214, 0.82472, 0.94059, 0.61889, 0.94316, 0.39856, 0.94702, 0.23041, 0.95087, 0.09126, 0.94059, 0.35471, 0.49384, 0.13171, 0.87893, 0.15316, 0.82452, 0.93153, 0.92896, 0.91674, 0.87433, 0.92068, 0.80791, 0.05964, 0.93806 ], + "triangles": [ 49, 31, 30, 50, 51, 35, 50, 35, 49, 52, 36, 51, 5, 4, 52, 40, 49, 30, 40, 30, 29, 45, 52, 51, 43, 45, 51, 39, 51, 50, 43, 51, 39, 42, 40, 29, 46, 5, 52, 46, 52, 45, 41, 43, 39, 44, 45, 43, 39, 50, 49, 39, 49, 40, 41, 39, 40, 42, 41, 40, 37, 34, 33, 37, 33, 32, 38, 0, 34, 38, 34, 37, 3, 1, 0, 3, 0, 38, 2, 1, 3, 32, 35, 37, 4, 3, 38, 31, 35, 32, 36, 38, 37, 4, 38, 36, 36, 37, 35, 49, 35, 31, 51, 36, 35, 52, 4, 36, 6, 5, 46, 44, 43, 41, 46, 45, 44, 7, 6, 46, 76, 23, 22, 20, 76, 22, 20, 22, 21, 76, 68, 63, 76, 63, 77, 68, 76, 20, 19, 68, 20, 68, 19, 63, 79, 15, 14, 79, 14, 13, 15, 79, 72, 16, 72, 71, 15, 72, 16, 16, 71, 17, 63, 19, 69, 70, 64, 62, 17, 71, 64, 17, 64, 70, 18, 62, 69, 70, 62, 18, 17, 70, 18, 18, 69, 19, 63, 69, 62, 64, 65, 62, 25, 78, 59, 24, 78, 25, 67, 59, 78, 66, 59, 67, 23, 78, 24, 78, 63, 67, 77, 78, 23, 77, 63, 78, 62, 67, 63, 76, 77, 23, 62, 66, 67, 42, 29, 28, 55, 42, 28, 55, 28, 27, 55, 41, 42, 61, 48, 55, 55, 27, 26, 61, 26, 59, 55, 26, 61, 25, 59, 26, 59, 60, 61, 56, 58, 66, 62, 65, 66, 10, 9, 57, 56, 11, 57, 65, 56, 66, 57, 11, 10, 11, 56, 75, 56, 65, 75, 74, 11, 75, 12, 11, 74, 64, 75, 65, 74, 75, 64, 79, 13, 12, 72, 12, 74, 79, 12, 72, 71, 74, 64, 72, 74, 71, 66, 58, 59, 58, 56, 54, 59, 58, 60, 48, 44, 41, 47, 46, 44, 73, 46, 47, 47, 44, 48, 8, 7, 73, 60, 54, 47, 73, 47, 54, 48, 60, 47, 53, 8, 73, 53, 73, 54, 9, 8, 53, 57, 9, 53, 56, 53, 54, 48, 41, 55, 60, 48, 61, 56, 57, 53, 58, 54, 60, 73, 7, 46 ], + "vertices": [ 1, 4, 115.55, 22.28, 1, 1, 4, 103.28, 61.24, 1, 1, 4, 77.53, 72.69, 1, 1, 4, 36.95, 39, 1, 2, 4, 23.53, 37.48, 0.57, 3, 88.89, 40.23, 0.43, 2, 4, -5.96, 49.85, 0.4, 3, 59, 51.6, 0.6, 1, 2, -67.89, 26.14, 1, 2, 125, -119.82, 5.59, 0.41, 2, -74.84, -9.88, 0.59, 2, 125, -81.73, 1.16, 0.88, 126, -113.79, -10.46, 0.12, 2, 125, -26.52, -4.59, 0.75, 126, -58.29, -10.27, 0.25, 2, 125, 26.09, -8.53, 0.15, 126, -5.55, -8.55, 0.85, 2, 125, 80.56, -11.15, 0.12, 126, 48.88, -5.31, 0.88, 2, 125, 105.95, -14.1, 0.05, 126, 74.44, -5.52, 0.95, 2, 126, 100, -14.67, 0.49, 127, -24.37, -2.34, 0.51, 1, 127, -6.14, -4.95, 1, 1, 127, 6.37, -3.18, 1, 2, 129, -85.84, -9.66, 0.31, 127, 6.57, 22.47, 0.69, 2, 129, -48.55, -12.21, 0.52, 127, 3.88, 59.74, 0.48, 1, 129, 2.01, -12.21, 1, 2, 129, 46.88, -11.55, 0.53, 128, 17.25, -54.9, 0.47, 1, 128, 11.93, -0.75, 1, 1, 128, -0.98, 4.15, 1, 2, 124, 92.78, 14.32, 0.47, 128, -22.82, -1.91, 0.53, 3, 123, 101.67, 5.36, 0.29, 124, 66.47, 9.17, 0.4686, 128, -49.13, -7.06, 0.2414, 2, 123, 70.72, 6.91, 0.41, 124, 35.47, 8.84, 0.59, 2, 123, 23.98, 9.88, 0.76, 124, -11.36, 8.95, 0.24, 1, 123, -29.1, 11, 1, 2, 123, -82.85, 8.34, 0.89, 2, 90.75, -46.53, 0.11, 2, 123, -125.25, 2.41, 0.69, 2, 84.43, -4.18, 0.31, 1, 3, 30.67, -81.95, 1, 2, 4, -4.62, -75.11, 0.4, 3, 64.56, -73.25, 0.6, 2, 4, 22.12, -65.09, 0.57, 3, 90.95, -62.33, 0.43, 1, 4, 47.91, -67.67, 1, 1, 4, 98.02, -65.76, 1, 1, 4, 116.54, -30.4, 1, 2, 4, 15.15, -38.58, 0.57, 3, 83.08, -36.06, 0.43, 2, 4, 17.61, 2.43, 0.57, 3, 84.16, 5.01, 0.43, 1, 4, 42.24, -27.08, 1, 1, 4, 37.92, 8.11, 1, 1, 3, 30.39, -31.1, 1, 1, 3, 31.28, -55.18, 1, 2, 125, -125.52, 96.85, 0.32, 2, 16.57, -7.22, 0.68, 2, 123, -123.66, -17.43, 0.69, 2, 64.6, -5.95, 0.31, 1, 3, 32.47, -11.58, 1, 2, 125, -123.52, 74.78, 0.32, 2, -5.55, -8.48, 0.68, 1, 3, 33.02, 1.68, 1, 2, 125, -124.35, 42.51, 0.32, 2, -37.79, -6.58, 0.68, 2, 125, -85.79, 62.13, 0.97, 126, -124.37, 49.71, 0.03, 2, 125, -84.66, 84.93, 0.92, 2, 3.29, -47.66, 0.08, 2, 4, -10.72, -48.43, 0.4, 3, 57.57, -46.78, 0.6, 2, 4, -11.02, -35.73, 0.4, 3, 56.83, -34.1, 0.6, 2, 4, -9.01, -17.5, 0.4, 3, 58.23, -15.82, 0.6, 2, 4, -9.09, 6.59, 0.4, 3, 57.33, 8.26, 0.6, 2, 125, -27.47, 38.77, 0.92, 126, -63.88, 32.75, 0.08, 3, 125, -29.58, 64, 0.6336, 126, -68.67, 57.6, 0.3264, 124, -56.81, -106.27, 0.04, 2, 123, -84.4, -8.95, 0.89, 2, 73.45, -45.14, 0.11, 2, 125, 28.91, 35.59, 0.37, 126, -7.48, 35.62, 0.63, 2, 125, 27.9, 9, 0.22, 126, -5.64, 9.08, 0.78, 3, 125, 30.62, 79.28, 0.43771, 126, -10.46, 79.24, 0.53, 129, 2.41, 120.66, 0.03229, 2, 123, 30.45, -27.71, 0.32, 124, -2.61, -28.17, 0.68, 3, 125, -30.25, 84.21, 0.5664, 126, -71.51, 77.62, 0.3936, 124, -57.85, -86.07, 0.04, 1, 123, -27.07, -28.44, 1, 4, 125, 107.09, 80.56, 0.108, 126, 65.43, 88.71, 0.25092, 129, 1.14, 44.19, 0.4, 128, -36.06, -103.45, 0.24108, 3, 124, 73.43, -17.92, 0.3431, 129, 70.66, 46.72, 0.27, 128, -42.17, -34.15, 0.3869, 2, 126, 72.61, 42.49, 0.39, 129, -45.62, 43.56, 0.61, 2, 126, 39.98, 38.51, 0.68, 129, -44.99, 76.42, 0.32, 4, 125, 74.2, 80.73, 0.13965, 126, 32.72, 85.36, 0.46, 129, 2.41, 77.05, 0.17126, 128, -68.95, -103.88, 0.22909, 1, 124, 40.14, -22.8, 1, 2, 129, 68.59, 17.01, 0.32, 128, -12.4, -34.7, 0.68, 2, 129, 23.72, 15.75, 0.74, 128, -8.82, -79.44, 0.26, 1, 129, -24.32, 13.85, 1, 3, 126, 106.05, 31.73, 0.2256, 129, -60.97, 11.96, 0.52, 127, -18.31, 44.06, 0.2544, 3, 126, 105.3, 0.98, 0.2268, 129, -91.31, 17.01, 0.16, 127, -19.07, 13.31, 0.6132, 2, 125, -84.26, 39.16, 0.92, 126, -120.38, 27.04, 0.08, 3, 125, 106.71, -3.13, 0.03989, 126, 74.03, 5.46, 0.85011, 129, -82.49, 47.35, 0.11, 3, 125, 79.8, 0.65, 0.08746, 126, 46.86, 6.34, 0.82673, 129, -77.81, 74.12, 0.08581, 3, 124, 96.29, 4.49, 0.34371, 129, 91.87, 22.74, 0.05, 128, -19.31, -11.74, 0.60629, 4, 123, 104.25, -4.09, 0.1912, 124, 69.61, -0.11, 0.4382, 129, 88.65, 49.61, 0.06, 128, -45.98, -16.34, 0.31061, 4, 123, 71.58, -2.93, 0.28332, 124, 36.93, -0.93, 0.71646, 129, 89.51, 82.29, 5.0E-5, 128, -78.66, -17.16, 1.7E-4, 3, 126, 105.03, -6.02, 0.29357, 129, -98.2, 18.26, 0.08, 127, -19.34, 6.31, 0.62643 ], + "hull": 35, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 64, 66, 66, 68, 0, 68, 104, 10, 72, 8, 72, 70, 110, 96, 124, 128, 22, 112, 124, 126, 112, 116, 116, 118, 16, 146, 146, 94, 106, 146, 24, 148, 148, 128, 144, 142, 148, 150, 144, 30 ], + "width": 218, + "height": 492 + } + }, + "cape-back": { + "cape-back": { + "name": "girl-blue-cape/cape-back", + "type": "mesh", + "uvs": [ 0.16774, 0.18106, 0.16774, 0.29678, 0.15536, 0.37836, 0.1492, 0.41892, 0.13066, 0.53249, 0.10285, 0.63749, 0.06886, 0.74892, 0.03178, 0.84106, 0, 0.91392, 0, 0.96321, 0.12139, 0.97606, 0.26661, 0.98035, 0.36858, 0.99535, 0.49836, 1, 0.64667, 0.99106, 0.77645, 0.96535, 0.9124, 0.96535, 1, 0.94392, 1, 0.83678, 0.94639, 0.75535, 0.90313, 0.64606, 0.8815, 0.52821, 0.88459, 0.40392, 0.89409, 0.29849, 0.8803, 0.21766, 0.87223, 0.17035, 0.74864, 0, 0.23572, 0, 0.49006, 0.88368, 0.38711, 0.87971, 0.2632, 0.86913, 0.13357, 0.8612, 0.64257, 0.87178, 0.78173, 0.85062, 0.89421, 0.84798, 0.11069, 0.76072, 0.14882, 0.6457, 0.17551, 0.53994, 0.19457, 0.42227, 0.22507, 0.30196, 0.22507, 0.18165, 0.81605, 0.1724, 0.8332, 0.3998, 0.82939, 0.53465, 0.85227, 0.65628, 0.89611, 0.76998, 0.49768, 0.53861, 0.51865, 0.28874, 0.5034, 0.07324, 0.84979, 0.31308, 0.81597, 0.2321, 0.19995, 0.37876 ], + "triangles": [ 40, 27, 48, 46, 28, 29, 32, 28, 46, 11, 30, 29, 14, 32, 15, 28, 32, 14, 12, 11, 29, 13, 28, 14, 29, 28, 13, 12, 29, 13, 34, 33, 45, 34, 45, 19, 19, 18, 34, 17, 34, 18, 15, 32, 33, 16, 34, 17, 15, 33, 34, 16, 15, 34, 30, 31, 35, 7, 35, 31, 10, 9, 8, 31, 8, 7, 31, 10, 8, 10, 31, 30, 11, 10, 30, 21, 42, 22, 43, 42, 21, 43, 46, 42, 44, 43, 21, 44, 21, 20, 45, 44, 20, 45, 20, 19, 45, 33, 44, 46, 44, 32, 44, 46, 43, 44, 33, 32, 37, 4, 3, 36, 5, 4, 37, 36, 4, 35, 6, 5, 36, 35, 5, 7, 6, 35, 46, 36, 37, 36, 46, 29, 29, 30, 36, 30, 35, 36, 37, 38, 46, 48, 27, 26, 41, 48, 26, 41, 47, 48, 40, 48, 47, 49, 24, 23, 42, 50, 49, 47, 50, 42, 22, 49, 23, 42, 49, 22, 42, 46, 47, 41, 26, 25, 50, 47, 41, 49, 50, 24, 41, 24, 50, 24, 41, 25, 51, 2, 1, 38, 2, 51, 38, 51, 46, 40, 0, 27, 1, 0, 40, 39, 40, 47, 1, 40, 39, 39, 51, 1, 3, 2, 38, 47, 51, 39, 38, 37, 3, 46, 51, 47 ], + "vertices": [ 2, 139, -67.32, -1.83, 0.83, 4, 54.84, 90.31, 0.17, 2, 139, -22.81, -3.58, 0.9, 4, 10.42, 93.67, 0.1, 1, 139, 8.45, -8.12, 1, 2, 139, 23.99, -10.37, 0.84479, 137, -84.76, 9.18, 0.15521, 2, 139, 67.49, -17.04, 0.23, 137, -41.26, 2.52, 0.77, 3, 139, 107.59, -26.04, 0.00129, 137, -1.16, -6.49, 0.9964, 135, -109.35, 27.31, 0.00231, 3, 137, 41.35, -17.24, 0.64884, 135, -66.84, 16.56, 0.34223, 134, -85.85, -117.18, 0.00892, 4, 139, 185.16, -48.08, 0.02, 137, 76.41, -28.53, 0.21385, 135, -31.78, 5.27, 0.75071, 134, -50.79, -128.46, 0.01544, 2, 137, 104.1, -38.11, 0.00727, 135, -4.09, -4.31, 0.99273, 2, 135, 14.87, -5.06, 0.99722, 134, -4.14, -138.79, 0.00278, 3, 137, 129.28, -6.66, 0.02507, 135, 21.09, 27.14, 0.86628, 134, 2.08, -106.6, 0.10865, 3, 137, 132.45, 32.02, 0.04886, 135, 24.26, 65.82, 0.49631, 134, 5.25, -67.92, 0.45484, 3, 137, 139.29, 59, 0.0214, 135, 31.1, 92.79, 0.21036, 134, 12.09, -40.94, 0.76824, 4, 137, 142.44, 93.55, 6.5E-4, 135, 34.25, 127.35, 0.01537, 136, 25.25, -127.51, 3.3E-4, 134, 15.24, -6.39, 0.98365, 3, 138, 148.57, -64.7, 0.00449, 136, 23.37, -87.8, 0.17701, 134, 13.36, 33.32, 0.81851, 3, 138, 140.04, -29.69, 0.02334, 136, 14.84, -52.79, 0.60404, 134, 4.83, 68.33, 0.37262, 3, 138, 141.46, 6.58, 0.00358, 136, 16.27, -16.52, 0.93615, 134, 6.25, 104.6, 0.06026, 1, 136, 8.94, 7.18, 1, 3, 138, 92.92, 31.89, 0.14408, 136, -32.28, 8.8, 0.85584, 134, -42.29, 129.92, 8.0E-5, 3, 138, 61.03, 18.82, 0.46239, 136, -64.17, -4.27, 0.53552, 134, -74.18, 116.85, 0.00209, 2, 138, 18.54, 8.93, 0.91574, 136, -106.66, -14.16, 0.08426, 2, 140, 96.09, 1.28, 0.09, 138, -27.03, 4.94, 0.91, 2, 140, 48.31, 3.91, 0.53, 138, -74.81, 7.65, 0.47, 1, 140, 7.84, 7.97, 1, 2, 140, -23.4, 5.46, 0.81, 4, 26.44, -98.34, 0.19, 2, 140, -41.68, 3.99, 0.7, 4, 44.77, -97.57, 0.3, 2, 140, -108.46, -26.51, 0.93, 4, 112.65, -69.61, 0.07, 1, 4, 122.98, 66.95, 1, 4, 137, 97.61, 93.09, 0.01667, 135, -10.59, 126.89, 0.05862, 136, -19.58, -127.96, 0.00801, 134, -29.6, -6.84, 0.91669, 3, 137, 95, 65.69, 0.102, 135, -13.19, 99.49, 0.26627, 134, -32.2, -34.25, 0.63173, 3, 137, 89.63, 32.79, 0.20581, 135, -18.56, 66.59, 0.51806, 134, -37.57, -67.15, 0.27614, 3, 137, 85.22, -1.68, 0.21275, 135, -22.97, 32.12, 0.71605, 134, -41.98, -101.61, 0.0712, 3, 138, 102.64, -64, 0.07818, 136, -22.56, -87.09, 0.32621, 134, -32.57, 34.03, 0.59561, 3, 138, 95.96, -26.55, 0.18346, 136, -29.24, -49.64, 0.6387, 134, -39.25, 71.48, 0.17784, 3, 138, 96.12, 3.5, 0.16303, 136, -29.08, -19.6, 0.79715, 134, -39.09, 101.52, 0.03982, 3, 137, 46.33, -6.26, 0.62329, 135, -61.86, 27.54, 0.36315, 134, -80.87, -106.2, 0.01356, 4, 139, 111.23, -13.9, 6.6E-4, 137, 2.48, 5.65, 0.99342, 135, -105.71, 39.45, 0.0059, 134, -124.72, -94.28, 3.0E-5, 2, 139, 70.82, -5.18, 0.23, 137, -37.93, 14.37, 0.77, 2, 139, 25.75, 1.68, 0.84188, 137, -83, 21.24, 0.15812, 2, 139, -20.21, 11.64, 0.9, 4, 7.27, 78.55, 0.1, 2, 139, -66.49, 13.46, 0.83, 4, 53.46, 75.06, 0.17, 2, 140, -41.46, -11.03, 0.7, 4, 45.11, -82.55, 0.3, 2, 140, 46.2, -9.75, 0.53, 138, -76.94, -6, 0.47, 2, 140, 98.05, -12.72, 0.09, 138, -25.1, -9.06, 0.91, 2, 138, 21.93, -4.79, 0.90321, 136, -103.27, -27.89, 0.09679, 3, 138, 66.13, 5.19, 0.44464, 136, -59.07, -17.91, 0.54629, 134, -69.08, 103.21, 0.00907, 2, 139, 73.69, 80.79, 0.36969, 137, -35.06, 100.35, 0.63031, 2, 140, 0.31, -92.06, 0.96279, 138, -122.96, -88.24, 0.03721, 1, 140, -82.75, -93.01, 1, 1, 140, 13.01, -4.06, 1, 2, 140, -18.49, -11.91, 0.81, 4, 22.19, -80.8, 0.19, 1, 139, 9.07, 3.77, 1 ], + "hull": 28, + "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 50, 52, 52, 54, 0, 54, 44, 46, 46, 48, 48, 50, 2, 4, 4, 6 ], + "width": 267, + "height": 385 + } + }, + "cape-blue-shoulder-back": { + "cape-blue-shoulder-back": { + "name": "girl-blue-cape/cape-shoulder-back", + "type": "mesh", + "uvs": [ 0, 0.07849, 0.35461, 0.35256, 0.61389, 0.5707, 0.8193, 0.78883, 0.95063, 1, 1, 1, 1, 0.74409, 0.93379, 0.484, 0.79236, 0.20994, 0.59032, 0.01977, 0, 0 ], + "triangles": [ 6, 3, 7, 4, 3, 6, 4, 6, 5, 3, 2, 7, 2, 8, 7, 2, 1, 8, 0, 10, 9, 1, 0, 9, 1, 9, 8 ], + "vertices": [ 1, 4, 112.34, -7.46, 1, 2, 4, 77.47, -39.67, 0.89, 140, -72.17, -55.09, 0.11, 2, 4, 49.88, -63.07, 0.47, 140, -45.49, -30.67, 0.53, 2, 4, 22.7, -81.2, 0.2, 140, -19.01, -11.52, 0.8, 1, 140, 6.38, 0.4, 1, 1, 140, 6.56, 5.23, 1, 2, 4, 26.63, -99.26, 0.03, 140, -23.62, 6.37, 0.97, 2, 4, 57.72, -95.1, 0.19, 140, -54.53, 1.04, 0.81, 2, 4, 91.01, -83.72, 0.5, 140, -87.37, -11.59, 0.5, 2, 4, 114.88, -65.67, 0.71, 140, -110.54, -30.53, 0.29, 1, 4, 121.57, -8.16, 1 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 98, + "height": 118 + } + }, + "cape-blue-shoulder-front": { + "cape-blue-shoulder-front": { + "name": "girl-blue-cape/cape-shoulder-front", + "type": "mesh", + "uvs": [ 1, 0.26291, 0.82448, 0.42574, 0.58034, 0.61028, 0.30936, 0.80567, 0.09204, 1, 0.03839, 1, 0, 0.62982, 0, 0.31936, 0.21009, 0.09357, 0.51595, 0, 0.98546, 0.00238, 0.35765, 0.36929, 0.59912, 0.21298, 0.16717, 0.51258 ], + "triangles": [ 2, 11, 12, 2, 12, 1, 7, 8, 11, 1, 12, 0, 12, 10, 0, 12, 11, 8, 12, 8, 9, 12, 9, 10, 2, 13, 11, 13, 7, 11, 3, 4, 6, 4, 5, 6, 6, 13, 3, 2, 3, 13, 6, 7, 13 ], + "vertices": [ 1, 4, 82.18, -29.91, 1, 1, 4, 58.8, -6.49, 1, 2, 139, -47.93, 63.65, 0.33, 4, 33.09, 25.57, 0.67, 2, 139, -19.56, 29.18, 0.88, 4, 5.99, 61.04, 0.12, 1, 139, 8.9, 1.31, 1, 1, 139, 8.64, -5.28, 1, 2, 139, -47.77, -7.79, 0.73, 4, 35.51, 96.97, 0.27, 2, 139, -94.92, -5.94, 0.44, 4, 82.57, 93.41, 0.56, 2, 139, -128.2, 21.23, 0.21, 4, 114.84, 65.06, 0.79, 1, 4, 126.19, 26.47, 1, 1, 4, 121.47, -31.09, 1, 2, 139, -85.61, 37.72, 0.5, 4, 71.68, 50.12, 0.5, 1, 4, 93.14, 18.71, 1, 2, 139, -64.77, 13.46, 0.65, 4, 51.73, 75.12, 0.35 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 123, + "height": 152 + } + }, + "cape-blue-up-front": { + "cape-blue-up-front": { + "name": "girl-blue-cape/cape-up-front", + "type": "mesh", + "uvs": [ 1, 1, 0.7644, 1, 0.60402, 0.93701, 0.40799, 0.93403, 0.20484, 0.87139, 0.04445, 0.75804, 0, 0.57908, 0.00168, 0.39712, 0.16563, 0.2271, 0.39373, 0.07199, 0.60402, 0, 0.83568, 0, 1, 0.04515, 0.9034, 0.10182, 0.75727, 0.14955, 0.66461, 0.25991, 0.5862, 0.40905, 0.56481, 0.57013, 0.60045, 0.72225, 0.75371, 0.79682, 0.92835, 0.82665, 1, 0.90122, 0.32245, 0.38817, 0.29038, 0.58802, 0.40443, 0.76401, 0.43294, 0.16744, 0.13543, 0.58128, 0.19958, 0.34266, 0.23879, 0.78113, 0.4098, 0.13281, 0.61528, 0.04432 ], + "triangles": [ 2, 3, 24, 4, 28, 3, 2, 18, 19, 2, 24, 18, 1, 19, 20, 1, 20, 21, 2, 19, 1, 1, 21, 0, 28, 24, 3, 4, 5, 28, 5, 26, 28, 28, 26, 23, 28, 23, 24, 24, 23, 17, 24, 17, 18, 5, 6, 26, 8, 9, 29, 7, 8, 27, 6, 7, 26, 9, 10, 30, 30, 10, 11, 13, 11, 12, 14, 30, 11, 14, 11, 13, 25, 29, 30, 15, 30, 14, 25, 30, 15, 22, 27, 25, 16, 25, 15, 22, 25, 16, 23, 22, 17, 17, 22, 16, 29, 9, 30, 22, 23, 27, 29, 25, 27, 23, 26, 27, 26, 7, 27, 29, 27, 8 ], + "vertices": [ 1, 4, 85.07, -28.86, 1, 1, 4, 88.53, 16.95, 1, 2, 29, -78.55, -97.76, 0.12904, 4, 105.52, 47.03, 0.87096, 2, 29, -116.77, -97.07, 0.22, 4, 109.1, 85.09, 0.78, 4, 141, -191.82, 123.01, 0.23269, 29, -156.39, -82.47, 0.22918, 30, -67.47, -83.07, 0.13813, 4, 126.64, 123.49, 0.4, 4, 141, -165.41, 154.29, 0.28, 29, -187.66, -56.06, 0.40019, 30, -98.75, -56.66, 0.16114, 4, 155.33, 152.68, 0.15867, 4, 141, -123.71, 162.96, 0.17927, 6, 49.32, 155.86, 0.59755, 29, -196.33, -14.36, 0.06318, 30, -107.42, -14.96, 0.16, 3, 141, -81.31, 162.63, 0.07633, 6, 91.69, 157.33, 0.72367, 30, -107.09, 27.43, 0.2, 3, 141, -41.7, 130.66, 0.06, 6, 132.62, 127.07, 0.7, 30, -75.12, 67.05, 0.24, 4, 141, -5.56, 86.18, 0.08877, 6, 170.61, 84.16, 0.71399, 29, -119.55, 103.79, 0.01724, 30, -30.64, 103.19, 0.18, 4, 141, 11.21, 45.17, 0.51, 6, 189.11, 43.9, 0.19156, 29, -78.55, 120.56, 0.15, 30, 10.37, 119.96, 0.14844, 2, 141, 11.21, 0, 0.72, 29, -33.37, 120.56, 0.28, 2, 141, 0.7, -32.04, 0.72, 29, -1.33, 110.04, 0.28, 2, 141, -12.51, -13.21, 0.79, 29, -20.17, 96.84, 0.21, 2, 141, -23.63, 15.29, 0.71, 29, -48.66, 85.72, 0.29, 2, 141, -49.34, 33.36, 0.54, 29, -66.73, 60, 0.46, 2, 141, -84.09, 48.65, 0.45, 29, -82.02, 25.25, 0.55, 3, 141, -121.62, 52.82, 0.37571, 29, -86.19, -12.28, 0.55, 4, 191.34, 48.2, 0.07429, 3, 141, -157.07, 45.87, 0.27096, 29, -79.24, -47.72, 0.5, 4, 155.47, 43.94, 0.22904, 2, 29, -49.36, -65.1, 0.27899, 4, 135.89, 15.45, 0.72101, 2, 29, -15.3, -72.05, 0.11247, 4, 126.4, -17.98, 0.88753, 1, 4, 108.02, -30.6, 1, 2, 141, -79.23, 100.08, 0.64, 29, -133.45, 30.12, 0.36, 3, 141, -125.79, 106.33, 0.48, 29, -139.71, -16.45, 0.37805, 4, 191.22, 101.88, 0.14195, 3, 141, -166.8, 84.09, 0.27, 29, -117.47, -57.45, 0.423, 4, 148.65, 82.79, 0.307, 3, 141, -27.8, 78.53, 0.69314, 29, -111.91, 81.55, 0.28, 30, -22.99, 80.95, 0.02686, 4, 141, -124.22, 136.55, 0.35527, 29, -169.92, -14.88, 0.41, 30, -81.01, -15.48, 0.15867, 4, 195.06, 131.89, 0.07605, 3, 141, -68.62, 124.04, 0.86, 29, -157.41, 40.72, 0.10943, 30, -68.5, 40.12, 0.03057, 4, 141, -170.79, 116.39, 0.27213, 29, -149.77, -61.44, 0.35294, 30, -60.85, -62.04, 0.03493, 4, 147.11, 115.3, 0.34, 3, 141, -19.73, 83.05, 0.24, 29, -116.42, 89.62, 0.39163, 30, -27.5, 89.02, 0.36837, 3, 141, 0.89, 42.98, 0.64, 29, -76.35, 110.23, 0.27769, 30, 12.56, 109.64, 0.08231 ], + "hull": 22, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 42, 54, 50, 52, 56, 58, 54, 58, 60 ], + "width": 195, + "height": 233 + } + }, + "cape-ribbon": { + "cape-ribbon": { "name": "girl-blue-cape/cape-ribbon", "x": 105.78, "y": -28.65, "rotation": -94.33, "width": 100, "height": 36 } + }, + "cape-up-back": { + "cape-up-back": { + "name": "girl-blue-cape/cape-back-up", + "type": "mesh", + "uvs": [ 0.52406, 0.00329, 0.62554, 0.04269, 0.7529, 0.09213, 0.90546, 0.25682, 1, 0.47751, 1, 0.7509, 0.89981, 0.91888, 0.75572, 1, 0.39127, 1, 0, 0.79372, 0, 0.22718, 0.29804, 0, 0.79245, 0.82336, 0.85743, 0.53021, 0.79245, 0.3227, 0.66532, 0.19753, 0.42518, 0.10531, 0.37997, 0.56974, 0.55552, 0.10358 ], + "triangles": [ 12, 13, 5, 7, 12, 6, 7, 8, 12, 13, 4, 5, 12, 17, 13, 13, 14, 4, 6, 12, 5, 16, 10, 11, 8, 17, 12, 17, 10, 16, 9, 17, 8, 9, 10, 17, 3, 14, 2, 14, 15, 2, 17, 16, 15, 16, 18, 15, 18, 1, 15, 16, 0, 18, 16, 11, 0, 18, 0, 1, 15, 1, 2, 14, 17, 15, 14, 3, 4, 17, 14, 13 ], + "vertices": [ 2, 141, 8.32, -5.56, 0.76, 29, -27.81, 117.67, 0.24, 2, 141, -0.3, -30.52, 0.76, 29, -2.85, 109.04, 0.24, 2, 141, -11.12, -61.85, 0.81, 29, 28.48, 98.23, 0.19, 3, 141, -45.87, -99.38, 0.51456, 29, 66.01, 63.48, 0.21, 4, 255.4, -109.28, 0.27544, 3, 141, -92.43, -122.64, 0.26657, 29, 89.27, 16.91, 0.13343, 4, 207.22, -128.96, 0.6, 3, 141, -150.12, -122.64, 0.00304, 29, 89.27, -40.77, 0.16, 4, 149.7, -124.61, 0.83696, 3, 29, 64.62, -76.22, 0.12, 30, 153.54, -76.82, 5.0E-4, 4, 116.21, -97.36, 0.8795, 1, 4, 101.82, -60.73, 1, 2, 29, -60.48, -93.33, 0.44568, 30, 28.44, -93.93, 0.55432, 3, 141, -159.15, 123.36, 0.72, 29, -156.73, -49.81, 0.00104, 30, -67.82, -50.41, 0.27896, 2, 30, -67.82, 69.13, 0.31, 6, 135.01, 119.86, 0.69, 4, 141, 8.32, 50.04, 0.28019, 29, -83.41, 117.67, 0.24, 30, 5.5, 117.07, 0.0456, 6, 186.01, 48.64, 0.43421, 2, 29, 38.21, -56.06, 0.16, 4, 138.3, -72.55, 0.84, 3, 141, -103.55, -87.57, 0.29987, 29, 54.2, 5.79, 0.15013, 4, 198.77, -93.15, 0.55, 3, 141, -59.72, -71.58, 0.5125, 29, 38.21, 49.63, 0.21, 4, 243.69, -80.52, 0.2775, 2, 141, -33.12, -40.31, 0.81, 29, 6.94, 76.22, 0.19, 2, 141, -13.8, 18.77, 0.76, 29, -52.14, 95.55, 0.24, 3, 141, -111.85, 29.89, 0.02898, 29, -63.26, -2.5, 0.24273, 30, 25.66, -3.1, 0.72829, 2, 141, -13.3, -13.3, 0.76, 29, -20.07, 96.05, 0.24 ], + "hull": 12, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 0, 22, 0, 2, 2, 4 ], + "width": 246, + "height": 211 + } + }, + "ear": { + "ear": { + "name": "girl/ear", + "path": "girl-blue-cape/ear", + "x": 56.58, + "y": 85.63, + "rotation": -87.57, + "width": 38, + "height": 45 + } + }, + "eye-back-eyebrow": { + "eye-back-eyebrow": { + "name": "girl/back-eyebrow", + "path": "girl-blue-cape/back-eyebrow", + "x": 15.6, + "y": -9.48, + "rotation": -177.9, + "width": 36, + "height": 23 + } + }, + "eye-back-iris": { + "eye-back-iris": { "name": "girl/eye-iris-back", "path": "girl-blue-cape/eye-iris-back", "x": 0.85, "y": -0.75, "width": 33, "height": 34 } + }, + "eye-back-low-eyelid": { + "eye-back-low-eyelid": { + "name": "girl/eye-back-low-eyelid", + "type": "mesh", + "path": "girl-blue-cape/eye-back-low-eyelid", + "uvs": [ 0, 0.26476, 0.20331, 0.79621, 0.50495, 0.95421, 0.8401, 0.89676, 1, 0.33658, 0.88319, 0.07803, 0.75871, 0.25039, 0.5241, 0.35094, 0.31343, 0.19294, 0.09798, 0 ], + "triangles": [ 3, 2, 7, 2, 1, 7, 7, 6, 3, 3, 6, 4, 1, 8, 7, 1, 0, 8, 6, 5, 4, 0, 9, 8 ], + "vertices": [ 1, 42, -29.75, 1.38, 1, 2, 42, -23.04, -4.47, 0.63, 43, 23.4, -1.82, 0.37, 2, 42, -13.09, -6.21, 0.62, 43, 14.27, 2.5, 0.38, 2, 42, -2.03, -5.57, 0.76, 43, 3.44, 4.83, 0.24, 1, 42, 3.25, 0.59, 1, 1, 42, -0.61, 3.43, 1, 2, 42, -4.72, 1.54, 0.76, 43, 4.14, -2.74, 0.24, 2, 42, -12.46, 0.43, 0.62, 43, 11.9, -3.73, 0.38, 2, 42, -19.41, 2.17, 0.63, 43, 18.14, -7.25, 0.37, 1, 42, -26.52, 4.29, 1 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 33, + "height": 11 + } + }, + "eye-back-pupil": { + "eye-back-pupil": { + "name": "girl/eye-back-pupil", + "path": "girl-blue-cape/eye-back-pupil", + "x": 0.43, + "y": -0.67, + "scaleX": 1.2, + "scaleY": 1.2062, + "width": 15, + "height": 17 + } + }, + "eye-back-up-eyelid": { + "eye-back-up-eyelid": { + "name": "girl/eye-back-up-eyelid", + "type": "mesh", + "path": "girl-blue-cape/eye-back-up-eyelid", + "uvs": [ 0.07861, 0.9592, 0.24977, 0.54703, 0.44727, 0.42338, 0.58882, 0.40964, 0.77315, 0.59512, 1, 0.16921, 1, 0, 0.76657, 0.13486, 0.61844, 0, 0.40119, 0.01807, 0.18065, 0.25164, 0, 0.73938, 0, 0.95234 ], + "triangles": [ 1, 10, 2, 3, 2, 9, 2, 10, 9, 3, 9, 8, 3, 8, 7, 1, 0, 11, 0, 12, 11, 11, 10, 1, 3, 7, 4, 4, 7, 5, 7, 6, 5 ], + "vertices": [ 1, 40, -31.8, -11.42, 1, 2, 40, -23.59, -1.94, 0.51, 41, 22.75, 6.53, 0.49, 2, 40, -14.11, 0.91, 0.15, 41, 14.01, 1.88, 0.85, 1, 41, 7.41, 0.24, 1, 1, 40, 1.53, -3.04, 1, 1, 40, 12.42, 6.75, 1, 1, 40, 12.42, 10.64, 1, 1, 40, 1.22, 7.54, 1, 1, 41, 7.87, -9.28, 1, 2, 40, -16.32, 10.23, 0.15, 41, 18.01, -6.83, 0.85, 2, 40, -26.91, 4.86, 0.52, 41, 27.34, 0.52, 0.48, 1, 40, -35.58, -6.36, 1, 1, 40, -35.58, -11.26, 1 ], + "hull": 13, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24 ], + "width": 48, + "height": 23 + } + }, + "eye-back-up-eyelid-back": { + "eye-back-up-eyelid-back": { + "name": "girl/eye-back-up-eyelid-back", + "type": "mesh", + "path": "girl-blue-cape/eye-back-up-eyelid-back", + "uvs": [ 0.12627, 1, 0, 0.99472, 0, 0.60349, 0.16345, 0.30253, 0.44692, 0.06177, 0.74898, 0.00911, 1, 0.1972, 1, 0.52073, 0.72574, 0.37025, 0.49339, 0.42292, 0.25639, 0.68625 ], + "triangles": [ 0, 1, 2, 10, 0, 2, 10, 3, 9, 9, 4, 8, 8, 6, 7, 2, 3, 10, 3, 4, 9, 8, 5, 6, 8, 4, 5 ], + "vertices": [ 1, 40, -28.64, -7.74, 1, 1, 40, -32.94, -7.63, 1, 1, 39, -19.88, 27.79, 1, 1, 39, -14.32, 34.11, 1, 1, 39, -4.69, 39.17, 1, 1, 39, 5.58, 40.27, 1, 1, 39, 14.12, 36.32, 1, 1, 40, 1.06, 2.33, 1, 1, 41, 9.18, -3.76, 1, 2, 41, 16.71, -1.13, 0.92, 40, -16.16, 4.38, 0.08, 2, 41, 23.53, 5.88, 0.33, 40, -24.22, -1.15, 0.67 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 34, + "height": 21 + } + }, + "eye-back-white": { + "eye-back-white": { + "name": "girl/eye-white-back", + "type": "mesh", + "path": "girl-blue-cape/eye-white-back", + "uvs": [ 0, 0.39191, 0.07911, 0.7283, 0.26952, 0.95255, 0.56931, 0.98823, 0.90962, 0.92197, 1, 0.50404, 0.94608, 0.17784, 0.76378, 0.00455, 0.50855, 0, 0.20875, 0.12178, 0.56121, 0.48365 ], + "triangles": [ 3, 2, 10, 4, 3, 10, 2, 1, 10, 4, 10, 5, 10, 8, 7, 9, 8, 10, 1, 0, 10, 10, 6, 5, 0, 9, 10, 10, 7, 6 ], + "vertices": [ 1, 40, -34.26, -6.05, 1, 1, 42, -30.63, 5.01, 1, 2, 42, -23.2, -1.94, 0.5, 43, 22.88, -4.3, 0.5, 2, 42, -11.51, -3.04, 0.61, 43, 11.91, -0.13, 0.39, 1, 42, 1.76, -0.99, 1, 2, 40, 4.74, -9.52, 0.54, 42, 5.29, 11.97, 0.46, 1, 40, 2.64, 0.59, 1, 2, 40, -4.47, 5.96, 0.35, 41, 5.55, -4.97, 0.65, 2, 40, -14.42, 6.1, 0.22, 41, 15.34, -3.16, 0.78, 2, 40, -26.12, 2.33, 0.49, 41, 26.07, 2.84, 0.51, 2, 40, -12.37, -8.89, 0.71, 43, 8.05, -15.29, 0.29 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 39, + "height": 31 + } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { + "name": "girl/front-eyebrow", + "path": "girl-blue-cape/front-eyebrow", + "x": 10.82, + "y": 8.92, + "rotation": -3.58, + "width": 36, + "height": 23 + } + }, + "eye-front-iris": { + "eye-front-iris": { "name": "girl/eye-iris-front", "path": "girl-blue-cape/eye-iris-front", "x": 0.22, "y": -0.71, "width": 36, "height": 35 } + }, + "eye-front-low-eyelid": { + "eye-front-low-eyelid": { + "name": "girl/eye-front-low-eyelid", + "type": "mesh", + "path": "girl-blue-cape/eye-front-low-eyelid", + "uvs": [ 0.07038, 0, 0, 0.43773, 0.24154, 0.94046, 0.64093, 0.92609, 1, 0.39464, 1, 0.00682, 0.8516, 0, 0.61899, 0.36591, 0.30738, 0.39464 ], + "triangles": [ 8, 7, 3, 2, 8, 3, 2, 1, 8, 6, 5, 4, 7, 6, 4, 1, 0, 8, 3, 7, 4 ], + "vertices": [ 1, 36, -0.25, 5.3, 1, 1, 36, -2.79, 0.49, 1, 1, 37, 6.69, -3.95, 1, 2, 36, 20.29, -4.89, 0.61, 37, 20.82, -1.32, 0.39, 1, 36, 33.21, 0.96, 1, 1, 36, 33.21, 5.23, 1, 1, 36, 27.87, 5.3, 1, 2, 36, 19.5, 1.28, 0.61, 37, 18.99, 4.61, 0.39, 1, 37, 7.99, 2.37, 1 ], + "hull": 9, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 0, 16 ], + "width": 36, + "height": 11 + } + }, + "eye-front-pupil": { + "eye-front-pupil": { + "name": "girl/eye-front-pupil", + "path": "girl-blue-cape/eye-front-pupil", + "x": -0.04, + "y": -0.47, + "scaleX": 1.2, + "scaleY": 1.2, + "width": 17, + "height": 17 + } + }, + "eye-front-up-eyelid": { + "eye-front-up-eyelid": { + "name": "girl/eye-front-up-eyelid", + "type": "mesh", + "path": "girl-blue-cape/eye-front-up-eyelid", + "uvs": [ 0.32251, 0.43387, 0.36464, 0.94737, 0.28564, 1, 0.16714, 0.73859, 0.15924, 0.42823, 0, 0.24201, 0, 0, 0.22771, 0.2138, 0.41731, 0, 0.66747, 0, 0.88604, 0.23637, 1, 0.54673, 1, 0.81194, 0.86497, 0.79501, 0.74121, 0.4903, 0.61217, 0.35487, 0.45417, 0.35487 ], + "triangles": [ 14, 15, 10, 2, 3, 1, 3, 0, 1, 13, 11, 12, 13, 14, 11, 3, 4, 0, 14, 10, 11, 0, 4, 7, 4, 5, 7, 5, 6, 7, 16, 0, 7, 7, 8, 16, 10, 15, 9, 9, 15, 8, 15, 16, 8 ], + "vertices": [ 2, 35, 6.87, 1.33, 0.47507, 34, 6.4, 2.84, 0.52493, 2, 35, 6.12, -13.25, 0.09298, 34, 8.93, -11.54, 0.90702, 1, 34, 4.19, -13.01, 1, 1, 34, -2.92, -5.69, 1, 2, 35, -2.64, 3.68, 0.0415, 34, -3.4, 3, 0.9585, 1, 34, -12.95, 8.21, 1, 1, 34, -12.95, 14.99, 1, 2, 35, 2.71, 8.61, 0.27883, 34, 0.71, 9, 0.72117, 1, 35, 15.14, 11.9, 1, 2, 35, 29.76, 8.54, 0.65, 34, 27.1, 14.99, 0.35, 2, 35, 41.06, -0.85, 0.28137, 34, 40.21, 8.37, 0.71863, 1, 34, 47.05, -0.32, 1, 1, 34, 47.05, -7.75, 1, 2, 35, 36.33, -15.81, 0.07124, 34, 38.95, -7.27, 0.92876, 2, 35, 31, -5.83, 0.45, 34, 31.52, 1.26, 0.55, 2, 35, 24.31, -0.4, 0.65, 34, 23.78, 5.05, 0.35, 2, 35, 15.07, 1.72, 0.76, 34, 14.3, 5.05, 0.24 ], + "hull": 17, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 0, 32 ], + "width": 60, + "height": 28 + } + }, + "eye-front-up-eyelid-back": { + "eye-front-up-eyelid-back": { + "name": "girl/eye-front-up-eyelid-back", + "type": "mesh", + "path": "girl-blue-cape/eye-front-up-eyelid-back", + "uvs": [ 0.05111, 0.59525, 0.31445, 0.34389, 0.48174, 0.29362, 0.69861, 0.43007, 0.81323, 0.65271, 0.90617, 1, 1, 1, 1, 0.74607, 0.93406, 0.48034, 0.78845, 0.18589, 0.62115, 0, 0.49104, 0, 0.26798, 0, 0, 0.28644, 0, 0.48752 ], + "triangles": [ 3, 2, 9, 2, 1, 12, 5, 7, 6, 5, 4, 7, 4, 8, 7, 4, 3, 8, 0, 14, 1, 14, 13, 1, 3, 9, 8, 10, 9, 2, 10, 2, 11, 1, 13, 12, 2, 12, 11 ], + "vertices": [ 1, 78, -25.28, -10.9, 1, 1, 35, 14.1, 7.02, 1, 1, 35, 22.66, 6.19, 1, 2, 78, 7.58, -7.27, 0.37, 35, 32.77, 0.79, 0.63, 2, 78, 13.43, -12.17, 0.71, 35, 37.37, -5.29, 0.29, 1, 78, 18.17, -19.81, 1, 1, 78, 22.96, -19.81, 1, 1, 78, 22.96, -14.22, 1, 1, 78, 19.59, -8.37, 1, 1, 78, 12.17, -1.9, 1, 1, 78, 3.63, 2.19, 1, 1, 78, -3, 2.19, 1, 1, 78, -14.38, 2.19, 1, 1, 78, -28.04, -4.11, 1, 1, 78, -28.04, -8.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 51, + "height": 22 + } + }, + "eye-front-white": { + "eye-front-white": { + "name": "girl/eye-white-front", + "type": "mesh", + "path": "girl-blue-cape/eye-white-front", + "uvs": [ 0, 0.13677, 0.03631, 0.56139, 0.18641, 0.96133, 0.54191, 0.97121, 0.90531, 0.87739, 1, 0.54164, 1, 0.24046, 0.80425, 0.13009, 0.57351, 0, 0.25751, 0.00346, 0.47082, 0.52682 ], + "triangles": [ 3, 2, 10, 2, 1, 10, 4, 3, 10, 4, 10, 5, 7, 6, 5, 1, 0, 10, 10, 9, 8, 10, 8, 7, 10, 7, 5, 0, 9, 10 ], + "vertices": [ 1, 34, 3.55, 4.71, 1, 2, 34, 5, -8.88, 0.5, 36, -3.97, 10.98, 0.5, 2, 36, 2.03, -1.82, 0.36, 37, 2.31, -1.44, 0.64, 2, 36, 16.25, -2.14, 0.32, 37, 16.37, 0.69, 0.68, 1, 36, 30.79, 0.87, 1, 1, 36, 34.57, 11.61, 1, 1, 34, 43.55, 1.39, 1, 2, 35, 35.91, -3.2, 0.27, 34, 35.72, 4.92, 0.73, 2, 35, 27.85, 2.93, 0.54, 34, 26.49, 9.09, 0.46, 2, 35, 15.51, 5.65, 0.62, 34, 13.85, 8.98, 0.38, 2, 35, 20.07, -12.59, 0.81, 37, 11.13, 14.21, 0.19 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 16, 18, 0, 18, 12, 14, 14, 16 ], + "width": 40, + "height": 32 + } + }, + "hair-back": { + "hair-back": { "name": "girl-blue-cape/hair-back", "x": 77.53, "y": 2.96, "rotation": -87.57, "width": 234, "height": 196 } + }, + "hair-bangs": { + "hair-bangs": { + "name": "girl/hair-bangs", + "type": "mesh", + "path": "girl-blue-cape/hair-bangs", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "girl/hair-bangs", + "type": "mesh", + "path": "girl-blue-cape/hair-bangs", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch2", + "type": "mesh", + "path": "girl/hair-patch", + "color": "ff6578ff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "path": "girl-blue-cape/hair-side", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-side-back": { + "hair-side-back": { + "name": "girl/hair-head-side-back", + "type": "mesh", + "path": "girl-blue-cape/hair-head-side-back", + "uvs": [ 0.17374, 0.1545, 0.22967, 0.37557, 0.21289, 0.61586, 0, 0.86256, 0, 1, 0.25205, 1, 0.45899, 0.87537, 0.69391, 0.87858, 0.80577, 0.69916, 0.82815, 0.52615, 1, 0.46528, 0.99594, 0.21858, 0.73306, 0.04236, 0.53171, 0, 0.27442, 0.04877, 0.51493, 0.5678, 0.59323, 0.17692, 0.73306, 0.35954, 0.46459, 0.76964 ], + "triangles": [ 17, 11, 10, 15, 1, 16, 16, 14, 13, 14, 16, 1, 1, 0, 14, 16, 12, 17, 17, 12, 11, 16, 13, 12, 15, 16, 17, 2, 1, 15, 5, 18, 6, 5, 4, 3, 6, 18, 7, 7, 18, 8, 5, 3, 2, 18, 5, 2, 18, 15, 8, 18, 2, 15, 8, 15, 9, 9, 17, 10, 15, 17, 9 ], + "vertices": [ 2, 47, 44.16, -9.72, 0.072, 6, 75.71, -87.13, 0.928, 2, 47, 65.84, -17.42, 0.21564, 6, 53.1, -91.39, 0.78436, 2, 47, 87.28, -29.83, 0.5439, 6, 28.33, -91.45, 0.4561, 3, 47, 103.9, -52.79, 0.8752, 6, 2.41, -79.98, 0.09988, 30, 134.21, -69.81, 0.02493, 3, 47, 116.42, -59.39, 0.89423, 6, -11.73, -80.58, 0.014, 30, 134.21, -83.97, 0.09177, 3, 47, 123.36, -46.24, 0.87011, 6, -11.1, -95.43, 0.00989, 30, 149.08, -83.97, 0.12, 3, 47, 117.69, -29.45, 0.77082, 6, 2.24, -107.09, 0.0941, 30, 161.29, -71.13, 0.13508, 3, 47, 124.45, -17.35, 0.86922, 6, 2.5, -120.95, 0.00701, 30, 175.15, -71.46, 0.12377, 3, 47, 111.18, -2.89, 0.73582, 6, 21.24, -126.76, 0.12392, 30, 181.75, -52.98, 0.14026, 3, 47, 96.03, 6.59, 0.55463, 6, 39.1, -127.33, 0.32878, 30, 183.07, -35.16, 0.11659, 3, 47, 95.21, 18.48, 0.54495, 6, 45.79, -137.19, 0.37264, 30, 193.21, -28.89, 0.08241, 2, 47, 72.62, 30.12, 0.39164, 6, 71.17, -135.87, 0.60836, 2, 47, 49.33, 24.86, 0.13442, 6, 88.65, -119.61, 0.86558, 2, 47, 39.93, 16.38, 0.03367, 6, 92.5, -107.55, 0.96633, 2, 47, 37.3, 0.61, 0.176, 6, 86.84, -92.6, 0.824, 3, 47, 91.21, -11.76, 0.52, 6, 34.03, -109.04, 0.39641, 30, 164.59, -39.45, 0.08358, 2, 47, 57.74, 11.1, 0.24029, 6, 74.45, -111.95, 0.75971, 3, 47, 78.23, 9.62, 0.39663, 6, 56.01, -120.99, 0.565, 30, 177.46, -18, 0.03837, 3, 47, 108.21, -24.08, 0.64328, 6, 13.13, -106.96, 0.22492, 30, 161.62, -60.24, 0.1318 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 59, + "height": 103 + } + }, + "hair-side-front": { + "hair-side-front": { + "name": "girl/hair-head-side-front", + "type": "mesh", + "path": "girl-blue-cape/hair-head-side-front", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 6, 5.69, 38.25, 1, 1, 6, 2.21, 120.17, 1, 1, 6, 85.14, 123.69, 1, 1, 6, 88.61, 41.77, 1 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 82, + "height": 83 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "path": "girl-blue-cape/hair-side", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hand-back": { + "hand-back-fingers": { + "name": "girl/hand-front-fingers", + "path": "girl-blue-cape/hand-front-fingers", + "x": 11.59, + "y": 1.97, + "rotation": 90, + "width": 38, + "height": 42 + } + }, + "hand-front": { + "hand-front-fingers": { + "name": "girl/hand-front-fingers", + "path": "girl-blue-cape/hand-front-fingers", + "x": 11.59, + "y": 1.97, + "rotation": 90, + "width": 38, + "height": 42 + } + }, + "leg-back": { + "leg-back": { + "name": "girl/leg-front", + "type": "mesh", + "path": "girl-blue-cape/leg-front", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 0, 48, 42, 42, 48, 31, 42, 31, 33, 34, 0, 42, 34, 42, 33, 31, 32, 33, 31, 48, 30, 41, 12, 13, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48 ], + "vertices": [ 3, 94, 22.95, -22.02, 0.22728, 95, 59.29, -22, 0.00272, 103, -19.33, 11.79, 0.77, 3, 94, 5.73, -22.61, 0.49142, 95, 41.79, -22.61, 0.23858, 103, -19.74, 29.07, 0.27, 4, 94, -10.55, -23.17, 0.11127, 95, 25.25, -23.18, 0.76279, 96, 60.87, -23.13, 0.00594, 103, -20.15, 45.45, 0.12, 2, 95, 5.13, -23.87, 0.69465, 96, 41.05, -23.86, 0.30535, 3, 95, -15.89, -24.56, 0.09408, 96, 20.35, -24.59, 0.86299, 97, 56.72, -24.52, 0.04292, 2, 96, 1.98, -25.21, 0.55425, 97, 38.06, -25.21, 0.44575, 3, 96, -19.09, -25.88, 0.05256, 97, 16.64, -25.95, 0.87891, 98, 52.7, -25.89, 0.06853, 3, 96, -33.74, -26.34, 3.3E-4, 97, 1.76, -26.46, 0.67227, 98, 37.81, -26.45, 0.32739, 2, 97, -3.17, -22.02, 0.47188, 98, 32.86, -22.03, 0.52812, 3, 97, -22.68, -22.46, 0.0172, 98, 13.36, -22.55, 0.87617, 99, 49.14, -22.52, 0.10662, 3, 98, -7.93, -23.09, 0.23789, 99, 28.2, -23.11, 0.75909, 100, 64.58, -23.1, 0.00302, 3, 98, -27.79, -23.57, 0.00312, 99, 8.67, -23.62, 0.75495, 100, 44.76, -23.62, 0.24193, 3, 99, -12.93, -24.2, 0.09944, 100, 22.84, -24.2, 0.87238, 101, 58.46, -24.21, 0.02818, 2, 100, 0.77, -24.79, 0.47358, 101, 36.71, -24.79, 0.52642, 1, 101, 1.72, -25.72, 1, 1, 101, -25.98, -26.46, 1, 1, 101, -26.33, 25.98, 1, 1, 101, -0.53, 25.24, 1, 2, 100, -3.13, 24.27, 0.37555, 101, 32.87, 24.27, 0.62445, 3, 99, -15.75, 23.6, 0.0536, 100, 19.96, 23.6, 0.92085, 101, 55.62, 23.59, 0.02556, 2, 99, 5.77, 22.96, 0.65378, 100, 41.79, 22.97, 0.34622, 3, 98, -11.12, 22.43, 0.12254, 99, 24.96, 22.4, 0.86248, 100, 61.27, 22.42, 0.01499, 3, 97, -26.03, 21.9, 0.00839, 98, 9.83, 21.8, 0.78745, 99, 45.58, 21.82, 0.20415, 3, 97, -7.13, 21.27, 0.362, 98, 28.73, 21.24, 0.63637, 99, 64.17, 21.3, 0.00163, 2, 97, -6.17, 28.11, 0.5025, 98, 29.67, 28.08, 0.4975, 3, 96, -21.38, 27.22, 0.03848, 97, 14.13, 27.14, 0.83871, 98, 49.97, 27.2, 0.12281, 3, 96, -2.33, 26.26, 0.40865, 97, 33.49, 26.25, 0.59016, 98, 69.34, 26.38, 0.00119, 3, 95, -20.14, 25.43, 0.05003, 96, 16.06, 25.39, 0.84798, 97, 52.19, 25.45, 0.10198, 2, 95, 1.24, 24.42, 0.56331, 96, 37.12, 24.42, 0.43669, 4, 94, -15.67, 23.56, 0.04308, 95, 20, 23.55, 0.81142, 96, 55.61, 23.58, 0.0255, 103, 26.63, 50.22, 0.12, 3, 94, 0.26, 22.8, 0.33337, 95, 36.2, 22.8, 0.39663, 103, 25.72, 34.13, 0.27, 3, 94, 18.48, 21.95, 0.22212, 95, 54.71, 21.97, 0.00788, 103, 24.69, 15.83, 0.77, 1, 103, 36.21, 8.95, 1, 1, 103, 36.08, -3.91, 1, 1, 103, -18.97, -3.34, 1, 1, 101, 0.45, 0, 1, 1, 98, 31.4, 0, 1, 1, 98, 11.41, 0, 1, 1, 99, 26.57, 0, 1, 1, 99, 7.43, 0, 1, 1, 100, 20.94, 0, 1, 1, 101, 34.45, 0, 1, 2, 94, 23.32, 0.24, 0.23, 103, 2.93, 11.2, 0.77, 1, 97, 15.67, 0.04, 1, 2, 96, -0.81, 0.07, 0.36735, 97, 35.13, 0.07, 0.63265, 1, 96, 18, 0.1, 1, 2, 95, 2.51, 0.14, 0.90776, 96, 38.42, 0.14, 0.09224, 2, 95, 22.3, 0.17, 0.88, 103, 3.23, 48.15, 0.12, 3, 94, 2.19, 0.2, 0.62933, 95, 38.18, 0.2, 0.10067, 103, 3.11, 32.41, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "leg-front": { + "leg-front": { + "name": "girl/leg-front", + "type": "mesh", + "path": "girl-blue-cape/leg-front", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 31, 48, 30, 0, 48, 42, 42, 48, 31, 34, 42, 33, 31, 32, 33, 42, 31, 33, 34, 0, 42, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 41, 12, 13, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15 ], + "vertices": [ 3, 28, 22.96, -22.02, 0.22658, 27, 58.91, -22.02, 0.00342, 102, -21, 12.47, 0.77, 3, 28, 5.76, -22.61, 0.49273, 27, 41.71, -22.61, 0.23727, 102, -21.71, 29.73, 0.27, 4, 28, -10.68, -23.18, 0.11707, 27, 25.27, -23.18, 0.76681, 26, 61.22, -23.18, 0.00612, 102, -22.41, 46.07, 0.11, 2, 27, 5.13, -23.87, 0.6994, 26, 41.08, -23.87, 0.3006, 3, 27, -15.62, -24.58, 0.10595, 26, 20.33, -24.58, 0.85365, 25, 56.28, -24.58, 0.0404, 3, 27, -33.92, -25.21, 7.9E-4, 26, 2.03, -25.21, 0.57156, 25, 37.98, -25.21, 0.42765, 3, 26, -19.29, -25.94, 0.05654, 25, 16.66, -25.94, 0.87764, 24, 52.61, -25.94, 0.06582, 3, 26, -34.16, -26.46, 4.4E-4, 25, 1.79, -26.46, 0.67282, 24, 37.74, -26.46, 0.32674, 2, 25, -3.13, -22.03, 0.47104, 24, 32.82, -22.03, 0.52896, 3, 25, -22.61, -22.55, 0.01665, 24, 13.34, -22.55, 0.87142, 23, 49.29, -22.55, 0.11193, 3, 24, -7.79, -23.11, 0.22064, 23, 28.17, -23.11, 0.77569, 22, 64.12, -23.11, 0.00367, 3, 24, -27.25, -23.62, 0.00219, 23, 8.7, -23.62, 0.77556, 22, 44.65, -23.62, 0.22225, 3, 21, 58.81, -24.2, 0.0114, 23, -13.09, -24.2, 0.12046, 22, 22.86, -24.2, 0.86813, 2, 21, 36.72, -24.79, 0.42237, 22, 0.77, -24.79, 0.57763, 2, 21, 1.72, -25.72, 0.99849, 22, -34.23, -25.72, 0.00151, 1, 21, -25.98, -26.46, 1, 1, 21, -26.33, 25.98, 1, 2, 21, -0.53, 25.24, 0.99997, 22, -36.48, 25.24, 3.0E-5, 2, 21, 32.85, 24.27, 0.56274, 22, -3.1, 24.27, 0.43726, 3, 21, 55.91, 23.6, 0.02334, 23, -15.99, 23.6, 0.05774, 22, 19.96, 23.6, 0.91892, 3, 24, -30.16, 22.96, 3.0E-4, 23, 5.79, 22.96, 0.6752, 22, 41.74, 22.96, 0.3245, 3, 24, -11, 22.41, 0.14886, 23, 24.95, 22.41, 0.84172, 22, 60.9, 22.41, 0.00941, 3, 25, -26.16, 21.8, 0.00663, 24, 9.79, 21.8, 0.80794, 23, 45.74, 21.8, 0.18543, 3, 25, -7.19, 21.25, 0.35697, 24, 28.76, 21.25, 0.64235, 23, 64.72, 21.25, 6.7E-4, 2, 25, -6.22, 28.1, 0.49898, 24, 29.73, 28.1, 0.50102, 3, 26, -21.82, 27.15, 0.04097, 25, 14.13, 27.15, 0.83939, 24, 50.08, 27.15, 0.11963, 3, 26, -2.4, 26.25, 0.4338, 25, 33.55, 26.25, 0.56533, 24, 69.5, 26.25, 8.7E-4, 3, 27, -19.88, 25.4, 0.04332, 26, 16.07, 25.4, 0.87101, 25, 52.02, 25.4, 0.08567, 2, 27, 1.21, 24.42, 0.5677, 26, 37.16, 24.42, 0.4323, 4, 28, -15.94, 23.55, 0.03449, 27, 20.01, 23.55, 0.83346, 26, 55.96, 23.55, 0.02204, 102, 24.27, 51.7, 0.11, 3, 28, 0.25, 22.8, 0.31657, 27, 36.2, 22.8, 0.41343, 102, 23.66, 35.6, 0.27, 3, 28, 18.49, 21.95, 0.22027, 27, 54.44, 21.95, 0.00973, 102, 22.94, 17.27, 0.77, 1, 102, 34.58, 10.59, 1, 1, 102, 34.67, -2.26, 1, 1, 102, -20.38, -2.65, 1, 1, 21, 0.45, 0, 1, 1, 24, 31.4, 0, 1, 1, 24, 11.41, 0, 1, 1, 23, 26.57, 0, 1, 1, 23, 7.43, 0, 1, 1, 22, 20.94, 0, 1, 1, 21, 34.45, 0, 1, 2, 28, 23.32, 0.24, 0.23, 102, 1.26, 12.26, 0.77, 1, 25, 15.67, 0.04, 1, 2, 26, -0.81, 0.07, 0.37007, 25, 35.14, 0.07, 0.62993, 1, 26, 18, 0.1, 1, 2, 27, 2.5, 0.14, 0.92465, 26, 38.45, 0.14, 0.07535, 2, 27, 22.3, 0.17, 0.89, 102, 0.91, 49.21, 0.11, 3, 28, 2.2, 0.2, 0.65329, 27, 38.15, 0.2, 0.07671, 102, 1.08, 33.46, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-blue-cape/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 }, + "mouth-smile": { "name": "girl/mouth-smile", "path": "girl-blue-cape/mouth-smile", "x": -4.12, "y": 2.56, "width": 57, "height": 13 } + }, + "neck": { + "neck": { "name": "girl-spring-dress/neck", "x": 27.19, "y": -3.15, "rotation": -91.34, "width": 39, "height": 63 } + }, + "nose": { + "nose": { + "name": "girl/nose", + "type": "mesh", + "path": "girl-blue-cape/nose", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 6, 57.27, -63, 0.68, 29, 14.7, -17.7, 0.32, 2, 6, 56.34, -41.02, 0.73, 29, -7.3, -17.7, 0.27, 2, 6, 69.33, -40.47, 0.73, 29, -7.3, -4.7, 0.27, 2, 6, 70.26, -62.45, 0.68, 29, 14.7, -4.7, 0.32 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 22, + "height": 13 + } + }, + "ribbon-body": { + "ribbon-body": { "name": "girl-blue-cape/body-ribbon", "x": 18.42, "y": -33.29, "rotation": -94.33, "width": 100, "height": 75 } + }, + "sleeve-front": { + "sleeve-front": { + "name": "girl-blue-cape/sleeve-front", + "type": "mesh", + "uvs": [ 0.39189, 0, 0.14439, 0.01666, 0.15901, 0.10249, 0.17598, 0.19757, 0.191, 0.28175, 0.205, 0.3602, 0.22028, 0.44586, 0.23432, 0.52454, 0.2491, 0.60734, 0.22371, 0.71965, 0.1539, 0.82364, 0, 0.92776, 0, 0.99154, 0.23074, 0.95687, 0.37352, 1, 0.45602, 1, 0.6591, 0.94994, 1, 0.96658, 1, 0.91944, 0.88122, 0.81129, 0.81141, 0.71284, 0.76064, 0.59498, 0.73905, 0.50606, 0.71901, 0.4235, 0.7003, 0.34643, 0.68005, 0.26299, 0.65973, 0.17927, 0.63519, 0.07818, 0.61151, 0, 0.43698, 0.82821, 0.25612, 0.89754, 0.6242, 0.89754, 0.43118, 0.08805, 0.44237, 0.51902, 0.4401, 0.43175, 0.43805, 0.35262, 0.436, 0.27359, 0.43377, 0.18768, 0.44092, 0.60224, 0.43884, 0.72139 ], + "triangles": [ 13, 30, 14, 15, 14, 29, 12, 11, 13, 15, 31, 16, 31, 15, 29, 14, 30, 29, 16, 18, 17, 13, 11, 30, 16, 31, 18, 11, 10, 30, 31, 19, 18, 30, 10, 29, 31, 29, 19, 6, 5, 35, 34, 35, 24, 35, 5, 36, 5, 4, 36, 35, 25, 24, 35, 36, 25, 36, 4, 37, 36, 26, 25, 7, 6, 34, 33, 34, 23, 34, 6, 35, 34, 24, 23, 39, 38, 21, 39, 8, 38, 38, 8, 33, 38, 22, 21, 38, 33, 22, 33, 8, 7, 33, 7, 34, 33, 23, 22, 10, 9, 29, 29, 20, 19, 29, 39, 20, 29, 9, 39, 39, 21, 20, 9, 8, 39, 4, 3, 37, 36, 37, 26, 37, 3, 32, 3, 2, 32, 37, 27, 26, 37, 32, 27, 2, 0, 32, 2, 1, 0, 32, 28, 27, 32, 0, 28 ], + "vertices": [ 1, 11, -20.49, -4.66, 1, 1, 11, -16.63, -30.41, 1, 2, 11, 3.65, -28.95, 0.98956, 15, -30.38, -28.94, 0.01044, 2, 11, 26.12, -27.25, 0.69654, 15, -7.51, -27.25, 0.30346, 3, 11, 46.01, -25.75, 0.12833, 14, -20.67, -25.79, 0.04417, 15, 12.75, -25.75, 0.8275, 3, 11, 64.55, -24.35, 5.4E-4, 14, -1.82, -24.36, 0.45092, 15, 31.62, -24.35, 0.54855, 3, 13, -14.52, -22.88, 0.09244, 14, 18.77, -22.79, 0.86912, 15, 52.23, -22.83, 0.03844, 2, 13, 4.3, -21.33, 0.67682, 14, 37.68, -21.35, 0.32318, 3, 12, -9.39, -19.75, 0.17407, 13, 24.11, -19.7, 0.82329, 14, 57.58, -19.84, 0.00265, 3, 12, 17.84, -22.12, 0.96018, 13, 51, -22.22, 0.02472, 130, 19.81, 52.59, 0.0151, 2, 12, 43.11, -29.14, 0.51751, 130, 12.55, 28.05, 0.48249, 2, 12, 68.49, -44.89, 0.00319, 130, -3.45, 3.48, 0.99681, 1, 130, -3.45, -11.57, 1, 1, 130, 20.54, -3.4, 1, 1, 130, 35.39, -13.58, 1, 1, 130, 43.97, -13.58, 1, 1, 130, 65.09, -1.77, 1, 1, 130, 100.55, -5.7, 1, 2, 12, 65.42, 59.08, 0.01006, 130, 100.55, 5.43, 0.98994, 3, 12, 39.35, 46.47, 0.40219, 13, 72.61, 46.27, 0.00826, 130, 88.19, 30.95, 0.58955, 3, 12, 15.57, 38.98, 0.70901, 13, 49.08, 38.9, 0.15192, 130, 80.93, 54.19, 0.13907, 4, 12, -12.93, 33.42, 0.25073, 13, 20.9, 33.49, 0.66465, 14, 54.67, 33.36, 0.08185, 130, 75.65, 82, 0.00277, 4, 12, -34.44, 30.96, 0.01846, 13, -0.37, 31.14, 0.48291, 14, 33.3, 31.14, 0.4903, 15, 66.88, 31.08, 0.00833, 3, 13, -20.12, 28.96, 0.08139, 14, 13.46, 29.08, 0.74583, 15, 47.02, 29.06, 0.17278, 4, 11, 61.45, 27.17, 0.00108, 13, -38.56, 26.93, 7.5E-4, 14, -5.07, 27.16, 0.33502, 15, 28.47, 27.17, 0.66314, 3, 11, 41.73, 25.13, 0.17136, 14, -25.12, 25.07, 0.01658, 15, 8.4, 25.12, 0.81206, 2, 11, 21.95, 23.07, 0.80027, 15, -11.75, 23.07, 0.19973, 1, 11, -1.94, 20.59, 1, 1, 11, -20.42, 18.18, 1, 2, 12, 43.91, 0.31, 0.7298, 130, 41.99, 26.96, 0.2702, 2, 12, 60.9, -18.33, 0.15731, 130, 23.18, 10.61, 0.84269, 2, 12, 60.51, 19.95, 0.14683, 130, 61.46, 10.6, 0.85317, 1, 11, 0.33, -0.63, 1, 1, 13, 2.87, 0.3, 1, 1, 14, 15.41, 0.07, 1, 1, 15, 29.88, -0.11, 1, 2, 14, -22.6, -0.31, 0, 15, 10.87, -0.27, 1, 1, 11, 23.87, -0.43, 1, 3, 12, -10.83, 0.19, 2.3E-4, 13, 22.79, 0.24, 0.99974, 14, 56.38, 0.11, 3.0E-5, 3, 12, 18.04, 0.25, 0.9998, 13, 51.31, 0.16, 5.0E-5, 130, 42.18, 52.17, 1.5E-4 ], + "hull": 29, + "edges": [ 0, 2, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 56, 36, 62, 60, 22, 0, 64, 2, 4, 64, 4, 54, 56, 64, 54, 14, 16, 14, 66, 42, 44, 66, 44, 12, 14, 68, 66, 12, 68, 44, 46, 68, 46, 46, 48, 70, 68, 48, 70, 10, 12, 70, 10, 8, 10, 72, 70, 8, 72, 48, 50, 72, 50, 50, 52, 52, 54, 64, 74, 74, 72, 52, 74, 4, 6, 6, 8, 74, 6, 76, 66, 76, 42, 76, 16, 58, 78, 78, 76, 40, 78, 38, 58, 58, 20 ], + "width": 104, + "height": 238 + } + }, + "sleeve-inner-back": { + "sleeve-inner-back": { + "name": "girl-blue-cape/sleeve-back", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 1, 131, 5.56, 15.9, 1, 2, 131, 88.56, 15.9, 0.93003, 83, 41.53, -33.45, 0.06997, 2, 131, 88.56, -41.1, 0.44316, 83, -15.47, -33.45, 0.55684, 2, 131, 5.56, -41.1, 0.60086, 83, -15.47, 49.55, 0.39914 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 83, + "height": 57 + } + }, + "sleeve-inner-front": { + "sleeve-inner-front": { + "name": "girl-blue-cape/sleeve-back", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 130, 91.43, -14.89, 1, 2, 130, 8.43, -14.88, 1, 12, 87.21, -32.83, 0, 2, 130, 8.42, 41.64, 0.34345, 12, 29.2, -33.4, 0.65655, 2, 130, 91.42, 41.63, 0.5791, 12, 28.35, 49.6, 0.4209 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 83, + "height": 57 + } + } + } + }, + { + "name": "full-skins/girl-spring-dress", + "bones": [ "cape-back-rotator", "skirt-rotation-front", "cape-red-back-inside", "cape-red-front-inside", "skirt-control-back", "cape-red-front-outside", "skirt-control", "skirt-control-front", "skirt-control-back-down", "cape-front-rotator", "skirt-control-front-down", "skirt-control-middle", "cape-red-back-outside", "skirt-control-up", "skirt-rotation-back" ], + "transform": [ "skirt-rotation-back", "skirt-rotation-front" ], + "attachments": { + "arm-back": { + "arm-back": { + "name": "girl-spring-dress/arm-front", + "type": "mesh", + "uvs": [ 1, 1, 0.51047, 1, 0, 1, 0, 0.90909, 0, 0.81818, 0, 0.72727, 0, 0.63636, 0, 0.54545, 0, 0.45455, 0, 0.36364, 0, 0.27273, 0, 0.18182, 0, 0.09091, 0, 0, 0.53, 0, 1, 0, 1, 0.09091, 1, 0.18182, 1, 0.27273, 1, 0.36364, 1, 0.45455, 1, 0.54545, 1, 0.63636, 1, 0.72727, 1, 0.81818, 1, 0.90909, 0.52825, 0.08961, 0.52645, 0.18177, 0.52476, 0.26801, 0.52291, 0.36314, 0.52111, 0.45529, 0.51928, 0.54893, 0.51759, 0.63514, 0.51585, 0.72434, 0.5139, 0.82396, 0.51219, 0.91165 ], + "triangles": [ 10, 11, 28, 28, 27, 18, 29, 10, 28, 9, 10, 29, 28, 18, 19, 29, 28, 19, 29, 19, 20, 29, 30, 9, 30, 8, 9, 30, 29, 20, 30, 20, 21, 30, 31, 8, 32, 22, 23, 6, 7, 32, 32, 31, 22, 32, 7, 31, 31, 21, 22, 31, 7, 8, 33, 6, 32, 31, 30, 21, 5, 6, 33, 34, 4, 5, 33, 23, 24, 33, 34, 5, 34, 33, 24, 33, 32, 23, 34, 24, 25, 34, 35, 4, 35, 3, 4, 35, 34, 25, 1, 2, 3, 35, 1, 3, 35, 25, 0, 1, 35, 0, 26, 13, 14, 12, 13, 26, 14, 15, 16, 26, 14, 16, 27, 12, 26, 11, 12, 27, 26, 16, 17, 27, 26, 17, 28, 11, 27, 27, 17, 18 ], + "vertices": [ 1, 89, 35.41, 16.56, 1, 1, 89, 35.61, -0.08, 1, 1, 89, 35.83, -17.44, 1, 2, 89, 15.82, -17.69, 0.97415, 88, 49.68, -17.72, 0.02585, 2, 89, -4.19, -17.94, 0.30335, 88, 29.15, -17.93, 0.69665, 3, 89, -24.19, -18.19, 3.5E-4, 88, 8.61, -18.13, 0.83036, 87, 41.9, -18.17, 0.16929, 2, 88, -11.93, -18.33, 0.24, 87, 21.61, -18.27, 0.76, 2, 87, 1.31, -18.36, 0.8, 86, 34.7, -18.37, 0.2, 3, 87, -18.99, -18.46, 0.01161, 86, 14.31, -18.35, 0.93999, 85, 47.78, -18.38, 0.0484, 2, 86, -6.06, -18.32, 0.22079, 85, 27.38, -18.31, 0.77921, 2, 84, 40.35, -18.25, 0.20487, 85, 6.98, -18.25, 0.79513, 2, 84, 20.32, -18.19, 0.9496, 85, -13.42, -18.19, 0.0504, 1, 84, 0.28, -18.13, 1, 1, 84, -19.75, -18.07, 1, 1, 84, -19.7, -0.05, 1, 1, 84, -19.65, 15.93, 1, 1, 84, 0.38, 15.87, 1, 2, 84, 20.42, 15.81, 0.9733, 85, -13.31, 15.81, 0.0267, 2, 84, 40.45, 15.75, 0.16827, 85, 7.09, 15.75, 0.83173, 2, 86, -6.02, 15.68, 0.16665, 85, 27.49, 15.69, 0.83335, 3, 87, -19.15, 15.54, 0.00166, 86, 14.35, 15.65, 0.96514, 85, 47.89, 15.62, 0.0332, 2, 87, 1.15, 15.63, 0.5617, 86, 34.74, 15.63, 0.4383, 2, 88, -12.27, 15.67, 0.04304, 87, 21.45, 15.73, 0.95696, 2, 88, 8.27, 15.87, 0.86585, 87, 41.74, 15.83, 0.13415, 2, 89, -4.6, 16.06, 0.21057, 88, 28.8, 16.07, 0.78943, 2, 89, 15.4, 16.31, 0.97298, 88, 49.34, 16.27, 0.02702, 1, 84, 0.05, -0.17, 1, 1, 84, 20.36, -0.29, 1, 2, 84, 39.37, -0.4, 0.00128, 85, 5.99, -0.4, 0.99872, 1, 85, 27.33, -0.53, 1, 1, 86, 14.5, -0.63, 1, 2, 87, 2, -0.71, 0.95682, 86, 35.5, -0.72, 0.04318, 2, 88, -12.38, -0.74, 3.4E-4, 87, 21.25, -0.67, 0.99966, 2, 88, 7.77, -0.6, 0.99759, 87, 41.17, -0.64, 0.00241, 1, 88, 30.28, -0.44, 1, 1, 89, 16.17, -0.27, 1 ], + "hull": 26, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 0, 26, 28, 28, 30, 0, 2, 2, 4, 52, 28, 24, 52, 54, 52, 22, 54, 56, 54, 20, 56, 58, 56, 18, 58, 60, 58, 16, 60, 62, 60, 14, 62, 64, 62, 12, 64, 66, 64, 10, 66, 68, 66, 8, 68, 2, 70, 70, 68, 6, 70 ], + "width": 34, + "height": 222 + } + }, + "arm-front": { + "arm-front": { + "name": "girl-spring-dress/arm-front", + "type": "mesh", + "uvs": [ 1, 1, 0.51047, 1, 0, 1, 0, 0.90909, 0, 0.81818, 0, 0.72727, 0, 0.63636, 0, 0.54545, 0, 0.45455, 0, 0.36364, 0, 0.27273, 0, 0.18182, 0, 0.09091, 0, 0, 0.53, 0, 1, 0, 1, 0.09091, 1, 0.18182, 1, 0.27273, 1, 0.36364, 1, 0.45455, 1, 0.54545, 1, 0.63636, 1, 0.72727, 1, 0.81818, 1, 0.90909, 0.52825, 0.08961, 0.52645, 0.18177, 0.52476, 0.26801, 0.52291, 0.36314, 0.52111, 0.45529, 0.51928, 0.54893, 0.51759, 0.63514, 0.51585, 0.72434, 0.5139, 0.82396, 0.51219, 0.91165 ], + "triangles": [ 35, 3, 4, 34, 24, 25, 34, 35, 4, 35, 34, 25, 1, 2, 3, 35, 1, 3, 35, 25, 0, 1, 35, 0, 5, 6, 33, 34, 4, 5, 33, 23, 24, 33, 34, 5, 34, 33, 24, 33, 32, 23, 32, 22, 23, 6, 7, 32, 32, 31, 22, 32, 7, 31, 31, 21, 22, 31, 30, 21, 31, 7, 8, 33, 6, 32, 29, 19, 20, 29, 30, 9, 30, 8, 9, 30, 29, 20, 30, 20, 21, 30, 31, 8, 29, 10, 28, 9, 10, 29, 28, 18, 19, 29, 28, 19, 10, 11, 28, 26, 13, 14, 12, 13, 26, 14, 15, 16, 26, 14, 16, 27, 12, 26, 11, 12, 27, 26, 16, 17, 27, 26, 17, 28, 11, 27, 27, 17, 18, 28, 27, 18 ], + "vertices": [ 1, 16, 38.32, 16.3, 1, 1, 16, 38.52, -0.34, 1, 1, 16, 38.73, -17.69, 1, 2, 12, 52.67, -17.99, 0.00808, 16, 18.72, -17.94, 0.99192, 2, 12, 32.13, -18.19, 0.55013, 16, -1.29, -18.19, 0.44987, 3, 13, 44.84, -18.45, 0.17, 12, 11.58, -18.39, 0.82609, 16, -21.3, -18.44, 0.00391, 3, 14, 58.02, -18.69, 0.00461, 13, 24.54, -18.55, 0.51, 12, -8.96, -18.59, 0.48539, 2, 14, 37.65, -18.67, 0.24, 13, 4.25, -18.64, 0.76, 3, 15, 50.74, -18.68, 0.01218, 14, 17.27, -18.64, 0.69782, 13, -16.04, -18.74, 0.29, 2, 15, 30.34, -18.61, 0.58, 14, -3.11, -18.62, 0.42, 3, 11, 43.26, -18.55, 0.66266, 15, 9.94, -18.55, 0.32, 14, -23.49, -18.6, 0.01734, 2, 11, 23.22, -18.49, 0.87756, 15, -10.46, -18.49, 0.12244, 1, 11, 3.19, -18.43, 1, 1, 11, -16.84, -18.37, 1, 1, 11, -16.79, -0.35, 1, 1, 11, -16.74, 15.63, 1, 1, 11, 3.29, 15.57, 1, 2, 11, 23.32, 15.51, 0.91061, 15, -10.35, 15.51, 0.08939, 2, 11, 43.36, 15.45, 0.68, 15, 10.05, 15.45, 0.32, 2, 15, 30.45, 15.39, 0.58, 14, -3.07, 15.38, 0.42, 3, 15, 50.84, 15.32, 0.00487, 14, 17.31, 15.36, 0.70513, 13, -16.21, 15.26, 0.29, 2, 14, 37.69, 15.33, 0.24, 13, 4.09, 15.36, 0.76, 2, 13, 24.38, 15.45, 0.51, 12, -9.3, 15.4, 0.49, 2, 13, 44.67, 15.55, 0.17, 12, 11.24, 15.61, 0.83, 2, 12, 31.78, 15.81, 0.59679, 16, -1.7, 15.8, 0.40321, 2, 12, 52.32, 16.01, 0.00481, 16, 18.31, 16.05, 0.99519, 1, 11, 2.96, -0.47, 1, 1, 11, 23.27, -0.59, 1, 1, 15, 8.94, -0.71, 1, 2, 15, 30.28, -0.83, 0.58, 14, -3.2, -0.84, 0.42, 2, 14, 17.46, -0.93, 0.71, 13, -15.96, -1.02, 0.29, 2, 14, 38.45, -1.01, 0.24, 13, 4.94, -0.98, 0.76, 1, 13, 24.19, -0.95, 1, 2, 13, 44.1, -0.92, 0.17, 12, 10.74, -0.86, 0.83, 2, 12, 33.25, -0.7, 0.55299, 16, -0.23, -0.71, 0.44701, 1, 16, 19.07, -0.52, 1 ], + "hull": 26, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 0, 26, 28, 28, 30, 0, 2, 2, 4, 52, 28, 24, 52, 54, 52, 22, 54, 56, 54, 20, 56, 58, 56, 18, 58, 60, 58, 16, 60, 62, 60, 14, 62, 64, 62, 12, 64, 66, 64, 10, 66, 68, 66, 8, 68, 2, 70, 70, 68, 6, 70 ], + "width": 34, + "height": 222 + } + }, + "base-head": { + "base-head": { "x": 74.74, "y": -10.09, "rotation": -87.57, "width": 189, "height": 145 } + }, + "body-up": { + "body-up": { "name": "girl-spring-dress/body-up", "x": 59.16, "y": -14.67, "rotation": -94.33, "width": 128, "height": 131 } + }, + "cape-red-down": { + "cape-red-down": { + "name": "girl-spring-dress/cloak-down", + "type": "mesh", + "uvs": [ 0.14417, 0, 0.36304, 0.02025, 0.57682, 0.0966, 0.7397, 0.23912, 0.85168, 0.4529, 0.92294, 0.66668, 1, 0.82447, 1, 1, 0.70916, 1, 0.44448, 0.98735, 0.28669, 0.83974, 0.06273, 0.5038, 0, 0.26966, 0, 0.07624, 0.67674, 0.71028, 0.43738, 0.58788, 0.3008, 0.31931, 0.57552, 0.43898 ], + "triangles": [ 17, 2, 3, 17, 3, 4, 11, 16, 15, 11, 12, 16, 2, 17, 1, 17, 16, 1, 12, 13, 0, 16, 0, 1, 12, 0, 16, 15, 16, 17, 9, 14, 8, 14, 4, 5, 6, 8, 14, 6, 14, 5, 8, 6, 7, 14, 17, 4, 10, 11, 15, 10, 15, 9, 9, 15, 14, 15, 17, 14 ], + "vertices": [ 1, 4, 125.16, -19.58, 1, 1, 4, 121.49, -41.25, 1, 3, 120, 74.56, -19.08, 0.15867, 4, 112.27, -61.99, 0.14879, 122, 28.75, 13.93, 0.69254, 1, 122, 14.5, -2.36, 1, 2, 119, -12.43, 41.24, 0.46, 122, -6.88, -13.55, 0.54, 2, 119, -5.3, 19.86, 0.76, 122, -28.26, -20.68, 0.24, 2, 119, 2.41, 4.09, 0.86, 122, -44.04, -28.39, 0.14, 2, 120, -18.72, -54.46, 0.19, 119, 2.41, -13.47, 0.81, 2, 120, -16.52, -25.46, 0.36, 119, -26.68, -13.47, 0.64, 2, 120, -13.27, 0.84, 0.55, 119, -53.15, -12.2, 0.45, 2, 120, 2.64, 15.46, 0.83, 119, -68.93, 2.56, 0.17, 2, 120, 37.83, 35.26, 0.22, 4, 75.54, -7.66, 0.78, 1, 4, 99.36, -3.17, 1, 1, 4, 118.65, -4.63, 1, 3, 120, 12.61, -24.41, 0.36, 119, -29.92, 15.5, 0.59041, 122, -32.62, 3.94, 0.04959, 3, 120, 26.62, -1.47, 0.83, 119, -53.86, 27.74, 0.15527, 4, 64.33, -44.38, 0.01473, 1, 4, 92.14, -32.79, 1, 1, 4, 78.13, -59.28, 1 ], + "hull": 14, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 22, 24, 24, 26, 0, 26, 34, 2, 20, 22 ], + "width": 100, + "height": 100 + } + }, + "cape-red-up": { + "cape-red-up": { + "name": "girl-spring-dress/cloak-up", + "type": "mesh", + "uvs": [ 0.37962, 0, 0.24791, 0.0725, 0.15296, 0.15299, 0.06413, 0.27371, 0.01206, 0.6057, 0, 0.7499, 0, 0.9008, 0.07332, 1, 0.25097, 1, 0.43475, 1, 0.53889, 0.93434, 0.70123, 0.88404, 0.82988, 0.75325, 0.9187, 0.55875, 0.94933, 0.42461, 0.93402, 0.15969, 0.66448, 0, 0.26629, 0.82703, 0.48376, 0.7499, 0.64916, 0.6057, 0.72267, 0.38102, 0.63078, 0.14963, 0.3643, 0.34078, 0.29998, 0.60905 ], + "triangles": [ 3, 2, 22, 22, 23, 3, 18, 19, 11, 11, 19, 12, 12, 19, 13, 18, 23, 19, 17, 23, 18, 18, 10, 9, 9, 8, 17, 8, 7, 17, 7, 6, 17, 9, 17, 18, 10, 18, 11, 6, 5, 17, 17, 5, 23, 23, 5, 4, 23, 4, 3, 23, 22, 19, 19, 20, 13, 19, 22, 20, 13, 20, 14, 20, 15, 14, 22, 21, 20, 20, 21, 15, 2, 1, 22, 22, 0, 21, 22, 1, 0, 21, 16, 15, 21, 0, 16 ], + "vertices": [ 1, 4, 128.5, 22.39, 1, 1, 4, 121.37, 39.71, 1, 2, 4, 112.97, 52.44, 0.27, 117, -9.72, 16.53, 0.73, 1, 117, -21, 2.53, 1, 2, 115, -26.06, -1.94, 0.83, 117, -27.61, -35.98, 0.17, 1, 115, -9.34, -3.48, 1, 2, 115, 8.17, -3.48, 0.99, 117, -29.14, -70.21, 0.01, 2, 4, 15.76, 69.93, 0.07049, 115, 19.68, 5.84, 0.92951, 2, 115, 19.68, 28.4, 0.88, 113, -18.74, 59.54, 0.12, 2, 115, 19.68, 51.74, 0.73, 113, -20.5, 36.27, 0.27, 2, 115, 12.06, 64.96, 0.6, 113, -13.9, 22.51, 0.4, 2, 115, 6.22, 85.58, 0.4, 113, -9.64, 1.51, 0.6, 3, 4, 37.05, -28.04, 0.05405, 115, -8.95, 101.92, 0.27, 113, 4.26, -15.93, 0.67595, 3, 4, 58.7, -40.99, 0.42765, 115, -31.51, 113.2, 0.22, 113, 25.9, -28.88, 0.35235, 3, 4, 73.92, -46.04, 0.6319, 115, -47.07, 117.09, 0.11, 113, 41.13, -33.93, 0.2581, 2, 4, 104.71, -46.42, 0.91761, 113, 71.92, -34.31, 0.08239, 1, 4, 125.77, -13.68, 1, 2, 115, -0.39, 30.34, 0.88, 113, 1.12, 56.09, 0.12, 2, 115, -9.34, 57.96, 0.6, 113, 7.96, 27.88, 0.4, 3, 4, 55.85, -6.44, 0.3066, 115, -26.06, 78.97, 0.27, 113, 23.06, 5.67, 0.4234, 3, 4, 81.14, -17.72, 0.6764, 115, -52.13, 88.3, 0.11, 113, 48.34, -5.61, 0.2136, 1, 4, 108.78, -8.1, 1, 2, 4, 89.23, 27.31, 0.9433, 115, -56.79, 42.79, 0.0567, 2, 115, -25.67, 34.62, 0.91, 113, 26.01, 49.92, 0.09 ], + "hull": 17, + "edges": [ 0, 2, 2, 4, 4, 6, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 0, 32, 8, 46, 6, 8 ], + "width": 127, + "height": 116 + } + }, + "ear": { + "ear": { + "name": "girl/ear", + "path": "girl-spring-dress/ear", + "x": 56.58, + "y": 85.63, + "rotation": -87.57, + "width": 38, + "height": 45 + } + }, + "eye-back-eyebrow": { + "eye-back-eyebrow": { + "name": "girl/back-eyebrow", + "path": "girl-spring-dress/back-eyebrow", + "x": 15.6, + "y": -9.48, + "rotation": -177.9, + "width": 36, + "height": 23 + } + }, + "eye-back-iris": { + "eye-back-iris": { "name": "girl/eye-iris-back", "path": "girl-spring-dress/eye-iris-back", "x": 0.85, "y": -0.75, "width": 33, "height": 34 } + }, + "eye-back-low-eyelid": { + "eye-back-low-eyelid": { + "name": "girl/eye-back-low-eyelid", + "type": "mesh", + "path": "girl-spring-dress/eye-back-low-eyelid", + "uvs": [ 0, 0.26476, 0.20331, 0.79621, 0.50495, 0.95421, 0.8401, 0.89676, 1, 0.33658, 0.88319, 0.07803, 0.75871, 0.25039, 0.5241, 0.35094, 0.31343, 0.19294, 0.09798, 0 ], + "triangles": [ 7, 6, 3, 2, 1, 7, 3, 2, 7, 1, 8, 7, 3, 6, 4, 1, 0, 8, 6, 5, 4, 0, 9, 8 ], + "vertices": [ 1, 42, -29.75, 1.38, 1, 2, 42, -23.04, -4.47, 0.63, 43, 23.4, -1.82, 0.37, 2, 42, -13.09, -6.21, 0.22, 43, 14.27, 2.5, 0.78, 2, 42, -2.03, -5.57, 0.2, 43, 3.44, 4.83, 0.8, 1, 42, 3.25, 0.59, 1, 1, 42, -0.61, 3.43, 1, 2, 42, -4.72, 1.54, 0.39, 43, 4.14, -2.74, 0.61, 2, 42, -12.46, 0.43, 0.22, 43, 11.9, -3.73, 0.78, 2, 42, -19.41, 2.17, 0.63, 43, 18.14, -7.25, 0.37, 1, 42, -26.52, 4.29, 1 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 33, + "height": 11 + } + }, + "eye-back-pupil": { + "eye-back-pupil": { + "name": "girl/eye-back-pupil", + "path": "girl-spring-dress/eye-back-pupil", + "x": 0.43, + "y": -0.67, + "scaleX": 1.2, + "scaleY": 1.2062, + "width": 15, + "height": 17 + } + }, + "eye-back-up-eyelid": { + "eye-back-up-eyelid": { + "name": "girl/eye-back-up-eyelid", + "type": "mesh", + "path": "girl-spring-dress/eye-back-up-eyelid", + "uvs": [ 0.07861, 0.9592, 0.24977, 0.54703, 0.44727, 0.42338, 0.58882, 0.40964, 0.77315, 0.59512, 1, 0.16921, 1, 0, 0.76657, 0.13486, 0.61844, 0, 0.40119, 0.01807, 0.18065, 0.25164, 0, 0.73938, 0, 0.95234 ], + "triangles": [ 1, 10, 2, 3, 2, 9, 2, 10, 9, 3, 9, 8, 3, 8, 7, 1, 0, 11, 0, 12, 11, 11, 10, 1, 3, 7, 4, 4, 7, 5, 7, 6, 5 ], + "vertices": [ 1, 40, -31.8, -11.42, 1, 2, 40, -23.59, -1.94, 0.51, 41, 22.75, 6.53, 0.49, 2, 40, -14.11, 0.91, 0.15, 41, 14.01, 1.88, 0.85, 1, 41, 7.41, 0.24, 1, 1, 40, 1.53, -3.04, 1, 1, 40, 12.42, 6.75, 1, 1, 40, 12.42, 10.64, 1, 1, 40, 1.22, 7.54, 1, 1, 41, 7.87, -9.28, 1, 2, 40, -16.32, 10.23, 0.15, 41, 18.01, -6.83, 0.85, 2, 40, -26.91, 4.86, 0.52, 41, 27.34, 0.52, 0.48, 1, 40, -35.58, -6.36, 1, 1, 40, -35.58, -11.26, 1 ], + "hull": 13, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24 ], + "width": 48, + "height": 23 + } + }, + "eye-back-up-eyelid-back": { + "eye-back-up-eyelid-back": { + "name": "girl/eye-back-up-eyelid-back", + "type": "mesh", + "path": "girl-spring-dress/eye-back-up-eyelid-back", + "uvs": [ 0.12627, 1, 0, 0.99472, 0, 0.60349, 0.16345, 0.30253, 0.44692, 0.06177, 0.74898, 0.00911, 1, 0.1972, 1, 0.52073, 0.72574, 0.37025, 0.49339, 0.42292, 0.25639, 0.68625 ], + "triangles": [ 0, 1, 2, 10, 0, 2, 10, 3, 9, 9, 4, 8, 8, 6, 7, 2, 3, 10, 3, 4, 9, 8, 5, 6, 8, 4, 5 ], + "vertices": [ 1, 40, -28.64, -7.74, 1, 1, 40, -32.94, -7.63, 1, 1, 39, -19.88, 27.79, 1, 1, 39, -14.32, 34.11, 1, 1, 39, -4.69, 39.17, 1, 1, 39, 5.58, 40.27, 1, 1, 39, 14.12, 36.32, 1, 1, 40, 1.06, 2.33, 1, 1, 41, 9.18, -3.76, 1, 2, 41, 16.71, -1.13, 0.92, 40, -16.16, 4.38, 0.08, 2, 41, 23.53, 5.88, 0.33, 40, -24.22, -1.15, 0.67 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 34, + "height": 21 + } + }, + "eye-back-white": { + "eye-back-white": { + "name": "girl/eye-white-back", + "type": "mesh", + "path": "girl-spring-dress/eye-white-back", + "uvs": [ 0, 0.39191, 0.07911, 0.7283, 0.26952, 0.95255, 0.56931, 0.98823, 0.90962, 0.92197, 1, 0.50404, 0.94608, 0.17784, 0.76378, 0.00455, 0.50855, 0, 0.20875, 0.12178, 0.56121, 0.48365 ], + "triangles": [ 3, 2, 10, 4, 3, 10, 2, 1, 10, 4, 10, 5, 10, 8, 7, 9, 8, 10, 1, 0, 10, 10, 6, 5, 0, 9, 10, 10, 7, 6 ], + "vertices": [ 1, 40, -34.26, -6.05, 1, 1, 42, -30.63, 5.01, 1, 2, 42, -23.2, -1.94, 0.5, 43, 22.88, -4.3, 0.5, 2, 42, -11.51, -3.04, 0.61, 43, 11.91, -0.13, 0.39, 1, 42, 1.76, -0.99, 1, 2, 40, 4.74, -9.52, 0.54, 42, 5.29, 11.97, 0.46, 1, 40, 2.64, 0.59, 1, 2, 40, -4.47, 5.96, 0.35, 41, 5.55, -4.97, 0.65, 2, 40, -14.42, 6.1, 0.22, 41, 15.34, -3.16, 0.78, 2, 40, -26.12, 2.33, 0.49, 41, 26.07, 2.84, 0.51, 2, 40, -12.37, -8.89, 0.71, 43, 8.05, -15.29, 0.29 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 39, + "height": 31 + } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { + "name": "girl/front-eyebrow", + "path": "girl-spring-dress/front-eyebrow", + "x": 10.82, + "y": 8.92, + "rotation": -3.58, + "width": 36, + "height": 23 + } + }, + "eye-front-iris": { + "eye-front-iris": { "name": "girl/eye-iris-front", "path": "girl-spring-dress/eye-iris-front", "x": 0.22, "y": -0.71, "width": 36, "height": 35 } + }, + "eye-front-low-eyelid": { + "eye-front-low-eyelid": { + "name": "girl/eye-front-low-eyelid", + "type": "mesh", + "path": "girl-spring-dress/eye-front-low-eyelid", + "uvs": [ 0.07038, 0, 0, 0.43773, 0.24154, 0.94046, 0.64093, 0.92609, 1, 0.39464, 1, 0.00682, 0.8516, 0, 0.61899, 0.36591, 0.30738, 0.39464 ], + "triangles": [ 8, 7, 3, 2, 8, 3, 2, 1, 8, 6, 5, 4, 7, 6, 4, 1, 0, 8, 3, 7, 4 ], + "vertices": [ 1, 36, -0.25, 5.3, 1, 1, 36, -2.79, 0.49, 1, 1, 37, 6.69, -3.95, 1, 2, 36, 20.29, -4.89, 0.61, 37, 20.82, -1.32, 0.39, 1, 36, 33.21, 0.96, 1, 1, 36, 33.21, 5.23, 1, 1, 36, 27.87, 5.3, 1, 2, 36, 19.5, 1.28, 0.61, 37, 18.99, 4.61, 0.39, 1, 37, 7.99, 2.37, 1 ], + "hull": 9, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 0, 16 ], + "width": 36, + "height": 11 + } + }, + "eye-front-pupil": { + "eye-front-pupil": { + "name": "girl/eye-front-pupil", + "path": "girl-spring-dress/eye-front-pupil", + "x": -0.04, + "y": -0.47, + "scaleX": 1.2, + "scaleY": 1.2, + "width": 17, + "height": 17 + } + }, + "eye-front-up-eyelid": { + "eye-front-up-eyelid": { + "name": "girl/eye-front-up-eyelid", + "type": "mesh", + "path": "girl-spring-dress/eye-front-up-eyelid", + "uvs": [ 0.32251, 0.43387, 0.36464, 0.94737, 0.28564, 1, 0.16714, 0.73859, 0.15924, 0.42823, 0, 0.24201, 0, 0, 0.22771, 0.2138, 0.41731, 0, 0.66747, 0, 0.88604, 0.23637, 1, 0.54673, 1, 0.81194, 0.86497, 0.79501, 0.74121, 0.4903, 0.61217, 0.35487, 0.45417, 0.35487 ], + "triangles": [ 14, 15, 10, 2, 3, 1, 3, 0, 1, 13, 11, 12, 13, 14, 11, 3, 4, 0, 14, 10, 11, 0, 4, 7, 4, 5, 7, 5, 6, 7, 16, 0, 7, 7, 8, 16, 10, 15, 9, 9, 15, 8, 15, 16, 8 ], + "vertices": [ 2, 35, 6.87, 1.33, 0.47507, 34, 6.4, 2.84, 0.52493, 2, 35, 6.12, -13.25, 0.09298, 34, 8.93, -11.54, 0.90702, 1, 34, 4.19, -13.01, 1, 1, 34, -2.92, -5.69, 1, 2, 35, -2.64, 3.68, 0.0415, 34, -3.4, 3, 0.9585, 1, 34, -12.95, 8.21, 1, 1, 34, -12.95, 14.99, 1, 2, 35, 2.71, 8.61, 0.27883, 34, 0.71, 9, 0.72117, 1, 35, 15.14, 11.9, 1, 2, 35, 29.76, 8.54, 0.65, 34, 27.1, 14.99, 0.35, 2, 35, 41.06, -0.85, 0.28137, 34, 40.21, 8.37, 0.71863, 1, 34, 47.05, -0.32, 1, 1, 34, 47.05, -7.75, 1, 2, 35, 36.33, -15.81, 0.07124, 34, 38.95, -7.27, 0.92876, 2, 35, 31, -5.83, 0.45, 34, 31.52, 1.26, 0.55, 2, 35, 24.31, -0.4, 0.65, 34, 23.78, 5.05, 0.35, 2, 35, 15.07, 1.72, 0.76, 34, 14.3, 5.05, 0.24 ], + "hull": 17, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 0, 32 ], + "width": 60, + "height": 28 + } + }, + "eye-front-up-eyelid-back": { + "eye-front-up-eyelid-back": { + "name": "girl/eye-front-up-eyelid-back", + "type": "mesh", + "path": "girl-spring-dress/eye-front-up-eyelid-back", + "uvs": [ 0.05111, 0.59525, 0.31445, 0.34389, 0.48174, 0.29362, 0.69861, 0.43007, 0.81323, 0.65271, 0.90617, 1, 1, 1, 1, 0.74607, 0.93406, 0.48034, 0.78845, 0.18589, 0.62115, 0, 0.49104, 0, 0.26798, 0, 0, 0.28644, 0, 0.48752 ], + "triangles": [ 2, 1, 12, 3, 2, 9, 5, 4, 7, 5, 7, 6, 0, 14, 1, 4, 3, 8, 4, 8, 7, 14, 13, 1, 3, 9, 8, 10, 9, 2, 10, 2, 11, 1, 13, 12, 2, 12, 11 ], + "vertices": [ 1, 34, -1.1, 4.47, 1, 1, 35, 14.1, 7.02, 1, 1, 35, 22.66, 6.19, 1, 2, 34, 31.76, 8.1, 0.42, 35, 32.77, 0.79, 0.58, 2, 34, 37.61, 3.21, 0.71, 35, 37.37, -5.29, 0.29, 1, 34, 42.35, -4.43, 1, 1, 34, 47.13, -4.43, 1, 1, 78, 22.96, -14.22, 1, 1, 78, 19.59, -8.37, 1, 1, 78, 12.17, -1.9, 1, 1, 78, 3.63, 2.19, 1, 1, 78, -3, 2.19, 1, 1, 78, -14.38, 2.19, 1, 1, 78, -28.04, -4.11, 1, 1, 34, -3.87, 6.84, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 51, + "height": 22 + } + }, + "eye-front-white": { + "eye-front-white": { + "name": "girl/eye-white-front", + "type": "mesh", + "path": "girl-spring-dress/eye-white-front", + "uvs": [ 0, 0.13677, 0.03631, 0.56139, 0.18641, 0.96133, 0.54191, 0.97121, 0.90531, 0.87739, 1, 0.54164, 1, 0.24046, 0.80425, 0.13009, 0.57351, 0, 0.25751, 0.00346, 0.47082, 0.52682 ], + "triangles": [ 3, 2, 10, 2, 1, 10, 4, 3, 10, 4, 10, 5, 7, 6, 5, 1, 0, 10, 10, 9, 8, 10, 8, 7, 10, 7, 5, 0, 9, 10 ], + "vertices": [ 1, 34, 3.55, 4.71, 1, 2, 34, 5, -8.88, 0.5, 36, -3.97, 10.98, 0.5, 2, 36, 2.03, -1.82, 0.36, 37, 2.31, -1.44, 0.64, 2, 36, 16.25, -2.14, 0.32, 37, 16.37, 0.69, 0.68, 1, 36, 30.79, 0.87, 1, 1, 36, 34.57, 11.61, 1, 1, 34, 43.55, 1.39, 1, 2, 35, 35.91, -3.2, 0.27, 34, 35.72, 4.92, 0.73, 2, 35, 27.85, 2.93, 0.54, 34, 26.49, 9.09, 0.46, 2, 35, 15.51, 5.65, 0.62, 34, 13.85, 8.98, 0.38, 2, 35, 20.07, -12.59, 0.81, 37, 11.13, 14.21, 0.19 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 16, 18, 0, 18, 12, 14, 14, 16 ], + "width": 40, + "height": 32 + } + }, + "hair-back": { + "hair-back": { + "name": "girl/hair-back", + "type": "mesh", + "path": "girl-spring-dress/hair-back", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 0, 2, 3, 0 ], + "vertices": [ 2, 6, -3.46, -135.36, 0.71, 30, 189.29, -78.03, 0.29, 2, 6, -15.93, 158.38, 0.71, 30, -104.71, -78.03, 0.29, 2, 6, 168.91, 166.22, 0.71, 30, -104.71, 106.97, 0.29, 2, 6, 181.37, -127.51, 0.71, 30, 189.29, 106.97, 0.29 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 294, + "height": 185 + } + }, + "hair-bangs": { + "hair-bangs": { + "name": "girl/hair-bangs", + "type": "mesh", + "path": "girl-spring-dress/hair-bangs", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "girl/hair-bangs", + "type": "mesh", + "path": "girl-spring-dress/hair-bangs", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch2", + "type": "mesh", + "path": "girl/hair-patch", + "color": "94453fff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "path": "girl-spring-dress/hair-side", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-side-back": { + "hair-side-back": { + "name": "girl/hair-head-side-back", + "type": "mesh", + "path": "girl-spring-dress/hair-head-side-back", + "uvs": [ 0.17374, 0.1545, 0.22967, 0.37557, 0.21289, 0.61586, 0, 0.86256, 0, 1, 0.25205, 1, 0.45899, 0.87537, 0.69391, 0.87858, 0.80577, 0.69916, 0.82815, 0.52615, 1, 0.46528, 0.99594, 0.21858, 0.73306, 0.04236, 0.53171, 0, 0.27442, 0.04877, 0.51493, 0.5678, 0.59323, 0.17692, 0.73306, 0.35954, 0.46459, 0.76964 ], + "triangles": [ 17, 11, 10, 15, 1, 16, 16, 14, 13, 14, 16, 1, 1, 0, 14, 16, 12, 17, 17, 12, 11, 16, 13, 12, 15, 16, 17, 2, 1, 15, 5, 18, 6, 5, 4, 3, 6, 18, 7, 7, 18, 8, 5, 3, 2, 18, 5, 2, 18, 15, 8, 18, 2, 15, 8, 15, 9, 9, 17, 10, 15, 17, 9 ], + "vertices": [ 2, 47, 44.16, -9.72, 0.072, 6, 75.71, -87.13, 0.928, 2, 47, 65.84, -17.42, 0.21564, 6, 53.1, -91.39, 0.78436, 2, 47, 87.28, -29.83, 0.5439, 6, 28.33, -91.45, 0.4561, 3, 47, 103.9, -52.79, 0.8752, 6, 2.41, -79.98, 0.09988, 30, 134.21, -69.81, 0.02493, 3, 47, 116.42, -59.39, 0.89423, 6, -11.73, -80.58, 0.014, 30, 134.21, -83.97, 0.09177, 3, 47, 123.36, -46.24, 0.87011, 6, -11.1, -95.43, 0.00989, 30, 149.08, -83.97, 0.12, 3, 47, 117.69, -29.45, 0.77082, 6, 2.24, -107.09, 0.0941, 30, 161.29, -71.13, 0.13508, 3, 47, 124.45, -17.35, 0.86922, 6, 2.5, -120.95, 0.00701, 30, 175.15, -71.46, 0.12377, 3, 47, 111.18, -2.89, 0.73582, 6, 21.24, -126.76, 0.12392, 30, 181.75, -52.98, 0.14026, 3, 47, 96.03, 6.59, 0.55463, 6, 39.1, -127.33, 0.32878, 30, 183.07, -35.16, 0.11659, 3, 47, 95.21, 18.48, 0.54495, 6, 45.79, -137.19, 0.37264, 30, 193.21, -28.89, 0.08241, 2, 47, 72.62, 30.12, 0.39164, 6, 71.17, -135.87, 0.60836, 2, 47, 49.33, 24.86, 0.13442, 6, 88.65, -119.61, 0.86558, 2, 47, 39.93, 16.38, 0.03367, 6, 92.5, -107.55, 0.96633, 2, 47, 37.3, 0.61, 0.176, 6, 86.84, -92.6, 0.824, 3, 47, 91.21, -11.76, 0.52, 6, 34.03, -109.04, 0.39641, 30, 164.59, -39.45, 0.08358, 2, 47, 57.74, 11.1, 0.24029, 6, 74.45, -111.95, 0.75971, 3, 47, 78.23, 9.62, 0.39663, 6, 56.01, -120.99, 0.565, 30, 177.46, -18, 0.03837, 3, 47, 108.21, -24.08, 0.64328, 6, 13.13, -106.96, 0.22492, 30, 161.62, -60.24, 0.1318 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 59, + "height": 103 + } + }, + "hair-side-front": { + "hair-side-front": { + "name": "girl/hair-head-side-front", + "type": "mesh", + "path": "girl-spring-dress/hair-head-side-front", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 6, 5.69, 38.25, 1, 1, 6, 2.21, 120.17, 1, 1, 6, 85.14, 123.69, 1, 1, 6, 88.61, 41.77, 1 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 82, + "height": 83 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "path": "girl-spring-dress/hair-side", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hand-back": { + "hand-back-fingers": { + "name": "girl/hand-front-fingers", + "path": "girl-spring-dress/hand-front-fingers", + "x": 11.59, + "y": 1.97, + "rotation": 90, + "width": 38, + "height": 42 + } + }, + "hand-front": { + "hand-front-fingers": { + "name": "girl/hand-front-fingers", + "path": "girl-spring-dress/hand-front-fingers", + "x": 11.59, + "y": 1.97, + "rotation": 90, + "width": 38, + "height": 42 + } + }, + "leg-back": { + "leg-back": { + "name": "girl/leg-front", + "type": "mesh", + "path": "girl-spring-dress/leg-front", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 0, 48, 42, 42, 48, 31, 42, 31, 33, 34, 0, 42, 34, 42, 33, 31, 32, 33, 31, 48, 30, 41, 12, 13, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48 ], + "vertices": [ 3, 94, 22.95, -22.02, 0.22728, 95, 59.29, -22, 0.00272, 103, -19.33, 11.79, 0.77, 3, 94, 5.73, -22.61, 0.49142, 95, 41.79, -22.61, 0.23858, 103, -19.74, 29.07, 0.27, 4, 94, -10.55, -23.17, 0.11127, 95, 25.25, -23.18, 0.76279, 96, 60.87, -23.13, 0.00594, 103, -20.15, 45.45, 0.12, 2, 95, 5.13, -23.87, 0.69465, 96, 41.05, -23.86, 0.30535, 3, 95, -15.89, -24.56, 0.09408, 96, 20.35, -24.59, 0.86299, 97, 56.72, -24.52, 0.04292, 2, 96, 1.98, -25.21, 0.55425, 97, 38.06, -25.21, 0.44575, 3, 96, -19.09, -25.88, 0.05256, 97, 16.64, -25.95, 0.87891, 98, 52.7, -25.89, 0.06853, 3, 96, -33.74, -26.34, 3.3E-4, 97, 1.76, -26.46, 0.67227, 98, 37.81, -26.45, 0.32739, 2, 97, -3.17, -22.02, 0.47188, 98, 32.86, -22.03, 0.52812, 3, 97, -22.68, -22.46, 0.0172, 98, 13.36, -22.55, 0.87617, 99, 49.14, -22.52, 0.10662, 3, 98, -7.93, -23.09, 0.23789, 99, 28.2, -23.11, 0.75909, 100, 64.58, -23.1, 0.00302, 3, 98, -27.79, -23.57, 0.00312, 99, 8.67, -23.62, 0.75495, 100, 44.76, -23.62, 0.24193, 3, 99, -12.93, -24.2, 0.09944, 100, 22.84, -24.2, 0.87238, 101, 58.46, -24.21, 0.02818, 2, 100, 0.77, -24.79, 0.47358, 101, 36.71, -24.79, 0.52642, 1, 101, 1.72, -25.72, 1, 1, 101, -25.98, -26.46, 1, 1, 101, -26.33, 25.98, 1, 1, 101, -0.53, 25.24, 1, 2, 100, -3.13, 24.27, 0.37555, 101, 32.87, 24.27, 0.62445, 3, 99, -15.75, 23.6, 0.0536, 100, 19.96, 23.6, 0.92085, 101, 55.62, 23.59, 0.02556, 2, 99, 5.77, 22.96, 0.65378, 100, 41.79, 22.97, 0.34622, 3, 98, -11.12, 22.43, 0.12254, 99, 24.96, 22.4, 0.86248, 100, 61.27, 22.42, 0.01499, 3, 97, -26.03, 21.9, 0.00839, 98, 9.83, 21.8, 0.78745, 99, 45.58, 21.82, 0.20415, 3, 97, -7.13, 21.27, 0.362, 98, 28.73, 21.24, 0.63637, 99, 64.17, 21.3, 0.00163, 2, 97, -6.17, 28.11, 0.5025, 98, 29.67, 28.08, 0.4975, 3, 96, -21.38, 27.22, 0.03848, 97, 14.13, 27.14, 0.83871, 98, 49.97, 27.2, 0.12281, 3, 96, -2.33, 26.26, 0.40865, 97, 33.49, 26.25, 0.59016, 98, 69.34, 26.38, 0.00119, 3, 95, -20.14, 25.43, 0.05003, 96, 16.06, 25.39, 0.84798, 97, 52.19, 25.45, 0.10198, 2, 95, 1.24, 24.42, 0.56331, 96, 37.12, 24.42, 0.43669, 4, 94, -15.67, 23.56, 0.04308, 95, 20, 23.55, 0.81142, 96, 55.61, 23.58, 0.0255, 103, 26.63, 50.22, 0.12, 3, 94, 0.26, 22.8, 0.33337, 95, 36.2, 22.8, 0.39663, 103, 25.72, 34.13, 0.27, 3, 94, 18.48, 21.95, 0.22212, 95, 54.71, 21.97, 0.00788, 103, 24.69, 15.83, 0.77, 1, 103, 36.21, 8.95, 1, 1, 103, 36.08, -3.91, 1, 1, 103, -18.97, -3.34, 1, 1, 101, 0.45, 0, 1, 1, 98, 31.4, 0, 1, 1, 98, 11.41, 0, 1, 1, 99, 26.57, 0, 1, 1, 99, 7.43, 0, 1, 1, 100, 20.94, 0, 1, 1, 101, 34.45, 0, 1, 2, 94, 23.32, 0.24, 0.23, 103, 2.93, 11.2, 0.77, 1, 97, 15.67, 0.04, 1, 2, 96, -0.81, 0.07, 0.36735, 97, 35.13, 0.07, 0.63265, 1, 96, 18, 0.1, 1, 2, 95, 2.51, 0.14, 0.90776, 96, 38.42, 0.14, 0.09224, 2, 95, 22.3, 0.17, 0.88, 103, 3.23, 48.15, 0.12, 3, 94, 2.19, 0.2, 0.62933, 95, 38.18, 0.2, 0.10067, 103, 3.11, 32.41, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "leg-front": { + "leg-front": { + "name": "girl/leg-front", + "type": "mesh", + "path": "girl-spring-dress/leg-front", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 31, 48, 30, 0, 48, 42, 42, 48, 31, 34, 42, 33, 31, 32, 33, 42, 31, 33, 34, 0, 42, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 41, 12, 13, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15 ], + "vertices": [ 3, 28, 22.96, -22.02, 0.22658, 27, 58.91, -22.02, 0.00342, 102, -21, 12.47, 0.77, 3, 28, 5.76, -22.61, 0.49273, 27, 41.71, -22.61, 0.23727, 102, -21.71, 29.73, 0.27, 4, 28, -10.68, -23.18, 0.11707, 27, 25.27, -23.18, 0.76681, 26, 61.22, -23.18, 0.00612, 102, -22.41, 46.07, 0.11, 2, 27, 5.13, -23.87, 0.6994, 26, 41.08, -23.87, 0.3006, 3, 27, -15.62, -24.58, 0.10595, 26, 20.33, -24.58, 0.85365, 25, 56.28, -24.58, 0.0404, 3, 27, -33.92, -25.21, 7.9E-4, 26, 2.03, -25.21, 0.57156, 25, 37.98, -25.21, 0.42765, 3, 26, -19.29, -25.94, 0.05654, 25, 16.66, -25.94, 0.87764, 24, 52.61, -25.94, 0.06582, 3, 26, -34.16, -26.46, 4.4E-4, 25, 1.79, -26.46, 0.67282, 24, 37.74, -26.46, 0.32674, 2, 25, -3.13, -22.03, 0.47104, 24, 32.82, -22.03, 0.52896, 3, 25, -22.61, -22.55, 0.01665, 24, 13.34, -22.55, 0.87142, 23, 49.29, -22.55, 0.11193, 3, 24, -7.79, -23.11, 0.22064, 23, 28.17, -23.11, 0.77569, 22, 64.12, -23.11, 0.00367, 3, 24, -27.25, -23.62, 0.00219, 23, 8.7, -23.62, 0.77556, 22, 44.65, -23.62, 0.22225, 3, 21, 58.81, -24.2, 0.0114, 23, -13.09, -24.2, 0.12046, 22, 22.86, -24.2, 0.86813, 2, 21, 36.72, -24.79, 0.42237, 22, 0.77, -24.79, 0.57763, 2, 21, 1.72, -25.72, 0.99849, 22, -34.23, -25.72, 0.00151, 1, 21, -25.98, -26.46, 1, 1, 21, -26.33, 25.98, 1, 2, 21, -0.53, 25.24, 0.99997, 22, -36.48, 25.24, 3.0E-5, 2, 21, 32.85, 24.27, 0.56274, 22, -3.1, 24.27, 0.43726, 3, 21, 55.91, 23.6, 0.02334, 23, -15.99, 23.6, 0.05774, 22, 19.96, 23.6, 0.91892, 3, 24, -30.16, 22.96, 3.0E-4, 23, 5.79, 22.96, 0.6752, 22, 41.74, 22.96, 0.3245, 3, 24, -11, 22.41, 0.14886, 23, 24.95, 22.41, 0.84172, 22, 60.9, 22.41, 0.00941, 3, 25, -26.16, 21.8, 0.00663, 24, 9.79, 21.8, 0.80794, 23, 45.74, 21.8, 0.18543, 3, 25, -7.19, 21.25, 0.35697, 24, 28.76, 21.25, 0.64235, 23, 64.72, 21.25, 6.7E-4, 2, 25, -6.22, 28.1, 0.49898, 24, 29.73, 28.1, 0.50102, 3, 26, -21.82, 27.15, 0.04097, 25, 14.13, 27.15, 0.83939, 24, 50.08, 27.15, 0.11963, 3, 26, -2.4, 26.25, 0.4338, 25, 33.55, 26.25, 0.56533, 24, 69.5, 26.25, 8.7E-4, 3, 27, -19.88, 25.4, 0.04332, 26, 16.07, 25.4, 0.87101, 25, 52.02, 25.4, 0.08567, 2, 27, 1.21, 24.42, 0.5677, 26, 37.16, 24.42, 0.4323, 4, 28, -15.94, 23.55, 0.03449, 27, 20.01, 23.55, 0.83346, 26, 55.96, 23.55, 0.02204, 102, 24.27, 51.7, 0.11, 3, 28, 0.25, 22.8, 0.31657, 27, 36.2, 22.8, 0.41343, 102, 23.66, 35.6, 0.27, 3, 28, 18.49, 21.95, 0.22027, 27, 54.44, 21.95, 0.00973, 102, 22.94, 17.27, 0.77, 1, 102, 34.58, 10.59, 1, 1, 102, 34.67, -2.26, 1, 1, 102, -20.38, -2.65, 1, 1, 21, 0.45, 0, 1, 1, 24, 31.4, 0, 1, 1, 24, 11.41, 0, 1, 1, 23, 26.57, 0, 1, 1, 23, 7.43, 0, 1, 1, 22, 20.94, 0, 1, 1, 21, 34.45, 0, 1, 2, 28, 23.32, 0.24, 0.23, 102, 1.26, 12.26, 0.77, 1, 25, 15.67, 0.04, 1, 2, 26, -0.81, 0.07, 0.37007, 25, 35.14, 0.07, 0.62993, 1, 26, 18, 0.1, 1, 2, 27, 2.5, 0.14, 0.92465, 26, 38.45, 0.14, 0.07535, 2, 27, 22.3, 0.17, 0.89, 102, 0.91, 49.21, 0.11, 3, 28, 2.2, 0.2, 0.65329, 27, 38.15, 0.2, 0.07671, 102, 1.08, 33.46, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-spring-dress/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 }, + "mouth-smile": { "name": "girl/mouth-smile", "path": "girl-spring-dress/mouth-smile", "x": -4.12, "y": 2.56, "width": 57, "height": 13 } + }, + "neck": { + "neck": { "name": "girl-spring-dress/neck", "x": 27.19, "y": -3.15, "rotation": -91.34, "width": 39, "height": 63 } + }, + "nose": { + "nose": { + "name": "girl/nose", + "type": "mesh", + "path": "girl-spring-dress/nose", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 6, 57.27, -63, 0.68, 29, 14.7, -17.7, 0.32, 2, 6, 56.34, -41.02, 0.73, 29, -7.3, -17.7, 0.27, 2, 6, 69.33, -40.47, 0.73, 29, -7.3, -4.7, 0.27, 2, 6, 70.26, -62.45, 0.68, 29, 14.7, -4.7, 0.32 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 22, + "height": 13 + } + }, + "ribbon-shoulder": { + "ribbon-shoulder": { "name": "girl-spring-dress/shoulder-ribbon", "x": 100.69, "y": -35.56, "rotation": -94.33, "width": 71, "height": 48 } + }, + "skirt": { + "skirt": { + "name": "girl-spring-dress/skirt", + "type": "mesh", + "uvs": [ 0.532, 0, 0.4709, 0, 0.41171, 0, 0.25323, 0.09671, 0.14058, 0.22113, 0.0623, 0.34554, 0, 0.45708, 6.0E-5, 0.78742, 0.1654, 0.88181, 0.31815, 1, 0.50526, 1, 0.68856, 1, 0.83749, 0.87752, 0.99236, 0.73165, 1, 0.41418, 0.9215, 0.29835, 0.84131, 0.18252, 0.72866, 0.06668, 0.6141, 0, 0.13103, 0.46995, 0.23796, 0.60724, 0.35252, 0.69733, 0.50336, 0.74023, 0.6561, 0.69733, 0.76875, 0.60724, 0.86613, 0.46137, 0.78212, 0.3198, 0.71338, 0.41418, 0.62555, 0.47424, 0.51672, 0.4914, 0.38498, 0.48711, 0.29906, 0.39702, 0.21695, 0.30264, 0.35443, 0.23399, 0.29524, 0.1868, 0.42507, 0.25973, 0.52818, 0.26832, 0.59309, 0.24257, 0.64083, 0.19967, 0.69429, 0.14819 ], + "triangles": [ 20, 31, 30, 30, 35, 29, 29, 36, 28, 29, 35, 36, 30, 31, 35, 36, 37, 28, 28, 37, 27, 38, 27, 37, 31, 33, 35, 31, 32, 33, 38, 39, 26, 32, 34, 33, 32, 4, 34, 0, 37, 36, 36, 35, 1, 36, 1, 0, 33, 2, 35, 35, 2, 1, 38, 0, 18, 38, 37, 0, 33, 34, 2, 4, 3, 34, 38, 18, 39, 34, 3, 2, 39, 18, 17, 12, 11, 23, 23, 24, 12, 12, 24, 13, 24, 25, 13, 13, 25, 14, 28, 27, 24, 24, 27, 25, 27, 26, 25, 25, 15, 14, 25, 26, 15, 26, 27, 38, 26, 16, 15, 26, 39, 16, 39, 17, 16, 23, 28, 24, 9, 22, 10, 23, 11, 22, 11, 10, 22, 9, 21, 22, 9, 8, 21, 23, 22, 29, 22, 21, 29, 29, 28, 23, 21, 30, 29, 21, 20, 30, 8, 20, 21, 8, 7, 20, 7, 19, 20, 7, 6, 19, 20, 19, 31, 6, 5, 19, 19, 32, 31, 19, 5, 32, 5, 4, 32 ], + "vertices": [ 1, 4, 17.29, -36.28, 1, 1, 4, 18.97, -14.1, 1, 1, 4, 20.6, 7.38, 1, 2, 110, 65.82, -89.43, 0.30593, 4, 9.32, 66.08, 0.69407, 2, 110, 45.66, -48.43, 0.65597, 4, -7.68, 108.49, 0.34403, 2, 110, 25.51, -19.93, 0.88973, 4, -25.63, 138.42, 0.11027, 1, 110, 7.44, 2.74, 1, 1, 110, -46.08, 2.72, 1, 3, 110, -61.37, -57.46, 0.25894, 105, 13.43, 107.85, 0.71, 4, -115.09, 107.55, 0.03106, 3, 110, -80.52, -113.06, 0.21204, 105, -5.71, 52.25, 0.72535, 4, -138.37, 53.55, 0.06261, 1, 105, -5.71, -15.86, 1, 3, 105, -5.71, -82.58, 0.58138, 109, -87.91, 109.6, 0.34368, 4, -148.54, -80.89, 0.07494, 3, 105, 14.13, -136.79, 0.26163, 109, -68.06, 55.39, 0.68053, 4, -132.84, -136.44, 0.05783, 2, 105, 37.76, -193.16, 0.24, 109, -44.43, -0.99, 0.76, 1, 109, 7, -3.77, 1, 2, 109, 25.76, 24.81, 0.90843, 4, -41.59, -174.01, 0.09157, 2, 109, 44.53, 54, 0.73242, 4, -20.68, -146.32, 0.26758, 2, 109, 63.29, 95, 0.45401, 4, 1.12, -106.85, 0.54599, 1, 4, 15.04, -66.08, 1, 3, 110, 5.35, -44.95, 0.6612, 105, 80.15, 120.36, 0.2, 4, -47.61, 114.99, 0.1388, 3, 110, -16.89, -83.87, 0.37019, 105, 57.91, 81.44, 0.45, 4, -72.73, 77.86, 0.17981, 3, 110, -31.48, -125.57, 0.18786, 105, 43.32, 39.74, 0.5858, 4, -90.42, 37.38, 0.22634, 3, 105, 36.37, -15.16, 0.75525, 109, -45.82, 177.01, 0.06474, 4, -101.5, -16.84, 0.18, 3, 105, 43.32, -70.76, 0.49637, 109, -38.87, 121.41, 0.31941, 4, -98.76, -72.81, 0.18423, 3, 105, 57.91, -111.77, 0.4, 109, -24.28, 80.41, 0.47496, 4, -87.3, -114.8, 0.12504, 3, 105, 81.54, -147.21, 0.16, 109, -0.65, 44.96, 0.74601, 4, -66.41, -151.92, 0.09399, 3, 105, 104.48, -116.63, 0.17, 109, 22.29, 75.54, 0.56301, 4, -41.23, -123.16, 0.26699, 3, 105, 89.19, -91.61, 0.24, 109, 7, 100.56, 0.43686, 4, -54.59, -97.06, 0.32314, 3, 105, 79.46, -59.64, 0.33142, 109, -2.73, 132.53, 0.26648, 4, -61.88, -64.45, 0.40211, 3, 105, 76.68, -20.03, 0.40588, 109, -5.51, 172.15, 0.09581, 4, -61.67, -24.73, 0.49831, 3, 110, 2.57, -137.39, 0.12845, 105, 77.37, 27.93, 0.35758, 4, -57.36, 23.03, 0.51397, 3, 110, 17.17, -106.11, 0.2437, 105, 91.97, 59.2, 0.31, 4, -40.45, 53.12, 0.4463, 3, 110, 32.46, -76.23, 0.46618, 105, 107.26, 89.09, 0.09047, 4, -22.95, 81.76, 0.44335, 3, 110, 43.58, -126.27, 0.11844, 105, 118.38, 39.05, 0.11, 4, -15.63, 31.03, 0.77156, 3, 110, 51.22, -104.72, 0.22926, 105, 126.02, 60.59, 0.0575, 4, -6.38, 51.94, 0.71324, 2, 105, 114.21, 13.33, 0.17, 4, -21.73, 5.7, 0.83, 3, 105, 112.82, -24.2, 0.14524, 109, 30.63, 167.98, 0.09502, 4, -25.94, -31.62, 0.75974, 3, 105, 116.99, -47.83, 0.14384, 109, 34.8, 144.35, 0.18939, 4, -23.57, -55.49, 0.66677, 3, 105, 123.94, -65.2, 0.09, 109, 41.75, 126.97, 0.28023, 4, -17.95, -73.34, 0.62977, 3, 105, 132.28, -84.66, 0.03, 109, 50.09, 107.51, 0.39568, 4, -11.1, -93.38, 0.57432 ], + "hull": 19, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 4, 2, 70, 2, 2, 0, 0, 36, 72, 0, 18, 20, 20, 22, 44, 20, 54, 76 ], + "width": 364, + "height": 162 + } + }, + "underskirt": { + "underskirt": { + "name": "girl-spring-dress/underskirt", + "type": "mesh", + "uvs": [ 0.13668, 0, 0, 0.11048, 0, 0.35349, 0, 0.5756, 0.07116, 0.76423, 0.25979, 0.94448, 0.46464, 1, 0.68672, 0.97656, 0.87735, 0.83221, 1, 0.55421, 1, 0.38798, 1, 0, 0.79052, 0.28923, 0.64716, 0.42987, 0.49934, 0.45979, 0.35819, 0.40892, 0.23815, 0.30419, 0.12923, 0.13064, 0.52712, 0.17253 ], + "triangles": [ 13, 14, 18, 15, 16, 18, 18, 0, 11, 17, 0, 18, 13, 18, 12, 14, 15, 18, 12, 18, 11, 9, 8, 12, 8, 13, 12, 12, 10, 9, 12, 11, 10, 7, 13, 8, 7, 6, 14, 6, 5, 14, 14, 13, 7, 5, 15, 14, 5, 4, 15, 16, 4, 3, 16, 15, 4, 3, 2, 16, 2, 17, 16, 2, 1, 17, 17, 1, 0, 16, 17, 18 ], + "vertices": [ 4, 111, 66.62, -34.12, 0.33917, 108, 115.67, 117.58, 0.06079, 112, 61.17, 280.19, 4.0E-5, 4, -32.12, 111.03, 0.6, 2, 111, 52.25, 13.72, 0.98771, 108, 101.3, 165.42, 0.01229, 2, 111, 20.66, 13.72, 0.99893, 108, 69.71, 165.42, 0.00107, 2, 111, -8.21, 13.72, 0.78, 108, 40.84, 165.42, 0.22, 2, 111, -37.4, -20.91, 0.53, 108, 11.65, 130.79, 0.47, 2, 111, -56.17, -77.21, 0.435, 108, -7.12, 74.49, 0.565, 3, 111, -63.38, -154.35, 0.00296, 108, -14.33, -2.65, 0.98871, 112, -68.83, 159.96, 0.00833, 2, 108, -11.29, -74.93, 0.61621, 112, -65.78, 87.68, 0.38379, 2, 108, 7.48, -141.65, 0.5, 112, -47.02, 20.96, 0.5, 2, 108, 43.62, -184.58, 0.24, 112, -10.88, -21.97, 0.76, 1, 112, 10.73, -21.97, 1, 3, 108, 115.67, -184.58, 7.6E-4, 112, 61.17, -21.97, 0.88924, 4, -54.9, -190.27, 0.11, 4, 111, 29.02, -262.96, 2.5E-4, 108, 78.07, -111.26, 0.4, 112, 23.57, 51.35, 0.49361, 4, -86.87, -114.32, 0.10614, 4, 111, 13.85, -221.73, 0.00648, 108, 62.89, -70.03, 0.45247, 112, 8.4, 92.58, 0.40105, 4, -98.89, -72.07, 0.14, 4, 111, 6.84, -166.5, 0.0591, 108, 55.89, -14.79, 0.67677, 112, 1.4, 147.82, 0.12413, 4, -101.7, -16.46, 0.14, 4, 111, 13.46, -111.65, 0.28006, 108, 62.51, 40.06, 0.56032, 112, 8.01, 202.67, 0.01962, 4, -90.97, 37.74, 0.14, 4, 111, 27.07, -69.63, 0.54438, 108, 76.12, 82.07, 0.31301, 112, 21.63, 244.68, 0.00262, 4, -74.23, 78.6, 0.14, 4, 111, 49.63, -31.51, 0.74734, 108, 98.68, 120.19, 0.11265, 112, 44.19, 282.8, 1.0E-5, 4, -48.86, 114.91, 0.14, 1, 4, -64.79, -23.54, 1 ], + "hull": 12, + "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 22, 16, 24, 18, 20, 20, 22, 12, 28, 10, 30, 8, 32, 14, 26, 2, 4, 4, 6, 32, 4 ], + "width": 350, + "height": 130 + } + } + } + }, + { + "name": "hair/blue", + "attachments": { + "ear": { + "ear": { "name": "girl/ear", "x": 56.58, "y": 85.63, "rotation": -87.57, "width": 38, "height": 45 } + }, + "eye-back-eyebrow": { + "eye-back-eyebrow": { "name": "girl/back-eyebrow", "x": 15.6, "y": -9.48, "rotation": -177.9, "width": 36, "height": 23 } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { "name": "girl/front-eyebrow", "x": 10.82, "y": 8.92, "rotation": -3.58, "width": 36, "height": 23 } + }, + "hair-back": { + "hair-back": { + "name": "girl/hair-back", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 6, -3.46, -135.36, 0.71, 30, 189.29, -78.03, 0.29, 2, 6, -15.93, 158.38, 0.71, 30, -104.71, -78.03, 0.29, 2, 6, 168.91, 166.22, 0.71, 30, -104.71, 106.97, 0.29, 2, 6, 181.37, -127.51, 0.71, 30, 189.29, 106.97, 0.29 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 294, + "height": 185 + } + }, + "hair-bangs": { + "hair-bangs": { + "name": "girl/hair-bangs", + "type": "mesh", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "girl/hair-bangs", + "type": "mesh", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch", + "type": "mesh", + "color": "71ffe7ff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-side-back": { + "hair-side-back": { + "name": "girl/hair-head-side-back", + "type": "mesh", + "uvs": [ 0.17374, 0.1545, 0.22967, 0.37557, 0.21289, 0.61586, 0, 0.86256, 0, 1, 0.25205, 1, 0.45899, 0.87537, 0.69391, 0.87858, 0.80577, 0.69916, 0.82815, 0.52615, 1, 0.46528, 0.99594, 0.21858, 0.73306, 0.04236, 0.53171, 0, 0.27442, 0.04877, 0.51493, 0.5678, 0.59323, 0.17692, 0.73306, 0.35954, 0.46459, 0.76964 ], + "triangles": [ 17, 11, 10, 15, 1, 16, 16, 14, 13, 14, 16, 1, 1, 0, 14, 16, 12, 17, 17, 12, 11, 16, 13, 12, 15, 16, 17, 2, 1, 15, 5, 18, 6, 5, 4, 3, 6, 18, 7, 7, 18, 8, 5, 3, 2, 18, 5, 2, 18, 15, 8, 18, 2, 15, 8, 15, 9, 9, 17, 10, 15, 17, 9 ], + "vertices": [ 2, 47, 44.16, -9.72, 0.072, 6, 75.71, -87.13, 0.928, 2, 47, 65.84, -17.42, 0.21564, 6, 53.1, -91.39, 0.78436, 2, 47, 87.28, -29.83, 0.5439, 6, 28.33, -91.45, 0.4561, 3, 47, 103.9, -52.79, 0.8752, 6, 2.41, -79.98, 0.09988, 30, 134.21, -69.81, 0.02493, 3, 47, 116.42, -59.39, 0.89423, 6, -11.73, -80.58, 0.014, 30, 134.21, -83.97, 0.09177, 3, 47, 123.36, -46.24, 0.87011, 6, -11.1, -95.43, 0.00989, 30, 149.08, -83.97, 0.12, 3, 47, 117.69, -29.45, 0.77082, 6, 2.24, -107.09, 0.0941, 30, 161.29, -71.13, 0.13508, 3, 47, 124.45, -17.35, 0.86922, 6, 2.5, -120.95, 0.00701, 30, 175.15, -71.46, 0.12377, 3, 47, 111.18, -2.89, 0.73582, 6, 21.24, -126.76, 0.12392, 30, 181.75, -52.98, 0.14026, 3, 47, 96.03, 6.59, 0.55463, 6, 39.1, -127.33, 0.32878, 30, 183.07, -35.16, 0.11659, 3, 47, 95.21, 18.48, 0.54495, 6, 45.79, -137.19, 0.37264, 30, 193.21, -28.89, 0.08241, 2, 47, 72.62, 30.12, 0.39164, 6, 71.17, -135.87, 0.60836, 2, 47, 49.33, 24.86, 0.13442, 6, 88.65, -119.61, 0.86558, 2, 47, 39.93, 16.38, 0.03367, 6, 92.5, -107.55, 0.96633, 2, 47, 37.3, 0.61, 0.176, 6, 86.84, -92.6, 0.824, 3, 47, 91.21, -11.76, 0.52, 6, 34.03, -109.04, 0.39641, 30, 164.59, -39.45, 0.08358, 2, 47, 57.74, 11.1, 0.24029, 6, 74.45, -111.95, 0.75971, 3, 47, 78.23, 9.62, 0.39663, 6, 56.01, -120.99, 0.565, 30, 177.46, -18, 0.03837, 3, 47, 108.21, -24.08, 0.64328, 6, 13.13, -106.96, 0.22492, 30, 161.62, -60.24, 0.1318 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 59, + "height": 103 + } + }, + "hair-side-front": { + "hair-side-front": { + "name": "girl/hair-head-side-front", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 6, 5.69, 38.25, 1, 1, 6, 2.21, 120.17, 1, 1, 6, 85.14, 123.69, 1, 1, 6, 88.61, 41.77, 1 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 82, + "height": 83 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "hair/brown", + "attachments": { + "ear": { + "ear": { + "name": "girl/ear", + "path": "girl-spring-dress/ear", + "x": 56.58, + "y": 85.63, + "rotation": -87.57, + "width": 38, + "height": 45 + } + }, + "eye-back-eyebrow": { + "eye-back-eyebrow": { + "name": "girl/back-eyebrow", + "path": "girl-spring-dress/back-eyebrow", + "x": 15.6, + "y": -9.48, + "rotation": -177.9, + "width": 36, + "height": 23 + } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { + "name": "girl/front-eyebrow", + "path": "girl-spring-dress/front-eyebrow", + "x": 10.82, + "y": 8.92, + "rotation": -3.58, + "width": 36, + "height": 23 + } + }, + "hair-back": { + "hair-back": { + "name": "girl/hair-back", + "type": "mesh", + "path": "girl-spring-dress/hair-back", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 0, 2, 3, 0 ], + "vertices": [ 2, 6, -3.46, -135.36, 0.71, 30, 189.29, -78.03, 0.29, 2, 6, -15.93, 158.38, 0.71, 30, -104.71, -78.03, 0.29, 2, 6, 168.91, 166.22, 0.71, 30, -104.71, 106.97, 0.29, 2, 6, 181.37, -127.51, 0.71, 30, 189.29, 106.97, 0.29 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 294, + "height": 185 + } + }, + "hair-bangs": { + "hair-bangs": { + "name": "girl/hair-bangs", + "type": "mesh", + "path": "girl-spring-dress/hair-bangs", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "girl/hair-bangs", + "type": "mesh", + "path": "girl-spring-dress/hair-bangs", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch2", + "type": "mesh", + "path": "girl/hair-patch", + "color": "94453fff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "path": "girl-spring-dress/hair-side", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-side-back": { + "hair-side-back": { + "name": "girl/hair-head-side-back", + "type": "mesh", + "path": "girl-spring-dress/hair-head-side-back", + "uvs": [ 0.17374, 0.1545, 0.22967, 0.37557, 0.21289, 0.61586, 0, 0.86256, 0, 1, 0.25205, 1, 0.45899, 0.87537, 0.69391, 0.87858, 0.80577, 0.69916, 0.82815, 0.52615, 1, 0.46528, 0.99594, 0.21858, 0.73306, 0.04236, 0.53171, 0, 0.27442, 0.04877, 0.51493, 0.5678, 0.59323, 0.17692, 0.73306, 0.35954, 0.46459, 0.76964 ], + "triangles": [ 17, 11, 10, 15, 1, 16, 16, 14, 13, 14, 16, 1, 1, 0, 14, 16, 12, 17, 17, 12, 11, 16, 13, 12, 15, 16, 17, 2, 1, 15, 5, 18, 6, 5, 4, 3, 6, 18, 7, 7, 18, 8, 5, 3, 2, 18, 5, 2, 18, 15, 8, 18, 2, 15, 8, 15, 9, 9, 17, 10, 15, 17, 9 ], + "vertices": [ 2, 47, 44.16, -9.72, 0.072, 6, 75.71, -87.13, 0.928, 2, 47, 65.84, -17.42, 0.21564, 6, 53.1, -91.39, 0.78436, 2, 47, 87.28, -29.83, 0.5439, 6, 28.33, -91.45, 0.4561, 3, 47, 103.9, -52.79, 0.8752, 6, 2.41, -79.98, 0.09988, 30, 134.21, -69.81, 0.02493, 3, 47, 116.42, -59.39, 0.89423, 6, -11.73, -80.58, 0.014, 30, 134.21, -83.97, 0.09177, 3, 47, 123.36, -46.24, 0.87011, 6, -11.1, -95.43, 0.00989, 30, 149.08, -83.97, 0.12, 3, 47, 117.69, -29.45, 0.77082, 6, 2.24, -107.09, 0.0941, 30, 161.29, -71.13, 0.13508, 3, 47, 124.45, -17.35, 0.86922, 6, 2.5, -120.95, 0.00701, 30, 175.15, -71.46, 0.12377, 3, 47, 111.18, -2.89, 0.73582, 6, 21.24, -126.76, 0.12392, 30, 181.75, -52.98, 0.14026, 3, 47, 96.03, 6.59, 0.55463, 6, 39.1, -127.33, 0.32878, 30, 183.07, -35.16, 0.11659, 3, 47, 95.21, 18.48, 0.54495, 6, 45.79, -137.19, 0.37264, 30, 193.21, -28.89, 0.08241, 2, 47, 72.62, 30.12, 0.39164, 6, 71.17, -135.87, 0.60836, 2, 47, 49.33, 24.86, 0.13442, 6, 88.65, -119.61, 0.86558, 2, 47, 39.93, 16.38, 0.03367, 6, 92.5, -107.55, 0.96633, 2, 47, 37.3, 0.61, 0.176, 6, 86.84, -92.6, 0.824, 3, 47, 91.21, -11.76, 0.52, 6, 34.03, -109.04, 0.39641, 30, 164.59, -39.45, 0.08358, 2, 47, 57.74, 11.1, 0.24029, 6, 74.45, -111.95, 0.75971, 3, 47, 78.23, 9.62, 0.39663, 6, 56.01, -120.99, 0.565, 30, 177.46, -18, 0.03837, 3, 47, 108.21, -24.08, 0.64328, 6, 13.13, -106.96, 0.22492, 30, 161.62, -60.24, 0.1318 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 59, + "height": 103 + } + }, + "hair-side-front": { + "hair-side-front": { + "name": "girl/hair-head-side-front", + "type": "mesh", + "path": "girl-spring-dress/hair-head-side-front", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 6, 5.69, 38.25, 1, 1, 6, 2.21, 120.17, 1, 1, 6, 85.14, 123.69, 1, 1, 6, 88.61, 41.77, 1 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 82, + "height": 83 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "path": "girl-spring-dress/hair-side", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-spring-dress/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "hair/long-blue-with-scarf", + "bones": [ "hair-strand-back-3", "hair-strand-front-2", "hair-holder-front", "hair-strand-front-1", "hair-strand-front-4", "hair-holder-back", "hair-strand-back-1", "hair-strand-front-3", "hair-strand-back-2", "scarf-back" ], + "attachments": { + "ear": { + "ear": { "name": "girl/ear", "x": 56.58, "y": 85.63, "rotation": -87.57, "width": 38, "height": 45 } + }, + "eye-back-eyebrow": { + "eye-back-eyebrow": { "name": "girl/back-eyebrow", "x": 15.6, "y": -9.48, "rotation": -177.9, "width": 36, "height": 23 } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { "name": "girl/front-eyebrow", "x": 10.82, "y": 8.92, "rotation": -3.58, "width": 36, "height": 23 } + }, + "hair-back": { + "hair-back": { + "name": "girl/hair-back", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 6, -3.46, -135.36, 0.71, 30, 189.29, -78.03, 0.29, 2, 6, -15.93, 158.38, 0.71, 30, -104.71, -78.03, 0.29, 2, 6, 168.91, 166.22, 0.71, 30, -104.71, 106.97, 0.29, 2, 6, 181.37, -127.51, 0.71, 30, 189.29, 106.97, 0.29 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 294, + "height": 185 + } + }, + "hair-bangs": { + "hair-bangs": { + "name": "girl/hair-bangs", + "type": "mesh", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "girl/hair-bangs", + "type": "mesh", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch2", + "type": "mesh", + "path": "girl/hair-patch", + "color": "71ffe7ff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-side-back": { + "hair-side-back": { + "name": "girl/hair-head-side-back", + "type": "mesh", + "uvs": [ 0.17374, 0.1545, 0.22967, 0.37557, 0.21289, 0.61586, 0, 0.86256, 0, 1, 0.25205, 1, 0.45899, 0.87537, 0.69391, 0.87858, 0.80577, 0.69916, 0.82815, 0.52615, 1, 0.46528, 0.99594, 0.21858, 0.73306, 0.04236, 0.53171, 0, 0.27442, 0.04877, 0.51493, 0.5678, 0.59323, 0.17692, 0.73306, 0.35954, 0.46459, 0.76964 ], + "triangles": [ 17, 11, 10, 15, 1, 16, 16, 14, 13, 14, 16, 1, 1, 0, 14, 16, 12, 17, 17, 12, 11, 16, 13, 12, 15, 16, 17, 2, 1, 15, 5, 18, 6, 5, 4, 3, 6, 18, 7, 7, 18, 8, 5, 3, 2, 18, 5, 2, 18, 15, 8, 18, 2, 15, 8, 15, 9, 9, 17, 10, 15, 17, 9 ], + "vertices": [ 2, 47, 44.16, -9.72, 0.072, 6, 75.71, -87.13, 0.928, 2, 47, 65.84, -17.42, 0.21564, 6, 53.1, -91.39, 0.78436, 2, 47, 87.28, -29.83, 0.5439, 6, 28.33, -91.45, 0.4561, 3, 47, 103.9, -52.79, 0.8752, 6, 2.41, -79.98, 0.09988, 30, 134.21, -69.81, 0.02493, 3, 47, 116.42, -59.39, 0.89423, 6, -11.73, -80.58, 0.014, 30, 134.21, -83.97, 0.09177, 3, 47, 123.36, -46.24, 0.87011, 6, -11.1, -95.43, 0.00989, 30, 149.08, -83.97, 0.12, 3, 47, 117.69, -29.45, 0.77082, 6, 2.24, -107.09, 0.0941, 30, 161.29, -71.13, 0.13508, 3, 47, 124.45, -17.35, 0.86922, 6, 2.5, -120.95, 0.00701, 30, 175.15, -71.46, 0.12377, 3, 47, 111.18, -2.89, 0.73582, 6, 21.24, -126.76, 0.12392, 30, 181.75, -52.98, 0.14026, 3, 47, 96.03, 6.59, 0.55463, 6, 39.1, -127.33, 0.32878, 30, 183.07, -35.16, 0.11659, 3, 47, 95.21, 18.48, 0.54495, 6, 45.79, -137.19, 0.37264, 30, 193.21, -28.89, 0.08241, 2, 47, 72.62, 30.12, 0.39164, 6, 71.17, -135.87, 0.60836, 2, 47, 49.33, 24.86, 0.13442, 6, 88.65, -119.61, 0.86558, 2, 47, 39.93, 16.38, 0.03367, 6, 92.5, -107.55, 0.96633, 2, 47, 37.3, 0.61, 0.176, 6, 86.84, -92.6, 0.824, 3, 47, 91.21, -11.76, 0.52, 6, 34.03, -109.04, 0.39641, 30, 164.59, -39.45, 0.08358, 2, 47, 57.74, 11.1, 0.24029, 6, 74.45, -111.95, 0.75971, 3, 47, 78.23, 9.62, 0.39663, 6, 56.01, -120.99, 0.565, 30, 177.46, -18, 0.03837, 3, 47, 108.21, -24.08, 0.64328, 6, 13.13, -106.96, 0.22492, 30, 161.62, -60.24, 0.1318 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 59, + "height": 103 + } + }, + "hair-side-front": { + "hair-side-front": { + "name": "girl/hair-head-side-front", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 6, 5.69, 38.25, 1, 1, 6, 2.21, 120.17, 1, 1, 6, 85.14, 123.69, 1, 1, 6, 88.61, 41.77, 1 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 82, + "height": 83 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-strand-back-1": { + "hair-strand-back-1": { + "name": "girl/hair-strand-back-1", + "type": "mesh", + "uvs": [ 0.04701, 0.06856, 0.1845, 0.21146, 0.29181, 0.36494, 0.41253, 0.53695, 0.51314, 0.76717, 0.60368, 1, 0.80489, 0.9974, 1, 0.89948, 1, 0.64544, 0.93567, 0.4311, 0.81159, 0.31731, 0.6674, 0.20352, 0.48631, 0.08444, 0.28846, 0, 0.7244, 0.58458 ], + "triangles": [ 14, 9, 8, 14, 8, 7, 6, 14, 7, 4, 14, 6, 5, 4, 6, 14, 10, 9, 4, 3, 14, 2, 1, 12, 1, 0, 13, 12, 1, 13, 14, 3, 10, 3, 11, 10, 11, 2, 12, 11, 3, 2 ], + "vertices": [ 1, 70, 7.91, 19.32, 1, 2, 70, -14.24, 5, 0.86951, 71, 5.53, -19.35, 0.13049, 2, 70, -37.68, -5.71, 0.79, 71, 31.29, -19.18, 0.21, 2, 70, -63.95, -17.77, 0.63, 71, 60.2, -18.95, 0.37, 2, 70, -98.57, -26.85, 0.42, 71, 95.5, -24.85, 0.58, 2, 70, -133.49, -34.74, 0.24, 71, 130.59, -31.96, 0.76, 2, 70, -134.87, -58.05, 0.09, 71, 141.4, -11.27, 0.91, 2, 70, -122.23, -81.7, 0.09, 71, 139.56, 15.49, 0.91, 2, 70, -84.99, -84.52, 0.24, 71, 106.74, 33.32, 0.76, 2, 70, -53.01, -79.45, 0.42, 71, 75.5, 41.8, 0.58, 2, 70, -35.24, -66.36, 0.63, 71, 53.93, 37.14, 0.37, 2, 70, -17.3, -50.94, 0.79, 71, 31.24, 30.43, 0.21, 2, 70, 1.74, -31.32, 0.83374, 71, 5.83, 20.33, 0.16626, 2, 70, 15.84, -9.37, 0.97706, 71, -16.03, 6.09, 0.02294, 2, 70, -73.66, -53.31, 0.42, 71, 83.62, 9.5, 0.58 ], + "hull": 14, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 0, 26, 6, 20 ], + "width": 116, + "height": 147 + } + }, + "hair-strand-back-2": { + "hair-strand-back-2": { + "name": "girl/hair-strand-back-2", + "type": "mesh", + "uvs": [ 0.01457, 0.31586, 0.12358, 0.46132, 0.26678, 0.63383, 0.42922, 0.79619, 0.61731, 0.96871, 0.77975, 1, 0.92509, 0.83679, 1, 0.68795, 0.98066, 0.50191, 0.86311, 0.43087, 0.68571, 0.33616, 0.48479, 0.26174, 0.34159, 0.14673, 0.24113, 0.08923, 0.08938, 0.13997, 0.65683, 0.61285 ], + "triangles": [ 5, 4, 6, 4, 15, 6, 4, 3, 15, 6, 15, 7, 8, 15, 9, 15, 8, 7, 15, 10, 9, 3, 2, 15, 15, 11, 10, 15, 2, 11, 2, 1, 11, 0, 14, 1, 1, 12, 11, 12, 14, 13, 12, 1, 14 ], + "vertices": [ 1, 70, -9.44, 45.94, 1, 2, 70, -27.62, 27.42, 0.75, 72, -16.98, -30.25, 0.25, 2, 70, -49.36, 2.93, 0.61, 72, 15.22, -36.25, 0.39, 2, 70, -70.21, -25.14, 0.44, 72, 50.02, -39.65, 0.56, 2, 70, -92.58, -57.78, 0.25, 72, 89.52, -41.98, 0.75, 2, 70, -98.39, -86.99, 0.12, 72, 117.55, -31.91, 0.88, 2, 70, -81.67, -114.78, 0.06, 72, 132.74, -3.26, 0.94, 2, 70, -65.63, -129.67, 0.06, 72, 137.23, 18.16, 0.94, 2, 70, -44.03, -127.77, 0.17, 72, 124.47, 35.69, 0.83, 2, 70, -34.28, -107.05, 0.25, 72, 101.68, 33.37, 0.75, 2, 70, -20.98, -75.68, 0.44, 72, 67.94, 28.59, 0.56, 2, 70, -9.69, -39.86, 0.61, 72, 31.43, 19.8, 0.39, 1, 70, 5.47, -14.87, 1, 1, 70, 13.44, 2.86, 1, 1, 70, 9.7, 30.84, 1, 2, 70, -52.31, -68.04, 0.32, 72, 77.55, -2.19, 0.68 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 182, + "height": 115 + } + }, + "hair-strand-back-3": { + "hair-strand-back-3": { "name": "girl/hair-strand-back-3", "x": 56.8, "y": -25.4, "rotation": 55.29, "width": 184, "height": 157 } + }, + "hair-strand-front-1": { + "hair-strand-front-1": { + "name": "girl/hair-strand-front-1", + "type": "mesh", + "uvs": [ 0.27351, 0, 0.15941, 0.16999, 0.0453, 0.35929, 0, 0.56107, 0.02974, 0.77118, 0.16459, 0.90639, 0.41355, 1, 0.78181, 1, 1, 0.95007, 1, 0.76493, 0.9789, 0.55691, 0.93222, 0.36345, 0.95297, 0.16999, 0.95815, 0, 0.48617, 0.76077, 0.52766, 0.55483, 0.54841, 0.37177 ], + "triangles": [ 3, 2, 15, 10, 15, 11, 14, 3, 15, 4, 3, 14, 5, 4, 14, 9, 15, 10, 6, 5, 14, 15, 9, 14, 8, 7, 9, 7, 14, 9, 6, 14, 7, 15, 2, 16, 13, 12, 16, 16, 2, 1, 13, 16, 0, 1, 0, 16, 11, 16, 12, 15, 16, 11 ], + "vertices": [ 1, 67, 23.66, 11.57, 1, 1, 67, -7.39, 22.5, 1, 2, 67, -42.05, 33.7, 0.56777, 68, 38.87, -36.21, 0.43223, 2, 67, -79.42, 39.94, 0.27008, 68, 76.66, -38.93, 0.72992, 2, 67, -118.76, 40.68, 0.08712, 68, 115.9, -36, 0.91288, 2, 67, -144.74, 32.5, 0.04098, 68, 141, -25.44, 0.95902, 2, 67, -163.6, 15.2, 0.07679, 68, 158.17, -6.46, 0.92321, 2, 67, -165.68, -12.34, 0.10317, 68, 157.68, 21.16, 0.89683, 2, 67, -157.61, -29.36, 0.11136, 68, 148.05, 37.35, 0.88864, 2, 67, -123.09, -31.97, 0.26753, 68, 113.44, 36.73, 0.73247, 2, 67, -84.18, -33.33, 0.41647, 68, 74.57, 34.46, 0.58353, 2, 67, -47.84, -32.57, 0.58895, 68, 38.46, 30.31, 0.41105, 2, 67, -11.88, -36.85, 0.76035, 68, 2.26, 31.22, 0.23965, 1, 67, 19.79, -39.63, 1, 2, 67, -119.4, 6.4, 0.21442, 68, 113.35, -1.81, 0.78558, 2, 67, -81.24, 0.39, 0.42231, 68, 74.79, 0.61, 0.57769, 2, 67, -47.22, -3.74, 0.5861, 68, 40.53, 1.56, 0.4139 ], + "hull": 14, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 0, 26 ], + "width": 75, + "height": 187 + } + }, + "hair-strand-front-2": { + "hair-strand-front-2": { + "name": "girl/hair-strand-front-3", + "type": "mesh", + "uvs": [ 1, 0.04687, 0.9312, 0.23176, 0.86413, 0.43106, 0.82389, 0.63997, 0.79259, 0.84408, 0.75235, 1, 0.33205, 0.99055, 0, 0.93772, 0, 0.73362, 0.0593, 0.55113, 0.20685, 0.37103, 0.42595, 0.19094, 0.73893, 0, 0.95355, 0, 0.5422, 0.39985, 0.43936, 0.60395, 0.70316, 0.20295 ], + "triangles": [ 15, 8, 9, 9, 10, 15, 5, 6, 4, 15, 6, 8, 6, 15, 4, 6, 7, 8, 4, 15, 3, 15, 14, 3, 10, 11, 14, 14, 16, 2, 3, 14, 2, 15, 10, 14, 1, 13, 0, 1, 12, 13, 16, 11, 12, 16, 12, 1, 2, 16, 1, 14, 11, 16 ], + "vertices": [ 1, 67, 12.41, -11.23, 1, 2, 67, -17, -3.01, 0.95, 74, 9.72, 24.71, 0.05, 2, 67, -48.76, 5.25, 0.57, 74, 42.51, 25.72, 0.43, 2, 67, -82.24, 11.29, 0.38, 74, 76.34, 29.34, 0.62, 2, 67, -115.01, 16.5, 0.21, 74, 109.25, 33.55, 0.79, 1, 74, 134.69, 35.39, 1, 1, 74, 140.8, -0.7, 1, 1, 74, 138.44, -30.73, 1, 2, 67, -91.96, 83.91, 0.21, 74, 106.1, -37.62, 0.79, 2, 67, -62.87, 76.54, 0.38, 74, 76.11, -38.72, 0.62, 2, 67, -34.75, 61.53, 0.57, 74, 44.9, -32.24, 0.43, 2, 67, -7.09, 40.33, 0.95, 74, 12.4, -19.67, 0.05, 1, 67, 21.7, 10.84, 1, 1, 67, 20.29, -7.78, 1, 2, 67, -41.6, 32.79, 0.57, 74, 43.4, -2.73, 0.43, 2, 67, -73.9, 44.21, 0.38, 74, 77.6, -4.6, 0.62, 2, 67, -10.85, 16.43, 0.95, 74, 9.28, 4.33, 0.05 ], + "hull": 14, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 0, 26, 4, 28, 6, 30, 2, 32 ], + "width": 87, + "height": 162 + } + }, + "hair-strand-front-3": { + "hair-strand-front-3": { + "name": "girl/hair-flap-down-front", + "type": "mesh", + "uvs": [ 0.7113, 0.13231, 0.65533, 0.28192, 0.56017, 0.43154, 0.40905, 0.55721, 0.17677, 0.69187, 0, 0.80558, 0, 1, 0.25793, 1, 0.57976, 0.97015, 0.72529, 0.80258, 0.86242, 0.63501, 0.94078, 0.47044, 0.98835, 0.2909, 1, 0.12034, 0.95757, 0, 0.78406, 0, 0.46222, 0.70982, 0.68891, 0.54524, 0.82604, 0.30287 ], + "triangles": [ 12, 18, 13, 14, 13, 15, 15, 13, 0, 11, 18, 12, 1, 0, 18, 18, 0, 13, 17, 1, 18, 10, 17, 11, 7, 5, 4, 7, 16, 8, 7, 4, 16, 7, 6, 5, 8, 16, 9, 16, 17, 9, 9, 17, 10, 4, 3, 16, 17, 3, 2, 17, 16, 3, 2, 1, 17, 17, 18, 11 ], + "vertices": [ 2, 69, 10.11, -20.49, 0.51752, 67, 12.87, 47.65, 0.48248, 2, 69, 30.11, -14.28, 0.4, 67, -5.94, 56.87, 0.6, 2, 69, 53.55, -12.3, 0.61, 67, -24.34, 71.53, 0.39, 2, 69, 79.47, -18.32, 0.76137, 67, -39.04, 93.71, 0.23863, 2, 69, 113.41, -32.36, 0.92, 67, -54.06, 127.22, 0.08, 1, 69, 140.37, -42.13, 1, 1, 69, 160, -26.2, 1, 1, 69, 137.41, 1.64, 1, 2, 69, 106.21, 33.93, 0.98205, 67, -94.36, 74.1, 0.01795, 2, 69, 76.55, 35.92, 0.74286, 67, -74.17, 52.28, 0.25714, 2, 69, 47.62, 36.99, 0.61, 67, -53.88, 31.63, 0.39, 2, 69, 24.14, 31.97, 0.54, 67, -33.37, 19.16, 0.46, 2, 69, 1.85, 22.4, 0.50655, 67, -10.59, 10.8, 0.49345, 2, 69, -16.39, 9.69, 0.46244, 67, 11.39, 7.52, 0.53756, 2, 69, -24.82, -4.75, 0.46, 67, 27.44, 12.22, 0.54, 2, 69, -9.62, -23.48, 0.48913, 67, 29.26, 36.27, 0.51087, 2, 69, 90.22, -0.08, 0.81, 67, -59.38, 87.83, 0.19, 2, 69, 53.75, 10.91, 0.61, 67, -40.43, 54.8, 0.39, 2, 69, 17.28, 5.86, 0.4, 67, -10.44, 33.42, 0.6 ], + "hull": 16, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30 ], + "width": 139, + "height": 130 + } + }, + "hair-strand-front-4": { + "hair-strand-front-4": { + "name": "girl/hair-strand-front-2", + "type": "mesh", + "uvs": [ 0.77614, 0, 0.63901, 0.21786, 0.44871, 0.36957, 0.21083, 0.45904, 0, 0.5524, 0, 0.8247, 0.31438, 1, 0.60822, 0.99586, 0.75655, 0.80525, 0.88248, 0.59908, 0.96084, 0.37346, 1, 0.13228, 1, 0, 0.47949, 0.68466, 0.76494, 0.43181 ], + "triangles": [ 9, 14, 10, 14, 1, 10, 0, 12, 11, 11, 1, 0, 10, 1, 11, 8, 13, 14, 2, 1, 14, 13, 2, 14, 3, 2, 13, 5, 4, 3, 5, 3, 13, 7, 13, 8, 6, 5, 13, 6, 13, 7, 9, 8, 14 ], + "vertices": [ 2, 75, -8.6, -29.1, 0.20005, 67, 27.34, 23.62, 0.79995, 2, 75, 16.25, -14.26, 0.5448, 67, 7.05, 44.27, 0.4552, 2, 75, 46.09, -8, 0.62198, 67, -6.08, 71.79, 0.37802, 2, 75, 80.31, -9.69, 0.78836, 67, -12.51, 105.43, 0.21164, 2, 75, 111.06, -9.86, 0.97352, 67, -19.61, 135.36, 0.02648, 2, 75, 119.47, 16.04, 0.98274, 67, -46.76, 137.41, 0.01726, 2, 75, 83.31, 46.2, 0.80419, 67, -67.54, 95.16, 0.19581, 2, 75, 44.33, 58.42, 0.71, 67, -70.2, 54.4, 0.29, 2, 75, 18.84, 46.65, 0.69, 67, -52.75, 32.41, 0.31, 2, 75, -4.17, 32.44, 0.55, 67, -33.51, 13.4, 0.45, 2, 75, -21.5, 14.34, 0.00249, 67, -11.84, 0.83, 0.99751, 1, 67, 11.8, -6.41, 1, 1, 67, 24.99, -7.41, 1, 2, 75, 51.75, 23.29, 0.58329, 67, -37.82, 69.9, 0.41671, 2, 75, 6.2, 11.49, 0.58111, 67, -15.6, 28.43, 0.41889 ], + "hull": 13, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24 ], + "width": 139, + "height": 100 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "scarf": { + "scarf": { + "name": "girl/scarf", + "type": "mesh", + "uvs": [ 0, 0.69166, 0.08052, 0.80607, 0.18349, 0.90523, 0.29463, 0.96243, 0.44173, 1, 0.5921, 0.99676, 0.69655, 0.96098, 0.81649, 0.89046, 0.92984, 0.74335, 0.98437, 0.67259, 1, 0.62301, 1, 0.43614, 0.987, 0.34894, 0.95168, 0.11197, 0.8389, 0.11579, 0.75309, 0.14439, 0.66045, 0.15555, 0.57902, 0.16537, 0.46625, 0.11579, 0.37308, 0.07002, 0.28482, 0.02426, 0.20473, 0, 0.09849, 0.02044, 0.056, 0.3408, 0, 0.51623, 0.2505, 0.51241, 0.45971, 0.56199, 0.6444, 0.52385, 0.85198, 0.46283, 0.15733, 0.43995, 0.3453, 0.53148, 0.54797, 0.54292, 0.74737, 0.5086, 0.26684, 0.42851, 0.3506, 0.44336, 0.46122, 0.45875, 0.16878, 0.36367, 0.94187, 0.40181 ], + "triangles": [ 32, 15, 28, 28, 15, 37, 27, 31, 17, 31, 35, 17, 27, 16, 32, 32, 16, 15, 37, 15, 14, 18, 35, 34, 34, 33, 19, 12, 14, 13, 12, 37, 14, 23, 22, 36, 33, 36, 20, 27, 17, 16, 17, 35, 18, 18, 34, 19, 19, 33, 20, 36, 21, 20, 36, 22, 21, 28, 37, 11, 30, 25, 34, 30, 34, 35, 34, 25, 33, 24, 23, 29, 25, 29, 33, 29, 36, 33, 29, 23, 36, 37, 12, 11, 5, 4, 26, 4, 3, 26, 6, 5, 31, 5, 26, 31, 26, 3, 30, 31, 27, 6, 7, 27, 32, 7, 6, 27, 3, 2, 30, 30, 1, 25, 30, 2, 1, 7, 32, 8, 29, 25, 1, 9, 8, 28, 28, 8, 32, 24, 29, 0, 0, 29, 1, 9, 28, 10, 10, 28, 11, 26, 35, 31, 26, 30, 35 ], + "vertices": [ 1, 4, 101.59, 148.9, 1, 1, 4, 88.51, 130.67, 1, 1, 4, 76.57, 106.99, 1, 1, 4, 68.76, 81.06, 1, 1, 4, 62.3, 46.43, 1, 1, 4, 59.93, 10.72, 1, 1, 4, 61.69, -14.34, 1, 1, 4, 66.71, -43.35, 1, 1, 4, 79.64, -71.38, 1, 1, 4, 85.86, -84.86, 1, 1, 4, 90.62, -88.96, 1, 2, 4, 111.53, -90.22, 0.68, 5, 12.11, -93.3, 0.32, 2, 4, 120.59, -87.62, 0.68, 5, 21.19, -90.81, 0.32, 1, 5, 49.45, -81.99, 1, 1, 5, 49.69, -55.15, 1, 1, 5, 47.25, -34.67, 1, 1, 5, 46.62, -12.6, 1, 1, 5, 46.07, 6.8, 1, 1, 5, 51.76, 33.52, 1, 1, 5, 56.94, 55.57, 1, 1, 5, 62.1, 76.47, 1, 1, 5, 65.02, 95.46, 1, 1, 5, 63.52, 120.79, 1, 2, 4, 133.66, 133.75, 0.68, 5, 36.73, 130.17, 0.32, 2, 4, 118.16, 147.77, 0.86, 5, 21.41, 144.43, 0.14, 2, 4, 113.61, 88.46, 0.68, 5, 16.19, 85.15, 0.32, 2, 4, 105.87, 38.97, 0.71, 5, 7.91, 35.81, 0.29, 2, 4, 107.27, -5.15, 0.68, 5, 8.8, -8.29, 0.32, 2, 4, 110.76, -54.86, 0.68, 5, 11.73, -57.98, 0.32, 2, 4, 122.22, 110.21, 0.68, 5, 25.04, 106.78, 0.32, 2, 4, 110.42, 66.02, 0.68, 5, 12.75, 62.78, 0.32, 2, 4, 106.59, 17.89, 0.68, 5, 8.39, 14.74, 0.32, 2, 4, 107.47, -29.73, 0.68, 5, 8.73, -32.84, 0.32, 2, 4, 121.95, 84.1, 0.68, 5, 24.47, 80.7, 0.32, 2, 4, 119.33, 64.26, 0.68, 5, 21.64, 60.92, 0.32, 2, 4, 116.31, 38.04, 0.68, 5, 18.32, 34.76, 0.32, 2, 4, 129.85, 107.06, 0.68, 5, 32.62, 103.55, 0.32, 2, 4, 115.79, -76.59, 0.68, 5, 16.52, -79.73, 0.32 ], + "hull": 25, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 18, 20, 20, 22, 26, 28, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 0, 48, 2, 58, 6, 60, 14, 64, 10, 12, 12, 14, 14, 16, 16, 18, 16, 56, 28, 30, 64, 30, 30, 32, 32, 34, 54, 32, 50, 66, 38, 68, 68, 60, 36, 70, 70, 52, 66, 40, 22, 24, 24, 26, 74, 24, 62, 34 ], + "width": 238, + "height": 102 + } + }, + "scarf-back": { + "scarf-back": { "name": "girl/scarf-back", "x": 46.88, "y": 3.26, "rotation": 177.98, "width": 143, "height": 102 } + } + } + }, + { + "name": "hair/pink", + "attachments": { + "ear": { + "ear": { + "name": "girl/ear", + "path": "girl-blue-cape/ear", + "x": 56.58, + "y": 85.63, + "rotation": -87.57, + "width": 38, + "height": 45 + } + }, + "eye-back-eyebrow": { + "eye-back-eyebrow": { + "name": "girl/back-eyebrow", + "path": "girl-blue-cape/back-eyebrow", + "x": 15.6, + "y": -9.48, + "rotation": -177.9, + "width": 36, + "height": 23 + } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { + "name": "girl/front-eyebrow", + "path": "girl-blue-cape/front-eyebrow", + "x": 10.82, + "y": 8.92, + "rotation": -3.58, + "width": 36, + "height": 23 + } + }, + "hair-back": { + "hair-back": { "name": "girl-blue-cape/hair-back", "x": 77.53, "y": 2.96, "rotation": -87.57, "width": 234, "height": 196 } + }, + "hair-bangs": { + "hair-bangs": { + "name": "girl/hair-bangs", + "type": "mesh", + "path": "girl-blue-cape/hair-bangs", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "girl/hair-bangs", + "type": "mesh", + "path": "girl-blue-cape/hair-bangs", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch2", + "type": "mesh", + "path": "girl/hair-patch", + "color": "ff6578ff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "path": "girl-blue-cape/hair-side", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-side-back": { + "hair-side-back": { + "name": "girl/hair-head-side-back", + "type": "mesh", + "path": "girl-blue-cape/hair-head-side-back", + "uvs": [ 0.17374, 0.1545, 0.22967, 0.37557, 0.21289, 0.61586, 0, 0.86256, 0, 1, 0.25205, 1, 0.45899, 0.87537, 0.69391, 0.87858, 0.80577, 0.69916, 0.82815, 0.52615, 1, 0.46528, 0.99594, 0.21858, 0.73306, 0.04236, 0.53171, 0, 0.27442, 0.04877, 0.51493, 0.5678, 0.59323, 0.17692, 0.73306, 0.35954, 0.46459, 0.76964 ], + "triangles": [ 17, 11, 10, 15, 1, 16, 16, 14, 13, 14, 16, 1, 1, 0, 14, 16, 12, 17, 17, 12, 11, 16, 13, 12, 15, 16, 17, 2, 1, 15, 5, 18, 6, 5, 4, 3, 6, 18, 7, 7, 18, 8, 5, 3, 2, 18, 5, 2, 18, 15, 8, 18, 2, 15, 8, 15, 9, 9, 17, 10, 15, 17, 9 ], + "vertices": [ 2, 47, 44.16, -9.72, 0.072, 6, 75.71, -87.13, 0.928, 2, 47, 65.84, -17.42, 0.21564, 6, 53.1, -91.39, 0.78436, 2, 47, 87.28, -29.83, 0.5439, 6, 28.33, -91.45, 0.4561, 3, 47, 103.9, -52.79, 0.8752, 6, 2.41, -79.98, 0.09988, 30, 134.21, -69.81, 0.02493, 3, 47, 116.42, -59.39, 0.89423, 6, -11.73, -80.58, 0.014, 30, 134.21, -83.97, 0.09177, 3, 47, 123.36, -46.24, 0.87011, 6, -11.1, -95.43, 0.00989, 30, 149.08, -83.97, 0.12, 3, 47, 117.69, -29.45, 0.77082, 6, 2.24, -107.09, 0.0941, 30, 161.29, -71.13, 0.13508, 3, 47, 124.45, -17.35, 0.86922, 6, 2.5, -120.95, 0.00701, 30, 175.15, -71.46, 0.12377, 3, 47, 111.18, -2.89, 0.73582, 6, 21.24, -126.76, 0.12392, 30, 181.75, -52.98, 0.14026, 3, 47, 96.03, 6.59, 0.55463, 6, 39.1, -127.33, 0.32878, 30, 183.07, -35.16, 0.11659, 3, 47, 95.21, 18.48, 0.54495, 6, 45.79, -137.19, 0.37264, 30, 193.21, -28.89, 0.08241, 2, 47, 72.62, 30.12, 0.39164, 6, 71.17, -135.87, 0.60836, 2, 47, 49.33, 24.86, 0.13442, 6, 88.65, -119.61, 0.86558, 2, 47, 39.93, 16.38, 0.03367, 6, 92.5, -107.55, 0.96633, 2, 47, 37.3, 0.61, 0.176, 6, 86.84, -92.6, 0.824, 3, 47, 91.21, -11.76, 0.52, 6, 34.03, -109.04, 0.39641, 30, 164.59, -39.45, 0.08358, 2, 47, 57.74, 11.1, 0.24029, 6, 74.45, -111.95, 0.75971, 3, 47, 78.23, 9.62, 0.39663, 6, 56.01, -120.99, 0.565, 30, 177.46, -18, 0.03837, 3, 47, 108.21, -24.08, 0.64328, 6, 13.13, -106.96, 0.22492, 30, 161.62, -60.24, 0.1318 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 59, + "height": 103 + } + }, + "hair-side-front": { + "hair-side-front": { + "name": "girl/hair-head-side-front", + "type": "mesh", + "path": "girl-blue-cape/hair-head-side-front", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 6, 5.69, 38.25, 1, 1, 6, 2.21, 120.17, 1, 1, 6, 85.14, 123.69, 1, 1, 6, 88.61, 41.77, 1 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 82, + "height": 83 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "path": "girl-blue-cape/hair-side", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-blue-cape/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "hair/short-red", + "attachments": { + "eye-back-eyebrow": { + "eye-back-eyebrow": { "name": "boy/eyebrow-back", "x": 13.08, "y": -0.6, "rotation": -177.9, "width": 40, "height": 22 } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { "name": "boy/eyebrow-front", "x": 21.26, "y": 0.14, "rotation": -3.58, "width": 49, "height": 22 } + }, + "hair-back": { + "hair-back": { + "name": "boy/hair-back", + "type": "mesh", + "uvs": [ 0.72377, 0.13142, 0.82972, 0.05228, 0.85484, 0.14394, 0.9241, 0.10728, 0.99848, 0.11545, 0.99884, 0.27436, 0.99943, 0.531, 1, 0.78235, 0.83167, 0.64513, 0.71204, 1, 0, 1, 0, 0, 0.59007, 0, 0.71673, 0.30031, 0.80118, 0.34254, 0.91866, 0.31098, 0.91187, 0.51672 ], + "triangles": [ 0, 1, 2, 13, 12, 0, 13, 0, 2, 5, 15, 2, 3, 5, 2, 5, 3, 4, 14, 13, 2, 15, 14, 2, 16, 14, 15, 15, 5, 6, 16, 15, 6, 8, 14, 16, 8, 16, 6, 7, 8, 6, 13, 10, 11, 13, 11, 12, 8, 9, 10, 13, 8, 10, 8, 13, 14 ], + "vertices": [ 2, 6, 156.98, -52.6, 0.91, 30, 105.42, 83.77, 0.09, 3, 6, 170.88, -77.77, 0.586, 30, 131.16, 96.59, 0.23935, 49, 58.44, 47.85, 0.17464, 3, 6, 156.31, -84.5, 0.61272, 30, 137.27, 81.74, 0.25026, 49, 69.48, 36.2, 0.13702, 3, 6, 162.95, -101.07, 0.57311, 30, 154.1, 87.68, 0.23409, 49, 83.04, 47.8, 0.1928, 3, 6, 162.4, -119.18, 0.5041, 30, 172.17, 86.36, 0.2059, 49, 100.38, 53.08, 0.29, 3, 6, 136.68, -120.36, 0.5041, 30, 172.26, 60.62, 0.2059, 49, 109.74, 29.09, 0.29, 3, 6, 95.15, -122.26, 0.5041, 30, 172.4, 19.04, 0.2059, 49, 124.85, -9.64, 0.29, 3, 6, 54.47, -124.13, 0.5041, 30, 172.54, -21.68, 0.2059, 49, 139.65, -47.58, 0.29, 2, 6, 74.95, -82.32, 0.91, 30, 131.64, 0.55, 0.09, 2, 6, 16.28, -55.71, 0.91, 30, 102.57, -56.94, 0.09, 2, 6, 8.94, 117.16, 0.91, 30, -70.46, -56.94, 0.09, 2, 6, 170.8, 124.02, 0.91, 30, -70.46, 105.06, 0.09, 2, 6, 176.88, -19.23, 0.91, 30, 72.93, 105.06, 0.09, 2, 6, 129.57, -52.05, 0.91, 30, 103.71, 56.41, 0.09, 2, 6, 123.61, -72.84, 0.71, 30, 124.23, 49.57, 0.29, 3, 6, 129.93, -101.15, 0.58764, 30, 152.78, 54.68, 0.24002, 49, 93.7, 16.54, 0.17234, 3, 6, 96.56, -100.91, 0.61135, 30, 151.13, 21.35, 0.24971, 49, 104.17, -15.15, 0.13894 ], + "hull": 13, + "edges": [ 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24, 0, 2, 8, 10, 30, 10, 10, 12, 12, 14, 32, 12, 8, 6, 6, 4, 4, 2 ], + "width": 243, + "height": 162 + } + }, + "hair-bangs": { + "hair-bangs": { + "name": "boy/hair-bangs", + "type": "mesh", + "uvs": [ 0.21816, 0.2794, 0.12151, 0.44214, 0.03901, 0.65009, 0, 0.84447, 0, 1, 0.11916, 0.99365, 0.21344, 0.83543, 0.29594, 0.65009, 0.36194, 0.39242, 0.4303, 0.5416, 0.53166, 0.65913, 0.67308, 0.74954, 0.7603, 0.61393, 0.69901, 0.51447, 0.81923, 0.55516, 0.93473, 0.51447, 1, 0.41954, 1, 0.27036, 0.9253, 0.16187, 0.8098, 0.06694, 0.68016, 0.00817, 0.38787, 0.00365, 0.57307, 0.38232 ], + "triangles": [ 4, 3, 5, 5, 3, 6, 3, 2, 6, 6, 2, 7, 11, 10, 12, 10, 13, 12, 10, 9, 13, 2, 1, 7, 7, 1, 8, 14, 13, 15, 9, 22, 13, 9, 8, 22, 15, 13, 16, 16, 13, 17, 1, 0, 8, 18, 17, 13, 13, 22, 18, 22, 8, 21, 8, 0, 21, 22, 19, 18, 22, 20, 19, 22, 21, 20 ], + "vertices": [ 3, 6, 125.65, 24.16, 0.819, 29, -61.51, 56.32, 0.09, 48, 23.45, -7.43, 0.091, 3, 6, 113.21, 37.17, 0.64201, 29, -75.04, 44.44, 0.09, 48, 40.92, -11.79, 0.26799, 3, 6, 97.55, 48.07, 0.54508, 29, -86.59, 29.26, 0.06169, 48, 59.97, -12.64, 0.39323, 3, 6, 83.15, 52.92, 0.4171, 29, -92.05, 15.07, 0.07361, 48, 74.75, -9.05, 0.5093, 3, 6, 71.8, 52.44, 0.37688, 29, -92.05, 3.72, 0.06651, 48, 84.08, -2.59, 0.55661, 3, 6, 72.97, 35.8, 0.39111, 29, -75.37, 4.18, 0.06902, 48, 74.2, 10.86, 0.53987, 3, 6, 85.07, 23.1, 0.53235, 29, -62.17, 15.73, 0.09394, 48, 57.19, 15.14, 0.37371, 3, 6, 99.08, 12.13, 0.64178, 29, -50.62, 29.26, 0.12, 48, 39.49, 16.93, 0.23822, 2, 6, 118.26, 3.7, 0.86, 29, -41.38, 48.07, 0.14, 3, 6, 107.79, -6.33, 0.89872, 29, -31.81, 37.18, 0.05965, 49, 10.97, -34.81, 0.04163, 3, 6, 99.82, -20.87, 0.76196, 29, -17.62, 28.6, 0.10658, 49, 27.3, -37.7, 0.13146, 3, 6, 94.06, -40.93, 0.59399, 29, 2.18, 22, 0.10482, 49, 48.15, -36.72, 0.30119, 3, 6, 104.47, -52.71, 0.60482, 29, 14.39, 31.9, 0.10673, 49, 55.97, -23.09, 0.28845, 3, 6, 111.36, -43.83, 0.69544, 29, 5.81, 39.16, 0.08561, 49, 45.35, -19.41, 0.21895, 3, 6, 109.11, -60.77, 0.59573, 29, 22.64, 36.19, 0.09904, 49, 62.12, -16.12, 0.30524, 3, 6, 112.76, -76.8, 0.52077, 29, 38.81, 39.16, 0.0919, 49, 76.14, -7.52, 0.38732, 3, 6, 120.07, -85.63, 0.5084, 29, 47.95, 46.09, 0.08972, 49, 82.16, 2.24, 0.40188, 3, 6, 130.95, -85.17, 0.57569, 29, 47.95, 56.98, 0.08663, 49, 78.24, 12.4, 0.33769, 3, 6, 138.42, -74.39, 0.71063, 29, 37.49, 64.9, 0.04692, 49, 65.63, 16.02, 0.24246, 2, 6, 144.66, -57.94, 0.86805, 49, 48.05, 16.66, 0.13195, 2, 6, 148.18, -39.62, 0.96256, 49, 29.57, 14.12, 0.03744, 2, 6, 146.77, 1.27, 0.86, 29, -37.75, 76.45, 0.14, 3, 6, 120.25, -25.8, 0.89676, 29, -11.82, 48.81, 0.02582, 49, 25.43, -16.76, 0.07742 ], + "hull": 22, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 42 ], + "width": 140, + "height": 73 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "boy/hair-bangs", + "type": "mesh", + "uvs": [ 0.21816, 0.2794, 0.12151, 0.44214, 0.03901, 0.65009, 0, 0.84447, 0, 1, 0.11916, 0.99365, 0.21344, 0.83543, 0.29594, 0.65009, 0.36194, 0.39242, 0.4303, 0.5416, 0.53166, 0.65913, 0.67308, 0.74954, 0.7603, 0.61393, 0.69901, 0.51447, 0.81923, 0.55516, 0.93473, 0.51447, 1, 0.41954, 1, 0.27036, 0.9253, 0.16187, 0.8098, 0.06694, 0.68016, 0.00817, 0.38787, 0.00365, 0.57307, 0.38232 ], + "triangles": [ 4, 3, 5, 5, 3, 6, 3, 2, 6, 6, 2, 7, 11, 10, 12, 10, 13, 12, 10, 9, 13, 2, 1, 7, 7, 1, 8, 14, 13, 15, 9, 22, 13, 9, 8, 22, 15, 13, 16, 16, 13, 17, 1, 0, 8, 18, 17, 13, 13, 22, 18, 22, 8, 21, 8, 0, 21, 22, 19, 18, 22, 20, 19, 22, 21, 20 ], + "vertices": [ 3, 6, 125.65, 24.16, 0.819, 29, -61.51, 56.32, 0.09, 48, 23.45, -7.43, 0.091, 3, 6, 113.21, 37.17, 0.64201, 29, -75.04, 44.44, 0.09, 48, 40.92, -11.79, 0.26799, 3, 6, 97.55, 48.07, 0.54508, 29, -86.59, 29.26, 0.06169, 48, 59.97, -12.64, 0.39323, 3, 6, 83.15, 52.92, 0.4171, 29, -92.05, 15.07, 0.07361, 48, 74.75, -9.05, 0.5093, 3, 6, 71.8, 52.44, 0.37688, 29, -92.05, 3.72, 0.06651, 48, 84.08, -2.59, 0.55661, 3, 6, 72.97, 35.8, 0.39111, 29, -75.37, 4.18, 0.06902, 48, 74.2, 10.86, 0.53987, 3, 6, 85.07, 23.1, 0.53235, 29, -62.17, 15.73, 0.09394, 48, 57.19, 15.14, 0.37371, 3, 6, 99.08, 12.13, 0.64178, 29, -50.62, 29.26, 0.12, 48, 39.49, 16.93, 0.23822, 2, 6, 118.26, 3.7, 0.86, 29, -41.38, 48.07, 0.14, 3, 6, 107.79, -6.33, 0.89872, 29, -31.81, 37.18, 0.05965, 49, 10.97, -34.81, 0.04163, 3, 6, 99.82, -20.87, 0.76196, 29, -17.62, 28.6, 0.10658, 49, 27.3, -37.7, 0.13146, 3, 6, 94.06, -40.93, 0.59399, 29, 2.18, 22, 0.10482, 49, 48.15, -36.72, 0.30119, 3, 6, 104.47, -52.71, 0.60482, 29, 14.39, 31.9, 0.10673, 49, 55.97, -23.09, 0.28845, 3, 6, 111.36, -43.83, 0.69544, 29, 5.81, 39.16, 0.08561, 49, 45.35, -19.41, 0.21895, 3, 6, 109.11, -60.77, 0.59573, 29, 22.64, 36.19, 0.09904, 49, 62.12, -16.12, 0.30524, 3, 6, 112.76, -76.8, 0.52077, 29, 38.81, 39.16, 0.0919, 49, 76.14, -7.52, 0.38732, 3, 6, 120.07, -85.63, 0.5084, 29, 47.95, 46.09, 0.08972, 49, 82.16, 2.24, 0.40188, 3, 6, 130.95, -85.17, 0.57569, 29, 47.95, 56.98, 0.08663, 49, 78.24, 12.4, 0.33769, 3, 6, 138.42, -74.39, 0.71063, 29, 37.49, 64.9, 0.04692, 49, 65.63, 16.02, 0.24246, 2, 6, 144.66, -57.94, 0.86805, 49, 48.05, 16.66, 0.13195, 2, 6, 148.18, -39.62, 0.96256, 49, 29.57, 14.12, 0.03744, 2, 6, 146.77, 1.27, 0.86, 29, -37.75, 76.45, 0.14, 3, 6, 120.25, -25.8, 0.89676, 29, -11.82, 48.81, 0.02582, 49, 25.43, -16.76, 0.07742 ], + "hull": 22, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 42 ], + "width": 140, + "height": 73 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch", + "type": "mesh", + "color": "ff4b45ff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "boy/hair-side", + "type": "mesh", + "uvs": [ 0.76395, 0.00237, 0.91575, 0.43213, 1, 0.68539, 0.95348, 0.8591, 0.91575, 1, 0.36135, 1, 0.33144, 0.88524, 0.29536, 0.74678, 0, 0.73911, 0, 0.49737, 0.59236, 0, 0.42735, 0.46668 ], + "triangles": [ 3, 4, 6, 4, 5, 6, 6, 7, 3, 2, 11, 1, 1, 11, 10, 11, 7, 9, 3, 7, 2, 1, 10, 0, 11, 9, 10, 7, 8, 9, 2, 7, 11 ], + "vertices": [ 1, 6, 119.95, 47.18, 1, 2, 6, 83.34, 38.03, 0.81, 29, -77.16, 14.64, 0.19, 3, 6, 61.76, 32.9, 0.61654, 46, 39.22, 17.05, 0.21346, 29, -72.95, -7.14, 0.17, 3, 6, 46.73, 34.59, 0.41184, 46, 53.6, 12.39, 0.41816, 29, -75.27, -22.08, 0.17, 3, 6, 34.55, 35.96, 0.24581, 46, 65.26, 8.61, 0.58419, 29, -77.16, -34.2, 0.17, 3, 6, 33.37, 63.65, 0.2605, 46, 60.87, -18.76, 0.6395, 29, -104.88, -34.2, 0.1, 3, 6, 43.17, 65.57, 0.35187, 46, 50.89, -18.68, 0.54813, 29, -106.38, -24.33, 0.1, 3, 6, 54.99, 67.87, 0.46211, 46, 38.85, -18.57, 0.43789, 29, -108.18, -12.42, 0.1, 2, 6, 55.02, 82.66, 0.55402, 46, 35.86, -33.05, 0.44598, 1, 6, 75.79, 83.54, 1, 1, 6, 119.79, 55.76, 1, 3, 6, 79.34, 62.3, 0.7717, 46, 16.11, -8.24, 0.0883, 29, -101.58, 11.67, 0.14 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 8, 10, 14, 16, 16, 18, 18, 20, 0, 20, 4, 6, 6, 8, 10, 12, 12, 14, 4, 14 ], + "width": 50, + "height": 86 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "boy/hair-side", + "type": "mesh", + "uvs": [ 0.76395, 0.00237, 0.91575, 0.43213, 1, 0.68539, 0.95348, 0.8591, 0.91575, 1, 0.36135, 1, 0.33144, 0.88524, 0.29536, 0.74678, 0, 0.73911, 0, 0.49737, 0.59236, 0, 0.42735, 0.46668 ], + "triangles": [ 3, 4, 6, 4, 5, 6, 6, 7, 3, 3, 7, 2, 2, 11, 1, 2, 7, 11, 11, 7, 9, 1, 10, 0, 1, 11, 10, 7, 8, 9, 11, 9, 10 ], + "vertices": [ 1, 6, 119.95, 47.18, 1, 2, 6, 83.34, 38.03, 0.86, 29, -77.16, 14.64, 0.14, 3, 6, 61.76, 32.9, 0.61654, 46, 39.22, 17.05, 0.21346, 29, -72.95, -7.14, 0.17, 3, 6, 46.73, 34.59, 0.41184, 46, 53.6, 12.39, 0.41816, 29, -75.27, -22.08, 0.17, 3, 6, 34.55, 35.96, 0.24581, 46, 65.26, 8.61, 0.58419, 29, -77.16, -34.2, 0.17, 3, 6, 33.37, 63.65, 0.2605, 46, 60.87, -18.76, 0.6395, 29, -104.88, -34.2, 0.1, 3, 6, 43.17, 65.57, 0.35187, 46, 50.89, -18.68, 0.54813, 29, -106.38, -24.33, 0.1, 3, 6, 54.99, 67.87, 0.46211, 46, 38.85, -18.57, 0.43789, 29, -108.18, -12.42, 0.1, 2, 6, 55.02, 82.66, 0.55402, 46, 35.86, -33.05, 0.44598, 2, 6, 75.79, 83.54, 0.96, 29, -122.95, 9.03, 0.04, 1, 6, 119.79, 55.76, 1, 2, 6, 79.34, 62.3, 0.76, 29, -101.58, 11.67, 0.24 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 8, 10, 14, 16, 16, 18, 18, 20, 0, 20, 4, 6, 6, 8, 10, 12, 12, 14, 4, 14 ], + "width": 50, + "height": 86 + } + }, + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "legs/boots-pink", + "attachments": { + "leg-back": { + "leg-back": { + "name": "girl/leg-front", + "type": "mesh", + "path": "girl-blue-cape/leg-front", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 0, 48, 42, 42, 48, 31, 42, 31, 33, 34, 0, 42, 34, 42, 33, 31, 32, 33, 31, 48, 30, 41, 12, 13, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48 ], + "vertices": [ 3, 94, 22.95, -22.02, 0.22728, 95, 59.29, -22, 0.00272, 103, -19.33, 11.79, 0.77, 3, 94, 5.73, -22.61, 0.49142, 95, 41.79, -22.61, 0.23858, 103, -19.74, 29.07, 0.27, 4, 94, -10.55, -23.17, 0.11127, 95, 25.25, -23.18, 0.76279, 96, 60.87, -23.13, 0.00594, 103, -20.15, 45.45, 0.12, 2, 95, 5.13, -23.87, 0.69465, 96, 41.05, -23.86, 0.30535, 3, 95, -15.89, -24.56, 0.09408, 96, 20.35, -24.59, 0.86299, 97, 56.72, -24.52, 0.04292, 2, 96, 1.98, -25.21, 0.55425, 97, 38.06, -25.21, 0.44575, 3, 96, -19.09, -25.88, 0.05256, 97, 16.64, -25.95, 0.87891, 98, 52.7, -25.89, 0.06853, 3, 96, -33.74, -26.34, 3.3E-4, 97, 1.76, -26.46, 0.67227, 98, 37.81, -26.45, 0.32739, 2, 97, -3.17, -22.02, 0.47188, 98, 32.86, -22.03, 0.52812, 3, 97, -22.68, -22.46, 0.0172, 98, 13.36, -22.55, 0.87617, 99, 49.14, -22.52, 0.10662, 3, 98, -7.93, -23.09, 0.23789, 99, 28.2, -23.11, 0.75909, 100, 64.58, -23.1, 0.00302, 3, 98, -27.79, -23.57, 0.00312, 99, 8.67, -23.62, 0.75495, 100, 44.76, -23.62, 0.24193, 3, 99, -12.93, -24.2, 0.09944, 100, 22.84, -24.2, 0.87238, 101, 58.46, -24.21, 0.02818, 2, 100, 0.77, -24.79, 0.47358, 101, 36.71, -24.79, 0.52642, 1, 101, 1.72, -25.72, 1, 1, 101, -25.98, -26.46, 1, 1, 101, -26.33, 25.98, 1, 1, 101, -0.53, 25.24, 1, 2, 100, -3.13, 24.27, 0.37555, 101, 32.87, 24.27, 0.62445, 3, 99, -15.75, 23.6, 0.0536, 100, 19.96, 23.6, 0.92085, 101, 55.62, 23.59, 0.02556, 2, 99, 5.77, 22.96, 0.65378, 100, 41.79, 22.97, 0.34622, 3, 98, -11.12, 22.43, 0.12254, 99, 24.96, 22.4, 0.86248, 100, 61.27, 22.42, 0.01499, 3, 97, -26.03, 21.9, 0.00839, 98, 9.83, 21.8, 0.78745, 99, 45.58, 21.82, 0.20415, 3, 97, -7.13, 21.27, 0.362, 98, 28.73, 21.24, 0.63637, 99, 64.17, 21.3, 0.00163, 2, 97, -6.17, 28.11, 0.5025, 98, 29.67, 28.08, 0.4975, 3, 96, -21.38, 27.22, 0.03848, 97, 14.13, 27.14, 0.83871, 98, 49.97, 27.2, 0.12281, 3, 96, -2.33, 26.26, 0.40865, 97, 33.49, 26.25, 0.59016, 98, 69.34, 26.38, 0.00119, 3, 95, -20.14, 25.43, 0.05003, 96, 16.06, 25.39, 0.84798, 97, 52.19, 25.45, 0.10198, 2, 95, 1.24, 24.42, 0.56331, 96, 37.12, 24.42, 0.43669, 4, 94, -15.67, 23.56, 0.04308, 95, 20, 23.55, 0.81142, 96, 55.61, 23.58, 0.0255, 103, 26.63, 50.22, 0.12, 3, 94, 0.26, 22.8, 0.33337, 95, 36.2, 22.8, 0.39663, 103, 25.72, 34.13, 0.27, 3, 94, 18.48, 21.95, 0.22212, 95, 54.71, 21.97, 0.00788, 103, 24.69, 15.83, 0.77, 1, 103, 36.21, 8.95, 1, 1, 103, 36.08, -3.91, 1, 1, 103, -18.97, -3.34, 1, 1, 101, 0.45, 0, 1, 1, 98, 31.4, 0, 1, 1, 98, 11.41, 0, 1, 1, 99, 26.57, 0, 1, 1, 99, 7.43, 0, 1, 1, 100, 20.94, 0, 1, 1, 101, 34.45, 0, 1, 2, 94, 23.32, 0.24, 0.23, 103, 2.93, 11.2, 0.77, 1, 97, 15.67, 0.04, 1, 2, 96, -0.81, 0.07, 0.36735, 97, 35.13, 0.07, 0.63265, 1, 96, 18, 0.1, 1, 2, 95, 2.51, 0.14, 0.90776, 96, 38.42, 0.14, 0.09224, 2, 95, 22.3, 0.17, 0.88, 103, 3.23, 48.15, 0.12, 3, 94, 2.19, 0.2, 0.62933, 95, 38.18, 0.2, 0.10067, 103, 3.11, 32.41, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "leg-front": { + "leg-front": { + "name": "girl/leg-front", + "type": "mesh", + "path": "girl-blue-cape/leg-front", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 31, 48, 30, 0, 48, 42, 42, 48, 31, 34, 42, 33, 31, 32, 33, 42, 31, 33, 34, 0, 42, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 41, 12, 13, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15 ], + "vertices": [ 3, 28, 22.96, -22.02, 0.22658, 27, 58.91, -22.02, 0.00342, 102, -21, 12.47, 0.77, 3, 28, 5.76, -22.61, 0.49273, 27, 41.71, -22.61, 0.23727, 102, -21.71, 29.73, 0.27, 4, 28, -10.68, -23.18, 0.11707, 27, 25.27, -23.18, 0.76681, 26, 61.22, -23.18, 0.00612, 102, -22.41, 46.07, 0.11, 2, 27, 5.13, -23.87, 0.6994, 26, 41.08, -23.87, 0.3006, 3, 27, -15.62, -24.58, 0.10595, 26, 20.33, -24.58, 0.85365, 25, 56.28, -24.58, 0.0404, 3, 27, -33.92, -25.21, 7.9E-4, 26, 2.03, -25.21, 0.57156, 25, 37.98, -25.21, 0.42765, 3, 26, -19.29, -25.94, 0.05654, 25, 16.66, -25.94, 0.87764, 24, 52.61, -25.94, 0.06582, 3, 26, -34.16, -26.46, 4.4E-4, 25, 1.79, -26.46, 0.67282, 24, 37.74, -26.46, 0.32674, 2, 25, -3.13, -22.03, 0.47104, 24, 32.82, -22.03, 0.52896, 3, 25, -22.61, -22.55, 0.01665, 24, 13.34, -22.55, 0.87142, 23, 49.29, -22.55, 0.11193, 3, 24, -7.79, -23.11, 0.22064, 23, 28.17, -23.11, 0.77569, 22, 64.12, -23.11, 0.00367, 3, 24, -27.25, -23.62, 0.00219, 23, 8.7, -23.62, 0.77556, 22, 44.65, -23.62, 0.22225, 3, 21, 58.81, -24.2, 0.0114, 23, -13.09, -24.2, 0.12046, 22, 22.86, -24.2, 0.86813, 2, 21, 36.72, -24.79, 0.42237, 22, 0.77, -24.79, 0.57763, 2, 21, 1.72, -25.72, 0.99849, 22, -34.23, -25.72, 0.00151, 1, 21, -25.98, -26.46, 1, 1, 21, -26.33, 25.98, 1, 2, 21, -0.53, 25.24, 0.99997, 22, -36.48, 25.24, 3.0E-5, 2, 21, 32.85, 24.27, 0.56274, 22, -3.1, 24.27, 0.43726, 3, 21, 55.91, 23.6, 0.02334, 23, -15.99, 23.6, 0.05774, 22, 19.96, 23.6, 0.91892, 3, 24, -30.16, 22.96, 3.0E-4, 23, 5.79, 22.96, 0.6752, 22, 41.74, 22.96, 0.3245, 3, 24, -11, 22.41, 0.14886, 23, 24.95, 22.41, 0.84172, 22, 60.9, 22.41, 0.00941, 3, 25, -26.16, 21.8, 0.00663, 24, 9.79, 21.8, 0.80794, 23, 45.74, 21.8, 0.18543, 3, 25, -7.19, 21.25, 0.35697, 24, 28.76, 21.25, 0.64235, 23, 64.72, 21.25, 6.7E-4, 2, 25, -6.22, 28.1, 0.49898, 24, 29.73, 28.1, 0.50102, 3, 26, -21.82, 27.15, 0.04097, 25, 14.13, 27.15, 0.83939, 24, 50.08, 27.15, 0.11963, 3, 26, -2.4, 26.25, 0.4338, 25, 33.55, 26.25, 0.56533, 24, 69.5, 26.25, 8.7E-4, 3, 27, -19.88, 25.4, 0.04332, 26, 16.07, 25.4, 0.87101, 25, 52.02, 25.4, 0.08567, 2, 27, 1.21, 24.42, 0.5677, 26, 37.16, 24.42, 0.4323, 4, 28, -15.94, 23.55, 0.03449, 27, 20.01, 23.55, 0.83346, 26, 55.96, 23.55, 0.02204, 102, 24.27, 51.7, 0.11, 3, 28, 0.25, 22.8, 0.31657, 27, 36.2, 22.8, 0.41343, 102, 23.66, 35.6, 0.27, 3, 28, 18.49, 21.95, 0.22027, 27, 54.44, 21.95, 0.00973, 102, 22.94, 17.27, 0.77, 1, 102, 34.58, 10.59, 1, 1, 102, 34.67, -2.26, 1, 1, 102, -20.38, -2.65, 1, 1, 21, 0.45, 0, 1, 1, 24, 31.4, 0, 1, 1, 24, 11.41, 0, 1, 1, 23, 26.57, 0, 1, 1, 23, 7.43, 0, 1, 1, 22, 20.94, 0, 1, 1, 21, 34.45, 0, 1, 2, 28, 23.32, 0.24, 0.23, 102, 1.26, 12.26, 0.77, 1, 25, 15.67, 0.04, 1, 2, 26, -0.81, 0.07, 0.37007, 25, 35.14, 0.07, 0.62993, 1, 26, 18, 0.1, 1, 2, 27, 2.5, 0.14, 0.92465, 26, 38.45, 0.14, 0.07535, 2, 27, 22.3, 0.17, 0.89, 102, 0.91, 49.21, 0.11, 3, 28, 2.2, 0.2, 0.65329, 27, 38.15, 0.2, 0.07671, 102, 1.08, 33.46, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-blue-cape/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "legs/boots-red", + "attachments": { + "leg-back": { + "leg-back": { + "name": "girl/leg-front", + "type": "mesh", + "path": "girl-spring-dress/leg-front", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 0, 48, 42, 42, 48, 31, 42, 31, 33, 34, 0, 42, 34, 42, 33, 31, 32, 33, 31, 48, 30, 41, 12, 13, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48 ], + "vertices": [ 3, 94, 22.95, -22.02, 0.22728, 95, 59.29, -22, 0.00272, 103, -19.33, 11.79, 0.77, 3, 94, 5.73, -22.61, 0.49142, 95, 41.79, -22.61, 0.23858, 103, -19.74, 29.07, 0.27, 4, 94, -10.55, -23.17, 0.11127, 95, 25.25, -23.18, 0.76279, 96, 60.87, -23.13, 0.00594, 103, -20.15, 45.45, 0.12, 2, 95, 5.13, -23.87, 0.69465, 96, 41.05, -23.86, 0.30535, 3, 95, -15.89, -24.56, 0.09408, 96, 20.35, -24.59, 0.86299, 97, 56.72, -24.52, 0.04292, 2, 96, 1.98, -25.21, 0.55425, 97, 38.06, -25.21, 0.44575, 3, 96, -19.09, -25.88, 0.05256, 97, 16.64, -25.95, 0.87891, 98, 52.7, -25.89, 0.06853, 3, 96, -33.74, -26.34, 3.3E-4, 97, 1.76, -26.46, 0.67227, 98, 37.81, -26.45, 0.32739, 2, 97, -3.17, -22.02, 0.47188, 98, 32.86, -22.03, 0.52812, 3, 97, -22.68, -22.46, 0.0172, 98, 13.36, -22.55, 0.87617, 99, 49.14, -22.52, 0.10662, 3, 98, -7.93, -23.09, 0.23789, 99, 28.2, -23.11, 0.75909, 100, 64.58, -23.1, 0.00302, 3, 98, -27.79, -23.57, 0.00312, 99, 8.67, -23.62, 0.75495, 100, 44.76, -23.62, 0.24193, 3, 99, -12.93, -24.2, 0.09944, 100, 22.84, -24.2, 0.87238, 101, 58.46, -24.21, 0.02818, 2, 100, 0.77, -24.79, 0.47358, 101, 36.71, -24.79, 0.52642, 1, 101, 1.72, -25.72, 1, 1, 101, -25.98, -26.46, 1, 1, 101, -26.33, 25.98, 1, 1, 101, -0.53, 25.24, 1, 2, 100, -3.13, 24.27, 0.37555, 101, 32.87, 24.27, 0.62445, 3, 99, -15.75, 23.6, 0.0536, 100, 19.96, 23.6, 0.92085, 101, 55.62, 23.59, 0.02556, 2, 99, 5.77, 22.96, 0.65378, 100, 41.79, 22.97, 0.34622, 3, 98, -11.12, 22.43, 0.12254, 99, 24.96, 22.4, 0.86248, 100, 61.27, 22.42, 0.01499, 3, 97, -26.03, 21.9, 0.00839, 98, 9.83, 21.8, 0.78745, 99, 45.58, 21.82, 0.20415, 3, 97, -7.13, 21.27, 0.362, 98, 28.73, 21.24, 0.63637, 99, 64.17, 21.3, 0.00163, 2, 97, -6.17, 28.11, 0.5025, 98, 29.67, 28.08, 0.4975, 3, 96, -21.38, 27.22, 0.03848, 97, 14.13, 27.14, 0.83871, 98, 49.97, 27.2, 0.12281, 3, 96, -2.33, 26.26, 0.40865, 97, 33.49, 26.25, 0.59016, 98, 69.34, 26.38, 0.00119, 3, 95, -20.14, 25.43, 0.05003, 96, 16.06, 25.39, 0.84798, 97, 52.19, 25.45, 0.10198, 2, 95, 1.24, 24.42, 0.56331, 96, 37.12, 24.42, 0.43669, 4, 94, -15.67, 23.56, 0.04308, 95, 20, 23.55, 0.81142, 96, 55.61, 23.58, 0.0255, 103, 26.63, 50.22, 0.12, 3, 94, 0.26, 22.8, 0.33337, 95, 36.2, 22.8, 0.39663, 103, 25.72, 34.13, 0.27, 3, 94, 18.48, 21.95, 0.22212, 95, 54.71, 21.97, 0.00788, 103, 24.69, 15.83, 0.77, 1, 103, 36.21, 8.95, 1, 1, 103, 36.08, -3.91, 1, 1, 103, -18.97, -3.34, 1, 1, 101, 0.45, 0, 1, 1, 98, 31.4, 0, 1, 1, 98, 11.41, 0, 1, 1, 99, 26.57, 0, 1, 1, 99, 7.43, 0, 1, 1, 100, 20.94, 0, 1, 1, 101, 34.45, 0, 1, 2, 94, 23.32, 0.24, 0.23, 103, 2.93, 11.2, 0.77, 1, 97, 15.67, 0.04, 1, 2, 96, -0.81, 0.07, 0.36735, 97, 35.13, 0.07, 0.63265, 1, 96, 18, 0.1, 1, 2, 95, 2.51, 0.14, 0.90776, 96, 38.42, 0.14, 0.09224, 2, 95, 22.3, 0.17, 0.88, 103, 3.23, 48.15, 0.12, 3, 94, 2.19, 0.2, 0.62933, 95, 38.18, 0.2, 0.10067, 103, 3.11, 32.41, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "leg-front": { + "leg-front": { + "name": "girl/leg-front", + "type": "mesh", + "path": "girl-spring-dress/leg-front", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 31, 48, 30, 0, 48, 42, 42, 48, 31, 34, 42, 33, 31, 32, 33, 42, 31, 33, 34, 0, 42, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 41, 12, 13, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15 ], + "vertices": [ 3, 28, 22.96, -22.02, 0.22658, 27, 58.91, -22.02, 0.00342, 102, -21, 12.47, 0.77, 3, 28, 5.76, -22.61, 0.49273, 27, 41.71, -22.61, 0.23727, 102, -21.71, 29.73, 0.27, 4, 28, -10.68, -23.18, 0.11707, 27, 25.27, -23.18, 0.76681, 26, 61.22, -23.18, 0.00612, 102, -22.41, 46.07, 0.11, 2, 27, 5.13, -23.87, 0.6994, 26, 41.08, -23.87, 0.3006, 3, 27, -15.62, -24.58, 0.10595, 26, 20.33, -24.58, 0.85365, 25, 56.28, -24.58, 0.0404, 3, 27, -33.92, -25.21, 7.9E-4, 26, 2.03, -25.21, 0.57156, 25, 37.98, -25.21, 0.42765, 3, 26, -19.29, -25.94, 0.05654, 25, 16.66, -25.94, 0.87764, 24, 52.61, -25.94, 0.06582, 3, 26, -34.16, -26.46, 4.4E-4, 25, 1.79, -26.46, 0.67282, 24, 37.74, -26.46, 0.32674, 2, 25, -3.13, -22.03, 0.47104, 24, 32.82, -22.03, 0.52896, 3, 25, -22.61, -22.55, 0.01665, 24, 13.34, -22.55, 0.87142, 23, 49.29, -22.55, 0.11193, 3, 24, -7.79, -23.11, 0.22064, 23, 28.17, -23.11, 0.77569, 22, 64.12, -23.11, 0.00367, 3, 24, -27.25, -23.62, 0.00219, 23, 8.7, -23.62, 0.77556, 22, 44.65, -23.62, 0.22225, 3, 21, 58.81, -24.2, 0.0114, 23, -13.09, -24.2, 0.12046, 22, 22.86, -24.2, 0.86813, 2, 21, 36.72, -24.79, 0.42237, 22, 0.77, -24.79, 0.57763, 2, 21, 1.72, -25.72, 0.99849, 22, -34.23, -25.72, 0.00151, 1, 21, -25.98, -26.46, 1, 1, 21, -26.33, 25.98, 1, 2, 21, -0.53, 25.24, 0.99997, 22, -36.48, 25.24, 3.0E-5, 2, 21, 32.85, 24.27, 0.56274, 22, -3.1, 24.27, 0.43726, 3, 21, 55.91, 23.6, 0.02334, 23, -15.99, 23.6, 0.05774, 22, 19.96, 23.6, 0.91892, 3, 24, -30.16, 22.96, 3.0E-4, 23, 5.79, 22.96, 0.6752, 22, 41.74, 22.96, 0.3245, 3, 24, -11, 22.41, 0.14886, 23, 24.95, 22.41, 0.84172, 22, 60.9, 22.41, 0.00941, 3, 25, -26.16, 21.8, 0.00663, 24, 9.79, 21.8, 0.80794, 23, 45.74, 21.8, 0.18543, 3, 25, -7.19, 21.25, 0.35697, 24, 28.76, 21.25, 0.64235, 23, 64.72, 21.25, 6.7E-4, 2, 25, -6.22, 28.1, 0.49898, 24, 29.73, 28.1, 0.50102, 3, 26, -21.82, 27.15, 0.04097, 25, 14.13, 27.15, 0.83939, 24, 50.08, 27.15, 0.11963, 3, 26, -2.4, 26.25, 0.4338, 25, 33.55, 26.25, 0.56533, 24, 69.5, 26.25, 8.7E-4, 3, 27, -19.88, 25.4, 0.04332, 26, 16.07, 25.4, 0.87101, 25, 52.02, 25.4, 0.08567, 2, 27, 1.21, 24.42, 0.5677, 26, 37.16, 24.42, 0.4323, 4, 28, -15.94, 23.55, 0.03449, 27, 20.01, 23.55, 0.83346, 26, 55.96, 23.55, 0.02204, 102, 24.27, 51.7, 0.11, 3, 28, 0.25, 22.8, 0.31657, 27, 36.2, 22.8, 0.41343, 102, 23.66, 35.6, 0.27, 3, 28, 18.49, 21.95, 0.22027, 27, 54.44, 21.95, 0.00973, 102, 22.94, 17.27, 0.77, 1, 102, 34.58, 10.59, 1, 1, 102, 34.67, -2.26, 1, 1, 102, -20.38, -2.65, 1, 1, 21, 0.45, 0, 1, 1, 24, 31.4, 0, 1, 1, 24, 11.41, 0, 1, 1, 23, 26.57, 0, 1, 1, 23, 7.43, 0, 1, 1, 22, 20.94, 0, 1, 1, 21, 34.45, 0, 1, 2, 28, 23.32, 0.24, 0.23, 102, 1.26, 12.26, 0.77, 1, 25, 15.67, 0.04, 1, 2, 26, -0.81, 0.07, 0.37007, 25, 35.14, 0.07, 0.62993, 1, 26, 18, 0.1, 1, 2, 27, 2.5, 0.14, 0.92465, 26, 38.45, 0.14, 0.07535, 2, 27, 22.3, 0.17, 0.89, 102, 0.91, 49.21, 0.11, 3, 28, 2.2, 0.2, 0.65329, 27, 38.15, 0.2, 0.07671, 102, 1.08, 33.46, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-spring-dress/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "legs/pants-green", + "attachments": { + "boot-ribbon-back": { + "boot-ribbon-back": { + "name": "boy/boot-ribbon-front", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 95, 28.05, 31.91, 0.76, 103, 36.32, 40.94, 0.24, 2, 95, 28.6, 14.92, 0.76, 103, 19.33, 41.13, 0.24, 2, 95, 6.7, 14.22, 0.76, 103, 19.57, 62.88, 0.24, 2, 95, 6.15, 31.21, 0.76, 103, 36.57, 62.69, 0.24 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 17, + "height": 22 + } + }, + "boot-ribbon-front": { + "boot-ribbon-front": { + "name": "boy/boot-ribbon-front", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 102, 37.35, 36.26, 0.24, 27, 30.73, 31.09, 0.76, 2, 102, 20.65, 39.43, 0.24, 27, 29.77, 14.12, 0.76, 2, 102, 24.74, 60.87, 0.24, 27, 7.8, 15.36, 0.76, 2, 102, 41.44, 57.7, 0.24, 27, 8.76, 32.34, 0.76 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 17, + "height": 22 + } + }, + "leg-back": { + "leg-back": { + "name": "boy/leg-front", + "type": "mesh", + "uvs": [ 0.07635, 0.9541, 0.06673, 0.89806, 0.05329, 0.83742, 0.06846, 0.78076, 0.1147, 0.71609, 0.09104, 0.65737, 0.07898, 0.59167, 0.08077, 0.52912, 0.07229, 0.46755, 0.06309, 0.4008, 0.05461, 0.3393, 0.04512, 0.27044, 0.0355, 0.20062, 0.02026, 0.09003, 0.0082, 0.0025, 0.86785, 0, 0.85558, 0.08164, 0.83969, 0.18726, 0.82872, 0.26024, 0.81835, 0.32916, 0.80924, 0.38977, 0.79934, 0.45558, 0.79031, 0.51561, 0.77996, 0.58393, 0.76519, 0.64798, 0.75106, 0.708, 0.81982, 0.77305, 0.82792, 0.82913, 0.81561, 0.88039, 0.82497, 0.91422, 1, 0.93396, 0.9918, 1, 0.08936, 1, 0.44189, 0.0854, 0.44189, 0.52429, 0.44189, 0.46108, 0.44189, 0.39534, 0.44189, 0.33482, 0.44189, 0.26387, 0.44189, 0.19291, 0.44582, 0.95343, 0.44247, 0.58821, 0.44304, 0.64978, 0.44358, 0.70926, 0.44851, 0.77908, 0.44475, 0.83655, 0.44521, 0.88665 ], + "triangles": [ 39, 11, 12, 18, 39, 17, 39, 12, 33, 39, 33, 17, 33, 12, 13, 17, 33, 16, 13, 14, 33, 16, 33, 15, 15, 33, 14, 38, 10, 11, 19, 38, 18, 38, 11, 39, 38, 39, 18, 36, 8, 9, 21, 36, 20, 36, 9, 37, 36, 37, 20, 37, 9, 10, 20, 37, 19, 37, 10, 38, 37, 38, 19, 7, 34, 41, 23, 34, 22, 34, 7, 35, 34, 35, 22, 35, 7, 8, 22, 35, 21, 35, 8, 36, 35, 36, 21, 42, 5, 41, 5, 6, 41, 42, 41, 24, 24, 41, 23, 6, 7, 41, 41, 34, 23, 2, 3, 45, 28, 45, 27, 44, 4, 43, 44, 43, 25, 43, 4, 42, 4, 5, 42, 43, 42, 25, 25, 42, 24, 1, 2, 45, 45, 26, 27, 45, 44, 26, 45, 3, 44, 44, 25, 26, 44, 3, 4, 40, 46, 28, 40, 28, 29, 0, 1, 46, 40, 0, 46, 32, 0, 40, 40, 29, 30, 32, 40, 31, 31, 40, 30, 1, 45, 46, 46, 45, 28 ], + "vertices": [ 3, 103, -20.08, 10.6, 0.75, 94, 23.49, -22.3, 0.24676, 95, 59.84, -22.28, 0.00324, 2, 103, -20.97, 28.44, 0.51, 94, 5.72, -22.89, 0.49, 2, 103, -22.07, 47.56, 0.31, 96, 58.17, -23.66, 0.69, 3, 103, -21.4, 65.39, 0.1116, 95, 4.59, -22.78, 0.8184, 96, 40.52, -22.77, 0.07, 4, 103, -18.75, 86.02, 0.01, 95, -16.13, -19.93, 0.10405, 96, 20.1, -19.96, 0.87254, 97, 56.45, -19.89, 0.01341, 3, 95, -35.05, -21.34, 1.0E-4, 96, 1.46, -21.4, 0.56453, 97, 37.51, -21.4, 0.43537, 3, 96, -19.07, -22.08, 0.03286, 97, 16.65, -22.14, 0.91428, 98, 52.69, -22.08, 0.05286, 3, 97, -3.17, -22.02, 0.36522, 98, 32.86, -22.03, 0.63379, 99, 68.32, -21.96, 9.9E-4, 3, 97, -22.68, -22.46, 0.00771, 98, 13.36, -22.55, 0.84445, 99, 49.14, -22.52, 0.14784, 3, 98, -7.93, -23.09, 0.1958, 99, 28.2, -23.11, 0.80288, 100, 64.58, -23.1, 0.00132, 3, 98, -27.79, -23.57, 4.7E-4, 99, 8.67, -23.62, 0.7924, 100, 44.76, -23.62, 0.20713, 3, 99, -12.93, -24.2, 0.11943, 100, 22.84, -24.2, 0.86721, 101, 58.46, -24.21, 0.01336, 2, 100, 0.77, -24.79, 0.53411, 101, 36.71, -24.79, 0.46589, 1, 101, 1.72, -25.72, 1, 1, 101, -25.98, -26.46, 1, 1, 101, -26.33, 25.98, 1, 1, 101, -0.53, 25.24, 1, 2, 100, -3.13, 24.27, 0.4095, 101, 32.87, 24.27, 0.5905, 3, 99, -15.75, 23.6, 0.08894, 100, 19.96, 23.6, 0.87813, 101, 55.62, 23.59, 0.03292, 3, 98, -30.64, 23.03, 8.5E-4, 99, 5.77, 22.96, 0.71828, 100, 41.79, 22.97, 0.28088, 3, 98, -11.12, 22.43, 0.16727, 99, 24.96, 22.4, 0.82705, 100, 61.27, 22.42, 0.00568, 3, 97, -26.03, 21.9, 0.00115, 98, 9.83, 21.8, 0.86047, 99, 45.58, 21.82, 0.13838, 2, 97, -7.13, 21.27, 0.21266, 98, 28.73, 21.24, 0.78734, 3, 96, -21.14, 20.69, 0.01057, 97, 14.4, 20.61, 0.90163, 98, 50.27, 20.67, 0.0878, 2, 96, -1.28, 19.72, 0.4417, 97, 34.58, 19.72, 0.5583, 4, 103, 20.06, 88.71, 0.01, 95, -18.54, 18.89, 0.02159, 96, 17.65, 18.86, 0.95034, 97, 53.83, 18.92, 0.01808, 3, 103, 24.4, 68.19, 0.1116, 95, 2.32, 23.05, 0.8184, 96, 38.19, 23.06, 0.07, 2, 103, 25.14, 50.7, 0.31, 96, 55.61, 23.58, 0.69, 2, 103, 24.62, 34.65, 0.51, 94, 0.26, 22.8, 0.49, 3, 103, 25.37, 23.95, 0.52462, 94, 10.94, 23.37, 0.22, 95, 47.04, 23.38, 0.25538, 1, 103, 36.15, 17.9, 1, 1, 103, 36, -3.06, 1, 1, 103, -19.04, -3.97, 1, 1, 101, 0.45, 0, 1, 1, 98, 31.4, 0, 1, 1, 98, 11.41, 0, 1, 1, 99, 26.57, 0, 1, 1, 99, 7.43, 0, 1, 1, 100, 20.94, 0, 1, 1, 101, 34.45, 0, 1, 2, 103, 2.45, 11.15, 0.83, 94, 23.32, 0.24, 0.17, 2, 97, 15.67, 0.04, 0.99997, 98, 51.62, 0.1, 3.0E-5, 2, 96, -0.81, 0.07, 0.37159, 97, 35.13, 0.07, 0.62841, 2, 103, 1.32, 88.25, 0.01, 96, 18, 0.1, 0.99, 3, 103, 1.78, 66.12, 0.1116, 95, 4.15, 0.4, 0.8184, 96, 40.04, 0.41, 0.07, 2, 103, 1.81, 48.1, 0.31, 96, 57.92, 0.22, 0.69, 3, 103, 2.06, 32.36, 0.38323, 94, 2.19, 0.2, 0.57, 95, 38.18, 0.2, 0.04677 ], + "hull": 33, + "edges": [ 28, 30, 58, 60, 60, 62, 62, 64, 42, 44, 26, 28, 66, 26, 30, 32, 66, 32, 70, 68, 42, 70, 14, 16, 70, 16, 40, 42, 72, 70, 40, 72, 16, 18, 72, 18, 38, 40, 74, 72, 38, 74, 18, 20, 74, 20, 36, 38, 76, 74, 36, 76, 20, 22, 76, 22, 32, 34, 34, 36, 66, 78, 78, 76, 34, 78, 22, 24, 24, 26, 78, 24, 68, 82, 46, 82, 82, 12, 46, 48, 84, 82, 48, 84, 12, 10, 84, 10, 48, 50, 86, 84, 50, 86, 10, 8, 86, 8, 50, 52, 88, 86, 52, 88, 8, 6, 88, 6, 52, 54, 90, 88, 54, 90, 6, 4, 90, 4, 54, 56, 56, 58, 80, 92, 92, 90, 56, 92, 4, 2, 92, 2, 58, 80, 2, 0, 0, 64, 80, 0, 12, 14, 44, 46, 60, 80 ], + "width": 61, + "height": 316 + } + }, + "leg-front": { + "leg-front": { + "name": "boy/leg-front", + "type": "mesh", + "uvs": [ 0.07635, 0.9541, 0.06673, 0.89806, 0.05329, 0.83742, 0.06846, 0.78076, 0.1147, 0.71609, 0.09104, 0.65737, 0.07898, 0.59167, 0.08077, 0.52912, 0.07229, 0.46755, 0.06309, 0.4008, 0.05461, 0.3393, 0.04512, 0.27044, 0.0355, 0.20062, 0.02026, 0.09003, 0.0082, 0.0025, 0.86785, 0, 0.85558, 0.08164, 0.83969, 0.18726, 0.82872, 0.26024, 0.81835, 0.32916, 0.80924, 0.38977, 0.79934, 0.45558, 0.79031, 0.51561, 0.77996, 0.58393, 0.76519, 0.64798, 0.75106, 0.708, 0.81982, 0.77305, 0.82792, 0.82913, 0.81561, 0.88039, 0.82497, 0.91422, 1, 0.93396, 0.9918, 1, 0.08936, 1, 0.44189, 0.0854, 0.44189, 0.52429, 0.44189, 0.46108, 0.44189, 0.39534, 0.44189, 0.33482, 0.44189, 0.26387, 0.44189, 0.19291, 0.44582, 0.95343, 0.44247, 0.58821, 0.44304, 0.64978, 0.44358, 0.70926, 0.44851, 0.77908, 0.44475, 0.83655, 0.44521, 0.88665 ], + "triangles": [ 38, 10, 11, 19, 38, 18, 38, 11, 39, 38, 39, 18, 39, 11, 12, 36, 8, 9, 21, 36, 20, 36, 9, 37, 36, 37, 20, 37, 9, 10, 20, 37, 19, 37, 10, 38, 37, 38, 19, 7, 34, 41, 23, 34, 22, 34, 7, 35, 34, 35, 22, 35, 7, 8, 22, 35, 21, 35, 8, 36, 35, 36, 21, 42, 5, 41, 5, 6, 41, 42, 41, 24, 24, 41, 23, 6, 7, 41, 41, 34, 23, 43, 4, 42, 43, 42, 25, 4, 5, 42, 44, 4, 43, 44, 43, 25, 25, 42, 24, 1, 2, 45, 28, 45, 27, 2, 3, 45, 45, 26, 27, 45, 44, 26, 45, 3, 44, 44, 3, 4, 46, 45, 28, 44, 25, 26, 18, 39, 17, 39, 12, 33, 39, 33, 17, 33, 12, 13, 17, 33, 16, 13, 14, 33, 16, 33, 15, 15, 33, 14, 32, 40, 31, 31, 40, 30, 32, 0, 40, 40, 29, 30, 40, 28, 29, 0, 1, 46, 1, 45, 46, 40, 0, 46, 40, 46, 28 ], + "vertices": [ 3, 102, -21.4, 12.07, 0.65, 28, 23.5, -22.3, 0.3448, 27, 59.45, -22.3, 0.00521, 3, 102, -21.96, 29.92, 0.51, 28, 5.76, -22.88, 0.33074, 27, 41.71, -22.88, 0.15926, 3, 102, -22.66, 49.08, 0.31148, 28, -13.39, -23.7, 0.0912, 27, 22.52, -23.7, 0.59732, 3, 102, -21.61, 66.95, 0.17, 27, 4.58, -22.78, 0.5805, 26, 40.54, -22.78, 0.2495, 4, 102, -18.4, 87.61, 0.03, 27, -15.86, -19.96, 0.10277, 26, 20.08, -19.96, 0.82804, 25, 56.01, -19.96, 0.03919, 3, 27, -34.44, -21.4, 7.9E-4, 26, 1.51, -21.4, 0.57156, 25, 37.44, -21.4, 0.42765, 3, 26, -19.27, -22.14, 0.05654, 25, 16.67, -22.14, 0.87764, 24, 52.6, -22.14, 0.06582, 2, 25, -3.13, -22.03, 0.47104, 24, 32.82, -22.03, 0.52896, 3, 25, -22.61, -22.55, 0.01665, 24, 13.34, -22.55, 0.87142, 23, 49.29, -22.55, 0.11193, 3, 24, -7.79, -23.11, 0.22064, 23, 28.17, -23.11, 0.77569, 22, 64.12, -23.11, 0.00367, 3, 24, -27.25, -23.62, 0.00219, 23, 8.7, -23.62, 0.77556, 22, 44.65, -23.62, 0.22225, 3, 21, 58.81, -24.2, 0.0114, 23, -13.09, -24.2, 0.12046, 22, 22.86, -24.2, 0.86813, 2, 21, 36.72, -24.79, 0.42237, 22, 0.77, -24.79, 0.57763, 2, 21, 1.72, -25.72, 0.99849, 22, -34.23, -25.72, 0.00151, 1, 21, -25.98, -26.46, 1, 1, 21, -26.33, 25.98, 1, 2, 21, -0.53, 25.24, 0.99997, 22, -36.48, 25.24, 3.0E-5, 2, 21, 32.85, 24.27, 0.56274, 22, -3.1, 24.27, 0.43726, 3, 21, 55.91, 23.6, 0.02334, 23, -15.99, 23.6, 0.05774, 22, 19.96, 23.6, 0.91892, 3, 24, -30.16, 22.96, 3.0E-4, 23, 5.79, 22.96, 0.6752, 22, 41.74, 22.96, 0.3245, 3, 24, -11, 22.41, 0.14886, 23, 24.95, 22.41, 0.84172, 22, 60.9, 22.41, 0.00941, 3, 25, -26.16, 21.8, 0.00663, 24, 9.79, 21.8, 0.80794, 23, 45.74, 21.8, 0.18543, 3, 25, -7.19, 21.25, 0.35697, 24, 28.76, 21.25, 0.64235, 23, 64.72, 21.25, 6.7E-4, 3, 26, -21.58, 20.62, 0.04097, 25, 14.4, 20.62, 0.83939, 24, 50.38, 20.63, 0.11963, 3, 26, -1.35, 19.72, 0.4338, 25, 34.64, 19.72, 0.56533, 24, 70.61, 19.73, 8.7E-4, 4, 102, 20.45, 89.06, 0.03, 27, -18.28, 18.86, 0.04202, 26, 17.66, 18.86, 0.84488, 25, 53.66, 18.87, 0.0831, 3, 102, 24.24, 68.6, 0.17, 27, 2.29, 23.05, 0.47119, 26, 38.23, 23.05, 0.35881, 2, 102, 24.6, 51.21, 0.32421, 27, 20.01, 23.55, 0.67579, 3, 102, 23.74, 35.21, 0.51, 28, 0.25, 22.8, 0.21249, 27, 36.2, 22.8, 0.27751, 3, 102, 24.29, 24.55, 0.73, 28, 10.95, 23.37, 0.25858, 27, 46.78, 23.36, 0.01142, 1, 102, 34.96, 18.3, 1, 1, 102, 34.41, -2.64, 1, 1, 102, -20.64, -2.52, 1, 1, 21, 0.45, 0, 1, 1, 24, 31.4, 0, 1, 1, 24, 11.41, 0, 1, 1, 23, 26.57, 0, 1, 1, 23, 7.43, 0, 1, 1, 22, 20.94, 0, 1, 1, 21, 34.45, 0, 1, 2, 102, 1.14, 12.19, 0.83, 28, 23.32, 0.24, 0.17, 1, 25, 15.67, 0.04, 1, 2, 26, -0.81, 0.07, 0.37007, 25, 35.14, 0.07, 0.62993, 2, 102, 1.77, 89.22, 0.03, 26, 18, 0.1, 0.97, 3, 102, 1.58, 67.1, 0.17, 27, 4.15, 0.4, 0.76746, 26, 40.07, 0.4, 0.06254, 2, 102, 1.23, 49.11, 0.22, 27, 22.3, 0.17, 0.78, 3, 102, 1.15, 33.38, 0.37, 28, 2.2, 0.2, 0.5638, 27, 38.15, 0.2, 0.0662 ], + "hull": 33, + "edges": [ 28, 30, 58, 60, 60, 62, 62, 64, 42, 44, 26, 28, 66, 26, 30, 32, 66, 32, 70, 68, 42, 70, 14, 16, 70, 16, 40, 42, 72, 70, 40, 72, 16, 18, 72, 18, 38, 40, 74, 72, 38, 74, 18, 20, 74, 20, 36, 38, 76, 74, 36, 76, 20, 22, 76, 22, 32, 34, 34, 36, 66, 78, 78, 76, 34, 78, 22, 24, 24, 26, 78, 24, 68, 82, 46, 82, 82, 12, 46, 48, 84, 82, 48, 84, 12, 10, 84, 10, 48, 50, 86, 84, 50, 86, 10, 8, 86, 8, 50, 52, 88, 86, 52, 88, 8, 6, 88, 6, 52, 54, 90, 88, 54, 90, 6, 4, 90, 4, 54, 56, 56, 58, 80, 92, 92, 90, 56, 92, 4, 2, 92, 2, 58, 80, 2, 0, 0, 64, 80, 0, 12, 14, 44, 46, 60, 80 ], + "width": 61, + "height": 316 + } + }, + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "legs/pants-jeans", + "attachments": { + "boot-ribbon-back": { + "boot-ribbon-back": { "name": "girl/boot-ribbon-front", "x": 67.51, "y": 16.46, "rotation": 90.17, "width": 26, "height": 25 } + }, + "boot-ribbon-front": { + "boot-ribbon-front": { "name": "girl/boot-ribbon-front", "x": 31.67, "y": 16.34, "rotation": 89.95, "width": 26, "height": 25 } + }, + "leg-back": { + "leg-back": { + "name": "girl/leg-front", + "type": "mesh", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 0, 48, 42, 42, 48, 31, 42, 31, 33, 34, 0, 42, 34, 42, 33, 31, 32, 33, 31, 48, 30, 41, 12, 13, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48 ], + "vertices": [ 3, 94, 22.95, -22.02, 0.22728, 95, 59.29, -22, 0.00272, 103, -19.33, 11.79, 0.77, 3, 94, 5.73, -22.61, 0.49142, 95, 41.79, -22.61, 0.23858, 103, -19.74, 29.07, 0.27, 4, 94, -10.55, -23.17, 0.11127, 95, 25.25, -23.18, 0.76279, 96, 60.87, -23.13, 0.00594, 103, -20.15, 45.45, 0.12, 2, 95, 5.13, -23.87, 0.69465, 96, 41.05, -23.86, 0.30535, 3, 95, -15.89, -24.56, 0.09408, 96, 20.35, -24.59, 0.86299, 97, 56.72, -24.52, 0.04292, 2, 96, 1.98, -25.21, 0.55425, 97, 38.06, -25.21, 0.44575, 3, 96, -19.09, -25.88, 0.05256, 97, 16.64, -25.95, 0.87891, 98, 52.7, -25.89, 0.06853, 3, 96, -33.74, -26.34, 3.3E-4, 97, 1.76, -26.46, 0.67227, 98, 37.81, -26.45, 0.32739, 2, 97, -3.17, -22.02, 0.47188, 98, 32.86, -22.03, 0.52812, 3, 97, -22.68, -22.46, 0.0172, 98, 13.36, -22.55, 0.87617, 99, 49.14, -22.52, 0.10662, 3, 98, -7.93, -23.09, 0.23789, 99, 28.2, -23.11, 0.75909, 100, 64.58, -23.1, 0.00302, 3, 98, -27.79, -23.57, 0.00312, 99, 8.67, -23.62, 0.75495, 100, 44.76, -23.62, 0.24193, 3, 99, -12.93, -24.2, 0.09944, 100, 22.84, -24.2, 0.87238, 101, 58.46, -24.21, 0.02818, 2, 100, 0.77, -24.79, 0.47358, 101, 36.71, -24.79, 0.52642, 1, 101, 1.72, -25.72, 1, 1, 101, -25.98, -26.46, 1, 1, 101, -26.33, 25.98, 1, 1, 101, -0.53, 25.24, 1, 2, 100, -3.13, 24.27, 0.37555, 101, 32.87, 24.27, 0.62445, 3, 99, -15.75, 23.6, 0.0536, 100, 19.96, 23.6, 0.92085, 101, 55.62, 23.59, 0.02556, 2, 99, 5.77, 22.96, 0.65378, 100, 41.79, 22.97, 0.34622, 3, 98, -11.12, 22.43, 0.12254, 99, 24.96, 22.4, 0.86248, 100, 61.27, 22.42, 0.01499, 3, 97, -26.03, 21.9, 0.00839, 98, 9.83, 21.8, 0.78745, 99, 45.58, 21.82, 0.20415, 3, 97, -7.13, 21.27, 0.362, 98, 28.73, 21.24, 0.63637, 99, 64.17, 21.3, 0.00163, 2, 97, -6.17, 28.11, 0.5025, 98, 29.67, 28.08, 0.4975, 3, 96, -21.38, 27.22, 0.03848, 97, 14.13, 27.14, 0.83871, 98, 49.97, 27.2, 0.12281, 3, 96, -2.33, 26.26, 0.40865, 97, 33.49, 26.25, 0.59016, 98, 69.34, 26.38, 0.00119, 3, 95, -20.14, 25.43, 0.05003, 96, 16.06, 25.39, 0.84798, 97, 52.19, 25.45, 0.10198, 2, 95, 1.24, 24.42, 0.56331, 96, 37.12, 24.42, 0.43669, 4, 94, -15.67, 23.56, 0.04308, 95, 20, 23.55, 0.81142, 96, 55.61, 23.58, 0.0255, 103, 26.63, 50.22, 0.12, 3, 94, 0.26, 22.8, 0.33337, 95, 36.2, 22.8, 0.39663, 103, 25.72, 34.13, 0.27, 3, 94, 18.48, 21.95, 0.22212, 95, 54.71, 21.97, 0.00788, 103, 24.69, 15.83, 0.77, 1, 103, 36.21, 8.95, 1, 1, 103, 36.08, -3.91, 1, 1, 103, -18.97, -3.34, 1, 1, 101, 0.45, 0, 1, 1, 98, 31.4, 0, 1, 1, 98, 11.41, 0, 1, 1, 99, 26.57, 0, 1, 1, 99, 7.43, 0, 1, 1, 100, 20.94, 0, 1, 1, 101, 34.45, 0, 1, 2, 94, 23.32, 0.24, 0.23, 103, 2.93, 11.2, 0.77, 1, 97, 15.67, 0.04, 1, 2, 96, -0.81, 0.07, 0.36735, 97, 35.13, 0.07, 0.63265, 1, 96, 18, 0.1, 1, 2, 95, 2.51, 0.14, 0.90776, 96, 38.42, 0.14, 0.09224, 2, 95, 22.3, 0.17, 0.88, 103, 3.23, 48.15, 0.12, 3, 94, 2.19, 0.2, 0.62933, 95, 38.18, 0.2, 0.10067, 103, 3.11, 32.41, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "leg-front": { + "leg-front": { + "name": "girl/leg-front", + "type": "mesh", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 31, 48, 30, 0, 48, 42, 42, 48, 31, 34, 42, 33, 31, 32, 33, 42, 31, 33, 34, 0, 42, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 41, 12, 13, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15 ], + "vertices": [ 3, 28, 22.96, -22.02, 0.22658, 27, 58.91, -22.02, 0.00342, 102, -21, 12.47, 0.77, 3, 28, 5.76, -22.61, 0.49273, 27, 41.71, -22.61, 0.23727, 102, -21.71, 29.73, 0.27, 4, 28, -10.68, -23.18, 0.11707, 27, 25.27, -23.18, 0.76681, 26, 61.22, -23.18, 0.00612, 102, -22.41, 46.07, 0.11, 2, 27, 5.13, -23.87, 0.6994, 26, 41.08, -23.87, 0.3006, 3, 27, -15.62, -24.58, 0.10595, 26, 20.33, -24.58, 0.85365, 25, 56.28, -24.58, 0.0404, 3, 27, -33.92, -25.21, 7.9E-4, 26, 2.03, -25.21, 0.57156, 25, 37.98, -25.21, 0.42765, 3, 26, -19.29, -25.94, 0.05654, 25, 16.66, -25.94, 0.87764, 24, 52.61, -25.94, 0.06582, 3, 26, -34.16, -26.46, 4.4E-4, 25, 1.79, -26.46, 0.67282, 24, 37.74, -26.46, 0.32674, 2, 25, -3.13, -22.03, 0.47104, 24, 32.82, -22.03, 0.52896, 3, 25, -22.61, -22.55, 0.01665, 24, 13.34, -22.55, 0.87142, 23, 49.29, -22.55, 0.11193, 3, 24, -7.79, -23.11, 0.22064, 23, 28.17, -23.11, 0.77569, 22, 64.12, -23.11, 0.00367, 3, 24, -27.25, -23.62, 0.00219, 23, 8.7, -23.62, 0.77556, 22, 44.65, -23.62, 0.22225, 3, 21, 58.81, -24.2, 0.0114, 23, -13.09, -24.2, 0.12046, 22, 22.86, -24.2, 0.86813, 2, 21, 36.72, -24.79, 0.42237, 22, 0.77, -24.79, 0.57763, 2, 21, 1.72, -25.72, 0.99849, 22, -34.23, -25.72, 0.00151, 1, 21, -25.98, -26.46, 1, 1, 21, -26.33, 25.98, 1, 2, 21, -0.53, 25.24, 0.99997, 22, -36.48, 25.24, 3.0E-5, 2, 21, 32.85, 24.27, 0.56274, 22, -3.1, 24.27, 0.43726, 3, 21, 55.91, 23.6, 0.02334, 23, -15.99, 23.6, 0.05774, 22, 19.96, 23.6, 0.91892, 3, 24, -30.16, 22.96, 3.0E-4, 23, 5.79, 22.96, 0.6752, 22, 41.74, 22.96, 0.3245, 3, 24, -11, 22.41, 0.14886, 23, 24.95, 22.41, 0.84172, 22, 60.9, 22.41, 0.00941, 3, 25, -26.16, 21.8, 0.00663, 24, 9.79, 21.8, 0.80794, 23, 45.74, 21.8, 0.18543, 3, 25, -7.19, 21.25, 0.35697, 24, 28.76, 21.25, 0.64235, 23, 64.72, 21.25, 6.7E-4, 2, 25, -6.22, 28.1, 0.49898, 24, 29.73, 28.1, 0.50102, 3, 26, -21.82, 27.15, 0.04097, 25, 14.13, 27.15, 0.83939, 24, 50.08, 27.15, 0.11963, 3, 26, -2.4, 26.25, 0.4338, 25, 33.55, 26.25, 0.56533, 24, 69.5, 26.25, 8.7E-4, 3, 27, -19.88, 25.4, 0.04332, 26, 16.07, 25.4, 0.87101, 25, 52.02, 25.4, 0.08567, 2, 27, 1.21, 24.42, 0.5677, 26, 37.16, 24.42, 0.4323, 4, 28, -15.94, 23.55, 0.03449, 27, 20.01, 23.55, 0.83346, 26, 55.96, 23.55, 0.02204, 102, 24.27, 51.7, 0.11, 3, 28, 0.25, 22.8, 0.31657, 27, 36.2, 22.8, 0.41343, 102, 23.66, 35.6, 0.27, 3, 28, 18.49, 21.95, 0.22027, 27, 54.44, 21.95, 0.00973, 102, 22.94, 17.27, 0.77, 1, 102, 34.58, 10.59, 1, 1, 102, 34.67, -2.26, 1, 1, 102, -20.38, -2.65, 1, 1, 21, 0.45, 0, 1, 1, 24, 31.4, 0, 1, 1, 24, 11.41, 0, 1, 1, 23, 26.57, 0, 1, 1, 23, 7.43, 0, 1, 1, 22, 20.94, 0, 1, 1, 21, 34.45, 0, 1, 2, 28, 23.32, 0.24, 0.23, 102, 1.26, 12.26, 0.77, 1, 25, 15.67, 0.04, 1, 2, 26, -0.81, 0.07, 0.37007, 25, 35.14, 0.07, 0.62993, 1, 26, 18, 0.1, 1, 2, 27, 2.5, 0.14, 0.92465, 26, 38.45, 0.14, 0.07535, 2, 27, 22.3, 0.17, 0.89, 102, 0.91, 49.21, 0.11, 3, 28, 2.2, 0.2, 0.65329, 27, 38.15, 0.2, 0.07671, 102, 1.08, 33.46, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "nose/long", + "attachments": { + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "nose": { + "nose": { + "name": "boy/nose", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 6, 51.55, -68.98, 0.63, 29, 28.41, -21.66, 0.37, 2, 6, 50.11, -35.01, 0.72, 29, -5.59, -21.66, 0.28, 2, 6, 69.09, -34.21, 0.72, 29, -5.59, -2.66, 0.28, 2, 6, 70.54, -68.18, 0.63, 29, 28.41, -2.66, 0.37 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 34, + "height": 19 + } + } + } + }, + { + "name": "nose/short", + "attachments": { + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "nose": { + "nose": { + "name": "girl/nose", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 6, 57.27, -63, 0.68, 29, 14.7, -17.7, 0.32, 2, 6, 56.34, -41.02, 0.73, 29, -7.3, -17.7, 0.27, 2, 6, 69.33, -40.47, 0.73, 29, -7.3, -4.7, 0.27, 2, 6, 70.26, -62.45, 0.68, 29, 14.7, -4.7, 0.32 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 22, + "height": 13 + } + } + } + } +], +"animations": { + "aware": { + "bones": { + "head-control": { + "translate": [ + { "x": -62.46, "y": -5.73 }, + { "time": 0.1667, "x": 30.37, "y": 35.21 }, + { "time": 0.2667, "x": 4.53, "y": 62.9 }, + { "time": 0.4667, "x": 5.81, "y": 43.4, "curve": "stepped" }, + { "time": 1.0667, "x": 5.81, "y": 43.4 } + ] + }, + "hips": { + "translate": [ + { "y": -91.4 }, + { "time": 0.1667, "y": 7.19 } + ] + }, + "hat-control": { + "translate": [ + { "x": -51.09, "y": -5.28 }, + { "time": 0.1667, "x": 34.82, "y": -14.72 } + ] + }, + "head": { + "rotate": [ + { "value": -2.68 }, + { "time": 0.1667, "value": 4.05 }, + { "time": 0.2667, "value": -1.51 }, + { "time": 0.4667, "value": 1.68, "curve": "stepped" }, + { "time": 0.5667, "value": 1.68 }, + { "time": 0.8333, "value": -4.08 } + ] + }, + "hat-base": { + "translate": [ + {}, + { "time": 0.1667, "x": -11.29, "y": 0.32 }, + { "time": 0.4, "x": -1.03, "y": 0.64 } + ] + }, + "hat": { + "rotate": [ + {}, + { "time": 0.2, "value": 15.74 }, + { "time": 0.4, "value": -16.53 }, + { "time": 0.6333, "value": 13.83 }, + { "time": 0.8, "value": 4.09 } + ], + "scale": [ + {}, + { "time": 0.1333, "x": 0.886 }, + { "time": 0.3333 } + ] + }, + "scarf-back": { + "rotate": [ + {}, + { "time": 0.1, "value": 20.93 }, + { "time": 0.3333, "value": -5.62 }, + { "time": 0.5, "value": 1.86 } + ] + }, + "hair-side-back": { + "rotate": [ + { "value": -9.73 }, + { "time": 0.1667, "value": 9.49 }, + { "time": 0.3, "value": -10.46 }, + { "time": 0.4667, "value": 1.95 }, + { "time": 0.6667, "value": -6 }, + { "time": 0.8667, "value": -0.63 } + ] + }, + "hair-side-front": { + "rotate": [ + { "value": -2.72 }, + { "time": 0.1667, "value": 10.36 }, + { "time": 0.3, "value": -19.18 }, + { "time": 0.4667, "value": -0.83 }, + { "time": 0.6667, "value": -9.9 }, + { "time": 0.8667, "value": -4.35 } + ] + }, + "hair-bangs-back": { + "rotate": [ + { "value": -19.65 }, + { "time": 0.1667, "value": 7.92 }, + { "time": 0.3, "value": -1.28 }, + { "time": 0.4667, "value": -9.58 }, + { "time": 0.6667, "value": -14.48 }, + { "time": 0.8667, "value": -8.73 } + ] + }, + "hair-bangs-front": { + "rotate": [ + { "value": 18.38, "curve": "stepped" }, + { "time": 0.1667, "value": 18.38 }, + { "time": 0.3, "value": -8.33 }, + { "time": 0.4667, "value": 8.04 }, + { "time": 0.6667, "value": -8.34 } + ] + }, + "skirt-control": { + "translate": [ + { "y": -94.48 }, + { "time": 0.1333, "x": -1.64, "y": 1.12 }, + { "time": 0.1667, "x": -2.05, "y": 47.36 }, + { "time": 0.3 } + ] + }, + "skirt-control-middle": { + "translate": [ + {}, + { "time": 0.1667, "x": -47.24, "y": -1.03 }, + { "time": 0.2333, "x": -43.72, "y": -0.73 }, + { "time": 0.4 } + ] + }, + "skirt-rotation-front": { + "rotate": [ + { "value": 18.42 }, + { "time": 0.1333, "value": 18.47 }, + { "time": 0.3667, "value": -29.8 }, + { "time": 0.5, "value": -0.34 }, + { "time": 0.7, "value": -19.33 } + ] + }, + "skirt-rotation-back": { + "rotate": [ + { "value": -19.75 }, + { "time": 0.1333, "value": -35.04 }, + { "time": 0.3, "value": 37.38 }, + { "time": 0.4333, "value": -3.17 }, + { "time": 0.7, "value": 14.47 } + ] + }, + "skirt-control-up": { + "translate": [ + { "time": 0.2333, "x": -1.03, "y": -1.03 } + ] + }, + "cape-front-rotator": { + "rotate": [ + { "value": 7.42, "curve": "stepped" }, + { "time": 0.1333, "value": 7.42 }, + { "time": 0.2333, "value": -6.54 }, + { "time": 0.5 } + ] + }, + "cape-back-rotator": { + "rotate": [ + { "value": 0.14 }, + { "time": 0.1333, "value": -19.44 }, + { "time": 0.2333, "value": 6.97 }, + { "time": 0.5 } + ] + }, + "hair-strand-back-1": { + "rotate": [ + { "value": -13.58 }, + { "time": 0.4, "value": 3.32 }, + { "time": 0.6667, "value": -11.78 }, + { "time": 0.9667, "value": -7.37 } + ] + }, + "hair-strand-back-2": { + "rotate": [ + { "value": 300.71 }, + { "time": 0.4, "value": 364.24 }, + { "time": 0.5667, "value": 360 }, + { "time": 0.9333, "value": 364.33 } + ] + }, + "hair-strand-back-3": { + "rotate": [ + { "value": -24.87 }, + { "time": 0.4, "value": 6.39 }, + { "time": 0.5667, "value": 8.01 }, + { "time": 0.9333, "value": 14.8 } + ] + }, + "hair-strand-front-1": { + "rotate": [ + { "value": -352.71 }, + { "time": 0.4, "value": -375.28 }, + { "time": 0.6667, "value": -352.48 }, + { "time": 0.9333, "value": -361.77 } + ] + }, + "hair-strand-front-3": { + "rotate": [ + { "value": 30.72 }, + { "time": 0.4, "value": -8.29 }, + { "time": 0.5667 }, + { "time": 0.9333, "value": -6.01 } + ] + }, + "hair-strand-front-2": { + "rotate": [ + { "value": -331.85 }, + { "time": 0.4, "value": -376.13 }, + { "time": 0.5667, "value": -360 }, + { "time": 0.8, "value": -368.78 }, + { "time": 1.0333, "value": -358.49 } + ] + }, + "hair-strand-front-4": { + "rotate": [ + { "value": 36.04 }, + { "time": 0.4, "value": -9.94 }, + { "time": 0.5667 }, + { "time": 0.9333, "value": -3.18 } + ] + }, + "bag": { + "rotate": [ + { "value": -5.68 }, + { "time": 0.2667, "value": 11.42 }, + { "time": 0.4333, "value": 4.78 }, + { "time": 0.6, "value": 9.21 } + ] + }, + "bag-control": { + "translate": [ + { "x": -15.82, "y": -19.18 }, + { "time": 0.2, "x": -7.23, "y": 14.62 }, + { "time": 0.4, "x": -3.97, "y": -11.03 }, + { "time": 0.6333, "x": -14.17, "y": -8.66 }, + { "time": 0.8667, "x": -3.91, "y": -9.14 } + ] + }, + "arm-front-down": { + "rotate": [ + { "value": 21.36 }, + { "time": 0.1333, "value": -4.81 }, + { "time": 0.3667, "value": 37.96 }, + { "time": 0.6667, "value": 25.99 } + ] + }, + "arm-front-up": { + "rotate": [ + { "value": 10.18 }, + { "time": 0.1333, "value": -9.82 }, + { "time": 0.3667, "value": -10.68 }, + { "time": 0.6667, "value": -16.66 } + ] + }, + "arm-back-up": { + "rotate": [ + { "value": -26.58 }, + { "time": 0.1667, "value": 14.59 }, + { "time": 0.3667, "value": 2.32 }, + { "time": 0.8667, "value": -3.61 } + ] + }, + "arm-back-down": { + "rotate": [ + { "value": 75.17 }, + { "time": 0.1667, "value": -3.13 }, + { "time": 0.3667, "value": 39.97 }, + { "time": 0.8667, "value": 34.08 } + ] + }, + "dress-control-leg-down-back": { + "translate": [ + { "x": -0.84, "y": -5.64 }, + { "time": 0.2 } + ] + }, + "cape-blue-middle-front": { + "translate": [ + { "x": 37.13, "y": 23.77 }, + { "time": 0.0667, "x": 59.36, "y": 36.71 }, + { "time": 0.1667, "x": 54.84, "y": 0.04 }, + { "time": 0.3, "x": 5.89, "y": -49.91 }, + { "time": 0.3333, "x": 54.3, "y": -41.62 }, + { "time": 0.4333, "x": 39.08, "y": -2.95 }, + { "time": 0.5333, "x": 46.83, "y": -8.42 }, + { "time": 0.5667, "x": 32.59, "y": -17.13 } + ] + }, + "cape-blue-down-front": { + "rotate": [ + { "time": 0.2 }, + { "time": 0.4333, "value": 24.99 }, + { "time": 0.5667, "value": 14.98 }, + { "time": 0.7, "value": -21.62 }, + { "time": 0.8, "value": 1.06 } + ], + "translate": [ + { "x": 5.22, "y": -6.79 }, + { "time": 0.1333, "x": 75.09, "y": 30.66 }, + { "time": 0.1667, "x": 51.71, "y": 31.97 }, + { "time": 0.4333, "x": 44.01, "y": -13.07 }, + { "time": 0.6667, "x": 43.38, "y": -12.67 }, + { "time": 0.7333, "x": 43.18, "y": 10.37 } + ] + }, + "cape-blue-down-back": { + "translate": [ + { "time": 0.1667, "x": 32.74, "y": -32 } + ] + }, + "dress-control-foot-front": { + "rotate": [ + { "value": -49.06 }, + { "time": 0.1667 } + ], + "translate": [ + { "x": -18.52, "y": 12.34 }, + { "time": 0.1667 } + ] + }, + "dress-control-foot-back": { + "translate": [ + { "x": 38.58, "y": -4.63 }, + { "time": 0.1667 } + ] + }, + "dress-control-leg-up-back": { + "translate": [ + { "x": -22.89, "y": 7.69 }, + { "time": 0.1667 } + ] + }, + "dress-control-leg-down-front": { + "translate": [ + { "x": -2.78, "y": -17.03 }, + { "time": 0.2 } + ] + } + } + }, + "blink": { + "slots": { + "eye-back-iris": { + "attachment": [ + { "time": 0.0333 }, + { "time": 0.0732, "name": "eye-back-iris" } + ] + }, + "eye-back-pupil": { + "attachment": [ + { "time": 0.0333 }, + { "time": 0.0732, "name": "eye-back-pupil" } + ] + }, + "eye-back-white": { + "attachment": [ + { "time": 0.0333 }, + { "time": 0.0732, "name": "eye-back-white" } + ] + }, + "eye-front-iris": { + "attachment": [ + { "time": 0.0333 }, + { "time": 0.0732, "name": "eye-front-iris" } + ] + }, + "eye-front-pupil": { + "attachment": [ + { "time": 0.0333 }, + { "time": 0.0732, "name": "eye-front-pupil" } + ] + }, + "eye-front-white": { + "attachment": [ + { "time": 0.0333 }, + { "time": 0.0732, "name": "eye-front-white" } + ] + } + }, + "bones": { + "eye-front-up-eyelid": { + "rotate": [ + {}, + { "time": 0.0183, "value": -42.34 }, + { "time": 0.1646 } + ] + }, + "eye-front-up-eyelid-holder": { + "translate": [ + {}, + { "time": 0.0183, "y": -4.35 }, + { "time": 0.0366, "x": 0.27, "y": -12.4, "curve": "stepped" }, + { "time": 0.0549, "x": 0.27, "y": -12.4 }, + { "time": 0.1646 } + ] + }, + "eye-back-up-eyelid": { + "rotate": [ + {}, + { "time": 0.0183, "value": 35.83 }, + { "time": 0.1646 } + ] + }, + "eye-back-up-eyelid-holder": { + "translate": [ + {}, + { "time": 0.0183, "x": -2.99, "y": -4.35 }, + { "time": 0.0366, "x": -1.68, "y": -11.31, "curve": "stepped" }, + { "time": 0.0549, "x": -1.68, "y": -11.31 }, + { "time": 0.1646 } + ] + }, + "eye-back-low-eyelid-holder": { + "rotate": [ + { "time": 0.0366, "value": 4.33 } + ], + "translate": [ + {}, + { "time": 0.0183, "x": -1.63, "y": 1.09 }, + { "time": 0.0366, "x": -1.09, "y": 6.52, "curve": "stepped" }, + { "time": 0.0549, "x": -1.09, "y": 6.52 }, + { "time": 0.0732, "x": -1.34, "y": -1.93 }, + { "time": 0.1646, "curve": "stepped" }, + { "time": 1.032 } + ] + }, + "eye-front-low-eyelid-holder": { + "translate": [ + {}, + { "time": 0.0366, "x": -1.36, "y": 4.55, "curve": "stepped" }, + { "time": 0.0549, "x": -1.36, "y": 4.55 }, + { "time": 0.0732, "x": -1.36, "y": -3.51 }, + { "time": 0.1646 } + ] + }, + "eye-back-low-eyelid": { + "rotate": [ + {}, + { "time": 0.0366, "value": -27.26, "curve": "stepped" }, + { "time": 0.0549, "value": -27.26 }, + { "time": 0.0732, "value": -11.09 }, + { "time": 0.1646 } + ] + }, + "eye-front-low-eyelid": { + "rotate": [ + {}, + { "time": 0.0366, "value": 18.27, "curve": "stepped" }, + { "time": 0.0549, "value": 18.27 }, + { "time": 0.1646 } + ] + }, + "eye-front-eyebrow": { + "rotate": [ + {}, + { "time": 0.0333, "value": -14.81 }, + { "time": 0.1333 } + ], + "translate": [ + {}, + { "time": 0.0333, "y": -8.69 }, + { "time": 0.1333 } + ] + }, + "eye-back-eyebrow": { + "rotate": [ + {}, + { "time": 0.0333, "value": 14.78 }, + { "time": 0.1333 } + ], + "translate": [ + {}, + { "time": 0.0333, "y": -8.69 }, + { "time": 0.1333 } + ] + } + } + }, + "dance": { + "bones": { + "foot-back-IK": { + "translate": [ + { "x": -3.94 } + ] + }, + "foot-front-IK": { + "translate": [ + { "x": -77.47 } + ] + }, + "arm-front-up": { + "rotate": [ + { "value": -43.38 }, + { "time": 0.2, "value": -64.19 }, + { "time": 0.5, "value": -43.38 } + ] + }, + "arm-front-down": { + "rotate": [ + { "value": 111.67 }, + { "time": 0.2, "value": 119.56 }, + { "time": 0.3, "value": 108.58 }, + { "time": 0.5, "value": 111.67 } + ] + }, + "arm-back-up": { + "rotate": [ + { "value": 62.56 }, + { "time": 0.2, "value": 55.24 }, + { "time": 0.5, "value": 62.56 } + ] + }, + "arm-back-down": { + "rotate": [ + { "value": -123.94 }, + { "time": 0.2, "value": -123.93 }, + { "time": 0.5, "value": -123.94 } + ] + }, + "head": { + "rotate": [ + { "value": 8.09 }, + { "time": 0.2667, "value": -4.72 }, + { "time": 0.5, "value": 8.09 } + ] + }, + "hips": { + "translate": [ + {}, + { "time": 0.1, "x": -31.02, "y": -57.32 }, + { "time": 0.2, "x": -75.67, "y": -45.42 }, + { "time": 0.2667, "x": -82.72, "y": 5.11 }, + { "time": 0.5 } + ] + }, + "skirt-control": { + "translate": [ + {}, + { "time": 0.2667, "x": -107.7, "y": -26.37 }, + { "time": 0.5 } + ] + }, + "body-down": { + "rotate": [ + {}, + { "time": 0.2667, "value": -37.27 }, + { "time": 0.5 } + ], + "translate": [ + {}, + { "time": 0.2, "x": 13.63, "y": 25.56 }, + { "time": 0.5 } + ] + }, + "bag": { + "translate": [ + {}, + { "time": 0.1, "x": 2.14, "y": -46.73 }, + { "time": 0.2667, "x": 11.89, "y": 39.86 }, + { "time": 0.3, "x": 37.93, "y": 79.04 }, + { "time": 0.4, "x": 35.68, "y": 82.97 }, + { "time": 0.5 } + ] + }, + "bag-control": { + "translate": [ + {}, + { "time": 0.1667, "x": -9.48, "y": -9.24 }, + { "time": 0.2667, "x": -45.55, "y": 11.61 }, + { "time": 0.4, "x": -23.13, "y": 23.45 }, + { "time": 0.5 } + ] + }, + "bag-flap": { + "rotate": [ + {}, + { "time": 0.3, "value": 30.36 }, + { "time": 0.5 } + ], + "translate": [ + {}, + { "time": 0.3, "x": 62.39, "y": -60.69 }, + { "time": 0.5 } + ] + }, + "body-up": { + "rotate": [ + {}, + { "time": 0.2667, "value": 25.81 }, + { "time": 0.4, "value": 6.12 }, + { "time": 0.5 } + ] + }, + "dress-control-leg-up-front": { + "translate": [ + { "x": -4.66, "y": 13.07 }, + { "time": 0.0667, "x": -6.42, "y": -2.09 }, + { "time": 0.1667, "x": -13.77, "y": -19.16 }, + { "time": 0.3, "x": -7.28, "y": 5.82 }, + { "time": 0.4333, "x": -4.66, "y": 13.07 } + ] + }, + "dress-control-leg-down-front": { + "translate": [ + { "x": -5.13, "y": 14.38 }, + { "time": 0.0667, "x": 10.01, "y": -1.87 }, + { "time": 0.1667, "x": 22.73, "y": -15.41 }, + { "time": 0.3, "x": 10.87, "y": -9.78 }, + { "time": 0.4333, "x": -5.13, "y": 14.38 } + ] + }, + "dress-control-leg-up-back": { + "translate": [ + {}, + { "time": 0.1667, "x": 26.48, "y": 1.39 }, + { "time": 0.5 } + ] + }, + "dress-control-leg-down-back": { + "rotate": [ + {}, + { "time": 0.1667, "value": 25.88 }, + { "time": 0.3, "value": -11.62 }, + { "time": 0.5 } + ] + }, + "skirt-rotation-front": { + "rotate": [ + { "value": -26.59 }, + { "time": 0.1, "value": -16.72 }, + { "time": 0.1667, "value": 22.5 }, + { "time": 0.2667, "value": 34.86 }, + { "time": 0.5, "value": -26.59 } + ] + }, + "skirt-rotation-back": { + "rotate": [ + { "value": 25.32 }, + { "time": 0.1, "value": 26.97 }, + { "time": 0.1667, "value": -23.4 }, + { "time": 0.2667, "value": -24.93 }, + { "time": 0.4, "value": -4.25 }, + { "time": 0.5, "value": 25.32 } + ] + }, + "skirt-control-front": { + "rotate": [ + { "value": -26.59 }, + { "time": 0.1667, "value": -3.25 }, + { "time": 0.5, "value": -26.59 } + ] + }, + "skirt-control-up": { + "translate": [ + {}, + { "time": 0.1333, "x": 10.41, "y": -19.43 }, + { "time": 0.2667, "x": 16.66, "y": -37.48 }, + { "time": 0.4, "x": 72.57, "y": -6.15 }, + { "time": 0.5 } + ] + }, + "skirt-control-middle": { + "translate": [ + {}, + { "time": 0.1, "x": -37.48 }, + { "time": 0.5 } + ] + }, + "skirt-control-front-down": { + "translate": [ + {}, + { "time": 0.1, "x": -34.98, "y": -13.44 }, + { "time": 0.2333, "x": -11.57, "y": 10.34 }, + { "time": 0.5 } + ] + }, + "skirt-control-back-down": { + "translate": [ + {}, + { "time": 0.1, "x": -34.58, "y": 14.44 }, + { "time": 0.2333, "x": -8.49, "y": -14.05 }, + { "time": 0.5 } + ] + }, + "hair-side-front": { + "rotate": [ + { + "value": -35.09, + "curve": [ 0.094, -31.19, 0.125, 11.81 ] + }, + { "time": 0.1667, "value": 11.81 }, + { "time": 0.3, "value": -27.76 }, + { "time": 0.5, "value": -35.09 } + ] + }, + "hair-side-back": { + "rotate": [ + { + "value": -22.34, + "curve": [ 0.147, -10.82, 0.109, 23.73 ] + }, + { + "time": 0.1667, + "value": 23.73, + "curve": [ 0.242, 23.73, 0.392, -23.17 ] + }, + { + "time": 0.4667, + "value": -23.17, + "curve": [ 0.475, -23.17, 0.492, -22.34 ] + }, + { "time": 0.5, "value": -22.34 } + ] + }, + "head-control": { + "translate": [ + { "x": 22.8, "y": -9.23 }, + { "time": 0.0667, "x": 57.97, "y": 46.22 }, + { "time": 0.2333, "x": -32.58, "y": -3.79 }, + { "time": 0.5, "x": 22.8, "y": -9.23 } + ] + }, + "hair-bangs-front": { + "rotate": [ + { "value": 17.62 }, + { "time": 0.1667, "value": 10.84 }, + { "time": 0.3333, "value": -24 }, + { "time": 0.4333 }, + { "time": 0.5, "value": 17.62 } + ] + }, + "hair-bangs-back": { + "rotate": [ + { "value": -39.79 }, + { "time": 0.1667, "value": -24.48 }, + { "time": 0.3333, "value": 29.96 }, + { "time": 0.4333 }, + { "time": 0.5, "value": -39.79 } + ] + }, + "hat": { + "rotate": [ + { "value": 27.46 }, + { "time": 0.1667, "value": -23.07 }, + { "time": 0.5, "value": 27.46 } + ] + }, + "hat-control": { + "translate": [ + { "x": 111.64, "y": 22.2 }, + { "time": 0.1667, "x": -159.23, "y": 20.72 }, + { "time": 0.3333, "x": -51.25, "y": -31.45 }, + { "time": 0.5, "x": 111.64, "y": 22.2 } + ] + }, + "hat-base": { + "translate": [ + { "x": -11.05, "y": 1.1 }, + { "time": 0.2667, "x": -9.51, "y": -2.68 }, + { "time": 0.5, "x": -11.05, "y": 1.1 } + ] + }, + "scarf-back": { + "rotate": [ + {}, + { "time": 0.0667, "value": -17.47 }, + { "time": 0.1667, "value": 13.07 }, + { "time": 0.2667, "value": 71.2 }, + { "time": 0.5 } + ] + }, + "backpack": { + "rotate": [ + { "value": 3.89 }, + { "time": 0.2, "value": -0.82 }, + { "time": 0.3333, "value": -33.86 }, + { "time": 0.5, "value": 3.89 } + ], + "translate": [ + { "x": 1.47, "y": 19.38, "curve": "stepped" }, + { "time": 0.1, "x": 1.47, "y": 19.38 }, + { "time": 0.2, "x": -9.61, "y": 18.55 }, + { "time": 0.3333, "x": 27.69, "y": 6.16 }, + { "time": 0.5, "x": 1.47, "y": 19.38 } + ] + }, + "backpack-control": { + "translate": [ + { "x": 15.05, "y": 56.59 }, + { "time": 0.1, "x": -13.31, "y": 78.1 }, + { "time": 0.2, "x": -44.92, "y": 33.07 }, + { "time": 0.3, "x": -69.87, "y": -53.48 }, + { "time": 0.5, "x": 15.05, "y": 56.59 } + ] + }, + "hair-strand-front-1": { + "rotate": [ + { "value": -10.89 }, + { "time": 0.2, "value": 20.95 }, + { "time": 0.3667, "value": -47.39 }, + { "time": 0.5, "value": -10.89 } + ] + }, + "hair-strand-front-3": { + "rotate": [ + { "value": 35.67 }, + { "time": 0.2, "value": -26.6 }, + { "time": 0.3667 }, + { "time": 0.5, "value": 35.67 } + ] + }, + "hair-strand-front-2": { + "rotate": [ + { "value": 35.67 }, + { "time": 0.2, "value": -26.6 }, + { "time": 0.3667 }, + { "time": 0.5, "value": 35.67 } + ] + }, + "hair-strand-front-4": { + "rotate": [ + { "value": 35.67 }, + { "time": 0.2, "value": -26.6 }, + { "time": 0.3667 }, + { "time": 0.5, "value": 35.67 } + ] + }, + "hair-strand-back-1": { + "rotate": [ + { "value": -23.48 }, + { "time": 0.2, "value": 9.31 }, + { "time": 0.3667, "value": -37.1 }, + { "time": 0.5, "value": -23.48 } + ] + }, + "hair-strand-back-2": { + "rotate": [ + { "value": -23.48 }, + { "time": 0.2, "value": 9.31 }, + { "time": 0.3667, "value": -37.1 }, + { "time": 0.5, "value": -23.48 } + ] + }, + "hair-strand-back-3": { + "rotate": [ + { "value": -23.48 }, + { "time": 0.2, "value": 9.31 }, + { "time": 0.3667, "value": -37.1 }, + { "time": 0.5, "value": -23.48 } + ] + }, + "arm-back-control": { + "translate": [ + {}, + { "time": 0.2, "x": -1.55, "y": 20.76 }, + { "time": 0.5 } + ], + "scale": [ + {}, + { "time": 0.2, "x": 0.808 }, + { "time": 0.5 } + ] + }, + "cape-front-rotator": { + "rotate": [ + { "value": -19.6 }, + { "time": 0.0667, "value": -17.3 }, + { "time": 0.1333, "value": 31.22 }, + { "time": 0.3, "value": 30.83 }, + { "time": 0.5, "value": -19.6 } + ], + "translate": [ + { "x": 4.1, "y": -19.38 } + ] + }, + "cape-back-rotator": { + "rotate": [ + { "value": -37.45, "curve": "stepped" }, + { "time": 0.3, "value": -37.45 }, + { "time": 0.4, "value": -3.51 }, + { "time": 0.5, "value": -37.45 } + ], + "translate": [ + { "x": -9.09, "y": 17.5 } + ] + }, + "cape-red-front-outside": { + "translate": [ + {}, + { "time": 0.2333, "x": 3.19, "y": 5.75 }, + { "time": 0.5 } + ] + }, + "cape-red-front-inside": { + "translate": [ + { + "x": 56.51, + "y": 20.65, + "curve": [ 0.058, 56.51, 0.175, 0, 0.058, 20.65, 0.175, 0 ] + }, + { + "time": 0.2333, + "curve": [ 0.3, 0, 0.433, 56.51, 0.3, 0, 0.433, 20.65 ] + }, + { "time": 0.5, "x": 56.51, "y": 20.65 } + ] + }, + "cape-red-back-inside": { + "translate": [ + { "x": 20.33, "y": -17.55 }, + { "time": 0.2333 }, + { "time": 0.5, "x": 20.33, "y": -17.55 } + ], + "scale": [ + { "x": 0.382, "y": 0.88 }, + { "time": 0.2333 }, + { "time": 0.5, "x": 0.382, "y": 0.88 } + ] + }, + "zip-boy": { + "rotate": [ + { + "value": -41.7, + "curve": [ 0.067, -41.7, 0.2, 46.45 ] + }, + { + "time": 0.2667, + "value": 46.45, + "curve": [ 0.325, 46.45, 0.442, -41.7 ] + }, + { "time": 0.5, "value": -41.7 } + ] + }, + "zip-girl": { + "rotate": [ + { "value": -58.05 }, + { "time": 0.2667, "value": 39.41 }, + { "time": 0.5, "value": -58.05 } + ] + }, + "cape-blue-up-back": { + "translate": [ + { "x": 4.09, "y": 18.6 }, + { "time": 0.2333, "x": -1.94, "y": 26.9 }, + { "time": 0.4, "x": -16.98, "y": -4.67 }, + { "time": 0.5, "x": 4.09, "y": 18.6 } + ] + }, + "cape-blue-up-front": { + "rotate": [ + { "value": 29.46 }, + { "time": 0.1, "value": 3.72 }, + { "time": 0.2333, "value": 16.06 }, + { "time": 0.5, "value": 29.46 } + ], + "translate": [ + { "x": -71.16, "y": 31.75 }, + { "time": 0.1333, "x": -50, "y": -9.47 }, + { "time": 0.1667, "x": -42.48, "y": -7.43 }, + { "time": 0.2333, "x": -31.85, "y": -5.14 }, + { "time": 0.3, "x": -37.02, "y": -9.08 }, + { "time": 0.3333, "x": -38.94, "y": 0.58 }, + { "time": 0.5, "x": -71.16, "y": 31.75 } + ] + }, + "cape-blue-control": { + "translate": [ + { "x": -2.65, "y": 26.78 }, + { "time": 0.3333, "x": -4, "y": -11.89 }, + { "time": 0.5, "x": -2.65, "y": 26.78 } + ] + }, + "cape-blue-down-middle": { + "rotate": [ + {}, + { "time": 0.1, "value": 70 }, + { "time": 0.2333 }, + { "time": 0.3, "value": 26.98, "curve": "stepped" }, + { "time": 0.3667, "value": 26.98 }, + { "time": 0.4333, "value": -53.51 }, + { "time": 0.5 } + ], + "translate": [ + {}, + { "time": 0.1, "x": -57.35, "y": 107.86 }, + { "time": 0.2333, "x": -9.59, "y": 70.22 }, + { "time": 0.3, "x": -26.45, "y": 24.76 }, + { "time": 0.3667, "x": -54.55, "y": -99.41 }, + { "time": 0.4333, "x": 17.73, "y": -52.5 }, + { "time": 0.5 } + ] + }, + "cape-blue-middle-front": { + "translate": [ + {}, + { "time": 0.1, "x": -15.52, "y": -29.87 }, + { "time": 0.2333, "x": -20.17, "y": -2.76 }, + { "time": 0.3, "x": -63.38, "y": -41.99 }, + { "time": 0.3667, "x": -54.56, "y": -87.37 }, + { "time": 0.4333, "x": -75.84, "y": 5.06 }, + { "time": 0.5 } + ] + }, + "cape-blue-down-front": { + "rotate": [ + {}, + { "time": 0.3, "value": 40 }, + { "time": 0.3667, "value": 47.02 }, + { "time": 0.5 } + ], + "translate": [ + {}, + { "time": 0.1, "x": -18.48, "y": 53.81 }, + { "time": 0.2333, "x": 7.23, "y": 30.67 }, + { "time": 0.3, "x": -0.62, "y": 46.8 }, + { "time": 0.4333, "x": 86.5, "y": 36.31 }, + { "time": 0.5 } + ] + }, + "cape-blue-middle-back": { + "rotate": [ + { "time": 0.2333 }, + { "time": 0.3667, "value": -55.53 }, + { "time": 0.4333, "value": -6.88 }, + { "time": 0.5 } + ], + "translate": [ + {}, + { "time": 0.1, "x": -73.12, "y": -23.88 }, + { "time": 0.3, "x": -37.25, "y": -63.52 }, + { "time": 0.3667, "x": -25.92, "y": -26.42 }, + { "time": 0.4, "x": -3.29, "y": 10.46 }, + { "time": 0.4667, "x": 16.29, "y": 27.33 }, + { "time": 0.5 } + ] + }, + "cape-blue-down-back": { + "rotate": [ + {}, + { "time": 0.4, "value": -68.85 }, + { "time": 0.4333, "value": 70 }, + { "time": 0.5 } + ], + "translate": [ + {}, + { "time": 0.1, "x": 40.03, "y": -86.48 }, + { "time": 0.2333, "x": -44.05, "y": -50.7 }, + { "time": 0.3667, "x": -28.53, "y": -57.67 }, + { "time": 0.4, "x": -11.43, "y": -48.9 }, + { "time": 0.4333, "x": -67.63, "y": -55.15 }, + { "time": 0.5 } + ] + }, + "dress-control-middle": { + "translate": [ + {}, + { "time": 0.3333, "x": -3.98, "y": 2.65 }, + { "time": 0.5 } + ] + }, + "sleeve-control-front": { + "translate": [ + { "x": 11.85, "y": -21.65 }, + { "time": 0.2333 }, + { "time": 0.5, "x": 11.85, "y": -21.65 } + ] + }, + "dress-control-foot-front": { + "translate": [ + { "x": -56.84 } + ] + }, + "hand-front": { + "rotate": [ + { "value": -99.58 } + ], + "translate": [ + { "x": 6.48, "y": 8.82 } + ] + }, + "arm-front-control": { + "translate": [ + {}, + { "time": 0.1, "y": -2.65 }, + { "time": 0.3667, "x": 3.15, "y": -33.01 }, + { "time": 0.5 } + ] + }, + "skirt-control-back": { + "rotate": [ + { "value": 26.75 }, + { "time": 0.1667, "value": -8.61 }, + { "time": 0.5, "value": 26.75 } + ] + } + }, + "transform": { + "leg-down-back": [ + { "mixRotate": 0.269, "mixX": 0.234, "mixScaleX": 0, "mixShearY": 0 } + ], + "leg-down-down": [ + { "mixRotate": 0.394, "mixX": 0.177, "mixScaleX": 0, "mixShearY": 0 } + ] + } + }, + "dress-up": { + "slots": { + "eye-back-iris": { + "attachment": [ + { "time": 0.1333 }, + { "time": 0.1732, "name": "eye-back-iris" }, + { "time": 2.2667 }, + { "time": 2.3, "name": "eye-back-iris" } + ] + }, + "eye-back-pupil": { + "attachment": [ + { "time": 0.1333 }, + { "time": 0.1732, "name": "eye-back-pupil" }, + { "time": 2.2667 }, + { "time": 2.3, "name": "eye-back-pupil" } + ] + }, + "eye-back-white": { + "attachment": [ + { "time": 0.1333 }, + { "time": 0.1732, "name": "eye-back-white" }, + { "time": 2.2667 }, + { "time": 2.3, "name": "eye-back-white" } + ] + }, + "eye-front-iris": { + "attachment": [ + { "time": 0.1333 }, + { "time": 0.1732, "name": "eye-front-iris" }, + { "time": 2.2667 }, + { "time": 2.3, "name": "eye-front-iris" } + ] + }, + "eye-front-pupil": { + "attachment": [ + { "time": 0.1333 }, + { "time": 0.1732, "name": "eye-front-pupil" }, + { "time": 2.2667 }, + { "time": 2.3, "name": "eye-front-pupil" } + ] + }, + "eye-front-white": { + "attachment": [ + { "time": 0.1333 }, + { "time": 0.1732, "name": "eye-front-white" }, + { "time": 2.2667 }, + { "time": 2.3, "name": "eye-front-white" } + ] + } + }, + "bones": { + "head-control": { + "translate": [ + {}, + { "time": 0.3333, "x": -47.63, "y": -2.02 }, + { "time": 0.5, "x": -48.35, "y": 14.96 }, + { "time": 1, "x": -48.9, "y": 27.83 }, + { "time": 1.2, "x": -48.35, "y": 14.96 }, + { "time": 2.1, "x": -47.63, "y": -2.02 }, + { "time": 2.1667, "x": -55.53, "y": -2.36 }, + { "time": 2.3667, "x": 12.09, "y": 0.51 }, + { "time": 2.6667 } + ] + }, + "arm-front-up": { + "rotate": [ + {}, + { "time": 0.3333, "value": -29.05, "curve": "stepped" }, + { "time": 1.2, "value": -29.05 }, + { "time": 1.5, "value": -38.17, "curve": "stepped" }, + { "time": 2.0333, "value": -38.17 }, + { "time": 2.2, "value": -29.05 }, + { "time": 2.4667 } + ] + }, + "arm-back-up": { + "rotate": [ + {}, + { "time": 0.3333, "value": 27.32, "curve": "stepped" }, + { "time": 1.0667, "value": 27.32 }, + { "time": 1.5333, "value": 59.19, "curve": "stepped" }, + { "time": 2, "value": 59.19 }, + { "time": 2.2, "value": 27.32 }, + { "time": 2.4667 } + ] + }, + "arm-front-down": { + "rotate": [ + {}, + { "time": 0.3333, "value": 39.04, "curve": "stepped" }, + { "time": 1.1, "value": 39.04 }, + { "time": 1.5, "value": 124.78, "curve": "stepped" }, + { "time": 2.0333, "value": 124.78 }, + { "time": 2.2, "value": 39.04 }, + { "time": 2.4667 } + ] + }, + "arm-back-down": { + "rotate": [ + {}, + { "time": 0.3333, "value": 26.51, "curve": "stepped" }, + { "time": 1.0333, "value": 26.51 }, + { "time": 1.4333, "value": 64.82, "curve": "stepped" }, + { "time": 2.0333, "value": 64.82 }, + { "time": 2.2, "value": 26.51 }, + { "time": 2.4667 } + ] + }, + "hat-control": { + "translate": [ + {}, + { "time": 0.3333, "x": -37.66, "y": 3.71, "curve": "stepped" }, + { "time": 2.2, "x": -37.66, "y": 3.71 }, + { "time": 2.4667 } + ] + }, + "bag": { + "rotate": [ + {}, + { "time": 0.3333, "value": 21.75 }, + { "time": 0.6, "value": -13.81 }, + { "time": 0.8, "value": 2.42 }, + { "time": 1.1, "value": -8.03 }, + { "time": 1.3667, "value": -15.72 }, + { "time": 1.5333, "value": 12.7 }, + { "time": 1.7667, "value": -10.53 }, + { "time": 2.7667 } + ], + "translate": [ + {}, + { "time": 0.3333, "x": 0.82, "y": 10.9, "curve": "stepped" }, + { "time": 2.2, "x": 0.82, "y": 10.9 }, + { "time": 2.4667 } + ] + }, + "bag-control": { + "translate": [ + {}, + { "time": 0.3333, "x": -17.26, "y": -4.51 }, + { "time": 0.7667, "x": -30.2, "y": -6.03 }, + { "time": 1.3333, "x": 18.2, "y": 7.15 }, + { "time": 1.7, "x": -18.84, "y": -4.69 }, + { "time": 2.2, "x": -17.26, "y": -4.51 }, + { "time": 2.4667 } + ] + }, + "hips": { + "translate": [ + {}, + { "time": 0.1667, "x": -10.19, "y": -35.32 }, + { "time": 0.3333, "x": -106.82, "y": 2.91, "curve": "stepped" }, + { "time": 1.1667, "x": -106.82, "y": 2.91 }, + { "time": 1.4, "x": -20.38, "y": 2.91 }, + { "time": 1.5333, "x": -13.65 }, + { "time": 2.0667 }, + { "time": 2.1667, "y": -9.1 }, + { "time": 2.2667, "y": 11.63 }, + { "time": 2.3667 } + ] + }, + "eye-back-up-eyelid-holder": { + "translate": [ + { "time": 0.1 }, + { "time": 0.1183, "x": -2.99, "y": -4.35 }, + { "time": 0.1366, "x": -1.68, "y": -11.31, "curve": "stepped" }, + { "time": 0.1549, "x": -1.68, "y": -11.31 }, + { "time": 0.3333, "y": -5.82, "curve": "stepped" }, + { "time": 2.2333, "y": -5.82 }, + { "time": 2.2667, "x": -1.68, "y": -11.31, "curve": "stepped" }, + { "time": 2.3, "x": -1.68, "y": -11.31 }, + { "time": 2.4 } + ] + }, + "eye-front-up-eyelid-holder": { + "translate": [ + { "time": 0.1 }, + { "time": 0.1183, "y": -4.35 }, + { "time": 0.1366, "x": 0.27, "y": -12.4, "curve": "stepped" }, + { "time": 0.1549, "x": 0.27, "y": -12.4 }, + { "time": 0.3333, "y": -4.74, "curve": "stepped" }, + { "time": 2.2333, "y": -4.74 }, + { "time": 2.2667, "x": 0.27, "y": -12.4, "curve": "stepped" }, + { "time": 2.3, "x": 0.27, "y": -12.4 }, + { "time": 2.4 } + ] + }, + "eye-back-pupil": { + "translate": [ + {}, + { "time": 0.3333, "y": -5.53 }, + { "time": 0.4667, "x": -3, "y": -5.53 }, + { "time": 1.2, "x": -3.57, "y": -5.53 }, + { "time": 1.2667, "x": 6.08, "y": -5.53 }, + { "time": 2.2333, "x": 7.68, "y": -5.53 }, + { "time": 2.2667, "y": -5.53 }, + { "time": 2.4333 } + ] + }, + "eye-front-pupil": { + "translate": [ + {}, + { "time": 0.3333, "y": -5.53 }, + { "time": 0.4667, "x": -3, "y": -5.53 }, + { "time": 1.2, "x": -3.57, "y": -5.53 }, + { "time": 1.2667, "x": 6.08, "y": -5.53 }, + { "time": 2.2333, "x": 7.68, "y": -5.53 }, + { "time": 2.2667, "y": -5.53 }, + { "time": 2.4333 } + ] + }, + "eye-front-up-eyelid": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.1183, "value": -42.34 }, + { "time": 0.2646, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "value": -42.34 }, + { "time": 2.4 } + ] + }, + "eye-back-up-eyelid": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.1183, "value": 35.83 }, + { "time": 0.2646, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "value": 35.83 }, + { "time": 2.4 } + ] + }, + "eye-back-low-eyelid-holder": { + "rotate": [ + {}, + { "time": 0.1366, "value": 4.33, "curve": "stepped" }, + { "time": 2.3, "value": 4.33 }, + { "time": 2.7667 } + ], + "translate": [ + { "time": 0.1 }, + { "time": 0.1183, "x": -1.63, "y": 1.09 }, + { "time": 0.1366, "x": -1.09, "y": 6.52, "curve": "stepped" }, + { "time": 0.1549, "x": -1.09, "y": 6.52 }, + { "time": 0.1732, "x": -1.34, "y": -1.93 }, + { "time": 0.2646, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "x": -1.09, "y": 6.52 }, + { "time": 2.3, "x": -1.34, "y": -1.93 }, + { "time": 2.4 } + ] + }, + "eye-front-low-eyelid-holder": { + "translate": [ + { "time": 0.1 }, + { "time": 0.1366, "x": -1.36, "y": 4.55, "curve": "stepped" }, + { "time": 0.1549, "x": -1.36, "y": 4.55 }, + { "time": 0.1732, "x": -1.36, "y": -3.51 }, + { "time": 0.2646, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "x": -1.36, "y": 4.55 }, + { "time": 2.3, "x": -1.36, "y": -3.51 }, + { "time": 2.4 } + ] + }, + "eye-back-low-eyelid": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.1366, "value": -27.26, "curve": "stepped" }, + { "time": 0.1549, "value": -27.26 }, + { "time": 0.1732, "value": -11.09 }, + { "time": 0.2646, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "value": -27.26 }, + { "time": 2.3, "value": -11.09 }, + { "time": 2.4 } + ] + }, + "eye-front-low-eyelid": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.1366, "value": 18.27, "curve": "stepped" }, + { "time": 0.1549, "value": 18.27 }, + { "time": 0.2646, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "value": 18.27, "curve": "stepped" }, + { "time": 2.3, "value": 18.27 }, + { "time": 2.4 } + ] + }, + "eye-front-eyebrow": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.1333, "value": -14.81 }, + { "time": 0.2333, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "value": -14.81 }, + { "time": 2.3667 } + ], + "translate": [ + { "time": 0.1 }, + { "time": 0.1333, "y": -8.69 }, + { "time": 0.2333, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "y": -8.69 }, + { "time": 2.3667 } + ] + }, + "eye-back-eyebrow": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.1333, "value": 14.78 }, + { "time": 0.2333, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "value": 14.78 }, + { "time": 2.3667 } + ], + "translate": [ + { "time": 0.1 }, + { "time": 0.1333, "y": -8.69 }, + { "time": 0.2333, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "y": -8.69 }, + { "time": 2.3667 } + ] + }, + "mouth": { + "rotate": [ + { "time": 0.3 }, + { "time": 0.5, "value": -11.73, "curve": "stepped" }, + { "time": 1.3, "value": -11.73 }, + { "time": 2.2667 } + ], + "translate": [ + { "time": 0.3 }, + { "time": 0.4667, "x": -3.46, "curve": "stepped" }, + { "time": 2.0667, "x": -3.46 }, + { "time": 2.1667, "x": -2.51, "y": -3.46 }, + { "time": 2.3667 } + ], + "scale": [ + { "time": 0.3 }, + { "time": 0.5333, "x": 0.778, "curve": "stepped" }, + { "time": 1.3, "x": 0.778 }, + { "time": 2.5333 } + ] + }, + "foot-front-IK": { + "translate": [ + {}, + { "time": 0.1667, "x": -90.11, "curve": "stepped" }, + { "time": 2.1, "x": -90.11 }, + { "time": 2.1667, "x": -60.07, "y": 11.03 }, + { "time": 2.3 } + ] + }, + "foot-front": { + "rotate": [ + { "time": 2.1 }, + { "time": 2.1667, "value": -15.81 }, + { "time": 2.2667 } + ] + }, + "hat": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.2667, "value": -13.9 }, + { "time": 0.6333, "value": 6.22 }, + { "time": 0.8333, "value": -1.48 }, + { "time": 1.0333, "value": 2.37 }, + { "time": 1.3667, "value": 12.29 }, + { "time": 1.6, "value": 1.92 }, + { "time": 2.2333, "value": 5.19 }, + { "time": 2.4, "value": -2.09 }, + { "time": 2.6, "value": 0.86 } + ] + }, + "hat-base": { + "translate": [ + { "time": 0.0667 }, + { "time": 0.6333, "x": 0.71, "y": -16.67, "curve": "stepped" }, + { "time": 2.2, "x": 0.71, "y": -16.67 }, + { "time": 2.4 } + ] + }, + "hair-side-front": { + "rotate": [ + {}, + { "time": 0.3667, "value": 13.8 }, + { "time": 0.6, "value": -10.12 }, + { "time": 0.8333, "value": 1.06 }, + { "time": 1.4333, "value": -18.54 }, + { "time": 1.7, "value": -2.53 }, + { "time": 1.9, "value": -7.78 }, + { "time": 2.3, "value": -0.26 }, + { "time": 2.5, "value": -4.54 }, + { "time": 2.7, "value": 0.58 }, + { "time": 2.7667 } + ] + }, + "hair-side-back": { + "rotate": [ + {}, + { "time": 0.3667, "value": 13.8 }, + { "time": 0.6, "value": -10.12 }, + { "time": 0.8333, "value": 1.06 }, + { "time": 1.4333, "value": -18.54 }, + { "time": 1.7, "value": -2.53 }, + { "time": 1.9, "value": -7.78 }, + { "time": 2.3, "value": -0.26 }, + { "time": 2.5, "value": -4.54 }, + { "time": 2.7, "value": 0.58 }, + { "time": 2.7667 } + ] + }, + "hair-bangs-front": { + "rotate": [ + {}, + { "time": 0.3667, "value": 13.8 }, + { "time": 0.6, "value": -10.12 }, + { "time": 0.8333, "value": 1.06 }, + { "time": 1.4333, "value": -18.54 }, + { "time": 1.7, "value": -2.53 }, + { "time": 1.9, "value": -7.78 }, + { "time": 2.3, "value": -0.26 }, + { "time": 2.5, "value": -4.54 }, + { "time": 2.7, "value": 0.58 }, + { "time": 2.7667 } + ] + }, + "hair-bangs-back": { + "rotate": [ + {}, + { "time": 0.3667, "value": 13.8 }, + { "time": 0.6, "value": -10.12 }, + { "time": 0.8333, "value": 1.06 }, + { "time": 1.4333, "value": -18.54 }, + { "time": 1.7, "value": -2.53 }, + { "time": 1.9, "value": -7.78 }, + { "time": 2.3, "value": -0.26 }, + { "time": 2.5, "value": -4.54 }, + { "time": 2.7, "value": 0.58 }, + { "time": 2.7667 } + ] + }, + "hand-back": { + "rotate": [ + { "time": 1.2667 }, + { "time": 1.4667, "value": -36.05, "curve": "stepped" }, + { "time": 2.0333, "value": -36.05 }, + { "time": 2.1667 } + ] + }, + "hair-strand-front-1": { + "rotate": [ + {}, + { "time": 0.3667, "value": 11.03 }, + { "time": 0.5667, "value": 2.76 }, + { "time": 0.8667, "value": 7.77 }, + { "time": 1.1667, "value": 5.56 }, + { "time": 1.4, "value": -19.57 }, + { "time": 1.6667, "value": 1.37 }, + { "time": 1.9333, "value": -8.18 }, + { "time": 2.3667, "value": -4.06 }, + { "time": 2.6667, "value": -10.62 }, + { "time": 2.7667 } + ] + }, + "hair-strand-front-3": { + "rotate": [ + {}, + { "time": 0.4333, "value": 14.31 }, + { "time": 0.6333, "value": 2.76 }, + { "time": 0.9333, "value": 7.77 }, + { "time": 1.2, "value": 5.56 }, + { "time": 1.4333, "value": -19.57 }, + { "time": 1.7, "value": 1.37 }, + { "time": 1.9667, "value": -8.18 }, + { "time": 2.4333, "value": -4.06 }, + { "time": 2.7333, "value": -10.62 }, + { "time": 2.7667 } + ] + }, + "hair-strand-back-1": { + "rotate": [ + {}, + { "time": 0.3667, "value": 12.66 }, + { "time": 0.5667, "value": 2.76 }, + { "time": 0.8667, "value": 7.77 }, + { "time": 1.1667, "value": 5.56 }, + { "time": 1.4, "value": -19.57 }, + { "time": 1.6667, "value": 1.37 }, + { "time": 1.9333, "value": -8.18 }, + { "time": 2.3667, "value": -4.06 }, + { "time": 2.6667, "value": -10.62 }, + { "time": 2.7667 } + ] + }, + "hair-strand-back-2": { + "rotate": [ + {}, + { "time": 0.2333, "value": 24.27 }, + { "time": 0.5667, "value": 2.76 }, + { "time": 0.9333, "value": 7.77 }, + { "time": 1.2333, "value": 5.56 }, + { "time": 1.4333, "value": -19.57 }, + { "time": 1.7333, "value": 1.37 }, + { "time": 1.9667, "value": -8.18 }, + { "time": 2.3667, "value": -4.06 }, + { "time": 2.6667, "value": -10.62 }, + { "time": 2.7667 } + ] + }, + "hair-strand-back-3": { + "rotate": [ + {}, + { "time": 0.3667, "value": 24.27 }, + { "time": 0.5667, "value": 2.76 }, + { "time": 0.8667, "value": 7.77 }, + { "time": 1.1667, "value": 5.56 }, + { "time": 1.4, "value": -19.57 }, + { "time": 1.6667, "value": 1.37 }, + { "time": 1.9333, "value": -8.18 }, + { "time": 2.3667, "value": -4.06 }, + { "time": 2.6667, "value": -10.62 }, + { "time": 2.7667 } + ] + }, + "hair-strand-front-2": { + "rotate": [ + {}, + { "time": 0.3667, "value": 9.64 }, + { "time": 0.5667, "value": 2.76 }, + { "time": 0.8667, "value": 7.77 }, + { "time": 1.1667, "value": 5.56 }, + { "time": 1.4, "value": -19.57 }, + { "time": 1.6667, "value": 1.37 }, + { "time": 1.9333, "value": -8.18 }, + { "time": 2.3667, "value": -4.06 }, + { "time": 2.6667, "value": -10.62 }, + { "time": 2.7667 } + ] + }, + "hair-strand-front-4": { + "rotate": [ + {}, + { "time": 0.3667, "value": 24.27 }, + { "time": 0.5667, "value": 2.76 }, + { "time": 0.8667, "value": 7.77 }, + { "time": 1.1667, "value": 5.56 }, + { "time": 1.4, "value": -19.57 }, + { "time": 1.6667, "value": 1.37 }, + { "time": 1.9333, "value": -8.18 }, + { "time": 2.3667, "value": -4.06 }, + { "time": 2.6667, "value": -10.62 }, + { "time": 2.7667 } + ] + }, + "scarf-back": { + "rotate": [ + {}, + { "time": 0.4, "value": 11.79 }, + { "time": 0.6333, "value": -3.23 }, + { "time": 0.8667, "value": 3.81 }, + { "time": 1.3667, "value": 0.28 }, + { "time": 1.6667, "value": 8.68 }, + { "time": 1.9333, "value": 2.43 }, + { "time": 2.2333, "value": -2.29 }, + { "time": 2.4667, "value": 12.44 }, + { "time": 2.7, "value": -1.01 }, + { "time": 2.7667 } + ] + }, + "skirt-rotation-back": { + "rotate": [ + {}, + { "time": 0.2667, "value": 17.27 }, + { "time": 0.5333, "value": -4.07 }, + { "time": 0.8, "value": 7.18 }, + { "time": 1.3667, "value": -8.51 }, + { "time": 1.7, "value": 3.22 }, + { "time": 2, "value": -4.66 }, + { "time": 2.3667, "value": -3.6 }, + { "time": 2.7667 } + ] + }, + "skirt-rotation-front": { + "rotate": [ + {}, + { "time": 0.2667, "value": 17.27 }, + { "time": 0.5333, "value": -4.07 }, + { "time": 0.8, "value": 7.18 }, + { "time": 1.3667, "value": -8.51 }, + { "time": 1.7, "value": 3.22 }, + { "time": 2, "value": -4.66 }, + { "time": 2.3667, "value": -3.6 }, + { "time": 2.7667 } + ] + }, + "skirt-control": { + "translate": [ + {}, + { "time": 0.3, "x": -56.15 }, + { "time": 0.5333, "x": -128.57, "y": -5.35 }, + { "time": 0.6, "x": -111.57, "y": 3.12 }, + { "time": 0.7333, "x": -77.55, "curve": "stepped" }, + { "time": 1.1, "x": -77.55 }, + { "time": 1.3667, "x": -72.2, "y": 17.38 }, + { "time": 1.6667, "x": -24.07 }, + { "time": 1.8333, "x": -2.67 }, + { "time": 2, "x": -28.08, "y": 8.02 }, + { "time": 2.2667, "x": 5.35 }, + { "time": 2.4667, "x": 3.21, "y": 16.04 }, + { "time": 2.7667 } + ] + }, + "skirt-control-middle": { + "translate": [ + {}, + { "time": 0.2, "x": -13.37, "y": -33.42 }, + { "time": 0.5667, "x": 5.92, "y": 24.83 }, + { "time": 1.1667, "x": 5.92, "y": 24.83 }, + { "time": 1.4, "x": -3.11, "y": 35.48 }, + { "time": 2.3, "x": 12.15, "y": 12.12 }, + { "time": 2.7667 } + ] + }, + "skirt-control-front-down": { + "translate": [ + {}, + { "time": 0.2333, "x": -12.91, "y": 3.49 }, + { "time": 0.7, "x": 8.16, "y": 1.87 }, + { "time": 2.5333, "x": -15.11, "y": -0.38 }, + { "time": 2.7667 } + ] + }, + "skirt-control-back-down": { + "translate": [ + {}, + { "time": 0.2333, "x": -12.91, "y": 3.49 }, + { "time": 0.7, "x": 8.16, "y": 1.87 }, + { "time": 2.5333, "x": -15.11, "y": -0.38 }, + { "time": 2.7667 } + ] + }, + "cape-back-rotator": { + "rotate": [ + { "time": 1.9667 }, + { "time": 2.2333, "value": 10.12 }, + { "time": 2.4333, "value": -21.92 }, + { "time": 2.6667 } + ] + }, + "cape-front-rotator": { + "rotate": [ + { "time": 0.2667 }, + { "time": 0.4, "value": -11.53 }, + { "time": 0.5667 } + ] + }, + "sleeve-control-back": { + "rotate": [ + {}, + { "time": 0.3333, "value": -0.24, "curve": "stepped" }, + { "time": 0.9667, "value": -0.24 }, + { "time": 1.5333, "value": -31.01, "curve": "stepped" }, + { "time": 2.0333, "value": -31.01 }, + { "time": 2.1667, "value": 14.58 }, + { "time": 2.4667 } + ], + "translate": [ + {}, + { "time": 0.3333, "x": 6.58, "y": -16.19, "curve": "stepped" }, + { "time": 0.9667, "x": 6.58, "y": -16.19 }, + { "time": 1.5333, "x": 12.34, "y": -45.5, "curve": "stepped" }, + { "time": 2.0333, "x": 12.34, "y": -45.5 }, + { "time": 2.1667, "x": -6.58, "y": -28.25 }, + { "time": 2.4667 } + ] + }, + "sleeve-control-front": { + "rotate": [ + { "time": 0.9333 }, + { "time": 1.3, "value": 22.58 }, + { "time": 1.5667 } + ], + "translate": [ + { "time": 0.9333 }, + { "time": 1.3, "x": 36.42, "y": -18.93 }, + { "time": 1.5667, "x": 1.75, "y": -23.26, "curve": "stepped" }, + { "time": 2.1333, "x": 1.75, "y": -23.26 }, + { "time": 2.3333 } + ] + }, + "cape-blue-up-front": { + "rotate": [ + {}, + { "time": 0.3667, "value": 23.6, "curve": "stepped" }, + { "time": 2.0333, "value": 23.6 }, + { "time": 2.3667 } + ], + "translate": [ + {}, + { "time": 0.3667, "x": -34.1, "y": 21.4 }, + { "time": 0.6, "x": -21.04, "y": 7.34, "curve": "stepped" }, + { "time": 1.0333, "x": -21.04, "y": 7.34 }, + { "time": 1.4, "x": -31.5, "y": 14.58, "curve": "stepped" }, + { "time": 2.0667, "x": -31.5, "y": 14.58 }, + { "time": 2.3667 } + ] + }, + "cape-blue-up-back": { + "translate": [ + { "time": 2.3333 }, + { "time": 2.4667, "x": 3.77, "y": 14.35 }, + { "time": 2.7333 } + ] + }, + "cape-blue-up": { + "rotate": [ + {}, + { "time": 0.3667, "value": 13.4 }, + { "time": 1.3333, "value": -12.27 }, + { "time": 1.6667, "value": 13.33 }, + { "time": 1.9667, "value": -7.94 }, + { "time": 2.2333, "value": -0.51 }, + { "time": 2.5, "value": 1.05 }, + { "time": 2.7667 } + ] + }, + "cape-blue-down-middle": { + "rotate": [ + {}, + { "time": 0.5333, "value": 15.72 }, + { "time": 0.8667, "value": 4.92 }, + { "time": 1, "value": -1.14 }, + { "time": 1.5, "value": -12.27 }, + { "time": 1.8333, "value": 13.33 }, + { "time": 2.1333, "value": -7.94 }, + { "time": 2.4, "value": -0.51 }, + { "time": 2.6667, "value": 1.05 }, + { "time": 2.7667 } + ] + }, + "cape-blue-down": { + "rotate": [ + { "time": 0.1667 }, + { "time": 0.4667, "value": 15.72 }, + { "time": 0.7333, "value": -0.94 }, + { "time": 1.2333, "value": 21.3 }, + { "time": 1.4333, "value": -12.27 }, + { "time": 1.7667, "value": 8.41 }, + { "time": 2.0667, "value": -7.94 }, + { "time": 2.3333, "value": -0.51 }, + { "time": 2.6, "value": 1.05 }, + { "time": 2.7667 } + ] + }, + "zip-boy": { + "rotate": [ + {}, + { "time": 0.3667, "value": 19.76 }, + { "time": 0.6333, "value": -10.84 }, + { "time": 0.9, "value": -0.83 }, + { "time": 1.4333, "value": -28.17 }, + { "time": 1.8, "value": 1.4 }, + { "time": 2.0667, "value": -20.87 }, + { "time": 2.5667, "value": 5.59 }, + { "time": 2.7667 } + ] + }, + "backpack-control": { + "translate": [ + {}, + { "time": 0.1333, "x": -30.4, "y": 15.74 }, + { "time": 0.3, "x": 31.22, "y": 18.44 }, + { "time": 0.5, "x": -39.56, "y": 29.69 }, + { "time": 0.8, "x": 3.08, "y": 31.64, "curve": "stepped" }, + { "time": 1.2, "x": 3.08, "y": 31.64 }, + { "time": 1.4, "x": -1.97, "y": -20.19 }, + { "time": 1.7, "x": 1.17, "y": 12.05 }, + { "time": 2, "x": -0.47, "y": -4.82 }, + { "time": 2.3333, "x": 1.17, "y": 12.05 }, + { "time": 2.7667 } + ] + }, + "zip-girl": { + "rotate": [ + {}, + { "time": 0.3667, "value": 19.76 }, + { "time": 0.6333, "value": -10.84 }, + { "time": 0.9, "value": -0.83 }, + { "time": 1.4333, "value": -28.17 }, + { "time": 1.8, "value": 1.4 }, + { "time": 2.0667, "value": -20.87 }, + { "time": 2.5667, "value": 5.59 }, + { "time": 2.7667 } + ] + }, + "bag-back-front": { + "translate": [ + { "time": 1.1333 }, + { "time": 1.3333, "x": 11.85, "y": 4.61 }, + { "time": 1.6667 } + ] + }, + "bag-flap": { + "translate": [ + { "time": 0.6333 }, + { "time": 0.7, "x": 15.39, "y": -1 }, + { "time": 0.8667, "x": -2.69, "y": -2.82 }, + { "time": 1.2, "x": 13.95, "y": 2.75 }, + { "time": 1.3667, "x": 51.87, "y": -4.32 }, + { "time": 1.6, "x": 15.66, "y": -1.7 }, + { "time": 1.8333, "x": 2.36, "y": -4.34 }, + { "time": 2.0667, "x": 18.23, "y": 0.81 }, + { "time": 2.7667 } + ] + }, + "cape-blue-middle-back": { + "rotate": [ + {}, + { "time": 0.5333, "value": -20.99 }, + { "time": 2.3 } + ], + "translate": [ + {}, + { "time": 1.3333, "x": -64.75, "y": 53.37 }, + { "time": 1.4667, "x": -94.98, "y": 37.57 }, + { "time": 1.7, "x": -40.49, "y": 13.55 }, + { "time": 1.8, "x": -9.86, "y": 26.36 }, + { "time": 1.9667, "x": -75.79, "y": 7.62 }, + { "time": 2.3 } + ] + }, + "cape-blue-middle-front": { + "translate": [ + { "time": 0.1667 }, + { "time": 0.5333, "x": -27.07, "y": -64.48 }, + { "time": 0.8667 } + ] + }, + "dress-control-leg-down-front": { + "rotate": [ + { "time": 1.1 }, + { "time": 1.5, "value": -25.13 } + ], + "translate": [ + { "time": 0.1333 }, + { "time": 0.3667, "x": -97.47, "curve": "stepped" }, + { "time": 1.1, "x": -97.47 }, + { "time": 1.5, "x": -57.21 } + ] + }, + "dress-control-middle": { + "translate": [ + {}, + { "time": 0.4, "x": -46.62 }, + { "time": 1.2333, "x": -46.26 }, + { "time": 1.5667, "x": -29.74, "curve": "stepped" }, + { "time": 2.2333, "x": -29.74 }, + { "time": 2.5333 } + ] + }, + "cape-blue-down-front": { + "rotate": [ + {}, + { "time": 0.4, "value": 38.86 }, + { "time": 0.8667, "value": -51.06 }, + { "time": 1.1667, "value": 32.14 }, + { "time": 1.3667, "value": 3 }, + { "time": 2.3667, "value": 0.86 }, + { "time": 2.5667, "value": 11.18 }, + { "time": 2.7667 } + ] + }, + "cape-blue-down-back": { + "rotate": [ + { "time": 1.1 }, + { "time": 1.5333, "value": -43.88 }, + { "time": 1.8333, "value": -9.8 }, + { "time": 2.7667 } + ], + "translate": [ + { "time": 1.1333 }, + { "time": 1.5333, "x": -97.95, "y": -18.04 }, + { "time": 1.7, "x": -12.52, "y": -46.08 }, + { "time": 1.8333, "x": -14.67, "y": 15 }, + { "time": 2.7667 } + ] + } + }, + "transform": { + "leg-down-back": [ + { "mixScaleX": 0, "mixShearY": 0 }, + { "time": 0.1333, "mixRotate": 0, "mixX": 0.026, "mixScaleX": 0, "mixShearY": 0, "curve": "stepped" }, + { "time": 1.1667, "mixRotate": 0, "mixX": 0.026, "mixScaleX": 0, "mixShearY": 0 }, + { "time": 1.2667, "mixRotate": 0.1905, "mixX": 0.2115, "mixScaleX": 0, "mixShearY": 0 }, + { "time": 1.5333, "mixScaleX": 0, "mixShearY": 0, "curve": "stepped" }, + { "time": 2.0667, "mixScaleX": 0, "mixShearY": 0 }, + { "time": 2.1, "mixRotate": 0.217, "mixX": 0.078, "mixScaleX": 0, "mixShearY": 0 }, + { "time": 2.4667, "mixScaleX": 0, "mixShearY": 0 } + ], + "leg-down-down": [ + { "mixScaleX": 0, "mixShearY": 0 }, + { "time": 0.0667, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 }, + { "time": 0.3333, "mixScaleX": 0, "mixShearY": 0, "curve": "stepped" }, + { "time": 1.0667, "mixScaleX": 0, "mixShearY": 0 }, + { "time": 1.3667, "mixX": 0.774, "mixScaleX": 0, "mixShearY": 0 }, + { "time": 2.7667, "mixScaleX": 0, "mixShearY": 0 } + ], + "leg-down-front": [ + { "mixScaleX": 0, "mixShearY": 0 }, + { "time": 0.2333, "mixX": 0.609, "mixScaleX": 0, "mixShearY": 0 }, + { "time": 0.3667, "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0, "curve": "stepped" }, + { "time": 2.1, "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 }, + { "time": 2.5, "mixScaleX": 0, "mixShearY": 0 } + ] + } + }, + "idle": { + "bones": { + "hips": { + "translate": [ + { + "x": 9.34, + "y": -2.33, + "curve": [ 0.179, 9.34, 0.471, 10.59, 0.179, -2.33, 0.471, -2.96 ] + }, + { + "time": 0.7333, + "x": 11.53, + "y": -3.43, + "curve": [ 0.899, 10.31, 1.054, 9.34, 0.899, -2.82, 1.054, -2.33 ] + }, + { "time": 1.1667, "x": 9.34, "y": -2.33 } + ] + }, + "body-up": { + "rotate": [ + { "value": -0.34 }, + { "time": 0.6, "value": 1.7 }, + { "time": 1.1667, "value": -0.34 } + ], + "translate": [ + {}, + { "time": 0.4667, "x": 5.83, "y": -0.23 }, + { "time": 1.1667 } + ] + }, + "arm-front-up": { + "rotate": [ + { "value": -12.12 }, + { "time": 0.5, "value": -14.38 }, + { "time": 0.9, "value": -12.34 }, + { "time": 1.1667, "value": -12.12 } + ] + }, + "arm-front-down": { + "rotate": [ + { "value": 28.61 }, + { "time": 0.3667, "value": 16.76 }, + { "time": 1, "value": 33.35 }, + { "time": 1.1667, "value": 28.61 } + ] + }, + "arm-back-up": { + "rotate": [ + { "value": -2.69 }, + { "time": 0.3333, "value": 5.25 }, + { "time": 0.9667, "value": -2.18 }, + { "time": 1.1667, "value": -2.69 } + ] + }, + "arm-back-down": { + "rotate": [ + { "value": 21.54 }, + { "time": 0.3333, "value": 2.11 }, + { "time": 0.8333, "value": 31.21 }, + { "time": 1.1667, "value": 21.54 } + ] + }, + "body-down": { + "rotate": [ + { + "curve": [ 0.117, 0, 0.35, -0.13 ] + }, + { + "time": 0.4667, + "value": -0.13, + "curve": [ 0.968, -0.14, 0.992, 0 ] + }, + { "time": 1.1667 } + ] + }, + "neck": { + "rotate": [ + { + "curve": [ 0.092, 0, 0.275, -1.62 ] + }, + { + "time": 0.3667, + "value": -1.62, + "curve": [ 0.567, -1.62, 0.967, 0 ] + }, + { "time": 1.1667 } + ] + }, + "hair-strand-front-4": { + "rotate": [ + {}, + { "time": 0.7333, "value": -6.05 }, + { "time": 1.1667 } + ] + }, + "hair-strand-front-2": { + "rotate": [ + {}, + { "time": 0.4333, "value": -10.79 }, + { "time": 1.1667 } + ] + }, + "hair-strand-front-3": { + "rotate": [ + {}, + { "time": 0.6, "value": -11.49 }, + { "time": 1.1667 } + ] + }, + "hair-strand-front-1": { + "rotate": [ + {}, + { "time": 0.7333, "value": -10.79 }, + { "time": 1.1667 } + ] + }, + "hair-strand-back-2": { + "rotate": [ + {}, + { "time": 0.5667, "value": -12.75 }, + { "time": 1.1667 } + ] + }, + "hair-strand-back-3": { + "rotate": [ + {}, + { "time": 0.3333, "value": -8.16 }, + { "time": 1.1667 } + ] + }, + "hair-strand-back-1": { + "rotate": [ + {}, + { "time": 0.5333, "value": -6.11 }, + { "time": 1.1667 } + ] + }, + "scarf-back": { + "rotate": [ + {}, + { "time": 0.4667, "value": 5.82 }, + { "time": 1.1667 } + ] + }, + "head-control": { + "translate": [ + {}, + { "time": 0.4, "x": -10.56, "y": -3.74 }, + { "time": 1.1667 } + ] + }, + "hair-side-front": { + "rotate": [ + {}, + { "time": 0.3333, "value": -5.84 }, + { "time": 0.8, "value": 2.68 }, + { "time": 1.1667 } + ] + }, + "hair-side-back": { + "rotate": [ + {}, + { "time": 0.3333, "value": -3.31 }, + { "time": 0.8, "value": 3.56 }, + { "time": 1.1667 } + ] + }, + "hair-bangs-front": { + "rotate": [ + {}, + { "time": 0.4333, "value": 8.38 }, + { "time": 0.8, "value": 8.31 }, + { "time": 1.1667 } + ] + }, + "hair-bangs-back": { + "rotate": [ + {}, + { "time": 0.4333, "value": -13.14 }, + { "time": 0.8, "value": -2.84 }, + { "time": 1.1667 } + ] + }, + "hat": { + "rotate": [ + {}, + { "time": 0.4, "value": -5.13 }, + { "time": 0.8667, "value": 5.56 }, + { "time": 1.1667 } + ] + }, + "hat-control": { + "translate": [ + {}, + { "time": 0.5333, "x": -16.39, "y": -19.27 }, + { "time": 1.1667 } + ] + }, + "zip-girl": { + "rotate": [ + {}, + { "time": 0.2667, "value": -7.05 }, + { "time": 0.6333, "value": -2.82 }, + { "time": 0.9333, "value": -6.4 }, + { "time": 1.1667 } + ] + }, + "bag": { + "rotate": [ + {}, + { "time": 0.5667, "value": -6.05 }, + { "time": 0.9333, "value": 3.23 }, + { "time": 1.1667 } + ], + "translate": [ + {}, + { "time": 0.3333, "x": 1.12, "y": 11.76 }, + { "time": 1.1667 } + ] + }, + "bag-control": { + "translate": [ + {}, + { "time": 0.4667, "x": -17.12, "y": -0.3 }, + { "time": 1.1667 } + ] + }, + "cape-blue-up": { + "rotate": [ + {}, + { "time": 0.5667, "value": -5.28 }, + { "time": 1.1667 } + ] + }, + "cape-blue-middle-front": { + "translate": [ + {}, + { "time": 0.4333, "x": 10.87, "y": -26.11 }, + { "time": 0.8333, "x": 4.94, "y": -10.56 }, + { "time": 1.1667 } + ] + }, + "cape-blue-middle-back": { + "translate": [ + {}, + { "time": 0.4333, "x": 0.09, "y": -6.56 }, + { "time": 0.8333, "x": 0.04, "y": -1.67 }, + { "time": 1.1667 } + ] + }, + "cape-blue-down-front": { + "translate": [ + {}, + { "time": 0.3333, "x": 2.54, "y": 27.58 }, + { "time": 0.7, "x": 1.66, "y": -5.56 }, + { "time": 1.1667 } + ] + }, + "cape-blue-down-back": { + "translate": [ + {}, + { "time": 0.3333, "x": 0.04, "y": -13.13 }, + { "time": 0.8333, "x": -0.01, "y": -24.95 }, + { "time": 1.1667 } + ] + }, + "cape-blue-up-front": { + "rotate": [ + {}, + { "time": 0.3333, "value": 2.56 }, + { "time": 0.7667, "value": -0.44 }, + { "time": 1.1667 } + ], + "translate": [ + {}, + { + "time": 0.5, + "x": -8.76, + "y": 13.54, + "curve": [ 0.667, -8.76, 1, 0, 0.667, 13.54, 1, 0 ] + }, + { "time": 1.1667 } + ] + }, + "cape-blue-control": { + "translate": [ + {}, + { "time": 0.5333, "x": 7.66 }, + { "time": 1.1667 } + ] + }, + "dress-control-leg-down-front": { + "translate": [ + {}, + { "time": 0.5333, "x": 1.91, "y": -7.42 }, + { "time": 1.1667 } + ] + }, + "dress-control-leg-up-front": { + "translate": [ + {}, + { "time": 0.5333, "x": -0.01, "y": -7.66 }, + { "time": 1.1667 } + ] + }, + "dress-control-leg-down-back": { + "translate": [ + {}, + { "time": 0.5333, "x": 1.5, "y": -7.52 }, + { "time": 1.1667 } + ] + }, + "dress-control-leg-up-back": { + "translate": [ + {}, + { "time": 0.5333, "x": -0.61, "y": -7.64 }, + { "time": 1.1667 } + ] + }, + "cape-red-front-inside": { + "translate": [ + {}, + { "time": 0.4333, "x": 0.64, "y": 6.68 }, + { "time": 1.1667 } + ] + }, + "cape-red-back-inside": { + "translate": [ + {}, + { "time": 0.6667, "x": 0.64, "y": 6.68 }, + { "time": 1.1667 } + ] + }, + "skirt-rotation-back": { + "rotate": [ + {}, + { "time": 0.3667, "value": -2.3 }, + { "time": 1.1667 } + ] + }, + "skirt-rotation-front": { + "rotate": [ + {}, + { "time": 0.5333, "value": -3.07 }, + { "time": 1.1667 } + ] + }, + "backpack-control": { + "translate": [ + {}, + { "time": 0.4, "x": 15.06, "y": 4.96 }, + { "time": 0.7333, "x": -8.66, "y": 12.95 }, + { "time": 1.1667 } + ] + }, + "zip-boy": { + "rotate": [ + {}, + { "time": 0.3333, "value": -12.26 }, + { "time": 0.6333 }, + { "time": 0.9, "value": -12.26 }, + { "time": 1.1667 } + ] + }, + "skirt-control-middle": { + "translate": [ + {}, + { "time": 0.7667, "x": -7.43 }, + { "time": 1.1667 } + ] + }, + "skirt-control-up": { + "translate": [ + {}, + { "time": 0.7333, "x": 18.07, "y": 6.94 }, + { "time": 1.1667 } + ] + } + } + }, + "walk": { + "bones": { + "head-control": { + "translate": [ + { "x": 0.76, "y": -48.95 }, + { "time": 0.2333, "x": -14.41, "y": -38.22 }, + { "time": 0.3667, "x": 0.76, "y": -30.16 }, + { "time": 0.5333, "x": -9.39, "y": -42.69 }, + { "time": 0.6667, "x": 0.76, "y": -48.95 } + ] + }, + "features-control": { + "scale": [ + { "x": 0.856 } + ] + }, + "eye-front-pupil": { + "translate": [ + { "x": 8.95 }, + { "time": 0.3, "x": 14.07, "y": -1.22 }, + { "time": 0.6667, "x": 8.95 } + ] + }, + "eye-back-pupil": { + "translate": [ + { "x": 8.95 }, + { "time": 0.3, "x": 14.07, "y": -1.22 }, + { "time": 0.6667, "x": 8.95 } + ] + }, + "eye-back": { + "translate": [ + { "x": 2.24 } + ], + "scale": [ + { "x": 0.799 } + ] + }, + "eye-front": { + "scale": [ + { "x": 1.182 } + ] + }, + "foot-front-IK": { + "translate": [ + { "x": 170.4, "y": 49.42 }, + { "time": 0.0333, "x": 168.7, "y": -1.7 }, + { "time": 0.3, "x": -92.75, "y": -1.7 }, + { "time": 0.4333, "x": -34.08, "y": 47.71 }, + { "time": 0.6667, "x": 170.4, "y": 49.42 } + ] + }, + "leg-up": { + "translate": [ + { "x": 30.67 } + ] + }, + "foot-back-IK": { + "translate": [ + { "x": -168.7 }, + { "time": 0.1, "x": -123.6, "y": 42.6 }, + { "time": 0.3, "x": 52.82, "y": 50.97 }, + { "time": 0.3667, "x": 82.52, "y": -0.62 }, + { "time": 0.6667, "x": -168.7 } + ] + }, + "leg-up-back": { + "translate": [ + { "x": -28.97 } + ] + }, + "arm-back-control": { + "translate": [ + { "y": 5.61 } + ] + }, + "arm-front-control": { + "translate": [ + { "y": -4.58 } + ] + }, + "body-up": { + "rotate": [ + { "value": -15.04 }, + { "time": 0.3, "value": -3.33 }, + { "time": 0.6667, "value": -15.04 } + ] + }, + "neck": { + "rotate": [ + { "value": 8.91 } + ] + }, + "arm-front-down": { + "rotate": [ + { "value": -13.74 }, + { "time": 0.1, "value": -33.82 }, + { "time": 0.4, "value": 36.45 }, + { "time": 0.6667, "value": -13.74 } + ] + }, + "arm-front-up": { + "rotate": [ + { "value": -7.66 }, + { "time": 0.3, "value": 33.47 }, + { "time": 0.6667, "value": -7.66 } + ] + }, + "foot-front": { + "rotate": [ + { "value": 29.81 }, + { "time": 0.1, "curve": "stepped" }, + { "time": 0.3 }, + { "time": 0.3667, "value": -34.4 }, + { "time": 0.4667, "value": -33.47 }, + { "time": 0.6667, "value": 29.81 } + ] + }, + "foot-back": { + "rotate": [ + {}, + { "time": 0.0333, "value": -38.36 }, + { "time": 0.2333, "value": -55.8 }, + { "time": 0.3, "value": 27.44 }, + { "time": 0.4 } + ] + }, + "hips": { + "translate": [ + { "y": -20.45 }, + { "time": 0.0333, "y": -30.67 }, + { "time": 0.1, "y": -5.11 }, + { "time": 0.2333 }, + { "time": 0.3667, "y": -30.67 }, + { "time": 0.4, "y": -5.11 }, + { "time": 0.4667 }, + { "time": 0.6667, "y": -20.45 } + ] + }, + "arm-back-down": { + "rotate": [ + { "value": 23.02 }, + { "time": 0.1, "value": 43.78 }, + { "time": 0.4, "value": -28.87 }, + { "time": 0.6667, "value": 23.02 } + ], + "scale": [ + { "x": 0.637 }, + { "time": 0.2667, "x": 0.755 }, + { "time": 0.6667, "x": 0.637 } + ] + }, + "arm-back-up": { + "rotate": [ + { "value": 38.53 }, + { "time": 0.3667, "value": -24.46 }, + { "time": 0.6667, "value": 38.53 } + ] + }, + "skirt-control": { + "translate": [ + { "y": -17.04 }, + { "time": 0.1333, "y": 35.78 }, + { "time": 0.3, "y": -17.04 }, + { "time": 0.4333, "y": 35.78 }, + { "time": 0.6667, "y": -17.04 } + ] + }, + "skirt-rotation-back": { + "rotate": [ + {}, + { "time": 0.1, "value": 23.48 }, + { "time": 0.2667, "value": -2.5 }, + { "time": 0.4667, "value": 27.3 }, + { "time": 0.6667 } + ] + }, + "skirt-rotation-front": { + "rotate": [ + { "value": -12.71 }, + { "time": 0.1333 }, + { "time": 0.2667, "value": -21.18 }, + { "time": 0.4333 }, + { "time": 0.5333, "value": -21.18 }, + { "time": 0.6667, "value": -12.71 } + ] + }, + "skirt-control-middle": { + "translate": [ + {}, + { "time": 0.1, "x": -17.04 }, + { "time": 0.2333, "x": 1.7 }, + { "time": 0.3 }, + { "time": 0.4, "x": -17.04 }, + { "time": 0.4667, "x": 1.7 }, + { "time": 0.6667 } + ] + }, + "skirt-control-front-down": { + "translate": [ + {}, + { "time": 0.1, "x": -17.04 }, + { "time": 0.2333, "x": 1.7 }, + { "time": 0.3 }, + { "time": 0.4, "x": -17.04 }, + { "time": 0.4667, "x": 1.7 }, + { "time": 0.6667 } + ] + }, + "skirt-control-back-down": { + "translate": [ + {}, + { "time": 0.1, "x": -17.04 }, + { "time": 0.2333, "x": 1.7 }, + { "time": 0.3 }, + { "time": 0.4, "x": -17.04 }, + { "time": 0.4667, "x": 1.7 }, + { "time": 0.6667 } + ] + }, + "head": { + "rotate": [ + { "value": 2.83 }, + { "time": 0.1333, "value": -0.34 }, + { "time": 0.4333, "value": 7.06 }, + { "time": 0.6667, "value": 2.83 } + ] + }, + "hair-side-front": { + "rotate": [ + {}, + { "time": 0.2333, "value": -19.54 }, + { "time": 0.6667 } + ], + "scale": [ + { "time": 0.1 }, + { "time": 0.3, "x": 0.915 }, + { "time": 0.6 } + ] + }, + "hat": { + "rotate": [ + { "value": -5 }, + { "time": 0.1333, "value": -30.58 }, + { "time": 0.4333, "value": 29.1 }, + { "time": 0.6667, "value": -5 } + ] + }, + "body-down": { + "rotate": [ + {}, + { "time": 0.3, "value": -5.53 }, + { "time": 0.6667 } + ] + }, + "backpack": { + "rotate": [ + {}, + { "time": 0.3, "value": 0.81 }, + { "time": 0.6667 } + ], + "translate": [ + {}, + { "time": 0.1333, "x": 11.14 }, + { "time": 0.3 }, + { "time": 0.4333, "x": 13.74 }, + { "time": 0.6667 } + ] + }, + "backpack-control": { + "translate": [ + { "x": -3.64, "y": 10.08 }, + { "time": 0.2333, "x": 27.31, "y": -12.48 }, + { "time": 0.3667, "x": -50.45, "y": -42.94 }, + { "time": 0.4667, "x": 16.84, "y": -10.4 }, + { "time": 0.6667, "x": -3.64, "y": 10.08 } + ] + }, + "zip-boy": { + "rotate": [ + { "value": -19.74 }, + { "time": 0.1, "value": -54.66 }, + { "time": 0.4333, "value": 50.11 }, + { "time": 0.6667, "value": -19.74 } + ] + }, + "zip-girl": { + "rotate": [ + { "value": 25.57 }, + { "time": 0.1, "value": 62.19 }, + { "time": 0.4333, "value": -47.67 }, + { "time": 0.6667, "value": 25.57 } + ] + }, + "scarf-back": { + "rotate": [ + { "value": 5.28 }, + { "time": 0.2667, "value": -13.54 }, + { "time": 0.3667, "value": 8.42 }, + { "time": 0.4667, "value": -14.72 }, + { "time": 0.6667, "value": 5.28 } + ], + "translate": [ + {}, + { "time": 0.3667, "y": -17.01 }, + { "time": 0.6667 } + ] + }, + "sleeve-control-back": { + "translate": [ + { "time": 0.2667 }, + { "time": 0.3667, "x": -15.94, "y": 32.49 }, + { "time": 0.4, "x": 1.01, "y": 1.37 } + ] + }, + "bag": { + "rotate": [ + { + "value": -18.46, + "curve": [ 0.038, -27.57, 0.074, -34.41 ] + }, + { + "time": 0.1, + "value": -34.41, + "curve": [ 0.183, -34.41, 0.35, 21.8 ] + }, + { + "time": 0.4333, + "value": 21.8, + "curve": [ 0.49, 21.8, 0.585, -2.36 ] + }, + { "time": 0.6667, "value": -18.46 } + ], + "translate": [ + {}, + { "time": 0.1, "x": -44.06, "y": -6.77 }, + { "time": 0.4333, "x": -9.9, "y": -30.44 }, + { "time": 0.6667 } + ] + }, + "bag-control": { + "translate": [ + { "x": -32.3 }, + { "time": 0.1333, "x": 7.65, "y": -11.37 }, + { "time": 0.4333, "x": -5.1 }, + { "time": 0.6667, "x": -32.3 } + ] + }, + "bag-flap": { + "translate": [ + {}, + { "time": 0.3, "x": 38.46, "y": -36.26 }, + { "time": 0.4333 } + ] + }, + "hair-strand-front-1": { + "rotate": [ + { "value": 0.25 }, + { "time": 0.2333, "value": 16.54 }, + { "time": 0.6, "value": -3.01 }, + { "time": 0.6667, "value": 0.25 } + ] + }, + "hair-strand-front-3": { + "rotate": [ + { "value": -0.23 }, + { "time": 0.1333, "value": -9.51 }, + { "time": 0.4, "value": 18.33 }, + { "time": 0.6667, "value": -0.23 } + ] + }, + "hair-strand-back-1": { + "rotate": [ + { "value": -3.32 }, + { "time": 0.1, "value": -9.51 }, + { "time": 0.3667, "value": 18.33 }, + { "time": 0.6667, "value": -3.32 } + ] + }, + "hair-strand-back-2": { + "rotate": [ + { "value": -0.53 }, + { "time": 0.1333, "value": -9.51 }, + { "time": 0.4, "value": 17.42 }, + { "time": 0.6667, "value": -0.53 } + ] + }, + "hair-strand-back-3": { + "rotate": [ + { "value": -9.51 }, + { "time": 0.2667, "value": 0.95 }, + { "time": 0.6667, "value": -9.51 } + ] + }, + "hair-strand-front-2": { + "rotate": [ + { "value": -9.51 }, + { "time": 0.2667, "value": 12.43 }, + { "time": 0.6667, "value": -9.51 } + ] + }, + "hair-strand-front-4": { + "rotate": [ + { "value": -16.37 }, + { "time": 0.2667, "value": -1.14 }, + { "time": 0.6667, "value": -16.37 } + ] + }, + "cape-blue-control": { + "translate": [ + { "x": -0.59, "y": 9.92 }, + { "time": 0.1333, "y": 0.51 }, + { "time": 0.4667, "x": -1.38, "y": 22.46 }, + { "time": 0.6667, "x": -0.59, "y": 9.92 } + ] + }, + "cape-blue-up": { + "rotate": [ + { "value": -3.59 }, + { "time": 0.2667, "value": -20.08 }, + { "time": 0.6667, "value": -3.59 } + ] + }, + "cape-blue-down": { + "rotate": [ + { "value": -19.53 }, + { "time": 0.2667, "value": 12.13 }, + { "time": 0.6667, "value": -19.53 } + ] + }, + "cape-blue-middle-front": { + "translate": [ + { "x": 20.13, "y": 41.93 }, + { "time": 0.3, "x": -23.25, "y": 5.51 }, + { "time": 0.4333, "x": 4.64, "y": -3.95 }, + { "time": 0.5667, "x": 5.7, "y": 93.66 }, + { "time": 0.6667, "x": 20.13, "y": 41.93 } + ] + }, + "dress-control-leg-up-back": { + "rotate": [ + { "value": 39.47 }, + { "time": 0.1, "curve": "stepped" }, + { "time": 0.5 }, + { "time": 0.6667, "value": 39.47 } + ], + "translate": [ + { "x": 55, "y": 46.04 }, + { "time": 0.1, "curve": "stepped" }, + { "time": 0.5 }, + { "time": 0.6667, "x": 55, "y": 46.04 } + ], + "scale": [ + { "x": 0.753, "y": 0.753 }, + { "time": 0.1 }, + { "time": 0.2667, "x": 0.616 }, + { "time": 0.5 }, + { "time": 0.6667, "x": 0.753, "y": 0.753 } + ] + }, + "dress-control-middle": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.2667, "value": -43.74 }, + { "time": 0.5, "value": -0.49 }, + { "time": 0.6667 } + ], + "translate": [ + { "x": 56.15 }, + { "time": 0.2, "x": -74.87 }, + { "time": 0.2667, "x": -40.44, "y": 20.05 }, + { "time": 0.4333, "x": 45.63 }, + { "time": 0.6667, "x": 56.15 } + ] + }, + "dress-control-foot-back": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.3667, "value": 80.78 }, + { "time": 0.5 } + ], + "translate": [ + { "x": 79.3, "y": 61.39 }, + { "time": 0.1 }, + { "time": 0.2667, "y": 131.03 }, + { "time": 0.5 }, + { "time": 0.6667, "x": 79.3, "y": 61.39 } + ] + }, + "dress-control-leg-up-front": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.3333, "value": -19.11 }, + { "time": 0.5 } + ], + "translate": [ + {}, + { "time": 0.1, "y": 8.02 }, + { "time": 0.3333, "x": -8.32, "y": 1.88 }, + { "time": 0.4333, "x": 9.36, "y": 1.34 }, + { "time": 0.5, "x": 25.4 }, + { "time": 0.6667 } + ], + "scale": [ + { "y": 1.243 }, + { "time": 0.1, "y": 1.257 }, + { "time": 0.3333, "y": 1.148 }, + { "time": 0.6667, "y": 1.243 } + ] + }, + "dress-control-leg-down-back": { + "translate": [ + { "x": 63.95, "y": 26.86 }, + { "time": 0.1, "curve": "stepped" }, + { "time": 0.5 }, + { "time": 0.6667, "x": 63.95, "y": 26.86 } + ] + }, + "dress-control-leg-down-front": { + "rotate": [ + { "value": -38.71 }, + { "time": 0.3333, "value": -26.56 }, + { "time": 0.5, "value": -15.76 }, + { "time": 0.6667, "value": -38.71 } + ], + "translate": [ + {}, + { "time": 0.1, "x": 12.03, "y": 33.43 }, + { "time": 0.3333, "x": -18.24, "y": 11.21 }, + { "time": 0.5, "x": 21.39 }, + { "time": 0.6667 } + ], + "scale": [ + { "time": 0.1 }, + { "time": 0.3333, "y": 1.851 }, + { "time": 0.6667 } + ] + }, + "dress-control-foot-front": { + "rotate": [ + { "value": -60.57 }, + { "time": 0.1, "value": -108.41 }, + { "time": 0.3333, "value": -26.56 }, + { "time": 0.5 }, + { "time": 0.6667, "value": -60.57 } + ], + "translate": [ + { "x": -49.47, "y": 36.1 }, + { "time": 0.1, "x": -45.46, "y": 97.6 }, + { "time": 0.3333, "x": -65.74, "y": 15.26 }, + { "time": 0.5 }, + { "time": 0.6667, "x": -49.47, "y": 36.1 } + ] + }, + "cape-blue-up-back": { + "rotate": [ + {}, + { "time": 0.3667, "value": 21.34 }, + { "time": 0.6667 } + ], + "translate": [ + { "x": 0.44, "y": 7.22 }, + { "time": 0.2333, "x": -36.78, "y": 21.02 }, + { "time": 0.3667, "x": -23.97, "y": 31.85 }, + { "time": 0.6667, "x": 0.44, "y": 7.22 } + ] + }, + "cape-blue-up-front": { + "translate": [ + {}, + { "time": 0.2333, "x": -23.13, "y": 5.32 }, + { "time": 0.6667 } + ] + }, + "cape-blue-down-front": { + "rotate": [ + {}, + { "time": 0.2333, "value": 36.76 }, + { "time": 0.3333, "value": 64.89 }, + { "time": 0.4333, "value": 41.43 }, + { "time": 0.5667, "value": -75.87 }, + { "time": 0.6667 } + ], + "translate": [ + { "x": 27.47, "y": 19.9 }, + { "time": 0.1, "x": 45.24, "y": 75.16 }, + { "time": 0.1667, "x": -7, "y": 77.7 }, + { "time": 0.4333, "x": -9.12, "y": 13.58 }, + { "time": 0.6667, "x": 27.47, "y": 19.9 } + ] + }, + "cape-blue-down-middle": { + "translate": [ + { "x": -27.47, "y": -19.9 }, + { "time": 0.2667 }, + { "time": 0.4667, "x": -54.77, "y": 11.14 }, + { "time": 0.6667, "x": -27.47, "y": -19.9 } + ] + }, + "cape-blue-down-back": { + "translate": [ + { "x": -82.17, "y": 5.71 }, + { "time": 0.2333 }, + { "time": 0.4667, "x": 54.77, "y": -11.14 }, + { "time": 0.6667, "x": -82.17, "y": 5.71 } + ] + }, + "cape-front-rotator": { + "rotate": [ + {}, + { "time": 0.2667, "value": -62.01 }, + { "time": 0.4667 } + ] + }, + "cape-back-rotator": { + "rotate": [ + { "value": -8.52 }, + { "time": 0.2333, "value": 34.05 }, + { "time": 0.3667, "value": -6.62 }, + { "time": 0.6667, "value": -8.52 } + ] + }, + "hair-side-back": { + "rotate": [ + { "value": 8.35 }, + { "time": 0.2, "value": 15.57 }, + { "time": 0.4, "value": 4.89 }, + { "time": 0.6667, "value": 8.35 } + ], + "translate": [ + { "x": 10.23, "y": -7.69 }, + { "time": 0.2, "x": 3.1, "y": -0.52 }, + { "time": 0.4, "x": 29.45, "y": 3.35 }, + { "time": 0.6667, "x": 10.23, "y": -7.69 } + ] + }, + "hair-bangs-back": { + "rotate": [ + {}, + { "time": 0.1667, "value": 29.31 }, + { "time": 0.4333, "value": -32.57 }, + { "time": 0.6667 } + ] + } + }, + "transform": { + "leg-down-back": [ + { "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0, "curve": "stepped" }, + { "time": 0.1, "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 }, + { "time": 0.3333, "mixScaleX": 0, "mixShearY": 0 }, + { "time": 0.5667, "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 } + ], + "leg-down-back-up": [ + { "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0, "curve": "stepped" }, + { "time": 0.1, "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 }, + { "time": 0.3333, "mixScaleX": 0, "mixShearY": 0 }, + { "time": 0.5667, "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 } + ], + "leg-down-down": [ + { "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 } + ], + "leg-down-front": [ + { "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 } + ], + "leg-up": [ + { "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 } + ], + "leg-up-back": [ + { "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 }, + { "time": 0.3333, "mixScaleX": 0, "mixShearY": 0 }, + { "time": 0.5667, "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 } + ] + } + } +} +} \ No newline at end of file diff --git a/spine-haxe/example/assets/mix-and-match-pro.skel b/spine-haxe/example/assets/mix-and-match-pro.skel new file mode 100644 index 0000000000..e57bc08a0f Binary files /dev/null and b/spine-haxe/example/assets/mix-and-match-pro.skel differ diff --git a/spine-haxe/example/assets/mix-and-match.atlas b/spine-haxe/example/assets/mix-and-match.atlas new file mode 100644 index 0000000000..3cab05d5ec --- /dev/null +++ b/spine-haxe/example/assets/mix-and-match.atlas @@ -0,0 +1,362 @@ +mix-and-match.png + size: 1024, 512 + filter: Linear, Linear + scale: 0.5 +base-head + bounds: 587, 2, 95, 73 +boy/arm-front + bounds: 558, 271, 36, 115 +boy/backpack + bounds: 235, 109, 119, 153 +boy/backpack-pocket + bounds: 328, 73, 34, 62 + rotate: 90 +boy/backpack-strap-front + bounds: 665, 79, 38, 88 +boy/backpack-up + bounds: 395, 364, 21, 70 + rotate: 90 +boy/body + bounds: 251, 264, 97, 132 + rotate: 90 +boy/boot-ribbon-front + bounds: 648, 131, 9, 11 +boy/collar + bounds: 744, 4, 73, 29 + rotate: 90 +boy/ear + bounds: 383, 109, 19, 23 + rotate: 90 +boy/eye-back-low-eyelid + bounds: 739, 284, 17, 6 + rotate: 90 +boy/eye-back-pupil + bounds: 832, 443, 8, 9 + rotate: 90 +boy/eye-back-up-eyelid + bounds: 558, 264, 23, 5 +boy/eye-back-up-eyelid-back + bounds: 802, 491, 19, 10 + rotate: 90 +boy/eye-front-low-eyelid + bounds: 386, 363, 22, 7 + rotate: 90 +boy/eye-front-pupil + bounds: 816, 389, 9, 9 +boy/eye-front-up-eyelid + bounds: 160, 71, 31, 6 + rotate: 90 +boy/eye-front-up-eyelid-back + bounds: 801, 434, 26, 9 + rotate: 90 +boy/eye-iris-back + bounds: 618, 264, 17, 17 +boy/eye-iris-front + bounds: 727, 264, 18, 18 +boy/eye-white-back + bounds: 580, 131, 20, 12 +boy/eye-white-front + bounds: 510, 130, 27, 13 +boy/eyebrow-back + bounds: 751, 88, 20, 11 + rotate: 90 +boy/eyebrow-front + bounds: 483, 130, 25, 11 +boy/hair-back + bounds: 494, 388, 122, 81 + rotate: 90 +boy/hair-bangs + bounds: 667, 284, 70, 37 +boy/hair-side + bounds: 789, 374, 25, 43 +boy/hand-backfingers + bounds: 467, 364, 19, 21 +boy/hand-front-fingers + bounds: 488, 364, 19, 21 +boy/hat + bounds: 615, 417, 93, 56 + rotate: 90 +boy/leg-front + bounds: 138, 104, 31, 158 +boy/mouth-close + bounds: 551, 365, 21, 5 + rotate: 90 +girl-blue-cape/mouth-close + bounds: 551, 365, 21, 5 + rotate: 90 +girl-spring-dress/mouth-close + bounds: 551, 365, 21, 5 + rotate: 90 +girl/mouth-close + bounds: 551, 365, 21, 5 + rotate: 90 +boy/mouth-smile + bounds: 705, 79, 29, 7 +boy/nose + bounds: 836, 473, 17, 10 + rotate: 90 +boy/pompom + bounds: 747, 273, 48, 43 + rotate: 90 +boy/zip + bounds: 648, 144, 14, 23 +girl-blue-cape/back-eyebrow + bounds: 602, 131, 18, 12 +girl-blue-cape/body-dress + bounds: 2, 264, 109, 246 +girl-blue-cape/body-ribbon + bounds: 615, 283, 50, 38 +girl-blue-cape/cape-back + bounds: 2, 69, 134, 193 +girl-blue-cape/cape-back-up + bounds: 386, 387, 123, 106 + rotate: 90 +girl-blue-cape/cape-ribbon + bounds: 675, 264, 50, 18 +girl-blue-cape/cape-shoulder-back + bounds: 751, 110, 49, 59 +girl-blue-cape/cape-shoulder-front + bounds: 113, 264, 62, 76 + rotate: 90 +girl-blue-cape/cape-up-front + bounds: 399, 264, 98, 117 + rotate: 90 +girl-blue-cape/ear + bounds: 775, 2, 19, 23 +girl-spring-dress/ear + bounds: 775, 2, 19, 23 +girl/ear + bounds: 775, 2, 19, 23 +girl-blue-cape/eye-back-low-eyelid + bounds: 802, 463, 17, 6 +girl-spring-dress/eye-back-low-eyelid + bounds: 802, 463, 17, 6 +girl/eye-back-low-eyelid + bounds: 802, 463, 17, 6 +girl-blue-cape/eye-back-pupil + bounds: 816, 367, 8, 9 +girl-spring-dress/eye-back-pupil + bounds: 816, 367, 8, 9 +girl/eye-back-pupil + bounds: 816, 367, 8, 9 +girl-blue-cape/eye-back-up-eyelid + bounds: 554, 131, 24, 12 +girl-spring-dress/eye-back-up-eyelid + bounds: 554, 131, 24, 12 +girl/eye-back-up-eyelid + bounds: 554, 131, 24, 12 +girl-blue-cape/eye-back-up-eyelid-back + bounds: 832, 453, 17, 11 + rotate: 90 +girl-spring-dress/eye-back-up-eyelid-back + bounds: 832, 453, 17, 11 + rotate: 90 +girl/eye-back-up-eyelid-back + bounds: 832, 453, 17, 11 + rotate: 90 +girl-blue-cape/eye-front-low-eyelid + bounds: 739, 303, 18, 6 + rotate: 90 +girl-spring-dress/eye-front-low-eyelid + bounds: 739, 303, 18, 6 + rotate: 90 +girl/eye-front-low-eyelid + bounds: 739, 303, 18, 6 + rotate: 90 +girl-blue-cape/eye-front-pupil + bounds: 816, 378, 9, 9 +girl-spring-dress/eye-front-pupil + bounds: 816, 378, 9, 9 +girl/eye-front-pupil + bounds: 816, 378, 9, 9 +girl-blue-cape/eye-front-up-eyelid + bounds: 392, 77, 30, 14 + rotate: 90 +girl-spring-dress/eye-front-up-eyelid + bounds: 392, 77, 30, 14 + rotate: 90 +girl/eye-front-up-eyelid + bounds: 392, 77, 30, 14 + rotate: 90 +girl-blue-cape/eye-front-up-eyelid-back + bounds: 455, 130, 26, 11 +girl-spring-dress/eye-front-up-eyelid-back + bounds: 455, 130, 26, 11 +girl/eye-front-up-eyelid-back + bounds: 455, 130, 26, 11 +girl-blue-cape/eye-iris-back + bounds: 637, 264, 17, 17 +girl-blue-cape/eye-iris-front + bounds: 802, 471, 18, 18 +girl-blue-cape/eye-white-back + bounds: 596, 264, 20, 16 +girl-spring-dress/eye-white-back + bounds: 596, 264, 20, 16 +girl-blue-cape/eye-white-front + bounds: 796, 5, 20, 16 + rotate: 90 +girl-spring-dress/eye-white-front + bounds: 796, 5, 20, 16 + rotate: 90 +girl/eye-white-front + bounds: 796, 5, 20, 16 + rotate: 90 +girl-blue-cape/front-eyebrow + bounds: 608, 149, 18, 12 + rotate: 90 +girl-blue-cape/hair-back + bounds: 508, 145, 117, 98 + rotate: 90 +girl-blue-cape/hair-bangs + bounds: 673, 419, 91, 40 + rotate: 90 +girl-blue-cape/hair-head-side-back + bounds: 196, 331, 30, 52 + rotate: 90 +girl-blue-cape/hair-head-side-front + bounds: 738, 323, 41, 42 +girl-blue-cape/hair-side + bounds: 473, 3, 36, 71 +girl-blue-cape/hand-front-fingers + bounds: 509, 365, 19, 21 +girl-spring-dress/hand-front-fingers + bounds: 509, 365, 19, 21 +girl-blue-cape/leg-front + bounds: 168, 72, 30, 158 + rotate: 90 +girl-blue-cape/mouth-smile + bounds: 736, 79, 29, 7 +girl-spring-dress/mouth-smile + bounds: 736, 79, 29, 7 +girl/mouth-smile + bounds: 736, 79, 29, 7 +girl-blue-cape/nose + bounds: 747, 264, 11, 7 +girl-spring-dress/nose + bounds: 747, 264, 11, 7 +girl/nose + bounds: 747, 264, 11, 7 +girl-blue-cape/sleeve-back + bounds: 767, 79, 42, 29 +girl-blue-cape/sleeve-front + bounds: 408, 76, 52, 119 + rotate: 90 +girl-spring-dress/arm-front + bounds: 596, 282, 17, 111 +girl-spring-dress/back-eyebrow + bounds: 801, 420, 18, 12 +girl-spring-dress/body-up + bounds: 179, 4, 64, 66 +girl-spring-dress/cloak-down + bounds: 775, 27, 50, 50 +girl-spring-dress/cloak-up + bounds: 360, 7, 64, 58 + rotate: 90 +girl-spring-dress/eye-iris-back + bounds: 656, 264, 17, 17 +girl-spring-dress/eye-iris-front + bounds: 814, 492, 18, 18 +girl-spring-dress/front-eyebrow + bounds: 822, 472, 18, 12 + rotate: 90 +girl-spring-dress/hair-back + bounds: 196, 363, 147, 93 + rotate: 90 +girl-spring-dress/hair-bangs + bounds: 696, 326, 91, 40 + rotate: 90 +girl-spring-dress/hair-head-side-back + bounds: 529, 76, 30, 52 +girl-spring-dress/hair-head-side-front + bounds: 781, 323, 41, 42 +girl-spring-dress/hair-side + bounds: 511, 3, 36, 71 +girl-spring-dress/leg-front + bounds: 171, 104, 30, 158 +girl-spring-dress/neck + bounds: 138, 70, 20, 32 +girl-spring-dress/shoulder-ribbon + bounds: 622, 131, 36, 24 + rotate: 90 +girl-spring-dress/skirt + bounds: 113, 328, 182, 81 + rotate: 90 +girl-spring-dress/underskirt + bounds: 2, 2, 175, 65 +girl/arm-front + bounds: 577, 395, 36, 115 +girl/back-eyebrow + bounds: 834, 492, 18, 12 + rotate: 90 +girl/bag-base + bounds: 191, 264, 62, 58 + rotate: 90 +girl/bag-strap-front + bounds: 385, 265, 12, 96 +girl/bag-top + bounds: 738, 367, 49, 50 +girl/body + bounds: 356, 130, 97, 132 +girl/boot-ribbon-front + bounds: 539, 130, 13, 13 +girl/eye-iris-back + bounds: 821, 424, 17, 17 +girl/eye-iris-front + bounds: 812, 443, 18, 18 +girl/eye-white-back + bounds: 814, 5, 20, 16 + rotate: 90 +girl/front-eyebrow + bounds: 816, 400, 18, 12 + rotate: 90 +girl/hair-back + bounds: 291, 363, 147, 93 + rotate: 90 +girl/hair-bangs + bounds: 715, 419, 91, 40 + rotate: 90 +girl/hair-flap-down-front + bounds: 288, 5, 70, 65 +girl/hair-head-side-back + bounds: 561, 77, 30, 52 +girl/hair-head-side-front + bounds: 757, 419, 41, 42 + rotate: 90 +girl/hair-patch + bounds: 245, 4, 66, 41 + rotate: 90 +girl/hair-side + bounds: 549, 3, 36, 71 +girl/hair-strand-back-1 + bounds: 684, 3, 58, 74 +girl/hair-strand-back-2 + bounds: 692, 171, 91, 58 + rotate: 90 +girl/hair-strand-back-3 + bounds: 615, 323, 92, 79 + rotate: 90 +girl/hair-strand-front-1 + bounds: 518, 269, 38, 94 +girl/hair-strand-front-2 + bounds: 593, 79, 70, 50 +girl/hair-strand-front-3 + bounds: 705, 88, 44, 81 +girl/hand-front-fingers + bounds: 530, 365, 19, 21 +girl/hat + bounds: 608, 169, 93, 82 + rotate: 90 +girl/leg-front + bounds: 203, 104, 30, 158 +girl/pompom + bounds: 757, 462, 48, 43 + rotate: 90 +girl/scarf + bounds: 455, 143, 119, 51 + rotate: 90 +girl/scarf-back + bounds: 420, 2, 72, 51 + rotate: 90 +girl/zip + bounds: 356, 109, 19, 25 + rotate: 90 diff --git a/spine-haxe/example/assets/mix-and-match.png b/spine-haxe/example/assets/mix-and-match.png new file mode 100644 index 0000000000..441cd2a81c Binary files /dev/null and b/spine-haxe/example/assets/mix-and-match.png differ diff --git a/spine-haxe/example/assets/owl-pro.json b/spine-haxe/example/assets/owl-pro.json new file mode 100644 index 0000000000..5bb3e0d96d --- /dev/null +++ b/spine-haxe/example/assets/owl-pro.json @@ -0,0 +1,1168 @@ +{ +"skeleton": { + "hash": "Xf8aPQe0Mh0", + "spine": "4.1.17", + "x": -644, + "y": -274, + "width": 1350.84, + "height": 909.41, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { + "name": "branch-1", + "parent": "root", + "length": 487.04, + "rotation": 27.67, + "x": -579.3, + "y": -239.11, + "color": "1a8600ff" + }, + { "name": "branch-2", "parent": "branch-1", "length": 391.45, "rotation": -30.2, "x": 487.04, "color": "1a8600ff" }, + { "name": "owl-base", "parent": "branch-2", "x": 139.77, "y": 56.43, "color": "1697ffff" }, + { "name": "body-top-control", "parent": "owl-base", "rotation": 92.53, "x": -3.85, "y": 227.57, "color": "1697ffff" }, + { "name": "branch-3", "parent": "branch-2", "length": 231.51, "rotation": 30.15, "x": 391.45, "color": "1a8600ff" }, + { "name": "branch-4", "parent": "branch-3", "length": 158.83, "rotation": 38.9, "x": 231.51, "color": "1a8600ff" }, + { "name": "branch-5", "parent": "branch-4", "length": 82.96, "rotation": -26.21, "x": 158.83, "color": "1a8600ff" }, + { + "name": "branch-6", + "parent": "branch-5", + "length": 105.49, + "rotation": 68.78, + "x": -79.95, + "y": -20.15, + "color": "1a8600ff" + }, + { "name": "head", "parent": "body-top-control", "rotation": -90, "x": 51, "y": 0.33, "color": "1697ffff" }, + { "name": "control", "parent": "head", "y": 126.66, "color": "1697ffff" }, + { "name": "control-back", "parent": "head", "x": 1.74, "y": 75.81, "color": "b500afff" }, + { + "name": "leaf-1", + "parent": "branch-1", + "length": 170.88, + "rotation": 59.11, + "x": 81.78, + "y": 61.01, + "color": "c61616ff" + }, + { + "name": "leaf-2", + "parent": "branch-4", + "length": 177.54, + "rotation": -74.38, + "x": 116.86, + "y": -14.04, + "color": "c61616ff" + }, + { + "name": "leaf-3", + "parent": "branch-3", + "length": 206.74, + "rotation": -60.2, + "x": -15.26, + "y": 6.37, + "color": "c61616ff" + }, + { + "name": "leaf-4", + "parent": "branch-6", + "length": 152.22, + "rotation": 76.69, + "x": 110.99, + "y": 4.18, + "color": "c61616ff" + }, + { "name": "leaf-5", "parent": "branch-5", "length": 186.26, "rotation": 40.81, "x": 82.96, "color": "c61616ff" }, + { "name": "leaf-6", "parent": "branch-6", "length": 201.94, "rotation": 0.89, "x": 105.49, "color": "c61616ff" }, + { + "name": "leaf-7", + "parent": "branch-1", + "length": 155.86, + "rotation": 30.39, + "x": 214.62, + "y": 12.99, + "color": "c61616ff" + }, + { + "name": "tail-feathers", + "parent": "owl-base", + "length": 155.04, + "rotation": -87.98, + "x": -0.46, + "y": -20.62, + "color": "1697ffff" + } +], +"slots": [ + { "name": "feather-3", "bone": "tail-feathers", "attachment": "feather-3" }, + { "name": "feather-2", "bone": "tail-feathers", "attachment": "feather-2" }, + { "name": "feather-1", "bone": "tail-feathers", "attachment": "feather-1" }, + { "name": "body", "bone": "owl-base", "attachment": "body" }, + { "name": "wood", "bone": "branch-1", "attachment": "wood" }, + { "name": "R_wing", "bone": "body-top-control", "attachment": "R_wing" }, + { "name": "L_wing", "bone": "body-top-control", "attachment": "L_wing" }, + { "name": "R_foot", "bone": "branch-2", "attachment": "R_foot" }, + { "name": "L_foot", "bone": "branch-2", "attachment": "L_foot" }, + { "name": "head-base", "bone": "head", "attachment": "head-base" }, + { "name": "R_eye-iris", "bone": "control", "attachment": "R_eye-iris" }, + { "name": "R_eye-pupil", "bone": "control", "attachment": "R_eye-pupil" }, + { "name": "R_eye-light", "bone": "control", "attachment": "R_eye-light" }, + { "name": "L_eye-iris", "bone": "control", "attachment": "L_eye-iris" }, + { "name": "L_eye-pupil", "bone": "control", "attachment": "L_eye-pupil" }, + { "name": "L_eye-light", "bone": "control", "attachment": "L_eye-light" }, + { "name": "R_eye-closed", "bone": "control" }, + { "name": "L_eye-closed", "bone": "control" }, + { "name": "beak-down", "bone": "head", "attachment": "beak-down" }, + { "name": "beak", "bone": "head", "attachment": "beak" }, + { "name": "leaf-7", "bone": "leaf-7", "attachment": "leaf-7" }, + { "name": "leaf-6", "bone": "leaf-6", "attachment": "leaf-6" }, + { "name": "leaf-5", "bone": "leaf-5", "attachment": "leaf-5" }, + { "name": "leaf-4", "bone": "leaf-4", "attachment": "leaf-4" }, + { "name": "leaf-3", "bone": "leaf-3", "attachment": "leaf-3" }, + { "name": "leaf-2", "bone": "leaf-2", "attachment": "leaf-2" }, + { "name": "leaf-1", "bone": "leaf-1", "attachment": "leaf-1" } +], +"transform": [ + { + "name": "control-back", + "bones": [ "control-back" ], + "target": "control", + "mixRotate": 0, + "mixX": -1, + "mixScaleX": 0, + "mixShearY": 0 + } +], +"skins": [ + { + "name": "default", + "attachments": { + "beak": { + "beak": { + "type": "mesh", + "uvs": [ 0, 0.48125, 0.23847, 0.67437, 0.38855, 1, 0.52195, 1, 0.67759, 1, 0.76097, 0.66393, 1, 0.44993, 1, 0.20983, 0.73317, 0, 0.34964, 0, 0, 0.20983, 0.44969, 0.27769, 0.50528, 0.66915 ], + "triangles": [ 11, 9, 8, 10, 9, 11, 11, 8, 7, 6, 11, 7, 0, 10, 11, 5, 11, 6, 12, 11, 5, 1, 0, 11, 12, 1, 11, 2, 1, 12, 4, 3, 12, 2, 12, 3, 5, 4, 12 ], + "vertices": [ 2, 10, -41, -66.77, 0.45, 9, -41, 59.89, 0.55, 2, 10, -22.64, -82.61, 0.65, 9, -22.64, 44.05, 0.35, 2, 10, -11.08, -109.31, 0.83, 9, -11.08, 17.35, 0.17, 1, 10, -0.81, -109.31, 1, 2, 10, 11.17, -109.31, 0.83, 9, 11.17, 17.35, 0.17, 2, 10, 17.59, -81.75, 0.78, 9, 17.59, 44.91, 0.22, 2, 10, 36, -64.2, 0.45, 9, 36, 62.46, 0.55, 2, 10, 36, -44.51, 0.45, 9, 36, 82.15, 0.55, 2, 10, 15.45, -27.31, 0.45, 9, 15.45, 99.35, 0.55, 2, 10, -14.08, -27.31, 0.45, 9, -14.08, 99.35, 0.55, 2, 10, -41, -44.51, 0.45, 9, -41, 82.15, 0.55, 1, 10, -6.37, -50.08, 1, 1, 10, -2.09, -82.18, 1 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20, 4, 6, 6, 8 ], + "width": 77, + "height": 82 + } + }, + "beak-down": { + "beak-down": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 9, 33, 17.35, 0.43, 10, 33, -109.31, 0.57, 2, 9, -40, 17.35, 0.43, 10, -40, -109.31, 0.57, 2, 9, -40, 96.35, 0.43, 10, -40, -30.31, 0.57, 2, 9, 33, 96.35, 0.43, 10, 33, -30.31, 0.57 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 73, + "height": 79 + } + }, + "body": { + "body": { + "type": "mesh", + "uvs": [ 0.32567, 1, 0.69603, 1, 0.86396, 0.83947, 1, 0.63572, 1, 0.36212, 0.92608, 0.17292, 0.70524, 0, 0.26586, 0, 0.09793, 0.1671, 0, 0.3301, 0, 0.6561, 0.12784, 0.85111, 0.4982, 0.37085, 0.489, 0.78417, 0.22215, 0.75797, 0.22905, 0.38249, 0.4959, 0.12053, 0.75355, 0.76961, 0.74434, 0.37376, 0.72134, 0.14672, 0.24516, 0.14381 ], + "triangles": [ 18, 4, 3, 20, 8, 7, 5, 19, 6, 16, 6, 19, 20, 7, 16, 16, 7, 6, 17, 12, 18, 12, 14, 15, 10, 9, 15, 12, 19, 18, 20, 16, 12, 12, 16, 19, 15, 20, 12, 9, 8, 15, 18, 5, 4, 15, 8, 20, 18, 19, 5, 14, 10, 15, 17, 13, 12, 0, 13, 1, 1, 17, 2, 1, 13, 17, 11, 14, 0, 0, 14, 13, 11, 10, 14, 2, 17, 3, 17, 18, 3, 13, 14, 12 ], + "vertices": [ 2, 3, -77, -83.78, 0.9818, 4, -307.82, 86.8, 0.0182, 2, 3, 106.53, -75.68, 0.9604, 4, -307.82, -96.91, 0.0396, 1, 3, 186.97, -9.15, 1, 2, 3, 250.85, 73.62, 0.58, 4, -165.02, -247.67, 0.42, 2, 3, 246.13, 180.77, 0.244, 4, -57.77, -247.67, 0.756, 1, 4, 16.4, -211.01, 1, 1, 4, 84.18, -101.47, 1, 1, 4, 84.18, 116.46, 1, 1, 4, 18.68, 199.75, 1, 2, 3, -249.94, 171.45, 0.36505, 4, -45.22, 248.33, 0.63495, 2, 3, -244.31, 43.78, 0.62057, 4, -173.01, 248.33, 0.37943, 1, 3, -177.6, -29.8, 1, 2, 3, -2.37, 166.38, 0.1, 4, -61.19, 1.22, 0.9, 2, 3, 0.21, 4.31, 0.75, 4, -223.21, 5.78, 0.25, 1, 3, -132.47, 8.74, 1, 2, 3, -135.54, 155.94, 0.14, 4, -65.76, 134.72, 0.86, 1, 4, 36.93, 2.36, 1, 1, 3, 131.04, 15.8, 1, 2, 3, 119.65, 170.62, 0.21, 4, -62.33, -120.87, 0.79, 1, 4, 26.67, -109.46, 1, 1, 4, 27.81, 126.73, 1 ], + "hull": 12, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 0, 22, 38, 32, 32, 40 ], + "width": 496, + "height": 392 + } + }, + "feather-1": { + "feather-1": { "x": 66.77, "y": 51.32, "rotation": 90.51, "width": 117, "height": 119 } + }, + "feather-2": { + "feather-2": { "x": 70.22, "y": -56.15, "rotation": 90.51, "width": 124, "height": 130 } + }, + "feather-3": { + "feather-3": { "x": 83.66, "y": 7.47, "rotation": 90.51, "width": 111, "height": 152 } + }, + "head-base": { + "head-base": { + "type": "mesh", + "uvs": [ 0, 0.62821, 0.10827, 0.80875, 0.2669, 0.96522, 0.4026, 1, 0.60901, 1, 0.77147, 0.96522, 0.92054, 0.84004, 1, 0.63303, 1, 0.52952, 1, 0.37787, 0.97662, 0.33564, 0.88805, 0.17566, 0.78293, 0.03123, 0.73324, 0, 0.67782, 0, 0.64724, 0.08901, 0.57461, 0.17085, 0.50772, 0.17807, 0.42936, 0.16604, 0.34717, 0.09141, 0.3166, 0, 0.2669, 0, 0.24779, 0.06975, 0.12547, 0.16122, 0.0108, 0.36824, 0.23632, 0.34657, 0.79058, 0.34657, 0.79822, 0.74135, 0.23632, 0.74616, 0.50389, 0.77986, 0.50581, 0.31528, 0.50198, 0.90263, 0.39113, 0.88097, 0.6008, 0.8906, 0.42745, 0.77264, 0.57461, 0.76542, 0.50389, 0.83282, 0.46185, 0.40435, 0.56123, 0.39953, 0.5039, 0.54396, 0.65106, 0.27917, 0.38922, 0.29362, 0.3338, 0.26232, 0.7084, 0.21418, 0.72942, 0.09623, 0.29175, 0.16363, 0.40642, 0.23825, 0.50963, 0.24066, 0.6071, 0.24547, 0.67591, 0.14678, 0.34717, 0.17085, 0.88996, 0.53433, 0.86703, 0.66673, 0.85747, 0.41397, 0.12738, 0.54637, 0.14841, 0.41638, 0.16943, 0.69321, 0.34909, 0.34176, 0.65679, 0.35139, 0.60328, 0.33213, 0.42171, 0.33213, 0.29939, 0.56803, 0.71795, 0.556, 0.44847, 0.68839, 0.57461, 0.69321, 0.82689, 0.27917, 0.91099, 0.39712, 0.93965, 0.53193, 0.91863, 0.71006, 0.19045, 0.26714, 0.09298, 0.39472, 0.07387, 0.56803, 0.1465, 0.73894, 0.20574, 0.83282, 0.28028, 0.86893, 0.79822, 0.85449, 0.69119, 0.87134, 0.85747, 0.78227 ], + "triangles": [ 44, 14, 13, 44, 13, 12, 15, 14, 44, 49, 15, 44, 20, 45, 21, 21, 45, 22, 19, 45, 20, 23, 22, 45, 50, 45, 19, 18, 50, 19, 16, 15, 49, 44, 12, 11, 43, 49, 44, 43, 44, 11, 46, 50, 18, 47, 17, 16, 48, 16, 49, 48, 49, 43, 47, 16, 48, 42, 45, 50, 42, 50, 46, 69, 23, 45, 69, 45, 42, 40, 48, 43, 65, 43, 11, 41, 42, 46, 18, 47, 46, 47, 18, 17, 30, 46, 47, 60, 41, 46, 30, 60, 46, 48, 30, 47, 59, 48, 40, 59, 30, 48, 65, 11, 10, 57, 42, 41, 57, 41, 60, 25, 69, 42, 25, 42, 57, 26, 43, 65, 40, 43, 26, 58, 40, 26, 59, 40, 58, 24, 23, 69, 70, 24, 69, 55, 70, 69, 66, 65, 10, 66, 10, 9, 53, 26, 65, 38, 30, 59, 37, 60, 30, 37, 30, 38, 66, 53, 65, 25, 55, 69, 66, 9, 8, 67, 66, 8, 51, 53, 66, 67, 51, 66, 39, 37, 38, 38, 59, 58, 54, 70, 55, 62, 58, 26, 62, 26, 53, 62, 53, 51, 71, 24, 70, 71, 70, 54, 61, 25, 57, 55, 25, 61, 54, 55, 61, 0, 24, 71, 67, 8, 7, 52, 62, 51, 52, 51, 67, 37, 57, 60, 37, 61, 57, 61, 37, 39, 56, 54, 61, 71, 54, 56, 0, 71, 56, 67, 7, 52, 68, 52, 7, 72, 0, 56, 27, 62, 52, 28, 56, 61, 72, 56, 28, 77, 27, 52, 77, 52, 68, 1, 0, 72, 73, 72, 28, 1, 72, 73, 6, 68, 7, 77, 68, 6, 75, 27, 77, 76, 35, 27, 75, 77, 6, 73, 28, 74, 75, 76, 27, 32, 74, 34, 33, 35, 76, 2, 73, 74, 1, 73, 2, 5, 76, 75, 5, 75, 6, 3, 32, 31, 2, 74, 32, 3, 2, 32, 4, 33, 76, 4, 76, 5, 31, 33, 4, 3, 31, 4, 38, 58, 62, 39, 38, 62, 63, 61, 39, 64, 39, 62, 63, 39, 64, 64, 62, 27, 28, 61, 63, 35, 64, 27, 29, 63, 64, 34, 28, 63, 29, 34, 63, 64, 35, 29, 36, 29, 35, 34, 29, 36, 74, 28, 34, 32, 34, 36, 36, 35, 33, 31, 32, 36, 31, 36, 33 ], + "vertices": [ 3, 10, -304, -69.08, 0.01459, 11, -304, -69.08, 0.26323, 9, -302.26, 46.41, 0.72217, 3, 10, -239.36, -154.66, 0.00559, 11, -239.36, -154.66, 0.05203, 9, -237.62, -39.17, 0.94238, 3, 10, -144.66, -228.82, 0.145, 11, -144.66, -228.82, 0.04545, 9, -142.92, -113.33, 0.80955, 3, 10, -63.65, -245.31, 0.2095, 11, -63.65, -245.31, 0.00316, 9, -61.91, -129.82, 0.78734, 2, 10, 59.58, -245.31, 0.17617, 9, 61.32, -129.82, 0.82383, 3, 10, 156.57, -228.82, 0.08728, 11, 156.57, -228.82, 0.05645, 9, 158.3, -113.33, 0.85627, 3, 10, 245.56, -169.49, 0.06344, 11, 245.56, -169.49, 0.11037, 9, 247.3, -54, 0.82619, 3, 10, 293, -71.36, 0.00633, 11, 293, -71.36, 0.10522, 9, 294.74, 44.12, 0.88845, 3, 10, 293, -22.3, 0.01595, 11, 293, -22.3, 0.14723, 9, 294.74, 93.19, 0.83682, 3, 10, 293, 49.58, 0.00982, 11, 293, 49.58, 0.29562, 9, 294.74, 165.07, 0.69456, 3, 10, 279.04, 69.6, 0.01809, 11, 279.04, 69.6, 0.25265, 9, 280.78, 185.09, 0.72927, 3, 10, 226.17, 145.43, 0.00461, 11, 226.17, 145.43, 0.21686, 9, 227.9, 260.91, 0.77853, 2, 11, 163.41, 213.89, 0.19851, 9, 165.15, 329.37, 0.80149, 2, 11, 133.75, 228.69, 0.27166, 9, 135.48, 344.18, 0.72834, 2, 11, 100.66, 228.69, 0.27166, 9, 102.39, 344.18, 0.72834, 2, 11, 82.4, 186.5, 0.27166, 9, 84.14, 301.99, 0.72834, 2, 11, 39.04, 147.71, 0.09155, 9, 40.78, 263.2, 0.90845, 2, 11, -0.89, 144.29, 0.05807, 9, 0.85, 259.77, 0.94193, 2, 11, -47.67, 149.99, 0.07863, 9, -45.94, 265.48, 0.92137, 2, 11, -96.74, 185.36, 0.26398, 9, -95, 300.85, 0.73602, 2, 11, -114.99, 228.69, 0.27166, 9, -113.25, 344.18, 0.72834, 2, 11, -144.66, 228.69, 0.27166, 9, -142.92, 344.18, 0.72834, 2, 11, -156.07, 195.63, 0.27166, 9, -154.33, 311.12, 0.72834, 2, 11, -229.09, 152.27, 0.15795, 9, -227.35, 267.76, 0.84205, 2, 11, -297.55, 54.15, 0.23165, 9, -295.81, 169.63, 0.76835, 2, 10, -162.91, 64.42, 0.23917, 9, -161.18, 179.9, 0.76083, 2, 10, 167.98, 64.42, 0.36537, 9, 169.71, 179.9, 0.63463, 2, 10, 172.54, -122.71, 0.43659, 9, 174.28, -7.22, 0.56341, 2, 10, -162.91, -124.99, 0.47535, 9, -161.18, -9.5, 0.52465, 2, 10, -3.17, -140.96, 0.72626, 9, -1.44, -25.48, 0.27374, 2, 10, -2.03, 79.25, 0.25249, 9, -0.3, 194.74, 0.74751, 2, 10, -4.32, -199.16, 0.4798, 9, -2.58, -83.67, 0.5202, 2, 10, -70.49, -188.89, 0.42536, 9, -68.76, -73.4, 0.57464, 2, 10, 54.68, -193.45, 0.42901, 9, 56.42, -77.96, 0.57099, 2, 10, -48.81, -137.54, 0.69524, 9, -47.08, -22.05, 0.30476, 2, 10, 39.04, -134.12, 0.68899, 9, 40.78, -18.63, 0.31101, 2, 10, -3.17, -166.07, 0.60466, 9, -1.44, -50.58, 0.39534, 2, 10, -28.28, 37.03, 0.40749, 9, -26.54, 152.52, 0.59251, 2, 10, 31.06, 39.31, 0.48302, 9, 32.79, 154.8, 0.51698, 2, 10, -3.17, -29.15, 0.53404, 9, -1.44, 86.34, 0.46596, 2, 10, 84.68, 96.36, 0.19082, 9, 86.42, 211.85, 0.80918, 2, 10, -71.63, 89.52, 0.17688, 9, -69.9, 205.01, 0.82312, 2, 10, -104.72, 104.35, 0.08016, 9, -102.99, 219.84, 0.91984, 3, 10, 118.91, 127.17, 0.03256, 11, 118.91, 127.17, 0.0011, 9, 120.65, 242.66, 0.96634, 2, 11, 131.46, 183.08, 0.23984, 9, 133.2, 298.57, 0.76016, 2, 11, -129.83, 151.13, 0.08046, 9, -128.09, 266.62, 0.91954, 2, 10, -61.37, 115.76, 0.04075, 9, -59.63, 231.25, 0.95925, 2, 10, 0.25, 114.62, 0.06407, 9, 1.99, 230.11, 0.93593, 2, 10, 58.44, 112.34, 0.07435, 9, 60.18, 227.83, 0.92565, 2, 11, 99.52, 159.12, 0.15345, 9, 101.25, 274.61, 0.84655, 2, 11, -96.74, 147.71, 0.06159, 9, -95, 263.2, 0.93841, 2, 10, 227.31, -24.58, 0.25194, 9, 229.05, 90.91, 0.74806, 2, 10, 213.62, -87.34, 0.30876, 9, 215.35, 28.15, 0.69124, 2, 10, 207.91, 32.47, 0.31184, 9, 209.65, 147.96, 0.68816, 3, 10, -227.95, -30.29, 0.26918, 11, -227.95, -30.29, 0.05011, 9, -226.21, 85.2, 0.6807, 3, 10, -215.4, 31.33, 0.24851, 11, -215.4, 31.33, 0.02152, 9, -213.66, 146.81, 0.72997, 2, 10, -202.85, -99.89, 0.2927, 9, -201.11, 15.6, 0.7073, 2, 10, -95.6, 66.7, 0.27831, 9, -93.86, 182.19, 0.72169, 2, 10, 88.11, 62.13, 0.4333, 9, 89.84, 177.62, 0.5667, 2, 10, 56.16, 71.26, 0.36297, 9, 57.9, 186.75, 0.63703, 2, 10, -52.24, 71.26, 0.28083, 9, -50.5, 186.75, 0.71917, 2, 10, -125.26, -40.56, 0.46719, 9, -123.52, 74.93, 0.53281, 2, 10, 124.62, -34.85, 0.68177, 9, 126.36, 80.64, 0.31823, 2, 10, -36.26, -97.61, 0.80548, 9, -34.53, 17.88, 0.19452, 2, 10, 39.04, -99.89, 0.77666, 9, 40.78, 15.6, 0.22334, 3, 10, 189.65, 96.36, 0.11792, 11, 189.65, 96.36, 3.0E-5, 9, 191.39, 211.85, 0.88205, 3, 10, 239.86, 40.45, 0.1113, 11, 239.86, 40.45, 0.02801, 9, 241.6, 155.94, 0.86068, 3, 10, 256.97, -23.44, 0.07223, 11, 256.97, -23.44, 0.0013, 9, 258.71, 92.05, 0.92647, 2, 10, 244.42, -107.88, 0.12196, 9, 246.16, 7.61, 0.87804, 2, 10, -190.3, 102.07, 0.02441, 9, -188.56, 217.56, 0.97559, 3, 10, -248.49, 41.6, 0.09967, 11, -248.49, 41.6, 0.07803, 9, -246.75, 157.08, 0.8223, 3, 10, -259.9, -40.56, 0.14162, 11, -259.9, -40.56, 0.05098, 9, -258.16, 74.93, 0.8074, 2, 10, -216.54, -121.57, 0.14701, 9, -214.8, -6.08, 0.85299, 2, 10, -181.17, -166.07, 0.19633, 9, -179.43, -50.58, 0.80367, 2, 10, -136.67, -183.18, 0.35738, 9, -134.93, -67.69, 0.64262, 3, 10, 172.54, -176.34, 0.23906, 11, 172.54, -176.34, 0.00239, 9, 174.28, -60.85, 0.75855, 2, 10, 108.64, -184.32, 0.37393, 9, 110.38, -68.83, 0.62607, 2, 10, 207.91, -142.11, 0.22094, 9, 209.65, -26.62, 0.77906 ], + "hull": 25, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 0, 48, 90, 42, 14, 16, 16, 18, 18, 20, 20, 22 ], + "width": 597, + "height": 474 + } + }, + "leaf-1": { + "leaf-1": { "x": 93.08, "y": -14.9, "rotation": -86.78, "width": 152, "height": 202 } + }, + "leaf-2": { + "leaf-2": { "x": 84.31, "y": 7.56, "rotation": 65.1, "width": 130, "height": 189 } + }, + "leaf-3": { + "leaf-3": { "x": 115.81, "y": 28.41, "rotation": 32.57, "width": 263, "height": 154 } + }, + "leaf-4": { + "leaf-4": { "x": 70.16, "y": -4.79, "rotation": 174.22, "width": 178, "height": 98 } + }, + "leaf-5": { + "leaf-5": { "x": 89.18, "y": 24.8, "rotation": -81.12, "width": 106, "height": 211 } + }, + "leaf-6": { + "leaf-6": { "x": 107.78, "y": 6.61, "rotation": -109.98, "width": 176, "height": 231 } + }, + "leaf-7": { + "leaf-7": { "x": 83.07, "y": -8.64, "rotation": -58.07, "width": 108, "height": 172 } + }, + "L_eye-closed": { + "L_eye-closed": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 9, 212, 3.35, 0.5, 10, 212, -123.31, 0.5, 2, 9, 33, 3.35, 0.5, 10, 33, -123.31, 0.5, 2, 9, 33, 174.35, 0.5, 10, 33, 47.69, 0.5, 2, 9, 212, 174.35, 0.5, 10, 212, 47.69, 0.5 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 179, + "height": 171 + } + }, + "L_eye-iris": { + "L_eye-iris": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 9, 212, 3.35, 0.5, 10, 212, -123.31, 0.5, 2, 9, 33, 3.35, 0.5, 10, 33, -123.31, 0.5, 2, 9, 33, 174.35, 0.5, 10, 33, 47.69, 0.5, 2, 9, 212, 174.35, 0.5, 10, 212, 47.69, 0.5 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 179, + "height": 171 + } + }, + "L_eye-light": { + "L_eye-light": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 10, 146, -27.31, 0.75, 9, 146, 99.35, 0.25, 2, 10, 104, -27.31, 0.75, 9, 104, 99.35, 0.25, 2, 10, 104, 11.69, 0.75, 9, 104, 138.35, 0.25, 2, 10, 146, 11.69, 0.75, 9, 146, 138.35, 0.25 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 42, + "height": 39 + } + }, + "L_eye-pupil": { + "L_eye-pupil": { "x": 122.5, "y": -38.81, "width": 125, "height": 119 } + }, + "L_foot": { + "L_foot": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 349.26, -29.25, 221.66, -19.09, 229.21, 75.61, 356.81, 65.45 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 128, + "height": 95 + } + }, + "L_wing": { + "L_wing": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 4, -185.82, -259.67, 0.29, 3, 263.76, 53.37, 0.71, 2, 4, -185.82, -97.67, 0.29, 3, 101.92, 46.23, 0.71, 2, 4, 34.18, -97.67, 0.91, 3, 92.22, 266.02, 0.09, 2, 4, 34.18, -259.67, 0.91, 3, 254.06, 273.16, 0.09 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 162, + "height": 220 + } + }, + "R_eye-closed": { + "R_eye-closed": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 10, -34, -123.31, 0.5, 9, -34, 3.35, 0.5, 2, 10, -213, -123.31, 0.5, 9, -213, 3.35, 0.5, 2, 10, -213, 47.69, 0.5, 9, -213, 174.35, 0.5, 2, 10, -34, 47.69, 0.5, 9, -34, 174.35, 0.5 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 179, + "height": 171 + } + }, + "R_eye-iris": { + "R_eye-iris": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 10, -34, -123.31, 0.5, 9, -34, 3.35, 0.5, 2, 10, -213, -123.31, 0.5, 9, -213, 3.35, 0.5, 2, 10, -213, 47.69, 0.5, 9, -213, 174.35, 0.5, 2, 10, -34, 47.69, 0.5, 9, -34, 174.35, 0.5 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 179, + "height": 171 + } + }, + "R_eye-light": { + "R_eye-light": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 10, -105, -27.31, 0.75, 9, -105, 99.35, 0.25, 2, 10, -147, -27.31, 0.75, 9, -147, 99.35, 0.25, 2, 10, -147, 11.69, 0.75, 9, -147, 138.35, 0.25, 2, 10, -105, 11.69, 0.75, 9, -105, 138.35, 0.25 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 42, + "height": 39 + } + }, + "R_eye-pupil": { + "R_eye-pupil": { "x": -123.5, "y": -38.81, "width": 125, "height": 119 } + }, + "R_foot": { + "R_foot": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 70.9, -12.21, -52.13, -47.54, -78.35, 43.77, 44.68, 79.1 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 128, + "height": 95 + } + }, + "R_wing": { + "R_wing": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 4, -185.82, 106.33, 0.3, 3, -101.89, 37.24, 0.7, 2, 4, -185.82, 268.33, 0.3, 3, -263.73, 30.1, 0.7, 2, 4, 34.18, 268.33, 0.88, 3, -273.42, 249.89, 0.12, 2, 4, 34.18, 106.33, 0.88, 3, -111.58, 257.03, 0.12 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 162, + "height": 220 + } + }, + "wood": { + "wood": { + "type": "mesh", + "uvs": [ 0.11021, 1, 0.15566, 0.95336, 0.21123, 0.8928, 0.22028, 0.83577, 0.28362, 0.72988, 0.35481, 0.68032, 0.39623, 0.67196, 0.46043, 0.59021, 0.69783, 0.62777, 0.7172, 0.63585, 0.73175, 0.62498, 0.7584, 0.58795, 0.83734, 0.52487, 0.88376, 0.45904, 0.89542, 0.44525, 0.902, 0.42073, 0.93407, 0.35365, 0.93428, 0.24657, 0.95942, 0.18869, 1, 0.10133, 1, 0.04501, 0.97874, 0.0803, 0.96743, 0.09908, 0.91739, 0.18018, 0.90399, 0.28117, 0.87848, 0.08782, 0.85736, 0.10809, 0.89108, 0.29728, 0.89525, 0.3207, 0.88552, 0.37054, 0.87781, 0.40495, 0.86852, 0.42127, 0.84031, 0.43039, 0.72738, 0.5583, 0.71396, 0.5716, 0.69722, 0.56699, 0.44709, 0.50234, 0.35592, 0.55641, 0.26039, 0.63925, 0.18238, 0.78349, 0.08762, 0.77081, 0, 0.88984, 0, 1, 0.40039, 0.56993, 0.71762, 0.60099, 0.88511, 0.42365, 0.89924, 0.29751, 0.93733, 0.18329, 0.98584, 0.10003 ], + "triangles": [ 27, 26, 24, 24, 26, 25, 19, 18, 48, 48, 18, 22, 18, 47, 22, 47, 23, 22, 19, 21, 20, 22, 21, 48, 19, 48, 21, 14, 45, 15, 29, 15, 45, 45, 30, 29, 15, 29, 16, 29, 28, 16, 28, 46, 16, 46, 24, 16, 16, 24, 17, 24, 23, 17, 17, 47, 18, 17, 23, 47, 28, 27, 46, 46, 27, 24, 10, 9, 44, 10, 44, 11, 33, 44, 34, 33, 11, 44, 11, 33, 12, 12, 33, 32, 12, 32, 13, 32, 31, 13, 13, 45, 14, 13, 31, 45, 45, 31, 30, 6, 43, 7, 7, 35, 8, 9, 8, 44, 44, 35, 34, 44, 8, 35, 43, 36, 7, 7, 36, 35, 1, 0, 41, 0, 42, 41, 41, 40, 1, 2, 40, 39, 2, 1, 40, 2, 39, 3, 3, 39, 4, 4, 39, 38, 4, 38, 5, 43, 6, 5, 5, 38, 37, 43, 5, 37, 43, 37, 36 ], + "vertices": [ 1, 1, 46.94, -64.01, 1, 1, 1, 109.8, -64.9, 1, 1, 1, 187.66, -64.09, 1, 1, 1, 213.68, -38.52, 1, 1, 1, 312.85, -17.71, 1, 1, 1, 404.67, -31.78, 1, 2, 1, 452.3, -51.01, 0.87274, 2, -4.36, -61.57, 0.12726, 2, 1, 545.58, -43.72, 1.0E-5, 2, 72.59, -8.34, 0.99999, 1, 2, 366.26, -18.28, 1, 2, 2, 390.36, -22.14, 0.6578, 5, -12.06, -18.6, 0.3422, 2, 2, 408.01, -14.74, 0.23428, 5, 6.92, -21.06, 0.76572, 1, 5, 46.51, -16.33, 1, 1, 5, 150.63, -27.46, 1, 2, 5, 219.97, -18.5, 0.91238, 6, -20.61, -7.15, 0.08762, 2, 5, 236.6, -17.73, 0.53313, 6, -7.17, -17, 0.46687, 3, 5, 250.73, -8.27, 0.14373, 6, 9.76, -18.5, 0.85627, 7, -125.56, -82.45, 0, 3, 1, 1130.1, -187.59, 0, 6, 62.99, -38.53, 0.99998, 7, -68.96, -76.91, 2.0E-5, 3, 1, 1160.61, -129.96, 0, 6, 122.91, -12.79, 0.99739, 7, -26.57, -27.34, 0.00261, 3, 1, 1204.46, -113.15, 0, 6, 167.6, -27.21, 0.08864, 7, 19.88, -20.53, 0.91136, 1, 7, 92.49, -12.37, 1, 2, 1, 1267.69, -76.61, 0, 7, 89.58, 1.28, 1, 2, 6, 237.64, -22.79, 2.0E-5, 7, 80.77, 14.37, 0.99998, 2, 6, 221.59, -14.54, 1.8E-4, 7, 62.73, 14.68, 0.99982, 2, 6, 151.7, 22.42, 0.82914, 7, -16.3, 16.96, 0.17086, 1, 6, 88.7, 13.1, 1, 1, 8, 126.5, -18.92, 1, 1, 8, 123.36, 9.75, 1, 2, 1, 1099.06, -132.55, 0, 8, 0.87, 8.12, 1, 1, 6, 62.32, 13.4, 1, 3, 1, 1072.27, -168.88, 0, 6, 29.7, 12.32, 0.99766, 8, -39.05, 29.19, 0.00234, 3, 1, 1054.11, -183.01, 0, 5, 228.74, 14.09, 0.34735, 6, 6.69, 12.71, 0.65265, 3, 1, 1039.34, -186.49, 0, 5, 213.97, 10.6, 0.97536, 6, -7, 19.26, 0.02464, 2, 1, 1005.93, -175.25, 0, 5, 180.55, 21.82, 1, 3, 1, 846.33, -179.5, 0, 2, 400.82, 25.59, 0.04218, 5, 20.96, 17.42, 0.95782, 3, 1, 827.91, -178.99, 0, 2, 384.64, 16.77, 0.61297, 5, 2.54, 17.93, 0.38703, 3, 1, 810.92, -166.91, 0, 2, 363.88, 18.67, 0.98073, 5, -14.46, 29.99, 0.01927, 1, 2, 53.78, 44.39, 1, 2, 1, 440.93, 34.41, 1, 7, -692.85, 290.52, 0, 1, 1, 313.11, 44.48, 1, 1, 1, 187.05, 11.39, 1, 1, 1, 87.08, 72.55, 1, 1, 1, -42.34, 58.57, 1, 1, 1, -73.5, -0.85, 1, 2, 1, 485.71, 1.63, 0.55579, 2, -1.97, 0.73, 0.44421, 2, 2, 389.94, -0.91, 0.56026, 5, -1.76, -0.03, 0.43974, 2, 5, 231.44, -0.18, 0.48669, 6, -0.17, -0.09, 0.51331, 1, 6, 77.24, 14.52, 1, 3, 1, 1181.84, -97.57, 0, 6, 159.76, -0.89, 0.45723, 7, 1.23, -0.39, 0.54277, 1, 7, 79.68, -0.46, 1 ], + "hull": 43, + "edges": [ 0, 2, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 38, 40, 44, 46, 46, 48, 48, 50, 50, 52, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 0, 84, 68, 70, 70, 72, 66, 68, 88, 66, 18, 20, 20, 22, 88, 20, 16, 18, 88, 16, 88, 18, 24, 26, 26, 28, 90, 26, 28, 30, 30, 32, 90, 30, 60, 62, 90, 62, 56, 58, 58, 60, 90, 58, 94, 46, 94, 34, 36, 94, 36, 38, 32, 34, 34, 36, 52, 54, 54, 56, 62, 64, 64, 66, 14, 16, 2, 4, 40, 42, 42, 44, 96, 42 ], + "width": 1234, + "height": 609 + } + } + } + } +], +"animations": { + "blink": { + "slots": { + "L_eye-closed": { + "attachment": [ + { "time": 0.4667, "name": "L_eye-closed" }, + { "time": 0.5333 }, + { "time": 1.8333, "name": "L_eye-closed" }, + { "time": 1.9333 } + ] + }, + "R_eye-closed": { + "attachment": [ + { "time": 0.4667, "name": "R_eye-closed" }, + { "time": 0.5333 }, + { "time": 1.8333, "name": "R_eye-closed" }, + { "time": 1.9 }, + { "time": 5.2333 } + ] + } + } + }, + "down": { + "bones": { + "control": { + "rotate": [ + { "value": -4.49 } + ], + "translate": [ + { "x": 0.49, "y": -67.91 } + ], + "scale": [ + { "y": 0.847 } + ] + }, + "tail-feathers": { + "translate": [ + { "x": -1.43, "y": 32.34 } + ], + "scale": [ + { "x": 0.829 } + ] + }, + "body-top-control": { + "translate": [ + { "x": -25.53, "y": -33.19 } + ] + }, + "head": { + "rotate": [ + { "value": 16.75 } + ], + "translate": [ + { "x": -113.66 } + ], + "scale": [ + { "x": 1.017, "y": 1.017 } + ] + }, + "control-back": { + "translate": [ + { "y": 6.82 } + ] + }, + "branch-2": { + "rotate": [ + { "value": -13.73 } + ] + }, + "branch-1": { + "rotate": [ + { "value": -10.56 } + ] + }, + "branch-3": { + "rotate": [ + { "value": 0.72 } + ] + }, + "branch-4": { + "rotate": [ + { "value": 0.72 } + ] + }, + "branch-6": { + "rotate": [ + { "value": 6.85 } + ] + }, + "leaf-2": { + "rotate": [ + { "value": -13.94 } + ] + }, + "leaf-3": { + "rotate": [ + { "value": -34.11 } + ] + }, + "leaf-5": { + "rotate": [ + { "value": -49.78 } + ] + } + }, + "attachments": { + "default": { + "head-base": { + "head-base": { + "deform": [ + { + "offset": 7, + "vertices": [ 14.94373, 0, 12.65295, 0, 12.65233, -1.0E-5, 67.01102, -1.0E-5, 56.73529, 0, 56.73491, -1.0E-5, 67.71835, -1.0E-5, 57.33374, 0, 57.33344, -1.0E-5, 67.71835, 0, 57.33344, -1.0E-5, 67.34274, -1.0E-5, 57.01584, 0, 57.01547, 0, 20.78079, -1.0E-5, 17.5946, 0, 17.59413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.65256, 0, 3.94009, 0, 3.93906, 0, 8.86218, -1.0E-5, 7.50494, 0, 7.50377, 3.80679, 7.12328, 2.63647, 5.78107, 2.6363, 5.77944, 6.80575, -18.05002, 6.80558, -18.05162, 6.80575, -18.05002, 6.80558, -18.05162, 6.80575, -18.05002, 6.80558, -18.05162, 6.80575, -18.05002, 6.80558, -18.05162, 4.0068, -9.92122, 4.00659, -9.92301, 2.52487, -0.27368, 2.5247, -0.27514, 0.78302, 16.37561, 0.78287, 16.3739, 0, 20.84903, 0, 20.84752, 0, 20.84903, 0, 20.84752, 0, 20.84903, 0, 20.84752, 0, 20.84903, 0, 20.84752, 0, 20.84903, 0, 20.84752, 0, 3.59885, 0, 3.59729, 0, 0.78192, 0, 0.66266, 0, -0.8714, 0, -0.73761, 0, 14.92346, 0, 12.63475, 0, 15.32294, 0, 12.97321, 0, 20.35486, 0, 17.2334, 0.25634, 7.79885, 0.1778, 6.58624, 0, 35.55524, 0, 30.10268, 0, 42.37582, 0, 35.87729, 0, 45.64838, 0, 38.64833, 0, 21.29605, 0, 18.03027, 0, 20.06952, 0, 16.99168, 0, 27.19852, 0, 23.02756, 0, -2.28232, 0, -1.93265, 0, -4.93713, 0, -4.18004, 0, -4.41357, 0, -3.73672, 4.18564, -6.46916, 2.8986, -5.75401, 0, 12.58502, 0, 10.65575, 0, 16.75674, 0, 14.18719, 7.05116, -13.72548, 4.88302, -12.08656, 4.88288, -12.08753, 6.80575, -18.05002, 6.80558, -18.05162, 0, 20.84903, 0, 20.84752, 0, 18.38699, 0, 15.56738, 2.47823, 3.10307, 1.71634, 2.46333, 5.14171, -9.52105, 3.56069, -8.40152, 6.80575, -18.05002, 6.80558, -18.05162, 0, 20.84903, 0, 20.84752, 0, -7.3945, 0, -6.26045, 0, -2.11862, 0, -1.79346, 0, -2.90344, 0, -2.45781, 0, -7.88242, 0, -6.67371, 0, -6.67361, 0, -3.1828, 0, -2.69247, 0, -2.69414, 0, 0.65915, 0, 0.55807, 0, 1.86981, 0, 1.58313, 0.06213, -3.64604, 0.0432, -3.09045, 0.91777, -1.83724, 0.63572, -1.61568, 0, 6.82599, 0, 5.77931, 0, -21.77914, 0, -18.4391, 0, -21.9791, 0, -18.60844, 0, 5.51465, 0, 4.66925, 0, 6.16968, 0, 5.22366, 2.15704, 4.34937, 1.49408, 3.54054, 1.49391, 3.53944, 0, 6.90668, 0, 5.84891, 0, 5.84795, 0, -1.7995, 0, -1.5231, 0, -1.52324, 0, 2.10727, 0, 1.78445, 0, 14.38007, 0, 12.17538, 0, 5.34238, 0, 4.52444, 0, 4.5231, 0, -2.23868, 0, -1.89496, 0, -1.89513, 0, 7.08655, 0, 5.99965, 0, 31.15753, 0, 26.37973, 0, 42.88345, 0, 36.30704, 0, 39.49829, -1.0E-5, 33.44131, 0, 33.44121, 0, 33.70972, 0, 28.54018, 0, 20.23813, 0, 17.13489 ] + } + ] + } + }, + "L_foot": { + "L_foot": { + "deform": [ + { + "vertices": [ 0.18475, -11.92622, 1.50322, -1.16228, 9.49197, -2.14086, 8.17357, -12.90479 ] + } + ] + } + }, + "L_wing": { + "L_wing": { + "deform": [ + { + "vertices": [ -72.47807, 0, 3.19443, -72.4077, -72.47807, 0, 3.19443, -72.4077, -72.47807, 0, 3.19443, -72.4077, 26.35396, -20.44797, 19.26654, 27.22954 ] + } + ] + } + }, + "R_foot": { + "R_foot": { + "deform": [ + { + "vertices": [ 10.15533, 0.83983, 14.67896, -12.2128, 4.99141, -15.57014, 0.4679, -2.5175 ] + } + ] + } + }, + "R_wing": { + "R_wing": { + "deform": [ + { + "vertices": [ -72.47807, 0, 3.19443, -72.4077, -72.47807, 0, 3.19443, -72.4077, -6.02205, 15.33593, -15.05563, -6.6922, -72.47807, 0, 3.19443, -72.4077 ] + } + ] + } + } + } + } + }, + "idle": { + "bones": { + "body-top-control": { + "translate": [ + { "x": -2.24, "y": 18.72 }, + { "time": 0.5667, "curve": "stepped" }, + { "time": 0.8 }, + { "time": 1.4667, "x": -2.84, "y": 17.73 }, + { "time": 1.9, "x": -3.43, "y": 28.64 }, + { "time": 2.8, "curve": "stepped" }, + { "time": 2.9667 }, + { "time": 3.6333, "x": -2.84, "y": 17.73 }, + { "time": 4.1, "x": -3.43, "y": 28.64 }, + { "time": 4.9667, "curve": "stepped" }, + { "time": 5.2333 }, + { "time": 5.9, "x": -2.84, "y": 17.73 }, + { "time": 6.3667, "x": -3.43, "y": 28.64 }, + { "time": 6.6667, "x": -2.24, "y": 18.72 } + ] + }, + "branch-2": { + "rotate": [ + { "value": 0.09, "curve": "stepped" }, + { "time": 2.0333, "value": 0.09 }, + { "time": 3.5, "value": 0.79 }, + { "time": 4.8333, "value": 0.09 }, + { "time": 5.9, "value": -0.13 }, + { "time": 6.6667, "value": 0.09 } + ] + }, + "branch-4": { + "rotate": [ + { "value": -0.57 }, + { "time": 0.7667, "value": -1.75 }, + { "time": 1.8667, "value": -0.57 } + ] + }, + "branch-5": { + "rotate": [ + { "value": -0.75, "curve": "stepped" }, + { "time": 1.1, "value": -0.75 }, + { "time": 1.9, "value": -0.83 }, + { "time": 2.6667, "value": -0.75 }, + { "time": 5.6667, "value": 0.66 }, + { "time": 6.6667, "value": -0.75 } + ] + }, + "tail-feathers": { + "rotate": [ + { "time": 3.2333 }, + { "time": 3.3333, "value": 10.86 }, + { "time": 3.4, "value": -13.26 }, + { "time": 3.4667, "value": 12.72 }, + { "time": 3.5333, "value": -16.15 }, + { "time": 3.6333, "value": -0.35 }, + { "time": 3.8 } + ], + "translate": [ + {}, + { "time": 1.1, "x": -1.29, "y": 21.82 }, + { "time": 2.2333 }, + { "time": 3.2667, "y": 29.98 }, + { "time": 4.7333, "y": 8.81 }, + { "time": 6.6667 } + ] + }, + "branch-3": { + "rotate": [ + {}, + { "time": 3.8333, "value": -1.4 }, + { "time": 6.6667 } + ] + }, + "head": { + "translate": [ + {}, + { "time": 1, "x": -19.41 }, + { "time": 4 }, + { "time": 4.6667, "x": -19.41 }, + { "time": 6.6667 } + ] + }, + "leaf-5": { + "rotate": [ + { "value": -2.05 }, + { "time": 0.3333 }, + { "time": 1, "value": -4.1 }, + { "time": 1.6667 }, + { "time": 2.3333, "value": -4.1 }, + { "time": 3 }, + { "time": 3.6667, "value": -4.1 }, + { "time": 4.3333 }, + { "time": 5, "value": -4.1 }, + { "time": 5.6667 }, + { "time": 6.3333, "value": -4.1 }, + { "time": 6.6667, "value": -2.05 } + ] + }, + "leaf-4": { + "rotate": [ + { "value": -2.05 }, + { "time": 0.3333 }, + { "time": 1, "value": -4.1 }, + { "time": 1.6667 }, + { "time": 2.3333, "value": -4.1 }, + { "time": 3 }, + { "time": 3.6667, "value": -4.1 }, + { "time": 4.3333 }, + { "time": 5, "value": -4.1 }, + { "time": 5.6667 }, + { "time": 6.3333, "value": -4.1 }, + { "time": 6.6667, "value": -2.05 } + ] + }, + "leaf-6": { + "rotate": [ + { "value": -4.1 }, + { "time": 0.3333, "value": -2.05 }, + { "time": 0.6667 }, + { "time": 1.3333, "value": -4.1 }, + { "time": 2 }, + { "time": 2.6667, "value": -4.1 }, + { "time": 3.3333 }, + { "time": 4, "value": -4.1 }, + { "time": 4.6667 }, + { "time": 5.3333, "value": -4.1 }, + { "time": 6 }, + { "time": 6.6667, "value": -4.1 } + ] + }, + "leaf-2": { + "rotate": [ + { "value": -2.05 }, + { "time": 0.3333 }, + { "time": 1, "value": -4.1 }, + { "time": 1.6667 }, + { "time": 2.3333, "value": -4.1 }, + { "time": 3 }, + { "time": 3.6667, "value": -4.1 }, + { "time": 4.3333 }, + { "time": 5, "value": -4.1 }, + { "time": 5.6667 }, + { "time": 6.3333, "value": -4.1 }, + { "time": 6.6667, "value": -2.05 } + ] + }, + "leaf-3": { + "rotate": [ + { "value": -4.1 }, + { "time": 0.3333, "value": -2.05 }, + { "time": 0.6667 }, + { "time": 1.3333, "value": -4.1 }, + { "time": 2 }, + { "time": 2.6667, "value": -4.1 }, + { "time": 3.3333 }, + { "time": 4, "value": -4.1 }, + { "time": 4.6667 }, + { "time": 5.3333, "value": -4.1 }, + { "time": 6 }, + { "time": 6.6667, "value": -4.1 } + ] + }, + "leaf-7": { + "rotate": [ + { "value": -2.05 }, + { "time": 0.3333 }, + { "time": 1, "value": -4.1 }, + { "time": 1.6667 }, + { "time": 2.3333, "value": -4.1 }, + { "time": 3 }, + { "time": 3.6667, "value": -4.1 }, + { "time": 4.3333 }, + { "time": 5, "value": -4.1 }, + { "time": 5.6667 }, + { "time": 6.3333, "value": -4.1 }, + { "time": 6.6667, "value": -2.05 } + ] + }, + "leaf-1": { + "rotate": [ + {}, + { "time": 0.6667, "value": -4.1 }, + { "time": 1.3333 }, + { "time": 2, "value": -4.1 }, + { "time": 2.6667 }, + { "time": 3.3333, "value": -4.1 }, + { "time": 4 }, + { "time": 4.6667, "value": -4.1 }, + { "time": 5.3333 }, + { "time": 6, "value": -4.1 }, + { "time": 6.6667 } + ] + } + } + }, + "left": { + "bones": { + "control": { + "translate": [ + { "x": 36.13, "y": -9.34 } + ], + "scale": [ + { "x": 0.881 } + ] + }, + "body-top-control": { + "translate": [ + { "x": 201.35, "y": 7.73 } + ] + }, + "head": { + "rotate": [ + { "value": 33.29 } + ], + "translate": [ + { "x": 5.95, "y": -53.29 } + ], + "scale": [ + { "x": 0.98 } + ], + "shear": [ + { "x": 2.27, "y": -14.16 } + ] + }, + "control-back": { + "translate": [ + { "x": -14.04, "y": -8.25 } + ] + }, + "tail-feathers": { + "rotate": [ + { "value": -21.71 } + ], + "translate": [ + { "x": -66.39, "y": -2.93 } + ] + }, + "branch-6": { + "rotate": [ + { "value": -12.55 } + ] + }, + "branch-1": { + "rotate": [ + { "value": -4.71 } + ], + "shear": [ + { "x": -0.6 } + ] + }, + "leaf-1": { + "rotate": [ + { "value": -7.07 } + ] + }, + "leaf-7": { + "rotate": [ + { "value": -1.77 } + ] + }, + "leaf-3": { + "rotate": [ + { "value": -45.61 } + ] + }, + "branch-2": { + "rotate": [ + { "value": -13.14 } + ] + }, + "branch-3": { + "rotate": [ + { "value": -3.9 } + ] + }, + "branch-4": { + "rotate": [ + { "value": -17.48 } + ] + }, + "leaf-2": { + "rotate": [ + { "value": -9.76 } + ] + }, + "leaf-5": { + "rotate": [ + { "value": -22 } + ] + }, + "leaf-4": { + "rotate": [ + { "value": -9.91 } + ] + }, + "leaf-6": { + "rotate": [ + { "value": -9.91 } + ] + } + }, + "attachments": { + "default": { + "head-base": { + "head-base": { + "deform": [ + { + "offset": 28, + "vertices": [ -3.41531, 1.32523, -3.00798, 1.32536, -3.00795, 1.32538, -13.18137, 2.46658, -11.60915, 2.46693, -11.60909, 2.46701, -24.95767, 2.91684, -21.98106, 2.91736, -21.98091, 2.9175, -24.95767, 2.91684, -21.98106, 2.91736, -21.98091, 2.9175, -24.95767, 2.91684, -21.98106, 2.91736, -21.98091, 2.9175, -24.95767, 2.91684, -21.98106, 2.91736, -21.98091, 2.9175, 0, 0, 0, 0, 0, 0, -13.94728, 9.2356, -13.94693, 9.23602, -34.88094, 21.34346, -34.88048, 21.34392, -34.03203, 20.858, -34.03159, 20.85857, -15.79938, 10.16179, -15.79893, 10.1624, -3.29639, 2.12108, -3.29633, 2.12112, 0, 0, 0, 0, 0, 0, 0, 0, -2.33473, -7.05453, -2.33449, -7.05409, -6.45872, -19.51779, -6.45844, -19.51738, -6.45872, -19.51779, -6.45844, -19.51738, -2.69571, -8.14571, -2.69562, -8.14552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.96945, 0.53802, -0.85397, 0.53859, 0, 0, 0, 0, 0, 0, 0, 0, -8.70248, 4.69284, -7.66454, 4.69325, -7.66441, 4.69341, -27.66286, 17.12148, -27.66251, 17.12209, -1.01492, -3.06616, -1.01476, -3.06607, 0, 0, 0, 0, 0, 0, 0, 0, -2.82654, 1.60172, -2.4894, 1.60188, -15.98976, 10.32721, -15.98938, 10.3277, -0.64944, -1.96115, -0.64929, -1.96082, -8.67078, 1.01303, -7.6366, 1.01357, -2.97052, 0.34692, -2.61644, 0.3476, -10.75204, 1.25653, -9.46964, 1.25705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -18.93701, 2.21329, -16.67841, 2.21358, -16.67833, 2.21367, -16.15625, 1.88818, -14.22923, 1.8886, -14.22917, 1.88867, -7.32959, 0.85648, -6.4554, 0.85704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.45544, 0.45947, -2.16273, 0.45963, -2.16269, 0.4597, -0.45786, 0.17761, -0.40327, 0.17772, -4.47153, 0.83658, -3.93811, 0.83688 ] + } + ] + } + }, + "L_foot": { + "L_foot": { + "deform": [ + { + "vertices": [ 32.68079, -7.56046, 32.68079, -7.56046, 32.68079, -7.56046, 32.68079, -7.56046 ] + } + ] + } + }, + "L_wing": { + "L_wing": { + "deform": [ + { + "vertices": [ -4.27489, 26.67386, -26.45953, -5.4467, 46.59749, 18.47894, -20.51476, 45.73743, 13.95807, -43.26625, 42.60894, 15.85114, -36.91428, -35.07135, 36.66417, -35.33297 ] + } + ] + } + }, + "R_foot": { + "R_foot": { + "deform": [ + { + "vertices": [ -20.46537, -32.39883, -25.30428, -2.89771, -3.40881, 0.69367, 1.43011, -28.8075 ] + } + ] + } + }, + "R_wing": { + "R_wing": { + "deform": [ + { + "vertices": [ 18.48068, 129.83382, -130.52315, 12.7402, 96.8046, 109.6412, -113.80231, 91.87796, 38.92776, 16.92949, -18.6298, 38.14354, -39.39606, 37.12224, -35.35072, -40.99409 ] + } + ] + } + } + } + } + }, + "right": { + "bones": { + "control": { + "rotate": [ + { "value": -1.83 } + ], + "translate": [ + { "x": -27.71, "y": 0.14 } + ] + }, + "head": { + "rotate": [ + { "value": 0.36 } + ], + "translate": [ + { "x": -12.95, "y": 32.1 } + ], + "scale": [ + { "x": 0.949 } + ], + "shear": [ + { "y": 12.9 } + ] + }, + "body-top-control": { + "translate": [ + { "x": -198.07, "y": -21.06 } + ] + }, + "control-back": { + "translate": [ + { "x": 14.52, "y": 22.15 } + ], + "scale": [ + { "x": 0.824 } + ] + }, + "tail-feathers": { + "rotate": [ + { "value": 12.67 } + ], + "translate": [ + { "x": 85.12, "y": 3.76 } + ] + }, + "branch-1": { + "shear": [ + { "x": 5.71 } + ] + }, + "leaf-1": { + "rotate": [ + { "value": -4.65 } + ] + }, + "leaf-7": { + "rotate": [ + { "value": -0.49 } + ] + }, + "branch-2": { + "rotate": [ + { "value": 14.88 } + ], + "shear": [ + { "y": 7.92 } + ] + }, + "branch-6": { + "rotate": [ + { "value": 22.6 } + ] + }, + "leaf-4": { + "rotate": [ + { "value": 33.05 } + ] + }, + "leaf-6": { + "rotate": [ + { "value": 9.92 } + ] + }, + "leaf-3": { + "rotate": [ + { "value": -0.07 } + ] + }, + "branch-4": { + "rotate": [ + { "value": 7.3 } + ] + }, + "leaf-5": { + "rotate": [ + { "value": 14.96 } + ] + }, + "leaf-2": { + "rotate": [ + { "value": -12.1 } + ] + }, + "branch-3": { + "rotate": [ + { "value": 5.4 } + ] + } + }, + "attachments": { + "default": { + "head-base": { + "head-base": { + "deform": [ + { + "vertices": [ 11.1344, -1.06403, 13.4433, -1.51923, 11.08145, -1.51938, 12.53537, -1.19803, 15.13455, -1.71051, 12.47559, -1.71072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.56973, 0.88794, 0.60562, 0.86386, 7.85834, 12.59955, 10.15225, 12.26709, 8.36813, 12.26724, 3.38986, 7.69897, 4.49231, 7.55347, 3.70251, 7.55368, -0.97604, 5.23138, -0.92181, 5.26715, -0.76071, 5.26755, 1.32083, 22.53156, 2.72308, 22.45892, 2.24338, 22.45923, -3.96936, 19.33832, -3.84851, 19.48505, -3.17334, 19.48557, -6.3392, 31.11188, -6.13593, 31.3457, -5.05893, 31.34583, -24.94391, 28.39221, -28.82199, 29.39117, -23.75919, 29.3912, -56.22678, 14.04083, -46.34955, 14.04099, -56.22678, 14.04083, -46.34955, 14.04099, -56.22678, 14.04083, -46.34955, 14.04099, -38.34558, 15.25574, -31.60992, 15.2561, -7.34616, 3.76868, -6.05621, 3.76898, 0, 0, 0, 0, 2.16394, -6.08075, 1.78259, -6.08026, 6.83832, -19.22064, 5.63589, -19.22021, 6.83832, -19.22064, 5.63589, -19.22021, 6.83832, -19.22064, 5.63589, -19.22021, 3.1478, -8.84509, 2.59338, -8.84448, 38.20682, -13.54205, 31.49402, -13.54196, 22.70163, -2.56564, 18.71329, -2.56577, 0, 0, 0, 0, -0.43359, 3.77911, -0.27841, 3.79391, 0.11462, 0.26648, 0.12549, 0.26163, 1.81287, -0.17331, 1.80423, -0.24731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.63617, 1.49402, -3.11993, 1.60059, -2.57245, 1.6011, -23.26324, 6.68951, -19.1777, 6.68982, 1.72217, -4.84058, 1.41837, -4.8396, 0.2225, -0.6604, 0.1955, -0.66821, 0, 0, 0, 0, 0, 0, 0, 0, -17.02399, 8.7337, -14.03403, 8.73428, 3.4574, -9.71698, 2.84891, -9.71613, 1.56943, 4.6452, 1.7587, 4.57733, -0.13034, 0.7984, -0.0975, 0.80319, -0.81927, 3.48224, -0.67593, 3.51291, 11.55099, -1.10391, 13.94623, -1.57617, 11.49603, -1.57617, 7.56793, -0.7233, 9.13727, -1.03268, 7.53198, -1.03275, 1.63562, -0.15628, 1.62781, -0.22321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5.16141, 15.28809, -5.4942, 15.48712, -4.53036, 15.48749, -3.8877, 17.94763, -3.81842, 18.09192, -3.14871, 18.09222, 3.01028, 16.62122, 4.4769, 16.48401, 3.68909, 16.48447, 0.54437, 3.79083, 0.69931, 3.76553, 9.14157, -3.81387, 8.9776, -4.18481, 12.65292, -1.20917, 15.27689, -1.72641, 12.59274, -1.72662, 20.33411, -1.94312, 24.55048, -2.77457, 20.23727, -2.77475, 5.69284, -0.54407, 5.66556, -0.77692, 5.24939, -0.50168, 5.22458, -0.71631, 0, 0, 0, 0, 4.19965, 7.2785, 5.45303, 7.10022, 4.49445, 7.10037, 1.8887, 2.94391, 2.00775, 2.86407, 1.66986, 3.74084, 1.82175, 3.6698 ] + } + ] + } + }, + "L_foot": { + "L_foot": { + "deform": [ + { + "vertices": [ 39.31265, 4.41002, 41.72089, -32.44155, 14.37022, -34.22886, 11.96194, 2.62272 ] + } + ] + } + }, + "L_wing": { + "L_wing": { + "deform": [ + { + "vertices": [ 117.33383, -45.40262, 40.18668, 119.21864, 56.25742, -57.3571, 54.82147, 58.72855, -3.51584, 22.62314, -22.44652, -4.51169, 57.56076, 34.57768, -37.08134, 55.97851 ] + } + ] + } + }, + "R_foot": { + "R_foot": { + "deform": [ + { + "vertices": [ -30.70229, -18.33, -30.70229, -18.33, -30.70229, -18.33, -30.70229, -18.33 ] + } + ] + } + }, + "R_wing": { + "R_wing": { + "deform": [ + { + "vertices": [ 109.29965, -8.02332, 3.1934, 109.53658, -6.01328, -56.23985, 56.44511, -3.53917, -150.89093, 30.36821, -23.69317, -152.09174, -25.20395, 129.73512, -128.50223, -30.90591 ] + } + ] + } + } + } + } + }, + "up": { + "bones": { + "control": { + "translate": [ + { "x": 0.3, "y": 34.37 } + ], + "scale": [ + { "y": 0.82 } + ] + }, + "control-back": { + "translate": [ + { "y": -17.04 } + ] + }, + "owl-base": { + "rotate": [ + { "value": -4.43 } + ], + "translate": [ + { "x": 18.2, "y": 11.22 } + ], + "scale": [ + { "x": 0.966 } + ] + }, + "tail-feathers": { + "translate": [ + { "x": 0.02, "y": -1.52 } + ], + "scale": [ + { "x": 1.375 } + ] + }, + "body-top-control": { + "translate": [ + { "x": -4.77, "y": 214.56 } + ] + }, + "head": { + "translate": [ + { "x": -7.82, "y": -13.16 } + ] + }, + "branch-1": { + "rotate": [ + { "value": 4.94 } + ] + }, + "branch-2": { + "rotate": [ + { "value": 0.52 } + ] + }, + "branch-3": { + "rotate": [ + { "value": 1.64 } + ] + }, + "branch-4": { + "rotate": [ + { "value": -10.43 } + ] + }, + "branch-6": { + "rotate": [ + { "value": -5.42 } + ] + }, + "leaf-6": { + "rotate": [ + { "value": -5.42 } + ] + }, + "leaf-2": { + "rotate": [ + { "value": 4.46 } + ] + } + }, + "attachments": { + "default": { + "body": { + "body": { + "deform": [ + { + "vertices": [ 9.78479, 0.43167, -8.5E-4, -9.79428, -11.07703, -0.48866, -0.00134, 11.08782, -20.53809, -0.9061, -28.18424, -1.2431, -4.9E-4, 28.21165, -28.17087, -1.24221, -3.1E-4, 28.19826, 0, 24.02027, -6.0E-5, 11.5683, -1.2E-4, -13.20591, 0, -22.67455, 28.15435, 1.2429, -5.5E-4, -28.18175, 28.14419, 1.24231, -0.0011, -28.17157, 20.9281, 0.92327, 0.10129, 0.00519, -1.2E-4, -0.10139, 0.59372, 0.02641, -7.3E-4, -0.59428, 15.61523, 0.6889, 15.26075, 0.674, -2.4E-4, -15.27561, 0, -0.2351, -14.31816, -0.63171, -13.76835, -0.60672, -1.8E-4, 13.78173, -1.2E-4, 12.47625, 0, -14.37328 ] + } + ] + } + }, + "head-base": { + "head-base": { + "deform": [ + { + "vertices": [ 18.08182, 3.28656, 18.08179, 2.69717, 18.08178, 2.69556, -2.08492, 2.81512, -2.08508, 2.31323, -2.08507, 2.30927, -8.5588, 0.05725, -8.55899, 0.05139, -8.55895, 0.04797, -3.56028, 0.02087, -3.56047, 0.02148, -3.56043, 0.01813, 4.05834, -0.03473, 4.05819, -0.02759, 10.06431, -0.07898, 10.06412, -0.06018, 10.06416, -0.06366, -1.18406, 0.43097, -1.1842, 0.3598, -1.1842, 0.35504, -22.98684, 1.70819, -22.98685, 1.40356, -22.98685, 1.40192, -22.18155, 1.67535, -22.18157, 1.3768, -22.18156, 1.37482, -21.46276, 1.13605, -21.46278, 0.93509, -21.46278, 0.93274, -11.08284, 0.68683, -11.08286, 0.56689, -11.08287, 0.56433, 0.1016, -3.78925, 0.10144, -3.10156, 0.10147, -3.10522, 0.26772, -8.18402, 0.26778, -8.18665, 0.26772, -8.18402, 0.26778, -8.18665, 0.26772, -8.18402, 0.26778, -8.18665, 0.26772, -8.18402, 0.26778, -8.18665, 0.26772, -8.18402, 0.26778, -8.18665, 0.26772, -8.18402, 0.26778, -8.18665, 0.26772, -8.18402, 0.26778, -8.18665, 0.26772, -8.18402, 0.26778, -8.18665, 0.26772, -8.18402, 0.26778, -8.18665, 0.26772, -8.18402, 0.26778, -8.18665, 0.26772, -8.18402, 0.26778, -8.18665, -1.74113, -4.18475, -1.7411, -4.18774, 15.8009, 1.18192, 15.80089, 1.1803, -1.88757, -4.98645, -1.8877, -4.08496, 0.13537, -5.04669, 0.13525, -4.13477, -4.33013, 1.79584, -4.33031, 1.47333, 4.45505, 5.67249, 4.45488, 4.65088, 0, 0, 0, 0, 0.18132, -6.76221, 0.18118, -5.54102, 0.40078, -0.00842, 0.40061, -0.00568, -10.01764, 0.73737, -10.0178, 0.60657, 10.43705, -0.08221, 10.43689, -0.06635, 0.27294, 0.21985, 0.27294, 0.18121, 0, 0, 0, 0, 0.17916, -0.00677, 0.179, -0.00452, 0.11242, -4.19293, 0.11229, -3.43506, 0.13193, -4.92053, 0.13181, -4.03156, 0.01666, -0.62231, 0.01653, -0.50916, 0.204, -7.60742, 0.20387, -6.23346, 0.1807, -6.73987, 0.18056, -5.52264, 0.2084, -7.77295, 0.20825, -6.36969, 0.23492, -8.75995, 0.23476, -7.17548, 0.2348, -7.1781, 0.26772, -8.18402, 0.26778, -8.18665, 0.26772, -8.18402, 0.26778, -8.18665, 0.22325, -8.32697, 0.22312, -6.82336, 0.23393, -8.72394, 0.2338, -7.14856, 0.22255, -8.30029, 0.22242, -6.80145, 0.26772, -8.18402, 0.26778, -8.18665, 0.26772, -8.18402, 0.26778, -8.18665, -3.50412, 1.55554, -3.50416, 1.27625, -5.88762, 2.62024, -5.88765, 2.1488, -0.90049, -1.34583, -0.90065, -1.10168, 10.97694, 4.55176, 10.97691, 3.73422, 10.97687, 3.73248, -4.2139, 0.11591, -4.21404, 0.10239, -4.21406, 0.09705, 4.95192, 7.71997, 4.95192, 6.32831, 0.15553, -5.79968, 0.1554, -4.75214, 0.1638, -6.10944, 0.16368, -5.00592, 0.1761, -6.56738, 0.17597, -5.38116, 0.16425, -6.12555, 0.16413, -5.01947, 2.14045, 2.33923, 2.1404, 1.91858, -1.85151, -0.18054, -1.85164, -0.14532, 0, 0, 0, 0, 0, 0, 0, 0, 0.14525, -5.41821, 0.14508, -4.43677, 0.14511, -4.43958, -1.12234, 0.20605, -1.12251, 0.17688, -1.1225, 0.17065, -10.04741, 1.59747, -10.04749, 1.31299, -10.0475, 1.31073, -9.60033, 1.93549, -9.60038, 1.58783, -1.90081, -5.94379, -1.90096, -4.87024, -0.06005, 1.354, -0.06008, 1.11313, -0.0601, 1.11108, 24.57889, 4.97925, 24.57886, 4.08423, 24.57883, 4.08252, 1.27811, 5.86395, 1.27796, 4.80841, 1.27968, 3.76697, 1.27951, 3.08911, 1.03323, 2.66321, 1.03302, 2.18518, -2.23629, 0.79535, -2.23643, 0.65601, -2.23644, 0.65265, 3.64207, 0.25793, 3.6419, 0.2124, -3.56169, 1.526, -3.56186, 1.25299 ] + } + ] + } + }, + "L_foot": { + "L_foot": { + "deform": [ + { + "vertices": [ 5.89397, 0.69042, 5.89397, 0.69042, 5.89397, 0.69042, 5.89397, 0.69042 ] + } + ] + } + }, + "L_wing": { + "L_wing": { + "deform": [ + { + "vertices": [ -11.13373, 20.07786, -19.56781, -12.00009, 23.31055, 16.37385, -17.38553, 22.57391, 17.65799, -39.82292, 39.00579, 19.4036, -16.78632, -36.11907, 36.82366, -15.17023 ] + } + ] + } + }, + "R_foot": { + "R_foot": { + "deform": [ + { + "vertices": [ 35.48705, -0.58566, 32.90477, 10.12547, 40.85446, 12.04202, 43.43665, 1.33094 ] + } + ] + } + }, + "R_wing": { + "R_wing": { + "deform": [ + { + "vertices": [ 24.96088, -21.2647, 20.14355, 25.88189, 6.7001, -22.29713, 21.97984, 7.68417, 8.16104, -3.76462, 3.40096, 8.32676, 26.42206, -2.73223, 1.56473, 26.52477 ] + } + ] + } + } + } + } + } +} +} \ No newline at end of file diff --git a/spine-haxe/example/assets/owl-pro.skel b/spine-haxe/example/assets/owl-pro.skel new file mode 100644 index 0000000000..d313366c7c Binary files /dev/null and b/spine-haxe/example/assets/owl-pro.skel differ diff --git a/spine-haxe/example/assets/owl.atlas b/spine-haxe/example/assets/owl.atlas new file mode 100644 index 0000000000..1b1d4b8b1f --- /dev/null +++ b/spine-haxe/example/assets/owl.atlas @@ -0,0 +1,73 @@ +owl.png + size: 1024, 512 + filter: Linear, Linear + scale: 0.5 +L_eye-closed + bounds: 512, 5, 90, 86 + rotate: 90 +L_eye-iris + bounds: 600, 10, 90, 86 + rotate: 90 +L_eye-light + bounds: 688, 4, 21, 20 + rotate: 90 +L_eye-pupil + bounds: 856, 13, 63, 60 + rotate: 90 +L_foot + bounds: 834, 78, 64, 48 + rotate: 90 +L_wing + bounds: 349, 4, 81, 110 + rotate: 90 +R_eye-closed + bounds: 637, 119, 90, 86 + rotate: 90 +R_eye-iris + bounds: 688, 27, 90, 86 + rotate: 90 +R_eye-light + bounds: 710, 4, 21, 20 + rotate: 90 +R_eye-pupil + bounds: 884, 80, 63, 60 + rotate: 90 +R_foot + bounds: 845, 145, 64, 48 + rotate: 90 +R_wing + bounds: 421, 93, 81, 110 +beak + bounds: 776, 2, 39, 41 +beak-down + bounds: 817, 3, 37, 40 +body + bounds: 2, 7, 248, 196 +feather-1 + bounds: 918, 18, 59, 60 +feather-2 + bounds: 781, 144, 62, 65 +feather-3 + bounds: 776, 45, 56, 76 +head-base + bounds: 621, 211, 299, 237 + rotate: 90 +leaf-1 + bounds: 559, 102, 76, 101 +leaf-2 + bounds: 252, 4, 65, 95 + rotate: 90 +leaf-3 + bounds: 252, 71, 132, 77 + rotate: 90 +leaf-4 + bounds: 461, 2, 89, 49 + rotate: 90 +leaf-5 + bounds: 504, 97, 53, 106 +leaf-6 + bounds: 331, 87, 88, 116 +leaf-7 + bounds: 725, 123, 54, 86 +wood + bounds: 2, 205, 617, 305 diff --git a/spine-haxe/example/assets/owl.png b/spine-haxe/example/assets/owl.png new file mode 100644 index 0000000000..a375217a72 Binary files /dev/null and b/spine-haxe/example/assets/owl.png differ diff --git a/spine-haxe/example/assets/raptor-pro.json b/spine-haxe/example/assets/raptor-pro.json new file mode 100644 index 0000000000..5439b91383 --- /dev/null +++ b/spine-haxe/example/assets/raptor-pro.json @@ -0,0 +1,9161 @@ +{ +"skeleton": { + "hash": "AAVlM3uJh3s", + "spine": "4.1.17", + "x": -809.16, + "y": -73.54, + "width": 1287.65, + "height": 1039.44, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { "name": "hip", "parent": "root", "rotation": 8.96, "x": -122.52, "y": 392.65, "color": "fbff00ff" }, + { + "name": "torso1", + "parent": "hip", + "length": 126.26, + "rotation": -4.98, + "x": 30.04, + "y": -0.4, + "color": "eaff00ff" + }, + { + "name": "saddle", + "parent": "torso1", + "length": 50.92, + "rotation": 91.8, + "x": 25.31, + "y": 70.65, + "color": "ff7300ff" + }, + { + "name": "spineboy-hip", + "parent": "saddle", + "length": 0.53, + "rotation": 90.02, + "x": 81.88, + "y": 2.69, + "color": "e8ff00ff" + }, + { + "name": "spineboy-torso", + "parent": "spineboy-hip", + "length": 122.45, + "rotation": -75.86, + "x": 1.05, + "y": -2.11, + "color": "e8ff00ff" + }, + { + "name": "torso2", + "parent": "torso1", + "length": 121.2, + "rotation": 39.85, + "x": 126.26, + "y": -0.38, + "color": "e9ff00ff" + }, + { + "name": "neck", + "parent": "torso2", + "length": 70.6, + "rotation": 41.38, + "x": 121.2, + "y": 0.35, + "color": "eaff00ff" + }, + { + "name": "head", + "parent": "neck", + "length": 105.51, + "rotation": 9.83, + "x": 70.6, + "y": 0.04, + "color": "eaff00ff" + }, + { + "name": "horn-back", + "parent": "head", + "length": 73.78, + "rotation": 44.32, + "x": 104.76, + "y": -242.01, + "color": "e07800ff" + }, + { + "name": "spineboy-back-arm-target", + "parent": "horn-back", + "rotation": -133.55, + "x": 232.68, + "y": 245.85, + "transform": "noScale", + "color": "ff3f00ff" + }, + { + "name": "back-arm", + "parent": "spineboy-torso", + "length": 67.21, + "rotation": -120.9, + "x": 96.33, + "y": -38.47, + "color": "e07800ff" + }, + { + "name": "back-bracer", + "parent": "back-arm", + "length": 43.69, + "rotation": 17.48, + "x": 67.22, + "y": -0.32, + "color": "e07800ff" + }, + { + "name": "back-arm1", + "parent": "torso2", + "length": 109.56, + "rotation": -124.72, + "x": 83.68, + "y": -83.24, + "color": "e07800ff" + }, + { + "name": "back-arm2", + "parent": "back-arm1", + "length": 85.8, + "rotation": 123.56, + "x": 109.57, + "y": -0.01, + "color": "e07800ff" + }, + { "name": "back-foot-target", "parent": "root", "x": 33.44, "y": 30.82, "color": "ff3f00ff" }, + { "name": "back-leg-target", "parent": "back-foot-target", "x": -127.51, "y": 75.99, "color": "ff3f00ff" }, + { + "name": "back-leg1", + "parent": "hip", + "length": 226.28, + "rotation": -54.76, + "x": 55.19, + "y": -71.25, + "color": "e07800ff" + }, + { + "name": "back-leg2", + "parent": "back-leg1", + "length": 172.59, + "rotation": -92.25, + "x": 226.32, + "y": 0.23, + "color": "e07800ff" + }, + { + "name": "back-leg3", + "parent": "back-leg2", + "length": 103.05, + "rotation": 82.82, + "x": 172.32, + "y": 2.21, + "color": "e07800ff" + }, + { + "name": "back-foot1", + "parent": "back-leg3", + "length": 84.51, + "rotation": 75.43, + "x": 102.38, + "y": -0.03, + "color": "e07800ff" + }, + { + "name": "back-foot2", + "parent": "back-foot1", + "length": 102.31, + "rotation": -6.14, + "x": 84.5, + "y": -0.35, + "transform": "noRotationOrReflection", + "color": "e07800ff" + }, + { + "name": "back-hand", + "parent": "back-arm2", + "length": 45.81, + "rotation": -76.28, + "x": 85.8, + "y": 0.11, + "color": "e07800ff" + }, + { + "name": "back-hand2", + "parent": "spineboy-back-arm-target", + "length": 41.98, + "rotation": 27.78, + "x": -0.03, + "y": 0.05, + "transform": "noRotationOrReflection", + "color": "e07800ff" + }, + { "name": "spineboy-back-foot-target", "parent": "saddle", "x": -30.44, "y": -100.08, "color": "ff3f00ff" }, + { + "name": "back-thigh", + "parent": "spineboy-hip", + "length": 71.16, + "rotation": 160.75, + "x": -9.57, + "y": 2.32, + "color": "e07800ff" + }, + { + "name": "back-knee", + "parent": "back-thigh", + "length": 97.17, + "rotation": -54.98, + "x": 71.16, + "y": -0.28, + "color": "e07800ff" + }, + { + "name": "neck2", + "parent": "spineboy-torso", + "length": 32.05, + "rotation": -45.23, + "x": 113.44, + "y": -15.22, + "color": "e8ff00ff" + }, + { + "name": "head2", + "parent": "neck2", + "length": 167.19, + "rotation": 11.66, + "x": 25.68, + "y": -0.77, + "transform": "noScale", + "color": "e7ff00ff" + }, + { + "name": "bone", + "parent": "head2", + "length": 39.92, + "rotation": -35.23, + "x": 166.09, + "y": -79.27, + "color": "e7ff00ff" + }, + { "name": "bone2", "parent": "bone", "length": 47.42, "rotation": 51.8, "x": 39.92, "color": "e7ff00ff" }, + { + "name": "bone3", + "parent": "head2", + "length": 45.41, + "rotation": -12.34, + "x": 179.8, + "y": -20.91, + "color": "e7ff00ff" + }, + { + "name": "bone4", + "parent": "bone3", + "length": 43.31, + "rotation": 42.01, + "x": 44.64, + "y": 0.3, + "color": "e7ff00ff" + }, + { "name": "bone5", "parent": "bone4", "length": 44.88, "rotation": 48.8, "x": 43.31, "color": "e7ff00ff" }, + { + "name": "horn-front", + "parent": "head", + "length": 87.48, + "rotation": 49.36, + "x": 87.97, + "y": -235.15, + "color": "15ff00ff" + }, + { "name": "spineboy-front-arm-target", "parent": "horn-front", "rotation": -138.6, "x": 294.58, "y": 234.18, "color": "ff3f00ff" }, + { + "name": "front-arm", + "parent": "spineboy-torso", + "length": 74.52, + "rotation": -118.17, + "x": 101.38, + "y": 9.79, + "color": "14ff00ff" + }, + { + "name": "front-bracer", + "parent": "front-arm", + "length": 39.85, + "rotation": 20.31, + "x": 74.52, + "y": -0.42, + "color": "14ff00ff" + }, + { + "name": "front-arm1", + "parent": "torso2", + "length": 109.99, + "rotation": 224.54, + "x": 73, + "y": -72.46, + "color": "15ff00ff" + }, + { + "name": "front-arm2", + "parent": "front-arm1", + "length": 86.33, + "rotation": 105.24, + "x": 109.99, + "y": 0.2, + "color": "15ff00ff" + }, + { "name": "front-foot-target", "parent": "root", "rotation": -6.96, "x": -45.8, "y": -28.67, "color": "ff3f00ff" }, + { "name": "front-leg-target", "parent": "front-foot-target", "x": -106.06, "y": 115.58, "color": "ff3f00ff" }, + { + "name": "front-leg1", + "parent": "hip", + "length": 251.75, + "rotation": -51.51, + "x": 27.36, + "y": -28.28, + "color": "15ff00ff" + }, + { + "name": "front-leg2", + "parent": "front-leg1", + "length": 208.55, + "rotation": 261.94, + "x": 251.04, + "y": 0.16, + "color": "15ff00ff" + }, + { + "name": "front-leg3", + "parent": "front-leg2", + "length": 118.18, + "rotation": 85.46, + "x": 208.5, + "y": -1.64, + "color": "15ff00ff" + }, + { + "name": "front-foot1", + "parent": "front-leg3", + "length": 57.79, + "rotation": 54.46, + "x": 118.2, + "y": -0.79, + "color": "15ff00ff" + }, + { + "name": "front-foot2", + "parent": "front-foot1", + "length": 56.19, + "rotation": -2.16, + "x": 57.79, + "y": -0.02, + "scaleX": 0.731, + "scaleY": 0.823, + "transform": "onlyTranslation", + "color": "15ff00ff" + }, + { + "name": "front-foot3", + "parent": "front-foot2", + "length": 129.88, + "rotation": -2.7, + "x": 49.71, + "y": 20.66, + "scaleX": 1.155, + "color": "15ff00ff" + }, + { + "name": "front-hand", + "parent": "front-arm2", + "length": 47.56, + "rotation": -56.83, + "x": 86.33, + "y": 0.06, + "color": "15ff00ff" + }, + { + "name": "front-hand2", + "parent": "front-bracer", + "length": 58.19, + "rotation": 17.31, + "x": 42.72, + "y": -2.77, + "scaleX": 1.0004, + "scaleY": 1.0004, + "transform": "onlyTranslation", + "color": "14ff00ff" + }, + { "name": "spineboy-front-foot-target", "parent": "saddle", "x": -50.71, "y": -96.93, "color": "ff3f00ff" }, + { + "name": "front-thigh", + "parent": "spineboy-hip", + "length": 77.79, + "rotation": 163.34, + "x": 15.52, + "y": 17.02, + "color": "14ff00ff" + }, + { + "name": "lower-leg", + "parent": "front-thigh", + "length": 111.5, + "rotation": -49.62, + "x": 77.93, + "y": -0.11, + "color": "14ff00ff" + }, + { + "name": "gun", + "parent": "spineboy-hip", + "length": 181.35, + "rotation": 107.12, + "x": 16.86, + "y": -7.89, + "scaleX": 0.816, + "scaleY": 0.816, + "color": "ffffffff" + }, + { + "name": "jaw", + "parent": "head", + "length": 203.76, + "rotation": -129.6, + "x": 49.11, + "y": -68.46, + "color": "ffff00ff" + }, + { "name": "jaw-inside", "parent": "jaw", "x": 94.7, "y": 33.64, "color": "ffff00ff" }, + { + "name": "saddle-strap-back", + "parent": "saddle", + "length": 74.6, + "rotation": 151.14, + "x": -33.34, + "y": 87.33, + "color": "ff7300ff" + }, + { + "name": "saddle-strap-front", + "parent": "saddle", + "length": 154.29, + "rotation": -148.12, + "x": -27.36, + "y": -73.39, + "color": "ff7300ff" + }, + { + "name": "stirrup", + "parent": "saddle", + "length": 78.17, + "rotation": -68.86, + "x": -81.94, + "y": -103.38, + "color": "ff3f00ff" + }, + { + "name": "stirrup-strap1", + "parent": "saddle", + "length": 43.7, + "rotation": -135, + "x": -20.38, + "y": -29.37, + "color": "ff7300ff" + }, + { "name": "stirrup-strap2", "parent": "stirrup-strap1", "length": 51.62, "rotation": 9.39, "x": 43.71, "color": "ff7300ff" }, + { + "name": "tail1", + "parent": "hip", + "length": 81.26, + "rotation": 153.61, + "x": -20.87, + "y": 6.87, + "color": "eaff00ff" + }, + { "name": "tail2", "parent": "tail1", "length": 81.26, "rotation": 10.42, "x": 81.26, "color": "eaff00ff" }, + { "name": "tail3", "parent": "tail2", "length": 65.01, "rotation": 12.18, "x": 81.26, "color": "eaff00ff" }, + { "name": "tail4", "parent": "tail3", "length": 65.01, "x": 65.01, "color": "eaff00ff" }, + { "name": "tail5", "parent": "tail4", "length": 70.53, "rotation": 4.36, "x": 65.01, "color": "eaff00ff" }, + { "name": "tail6", "parent": "tail5", "length": 70.53, "x": 70.53, "color": "eaff00ff" }, + { "name": "tail7", "parent": "tail6", "length": 63.13, "rotation": 2.35, "x": 70.53, "color": "eaff00ff" }, + { "name": "tail8", "parent": "tail7", "length": 54.46, "rotation": 0.97, "x": 63.13, "color": "eaff00ff" }, + { "name": "tail9", "parent": "tail8", "length": 49.21, "rotation": -1.29, "x": 54.46, "color": "eaff00ff" }, + { "name": "tail10", "parent": "tail9", "length": 45.53, "rotation": 0.36, "x": 49.21, "color": "eaff00ff" }, + { + "name": "tongue1", + "parent": "head", + "length": 55.12, + "rotation": -129.04, + "x": 20.82, + "y": -104.75, + "color": "ffff00ff" + }, + { + "name": "tongue2", + "parent": "tongue1", + "length": 44.67, + "rotation": 8.93, + "x": 55.6, + "y": 0.93, + "color": "fff200ff" + }, + { + "name": "tongue3", + "parent": "tongue2", + "length": 43.65, + "rotation": 12.86, + "x": 44.27, + "y": -0.21, + "color": "fff200ff" + }, + { "name": "head-control", "parent": "head", "rotation": -95.04, "x": 42.32, "y": -220.33, "color": "219517ff" }, + { "name": "leg-control", "parent": "front-leg1", "rotation": 53.14, "x": 172.97, "y": 4.16, "color": "1d8020ff" } +], +"slots": [ + { "name": "back-hand", "bone": "back-hand2", "attachment": "back-hand" }, + { "name": "back-arm", "bone": "back-arm", "attachment": "back-arm" }, + { "name": "back-bracer", "bone": "back-bracer", "attachment": "back-bracer" }, + { "name": "back-knee", "bone": "back-knee", "attachment": "back-knee" }, + { "name": "raptor-jaw-inside", "bone": "jaw-inside", "color": "646464ff", "attachment": "raptor-jaw2" }, + { "name": "raptor-mouth-inside", "bone": "jaw", "attachment": "raptor-mouth-inside" }, + { "name": "raptow-jaw-tooth", "bone": "jaw", "attachment": "raptor-jaw-tooth" }, + { "name": "raptor-horn-back", "bone": "horn-back", "attachment": "raptor-horn-back" }, + { "name": "raptor-tongue", "bone": "tongue1", "attachment": "raptor-tongue" }, + { "name": "raptor-hindleg-back", "bone": "back-leg1", "attachment": "raptor-hindleg-back" }, + { "name": "raptor-back-arm", "bone": "back-arm1", "attachment": "raptor-back-arm" }, + { "name": "back-thigh", "bone": "back-thigh", "attachment": "back-thigh" }, + { "name": "raptor-body", "bone": "torso1", "attachment": "raptor-body" }, + { "name": "raptor-saddle-strap-front", "bone": "saddle-strap-front", "attachment": "raptor-saddle-strap-front" }, + { "name": "raptor-saddle-strap-back", "bone": "saddle-strap-back", "attachment": "raptor-saddle-strap-back" }, + { "name": "raptor-saddle", "bone": "saddle", "attachment": "raptor-saddle-w-shadow" }, + { "name": "raptor-jaw", "bone": "jaw", "attachment": "raptor-jaw" }, + { "name": "raptor-front-arm", "bone": "front-arm1", "attachment": "raptor-front-arm" }, + { "name": "raptor-front-leg", "bone": "front-leg1", "attachment": "raptor-front-leg" }, + { "name": "neck", "bone": "neck2", "attachment": "neck" }, + { "name": "spineboy-torso", "bone": "spineboy-torso", "attachment": "torso" }, + { "name": "head", "bone": "head2", "attachment": "head" }, + { "name": "eyes-open", "bone": "head2", "attachment": "eyes-open" }, + { "name": "mouth-smile", "bone": "head2", "attachment": "mouth-smile" }, + { "name": "visor", "bone": "head2", "attachment": "visor" }, + { "name": "raptor-horn", "bone": "horn-front", "attachment": "raptor-horn" }, + { "name": "front-thigh", "bone": "front-thigh", "attachment": "front-thigh" }, + { "name": "stirrup-back", "bone": "stirrup", "attachment": "stirrup-back" }, + { "name": "lower-leg", "bone": "lower-leg", "attachment": "lower-leg" }, + { "name": "stirrup-strap", "bone": "stirrup", "attachment": "stirrup-strap" }, + { "name": "stirrup-front", "bone": "stirrup", "attachment": "stirrup-front" }, + { "name": "gun", "bone": "gun", "attachment": "gun-nohand" }, + { "name": "front-arm", "bone": "front-arm", "attachment": "front-arm" }, + { "name": "front-bracer", "bone": "front-bracer", "attachment": "front-bracer" }, + { "name": "front-hand", "bone": "front-hand2", "attachment": "front-hand" }, + { "name": "tail-shadow", "bone": "torso1", "color": "00000000" } +], +"ik": [ + { + "name": "back-foot-ik", + "order": 3, + "bones": [ "back-leg3", "back-foot1" ], + "target": "back-foot-target" + }, + { + "name": "back-leg-ik", + "order": 2, + "bones": [ "back-leg1", "back-leg2" ], + "target": "back-leg-target", + "bendPositive": false + }, + { + "name": "front-foot-ik", + "order": 1, + "bones": [ "front-leg3", "front-foot1" ], + "target": "front-foot-target" + }, + { + "name": "front-leg-ik", + "bones": [ "front-leg1", "front-leg2" ], + "target": "front-leg-target", + "bendPositive": false + }, + { + "name": "spineboy-back-arm-ik", + "order": 8, + "bones": [ "back-arm", "back-bracer" ], + "target": "spineboy-back-arm-target", + "bendPositive": false + }, + { + "name": "spineboy-back-leg-ik", + "order": 5, + "bones": [ "back-thigh", "back-knee" ], + "target": "spineboy-back-foot-target", + "bendPositive": false + }, + { + "name": "spineboy-front-arm-ik", + "order": 7, + "bones": [ "front-arm", "front-bracer" ], + "target": "spineboy-front-arm-target" + }, + { + "name": "spineboy-front-leg-ik", + "order": 4, + "bones": [ "front-thigh", "lower-leg" ], + "target": "spineboy-front-foot-target", + "bendPositive": false + }, + { + "name": "stirrup", + "order": 6, + "bones": [ "stirrup-strap1", "stirrup-strap2" ], + "target": "stirrup", + "bendPositive": false + } +], +"skins": [ + { + "name": "default", + "attachments": { + "back-arm": { + "back-arm": { "x": 28.57, "y": -12.03, "rotation": 16.76, "width": 91, "height": 49 } + }, + "back-bracer": { + "back-bracer": { "x": 13.2, "y": -4.28, "rotation": -0.73, "width": 77, "height": 55 } + }, + "back-hand": { + "back-hand": { "x": 18.61, "y": 4.24, "rotation": -10.99, "width": 72, "height": 68 } + }, + "back-knee": { + "back-knee": { "x": 45.77, "y": 20.47, "rotation": 74.23, "width": 97, "height": 134 } + }, + "back-thigh": { + "back-thigh": { "x": 37.85, "y": -4.37, "rotation": 19.25, "width": 78, "height": 47 } + }, + "eyes-open": { + "eyes-open": { "x": 93.24, "y": -25.45, "rotation": -70.58, "width": 93, "height": 89 } + }, + "front-arm": { + "front-arm": { "x": 33.68, "y": -1.53, "rotation": 14.02, "width": 96, "height": 51 } + }, + "front-bracer": { + "front-bracer": { "x": 11.68, "y": -1.37, "rotation": -6.28, "width": 81, "height": 58 } + }, + "front-hand": { + "front-hand": { "x": 35.7, "y": 7.84, "rotation": -13.97, "width": 82, "height": 75 }, + "front-open-hand": { "x": 42.55, "y": 4.62, "rotation": 62.19, "width": 86, "height": 87 }, + "gun": { "x": 98.91, "y": 22.98, "rotation": 56.35, "width": 213, "height": 206 } + }, + "front-thigh": { + "front-thigh": { "x": 45.7, "y": -3.1, "rotation": 16.66, "width": 114, "height": 58 } + }, + "gun": { + "gun-nohand": { "x": 54.65, "y": -24.93, "rotation": 55.2, "width": 210, "height": 203 } + }, + "head": { + "head": { + "type": "mesh", + "uvs": [ 0.73461, 0.04542, 0.88414, 0.17033, 0.88955, 0.31976, 0.91126, 0.27463, 0.9461, 0.20217, 1, 0.29892, 1, 0.34554, 1, 0.4508, 0.91249, 0.51206, 0.84514, 0.51207, 0.8209, 0.59663, 0.77915, 0.67257, 0.73605, 0.75464, 0.83571, 0.73994, 0.84784, 0.84528, 0.7549, 0.93101, 0.63773, 1, 0.39394, 1, 0.14747, 0.82935, 0, 0.59419, 0, 0.36645, 0.09623, 0.20353, 0.21474, 0.14594, 0.45179, 0.15693, 0.51509, 0.1263, 0.507, 0.07853, 0.42079, 0, 0.56221, 0, 0.19055, 0.39949, 0.27942, 0.31373, 0.79396, 0.479, 0.76029, 0.85997, 0.53421, 0.16964, 0.53207, 0.04286, 0.61949, 0.08784, 0.70424, 0.16685, 0.69053, 0.432, 0.85592, 0.37861, 0.45844, 0.34997, 0.48658, 0.30193, 0.66307, 0.35065, 0.58439, 0.39448, 0.70468, 0.26242, 0.51985, 0.21924 ], + "triangles": [ 23, 24, 32, 32, 24, 34, 35, 34, 0, 34, 25, 33, 34, 24, 25, 33, 27, 34, 34, 27, 0, 25, 26, 33, 33, 26, 27, 32, 35, 42, 35, 0, 1, 32, 34, 35, 36, 40, 37, 40, 42, 37, 37, 42, 2, 40, 43, 42, 2, 42, 1, 43, 32, 42, 42, 35, 1, 7, 37, 6, 37, 2, 6, 6, 2, 5, 2, 3, 5, 3, 4, 5, 8, 37, 7, 10, 36, 30, 10, 11, 36, 15, 16, 31, 18, 12, 17, 38, 18, 28, 12, 31, 16, 12, 41, 36, 41, 12, 18, 41, 18, 38, 38, 28, 29, 15, 31, 14, 12, 16, 17, 14, 31, 13, 31, 12, 13, 18, 19, 28, 12, 36, 11, 19, 20, 28, 29, 28, 21, 38, 39, 41, 28, 20, 21, 39, 43, 40, 38, 29, 39, 21, 22, 29, 29, 22, 39, 22, 23, 39, 39, 23, 43, 43, 23, 32, 41, 39, 40, 10, 30, 9, 41, 40, 36, 8, 9, 37, 9, 30, 37, 30, 36, 37 ], + "vertices": [ 2, 32, 58.33, -14.31, 0.30205, 33, -0.88, -20.72, 0.69795, 3, 30, 69.21, 19.04, 0.07711, 31, 87.24, -25.34, 0.8077, 32, 14.49, -47.57, 0.11518, 3, 29, 43.19, 28.99, 0.10855, 30, 24.81, 15.35, 0.61823, 31, 50.15, -50.03, 0.27322, 1, 30, 38.53, 10.15, 1, 1, 30, 60.57, 1.79, 1, 1, 30, 32.5, -14.23, 1, 1, 30, 18.62, -14.92, 1, 2, 29, 45.01, -20.18, 0.76042, 30, -12.71, -16.48, 0.23958, 1, 28, 166.12, -105.42, 1, 1, 28, 160.05, -88.21, 1, 1, 28, 134.1, -90.39, 1, 1, 28, 108.99, -87.24, 1, 1, 28, 82.04, -84.36, 1, 1, 28, 95.16, -108.38, 1, 1, 28, 66.64, -121.91, 1, 1, 28, 34.17, -106.65, 1, 1, 28, 4.23, -83.54, 1, 1, 28, -17.74, -21.23, 1, 1, 28, 8.01, 58.67, 1, 1, 28, 60.82, 119.66, 1, 1, 28, 124.82, 142.22, 1, 1, 28, 179.28, 133.77, 1, 1, 28, 206.14, 109.19, 1, 3, 28, 224.42, 47.51, 0.55599, 32, 39.26, 67.02, 0.19527, 33, 47.76, 47.19, 0.24873, 3, 28, 238.73, 34.37, 0.20521, 32, 45.19, 48.52, 0.20866, 33, 37.74, 30.54, 0.58612, 2, 32, 59.59, 48.14, 0.05508, 33, 46.95, 19.46, 0.94492, 1, 33, 79.02, 11.41, 1, 1, 33, 46.15, -8.3, 1, 1, 28, 132.71, 90.25, 1, 1, 28, 164.81, 76.03, 1, 1, 28, 164.73, -71.85, 1, 1, 28, 54.62, -100.99, 1, 3, 28, 228.27, 25.19, 0.29316, 32, 31.56, 45.72, 0.3088, 33, 26.66, 38.96, 0.39805, 1, 33, 46.59, 6.85, 1, 2, 32, 51.44, 18.64, 0.07922, 33, 19.38, 6.16, 0.92078, 1, 32, 24.18, 0.23, 1, 1, 28, 168.62, -40.76, 1, 3, 29, 25.61, 19.96, 0.50536, 30, 6.84, 23.59, 0.2645, 31, 30.44, -51.51, 0.23014, 1, 28, 170.76, 26.69, 1, 4, 28, 186.8, 24.26, 0.75057, 31, -2.82, 45.62, 0.07609, 32, -4.94, 65.43, 0.10488, 33, 17.45, 79.4, 0.06845, 1, 31, 10.01, -2.69, 1, 1, 28, 169.6, -9.91, 1, 1, 31, 38.3, 1.56, 1, 4, 28, 213.04, 23.94, 0.43153, 31, 22.88, 50.92, 0.09832, 32, 17.71, 52.17, 0.26174, 33, 22.39, 53.63, 0.20841 ], + "hull": 28, + "edges": [ 10, 8, 4, 2, 2, 0, 0, 54, 52, 54, 52, 50, 50, 48, 48, 46, 46, 44, 44, 42, 42, 40, 40, 56, 56, 58, 60, 18, 18, 16, 16, 14, 38, 40, 38, 36, 36, 34, 32, 34, 32, 30, 30, 62, 62, 28, 28, 26, 26, 24, 24, 22, 22, 20, 20, 18, 28, 30, 48, 64, 50, 66, 66, 54, 0, 68, 68, 48, 66, 68, 2, 70, 70, 64, 68, 70, 72, 60, 10, 12, 12, 14, 4, 12, 4, 6, 6, 8, 10, 6, 14, 74, 4, 74, 74, 72, 58, 76, 78, 76, 78, 44, 80, 78, 72, 82, 82, 76, 80, 82, 80, 74, 70, 84, 84, 80, 4, 84, 64, 86, 86, 78, 84, 86 ], + "width": 271, + "height": 298 + } + }, + "lower-leg": { + "lower-leg": { "x": 76.2, "y": 22.21, "rotation": 66.28, "width": 146, "height": 195 } + }, + "mouth-smile": { + "mouth-grind": { "x": 27.66, "y": -31.33, "rotation": -70.58, "width": 93, "height": 59 }, + "mouth-smile": { "x": 27.66, "y": -31.33, "rotation": -70.58, "width": 93, "height": 59 } + }, + "neck": { + "neck": { "x": 15.1, "y": -1.67, "rotation": -58.92, "width": 36, "height": 41 } + }, + "raptor-back-arm": { + "raptor-back-arm": { + "type": "mesh", + "uvs": [ 0.38712, 0.29362, 0.31383, 0.46513, 0.29243, 0.51522, 0.32476, 0.49311, 0.57587, 0.32139, 0.63255, 0.28263, 0.71632, 0.34508, 0.94948, 0.51888, 0.94948, 0.60129, 1, 0.65257, 1, 0.90624, 0.95463, 0.99934, 0.88957, 0.83205, 0.80295, 0.99999, 0.75236, 0.75696, 0.6654, 0.71301, 0.62289, 0.63243, 0.58195, 0.65032, 0.22479, 0.80641, 0.07792, 0.73315, 0.07825, 0.6655, 0.07985, 0.34307, 0, 0.29728, 0, 0, 0.32335, 0 ], + "triangles": [ 6, 15, 16, 5, 6, 16, 5, 16, 4, 6, 7, 15, 16, 17, 4, 8, 15, 7, 14, 15, 8, 12, 14, 8, 12, 8, 9, 12, 9, 10, 11, 12, 10, 13, 14, 12, 17, 3, 4, 19, 20, 2, 18, 19, 2, 18, 2, 3, 18, 3, 17, 21, 22, 23, 24, 21, 23, 0, 21, 24, 1, 21, 0, 1, 20, 21, 2, 20, 1 ], + "vertices": [ 2, 13, 36.95, 33.31, 0.91667, 14, 68.54, 41.05, 0.08333, 2, 13, 66.02, 20.36, 0.76814, 14, 41.42, 24.4, 0.23186, 2, 13, 74.51, 16.58, 0.64468, 14, 33.5, 19.53, 0.35532, 2, 13, 70.89, 21.97, 0.29072, 14, 40, 19.47, 0.70928, 3, 13, 42.78, 63.9, 0.11484, 14, 90.47, 18.95, 0.60855, 22, -17.2, 9.01, 0.27661, 2, 14, 101.86, 18.84, 0.45956, 22, -14.39, 20.05, 0.54044, 2, 14, 106.48, 2.09, 0.0625, 22, 2.98, 20.56, 0.9375, 1, 22, 51.32, 21.99, 1, 1, 22, 60.41, 11.11, 1, 1, 22, 72.39, 9.62, 1, 1, 22, 100.37, -23.87, 1, 1, 22, 104.96, -40.9, 1, 1, 22, 78.37, -25.62, 1, 1, 22, 86.06, -56.84, 1, 1, 22, 52.92, -30.05, 1, 2, 14, 62.25, -43.93, 0.0625, 22, 37.19, -33.34, 0.9375, 2, 14, 64.89, -28.66, 0.3125, 22, 22.99, -27.14, 0.6875, 2, 14, 57.7, -27.17, 0.30612, 22, 19.84, -33.78, 0.69388, 2, 13, 124.19, 3.84, 0.19395, 14, -5.1, -14.24, 0.80605, 2, 13, 110.78, -19.65, 0.3125, 14, -16.89, 10.11, 0.6875, 2, 13, 99.15, -19.2, 0.51614, 14, -9.94, 19.44, 0.48386, 2, 13, 43.73, -17.04, 0.9375, 14, 23.18, 63.93, 0.0625, 1, 13, 35.41, -29.78, 1, 1, 13, -15.69, -28.02, 1, 1, 13, -13.88, 24.65, 1 ], + "hull": 25, + "edges": [ 44, 46, 44, 42, 38, 36, 32, 30, 30, 28, 28, 26, 24, 22, 18, 16, 16, 14, 46, 48, 38, 4, 6, 4, 6, 36, 42, 40, 40, 38, 4, 2, 2, 0, 40, 2, 10, 32, 36, 34, 34, 32, 10, 8, 8, 6, 34, 8, 14, 12, 12, 10, 12, 30, 18, 20, 22, 20, 26, 24, 48, 0 ], + "width": 163, + "height": 172 + } + }, + "raptor-body": { + "raptor-body": { + "type": "mesh", + "uvs": [ 0.88305, 0.02794, 0.91758, 0.05592, 0.9497, 0.09133, 0.97573, 0.13213, 0.99055, 0.17339, 0.99759, 0.22987, 0.99678, 0.27226, 0.99353, 0.31287, 0.9839, 0.38477, 0.97956, 0.35307, 0.96687, 0.38782, 0.96442, 0.34841, 0.94742, 0.38391, 0.94489, 0.33238, 0.9386, 0.34808, 0.93784, 0.32559, 0.92667, 0.34333, 0.92539, 0.31538, 0.91182, 0.34989, 0.90925, 0.28963, 0.89984, 0.27929, 0.87514, 0.33979, 0.86225, 0.40838, 0.87429, 0.45818, 0.84272, 0.50226, 0.81998, 0.59622, 0.81697, 0.68641, 0.81951, 0.7069, 0.78696, 0.82183, 0.74283, 0.91135, 0.68699, 0.97585, 0.6244, 1, 0.58849, 1, 0.51466, 1, 0.49121, 0.8368, 0.4727, 0.78488, 0.44707, 0.74644, 0.42472, 0.72176, 0.3966, 0.70938, 0.37043, 0.69548, 0.34684, 0.68416, 0.32377, 0.6759, 0.29877, 0.66711, 0.26827, 0.65566, 0.24021, 0.64447, 0.2154, 0.63308, 0.18745, 0.62026, 0.163, 0.61056, 0.13948, 0.60123, 0.11931, 0.59392, 0.09945, 0.58672, 0.08097, 0.5824, 0.06076, 0.58225, 0.04257, 0.58149, 0.02388, 0.58253, 0, 0.58455, 0, 0.56298, 0.0209, 0.55046, 0.03794, 0.53974, 0.05634, 0.52692, 0.0746, 0.51306, 0.09507, 0.49881, 0.11728, 0.48334, 0.1375, 0.46924, 0.16277, 0.45174, 0.18782, 0.43439, 0.21308, 0.4189, 0.23873, 0.40318, 0.26735, 0.38578, 0.2969, 0.36723, 0.32579, 0.35014, 0.35725, 0.33294, 0.37992, 0.3207, 0.41103, 0.31696, 0.44145, 0.29137, 0.47584, 0.28483, 0.49453, 0.31832, 0.5288, 0.35569, 0.60144, 0.41756, 0.65116, 0.41078, 0.70843, 0.42446, 0.7118, 0.2925, 0.70946, 0.19468, 0.70683, 0.08348, 0.76023, 0.01941, 0.79301, 0, 0.83875, 0, 0.02258, 0.5679, 0.04005, 0.56141, 0.05877, 0.55312, 0.07877, 0.54786, 0.09747, 0.5401, 0.12059, 0.53086, 0.14233, 0.52663, 0.16642, 0.52304, 0.19163, 0.52137, 0.2177, 0.51241, 0.24501, 0.50218, 0.27577, 0.49505, 0.30141, 0.49242, 0.3286, 0.49077, 0.3541, 0.49188, 0.38137, 0.49347, 0.40824, 0.49495, 0.44136, 0.50946, 0.47122, 0.53169, 0.49886, 0.56568, 0.53162, 0.60054, 0.60671, 0.67484, 0.6857, 0.67243, 0.7506, 0.59437, 0.76886, 0.46557, 0.7773, 0.34161, 0.77355, 0.22842, 0.8056, 0.09401, 0.86736, 0.07427, 0.90484, 0.17059, 0.9096, 0.19933, 0.91959, 0.21397, 0.93193, 0.20183, 0.93608, 0.17463, 0.92873, 0.1403, 0.91672, 0.13455, 0.90667, 0.14854, 0.91663, 0.09795, 0.89868, 0.09514, 0.88034, 0.09404, 0.9309, 0.11529, 0.93998, 0.15741, 0.94213, 0.17477, 0.94345, 0.19647, 0.94192, 0.20763, 0.92187, 0.22801, 0.9048, 0.23489, 0.8899, 0.19847, 0.8874, 0.16914, 0.87831, 0.12122, 0.585, 0.84243, 0.63024, 0.8646, 0.68284, 0.85192, 0.72923, 0.80453, 0.75898, 0.76323, 0.78513, 0.70347, 0.78536, 0.6783, 0.78141, 0.59277, 0.94721, 0.11131, 0.96236, 0.1618, 0.96367, 0.19318, 0.95806, 0.21052, 0.976, 0.16763, 0.98026, 0.22172, 0.98039, 0.26467, 0.97933, 0.31612, 0.96394, 0.25896, 0.95648, 0.31982, 0.9432, 0.24678, 0.93886, 0.28792 ], + "triangles": [ 134, 135, 116, 107, 34, 35, 106, 107, 35, 106, 35, 36, 105, 106, 36, 78, 107, 77, 77, 107, 106, 76, 77, 106, 76, 106, 105, 76, 105, 75, 116, 135, 123, 134, 116, 117, 123, 122, 121, 123, 121, 120, 116, 123, 120, 130, 119, 120, 119, 117, 120, 126, 123, 136, 122, 125, 124, 125, 122, 126, 155, 20, 133, 20, 21, 112, 19, 20, 156, 133, 118, 132, 131, 132, 118, 122, 124, 127, 133, 113, 134, 131, 130, 148, 155, 131, 148, 130, 129, 147, 129, 128, 146, 17, 18, 19, 129, 146, 147, 1, 124, 125, 136, 114, 126, 16, 17, 15, 154, 17, 156, 2, 127, 124, 155, 148, 150, 145, 127, 2, 146, 128, 3, 148, 147, 150, 2, 124, 1, 151, 156, 153, 152, 154, 156, 13, 154, 11, 147, 149, 4, 11, 12, 13, 11, 154, 152, 4, 149, 3, 8, 9, 7, 111, 22, 23, 22, 112, 21, 112, 81, 113, 81, 82, 113, 113, 82, 114, 82, 83, 114, 83, 84, 114, 84, 85, 114, 114, 86, 115, 114, 85, 86, 115, 0, 1, 115, 86, 0, 10, 11, 9, 11, 152, 9, 9, 152, 7, 7, 152, 6, 6, 152, 151, 6, 151, 5, 5, 151, 150, 150, 4, 5, 150, 147, 4, 146, 3, 149, 145, 2, 3, 151, 153, 150, 152, 156, 151, 126, 114, 115, 135, 113, 114, 147, 146, 149, 1, 125, 115, 145, 3, 128, 13, 15, 154, 153, 155, 150, 13, 14, 15, 15, 17, 154, 20, 112, 113, 125, 126, 115, 148, 130, 147, 156, 155, 153, 127, 145, 128, 20, 113, 133, 127, 128, 121, 17, 19, 156, 135, 114, 136, 132, 131, 155, 120, 128, 129, 155, 133, 132, 131, 118, 119, 118, 117, 119, 156, 20, 155, 131, 119, 130, 133, 117, 118, 130, 120, 129, 122, 123, 126, 117, 116, 120, 121, 122, 127, 120, 121, 128, 113, 135, 134, 135, 136, 123, 133, 134, 117, 24, 111, 23, 111, 112, 22, 111, 80, 112, 112, 80, 81, 110, 107, 78, 30, 139, 29, 139, 140, 29, 29, 140, 28, 140, 108, 109, 140, 141, 28, 28, 141, 27, 27, 141, 142, 140, 109, 141, 141, 109, 142, 142, 26, 27, 142, 143, 26, 142, 109, 143, 26, 143, 25, 109, 110, 143, 110, 144, 143, 143, 144, 25, 109, 108, 110, 110, 79, 80, 79, 110, 78, 25, 144, 24, 110, 111, 144, 110, 80, 111, 144, 111, 24, 108, 34, 107, 30, 31, 138, 138, 31, 32, 138, 32, 137, 32, 33, 137, 33, 34, 137, 138, 139, 30, 138, 137, 139, 139, 137, 140, 108, 140, 137, 137, 34, 108, 110, 108, 107, 37, 105, 36, 104, 105, 37, 104, 37, 38, 38, 103, 104, 105, 104, 75, 103, 73, 104, 104, 73, 74, 75, 104, 74, 38, 39, 103, 39, 102, 103, 40, 102, 39, 101, 102, 40, 73, 103, 72, 101, 71, 102, 72, 103, 102, 72, 102, 71, 101, 40, 41, 100, 101, 41, 100, 41, 42, 100, 42, 99, 69, 100, 99, 71, 101, 70, 69, 70, 100, 101, 100, 70, 42, 43, 99, 99, 43, 98, 43, 44, 98, 98, 44, 97, 98, 97, 67, 99, 98, 68, 68, 98, 67, 99, 68, 69, 44, 45, 97, 97, 45, 96, 45, 46, 96, 96, 46, 95, 96, 95, 65, 97, 96, 66, 96, 65, 66, 97, 66, 67, 46, 47, 95, 95, 47, 94, 47, 48, 94, 94, 48, 93, 94, 93, 63, 95, 94, 64, 94, 63, 64, 95, 64, 65, 48, 49, 93, 93, 49, 92, 92, 49, 91, 49, 50, 91, 91, 61, 92, 93, 92, 62, 92, 61, 62, 93, 62, 63, 50, 90, 91, 51, 89, 90, 50, 51, 90, 51, 52, 89, 89, 59, 90, 59, 60, 90, 90, 60, 91, 60, 61, 91, 55, 87, 54, 55, 56, 87, 54, 87, 53, 52, 88, 89, 87, 88, 53, 52, 53, 88, 56, 57, 87, 87, 57, 88, 57, 58, 88, 88, 58, 89, 58, 59, 89 ], + "vertices": [ 2, 8, 142.31, -163.1, 0.91085, 74, -65.79, 94.58, 0.08915, 2, 8, 129.87, -206.92, 0.78514, 74, -21.05, 86.04, 0.21486, 2, 8, 113.94, -247.72, 0.77045, 74, 21, 73.75, 0.22955, 2, 8, 95.41, -280.88, 0.81697, 74, 55.65, 58.2, 0.18303, 2, 8, 76.47, -299.85, 0.92186, 74, 76.21, 41, 0.07814, 2, 8, 50.32, -309.1, 0.93376, 74, 87.72, 15.77, 0.06624, 2, 8, 30.6, -308.34, 0.9245, 74, 88.7, -3.95, 0.0755, 2, 8, 11.66, -304.47, 0.91842, 74, 86.51, -23.15, 0.08158, 2, 8, -21.93, -292.74, 0.98449, 74, 77.77, -57.64, 0.01551, 2, 8, -7.26, -287.07, 0.90726, 74, 70.83, -43.53, 0.09274, 2, 8, -23.63, -271.23, 0.89469, 74, 56.49, -61.23, 0.10531, 2, 8, -5.35, -267.89, 0.87252, 74, 51.57, -43.31, 0.12748, 2, 8, -22.13, -246.63, 0.90956, 74, 31.85, -61.9, 0.09044, 2, 8, 1.79, -243.11, 0.79155, 74, 26.25, -38.38, 0.20845, 2, 8, -5.62, -235.26, 0.80291, 74, 19.09, -46.44, 0.19709, 2, 8, 4.82, -234.16, 0.75452, 74, 17.07, -36.14, 0.24548, 2, 8, -3.61, -220.15, 0.7702, 74, 3.85, -45.77, 0.2298, 2, 8, 9.36, -218.37, 0.69443, 74, 0.94, -33, 0.30557, 2, 8, -6.91, -201.42, 0.7716, 74, -14.51, -50.7, 0.2284, 2, 8, 21.07, -197.82, 0.52991, 74, -20.56, -23.15, 0.47009, 2, 8, 25.72, -185.86, 0.48384, 74, -32.88, -19.56, 0.51616, 3, 8, -2.82, -155.01, 0.49549, 54, 99.81, 14.95, 0.1998, 74, -61.14, -50.76, 0.30472, 3, 8, -34.92, -139.14, 0.52773, 54, 107.98, -19.92, 0.45684, 74, -74.17, -84.14, 0.01543, 2, 8, -57.88, -154.65, 0.552, 54, 134.55, -27.77, 0.448, 4, 6, 214.38, -86.5, 0.416, 7, 12.5, -126.76, 0.24294, 8, -78.89, -115.02, 0.17462, 54, 117.33, -69.19, 0.16644, 3, 6, 164.81, -103.2, 0.46938, 7, -35.73, -106.53, 0.34058, 54, 123.6, -121.11, 0.19004, 3, 6, 135.98, -133.89, 0.80096, 7, -77.65, -110.49, 0.11639, 54, 147.79, -155.59, 0.08264, 3, 6, 132.63, -143.37, 0.82428, 7, -86.43, -115.4, 0.10285, 54, 156.4, -160.78, 0.07287, 1, 6, 67.3, -160.11, 1, 2, 2, 226.09, -123.55, 0.23474, 6, -2.28, -158.53, 0.76526, 3, 2, 156.49, -155.76, 0.52831, 6, -76.36, -138.65, 0.37693, 1, 172.42, -169.15, 0.09477, 3, 2, 77.76, -169.48, 0.67731, 6, -145.59, -98.75, 0.09201, 1, 92.8, -175.99, 0.23068, 3, 2, 32.4, -170.91, 0.60686, 61, -141.38, 131.19, 0.07586, 1, 47.48, -173.48, 0.31728, 3, 2, -60.88, -173.87, 0.39257, 61, -55.62, 167.98, 0.26021, 1, -45.7, -168.32, 0.34722, 4, 62, -58.53, 122.52, 0.02965, 2, -92.91, -98.95, 0.15809, 61, 1.54, 109.92, 0.56291, 1, -71.11, -90.91, 0.24934, 5, 63, -87.14, 125.38, 0.01694, 62, -30.38, 104.17, 0.12049, 2, -117.05, -75.56, 0.06243, 61, 32.55, 96.96, 0.67353, 1, -93.12, -65.52, 0.12661, 5, 63, -54.56, 107.85, 0.06533, 62, 5.17, 93.91, 0.35431, 2, -149.99, -58.72, 0.01512, 61, 69.37, 93.3, 0.52081, 1, -124.48, -45.88, 0.04444, 4, 64, -91.18, 96.68, 0.02003, 63, -26.17, 96.68, 0.17282, 62, 35.28, 88.98, 0.56052, 61, 99.87, 93.89, 0.24663, 4, 64, -55.58, 91.31, 0.08871, 63, 9.43, 91.31, 0.37251, 62, 71.21, 91.24, 0.43883, 61, 134.8, 102.61, 0.09995, 5, 65, -80.72, 91.6, 0.01487, 64, -22.44, 85.2, 0.21852, 63, 42.57, 85.2, 0.55905, 62, 104.89, 92.27, 0.18543, 61, 167.74, 109.71, 0.02213, 4, 65, -51.3, 84.41, 0.07099, 64, 7.44, 80.26, 0.46092, 63, 72.45, 80.26, 0.39268, 62, 135.14, 93.74, 0.07541, 4, 65, -22.46, 78.67, 0.2126, 64, 36.63, 76.74, 0.62934, 63, 101.64, 76.74, 0.13917, 62, 164.42, 96.46, 0.01889, 4, 66, -61.72, 72.53, 0.05014, 65, 8.81, 72.53, 0.49668, 64, 68.28, 72.99, 0.41049, 63, 133.29, 72.99, 0.04268, 3, 66, -23.6, 64.7, 0.21233, 65, 46.93, 64.7, 0.64547, 64, 106.89, 68.09, 0.1422, 4, 67, -56.68, 59.57, 0.00497, 66, 11.45, 57.2, 0.56359, 65, 81.98, 57.2, 0.40675, 64, 142.41, 63.26, 0.0247, 4, 68, -88.32, 52.48, 0.00856, 67, -26.06, 50.98, 0.14719, 66, 42.4, 49.87, 0.68541, 65, 112.93, 49.87, 0.15884, 4, 68, -53.99, 42.22, 0.05573, 67, 8.43, 41.3, 0.39231, 66, 77.27, 41.61, 0.51595, 65, 147.8, 41.61, 0.036, 5, 69, -79.08, 32.17, 0.00731, 68, -23.87, 33.95, 0.20888, 67, 38.69, 33.54, 0.55959, 66, 107.81, 35.1, 0.21646, 65, 178.34, 35.1, 0.00775, 5, 69, -49.94, 24.87, 0.05717, 68, 5.1, 25.99, 0.4278, 67, 67.79, 26.07, 0.45737, 66, 137.19, 28.83, 0.05638, 65, 207.72, 28.83, 0.00128, 5, 70, -74, 19.39, 0.00687, 69, -24.91, 18.93, 0.21088, 68, 29.98, 19.49, 0.5528, 67, 92.78, 19.99, 0.22286, 66, 162.41, 23.77, 0.00659, 4, 70, -49.4, 13.39, 0.05569, 69, -0.28, 13.08, 0.44113, 68, 54.48, 13.08, 0.43894, 67, 117.38, 14, 0.06424, 4, 70, -26.39, 8.9, 0.21474, 69, 22.77, 8.73, 0.56103, 68, 77.42, 8.22, 0.21699, 67, 140.4, 9.52, 0.00724, 3, 70, -1, 6.11, 0.49366, 69, 48.17, 6.1, 0.44664, 68, 102.76, 5.01, 0.05971, 3, 70, 21.83, 3.3, 0.77042, 69, 71.02, 3.44, 0.22113, 68, 125.54, 1.84, 0.00845, 2, 70, 45.36, 1.27, 0.92172, 69, 94.56, 1.55, 0.07828, 2, 70, 75.48, -1.02, 0.98437, 69, 124.7, -0.54, 0.01563, 2, 70, 74.41, -10.99, 0.98712, 69, 123.69, -10.52, 0.01288, 2, 70, 47.53, -13.96, 0.9286, 69, 96.83, -13.66, 0.0714, 3, 70, 25.58, -16.62, 0.78026, 69, 74.89, -16.46, 0.21218, 68, 128.96, -18.15, 0.00756, 4, 70, 1.81, -20.07, 0.50456, 69, 51.15, -20.06, 0.43841, 68, 105.14, -21.21, 0.05555, 67, 168.62, -19.43, 0.00148, 4, 70, -21.82, -24.02, 0.2241, 69, 27.54, -24.16, 0.55698, 68, 81.45, -24.77, 0.20577, 67, 144.99, -23.39, 0.01316, 5, 70, -48.25, -27.85, 0.06037, 69, 1.14, -28.15, 0.44261, 68, 54.96, -28.17, 0.41953, 67, 118.56, -27.24, 0.07662, 66, 190.11, -22.36, 8.7E-4, 5, 70, -76.93, -32.01, 0.00843, 69, -27.52, -32.49, 0.21461, 68, 26.21, -31.86, 0.52853, 67, 89.88, -31.41, 0.23794, 66, 161.62, -27.71, 0.01048, 5, 69, -53.61, -36.45, 0.05984, 68, 0.04, -35.22, 0.4064, 67, 63.76, -35.22, 0.46847, 66, 135.68, -32.58, 0.06423, 65, 206.21, -32.58, 0.00106, 5, 69, -86.21, -41.34, 0.00821, 68, -32.66, -39.38, 0.19546, 67, 31.14, -39.93, 0.57299, 66, 103.28, -38.62, 0.21339, 65, 173.81, -38.62, 0.00994, 4, 68, -65.07, -43.5, 0.05047, 67, -1.2, -44.59, 0.45101, 66, 71.16, -44.6, 0.43746, 65, 141.69, -44.6, 0.06106, 4, 68, -97.64, -46.72, 0.00724, 67, -33.71, -48.36, 0.20423, 66, 38.83, -49.7, 0.58773, 65, 109.36, -49.7, 0.2008, 4, 67, -66.72, -52.2, 0.05217, 66, 6, -54.89, 0.45622, 65, 76.53, -54.89, 0.46325, 64, 145.49, -48.91, 0.02835, 3, 66, -30.62, -60.6, 0.17334, 65, 39.91, -60.6, 0.683, 64, 109.41, -57.39, 0.14366, 4, 66, -68.46, -66.77, 0.0295, 65, 2.07, -66.77, 0.50408, 64, 72.15, -66.42, 0.40417, 63, 137.16, -66.42, 0.06225, 4, 65, -34.88, -72.32, 0.18739, 64, 35.73, -74.76, 0.58778, 63, 100.73, -74.76, 0.2056, 62, 195.5, -51.82, 0.01923, 4, 65, -75.09, -77.7, 0.04676, 64, -3.96, -83.19, 0.39617, 63, 61.05, -83.19, 0.48167, 62, 158.49, -68.43, 0.07539, 3, 64, -32.54, -89.19, 0.14427, 63, 32.47, -89.19, 0.63908, 62, 131.82, -80.33, 0.21665, 4, 64, -71.85, -91.35, 0.04785, 63, -6.84, -91.35, 0.40108, 62, 93.85, -90.74, 0.50635, 61, 189.98, -72.27, 0.04472, 3, 63, -45.16, -103.67, 0.17783, 62, 58.99, -110.86, 0.68949, 61, 159.33, -98.37, 0.13269, 4, 63, -88.59, -107.18, 0.06196, 62, 17.28, -123.46, 0.5382, 2, -120.43, 156.97, 0.01597, 61, 120.58, -118.3, 0.38387, 4, 63, -112.39, -91.86, 0.01664, 62, -9.21, -113.51, 0.31712, 2, -96.32, 142.15, 0.06918, 61, 92.73, -113.3, 0.59706, 3, 62, -55.3, -106.16, 0.18947, 2, -52.49, 126.15, 0.211, 61, 46.08, -114.41, 0.59953, 3, 2, 40.2, 100.3, 0.70054, 6, -1.56, 132.44, 0.1247, 61, -49.65, -124.17, 0.17476, 2, 2, 102.91, 105.44, 0.48476, 6, 49.88, 96.2, 0.51524, 2, 6, 102.97, 46.59, 0.55391, 7, 16.89, 46.74, 0.44609, 2, 7, 77.99, 53.82, 0.34839, 8, 16.46, 51.73, 0.65161, 1, 8, 61.91, 55.28, 1, 1, 8, 113.57, 59.28, 1, 2, 8, 144.24, -7.82, 0.89352, 74, -220.64, 82.87, 0.10648, 2, 8, 153.81, -49.13, 0.88, 74, -180.33, 96.03, 0.12, 2, 8, 154.57, -106.94, 0.91167, 74, -122.81, 101.86, 0.08833, 2, 70, 46.28, -5.67, 0.88974, 69, 95.52, -5.38, 0.11026, 3, 70, 24, -6.32, 0.78319, 69, 73.25, -6.17, 0.21288, 68, 127.55, -7.82, 0.00393, 3, 70, 0.06, -7.63, 0.4984, 69, 49.31, -7.63, 0.45067, 68, 103.59, -8.74, 0.05093, 4, 70, -25.34, -7.36, 0.21021, 69, 23.92, -7.52, 0.57916, 68, 78.21, -8.06, 0.20281, 67, 141.46, -6.74, 0.00782, 4, 70, -49.23, -8.43, 0.05008, 69, 0.04, -8.74, 0.44936, 68, 54.3, -8.74, 0.44109, 67, 117.57, -7.82, 0.05946, 5, 70, -78.74, -9.59, 0.00411, 69, -29.46, -10.08, 0.20704, 68, 24.78, -9.42, 0.55388, 67, 88.06, -9, 0.22906, 66, 158.89, -5.38, 0.0059, 4, 69, -57, -9.28, 0.05054, 68, -2.74, -7.99, 0.42931, 67, 60.53, -8.04, 0.46828, 66, 131.34, -5.55, 0.05187, 5, 69, -87.47, -7.89, 0.00416, 68, -33.16, -5.91, 0.19066, 67, 30.07, -6.47, 0.59281, 66, 100.84, -5.23, 0.20446, 65, 171.37, -5.23, 0.00791, 4, 68, -64.88, -2.76, 0.04806, 67, -1.7, -3.86, 0.44622, 66, 68.99, -3.93, 0.45724, 65, 139.52, -3.93, 0.04848, 4, 68, -98.1, -2.85, 0.00302, 67, -34.91, -4.51, 0.16897, 66, 35.83, -5.93, 0.6491, 65, 106.36, -5.93, 0.17891, 3, 67, -69.74, -5.58, 0.03488, 66, 1.08, -8.43, 0.4896, 65, 71.61, -8.43, 0.47552, 4, 67, -108.75, -4.75, 0.00424, 66, -37.94, -9.2, 0.16984, 65, 32.59, -9.2, 0.69137, 64, 98.21, -6.7, 0.13455, 2, 65, 0.17, -8.31, 0.52543, 64, 65.82, -8.27, 0.47457, 3, 65, -34.17, -6.83, 0.18477, 64, 31.46, -9.41, 0.62696, 63, 96.47, -9.41, 0.18827, 4, 65, -66.3, -4.22, 0.01263, 64, -0.78, -9.24, 0.46677, 63, 64.23, -9.24, 0.48853, 62, 146, 4.52, 0.03206, 3, 64, -35.25, -8.87, 0.22735, 63, 29.76, -8.87, 0.65577, 62, 112.23, -2.39, 0.11689, 4, 64, -69.22, -8.55, 0.02776, 63, -4.21, -8.55, 0.41215, 62, 78.95, -9.25, 0.52977, 61, 160.59, 5.18, 0.03032, 3, 63, -46.14, -2.26, 0.12876, 62, 36.63, -11.94, 0.70822, 61, 119.45, -5.12, 0.16302, 3, 63, -84, 7.67, 0.04548, 62, -2.46, -10.23, 0.46291, 61, 80.69, -10.51, 0.4916, 4, 62, -40.04, -2.56, 0.20066, 2, -87.22, 27.36, 0.04102, 61, 42.35, -9.75, 0.69947, 1, -54.47, 34.43, 0.05884, 4, 62, -84, 4.08, 0.06346, 2, -45.32, 12.47, 0.1335, 61, -2.09, -11.18, 0.66178, 1, -14.03, 15.96, 0.14126, 1, 2, 50.64, -19.06, 1, 2, 2, 150.39, -14.78, 0.14978, 6, 9.3, -26.52, 0.85022, 2, 6, 96.28, -48.49, 0.94283, 7, -50.98, -20.17, 0.05717, 4, 6, 151.36, -15.54, 0.1938, 7, 12.13, -31.86, 0.65264, 54, 35.04, -116.47, 0.10585, 74, -188.88, -122.43, 0.0477, 4, 7, 70.75, -31.76, 0.42196, 8, -5.28, -31.36, 0.19392, 54, 5.95, -65.58, 0.22877, 74, -184.09, -64, 0.15534, 3, 8, 47.28, -25.92, 0.60156, 54, -31.67, -28.46, 0.26709, 74, -194.09, -12.11, 0.13136, 3, 8, 110.31, -65.62, 0.66779, 54, -41.11, 45.43, 0.13197, 74, -160.06, 54.14, 0.20024, 2, 8, 120.51, -143.55, 0.72576, 74, -83.35, 71.14, 0.27424, 2, 8, 76.35, -191.51, 0.55039, 74, -31.7, 31.36, 0.44961, 2, 8, 63.06, -197.7, 0.57574, 74, -24.37, 18.67, 0.42426, 2, 8, 56.42, -210.42, 0.59162, 74, -11.11, 13.17, 0.40838, 2, 8, 62.27, -225.94, 0.54866, 74, 3.83, 20.37, 0.45134, 2, 8, 74.99, -231.02, 0.55882, 74, 7.78, 33.48, 0.44118, 2, 8, 90.83, -221.52, 0.5372, 74, -3.08, 48.42, 0.4628, 2, 8, 93.3, -206.31, 0.54037, 74, -18.44, 49.55, 0.45963, 2, 8, 86.63, -193.69, 0.56061, 74, -30.43, 41.8, 0.43939, 2, 8, 110.32, -205.97, 0.55507, 74, -20.28, 66.47, 0.44493, 2, 8, 111.33, -183.27, 0.52695, 74, -42.98, 65.49, 0.47305, 2, 8, 111.53, -160.07, 0.56797, 74, -66.1, 63.65, 0.43203, 2, 8, 102.49, -224.1, 0.57026, 74, -1.52, 60.27, 0.42974, 2, 8, 83.06, -235.84, 0.54683, 74, 11.87, 41.94, 0.45317, 2, 8, 75.02, -238.67, 0.5345, 74, 15.4, 34.18, 0.4655, 2, 8, 64.95, -240.47, 0.52774, 74, 18.07, 24.31, 0.47226, 2, 8, 59.74, -238.59, 0.52019, 74, 16.66, 18.96, 0.47981, 2, 8, 49.93, -213.38, 0.51178, 74, -7.59, 6.97, 0.48822, 2, 8, 46.45, -191.85, 0.53448, 74, -28.74, 1.61, 0.46552, 2, 8, 63.13, -172.79, 0.45609, 74, -49.18, 16.56, 0.54391, 2, 8, 76.73, -169.46, 0.47244, 74, -53.69, 29.81, 0.52756, 2, 8, 98.86, -157.68, 0.53514, 74, -67.37, 50.82, 0.46486, 3, 2, 25.68, -97.82, 0.63735, 61, -108.45, 65.59, 0.06216, 1, 47.13, -100.08, 0.30049, 3, 2, 83.15, -106.32, 0.72603, 6, -100.98, -53.7, 0.09811, 1, 103.65, -113.53, 0.17585, 3, 2, 149.42, -98.32, 0.50192, 6, -44.98, -90.03, 0.42892, 1, 170.36, -111.32, 0.06917, 2, 2, 207.34, -74.44, 0.18186, 6, 14.79, -108.81, 0.81814, 2, 2, 244.31, -54.06, 0.05649, 6, 56.23, -116.86, 0.94351, 2, 6, 99.39, -115.34, 0.92692, 7, -92.84, -72.39, 0.07308, 3, 6, 106.83, -106.29, 0.84981, 7, -81.28, -70.52, 0.08915, 54, 114.85, -178.52, 0.06104, 4, 6, 127.4, -71.89, 0.69313, 7, -43.11, -58.31, 0.19154, 54, 85.35, -151.38, 0.10631, 74, -167.16, -179.69, 0.00902, 2, 8, 104.61, -244.7, 0.66844, 74, 18.8, 64.19, 0.33156, 2, 8, 81.39, -264.16, 0.67294, 74, 40.23, 42.76, 0.32706, 2, 8, 66.82, -266.01, 0.65456, 74, 43.35, 28.41, 0.34544, 2, 8, 58.66, -259.02, 0.64393, 74, 37.11, 19.68, 0.35607, 2, 8, 78.9, -281.43, 0.75776, 74, 57.66, 41.81, 0.24224, 2, 8, 53.83, -287.14, 0.77384, 74, 65.54, 17.33, 0.22616, 2, 8, 33.86, -287.57, 0.80091, 74, 67.72, -2.53, 0.19909, 2, 8, 9.92, -286.55, 0.89717, 74, 68.81, -26.47, 0.10283, 2, 8, 36.24, -266.75, 0.70023, 74, 46.78, -1.99, 0.29977, 2, 8, 7.82, -257.69, 0.78734, 74, 40.25, -31.09, 0.21266, 2, 8, 41.56, -240.46, 0.5741, 74, 20.12, 1.01, 0.4259, 2, 8, 22.36, -235.22, 0.62581, 74, 16.58, -18.58, 0.37419 ], + "hull": 87, + "edges": [ 110, 108, 108, 106, 106, 104, 104, 102, 102, 100, 88, 86, 86, 84, 84, 82, 82, 80, 80, 78, 78, 76, 76, 74, 74, 72, 72, 70, 70, 68, 68, 66, 110, 112, 112, 114, 114, 116, 116, 118, 118, 120, 120, 122, 96, 98, 98, 100, 92, 94, 94, 96, 88, 90, 90, 92, 126, 128, 128, 130, 130, 132, 132, 134, 134, 136, 136, 138, 138, 140, 140, 142, 142, 144, 144, 146, 146, 148, 148, 150, 150, 152, 152, 154, 122, 124, 124, 126, 174, 176, 176, 178, 178, 180, 180, 182, 182, 184, 184, 186, 186, 188, 188, 190, 190, 192, 192, 194, 194, 196, 196, 198, 198, 200, 200, 202, 202, 204, 130, 190, 132, 192, 128, 188, 126, 186, 124, 184, 122, 182, 120, 180, 118, 178, 116, 176, 90, 192, 92, 190, 94, 188, 96, 186, 98, 184, 100, 182, 102, 180, 104, 178, 106, 176, 134, 194, 136, 196, 88, 194, 86, 196, 198, 84, 82, 200, 202, 80, 78, 204, 206, 76, 74, 208, 72, 210, 212, 70, 68, 214, 198, 138, 140, 200, 142, 202, 144, 204, 146, 206, 208, 148, 150, 210, 152, 212, 154, 214, 64, 66, 62, 64, 62, 60, 60, 58, 58, 56, 56, 54, 54, 52, 52, 50, 50, 48, 48, 46, 46, 44, 44, 42, 42, 40, 40, 38, 38, 36, 36, 34, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 22, 20, 20, 18, 18, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 0, 172, 170, 172, 170, 168, 168, 166, 166, 164, 164, 162, 162, 160, 160, 158, 158, 156, 156, 154, 232, 234, 234, 236, 236, 238, 238, 240, 240, 242, 242, 244, 244, 246, 246, 232, 248, 250, 250, 252, 248, 254, 254, 256, 256, 258, 258, 260, 260, 262, 262, 264, 264, 266, 266, 268, 268, 270, 270, 272 ], + "width": 1264, + "height": 465 + } + }, + "raptor-front-arm": { + "raptor-front-arm": { + "type": "mesh", + "uvs": [ 0.39563, 0.1396, 0.38771, 0.30213, 0.31231, 0.41784, 0.27287, 0.47836, 0.33389, 0.4507, 0.5488, 0.35329, 0.64093, 0.31153, 0.73024, 0.3653, 1, 0.5277, 1, 0.86607, 0.93243, 1, 0.86176, 0.80967, 0.75576, 0.99765, 0.71748, 1, 0.70276, 0.77443, 0.62032, 0.73448, 0.58793, 0.64519, 0.53561, 0.6582, 0.13449, 0.75798, 0, 0.69219, 0.01846, 0.56358, 0.05499, 0.30918, 0, 0.27863, 0, 0.12423, 0, 0, 0.19596, 0, 0.40243, 0, 0.24536, 0.19241, 0.21679, 0.0811 ], + "triangles": [ 6, 7, 16, 6, 16, 5, 15, 16, 7, 7, 14, 15, 8, 14, 7, 11, 14, 8, 11, 8, 9, 12, 14, 11, 13, 14, 12, 10, 11, 9, 17, 4, 5, 16, 17, 5, 18, 19, 3, 18, 3, 4, 18, 4, 17, 0, 28, 26, 23, 25, 28, 23, 24, 25, 27, 28, 0, 27, 23, 28, 1, 27, 0, 21, 22, 27, 21, 27, 1, 2, 21, 1, 2, 20, 21, 3, 20, 2, 19, 20, 3, 27, 22, 23, 28, 25, 26 ], + "vertices": [ 2, 38, 9.24, 26.77, 0.808, 6, 85.19, -98.03, 0.192, 1, 38, 35.87, 35.63, 1, 2, 38, 61.98, 28.62, 0.84641, 39, 40.04, 38.85, 0.15359, 2, 38, 77.67, 27.28, 0.34921, 39, 34.62, 24.06, 0.65079, 3, 38, 73.77, 39.05, 0.10938, 39, 47.01, 24.74, 0.78124, 48, -42.17, -19.42, 0.10938, 2, 39, 86.98, 31.25, 0.65079, 48, -25.75, 17.61, 0.34921, 2, 39, 103.84, 34.49, 0.34375, 48, -19.24, 33.5, 0.65625, 2, 39, 114.05, 19.51, 0.10938, 48, -1.12, 33.84, 0.89062, 1, 48, 53.62, 34.88, 1, 1, 48, 96.03, -19.16, 1, 1, 48, 104.2, -47.32, 1, 1, 48, 71.34, -23.98, 1, 1, 48, 81.39, -64.61, 1, 1, 48, 76.81, -68.82, 1, 1, 48, 46.66, -34.26, 1, 2, 39, 73.14, -45.77, 0.10938, 48, 31.14, -36.12, 0.89062, 2, 39, 73.98, -26.91, 0.34375, 48, 15.82, -25.1, 0.65625, 2, 39, 65.11, -26.69, 0.65079, 48, 10.78, -32.4, 0.34921, 3, 38, 134.76, 4.51, 0.10938, 39, -2.35, -25.03, 0.78124, 48, -27.52, -87.96, 0.10938, 2, 38, 121.45, -16.1, 0.34921, 39, -18.74, -6.77, 0.65079, 2, 38, 96.94, -14.98, 0.84641, 39, -11.21, 16.58, 0.15359, 1, 38, 45.47, -17.43, 1, 1, 38, 47.64, -32.91, 1, 2, 38, 12.11, -34.27, 0.536, 6, 40.33, -56.53, 0.464, 2, 38, -2.57, -46.21, 0.536, 6, 42.42, -37.73, 0.464, 2, 38, -7.4, -14.83, 0.472, 6, 67.87, -56.7, 0.528, 2, 38, -12.49, 18.22, 0.664, 6, 94.68, -76.69, 0.336, 1, 38, 18.79, 4.26, 1, 2, 38, 0.95, -1.4, 0.512, 6, 71.34, -72.13, 0.488 ], + "hull": 27, + "edges": [ 38, 36, 32, 30, 30, 28, 28, 26, 24, 26, 24, 22, 22, 20, 20, 18, 18, 16, 44, 42, 38, 6, 38, 40, 40, 42, 6, 4, 4, 2, 40, 4, 8, 6, 36, 8, 32, 12, 42, 2, 52, 0, 0, 2, 16, 14, 14, 12, 30, 14, 36, 34, 34, 32, 12, 10, 10, 8, 34, 10, 48, 50, 50, 52, 44, 46, 46, 48, 50, 56, 56, 54 ], + "width": 162, + "height": 203 + } + }, + "raptor-front-leg": { + "raptor-front-leg": { + "type": "mesh", + "uvs": [ 0.55117, 0.17818, 0.6279, 0.36027, 0.66711, 0.4533, 0.6488, 0.51528, 0.53554, 0.56894, 0.32335, 0.66947, 0.28674, 0.72087, 0.32539, 0.80401, 0.36258, 0.80144, 0.42056, 0.79744, 0.61015, 0.78436, 0.73352, 0.81335, 0.84813, 0.84029, 1, 0.93855, 0.732, 0.92345, 0.62439, 0.91738, 0.72813, 1, 0.58574, 1, 0.47086, 0.98249, 0.36708, 0.96668, 0.26307, 0.95082, 0.16267, 0.93552, 0.03859, 0.72238, 0, 0.66947, 0.0374, 0.62999, 0.1647, 0.49563, 0.23732, 0.45681, 0.2702, 0.43923, 0.28064, 0.43365, 0.223, 0.40571, 0.12565, 0.35851, 0, 0.2976, 0, 0.1524, 0, 0, 0.32132, 0, 0.32222, 0.22778, 0.44931, 0.38031, 0.47664, 0.44362, 0.4615, 0.47375, 0.35106, 0.53247, 0.20091, 0.65257, 0.18528, 0.72148, 0.25222, 0.86314, 0.30942, 0.88124, 0.55694, 0.89613, 0.55858, 0.89208, 0.47493, 0.8534, 0.6059, 0.91526, 0.39706, 0.8913, 0.1323, 0.09352, 0.36997, 0.45346, 0.37163, 0.43828, 0.32516, 0.39424, 0.2376, 0.34426, 0.34066, 0.47415, 0.51677, 0.90503, 0.07821, 0.26333, 0.05796, 0.13086, 0.09601, 0.05963, 0.29303, 0.03825 ], + "triangles": [ 14, 12, 13, 14, 11, 12, 14, 15, 11, 11, 15, 10, 55, 44, 47, 44, 45, 47, 10, 15, 45, 15, 47, 45, 55, 46, 44, 44, 46, 45, 45, 46, 10, 46, 9, 10, 48, 9, 46, 48, 8, 9, 16, 17, 15, 17, 47, 15, 18, 55, 17, 17, 55, 47, 19, 48, 18, 18, 48, 55, 20, 43, 19, 19, 43, 48, 48, 46, 55, 48, 43, 8, 21, 42, 20, 20, 42, 43, 21, 41, 42, 21, 22, 41, 43, 7, 8, 43, 42, 7, 42, 6, 7, 42, 41, 6, 23, 24, 22, 22, 24, 41, 41, 40, 6, 41, 24, 40, 6, 40, 5, 5, 39, 4, 5, 40, 39, 39, 26, 54, 39, 40, 26, 24, 25, 40, 40, 25, 26, 39, 38, 4, 4, 38, 3, 39, 50, 38, 39, 54, 50, 38, 37, 3, 3, 37, 2, 26, 27, 54, 54, 27, 50, 50, 51, 38, 38, 51, 37, 27, 28, 50, 50, 28, 51, 56, 57, 49, 32, 33, 57, 57, 58, 49, 57, 33, 58, 49, 58, 59, 59, 58, 34, 34, 58, 33, 59, 34, 0, 32, 57, 56, 37, 1, 2, 51, 36, 37, 37, 36, 1, 28, 52, 51, 51, 52, 36, 28, 29, 52, 29, 53, 52, 29, 30, 53, 36, 52, 35, 52, 53, 35, 36, 0, 1, 36, 35, 0, 31, 56, 30, 30, 56, 53, 53, 56, 35, 31, 32, 56, 56, 49, 35, 35, 59, 0, 49, 59, 35 ], + "vertices": [ 2, 42, 128.03, 88.47, 0.85041, 1, 158.83, -71.92, 0.14959, 2, 42, 219.55, 53.15, 0.77988, 43, -48.05, -38.59, 0.22012, 2, 42, 266.31, 35.11, 0.53545, 43, -36.73, 10.22, 0.46455, 2, 42, 286.89, 9.8, 0.35167, 43, -14.56, 34.15, 0.64833, 2, 42, 281.55, -41.24, 0.09228, 43, 36.71, 36, 0.90772, 3, 42, 271.54, -136.86, 0.05787, 43, 132.77, 39.48, 0.71426, 44, 35, 78.76, 0.22788, 3, 43, 158.22, 55.17, 0.5308, 44, 52.66, 54.64, 0.38143, 45, 7.02, 85.54, 0.08776, 4, 43, 167.14, 99.49, 0.22977, 44, 97.55, 49.25, 0.37788, 45, 28.72, 45.88, 0.15198, 46, -21.26, 49.99, 0.24037, 4, 44, 102.57, 62.61, 0.26558, 45, 42.51, 49.56, 0.17568, 46, -7.07, 51.4, 0.22874, 47, -58.17, 28.03, 0.33001, 4, 44, 109.72, 83.4, 0.11934, 45, 64.09, 55.24, 0.13984, 46, 15.13, 53.52, 0.16668, 47, -36.1, 31.19, 0.57414, 1, 47, 35.81, 41.81, 1, 1, 47, 83.66, 29.43, 1, 1, 47, 128.11, 17.93, 1, 1, 47, 188.73, -29.42, 1, 2, 46, 145.37, -10.99, 0.34248, 47, 84.02, -27.11, 0.65752, 2, 46, 93.3, -7.6, 0.48, 47, 44.87, -26.18, 0.52, 2, 46, 133.18, -49.83, 0.776, 47, 86.69, -66.48, 0.224, 2, 46, 78.79, -50.15, 0.768, 47, 32.38, -69.36, 0.232, 2, 46, 35.36, -41.46, 0.88989, 47, -9.88, -62.73, 0.11011, 1, 46, -4.92, -33.56, 1, 3, 44, 155.05, -5.14, 0.35918, 45, 17.88, -32.51, 0.30633, 46, -44.62, -25.61, 0.3345, 4, 43, 254.98, 126.28, 0.10155, 44, 131.22, -36.21, 0.54212, 45, -21.25, -31.18, 0.20873, 46, -83.02, -17.98, 0.1476, 3, 43, 240.34, 7.81, 0.25587, 44, 11.94, -30.99, 0.61615, 45, -86.32, 68.91, 0.12798, 2, 43, 239.27, -23.1, 0.45486, 44, -18.96, -32.37, 0.54514, 3, 42, 187.65, -209.74, 0.09777, 43, 216.67, -33.36, 0.58893, 44, -30.98, -10.65, 0.3133, 2, 42, 163.86, -128.68, 0.19603, 43, 139.75, -68.26, 0.80397, 3, 42, 165.75, -94.49, 0.3178, 43, 105.59, -71.26, 0.67648, 75, -80.8, -39.34, 0.00571, 3, 42, 166.4, -79.07, 0.45961, 43, 90.23, -72.77, 0.53468, 75, -67.92, -34.74, 0.00571, 3, 42, 166.49, -74.17, 0.53171, 43, 85.43, -73.29, 0.45686, 75, -64.13, -33.63, 0.01143, 3, 42, 141.54, -82.47, 0.7272, 43, 97.13, -96.82, 0.26709, 75, -86.02, -21.18, 0.00571, 3, 42, 99.76, -97.08, 0.84471, 43, 117.34, -136.23, 0.14529, 75, -123.07, 1.78, 0.01, 2, 42, 45.01, -114.56, 0.83615, 1, -51.09, -135.29, 0.16385, 2, 42, -16.21, -74.77, 0.53, 1, -42.95, -58.39, 0.47, 1, 1, -52.66, 17.56, 1, 1, 1, 70.07, 18.78, 1, 2, 42, 93.55, 4.14, 0.84985, 75, -47.66, 63.53, 0.15015, 3, 42, 185.14, -6.67, 0.69958, 43, 15.99, -64.28, 0.22749, 75, 0.73, -14.59, 0.07292, 3, 42, 217.11, -18.75, 0.50337, 43, 23.47, -30.93, 0.48663, 75, 9.65, -46.32, 0.01, 2, 42, 225.64, -32.92, 0.32528, 43, 36.31, -20.51, 0.67472, 3, 42, 223, -84.74, 0.2007, 43, 87.97, -15.86, 0.79322, 75, -43.91, -82.01, 0.00607, 3, 42, 235.62, -168.07, 0.08091, 43, 168.7, 8.29, 0.57148, 44, 6.75, 40.47, 0.34761, 3, 43, 191.8, 35.81, 0.32545, 44, 36.01, 19.63, 0.57243, 45, -31.15, 78.74, 0.10211, 4, 43, 206.64, 111.54, 0.10808, 44, 112.69, 10.83, 0.52068, 45, 6.26, 11.23, 0.23518, 46, -49.03, 19.43, 0.13606, 3, 44, 130.61, 26.42, 0.35068, 45, 29.36, 5.72, 0.28241, 46, -27.13, 10.26, 0.36691, 2, 46, 67.47, 3.17, 0.384, 47, 18.56, -16.63, 0.616, 1, 47, 19.07, -14.52, 1, 2, 46, 36.01, 24.95, 0.384, 47, -13.89, 3.64, 0.616, 2, 46, 86.23, -6.55, 0.488, 47, 37.76, -25.46, 0.512, 4, 44, 151.19, 56, 0.22879, 45, 65.44, 5.56, 0.18425, 46, 8.45, 4.28, 0.45492, 47, 0, 0, 0.13205, 3, 42, -9.28, -17.51, 0.21934, 1, 7.72, -30.86, 0.74243, 75, -126.22, 130.87, 0.03823, 3, 42, 195.91, -53.82, 0.42127, 43, 61.12, -47.06, 0.57302, 75, -30.92, -46.02, 0.00571, 3, 42, 190.1, -48.45, 0.52927, 43, 56.62, -53.56, 0.46502, 75, -29.84, -39.6, 0.00571, 3, 42, 161.27, -48.26, 0.74345, 43, 60.44, -82.13, 0.18733, 75, -47.3, -19.14, 0.06922, 3, 42, 120.38, -58.54, 0.78619, 43, 76.31, -121.19, 0.13381, 75, -79.81, 7.32, 0.08, 3, 42, 197.37, -69.23, 0.33416, 43, 76.18, -43.47, 0.66185, 75, -43.15, -54, 0.00398, 4, 44, 167.22, 97.41, 0.10303, 45, 97.38, 0.84, 0.08297, 46, 54.09, -2.79, 0.51764, 47, 4.74, -23.22, 0.29636, 3, 42, 49.5, -83.17, 0.65468, 1, -17.26, -114.16, 0.26246, 75, -142.18, 45.76, 0.08286, 3, 42, -9.83, -51.31, 0.41164, 1, -21.43, -46.95, 0.57122, 75, -153.07, 111.17, 0.01714, 2, 42, -31.44, -20.43, 0.27617, 1, -6.57, -12.31, 0.72383, 3, 42, 0.92, 47.46, 0.40628, 1, 68.18, -4.06, 0.57468, 75, -69.72, 165.13, 0.01904 ], + "hull": 35, + "edges": [ 46, 44, 44, 42, 32, 34, 32, 30, 26, 24, 14, 12, 12, 10, 6, 4, 66, 68, 0, 68, 46, 48, 48, 50, 40, 42, 16, 14, 58, 56, 4, 2, 2, 0, 10, 8, 8, 6, 78, 80, 80, 82, 82, 84, 84, 86, 86, 96, 16, 18, 18, 20, 38, 40, 62, 64, 64, 66, 100, 102, 102, 104, 58, 60, 60, 62, 106, 104, 54, 56, 50, 52, 52, 54, 108, 100, 78, 76, 76, 74, 72, 74, 72, 70, 70, 98, 92, 90, 56, 102, 100, 54, 52, 108, 58, 104, 60, 106, 76, 6, 74, 4, 72, 2, 78, 8, 92, 20, 92, 88, 88, 94, 90, 30, 94, 30, 26, 28, 28, 30, 20, 22, 22, 24, 28, 22, 34, 36, 36, 38, 94, 110, 110, 96, 36, 110, 110, 88, 60, 112, 112, 114, 114, 116, 116, 118, 118, 0 ], + "width": 382, + "height": 514 + } + }, + "raptor-hindleg-back": { + "raptor-hindleg-back": { + "type": "mesh", + "uvs": [ 0.45041, 0.09352, 0.56934, 0.23361, 0.65294, 0.47297, 0.66354, 0.50822, 0.63175, 0.54255, 0.32384, 0.69723, 0.30069, 0.73876, 0.27934, 0.77704, 0.30417, 0.83513, 0.31059, 0.85014, 0.34101, 0.85047, 0.45165, 0.85164, 0.59556, 0.81882, 0.91177, 0.92548, 1, 1, 0.56337, 0.96427, 0.4835, 0.98261, 0.29879, 0.98027, 0.22808, 0.98389, 0.15998, 0.98738, 0.15424, 0.95547, 0.13895, 0.87048, 0.07371, 0.78726, 0, 0.753, 0, 0.7049, 0, 0.671, 0.11876, 0.64653, 0.16535, 0.5266, 0.28496, 0.47398, 0.29011, 0.45774, 0.29427, 0.4446, 0.20635, 0.40396, 0.06129, 0.33691, 0, 0.25247, 0, 0, 0.30793, 0, 0.276, 0.20262, 0.40398, 0.31122, 0.48439, 0.45964, 0.48318, 0.48384, 0.47029, 0.51062, 0.22698, 0.67328, 0.17142, 0.7242, 0.17122, 0.78242, 0.22996, 0.89469, 0.24677, 0.90829, 0.28672, 0.9146, 0.46583, 0.91414 ], + "triangles": [ 15, 13, 14, 16, 47, 15, 15, 12, 13, 15, 47, 12, 18, 46, 17, 18, 45, 46, 17, 47, 16, 17, 46, 47, 47, 10, 11, 47, 46, 10, 47, 11, 12, 45, 18, 19, 44, 45, 20, 20, 45, 19, 20, 21, 44, 46, 9, 10, 46, 45, 9, 45, 44, 9, 21, 43, 44, 44, 8, 9, 44, 7, 8, 44, 43, 7, 21, 22, 43, 43, 22, 42, 43, 42, 7, 22, 23, 24, 24, 42, 22, 7, 42, 6, 42, 41, 6, 6, 41, 5, 24, 26, 42, 42, 26, 41, 24, 25, 26, 5, 40, 4, 5, 41, 40, 41, 28, 40, 26, 27, 41, 41, 27, 28, 40, 39, 4, 28, 29, 40, 40, 29, 39, 4, 39, 3, 39, 2, 3, 29, 30, 39, 39, 38, 2, 39, 30, 38, 38, 1, 2, 30, 37, 38, 38, 37, 1, 30, 31, 37, 31, 36, 37, 31, 32, 36, 32, 33, 36, 37, 0, 1, 37, 36, 0, 33, 34, 36, 36, 35, 0, 36, 34, 35 ], + "vertices": [ 1, 17, 53.94, 69.16, 1, 1, 17, 126.23, 67.31, 1, 2, 17, 226.42, 31.14, 0.9375, 18, -30.88, -1.11, 0.0625, 2, 17, 240.84, 25.33, 0.7, 18, -25.65, 13.52, 0.3, 2, 17, 246.67, 8.06, 0.3, 18, -8.61, 20.02, 0.7, 3, 17, 240.82, -115.25, 0.0625, 18, 114.81, 19.01, 0.875, 19, 9.48, 59.16, 0.0625, 2, 18, 131.07, 29.69, 0.7, 19, 22.12, 44.36, 0.3, 2, 18, 146.07, 39.54, 0.3, 19, 33.76, 30.71, 0.7, 3, 18, 152.6, 65.01, 0.12567, 19, 59.85, 27.41, 0.75203, 20, 15.86, 48.05, 0.1223, 2, 19, 66.6, 26.56, 0.82916, 20, 16.73, 41.31, 0.17084, 3, 19, 71.2, 35.76, 0.64716, 20, 26.79, 39.17, 0.1317, 21, -67.33, 18.96, 0.22114, 3, 19, 87.93, 69.21, 0.0625, 20, 63.37, 31.39, 0.675, 21, -30.18, 23.3, 0.2625, 2, 20, 113.82, 35.72, 0.10381, 21, 16.23, 43.56, 0.89619, 1, 21, 128.14, 12.02, 1, 1, 21, 161.85, -15.82, 1, 1, 21, 13.52, -19.72, 1, 2, 20, 62.98, -25.82, 0.7, 21, -12.23, -31.02, 0.3, 3, 19, 115.12, -1.34, 0.08333, 20, 1.94, -12.66, 0.83333, 21, -74.27, -38.11, 0.08333, 2, 19, 106.11, -23.53, 0.3, 20, -21.81, -9.53, 0.7, 2, 19, 97.44, -44.91, 0.7, 20, -44.67, -6.51, 0.3, 2, 19, 84.26, -40.69, 0.9375, 20, -43.91, 7.3, 0.0625, 1, 19, 49.19, -29.47, 1, 2, 18, 206.75, 5.37, 0.13333, 19, 7.44, -33.78, 0.86667, 2, 18, 219.64, -20.52, 0.36111, 19, -16.64, -49.81, 0.63889, 2, 18, 208.41, -37.83, 0.72083, 19, -35.22, -40.82, 0.27917, 2, 18, 200.49, -50.03, 0.91667, 19, -48.31, -34.49, 0.08333, 1, 18, 161.11, -36.98, 1, 2, 17, 150.1, -116.77, 0.08333, 18, 119.88, -71.55, 0.91667, 2, 17, 154.99, -70.72, 0.42846, 18, 73.68, -68.48, 0.57154, 2, 17, 150.31, -65.27, 0.35605, 18, 68.43, -73.37, 0.64395, 2, 17, 146.52, -60.87, 0.59148, 18, 64.18, -77.33, 0.40852, 2, 17, 115.13, -75.09, 0.8446, 18, 79.61, -108.13, 0.1554, 1, 17, 63.33, -98.54, 1, 1, 17, 21.78, -94.56, 1, 1, 17, -66.69, -32.05, 1, 1, 17, -6.63, 52.97, 1, 1, 17, 58.15, -6.01, 1, 1, 17, 121.17, 2.44, 1, 1, 17, 188.87, -12.1, 1, 2, 17, 197.12, -18.43, 0.7, 18, 19.79, -28.44, 0.3, 2, 17, 203.99, -28.62, 0.3, 18, 29.7, -21.18, 0.7, 1, 18, 136.67, -7.43, 1, 2, 18, 164.32, 0.67, 0.7, 19, -2.53, 7.74, 0.3, 2, 18, 177.98, 21.58, 0.25, 19, 19.92, -3.2, 0.75, 1, 19, 71.94, -6.3, 1, 2, 19, 79.66, -3.72, 0.7, 20, -9.29, 21.05, 0.3, 2, 19, 87.98, 7.26, 0.3125, 20, 3.43, 15.76, 0.6875, 2, 20, 62.84, 4.16, 0.72917, 21, -21.96, -2.67, 0.27083 ], + "hull": 36, + "edges": [ 66, 68, 66, 64, 56, 54, 54, 52, 52, 50, 46, 44, 44, 42, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 68, 70, 0, 70, 46, 48, 48, 50, 14, 12, 12, 10, 60, 58, 58, 56, 42, 40, 40, 38, 18, 16, 16, 14, 22, 20, 20, 18, 38, 36, 36, 34, 60, 62, 62, 64, 68, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 16, 88, 86, 88, 18, 90, 90, 38, 88, 90, 20, 92, 92, 36, 90, 92, 92, 94, 94, 22, 94, 32, 30, 24, 88, 40, 86, 14, 84, 12, 82, 10, 82, 52, 48, 84, 44, 86, 78, 6, 4, 76, 80, 8, 80, 56, 58, 78, 76, 60 ], + "width": 338, + "height": 429 + } + }, + "raptor-horn": { + "raptor-horn": { + "type": "mesh", + "uvs": [ 0.23202, 0, 0.36456, 0.3051, 0.37967, 0.28578, 0.42983, 0.41504, 0.48255, 0.4592, 0.49181, 0.37558, 0.54262, 0.43364, 0.62744, 0.22373, 0.72685, 0.20157, 0.71155, 0.10296, 0.7437, 0.12629, 0.87154, 0.32694, 0.92655, 0.58847, 0.95146, 0.58291, 1, 0.79797, 0.99855, 0.91608, 0.95668, 0.9066, 0.89548, 0.84052, 0.85745, 0.71568, 0.81176, 0.71081, 0.79146, 0.64162, 0.7146, 0.66948, 0.70308, 0.72109, 0.66405, 0.91955, 0.57139, 1, 0.51265, 1, 0.40749, 0.94178, 0.34499, 0.80186, 0.24959, 0.49467, 0.23945, 0.4213, 0.15768, 0.37748, 0.10301, 0.43856, 0.0716, 0.54182, 0.0635, 0.72333, 0.0968, 0.78581, 0.19705, 0.70312, 0.20849, 0.70702, 0.13611, 0.87184, 0.0794, 0.95675, 0.03745, 0.92784, 0, 0.72707, 0, 0.49239, 0.01821, 0.37577, 0.08924, 0.16005, 0.2217, 0.08591, 0.21231, 0.02037, 0.21551, 0, 0.93395, 0.7495, 0.84078, 0.47214, 0.76078, 0.46484, 0.71616, 0.58482, 0.55373, 0.75879, 0.45392, 0.65487, 0.35185, 0.54621 ], + "triangles": [ 17, 18, 47, 0, 45, 46, 44, 45, 0, 8, 9, 10, 1, 44, 0, 8, 10, 11, 30, 43, 44, 29, 30, 44, 31, 42, 43, 1, 29, 44, 30, 31, 43, 4, 5, 6, 49, 8, 11, 48, 49, 11, 28, 29, 1, 32, 42, 31, 41, 42, 32, 53, 28, 1, 12, 48, 11, 49, 50, 7, 49, 7, 8, 6, 7, 50, 20, 49, 48, 50, 49, 20, 52, 3, 4, 6, 50, 51, 21, 50, 20, 18, 19, 20, 48, 18, 20, 48, 47, 18, 21, 22, 50, 32, 40, 41, 33, 40, 32, 47, 48, 12, 22, 51, 50, 4, 6, 51, 52, 4, 51, 47, 13, 14, 53, 27, 28, 1, 2, 3, 53, 1, 3, 37, 34, 35, 37, 35, 36, 16, 47, 14, 17, 47, 16, 23, 51, 22, 39, 40, 33, 39, 33, 34, 38, 39, 34, 53, 52, 27, 52, 53, 3, 25, 26, 52, 26, 27, 52, 37, 38, 34, 51, 25, 52, 24, 25, 51, 23, 24, 51, 47, 12, 13, 15, 16, 14 ], + "vertices": [ 1, 34, 281.61, 81.74, 1, 1, 34, 213.35, 84.72, 1, 1, 34, 211.41, 78.74, 1, 2, 34, 184.08, 81.47, 0.99749, 74, -201.91, 110.55, 0.00251, 1, 34, 165.27, 73.64, 1, 1, 34, 171.82, 61.6, 1, 2, 34, 152.01, 55.86, 0.99978, 74, -160.92, 112.71, 2.2E-4, 2, 34, 152.05, 10.45, 0.99, 74, -134.51, 149.65, 0.01, 2, 34, 127.93, -16.63, 0.98888, 74, -99.14, 157.63, 0.01112, 2, 34, 142.65, -24.37, 0.97775, 74, -106.6, 172.5, 0.02225, 2, 34, 131.57, -29.57, 0.9788, 74, -94.56, 170.26, 0.0212, 2, 34, 75.83, -37.63, 0.97359, 74, -44.55, 144.38, 0.02641, 2, 34, 32.94, -20.65, 0.93, 74, -19.57, 105.6, 0.07, 2, 34, 26.9, -27.43, 0.9, 74, -10.71, 107.6, 0.1, 2, 34, -9.24, -14.28, 0.86, 74, 11.02, 75.86, 0.14, 2, 34, -21.6, -0.12, 0.78, 74, 12.83, 57.16, 0.22, 2, 34, -9.42, 9.08, 0.84, 74, -2.43, 56.76, 0.16, 2, 34, 14.03, 16.44, 0.88122, 74, -25.78, 64.43, 0.11878, 2, 34, 37.64, 11.23, 0.93, 74, -41.95, 82.41, 0.07, 2, 34, 50.35, 21.92, 0.94, 74, -58.5, 81.12, 0.06, 2, 34, 63.22, 18.84, 0.95957, 74, -67.18, 91.12, 0.04043, 2, 34, 80.71, 41.03, 0.99714, 74, -94.31, 83.25, 0.00286, 1, 34, 78.21, 49.9, 1, 1, 34, 67.2, 82.69, 1, 1, 34, 83.22, 114.91, 1, 1, 34, 98.88, 129.38, 1, 1, 34, 133.2, 148.49, 1, 1, 34, 164.96, 147.54, 1, 1, 34, 223.55, 135.17, 1, 1, 34, 234.17, 129.11, 1, 1, 34, 260.7, 144.13, 1, 1, 34, 268.68, 164.73, 1, 1, 34, 265.91, 184.53, 1, 1, 34, 248.48, 207.72, 1, 1, 34, 232.86, 206.82, 1, 1, 34, 215.06, 172.46, 1, 1, 34, 211.59, 170.1, 1, 1, 34, 213.1, 207.18, 1, 1, 34, 219.05, 231.06, 1, 1, 34, 233.36, 238.02, 1, 1, 34, 265.01, 223.8, 1, 1, 34, 290.33, 196.4, 1, 1, 34, 298.06, 178.29, 1, 1, 34, 302.4, 135.6, 1, 1, 34, 275.09, 94.31, 1, 1, 34, 284.66, 88.97, 1, 1, 34, 286.01, 85.81, 1, 2, 34, 13.6, -3.66, 0.93, 74, -13.73, 80.52, 0.07, 1, 34, 68.37, -13.1, 1, 2, 34, 90.48, 5.75, 0.995, 74, -81.72, 117.62, 0.005, 2, 34, 89.43, 30.76, 0.995, 74, -95.42, 96.68, 0.005, 1, 34, 113.96, 91.09, 1, 1, 34, 151.78, 103.55, 1, 1, 34, 190.72, 116, 1 ], + "hull": 47, + "edges": [ 0, 92, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 30, 32, 32, 34, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 70, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 86, 88, 88, 90, 90, 92, 28, 30, 16, 18, 34, 36, 58, 60, 96, 94, 96, 98, 98, 100 ], + "width": 363, + "height": 159 + } + }, + "raptor-horn-back": { + "raptor-horn-back": { "x": 121.43, "y": 83.01, "rotation": -132.22, "width": 351, "height": 153 } + }, + "raptor-jaw": { + "raptor-jaw": { + "type": "mesh", + "uvs": [ 0.43611, 0.10281, 0.50457, 0.26446, 0.59673, 0.37777, 0.69416, 0.49754, 0.79771, 0.54917, 0.91149, 0.59812, 1, 0.63619, 0.99305, 0.85625, 0.67606, 1, 0.39521, 1, 0.19457, 0.89404, 0.2161, 0.6497, 0, 0.46112, 0, 0, 0.26125, 1.0E-5, 0.19457, 0.29385, 0.60678, 0.81243, 0.42896, 0.88938, 0.86006, 0.80271, 0.64788, 0.93008, 0.58349, 0.62419, 0.41196, 0.69752, 0.46153, 0.51921, 0.35989, 0.3664, 0.32564, 0.54238 ], + "triangles": [ 15, 14, 0, 1, 23, 0, 12, 13, 15, 15, 13, 14, 8, 18, 7, 7, 18, 6, 18, 5, 6, 8, 19, 18, 17, 21, 16, 23, 15, 0, 24, 15, 23, 21, 20, 16, 21, 22, 20, 21, 24, 22, 24, 23, 22, 2, 22, 23, 20, 22, 3, 22, 2, 3, 2, 23, 1, 11, 24, 21, 4, 16, 20, 16, 4, 18, 17, 16, 19, 19, 16, 18, 18, 4, 5, 4, 20, 3, 9, 10, 17, 8, 9, 19, 9, 17, 19, 10, 21, 17, 10, 11, 21, 11, 12, 24, 12, 15, 24 ], + "vertices": [ 2, 54, 28.47, 75.44, 0.40489, 74, -91.22, 43.02, 0.59511, 2, 54, 66.98, 65.83, 0.54061, 74, -64.96, 13.27, 0.45939, 2, 54, 98.09, 68.86, 0.67457, 74, -37.62, -1.88, 0.32543, 2, 54, 132.32, 71.81, 0.77891, 74, -7.76, -18.87, 0.22109, 2, 54, 163.31, 76.98, 0.78694, 74, 20.7, -32.2, 0.21306, 2, 54, 190.52, 90.03, 0.78631, 74, 50.51, -36.88, 0.21369, 2, 54, 210.32, 100.44, 0.86507, 74, 72.72, -39.54, 0.13493, 1, 54, 238.9, 67.81, 1, 2, 54, 234.83, 1.64, 0.98898, 74, 36.86, -134.8, 0.01102, 2, 54, 173.67, -58.3, 0.98603, 74, -47.5, -149.48, 0.01397, 1, 54, 125.49, -79.1, 1, 2, 54, 87.8, -40.51, 0.77481, 74, -108.13, -86.11, 0.22519, 3, 54, -5.59, -78.2, 0.30353, 8, -21.32, -18.84, 0.63716, 74, -202.55, -73.18, 0.05931, 2, 8, 106.45, -6.22, 0.98571, 74, -224.49, 48.7, 0.01429, 2, 8, 95.42, -85.63, 0.62475, 74, -144.43, 44.69, 0.37525, 2, 54, 24.89, 6.25, 0.63522, 74, -133.42, -11.92, 0.36478, 2, 54, 177.48, 5.6, 0.7446, 74, -8.12, -99.01, 0.2554, 2, 54, 160.25, -36.54, 0.86286, 74, -46.21, -123.95, 0.13714, 2, 54, 216.48, 51.69, 0.84606, 74, 50.14, -83.17, 0.15394, 2, 54, 213.42, 2.58, 0.92571, 74, 19.76, -121.89, 0.07429, 2, 54, 138.62, 31.33, 0.63037, 74, -25.53, -55.78, 0.36963, 2, 54, 124.75, -11.2, 0.73167, 74, -61.07, -82.94, 0.26833, 2, 54, 102.54, 22.8, 0.5705, 74, -60.08, -42.34, 0.4295, 2, 54, 61.9, 25.79, 0.54075, 74, -91.85, -16.83, 0.45925, 2, 54, 86.18, -5.32, 0.63768, 74, -89.5, -56.22, 0.36232 ], + "hull": 15, + "edges": [ 24, 26, 24, 22, 22, 20, 20, 18, 18, 16, 8, 6, 2, 0, 26, 28, 0, 28, 26, 30, 24, 30, 30, 0, 14, 16, 14, 12, 8, 32, 32, 34, 8, 10, 10, 12, 2, 4, 4, 6 ], + "width": 252, + "height": 275 + } + }, + "raptor-jaw-inside": { + "raptor-jaw2": { + "type": "mesh", + "path": "raptor-jaw", + "uvs": [ 0.43611, 0.10281, 0.50457, 0.26446, 0.69416, 0.49754, 0.79771, 0.54917, 1, 0.63619, 0.99305, 0.85625, 0.67606, 1, 0.39521, 1, 0.19457, 0.89404, 0.2161, 0.6497, 0, 0.46112, 0, 0, 0.26125, 1.0E-5, 0.19457, 0.29385, 0.60678, 0.81243, 0.42896, 0.88938 ], + "triangles": [ 13, 11, 12, 10, 11, 13, 13, 12, 0, 13, 0, 1, 9, 13, 1, 9, 1, 2, 10, 13, 9, 14, 9, 2, 14, 2, 3, 5, 3, 4, 14, 3, 5, 15, 9, 14, 8, 9, 15, 7, 8, 15, 6, 14, 5, 15, 14, 6, 7, 15, 6 ], + "vertices": [ 2, 54, 28.9, 96.24, 0.84, 74, -73.48, 56.29, 0.16, 2, 54, 65.84, 86.82, 0.84002, 74, -48.4, 27.58, 0.15998, 2, 54, 125.41, 92.66, 0.88641, 74, 3.97, -1.4, 0.11359, 2, 54, 151.38, 98.09, 0.83356, 74, 28.44, -11.66, 0.16644, 2, 54, 191.91, 121, 0.85174, 74, 74.81, -15.78, 0.14826, 2, 54, 227.3, 89.29, 0.83919, 74, 85.97, -61.97, 0.16081, 2, 54, 223.4, 25.16, 0.94641, 74, 46.37, -112.58, 0.05359, 2, 54, 176.27, -33.76, 0.77848, 74, -25.86, -134.36, 0.22152, 2, 54, 132.75, -53.77, 0.70055, 74, -73.05, -126.15, 0.29945, 2, 54, 94.17, -16.26, 0.68436, 74, -83.54, -73.38, 0.31564, 3, 54, 19.52, -38.44, 0.28887, 8, -3.76, -62.46, 0.60639, 74, -154.63, -56.39, 0.10474, 1, 8, 98.59, -46.15, 1, 2, 8, 110.02, -102.65, 0.84736, 74, -123.17, 57.1, 0.15264, 2, 54, 31.25, 29.22, 0.82334, 74, -109.57, -0.23, 0.17666, 2, 54, 171.54, 28.72, 0.86269, 74, 5.69, -80.23, 0.13731, 2, 54, 161.87, -12.64, 0.71096, 74, -25.74, -108.8, 0.28904 ], + "hull": 13, + "edges": [ 20, 22, 20, 18, 18, 16, 16, 14, 14, 12, 6, 4, 4, 2, 2, 0, 22, 24, 0, 24, 22, 26, 20, 26, 26, 0, 10, 12, 6, 8, 10, 8, 6, 28, 28, 30 ], + "width": 252, + "height": 275 + } + }, + "raptor-mouth-inside": { + "raptor-mouth-inside": { + "type": "mesh", + "uvs": [ 1, 0.29017, 0.37217, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 0, 1, 3, 3, 4, 0 ], + "vertices": [ 1, 8, 26.56, -211.68, 1, 1, 54, 130.45, -7.83, 1, 1, 54, 109.72, -24.21, 1, 1, 8, 47.22, -139.7, 1, 1, 8, 50.33, -210.63, 1 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 2, 0 ], + "width": 71, + "height": 82 + } + }, + "raptor-saddle": { + "raptor-saddle-w-shadow": { + "type": "mesh", + "uvs": [ 0.28517, 0.09749, 0.26891, 0.14719, 0.32431, 0.28893, 0.45069, 0.52793, 0.56076, 0.56219, 0.69936, 0.53502, 0.71567, 0.44878, 0.83797, 0.36373, 0.91271, 0.34719, 1, 0.53622, 1, 0.61771, 0.93479, 0.82943, 0.87524, 0.96013, 0.74099, 1, 0.28984, 0.9496, 0.12982, 0.85304, 0.10295, 0.69443, 0.10449, 0.63657, 0.20499, 0.6452, 0.0954, 0.41741, 0.00133, 0.37841, 0, 0.27026, 0.11186, 0, 0.17021, 0, 0.24413, 0, 0.46313, 0.92332, 0.56755, 0.84415, 0.94056, 0.67906, 0.9263, 0.43106, 0.2137, 0.18682, 0.18239, 0.28963, 0.21653, 0.33824, 0.32307, 0.44535, 0.38606, 0.52911, 0.39069, 0.55971, 0.36568, 0.6032, 0.38235, 0.62414, 0.43979, 0.69174, 0.53891, 0.71429, 0.62321, 0.7159, 0.70381, 0.69254, 0.74827, 0.66355, 0.78996, 0.62087, 0.80571, 0.56933, 0.79737, 0.54033, 0.75661, 0.51215, 0.72789, 0.51537, 0.20634, 0.08376, 0.17577, 0.12886, 0.13686, 0.18765, 0.11185, 0.28751, 0.17762, 0.36321, 0.26192, 0.46066, 0.30546, 0.50012, 0.31565, 0.55488, 0.81026, 0.7038, 0.86992, 0.65976, 0.89927, 0.54517, 0.84925, 0.47993, 0.81868, 0.43161 ], + "triangles": [ 47, 23, 24, 47, 24, 0, 47, 22, 23, 1, 47, 0, 48, 47, 1, 29, 48, 1, 48, 49, 22, 47, 48, 22, 49, 48, 29, 21, 22, 49, 50, 21, 49, 29, 1, 2, 30, 49, 29, 30, 29, 2, 50, 49, 30, 31, 30, 2, 51, 50, 30, 51, 30, 31, 20, 21, 50, 19, 20, 50, 19, 50, 51, 8, 9, 28, 7, 8, 28, 59, 7, 28, 32, 31, 2, 2, 3, 32, 7, 59, 6, 52, 31, 32, 51, 31, 52, 58, 59, 28, 53, 52, 32, 45, 6, 59, 45, 59, 58, 46, 6, 45, 33, 53, 32, 3, 33, 32, 46, 5, 6, 44, 45, 58, 57, 58, 28, 57, 28, 9, 44, 58, 57, 54, 53, 33, 34, 33, 3, 54, 33, 34, 43, 44, 57, 35, 54, 34, 57, 9, 10, 46, 44, 43, 44, 46, 45, 36, 35, 34, 52, 19, 51, 19, 52, 18, 54, 52, 53, 54, 18, 52, 56, 43, 57, 27, 56, 57, 42, 43, 56, 46, 42, 5, 43, 42, 46, 41, 5, 42, 10, 27, 57, 3, 36, 34, 37, 3, 4, 37, 36, 3, 40, 5, 41, 4, 5, 40, 16, 17, 18, 55, 42, 56, 41, 42, 55, 38, 37, 4, 39, 38, 4, 40, 39, 4, 27, 55, 56, 11, 55, 27, 11, 27, 10, 26, 38, 39, 15, 16, 18, 26, 25, 37, 26, 37, 38, 14, 18, 37, 35, 18, 54, 36, 18, 35, 37, 18, 36, 14, 37, 25, 15, 18, 14, 12, 55, 11, 55, 13, 40, 55, 40, 41, 13, 55, 12, 26, 39, 40, 13, 26, 40, 25, 26, 13, 14, 25, 13 ], + "vertices": [ 262.59, 79.92, 244.74, 92.82, 188.83, 69.76, 114.07, 26.79, 102.07, -9.38, 113.32, -54.32, 145.78, -58.87, 178.6, -97.98, 185.38, -122.19, 120.06, -152.19, 84.63, -153.03, 15.94, -134.16, -24.77, -117.84, -45.38, -70.46, -59.12, 75.16, -24.15, 128.17, 35.11, 138.33, 56.81, 138.33, 54.35, 105.5, 138.9, 143.23, 152.8, 174.24, 193.34, 175.62, 295.51, 141.56, 295.96, 122.54, 296.53, 98.45, -47.94, 18.91, -17.46, -14.42, 67.83, -136.04, 154.04, -127.36, 226.26, 106.71, 187.47, 116.01, 169.51, 104.45, 130.18, 68.79, 99.26, 47.52, 87.82, 45.74, 71.33, 53.5, 63.61, 47.89, 52.57, 28.9, 44.88, -3.61, 44.93, -31.1, 54.3, -57.16, 65.51, -71.39, 81.83, -84.6, 101.28, -89.28, 112.08, -86.31, 122.33, -72.77, 120.91, -63.44, 264.84, 110.02, 247.7, 119.59, 225.36, 131.75, 187.73, 139.02, 159.85, 116.91, 123.97, 88.58, 109.51, 74.04, 89.06, 70.23, 41.99, -86.15, 68.62, -111.21, 111.05, -119.56, 135.12, -102.68, 153, -92.29 ], + "hull": 25, + "edges": [ 44, 42, 40, 42, 40, 38, 38, 36, 36, 34, 34, 32, 32, 30, 30, 28, 28, 50, 50, 52, 52, 26, 26, 24, 24, 22, 22, 54, 54, 20, 20, 18, 18, 56, 56, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 0, 48, 26, 28, 20, 22, 16, 18, 2, 58, 58, 60, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 70, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 86, 88, 88, 90, 90, 92, 92, 10, 44, 46, 46, 48, 46, 94, 94, 96, 96, 98, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 108, 36, 110, 112, 112, 114, 114, 116, 116, 118, 118, 14 ], + "width": 324, + "height": 341 + } + }, + "raptor-saddle-strap-back": { + "raptor-saddle-strap-back": { "x": 78.45, "y": -4.2, "rotation": 120.24, "width": 108, "height": 148 } + }, + "raptor-saddle-strap-front": { + "raptor-saddle-strap-front": { "x": 128.83, "y": -4.72, "rotation": 61.29, "width": 114, "height": 189 } + }, + "raptor-tongue": { + "raptor-tongue": { + "type": "mesh", + "uvs": [ 0.35242, 0.21561, 0.4794, 0.44246, 0.62072, 0.61177, 0.80563, 0.75374, 1, 0.90297, 1, 1, 0.8971, 1, 0.72055, 0.92255, 0.50668, 0.82872, 0.30402, 0.70725, 0.10537, 0.57889, 0, 0.50622, 0, 0, 0.26225, 0 ], + "triangles": [ 7, 8, 3, 6, 7, 3, 4, 6, 3, 6, 4, 5, 8, 7, 6, 9, 1, 2, 8, 9, 2, 9, 10, 1, 8, 2, 3, 0, 11, 12, 0, 12, 13, 10, 11, 0, 1, 10, 0 ], + "vertices": [ 2, 71, 3.64, 27.05, 0.6875, 72, -47.27, 33.88, 0.3125, 3, 71, 39.1, 19.46, 0.3125, 72, -13.42, 20.87, 0.625, 73, -51.54, 33.38, 0.0625, 3, 71, 71.56, 19.03, 0.0625, 72, 18.59, 15.4, 0.625, 73, -21.56, 20.92, 0.3125, 2, 72, 55.03, 16.86, 0.3125, 73, 14.29, 14.24, 0.6875, 2, 72, 93.34, 18.4, 0.08333, 73, 51.98, 7.21, 0.91667, 1, 73, 56.09, -4.51, 1, 2, 72, 85.07, -1.49, 0.08333, 73, 39.49, -10.33, 0.91667, 2, 72, 54.23, -9.18, 0.3125, 73, 7.71, -10.97, 0.6875, 3, 71, 75.14, -14.72, 0.0625, 72, 16.87, -18.5, 0.625, 73, -30.77, -11.74, 0.3125, 3, 71, 38.8, -25.81, 0.3125, 72, -20.75, -23.8, 0.625, 73, -68.63, -8.54, 0.0625, 2, 71, 2.4, -35.78, 0.6875, 72, -58.25, -27.99, 0.3125, 2, 71, -17.29, -40.63, 0.91667, 72, -78.46, -29.72, 0.08333, 1, 71, -59.92, 8.19, 1, 2, 71, -26.14, 37.69, 0.91667, 72, -75.02, 49.02, 0.08333 ], + "hull": 14, + "edges": [ 22, 24, 10, 12, 10, 8, 24, 26, 16, 4, 18, 16, 2, 4, 18, 2, 22, 20, 0, 26, 20, 0, 0, 2, 12, 14, 14, 16, 4, 6, 6, 8, 14, 6, 20, 18 ], + "width": 171, + "height": 128 + } + }, + "raptow-jaw-tooth": { + "raptor-jaw-tooth": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 54, 275.87, 107.8, 1, 2, 54, 235.58, 46.93, 0.94857, 74, -85.57, -171.76, 0.05143, 2, 54, 155.53, 99.92, 0.94, 74, -56.06, -80.4, 0.06, 1, 54, 195.82, 160.79, 1 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 73, + "height": 96 + } + }, + "spineboy-torso": { + "torso": { "x": 55.88, "y": 4.87, "rotation": -104.14, "width": 108, "height": 182 } + }, + "stirrup-back": { + "stirrup-back": { "x": 53.2, "y": 31.34, "rotation": -21.13, "width": 87, "height": 69 } + }, + "stirrup-front": { + "stirrup-front": { "x": 36.14, "y": 20.39, "rotation": -21.13, "width": 89, "height": 100 } + }, + "stirrup-strap": { + "stirrup-strap": { + "type": "mesh", + "uvs": [ 0.36823, 0.27894, 0.45738, 0.38897, 0.54452, 0.49652, 0.67872, 0.59135, 0.81977, 0.69102, 1, 0.77344, 1, 1, 0.77957, 1, 0.6373, 0.8163, 0.53364, 0.72349, 0.40534, 0.60861, 0.30886, 0.52535, 0.2105, 0.44048, 0, 0.26245, 0, 0, 0.30637, 0, 0.20242, 0.23001 ], + "triangles": [ 2, 10, 1, 9, 10, 2, 9, 2, 3, 8, 9, 3, 8, 3, 4, 7, 8, 4, 7, 4, 5, 7, 5, 6, 16, 14, 15, 13, 14, 16, 16, 15, 0, 12, 16, 0, 12, 0, 1, 13, 16, 12, 11, 12, 1, 10, 11, 1 ], + "vertices": [ 2, 59, 24.72, 8.04, 0.80345, 60, -17.42, 11.02, 0.19655, 2, 59, 37.95, 8.04, 0.59979, 60, -4.37, 8.87, 0.40021, 2, 59, 50.88, 8.05, 0.36895, 60, 8.39, 6.77, 0.63105, 2, 59, 65.92, 12.27, 0.17748, 60, 23.92, 8.48, 0.82252, 2, 59, 81.73, 16.71, 0.05943, 60, 40.24, 10.28, 0.94057, 2, 59, 98.83, 25.04, 0.0121, 60, 58.47, 15.72, 0.9879, 2, 59, 114.44, 11.58, 0.00191, 60, 71.67, -0.11, 0.99809, 2, 59, 100.47, -4.61, 0.01818, 60, 55.25, -13.81, 0.98182, 2, 59, 78.8, -4.14, 0.07488, 60, 33.95, -9.81, 0.92512, 2, 59, 65.83, -6.24, 0.2028, 60, 20.81, -9.77, 0.7972, 2, 59, 49.79, -8.84, 0.39972, 60, 4.56, -9.71, 0.60028, 2, 59, 37.94, -10.97, 0.62658, 60, -7.48, -9.89, 0.37342, 2, 59, 25.86, -13.15, 0.82035, 60, -19.76, -10.07, 0.17965, 2, 59, 0.25, -18.03, 0.95289, 60, -45.82, -10.7, 0.04711, 2, 59, -17.84, -2.43, 0.9771, 60, -61.11, 7.64, 0.0229, 2, 59, 1.58, 20.07, 0.94775, 60, -38.29, 26.68, 0.05225, 2, 59, 10.84, -1.24, 0.9771, 60, -32.63, 4.14, 0.0229 ], + "hull": 16, + "edges": [ 28, 30, 30, 0, 12, 10, 8, 10, 12, 14, 14, 16, 26, 28, 24, 26, 26, 32, 32, 30, 20, 22, 22, 24, 0, 2, 2, 4, 4, 6, 6, 8, 16, 18, 18, 20 ], + "width": 97, + "height": 91 + } + }, + "tail-shadow": { + "raptor-tail-shadow": { + "type": "mesh", + "uvs": [ 1, 0.50387, 0.89276, 1, 0.82069, 0.96993, 0.72927, 0.92231, 0.64083, 0.87624, 0.54988, 0.83667, 0.47106, 0.80022, 0.40123, 0.7783, 0.32238, 0.75321, 0.25301, 0.73107, 0.20375, 0.71883, 0.11753, 0.71414, 0, 0.72519, 0, 0.66338, 0.10358, 0.57282, 0.18201, 0.5128, 0.23534, 0.47512, 0.30555, 0.4281, 0.37968, 0.37769, 0.44858, 0.3281, 0.51987, 0.2798, 0.61007, 0.21367, 0.70725, 0.14608, 0.80109, 0.08082, 0.90134, 0 ], + "triangles": [ 10, 11, 14, 13, 14, 11, 10, 14, 15, 12, 13, 11, 9, 10, 15, 8, 9, 16, 9, 15, 16, 8, 16, 17, 7, 8, 17, 6, 7, 18, 7, 17, 18, 6, 18, 19, 5, 6, 19, 4, 20, 21, 4, 5, 20, 5, 19, 20, 2, 22, 23, 3, 21, 22, 4, 21, 3, 3, 22, 2, 23, 24, 0, 23, 0, 2, 1, 2, 0 ], + "vertices": [ 1, 65, -0.16, 6.41, 1, 2, 65, 42.4, 61.67, 0.7548, 66, -28.13, 61.67, 0.2452, 2, 65, 69.28, 56.16, 0.53679, 66, -1.25, 56.16, 0.46321, 3, 65, 103.42, 48.48, 0.13235, 66, 32.89, 48.48, 0.82952, 67, -35.63, 49.98, 0.03813, 3, 65, 136.1, 39.06, 0.00439, 66, 65.57, 39.06, 0.62467, 67, -3.36, 39.23, 0.37094, 3, 66, 99.5, 32, 0.0995, 67, 30.26, 30.79, 0.87982, 68, -32.35, 31.34, 0.02068, 3, 66, 129.1, 26.76, 4.6E-4, 67, 59.61, 24.34, 0.57172, 68, -3.11, 24.4, 0.42782, 2, 67, 85.42, 18.44, 0.04275, 68, 22.59, 18.06, 0.95725, 2, 68, 51.63, 10.96, 0.64526, 69, -3.07, 10.89, 0.35474, 2, 68, 77.16, 4.61, 0.00246, 69, 22.59, 5.12, 0.99754, 2, 69, 40.97, 2.02, 0.84959, 70, -8.23, 2.08, 0.15041, 1, 70, 23.84, -2.64, 1, 1, 70, 68.09, -5.25, 1, 1, 70, 68.64, -7.05, 1, 1, 70, 29.23, -12.51, 1, 2, 69, 48.26, -18.17, 0.57427, 70, -1.07, -18.16, 0.42573, 1, 69, 27.9, -20.81, 1, 2, 68, 55.03, -24.11, 0.40024, 69, 1.11, -24.1, 0.59976, 3, 67, 90.24, -26.6, 0.00715, 68, 26.65, -27.06, 0.98709, 69, -27.19, -27.68, 0.00576, 2, 67, 63.89, -30.1, 0.5083, 68, 0.25, -30.11, 0.4917, 3, 66, 108.32, -33.03, 0.01005, 67, 36.41, -34.55, 0.9784, 68, -27.3, -34.09, 0.01155, 2, 66, 74.22, -38.09, 0.50429, 67, 2.13, -38.21, 0.49571, 3, 65, 107.88, -44.01, 0.04245, 66, 37.35, -44.01, 0.94684, 67, -34.96, -42.61, 0.01071, 2, 65, 72.14, -50.49, 0.52154, 66, 1.61, -50.49, 0.47846, 2, 65, 33.89, -58.82, 0.93522, 66, -36.64, -58.82, 0.06478 ], + "hull": 25, + "edges": [ 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 20, 30, 32, 18, 20, 32, 18, 34, 32, 16, 18, 34, 16, 14, 36, 16, 14, 34, 36, 38, 36, 12, 14, 38, 12, 40, 38, 10, 12, 40, 10, 2, 4, 46, 4, 42, 8, 8, 10, 40, 42, 46, 44, 44, 42, 4, 6, 6, 8, 44, 6, 2, 0, 0, 48, 46, 48 ], + "width": 377, + "height": 126 + } + }, + "visor": { + "visor": { "x": 99.13, "y": 6.51, "rotation": -70.58, "width": 261, "height": 168 } + } + } + } +], +"events": { + "footstep": {} +}, +"animations": { + "gun-grab": { + "slots": { + "front-hand": { + "attachment": [ + { "name": "front-open-hand" }, + { "time": 0.2333, "name": "gun" } + ] + }, + "gun": { + "attachment": [ + { "time": 0.2333 } + ] + } + }, + "bones": { + "front-hand2": { + "rotate": [ + { + "curve": [ 0.033, 0, 0.1, 12.34 ] + }, + { + "time": 0.1333, + "value": 12.34, + "curve": [ 0.158, 12.34, 0.208, -89.55 ] + }, + { + "time": 0.2333, + "value": -89.55, + "curve": [ 0.269, -89.03, 0.299, -89.03 ] + }, + { + "time": 0.3333, + "value": -79.79, + "curve": [ 0.397, -62.87, 0.583, -10.18 ] + }, + { "time": 0.6667, "value": -10.18 } + ], + "scale": [ + { + "curve": [ 0.058, 1, 0.175, 0.938, 0.058, 1, 0.175, 0.938 ] + }, + { + "time": 0.2333, + "x": 0.938, + "y": 0.938, + "curve": [ 0.342, 0.938, 0.558, 1, 0.342, 0.938, 0.558, 1 ] + }, + { "time": 0.6667 } + ] + }, + "front-arm": { + "rotate": [ + { + "curve": [ 0.025, 0, 0.082, -21.08 ] + }, + { + "time": 0.1, + "value": -32, + "curve": [ 0.15, -62.93, 0.213, -120.29 ] + }, + { + "time": 0.2333, + "value": -136.89, + "curve": [ 0.29, -183.72, 0.308, -204.81 ] + }, + { + "time": 0.3333, + "value": -204.81, + "curve": [ 0.383, -204.81, 0.479, -143.9 ] + }, + { + "time": 0.5333, + "value": -113.86, + "curve": [ 0.563, -97.44, 0.633, -56.75 ] + }, + { "time": 0.6667, "value": -56.75 } + ], + "translate": [ + { + "curve": [ 0.058, 0, 0.173, 4.7, 0.058, 0, 0.175, -2.66 ] + }, + { + "time": 0.2333, + "x": 5.85, + "y": -2.66, + "curve": [ 0.258, 6.3, 0.308, 6.84, 0.258, -2.66, 0.308, 4.8 ] + }, + { + "time": 0.3333, + "x": 6.84, + "y": 4.8, + "curve": [ 0.417, 6.84, 0.583, 0, 0.417, 4.8, 0.583, 0 ] + }, + { "time": 0.6667 } + ] + }, + "front-bracer": { + "rotate": [ + { + "curve": [ 0.058, 0, 0.218, 76.7 ] + }, + { + "time": 0.2333, + "value": 86.02, + "curve": [ 0.267, 106.51, 0.317, 114.95 ] + }, + { + "time": 0.3333, + "value": 114.95, + "curve": [ 0.383, 114.95, 0.515, 89.58 ] + }, + { + "time": 0.5333, + "value": 81.86, + "curve": [ 0.574, 64.66, 0.633, 34.74 ] + }, + { "time": 0.6667, "value": 34.74 } + ] + } + }, + "ik": { + "spineboy-front-arm-ik": [ + { "mix": 0 } + ] + } + }, + "gun-holster": { + "slots": { + "front-hand": { + "attachment": [ + { "name": "gun" }, + { "time": 0.3, "name": "front-open-hand" }, + { "time": 0.6667, "name": "front-hand" } + ] + }, + "gun": { + "attachment": [ + {}, + { "time": 0.3, "name": "gun-nohand" } + ] + } + }, + "bones": { + "front-hand2": { + "rotate": [ + { + "value": -10.18, + "curve": [ 0.042, -10.18, 0.132, -79.17 ] + }, + { + "time": 0.1667, + "value": -84.76, + "curve": [ 0.204, -90.76, 0.267, -89.52 ] + }, + { + "time": 0.3, + "value": -89.52, + "curve": [ 0.342, -89.52, 0.411, -56.54 ] + }, + { + "time": 0.4667, + "value": -35.36, + "curve": [ 0.507, -19.8, 0.617, 0.18 ] + }, + { "time": 0.6667, "value": 0.18 } + ], + "translate": [ + { + "curve": [ 0.017, 0, 0.05, -1.82, 0.017, 0, 0.05, 0.11 ] + }, + { "time": 0.0667, "x": -1.82, "y": 0.11 } + ], + "scale": [ + { + "curve": [ 0.075, 1, 0.225, 0.888, 0.075, 1, 0.225, 0.888 ] + }, + { "time": 0.3, "x": 0.888, "y": 0.888 } + ] + }, + "front-arm": { + "rotate": [ + { + "value": -56.75, + "curve": [ 0.042, -56.75, 0.104, -197.53 ] + }, + { + "time": 0.1667, + "value": -197.88, + "curve": [ 0.23, -198.59, 0.267, -143.09 ] + }, + { + "time": 0.3, + "value": -143.09, + "curve": [ 0.342, -143.09, 0.425, -159.79 ] + }, + { + "time": 0.4667, + "value": -159.79, + "curve": [ 0.517, -159.79, 0.617, -25.24 ] + }, + { "time": 0.6667, "value": -25.24 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": 34.74, + "curve": [ 0.042, 34.74, 0.138, 83.37 ] + }, + { + "time": 0.1667, + "value": 90.01, + "curve": [ 0.195, 96.76, 0.369, 112.84 ] + }, + { + "time": 0.4, + "value": 114.44, + "curve": [ 0.422, 115.57, 0.45, 116.1 ] + }, + { "time": 0.4667, "value": 116.1 } + ] + } + }, + "ik": { + "spineboy-front-arm-ik": [ + { "mix": 0, "curve": "stepped" }, + { "time": 0.4667, "mix": 0 }, + { "time": 0.6667, "mix": 0.996 } + ] + } + }, + "jump": { + "slots": { + "mouth-smile": { + "attachment": [ + { "time": 0.1333, "name": "mouth-grind" }, + { "time": 0.9, "name": "mouth-smile" } + ] + } + }, + "bones": { + "front-foot-target": { + "rotate": [ + { + "time": 0.3, + "curve": [ 0.325, 0, 0.393, -4.59 ] + }, + { + "time": 0.4, + "value": -6.98, + "curve": [ 0.421, -14.42, 0.45, -69.67 ] + }, + { + "time": 0.4667, + "value": -69.67, + "curve": [ 0.483, -69.67, 0.509, -21.2 ] + }, + { + "time": 0.5333, + "value": -12.81, + "curve": [ 0.562, -2.84, 0.633, 5.74 ] + }, + { + "time": 0.6667, + "value": 5.74, + "curve": [ 0.742, 5.74, 0.892, 0 ] + }, + { "time": 0.9667 } + ], + "translate": [ + { + "x": -90.53, + "y": 47.55, + "curve": [ 0.015, -146.88, 0.075, -246.15, 0.036, 37.03, 0.075, 33.45 ] + }, + { + "time": 0.1, + "x": -246.15, + "y": 33.45, + "curve": [ 0.15, -246.15, 0.375, -246.15, 0.15, 33.45, 0.349, 33.63 ] + }, + { + "time": 0.4, + "x": -246.15, + "y": 33.45, + "curve": [ 0.413, -243.99, 0.447, -223.12, 0.413, 35.27, 0.46, 361.9 ] + }, + { + "time": 0.4667, + "x": -179.6, + "y": 397.56, + "curve": [ 0.484, -140.35, 0.517, 16.95, 0.477, 456.62, 0.496, 549.31 ] + }, + { + "time": 0.5333, + "x": 73.03, + "y": 636.97, + "curve": [ 0.557, 157.46, 0.606, 251.39, 0.56, 699.46, 0.633, 735.98 ] + }, + { + "time": 0.6667, + "x": 251.39, + "y": 737.16, + "curve": [ 0.796, 249.04, 0.947, 141, 0.81, 742.2, 0.947, 234.23 ] + }, + { "time": 0.9667, "x": 95.94, "y": 36.5 } + ] + }, + "hip": { + "rotate": [ + { + "value": -4.48, + "curve": [ 0.049, -9.72, 0.1, -13.95 ] + }, + { + "time": 0.1333, + "value": -13.95, + "curve": [ 0.2, -13.95, 0.361, 5.8 ] + }, + { + "time": 0.4, + "value": 12.46, + "curve": [ 0.438, 19.02, 0.513, 31.53 ] + }, + { + "time": 0.6667, + "value": 31.43, + "curve": [ 0.821, 31.91, 0.951, 2.18 ] + }, + { + "time": 0.9667, + "value": -4.26, + "curve": [ 0.982, -10.63, 1.013, -18.69 ] + }, + { + "time": 1.0667, + "value": -18.59, + "curve": [ 1.108, -18.52, 1.292, 3.45 ] + }, + { + "time": 1.3333, + "value": 3.45, + "curve": [ 1.367, 3.45, 1.445, 2.35 ] + }, + { "time": 1.5333, "value": -4.48 } + ], + "translate": [ + { + "x": -47.56, + "y": 48.49, + "curve": [ 0.043, -69.43, 0.1, -79.91, 0.033, 48.49, 0.111, -39.5 ] + }, + { + "time": 0.1333, + "x": -79.91, + "y": -55.85, + "curve": [ 0.166, -79.91, 0.225, -76.38, 0.162, -76.85, 0.217, -91.17 ] + }, + { + "time": 0.2667, + "x": -52.47, + "y": -92.76, + "curve": [ 0.312, -26.39, 0.38, 56.36, 0.317, -94.39, 0.359, -58.96 ] + }, + { + "time": 0.4, + "x": 82.2, + "y": 39.51, + "curve": [ 0.426, 116.54, 0.532, 203.27, 0.43, 112.89, 0.475, 649.69 ] + }, + { + "time": 0.6667, + "x": 205.52, + "y": 649.79, + "curve": [ 0.775, 207.34, 0.857, 58.95, 0.879, 646.83, 0.926, 440.06 ] + }, + { + "time": 0.9667, + "x": 59.67, + "y": 161.1, + "curve": [ 1.026, 60.06, 1.041, 72.9, 0.982, 53.87, 1.004, -91.4 ] + }, + { + "time": 1.0667, + "x": 91.3, + "y": -91.6, + "curve": [ 1.083, 103.05, 1.246, 238.62, 1.207, -92.04, 1.234, 76.13 ] + }, + { + "time": 1.3333, + "x": 238.12, + "y": 75.68, + "curve": [ 1.408, 237.69, 1.5, 213.2, 1.41, 75.33, 1.497, 49.77 ] + }, + { "time": 1.5333, "x": 213.2, "y": 49.77 } + ] + }, + "back-foot-target": { + "rotate": [ + { + "time": 0.3, + "curve": [ 0.325, 0, 0.386, -31.84 ] + }, + { + "time": 0.4, + "value": -41.64, + "curve": [ 0.42, -55.3, 0.458, -86.03 ] + }, + { + "time": 0.4667, + "value": -86.03, + "curve": [ 0.475, -86.03, 0.515, -62.63 ] + }, + { + "time": 0.5333, + "value": -57.97, + "curve": [ 0.645, -29.13, 1.025, -7.79 ] + }, + { "time": 1.0333, "value": -7.79 } + ], + "translate": [ + { "x": 99.37, "curve": "stepped" }, + { + "time": 0.3, + "x": 99.37, + "curve": [ 0.352, 97.71, 0.349, 85.15, 0.4, 0, 0.3, 0 ] + }, + { + "time": 0.4, + "x": 83.35, + "curve": [ 0.412, 83.24, 0.424, 87.02, 0.411, 0.2, 0.415, -7.91 ] + }, + { + "time": 0.4333, + "x": 92.07, + "y": -9.73, + "curve": [ 0.451, 100.78, 0.463, 124.21, 0.449, 27.5, 0.462, 103.35 ] + }, + { + "time": 0.4667, + "x": 132.33, + "y": 119.67, + "curve": [ 0.476, 153.34, 0.517, 239.65, 0.476, 151.52, 0.518, 382.69 ] + }, + { + "time": 0.5333, + "x": 267.51, + "y": 435.87, + "curve": [ 0.553, 302.61, 0.632, 352.21, 0.557, 517.14, 0.645, 683.92 ] + }, + { + "time": 0.6667, + "x": 352.52, + "y": 702.46, + "curve": [ 0.747, 353.24, 0.797, 342.85, 0.745, 768.64, 0.789, 768.68 ] + }, + { + "time": 0.8333, + "x": 322.4, + "y": 717.67, + "curve": [ 0.866, 303.67, 0.932, 224.25, 0.865, 681.89, 0.936, 422.05 ] + }, + { + "time": 0.9667, + "x": 220.5, + "y": 293.73, + "curve": [ 0.989, 218.13, 1.009, 314.6, 0.987, 209.37, 1.024, 79.62 ] + }, + { "time": 1.0333, "x": 318.98 } + ] + }, + "front-leg-target": { + "translate": [ + { + "curve": [ 0.025, 0, 0.075, -33.09, 0.025, 0, 0.075, -31.34 ] + }, + { + "time": 0.1, + "x": -33.09, + "y": -31.34, + "curve": [ 0.175, -33.09, 0.325, 140.91, 0.175, -31.34, 0.325, 51.55 ] + }, + { + "time": 0.4, + "x": 140.91, + "y": 51.55, + "curve": [ 0.434, 140.58, 0.421, 10.15, 0.435, 50.46, 0.45, 16 ] + }, + { + "time": 0.4667, + "x": -11.12, + "y": 4.78, + "curve": [ 0.501, -25.03, 0.586, -45.12, 0.511, -24.72, 0.56, -38.69 ] + }, + { + "time": 0.6667, + "x": -46.38, + "y": -40.57, + "curve": [ 0.74, -46.38, 0.923, -1.75, 0.74, -40.57, 0.896, 22.3 ] + }, + { + "time": 0.9667, + "x": -1.72, + "y": 20.96, + "curve": [ 0.993, -1.71, 0.993, -37.51, 0.995, 20.41, 0.954, -37.81 ] + }, + { + "time": 1.1, + "x": -38.27, + "y": -35.93, + "curve": [ 1.181, -38.85, 1.252, 44.94, 1.184, -34.84, 1.252, 5.48 ] + }, + { + "time": 1.3333, + "x": 44.94, + "y": 5.48, + "curve": [ 1.383, 44.94, 1.452, 0, 1.383, 5.48, 1.452, 0 ] + }, + { "time": 1.5333 } + ] + }, + "back-leg-target": { + "translate": [ + { + "curve": [ 0.025, 0, 0.075, -35.37, 0.025, 0, 0.075, -16.42 ] + }, + { + "time": 0.1, + "x": -35.37, + "y": -16.42, + "curve": [ 0.141, -35.37, 0.205, -14.12, 0.141, -16.42, 0.214, 4.84 ] + }, + { + "time": 0.2667, + "x": -4.49, + "y": 4.24, + "curve": [ 0.317, 3.38, 0.366, 12.04, 0.319, 3.65, 0.375, -33.42 ] + }, + { + "time": 0.4, + "x": 12.04, + "y": -42.73, + "curve": [ 0.417, 12.04, 0.45, -46.17, 0.413, -47.43, 0.454, -76.29 ] + }, + { + "time": 0.4667, + "x": -46.17, + "y": -81.12, + "curve": [ 0.475, -46.17, 0.525, -38.36, 0.499, -93.24, 0.525, -96.11 ] + }, + { + "time": 0.5333, + "x": -38.36, + "y": -96.11, + "curve": [ 0.567, -38.36, 0.633, -55.58, 0.567, -96.11, 0.643, -67.83 ] + }, + { + "time": 0.6667, + "x": -55.58, + "y": -63.06, + "curve": [ 0.75, -55.58, 0.907, -56.88, 0.736, -49.33, 0.921, -52.06 ] + }, + { + "time": 1, + "x": -43, + "y": -42.05, + "curve": [ 1.076, -31.56, 1.101, -19.95, 1.084, -31.37, 1.125, -4.64 ] + }, + { + "time": 1.1333, + "x": -12.99, + "y": -3.97, + "curve": [ 1.198, 0.98, 1.233, 0, 1.173, -0.72, 1.233, 0 ] + }, + { "time": 1.2667 } + ] + }, + "tail1": { + "rotate": [ + { + "curve": [ 0.033, -0.73, 0.182, -1.37 ] + }, + { + "time": 0.2333, + "value": -0.68, + "curve": [ 0.324, 0.55, 0.378, 4.7 ] + }, + { + "time": 0.4, + "value": 6.15, + "curve": [ 0.449, 9.36, 0.523, 12.03 ] + }, + { + "time": 0.5667, + "value": 12.05, + "curve": [ 0.704, 12.09, 0.764, -9.79 ] + }, + { + "time": 0.9333, + "value": -9.74, + "curve": [ 0.984, -9.73, 1.054, -9.25 ] + }, + { + "time": 1.1, + "value": -7.09, + "curve": [ 1.173, -3.67, 1.279, 7.71 ] + }, + { + "time": 1.3333, + "value": 7.67, + "curve": [ 1.407, 7.63, 1.491, 0 ] + }, + { "time": 1.5333 } + ] + }, + "tail3": { + "rotate": [ + { + "curve": [ 0.143, -0.06, 0.212, -21.95 ] + }, + { + "time": 0.2333, + "value": -24.08, + "curve": [ 0.258, -26.54, 0.283, -26.63 ] + }, + { + "time": 0.3, + "value": -26.63, + "curve": [ 0.325, -26.63, 0.365, -22.41 ] + }, + { + "time": 0.4, + "value": -17.42, + "curve": [ 0.463, -8.36, 0.658, 0.68 ] + }, + { + "time": 0.7667, + "value": 0.99, + "curve": [ 0.839, 1.2, 0.911, -6.88 ] + }, + { + "time": 0.9333, + "value": -7.95, + "curve": [ 0.999, -11.08, 1.101, -12.03 ] + }, + { + "time": 1.1667, + "value": -11.94, + "curve": [ 1.233, -11.85, 1.317, -8.44 ] + }, + { + "time": 1.3333, + "value": -7.62, + "curve": [ 1.4, -4.31, 1.483, 0 ] + }, + { "time": 1.5333 } + ] + }, + "torso2": { + "rotate": [ + { + "curve": [ 0.076, 2.18, 0.15, 3.87 ] + }, + { + "time": 0.2, + "value": 3.87, + "curve": [ 0.25, 3.87, 0.317, -14.55 ] + }, + { + "time": 0.3667, + "value": -14.55, + "curve": [ 0.433, -14.55, 0.549, -7.29 ] + }, + { + "time": 0.6667, + "value": -0.64, + "curve": [ 0.725, 2.66, 0.883, 10.9 ] + }, + { + "time": 0.9667, + "value": 10.9, + "curve": [ 1.095, 10.9, 1.185, -6.18 ] + }, + { + "time": 1.2667, + "value": -6.04, + "curve": [ 1.38, -5.86, 1.471, -2.78 ] + }, + { "time": 1.5333 } + ], + "translate": [ + { + "curve": [ 0.05, 0, 0.105, 6.29, 0.05, 0, 0.15, -22.92 ] + }, + { + "time": 0.2, + "x": 9.67, + "y": -22.92, + "curve": [ 0.417, 17.38, 0.775, 24.08, 0.392, -22.92, 0.806, 3.87 ] + }, + { + "time": 0.9667, + "x": 24.08, + "y": 4.46, + "curve": [ 1.012, 24.08, 1.071, 23.76, 1.022, 4.66, 1.077, -8.33 ] + }, + { + "time": 1.1333, + "x": 20.46, + "y": -8.46, + "curve": [ 1.221, 16.02, 1.317, 10.46, 1.21, -8.64, 1.352, 2.35 ] + }, + { + "time": 1.4, + "x": 5.93, + "y": 2.27, + "curve": [ 1.451, 3.19, 1.497, 0, 1.468, 2.16, 1.494, 0 ] + }, + { "time": 1.5333 } + ] + }, + "front-arm1": { + "rotate": [ + { + "curve": [ 0.067, 0, 0.2, 51.21 ] + }, + { + "time": 0.2667, + "value": 51.21, + "curve": [ 0.325, 51.21, 0.442, -38.7 ] + }, + { + "time": 0.5, + "value": -38.7, + "curve": [ 0.567, -38.7, 0.706, 24.96 ] + }, + { + "time": 0.7667, + "value": 38.01, + "curve": [ 0.854, 56.01, 0.911, 62.19 ] + }, + { + "time": 1, + "value": 62.19, + "curve": [ 1.084, 62.19, 1.192, -14.43 ] + }, + { + "time": 1.2333, + "value": -14.43, + "curve": [ 1.292, -14.43, 1.408, 0 ] + }, + { "time": 1.4667 } + ] + }, + "neck": { + "rotate": [ + { + "curve": [ 0.053, 0, 0.169, -1.43 ] + }, + { + "time": 0.2, + "value": -2.08, + "curve": [ 0.272, -3.58, 0.329, -4.44 ] + }, + { + "time": 0.4, + "value": -4.48, + "curve": [ 0.473, -4.51, 0.616, -2.46 ] + }, + { + "time": 0.6667, + "value": -1.01, + "curve": [ 0.728, 0.75, 0.881, 5.85 ] + }, + { + "time": 0.9667, + "value": 5.85, + "curve": [ 1.04, 5.86, 1.17, -1.69 ] + }, + { + "time": 1.2667, + "value": -1.79, + "curve": [ 1.317, -1.84, 1.483, 0 ] + }, + { "time": 1.5333 } + ], + "translate": [ + { + "curve": [ 0.042, -1.88, 0.137, -2.9, 0.058, 3.23, 0.133, 7.83 ] + }, + { + "time": 0.2, + "x": -2.93, + "y": 7.91, + "curve": [ 0.262, -2.97, 0.337, 1.35, 0.262, 7.98, 0.333, -17.63 ] + }, + { + "time": 0.4, + "x": 5.6, + "y": -17.63, + "curve": [ 0.501, 12.45, 0.612, 22.88, 0.467, -17.63, 0.619, -5.42 ] + }, + { + "time": 0.6667, + "x": 25.24, + "y": -2.9, + "curve": [ 0.752, 28.94, 0.851, 31.66, 0.775, 2.84, 0.883, 5.36 ] + }, + { + "time": 0.9667, + "x": 31.78, + "y": 5.36, + "curve": [ 1.083, 31.89, 1.209, 25.93, 1.068, 5.52, 1.169, -13.52 ] + }, + { + "time": 1.2667, + "x": 22.31, + "y": -13.24, + "curve": [ 1.338, 17.8, 1.432, 11.29, 1.345, -13.01, 1.467, 0 ] + }, + { "time": 1.5333 } + ] + }, + "back-arm1": { + "rotate": [ + { + "curve": [ 0.033, 0, 0.1, 41.83 ] + }, + { + "time": 0.1333, + "value": 41.83, + "curve": [ 0.233, 41.83, 0.433, -19.76 ] + }, + { + "time": 0.5333, + "value": -19.76, + "curve": [ 0.617, -19.76, 0.813, 7.86 ] + }, + { + "time": 0.8667, + "value": 16.31, + "curve": [ 0.922, 25.06, 0.992, 39.62 ] + }, + { + "time": 1.0333, + "value": 39.62, + "curve": [ 1.067, 39.62, 1.134, 36.98 ] + }, + { + "time": 1.1667, + "value": 21.98, + "curve": [ 1.184, 13.73, 1.242, -14.43 ] + }, + { + "time": 1.2667, + "value": -14.43, + "curve": [ 1.317, -14.43, 1.417, 0 ] + }, + { "time": 1.4667 } + ] + }, + "spineboy-hip": { + "translate": [ + { + "curve": [ 0.033, 0, 0.071, 12.38, 0.033, 0, 0.099, 6.02 ] + }, + { + "time": 0.1333, + "x": 18.47, + "y": 5.61, + "curve": [ 0.183, 23.25, 0.285, 23.09, 0.199, 4.82, 0.308, -11.17 ] + }, + { + "time": 0.3333, + "x": 24.3, + "y": -23.55, + "curve": [ 0.439, 26.95, 0.553, 40.03, 0.394, -53.54, 0.573, -55.54 ] + }, + { + "time": 0.6667, + "x": 51.3, + "y": -55.2, + "curve": [ 0.741, 58.64, 0.905, 68.29, 0.853, -54.53, 0.939, -42.26 ] + }, + { + "time": 1, + "x": 67.68, + "y": -37.87, + "curve": [ 1.071, 67.22, 1.216, 14.12, 1.055, -33.92, 1.171, -3.34 ] + }, + { + "time": 1.2667, + "x": 10.39, + "y": -1.83, + "curve": [ 1.376, 2.35, 1.467, 0, 1.338, -0.69, 1.467, 0 ] + }, + { "time": 1.5333 } + ] + }, + "tail5": { + "rotate": [ + { + "value": 6.72, + "curve": [ 0.018, 6.72, 0.077, 8.48 ] + }, + { + "time": 0.1333, + "value": 5.57, + "curve": [ 0.214, 1.41, 0.249, -14.58 ] + }, + { + "time": 0.3, + "value": -14.58, + "curve": [ 0.341, -14.52, 0.36, -12.87 ] + }, + { + "time": 0.4, + "value": -10.37, + "curve": [ 0.466, -6.22, 0.481, 6.11 ] + }, + { + "time": 0.7667, + "value": 11.47, + "curve": [ 0.831, 12.69, 0.857, 12.88 ] + }, + { + "time": 0.9333, + "value": 12.89, + "curve": [ 1.073, 12.92, 1.137, -5.02 ] + }, + { + "time": 1.1667, + "value": -10.52, + "curve": [ 1.189, -14.81, 1.242, -16.26 ] + }, + { + "time": 1.2667, + "value": -16.26, + "curve": [ 1.292, -16.26, 1.344, -10.57 ] + }, + { + "time": 1.3667, + "value": -7.39, + "curve": [ 1.387, -4.51, 1.468, -0.3 ] + }, + { "time": 1.5333 } + ] + }, + "front-arm2": { + "rotate": [ + { + "curve": [ 0.033, 0, 0.1, 18.42 ] + }, + { + "time": 0.1333, + "value": 18.42, + "curve": [ 0.225, 18.42, 0.408, -58.26 ] + }, + { + "time": 0.5, + "value": -58.26, + "curve": [ 0.567, -58.26, 0.702, -38.97 ] + }, + { + "time": 0.7667, + "value": -16.61, + "curve": [ 0.821, 2.07, 0.967, 12.73 ] + }, + { + "time": 1.0667, + "value": 13.08, + "curve": [ 1.108, 13.23, 1.192, -56.15 ] + }, + { + "time": 1.2333, + "value": -56.15, + "curve": [ 1.292, -56.15, 1.356, -0.71 ] + }, + { "time": 1.4667 } + ] + }, + "gun": { + "rotate": [ + {}, + { "time": 0.1333, "value": 15.28 }, + { "time": 0.4, "value": -53.41 }, + { "time": 0.7667, "value": -63.35 }, + { "time": 1.0667, "value": -29.92 }, + { "time": 1.3, "value": 7.24 }, + { "time": 1.4, "value": -3.7 }, + { "time": 1.4667 } + ] + }, + "head": { + "rotate": [ + { + "curve": [ 0.035, -0.03, 0.069, 8.8 ] + }, + { + "time": 0.1, + "value": 9.41, + "curve": [ 0.141, 10.24, 0.189, 4.37 ] + }, + { + "time": 0.2, + "value": 3.23, + "curve": [ 0.224, 0.67, 0.369, -14.75 ] + }, + { + "time": 0.4, + "value": -19.24, + "curve": [ 0.441, -25.21, 0.498, -33.84 ] + }, + { + "time": 0.5333, + "value": -33.74, + "curve": [ 0.581, -33.61, 0.614, -28.7 ] + }, + { + "time": 0.6667, + "value": -28.63, + "curve": [ 0.73, -28.55, 0.809, -29.54 ] + }, + { + "time": 0.9, + "value": -29.94, + "curve": [ 0.948, -30.15, 0.967, -4.31 ] + }, + { + "time": 1, + "value": -3.74, + "curve": [ 1.032, -3.18, 1.04, -9.87 ] + }, + { + "time": 1.0667, + "value": -9.83, + "curve": [ 1.094, -9.79, 1.157, 0.42 ] + }, + { + "time": 1.2, + "value": 0.36, + "curve": [ 1.237, 0.31, 1.249, -5.16 ] + }, + { + "time": 1.2667, + "value": -5.16, + "curve": [ 1.292, -5.16, 1.351, 3.76 ] + }, + { + "time": 1.4, + "value": 3.9, + "curve": [ 1.44, 4.01, 1.509, 0 ] + }, + { "time": 1.5333 } + ], + "translate": [ + { + "curve": [ 0.05, 0, 0.15, 1.7, 0.05, 0, 0.15, -35.74 ] + }, + { + "time": 0.2, + "x": 2.52, + "y": -35.74, + "curve": [ 0.264, 3.57, 0.342, 10.41, 0.258, -35.74, 0.342, -18.19 ] + }, + { + "time": 0.4, + "x": 10.41, + "y": -18.19, + "curve": [ 0.458, 10.41, 0.608, 26.32, 0.458, -18.19, 0.608, -20.79 ] + }, + { + "time": 0.6667, + "x": 26.32, + "y": -20.79, + "curve": [ 0.75, 26.32, 0.917, 19.04, 0.75, -20.79, 0.917, 1.7 ] + }, + { "time": 1, "x": 19.04, "y": 1.7 } + ], + "scale": [ + { + "curve": [ 0.05, 1, 0.15, 0.985, 0.05, 1, 0.15, 1.049 ] + }, + { + "time": 0.2, + "x": 0.985, + "y": 1.049, + "curve": [ 0.233, 0.985, 0.3, 1, 0.233, 1.049, 0.3, 1 ] + }, + { + "time": 0.3333, + "curve": [ 0.375, 1, 0.458, 1.066, 0.375, 1, 0.458, 0.945 ] + }, + { + "time": 0.5, + "x": 1.066, + "y": 0.945, + "curve": [ 0.603, 1.066, 0.7, 0.987, 0.639, 0.945, 0.817, 1.049 ] + }, + { + "time": 0.8667, + "x": 0.985, + "y": 1.049, + "curve": [ 0.878, 0.985, 0.958, 1.066, 0.917, 1.049, 0.958, 0.945 ] + }, + { + "time": 1, + "x": 1.066, + "y": 0.945, + "curve": [ 1.045, 1.065, 1.061, 0.986, 1.05, 0.944, 1.058, 1.048 ] + }, + { + "time": 1.1, + "x": 0.985, + "y": 1.049, + "curve": [ 1.189, 0.983, 1.363, 1, 1.119, 1.048, 1.363, 1 ] + }, + { "time": 1.5333 } + ] + }, + "back-arm2": { + "rotate": [ + { + "curve": [ 0.033, 0, 0.124, -25.32 ] + }, + { + "time": 0.1333, + "value": -28.29, + "curve": [ 0.178, -42.54, 0.408, -75.93 ] + }, + { + "time": 0.5, + "value": -75.93, + "curve": [ 0.567, -75.93, 0.722, -61.84 ] + }, + { + "time": 0.7667, + "value": -57.21, + "curve": [ 0.834, -50.18, 0.992, -38.17 ] + }, + { + "time": 1.0667, + "value": -38.17, + "curve": [ 1.108, -38.17, 1.177, -49.68 ] + }, + { + "time": 1.2667, + "value": -49.36, + "curve": [ 1.349, -49.07, 1.475, 0 ] + }, + { "time": 1.5333 } + ] + }, + "spineboy-torso": { + "rotate": [ + { + "value": -4.78, + "curve": [ 0.033, -4.78, 0.088, -8.83 ] + }, + { + "time": 0.1333, + "value": -13.36, + "curve": [ 0.179, -17.9, 0.242, -26.07 ] + }, + { + "time": 0.2667, + "value": -31.39, + "curve": [ 0.31, -40.56, 0.382, -52.73 ] + }, + { + "time": 0.4667, + "value": -52.79, + "curve": [ 0.574, -52.87, 0.615, -44.38 ] + }, + { + "time": 0.6667, + "value": -36.05, + "curve": [ 0.71, -29.14, 0.917, 9.18 ] + }, + { + "time": 1, + "value": 9.18, + "curve": [ 1.058, 9.18, 1.163, -29.03 ] + }, + { + "time": 1.2333, + "value": -29.37, + "curve": [ 1.275, -29.37, 1.377, -9.74 ] + }, + { + "time": 1.4, + "value": -7.98, + "curve": [ 1.443, -4.61, 1.517, -1.69 ] + }, + { "time": 1.5333, "value": -1.69 } + ] + }, + "tail7": { + "rotate": [ + { + "value": 6.72, + "curve": [ 0.049, 6.72, 0.193, 20.19 ] + }, + { + "time": 0.2333, + "value": 20.19, + "curve": [ 0.25, 20.19, 0.325, -13.06 ] + }, + { + "time": 0.4, + "value": -13.06, + "curve": [ 0.433, -13.06, 0.484, -9.84 ] + }, + { + "time": 0.5333, + "value": -5.93, + "curve": [ 0.586, -1.74, 0.822, 16.83 ] + }, + { + "time": 0.9333, + "value": 16.85, + "curve": [ 0.992, 16.86, 1.035, 12.25 ] + }, + { + "time": 1.0667, + "value": 7.16, + "curve": [ 1.129, -2.72, 1.166, -16.97 ] + }, + { + "time": 1.2, + "value": -16.51, + "curve": [ 1.273, -16.51, 1.319, -13.06 ] + }, + { + "time": 1.3667, + "value": -8.95, + "curve": [ 1.421, -4.2, 1.508, 0 ] + }, + { "time": 1.5333 } + ] + }, + "front-foot2": { + "rotate": [ + { + "time": 0.4, + "curve": [ 0.403, -10.05, 0.416, -43.77 ] + }, + { + "time": 0.4333, + "value": -53.55, + "curve": [ 0.469, -73.71, 0.522, -67.11 ] + }, + { + "time": 0.5333, + "value": -67.11, + "curve": [ 0.592, -68.53, 0.613, 20.61 ] + }, + { + "time": 0.9333, + "value": 24.85, + "curve": [ 0.958, 24.85, 0.989, 20.15 ] + }, + { "time": 1 } + ] + }, + "front-hand": { + "rotate": [ + { + "curve": [ 0.076, 0, 0.185, -8.93 ] + }, + { + "time": 0.3, + "value": -8.94, + "curve": [ 0.333, -8.94, 0.372, 38.13 ] + }, + { + "time": 0.4333, + "value": 38.11, + "curve": [ 0.516, 38.08, 0.653, -22.01 ] + }, + { + "time": 0.6667, + "value": -27.75, + "curve": [ 0.693, -38.81, 0.75, -52.48 ] + }, + { + "time": 0.8, + "value": -52.38, + "curve": [ 0.896, -52.18, 1.052, 10.93 ] + }, + { + "time": 1.0667, + "value": 16.08, + "curve": [ 1.088, 23.55, 1.152, 45.76 ] + }, + { + "time": 1.2, + "value": 46.03, + "curve": [ 1.252, 46.32, 1.27, -12.74 ] + }, + { + "time": 1.3, + "value": -12.68, + "curve": [ 1.373, -12.53, 1.424, 0 ] + }, + { "time": 1.4667 } + ] + }, + "jaw": { + "rotate": [ + { "value": 0.83 }, + { "time": 0.1333, "value": 6.62 }, + { "time": 0.3333, "value": -3.98 }, + { + "time": 0.4667, + "value": -14.79, + "curve": [ 0.731, -14.76, 0.792, 3.22 ] + }, + { "time": 0.9, "value": 3.22 }, + { "time": 0.9333, "value": -3.14 }, + { "time": 1.0667, "value": 12.08 }, + { "time": 1.2333, "value": -8.41 }, + { "time": 1.5333, "value": 0.83 } + ], + "translate": [ + { + "x": -10.21, + "y": 13.96, + "curve": [ 0.041, -10.21, 0.086, -23.53, 0.041, 13.96, 0.086, -6.69 ] + }, + { + "time": 0.1333, + "x": -23.53, + "y": -6.69, + "curve": [ 0.233, -23.53, 0.347, -43.29, 0.233, -6.69, 0.347, 2.9 ] + }, + { + "time": 0.4667, + "x": -42.09, + "y": 4.75, + "curve": [ 0.607, -40.69, 0.757, -33.92, 0.607, 6.92, 0.757, -13.55 ] + }, + { + "time": 0.9, + "x": -28.39, + "y": -12.1, + "curve": [ 1.016, -24, 1.13, -30.31, 1.016, -10.94, 1.13, 3.19 ] + }, + { + "time": 1.2333, + "x": -26.95, + "y": 9.17, + "curve": [ 1.347, -23.32, 1.449, -10.21, 1.347, 15.64, 1.449, 13.96 ] + }, + { "time": 1.5333, "x": -10.21, "y": 13.96 } + ] + }, + "back-foot2": { + "rotate": [ + { + "time": 0.4333, + "curve": [ 0.442, 0, 0.454, -46.1 ] + }, + { + "time": 0.4667, + "value": -60.96, + "curve": [ 0.475, -70.47, 0.517, -76.49 ] + }, + { + "time": 0.5333, + "value": -76.49, + "curve": [ 0.567, -76.49, 0.643, -68.96 ] + }, + { + "time": 0.6667, + "value": -63.79, + "curve": [ 0.712, -53.71, 0.866, -1.7 ] + }, + { + "time": 0.9333, + "value": 16.34, + "curve": [ 0.944, 19.2, 0.983, 24.85 ] + }, + { + "time": 1, + "value": 24.85, + "curve": [ 1.017, 24.85, 1.067, 11.07 ] + }, + { "time": 1.0667 } + ] + }, + "back-hand": { + "rotate": [ + { + "curve": [ 0.046, 0, 0.017, 36.31 ] + }, + { + "time": 0.1667, + "value": 36.26, + "curve": [ 0.3, 36.22, 0.535, 24.33 ] + }, + { + "time": 0.6667, + "value": 24.22, + "curve": [ 0.769, 24.27, 0.907, 26.83 ] + }, + { + "time": 0.9667, + "value": 31.87, + "curve": [ 1.024, 36.68, 1.148, 55.22 ] + }, + { + "time": 1.2, + "value": 55.2, + "curve": [ 1.296, 55.16, 1.469, 0 ] + }, + { "time": 1.5333 } + ] + }, + "tail9": { + "rotate": [ + { + "value": 6.72, + "curve": [ 0.04, 6.72, 0.185, 21.12 ] + }, + { + "time": 0.2333, + "value": 21.25, + "curve": [ 0.27, 21.35, 0.284, 17.74 ] + }, + { + "time": 0.3, + "value": 14.56, + "curve": [ 0.322, 10.26, 0.375, -13.06 ] + }, + { + "time": 0.4, + "value": -13.06, + "curve": [ 0.433, -13.06, 0.51, -11.64 ] + }, + { + "time": 0.5333, + "value": -7.88, + "curve": [ 0.579, -0.37, 0.741, 21.14 ] + }, + { + "time": 0.7667, + "value": 23.25, + "curve": [ 0.819, 27.63, 0.865, 31.03 ] + }, + { + "time": 0.9333, + "value": 31.09, + "curve": [ 0.975, 31.12, 1.034, 24.27 ] + }, + { + "time": 1.0667, + "value": 16.48, + "curve": [ 1.121, 3.62, 1.146, -4.68 ] + }, + { + "time": 1.1667, + "value": -10.43, + "curve": [ 1.185, -15.54, 1.242, -22.43 ] + }, + { + "time": 1.2667, + "value": -22.43, + "curve": [ 1.292, -22.43, 1.338, -20.95 ] + }, + { + "time": 1.3667, + "value": -17.59, + "curve": [ 1.412, -12.34, 1.508, 0 ] + }, + { "time": 1.5333 } + ] + }, + "front-foot3": { + "rotate": [ + { + "time": 0.4, + "curve": [ 0.415, 0.16, 0.423, -3.39 ] + }, + { + "time": 0.4333, + "value": -8.31, + "curve": [ 0.438, -10.62, 0.486, -19.18 ] + }, + { + "time": 0.5333, + "value": -19.17, + "curve": [ 0.581, -19.16, 0.637, -15.86 ] + }, + { + "time": 0.6667, + "value": -13.75, + "curve": [ 0.743, -8.29, 0.858, 10.78 ] + }, + { + "time": 0.9333, + "value": 10.78, + "curve": [ 0.958, 10.78, 1.022, 10.58 ] + }, + { "time": 1.0333, "value": 0.34 } + ] + }, + "head2": { + "rotate": [ + { + "value": 18.08, + "curve": [ 0.033, 18.08, 0.108, 24.73 ] + }, + { + "time": 0.1333, + "value": 25.81, + "curve": [ 0.206, 28.87, 0.258, 29.66 ] + }, + { + "time": 0.3, + "value": 29.66, + "curve": [ 0.325, 29.66, 0.387, 27.38 ] + }, + { + "time": 0.4, + "value": 26.31, + "curve": [ 0.488, 19.31, 0.606, 9.53 ] + }, + { + "time": 0.6333, + "value": 7.4, + "curve": [ 0.681, 3.72, 0.761, -1.99 ] + }, + { + "time": 0.8333, + "value": -1.98, + "curve": [ 0.888, -1.97, 0.944, 1.29 ] + }, + { + "time": 0.9667, + "value": 3.21, + "curve": [ 1.005, 6.46, 1.019, 15.11 ] + }, + { + "time": 1.0667, + "value": 15.13, + "curve": [ 1.125, 15.15, 1.204, 13.96 ] + }, + { + "time": 1.2333, + "value": 12.87, + "curve": [ 1.271, 11.48, 1.275, 9.98 ] + }, + { + "time": 1.3333, + "value": 7.77, + "curve": [ 1.394, 5.46, 1.393, 5.9 ] + }, + { + "time": 1.4333, + "value": 5.86, + "curve": [ 1.481, 5.81, 1.517, 8.93 ] + }, + { "time": 1.5333, "value": 8.93 } + ], + "scale": [ + { + "time": 0.9, + "curve": [ 0.928, 1, 0.963, 1.056, 0.928, 1, 0.963, 0.978 ] + }, + { + "time": 1, + "x": 1.056, + "y": 0.978, + "curve": [ 1.052, 1.056, 1.11, 0.951, 1.052, 0.978, 1.11, 0.997 ] + }, + { + "time": 1.1667, + "x": 0.942, + "y": 1.001, + "curve": [ 1.267, 0.926, 1.367, 1, 1.267, 1.008, 1.367, 1 ] + }, + { "time": 1.4333 } + ] + }, + "neck2": { + "rotate": [ + { + "value": -0.77, + "curve": [ 0.033, -0.77, 0.1, 15.96 ] + }, + { + "time": 0.1333, + "value": 15.96, + "curve": [ 0.175, 15.96, 0.269, 11.97 ] + }, + { + "time": 0.3, + "value": 10.07, + "curve": [ 0.34, 7.56, 0.375, 4.11 ] + }, + { + "time": 0.4, + "value": 4.05, + "curve": [ 0.468, 3.91, 0.575, 8.43 ] + }, + { + "time": 0.6333, + "value": 8.48, + "curve": [ 0.73, 8.58, 0.883, -2.77 ] + }, + { + "time": 0.9667, + "value": -2.77, + "curve": [ 0.992, -2.77, 1.047, 3.79 ] + }, + { + "time": 1.0667, + "value": 5.45, + "curve": [ 1.094, 7.73, 1.192, 10.76 ] + }, + { + "time": 1.2333, + "value": 10.76, + "curve": [ 1.258, 10.76, 1.316, 7.65 ] + }, + { + "time": 1.3667, + "value": 7.6, + "curve": [ 1.417, 7.56, 1.5, 12.24 ] + }, + { "time": 1.5333, "value": 12.24 } + ] + }, + "spineboy-front-arm-target": { + "translate": [ + { "x": -0.43, "y": -9.01 }, + { "time": 0.5 }, + { "time": 0.9667, "x": -6.56, "y": 0.7 }, + { "time": 1.0667, "x": 12.25, "y": -29.51 } + ] + }, + "front-hand2": { + "rotate": [ + {}, + { "time": 0.1333, "value": -22.27 }, + { "time": 0.2667, "value": -16.91 }, + { "time": 0.4333, "value": -2.22 }, + { "time": 0.6667, "value": -6.95 } + ] + }, + "stirrup": { + "rotate": [ + {}, + { "time": 0.3, "value": -13.39, "curve": "stepped" }, + { "time": 0.9667, "value": -13.39 }, + { "time": 1.3333 } + ] + }, + "spineboy-front-foot-target": { + "translate": [ + { "time": 0.2667 }, + { "time": 0.4333, "x": 19.72, "y": -2.18 }, + { "time": 0.5333, "x": 19.39, "y": -3.07 }, + { "time": 0.6667, "x": -3.87, "y": 6.01 }, + { "time": 1.0667, "x": -10.92, "y": 4.87 }, + { "time": 1.4667 } + ] + }, + "tail2": { + "rotate": [ + { + "curve": [ 0.031, 0, 0.085, -0.3 ] + }, + { + "time": 0.1333, + "value": -0.88, + "curve": [ 0.22, -1.88, 0.255, -7.43 ] + }, + { + "time": 0.3, + "value": -7.43, + "curve": [ 0.325, -7.43, 0.366, -7.05 ] + }, + { + "time": 0.4, + "value": -5.89, + "curve": [ 0.434, -4.73, 0.506, 1.38 ] + }, + { + "time": 0.5333, + "value": 1.75, + "curve": [ 0.582, 2.41, 0.637, 3.11 ] + }, + { + "time": 0.7333, + "value": 3.14, + "curve": [ 0.814, 3.16, 0.903, 0.42 ] + }, + { + "time": 0.9333, + "value": -0.83, + "curve": [ 0.959, -1.87, 1.106, -7.13 ] + }, + { + "time": 1.1667, + "value": -7.07, + "curve": [ 1.206, -7.03, 1.308, 4.72 ] + }, + { + "time": 1.4, + "value": 4.89, + "curve": [ 1.452, 4.98, 1.501, -6.46 ] + }, + { "time": 1.5333, "value": -6.46 } + ] + }, + "tail4": { + "rotate": [ + { + "value": 6.72, + "curve": [ 0.018, 6.72, 0.072, 8.45 ] + }, + { + "time": 0.1333, + "value": 8.08, + "curve": [ 0.257, 7.33, 0.161, -3.27 ] + }, + { + "time": 0.3, + "value": -3.31, + "curve": [ 0.455, -3.35, 0.599, 7.47 ] + }, + { + "time": 0.7667, + "value": 11.95, + "curve": [ 0.804, 12.94, 0.861, 14.26 ] + }, + { + "time": 0.9333, + "value": 14.35, + "curve": [ 0.963, 14.39, 0.996, 14.41 ] + }, + { + "time": 1.0333, + "value": 6.04, + "curve": [ 1.072, -2.56, 1.116, -11.42 ] + }, + { + "time": 1.1667, + "value": -11.4, + "curve": [ 1.238, -11.4, 1.318, -6.95 ] + }, + { + "time": 1.3333, + "value": -5.65, + "curve": [ 1.364, -3.08, 1.508, 3.65 ] + }, + { "time": 1.5333, "value": 3.65 } + ] + }, + "tail6": { + "rotate": [ + { + "value": 6.72, + "curve": [ 0.017, 6.72, 0.079, 14.92 ] + }, + { + "time": 0.1333, + "value": 14.56, + "curve": [ 0.186, 14.23, 0.228, 8.64 ] + }, + { + "time": 0.2333, + "value": 6.59, + "curve": [ 0.245, 1.79, 0.303, -11.91 ] + }, + { + "time": 0.4, + "value": -11.91, + "curve": [ 0.474, -11.91, 0.702, 8.29 ] + }, + { + "time": 0.7667, + "value": 12.95, + "curve": [ 0.803, 15.57, 0.845, 18.42 ] + }, + { + "time": 0.9333, + "value": 18.64, + "curve": [ 1.043, 18.9, 1.08, -11.4 ] + }, + { + "time": 1.1667, + "value": -11.61, + "curve": [ 1.236, -11.44, 1.29, -10.99 ] + }, + { + "time": 1.3333, + "value": -8.88, + "curve": [ 1.423, -4.58, 1.472, 2.97 ] + }, + { "time": 1.5333, "value": 3.69 } + ] + }, + "tail8": { + "rotate": [ + { + "value": 6.72, + "curve": [ 0.018, 6.72, 0.179, 17.14 ] + }, + { + "time": 0.2333, + "value": 17.13, + "curve": [ 0.257, 17.2, 0.288, 11.35 ] + }, + { + "time": 0.3, + "value": 9.01, + "curve": [ 0.318, 5.47, 0.375, -14.47 ] + }, + { + "time": 0.4, + "value": -14.47, + "curve": [ 0.433, -14.47, 0.492, -12.37 ] + }, + { + "time": 0.5333, + "value": -9.76, + "curve": [ 0.575, -6.73, 0.732, 7.06 ] + }, + { + "time": 0.7667, + "value": 9.18, + "curve": [ 0.809, 11.79, 0.85, 14.28 ] + }, + { + "time": 0.9333, + "value": 14.4, + "curve": [ 0.98, 14.46, 1.027, 12.95 ] + }, + { + "time": 1.0667, + "value": 6.47, + "curve": [ 1.112, -0.74, 1.148, -13.08 ] + }, + { + "time": 1.1667, + "value": -14.91, + "curve": [ 1.215, -19.6, 1.259, -23.09 ] + }, + { + "time": 1.3, + "value": -23.17, + "curve": [ 1.376, -23.24, 1.508, -11.89 ] + }, + { "time": 1.5333, "value": -11.89 } + ] + }, + "tail10": { + "rotate": [ + { + "value": 6.72, + "curve": [ 0.038, 6.72, 0.199, 10.82 ] + }, + { + "time": 0.2333, + "value": 10.93, + "curve": [ 0.257, 11, 0.276, 11.07 ] + }, + { + "time": 0.3, + "value": 8.71, + "curve": [ 0.335, 5.33, 0.37, -8.93 ] + }, + { + "time": 0.4, + "value": -12.6, + "curve": [ 0.425, -15.68, 0.5, -18.92 ] + }, + { + "time": 0.5333, + "value": -18.92, + "curve": [ 0.549, -18.92, 0.651, 2.65 ] + }, + { + "time": 0.7, + "value": 9.59, + "curve": [ 0.725, 13.09, 0.791, 16.42 ] + }, + { + "time": 0.8333, + "value": 16.82, + "curve": [ 0.956, 17.98, 1.051, 10.26 ] + }, + { + "time": 1.0667, + "value": 7.38, + "curve": [ 1.098, 1.71, 1.13, -23.72 ] + }, + { + "time": 1.1667, + "value": -26.24, + "curve": [ 1.199, -28.46, 1.242, -29.22 ] + }, + { + "time": 1.2667, + "value": -29.22, + "curve": [ 1.292, -29.22, 1.353, -18.67 ] + }, + { + "time": 1.3667, + "value": -17.84, + "curve": [ 1.408, -15.28, 1.492, -11.19 ] + }, + { "time": 1.5333, "value": -11.19 } + ] + }, + "saddle-strap-back": { + "rotate": [ + { + "value": -13.92, + "curve": [ 0.119, -14.07, 0.185, -17.29 ] + }, + { + "time": 0.2667, + "value": -17.26, + "curve": [ 0.326, -17.24, 0.467, 1.36 ] + }, + { + "time": 0.5333, + "value": 1.36, + "curve": [ 0.583, 1.36, 0.686, 0.58 ] + }, + { + "time": 0.7333, + "value": -2.1, + "curve": [ 0.773, -4.34, 0.883, -27.93 ] + }, + { + "time": 0.9333, + "value": -27.93, + "curve": [ 1, -27.93, 1.128, -14.6 ] + }, + { + "time": 1.2, + "value": -13.79, + "curve": [ 1.305, -12.61, 1.352, -12.27 ] + }, + { + "time": 1.4333, + "value": -12.07, + "curve": [ 1.48, -11.96, 1.508, -14.43 ] + }, + { "time": 1.5333, "value": -14.43 } + ] + }, + "back-leg1": { + "translate": [ + {}, + { "time": 0.4667, "x": -12.67, "y": -22.45 }, + { "time": 0.9 } + ] + }, + "bone3": { + "rotate": [ + { + "curve": [ 0.025, 0, 0.075, -6.29 ] + }, + { + "time": 0.1, + "value": -6.29, + "curve": [ 0.142, -6.29, 0.225, 14.19 ] + }, + { + "time": 0.2667, + "value": 14.19, + "curve": [ 0.283, 14.19, 0.317, 5.37 ] + }, + { + "time": 0.3333, + "value": 5.37, + "curve": [ 0.375, 5.37, 0.458, 17.56 ] + }, + { + "time": 0.5, + "value": 17.56, + "curve": [ 0.567, 17.56, 0.745, 7.05 ] + }, + { + "time": 0.7667, + "value": 5.59, + "curve": [ 0.792, 3.95, 0.944, -7.5 ] + }, + { + "time": 0.9667, + "value": -8.54, + "curve": [ 0.99, -9.6, 1.017, -10.01 ] + }, + { + "time": 1.0333, + "value": -10.01, + "curve": [ 1.067, -10.01, 1.152, 0.34 ] + }, + { + "time": 1.1667, + "value": 1.84, + "curve": [ 1.172, 2.4, 1.217, 5.06 ] + }, + { + "time": 1.2667, + "value": 5.88, + "curve": [ 1.28, 6.11, 1.317, 6.21 ] + }, + { + "time": 1.3333, + "value": 6.21, + "curve": [ 1.35, 6.21, 1.395, 1.51 ] + }, + { + "time": 1.4, + "value": 1.14, + "curve": [ 1.427, -0.79, 1.475, -2.77 ] + }, + { "time": 1.5, "value": -2.77 } + ] + }, + "bone4": { + "rotate": [ + { + "curve": [ 0.025, 0, 0.075, -6.29 ] + }, + { + "time": 0.1, + "value": -6.29, + "curve": [ 0.142, -6.29, 0.225, 14.19 ] + }, + { + "time": 0.2667, + "value": 14.19, + "curve": [ 0.283, 14.19, 0.324, 11.19 ] + }, + { + "time": 0.3333, + "value": 10.52, + "curve": [ 0.388, 6.71, 0.471, 1.06 ] + }, + { + "time": 0.5, + "value": -0.4, + "curve": [ 0.573, -4, 0.7, -7.16 ] + }, + { + "time": 0.7667, + "value": -7.16, + "curve": [ 0.817, -7.16, 0.917, -7.61 ] + }, + { + "time": 0.9667, + "value": -7.61, + "curve": [ 0.983, -7.61, 1.023, -5.42 ] + }, + { + "time": 1.0333, + "value": -4.76, + "curve": [ 1.088, -1.16, 1.133, 13.06 ] + }, + { + "time": 1.1667, + "value": 13.06, + "curve": [ 1.192, 13.06, 1.261, 3.4 ] + }, + { + "time": 1.2667, + "value": 2.21, + "curve": [ 1.285, -1.5, 1.317, -12.63 ] + }, + { + "time": 1.3333, + "value": -12.63, + "curve": [ 1.35, -12.63, 1.383, 16.65 ] + }, + { + "time": 1.4, + "value": 16.65, + "curve": [ 1.425, 16.65, 1.475, -2.77 ] + }, + { "time": 1.5, "value": -2.77 } + ] + }, + "bone5": { + "rotate": [ + { + "curve": [ 0.025, 0, 0.075, -6.29 ] + }, + { + "time": 0.1, + "value": -6.29, + "curve": [ 0.142, -6.29, 0.225, 14.19 ] + }, + { + "time": 0.2667, + "value": 14.19, + "curve": [ 0.283, 14.19, 0.321, 9.81 ] + }, + { + "time": 0.3333, + "value": 9.24, + "curve": [ 0.398, 6.26, 0.459, 4.3 ] + }, + { + "time": 0.5, + "value": 3.82, + "curve": [ 0.575, 2.94, 0.7, 1.96 ] + }, + { + "time": 0.7667, + "value": 1.96, + "curve": [ 0.817, 1.96, 0.91, -3.96 ] + }, + { + "time": 0.9667, + "value": -7.61, + "curve": [ 0.977, -8.28, 1.017, -10.01 ] + }, + { + "time": 1.0333, + "value": -10.01, + "curve": [ 1.067, -10.01, 1.133, 6.48 ] + }, + { + "time": 1.1667, + "value": 6.48, + "curve": [ 1.192, 6.48, 1.254, 3.31 ] + }, + { + "time": 1.2667, + "value": 2.21, + "curve": [ 1.294, -0.11, 1.317, -11.57 ] + }, + { + "time": 1.3333, + "value": -11.57, + "curve": [ 1.358, -11.57, 1.408, 5.16 ] + }, + { + "time": 1.4333, + "value": 5.16, + "curve": [ 1.458, 5.16, 1.508, -2.77 ] + }, + { "time": 1.5333, "value": -2.77 } + ] + }, + "bone": { + "rotate": [ + { + "curve": [ 0.025, 0, 0.075, -6.29 ] + }, + { + "time": 0.1, + "value": -6.29, + "curve": [ 0.142, -6.29, 0.225, 14.19 ] + }, + { + "time": 0.2667, + "value": 14.19, + "curve": [ 0.283, 14.19, 0.325, 10.28 ] + }, + { + "time": 0.3333, + "value": 9.74, + "curve": [ 0.388, 6.32, 0.46, 4.23 ] + }, + { + "time": 0.5, + "value": 3.82, + "curve": [ 0.562, 3.19, 0.7, 2.05 ] + }, + { + "time": 0.7667, + "value": 1.96, + "curve": [ 0.825, 1.88, 0.917, 4.62 ] + }, + { + "time": 0.9667, + "value": 4.62, + "curve": [ 0.983, 4.62, 1.023, 1.2 ] + }, + { + "time": 1.0333, + "value": 0.71, + "curve": [ 1.081, -1.59, 1.133, -2.71 ] + }, + { + "time": 1.1667, + "value": -2.71, + "curve": [ 1.192, -2.71, 1.246, -1.91 ] + }, + { + "time": 1.2667, + "value": -0.49, + "curve": [ 1.294, 1.34, 1.298, 3.19 ] + }, + { + "time": 1.3333, + "value": 5.49, + "curve": [ 1.342, 6.03, 1.383, 7.29 ] + }, + { + "time": 1.4, + "value": 7.29, + "curve": [ 1.425, 7.29, 1.475, -2.77 ] + }, + { "time": 1.5, "value": -2.77 } + ] + }, + "bone2": { + "rotate": [ + { + "curve": [ 0.025, 0, 0.075, -6.29 ] + }, + { + "time": 0.1, + "value": -6.29, + "curve": [ 0.142, -6.29, 0.225, 14.19 ] + }, + { + "time": 0.2667, + "value": 14.19, + "curve": [ 0.283, 14.19, 0.324, 10.89 ] + }, + { + "time": 0.3333, + "value": 10.09, + "curve": [ 0.392, 5.25, 0.471, -0.35 ] + }, + { + "time": 0.5, + "value": -2.13, + "curve": [ 0.562, -5.98, 0.7, -10.52 ] + }, + { + "time": 0.7667, + "value": -10.52, + "curve": [ 0.817, -10.52, 0.929, -8.78 ] + }, + { + "time": 0.9667, + "value": -6.83, + "curve": [ 0.998, -5.22, 1.027, -2.36 ] + }, + { + "time": 1.0333, + "value": -1.45, + "curve": [ 1.073, 4.26, 1.133, 18.91 ] + }, + { + "time": 1.1667, + "value": 18.91, + "curve": [ 1.192, 18.91, 1.26, 3.63 ] + }, + { + "time": 1.2667, + "value": 2.21, + "curve": [ 1.283, -1.14, 1.317, -7.27 ] + }, + { + "time": 1.3333, + "value": -7.27, + "curve": [ 1.35, -7.27, 1.383, 10.01 ] + }, + { + "time": 1.4, + "value": 10.01, + "curve": [ 1.425, 10.01, 1.475, -2.77 ] + }, + { "time": 1.5, "value": -2.77 } + ] + }, + "head-control": { + "translate": [ + { + "curve": [ 0.102, 0, 0.227, -26.08, 0.05, 0, 0.262, 97.74 ] + }, + { + "time": 0.4333, + "x": -26.1, + "y": 97.3, + "curve": [ 0.663, -26.12, 0.832, -16.98, 0.613, 96.83, 0.892, 22.95 ] + }, + { + "time": 0.9333, + "x": -14.02, + "y": 11.08, + "curve": [ 0.986, -12.5, 1.035, -10.47, 0.957, 4.24, 1.058, -31.97 ] + }, + { + "time": 1.1, + "x": -8.27, + "y": -31.97, + "curve": [ 1.163, -6.13, 1.265, -3.68, 1.158, -31.97, 1.275, 24.45 ] + }, + { + "time": 1.3333, + "x": -2.27, + "y": 24.45, + "curve": [ 1.447, 0.09, 1.483, 0, 1.383, 24.45, 1.483, 0 ] + }, + { "time": 1.5333 } + ] + }, + "horn-front": { + "translate": [ + { + "curve": [ 0.108, 0, 0.325, -6.39, 0.108, 0, 0.325, 23.95 ] + }, + { + "time": 0.4333, + "x": -6.39, + "y": 23.95, + "curve": [ 0.558, -6.39, 0.808, 3.02, 0.558, 23.95, 0.808, -1.11 ] + }, + { + "time": 0.9333, + "x": 3.02, + "y": -1.11, + "curve": [ 0.975, 3.02, 1.058, 4.31, 0.975, -1.11, 1.058, -10.04 ] + }, + { + "time": 1.1, + "x": 4.31, + "y": -10.04, + "curve": [ 1.158, 4.31, 1.275, 3.72, 1.158, -10.04, 1.275, 6.17 ] + }, + { + "time": 1.3333, + "x": 3.72, + "y": 6.17, + "curve": [ 1.383, 3.72, 1.483, 0, 1.383, 6.17, 1.483, 0 ] + }, + { "time": 1.5333 } + ] + }, + "horn-back": { + "translate": [ + { + "curve": [ 0.108, 0, 0.325, -3.27, 0.108, 0, 0.325, -12.12 ] + }, + { + "time": 0.4333, + "x": -3.27, + "y": -12.12, + "curve": [ 0.558, -3.27, 0.808, 0, 0.558, -12.12, 0.808, 0 ] + }, + { + "time": 0.9333, + "curve": [ 0.975, 0, 1.058, -2.83, 0.975, 0, 1.058, 17.37 ] + }, + { + "time": 1.1, + "x": -2.83, + "y": 17.37, + "curve": [ 1.158, -2.83, 1.275, 0.49, 1.158, 17.37, 1.275, 6.93 ] + }, + { + "time": 1.3333, + "x": 0.49, + "y": 6.93, + "curve": [ 1.383, 0.49, 1.483, 0, 1.383, 6.93, 1.483, 0 ] + }, + { "time": 1.5333 } + ] + }, + "torso1": { + "rotate": [ + { + "curve": [ 0.118, 0.13, 0.135, 1.55 ] + }, + { + "time": 0.2, + "value": 3.04, + "curve": [ 0.243, 4.04, 0.325, 5.4 ] + }, + { + "time": 0.3667, + "value": 5.4, + "curve": [ 0.467, 5.4, 0.567, -16.54 ] + }, + { + "time": 0.6667, + "value": -16.54, + "curve": [ 0.804, -16.54, 0.878, 9.25 ] + }, + { + "time": 0.9667, + "value": 9.37, + "curve": [ 1.053, 9.48, 1.131, -2.06 ] + }, + { + "time": 1.2, + "value": -1.95, + "curve": [ 1.292, -1.8, 1.304, 2.68 ] + }, + { + "time": 1.3667, + "value": 2.86, + "curve": [ 1.429, 3.03, 1.472, -0.13 ] + }, + { "time": 1.5333 } + ] + }, + "saddle": { + "translate": [ + { "x": 19.28, "y": -10.71 } + ] + }, + "tongue1": { + "rotate": [ + { + "curve": [ 0.1, 0, 0.3, 9.37 ] + }, + { + "time": 0.4, + "value": 9.37, + "curve": [ 0.5, 9.37, 0.7, 17.48 ] + }, + { + "time": 0.8, + "value": 17.48, + "curve": [ 0.867, 17.48, 1, 22.44 ] + }, + { + "time": 1.0667, + "value": 22.44, + "curve": [ 1.117, 22.44, 1.217, -7.3 ] + }, + { + "time": 1.2667, + "value": -7.3, + "curve": [ 1.333, -7.3, 1.467, 0 ] + }, + { "time": 1.5333 } + ] + }, + "tongue2": { + "rotate": [ + { + "curve": [ 0.083, 0, 0.25, -16.67 ] + }, + { + "time": 0.3333, + "value": -16.67, + "curve": [ 0.383, -16.67, 0.483, -20.4 ] + }, + { + "time": 0.5333, + "value": -20.4, + "curve": [ 0.592, -20.4, 0.708, -5.9 ] + }, + { "time": 0.7667, "value": -5.9 } + ] + }, + "tongue3": { + "rotate": [ + { + "curve": [ 0.083, 0, 0.25, -16.67 ] + }, + { + "time": 0.3333, + "value": -16.67, + "curve": [ 0.383, -16.67, 0.483, -32.41 ] + }, + { + "time": 0.5333, + "value": -32.41, + "curve": [ 0.592, -32.41, 0.708, -4.64 ] + }, + { + "time": 0.7667, + "value": -4.64, + "curve": [ 0.817, -4.64, 0.917, 9.34 ] + }, + { "time": 0.9667, "value": 9.34 } + ] + }, + "saddle-strap-front": { + "rotate": [ + { + "curve": [ 0.068, 0, 0.147, 0.59 ] + }, + { + "time": 0.2333, + "value": 0.26, + "curve": [ 0.286, 0.06, 0.364, -2.89 ] + }, + { + "time": 0.4, + "value": -4.33, + "curve": [ 0.432, -5.6, 0.489, -7.01 ] + }, + { + "time": 0.5333, + "value": -7.19, + "curve": [ 0.622, -7.54, 0.748, -0.51 ] + }, + { + "time": 0.8, + "value": 1.72, + "curve": [ 0.877, 5.01, 0.931, 5.58 ] + }, + { + "time": 1, + "value": 5.62, + "curve": [ 1.04, 5.64, 1.114, -0.98 ] + }, + { + "time": 1.1667, + "value": -2.42, + "curve": [ 1.307, -6.12, 1.433, -6.47 ] + }, + { "time": 1.5333, "value": -6.47 } + ] + }, + "leg-control": { + "translate": [ + { + "curve": [ 0.05, 0, 0.106, 0, 0.05, 0, 0.106, 100.22 ] + }, + { + "time": 0.1667, + "y": 100.22, + "curve": [ 0.199, 0, 0.234, 0, 0.199, 100.22, 0.242, -19.3 ] + }, + { + "time": 0.2667, + "y": -25.61, + "curve": [ 0.331, 0, 0.398, 0, 0.321, -39.52, 0.398, -43.58 ] + }, + { + "time": 0.4667, + "y": -43.47, + "curve": [ 0.522, 0, 0.578, 0, 0.522, -43.39, 0.598, 11.65 ] + }, + { + "time": 0.6333, + "y": 23.7, + "curve": [ 0.745, 0, 0.858, 0, 0.729, 55.73, 0.858, 75.57 ] + }, + { + "time": 0.9667, + "y": 71.98, + "curve": [ 0.989, 0, 1.012, 0, 0.989, 71.25, 1.012, -46.63 ] + }, + { + "time": 1.0333, + "y": -48.46, + "curve": [ 1.091, 0, 1.147, 0, 1.091, -53.23, 1.126, 120.27 ] + }, + { + "time": 1.2, + "y": 118.83, + "curve": [ 1.234, 0, 1.268, 0, 1.237, 118.12, 1.251, -67.36 ] + }, + { + "time": 1.3, + "y": -66.77, + "curve": [ 1.335, 0, 1.369, 0, 1.333, -66.38, 1.368, 44.6 ] + }, + { + "time": 1.4, + "y": 40.56, + "curve": [ 1.449, 0, 1.493, 0, 1.421, 37.96, 1.493, 0 ] + }, + { "time": 1.5333 } + ] + }, + "front-arm": { + "translate": [ + {}, + { "time": 0.4, "x": -5.67, "y": -4.08 }, + { "time": 0.5333, "y": -4.23 }, + { "time": 0.9, "x": -12.75, "y": 12.28 }, + { "time": 1.2333, "x": -4.44, "y": -5.6 }, + { "time": 1.5333 } + ], + "scale": [ + {}, + { "time": 0.4, "x": 1.057 }, + { "time": 0.5333, "x": 1.118 }, + { "time": 0.6667 }, + { "time": 1.3, "x": 1.105 }, + { "time": 1.5333 } + ] + } + }, + "ik": { + "front-leg-ik": [ + { "softness": 37.3, "bendPositive": false }, + { "time": 0.4333, "softness": 46.5, "bendPositive": false }, + { "time": 0.8, "softness": 15.1, "bendPositive": false } + ], + "spineboy-back-arm-ik": [ + {} + ], + "spineboy-front-arm-ik": [ + { "softness": 15, "stretch": true } + ] + }, + "drawOrder": [ + { + "offsets": [ + { "slot": "raptor-horn", "offset": 4 }, + { "slot": "front-thigh", "offset": -5 } + ] + } + ] + }, + "roar": { + "slots": { + "mouth-smile": { + "attachment": [ + { "time": 0.6333, "name": "mouth-grind" }, + { "time": 1.5667, "name": "mouth-smile" } + ] + } + }, + "bones": { + "hip": { + "rotate": [ + { + "curve": [ 0.025, 0, 0.061, 2.9 ] + }, + { + "time": 0.1, + "value": 2.95, + "curve": [ 0.15, 3.01, 0.192, -10.89 ] + }, + { + "time": 0.2, + "value": -14.12, + "curve": [ 0.224, -23.48, 0.238, -33.2 ] + }, + { + "time": 0.3, + "value": -33.4, + "curve": [ 0.401, -33.71, 0.493, -9.73 ] + }, + { + "time": 0.5667, + "value": -6.44, + "curve": [ 0.589, -5.43, 0.683, -0.43 ] + }, + { + "time": 0.7, + "value": -0.43, + "curve": [ 0.739, -0.43, 0.778, -6.76 ] + }, + { + "time": 0.8333, + "value": -6.78, + "curve": [ 0.962, -6.83, 1.164, -5.78 ] + }, + { + "time": 1.4333, + "value": -5.93, + "curve": [ 1.531, -5.99, 1.535, -17.42 ] + }, + { + "time": 1.7, + "value": -17.43, + "curve": [ 1.808, -17.5, 1.816, 3.25 ] + }, + { + "time": 1.9333, + "value": 3.28, + "curve": [ 1.988, 3.3, 2.083, 0 ] + }, + { "time": 2.1333 } + ], + "translate": [ + { + "y": 0.49, + "curve": [ 0.012, -0.48, 0.055, 34.36, 0.033, 15.91, 0.072, 19.98 ] + }, + { + "time": 0.1, + "x": 34.57, + "y": 19.97, + "curve": [ 0.3, 33.35, 0.261, -337.47, 0.27, 21.25, 0.435, -81.31 ] + }, + { + "time": 0.4667, + "x": -339.74, + "y": -103.88, + "curve": [ 0.525, -333.53, 0.54, -266.9, 0.518, -141.21, 0.548, -146.45 ] + }, + { + "time": 0.5667, + "x": -207.1, + "y": -146.24, + "curve": [ 0.577, -182.59, 0.605, 44.93, 0.613, -146.67, 0.629, -42.46 ] + }, + { + "time": 0.7, + "x": 44.98, + "y": -16.55, + "curve": [ 0.729, 44.99, 0.752, 42.93, 0.722, -8.54, 0.75, -6.52 ] + }, + { + "time": 0.7667, + "x": 41.57, + "y": -6.52, + "curve": [ 0.8, 38.2, 0.817, 35.92, 0.783, -6.52, 0.817, -13.34 ] + }, + { + "time": 0.8333, + "x": 35.92, + "y": -13.34, + "curve": [ 0.85, 35.92, 0.861, 39.13, 0.85, -13.34, 0.883, -6.52 ] + }, + { + "time": 0.9, + "x": 41.57, + "y": -6.52, + "curve": [ 0.945, 44.44, 1.276, 55.19, 0.992, -6.52, 1.275, -29.36 ] + }, + { + "time": 1.3667, + "x": 48.94, + "y": -29.36, + "curve": [ 1.579, 34.34, 1.622, -126.54, 1.558, -27.52, 1.659, -0.02 ] + }, + { + "time": 1.7, + "x": -127.64, + "y": 26.21, + "curve": [ 1.76, -128.48, 1.796, -115.83, 1.73, 45.34, 1.788, 70.47 ] + }, + { + "time": 1.8667, + "x": -78.95, + "y": 70.65, + "curve": [ 1.924, -49.19, 2.036, -1.03, 1.95, 70.79, 2.067, -30.6 ] + }, + { "time": 2.1333, "y": 0.49 } + ] + }, + "torso2": { + "rotate": [ + { + "curve": [ 0.093, 0.6, 0.15, 1.6 ] + }, + { + "time": 0.2, + "value": 1.61, + "curve": [ 0.29, 1.63, 0.346, -1.9 ] + }, + { + "time": 0.3667, + "value": -3.53, + "curve": [ 0.389, -5.3, 0.508, -20.04 ] + }, + { + "time": 0.5333, + "value": -22.32, + "curve": [ 0.559, -24.61, 0.596, -27.57 ] + }, + { + "time": 0.7, + "value": -27.54, + "curve": [ 0.758, -27.53, 0.754, -20.48 ] + }, + { + "time": 0.8, + "value": -20.36, + "curve": [ 0.831, -20.27, 0.851, -21.29 ] + }, + { + "time": 0.9, + "value": -21.25, + "curve": [ 0.963, -21.2, 1.021, -14.89 ] + }, + { + "time": 1.0667, + "value": -14.92, + "curve": [ 1.141, -14.99, 1.167, -18.09 ] + }, + { + "time": 1.2667, + "value": -18.03, + "curve": [ 1.385, -17.94, 1.605, -5.08 ] + }, + { + "time": 1.6667, + "value": -5.02, + "curve": [ 1.714, -4.98, 1.751, -7.53 ] + }, + { + "time": 1.8, + "value": -7.52, + "curve": [ 1.961, -6.98, 2.05, -0.54 ] + }, + { "time": 2.1333 } + ], + "translate": [ + { + "curve": [ 0.05, 0, 0.167, 10.5, 0.05, 0, 0.15, 15.96 ] + }, + { + "time": 0.2, + "x": 12.62, + "y": 15.96, + "curve": [ 0.264, 16.81, 0.35, 19.16, 0.25, 15.96, 0.372, -12.74 ] + }, + { + "time": 0.4, + "x": 19.16, + "y": -15.96, + "curve": [ 0.45, 19.16, 0.565, 14.27, 0.46, -22.88, 0.55, -27.56 ] + }, + { + "time": 0.6, + "x": 13.67, + "y": -27.56, + "curve": [ 0.655, 12.74, 0.707, 12.17, 0.642, -27.56, 0.703, -24.23 ] + }, + { + "time": 0.7667, + "x": 12.05, + "y": -14.93, + "curve": [ 0.798, 11.99, 0.817, 12.59, 0.811, -8.49, 0.817, 0.87 ] + }, + { + "time": 0.8333, + "x": 13.4, + "y": 0.87, + "curve": [ 0.867, 15.08, 0.877, 16.88, 0.858, 0.87, 0.908, -11.59 ] + }, + { + "time": 0.9333, + "x": 18.37, + "y": -11.59, + "curve": [ 0.957, 19, 1.011, 19.96, 0.958, -11.59, 1.008, -1.9 ] + }, + { + "time": 1.0333, + "x": 20.16, + "y": -1.9, + "curve": [ 1.072, 20.52, 1.162, 20.95, 1.075, -1.9, 1.158, -5.89 ] + }, + { + "time": 1.2, + "x": 21.21, + "y": -5.89, + "curve": [ 1.245, 21.53, 1.375, 25.99, 1.258, -5.89, 1.375, 3.45 ] + }, + { + "time": 1.4333, + "x": 25.99, + "y": 3.45, + "curve": [ 1.5, 25.99, 1.645, 25.8, 1.5, 3.45, 1.646, 1.31 ] + }, + { + "time": 1.7, + "x": 25.18, + "y": 0.95, + "curve": [ 1.784, 24.23, 2.025, 0, 1.816, 0.17, 2.025, 0 ] + }, + { "time": 2.1333 } + ], + "scale": [ + { + "time": 0.5333, + "curve": [ 0.55, 1, 0.657, 1.09, 0.55, 1, 0.683, 0.966 ] + }, + { + "time": 0.7, + "x": 1.093, + "y": 0.966, + "curve": [ 0.772, 1.091, 0.8, 0.988, 0.774, 0.968, 0.8, 1.043 ] + }, + { + "time": 0.8333, + "x": 0.988, + "y": 1.043, + "curve": [ 0.867, 0.988, 0.983, 1.002, 0.867, 1.043, 0.991, 0.999 ] + }, + { "time": 1.1333 } + ] + }, + "spineboy-torso": { + "rotate": [ + { + "curve": [ 0.024, -0.09, 0.088, -27.73 ] + }, + { + "time": 0.1667, + "value": -27.92, + "curve": [ 0.193, -27.99, 0.216, -27.44 ] + }, + { + "time": 0.2333, + "value": -27.42, + "curve": [ 0.292, -27.34, 0.4, -41 ] + }, + { + "time": 0.4333, + "value": -47.9, + "curve": [ 0.481, -57.82, 0.578, -76.33 ] + }, + { + "time": 0.6333, + "value": -81.72, + "curve": [ 0.656, -83.88, 0.669, -84.84 ] + }, + { + "time": 0.7, + "value": -84.84, + "curve": [ 0.733, -84.84, 0.8, -60.21 ] + }, + { + "time": 0.8333, + "value": -60.21, + "curve": [ 0.85, -60.21, 0.873, -68.32 ] + }, + { + "time": 0.9, + "value": -68.29, + "curve": [ 0.933, -68.25, 0.958, -64.03 ] + }, + { + "time": 1, + "value": -63.97, + "curve": [ 1.085, -63.84, 1.213, -69.62 ] + }, + { + "time": 1.2667, + "value": -69.47, + "curve": [ 1.42, -69.06, 1.479, -59.79 ] + }, + { + "time": 1.5, + "value": -54.97, + "curve": [ 1.524, -49.41, 1.645, -25.87 ] + }, + { + "time": 1.7, + "value": -18.45, + "curve": [ 1.751, -11.45, 1.878, 0 ] + }, + { "time": 2.1333 } + ] + }, + "head2": { + "rotate": [ + { + "value": 12.98, + "curve": [ 0.031, 13.09, 0.051, 13.3 ] + }, + { + "time": 0.0667, + "value": 14.18, + "curve": [ 0.093, 15.64, 0.27, 32.49 ] + }, + { + "time": 0.3, + "value": 33.18, + "curve": [ 0.337, 34.04, 0.379, 21.48 ] + }, + { + "time": 0.4333, + "value": 21.71, + "curve": [ 0.495, 21.97, 0.586, 55.8 ] + }, + { + "time": 0.6333, + "value": 55.8, + "curve": [ 0.713, 55.8, 0.808, 48.07 ] + }, + { + "time": 0.9, + "value": 48.25, + "curve": [ 0.95, 48.35, 0.991, 53.74 ] + }, + { + "time": 1.0333, + "value": 53.37, + "curve": [ 1.058, 53.15, 1.073, 47.29 ] + }, + { + "time": 1.1, + "value": 47.47, + "curve": [ 1.189, 48.06, 1.186, 51.29 ] + }, + { + "time": 1.2333, + "value": 51.02, + "curve": [ 1.265, 50.85, 1.312, 48.13 ] + }, + { + "time": 1.3333, + "value": 45.79, + "curve": [ 1.359, 42.93, 1.443, 33.19 ] + }, + { + "time": 1.5, + "value": 32.96, + "curve": [ 1.555, 32.74, 1.584, 45.98 ] + }, + { + "time": 1.6333, + "value": 45.92, + "curve": [ 1.706, 45.84, 1.747, 24.35 ] + }, + { + "time": 1.8, + "value": 15.58, + "curve": [ 1.858, 6.03, 1.904, 0 ] + }, + { + "time": 1.9333, + "curve": [ 1.966, 0, 2.019, 17.18 ] + }, + { + "time": 2.0667, + "value": 17.31, + "curve": [ 2.097, 17.39, 2.116, 12.98 ] + }, + { "time": 2.1333, "value": 12.98 } + ], + "scale": [ + { + "time": 0.4667, + "curve": [ 0.497, 1, 0.531, 0.984, 0.497, 1, 0.531, 1.04 ] + }, + { + "time": 0.5667, + "x": 0.984, + "y": 1.04, + "curve": [ 0.618, 0.984, 0.684, 1.043, 0.618, 1.04, 0.668, 0.992 ] + }, + { + "time": 0.7333, + "x": 1.044, + "y": 0.99, + "curve": [ 0.775, 1.045, 0.844, 1, 0.767, 0.989, 0.844, 1 ] + }, + { "time": 0.9, "curve": "stepped" }, + { + "time": 1.4333, + "curve": [ 1.475, 1, 1.563, 1.001, 1.475, 1, 1.568, 1.003 ] + }, + { + "time": 1.6, + "x": 1.004, + "y": 1.008, + "curve": [ 1.651, 1.008, 1.675, 1.016, 1.637, 1.012, 1.675, 1.055 ] + }, + { + "time": 1.7, + "x": 1.016, + "y": 1.055, + "curve": [ 1.758, 1.016, 1.854, 1.008, 1.758, 1.055, 1.881, 1.014 ] + }, + { + "time": 1.9333, + "x": 1.004, + "y": 1.008, + "curve": [ 1.98, 1.001, 2.083, 1, 1.993, 1.001, 2.083, 1 ] + }, + { "time": 2.1333 } + ] + }, + "neck2": { + "rotate": [ + { + "value": 0.02, + "curve": [ 0.05, 0.02, 0.144, 5.69 ] + }, + { + "time": 0.2, + "value": 9.94, + "curve": [ 0.276, 15.74, 0.525, 37.25 ] + }, + { + "time": 0.6333, + "value": 37.25, + "curve": [ 0.808, 37.25, 1.175, 37.21 ] + }, + { + "time": 1.3333, + "value": 33.93, + "curve": [ 1.543, 29.58, 1.659, 13.32 ] + }, + { + "time": 1.7, + "value": 11.08, + "curve": [ 1.762, 7.68, 1.875, 0 ] + }, + { "time": 1.9333 } + ] + }, + "front-arm1": { + "rotate": [ + { + "curve": [ 0.025, 0, 0.051, -14.24 ] + }, + { + "time": 0.1, + "value": -14.37, + "curve": [ 0.206, -14.64, 0.27, 25.52 ] + }, + { + "time": 0.3333, + "value": 25.6, + "curve": [ 0.466, 25.77, 0.528, -35.52 ] + }, + { + "time": 0.7, + "value": -35.63, + "curve": [ 0.742, -35.65, 0.808, -30.27 ] + }, + { + "time": 0.8333, + "value": -28.76, + "curve": [ 0.956, -21.55, 1.342, -18.16 ] + }, + { + "time": 1.5, + "value": -18.16, + "curve": [ 1.608, -18.16, 1.825, 13.78 ] + }, + { + "time": 1.9333, + "value": 13.78, + "curve": [ 1.983, 13.78, 2.083, 0 ] + }, + { "time": 2.1333 } + ] + }, + "front-arm2": { + "rotate": [ + { + "curve": [ 0.157, 0, 0.166, 22.96 ] + }, + { + "time": 0.2333, + "value": 23.11, + "curve": [ 0.52, 23.77, 0.523, 3.24 ] + }, + { + "time": 0.5333, + "value": -3.34, + "curve": [ 0.561, -21.06, 0.604, -49.19 ] + }, + { + "time": 0.8, + "value": -59.15, + "curve": [ 0.896, -64.05, 1.195, -69.82 ] + }, + { + "time": 1.3333, + "value": -69.51, + "curve": [ 1.407, -69.35, 1.46, -64.94 ] + }, + { + "time": 1.5, + "value": -47.97, + "curve": [ 1.525, -37.26, 1.6, 20.75 ] + }, + { + "time": 1.6667, + "value": 20.78, + "curve": [ 1.801, 20.84, 1.868, -8.99 ] + }, + { + "time": 1.9333, + "value": -8.99, + "curve": [ 1.983, -8.99, 2.083, 0 ] + }, + { "time": 2.1333 } + ] + }, + "front-hand": { + "rotate": [ + { + "curve": [ 0.05, 0, 0.15, 15.17 ] + }, + { + "time": 0.2, + "value": 15.17, + "curve": [ 0.409, 14.83, 0.403, -26.62 ] + }, + { + "time": 0.5333, + "value": -25.8, + "curve": [ 0.62, -25.26, 0.648, 1.88 ] + }, + { + "time": 0.8, + "value": 1.88, + "curve": [ 0.983, 1.88, 1.479, -23.1 ] + }, + { + "time": 1.5333, + "value": -30.97, + "curve": [ 1.574, -36.96, 1.591, -46.26 ] + }, + { + "time": 1.6333, + "value": -46.06, + "curve": [ 1.75, -45.52, 1.762, 18.69 ] + }, + { + "time": 1.9333, + "value": 19.03, + "curve": [ 1.983, 19.13, 2.083, 0 ] + }, + { "time": 2.1333 } + ] + }, + "back-arm2": { + "rotate": [ + { + "curve": [ 0.05, 0, 0.081, -14.57 ] + }, + { + "time": 0.2, + "value": -14.55, + "curve": [ 0.287, -14.54, 0.388, -2.01 ] + }, + { + "time": 0.4667, + "value": -2.44, + "curve": [ 0.53, -2.78, 0.593, -10.56 ] + }, + { + "time": 0.6, + "value": -25.66, + "curve": [ 0.621, -73.18, 0.619, -95.18 ] + }, + { + "time": 0.7667, + "value": -97.24, + "curve": [ 0.847, -98.36, 1.279, -103.19 ] + }, + { + "time": 1.5, + "value": -77.44, + "curve": [ 1.567, -69.6, 1.77, -24.47 ] + }, + { + "time": 1.9333, + "value": -8.99, + "curve": [ 1.959, -6.54, 2.083, 0 ] + }, + { "time": 2.1333 } + ] + }, + "back-hand": { + "rotate": [ + { + "curve": [ 0.05, 0, 0.136, 7.7 ] + }, + { + "time": 0.2, + "value": 19.14, + "curve": [ 0.243, 26.85, 0.237, 49.93 ] + }, + { + "time": 0.3, + "value": 49.98, + "curve": [ 0.416, 50.06, 0.415, 33.42 ] + }, + { + "time": 0.4667, + "value": 33.94, + "curve": [ 0.586, 35.15, 0.557, 78.18 ] + }, + { + "time": 0.6, + "value": 78.77, + "curve": [ 0.624, 79.1, 0.639, 48.7 ] + }, + { + "time": 0.6667, + "value": 37.71, + "curve": [ 0.711, 20.36, 0.804, -1.75 ] + }, + { + "time": 0.9667, + "value": -3, + "curve": [ 1.168, -4.55, 1.332, -1.6 ] + }, + { + "time": 1.3667, + "value": 1.79, + "curve": [ 1.408, 5.92, 1.502, 36.79 ] + }, + { + "time": 1.5667, + "value": 36.4, + "curve": [ 1.685, 35.7, 1.9, 31.04 ] + }, + { + "time": 1.9333, + "value": 27.25, + "curve": [ 1.999, 19.84, 2.083, 0 ] + }, + { "time": 2.1333 } + ] + }, + "back-arm1": { + "rotate": [ + { + "curve": [ 0.042, 0, 0.056, 24.8 ] + }, + { + "time": 0.1667, + "value": 25.18, + "curve": [ 0.301, 25.64, 0.566, 11.56 ] + }, + { + "time": 0.6333, + "value": -5.85, + "curve": [ 0.672, -16, 0.707, -25.63 ] + }, + { + "time": 0.8, + "value": -25.79, + "curve": [ 0.975, -25.79, 1.295, -26.78 ] + }, + { + "time": 1.5, + "value": -12.94, + "curve": [ 1.564, -8.58, 1.825, 13.78 ] + }, + { + "time": 1.9333, + "value": 13.78, + "curve": [ 1.983, 13.78, 2.083, 0 ] + }, + { "time": 2.1333 } + ] + }, + "neck": { + "rotate": [ + { + "curve": [ 0.05, 0, 0.114, -8.5 ] + }, + { + "time": 0.2, + "value": -8.26, + "curve": [ 0.29, -8.01, 0.537, 12.55 ] + }, + { + "time": 0.6333, + "value": 13.44, + "curve": [ 0.766, 14.68, 1.273, 2.13 ] + }, + { + "time": 1.4667, + "value": -3.5, + "curve": [ 1.565, -6.92, 1.656, -11.02 ] + }, + { + "time": 1.7, + "value": -10.74, + "curve": [ 1.788, -10.19, 1.852, 2.74 ] + }, + { + "time": 1.9333, + "value": 2.88, + "curve": [ 1.992, 2.98, 2.083, 0 ] + }, + { "time": 2.1333 } + ], + "translate": [ + { + "curve": [ 0.05, 0, 0.15, -20.09, 0.05, 0, 0.174, -0.26 ] + }, + { + "time": 0.2, + "x": -19.98, + "y": -1.45, + "curve": [ 0.312, -19.75, 0.463, 34.4, 0.264, -4.43, 0.474, -34.98 ] + }, + { + "time": 0.6, + "x": 34.3, + "y": -34.87, + "curve": [ 0.672, 34.26, 0.742, 30.02, 0.638, -34.83, 0.742, -21.32 ] + }, + { + "time": 0.8, + "x": 30.02, + "y": -21.32, + "curve": [ 0.842, 30.02, 0.992, 37.66, 0.842, -21.32, 0.992, -41.18 ] + }, + { + "time": 1.0333, + "x": 37.66, + "y": -41.18, + "curve": [ 1.083, 37.66, 1.183, 23.6, 1.083, -41.18, 1.183, -0.63 ] + }, + { + "time": 1.2333, + "x": 23.6, + "y": -0.63, + "curve": [ 1.292, 23.6, 1.408, 26.3, 1.292, -0.63, 1.408, -26.62 ] + }, + { + "time": 1.4667, + "x": 26.3, + "y": -26.62, + "curve": [ 1.581, 26.3, 1.618, 17.21, 1.5, -26.62, 1.675, 3.64 ] + }, + { + "time": 1.7, + "x": 12.18, + "y": 3.64, + "curve": [ 1.773, 7.71, 1.87, 4.4, 1.758, 3.64, 1.875, -4.9 ] + }, + { + "time": 1.9333, + "x": 2.83, + "y": -4.9, + "curve": [ 2.001, 1.15, 2.083, 0, 1.983, -4.9, 2.083, 0 ] + }, + { "time": 2.1333 } + ] + }, + "head": { + "rotate": [ + { + "curve": [ 0.001, -4.96, 0.05, -6.66 ] + }, + { + "time": 0.0667, + "value": -6.57, + "curve": [ 0.211, -5.81, 0.176, 34.04 ] + }, + { + "time": 0.2667, + "value": 33.65, + "curve": [ 0.335, 33.7, 0.454, 12.93 ] + }, + { + "time": 0.5, + "value": 3.37, + "curve": [ 0.539, -4.68, 0.547, -11.66 ] + }, + { + "time": 0.6, + "value": -12.11, + "curve": [ 0.645, -11.69, 0.602, 31.75 ] + }, + { + "time": 0.8, + "value": 31.51, + "curve": [ 0.85, 31.51, 0.917, 25.3 ] + }, + { + "time": 0.9667, + "value": 25.3, + "curve": [ 1.075, 25.3, 1.392, 27.9 ] + }, + { + "time": 1.5, + "value": 27.9, + "curve": [ 1.55, 27.9, 1.717, -5.14 ] + }, + { + "time": 1.8, + "value": -4.51, + "curve": [ 1.861, -4.19, 1.949, 4.07 ] + }, + { + "time": 2.0333, + "value": 4.18, + "curve": [ 2.087, 4.25, 2.096, 2.99 ] + }, + { "time": 2.1333 } + ], + "translate": [ + { + "curve": [ 0.05, 0, 0.15, 22.58, 0.05, 0, 0.154, -41.07 ] + }, + { + "time": 0.2, + "x": 22.75, + "y": -41.48, + "curve": [ 0.3, 23.09, 0.336, -13.2, 0.329, -42.63, 0.356, 19.91 ] + }, + { + "time": 0.5667, + "x": -12.04, + "y": 21.07, + "curve": [ 0.643, -12.24, 0.681, 19.67, 0.625, 21.26, 0.615, -90.96 ] + }, + { + "time": 0.7, + "x": 20.1, + "y": -90.36, + "curve": [ 0.718, 20.5, 0.75, 16.57, 0.738, -90.33, 0.75, -87.92 ] + }, + { + "time": 0.7667, + "x": 16.57, + "y": -87.92, + "curve": [ 0.783, 16.57, 0.817, 18.74, 0.783, -87.92, 0.817, -87.42 ] + }, + { + "time": 0.8333, + "x": 18.74, + "y": -87.42, + "curve": [ 0.85, 18.74, 0.883, 16.57, 0.85, -87.42, 0.883, -87.92 ] + }, + { + "time": 0.9, + "x": 16.57, + "y": -87.92, + "curve": [ 0.917, 16.57, 0.95, 18.74, 0.917, -87.92, 0.95, -87.42 ] + }, + { + "time": 0.9667, + "x": 18.74, + "y": -87.42, + "curve": [ 1.075, 18.74, 1.392, 27.31, 1.075, -87.42, 1.392, -84.9 ] + }, + { + "time": 1.5, + "x": 27.31, + "y": -84.9, + "curve": [ 1.554, 27.31, 1.605, -22.6, 1.512, -84.9, 1.575, -102.53 ] + }, + { + "time": 1.7, + "x": -22.58, + "y": -89.06, + "curve": [ 1.812, -23.81, 1.863, 9.94, 1.841, -71.22, 1.847, 11.93 ] + }, + { + "time": 1.9667, + "x": 10.77, + "y": 13.35, + "curve": [ 2.028, 11.26, 2.065, -0.88, 2.032, 14.12, 2.082, 7.52 ] + }, + { "time": 2.1333 } + ], + "shear": [ + { + "time": 0.6333, + "curve": [ 0.654, 0, 0.67, -0.13, 0.654, 0, 0.676, 0 ] + }, + { + "time": 0.7, + "x": -0.56, + "curve": [ 0.721, -0.86, 0.744, -1.24, 0.721, 0, 0.744, 0 ] + }, + { + "time": 0.7667, + "x": -1.24, + "curve": [ 0.788, -1.24, 0.819, -0.69, 0.788, 0, 0.811, 0 ] + }, + { + "time": 0.8333, + "x": -0.47, + "curve": [ 0.88, 0.25, 0.901, 0.43, 0.866, 0, 0.9, 0 ] + }, + { + "time": 0.9333, + "x": 0.43, + "curve": [ 0.975, 0.44, 1.017, -0.47, 1, 0, 1.068, 0 ] + }, + { + "time": 1.1333, + "x": -0.46, + "curve": [ 1.202, -0.44, 1.282, -0.01, 1.216, 0, 1.462, 0 ] + }, + { "time": 1.5 } + ] + }, + "jaw": { + "rotate": [ + { + "value": -1.2, + "curve": [ 0.05, -1.2, 0.158, 0.54 ] + }, + { + "time": 0.2, + "value": 1.83, + "curve": [ 0.273, 4.06, 0.417, 15.63 ] + }, + { + "time": 0.4667, + "value": 14.47, + "curve": [ 0.652, 10.18, 0.592, -68.7 ] + }, + { + "time": 0.6667, + "value": -68.7, + "curve": [ 0.731, -68.52, 0.767, -42.64 ] + }, + { + "time": 0.8, + "value": -42.45, + "curve": [ 0.808, -42.45, 0.801, -43.41 ] + }, + { + "time": 0.8333, + "value": -43.55, + "curve": [ 0.858, -43.55, 0.906, -39.81 ] + }, + { + "time": 0.9333, + "value": -39.73, + "curve": [ 0.956, -39.65, 1.013, -42.1 ] + }, + { + "time": 1.0333, + "value": -42.02, + "curve": [ 1.06, -41.91, 1.083, -35.38 ] + }, + { + "time": 1.1333, + "value": -35.34, + "curve": [ 1.169, -35.32, 1.22, -36.84 ] + }, + { + "time": 1.2667, + "value": -36.74, + "curve": [ 1.372, -36.31, 1.542, 1.5 ] + }, + { + "time": 1.6, + "value": -3.58, + "curve": [ 1.62, -3.98, 1.647, -9.02 ] + }, + { + "time": 1.7, + "value": -8.79, + "curve": [ 1.748, -8.74, 1.823, 3.7 ] + }, + { + "time": 1.9333, + "value": 4.73, + "curve": [ 1.951, 5.04, 1.975, -1.14 ] + }, + { + "time": 2, + "value": -1.34, + "curve": [ 2.048, -1.72, 2.1, -1.2 ] + }, + { "time": 2.1333, "value": -1.2 } + ], + "translate": [ + { + "x": -3.44, + "y": 2.51, + "curve": [ 0.111, -3.74, 0.391, -39.94, 0.155, 4.09, 0.297, -2.98 ] + }, + { + "time": 0.4667, + "x": -56.45, + "y": -10.08, + "curve": [ 0.527, -69.24, 0.561, -75.25, 0.577, -15.37, 0.551, -15.25 ] + }, + { + "time": 0.6, + "x": -74.43, + "y": -14.69, + "curve": [ 0.634, -74.95, 0.624, -60.95, 0.641, -14.11, 0.65, 23.07 ] + }, + { + "time": 0.6667, + "x": -53.45, + "y": 23.07, + "curve": [ 0.759, -37.12, 1.392, -28.49, 0.892, 23.07, 1.375, 19.61 ] + }, + { + "time": 1.6, + "x": -21.33, + "y": 16.78, + "curve": [ 1.762, -15.77, 1.825, -8.47, 1.625, 16.47, 1.78, 6.33 ] + }, + { + "time": 1.8667, + "x": -8.47, + "y": -3.77, + "curve": [ 1.9, -8.47, 1.967, -15.38, 1.914, -8.24, 1.967, -10.85 ] + }, + { + "time": 2, + "x": -15.38, + "y": -10.85, + "curve": [ 2.033, -15.38, 2.1, -3.44, 2.033, -10.85, 2.1, 2.51 ] + }, + { "time": 2.1333, "x": -3.44, "y": 2.51 } + ], + "scale": [ + { + "time": 0.5667, + "curve": [ 0.594, 1, 0.621, 0.956, 0.601, 1, 0.621, 1.058 ] + }, + { + "time": 0.6333, + "x": 0.956, + "y": 1.058, + "curve": [ 0.646, 0.956, 0.639, 0.994, 0.646, 1.058, 0.642, 1.02 ] + }, + { "time": 0.7 } + ], + "shear": [ + { + "time": 0.2333, + "curve": [ 0.283, 0, 0.361, -0.05, 0.283, 0, 0.405, -0.25 ] + }, + { + "time": 0.4333, + "x": 0.04, + "y": -0.47, + "curve": [ 0.498, 0.13, 0.57, 0.57, 0.485, -0.88, 0.533, -2.91 ] + }, + { + "time": 0.6333, + "x": 0.55, + "y": -2.91, + "curve": [ 0.702, 0.53, 0.717, 0.33, 0.68, -2.87, 0.748, -2.09 ] + }, + { + "time": 0.8, + "x": 0.2, + "y": -1.59, + "curve": [ 0.897, 0.05, 1.025, 0, 0.862, -0.98, 1.025, 0 ] + }, + { "time": 1.1333 } + ] + }, + "tongue1": { + "rotate": [ + { + "value": 16.25, + "curve": [ 0.05, 16.25, 0.197, 16.24 ] + }, + { + "time": 0.2, + "value": 15.93, + "curve": [ 0.244, 10.93, 0.33, -0.69 ] + }, + { + "time": 0.3667, + "value": -0.58, + "curve": [ 0.432, -0.37, 0.481, 1.4 ] + }, + { + "time": 0.5333, + "value": 5.31, + "curve": [ 0.541, 5.85, 0.57, 25.11 ] + }, + { + "time": 0.6, + "value": 28.2, + "curve": [ 0.611, 29.32, 0.623, 14.35 ] + }, + { + "time": 0.6333, + "value": 15.32, + "curve": [ 0.661, 17.81, 0.683, 18.19 ] + }, + { + "time": 0.7, + "value": 18.19, + "curve": [ 0.733, 18.19, 0.8, 13.38 ] + }, + { + "time": 0.8333, + "value": 13.38, + "curve": [ 0.867, 13.38, 0.937, 14.84 ] + }, + { + "time": 0.9667, + "value": 15.71, + "curve": [ 1.019, 17.29, 1.045, 19.01 ] + }, + { + "time": 1.0667, + "value": 20.57, + "curve": [ 1.084, 21.85, 1.148, 23.51 ] + }, + { + "time": 1.1667, + "value": 23.29, + "curve": [ 1.22, 22.66, 1.242, 16.58 ] + }, + { + "time": 1.2667, + "value": 16.58, + "curve": [ 1.283, 16.58, 1.327, 19.6 ] + }, + { + "time": 1.3333, + "value": 19.86, + "curve": [ 1.376, 21.73, 1.408, 22.44 ] + }, + { + "time": 1.4333, + "value": 22.44, + "curve": [ 1.458, 22.44, 1.481, 19.06 ] + }, + { + "time": 1.5333, + "value": 19.01, + "curve": [ 1.575, 18.98, 1.656, 22.9 ] + }, + { + "time": 1.7, + "value": 22.93, + "curve": [ 1.776, 22.99, 1.875, 16.25 ] + }, + { "time": 1.9333, "value": 16.25 } + ], + "translate": [ + { "x": -22.37, "y": 13.32 } + ], + "scale": [ + { + "time": 0.2, + "curve": [ 0.3, 1, 0.5, 1.16, 0.3, 1, 0.5, 1 ] + }, + { + "time": 0.6, + "x": 1.16, + "curve": [ 0.875, 1.16, 1.425, 1, 0.875, 1, 1.425, 1 ] + }, + { "time": 1.7 } + ] + }, + "torso1": { + "rotate": [ + { + "curve": [ 0.029, 0, 0.036, -1.4 ] + }, + { + "time": 0.1, + "value": -1.41, + "curve": [ 0.143, -1.42, 0.287, 10.8 ] + }, + { + "time": 0.3333, + "value": 10.73, + "curve": [ 0.479, 10.51, 0.531, 6.79 ] + }, + { + "time": 0.6, + "curve": [ 0.624, -2.59, 0.679, -4.75 ] + }, + { + "time": 0.7, + "value": -4.9, + "curve": [ 0.723, -5.06, 0.75, -2.6 ] + }, + { + "time": 0.7667, + "value": -2.6, + "curve": [ 0.783, -2.6, 0.814, -4.72 ] + }, + { + "time": 0.8333, + "value": -4.7, + "curve": [ 0.858, -4.67, 0.857, -1.2 ] + }, + { + "time": 0.9, + "value": -1.13, + "curve": [ 0.926, -1.09, 1, -3.27 ] + }, + { + "time": 1.0333, + "value": -3.27, + "curve": [ 1.061, -3.27, 1.1, 0.25 ] + }, + { + "time": 1.1333, + "value": 0.24, + "curve": [ 1.179, 0.23, 1.199, -1.36 ] + }, + { + "time": 1.2333, + "value": -1.36, + "curve": [ 1.295, -1.36, 1.29, 1.49 ] + }, + { + "time": 1.3667, + "value": 1.47, + "curve": [ 1.409, 1.46, 1.464, -1.37 ] + }, + { + "time": 1.5, + "value": -1.36, + "curve": [ 1.607, -1.3, 1.754, 1.39 ] + }, + { + "time": 1.9667, + "value": 1.36, + "curve": [ 2.008, 1.36, 2.092, 0 ] + }, + { "time": 2.1333 } + ] + }, + "horn-back": { + "rotate": [ + { "time": 0.2 }, + { "time": 1.0333, "value": 7.62 }, + { "time": 1.9333 } + ], + "translate": [ + { + "time": 1.6667, + "curve": [ 1.708, 0, 1.792, 19.83, 1.708, 0, 1.792, 22.59 ] + }, + { + "time": 1.8333, + "x": 19.83, + "y": 22.59, + "curve": [ 1.908, 19.83, 2.058, 0, 1.908, 22.59, 2.058, 0 ] + }, + { "time": 2.1333 } + ] + }, + "horn-front": { + "rotate": [ + { + "curve": [ 0.018, 0, 0.052, 0.73 ] + }, + { + "time": 0.0667, + "value": 1.73, + "curve": [ 0.084, 2.92, 0.1, 4.72 ] + }, + { + "time": 0.1333, + "value": 4.95, + "curve": [ 0.162, 5.16, 0.187, 4.3 ] + }, + { + "time": 0.2, + "value": 3.89, + "curve": [ 0.289, 0.95, 0.477, -6.85 ] + }, + { + "time": 0.6667, + "value": -6.06, + "curve": [ 0.809, -5.49, 0.953, -3.36 ] + }, + { + "time": 1.0333, + "value": -2.66, + "curve": [ 1.255, -0.73, 1.708, 0 ] + }, + { "time": 1.9333 } + ], + "translate": [ + { "time": 1.4667 }, + { "time": 1.9, "x": 5.8, "y": -14.31 }, + { "time": 2.0333, "x": 7.96, "y": -4.52 }, + { "time": 2.1333 } + ] + }, + "front-leg-target": { + "rotate": [ + { "value": -0.31 } + ], + "translate": [ + { + "curve": [ 0.138, 0.68, 0.144, 63.75, 0.092, 0, 0.15, 21.48 ] + }, + { + "time": 0.2, + "x": 63.06, + "y": 22.03, + "curve": [ 0.315, 61.65, 0.292, -25.03, 0.315, 23.29, 0.356, -56.94 ] + }, + { + "time": 0.5, + "x": -29.09, + "y": -56.75, + "curve": [ 0.601, -31.05, 0.583, 104.34, 0.589, -56.64, 0.583, 47.28 ] + }, + { "time": 0.7, "x": 104.34, "y": 47.28 }, + { + "time": 1.3667, + "x": 106.2, + "y": 47.7, + "curve": [ 1.538, 105.92, 1.633, 88.98, 1.552, 49.6, 1.633, 40.88 ] + }, + { + "time": 1.7333, + "x": 49.5, + "y": 28.71, + "curve": [ 1.842, 7.01, 2.025, -0.54, 1.842, 15.61, 2.025, 0 ] + }, + { "time": 2.1333 } + ] + }, + "back-leg-target": { + "translate": [ + {}, + { "time": 0.2, "x": 5.58, "y": 4.02 }, + { + "time": 0.4667, + "x": -39.15, + "y": -10.18, + "curve": [ 0.512, -15.45, 0.563, 1.22, 0.512, 9.94, 0.563, 28.79 ] + }, + { "time": 0.6333, "x": 17.09, "y": 42.26 }, + { "time": 0.7333, "x": 30.54, "y": 59.35 }, + { + "time": 1.4667, + "x": 31.18, + "y": 60.17, + "curve": [ 1.567, 24.16, 1.607, 12.61, 1.564, 55.67, 1.613, 36.27 ] + }, + { "time": 1.6667, "x": -19.04, "y": -0.52 }, + { "time": 2.1333 } + ] + }, + "spineboy-hip": { + "rotate": [ + { + "curve": [ 0.025, 0, 0.075, 10.98 ] + }, + { + "time": 0.1, + "value": 10.98, + "curve": [ 0.157, 10.98, 0.238, 8.08 ] + }, + { + "time": 0.3333, + "value": 8.02, + "curve": [ 0.391, 7.98, 0.432, 11.76 ] + }, + { + "time": 0.4667, + "value": 11.66, + "curve": [ 0.491, 11.58, 0.504, 11.4 ] + }, + { + "time": 0.5333, + "value": 7.39, + "curve": [ 0.577, 1.45, 0.627, -5.5 ] + }, + { + "time": 0.7, + "value": -7.47, + "curve": [ 0.821, -10.75, 0.917, -11.16 ] + }, + { + "time": 1, + "value": -11.16, + "curve": [ 1.13, -11.16, 1.359, 3.64 ] + }, + { + "time": 1.5333, + "value": 3.43, + "curve": [ 1.603, 3.89, 1.637, -25.96 ] + }, + { + "time": 1.7, + "value": -25.96, + "curve": [ 1.811, -26.33, 1.881, 9.15 ] + }, + { + "time": 1.9667, + "value": 9.05, + "curve": [ 2.034, 8.97, 2.092, 0 ] + }, + { "time": 2.1333 } + ], + "translate": [ + { + "curve": [ 0.025, 0, 0.075, -3.14, 0.025, 0, 0.075, 4.23 ] + }, + { + "time": 0.1, + "x": -2.69, + "y": 4.23, + "curve": [ 0.131, -2.14, 0.167, 3.27, 0.125, 4.23, 0.183, -2.98 ] + }, + { + "time": 0.2, + "x": 17.13, + "y": -6.44, + "curve": [ 0.214, 22.78, 0.275, 27.63, 0.235, -13.6, 0.274, -24.33 ] + }, + { + "time": 0.3, + "x": 27.63, + "y": -24.78, + "curve": [ 0.342, 27.63, 0.425, 23.61, 0.349, -25.62, 0.441, -8.74 ] + }, + { + "time": 0.4667, + "x": 23.61, + "y": -8.32, + "curve": [ 0.483, 23.61, 0.508, 20.92, 0.486, -7.99, 0.508, -37.58 ] + }, + { + "time": 0.5333, + "x": 35.42, + "y": -44.36, + "curve": [ 0.551, 45.68, 0.608, 70.81, 0.569, -53.86, 0.616, -66.98 ] + }, + { + "time": 0.6333, + "x": 70.81, + "y": -72.81, + "curve": [ 0.65, 70.81, 0.679, 65.64, 0.648, -77.73, 0.671, -76.48 ] + }, + { + "time": 0.7, + "x": 62.91, + "y": -76.91, + "curve": [ 0.725, 59.54, 0.775, 59.86, 0.73, -77.35, 0.775, -54.3 ] + }, + { + "time": 0.8, + "x": 59.86, + "y": -54.3, + "curve": [ 0.825, 59.86, 0.867, 59.93, 0.825, -54.3, 0.865, -55.33 ] + }, + { + "time": 0.9, + "x": 60.79, + "y": -56.69, + "curve": [ 0.946, 62, 0.962, 62.29, 0.923, -57.6, 0.951, -57.62 ] + }, + { + "time": 1, + "x": 63.78, + "y": -57.73, + "curve": [ 1.038, 65.26, 1.106, 68.28, 1.058, -57.86, 1.1, -57.63 ] + }, + { + "time": 1.1333, + "x": 69.44, + "y": -57.41, + "curve": [ 1.217, 72.97, 1.333, 77.13, 1.226, -56.82, 1.316, -55.55 ] + }, + { + "time": 1.4, + "x": 77.13, + "y": -53.65, + "curve": [ 1.433, 77.13, 1.467, 73.12, 1.437, -52.82, 1.492, -50.91 ] + }, + { + "time": 1.5333, + "x": 63.41, + "y": -49.52, + "curve": [ 1.549, 61.17, 1.597, 46.67, 1.576, -48.09, 1.599, -47.25 ] + }, + { + "time": 1.6333, + "x": 38.86, + "y": -45.65, + "curve": [ 1.687, 27.26, 1.722, 20.8, 1.677, -43.62, 1.71, -40.67 ] + }, + { + "time": 1.7333, + "x": 19.46, + "y": -38, + "curve": [ 1.803, 11.67, 1.885, 5.59, 1.758, -35.11, 1.888, -14.53 ] + }, + { + "time": 1.9333, + "x": 4.11, + "y": -7.78, + "curve": [ 2.006, 1.87, 2.083, 0, 1.96, -3.77, 2.083, 0 ] + }, + { "time": 2.1333 } + ] + }, + "front-hand2": { + "rotate": [ + {}, + { "time": 0.2, "value": -21.93 }, + { "time": 0.3, "value": -23.29 }, + { "time": 0.4333, "value": -29.8 }, + { "time": 0.5333, "value": -36.62 }, + { "time": 0.6333, "value": -40.49 }, + { "time": 0.7, "value": -38.28 }, + { "time": 0.7667, "value": -33.33 }, + { "time": 0.8333, "value": -28.06 }, + { "time": 1.4333, "value": -27.17 }, + { "time": 1.5333, "value": -27.62 }, + { "time": 1.7 } + ] + }, + "spineboy-front-arm-target": { + "translate": [ + {}, + { "time": 0.0667, "x": 1.11, "y": -2.35 }, + { "time": 0.3, "x": 21.56, "y": -45.67 }, + { "time": 0.5667, "x": 2.23, "y": -34.98 }, + { "time": 0.7333, "x": 28.52, "y": -47.75 }, + { "time": 0.8333, "x": 24.52, "y": -37.92 }, + { "time": 1.5, "x": 26.24, "y": -38.24 }, + { "time": 1.7, "x": -9.39, "y": -0.72 }, + { "time": 1.8667, "x": 1.03, "y": -21.86 }, + { "time": 2.1333 } + ] + }, + "gun": { + "rotate": [ + { + "curve": [ 0.025, 0, 0.075, -16.45 ] + }, + { + "time": 0.1, + "value": -16.38, + "curve": [ 0.186, -16.14, 0.268, -2.86 ] + }, + { + "time": 0.3, + "value": -2.83, + "curve": [ 0.342, -2.79, 0.427, -27.51 ] + }, + { + "time": 0.4333, + "value": -29.46, + "curve": [ 0.508, -53.36, 0.613, -60.85 ] + }, + { + "time": 0.6333, + "value": -60.92, + "curve": [ 0.711, -61.15, 0.734, -27.93 ] + }, + { + "time": 0.7667, + "value": -23.27, + "curve": [ 0.785, -20.65, 0.852, -13.39 ] + }, + { + "time": 0.9, + "value": -13.36, + "curve": [ 0.952, -13.33, 1.002, -20.79 ] + }, + { + "time": 1.0333, + "value": -20.87, + "curve": [ 1.206, -21.35, 1.432, -17.1 ] + }, + { + "time": 1.5, + "value": -14.02, + "curve": [ 1.549, -11.78, 1.65, 15.4 ] + }, + { + "time": 1.7, + "value": 15.4, + "curve": [ 1.733, 15.4, 1.8, 9.7 ] + }, + { + "time": 1.8333, + "value": 2.78, + "curve": [ 1.875, -5.94, 1.908, -25.4 ] + }, + { + "time": 1.9333, + "value": -25.23, + "curve": [ 2.015, -24.66, 2.108, 0 ] + }, + { "time": 2.1333 } + ], + "translate": [ + { + "time": 0.2, + "curve": [ 0.308, 0, 0.525, -18.37, 0.308, 0, 0.525, -9.19 ] + }, + { + "time": 0.6333, + "x": -18.37, + "y": -9.19, + "curve": [ 0.9, -18.37, 1.433, 0, 0.9, -9.19, 1.433, 0 ] + }, + { "time": 1.7 } + ] + }, + "tail1": { + "rotate": [ + { + "curve": [ 0.098, 0.13, 0.204, -14.76 ] + }, + { + "time": 0.2667, + "value": -14.69, + "curve": [ 0.453, -14.49, 0.578, 19.55 ] + }, + { + "time": 0.9333, + "value": 19.85, + "curve": [ 1.08, 19.98, 1.328, 16.46 ] + }, + { + "time": 1.4333, + "value": 9.05, + "curve": [ 1.532, 2.13, 1.565, -5.76 ] + }, + { + "time": 1.7, + "value": -5.74, + "curve": [ 1.739, -5.73, 1.771, 1.08 ] + }, + { + "time": 1.8, + "value": 1.06, + "curve": [ 1.853, 1.04, 1.956, -1.66 ] + }, + { + "time": 2, + "value": -1.81, + "curve": [ 2.039, -1.95, 2.08, -0.07 ] + }, + { "time": 2.1333 } + ] + }, + "tail3": { + "rotate": [ + { + "value": -4.66, + "curve": [ 0.053, -3.48, 0.21, 0.22 ] + }, + { + "time": 0.2667, + "value": 0.23, + "curve": [ 0.331, 0.24, 0.337, -16.21 ] + }, + { + "time": 0.4333, + "value": -16.22, + "curve": [ 0.521, -16.24, 0.565, -5.72 ] + }, + { + "time": 0.6667, + "value": -5.73, + "curve": [ 0.743, -5.73, 0.805, -9.29 ] + }, + { + "time": 0.8333, + "value": -9.89, + "curve": [ 0.878, -10.85, 0.93, -11.71 ] + }, + { + "time": 1, + "value": -11.85, + "curve": [ 1.032, -11.91, 1.065, -10.91 ] + }, + { + "time": 1.1, + "value": -10.92, + "curve": [ 1.142, -10.93, 1.19, -11.14 ] + }, + { + "time": 1.2333, + "value": -11.21, + "curve": [ 1.268, -11.27, 1.296, -10.85 ] + }, + { + "time": 1.3333, + "value": -10.84, + "curve": [ 1.389, -10.83, 1.422, -12.91 ] + }, + { + "time": 1.4667, + "value": -12.9, + "curve": [ 1.523, -12.89, 1.594, 0.83 ] + }, + { + "time": 1.6667, + "value": 0.91, + "curve": [ 1.722, 0.97, 1.763, -1.01 ] + }, + { + "time": 1.8, + "value": -2.92, + "curve": [ 1.837, -4.84, 1.889, -7.19 ] + }, + { + "time": 1.9667, + "value": -7.21, + "curve": [ 2.039, -7.24, 2.081, -5.7 ] + }, + { "time": 2.1333, "value": -4.66 } + ] + }, + "tail5": { + "rotate": [ + { + "value": 5.3, + "curve": [ 0.036, 7.51, 0.233, 22.33 ] + }, + { + "time": 0.2667, + "value": 22.33, + "curve": [ 0.325, 22.33, 0.414, -17.46 ] + }, + { + "time": 0.5, + "value": -17.34, + "curve": [ 0.554, -17.27, 0.622, -8.56 ] + }, + { + "time": 0.6667, + "value": -3.3, + "curve": [ 0.68, -1.76, 0.718, 2.89 ] + }, + { + "time": 0.8, + "value": 2.99, + "curve": [ 0.87, 3.07, 0.878, -6.27 ] + }, + { + "time": 0.9333, + "value": -6.3, + "curve": [ 0.953, -6.31, 1.022, -0.18 ] + }, + { + "time": 1.0667, + "value": -0.19, + "curve": [ 1.141, -0.21, 1.247, -1.67 ] + }, + { + "time": 1.3333, + "value": -1.68, + "curve": [ 1.445, -1.69, 1.533, 6.2 ] + }, + { + "time": 1.6333, + "value": 6.15, + "curve": [ 1.783, 6.09, 1.796, 2.3 ] + }, + { + "time": 1.9333, + "value": 2.27, + "curve": [ 2.022, 2.41, 2.09, 3.96 ] + }, + { "time": 2.1333, "value": 5.3 } + ] + }, + "tail7": { + "rotate": [ + { + "value": -10.89, + "curve": [ 0.024, -9.39, 0.083, 2.54 ] + }, + { + "time": 0.1, + "value": 5.38, + "curve": [ 0.12, 8.69, 0.201, 19.39 ] + }, + { + "time": 0.2667, + "value": 19.39, + "curve": [ 0.326, 19.38, 0.373, 10.75 ] + }, + { + "time": 0.4, + "value": 6.64, + "curve": [ 0.425, 2.85, 0.527, -17.3 ] + }, + { + "time": 0.6, + "value": -17.31, + "curve": [ 0.729, -17.34, 0.751, 6.3 ] + }, + { + "time": 0.8, + "value": 6.38, + "curve": [ 0.868, 6.5, 0.914, -11.69 ] + }, + { + "time": 0.9667, + "value": -11.4, + "curve": [ 0.995, -11.24, 1.044, -1.32 ] + }, + { + "time": 1.1, + "value": -1.44, + "curve": [ 1.143, -1.54, 1.18, -10.37 ] + }, + { + "time": 1.2667, + "value": -10.23, + "curve": [ 1.295, -10.19, 1.34, -3.84 ] + }, + { + "time": 1.4333, + "value": -4.1, + "curve": [ 1.553, -4.43, 1.585, -16.61 ] + }, + { + "time": 1.6333, + "value": -16.61, + "curve": [ 1.688, -16.61, 1.696, 23.74 ] + }, + { + "time": 1.7333, + "value": 23.71, + "curve": [ 1.798, 23.66, 1.87, 16.5 ] + }, + { + "time": 1.9, + "value": 10.29, + "curve": [ 1.923, 5.57, 1.978, -13.06 ] + }, + { + "time": 2.0667, + "value": -13.03, + "curve": [ 2.081, -13.06, 2.106, -12.38 ] + }, + { "time": 2.1333, "value": -10.89 } + ] + }, + "tail9": { + "rotate": [ + { + "value": -10.89, + "curve": [ 0.033, -10.89, 0.109, -16.1 ] + }, + { + "time": 0.1667, + "value": -15.69, + "curve": [ 0.2, -15.45, 0.263, 24 ] + }, + { + "time": 0.3, + "value": 23.95, + "curve": [ 0.341, 23.91, 0.38, 20.42 ] + }, + { + "time": 0.4, + "value": 13.72, + "curve": [ 0.436, 1.64, 0.469, -22.42 ] + }, + { + "time": 0.5667, + "value": -22.06, + "curve": [ 0.592, -21.97, 0.619, -12.65 ] + }, + { + "time": 0.6333, + "value": -12.97, + "curve": [ 0.649, -13.32, 0.672, -23.19 ] + }, + { + "time": 0.7333, + "value": -23.77, + "curve": [ 0.753, -23.95, 0.784, 18.1 ] + }, + { + "time": 0.8333, + "value": 18.04, + "curve": [ 0.896, 17.97, 0.968, -8.44 ] + }, + { + "time": 1.0667, + "value": -8.3, + "curve": [ 1.102, -8.25, 1.147, 1.32 ] + }, + { + "time": 1.2, + "value": 1.29, + "curve": [ 1.225, 1.28, 1.264, -9.04 ] + }, + { + "time": 1.3333, + "value": -9.07, + "curve": [ 1.359, -9.08, 1.367, -0.8 ] + }, + { + "time": 1.4, + "value": -0.93, + "curve": [ 1.45, -1.14, 1.485, -13.55 ] + }, + { + "time": 1.5333, + "value": -13.67, + "curve": [ 1.589, -13.81, 1.592, -4.95 ] + }, + { + "time": 1.6333, + "value": -4.9, + "curve": [ 1.659, -4.87, 1.672, -6.82 ] + }, + { + "time": 1.7, + "value": -6.85, + "curve": [ 1.732, -6.89, 1.741, 23.58 ] + }, + { + "time": 1.8, + "value": 23.61, + "curve": [ 1.855, 23.65, 1.942, -2.54 ] + }, + { + "time": 1.9667, + "value": -7.74, + "curve": [ 1.979, -10.39, 2.03, -19.23 ] + }, + { + "time": 2.0667, + "value": -19.56, + "curve": [ 2.092, -19.79, 2.116, -10.89 ] + }, + { "time": 2.1333, "value": -10.89 } + ] + }, + "tongue2": { + "rotate": [ + { + "curve": [ 0.042, 0, 0.192, -3.18 ] + }, + { + "time": 0.2, + "value": -3.18, + "curve": [ 0.217, -3.18, 0.25, 52.29 ] + }, + { + "time": 0.2667, + "value": 52.29, + "curve": [ 0.333, 52.29, 0.506, 33.61 ] + }, + { + "time": 0.5333, + "value": 17.71, + "curve": [ 0.545, 10.61, 0.575, -38.38 ] + }, + { + "time": 0.6, + "value": -63.26, + "curve": [ 0.613, -75.71, 0.625, -74.25 ] + }, + { + "time": 0.6333, + "value": -74.25, + "curve": [ 0.65, -74.25, 0.666, -50.57 ] + }, + { + "time": 0.7, + "value": -42.92, + "curve": [ 0.715, -39.42, 0.803, -33.62 ] + }, + { + "time": 0.8333, + "value": -32.97, + "curve": [ 0.884, -31.92, 0.934, -31.56 ] + }, + { + "time": 0.9667, + "value": -31.29, + "curve": [ 1.012, -30.9, 1.051, -29.92 ] + }, + { + "time": 1.0667, + "value": -28.95, + "curve": [ 1.105, -26.65, 1.142, -20.34 ] + }, + { + "time": 1.1667, + "value": -20.34, + "curve": [ 1.192, -20.34, 1.242, -24.26 ] + }, + { + "time": 1.2667, + "value": -24.26, + "curve": [ 1.283, -24.26, 1.317, -19.87 ] + }, + { + "time": 1.3333, + "value": -19.87, + "curve": [ 1.358, -19.87, 1.428, -21.71 ] + }, + { + "time": 1.4333, + "value": -22.11, + "curve": [ 1.481, -25.54, 1.508, -36.17 ] + }, + { + "time": 1.5333, + "value": -36.17, + "curve": [ 1.575, -36.17, 1.648, -17.58 ] + }, + { + "time": 1.7, + "value": -13.32, + "curve": [ 1.748, -9.35, 1.861, -3.44 ] + }, + { + "time": 1.9333, + "value": -1.54, + "curve": [ 1.975, -0.45, 2.083, 0 ] + }, + { "time": 2.1333 } + ], + "translate": [ + { + "time": 0.2, + "curve": [ 0.283, 0, 0.423, -0.54, 0.283, 0, 0.435, 0.96 ] + }, + { + "time": 0.5333, + "x": 6.19, + "y": 1.39, + "curve": [ 0.567, 8.27, 0.633, 45.26, 0.555, 1.49, 0.62, 1.67 ] + }, + { + "time": 0.6667, + "x": 57.07, + "y": 1.67, + "curve": [ 0.706, 70.68, 0.76, 94.14, 0.729, 1.67, 0.764, 1.67 ] + }, + { + "time": 0.8333, + "x": 94.09, + "y": 1.67, + "curve": [ 1.21, 93.82, 1.098, 7.05, 1.195, 1.67, 1.676, 1.67 ] + }, + { + "time": 1.9333, + "x": 6.19, + "y": 1.67, + "curve": [ 1.983, 6.14, 2.083, 0, 1.983, 1.67, 2.083, 0 ] + }, + { "time": 2.1333 } + ] + }, + "tongue3": { + "rotate": [ + { + "curve": [ 0.042, 0, 0.142, -1.29 ] + }, + { + "time": 0.2, + "value": 4.21, + "curve": [ 0.209, 5.09, 0.25, 52.29 ] + }, + { + "time": 0.2667, + "value": 52.29, + "curve": [ 0.333, 52.29, 0.491, 43.05 ] + }, + { + "time": 0.5333, + "value": 17.71, + "curve": [ 0.551, 6.94, 0.577, -41.44 ] + }, + { + "time": 0.6, + "value": -50.22, + "curve": [ 0.613, -55.02, 0.625, -24.1 ] + }, + { + "time": 0.6333, + "value": -24.1, + "curve": [ 0.65, -24.1, 0.683, 52.67 ] + }, + { + "time": 0.7, + "value": 52.67, + "curve": [ 0.733, 52.67, 0.8, -50.91 ] + }, + { + "time": 0.8333, + "value": -50.91, + "curve": [ 0.867, -50.91, 0.933, 36.54 ] + }, + { + "time": 0.9667, + "value": 36.54, + "curve": [ 0.992, 36.54, 1.042, -47.34 ] + }, + { + "time": 1.0667, + "value": -47.34, + "curve": [ 1.092, -47.34, 1.142, 5.53 ] + }, + { + "time": 1.1667, + "value": 5.53, + "curve": [ 1.192, 5.53, 1.242, -19.25 ] + }, + { + "time": 1.2667, + "value": -19.94, + "curve": [ 1.298, -20.82, 1.313, -13.2 ] + }, + { + "time": 1.3333, + "value": -2.03, + "curve": [ 1.368, 17.44, 1.408, 54.04 ] + }, + { + "time": 1.4333, + "value": 54.04, + "curve": [ 1.458, 54.04, 1.519, 43.79 ] + }, + { + "time": 1.5333, + "value": 35.49, + "curve": [ 1.581, 8.1, 1.658, -36.24 ] + }, + { + "time": 1.7, + "value": -36.24, + "curve": [ 1.758, -36.24, 1.875, 13.61 ] + }, + { + "time": 1.9333, + "value": 13.61, + "curve": [ 1.983, 13.61, 2.083, 0 ] + }, + { "time": 2.1333 } + ], + "translate": [ + { + "time": 0.2, + "curve": [ 0.283, 0, 0.45, 11.48, 0.283, 0, 0.45, 3.7 ] + }, + { "time": 0.5333, "x": 11.48, "y": 3.7 }, + { "time": 2.1333 } + ] + }, + "saddle-strap-back": { + "rotate": [ + { + "value": -2.53, + "curve": [ 0.079, -2.45, 0.302, -25.1 ] + }, + { + "time": 0.3333, + "value": -25.81, + "curve": [ 0.389, -27.07, 0.484, -26.23 ] + }, + { + "time": 0.5333, + "value": -26.79, + "curve": [ 0.561, -27.1, 0.608, -31.99 ] + }, + { + "time": 0.6333, + "value": -31.97, + "curve": [ 0.725, -31.89, 0.763, -10.53 ] + }, + { + "time": 0.8333, + "value": -7.75, + "curve": [ 0.911, -4.71, 1.308, -5.82 ] + }, + { + "time": 1.4667, + "value": -5.82, + "curve": [ 1.541, -5.82, 1.632, -4.15 ] + }, + { + "time": 1.7, + "value": -4.14, + "curve": [ 1.766, -4.13, 1.845, -11.09 ] + }, + { + "time": 1.9333, + "value": -11.09, + "curve": [ 1.983, -11.09, 2.083, -2.53 ] + }, + { "time": 2.1333, "value": -2.53 } + ], + "translate": [ + { + "curve": [ 0.083, 0, 0.25, 11.69, 0.083, 0, 0.25, -2.81 ] + }, + { + "time": 0.3333, + "x": 11.69, + "y": -2.81, + "curve": [ 0.408, 11.69, 0.558, 0, 0.408, -2.81, 0.558, 0 ] + }, + { "time": 0.6333 } + ], + "scale": [ + { + "time": 0.6333, + "curve": [ 0.65, 1, 0.666, 1.076, 0.65, 1, 0.683, 1 ] + }, + { + "time": 0.7, + "x": 1.103, + "curve": [ 0.737, 1.132, 0.8, 1.162, 0.733, 1, 0.8, 1 ] + }, + { + "time": 0.8333, + "x": 1.162, + "curve": [ 1.05, 1.162, 1.483, 1, 1.05, 1, 1.483, 1 ] + }, + { "time": 1.7 } + ] + }, + "front-foot-target": { + "rotate": [ + { + "curve": [ 0.074, -0.1, 0.093, -16.93 ] + }, + { + "time": 0.1, + "value": -19.19, + "curve": [ 0.117, -24.39, 0.157, -24.35 ] + }, + { + "time": 0.2, + "value": -24.36, + "curve": [ 0.252, -24.36, 0.311, -22.81 ] + }, + { + "time": 0.4333, + "value": -22.8, + "curve": [ 0.628, -22.79, 0.776, -25.56 ] + }, + { + "time": 1.2333, + "value": -25.57, + "curve": [ 1.378, -25.58, 1.525, 2.24 ] + }, + { + "time": 1.7333, + "value": 2.24, + "curve": [ 1.797, 2.48, 1.732, -17.39 ] + }, + { + "time": 1.8, + "value": -17.18, + "curve": [ 1.923, -16.81, 2.073, 0.17 ] + }, + { "time": 2.1333 } + ], + "translate": [ + { + "y": 1.27, + "curve": [ 0.027, -0.41, 0.053, -46.34, 0.023, 3.93, 0.05, 71.17 ] + }, + { + "time": 0.0667, + "x": -73.27, + "y": 71.17, + "curve": [ 0.088, -115.35, 0.169, -316.46, 0.103, 71.88, 0.17, 60.5 ] + }, + { + "time": 0.2, + "x": -392.1, + "y": 9.43, + "curve": [ 0.231, -419.09, 0.231, -422.04, 0.231, 9.43, 0.231, 9.43 ] + }, + { "time": 0.2667, "x": -422.04, "y": 9.43, "curve": "stepped" }, + { + "time": 0.6, + "x": -422.04, + "y": 9.43, + "curve": [ 0.643, -422.04, 0.688, -403.61, 0.643, 9.43, 0.688, 9.43 ] + }, + { "time": 0.7333, "x": -403.61, "y": 9.43, "curve": "stepped" }, + { + "time": 1.7333, + "x": -403.61, + "y": 9.43, + "curve": [ 1.769, -403.61, 1.793, -341.64, 1.768, 9.43, 1.783, 111.02 ] + }, + { + "time": 1.8, + "x": -308.05, + "y": 111.02, + "curve": [ 1.813, -248.48, 1.9, 0, 1.858, 109.79, 1.928, 38.95 ] + }, + { + "time": 1.9333, + "curve": [ 1.983, 0, 2.083, 0.76, 1.983, 0, 2.122, 0 ] + }, + { "time": 2.1333, "y": 1.27 } + ] + }, + "front-foot2": { + "rotate": [ + {}, + { "time": 0.0333, "value": -17.85 }, + { "time": 0.0667, "value": -27.51 }, + { "time": 0.1, "value": -21.45 }, + { "time": 0.1333, "value": -12.42 }, + { "time": 0.1667, "value": -1.36 }, + { "time": 0.2, "value": -17.5 }, + { "time": 0.6, "value": -17.43 }, + { "time": 0.7, "value": -21.13, "curve": "stepped" }, + { "time": 1.7333, "value": -21.13 }, + { "time": 1.8, "value": -41.83 }, + { "time": 1.8667, "value": -1.1 }, + { "time": 1.9333 } + ] + }, + "front-foot3": { + "rotate": [ + {}, + { "time": 0.0333, "value": 1.2 }, + { "time": 0.1, "value": 8.93 }, + { + "time": 0.2, + "value": 26.93, + "curve": [ 0.217, 26.93, 0.224, 25.26 ] + }, + { "time": 0.2333, "value": 16.32, "curve": "stepped" }, + { "time": 1.7333, "value": 16.32 }, + { "time": 1.7667, "value": 24.81 }, + { "time": 1.8, "value": -12.37 }, + { "time": 1.8333, "value": -17.66 }, + { "time": 1.9, "value": 9.39 }, + { "time": 1.9333, "value": 16.11 }, + { "time": 2 } + ], + "translate": [ + { "x": -29.67, "curve": "stepped" }, + { "time": 1.7333, "x": -29.67 }, + { "time": 1.8, "x": -34.03, "y": 8.95 }, + { "time": 2.1333, "x": -29.67 } + ] + }, + "back-hand2": { + "rotate": [ + { "value": -21.46 }, + { "time": 0.2, "value": -21.93 }, + { "time": 0.3, "value": -8.39 }, + { "time": 0.4333, "value": -5.38 }, + { "time": 0.5333, "value": -30.38 }, + { "time": 0.6333, "value": -55.56 }, + { "time": 0.7, "value": -18.74 }, + { "time": 0.7667, "value": -20.26 }, + { "time": 0.8333, "value": -21.46 } + ] + }, + "saddle": { + "rotate": [ + { + "value": -3.18, + "curve": [ 0.042, -3.18, 0.132, -3.3 ] + }, + { + "time": 0.1667, + "value": -3.04, + "curve": [ 0.278, -2.2, 0.517, 8.87 ] + }, + { + "time": 0.6333, + "value": 8.87, + "curve": [ 0.683, 8.87, 0.772, -1.92 ] + }, + { + "time": 0.8333, + "value": -2.37, + "curve": [ 0.9, -2.86, 1.258, -3.18 ] + }, + { + "time": 1.4, + "value": -3.18, + "curve": [ 1.458, -3.18, 1.575, -7.06 ] + }, + { + "time": 1.6333, + "value": -7.06, + "curve": [ 1.715, -7.06, 1.86, -0.12 ] + }, + { + "time": 1.9667, + "value": -0.07, + "curve": [ 2.05, -0.03, 2.09, -3.18 ] + }, + { "time": 2.1333, "value": -3.18 } + ], + "translate": [ + { + "x": 12.68, + "y": -2.67, + "curve": [ 0.042, 12.68, 0.125, 22.76, 0.042, -2.67, 0.125, -3.36 ] + }, + { + "time": 0.1667, + "x": 22.76, + "y": -3.36, + "curve": [ 0.283, 22.76, 0.517, 9.26, 0.283, -3.36, 0.517, -0.42 ] + }, + { + "time": 0.6333, + "x": 9.26, + "y": -0.42, + "curve": [ 0.658, 9.26, 0.708, 12.68, 0.658, -0.42, 0.708, -2.67 ] + }, + { "time": 0.7333, "x": 12.68, "y": -2.67 } + ] + }, + "saddle-strap-front": { + "rotate": [ + { + "value": -0.37, + "curve": [ 0.067, -0.37, 0.2, -0.95 ] + }, + { + "time": 0.2667, + "value": -0.95, + "curve": [ 0.325, -0.95, 0.466, -15.05 ] + }, + { + "time": 0.5, + "value": -17.95, + "curve": [ 0.567, -23.58, 0.6, -27.12 ] + }, + { + "time": 0.6333, + "value": -27.12, + "curve": [ 0.658, -27.12, 0.688, -23.12 ] + }, + { + "time": 0.7333, + "value": -18.56, + "curve": [ 0.75, -16.89, 0.803, -13.87 ] + }, + { + "time": 0.8333, + "value": -12.02, + "curve": [ 0.866, -10.04, 0.97, -6.28 ] + }, + { + "time": 1.0667, + "value": -6.13, + "curve": [ 1.133, -6.02, 1.204, -10.67 ] + }, + { + "time": 1.2667, + "value": -10.07, + "curve": [ 1.394, -8.87, 1.514, -1.13 ] + }, + { + "time": 1.6, + "value": -1.13, + "curve": [ 1.675, -1.13, 1.825, -6.56 ] + }, + { + "time": 1.9, + "value": -6.68, + "curve": [ 1.952, -6.76, 1.982, -6.39 ] + }, + { + "time": 2, + "value": -5.97, + "curve": [ 2.033, -5.22, 2.1, -0.37 ] + }, + { "time": 2.1333, "value": -0.37 } + ], + "translate": [ + { + "curve": [ 0.125, 0, 0.375, -17.92, 0.125, 0, 0.375, -1.75 ] + }, + { + "time": 0.5, + "x": -17.92, + "y": -1.75, + "curve": [ 0.589, -17.92, 0.707, -7.06, 0.589, -1.75, 0.707, -4.51 ] + }, + { + "time": 0.8333, + "x": -2.9, + "y": -6.57, + "curve": [ 1.102, 5.81, 1.414, 11.49, 1.102, -10.87, 1.414, -16.3 ] + }, + { + "time": 1.6, + "x": 11.49, + "y": -16.3, + "curve": [ 1.733, 11.49, 2, 0, 1.733, -16.3, 2, 0 ] + }, + { "time": 2.1333 } + ] + }, + "spineboy-back-arm-target": { + "translate": [ + {}, + { "time": 0.6333, "x": 56.17, "y": -58.56 }, + { "time": 0.8333, "x": 34.47, "y": -59.19 }, + { "time": 2.1333 } + ] + }, + "tail2": { + "rotate": [ + { + "value": -4.33, + "curve": [ 0.027, -1.91, 0.124, 3.51 ] + }, + { + "time": 0.1667, + "value": 6.45, + "curve": [ 0.211, 9.51, 0.278, 10.89 ] + }, + { + "time": 0.3333, + "value": 10.99, + "curve": [ 0.392, 11.09, 0.385, -13.61 ] + }, + { + "time": 0.5, + "value": -13.56, + "curve": [ 0.614, -13.52, 0.636, -5.75 ] + }, + { + "time": 0.7, + "value": -5.76, + "curve": [ 0.787, -5.77, 0.831, -10.17 ] + }, + { + "time": 0.9667, + "value": -10.46, + "curve": [ 1.072, -10.68, 1.279, -8.29 ] + }, + { + "time": 1.3333, + "value": -6.23, + "curve": [ 1.389, -4.11, 1.509, 5.53 ] + }, + { + "time": 1.5333, + "value": 9.75, + "curve": [ 1.551, 12.82, 1.619, 27.3 ] + }, + { + "time": 1.6667, + "value": 27.26, + "curve": [ 1.734, 27.21, 1.763, 9.86 ] + }, + { + "time": 1.8, + "value": 5.3, + "curve": [ 1.836, 0.84, 1.926, -9.62 ] + }, + { + "time": 2, + "value": -9.49, + "curve": [ 2.071, -9.36, 2.091, -7.25 ] + }, + { "time": 2.1333, "value": -4.33 } + ], + "translate": [ + { + "curve": [ 0.133, 0, 0.435, 3.44, 0.133, 0, 0.4, 0 ] + }, + { + "time": 0.5333, + "x": 11.88, + "curve": [ 0.618, 19.17, 0.84, 41.3, 0.575, 0, 0.848, 4.02 ] + }, + { + "time": 0.9667, + "x": 41.27, + "y": 4.03, + "curve": [ 1.78, 41.12, 1.763, 0.25, 1.213, 4.03, 1.848, 0.08 ] + }, + { "time": 2.1333 } + ] + }, + "tail4": { + "rotate": [ + { + "value": 13.37, + "curve": [ 0.033, 13.37, 0.101, 11.83 ] + }, + { + "time": 0.1333, + "value": 11.78, + "curve": [ 0.201, 11.66, 0.233, 16.73 ] + }, + { + "time": 0.2667, + "value": 16.73, + "curve": [ 0.289, 16.73, 0.316, 16.02 ] + }, + { + "time": 0.3333, + "value": 13.79, + "curve": [ 0.391, 6.36, 0.456, -4.32 ] + }, + { + "time": 0.4667, + "value": -5.61, + "curve": [ 0.482, -7.52, 0.499, -10.14 ] + }, + { + "time": 0.5667, + "value": -10.33, + "curve": [ 0.576, -10.36, 0.616, -10.01 ] + }, + { + "time": 0.6667, + "value": -8.03, + "curve": [ 0.781, -3.75, 0.935, 3.38 ] + }, + { + "time": 1, + "value": 4.13, + "curve": [ 1.033, 4.52, 1.063, 4.54 ] + }, + { + "time": 1.1333, + "value": 4.55, + "curve": [ 1.176, 4.56, 1.221, 4.12 ] + }, + { + "time": 1.2667, + "value": 4.18, + "curve": [ 1.349, 4.28, 1.417, 4.99 ] + }, + { + "time": 1.4333, + "value": 5.83, + "curve": [ 1.466, 7.48, 1.557, 19.49 ] + }, + { + "time": 1.6333, + "value": 19.57, + "curve": [ 1.775, 19.71, 1.857, 7.44 ] + }, + { + "time": 1.9667, + "value": 7.46, + "curve": [ 2.045, 7.48, 2.092, 13.37 ] + }, + { "time": 2.1333, "value": 13.37 } + ] + }, + "tail6": { + "rotate": [ + { + "value": 5.3, + "curve": [ 0.026, 7.49, 0.15, 12.9 ] + }, + { + "time": 0.2, + "value": 17.27, + "curve": [ 0.251, 21.71, 0.291, 24.53 ] + }, + { + "time": 0.3333, + "value": 24.59, + "curve": [ 0.403, 24.69, 0.376, -22.01 ] + }, + { + "time": 0.5333, + "value": -21.87, + "curve": [ 0.601, -21.81, 0.697, -13.33 ] + }, + { + "time": 0.7333, + "value": -10.11, + "curve": [ 0.748, -8.78, 0.863, 4.36 ] + }, + { + "time": 0.9333, + "value": 4.22, + "curve": [ 0.974, 4.13, 1.063, 1.22 ] + }, + { + "time": 1.1, + "value": 1.32, + "curve": [ 1.145, 1.44, 1.196, 6.12 ] + }, + { + "time": 1.2333, + "value": 6.08, + "curve": [ 1.279, 6.03, 1.324, -4.69 ] + }, + { + "time": 1.4333, + "value": -5.05, + "curve": [ 1.505, -5.28, 1.608, -1.45 ] + }, + { + "time": 1.6333, + "value": 0.1, + "curve": [ 1.647, 0.95, 1.722, 20.39 ] + }, + { + "time": 1.8, + "value": 20.34, + "curve": [ 1.888, 20.3, 1.878, -3.6 ] + }, + { + "time": 2, + "value": -3.58, + "curve": [ 2.055, -3.58, 2.121, 3.57 ] + }, + { "time": 2.1333, "value": 5.3 } + ] + }, + "tail8": { + "rotate": [ + { + "value": -10.89, + "curve": [ 0.081, -11.05, 0.147, 13.08 ] + }, + { + "time": 0.1667, + "value": 15.43, + "curve": [ 0.186, 17.83, 0.268, 21.77 ] + }, + { + "time": 0.3333, + "value": 21.83, + "curve": [ 0.472, 21.96, 0.454, -21.07 ] + }, + { + "time": 0.5, + "value": -21.25, + "curve": [ 0.544, -20.58, 0.551, -10.78 ] + }, + { + "time": 0.6, + "value": -10.88, + "curve": [ 0.618, -10.92, 0.651, -17.9 ] + }, + { + "time": 0.6667, + "value": -17.69, + "curve": [ 0.694, -17.33, 0.795, 1.24 ] + }, + { + "time": 0.8333, + "value": 3.93, + "curve": [ 0.858, 5.72, 0.886, 7.58 ] + }, + { + "time": 0.9333, + "value": 7.55, + "curve": [ 0.982, 7.53, 0.948, -9.49 ] + }, + { + "time": 1.0333, + "value": -9.59, + "curve": [ 1.083, -9.64, 1.1, -4.47 ] + }, + { + "time": 1.1333, + "value": -4.45, + "curve": [ 1.195, -4.4, 1.198, -11.22 ] + }, + { + "time": 1.2667, + "value": -11.14, + "curve": [ 1.314, -11.08, 1.359, -8.01 ] + }, + { + "time": 1.4667, + "value": -8.41, + "curve": [ 1.523, -8.63, 1.603, -26.32 ] + }, + { + "time": 1.6667, + "value": -26.16, + "curve": [ 1.702, -26.06, 1.729, 19.38 ] + }, + { + "time": 1.8, + "value": 19.14, + "curve": [ 1.862, 18.93, 1.956, -1.69 ] + }, + { + "time": 1.9667, + "value": -3.18, + "curve": [ 2.006, -8.48, 2.092, -10.76 ] + }, + { "time": 2.1333, "value": -10.89 } + ] + }, + "tail10": { + "rotate": [ + { + "value": -10.89, + "curve": [ 0.033, -10.89, 0.111, -30.73 ] + }, + { + "time": 0.1667, + "value": -30.9, + "curve": [ 0.229, -31.08, 0.335, 27.4 ] + }, + { + "time": 0.4, + "value": 27.6, + "curve": [ 0.439, 27.72, 0.524, -27.93 ] + }, + { + "time": 0.5667, + "value": -27.88, + "curve": [ 0.62, -27.81, 0.664, -24.25 ] + }, + { + "time": 0.7, + "value": -20.93, + "curve": [ 0.734, -17.79, 0.814, 5.46 ] + }, + { + "time": 0.8333, + "value": 13.09, + "curve": [ 0.842, 16.62, 0.87, 28.27 ] + }, + { + "time": 0.9, + "value": 28.51, + "curve": [ 0.947, 28.9, 0.985, -19.51 ] + }, + { + "time": 1, + "value": -22.12, + "curve": [ 1.01, -23.84, 1.038, -31.09 ] + }, + { + "time": 1.0667, + "value": -31.14, + "curve": [ 1.103, -31.22, 1.133, 19.55 ] + }, + { + "time": 1.1667, + "value": 19.35, + "curve": [ 1.201, 19.15, 1.213, -14.84 ] + }, + { + "time": 1.3, + "value": -14.94, + "curve": [ 1.347, -14.99, 1.37, 11.37 ] + }, + { + "time": 1.4, + "value": 11.31, + "curve": [ 1.432, 11.24, 1.523, -27.59 ] + }, + { + "time": 1.5333, + "value": -31.27, + "curve": [ 1.565, -42.53, 1.588, -42.01 ] + }, + { + "time": 1.6, + "value": -42.01, + "curve": [ 1.64, -41.99, 1.753, -25.24 ] + }, + { + "time": 1.7667, + "value": -18.25, + "curve": [ 1.778, -12.25, 1.82, 14.24 ] + }, + { + "time": 1.9, + "value": 14.82, + "curve": [ 1.929, 14.81, 2.041, -14.3 ] + }, + { + "time": 2.0667, + "value": -14.15, + "curve": [ 2.096, -13.98, 2.11, -10.93 ] + }, + { "time": 2.1333, "value": -10.89 } + ] + }, + "jaw-inside": { + "rotate": [ + {}, + { "time": 0.7667, "value": 13.77 }, + { "time": 2.1333 } + ], + "translate": [ + {}, + { "time": 0.6, "x": -4.3, "y": 4.48 }, + { "time": 0.7667, "x": -23.59, "y": -9.32 }, + { "time": 2.1333 } + ], + "scale": [ + { "time": 0.6 }, + { "time": 0.7667, "x": 1.119 }, + { "time": 2.1333 } + ] + }, + "bone": { + "rotate": [ + { + "curve": [ 0.042, 0, 0.125, 6.63 ] + }, + { + "time": 0.1667, + "value": 6.63, + "curve": [ 0.192, 6.63, 0.242, 2.54 ] + }, + { + "time": 0.2667, + "value": 2.54, + "curve": [ 0.308, 2.54, 0.406, 11.71 ] + }, + { + "time": 0.4333, + "value": 12.45, + "curve": [ 0.491, 14, 0.6, 14.87 ] + }, + { + "time": 0.7, + "value": 14.69, + "curve": [ 0.725, 14.64, 0.775, -1.4 ] + }, + { + "time": 0.8, + "value": -1.4, + "curve": [ 0.825, -1.4, 0.887, 5.02 ] + }, + { + "time": 0.9, + "value": 5.61, + "curve": [ 0.936, 7.29, 1, 9.11 ] + }, + { + "time": 1.0333, + "value": 9.11, + "curve": [ 1.058, 9.11, 1.108, 6.88 ] + }, + { + "time": 1.1333, + "value": 6.88, + "curve": [ 1.158, 6.88, 1.208, 10.51 ] + }, + { + "time": 1.2333, + "value": 10.51, + "curve": [ 1.258, 10.51, 1.308, 6.4 ] + }, + { + "time": 1.3333, + "value": 6.4, + "curve": [ 1.358, 6.4, 1.408, 14.34 ] + }, + { + "time": 1.4333, + "value": 14.34, + "curve": [ 1.45, 14.34, 1.496, 0.94 ] + }, + { + "time": 1.5, + "value": 0.49, + "curve": [ 1.525, -2.03, 1.575, -5.85 ] + }, + { + "time": 1.6, + "value": -5.85, + "curve": [ 1.625, -5.85, 1.675, 4.87 ] + }, + { + "time": 1.7, + "value": 4.87, + "curve": [ 1.717, 4.87, 1.75, -1.8 ] + }, + { + "time": 1.7667, + "value": -1.8, + "curve": [ 1.817, -1.8, 1.917, 13.56 ] + }, + { + "time": 1.9667, + "value": 13.56, + "curve": [ 2.008, 13.56, 2.092, 0 ] + }, + { "time": 2.1333 } + ] + }, + "bone2": { + "rotate": [ + { + "curve": [ 0.042, 0, 0.146, -2.69 ] + }, + { + "time": 0.1667, + "value": -4.33, + "curve": [ 0.219, -8.51, 0.262, -16.86 ] + }, + { + "time": 0.2667, + "value": -17.98, + "curve": [ 0.308, -27.29, 0.392, -48.51 ] + }, + { + "time": 0.4333, + "value": -48.51, + "curve": [ 0.5, -48.51, 0.633, 6.49 ] + }, + { + "time": 0.7, + "value": 6.49, + "curve": [ 0.725, 6.49, 0.765, 3.58 ] + }, + { + "time": 0.8, + "value": -1.4, + "curve": [ 0.848, -8.2, 0.875, -10.86 ] + }, + { + "time": 0.9, + "value": -10.86, + "curve": [ 0.933, -10.86, 1, -4.95 ] + }, + { + "time": 1.0333, + "value": -4.95, + "curve": [ 1.058, -4.95, 1.108, -14.48 ] + }, + { + "time": 1.1333, + "value": -14.48, + "curve": [ 1.158, -14.48, 1.208, -10.43 ] + }, + { + "time": 1.2333, + "value": -10.43, + "curve": [ 1.258, -10.43, 1.308, -28.38 ] + }, + { + "time": 1.3333, + "value": -28.38, + "curve": [ 1.358, -28.38, 1.43, -14.4 ] + }, + { + "time": 1.4333, + "value": -13.27, + "curve": [ 1.45, -7.85, 1.483, 0.49 ] + }, + { + "time": 1.5, + "value": 0.49, + "curve": [ 1.525, 0.49, 1.594, -14.84 ] + }, + { + "time": 1.6, + "value": -15.95, + "curve": [ 1.637, -22.9, 1.675, -38.34 ] + }, + { + "time": 1.7, + "value": -38.34, + "curve": [ 1.717, -38.34, 1.749, -24.54 ] + }, + { + "time": 1.7667, + "value": -21.29, + "curve": [ 1.81, -13.5, 1.902, -4.2 ] + }, + { + "time": 1.9667, + "value": 2.36, + "curve": [ 2, 5.78, 2.022, 7.84 ] + }, + { + "time": 2.0667, + "value": 8.12, + "curve": [ 2.1, 8.33, 2.1, 0 ] + }, + { "time": 2.1333 } + ] + }, + "bone3": { + "rotate": [ + { + "curve": [ 0.025, 0, 0.064, -0.37 ] + }, + { + "time": 0.1, + "value": -2.21, + "curve": [ 0.125, -3.49, 0.155, -5.64 ] + }, + { + "time": 0.1667, + "value": -6.06, + "curve": [ 0.208, -7.52, 0.242, -7.08 ] + }, + { + "time": 0.2667, + "value": -7.08, + "curve": [ 0.375, -7.08, 0.558, 14.69 ] + }, + { + "time": 0.6667, + "value": 14.69, + "curve": [ 0.692, 14.69, 0.775, -1.4 ] + }, + { + "time": 0.8, + "value": -1.4, + "curve": [ 0.817, -1.4, 0.883, 3.9 ] + }, + { + "time": 0.9, + "value": 3.9, + "curve": [ 0.939, 3.9, 0.98, 3.03 ] + }, + { + "time": 1.0333, + "value": 2.98, + "curve": [ 1.076, 2.94, 1.149, 3.42 ] + }, + { + "time": 1.1667, + "value": 3.92, + "curve": [ 1.185, 4.42, 1.222, 5.94 ] + }, + { + "time": 1.2667, + "value": 5.9, + "curve": [ 1.299, 5.87, 1.305, 0.43 ] + }, + { + "time": 1.3667, + "value": 0.38, + "curve": [ 1.432, 0.32, 1.437, 2.12 ] + }, + { + "time": 1.4667, + "value": 2.12, + "curve": [ 1.491, 2.12, 1.514, -6.82 ] + }, + { + "time": 1.5667, + "value": -9.65, + "curve": [ 1.582, -10.49, 1.616, -10.48 ] + }, + { + "time": 1.6333, + "value": -10.48, + "curve": [ 1.65, -10.48, 1.725, -3.32 ] + }, + { + "time": 1.7667, + "value": -1.8, + "curve": [ 1.786, -1.1, 1.932, 0.99 ] + }, + { + "time": 1.9667, + "value": 1.81, + "curve": [ 1.989, 2.33, 2.006, 6.83 ] + }, + { + "time": 2.0333, + "value": 6.85, + "curve": [ 2.065, 6.87, 2.109, 0 ] + }, + { "time": 2.1333 } + ] + }, + "bone4": { + "rotate": [ + { + "curve": [ 0.025, 0, 0.064, 0.8 ] + }, + { + "time": 0.1, + "value": -1.04, + "curve": [ 0.125, -2.32, 0.16, -5.18 ] + }, + { + "time": 0.1667, + "value": -5.78, + "curve": [ 0.207, -9.38, 0.242, -15.67 ] + }, + { + "time": 0.2667, + "value": -15.67, + "curve": [ 0.375, -15.67, 0.558, 14.69 ] + }, + { + "time": 0.6667, + "value": 14.69, + "curve": [ 0.692, 14.69, 0.775, -1.4 ] + }, + { + "time": 0.8, + "value": -1.4, + "curve": [ 0.817, -1.4, 0.883, 3.9 ] + }, + { + "time": 0.9, + "value": 3.9, + "curve": [ 0.939, 3.9, 0.984, 2.94 ] + }, + { + "time": 1.0333, + "value": 3, + "curve": [ 1.085, 3.06, 1.133, 3.41 ] + }, + { + "time": 1.1667, + "value": 4.6, + "curve": [ 1.213, 6.21, 1.234, 8.82 ] + }, + { + "time": 1.2667, + "value": 8.27, + "curve": [ 1.302, 7.7, 1.313, 0.66 ] + }, + { + "time": 1.3667, + "value": 0.43, + "curve": [ 1.413, 0.24, 1.437, 3 ] + }, + { + "time": 1.4667, + "value": 3, + "curve": [ 1.491, 3, 1.515, -15.25 ] + }, + { + "time": 1.5667, + "value": -15.03, + "curve": [ 1.601, -14.89, 1.626, -12.84 ] + }, + { + "time": 1.6333, + "value": -12.25, + "curve": [ 1.674, -9, 1.75, -1.8 ] + }, + { + "time": 1.7667, + "value": -1.8, + "curve": [ 1.784, -1.8, 1.804, -12.17 ] + }, + { + "time": 1.8333, + "value": -12.06, + "curve": [ 1.872, -11.93, 1.935, -3.2 ] + }, + { + "time": 1.9667, + "value": 1.81, + "curve": [ 1.986, 4.89, 2.008, 10.05 ] + }, + { + "time": 2.0333, + "value": 9.69, + "curve": [ 2.07, 9.18, 2.088, 0 ] + }, + { "time": 2.1333 } + ] + }, + "bone5": { + "rotate": [ + { + "curve": [ 0.025, 0, 0.062, 28.42 ] + }, + { + "time": 0.1, + "value": 28.6, + "curve": [ 0.147, 28.83, 0.153, 11.26 ] + }, + { + "time": 0.1667, + "value": 7.14, + "curve": [ 0.184, 2.13, 0.242, -3.09 ] + }, + { + "time": 0.2667, + "value": -3.09, + "curve": [ 0.375, -3.09, 0.558, 14.69 ] + }, + { + "time": 0.6667, + "value": 14.69, + "curve": [ 0.692, 14.69, 0.775, -1.4 ] + }, + { + "time": 0.8, + "value": -1.4, + "curve": [ 0.817, -1.4, 0.883, 3.9 ] + }, + { + "time": 0.9, + "value": 3.9, + "curve": [ 0.939, 3.9, 0.985, -10.79 ] + }, + { + "time": 1.0333, + "value": -11.13, + "curve": [ 1.076, -11.41, 1.131, 1.61 ] + }, + { + "time": 1.1667, + "value": 9.66, + "curve": [ 1.176, 11.68, 1.223, 16.67 ] + }, + { + "time": 1.2667, + "value": 17.42, + "curve": [ 1.291, 17.84, 1.325, 1.33 ] + }, + { + "time": 1.3667, + "value": 1.77, + "curve": [ 1.4, 2.12, 1.437, 13.5 ] + }, + { + "time": 1.4667, + "value": 13.5, + "curve": [ 1.491, 13.5, 1.53, 12.52 ] + }, + { + "time": 1.5667, + "value": 6.34, + "curve": [ 1.592, 2.04, 1.625, -8.5 ] + }, + { + "time": 1.6333, + "value": -9.29, + "curve": [ 1.668, -12.54, 1.752, -12.67 ] + }, + { + "time": 1.7667, + "value": -13.33, + "curve": [ 1.796, -14.63, 1.798, -16.98 ] + }, + { + "time": 1.8333, + "value": -16.88, + "curve": [ 1.885, -16.74, 1.93, -6.63 ] + }, + { + "time": 1.9667, + "value": 1.81, + "curve": [ 1.989, 7.11, 2.008, 15.58 ] + }, + { + "time": 2.0333, + "value": 15.21, + "curve": [ 2.07, 14.7, 2.109, 0 ] + }, + { "time": 2.1333 } + ] + }, + "front-leg1": { + "rotate": [ + { "value": -10.53 } + ] + }, + "spineboy-front-foot-target": { + "translate": [ + { + "curve": [ 0.075, 0, 0.225, 12.33, 0.075, 0, 0.225, 10.25 ] + }, + { + "time": 0.3, + "x": 12.33, + "y": 10.25, + "curve": [ 0.758, 12.33, 1.675, 0, 0.758, 10.25, 1.675, 0 ] + }, + { "time": 2.1333 } + ] + }, + "front-arm": { + "rotate": [ + { + "value": -14.35, + "curve": [ 0.133, -14.35, 0.4, -19.58 ] + }, + { "time": 0.5333, "value": -19.58 } + ], + "translate": [ + { + "curve": [ 0.033, 0, 0.1, -7.25, 0.033, 0, 0.1, -6.08 ] + }, + { + "time": 0.1333, + "x": -7.25, + "y": -6.08, + "curve": [ 0.167, -7.25, 0.233, -9.9, 0.167, -6.08, 0.233, -6.36 ] + }, + { + "time": 0.2667, + "x": -9.9, + "y": -6.36, + "curve": [ 0.292, -9.9, 0.342, -18.75, 0.292, -6.36, 0.342, -3.94 ] + }, + { + "time": 0.3667, + "x": -18.75, + "y": -3.94, + "curve": [ 0.442, -18.75, 0.592, -6.67, 0.442, -3.94, 0.621, -5.2 ] + }, + { + "time": 0.6667, + "x": -6.67, + "y": -5.49, + "curve": [ 0.766, -6.67, 0.886, -6.5, 0.906, -7.04, 0.862, -6.67 ] + }, + { + "time": 1, + "x": -6.32, + "y": -7.71, + "curve": [ 1.142, -6.09, 1.277, -5.84, 1.153, -8.88, 1.277, -10.04 ] + }, + { + "time": 1.3667, + "x": -5.84, + "y": -10.04, + "curve": [ 1.415, -5.84, 1.452, -5.89, 1.415, -10.04, 1.434, -9.81 ] + }, + { + "time": 1.4667, + "x": -5.93, + "y": -9.67, + "curve": [ 1.567, -6.22, 1.62, -6.67, 1.51, -9.48, 1.71, -9.28 ] + }, + { + "time": 1.8, + "x": -6.67, + "y": -9.26, + "curve": [ 1.883, -6.67, 2.05, 0, 1.883, -9.25, 2.05, 0 ] + }, + { "time": 2.1333 } + ], + "scale": [ + { + "curve": [ 0.036, 1, 0.083, 1.024, 0.036, 1, 0.083, 1.001 ] + }, + { + "time": 0.1333, + "x": 1.024, + "y": 1.001, + "curve": [ 0.259, 1.024, 0.411, 1, 0.259, 1.001, 0.411, 1 ] + }, + { + "time": 0.5, + "curve": [ 0.575, 1, 0.592, 1.192, 0.575, 1, 0.592, 1 ] + }, + { + "time": 0.6667, + "x": 1.192, + "curve": [ 0.75, 1.192, 0.858, 1.081, 0.75, 1, 0.858, 1 ] + }, + { + "time": 0.9333, + "x": 1.081, + "curve": [ 1.017, 1.081, 0.917, 1.085, 1.017, 1, 0.917, 1 ] + }, + { + "time": 1, + "x": 1.085, + "curve": [ 1.1, 1.085, 1.267, 1.087, 1.1, 1, 1.267, 1 ] + }, + { + "time": 1.3667, + "x": 1.087, + "curve": [ 1.375, 1.087, 1.418, 1.125, 1.375, 1, 1.418, 1 ] + }, + { + "time": 1.4667, + "x": 1.162, + "curve": [ 1.502, 1.188, 1.676, 1.354, 1.502, 1, 1.676, 1 ] + }, + { + "time": 1.8, + "x": 1.301, + "curve": [ 1.841, 1.284, 2.109, 1, 1.841, 1, 2.109, 1 ] + }, + { "time": 2.1333 } + ] + }, + "stirrup": { + "rotate": [ + {}, + { "time": 0.4333, "value": -19.63 }, + { "time": 0.8333, "value": -15.18 }, + { "time": 1.3333, "value": -5.96 }, + { "time": 1.7667, "value": -18.16 }, + { "time": 2.1333 } + ], + "translate": [ + {}, + { "time": 0.4333, "x": -1.45, "y": 16.31, "curve": "stepped" }, + { "time": 1, "x": -1.45, "y": 16.31 }, + { "time": 2.1333 } + ] + }, + "back-arm": { + "rotate": [ + { "value": 44.83 } + ], + "scale": [ + { "time": 0.4667 }, + { "time": 0.5667, "x": 1.088 }, + { "time": 0.6667, "x": 1.311 }, + { "time": 0.7667, "x": 1.211 }, + { "time": 1.2, "x": 1.008 }, + { "time": 1.5667, "x": 1.137 }, + { "time": 1.8333 } + ] + }, + "back-bracer": { + "rotate": [ + { "value": -108.62 } + ] + }, + "back-leg1": { + "rotate": [ + { "value": -8.96 } + ] + }, + "back-leg2": { + "rotate": [ + { "value": -19.65 } + ] + }, + "back-leg3": { + "rotate": [ + { "value": 19.47 } + ] + }, + "back-foot1": { + "rotate": [ + { "value": 1.53 } + ] + }, + "back-thigh": { + "rotate": [ + { "value": 6.63 } + ] + }, + "back-knee": { + "rotate": [ + { "value": -8.23 } + ] + }, + "front-bracer": { + "rotate": [ + { "value": 72.21 } + ] + }, + "front-leg2": { + "rotate": [ + { "value": -9.63 } + ] + }, + "front-leg3": { + "rotate": [ + { "value": 3.66 } + ] + }, + "front-foot1": { + "rotate": [ + { "value": 0.4 } + ] + }, + "front-thigh": { + "rotate": [ + { "value": 8.81 } + ] + }, + "lower-leg": { + "rotate": [ + { "value": -12.66 } + ] + }, + "stirrup-strap1": { + "rotate": [ + { "value": 5.25 } + ] + }, + "stirrup-strap2": { + "rotate": [ + { "value": -9.39 } + ] + }, + "head-control": { + "translate": [ + { + "curve": [ 0.054, 0, 0.199, -1.25, 0.072, 1.29, 0.192, -16.81 ] + }, + { + "time": 0.2333, + "x": -7.11, + "y": -16.81, + "curve": [ 0.327, -23.29, 0.379, -49.73, 0.317, -16.81, 0.452, 14.65 ] + }, + { + "time": 0.5667, + "x": -48.04, + "y": 14.37, + "curve": [ 0.653, -47.8, 0.826, -35.85, 0.674, 14.1, 0.729, -25.53 ] + }, + { + "time": 0.8333, + "x": -35.79, + "y": -25.53, + "curve": [ 0.867, -35.49, 0.908, -35.48, 0.858, -25.53, 0.908, -15.45 ] + }, + { + "time": 0.9333, + "x": -35.48, + "y": -15.45, + "curve": [ 0.967, -35.48, 1.039, -37.97, 0.967, -15.45, 1.033, -22.04 ] + }, + { + "time": 1.0667, + "x": -39.2, + "y": -22.04, + "curve": [ 1.135, -42.29, 1.163, -43.43, 1.1, -22.04, 1.167, -6.45 ] + }, + { + "time": 1.2, + "x": -44.12, + "y": -6.45, + "curve": [ 1.24, -44.87, 1.325, -45.15, 1.242, -6.45, 1.287, -13.6 ] + }, + { + "time": 1.3667, + "x": -45.15, + "y": -13.61, + "curve": [ 1.417, -45.15, 1.517, -47.61, 1.448, -13.61, 1.509, -1.81 ] + }, + { + "time": 1.5667, + "x": -47.61, + "y": -1.61, + "curve": [ 1.617, -47.61, 1.671, -48.3, 1.653, -1.32, 1.756, -23.41 ] + }, + { + "time": 1.7667, + "x": -37.45, + "y": -28.41, + "curve": [ 1.791, -34.66, 1.814, -20.75, 1.796, -41.85, 1.804, -47.93 ] + }, + { + "time": 1.8333, + "x": -18.68, + "y": -47.78, + "curve": [ 1.92, -9.88, 1.961, -5.23, 1.906, -47.41, 1.952, -34.09 ] + }, + { + "time": 2, + "x": -3.41, + "y": -22.62, + "curve": [ 2.045, -1.31, 2.1, 0, 2.013, -19.49, 2.1, 0 ] + }, + { "time": 2.1333 } + ] + }, + "leg-control": { + "translate": [ + { + "curve": [ 0.017, 0, 0.05, 0, 0.017, 0, 0.05, 102.43 ] + }, + { + "time": 0.0667, + "y": 102.43, + "curve": [ 0.1, 0, 0.15, 0, 0.1, 102.43, 0.15, 97.83 ] + }, + { + "time": 0.2, + "y": 93.23, + "curve": [ 0.223, 0, 0.246, 0, 0.223, 91.13, 0.246, -33.33 ] + }, + { + "time": 0.2667, + "y": -34.99, + "curve": [ 0.292, 0, 0.315, 0, 0.292, -36.97, 0.315, 84.03 ] + }, + { + "time": 0.3333, + "y": 84.03, + "curve": [ 0.35, 0, 0.383, 0, 0.35, 84.03, 0.383, 22.16 ] + }, + { + "time": 0.4, + "y": 22.16, + "curve": [ 0.467, 0, 0.6, 11.4, 0.467, 22.16, 0.6, -252.93 ] + }, + { + "time": 0.6667, + "x": 11.4, + "y": -252.93, + "curve": [ 0.7, 11.4, 0.767, 11.4, 0.7, -252.93, 0.767, -174.39 ] + }, + { + "time": 0.8, + "x": 11.4, + "y": -174.39, + "curve": [ 0.825, 11.4, 0.875, 11.4, 0.825, -174.39, 0.875, -201.79 ] + }, + { + "time": 0.9, + "x": 11.4, + "y": -201.79, + "curve": [ 0.925, 11.4, 0.975, 11.4, 0.925, -201.79, 0.975, -174.33 ] + }, + { + "time": 1, + "x": 11.4, + "y": -174.33, + "curve": [ 1.033, 11.4, 1.1, 11.4, 1.033, -174.33, 1.1, -221.22 ] + }, + { + "time": 1.1333, + "x": 11.4, + "y": -221.22, + "curve": [ 1.167, 11.4, 1.233, 11.4, 1.167, -221.22, 1.233, -167.36 ] + }, + { + "time": 1.2667, + "x": 11.4, + "y": -167.36, + "curve": [ 1.308, 11.4, 1.392, 11.4, 1.308, -167.36, 1.392, -214.56 ] + }, + { + "time": 1.4333, + "x": 11.4, + "y": -214.56, + "curve": [ 1.508, 11.4, 1.725, 11.4, 1.508, -214.56, 1.725, 48.39 ] + }, + { + "time": 1.8, + "x": 11.4, + "y": 48.39, + "curve": [ 1.857, 11.4, 1.953, 6.13, 1.857, 48.39, 1.953, -139.31 ] + }, + { + "time": 2.0333, + "x": 2.76, + "y": -153.62, + "curve": [ 2.072, 1.2, 2.107, 0, 2.072, -160.25, 2.107, 0 ] + }, + { "time": 2.1333 } + ] + } + }, + "ik": { + "front-leg-ik": [ + { "softness": 73.5, "bendPositive": false } + ], + "spineboy-back-arm-ik": [ + { "softness": 15.4, "stretch": true } + ], + "spineboy-front-arm-ik": [ + { "softness": 15, "stretch": true } + ], + "spineboy-front-leg-ik": [ + { "softness": 19.9, "bendPositive": false } + ] + }, + "drawOrder": [ + { + "offsets": [ + { "slot": "raptor-horn", "offset": 4 }, + { "slot": "front-thigh", "offset": -5 } + ] + } + ] + }, + "walk": { + "slots": { + "raptor-jaw-inside": { + "rgba": [ + { "color": "646464ff" }, + { "time": 0.6333, "color": "808080ff" }, + { "time": 1.2667, "color": "646464ff" } + ] + }, + "tail-shadow": { + "rgba": [ + { + "color": "00000000", + "curve": [ 0.158, 0, 0.442, 0, 0.158, 0, 0.442, 0, 0.158, 0, 0.442, 0, 0.158, 0, 0.441, 0.2 ] + }, + { + "time": 0.6, + "color": "00000033", + "curve": [ 0.633, 0, 1.075, 0, 0.633, 0, 1.075, 0, 0.633, 0, 1.075, 0, 0.805, 0.2, 1.075, 0 ] + }, + { "time": 1.2333, "color": "00000000" } + ], + "attachment": [ + { "name": "raptor-tail-shadow" } + ] + } + }, + "bones": { + "front-foot-target": { + "rotate": [ + { + "curve": [ 0.092, 0, 0.27, -32.53 ] + }, + { + "time": 0.3667, + "value": -51.26, + "curve": [ 0.411, -59.91, 0.559, -84.04 ] + }, + { + "time": 0.6333, + "value": -84.29, + "curve": [ 1.183, -83.79, 1.129, 0.25 ] + }, + { "time": 1.2667 } + ], + "translate": [ + { "x": 381.92, "y": 36.5 }, + { "time": 0.6333, "x": -134.72, "y": 37.42 }, + { + "time": 0.7, + "x": -171.19, + "y": 126.07, + "curve": [ 0.733, -171.19, 0.798, -142.14, 0.74, 182.63, 0.8, 238.01 ] + }, + { + "time": 0.8333, + "x": -70.41, + "y": 238.01, + "curve": [ 0.845, -46.13, 1.125, 418.07, 0.983, 235.62, 1.129, 141.43 ] + }, + { + "time": 1.1667, + "x": 418.07, + "y": 115.18, + "curve": [ 1.192, 418.07, 1.231, 404.25, 1.202, 89.98, 1.2, 84.96 ] + }, + { "time": 1.2667, "x": 381.92, "y": 36.5 } + ] + }, + "hip": { + "rotate": [ + { + "value": -4.78, + "curve": [ 0.033, -4.18, 0.05, -3.99 ] + }, + { + "time": 0.0667, + "value": -3.99, + "curve": [ 0.142, -3.99, 0.292, -12.5 ] + }, + { + "time": 0.3667, + "value": -12.5, + "curve": [ 0.477, -12.56, 0.584, -4.05 ] + }, + { + "time": 0.7, + "value": -3.99, + "curve": [ 0.775, -3.89, 0.925, -12.5 ] + }, + { + "time": 1, + "value": -12.5, + "curve": [ 1.067, -12.5, 1.216, -6.08 ] + }, + { "time": 1.2667, "value": -4.78 } + ], + "translate": [ + { + "x": 161.93, + "y": 34.05, + "curve": [ 0.022, 155.35, 0.047, 146.41, 0.021, 20.48, 0.039, 1.4 ] + }, + { + "time": 0.0667, + "x": 146.25, + "y": 1.68, + "curve": [ 0.124, 146.16, 0.29, 209.86, 0.18, 2.76, 0.294, 142.08 ] + }, + { + "time": 0.4, + "x": 209.5, + "y": 140.69, + "curve": [ 0.562, 208.96, 0.624, 145.35, 0.537, 141.96, 0.63, 4.69 ] + }, + { + "time": 0.7, + "x": 145.67, + "y": 2.06, + "curve": [ 0.745, 145.86, 0.928, 209.19, 0.818, 3.05, 0.95, 138.66 ] + }, + { + "time": 1.0333, + "x": 209.19, + "y": 139.3, + "curve": [ 1.1, 209.19, 1.221, 175.02, 1.13, 140.4, 1.235, 58.97 ] + }, + { "time": 1.2667, "x": 161.93, "y": 34.05 } + ] + }, + "back-foot-target": { + "rotate": [ + { + "value": -80.75, + "curve": [ 0.198, -90.08, 0.228, -92.2 ] + }, + { + "time": 0.3667, + "value": -92.34, + "curve": [ 0.42, -92.39, 0.517, -45.34 ] + }, + { + "time": 0.5667, + "value": -45.34, + "curve": [ 0.655, -45.71, 1.097, -71.9 ] + }, + { "time": 1.2667, "value": -80.75 } + ], + "translate": [ + { + "x": -187.61, + "y": -15.47, + "curve": [ 0.049, -223.65, 0.093, -245.68, 0.092, -17.15, 0.095, -1.05 ] + }, + { + "time": 0.1333, + "x": -245.95, + "y": 31.3, + "curve": [ 0.166, -245.38, 0.315, 6.48, 0.173, 64.21, 0.228, 125.64 ] + }, + { + "time": 0.3667, + "x": 86.5, + "y": 124.4, + "curve": [ 0.382, 110.05, 0.518, 358.22, 0.462, 123.17, 0.549, 44.45 ] + }, + { + "time": 0.5667, + "x": 361.92, + "y": 29.91, + "curve": [ 0.583, 361.92, 0.579, 373.34, 0.597, 4.36, 0.603, 0.79 ] + }, + { "time": 0.6333, "x": 316.72, "y": -26.42 }, + { "time": 1.2667, "x": -187.61, "y": -15.47 } + ] + }, + "front-leg1": { + "translate": [ + { + "curve": [ 0.017, 0, 0.3, 0.01, 0.017, 0, 0.293, 13.2 ] + }, + { + "time": 0.3667, + "x": -0.27, + "y": 13.9, + "curve": [ 0.46, -0.66, 0.548, -1.22, 0.44, 14.6, 0.57, 15.77 ] + }, + { + "time": 0.6333, + "x": -2.25, + "y": 16.95, + "curve": [ 0.705, -3.11, 0.783, -4.75, 0.697, 18.15, 0.783, 31.94 ] + }, + { + "time": 0.8333, + "x": -4.75, + "y": 31.94, + "curve": [ 0.875, -4.75, 0.963, -4.5, 0.875, 31.94, 0.985, 27.76 ] + }, + { + "time": 1, + "x": -3.8, + "y": 25.55, + "curve": [ 1.07, -2.46, 1.2, 0, 1.033, 20.56, 1.2, 0 ] + }, + { "time": 1.2667 } + ] + }, + "front-leg-target": { + "translate": [ + { + "x": -18.05, + "y": -2.89, + "curve": [ 0.135, -18.7, 0.286, -40.73, 0.171, -2.56, 0.416, -51.29 ] + }, + { + "time": 0.5333, + "x": -42.2, + "y": -52.27, + "curve": [ 0.558, -42.2, 0.568, -44.03, 0.558, -52.27, 0.608, -22.52 ] + }, + { + "time": 0.6333, + "x": -36.87, + "y": -22.52, + "curve": [ 0.702, -29.26, 0.783, -26.32, 0.683, -22.52, 0.763, -44.03 ] + }, + { + "time": 0.8333, + "x": -26.32, + "y": -72.37, + "curve": [ 0.875, -26.32, 0.939, -42.98, 0.855, -81, 0.916, -109.88 ] + }, + { + "time": 1, + "x": -42.64, + "y": -109.99, + "curve": [ 1.176, -42.56, 1.221, -18.42, 1.18, -110.24, 1.217, -3.39 ] + }, + { "time": 1.2667, "x": -18.05, "y": -2.89 } + ] + }, + "back-leg-target": { + "rotate": [ + { "value": 2.39 } + ], + "translate": [ + { + "x": -24.54, + "y": 15.12, + "curve": [ 0.135, -24.49, 0.417, -40.42, 0.121, 14.56, 0.327, -140.88 ] + }, + { + "time": 0.5667, + "x": -40.21, + "y": -141.76, + "curve": [ 0.705, -40.01, 1.147, -24.39, 0.939, -143.13, 1.122, 15.12 ] + }, + { "time": 1.2667, "x": -24.54, "y": 15.12 } + ] + }, + "tail1": { + "rotate": [ + { + "value": -1.81, + "curve": [ 0.091, -1.81, 0.208, 12.33 ] + }, + { + "time": 0.3333, + "value": 12.33, + "curve": [ 0.431, 12.33, 0.532, -1.81 ] + }, + { + "time": 0.6333, + "value": -1.81, + "curve": [ 0.735, -1.81, 0.838, 11.62 ] + }, + { + "time": 0.9333, + "value": 11.62, + "curve": [ 1.06, 11.62, 1.176, -1.81 ] + }, + { "time": 1.2667, "value": -1.81 } + ] + }, + "torso1": { + "rotate": [ + { + "value": 7.22, + "curve": [ 0.048, 7.93, 0.072, 8.38 ] + }, + { + "time": 0.1333, + "value": 8.39, + "curve": [ 0.202, 8.4, 0.302, 2.44 ] + }, + { + "time": 0.3667, + "value": 2.44, + "curve": [ 0.433, 2.44, 0.588, 6.89 ] + }, + { + "time": 0.6, + "value": 7.22, + "curve": [ 0.618, 7.7, 0.683, 8.43 ] + }, + { + "time": 0.7333, + "value": 8.43, + "curve": [ 0.83, 8.43, 0.91, 2.42 ] + }, + { + "time": 0.9667, + "value": 2.42, + "curve": [ 1.033, 2.42, 1.212, 6.06 ] + }, + { "time": 1.2667, "value": 7.22 } + ] + }, + "saddle": { + "rotate": [ + { "value": -2.52 }, + { "time": 0.3667, "value": -4.17 }, + { "time": 0.6333, "value": -3.85 }, + { "time": 1, "value": -3.1 }, + { "time": 1.2667, "value": -2.52 } + ], + "translate": [ + { "x": 5.87, "y": -0.06 }, + { + "time": 0.3667, + "curve": [ 0.377, -0.01, 0.417, -0.04, 0.377, 1.66, 0.417, 5.92 ] + }, + { + "time": 0.4333, + "x": -0.04, + "y": 5.92, + "curve": [ 0.518, -0.04, 0.603, -6.88, 0.518, 5.92, 0.603, 1.38 ] + }, + { "time": 0.6333, "x": -8.81, "y": 0.1 }, + { "time": 0.7, "x": -7.83, "y": -2.27 }, + { + "time": 1, + "curve": [ 1.01, -0.01, 1.05, -0.04, 1.01, 1.66, 1.05, 5.92 ] + }, + { + "time": 1.0667, + "x": -0.04, + "y": 5.92, + "curve": [ 1.151, -0.04, 1.237, 4.57, 1.151, 5.92, 1.237, 1.25 ] + }, + { "time": 1.2667, "x": 5.87, "y": -0.06 } + ] + }, + "torso2": { + "rotate": [ + { + "value": -4.19, + "curve": [ 0.092, -4.19, 0.275, -2.54 ] + }, + { + "time": 0.3667, + "value": -2.54, + "curve": [ 0.433, -2.54, 0.567, -4.19 ] + }, + { + "time": 0.6333, + "value": -4.19, + "curve": [ 0.725, -4.19, 0.908, -2.57 ] + }, + { + "time": 1, + "value": -2.57, + "curve": [ 1.067, -2.57, 1.2, -4.19 ] + }, + { "time": 1.2667, "value": -4.19 } + ], + "translate": [ + { + "curve": [ 0.087, -1.87, 0.131, -1.57, 0.098, 9.88, 0.131, 12.61 ] + }, + { + "time": 0.1667, + "x": -1.57, + "y": 12.61, + "curve": [ 0.246, -1.57, 0.278, 8.5, 0.246, 12.61, 0.258, -10.38 ] + }, + { + "time": 0.3667, + "x": 8.38, + "y": -10.24, + "curve": [ 0.453, 8.25, 0.581, 1.81, 0.441, -10.14, 0.598, -3.48 ] + }, + { + "time": 0.6333, + "x": 0.09, + "curve": [ 0.666, -0.98, 0.764, -1.48, 0.667, 3.32, 0.764, 12.61 ] + }, + { + "time": 0.8, + "x": -1.48, + "y": 12.61, + "curve": [ 0.88, -1.48, 0.937, 8.5, 0.88, 12.61, 0.907, -10.4 ] + }, + { + "time": 1.0333, + "x": 8.38, + "y": -10.24, + "curve": [ 1.12, 8.26, 1.218, 2.68, 1.101, -10.15, 1.195, -5.21 ] + }, + { "time": 1.2667 } + ] + }, + "front-arm1": { + "rotate": [ + { + "value": -348.35, + "curve": [ 0.305, -348.39, 0.452, -330.1 ] + }, + { + "time": 0.6333, + "value": -329.45, + "curve": [ 0.927, -329.66, 0.992, -347.92 ] + }, + { "time": 1.2667, "value": -348.35 } + ], + "translate": [ + { + "x": 8.89, + "y": 9.56, + "curve": [ 0.065, 11.51, 0.276, 24.33, 0.111, 9.62, 0.302, 1.67 ] + }, + { + "time": 0.3667, + "x": 24.1, + "y": -1.47, + "curve": [ 0.479, 23.82, 0.545, 23.42, 0.424, -4.23, 0.533, -7.49 ] + }, + { + "time": 0.6333, + "x": 20.65, + "y": -7.55, + "curve": [ 0.724, 17.83, 0.908, 4.35, 0.725, -7.6, 0.903, -1.56 ] + }, + { + "time": 1, + "x": 4.35, + "y": 2.31, + "curve": [ 1.058, 4.35, 1.197, 6.14, 1.052, 4.38, 1.17, 9.44 ] + }, + { "time": 1.2667, "x": 8.89, "y": 9.56 } + ] + }, + "neck": { + "rotate": [ + { + "value": -22.13, + "curve": [ 0.092, -22.13, 0.275, -4.12 ] + }, + { + "time": 0.3667, + "value": -4.12, + "curve": [ 0.433, -4.12, 0.567, -22.13 ] + }, + { + "time": 0.6333, + "value": -22.13, + "curve": [ 0.725, -22.13, 0.908, -4.12 ] + }, + { + "time": 1, + "value": -4.12, + "curve": [ 1.067, -4.12, 1.2, -22.13 ] + }, + { "time": 1.2667, "value": -22.13 } + ], + "translate": [ + { + "x": 19.46, + "y": -14.29, + "curve": [ 0.046, 22.71, 0.064, 24.67, 0.027, -20.08, 0.067, -33.27 ] + }, + { + "time": 0.1, + "x": 24.7, + "y": -32.71, + "curve": [ 0.121, 24.71, 0.187, 5.34, 0.136, -32.09, 0.207, -18.93 ] + }, + { + "time": 0.2333, + "x": 5.16, + "y": -13.23, + "curve": [ 0.287, 4.94, 0.337, 5.54, 0.274, -4.5, 0.332, 3.98 ] + }, + { + "time": 0.3667, + "x": 7.2, + "y": 3.98, + "curve": [ 0.426, 10.51, 0.575, 18.6, 0.433, 3.98, 0.6, -8.7 ] + }, + { + "time": 0.6333, + "x": 21.66, + "y": -14.29, + "curve": [ 0.668, 23.45, 0.697, 24.53, 0.668, -20.07, 0.697, -32.36 ] + }, + { + "time": 0.7333, + "x": 24.7, + "y": -32.71, + "curve": [ 0.788, 24.95, 0.82, 4.99, 0.782, -33.17, 0.829, -21.82 ] + }, + { + "time": 0.8667, + "x": 5.16, + "y": -13.23, + "curve": [ 0.921, 5.36, 0.955, 6.02, 0.897, -6.22, 0.965, 3.98 ] + }, + { + "time": 1, + "x": 7.71, + "y": 3.98, + "curve": [ 1.046, 9.42, 1.17, 14.8, 1.067, 3.98, 1.227, -5.97 ] + }, + { "time": 1.2667, "x": 19.46, "y": -14.29 } + ] + }, + "back-arm1": { + "rotate": [ + { + "value": 36.77, + "curve": [ 0.275, 36.57, 0.464, 23.85 ] + }, + { + "time": 0.6333, + "value": 23.86, + "curve": [ 0.891, 23.91, 1.035, 36.68 ] + }, + { "time": 1.2667, "value": 36.77 } + ], + "translate": [ + { + "x": -20.37, + "y": -12.6, + "curve": [ 0.092, -20.37, 0.567, -30.85, 0.25, -12.16, 0.508, -9.49 ] + }, + { + "time": 0.6333, + "x": -30.85, + "y": -9.16, + "curve": [ 0.725, -30.85, 1.143, -20.51, 0.794, -9.16, 1.086, -12.8 ] + }, + { "time": 1.2667, "x": -20.37, "y": -12.6 } + ] + }, + "saddle-strap-back": { + "rotate": [ + { + "value": -5.12, + "curve": [ 0.042, -5.12, 0.104, -2.7 ] + }, + { + "time": 0.1667, + "value": 0.89, + "curve": [ 0.241, 5.11, 0.317, 10.59 ] + }, + { + "time": 0.3667, + "value": 10.59, + "curve": [ 0.433, 10.59, 0.567, 0.72 ] + }, + { + "time": 0.6333, + "value": 0.72, + "curve": [ 0.733, 0.72, 0.933, 7.72 ] + }, + { + "time": 1.0333, + "value": 7.72, + "curve": [ 1.092, 7.72, 1.208, -5.12 ] + }, + { "time": 1.2667, "value": -5.12 } + ] + }, + "front-arm2": { + "rotate": [ + { + "value": 20.46, + "curve": [ 0.092, 20.46, 0.29, 10.44 ] + }, + { + "time": 0.3667, + "value": 4.66, + "curve": [ 0.493, -4.86, 0.54, -11 ] + }, + { + "time": 0.6333, + "value": -11.14, + "curve": [ 0.725, -11.27, 0.934, 1.22 ] + }, + { + "time": 1, + "value": 6.77, + "curve": [ 1.042, 10.27, 1.15, 20.26 ] + }, + { "time": 1.2667, "value": 20.46 } + ] + }, + "head": { + "rotate": [ + { + "value": 21.27, + "curve": [ 0.121, 21.36, 0.118, 5.37 ] + }, + { + "time": 0.3333, + "value": 5.74, + "curve": [ 0.443, 5.92, 0.579, 20.65 ] + }, + { + "time": 0.6333, + "value": 20.71, + "curve": [ 0.761, 20.68, 0.8, 6.02 ] + }, + { + "time": 1.0333, + "value": 5.76, + "curve": [ 1.101, 5.8, 1.208, 21.57 ] + }, + { "time": 1.2667, "value": 21.27 } + ], + "translate": [ + { + "x": 9.88, + "y": -21.53, + "curve": [ 0.066, 2.9, 0.151, -2.12, 0.05, -24.49, 0.139, -28.72 ] + }, + { + "time": 0.2, + "x": -1.68, + "y": -28.94, + "curve": [ 0.281, -0.96, 0.392, 24.71, 0.278, -29.21, 0.37, -7.39 ] + }, + { + "time": 0.4667, + "x": 24.76, + "y": -6.79, + "curve": [ 0.645, 24.69, 0.668, -1.21, 0.622, -7.06, 0.597, -30.92 ] + }, + { + "time": 0.8, + "x": -1.47, + "y": -30.78, + "curve": [ 0.89, -1.64, 0.979, 25.37, 0.877, -30.73, 0.97, -7.01 ] + }, + { + "time": 1.0667, + "x": 25.27, + "y": -6.86, + "curve": [ 1.147, 25.19, 1.217, 15.2, 1.141, -6.75, 1.217, -18.56 ] + }, + { "time": 1.2667, "x": 9.88, "y": -21.53 } + ] + }, + "back-arm2": { + "rotate": [ + { + "value": -28.13, + "curve": [ 0.32, -28.07, 0.434, 0.42 ] + }, + { + "time": 0.6333, + "value": 0.31, + "curve": [ 0.941, 0.13, 0.968, -27.95 ] + }, + { "time": 1.2667, "value": -28.13 } + ] + }, + "stirrup": { + "rotate": [ + { "value": -17.15 }, + { "time": 0.3667, "value": -11.14 }, + { "time": 0.6333, "value": -6.95 }, + { "time": 1, "value": -11.84 }, + { "time": 1.2667, "value": -17.15 } + ], + "translate": [ + { "x": 8.98, "y": 4.99 }, + { "time": 0.3667, "x": 4.85, "y": 1 }, + { "time": 0.6333, "x": 7.76, "y": -2.99 }, + { "time": 1, "x": 4.85, "y": 1 }, + { "time": 1.2667, "x": 8.98, "y": 4.99 } + ] + }, + "front-foot2": { + "rotate": [ + { "value": 36.9 }, + { "time": 0.0667, "value": 7.88 }, + { "time": 0.1333, "value": 4.67 }, + { + "time": 0.5, + "value": 6.81, + "curve": [ 0.572, 7.04, 0.605, 6.97 ] + }, + { + "time": 0.6333, + "value": 6.25, + "curve": [ 0.686, 4.19, 0.708, -105.88 ] + }, + { + "time": 0.8, + "value": -104.63, + "curve": [ 0.955, -102.9, 1.188, 34.64 ] + }, + { "time": 1.2667, "value": 36.9 } + ] + }, + "front-hand": { + "rotate": [ + { + "value": -60.7, + "curve": [ 0.318, -60.68, 0.442, -6 ] + }, + { + "time": 0.6333, + "value": -6.02, + "curve": [ 0.847, -6.04, 1.076, -60.24 ] + }, + { "time": 1.2667, "value": -60.7 } + ] + }, + "horn-back": { + "translate": [ + { "x": 7.01, "y": 42.92 }, + { "time": 0.3667, "x": 13.17, "y": 33.39 }, + { "time": 0.6333, "x": 7.68, "y": 13.94 }, + { "time": 1, "x": 12.26, "y": 35.06 }, + { "time": 1.2667, "x": 7.01, "y": 42.92 } + ] + }, + "jaw": { + "rotate": [ + { + "value": -9.46, + "curve": [ 0.088, -9.55, 0.339, -16.63 ] + }, + { + "time": 0.3667, + "value": -17.51, + "curve": [ 0.562, -23.77, 0.8, -23.24 ] + }, + { + "time": 0.8333, + "value": -23.22, + "curve": [ 0.963, -23.18, 1.179, -9.56 ] + }, + { "time": 1.2667, "value": -9.46 } + ], + "translate": [ + { + "x": -0.34, + "y": -2.02, + "curve": [ 0.092, -0.34, 0.275, 0.79, 0.092, -2.02, 0.275, 9.47 ] + }, + { + "time": 0.3667, + "x": 0.79, + "y": 9.47, + "curve": [ 0.425, 0.79, 0.575, 0.93, 0.425, 9.47, 0.575, 6.04 ] + }, + { + "time": 0.6333, + "x": 0.93, + "y": 6.09, + "curve": [ 0.642, 0.93, 0.783, 0.79, 0.714, 6.16, 0.783, 9.47 ] + }, + { + "time": 0.8333, + "x": 0.79, + "y": 9.47, + "curve": [ 0.875, 0.79, 0.958, 0.57, 0.875, 9.47, 0.979, 7.85 ] + }, + { + "time": 1, + "x": 0.57, + "y": 7.17, + "curve": [ 1.067, 0.57, 1.2, -0.34, 1.083, 4.51, 1.2, -2.02 ] + }, + { "time": 1.2667, "x": -0.34, "y": -2.02 } + ] + }, + "back-foot2": { + "rotate": [ + { + "curve": [ 0.019, 0, 0.046, 0.68 ] + }, + { + "time": 0.0667, + "value": -2.42, + "curve": [ 0.127, -11.89, 0.157, -75.22 ] + }, + { + "time": 0.3, + "value": -74.35, + "curve": [ 0.372, -74.4, 0.44, -55.45 ] + }, + { + "time": 0.4667, + "value": -38.51, + "curve": [ 0.488, -24.72, 0.512, 30.14 ] + }, + { + "time": 0.6, + "value": 30.17, + "curve": [ 0.631, 30.18, 0.649, 17.16 ] + }, + { + "time": 0.6667, + "value": 2.1, + "curve": [ 0.758, 2.1, 1.2, 0 ] + }, + { "time": 1.2667 } + ] + }, + "back-hand": { + "rotate": [ + { + "value": -26.17, + "curve": [ 0.077, -26.23, 0.165, -15.08 ] + }, + { + "time": 0.2667, + "value": -15.07, + "curve": [ 0.348, -15.06, 0.514, -27.32 ] + }, + { + "time": 0.6333, + "value": -27.37, + "curve": [ 0.745, -27.37, 0.844, -14.99 ] + }, + { + "time": 1, + "value": -15.02, + "curve": [ 1.117, -15.05, 1.104, -26.34 ] + }, + { "time": 1.2667, "value": -26.17 } + ] + }, + "tongue1": { + "rotate": [ + { "value": 21.55 }, + { "time": 0.8, "value": 0.08 }, + { "time": 1.2667, "value": 21.55 } + ] + }, + "front-foot3": { + "rotate": [ + { "value": -1.65 }, + { + "time": 0.1, + "value": -3.94, + "curve": [ 0.158, -3.94, 0.308, -3.82 ] + }, + { + "time": 0.3667, + "value": -3.82, + "curve": [ 0.433, -3.82, 0.511, -6.36 ] + }, + { + "time": 0.6333, + "value": -6.62, + "curve": [ 0.701, -7.05, 0.687, 24.84 ] + }, + { + "time": 0.7333, + "value": 25.1, + "curve": [ 0.766, 25.1, 0.821, -23.09 ] + }, + { + "time": 0.8667, + "value": -22.96, + "curve": [ 0.975, -22.65, 1.139, 10.93 ] + }, + { + "time": 1.2, + "value": 10.93, + "curve": [ 1.217, 10.93, 1.267, 5.95 ] + }, + { "time": 1.2667, "value": -1.65 } + ] + }, + "tongue2": { + "rotate": [ + { + "value": -16.02, + "curve": [ 0.286, -15.88, 0.415, -3.2 ] + }, + { + "time": 0.6333, + "value": -3.21, + "curve": [ 0.988, -3.22, 1.102, -16.12 ] + }, + { "time": 1.2667, "value": -16.02 } + ] + }, + "tongue3": { + "rotate": [ + { + "value": -16.02, + "curve": [ 0.027, -12.15, 0.123, 0.49 ] + }, + { + "time": 0.2333, + "value": 0.44, + "curve": [ 0.457, 0.33, 0.862, -36.42 ] + }, + { + "time": 1.0667, + "value": -36.41, + "curve": [ 1.168, -36.41, 1.248, -19.42 ] + }, + { "time": 1.2667, "value": -16.02 } + ] + }, + "neck2": { + "rotate": [ + { "value": 24.69 } + ], + "translate": [ + { + "x": -6.84, + "y": -1.8, + "curve": [ 0.164, -6.45, 0.256, -6.42, 0.092, -1.8, 0.308, -0.45 ] + }, + { + "time": 0.4, + "x": -6.24, + "y": -0.45, + "curve": [ 0.514, -6.09, 0.567, -6.03, 0.467, -0.45, 0.567, -1.81 ] + }, + { + "time": 0.6333, + "x": -6.03, + "y": -1.81, + "curve": [ 0.725, -6.03, 0.908, -10.81, 0.725, -1.81, 0.908, -0.35 ] + }, + { + "time": 1, + "x": -10.81, + "y": -0.35, + "curve": [ 1.067, -10.81, 1.137, -7.65, 1.067, -0.35, 1.2, -1.8 ] + }, + { "time": 1.2667, "x": -6.84, "y": -1.8 } + ] + }, + "spineboy-hip": { + "translate": [ + { + "x": 53.69, + "y": -49.21, + "curve": [ 0.118, 53.52, 0.275, 16.15, 0.092, -49.21, 0.275, -32.56 ] + }, + { + "time": 0.3667, + "x": 16.15, + "y": -32.56, + "curve": [ 0.433, 16.15, 0.542, 53.47, 0.433, -32.56, 0.567, -49.21 ] + }, + { + "time": 0.6333, + "x": 53.69, + "y": -49.21, + "curve": [ 0.742, 53.95, 0.908, 15.73, 0.725, -49.21, 0.908, -29.74 ] + }, + { + "time": 1, + "x": 15.73, + "y": -29.74, + "curve": [ 1.067, 15.73, 1.11, 54.45, 1.067, -29.74, 1.2, -49.21 ] + }, + { "time": 1.2667, "x": 53.69, "y": -49.21 } + ] + }, + "spineboy-torso": { + "rotate": [ + { + "value": -37.55, + "curve": [ 0.092, -37.55, 0.275, -12.2 ] + }, + { + "time": 0.3667, + "value": -12.2, + "curve": [ 0.498, -12.2, 0.567, -37.66 ] + }, + { + "time": 0.6333, + "value": -37.66, + "curve": [ 0.725, -37.66, 0.908, -12.19 ] + }, + { + "time": 1, + "value": -12.19, + "curve": [ 1.131, -12.19, 1.2, -37.55 ] + }, + { "time": 1.2667, "value": -37.55 } + ] + }, + "front-arm": { + "translate": [ + { "y": -5.28 }, + { "time": 0.1333, "x": -3.61, "y": -8.36 }, + { "time": 0.3667, "x": -8.05, "y": -5.53 }, + { "time": 0.6333 }, + { "time": 1, "x": -7.45, "y": -1.99 }, + { "time": 1.2667, "y": -5.28 } + ] + }, + "gun": { + "rotate": [ + { + "value": -11.68, + "curve": [ 0.03, -14.01, 0.177, -31.16 ] + }, + { + "time": 0.3, + "value": -31.16, + "curve": [ 0.368, -31.16, 0.475, -9.46 ] + }, + { + "time": 0.5333, + "value": -9.58, + "curve": [ 0.737, -9.99, 0.77, -31.38 ] + }, + { + "time": 0.9333, + "value": -31.11, + "curve": [ 0.992, -31.11, 1.108, -9.58 ] + }, + { + "time": 1.1667, + "value": -9.58, + "curve": [ 1.192, -9.58, 1.236, -9.68 ] + }, + { "time": 1.2667, "value": -11.68 } + ], + "translate": [ + { + "curve": [ 0.042, -0.34, 0.098, -0.45, 0.039, -4.02, 0.098, -6.86 ] + }, + { + "time": 0.1333, + "x": -0.45, + "y": -6.86, + "curve": [ 0.194, -0.45, 0.256, 2.36, 0.194, -6.86, 0.245, 6.35 ] + }, + { + "time": 0.3333, + "x": 2.35, + "y": 6.16, + "curve": [ 0.439, 2.35, 0.579, 0.46, 0.418, 5.98, 0.6, 2.06 ] + }, + { + "time": 0.6333, + "curve": [ 0.668, -0.29, 0.731, -0.45, 0.679, -2.83, 0.731, -6.86 ] + }, + { + "time": 0.7667, + "x": -0.45, + "y": -6.86, + "curve": [ 0.828, -0.45, 0.89, 2.35, 0.828, -6.86, 0.899, 6.27 ] + }, + { + "time": 0.9667, + "x": 2.35, + "y": 6.16, + "curve": [ 1.053, 2.36, 1.213, 0.51, 1.051, 6.03, 1.226, 2.28 ] + }, + { "time": 1.2667 } + ] + }, + "tail2": { + "rotate": [ + { + "value": -12.17, + "curve": [ 0.091, -12.17, 0.207, -1.45 ] + }, + { + "time": 0.3333, + "value": -1.45, + "curve": [ 0.441, -1.45, 0.555, -12.17 ] + }, + { + "time": 0.6667, + "value": -12.17, + "curve": [ 0.896, -12.17, 0.874, -1.45 ] + }, + { + "time": 1, + "value": -1.45, + "curve": [ 1.107, -1.45, 1.117, -12.17 ] + }, + { "time": 1.2667, "value": -12.17 } + ] + }, + "tail3": { + "rotate": [ + { + "value": -7.15, + "curve": [ 0.083, -7.15, 0.25, 0.58 ] + }, + { + "time": 0.3333, + "value": 0.58, + "curve": [ 0.408, 0.58, 0.558, -7.15 ] + }, + { + "time": 0.6333, + "value": -7.15, + "curve": [ 0.717, -7.15, 0.883, 0.75 ] + }, + { + "time": 0.9667, + "value": 0.75, + "curve": [ 1.042, 0.75, 1.192, -7.15 ] + }, + { "time": 1.2667, "value": -7.15 } + ], + "translate": [ + { + "curve": [ 0.158, 0, 0.475, -9.87, 0.158, 0, 0.475, -0.87 ] + }, + { + "time": 0.6333, + "x": -9.87, + "y": -0.87, + "curve": [ 0.792, -9.87, 1.108, 0, 0.792, -0.87, 1.108, 0 ] + }, + { "time": 1.2667 } + ] + }, + "tail4": { + "rotate": [ + { + "value": -3.83, + "curve": [ 0.013, -4.23, 0.024, -4.53 ] + }, + { + "time": 0.0333, + "value": -4.53, + "curve": [ 0.068, -4.53, 0.116, -3.13 ] + }, + { + "time": 0.1667, + "value": -0.39, + "curve": [ 0.24, 3.5, 0.318, 9.15 ] + }, + { + "time": 0.3667, + "value": 9.15, + "curve": [ 0.442, 9.15, 0.592, -4.53 ] + }, + { + "time": 0.6667, + "value": -4.53, + "curve": [ 0.75, -4.53, 0.917, 9 ] + }, + { + "time": 1, + "value": 9, + "curve": [ 1.065, 9, 1.187, -1.17 ] + }, + { "time": 1.2667, "value": -3.83 } + ], + "translate": [ + { + "curve": [ 0.158, 0, 0.475, -4.06, 0.158, 0, 0.475, 0.32 ] + }, + { + "time": 0.6333, + "x": -4.06, + "y": 0.32, + "curve": [ 0.792, -4.06, 1.108, 0, 0.792, 0.32, 1.108, 0 ] + }, + { "time": 1.2667 } + ] + }, + "tail5": { + "rotate": [ + { + "value": -7.24, + "curve": [ 0.026, -8.78, 0.048, -9.9 ] + }, + { + "time": 0.0667, + "value": -9.9, + "curve": [ 0.093, -9.9, 0.129, -9.01 ] + }, + { + "time": 0.1667, + "value": -6.6, + "curve": [ 0.248, -1.49, 0.343, 7.39 ] + }, + { + "time": 0.4, + "value": 7.39, + "curve": [ 0.475, 7.39, 0.625, -9.9 ] + }, + { + "time": 0.7, + "value": -9.9, + "curve": [ 0.783, -9.9, 0.95, 7.29 ] + }, + { + "time": 1.0333, + "value": 7.29, + "curve": [ 1.09, 7.29, 1.19, -2.46 ] + }, + { "time": 1.2667, "value": -7.24 } + ], + "translate": [ + { + "curve": [ 0.158, 0, 0.475, -7.55, 0.158, 0, 0.475, 0.73 ] + }, + { + "time": 0.6333, + "x": -7.55, + "y": 0.73, + "curve": [ 0.792, -7.55, 1.108, 0, 0.792, 0.73, 1.108, 0 ] + }, + { "time": 1.2667 } + ] + }, + "tail6": { + "rotate": [ + { + "value": -4.22, + "curve": [ 0.038, -7.4, 0.074, -9.9 ] + }, + { + "time": 0.1, + "value": -9.9, + "curve": [ 0.119, -9.9, 0.142, -9.79 ] + }, + { + "time": 0.1667, + "value": -8.22, + "curve": [ 0.255, -2.85, 0.369, 9.89 ] + }, + { + "time": 0.4333, + "value": 9.89, + "curve": [ 0.508, 9.89, 0.658, -9.9 ] + }, + { + "time": 0.7333, + "value": -9.9, + "curve": [ 0.817, -9.9, 0.983, 10.12 ] + }, + { + "time": 1.0667, + "value": 10.12, + "curve": [ 1.115, 10.12, 1.196, 1.7 ] + }, + { "time": 1.2667, "value": -4.22 } + ], + "translate": [ + { + "curve": [ 0.158, 0, 0.475, -9.06, 0.158, 0, 0.475, 1.58 ] + }, + { + "time": 0.6333, + "x": -9.06, + "y": 1.58, + "curve": [ 0.792, -9.06, 1.108, 0, 0.792, 1.58, 1.108, 0 ] + }, + { "time": 1.2667 } + ] + }, + "tail7": { + "rotate": [ + { + "value": -0.76, + "curve": [ 0.051, -5.53, 0.1, -9.9 ] + }, + { + "time": 0.1333, + "value": -9.9, + "curve": [ 0.144, -9.9, 0.155, -10.45 ] + }, + { + "time": 0.1667, + "value": -9.89, + "curve": [ 0.257, -5.87, 0.394, 11.3 ] + }, + { + "time": 0.4667, + "value": 11.3, + "curve": [ 0.542, 11.3, 0.692, -9.9 ] + }, + { + "time": 0.7667, + "value": -9.9, + "curve": [ 0.85, -9.9, 1.017, 11.52 ] + }, + { + "time": 1.1, + "value": 11.52, + "curve": [ 1.141, 11.52, 1.205, 5.07 ] + }, + { "time": 1.2667, "value": -0.76 } + ], + "translate": [ + { + "curve": [ 0.158, 0, 0.475, -9.93, 0.158, 0, 0.475, 1.32 ] + }, + { + "time": 0.6333, + "x": -9.93, + "y": 1.32, + "curve": [ 0.792, -9.93, 1.108, 0, 0.792, 1.32, 1.108, 0 ] + }, + { "time": 1.2667 } + ] + }, + "tail8": { + "rotate": [ + { + "value": 4.71, + "curve": [ 0.062, -2.19, 0.126, -10.79 ] + }, + { + "time": 0.1667, + "value": -10.79, + "curve": [ 0.25, -10.79, 0.417, 16.46 ] + }, + { + "time": 0.5, + "value": 16.46, + "curve": [ 0.575, 16.46, 0.725, -9.9 ] + }, + { + "time": 0.8, + "value": -9.9, + "curve": [ 0.883, -9.9, 1.05, 15.57 ] + }, + { + "time": 1.1333, + "value": 15.57, + "curve": [ 1.167, 15.57, 1.217, 10.43 ] + }, + { "time": 1.2667, "value": 4.71 } + ], + "translate": [ + { + "curve": [ 0.158, 0, 0.475, -12.57, 0.158, 0, 0.475, 1.97 ] + }, + { + "time": 0.6333, + "x": -12.57, + "y": 1.97, + "curve": [ 0.792, -12.57, 1.108, 0, 0.792, 1.97, 1.108, 0 ] + }, + { "time": 1.2667 } + ] + }, + "tail9": { + "rotate": [ + { + "value": 7.95, + "curve": [ 0.072, 1.87, 0.151, -6.79 ] + }, + { + "time": 0.2, + "value": -6.79, + "curve": [ 0.283, -6.79, 0.45, 15.08 ] + }, + { + "time": 0.5333, + "value": 15.08, + "curve": [ 0.608, 15.08, 0.758, -6.79 ] + }, + { + "time": 0.8333, + "value": -6.79, + "curve": [ 0.917, -6.79, 1.083, 13.8 ] + }, + { + "time": 1.1667, + "value": 13.8, + "curve": [ 1.193, 13.8, 1.229, 11.28 ] + }, + { "time": 1.2667, "value": 7.95 } + ], + "translate": [ + { + "curve": [ 0.158, 0, 0.475, -15.36, 0.158, 0, 0.475, 2.18 ] + }, + { + "time": 0.6333, + "x": -15.36, + "y": 2.18, + "curve": [ 0.792, -15.36, 1.108, 0, 0.792, 2.18, 1.108, 0 ] + }, + { "time": 1.2667 } + ] + }, + "tail10": { + "rotate": [ + { + "value": 8.87, + "curve": [ 0.078, 3.96, 0.177, -5.98 ] + }, + { + "time": 0.2333, + "value": -5.98, + "curve": [ 0.317, -5.98, 0.483, 10.93 ] + }, + { + "time": 0.5667, + "value": 10.93, + "curve": [ 0.642, 10.93, 0.792, -5.98 ] + }, + { + "time": 0.8667, + "value": -5.98, + "curve": [ 0.95, -5.98, 1.117, 11.58 ] + }, + { + "time": 1.2, + "value": 11.58, + "curve": [ 1.219, 11.58, 1.242, 10.48 ] + }, + { "time": 1.2667, "value": 8.87 } + ], + "translate": [ + { + "curve": [ 0.158, 0, 0.475, -19.3, 0.158, 0, 0.475, 1.9 ] + }, + { + "time": 0.6333, + "x": -19.3, + "y": 1.9, + "curve": [ 0.792, -19.3, 1.108, 0, 0.792, 1.9, 1.108, 0 ] + }, + { "time": 1.2667 } + ] + }, + "horn-front": { + "translate": [ + { + "x": 3.46, + "y": -20.12, + "curve": [ 0.092, 3.46, 0.243, 3.41, 0.092, -20.12, 0.292, -6.08 ] + }, + { + "time": 0.3667, + "x": 3.57, + "y": -1.24, + "curve": [ 0.407, 3.63, 0.567, 5.09, 0.484, 6.36, 0.567, 11.01 ] + }, + { + "time": 0.6333, + "x": 5.09, + "y": 11.01, + "curve": [ 0.725, 5.09, 0.807, 2.74, 0.725, 11.01, 0.918, -0.08 ] + }, + { + "time": 1, + "x": 2.77, + "y": -5.87, + "curve": [ 1.116, 2.79, 1.2, 3.46, 1.049, -9.34, 1.2, -20.12 ] + }, + { "time": 1.2667, "x": 3.46, "y": -20.12 } + ] + }, + "saddle-strap-front": { + "rotate": [ + { + "value": 3.65, + "curve": [ 0.091, 3.65, 0.233, 5.42 ] + }, + { + "time": 0.3667, + "value": 5.41, + "curve": [ 0.45, 5.4, 0.566, 3.49 ] + }, + { + "time": 0.6333, + "value": 3.49, + "curve": [ 0.732, 3.49, 0.89, 5.39 ] + }, + { + "time": 1.0333, + "value": 5.38, + "curve": [ 1.112, 5.38, 1.207, 3.65 ] + }, + { "time": 1.2667, "value": 3.65 } + ] + }, + "jaw-inside": { + "translate": [ + { "x": -8.34, "y": -3.22 }, + { "time": 0.6333, "x": 1.17, "y": -1.6 }, + { "time": 1.2667, "x": -8.34, "y": -3.22 } + ] + }, + "bone": { + "rotate": [ + { + "value": 2, + "curve": [ 0.031, 3.38, 0.075, 4.99 ] + }, + { + "time": 0.1, + "value": 5.01, + "curve": [ 0.194, 5.05, 0.398, -0.88 ] + }, + { + "time": 0.4667, + "value": -0.83, + "curve": [ 0.538, -0.78, 0.671, 4.88 ] + }, + { + "time": 0.7333, + "value": 4.88, + "curve": [ 0.846, 4.88, 1.032, -0.57 ] + }, + { + "time": 1.1, + "value": -0.57, + "curve": [ 1.142, -0.57, 1.201, 0.04 ] + }, + { "time": 1.2667, "value": 2 } + ] + }, + "bone2": { + "rotate": [ + { + "curve": [ 0.019, -8.93, 0.062, -21.67 ] + }, + { + "time": 0.1333, + "value": -21.67, + "curve": [ 0.23, -21.67, 0.346, 21.39 ] + }, + { + "time": 0.4667, + "value": 21.32, + "curve": [ 0.639, 21.22, 0.626, -21.47 ] + }, + { + "time": 0.7667, + "value": -21.67, + "curve": [ 0.863, -21.81, 1.013, 21.01 ] + }, + { + "time": 1.1, + "value": 21.32, + "curve": [ 1.204, 21.68, 1.245, 9.94 ] + }, + { "time": 1.2667 } + ] + }, + "bone3": { + "rotate": [ + { + "curve": [ 0.083, 0, 0.25, 11.45 ] + }, + { + "time": 0.3333, + "value": 11.45, + "curve": [ 0.407, 11.39, 0.547, 0.26 ] + }, + { + "time": 0.6333, + "value": 0.18, + "curve": [ 0.708, 0.18, 0.858, 11.29 ] + }, + { + "time": 0.9333, + "value": 11.29, + "curve": [ 1.017, 11.29, 1.183, 0 ] + }, + { "time": 1.2667 } + ] + }, + "bone4": { + "rotate": [ + { + "curve": [ 0, -6.15, 0.044, -10.86 ] + }, + { + "time": 0.1, + "value": -11.06, + "curve": [ 0.161, -11.27, 0.267, 10.59 ] + }, + { + "time": 0.3667, + "value": 10.49, + "curve": [ 0.554, 10.32, 0.603, -10.61 ] + }, + { + "time": 0.7333, + "value": -10.98, + "curve": [ 0.782, -10.93, 0.949, 10.3 ] + }, + { + "time": 1.0333, + "value": 10.41, + "curve": [ 1.144, 10.56, 1.255, 4.55 ] + }, + { "time": 1.2667 } + ] + }, + "bone5": { + "rotate": [ + { + "value": 6.23, + "curve": [ 0.042, 3.41, 0.105, 3.02 ] + }, + { + "time": 0.1667, + "value": 3.03, + "curve": [ 0.222, 3.04, 0.334, 11.98 ] + }, + { + "time": 0.4333, + "value": 11.93, + "curve": [ 0.561, 11.87, 0.662, 3.23 ] + }, + { + "time": 0.8, + "value": 3.22, + "curve": [ 0.849, 3.21, 1.016, 11.92 ] + }, + { + "time": 1.1, + "value": 12.03, + "curve": [ 1.162, 12.12, 1.223, 9.21 ] + }, + { "time": 1.2667, "value": 6.23 } + ] + }, + "spineboy-front-arm-target": { + "translate": [ + {}, + { "time": 0.3667, "x": -12.14, "y": 8.93 }, + { "time": 0.6333 }, + { "time": 1, "x": -10.79, "y": 7.94 }, + { "time": 1.2667 } + ] + }, + "front-hand2": { + "rotate": [ + { + "curve": [ 0.092, 0, 0.275, 15.62 ] + }, + { + "time": 0.3667, + "value": 15.62, + "curve": [ 0.433, 15.62, 0.567, 0 ] + }, + { + "time": 0.6333, + "curve": [ 0.733, 0, 0.933, 15.62 ] + }, + { + "time": 1.0333, + "value": 15.62, + "curve": [ 1.092, 15.62, 1.208, 0 ] + }, + { "time": 1.2667 } + ] + }, + "front-bracer": { + "rotate": [ + { "value": 52.99 } + ] + }, + "head-control": { + "translate": [ + { + "y": -55.1, + "curve": [ 0.063, -1.75, 0.253, -5.83, 0.092, -55.1, 0.298, -20 ] + }, + { + "time": 0.3667, + "x": -5.85, + "y": -6.98, + "curve": [ 0.437, -5.86, 0.539, -2.89, 0.44, 6.9, 0.567, 28.15 ] + }, + { + "time": 0.6333, + "y": 28.15, + "curve": [ 0.709, 2.32, 0.858, 5.7, 0.708, 28.15, 0.867, 1.15 ] + }, + { + "time": 0.9333, + "x": 5.7, + "y": -12.05, + "curve": [ 1.017, 5.7, 1.157, 2.64, 1.02, -29.22, 1.183, -55.1 ] + }, + { "time": 1.2667, "y": -55.1 } + ] + }, + "leg-control": { + "translate": [ + { + "curve": [ 0.021, 0, 0.048, 3.27, 0.021, 0, 0.044, -99.76 ] + }, + { + "time": 0.0667, + "x": 5.16, + "y": -99.76, + "curve": [ 0.099, 8.46, 0.145, 12.65, 0.089, -99.76, 0.134, 67.18 ] + }, + { + "time": 0.1667, + "x": 12.65, + "y": 68.39, + "curve": [ 0.188, 12.65, 0.251, 7.24, 0.211, 70.03, 0.244, -68.23 ] + }, + { + "time": 0.2667, + "x": 4.95, + "y": -68.19, + "curve": [ 0.324, -3.3, 0.337, -4.96, 0.307, -68.11, 0.329, -15.36 ] + }, + { + "time": 0.3667, + "x": -10.49, + "y": -14.91, + "curve": [ 0.404, -17.53, 0.441, -25.51, 0.416, -14.33, 0.484, -84.78 ] + }, + { + "time": 0.5, + "x": -25.51, + "y": -101.71, + "curve": [ 0.566, -25.51, 0.634, -23.99, 0.543, -148.75, 0.634, -191.81 ] + }, + { + "time": 0.7, + "x": -21.81, + "y": -183.43, + "curve": [ 0.915, -14.78, 1.123, 0, 0.915, -156.4, 1.123, 0 ] + }, + { "time": 1.2667 } + ] + }, + "head2": { + "rotate": [ + { + "value": 11.97, + "curve": [ 0.021, 10.46, 0.104, 4.49 ] + }, + { + "time": 0.1667, + "value": 4.55, + "curve": [ 0.312, 4.71, 0.419, 14.2 ] + }, + { + "time": 0.5, + "value": 14.11, + "curve": [ 0.671, 13.92, 0.686, 4.54 ] + }, + { + "time": 0.8, + "value": 4.56, + "curve": [ 0.953, 4.59, 1.029, 14.2 ] + }, + { + "time": 1.1333, + "value": 14.13, + "curve": [ 1.186, 14.1, 1.214, 14.03 ] + }, + { "time": 1.2667, "value": 11.97 } + ], + "scale": [ + { + "curve": [ 0.011, 0.995, 0.122, 0.985, 0.055, 1.007, 0.104, 1.011 ] + }, + { + "time": 0.1667, + "x": 0.985, + "y": 1.012, + "curve": [ 0.256, 0.985, 0.415, 1.014, 0.245, 1.013, 0.419, 0.988 ] + }, + { + "time": 0.5, + "x": 1.013, + "y": 0.988, + "curve": [ 0.579, 1.013, 0.693, 0.988, 0.62, 0.988, 0.713, 1.014 ] + }, + { + "time": 0.8, + "x": 0.988, + "y": 1.014, + "curve": [ 0.881, 0.988, 1.075, 1.014, 0.908, 1.014, 1.033, 0.988 ] + }, + { + "time": 1.1333, + "x": 1.014, + "y": 0.989, + "curve": [ 1.181, 1.014, 1.2, 1.011, 1.164, 0.989, 1.23, 0.995 ] + }, + { "time": 1.2667 } + ] + } + }, + "ik": { + "back-leg-ik": [ + { "softness": 66.9, "bendPositive": false } + ], + "spineboy-back-arm-ik": [ + {} + ], + "spineboy-front-arm-ik": [ + { "softness": 14.4, "stretch": true } + ] + }, + "events": [ + { "time": 0.6333, "name": "footstep" }, + { "time": 1.2667, "name": "footstep" } + ] + } +} +} \ No newline at end of file diff --git a/spine-haxe/example/assets/raptor-pro.skel b/spine-haxe/example/assets/raptor-pro.skel new file mode 100644 index 0000000000..e35ec23d51 Binary files /dev/null and b/spine-haxe/example/assets/raptor-pro.skel differ diff --git a/spine-haxe/example/assets/raptor.atlas b/spine-haxe/example/assets/raptor.atlas new file mode 100644 index 0000000000..89cf60341e --- /dev/null +++ b/spine-haxe/example/assets/raptor.atlas @@ -0,0 +1,100 @@ +raptor.png + size: 1024, 512 + filter: Linear, Linear + scale: 0.5 +back-arm + bounds: 829, 88, 46, 25 + rotate: 90 +back-bracer + bounds: 195, 238, 39, 28 + rotate: 90 +back-hand + bounds: 724, 140, 36, 34 + rotate: 90 +back-knee + bounds: 760, 131, 49, 67 + rotate: 90 +back-thigh + bounds: 225, 238, 39, 24 + rotate: 90 +eyes-open + bounds: 975, 204, 47, 45 +front-arm + bounds: 969, 112, 48, 26 +front-bracer + bounds: 724, 97, 41, 29 + rotate: 90 +front-hand + bounds: 251, 239, 41, 38 +front-open-hand + bounds: 856, 76, 43, 44 + rotate: 90 +front-thigh + bounds: 729, 178, 57, 29 + rotate: 90 +gun + bounds: 894, 251, 107, 103 +gun-nohand + bounds: 764, 241, 105, 102 +head + bounds: 756, 345, 136, 149 +lower-leg + bounds: 475, 237, 73, 98 + rotate: 90 +mouth-grind + bounds: 975, 172, 47, 30 +mouth-smile + bounds: 975, 140, 47, 30 +neck + bounds: 366, 282, 18, 21 +raptor-back-arm + bounds: 636, 97, 82, 86 + rotate: 90 +raptor-body + bounds: 2, 2, 632, 233 +raptor-front-arm + bounds: 871, 168, 81, 102 + rotate: 90 +raptor-front-leg + bounds: 2, 237, 191, 257 +raptor-hindleg-back + bounds: 195, 279, 169, 215 +raptor-horn + bounds: 431, 312, 182, 80 + rotate: 90 +raptor-horn-back + bounds: 513, 318, 176, 77 + rotate: 90 +raptor-jaw + bounds: 894, 356, 126, 138 +raptor-jaw-tooth + bounds: 294, 240, 37, 48 + rotate: 90 +raptor-mouth-inside + bounds: 344, 241, 36, 41 + rotate: 90 +raptor-saddle-strap-back + bounds: 575, 242, 54, 74 +raptor-saddle-strap-front + bounds: 764, 182, 57, 95 + rotate: 90 +raptor-saddle-w-shadow + bounds: 592, 323, 162, 171 +raptor-tail-shadow + bounds: 366, 305, 189, 63 + rotate: 90 +raptor-tongue + bounds: 387, 239, 86, 64 +stirrup-back + bounds: 829, 136, 44, 35 + rotate: 90 +stirrup-front + bounds: 866, 121, 45, 50 + rotate: 90 +stirrup-strap + bounds: 918, 120, 49, 46 +torso + bounds: 636, 181, 54, 91 + rotate: 90 +visor + bounds: 631, 237, 131, 84 diff --git a/spine-haxe/example/assets/raptor.png b/spine-haxe/example/assets/raptor.png new file mode 100644 index 0000000000..a67b73a21c Binary files /dev/null and b/spine-haxe/example/assets/raptor.png differ diff --git a/spine-haxe/example/assets/spineboy-pro.json b/spine-haxe/example/assets/spineboy-pro.json new file mode 100644 index 0000000000..78ba1dc0f5 --- /dev/null +++ b/spine-haxe/example/assets/spineboy-pro.json @@ -0,0 +1,8707 @@ +{ +"skeleton": { + "hash": "itfFESDjM1c", + "spine": "4.1.17", + "x": -188.63, + "y": -7.94, + "width": 418.45, + "height": 686.2, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root", "rotation": 0.05 }, + { "name": "hip", "parent": "root", "y": 247.27 }, + { "name": "crosshair", "parent": "root", "x": 302.83, "y": 569.45, "color": "ff3f00ff" }, + { + "name": "aim-constraint-target", + "parent": "hip", + "length": 26.24, + "rotation": 19.61, + "x": 1.02, + "y": 5.62, + "color": "abe323ff" + }, + { "name": "rear-foot-target", "parent": "root", "x": 61.91, "y": 0.42, "color": "ff3f00ff" }, + { "name": "rear-leg-target", "parent": "rear-foot-target", "x": -33.91, "y": 37.34, "color": "ff3f00ff" }, + { + "name": "rear-thigh", + "parent": "hip", + "length": 85.72, + "rotation": -72.54, + "x": 8.91, + "y": -5.63, + "color": "ff000dff" + }, + { + "name": "rear-shin", + "parent": "rear-thigh", + "length": 121.88, + "rotation": -19.83, + "x": 86.1, + "y": -1.33, + "color": "ff000dff" + }, + { + "name": "rear-foot", + "parent": "rear-shin", + "length": 51.58, + "rotation": 45.78, + "x": 121.46, + "y": -0.76, + "color": "ff000dff" + }, + { + "name": "back-foot-tip", + "parent": "rear-foot", + "length": 50.3, + "rotation": -0.85, + "x": 51.17, + "y": 0.24, + "transform": "noRotationOrReflection", + "color": "ff000dff" + }, + { "name": "board-ik", "parent": "root", "x": -131.78, "y": 69.09, "color": "4c56ffff" }, + { "name": "clipping", "parent": "root" }, + { "name": "hoverboard-controller", "parent": "root", "rotation": -0.28, "x": -329.69, "y": 69.82, "color": "ff0004ff" }, + { "name": "exhaust1", "parent": "hoverboard-controller", "rotation": 3.02, "x": -249.68, "y": 53.39 }, + { "name": "exhaust2", "parent": "hoverboard-controller", "rotation": 26.34, "x": -191.6, "y": -22.92 }, + { + "name": "exhaust3", + "parent": "hoverboard-controller", + "rotation": -12.34, + "x": -236.03, + "y": 80.54, + "scaleX": 0.7847, + "scaleY": 0.7847 + }, + { "name": "portal-root", "parent": "root", "x": 12.9, "y": 328.54, "scaleX": 2.0334, "scaleY": 2.0334 }, + { "name": "flare1", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare10", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare2", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare3", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare4", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare5", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare6", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare7", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare8", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare9", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { + "name": "torso", + "parent": "hip", + "length": 42.52, + "rotation": 103.82, + "x": -1.62, + "y": 4.9, + "color": "e0da19ff" + }, + { "name": "torso2", "parent": "torso", "length": 42.52, "x": 42.52, "color": "e0da19ff" }, + { "name": "torso3", "parent": "torso2", "length": 42.52, "x": 42.52, "color": "e0da19ff" }, + { "name": "front-shoulder", "parent": "torso3", "rotation": 255.89, "x": 18.72, "y": 19.33, "color": "00ff04ff" }, + { "name": "front-upper-arm", "parent": "front-shoulder", "length": 69.45, "rotation": -87.51, "color": "00ff04ff" }, + { + "name": "front-bracer", + "parent": "front-upper-arm", + "length": 40.57, + "rotation": 18.3, + "x": 68.8, + "y": -0.68, + "color": "00ff04ff" + }, + { + "name": "front-fist", + "parent": "front-bracer", + "length": 65.39, + "rotation": 12.43, + "x": 40.57, + "y": 0.2, + "color": "00ff04ff" + }, + { "name": "front-foot-target", "parent": "root", "x": -13.53, "y": 0.04, "color": "ff3f00ff" }, + { "name": "front-leg-target", "parent": "front-foot-target", "x": -28.4, "y": 29.06, "color": "ff3f00ff" }, + { + "name": "front-thigh", + "parent": "hip", + "length": 74.81, + "rotation": -95.51, + "x": -17.46, + "y": -11.64, + "color": "00ff04ff" + }, + { + "name": "front-shin", + "parent": "front-thigh", + "length": 128.77, + "rotation": -2.21, + "x": 78.69, + "y": 1.6, + "color": "00ff04ff" + }, + { + "name": "front-foot", + "parent": "front-shin", + "length": 41.01, + "rotation": 51.27, + "x": 128.76, + "y": -0.34, + "color": "00ff04ff" + }, + { + "name": "front-foot-tip", + "parent": "front-foot", + "length": 56.03, + "rotation": -1.68, + "x": 41.42, + "y": -0.09, + "transform": "noRotationOrReflection", + "color": "00ff04ff" + }, + { "name": "back-shoulder", "parent": "torso3", "rotation": -104.11, "x": 7.32, "y": -19.22, "color": "ff000dff" }, + { "name": "rear-upper-arm", "parent": "back-shoulder", "length": 51.94, "rotation": -65.45, "color": "ff000dff" }, + { "name": "rear-bracer", "parent": "rear-upper-arm", "length": 34.56, "rotation": 23.15, "x": 51.36, "color": "ff000dff" }, + { + "name": "gun", + "parent": "rear-bracer", + "length": 43.11, + "rotation": -5.43, + "x": 34.42, + "y": -0.45, + "color": "ff000dff" + }, + { "name": "gun-tip", "parent": "gun", "rotation": 7.1, "x": 200.78, "y": 52.5, "color": "ff0000ff" }, + { + "name": "neck", + "parent": "torso3", + "length": 25.45, + "rotation": -31.54, + "x": 42.46, + "y": -0.31, + "color": "e0da19ff" + }, + { + "name": "head", + "parent": "neck", + "length": 131.79, + "rotation": 26.1, + "x": 27.66, + "y": -0.26, + "color": "e0da19ff" + }, + { + "name": "hair1", + "parent": "head", + "length": 47.23, + "rotation": -49.1, + "x": 149.83, + "y": -59.77, + "color": "e0da19ff" + }, + { + "name": "hair2", + "parent": "hair1", + "length": 55.57, + "rotation": 50.42, + "x": 47.23, + "y": 0.19, + "color": "e0da19ff" + }, + { + "name": "hair3", + "parent": "head", + "length": 62.22, + "rotation": -32.17, + "x": 164.14, + "y": 3.68, + "color": "e0da19ff" + }, + { + "name": "hair4", + "parent": "hair3", + "length": 80.28, + "rotation": 83.71, + "x": 62.22, + "y": -0.04, + "color": "e0da19ff" + }, + { "name": "hoverboard-thruster-front", "parent": "hoverboard-controller", "rotation": -29.2, "x": 95.77, "y": -2.99, "transform": "noRotationOrReflection" }, + { "name": "hoverboard-thruster-rear", "parent": "hoverboard-controller", "rotation": -29.2, "x": -76.47, "y": -4.88, "transform": "noRotationOrReflection" }, + { "name": "hoverglow-front", "parent": "hoverboard-thruster-front", "rotation": 0.17, "x": -1.78, "y": -37.79 }, + { "name": "hoverglow-rear", "parent": "hoverboard-thruster-rear", "rotation": 0.17, "x": 1.06, "y": -35.66 }, + { "name": "muzzle", "parent": "rear-bracer", "rotation": 3.06, "x": 242.34, "y": 34.26, "color": "ffb900ff" }, + { "name": "muzzle-ring", "parent": "muzzle", "color": "ffb900ff" }, + { "name": "muzzle-ring2", "parent": "muzzle", "color": "ffb900ff" }, + { "name": "muzzle-ring3", "parent": "muzzle", "color": "ffb900ff" }, + { "name": "muzzle-ring4", "parent": "muzzle", "color": "ffb900ff" }, + { "name": "portal", "parent": "portal-root" }, + { "name": "portal-shade", "parent": "portal-root" }, + { "name": "portal-streaks1", "parent": "portal-root" }, + { "name": "portal-streaks2", "parent": "portal-root" }, + { "name": "side-glow1", "parent": "hoverboard-controller", "x": -110.56, "y": 2.62, "color": "000effff" }, + { + "name": "side-glow2", + "parent": "hoverboard-controller", + "x": -110.56, + "y": 2.62, + "scaleX": 0.738, + "scaleY": 0.738, + "color": "000effff" + }, + { "name": "head-control", "parent": "head", "x": 110.21, "color": "00a220ff" } +], +"slots": [ + { "name": "portal-bg", "bone": "portal" }, + { "name": "portal-shade", "bone": "portal-shade" }, + { "name": "portal-streaks2", "bone": "portal-streaks2", "blend": "additive" }, + { "name": "portal-streaks1", "bone": "portal-streaks1", "blend": "additive" }, + { "name": "portal-flare8", "bone": "flare8", "color": "c3cbffff", "blend": "additive" }, + { "name": "portal-flare9", "bone": "flare9", "color": "c3cbffff", "blend": "additive" }, + { "name": "portal-flare10", "bone": "flare10", "color": "c3cbffff", "blend": "additive" }, + { "name": "clipping", "bone": "clipping" }, + { "name": "exhaust3", "bone": "exhaust3", "color": "5eb4ffff", "blend": "additive" }, + { "name": "hoverboard-thruster-rear", "bone": "hoverboard-thruster-rear" }, + { "name": "hoverboard-thruster-front", "bone": "hoverboard-thruster-front" }, + { "name": "hoverboard-board", "bone": "hoverboard-controller" }, + { "name": "side-glow1", "bone": "side-glow1", "color": "ff8686ff", "blend": "additive" }, + { "name": "side-glow3", "bone": "side-glow1", "color": "ff8686ff", "blend": "additive" }, + { "name": "side-glow2", "bone": "side-glow2", "color": "ff8686ff", "blend": "additive" }, + { "name": "hoverglow-front", "bone": "hoverglow-front", "color": "5eb4ffff", "blend": "additive" }, + { "name": "hoverglow-rear", "bone": "hoverglow-rear", "color": "5eb4ffff", "blend": "additive" }, + { "name": "exhaust1", "bone": "exhaust2", "color": "5eb4ffff", "blend": "additive" }, + { "name": "exhaust2", "bone": "exhaust1", "color": "5eb4ffff", "blend": "additive" }, + { "name": "rear-upper-arm", "bone": "rear-upper-arm", "attachment": "rear-upper-arm" }, + { "name": "rear-bracer", "bone": "rear-bracer", "attachment": "rear-bracer" }, + { "name": "gun", "bone": "gun", "attachment": "gun" }, + { "name": "rear-foot", "bone": "rear-foot", "attachment": "rear-foot" }, + { "name": "rear-thigh", "bone": "rear-thigh", "attachment": "rear-thigh" }, + { "name": "rear-shin", "bone": "rear-shin", "attachment": "rear-shin" }, + { "name": "neck", "bone": "neck", "attachment": "neck" }, + { "name": "torso", "bone": "torso", "attachment": "torso" }, + { "name": "front-upper-arm", "bone": "front-upper-arm", "attachment": "front-upper-arm" }, + { "name": "head", "bone": "head", "attachment": "head" }, + { "name": "eye", "bone": "head", "attachment": "eye-indifferent" }, + { "name": "front-thigh", "bone": "front-thigh", "attachment": "front-thigh" }, + { "name": "front-foot", "bone": "front-foot", "attachment": "front-foot" }, + { "name": "front-shin", "bone": "front-shin", "attachment": "front-shin" }, + { "name": "mouth", "bone": "head", "attachment": "mouth-smile" }, + { "name": "goggles", "bone": "head", "attachment": "goggles" }, + { "name": "front-bracer", "bone": "front-bracer", "attachment": "front-bracer" }, + { "name": "front-fist", "bone": "front-fist", "attachment": "front-fist-closed" }, + { "name": "muzzle", "bone": "muzzle" }, + { "name": "head-bb", "bone": "head" }, + { "name": "portal-flare1", "bone": "flare1", "color": "c3cbffff", "blend": "additive" }, + { "name": "portal-flare2", "bone": "flare2", "color": "c3cbffff", "blend": "additive" }, + { "name": "portal-flare3", "bone": "flare3", "color": "c3cbffff", "blend": "additive" }, + { "name": "portal-flare4", "bone": "flare4", "color": "c3cbffff", "blend": "additive" }, + { "name": "portal-flare5", "bone": "flare5", "color": "c3cbffff", "blend": "additive" }, + { "name": "portal-flare6", "bone": "flare6", "color": "c3cbffff", "blend": "additive" }, + { "name": "portal-flare7", "bone": "flare7", "color": "c3cbffff", "blend": "additive" }, + { "name": "crosshair", "bone": "crosshair" }, + { "name": "muzzle-glow", "bone": "gun-tip", "color": "ffffff00", "blend": "additive" }, + { "name": "muzzle-ring", "bone": "muzzle-ring", "color": "d8baffff", "blend": "additive" }, + { "name": "muzzle-ring2", "bone": "muzzle-ring2", "color": "d8baffff", "blend": "additive" }, + { "name": "muzzle-ring3", "bone": "muzzle-ring3", "color": "d8baffff", "blend": "additive" }, + { "name": "muzzle-ring4", "bone": "muzzle-ring4", "color": "d8baffff", "blend": "additive" } +], +"ik": [ + { + "name": "aim-ik", + "order": 13, + "bones": [ "rear-upper-arm" ], + "target": "crosshair", + "mix": 0 + }, + { + "name": "aim-torso-ik", + "order": 8, + "bones": [ "aim-constraint-target" ], + "target": "crosshair" + }, + { + "name": "board-ik", + "order": 1, + "bones": [ "hoverboard-controller" ], + "target": "board-ik" + }, + { + "name": "front-foot-ik", + "order": 6, + "bones": [ "front-foot" ], + "target": "front-foot-target" + }, + { + "name": "front-leg-ik", + "order": 4, + "bones": [ "front-thigh", "front-shin" ], + "target": "front-leg-target", + "bendPositive": false + }, + { + "name": "rear-foot-ik", + "order": 7, + "bones": [ "rear-foot" ], + "target": "rear-foot-target" + }, + { + "name": "rear-leg-ik", + "order": 5, + "bones": [ "rear-thigh", "rear-shin" ], + "target": "rear-leg-target", + "bendPositive": false + } +], +"transform": [ + { + "name": "aim-front-arm-transform", + "order": 11, + "bones": [ "front-upper-arm" ], + "target": "aim-constraint-target", + "rotation": -180, + "mixRotate": 0, + "mixX": 0, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "aim-head-transform", + "order": 10, + "bones": [ "head" ], + "target": "aim-constraint-target", + "rotation": 84.3, + "mixRotate": 0, + "mixX": 0, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "aim-rear-arm-transform", + "order": 12, + "bones": [ "rear-upper-arm" ], + "target": "aim-constraint-target", + "x": 57.7, + "y": 56.4, + "mixRotate": 0, + "mixX": 0, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "aim-torso-transform", + "order": 9, + "bones": [ "torso" ], + "target": "aim-constraint-target", + "rotation": 69.5, + "shearY": -36, + "mixRotate": 0, + "mixX": 0, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "front-foot-board-transform", + "order": 2, + "bones": [ "front-foot-target" ], + "target": "hoverboard-controller", + "x": -69.8, + "y": 20.7, + "mixRotate": 0, + "mixX": 0, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "rear-foot-board-transform", + "order": 3, + "bones": [ "rear-foot-target" ], + "target": "hoverboard-controller", + "x": 86.6, + "y": 21.3, + "mixRotate": 0, + "mixX": 0, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "shoulder", + "bones": [ "back-shoulder" ], + "target": "front-shoulder", + "x": 40.17, + "y": -1.66, + "mixRotate": 0, + "mixX": -1, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "toes-board", + "order": 14, + "bones": [ "front-foot-tip", "back-foot-tip" ], + "target": "hoverboard-controller", + "mixRotate": 0, + "mixX": 0, + "mixScaleX": 0, + "mixShearY": 0 + } +], +"skins": [ + { + "name": "default", + "attachments": { + "clipping": { + "clipping": { + "type": "clipping", + "end": "head-bb", + "vertexCount": 9, + "vertices": [ 66.76, 509.48, 19.98, 434.54, 5.34, 336.28, 22.19, 247.93, 77.98, 159.54, 182.21, -97.56, 1452.26, -99.8, 1454.33, 843.61, 166.57, 841.02 ], + "color": "ce3a3aff" + } + }, + "crosshair": { + "crosshair": { "width": 89, "height": 89 } + }, + "exhaust1": { + "hoverglow-small": { "scaleX": 0.4629, "scaleY": 0.8129, "rotation": -83.07, "width": 274, "height": 75 } + }, + "exhaust2": { + "hoverglow-small": { + "x": 0.01, + "y": -0.76, + "scaleX": 0.4208, + "scaleY": 0.8403, + "rotation": -89.25, + "width": 274, + "height": 75 + } + }, + "exhaust3": { + "hoverglow-small": { "scaleX": 0.4629, "scaleY": 0.8129, "rotation": -83.07, "width": 274, "height": 75 } + }, + "eye": { + "eye-indifferent": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 66, -36.8, -91.35, 0.3, 46, 73.41, -91.35, 0.7, 2, 66, -87.05, -13.11, 0.70968, 46, 23.16, -13.11, 0.29032, 2, 66, -12.18, 34.99, 0.82818, 46, 98.03, 34.99, 0.17182, 2, 66, 38.07, -43.25, 0.59781, 46, 148.28, -43.25, 0.40219 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 93, + "height": 89 + }, + "eye-surprised": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 66, -46.74, -89.7, 0.3, 46, 63.47, -89.7, 0.7, 2, 66, -77.58, -1.97, 0.71, 46, 32.63, -1.97, 0.29, 2, 66, 6.38, 27.55, 0.83, 46, 116.59, 27.55, 0.17, 2, 66, 37.22, -60.19, 0.6, 46, 147.44, -60.19, 0.4 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 93, + "height": 89 + } + }, + "front-bracer": { + "front-bracer": { "x": 12.03, "y": -1.68, "rotation": 79.6, "width": 58, "height": 80 } + }, + "front-fist": { + "front-fist-closed": { "x": 35.5, "y": 6, "rotation": 67.16, "width": 75, "height": 82 }, + "front-fist-open": { "x": 39.57, "y": 7.76, "rotation": 67.16, "width": 86, "height": 87 } + }, + "front-foot": { + "front-foot": { + "type": "mesh", + "uvs": [ 0.59417, 0.23422, 0.62257, 0.30336, 0.6501, 0.37036, 0.67637, 0.38404, 0.72068, 0.4071, 0.76264, 0.42894, 1, 0.70375, 1, 1, 0.65517, 1, 0.46923, 0.99999, 0, 1, 0, 0.39197, 0.17846, 0, 0.49796, 0 ], + "triangles": [ 8, 9, 3, 4, 8, 3, 5, 8, 4, 6, 8, 5, 8, 6, 7, 11, 1, 10, 0, 12, 13, 0, 11, 12, 0, 1, 11, 9, 2, 3, 1, 2, 10, 9, 10, 2 ], + "vertices": [ 2, 38, 18.17, 41.57, 0.7896, 39, 12.46, 46.05, 0.2104, 2, 38, 24.08, 40.76, 0.71228, 39, 16.12, 41.34, 0.28772, 2, 38, 29.81, 39.98, 0.55344, 39, 19.67, 36.78, 0.44656, 2, 38, 32.81, 41.67, 0.38554, 39, 23, 35.89, 0.61446, 2, 38, 37.86, 44.52, 0.25567, 39, 28.61, 34.4, 0.74433, 2, 38, 42.65, 47.22, 0.17384, 39, 33.92, 32.99, 0.82616, 1, 39, 64.15, 14.56, 1, 1, 39, 64.51, -5.87, 1, 1, 39, 21.08, -6.64, 1, 2, 38, 44.67, -6.77, 0.5684, 39, -2.34, -6.97, 0.4316, 1, 38, 3.1, -48.81, 1, 1, 38, -26.73, -19.31, 1, 1, 38, -30.15, 15.69, 1, 1, 38, -1.84, 44.32, 1 ], + "hull": 14, + "edges": [ 14, 16, 16, 18, 18, 20, 4, 18, 20, 22, 24, 26, 22, 24, 12, 14, 10, 12, 2, 4, 2, 20, 4, 6, 6, 16, 2, 0, 0, 26, 6, 8, 8, 10 ], + "width": 126, + "height": 69 + } + }, + "front-shin": { + "front-shin": { + "type": "mesh", + "uvs": [ 0.90031, 0.05785, 1, 0.12828, 1, 0.21619, 0.9025, 0.31002, 0.78736, 0.35684, 0.78081, 0.39874, 0.77215, 0.45415, 0.77098, 0.51572, 0.84094, 0.63751, 0.93095, 0.7491, 0.95531, 0.7793, 0.78126, 0.87679, 0.5613, 1, 0.2687, 1, 0, 1, 0.00279, 0.96112, 0.01358, 0.81038, 0.02822, 0.60605, 0.08324, 0.45142, 0.18908, 0.31882, 0.29577, 0.2398, 0.30236, 0.14941, 0.37875, 0.05902, 0.53284, 0, 0.70538, 0, 0.41094, 0.71968, 0.40743, 0.54751, 0.41094, 0.4536, 0.4724, 0.35186, 0.33367, 0.27829, 0.50226, 0.31664, 0.65328, 0.67507, 0.60762, 0.52716, 0.6006, 0.45125, 0.62747, 0.37543, 0.6573, 0.3385, 0.27843, 0.32924, 0.18967, 0.45203, 0.16509, 0.58586, 0.18265, 0.7682, 0.50532, 0.24634, 0.59473, 0.17967, 0.60161, 0.10611, 0.51392, 0.04327, 0.72198, 0.28849, 0.82343, 0.20266, 0.86814, 0.11377, 0.79592, 0.04634, 0.44858, 0.15515, 0.25466, 0.96219, 0.53169, 0.9448, 0.7531, 0.8324 ], + "triangles": [ 24, 0, 47, 43, 23, 24, 47, 43, 24, 43, 22, 23, 42, 43, 47, 46, 47, 0, 42, 47, 46, 46, 0, 1, 48, 22, 43, 48, 43, 42, 21, 22, 48, 41, 48, 42, 45, 42, 46, 41, 42, 45, 46, 1, 2, 45, 46, 2, 40, 48, 41, 48, 20, 21, 29, 48, 40, 29, 20, 48, 44, 41, 45, 40, 41, 44, 3, 45, 2, 44, 45, 3, 30, 29, 40, 35, 30, 40, 36, 19, 20, 36, 20, 29, 44, 35, 40, 28, 29, 30, 4, 44, 3, 35, 44, 4, 34, 30, 35, 5, 35, 4, 34, 28, 30, 33, 28, 34, 37, 19, 36, 18, 19, 37, 27, 29, 28, 27, 28, 33, 36, 29, 27, 37, 36, 27, 5, 34, 35, 6, 34, 5, 33, 34, 6, 6, 32, 33, 7, 32, 6, 26, 37, 27, 38, 18, 37, 38, 37, 26, 17, 18, 38, 31, 32, 7, 31, 7, 8, 32, 25, 26, 38, 26, 25, 27, 33, 32, 32, 26, 27, 39, 38, 25, 17, 38, 39, 16, 17, 39, 51, 31, 8, 51, 8, 9, 11, 51, 9, 11, 9, 10, 31, 50, 25, 31, 25, 32, 50, 31, 51, 49, 39, 25, 49, 25, 50, 15, 16, 39, 49, 15, 39, 13, 49, 50, 14, 15, 49, 13, 14, 49, 12, 50, 51, 12, 51, 11, 13, 50, 12 ], + "vertices": [ -23.66, 19.37, -11.73, 28.98, 4.34, 30.83, 22.41, 24.87, 32.05, 16.48, 39.77, 16.83, 49.98, 17.3, 61.25, 18.5, 82.85, 26.78, 102.4, 36.46, 107.69, 39.09, 127.15, 26.97, 151.74, 11.65, 154.49, -12.18, 157.02, -34.07, 149.89, -34.66, 122.23, -36.97, 84.75, -40.09, 55.97, -38.88, 30.73, -33.05, 15.29, -26.03, -1.3, -27.41, -18.54, -23.09, -30.78, -11.79, -32.4, 2.27, 101.92, -6.52, 70.48, -10.44, 53.28, -12.14, 34.11, -9.28, 21.96, -22.13, 27.39, -7.59, 91.48, 12.28, 64.88, 5.44, 51.07, 3.26, 36.95, 3.85, 29.92, 5.5, 31.8, -25.56, 55.08, -30.19, 79.77, -29.37, 112.93, -24.09, 14.51, -8.83, 1.48, -2.95, -12.03, -3.94, -22.69, -12.41, 20.17, 9.71, 3.53, 16.16, -13.14, 17.93, -24.78, 10.62, -1.62, -15.37, 147.71, -14.13, 141.93, 8.07, 119.3, 23.74 ], + "hull": 25, + "edges": [ 8, 6, 6, 4, 4, 2, 2, 0, 0, 48, 46, 48, 46, 44, 44, 42, 42, 40, 40, 38, 38, 36, 36, 34, 32, 34, 50, 52, 52, 54, 54, 56, 40, 58, 58, 60, 8, 10, 20, 22, 22, 24, 62, 64, 64, 66, 66, 68, 8, 70, 70, 60, 68, 70, 58, 72, 72, 74, 74, 76, 76, 78, 24, 26, 26, 28, 58, 80, 80, 82, 82, 84, 84, 86, 86, 44, 70, 88, 88, 90, 90, 92, 92, 94, 94, 48, 80, 88, 88, 6, 82, 90, 90, 4, 84, 92, 92, 2, 86, 94, 94, 0, 56, 60, 10, 12, 12, 14, 14, 16, 28, 30, 30, 32, 26, 98, 98, 78, 30, 98, 24, 100, 100, 50, 98, 100, 22, 102, 102, 62, 100, 102, 16, 18, 18, 20, 102, 18 ], + "width": 82, + "height": 184 + } + }, + "front-thigh": { + "front-thigh": { "x": 42.48, "y": 4.45, "rotation": 84.87, "width": 45, "height": 112 } + }, + "front-upper-arm": { + "front-upper-arm": { "x": 28.31, "y": 7.37, "rotation": 97.9, "width": 46, "height": 97 } + }, + "goggles": { + "goggles": { + "type": "mesh", + "uvs": [ 0.53653, 0.04114, 0.72922, 0.16036, 0.91667, 0.33223, 0.97046, 0.31329, 1, 0.48053, 0.95756, 0.5733, 0.88825, 0.6328, 0.86878, 0.78962, 0.77404, 0.8675, 0.72628, 1, 0.60714, 0.93863, 0.49601, 0.88138, 0.41558, 0.75027, 0.32547, 0.70084, 0.2782, 0.58257, 0.1721, 0.63281, 0.17229, 0.75071, 0.10781, 0.79898, 0, 0.32304, 0, 0.12476, 0.07373, 0.07344, 0.15423, 0.10734, 0.23165, 0.13994, 0.30313, 0.02256, 0.34802, 0, 0.42979, 0.69183, 0.39476, 0.51042, 0.39488, 0.31512, 0.45878, 0.23198, 0.56501, 0.28109, 0.69961, 0.39216, 0.82039, 0.54204, 0.85738, 0.62343, 0.91107, 0.51407, 0.72639, 0.32147, 0.58764, 0.19609, 0.48075, 0.11269, 0.37823, 0.05501, 0.3287, 0.17866, 0.319, 0.305, 0.36036, 0.53799, 0.40327, 0.70072, 0.30059, 0.55838, 0.21957, 0.2815, 0.09963, 0.28943, 0.56863, 0.4368, 0.4911, 0.37156, 0.51185, 0.52093, 0.67018, 0.59304, 0.7619, 0.68575, 0.73296, 0.43355 ], + "triangles": [ 18, 44, 15, 21, 19, 20, 17, 18, 15, 44, 19, 21, 2, 3, 4, 18, 19, 44, 2, 33, 34, 33, 2, 4, 5, 33, 4, 5, 6, 33, 7, 32, 6, 31, 50, 33, 32, 31, 33, 6, 32, 33, 31, 49, 50, 49, 31, 32, 49, 32, 7, 8, 49, 7, 33, 50, 34, 17, 15, 16, 9, 48, 8, 49, 48, 50, 50, 48, 45, 47, 45, 48, 50, 45, 30, 45, 47, 46, 45, 46, 29, 30, 45, 29, 30, 29, 34, 30, 34, 50, 47, 26, 46, 25, 10, 11, 12, 25, 11, 41, 12, 42, 42, 44, 43, 43, 21, 22, 41, 40, 25, 41, 42, 40, 29, 35, 34, 40, 26, 25, 25, 26, 47, 37, 24, 0, 36, 37, 0, 42, 43, 39, 42, 39, 40, 28, 38, 36, 40, 39, 26, 28, 27, 38, 26, 39, 27, 37, 38, 23, 39, 43, 38, 38, 37, 36, 27, 39, 38, 43, 22, 38, 37, 23, 24, 22, 23, 38, 36, 0, 35, 28, 36, 35, 29, 28, 35, 27, 28, 46, 26, 27, 46, 35, 0, 1, 34, 35, 1, 12, 41, 25, 47, 10, 25, 44, 21, 43, 42, 14, 44, 14, 15, 44, 13, 14, 42, 12, 13, 42, 46, 28, 29, 47, 48, 10, 48, 9, 10, 49, 8, 48, 2, 34, 1 ], + "vertices": [ 2, 66, 61.88, 22.81, 0.832, 46, 172.09, 22.81, 0.168, 2, 66, 59.89, -31.19, 0.6855, 46, 170.1, -31.19, 0.3145, 2, 66, 49.2, -86.8, 0.32635, 46, 159.41, -86.8, 0.67365, 2, 66, 56.82, -99.01, 0.01217, 46, 167.03, -99.01, 0.98783, 1, 46, 143.4, -115.48, 1, 2, 66, 15, -110.14, 0.0041, 46, 125.21, -110.14, 0.9959, 2, 66, -0.32, -96.36, 0.07948, 46, 109.89, -96.36, 0.92052, 2, 66, -26.56, -100.19, 0.01905, 46, 83.65, -100.19, 0.98095, 2, 66, -46.96, -81.16, 0.4921, 46, 63.26, -81.16, 0.50791, 2, 66, -71.84, -76.69, 0.56923, 46, 38.37, -76.69, 0.43077, 2, 66, -72.54, -43.98, 0.74145, 46, 37.67, -43.98, 0.25855, 2, 66, -73.2, -13.47, 0.87929, 46, 37.01, -13.47, 0.12071, 2, 66, -59.63, 13.55, 0.864, 46, 50.58, 13.55, 0.136, 2, 66, -59.69, 38.45, 0.85289, 46, 50.52, 38.45, 0.14711, 2, 66, -45.26, 56.6, 0.74392, 46, 64.95, 56.6, 0.25608, 2, 66, -62.31, 79.96, 0.624, 46, 47.9, 79.96, 0.376, 2, 66, -80.76, 73.42, 0.616, 46, 29.45, 73.42, 0.384, 2, 66, -93.9, 86.64, 0.288, 46, 16.31, 86.64, 0.712, 1, 46, 81.51, 139.38, 1, 1, 46, 112.56, 150.3, 1, 2, 66, 16.76, 134.97, 0.02942, 46, 126.97, 134.97, 0.97058, 2, 66, 18.42, 113.28, 0.36147, 46, 128.63, 113.28, 0.63853, 2, 66, 20.02, 92.43, 0.7135, 46, 130.23, 92.43, 0.2865, 2, 66, 44.58, 81.29, 0.69603, 46, 154.79, 81.29, 0.30397, 2, 66, 52, 71.48, 0.848, 46, 162.21, 71.48, 0.152, 2, 66, -49.25, 13.27, 0.8, 46, 60.96, 13.27, 0.2, 2, 66, -23.88, 31.88, 0.896, 46, 86.33, 31.88, 0.104, 2, 66, 6.72, 42.6, 0.928, 46, 116.93, 42.6, 0.072, 2, 66, 25.26, 31.44, 0.8, 46, 135.47, 31.44, 0.2, 2, 66, 26.77, 2.59, 0.75, 46, 136.98, 2.59, 0.25, 2, 66, 21.02, -36.66, 0.54887, 46, 131.23, -36.66, 0.45113, 2, 66, 8.01, -74.65, 0.36029, 46, 118.22, -74.65, 0.63971, 2, 66, -1.52, -88.24, 0.1253, 46, 108.69, -88.24, 0.8747, 2, 66, 20.25, -95.44, 0.08687, 46, 130.46, -95.44, 0.91313, 2, 66, 34.42, -39.36, 0.72613, 46, 144.63, -39.36, 0.27387, 2, 66, 42.03, 1.7, 0.824, 46, 152.25, 1.7, 0.176, 2, 66, 45.85, 32.6, 0.856, 46, 156.06, 32.6, 0.144, 1, 66, 46.01, 61.02, 1, 1, 66, 22.35, 66.41, 1, 1, 66, 1.73, 61.84, 1, 2, 66, -31.17, 38.83, 0.928, 46, 79.04, 38.83, 0.072, 2, 66, -52.94, 19.31, 0.79073, 46, 57.27, 19.31, 0.20927, 2, 66, -39.54, 52.42, 0.912, 46, 70.67, 52.42, 0.088, 2, 66, -3.2, 87.61, 0.744, 46, 107.02, 87.61, 0.256, 2, 66, -14.82, 116.7, 0.6368, 46, 95.4, 116.7, 0.3632, 2, 66, 2.7, -6.87, 0.856, 46, 112.91, -6.87, 0.144, 2, 66, 6.21, 15.8, 0.744, 46, 116.42, 15.8, 0.256, 2, 66, -15.39, 2.47, 0.856, 46, 94.82, 2.47, 0.144, 2, 66, -12.98, -40.48, 0.72102, 46, 97.24, -40.48, 0.27898, 2, 66, -19.55, -68.16, 0.59162, 46, 90.66, -68.16, 0.40838, 2, 66, 17.44, -47.15, 0.53452, 46, 127.65, -47.15, 0.46548 ], + "hull": 25, + "edges": [ 36, 34, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 18, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 0, 48, 48, 46, 46, 44, 36, 38, 40, 38, 24, 50, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 62, 64, 64, 12, 8, 66, 66, 68, 68, 70, 70, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 24, 24, 84, 84, 86, 86, 44, 40, 42, 42, 44, 42, 88, 88, 30, 58, 90, 90, 92, 92, 94, 18, 20, 20, 22, 94, 20, 18, 96, 96, 98, 60, 100, 100, 62, 98, 100 ], + "width": 261, + "height": 166 + } + }, + "gun": { + "gun": { "x": 77.3, "y": 16.4, "rotation": 60.83, "width": 210, "height": 203 } + }, + "head": { + "head": { + "type": "mesh", + "uvs": [ 0.75919, 0.06107, 0.88392, 0.17893, 0.90174, 0.30856, 0.94224, 0.1966, 1, 0.26584, 1, 0.422, 0.95864, 0.46993, 0.92118, 0.51333, 0.85957, 0.5347, 0.78388, 0.65605, 0.74384, 0.74838, 0.85116, 0.75151, 0.84828, 0.82564, 0.81781, 0.85367, 0.75599, 0.85906, 0.76237, 0.90468, 0.65875, 1, 0.38337, 1, 0.1858, 0.85404, 0.12742, 0.81091, 0.06025, 0.69209, 0, 0.58552, 0, 0.41021, 0.0853, 0.20692, 0.24243, 0.14504, 0.5, 0.1421, 0.50324, 0.07433, 0.41738, 0, 0.57614, 0, 0.85059, 0.36087, 0.73431, 0.43206, 0.68481, 0.31271, 0.72165, 0.16718, 0.55931, 0.04154, 0.44764, 0.22895, 0.23926, 0.26559, 0.71272, 0.44036, 0.56993, 0.383, 0.41678, 0.33511, 0.293, 0.31497, 0.70802, 0.44502, 0.56676, 0.38976, 0.41521, 0.34416, 0.28754, 0.33017, 0.88988, 0.50177, 0.30389, 0.73463, 0.2646, 0.65675, 0.21414, 0.61584, 0.14613, 0.62194, 0.10316, 0.66636, 0.10358, 0.72557, 0.14505, 0.79164, 0.20263, 0.81355, 0.27873, 0.80159, 0.34947, 0.7376, 0.23073, 0.57073, 0.08878, 0.60707, 0.29461, 0.8129, 0.73006, 0.87883, 0.69805, 0.87348, 0.66166, 0.79681, 0.22468, 0.69824, 0.14552, 0.67405 ], + "triangles": [ 50, 49, 62, 34, 25, 31, 39, 35, 34, 38, 39, 34, 37, 38, 34, 42, 39, 38, 43, 39, 42, 32, 2, 31, 31, 37, 34, 42, 38, 37, 41, 42, 37, 43, 22, 39, 30, 31, 29, 36, 37, 31, 30, 36, 31, 40, 41, 37, 36, 40, 37, 36, 30, 44, 55, 22, 43, 55, 48, 56, 47, 48, 55, 46, 55, 54, 42, 55, 43, 47, 55, 46, 62, 49, 48, 61, 47, 46, 62, 48, 47, 61, 62, 47, 46, 54, 45, 42, 41, 55, 61, 46, 45, 55, 41, 54, 61, 51, 50, 61, 50, 62, 60, 41, 40, 54, 41, 60, 53, 61, 45, 52, 51, 61, 57, 53, 45, 57, 45, 54, 53, 52, 61, 52, 19, 51, 57, 18, 52, 57, 52, 53, 17, 54, 60, 57, 54, 17, 18, 57, 17, 19, 50, 51, 33, 27, 28, 26, 27, 33, 0, 33, 28, 32, 33, 0, 32, 0, 1, 33, 25, 26, 33, 32, 25, 31, 25, 32, 2, 32, 1, 2, 3, 4, 29, 31, 2, 2, 4, 5, 29, 2, 5, 6, 29, 5, 30, 29, 6, 44, 30, 6, 18, 19, 52, 49, 56, 48, 34, 24, 25, 35, 23, 24, 35, 24, 34, 39, 22, 35, 22, 23, 35, 7, 44, 6, 8, 36, 44, 40, 36, 8, 8, 44, 7, 56, 21, 22, 55, 56, 22, 9, 40, 8, 20, 21, 56, 20, 56, 49, 9, 60, 40, 10, 60, 9, 20, 50, 19, 12, 10, 11, 13, 10, 12, 14, 60, 10, 13, 14, 10, 59, 60, 14, 58, 59, 14, 58, 14, 15, 16, 17, 60, 59, 16, 60, 15, 16, 59, 15, 59, 58, 20, 49, 50 ], + "vertices": [ 2, 50, 41.97, -41.8, 0.94074, 66, 165.41, -22.6, 0.05926, 4, 48, 73.47, 27.54, 0.26795, 50, -5.75, -51.71, 0.4738, 49, 112.99, -11.41, 0.12255, 66, 143.5, -66.13, 0.1357, 4, 48, 38.23, 10.99, 0.6831, 50, -41.01, -35.22, 0.07866, 49, 92.73, -44.66, 0.04872, 66, 108.65, -83.49, 0.18952, 2, 48, 73.35, 10.89, 0.8455, 66, 143.77, -82.78, 0.1545, 2, 48, 58.59, -10.38, 0.91607, 66, 129.5, -104.39, 0.08393, 3, 46, 195.82, -119.82, 0.104, 47, 75.49, -4.55, 0.09191, 48, 14.36, -24.8, 0.80409, 4, 46, 178.62, -113.98, 0.19022, 47, 59.82, -13.72, 0.33409, 48, -2.7, -18.57, 0.46643, 66, 68.41, -113.98, 0.00926, 4, 46, 163.06, -108.69, 0.18724, 47, 45.64, -22.03, 0.3133, 48, -18.14, -12.93, 0.47469, 66, 52.84, -108.69, 0.02477, 2, 46, 151.52, -95.05, 0.91122, 66, 41.31, -95.05, 0.08878, 2, 46, 110.61, -87.69, 0.70564, 66, 0.4, -87.69, 0.29436, 2, 46, 81.05, -86.58, 0.63951, 66, -29.16, -86.58, 0.36049, 2, 46, 89.82, -114.32, 0.57, 66, -20.39, -114.32, 0.43, 2, 46, 68.72, -120.91, 0.57, 66, -41.49, -120.91, 0.43, 2, 46, 58.1, -115.9, 0.57, 66, -52.11, -115.9, 0.43, 2, 46, 51.03, -100.63, 0.64242, 66, -59.18, -100.63, 0.35758, 2, 46, 38.79, -106.76, 0.81659, 66, -71.43, -106.76, 0.18341, 2, 46, 2.68, -89.7, 0.77801, 66, -107.53, -89.7, 0.22199, 2, 46, -22.07, -19.3, 0.823, 66, -132.28, -19.3, 0.177, 2, 46, 1.2, 45.63, 0.51204, 66, -109.01, 45.63, 0.48796, 2, 46, 8.07, 64.81, 0.60869, 66, -102.14, 64.81, 0.39131, 2, 46, 35.44, 93.73, 0.80009, 66, -74.77, 93.73, 0.19991, 2, 46, 59.98, 119.66, 0.93554, 66, -50.23, 119.66, 0.06446, 2, 46, 109.26, 136.99, 0.99895, 66, -0.95, 136.99, 0.00105, 1, 46, 174.07, 135.27, 1, 3, 46, 205.59, 101.22, 0.80778, 49, -16.84, 104.63, 0.15658, 66, 95.38, 101.22, 0.03564, 3, 50, 58.94, 30.5, 0.43491, 49, 38.36, 61.89, 0.28116, 66, 119.35, 35.65, 0.28393, 2, 50, 75.56, 19.01, 0.92164, 66, 138.68, 41.52, 0.07836, 1, 50, 106.7, 26.9, 1, 1, 50, 83.79, -9.51, 1, 5, 47, 44.51, 27.24, 0.15139, 48, 19.12, 19.33, 0.44847, 50, -46.82, -15.19, 0.05757, 49, 72.19, -48.24, 0.1149, 66, 89.35, -75.58, 0.22767, 3, 47, 7.42, 19.08, 0.37772, 49, 34.32, -45.24, 0.09918, 66, 58.9, -52.89, 0.52311, 2, 49, 45.94, -9.07, 0.4826, 66, 87.99, -28.45, 0.5174, 2, 50, 20.62, -16.35, 0.7435, 66, 132.21, -23.49, 0.2565, 2, 50, 75.74, 0.94, 0.97172, 66, 152.95, 30.42, 0.02828, 4, 46, 200.45, 40.46, 0.18809, 50, 44.6, 56.29, 0.05831, 49, 11.15, 50.46, 0.14366, 66, 90.24, 40.46, 0.60994, 2, 46, 171.41, 90.12, 0.48644, 66, 61.2, 90.12, 0.51356, 2, 46, 164.84, -48.18, 0.43217, 66, 54.62, -48.18, 0.56783, 4, 46, 168.13, -6.02, 0.01949, 47, -28.65, 49.02, 0.02229, 49, 8.54, -6.09, 0.12791, 66, 57.92, -6.02, 0.83031, 2, 46, 167.84, 37.87, 0.15, 66, 57.63, 37.87, 0.85, 2, 46, 162.36, 71.5, 0.24107, 66, 52.15, 71.5, 0.75893, 2, 46, 163.11, -47.44, 0.41951, 66, 52.9, -47.44, 0.58049, 2, 46, 165.94, -5.87, 0.16355, 66, 55.73, -5.87, 0.83645, 2, 46, 165.14, 37.38, 0.15, 66, 54.93, 37.38, 0.85, 2, 46, 157.6, 71.4, 0.21735, 66, 47.39, 71.4, 0.78265, 3, 46, 163.5, -99.54, 0.61812, 47, 39.01, -15.71, 0.30445, 66, 53.29, -99.54, 0.07744, 2, 46, 45.38, 27.24, 0.16741, 66, -64.83, 27.24, 0.83259, 2, 46, 63.74, 44.98, 0.15, 66, -46.47, 44.98, 0.85, 2, 46, 70.7, 61.92, 0.22175, 66, -39.51, 61.92, 0.77825, 2, 46, 62.88, 78.71, 0.38, 66, -47.34, 78.71, 0.62, 2, 46, 46.53, 85.3, 0.51, 66, -63.68, 85.3, 0.49, 2, 46, 29.92, 79.34, 0.388, 66, -80.29, 79.34, 0.612, 2, 46, 15.08, 62.21, 0.38, 66, -95.13, 62.21, 0.62, 2, 46, 14.09, 45.32, 0.41, 66, -96.12, 45.32, 0.59, 2, 46, 24.3, 27.06, 0.192, 66, -85.91, 27.06, 0.808, 1, 66, -61.57, 15.3, 1, 2, 46, 84.87, 62.14, 0.16757, 66, -25.34, 62.14, 0.83243, 2, 46, 61.9, 94.84, 0.68145, 66, -48.31, 94.84, 0.31855, 2, 46, 22.54, 21.88, 0.16, 66, -87.67, 21.88, 0.84, 2, 46, 43.15, -95.95, 0.73445, 66, -67.06, -95.95, 0.26555, 2, 46, 41.77, -87.24, 0.67858, 66, -68.44, -87.24, 0.32142, 2, 46, 60.05, -70.36, 0.50195, 66, -50.16, -70.36, 0.49805, 2, 46, 48.49, 51.09, 0.25, 66, -61.72, 51.09, 0.75, 2, 46, 48.17, 73.71, 0.15634, 66, -62.04, 73.71, 0.84366 ], + "hull": 29, + "edges": [ 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 0, 56, 54, 56, 54, 52, 52, 50, 50, 48, 48, 46, 46, 44, 42, 44, 32, 34, 4, 58, 58, 60, 62, 64, 64, 66, 66, 54, 50, 68, 68, 70, 70, 44, 60, 72, 62, 74, 72, 74, 74, 76, 76, 78, 78, 44, 16, 80, 80, 82, 82, 84, 84, 86, 86, 44, 14, 88, 88, 72, 14, 16, 10, 12, 12, 14, 12, 60, 90, 92, 92, 94, 94, 96, 96, 98, 98, 100, 100, 102, 102, 104, 104, 106, 106, 90, 108, 110, 110, 112, 38, 40, 40, 42, 112, 40, 34, 36, 36, 38, 36, 114, 114, 108, 30, 32, 30, 28, 24, 26, 28, 26, 22, 24, 22, 20, 20, 18, 18, 16, 28, 116, 116, 118, 118, 120, 120, 20 ], + "width": 271, + "height": 298 + } + }, + "head-bb": { + "head": { + "type": "boundingbox", + "vertexCount": 6, + "vertices": [ -19.14, -70.3, 40.8, -118.08, 257.78, -115.62, 285.17, 57.18, 120.77, 164.95, -5.07, 76.95 ] + } + }, + "hoverboard-board": { + "hoverboard-board": { + "type": "mesh", + "uvs": [ 0.13865, 0.56624, 0.11428, 0.51461, 0.07619, 0.52107, 0.02364, 0.52998, 0.01281, 0.53182, 0, 0.37979, 0, 0.2206, 0.00519, 0.10825, 0.01038, 0.10726, 0.03834, 0.10194, 0.05091, 0, 0.08326, 0, 0.10933, 0.04206, 0.1382, 0.08865, 0.18916, 0.24067, 0.22234, 0.4063, 0.23886, 0.44063, 0.83412, 0.44034, 0.88444, 0.38296, 0.92591, 0.32639, 0.95996, 0.28841, 0.98612, 0.28542, 1, 0.38675, 0.99494, 0.47104, 0.97883, 0.53251, 0.94409, 0.62135, 0.90206, 0.69492, 0.86569, 0.71094, 0.82822, 0.70791, 0.81286, 0.77127, 0.62931, 0.77266, 0.61364, 0.70645, 0.47166, 0.70664, 0.45901, 0.77827, 0.27747, 0.76986, 0.2658, 0.70372, 0.24976, 0.71381, 0.24601, 0.77827, 0.23042, 0.84931, 0.20926, 0.90956, 0.17299, 1, 0.15077, 0.99967, 0.12906, 0.90192, 0.10369, 0.73693, 0.10198, 0.62482, 0.09131, 0.47272, 0.09133, 0.41325, 0.15082, 0.41868, 0.21991, 0.51856, 0.06331, 0.10816, 0.08383, 0.21696, 0.08905, 0.37532, 0.15903, 0.58726, 0.17538, 0.65706, 0.20118, 0.8029, 0.17918, 0.55644, 0.22166, 0.5802, 0.86259, 0.57962, 0.92346, 0.48534, 0.96691, 0.36881, 0.0945, 0.13259, 0.12688, 0.17831, 0.15986, 0.24682, 0.18036, 0.31268, 0.20607, 0.4235, 0.16074, 0.85403, 0.13624, 0.70122, 0.12096, 0.64049, 0.02396, 0.21811, 0.02732, 0.37839, 0.02557, 0.4972, 0.14476, 0.45736, 0.18019, 0.51689, 0.19692, 0.56636 ], + "triangles": [ 10, 11, 12, 9, 10, 12, 49, 9, 12, 60, 49, 12, 13, 60, 12, 61, 60, 13, 50, 49, 60, 50, 60, 61, 68, 8, 9, 68, 9, 49, 68, 49, 50, 7, 8, 68, 6, 7, 68, 61, 13, 14, 62, 61, 14, 50, 61, 62, 63, 62, 14, 59, 20, 21, 19, 20, 59, 51, 50, 62, 51, 62, 63, 51, 69, 68, 51, 68, 50, 6, 68, 69, 5, 6, 69, 18, 19, 59, 15, 63, 14, 59, 21, 22, 47, 51, 63, 47, 46, 51, 47, 63, 64, 15, 64, 63, 64, 15, 16, 71, 46, 47, 23, 59, 22, 69, 51, 70, 45, 46, 71, 70, 51, 2, 58, 18, 59, 58, 59, 23, 17, 18, 58, 70, 5, 69, 2, 51, 46, 1, 45, 71, 47, 48, 71, 47, 64, 48, 48, 72, 71, 1, 71, 72, 16, 48, 64, 45, 2, 46, 2, 45, 1, 70, 4, 5, 3, 70, 2, 3, 4, 70, 24, 58, 23, 72, 0, 1, 73, 55, 72, 55, 0, 72, 48, 73, 72, 57, 17, 58, 25, 57, 58, 56, 48, 16, 73, 48, 56, 56, 16, 17, 56, 17, 57, 52, 0, 55, 24, 25, 58, 44, 0, 52, 67, 44, 52, 52, 56, 53, 73, 52, 55, 56, 52, 73, 67, 52, 53, 26, 57, 25, 66, 67, 53, 56, 32, 35, 53, 56, 35, 56, 57, 32, 28, 31, 57, 57, 31, 32, 57, 27, 28, 26, 27, 57, 36, 53, 35, 43, 44, 67, 43, 67, 66, 34, 35, 32, 29, 31, 28, 30, 31, 29, 53, 54, 66, 53, 36, 54, 33, 34, 32, 37, 54, 36, 65, 43, 66, 38, 54, 37, 54, 65, 66, 39, 65, 54, 42, 43, 65, 38, 39, 54, 40, 42, 65, 40, 41, 42, 65, 39, 40 ], + "vertices": [ -189.36, 15.62, -201.35, 23.47, -220.09, 22.49, -245.95, 21.13, -251.28, 20.86, -257.58, 43.96, -257.57, 68.16, -255.02, 85.24, -252.47, 85.39, -238.71, 86.2, -232.52, 101.69, -216.61, 101.69, -203.78, 95.3, -189.58, 88.21, -164.51, 65.1, -148.19, 39.93, -140.06, 34.71, 152.82, 34.73, 177.57, 43.45, 197.97, 52.05, 214.72, 57.82, 227.6, 58.27, 234.42, 42.87, 231.94, 30.06, 224.01, 20.72, 206.91, 7.21, 186.23, -3.97, 168.34, -6.4, 149.9, -5.94, 142.35, -15.57, 52.04, -15.77, 44.33, -5.71, -25.52, -5.73, -31.75, -16.62, -121.07, -15.34, -126.81, -5.28, -134.7, -6.81, -136.54, -16.61, -144.22, -27.41, -154.63, -36.57, -172.47, -50.31, -183.41, -50.26, -194.09, -35.4, -206.56, -10.32, -207.4, 6.72, -212.65, 29.84, -212.64, 38.88, -183.37, 38.05, -149.38, 22.86, -226.43, 85.25, -216.33, 68.71, -213.76, 44.64, -179.34, 12.42, -171.29, 1.81, -158.6, -20.36, -169.42, 17.11, -148.52, 13.49, 166.82, 13.56, 196.76, 27.89, 218.14, 45.6, -211.08, 81.54, -195.15, 74.59, -178.93, 64.17, -168.84, 54.16, -156.19, 37.31, -178.5, -28.13, -190.55, -4.9, -198.07, 4.33, -245.79, 68.54, -244.14, 44.18, -245, 26.12, -186.36, 32.17, -168.92, 23.12, -160.69, 15.6 ], + "hull": 45, + "edges": [ 0, 2, 8, 10, 10, 12, 12, 14, 18, 20, 20, 22, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 70, 72, 72, 74, 80, 82, 82, 84, 84, 86, 86, 88, 0, 88, 2, 90, 90, 92, 92, 94, 94, 96, 96, 32, 18, 98, 98, 100, 100, 102, 2, 4, 102, 4, 92, 102, 0, 104, 104, 106, 106, 108, 78, 80, 108, 78, 74, 76, 76, 78, 62, 56, 64, 70, 0, 110, 112, 114, 114, 116, 116, 118, 118, 42, 50, 116, 114, 34, 98, 120, 120, 122, 22, 24, 24, 26, 120, 24, 122, 124, 124, 126, 126, 128, 128, 96, 80, 130, 130, 132, 132, 134, 134, 88, 14, 16, 16, 18, 136, 16, 136, 138, 138, 140, 4, 6, 6, 8, 140, 6, 96, 112, 92, 142, 142, 144, 110, 146, 146, 112, 144, 146 ], + "width": 492, + "height": 152 + } + }, + "hoverboard-thruster-front": { + "hoverboard-thruster": { "x": 0.02, "y": -7.08, "rotation": 0.17, "width": 60, "height": 64 } + }, + "hoverboard-thruster-rear": { + "hoverboard-thruster": { "x": 1.1, "y": -6.29, "rotation": 0.17, "width": 60, "height": 64 } + }, + "hoverglow-front": { + "hoverglow-small": { + "x": 2.13, + "y": -2, + "scaleX": 0.303, + "scaleY": 0.495, + "rotation": 0.15, + "width": 274, + "height": 75 + } + }, + "hoverglow-rear": { + "hoverglow-small": { + "x": 1.39, + "y": -2.09, + "scaleX": 0.303, + "scaleY": 0.495, + "rotation": 0.61, + "width": 274, + "height": 75 + } + }, + "mouth": { + "mouth-grind": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 66, -98.93, -85.88, 0.22, 46, 11.28, -85.88, 0.78, 2, 66, -129.77, 1.84, 0.6, 46, -19.56, 1.84, 0.4, 2, 66, -74.12, 21.41, 0.6, 46, 36.09, 21.41, 0.4, 2, 66, -43.28, -66.32, 0.4, 46, 66.93, -66.32, 0.6 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 93, + "height": 59 + }, + "mouth-oooo": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 46, 11.28, -85.89, 0.22, 66, -98.93, -85.89, 0.78, 2, 46, -19.56, 1.85, 0.6, 66, -129.78, 1.85, 0.4, 2, 46, 36.1, 21.42, 0.6, 66, -74.12, 21.42, 0.4, 2, 46, 66.94, -66.32, 0.4, 66, -43.27, -66.32, 0.6 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 93, + "height": 59 + }, + "mouth-smile": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 66, -98.93, -85.89, 0.21075, 46, 11.28, -85.89, 0.78925, 2, 66, -129.77, 1.85, 0.6, 46, -19.56, 1.85, 0.4, 2, 66, -74.11, 21.42, 0.6, 46, 36.1, 21.42, 0.4, 2, 66, -43.27, -66.32, 0.40772, 46, 66.94, -66.32, 0.59228 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 93, + "height": 59 + } + }, + "muzzle": { + "muzzle01": { + "x": 151.97, + "y": 5.81, + "scaleX": 3.7361, + "scaleY": 3.7361, + "rotation": 0.15, + "width": 133, + "height": 79 + }, + "muzzle02": { + "x": 187.25, + "y": 5.9, + "scaleX": 4.0623, + "scaleY": 4.0623, + "rotation": 0.15, + "width": 135, + "height": 84 + }, + "muzzle03": { + "x": 231.96, + "y": 6.02, + "scaleX": 4.1325, + "scaleY": 4.1325, + "rotation": 0.15, + "width": 166, + "height": 106 + }, + "muzzle04": { + "x": 231.96, + "y": 6.02, + "scaleX": 4.0046, + "scaleY": 4.0046, + "rotation": 0.15, + "width": 149, + "height": 90 + }, + "muzzle05": { + "x": 293.8, + "y": 6.19, + "scaleX": 4.4673, + "scaleY": 4.4673, + "rotation": 0.15, + "width": 135, + "height": 75 + } + }, + "muzzle-glow": { + "muzzle-glow": { "width": 50, "height": 50 } + }, + "muzzle-ring": { + "muzzle-ring": { "x": -1.3, "y": 0.32, "scaleX": 0.3147, "scaleY": 0.3147, "width": 49, "height": 209 } + }, + "muzzle-ring2": { + "muzzle-ring": { "x": -1.3, "y": 0.32, "scaleX": 0.3147, "scaleY": 0.3147, "width": 49, "height": 209 } + }, + "muzzle-ring3": { + "muzzle-ring": { "x": -1.3, "y": 0.32, "scaleX": 0.3147, "scaleY": 0.3147, "width": 49, "height": 209 } + }, + "muzzle-ring4": { + "muzzle-ring": { "x": -1.3, "y": 0.32, "scaleX": 0.3147, "scaleY": 0.3147, "width": 49, "height": 209 } + }, + "neck": { + "neck": { "x": 9.77, "y": -3.01, "rotation": -55.22, "width": 36, "height": 41 } + }, + "portal-bg": { + "portal-bg": { "x": -3.1, "y": 7.25, "scaleX": 1.0492, "scaleY": 1.0492, "width": 266, "height": 266 } + }, + "portal-flare1": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare2": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare3": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare4": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare5": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare6": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare7": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare8": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare9": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare10": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-shade": { + "portal-shade": { "width": 266, "height": 266 } + }, + "portal-streaks1": { + "portal-streaks1": { "scaleX": 0.9774, "scaleY": 0.9774, "width": 252, "height": 256 } + }, + "portal-streaks2": { + "portal-streaks2": { "x": -1.64, "y": 2.79, "width": 250, "height": 249 } + }, + "rear-bracer": { + "rear-bracer": { "x": 11.15, "y": -2.2, "rotation": 66.17, "width": 56, "height": 72 } + }, + "rear-foot": { + "rear-foot": { + "type": "mesh", + "uvs": [ 0.48368, 0.1387, 0.51991, 0.21424, 0.551, 0.27907, 0.58838, 0.29816, 0.63489, 0.32191, 0.77342, 0.39267, 1, 0.73347, 1, 1, 0.54831, 0.99883, 0.31161, 1, 0, 1, 0, 0.41397, 0.13631, 0, 0.41717, 0 ], + "triangles": [ 8, 3, 4, 8, 4, 5, 8, 5, 6, 8, 6, 7, 11, 1, 10, 3, 9, 2, 2, 10, 1, 12, 13, 0, 0, 11, 12, 1, 11, 0, 2, 9, 10, 3, 8, 9 ], + "vertices": [ 2, 8, 10.45, 29.41, 0.90802, 9, -6.74, 49.62, 0.09198, 2, 8, 16.56, 29.27, 0.84259, 9, -2.65, 45.09, 0.15741, 2, 8, 21.8, 29.15, 0.69807, 9, 0.85, 41.2, 0.30193, 2, 8, 25.53, 31.43, 0.52955, 9, 5.08, 40.05, 0.47045, 2, 8, 30.18, 34.27, 0.39303, 9, 10.33, 38.62, 0.60697, 2, 8, 44.02, 42.73, 0.27525, 9, 25.98, 34.36, 0.72475, 2, 8, 76.47, 47.28, 0.21597, 9, 51.56, 13.9, 0.78403, 2, 8, 88.09, 36.29, 0.28719, 9, 51.55, -2.09, 0.71281, 2, 8, 52.94, -0.73, 0.47576, 9, 0.52, -1.98, 0.52424, 2, 8, 34.63, -20.23, 0.68757, 9, -26.23, -2.03, 0.31243, 2, 8, 10.44, -45.81, 0.84141, 9, -61.43, -2, 0.15859, 2, 8, -15.11, -21.64, 0.93283, 9, -61.4, 33.15, 0.06717, 1, 8, -22.57, 6.61, 1, 1, 8, -0.76, 29.67, 1 ], + "hull": 14, + "edges": [ 14, 12, 10, 12, 14, 16, 16, 18, 18, 20, 4, 18, 20, 22, 24, 26, 22, 24, 4, 2, 2, 20, 4, 6, 6, 16, 6, 8, 8, 10, 2, 0, 0, 26 ], + "width": 113, + "height": 60 + } + }, + "rear-shin": { + "rear-shin": { "x": 58.29, "y": -2.75, "rotation": 92.37, "width": 75, "height": 178 } + }, + "rear-thigh": { + "rear-thigh": { "x": 33.11, "y": -4.11, "rotation": 72.54, "width": 55, "height": 94 } + }, + "rear-upper-arm": { + "rear-upper-arm": { "x": 21.13, "y": 4.09, "rotation": 89.33, "width": 40, "height": 87 } + }, + "side-glow1": { + "hoverglow-small": { "x": 2.09, "scaleX": 0.2353, "scaleY": 0.4132, "width": 274, "height": 75 } + }, + "side-glow2": { + "hoverglow-small": { "x": 2.09, "scaleX": 0.2353, "scaleY": 0.4132, "width": 274, "height": 75 } + }, + "side-glow3": { + "hoverglow-small": { "x": 2.09, "scaleX": 0.3586, "scaleY": 0.6297, "width": 274, "height": 75 } + }, + "torso": { + "torso": { + "type": "mesh", + "uvs": [ 0.6251, 0.12672, 1, 0.26361, 1, 0.28871, 1, 0.66021, 1, 0.68245, 0.92324, 0.69259, 0.95116, 0.84965, 0.77124, 1, 0.49655, 1, 0.27181, 1, 0.13842, 0.77196, 0.09886, 0.6817, 0.05635, 0.58471, 0, 0.45614, 0, 0.33778, 0, 0.19436, 0.14463, 0, 0.27802, 0, 0.72525, 0.27835, 0.76091, 0.46216, 0.84888, 0.67963, 0.68257, 0.63249, 0.53986, 0.3847, 0.25443, 0.3217, 0.30063, 0.55174, 0.39553, 0.79507, 0.26389, 0.17007, 0.5241, 0.18674, 0.71492, 0.76655, 0.82151, 0.72956, 0.27626, 0.4304, 0.62327, 0.52952, 0.3455, 0.66679, 0.53243, 0.2914 ], + "triangles": [ 18, 1, 2, 19, 2, 3, 18, 0, 1, 23, 15, 26, 27, 26, 16, 14, 15, 23, 15, 16, 26, 17, 27, 16, 13, 14, 23, 0, 27, 17, 13, 23, 30, 11, 12, 24, 21, 31, 19, 12, 13, 30, 24, 22, 31, 31, 22, 19, 12, 30, 24, 32, 24, 31, 24, 30, 22, 3, 20, 19, 32, 31, 21, 11, 24, 32, 4, 5, 3, 8, 28, 7, 7, 29, 6, 7, 28, 29, 9, 25, 8, 8, 25, 28, 9, 10, 25, 29, 5, 6, 10, 32, 25, 25, 21, 28, 25, 32, 21, 10, 11, 32, 28, 21, 29, 29, 20, 5, 29, 21, 20, 5, 20, 3, 20, 21, 19, 33, 26, 27, 22, 18, 19, 19, 18, 2, 33, 27, 18, 30, 23, 22, 22, 33, 18, 23, 33, 22, 33, 23, 26, 27, 0, 18 ], + "vertices": [ 2, 29, 44.59, -10.39, 0.88, 40, -17.65, 33.99, 0.12, 3, 28, 59.65, -45.08, 0.12189, 29, 17.13, -45.08, 0.26811, 40, 22.68, 15.82, 0.61, 3, 28, 55.15, -44.72, 0.1345, 29, 12.63, -44.72, 0.2555, 40, 23.43, 11.37, 0.61, 3, 27, 31.01, -39.45, 0.51133, 28, -11.51, -39.45, 0.30867, 40, 34.58, -54.57, 0.18, 3, 27, 27.01, -39.14, 0.53492, 28, -15.5, -39.14, 0.28508, 40, 35.25, -58.52, 0.18, 2, 27, 25.79, -31.5, 0.75532, 28, -16.73, -31.5, 0.24468, 1, 27, -2.61, -32, 1, 1, 27, -28.2, -12.29, 1, 1, 27, -26.08, 14.55, 1, 1, 27, -24.35, 36.5, 1, 2, 27, 17.6, 46.3, 0.8332, 28, -24.92, 46.3, 0.1668, 2, 27, 34.1, 48.89, 0.59943, 28, -8.42, 48.89, 0.40058, 3, 27, 51.83, 51.67, 0.29262, 28, 9.32, 51.67, 0.63181, 29, -33.2, 51.67, 0.07557, 3, 27, 75.34, 55.35, 0.06656, 28, 32.82, 55.35, 0.62298, 29, -9.7, 55.35, 0.31046, 2, 28, 54.06, 53.67, 0.37296, 29, 11.54, 53.67, 0.62704, 2, 28, 79.79, 51.64, 0.10373, 29, 37.27, 51.64, 0.89627, 1, 29, 71.04, 34.76, 1, 1, 29, 70.01, 21.72, 1, 1, 30, 36.74, 7.06, 1, 3, 30, 45.7, -24.98, 0.67, 28, 25.87, -18.9, 0.3012, 29, -16.65, -18.9, 0.0288, 2, 27, 28.69, -24.42, 0.77602, 28, -13.83, -24.42, 0.22398, 3, 30, 43.24, -56.49, 0.064, 27, 38.43, -8.84, 0.67897, 28, -4.09, -8.84, 0.25703, 3, 30, 22.02, -14.85, 0.29, 28, 41.48, 1.59, 0.53368, 29, -1.04, 1.59, 0.17632, 3, 30, -7.45, -8.33, 0.76, 28, 54.98, 28.59, 0.06693, 29, 12.46, 28.59, 0.17307, 3, 30, 3.91, -48.4, 0.25, 27, 55.87, 27.33, 0.15843, 28, 13.35, 27.33, 0.59157, 1, 27, 11.47, 21.51, 1, 2, 30, -11.09, 18.74, 0.416, 29, 39.6, 25.51, 0.584, 2, 30, 14.56, 20.03, 0.53, 29, 34.6, 0.33, 0.47, 1, 27, 14.12, -10.1, 1, 2, 27, 19.94, -21.03, 0.92029, 28, -22.58, -21.03, 0.07971, 3, 30, -2.08, -27.26, 0.29, 28, 35.31, 27.99, 0.49582, 29, -7.21, 27.99, 0.21418, 2, 30, 34.42, -39.19, 0.25, 28, 14.84, -4.5, 0.75, 2, 27, 34.87, 24.58, 0.67349, 28, -7.64, 24.58, 0.32651, 2, 30, 18.5, 1.59, 0.76, 29, 15.76, 1, 0.24 ], + "hull": 18, + "edges": [ 14, 12, 12, 10, 10, 8, 18, 20, 32, 34, 30, 32, 2, 4, 36, 4, 36, 38, 38, 40, 4, 6, 6, 8, 40, 6, 40, 42, 14, 16, 16, 18, 50, 16, 46, 52, 54, 36, 2, 0, 0, 34, 54, 0, 54, 32, 20, 50, 14, 56, 56, 42, 50, 56, 56, 58, 58, 40, 58, 10, 46, 60, 60, 48, 26, 60, 60, 44, 24, 26, 24, 48, 42, 62, 62, 44, 48, 62, 48, 64, 64, 50, 42, 64, 20, 22, 22, 24, 64, 22, 26, 28, 28, 30, 28, 46, 44, 66, 66, 54, 46, 66, 66, 36, 62, 38 ], + "width": 98, + "height": 180 + } + } + } + } +], +"events": { + "footstep": {} +}, +"animations": { + "aim": { + "slots": { + "crosshair": { + "attachment": [ + { "name": "crosshair" } + ] + } + }, + "bones": { + "front-fist": { + "rotate": [ + { "value": 36.08 } + ] + }, + "rear-bracer": { + "rotate": [ + { "value": -26.55 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { "value": 62.31 } + ] + }, + "front-bracer": { + "rotate": [ + { "value": 9.11 } + ] + }, + "gun": { + "rotate": [ + { "value": -0.31 } + ] + } + }, + "ik": { + "aim-ik": [ + { "mix": 0.995 } + ] + }, + "transform": { + "aim-front-arm-transform": [ + { "mixRotate": 0.784, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 } + ], + "aim-head-transform": [ + { "mixRotate": 0.659, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 } + ], + "aim-torso-transform": [ + { "mixRotate": 0.423, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 } + ] + } + }, + "death": { + "slots": { + "eye": { + "attachment": [ + { "name": "eye-surprised" }, + { "time": 0.5333, "name": "eye-indifferent" }, + { "time": 2.2, "name": "eye-surprised" }, + { "time": 4.6, "name": "eye-indifferent" } + ] + }, + "front-fist": { + "attachment": [ + { "name": "front-fist-open" } + ] + }, + "mouth": { + "attachment": [ + { "name": "mouth-oooo" }, + { "time": 0.5333, "name": "mouth-grind" }, + { "time": 1.4, "name": "mouth-oooo" }, + { "time": 2.1667, "name": "mouth-grind" }, + { "time": 4.5333, "name": "mouth-oooo" } + ] + } + }, + "bones": { + "head": { + "rotate": [ + { + "value": -2.83, + "curve": [ 0.015, -2.83, 0.036, 12.72 ] + }, + { + "time": 0.0667, + "value": 12.19, + "curve": [ 0.096, 11.68, 0.119, -1.14 ] + }, + { + "time": 0.1333, + "value": -6.86, + "curve": [ 0.149, -13.27, 0.21, -37.28 ] + }, + { + "time": 0.3, + "value": -36.86, + "curve": [ 0.354, -36.61, 0.412, -32.35 ] + }, + { + "time": 0.4667, + "value": -23.49, + "curve": [ 0.49, -19.87, 0.512, -3.29 ] + }, + { + "time": 0.5333, + "value": -3.24, + "curve": [ 0.56, -3.39, 0.614, -67.25 ] + }, + { + "time": 0.6333, + "value": -74.4, + "curve": [ 0.652, -81.58, 0.702, -88.94 ] + }, + { + "time": 0.7333, + "value": -88.93, + "curve": [ 0.805, -88.91, 0.838, -80.87 ] + }, + { + "time": 0.8667, + "value": -81.03, + "curve": [ 0.922, -81.32, 0.976, -85.29 ] + }, + { "time": 1, "value": -85.29, "curve": "stepped" }, + { + "time": 2.2333, + "value": -85.29, + "curve": [ 2.314, -85.29, 2.382, -68.06 ] + }, + { + "time": 2.4667, + "value": -63.48, + "curve": [ 2.57, -57.87, 2.916, -55.24 ] + }, + { + "time": 3.2, + "value": -55.1, + "curve": [ 3.447, -54.98, 4.135, -56.61 ] + }, + { + "time": 4.2667, + "value": -58.23, + "curve": [ 4.672, -63.24, 4.646, -82.69 ] + }, + { "time": 4.9333, "value": -85.29 } + ], + "scale": [ + { + "time": 0.4667, + "curve": [ 0.469, 1.005, 0.492, 1.065, 0.475, 1.018, 0.492, 0.94 ] + }, + { + "time": 0.5, + "x": 1.065, + "y": 0.94, + "curve": [ 0.517, 1.065, 0.541, 0.991, 0.517, 0.94, 0.542, 1.026 ] + }, + { + "time": 0.5667, + "x": 0.99, + "y": 1.025, + "curve": [ 0.593, 0.988, 0.609, 1.002, 0.595, 1.024, 0.607, 1.001 ] + }, + { "time": 0.6333 } + ] + }, + "neck": { + "rotate": [ + { + "value": -2.83, + "curve": [ 0.114, 1.33, 0.195, 4.13 ] + }, + { + "time": 0.2667, + "value": 4.13, + "curve": [ 0.351, 4.14, 0.444, -24.5 ] + }, + { + "time": 0.5, + "value": -24.69, + "curve": [ 0.571, -23.89, 0.55, 34.22 ] + }, + { + "time": 0.6667, + "value": 35.13, + "curve": [ 0.713, 34.81, 0.756, 22.76 ] + }, + { + "time": 0.8333, + "value": 22.82, + "curve": [ 0.868, 22.84, 0.916, 47.95 ] + }, + { "time": 0.9667, "value": 47.95, "curve": "stepped" }, + { + "time": 2.2333, + "value": 47.95, + "curve": [ 2.3, 47.95, 2.617, 18.72 ] + }, + { + "time": 2.6667, + "value": 18.51, + "curve": [ 3.172, 16.58, 4.06, 16.79 ] + }, + { + "time": 4.5333, + "value": 18.51, + "curve": [ 4.707, 19.13, 4.776, 41.11 ] + }, + { "time": 4.8, "value": 47.95 } + ] + }, + "torso": { + "rotate": [ + { + "value": -8.62, + "curve": [ 0.01, -16.71, 0.032, -33.6 ] + }, + { + "time": 0.0667, + "value": -33.37, + "curve": [ 0.182, -32.61, 0.298, 123.07 ] + }, + { + "time": 0.4667, + "value": 122.77, + "curve": [ 0.511, 122.69, 0.52, 100.2 ] + }, + { + "time": 0.5667, + "value": 88.96, + "curve": [ 0.588, 83.89, 0.667, 75.34 ] + }, + { + "time": 0.7, + "value": 75.34, + "curve": [ 0.767, 75.34, 0.9, 76.03 ] + }, + { "time": 0.9667, "value": 76.03 } + ] + }, + "front-upper-arm": { + "rotate": [ + { + "value": -38.86, + "curve": [ 0.022, -40.38, 0.096, -41.92 ] + }, + { + "time": 0.1333, + "value": -41.92, + "curve": [ 0.176, -41.92, 0.216, -16.92 ] + }, + { + "time": 0.2333, + "value": -4.35, + "curve": [ 0.258, 13.69, 0.308, 60.35 ] + }, + { + "time": 0.4, + "value": 60.17, + "curve": [ 0.496, 59.98, 0.539, 33.63 ] + }, + { + "time": 0.5667, + "value": 23.06, + "curve": [ 0.595, 32.71, 0.675, 53.71 ] + }, + { + "time": 0.7333, + "value": 53.61, + "curve": [ 0.797, 53.51, 0.926, 30.98 ] + }, + { "time": 0.9333, "value": 19.57, "curve": "stepped" }, + { + "time": 1.9667, + "value": 19.57, + "curve": [ 2.245, 19.57, 2.702, 77.03 ] + }, + { + "time": 3.0667, + "value": 77.06, + "curve": [ 3.209, 77.33, 3.291, 67.99 ] + }, + { + "time": 3.4333, + "value": 67.96, + "curve": [ 3.608, 68.34, 3.729, 73.88 ] + }, + { + "time": 3.8333, + "value": 73.42, + "curve": [ 4.152, 73.91, 4.46, 71.98 ] + }, + { + "time": 4.6333, + "value": 64.77, + "curve": [ 4.688, 62.5, 4.847, 26.42 ] + }, + { "time": 4.8667, "value": 10.94 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "value": -44.7, + "curve": [ 0.033, -44.7, 0.12, 54.89 ] + }, + { + "time": 0.1333, + "value": 64.62, + "curve": [ 0.154, 79.18, 0.214, 79.42 ] + }, + { + "time": 0.2667, + "value": 63.4, + "curve": [ 0.293, 55.19, 0.332, 30.13 ] + }, + { + "time": 0.3667, + "value": 30.13, + "curve": [ 0.4, 30.13, 0.441, 39.87 ] + }, + { + "time": 0.4667, + "value": 55.13, + "curve": [ 0.488, 68.18, 0.52, 100.72 ] + }, + { + "time": 0.5333, + "value": 111.96, + "curve": [ 0.551, 126.88, 0.627, 185.97 ] + }, + { + "time": 0.6667, + "value": 185.97, + "curve": [ 0.692, 185.97, 0.736, 162.43 ] + }, + { + "time": 0.8, + "value": 158.01, + "curve": [ 0.9, 151.12, 1.017, 144.01 ] + }, + { "time": 1.1, "value": 144.01, "curve": "stepped" }, + { + "time": 2.3667, + "value": 144.01, + "curve": [ 2.492, 144.01, 2.742, 138.63 ] + }, + { + "time": 2.8667, + "value": 138.63, + "curve": [ 3.067, 138.63, 3.467, 138.63 ] + }, + { + "time": 3.6667, + "value": 138.63, + "curve": [ 3.883, 138.63, 4.317, 135.18 ] + }, + { + "time": 4.5333, + "value": 135.18, + "curve": [ 4.575, 135.18, 4.692, 131.59 ] + }, + { + "time": 4.7333, + "value": 131.59, + "curve": [ 4.758, 131.59, 4.517, 144.01 ] + }, + { "time": 4.8333, "value": 144.01 } + ], + "translate": [ + { + "time": 0.4667, + "curve": [ 0.517, 0, 0.617, -34.96, 0.517, 0, 0.617, -16.59 ] + }, + { "time": 0.6667, "x": -35.02, "y": -16.62 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": 21.88, + "curve": [ 0.033, 21.88, 0.099, 20.44 ] + }, + { + "time": 0.1333, + "value": 9.43, + "curve": [ 0.164, -0.29, 0.162, -38.26 ] + }, + { + "time": 0.2, + "value": -38.05, + "curve": [ 0.24, -37.96, 0.228, -17.82 ] + }, + { + "time": 0.3333, + "value": -9.73, + "curve": [ 0.372, -6.76, 0.431, -0.74 ] + }, + { + "time": 0.4667, + "value": 6.47, + "curve": [ 0.489, 11.05, 0.503, 19.09 ] + }, + { + "time": 0.5333, + "value": 19.09, + "curve": [ 0.571, 19.09, 0.554, -42.67 ] + }, + { + "time": 0.6, + "value": -42.67, + "curve": [ 0.653, -42.67, 0.691, -13.8 ] + }, + { + "time": 0.7, + "value": -3.54, + "curve": [ 0.707, 3.8, 0.719, 24.94 ] + }, + { + "time": 0.8, + "value": 25.31, + "curve": [ 0.902, 24.75, 0.992, -0.34 ] + }, + { "time": 1, "value": -32.16, "curve": "stepped" }, + { + "time": 2.2333, + "value": -32.16, + "curve": [ 2.6, -32.16, 2.638, -5.3 ] + }, + { + "time": 2.7, + "value": -1.96, + "curve": [ 2.707, -1.56, 2.775, 1.67 ] + }, + { + "time": 2.8, + "value": 1.67, + "curve": [ 2.825, 1.67, 2.875, -0.39 ] + }, + { + "time": 2.9, + "value": -0.39, + "curve": [ 2.925, -0.39, 2.975, 0.26 ] + }, + { + "time": 3, + "value": 0.26, + "curve": [ 3.025, 0.26, 3.075, -1.81 ] + }, + { + "time": 3.1, + "value": -1.81, + "curve": [ 3.125, -1.81, 3.175, -0.52 ] + }, + { + "time": 3.2, + "value": -0.52, + "curve": [ 3.225, -0.52, 3.275, -2.41 ] + }, + { + "time": 3.3, + "value": -2.41, + "curve": [ 3.333, -2.41, 3.4, -0.38 ] + }, + { + "time": 3.4333, + "value": -0.38, + "curve": [ 3.467, -0.38, 3.533, -2.25 ] + }, + { + "time": 3.5667, + "value": -2.25, + "curve": [ 3.592, -2.25, 3.642, -0.33 ] + }, + { + "time": 3.6667, + "value": -0.33, + "curve": [ 3.7, -0.33, 3.767, -1.34 ] + }, + { + "time": 3.8, + "value": -1.34, + "curve": [ 3.825, -1.34, 3.862, -0.77 ] + }, + { + "time": 3.9, + "value": -0.77, + "curve": [ 3.942, -0.77, 3.991, -1.48 ] + }, + { + "time": 4, + "value": -1.87, + "curve": [ 4.167, -1.87, 4.5, -1.96 ] + }, + { + "time": 4.6667, + "value": -1.96, + "curve": [ 4.709, 18.05, 4.767, 34.55 ] + }, + { + "time": 4.8, + "value": 34.55, + "curve": [ 4.84, 34.24, 4.902, 12.03 ] + }, + { "time": 4.9333, "value": -18.75 } + ] + }, + "front-fist": { + "rotate": [ + { + "value": -2.33, + "curve": [ 0.019, 4.43, 0.069, 10.82 ] + }, + { + "time": 0.1, + "value": 10.6, + "curve": [ 0.148, 10.6, 0.123, -15.24 ] + }, + { + "time": 0.2, + "value": -15.35, + "curve": [ 0.266, -15.44, 0.316, -6.48 ] + }, + { + "time": 0.3333, + "value": -3.9, + "curve": [ 0.362, 0.43, 0.479, 22.36 ] + }, + { + "time": 0.5667, + "value": 22.01, + "curve": [ 0.61, 21.84, 0.627, 12.85 ] + }, + { + "time": 0.6333, + "value": 9.05, + "curve": [ 0.643, 2.77, 0.622, -39.43 ] + }, + { + "time": 0.7, + "value": -39.5, + "curve": [ 0.773, -39.57, 0.814, 14.77 ] + }, + { + "time": 0.8667, + "value": 14.81, + "curve": [ 0.965, 14.88, 1.1, 5.64 ] + }, + { "time": 1.1, "value": -6.08, "curve": "stepped" }, + { + "time": 2.2333, + "value": -6.08, + "curve": [ 2.307, -6.08, 2.427, -25.89 ] + }, + { + "time": 2.5333, + "value": -22.42, + "curve": [ 2.598, -20.38, 2.657, 5.73 ] + }, + { + "time": 2.7, + "value": 5.73, + "curve": [ 2.77, 5.73, 2.851, -5.38 ] + }, + { + "time": 2.9333, + "value": -5.38, + "curve": [ 3.008, -5.38, 3.087, -4.54 ] + }, + { + "time": 3.1667, + "value": -4.17, + "curve": [ 3.223, -3.91, 4.486, 5.73 ] + }, + { + "time": 4.6667, + "value": 5.73, + "curve": [ 4.733, 5.73, 4.886, -2.47 ] + }, + { "time": 4.9333, "value": -6.52 } + ] + }, + "rear-bracer": { + "rotate": [ + { + "value": 10.36, + "curve": [ 0.033, 10.36, 0.1, -32.89 ] + }, + { + "time": 0.1333, + "value": -32.89, + "curve": [ 0.183, -32.89, 0.283, -4.45 ] + }, + { + "time": 0.3333, + "value": -4.45, + "curve": [ 0.367, -4.45, 0.438, -6.86 ] + }, + { + "time": 0.4667, + "value": -8.99, + "curve": [ 0.529, -13.62, 0.605, -20.58 ] + }, + { + "time": 0.6333, + "value": -23.2, + "curve": [ 0.708, -30.18, 0.758, -35.56 ] + }, + { + "time": 0.8, + "value": -35.56, + "curve": [ 0.875, -35.56, 1.025, -23.2 ] + }, + { "time": 1.1, "value": -23.2 } + ] + }, + "gun": { + "rotate": [ + { + "value": -2.79, + "curve": [ 0.033, -2.79, 0.12, -7.22 ] + }, + { + "time": 0.1333, + "value": -8.52, + "curve": [ 0.168, -11.87, 0.29, -23.71 ] + }, + { + "time": 0.3333, + "value": -26.24, + "curve": [ 0.369, -28.31, 0.436, -29.75 ] + }, + { + "time": 0.5, + "value": -29.66, + "curve": [ 0.552, -29.58, 0.611, -25.47 ] + }, + { + "time": 0.6333, + "value": -22.68, + "curve": [ 0.656, -19.76, 0.68, -10.02 ] + }, + { + "time": 0.7, + "value": -6.49, + "curve": [ 0.722, -2.6, 0.75, -1.22 ] + }, + { + "time": 0.7667, + "value": -1.35, + "curve": [ 0.792, -1.55, 0.842, -19.74 ] + }, + { "time": 0.8667, "value": -19.8 } + ] + }, + "hip": { + "translate": [ + { + "curve": [ 0.098, -42.62, 0.166, -79.85, 0.029, 84.97, 0.109, 155.93 ] + }, + { + "time": 0.2667, + "x": -133.79, + "y": 152.44, + "curve": [ 0.361, -184.63, 0.392, -203.69, 0.42, 149.12, 0.467, -15.7 ] + }, + { + "time": 0.4667, + "x": -230.02, + "y": -113.87, + "curve": [ 0.523, -249.86, 0.565, -261.7, 0.473, -133.1, 0.583, -203.43 ] + }, + { + "time": 0.6, + "x": -268.57, + "y": -203.43, + "curve": [ 0.663, -280.98, 0.816, -290.05, 0.708, -203.43, 0.892, -203.5 ] + }, + { "time": 1, "x": -290.42, "y": -203.5 } + ] + }, + "front-thigh": { + "rotate": [ + { + "curve": [ 0.06, 1.02, 0.151, 45.23 ] + }, + { + "time": 0.1667, + "value": 54.01, + "curve": [ 0.19, 66.85, 0.358, 169.85 ] + }, + { + "time": 0.5, + "value": 169.51, + "curve": [ 0.628, 169.85, 0.692, 108.85 ] + }, + { + "time": 0.7, + "value": 97.74, + "curve": [ 0.723, 102.6, 0.805, 111.6 ] + }, + { + "time": 0.8667, + "value": 111.69, + "curve": [ 0.899, 111.83, 1.015, 109.15 ] + }, + { "time": 1.0667, "value": 95.8 } + ] + }, + "front-shin": { + "rotate": [ + { + "curve": [ 0.086, -0.02, 0.191, -24.25 ] + }, + { + "time": 0.2, + "value": -26.5, + "curve": [ 0.214, -29.92, 0.249, -40.51 ] + }, + { + "time": 0.3333, + "value": -40.57, + "curve": [ 0.431, -40.7, 0.459, -11.34 ] + }, + { + "time": 0.4667, + "value": -8.71, + "curve": [ 0.477, -5.16, 0.524, 17.13 ] + }, + { + "time": 0.6, + "value": 16.98, + "curve": [ 0.632, 17.09, 0.625, 2.76 ] + }, + { + "time": 0.6333, + "value": 2.76, + "curve": [ 0.648, 2.76, 0.653, 2.75 ] + }, + { + "time": 0.6667, + "value": 2.59, + "curve": [ 0.678, 2.39, 0.733, 2.53 ] + }, + { + "time": 0.7333, + "value": -9.43, + "curve": [ 0.745, -2.48, 0.782, 3.12 ] + }, + { + "time": 0.8, + "value": 4.28, + "curve": [ 0.832, 6.32, 0.895, 8.46 ] + }, + { + "time": 0.9333, + "value": 8.49, + "curve": [ 0.986, 8.53, 1.051, 6.38 ] + }, + { + "time": 1.0667, + "value": 2.28, + "curve": [ 1.078, 4.17, 1.103, 5.86 ] + }, + { + "time": 1.1333, + "value": 5.88, + "curve": [ 1.191, 5.93, 1.209, 4.56 ] + }, + { "time": 1.2333, "value": 2.52 } + ] + }, + "rear-thigh": { + "rotate": [ + { + "curve": [ 0.033, 0, 0.12, 50.26 ] + }, + { + "time": 0.1333, + "value": 57.3, + "curve": [ 0.164, 73.34, 0.274, 147.18 ] + }, + { + "time": 0.3333, + "value": 147.1, + "curve": [ 0.475, 146.45, 0.583, 95.72 ] + }, + { + "time": 0.6, + "value": 79.66, + "curve": [ 0.62, 94.74, 0.732, 103.15 ] + }, + { + "time": 0.7667, + "value": 103.02, + "curve": [ 0.812, 102.85, 0.897, 95.75 ] + }, + { "time": 0.9333, "value": 83.01 } + ] + }, + "rear-shin": { + "rotate": [ + { + "curve": [ 0.021, -16.65, 0.091, -54.82 ] + }, + { + "time": 0.1667, + "value": -55.29, + "curve": [ 0.187, -55.42, 0.213, -52.52 ] + }, + { + "time": 0.2333, + "value": -45.98, + "curve": [ 0.242, -43.1, 0.311, -12.73 ] + }, + { + "time": 0.3333, + "value": -6.32, + "curve": [ 0.356, 0.13, 0.467, 24.5 ] + }, + { + "time": 0.5, + "value": 24.5, + "curve": [ 0.543, 24.5, 0.56, 3.78 ] + }, + { + "time": 0.5667, + "value": -3.53, + "curve": [ 0.585, 3.86, 0.659, 16.63 ] + }, + { + "time": 0.7, + "value": 16.56, + "curve": [ 0.782, 16.43, 0.896, 8.44 ] + }, + { + "time": 0.9333, + "value": 4.04, + "curve": [ 0.956, 6.84, 1.008, 8.41 ] + }, + { + "time": 1.0333, + "value": 8.41, + "curve": [ 1.067, 8.41, 1.122, 8.14 ] + }, + { "time": 1.1667, "value": 5.8 } + ] + }, + "rear-foot": { + "rotate": [ + { + "value": -0.28, + "curve": [ 0.033, -0.28, 0.256, -66.71 ] + }, + { + "time": 0.3667, + "value": -66.84, + "curve": [ 0.418, -66.91, 0.499, -21.79 ] + }, + { + "time": 0.6, + "value": -21.52, + "curve": [ 0.652, -21.38, 0.665, -53.96 ] + }, + { + "time": 0.7, + "value": -54.26, + "curve": [ 0.757, -53.96, 0.843, -2.07 ] + }, + { + "time": 0.9333, + "value": -1.47, + "curve": [ 0.968, -2.07, 0.975, -19.96 ] + }, + { + "time": 1, + "value": -19.96, + "curve": [ 1.025, -19.96, 1.075, -12.42 ] + }, + { + "time": 1.1, + "value": -12.42, + "curve": [ 1.133, -12.42, 1.2, -18.34 ] + }, + { "time": 1.2333, "value": -18.34 } + ] + }, + "front-foot": { + "rotate": [ + { + "curve": [ 0.008, -11.33, 0.108, -57.71 ] + }, + { + "time": 0.1333, + "value": -57.71, + "curve": [ 0.175, -57.71, 0.229, 19.73 ] + }, + { + "time": 0.3, + "value": 19.34, + "curve": [ 0.354, 19.34, 0.4, -57.76 ] + }, + { + "time": 0.4333, + "value": -57.76, + "curve": [ 0.458, -57.76, 0.511, -3.56 ] + }, + { + "time": 0.5333, + "value": 3.7, + "curve": [ 0.563, 13.29, 0.633, 15.79 ] + }, + { + "time": 0.6667, + "value": 15.79, + "curve": [ 0.7, 15.79, 0.767, -48.75 ] + }, + { + "time": 0.8, + "value": -48.75, + "curve": [ 0.842, -48.75, 0.925, 4.7 ] + }, + { + "time": 0.9667, + "value": 4.7, + "curve": [ 1, 4.7, 1.067, -22.9 ] + }, + { + "time": 1.1, + "value": -22.9, + "curve": [ 1.142, -22.9, 1.225, -13.28 ] + }, + { "time": 1.2667, "value": -13.28 } + ] + }, + "rear-foot-target": { + "rotate": [ + { "value": -0.28 } + ] + }, + "front-foot-tip": { + "rotate": [ + { + "value": -0.28, + "curve": [ 0.008, -0.28, 0.003, -66.62 ] + }, + { + "time": 0.0667, + "value": -65.75, + "curve": [ 0.166, -64.42, 0.234, 14.35 ] + }, + { + "time": 0.2667, + "value": 38.25, + "curve": [ 0.294, 57.91, 0.392, 89.79 ] + }, + { + "time": 0.4667, + "value": 90.73, + "curve": [ 0.483, 90.73, 0.55, 177.66 ] + }, + { + "time": 0.5667, + "value": 177.66, + "curve": [ 0.733, 176.24, 0.75, 11.35 ] + }, + { + "time": 0.8, + "value": 11.35, + "curve": [ 0.886, 12.29, 0.911, 47.88 ] + }, + { + "time": 0.9333, + "value": 56.77, + "curve": [ 0.967, 70.59, 1.05, 86.46 ] + }, + { + "time": 1.1, + "value": 86.46, + "curve": [ 1.187, 86.46, 1.214, 66.44 ] + }, + { "time": 1.3333, "value": 64.55 } + ] + }, + "back-foot-tip": { + "rotate": [ + { + "value": -0.28, + "curve": [ 0, -7.97, 0.027, -18.69 ] + }, + { + "time": 0.0667, + "value": -19, + "curve": [ 0.166, -19.3, 0.208, 15.58 ] + }, + { + "time": 0.2667, + "value": 45.95, + "curve": [ 0.306, 66.24, 0.378, 99.08 ] + }, + { + "time": 0.4333, + "value": 99.08, + "curve": [ 0.497, 98.62, 0.488, -1.2 ] + }, + { + "time": 0.5667, + "value": -1.32, + "curve": [ 0.637, -0.84, 0.687, 94.41 ] + }, + { + "time": 0.7333, + "value": 94.33, + "curve": [ 0.832, 94.16, 0.895, 29.6 ] + }, + { + "time": 0.9667, + "value": 28.67, + "curve": [ 1.026, 28.67, 1.045, 53.14 ] + }, + { "time": 1.1, "value": 53.38 } + ] + }, + "hair4": { + "rotate": [ + { + "curve": [ 0.011, 4.5, 0.05, 11.42 ] + }, + { + "time": 0.0667, + "value": 11.42, + "curve": [ 0.1, 11.42, 0.136, -5.92 ] + }, + { + "time": 0.1667, + "value": -10.54, + "curve": [ 0.206, -16.51, 0.327, -22 ] + }, + { + "time": 0.3667, + "value": -24.47, + "curve": [ 0.413, -27.37, 0.467, -43.99 ] + }, + { + "time": 0.5, + "value": -43.99, + "curve": [ 0.533, -43.99, 0.552, 12.12 ] + }, + { + "time": 0.6333, + "value": 11.85, + "curve": [ 0.714, 11.59, 0.758, -34.13 ] + }, + { + "time": 0.8, + "value": -34.13, + "curve": [ 0.858, -34.13, 1.015, -12.47 ] + }, + { + "time": 1.0667, + "value": -8.85, + "curve": [ 1.121, -5.07, 1.219, -0.02 ] + }, + { + "time": 1.3333, + "value": 1.29, + "curve": [ 1.509, 3.3, 1.763, 2.75 ] + }, + { + "time": 1.8667, + "value": 2.78, + "curve": [ 1.974, 2.81, 2.108, 2.81 ] + }, + { + "time": 2.2, + "value": 2.78, + "curve": [ 2.315, 2.74, 2.374, 1.22 ] + }, + { + "time": 2.4667, + "value": 1.18, + "curve": [ 2.525, 1.18, 2.608, 10.79 ] + }, + { + "time": 2.6667, + "value": 10.79, + "curve": [ 2.725, 10.79, 2.893, 4.72 ] + }, + { + "time": 3.0333, + "value": 4.72, + "curve": [ 3.117, 4.72, 3.283, 7.93 ] + }, + { + "time": 3.3667, + "value": 7.93, + "curve": [ 3.492, 7.93, 3.775, 6.93 ] + }, + { + "time": 3.9, + "value": 6.93, + "curve": [ 3.981, 6.93, 4.094, 6.9 ] + }, + { + "time": 4.2, + "value": 8.44, + "curve": [ 4.267, 9.42, 4.401, 16.61 ] + }, + { + "time": 4.5, + "value": 16.33, + "curve": [ 4.582, 16.12, 4.709, 9.94 ] + }, + { + "time": 4.7333, + "value": 6.51, + "curve": [ 4.747, 4.57, 4.779, -1.76 ] + }, + { + "time": 4.8, + "value": -1.75, + "curve": [ 4.823, -1.73, 4.82, 4.47 ] + }, + { + "time": 4.8667, + "value": 6.04, + "curve": [ 4.899, 7.14, 4.913, 6.93 ] + }, + { "time": 4.9333, "value": 6.93 } + ] + }, + "hair2": { + "rotate": [ + { + "value": 10.61, + "curve": [ 0.075, 10.61, 0.05, 12.67 ] + }, + { + "time": 0.0667, + "value": 12.67, + "curve": [ 0.123, 12.67, 0.194, -16.51 ] + }, + { + "time": 0.2, + "value": -19.87, + "curve": [ 0.207, -23.48, 0.236, -31.68 ] + }, + { + "time": 0.3, + "value": -31.8, + "curve": [ 0.356, -31.9, 0.437, -25.61 ] + }, + { + "time": 0.4667, + "value": -19.29, + "curve": [ 0.485, -15.33, 0.529, 6.48 ] + }, + { + "time": 0.5667, + "value": 6.67, + "curve": [ 0.628, 6.97, 0.65, -46.39 ] + }, + { + "time": 0.7333, + "value": -46.3, + "curve": [ 0.843, -46.17, 0.941, -33.37 ] + }, + { + "time": 0.9667, + "value": -23.17, + "curve": [ 0.972, -20.98, 1.047, 15.21 ] + }, + { + "time": 1.1, + "value": 15.21, + "curve": [ 1.142, 15.21, 1.183, 10.73 ] + }, + { + "time": 1.2667, + "value": 10.61, + "curve": [ 1.45, 10.34, 1.817, 10.61 ] + }, + { + "time": 2, + "value": 10.61, + "curve": [ 2.075, 10.61, 2.225, 16.9 ] + }, + { + "time": 2.3, + "value": 16.9, + "curve": [ 2.327, 16.9, 2.347, 6.81 ] + }, + { + "time": 2.4, + "value": 6.83, + "curve": [ 2.492, 6.87, 2.602, 17.39 ] + }, + { + "time": 2.6667, + "value": 17.39, + "curve": [ 2.742, 17.39, 2.892, 10.67 ] + }, + { + "time": 2.9667, + "value": 10.64, + "curve": [ 3.187, 10.57, 3.344, 10.73 ] + }, + { + "time": 3.6, + "value": 11.4, + "curve": [ 3.766, 11.83, 3.874, 14.87 ] + }, + { + "time": 3.9333, + "value": 14.83, + "curve": [ 4.022, 14.76, 4.208, 9.49 ] + }, + { + "time": 4.3, + "value": 9.54, + "curve": [ 4.391, 9.58, 4.441, 14.82 ] + }, + { + "time": 4.5333, + "value": 14.84, + "curve": [ 4.642, 14.88, 4.692, 1.17 ] + }, + { + "time": 4.7667, + "value": 1.24, + "curve": [ 4.823, 1.3, 4.818, 18.35 ] + }, + { + "time": 4.8667, + "value": 18.38, + "curve": [ 4.905, 18.41, 4.901, 10.61 ] + }, + { "time": 4.9333, "value": 10.61 } + ] + }, + "torso2": { + "rotate": [ + { + "curve": [ 0.048, 0, 0.129, -12.73 ] + }, + { + "time": 0.1667, + "value": -15.95, + "curve": [ 0.221, -20.66, 0.254, -21.62 ] + }, + { + "time": 0.3, + "value": -21.59, + "curve": [ 0.458, -21.46, 0.46, -1.67 ] + }, + { + "time": 0.6333, + "value": -1.71, + "curve": [ 0.71, -1.73, 0.715, -4 ] + }, + { + "time": 0.7667, + "value": -3.97, + "curve": [ 0.866, -3.92, 0.84, 0.02 ] + }, + { "time": 1, "curve": "stepped" }, + { + "time": 2, + "curve": [ 2.275, 0, 2.867, -5.8 ] + }, + { + "time": 3.1, + "value": -6.44, + "curve": [ 3.327, -7.06, 3.71, -6.23 ] + }, + { + "time": 3.9333, + "value": -5.41, + "curve": [ 4.168, -4.53, 4.488, -2.83 ] + }, + { "time": 4.8 } + ] + }, + "torso3": { + "rotate": [ + { + "curve": [ 0.025, 0, 0.09, -3.66 ] + }, + { + "time": 0.1, + "value": -4.55, + "curve": [ 0.143, -8.4, 0.223, -17.07 ] + }, + { + "time": 0.2333, + "value": -18.31, + "curve": [ 0.282, -24.44, 0.35, -29 ] + }, + { + "time": 0.3667, + "value": -30.07, + "curve": [ 0.405, -32.58, 0.442, -33.03 ] + }, + { + "time": 0.4667, + "value": -32.99, + "curve": [ 0.491, -33.04, 0.505, -23.56 ] + }, + { + "time": 0.5333, + "value": -23.55, + "curve": [ 0.571, -23.67, 0.599, -27.21 ] + }, + { + "time": 0.6333, + "value": -27.21, + "curve": [ 0.669, -27.2, 0.742, -10.43 ] + }, + { + "time": 0.7667, + "value": -7.79, + "curve": [ 0.788, -5.53, 0.796, -4.42 ] + }, + { + "time": 0.8333, + "value": -2.9, + "curve": [ 0.875, -1.21, 0.933, 0 ] + }, + { "time": 0.9667, "curve": "stepped" }, + { + "time": 2.4333, + "curve": [ 2.517, 0, 2.683, 4.63 ] + }, + { + "time": 2.7667, + "value": 4.66, + "curve": [ 3.084, 4.76, 3.248, 4.37 ] + }, + { + "time": 3.4, + "value": 3.74, + "curve": [ 3.596, 2.92, 3.755, 2.18 ] + }, + { + "time": 3.8667, + "value": 1.72, + "curve": [ 4.136, 0.59, 4.471, 0 ] + }, + { "time": 4.8 } + ] + }, + "hair3": { + "rotate": [ + { + "curve": [ 0, 0, 0.041, 10.74 ] + }, + { + "time": 0.0667, + "value": 14.16, + "curve": [ 0.075, 15.22, 0.148, 18.04 ] + }, + { + "time": 0.2, + "value": 18.13, + "curve": [ 0.251, 18.23, 0.307, -4.75 ] + }, + { + "time": 0.3667, + "value": -5.06, + "curve": [ 0.412, -5.3, 0.47, -0.96 ] + }, + { + "time": 0.5, + "value": 2.21, + "curve": [ 0.512, 3.48, 0.595, 20.31 ] + }, + { + "time": 0.6333, + "value": 24.87, + "curve": [ 0.647, 26.53, 0.719, 29.33 ] + }, + { + "time": 0.8, + "value": 29.22, + "curve": [ 0.859, 29.14, 0.9, 28.48 ] + }, + { + "time": 0.9333, + "value": 26.11, + "curve": [ 0.981, 22.72, 0.998, 2.06 ] + }, + { "time": 1.1, "value": 2.21 } + ] + }, + "hair1": { + "rotate": [ + { + "curve": [ 0.047, -0.21, 0.048, 7.86 ] + }, + { + "time": 0.0667, + "value": 13.27, + "curve": [ 0.083, 18.05, 0.135, 24.44 ] + }, + { + "time": 0.2, + "value": 24.02, + "curve": [ 0.225, 24.02, 0.28, 6.32 ] + }, + { + "time": 0.3, + "value": 3.1, + "curve": [ 0.323, -0.58, 0.382, -7.12 ] + }, + { + "time": 0.4667, + "value": -7.45, + "curve": [ 0.512, -7.66, 0.538, 12.13 ] + }, + { + "time": 0.5667, + "value": 16.46, + "curve": [ 0.609, 22.72, 0.672, 27.4 ] + }, + { + "time": 0.7333, + "value": 27.55, + "curve": [ 0.827, 27.4, 0.933, 23.23 ] + }, + { + "time": 0.9667, + "value": 19.11, + "curve": [ 0.998, 15.27, 1.092, -2.53 ] + }, + { + "time": 1.1333, + "value": -2.53, + "curve": [ 1.158, -2.53, 1.208, 0 ] + }, + { "time": 1.2333, "curve": "stepped" }, + { + "time": 2, + "curve": [ 2.075, 0, 2.248, 0.35 ] + }, + { + "time": 2.3333, + "value": 0.78, + "curve": [ 2.585, 2.06, 2.805, 3.46 ] + }, + { + "time": 3.2, + "value": 3.5, + "curve": [ 3.593, 3.54, 3.979, 2.36 ] + }, + { + "time": 4.1667, + "value": 1.55, + "curve": [ 4.391, 0.59, 4.447, 0.04 ] + }, + { + "time": 4.6, + "value": 0.04, + "curve": [ 4.642, 0.04, 4.742, 0 ] + }, + { "time": 4.9333 } + ] + }, + "head-control": { + "translate": [ + { + "curve": [ 0.025, 0, 0.09, 1.43, 0.025, 0, 0.075, -34.76 ] + }, + { + "time": 0.1, + "x": 1.59, + "y": -34.76, + "curve": [ 0.214, 3.33, 0.375, 5.34, 0.192, -34.76, 0.441, -21.17 ] + }, + { + "time": 0.4667, + "x": 5.34, + "y": -12.57, + "curve": [ 0.492, 5.34, 0.55, 5.24, 0.482, -7.36, 0.504, 4.03 ] + }, + { + "time": 0.5667, + "x": 5.11, + "y": 4.01, + "curve": [ 0.658, 4.45, 0.679, 3.19, 0.649, 3.98, 0.642, -16.84 ] + }, + { + "time": 0.7, + "x": 2.8, + "y": -16.74, + "curve": [ 0.787, 1.15, 0.881, -1.29, 0.772, -16.62, 0.82, 8.95 ] + }, + { + "time": 0.9, + "x": -1.72, + "y": 8.91, + "curve": [ 0.961, -3.06, 1.025, -3.58, 0.975, 8.87, 0.951, -1.37 ] + }, + { + "time": 1.1, + "x": -3.58, + "y": -1.45, + "curve": [ 1.292, -3.58, 2.002, -2.4, 1.292, -1.56, 1.975, -1.45 ] + }, + { + "time": 2.1667, + "x": -1.39, + "y": -1.45, + "curve": [ 2.25, -0.88, 2.503, 1.38, 2.283, -1.45, 2.603, -12.44 ] + }, + { + "time": 2.6667, + "x": 2.13, + "y": -14.45, + "curve": [ 2.766, 2.59, 2.999, 2.81, 2.835, -19.73, 3.003, -25.2 ] + }, + { + "time": 3.1333, + "x": 2.91, + "y": -26.08, + "curve": [ 3.392, 3.1, 4.199, 4.05, 3.483, -28.44, 4.129, -27.23 ] + }, + { + "time": 4.3667, + "x": 4.81, + "y": -19.59, + "curve": [ 4.429, 5.1, 4.594, 8.54, 4.538, -14.08, 4.583, -7.88 ] + }, + { + "time": 4.6667, + "x": 8.65, + "y": -4.56, + "curve": [ 4.794, 8.86, 4.806, 5.93, 4.691, -3.59, 4.8, -1.61 ] + }, + { "time": 4.9333, "x": 5.8, "y": -1.99 } + ] + } + }, + "ik": { + "front-foot-ik": [ + { "mix": 0 } + ], + "front-leg-ik": [ + { "mix": 0, "bendPositive": false } + ], + "rear-foot-ik": [ + { "mix": 0.005 } + ], + "rear-leg-ik": [ + { "mix": 0.005, "bendPositive": false } + ] + } + }, + "hoverboard": { + "slots": { + "exhaust1": { + "attachment": [ + { "name": "hoverglow-small" } + ] + }, + "exhaust2": { + "attachment": [ + { "name": "hoverglow-small" } + ] + }, + "exhaust3": { + "attachment": [ + { "name": "hoverglow-small" } + ] + }, + "front-fist": { + "attachment": [ + { "name": "front-fist-open" } + ] + }, + "hoverboard-board": { + "attachment": [ + { "name": "hoverboard-board" } + ] + }, + "hoverboard-thruster-front": { + "attachment": [ + { "name": "hoverboard-thruster" } + ] + }, + "hoverboard-thruster-rear": { + "attachment": [ + { "name": "hoverboard-thruster" } + ] + }, + "hoverglow-front": { + "attachment": [ + { "name": "hoverglow-small" } + ] + }, + "hoverglow-rear": { + "attachment": [ + { "name": "hoverglow-small" } + ] + }, + "side-glow1": { + "attachment": [ + { "name": "hoverglow-small" }, + { "time": 0.9667 } + ] + }, + "side-glow2": { + "attachment": [ + { "time": 0.0667, "name": "hoverglow-small" }, + { "time": 1 } + ] + }, + "side-glow3": { + "attachment": [ + { "name": "hoverglow-small" }, + { "time": 0.9667 } + ] + } + }, + "bones": { + "hoverboard-controller": { + "translate": [ + { + "x": 319.55, + "y": -1.59, + "curve": [ 0.064, 319.55, 0.2, 347.85, 0.058, -1.2, 0.2, 23.11 ] + }, + { + "time": 0.2667, + "x": 347.66, + "y": 39.62, + "curve": [ 0.35, 347.41, 0.476, 341.47, 0.323, 53.58, 0.44, 85.82 ] + }, + { + "time": 0.5333, + "x": 338.47, + "y": 85.72, + "curve": [ 0.603, 334.83, 0.913, 319.65, 0.621, 85.62, 0.88, -1.53 ] + }, + { "time": 1, "x": 319.55, "y": -1.59 } + ] + }, + "hip": { + "translate": [ + { + "x": -53.49, + "y": 32.14, + "curve": [ 0.061, -53.77, 0.093, -51.81, 0.044, 16.34, 0.063, 9.67 ] + }, + { + "time": 0.1333, + "x": -49.31, + "y": 7.01, + "curve": [ 0.3, -35.27, 0.461, -20.06, 0.314, 9.52, 0.408, 121.09 ] + }, + { + "time": 0.5667, + "x": -20.06, + "y": 122.72, + "curve": [ 0.716, -20.09, 0.912, -53.29, 0.753, 121.8, 0.946, 51.85 ] + }, + { "time": 1, "x": -53.49, "y": 32.14 } + ] + }, + "exhaust1": { + "scale": [ + { + "x": 1.593, + "y": 0.964, + "curve": [ 0.033, 1.593, 0.1, 1, 0.033, 0.964, 0.1, 0.713 ] + }, + { + "time": 0.1333, + "y": 0.713, + "curve": [ 0.15, 1, 0.183, 1.774, 0.15, 0.713, 0.183, 0.883 ] + }, + { + "time": 0.2, + "x": 1.774, + "y": 0.883, + "curve": [ 0.242, 1.774, 0.325, 1.181, 0.242, 0.883, 0.325, 0.649 ] + }, + { + "time": 0.3667, + "x": 1.181, + "y": 0.649, + "curve": [ 0.408, 1.181, 0.492, 1.893, 0.408, 0.649, 0.492, 0.819 ] + }, + { + "time": 0.5333, + "x": 1.893, + "y": 0.819, + "curve": [ 0.558, 1.893, 0.608, 1.18, 0.558, 0.819, 0.608, 0.686 ] + }, + { + "time": 0.6333, + "x": 1.18, + "y": 0.686, + "curve": [ 0.658, 1.18, 0.708, 1.903, 0.658, 0.686, 0.708, 0.855 ] + }, + { + "time": 0.7333, + "x": 1.903, + "y": 0.855, + "curve": [ 0.767, 1.903, 0.833, 1.311, 0.767, 0.855, 0.833, 0.622 ] + }, + { + "time": 0.8667, + "x": 1.311, + "y": 0.622, + "curve": [ 0.9, 1.311, 0.967, 1.593, 0.9, 0.622, 0.967, 0.964 ] + }, + { "time": 1, "x": 1.593, "y": 0.964 } + ] + }, + "exhaust2": { + "scale": [ + { + "x": 1.88, + "y": 0.832, + "curve": [ 0.025, 1.88, 0.075, 1.311, 0.025, 0.832, 0.075, 0.686 ] + }, + { + "time": 0.1, + "x": 1.311, + "y": 0.686, + "curve": [ 0.133, 1.311, 0.2, 2.01, 0.133, 0.686, 0.208, 0.736 ] + }, + { + "time": 0.2333, + "x": 2.01, + "y": 0.769, + "curve": [ 0.267, 2.01, 0.333, 1, 0.282, 0.831, 0.333, 0.91 ] + }, + { + "time": 0.3667, + "y": 0.91, + "curve": [ 0.4, 1, 0.467, 1.699, 0.4, 0.91, 0.474, 0.891 ] + }, + { + "time": 0.5, + "x": 1.699, + "y": 0.86, + "curve": [ 0.517, 1.699, 0.55, 1.181, 0.54, 0.813, 0.55, 0.713 ] + }, + { + "time": 0.5667, + "x": 1.181, + "y": 0.713, + "curve": [ 0.617, 1.181, 0.717, 1.881, 0.617, 0.713, 0.717, 0.796 ] + }, + { + "time": 0.7667, + "x": 1.881, + "y": 0.796, + "curve": [ 0.8, 1.881, 0.867, 1.3, 0.8, 0.796, 0.867, 0.649 ] + }, + { + "time": 0.9, + "x": 1.3, + "y": 0.649, + "curve": [ 0.925, 1.3, 0.975, 1.88, 0.925, 0.649, 0.975, 0.832 ] + }, + { "time": 1, "x": 1.88, "y": 0.832 } + ] + }, + "hoverboard-thruster-front": { + "rotate": [ + { + "curve": [ 0.125, 0, 0.375, 24.06 ] + }, + { + "time": 0.5, + "value": 24.06, + "curve": [ 0.625, 24.06, 0.875, 0 ] + }, + { "time": 1 } + ] + }, + "hoverglow-front": { + "scale": [ + { + "x": 0.849, + "y": 1.764, + "curve": [ 0.017, 0.849, 0.05, 0.835, 0.017, 1.764, 0.05, 2.033 ] + }, + { + "time": 0.0667, + "x": 0.835, + "y": 2.033, + "curve": [ 0.092, 0.835, 0.142, 0.752, 0.092, 2.033, 0.142, 1.584 ] + }, + { + "time": 0.1667, + "x": 0.752, + "y": 1.584, + "curve": [ 0.183, 0.752, 0.217, 0.809, 0.183, 1.584, 0.217, 1.71 ] + }, + { + "time": 0.2333, + "x": 0.809, + "y": 1.71, + "curve": [ 0.25, 0.809, 0.283, 0.717, 0.25, 1.71, 0.283, 1.45 ] + }, + { + "time": 0.3, + "x": 0.717, + "y": 1.45, + "curve": [ 0.317, 0.717, 0.35, 0.777, 0.317, 1.45, 0.35, 1.698 ] + }, + { + "time": 0.3667, + "x": 0.777, + "y": 1.698, + "curve": [ 0.4, 0.781, 0.45, 0.685, 0.375, 1.698, 0.45, 1.173 ] + }, + { + "time": 0.4667, + "x": 0.685, + "y": 1.173, + "curve": [ 0.492, 0.685, 0.542, 0.825, 0.492, 1.173, 0.542, 1.572 ] + }, + { + "time": 0.5667, + "x": 0.825, + "y": 1.572, + "curve": [ 0.611, 0.816, 0.63, 0.727, 0.611, 1.577, 0.606, 1.255 ] + }, + { + "time": 0.6667, + "x": 0.725, + "y": 1.241, + "curve": [ 0.692, 0.725, 0.742, 0.895, 0.692, 1.241, 0.749, 1.799 ] + }, + { + "time": 0.7667, + "x": 0.895, + "y": 1.857, + "curve": [ 0.783, 0.895, 0.796, 0.892, 0.796, 1.955, 0.817, 1.962 ] + }, + { + "time": 0.8333, + "x": 0.845, + "y": 1.962, + "curve": [ 0.845, 0.831, 0.883, 0.802, 0.85, 1.962, 0.872, 1.704 ] + }, + { + "time": 0.9, + "x": 0.802, + "y": 1.491, + "curve": [ 0.917, 0.802, 0.95, 0.845, 0.907, 1.441, 0.936, 1.508 ] + }, + { + "time": 0.9667, + "x": 0.845, + "y": 1.627, + "curve": [ 0.975, 0.845, 0.992, 0.849, 0.973, 1.652, 0.992, 1.764 ] + }, + { "time": 1, "x": 0.849, "y": 1.764 } + ] + }, + "hoverboard-thruster-rear": { + "rotate": [ + { + "curve": [ 0.125, 0, 0.375, 24.06 ] + }, + { + "time": 0.5, + "value": 24.06, + "curve": [ 0.625, 24.06, 0.875, 0 ] + }, + { "time": 1 } + ] + }, + "hoverglow-rear": { + "scale": [ + { + "x": 0.845, + "y": 1.31, + "curve": [ 0.017, 0.845, 0.117, 0.899, 0.017, 1.31, 0.117, 2.033 ] + }, + { + "time": 0.1333, + "x": 0.899, + "y": 2.033, + "curve": [ 0.15, 0.899, 0.183, 0.752, 0.15, 2.033, 0.183, 1.574 ] + }, + { + "time": 0.2, + "x": 0.752, + "y": 1.574, + "curve": [ 0.225, 0.752, 0.275, 0.809, 0.225, 1.574, 0.275, 1.71 ] + }, + { + "time": 0.3, + "x": 0.809, + "y": 1.71, + "curve": [ 0.317, 0.809, 0.35, 0.717, 0.317, 1.71, 0.35, 1.397 ] + }, + { + "time": 0.3667, + "x": 0.717, + "y": 1.397, + "curve": [ 0.383, 0.717, 0.417, 0.777, 0.383, 1.397, 0.417, 1.45 ] + }, + { + "time": 0.4333, + "x": 0.777, + "y": 1.45, + "curve": [ 0.45, 0.777, 0.496, 0.689, 0.45, 1.45, 0.481, 1.168 ] + }, + { + "time": 0.5333, + "x": 0.685, + "y": 1.173, + "curve": [ 0.565, 0.682, 0.617, 0.758, 0.575, 1.177, 0.617, 1.297 ] + }, + { + "time": 0.6333, + "x": 0.758, + "y": 1.297, + "curve": [ 0.658, 0.758, 0.708, 0.725, 0.658, 1.297, 0.708, 1.241 ] + }, + { + "time": 0.7333, + "x": 0.725, + "y": 1.241, + "curve": [ 0.772, 0.732, 0.796, 0.893, 0.782, 1.238, 0.778, 1.854 ] + }, + { + "time": 0.8333, + "x": 0.895, + "y": 1.857, + "curve": [ 0.878, 0.9, 0.992, 0.845, 0.88, 1.86, 0.992, 1.31 ] + }, + { "time": 1, "x": 0.845, "y": 1.31 } + ] + }, + "front-upper-arm": { + "rotate": [ + { + "value": -85.92, + "curve": [ 0.08, -85.59, 0.284, -62.7 ] + }, + { + "time": 0.3667, + "value": -55.14, + "curve": [ 0.438, -48.65, 0.551, -43.21 ] + }, + { + "time": 0.6333, + "value": -43.21, + "curve": [ 0.716, -43.22, 0.908, -85.92 ] + }, + { "time": 1, "value": -85.92 } + ], + "translate": [ + { + "x": -0.59, + "y": -2.94, + "curve": [ 0.1, -1.21, 0.275, -1.74, 0.092, -2.94, 0.275, -6.39 ] + }, + { + "time": 0.3667, + "x": -1.74, + "y": -6.39, + "curve": [ 0.433, -1.74, 0.567, 0.72, 0.433, -6.39, 0.587, -4.48 ] + }, + { + "time": 0.6333, + "x": 0.72, + "y": -4.21, + "curve": [ 0.725, 0.72, 0.908, -0.08, 0.743, -3.57, 0.908, -2.94 ] + }, + { "time": 1, "x": -0.59, "y": -2.94 } + ] + }, + "front-fist": { + "rotate": [ + { + "value": 7.61, + "curve": [ 0.143, 7.62, 0.247, -23.17 ] + }, + { + "time": 0.2667, + "value": -26.56, + "curve": [ 0.281, -29.08, 0.351, -37.36 ] + }, + { + "time": 0.4333, + "value": -37.2, + "curve": [ 0.513, -37.05, 0.562, -29.88 ] + }, + { + "time": 0.6, + "value": -25.18, + "curve": [ 0.621, -22.58, 0.694, -3.98 ] + }, + { + "time": 0.8, + "value": 3.63, + "curve": [ 0.861, 8.03, 0.946, 7.57 ] + }, + { "time": 1, "value": 7.61 } + ], + "translate": [ + { + "curve": [ 0.117, 0, 0.35, 0.52, 0.117, 0, 0.35, -3.27 ] + }, + { + "time": 0.4667, + "x": 0.52, + "y": -3.27, + "curve": [ 0.6, 0.52, 0.867, 0, 0.6, -3.27, 0.867, 0 ] + }, + { "time": 1 } + ], + "shear": [ + { + "y": 19.83, + "curve": [ 0.117, 0, 0.35, 15.28, 0.117, 19.83, 0.35, 28.31 ] + }, + { + "time": 0.4667, + "x": 15.28, + "y": 28.31, + "curve": [ 0.6, 15.28, 0.867, 0, 0.6, 28.31, 0.867, 19.83 ] + }, + { "time": 1, "y": 19.83 } + ] + }, + "board-ik": { + "translate": [ + { + "x": 393.62, + "curve": [ 0.083, 393.62, 0.25, 393.48, 0.083, 0, 0.25, 117.69 ] + }, + { + "time": 0.3333, + "x": 393.48, + "y": 117.69, + "curve": [ 0.375, 393.48, 0.458, 393.62, 0.375, 117.69, 0.458, 83.82 ] + }, + { "time": 0.5, "x": 393.62, "y": 83.82 }, + { "time": 0.6667, "x": 393.62, "y": 30.15 }, + { "time": 1, "x": 393.62 } + ] + }, + "front-thigh": { + "translate": [ + { "x": -7.49, "y": 8.51 } + ] + }, + "front-leg-target": { + "translate": [ + { + "time": 0.3667, + "curve": [ 0.428, 10.83, 0.567, 12.78, 0.414, 7.29, 0.567, 8.79 ] + }, + { + "time": 0.6, + "x": 12.78, + "y": 8.79, + "curve": [ 0.692, 12.78, 0.772, 11.27, 0.692, 8.79, 0.766, 8.62 ] + }, + { "time": 0.8667 } + ] + }, + "rear-leg-target": { + "translate": [ + { + "time": 0.4667, + "curve": [ 0.492, 0, 0.534, 4.47, 0.492, 0, 0.542, 1.63 ] + }, + { + "time": 0.5667, + "x": 4.53, + "y": 1.77, + "curve": [ 0.622, 4.64, 0.717, 3.31, 0.615, 2.06, 0.71, 2.1 ] + }, + { "time": 0.8 } + ] + }, + "exhaust3": { + "scale": [ + { + "x": 1.882, + "y": 0.81, + "curve": [ 0.017, 1.882, 0.167, 1.3, 0.017, 0.81, 0.167, 0.649 ] + }, + { + "time": 0.2, + "x": 1.3, + "y": 0.649, + "curve": [ 0.225, 1.3, 0.275, 2.051, 0.225, 0.649, 0.275, 0.984 ] + }, + { + "time": 0.3, + "x": 2.051, + "y": 0.984, + "curve": [ 0.325, 2.051, 0.375, 1.311, 0.325, 0.984, 0.384, 0.715 ] + }, + { + "time": 0.4, + "x": 1.311, + "y": 0.686, + "curve": [ 0.433, 1.311, 0.5, 1.86, 0.426, 0.638, 0.5, 0.537 ] + }, + { + "time": 0.5333, + "x": 1.86, + "y": 0.537, + "curve": [ 0.567, 1.86, 0.633, 1.187, 0.567, 0.537, 0.604, 0.854 ] + }, + { + "time": 0.6667, + "x": 1.187, + "y": 0.854, + "curve": [ 0.7, 1.187, 0.767, 1.549, 0.707, 0.854, 0.774, 0.775 ] + }, + { + "time": 0.8, + "x": 1.549, + "y": 0.746, + "curve": [ 0.817, 1.549, 0.85, 1.181, 0.815, 0.729, 0.85, 0.713 ] + }, + { + "time": 0.8667, + "x": 1.181, + "y": 0.713, + "curve": [ 0.9, 1.181, 0.967, 1.882, 0.9, 0.713, 0.967, 0.81 ] + }, + { "time": 1, "x": 1.882, "y": 0.81 } + ] + }, + "side-glow1": { + "rotate": [ + { "value": 51.12, "curve": "stepped" }, + { "time": 0.0667, "value": 43.82, "curve": "stepped" }, + { "time": 0.1, "value": 40.95, "curve": "stepped" }, + { "time": 0.1667, "value": 27.78, "curve": "stepped" }, + { "time": 0.2, "value": 10.24, "curve": "stepped" }, + { "time": 0.2667, "curve": "stepped" }, + { "time": 0.8, "value": -25.81 } + ], + "translate": [ + { "x": 338.28, "y": 40.22, "curve": "stepped" }, + { "time": 0.0667, "x": 331.2, "y": 30.39, "curve": "stepped" }, + { "time": 0.1, "x": 318.63, "y": 20.59, "curve": "stepped" }, + { "time": 0.1667, "x": 302.45, "y": 9.64, "curve": "stepped" }, + { "time": 0.2, "x": 276.87, "y": 1.13, "curve": "stepped" }, + { "time": 0.2667, "x": 248.16, "curve": "stepped" }, + { "time": 0.3, "x": 221.36, "curve": "stepped" }, + { "time": 0.3667, "x": 195.69, "curve": "stepped" }, + { "time": 0.4, "x": 171.08, "curve": "stepped" }, + { "time": 0.4667, "x": 144.84, "curve": "stepped" }, + { "time": 0.5, "x": 121.22, "curve": "stepped" }, + { "time": 0.5667, "x": 91.98, "curve": "stepped" }, + { "time": 0.6, "x": 62.63, "curve": "stepped" }, + { "time": 0.6667, "x": 30.78, "curve": "stepped" }, + { "time": 0.7, "curve": "stepped" }, + { "time": 0.7667, "x": -28.45, "curve": "stepped" }, + { "time": 0.8, "x": -67.49, "y": 16.82, "curve": "stepped" }, + { "time": 0.8667, "x": -83.07, "y": 24.36, "curve": "stepped" }, + { "time": 0.9, "x": -93.81, "y": 29.55 } + ], + "scale": [ + { "x": 0.535, "curve": "stepped" }, + { "time": 0.0667, "x": 0.594, "curve": "stepped" }, + { "time": 0.1, "x": 0.844, "curve": "stepped" }, + { "time": 0.1667, "curve": "stepped" }, + { "time": 0.8, "x": 0.534, "curve": "stepped" }, + { "time": 0.8667, "x": 0.428, "y": 0.801, "curve": "stepped" }, + { "time": 0.9, "x": 0.349, "y": 0.654 } + ] + }, + "side-glow2": { + "rotate": [ + { "time": 0.0667, "value": 51.12, "curve": "stepped" }, + { "time": 0.1, "value": 43.82, "curve": "stepped" }, + { "time": 0.1667, "value": 40.95, "curve": "stepped" }, + { "time": 0.2, "value": 27.78, "curve": "stepped" }, + { "time": 0.2667, "value": 10.24, "curve": "stepped" }, + { "time": 0.3, "curve": "stepped" }, + { "time": 0.8667, "value": -25.81 } + ], + "translate": [ + { "time": 0.0667, "x": 338.28, "y": 40.22, "curve": "stepped" }, + { "time": 0.1, "x": 331.2, "y": 30.39, "curve": "stepped" }, + { "time": 0.1667, "x": 318.63, "y": 20.59, "curve": "stepped" }, + { "time": 0.2, "x": 302.45, "y": 9.64, "curve": "stepped" }, + { "time": 0.2667, "x": 276.87, "y": 1.13, "curve": "stepped" }, + { "time": 0.3, "x": 248.16, "curve": "stepped" }, + { "time": 0.3667, "x": 221.36, "curve": "stepped" }, + { "time": 0.4, "x": 195.69, "curve": "stepped" }, + { "time": 0.4667, "x": 171.08, "curve": "stepped" }, + { "time": 0.5, "x": 144.84, "curve": "stepped" }, + { "time": 0.5667, "x": 121.22, "curve": "stepped" }, + { "time": 0.6, "x": 91.98, "curve": "stepped" }, + { "time": 0.6667, "x": 62.63, "curve": "stepped" }, + { "time": 0.7, "x": 30.78, "curve": "stepped" }, + { "time": 0.7667, "curve": "stepped" }, + { "time": 0.8, "x": -28.45, "curve": "stepped" }, + { "time": 0.8667, "x": -67.49, "y": 16.82, "curve": "stepped" }, + { "time": 0.9, "x": -83.07, "y": 24.36, "curve": "stepped" }, + { "time": 0.9667, "x": -93.81, "y": 29.55 } + ], + "scale": [ + { "time": 0.0667, "x": 0.535, "curve": "stepped" }, + { "time": 0.1, "x": 0.594, "curve": "stepped" }, + { "time": 0.1667, "x": 0.844, "curve": "stepped" }, + { "time": 0.2, "curve": "stepped" }, + { "time": 0.8667, "x": 0.534, "curve": "stepped" }, + { "time": 0.9, "x": 0.428, "y": 0.801, "curve": "stepped" }, + { "time": 0.9667, "x": 0.349, "y": 0.654 } + ] + }, + "torso": { + "rotate": [ + { + "value": -34.73, + "curve": [ 0.034, -36.31, 0.162, -39.33 ] + }, + { + "time": 0.2667, + "value": -39.37, + "curve": [ 0.384, -39.37, 0.491, -29.52 ] + }, + { + "time": 0.5, + "value": -28.86, + "curve": [ 0.525, -26.95, 0.571, -21.01 ] + }, + { + "time": 0.6333, + "value": -21.01, + "curve": [ 0.725, -21.01, 0.969, -33.35 ] + }, + { "time": 1, "value": -34.73 } + ] + }, + "neck": { + "rotate": [ + { + "value": 10.2, + "curve": [ 0.07, 12.09, 0.189, 16.03 ] + }, + { + "time": 0.2667, + "value": 16.14, + "curve": [ 0.333, 16.14, 0.449, 8.03 ] + }, + { + "time": 0.5, + "value": 5.83, + "curve": [ 0.542, 4.02, 0.6, 2.68 ] + }, + { + "time": 0.6333, + "value": 2.68, + "curve": [ 0.725, 2.68, 0.943, 8.57 ] + }, + { "time": 1, "value": 10.2 } + ] + }, + "head": { + "rotate": [ + { + "value": 10.2, + "curve": [ 0.044, 11.52, 0.2, 16.12 ] + }, + { + "time": 0.2667, + "value": 16.14, + "curve": [ 0.375, 16.17, 0.492, 2.65 ] + }, + { + "time": 0.6333, + "value": 2.68, + "curve": [ 0.725, 2.7, 0.963, 9.26 ] + }, + { "time": 1, "value": 10.2 } + ], + "translate": [ + { + "curve": [ 0.03, -0.24, 0.2, -4.22, 0.051, -1.06, 0.2, -3.62 ] + }, + { + "time": 0.2667, + "x": -4.22, + "y": -3.62, + "curve": [ 0.358, -4.22, 0.542, 0.84, 0.358, -3.62, 0.542, 6.01 ] + }, + { + "time": 0.6333, + "x": 0.84, + "y": 6.01, + "curve": [ 0.725, 0.84, 0.939, 0.32, 0.725, 6.01, 0.945, 1.14 ] + }, + { "time": 1 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": -11.18, + "curve": [ 0.064, -14.82, 0.25, -20.01 ] + }, + { + "time": 0.3333, + "value": -20.01, + "curve": [ 0.429, -20.12, 0.58, 5.12 ] + }, + { + "time": 0.6, + "value": 8.67, + "curve": [ 0.617, 11.72, 0.687, 20.52 ] + }, + { + "time": 0.7667, + "value": 20.55, + "curve": [ 0.848, 20.7, 0.963, -9.43 ] + }, + { "time": 1, "value": -11.18 } + ] + }, + "hair3": { + "rotate": [ + { + "value": 9.61, + "curve": [ 0.014, 8.51, 0.075, 2.63 ] + }, + { + "time": 0.1, + "value": 2.63, + "curve": [ 0.15, 2.63, 0.25, 13.52 ] + }, + { + "time": 0.3, + "value": 13.52, + "curve": [ 0.35, 13.52, 0.45, 11.28 ] + }, + { + "time": 0.5, + "value": 11.28, + "curve": [ 0.575, 11.28, 0.725, 18.13 ] + }, + { + "time": 0.8, + "value": 18.13, + "curve": [ 0.85, 18.13, 0.978, 11.07 ] + }, + { "time": 1, "value": 9.61 } + ] + }, + "hair4": { + "rotate": [ + { + "value": -17.7, + "curve": [ 0.008, -17.7, 0.025, -23.73 ] + }, + { + "time": 0.0333, + "value": -23.73, + "curve": [ 0.067, -23.73, 0.154, -4.4 ] + }, + { + "time": 0.1667, + "value": -1.92, + "curve": [ 0.197, 4.09, 0.236, 12.91 ] + }, + { + "time": 0.2667, + "value": 17.56, + "curve": [ 0.301, 22.68, 0.342, 27.97 ] + }, + { + "time": 0.3667, + "value": 27.97, + "curve": [ 0.4, 27.97, 0.467, -1.45 ] + }, + { + "time": 0.5, + "value": -1.45, + "curve": [ 0.517, -1.45, 0.55, 3.16 ] + }, + { + "time": 0.5667, + "value": 3.16, + "curve": [ 0.583, 3.16, 0.617, -8.9 ] + }, + { + "time": 0.6333, + "value": -8.9, + "curve": [ 0.642, -8.9, 0.658, -5.4 ] + }, + { + "time": 0.6667, + "value": -5.4, + "curve": [ 0.683, -5.4, 0.717, -15.32 ] + }, + { + "time": 0.7333, + "value": -15.32, + "curve": [ 0.75, -15.32, 0.783, -9.19 ] + }, + { + "time": 0.8, + "value": -9.19, + "curve": [ 0.817, -9.19, 0.85, -23.6 ] + }, + { + "time": 0.8667, + "value": -23.6, + "curve": [ 0.883, -23.6, 0.917, -17.38 ] + }, + { + "time": 0.9333, + "value": -17.38, + "curve": [ 0.942, -17.38, 0.958, -20.46 ] + }, + { + "time": 0.9667, + "value": -20.46, + "curve": [ 0.975, -20.46, 0.992, -17.7 ] + }, + { "time": 1, "value": -17.7 } + ] + }, + "hair1": { + "rotate": [ + { + "value": 9.61, + "curve": [ 0.06, 9.04, 0.25, 8.9 ] + }, + { + "time": 0.3333, + "value": 8.9, + "curve": [ 0.392, 8.9, 0.508, 14.58 ] + }, + { + "time": 0.5667, + "value": 14.58, + "curve": [ 0.675, 14.58, 0.956, 10.28 ] + }, + { "time": 1, "value": 9.61 } + ] + }, + "hair2": { + "rotate": [ + { + "value": -3.82, + "curve": [ 0.017, -3.82, 0.064, -9.16 ] + }, + { + "time": 0.1333, + "value": -9.09, + "curve": [ 0.178, -9.04, 0.234, 1.29 ] + }, + { + "time": 0.2667, + "value": 5.98, + "curve": [ 0.276, 7.27, 0.336, 17.1 ] + }, + { + "time": 0.3667, + "value": 17.1, + "curve": [ 0.413, 17.1, 0.467, 1.59 ] + }, + { + "time": 0.5, + "value": 1.59, + "curve": [ 0.533, 1.59, 0.567, 13.63 ] + }, + { + "time": 0.6, + "value": 13.63, + "curve": [ 0.617, 13.63, 0.683, 0.78 ] + }, + { + "time": 0.7, + "value": 0.78, + "curve": [ 0.717, 0.78, 0.75, 12.01 ] + }, + { + "time": 0.7667, + "value": 11.9, + "curve": [ 0.792, 11.73, 0.817, -0.85 ] + }, + { + "time": 0.8333, + "value": -0.85, + "curve": [ 0.85, -0.85, 0.88, 1.99 ] + }, + { + "time": 0.9, + "value": 1.82, + "curve": [ 0.916, 1.68, 0.95, -6.9 ] + }, + { + "time": 0.9667, + "value": -6.9, + "curve": [ 0.975, -6.9, 0.992, -3.82 ] + }, + { "time": 1, "value": -3.82 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "value": 31.65, + "curve": [ 0.108, 31.65, 0.325, 13.01 ] + }, + { + "time": 0.4333, + "value": 13.01, + "curve": [ 0.71, 13.01, 0.917, 31.65 ] + }, + { "time": 1, "value": 31.65 } + ] + }, + "rear-bracer": { + "rotate": [ + { + "value": 31, + "curve": [ 0.108, 31, 0.325, 12.76 ] + }, + { + "time": 0.4333, + "value": 12.79, + "curve": [ 0.587, 12.82, 0.917, 31 ] + }, + { "time": 1, "value": 31 } + ] + }, + "gun": { + "rotate": [ + { + "value": 1.95, + "curve": [ 0.083, 1.95, 0.245, 36.73 ] + }, + { + "time": 0.3333, + "value": 36.71, + "curve": [ 0.439, 36.69, 0.589, 10.68 ] + }, + { + "time": 0.6333, + "value": 8.75, + "curve": [ 0.701, 5.81, 0.917, 1.95 ] + }, + { "time": 1, "value": 1.95 } + ] + }, + "torso2": { + "rotate": [ + { + "curve": [ 0.033, 0, 0.1, 2.35 ] + }, + { + "time": 0.1333, + "value": 2.35, + "curve": [ 0.225, 2.35, 0.408, -2.4 ] + }, + { + "time": 0.5, + "value": -2.4, + "curve": [ 0.567, -2.4, 0.7, 1.44 ] + }, + { + "time": 0.7667, + "value": 1.44, + "curve": [ 0.825, 1.44, 0.942, 0 ] + }, + { "time": 1 } + ] + }, + "torso3": { + "rotate": [ + { + "curve": [ 0.063, 0.77, 0.106, 1.42 ] + }, + { + "time": 0.1667, + "value": 1.42, + "curve": [ 0.259, 1.42, 0.344, -1.25 ] + }, + { + "time": 0.4667, + "value": -1.26, + "curve": [ 0.656, -1.26, 0.917, -0.78 ] + }, + { "time": 1 } + ] + }, + "head-control": { + "translate": [ + { + "x": 0.37, + "y": -11.17, + "curve": [ 0.133, 0.37, 0.335, -10.23, 0.133, -11.17, 0.335, 3.15 ] + }, + { + "time": 0.5333, + "x": -10.23, + "y": 3.15, + "curve": [ 0.71, -10.23, 0.883, 0.37, 0.71, 3.15, 0.883, -11.17 ] + }, + { "time": 1, "x": 0.37, "y": -11.17 } + ] + }, + "front-shoulder": { + "translate": [ + { + "x": 1.46, + "y": 10.15, + "curve": [ 0.103, 1.46, 0.249, 1.36, 0.103, 10.15, 0.249, -4.39 ] + }, + { + "time": 0.4, + "x": 1.36, + "y": -4.39, + "curve": [ 0.621, 1.36, 0.85, 1.46, 0.621, -4.39, 0.85, 10.15 ] + }, + { "time": 1, "x": 1.46, "y": 10.15 } + ] + }, + "back-shoulder": { + "translate": [ + { + "x": 1.4, + "y": 0.44, + "curve": [ 0.088, 1.4, 0.208, -2.47, 0.088, 0.44, 0.208, 8.61 ] + }, + { + "time": 0.3333, + "x": -2.47, + "y": 8.61, + "curve": [ 0.572, -2.47, 0.833, 1.4, 0.572, 8.61, 0.833, 0.44 ] + }, + { "time": 1, "x": 1.4, "y": 0.44 } + ] + } + }, + "transform": { + "front-foot-board-transform": [ + { "mixRotate": 0.997 } + ], + "rear-foot-board-transform": [ + {} + ], + "toes-board": [ + { "mixX": 0, "mixScaleX": 0, "mixShearY": 0 } + ] + }, + "attachments": { + "default": { + "front-foot": { + "front-foot": { + "deform": [ + { + "offset": 26, + "vertices": [ -0.02832, -5.37024, -0.02832, -5.37024, 3.8188, -3.7757, -0.02832, -5.37024, -3.82159, 3.77847 ] + } + ] + } + }, + "front-shin": { + "front-shin": { + "deform": [ + { + "offset": 14, + "vertices": [ 0.5298, -1.12677, -0.85507, -4.20587, -11.35158, -10.19225, -10.79865, -8.43765, -6.06447, -6.89757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.54892, -3.06021, 1.48463, -2.29663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4.80437, -7.01817 ] + }, + { + "time": 0.3667, + "offset": 14, + "vertices": [ 0.5298, -1.12677, -11.66571, -9.07211, -25.65866, -17.53735, -25.53217, -16.50978, -11.78232, -11.26097, 0, 0, 0.60487, -1.63589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.60487, -1.63589, 0, 0, -2.64522, -7.35739, 1.48463, -2.29663, 0, 0, 0, 0, 0, 0, 0.60487, -1.63589, 0.60487, -1.63589, 0.60487, -1.63589, 0.60487, -1.63589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.60487, -1.63589, 0, 0, -10.06873, -12.0999 ] + }, + { + "time": 0.5333, + "offset": 14, + "vertices": [ 0.5298, -1.12677, -0.85507, -4.20587, -7.00775, -8.24771, -6.45482, -6.49312, -6.06447, -6.89757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.54892, -3.06021, 1.48463, -2.29663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4.80437, -7.01817 ] + }, + { + "time": 1, + "offset": 14, + "vertices": [ 0.5298, -1.12677, -0.85507, -4.20587, -11.35158, -10.19225, -10.79865, -8.43765, -6.06447, -6.89757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.54892, -3.06021, 1.48463, -2.29663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4.80437, -7.01817 ] + } + ] + } + }, + "hoverboard-board": { + "hoverboard-board": { + "deform": [ + { + "curve": [ 0.067, 0, 0.2, 1 ] + }, + { + "time": 0.2667, + "offset": 1, + "vertices": [ 2.45856, 0, 0, 0, 0, 0, 0, 0, 0, 3.55673, -3.0E-4, 3.55673, -3.0E-4, 0, 0, 0, 0, 0, 0, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, 0, 0, 0, 0, 0, 0, 0, 0, -4.90558, 0.11214, -9.40706, 6.2E-4, -6.34871, 4.3E-4, -6.34925, -6.57018, -6.34925, -6.57018, -6.34871, 4.3E-4, -2.3308, 1.7E-4, -2.33133, -6.57045, -2.33133, -6.57045, -2.3308, 1.7E-4, 0, 0, 1.2E-4, 2.45856, 1.2E-4, 2.45856, 1.2E-4, 2.45856, 1.2E-4, 2.45856, 3.3297, 4.44005, 3.3297, 4.44005, 3.3297, 4.44005, 1.2E-4, 2.45856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.46227, 1.7E-4, -2.46227, 1.7E-4, -2.52316, 1.1313, -2.52316, 1.1313, -2.52316, 1.1313, 1.2E-4, 2.45856, 1.2E-4, 2.45856, -9.40694, 2.45918, 1.88063, 0.44197, -2.9E-4, -3.54808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.52316, 1.1313, -2.52316, 1.1313, -2.52316, 1.1313, -2.46227, 1.7E-4, -2.46227, 1.7E-4, -2.46227, 1.7E-4, 0, 0, 0, 0, 1.2E-4, 2.45856 ], + "curve": [ 0.45, 0, 0.817, 1 ] + }, + { "time": 1 } + ] + } + }, + "rear-foot": { + "rear-foot": { + "deform": [ + { + "offset": 28, + "vertices": [ -1.93078, 1.34782, -0.31417, 2.33363, 3.05122, 0.33946, 2.31472, -2.01678, 2.17583, -2.05795, -0.04277, -2.99459, 1.15429, 0.26328, 0.97501, -0.67169 ] + } + ] + } + } + } + } + }, + "idle": { + "slots": { + "front-fist": { + "attachment": [ + { "name": "front-fist-open" } + ] + } + }, + "bones": { + "front-foot-target": { + "translate": [ + { "x": -69.06 } + ] + }, + "hip": { + "rotate": [ + { + "curve": [ 0.073, 0.35, 0.303, 1.27 ] + }, + { + "time": 0.4, + "value": 1.28, + "curve": [ 0.615, 1.3, 0.847, -1.41 ] + }, + { + "time": 1.2, + "value": -1.38, + "curve": [ 1.344, -1.37, 1.602, -0.28 ] + }, + { "time": 1.6667 } + ], + "translate": [ + { + "x": -11.97, + "y": -23.15, + "curve": [ 0.059, -12.96, 0.258, -15.19, 0.142, -23.15, 0.341, -24.89 ] + }, + { + "time": 0.4667, + "x": -15.14, + "y": -26.74, + "curve": [ 0.62, -15.1, 0.788, -13.28, 0.597, -28.66, 0.75, -30.01 ] + }, + { + "time": 0.9, + "x": -12.02, + "y": -30.01, + "curve": [ 0.978, -11.13, 1.175, -9.05, 1.036, -29.94, 1.234, -28.08 ] + }, + { + "time": 1.3333, + "x": -9.06, + "y": -26.64, + "curve": [ 1.501, -9.06, 1.614, -10.95, 1.454, -24.89, 1.609, -23.15 ] + }, + { "time": 1.6667, "x": -11.97, "y": -23.15 } + ] + }, + "rear-foot-target": { + "translate": [ + { "x": 48.87 } + ] + }, + "front-upper-arm": { + "rotate": [ + { + "value": -60.87, + "curve": [ 0.154, -60.85, 0.452, -68.65 ] + }, + { + "time": 0.8333, + "value": -68.65, + "curve": [ 1.221, -68.65, 1.542, -60.87 ] + }, + { "time": 1.6667, "value": -60.87 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": 42.46, + "curve": [ 0.029, 42.97, 0.134, 45.28 ] + }, + { + "time": 0.3333, + "value": 45.27, + "curve": [ 0.578, 45.26, 0.798, 40.07 ] + }, + { + "time": 0.8333, + "value": 39.74, + "curve": [ 0.878, 39.32, 1.019, 38.23 ] + }, + { + "time": 1.2, + "value": 38.22, + "curve": [ 1.377, 38.22, 1.619, 41.68 ] + }, + { "time": 1.6667, "value": 42.46 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "value": 39.2, + "curve": [ 0.185, 39.22, 0.5, 29.37 ] + }, + { + "time": 0.6667, + "value": 29.37, + "curve": [ 0.917, 29.37, 1.417, 39.2 ] + }, + { "time": 1.6667, "value": 39.2 } + ] + }, + "head": { + "rotate": [ + { + "value": -6.75, + "curve": [ 0.176, -7.88, 0.349, -8.95 ] + }, + { + "time": 0.4667, + "value": -8.95, + "curve": [ 0.55, -8.95, 0.697, -6.77 ] + }, + { + "time": 0.8333, + "value": -5.44, + "curve": [ 0.88, -4.98, 1.05, -4.12 ] + }, + { + "time": 1.1333, + "value": -4.12, + "curve": [ 1.266, -4.12, 1.469, -5.48 ] + }, + { "time": 1.6667, "value": -6.75 } + ] + }, + "front-fist": { + "rotate": [ + { + "curve": [ 0.086, 0, 0.233, 2.48 ] + }, + { + "time": 0.3333, + "value": 4.13, + "curve": [ 0.429, 5.7, 0.711, 10.06 ] + }, + { + "time": 0.8333, + "value": 10.06, + "curve": [ 0.926, 10.06, 1.092, 4.21 ] + }, + { + "time": 1.2, + "value": 2.78, + "curve": [ 1.349, 0.8, 1.551, 0 ] + }, + { "time": 1.6667 } + ] + }, + "rear-bracer": { + "rotate": [ + { + "curve": [ 0.063, 0.54, 0.367, 3.39 ] + }, + { + "time": 0.5333, + "value": 3.39, + "curve": [ 0.696, 3.39, 0.939, -1.63 ] + }, + { + "time": 1.2, + "value": -1.61, + "curve": [ 1.42, -1.59, 1.574, -0.67 ] + }, + { "time": 1.6667 } + ] + }, + "gun": { + "rotate": [ + { + "curve": [ 0.099, 0.27, 0.367, 1.23 ] + }, + { + "time": 0.5333, + "value": 1.23, + "curve": [ 0.665, 1.23, 0.937, -0.56 ] + }, + { + "time": 1.1333, + "value": -0.55, + "curve": [ 1.316, -0.55, 1.582, -0.21 ] + }, + { "time": 1.6667 } + ] + }, + "torso": { + "rotate": [ + { + "value": -22.88, + "curve": [ 0.099, -23.45, 0.363, -24.74 ] + }, + { + "time": 0.5333, + "value": -24.74, + "curve": [ 0.706, -24.74, 0.961, -20.97 ] + }, + { + "time": 1.1333, + "value": -20.97, + "curve": [ 1.355, -20.97, 1.567, -22.28 ] + }, + { "time": 1.6667, "value": -22.88 } + ] + }, + "neck": { + "rotate": [ + { + "value": 3.78, + "curve": [ 0.167, 3.78, 0.5, 5.45 ] + }, + { + "time": 0.6667, + "value": 5.45, + "curve": [ 0.917, 5.45, 1.417, 3.78 ] + }, + { "time": 1.6667, "value": 3.78 } + ] + }, + "torso2": { + "rotate": [ + { + "curve": [ 0.067, 0.33, 0.341, 2.54 ] + }, + { + "time": 0.5333, + "value": 2.54, + "curve": [ 0.734, 2.55, 0.982, -0.94 ] + }, + { + "time": 1.1333, + "value": -0.93, + "curve": [ 1.365, -0.91, 1.549, -0.56 ] + }, + { "time": 1.6667 } + ] + }, + "torso3": { + "rotate": [ + { + "value": -2.15, + "curve": [ 0.052, -1.9, 0.384, -0.15 ] + }, + { + "time": 0.5333, + "value": -0.14, + "curve": [ 0.762, -0.13, 0.895, -3.1 ] + }, + { + "time": 1.1333, + "value": -3.1, + "curve": [ 1.348, -3.1, 1.592, -2.46 ] + }, + { "time": 1.6667, "value": -2.15 } + ] + }, + "hair1": { + "rotate": [ + { + "curve": [ 0.067, 0, 0.213, 2.86 ] + }, + { + "time": 0.2667, + "value": 3.65, + "curve": [ 0.358, 4.99, 0.535, 7.92 ] + }, + { + "time": 0.6667, + "value": 7.92, + "curve": [ 0.809, 7.92, 1.067, 5.49 ] + }, + { + "time": 1.1333, + "value": 4.7, + "curve": [ 1.245, 3.34, 1.525, 0 ] + }, + { "time": 1.6667 } + ] + }, + "hair2": { + "rotate": [ + { + "curve": [ 0.067, 0, 0.225, -7.97 ] + }, + { + "time": 0.2667, + "value": -9.75, + "curve": [ 0.316, -11.84, 0.519, -16.66 ] + }, + { + "time": 0.6667, + "value": -16.66, + "curve": [ 0.817, -16.66, 1.029, -11.43 ] + }, + { + "time": 1.1333, + "value": -9.14, + "curve": [ 1.25, -6.56, 1.525, 0 ] + }, + { "time": 1.6667 } + ] + }, + "hair3": { + "rotate": [ + { + "curve": [ 0.1, 0, 0.3, 1.32 ] + }, + { + "time": 0.4, + "value": 1.32, + "curve": [ 0.55, 1.32, 0.866, 0.93 ] + }, + { + "time": 1, + "value": 0.73, + "curve": [ 1.189, 0.46, 1.5, 0 ] + }, + { "time": 1.6667 } + ] + }, + "hair4": { + "rotate": [ + { + "curve": [ 0.118, -0.44, 0.3, -8.52 ] + }, + { + "time": 0.4, + "value": -8.52, + "curve": [ 0.55, -8.52, 0.85, 1.96 ] + }, + { + "time": 1, + "value": 1.96, + "curve": [ 1.167, 1.96, 1.577, 0.38 ] + }, + { "time": 1.6667 } + ] + }, + "head-control": { + "translate": [ + { + "curve": [ 0.098, 1.46, 0.3, 4.49, 0.17, 0.13, 0.316, -3.28 ] + }, + { + "time": 0.4, + "x": 4.55, + "y": -5.95, + "curve": [ 0.53, 4.64, 0.776, 2.59, 0.492, -8.89, 0.668, -14.21 ] + }, + { + "time": 0.8667, + "x": 1.42, + "y": -14.26, + "curve": [ 0.966, 0.15, 1.109, -2.91, 0.994, -14.26, 1.144, -10.58 ] + }, + { + "time": 1.2333, + "x": -3.02, + "y": -8.26, + "curve": [ 1.342, -3.02, 1.568, -1.48, 1.317, -6.1, 1.558, 0 ] + }, + { "time": 1.6667 } + ] + }, + "front-shoulder": { + "translate": [ + { + "curve": [ 0.21, 0, 0.525, -1.72, 0.21, 0, 0.525, 4.08 ] + }, + { + "time": 0.8333, + "x": -1.72, + "y": 4.08, + "curve": [ 1.15, -1.72, 1.46, 0, 1.15, 4.08, 1.46, 0 ] + }, + { "time": 1.6667 } + ] + } + } + }, + "idle-turn": { + "slots": { + "front-fist": { + "attachment": [ + { "name": "front-fist-open" } + ] + } + }, + "bones": { + "front-upper-arm": { + "rotate": [ + { + "value": -302.77, + "curve": [ 0, -406.9, 0.125, -420.87 ] + }, + { "time": 0.2667, "value": -420.87 } + ], + "translate": [ + { + "x": 2.24, + "y": -4.98, + "curve": [ 0.067, 2.24, 0.111, 0, 0.067, -4.98, 0.111, 0 ] + }, + { "time": 0.2667 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "value": 248.56, + "curve": [ 0, 371.28, 0.062, 399.2 ] + }, + { "time": 0.1333, "value": 399.2 } + ], + "translate": [ + { + "x": -2.84, + "y": 37.28, + "curve": [ 0.033, -2.84, 0.069, 0, 0.033, 37.28, 0.069, 0 ] + }, + { "time": 0.1333 } + ] + }, + "gun": { + "rotate": [ + { + "value": -3.95, + "curve": [ 0, -10.4, 0.019, -20.43 ] + }, + { + "time": 0.0333, + "value": -20.45, + "curve": [ 0.044, -20.47, 0.125, 0 ] + }, + { "time": 0.2 } + ] + }, + "neck": { + "rotate": [ + { + "value": 17.2, + "curve": [ 0, 6.27, 0.125, 3.78 ] + }, + { "time": 0.2667, "value": 3.78 } + ] + }, + "hip": { + "translate": [ + { + "x": -2.69, + "y": -6.79, + "curve": [ 0.067, -2.69, 0.2, -11.97, 0.067, -6.79, 0.2, -23.15 ] + }, + { "time": 0.2667, "x": -11.97, "y": -23.15 } + ] + }, + "front-fist": { + "rotate": [ + { + "value": -15.54, + "curve": [ 0, -3.08, 0.034, 18.44 ] + }, + { + "time": 0.0667, + "value": 19.02, + "curve": [ 0.108, 19.75, 0.169, 0 ] + }, + { "time": 0.2667 } + ], + "scale": [ + { + "x": 0.94, + "curve": [ 0, 0.962, 0.024, 1.237, 0, 1, 0.026, 0.947 ] + }, + { + "time": 0.0667, + "x": 1.236, + "y": 0.947, + "curve": [ 0.117, 1.235, 0.189, 1, 0.117, 0.947, 0.189, 1 ] + }, + { "time": 0.2667 } + ] + }, + "rear-bracer": { + "rotate": [ + { + "value": 11.75, + "curve": [ 0, -7.97, 0.017, -33.4 ] + }, + { + "time": 0.0333, + "value": -33.39, + "curve": [ 0.049, -33.37, 0.131, 0 ] + }, + { "time": 0.2 } + ] + }, + "torso": { + "rotate": [ + { + "value": -18.25, + "curve": [ 0, -10.59, 0.125, -22.88 ] + }, + { "time": 0.2667, "value": -22.88 } + ], + "scale": [ + { + "y": 1.03, + "curve": [ 0.067, 1, 0.132, 1, 0.067, 1.03, 0.132, 1 ] + }, + { "time": 0.2667 } + ] + }, + "head": { + "rotate": [ + { + "value": 5.12, + "curve": [ 0, -6.34, 0.125, -6.75 ] + }, + { "time": 0.2667, "value": -6.75 } + ], + "scale": [ + { + "y": 1.03, + "curve": [ 0.067, 1, 0.107, 1, 0.067, 1.03, 0.107, 1 ] + }, + { "time": 0.2667 } + ] + }, + "rear-foot-target": { + "translate": [ + { + "x": -58.39, + "y": 30.48, + "curve": [ 0, -7.15, 0.047, 16.62, 0, 12.71, 0.039, 0.22 ] + }, + { + "time": 0.1, + "x": 34.14, + "y": -0.19, + "curve": [ 0.136, 45.79, 0.163, 48.87, 0.133, -0.41, 0.163, 0 ] + }, + { "time": 0.2, "x": 48.87 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": 6.69, + "curve": [ 0, 19.76, 0.039, 56.53 ] + }, + { + "time": 0.0667, + "value": 56.63, + "curve": [ 0.114, 56.79, 0.189, 42.46 ] + }, + { "time": 0.2667, "value": 42.46 } + ] + }, + "front-foot-target": { + "rotate": [ + { + "value": -1.85, + "curve": [ 0.014, -8.91, 0.047, -28.4 ] + }, + { + "time": 0.1, + "value": -28.89, + "curve": [ 0.144, -29.29, 0.262, -21.77 ] + }, + { "time": 0.2667 } + ], + "translate": [ + { + "x": 9.97, + "y": 0.82, + "curve": [ 0, -54.41, 0.078, -69.06, 0, 0.15, 0.078, 0 ] + }, + { "time": 0.1667, "x": -69.06 } + ] + }, + "hair3": { + "rotate": [ + { + "value": -9.01, + "curve": [ 0.044, -9.01, 0.072, 7.41 ] + }, + { + "time": 0.1333, + "value": 10.08, + "curve": [ 0.166, 11.47, 0.208, 0 ] + }, + { "time": 0.2667 } + ] + }, + "hair4": { + "rotate": [ + { + "value": -16.49, + "curve": [ 0.044, -16.49, 0.101, -5.98 ] + }, + { + "time": 0.1333, + "value": -2.95, + "curve": [ 0.162, -0.34, 0.208, 0 ] + }, + { "time": 0.2667 } + ] + }, + "hair1": { + "rotate": [ + { + "value": -3.85, + "curve": [ 0.044, -3.85, 0.072, 6.91 ] + }, + { + "time": 0.1333, + "value": 8.05, + "curve": [ 0.166, 8.65, 0.208, 0 ] + }, + { "time": 0.2667 } + ] + }, + "hair2": { + "rotate": [ + { + "value": 1.25, + "curve": [ 0.044, 1.25, 0.072, 8.97 ] + }, + { + "time": 0.1333, + "value": 8.6, + "curve": [ 0.166, 8.4, 0.208, 0 ] + }, + { "time": 0.2667 } + ] + }, + "front-thigh": { + "translate": [ + { + "x": 12.21, + "y": 1.89, + "curve": [ 0.033, 12.21, 0.1, 0, 0.033, 1.89, 0.1, 0 ] + }, + { "time": 0.1333 } + ] + }, + "rear-thigh": { + "translate": [ + { + "x": -16.11, + "y": -1.38, + "curve": [ 0.033, -16.11, 0.1, 0, 0.033, -1.38, 0.1, 0 ] + }, + { "time": 0.1333 } + ] + }, + "torso3": { + "rotate": [ + { "time": 0.2667, "value": -2.15 } + ] + }, + "head-control": { + "translate": [ + { + "x": -13.72, + "y": -34.7, + "curve": [ 0.067, -13.72, 0.2, 0, 0.067, -34.7, 0.2, 0 ] + }, + { "time": 0.2667 } + ] + }, + "front-shoulder": { + "translate": [ + { + "x": 1.13, + "y": -14.31, + "curve": [ 0.067, 1.13, 0.2, 0, 0.067, -14.31, 0.2, 0 ] + }, + { "time": 0.2667 } + ] + } + } + }, + "jump": { + "slots": { + "front-fist": { + "attachment": [ + { "name": "front-fist-open" }, + { "time": 0.1, "name": "front-fist-closed" }, + { "time": 0.8333, "name": "front-fist-open" } + ] + } + }, + "bones": { + "front-thigh": { + "rotate": [ + { + "value": 55.08, + "curve": [ 0.007, 46.66, 0.043, 26.3 ] + }, + { + "time": 0.0667, + "value": 22.84, + "curve": [ 0.1, 17.99, 0.165, 15.78 ] + }, + { + "time": 0.2333, + "value": 15.71, + "curve": [ 0.309, 15.63, 0.408, 46.67 ] + }, + { + "time": 0.5, + "value": 63.6, + "curve": [ 0.56, 74.72, 0.762, 91.48 ] + }, + { + "time": 0.9667, + "value": 91.81, + "curve": [ 1.068, 92.01, 1.096, 22.05 ] + }, + { + "time": 1.1667, + "value": 22.25, + "curve": [ 1.18, 22.29, 1.176, 56.17 ] + }, + { + "time": 1.2, + "value": 56.16, + "curve": [ 1.246, 56.15, 1.263, 54.94 ] + }, + { "time": 1.3333, "value": 55.08 } + ], + "translate": [ + { "x": -5.13, "y": 11.55 } + ] + }, + "torso": { + "rotate": [ + { + "value": -45.57, + "curve": [ 0.022, -44.61, 0.03, -39.06 ] + }, + { + "time": 0.0667, + "value": -35.29, + "curve": [ 0.12, -29.77, 0.28, -19.95 ] + }, + { + "time": 0.4333, + "value": -19.95, + "curve": [ 0.673, -19.95, 0.871, -22.38 ] + }, + { + "time": 0.9667, + "value": -27.08, + "curve": [ 1.094, -33.33, 1.176, -44.93 ] + }, + { "time": 1.3333, "value": -45.57 } + ], + "translate": [ + { "x": -3.79, "y": -0.77 } + ] + }, + "rear-thigh": { + "rotate": [ + { + "value": 12.81, + "curve": [ 0.067, 12.81, 0.242, 67.88 ] + }, + { + "time": 0.2667, + "value": 74.11, + "curve": [ 0.314, 86.02, 0.454, 92.23 ] + }, + { + "time": 0.5667, + "value": 92.24, + "curve": [ 0.753, 92.26, 0.966, 67.94 ] + }, + { + "time": 1, + "value": 61.32, + "curve": [ 1.039, 53.75, 1.218, 12.68 ] + }, + { "time": 1.3333, "value": 12.81 } + ] + }, + "rear-shin": { + "rotate": [ + { + "value": -115.64, + "curve": [ 0.067, -117.17, 0.125, -117.15 ] + }, + { + "time": 0.1667, + "value": -117.15, + "curve": [ 0.225, -117.15, 0.332, -108.76 ] + }, + { + "time": 0.4, + "value": -107.15, + "curve": [ 0.48, -105.26, 0.685, -103.49 ] + }, + { + "time": 0.7667, + "value": -101.97, + "curve": [ 0.826, -100.87, 0.919, -92.3 ] + }, + { + "time": 1, + "value": -92.28, + "curve": [ 1.113, -92.26, 1.297, -114.22 ] + }, + { "time": 1.3333, "value": -115.64 } + ] + }, + "front-upper-arm": { + "rotate": [ + { + "value": -40.21, + "curve": [ 0.054, -35.46, 0.15, -31.12 ] + }, + { + "time": 0.2, + "value": -31.12, + "curve": [ 0.308, -31.12, 0.547, -80.12 ] + }, + { + "time": 0.6333, + "value": -96.56, + "curve": [ 0.697, -108.56, 0.797, -112.54 ] + }, + { + "time": 0.8667, + "value": -112.6, + "curve": [ 1.137, -112.84, 1.274, -49.19 ] + }, + { "time": 1.3333, "value": -40.21 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": 20.54, + "curve": [ 0.054, 32.23, 0.192, 55.84 ] + }, + { + "time": 0.2333, + "value": 62.58, + "curve": [ 0.29, 71.87, 0.375, 79.28 ] + }, + { + "time": 0.4333, + "value": 79.18, + "curve": [ 0.555, 78.98, 0.684, 27.54 ] + }, + { + "time": 0.7333, + "value": 13.28, + "curve": [ 0.786, -1.85, 0.874, -24.76 ] + }, + { + "time": 1, + "value": -25.45, + "curve": [ 1.165, -26.36, 1.303, 9.1 ] + }, + { "time": 1.3333, "value": 20.54 } + ] + }, + "front-fist": { + "rotate": [ + { + "value": -36.16, + "curve": [ 0.114, -39.59, 0.3, -45.61 ] + }, + { + "time": 0.4, + "value": -45.61, + "curve": [ 0.442, -45.61, 0.537, -21.54 ] + }, + { + "time": 0.5667, + "value": -15.4, + "curve": [ 0.592, -10.23, 0.692, 11.89 ] + }, + { + "time": 0.7333, + "value": 11.73, + "curve": [ 0.783, 11.54, 0.831, 1.8 ] + }, + { + "time": 0.8667, + "value": -5.78, + "curve": [ 0.897, -12.22, 0.901, -14.22 ] + }, + { + "time": 0.9333, + "value": -14.51, + "curve": [ 0.974, -14.89, 0.976, 10.38 ] + }, + { + "time": 1, + "value": 10.55, + "curve": [ 1.027, 10.74, 1.023, -8.44 ] + }, + { + "time": 1.0333, + "value": -8.42, + "curve": [ 1.059, -8.36, 1.074, 10.12 ] + }, + { + "time": 1.1, + "value": 10.22, + "curve": [ 1.168, 10.48, 1.27, -36.07 ] + }, + { "time": 1.3333, "value": -36.16 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "value": 40.5, + "curve": [ 0.048, 36.1, 0.168, 20.45 ] + }, + { + "time": 0.3, + "value": 20.45, + "curve": [ 0.476, 20.45, 0.571, 33.76 ] + }, + { + "time": 0.6, + "value": 38.67, + "curve": [ 0.642, 45.8, 0.681, 57.44 ] + }, + { + "time": 0.7333, + "value": 62.91, + "curve": [ 0.829, 72.8, 0.996, 77.61 ] + }, + { + "time": 1.0333, + "value": 80.37, + "curve": [ 1.082, 83.94, 1.148, 90.6 ] + }, + { + "time": 1.2, + "value": 90.6, + "curve": [ 1.248, 90.46, 1.317, 53.07 ] + }, + { "time": 1.3333, "value": 49.06 } + ] + }, + "rear-bracer": { + "rotate": [ + { + "value": 28.28, + "curve": [ 0.022, 25.12, 0.187, -0.89 ] + }, + { + "time": 0.2, + "value": -2.52, + "curve": [ 0.257, -9.92, 0.372, -17.38 ] + }, + { + "time": 0.4333, + "value": -17.41, + "curve": [ 0.54, -17.47, 0.659, -16.91 ] + }, + { + "time": 0.7667, + "value": -12.1, + "curve": [ 0.907, -5.79, 1.025, 14.58 ] + }, + { + "time": 1.1, + "value": 20.58, + "curve": [ 1.191, 27.85, 1.283, 29.67 ] + }, + { "time": 1.3333, "value": 29.67 } + ] + }, + "neck": { + "rotate": [ + { + "value": 11.88, + "curve": [ 0.104, 11.82, 0.179, 11.15 ] + }, + { + "time": 0.2, + "value": 10.08, + "curve": [ 0.255, 7.29, 0.405, -8.15 ] + }, + { + "time": 0.4333, + "value": -9.35, + "curve": [ 0.508, -12.48, 0.595, -13.14 ] + }, + { + "time": 0.6667, + "value": -12.61, + "curve": [ 0.714, -12.26, 0.815, -5.57 ] + }, + { + "time": 0.8333, + "value": -4.08, + "curve": [ 0.883, -0.07, 1.045, 12.77 ] + }, + { + "time": 1.1, + "value": 15.06, + "curve": [ 1.208, 19.6, 1.279, 20.64 ] + }, + { "time": 1.3333, "value": 20.73 } + ] + }, + "head": { + "rotate": [ + { + "value": 13.14, + "curve": [ 0.008, 12.19, 0.197, -23.53 ] + }, + { + "time": 0.3333, + "value": -23.95, + "curve": [ 0.509, -23.95, 0.667, -2.66 ] + }, + { + "time": 0.7333, + "value": -2.66, + "curve": [ 0.792, -2.66, 0.908, -13.32 ] + }, + { + "time": 0.9667, + "value": -13.32, + "curve": [ 1.158, -13.11, 1.241, -1.58 ] + }, + { "time": 1.3333, "value": -1.58 } + ], + "scale": [ + { + "curve": [ 0.041, 1, 0.052, 0.962, 0.041, 1, 0.052, 1.137 ] + }, + { + "time": 0.1, + "x": 0.954, + "y": 1.137, + "curve": [ 0.202, 0.962, 0.318, 1, 0.202, 1.137, 0.252, 1.002 ] + }, + { "time": 0.4667 }, + { + "time": 1.0667, + "x": 1.002, + "curve": [ 1.092, 1.002, 1.126, 1.143, 1.092, 1, 1.128, 0.975 ] + }, + { + "time": 1.1667, + "x": 1.144, + "y": 0.973, + "curve": [ 1.204, 1.145, 1.233, 0.959, 1.206, 0.972, 1.227, 1.062 ] + }, + { + "time": 1.2667, + "x": 0.958, + "y": 1.063, + "curve": [ 1.284, 0.958, 1.292, 1.001, 1.288, 1.063, 1.288, 1.001 ] + }, + { "time": 1.3333 } + ] + }, + "hip": { + "translate": [ + { + "y": -45.46, + "curve": [ 0.042, -0.09, 0.15, 15.22, 0.031, 44.98, 0.123, 289.73 ] + }, + { + "time": 0.2, + "x": 15.22, + "y": 415.85, + "curve": [ 0.332, 15.22, 0.539, -34.52, 0.271, 532.93, 0.483, 720.5 ] + }, + { + "time": 0.7667, + "x": -34.52, + "y": 721.6, + "curve": [ 0.888, -34.52, 1.057, -21.95, 1.049, 721.17, 1.098, 379.84 ] + }, + { + "time": 1.1333, + "x": -15.67, + "y": 266.77, + "curve": [ 1.144, -14.77, 1.188, -10.53, 1.15, 213.72, 1.172, -61.32 ] + }, + { + "time": 1.2333, + "x": -6.53, + "y": -61.34, + "curve": [ 1.272, -3.22, 1.311, 0.05, 1.291, -61.36, 1.296, -44.8 ] + }, + { "time": 1.3333, "y": -45.46 } + ] + }, + "front-shin": { + "rotate": [ + { + "value": -74.19, + "curve": [ 0, -51.14, 0.042, -12.54 ] + }, + { + "time": 0.1667, + "value": -12.28, + "curve": [ 0.285, -12.32, 0.37, -74.44 ] + }, + { + "time": 0.4333, + "value": -92.92, + "curve": [ 0.498, -111.86, 0.617, -140.28 ] + }, + { + "time": 0.9, + "value": -140.84, + "curve": [ 1.004, -141.04, 1.09, -47.87 ] + }, + { + "time": 1.1, + "value": -37.44, + "curve": [ 1.108, -29.83, 1.14, -21.18 ] + }, + { + "time": 1.1667, + "value": -21.08, + "curve": [ 1.18, -21.03, 1.191, -50.65 ] + }, + { + "time": 1.2, + "value": -53.17, + "curve": [ 1.22, -58.53, 1.271, -73.38 ] + }, + { "time": 1.3333, "value": -74.19 } + ] + }, + "front-foot": { + "rotate": [ + { + "value": 7.35, + "curve": [ 0, 4.8, 0.05, -26.64 ] + }, + { + "time": 0.0667, + "value": -26.64, + "curve": [ 0.192, -26.64, 0.442, -11.77 ] + }, + { + "time": 0.5667, + "value": -11.77, + "curve": [ 0.692, -11.77, 0.942, -19.36 ] + }, + { + "time": 1.0667, + "value": -19.36, + "curve": [ 1.133, -19.36, 1.32, 3.82 ] + }, + { "time": 1.3333, "value": 7.35 } + ] + }, + "rear-foot": { + "rotate": [ + { "value": -7.14 } + ] + }, + "gun": { + "rotate": [ + { + "value": 12.36, + "curve": [ 0.022, 16.28, 0.15, 30.81 ] + }, + { + "time": 0.2, + "value": 30.81, + "curve": [ 0.258, 30.81, 0.375, 13.26 ] + }, + { + "time": 0.4333, + "value": 13.26, + "curve": [ 0.508, 13.26, 0.658, 15.05 ] + }, + { + "time": 0.7333, + "value": 14.98, + "curve": [ 0.789, 14.94, 0.828, 13.62 ] + }, + { + "time": 0.8667, + "value": 12.72, + "curve": [ 0.887, 12.25, 0.984, 9.83 ] + }, + { + "time": 1.0333, + "value": 8.6, + "curve": [ 1.045, 8.31, 1.083, 7.55 ] + }, + { + "time": 1.1333, + "value": 7.13, + "curve": [ 1.175, 6.78, 1.283, 6.18 ] + }, + { "time": 1.3333, "value": 6.18 } + ] + }, + "front-leg-target": { + "translate": [ + { "x": -13.95, "y": -30.34 } + ] + }, + "rear-leg-target": { + "rotate": [ + { "value": -38.43 } + ], + "translate": [ + { "x": 85, "y": -33.59 } + ] + }, + "front-foot-target": { + "rotate": [ + { "value": -62.54 } + ], + "translate": [ + { "x": 16.34, "y": 0.18 } + ] + }, + "rear-foot-target": { + "rotate": [ + { "value": 18.55 } + ], + "translate": [ + { "x": -176.39, "y": 134.12 } + ] + }, + "back-foot-tip": { + "rotate": [ + { + "value": -143.73, + "curve": [ 0.083, -144.24, 0.167, -74.26 ] + }, + { + "time": 0.2667, + "value": -52.76, + "curve": [ 0.342, -36.57, 0.513, -36.57 ] + }, + { + "time": 0.6333, + "value": -30.97, + "curve": [ 0.724, -26.78, 0.848, -17.06 ] + }, + { + "time": 0.9667, + "value": -16.74, + "curve": [ 1.167, -16.2, 1.272, -144.17 ] + }, + { "time": 1.3333, "value": -143.73 } + ] + }, + "front-foot-tip": { + "rotate": [ + { + "value": -1.57, + "curve": [ 0, -24.71, 0.162, -60.88 ] + }, + { + "time": 0.2667, + "value": -60.83, + "curve": [ 0.342, -60.8, 0.582, -43.5 ] + }, + { + "time": 0.7, + "value": -39.45, + "curve": [ 0.773, -36.94, 0.832, -36.78 ] + }, + { + "time": 0.9667, + "value": -36.6, + "curve": [ 1.054, -36.49, 1.092, -37.37 ] + }, + { + "time": 1.1667, + "value": -33.26, + "curve": [ 1.237, -29.37, 1.147, -1.41 ] + }, + { "time": 1.2, "value": -1.57 } + ] + }, + "hair3": { + "rotate": [ + { + "value": -6.81, + "curve": [ 0, 13.59, 0.117, 18.21 ] + }, + { + "time": 0.1333, + "value": 18.21, + "curve": [ 0.167, 18.21, 0.26, 12.95 ] + }, + { + "time": 0.3, + "value": 11.56, + "curve": [ 0.382, 8.7, 0.55, 9.43 ] + }, + { + "time": 0.6667, + "value": 9.32, + "curve": [ 0.843, 9.15, 0.918, -7.34 ] + }, + { "time": 1.3333, "value": -6.81 } + ], + "translate": [ + { + "time": 0.6667, + "curve": [ 0.781, 0, 0.972, 16.03, 0.781, 0, 0.972, 0.92 ] + }, + { + "time": 1.1333, + "x": 16.03, + "y": 0.92, + "curve": [ 1.211, 16.03, 1.281, 0, 1.211, 0.92, 1.281, 0 ] + }, + { "time": 1.3333 } + ] + }, + "hair4": { + "rotate": [ + { + "value": -6.81, + "curve": [ 0.001, -3.88, 0.063, 16.18 ] + }, + { + "time": 0.1667, + "value": 16.14, + "curve": [ 0.242, 16.1, 0.249, 16.07 ] + }, + { + "time": 0.3333, + "value": 13.46, + "curve": [ 0.442, 10.09, 0.573, -2.2 ] + }, + { + "time": 0.6, + "value": -6.04, + "curve": [ 0.614, -8.05, 0.717, -33.44 ] + }, + { + "time": 0.7667, + "value": -33.44, + "curve": [ 0.809, -33.44, 0.835, -31.32 ] + }, + { + "time": 0.8667, + "value": -27.36, + "curve": [ 0.874, -26.47, 0.903, -14.28 ] + }, + { + "time": 0.9333, + "value": -14.47, + "curve": [ 0.956, -14.62, 0.944, -25.91 ] + }, + { + "time": 1, + "value": -25.96, + "curve": [ 1.062, -26.02, 1.051, -1.87 ] + }, + { + "time": 1.0667, + "value": -1.87, + "curve": [ 1.096, -1.87, 1.096, -16.09 ] + }, + { + "time": 1.1333, + "value": -16.08, + "curve": [ 1.169, -16.08, 1.153, -3.38 ] + }, + { + "time": 1.2, + "value": -3.38, + "curve": [ 1.234, -3.38, 1.271, -6.07 ] + }, + { "time": 1.3333, "value": -6.07 } + ] + }, + "hair2": { + "rotate": [ + { + "value": -6.81, + "curve": [ 0, -3.17, 0.042, 16.33 ] + }, + { + "time": 0.0667, + "value": 16.33, + "curve": [ 0.21, 15.74, 0.208, -12.06 ] + }, + { + "time": 0.3333, + "value": -12.21, + "curve": [ 0.417, -12.3, 0.552, -3.98 ] + }, + { + "time": 0.6667, + "value": 1.52, + "curve": [ 0.726, 4.35, 0.817, 4.99 ] + }, + { + "time": 0.8667, + "value": 4.99, + "curve": [ 0.901, 4.99, 0.912, -29.05 ] + }, + { + "time": 0.9667, + "value": -27.45, + "curve": [ 0.987, -26.83, 1.018, -5.42 ] + }, + { + "time": 1.0667, + "value": -5.46, + "curve": [ 1.107, -5.22, 1.095, -33.51 ] + }, + { + "time": 1.1333, + "value": -33.28, + "curve": [ 1.162, -33.57, 1.192, 8.04 ] + }, + { + "time": 1.2667, + "value": 7.86, + "curve": [ 1.302, 7.77, 1.313, 2.7 ] + }, + { "time": 1.3333, "value": 2.7 } + ] + }, + "hair1": { + "rotate": [ + { + "value": -6.81, + "curve": [ 0.001, -3.12, 0.074, 14.66 ] + }, + { + "time": 0.1333, + "value": 14.66, + "curve": [ 0.188, 14.8, 0.293, 9.56 ] + }, + { + "time": 0.3333, + "value": 5.99, + "curve": [ 0.381, 1.72, 0.55, -11.11 ] + }, + { + "time": 0.6667, + "value": -11.11, + "curve": [ 0.833, -11.11, 0.933, 22.54 ] + }, + { + "time": 1.1, + "value": 22.54, + "curve": [ 1.158, 22.54, 1.275, -6.81 ] + }, + { "time": 1.3333, "value": -6.81 } + ] + }, + "torso2": { + "rotate": [ + { + "value": 4.52, + "curve": [ 0.013, 2.33, 0.092, -9.75 ] + }, + { + "time": 0.1333, + "value": -9.75, + "curve": [ 0.175, -9.75, 0.291, -1.26 ] + }, + { + "time": 0.3333, + "value": 0.96, + "curve": [ 0.359, 2.3, 0.543, 4.25 ] + }, + { + "time": 0.6, + "value": 4.68, + "curve": [ 0.683, 5.3, 0.771, 5.92 ] + }, + { + "time": 0.8333, + "value": 6.48, + "curve": [ 0.871, 6.82, 1.083, 11.37 ] + }, + { + "time": 1.1667, + "value": 11.37, + "curve": [ 1.208, 11.37, 1.317, 6.18 ] + }, + { "time": 1.3333, "value": 4.52 } + ], + "translate": [ + { + "curve": [ 0, 0, 0.082, -2.24, 0, 0, 0.082, -0.42 ] + }, + { + "time": 0.1667, + "x": -2.98, + "y": -0.56, + "curve": [ 0.232, -2.24, 0.298, 0, 0.232, -0.42, 0.298, 0 ] + }, + { "time": 0.3333, "curve": "stepped" }, + { + "time": 0.8667, + "curve": [ 0.889, 0, 0.912, 0.26, 0.889, 0, 0.912, 0.06 ] + }, + { + "time": 0.9333, + "x": 0.68, + "y": 0.23, + "curve": [ 1.016, 2.22, 1.095, 5.9, 1.023, 0.97, 1.095, 1.99 ] + }, + { + "time": 1.1667, + "x": 6.47, + "y": 2.18, + "curve": [ 1.23, 5.75, 1.286, 0, 1.23, 1.94, 1.286, 0 ] + }, + { "time": 1.3333 } + ] + }, + "torso3": { + "rotate": [ + { + "value": 4.52, + "curve": [ 0.025, 4.52, 0.075, -6.17 ] + }, + { + "time": 0.1, + "value": -6.17, + "curve": [ 0.175, -6.17, 0.381, -0.71 ] + }, + { + "time": 0.4, + "value": -0.25, + "curve": [ 0.447, 0.87, 0.775, 4.84 ] + }, + { + "time": 0.9, + "value": 4.84, + "curve": [ 1.008, 4.84, 1.225, 4.52 ] + }, + { "time": 1.3333, "value": 4.52 } + ] + }, + "head-control": { + "translate": [ + { + "curve": [ 0.138, -2.4, 0.227, -10.44, 0.123, 1.05, 0.227, 2.7 ] + }, + { + "time": 0.3667, + "x": -10.44, + "y": 2.7, + "curve": [ 0.484, -10.44, 0.585, -5.63, 0.484, 2.7, 0.629, -23.62 ] + }, + { + "time": 0.7333, + "x": -2.29, + "y": -26.61, + "curve": [ 0.818, -0.39, 0.962, 1.21, 0.858, -30.17, 0.972, -28.75 ] + }, + { + "time": 1.1, + "x": 1.25, + "y": -28.75, + "curve": [ 1.192, 1.28, 1.234, 0.98, 1.224, -28.75, 1.235, -2.15 ] + }, + { "time": 1.3333 } + ] + }, + "front-shoulder": { + "translate": [ + { + "curve": [ 0.031, -2.22, 0.065, -3.73, 0.02, -3.25, 0.065, -14.74 ] + }, + { + "time": 0.1, + "x": -3.73, + "y": -14.74, + "curve": [ 0.216, -3.73, 0.384, -0.17, 0.216, -14.74, 0.402, -12.51 ] + }, + { + "time": 0.5, + "x": 1.63, + "y": -9.51, + "curve": [ 0.632, 3.69, 0.935, 7.41, 0.585, -6.91, 0.909, 10.86 ] + }, + { + "time": 1.1, + "x": 7.45, + "y": 10.99, + "curve": [ 1.18, 7.46, 1.265, 2.86, 1.193, 11.05, 1.294, 3.38 ] + }, + { "time": 1.3333 } + ] + } + }, + "ik": { + "front-foot-ik": [ + { + "mix": 0, + "curve": [ 0.3, 0, 0.9, 1, 0.3, 0, 0.9, 0 ] + }, + { "time": 1.2 } + ], + "front-leg-ik": [ + { + "mix": 0, + "bendPositive": false, + "curve": [ 0.3, 0, 0.9, 1, 0.3, 0, 0.9, 0 ] + }, + { "time": 1.2, "bendPositive": false } + ], + "rear-foot-ik": [ + { "mix": 0 } + ], + "rear-leg-ik": [ + { "mix": 0, "bendPositive": false } + ] + }, + "events": [ + { "time": 1.2, "name": "footstep" } + ] + }, + "portal": { + "slots": { + "clipping": { + "attachment": [ + { "name": "clipping" } + ] + }, + "front-fist": { + "attachment": [ + { "name": "front-fist-open" } + ] + }, + "mouth": { + "attachment": [ + { "time": 0.9, "name": "mouth-grind" }, + { "time": 2.2667, "name": "mouth-smile" } + ] + }, + "portal-bg": { + "attachment": [ + { "name": "portal-bg" }, + { "time": 3 } + ] + }, + "portal-flare1": { + "attachment": [ + { "time": 1.1, "name": "portal-flare1" }, + { "time": 1.1333, "name": "portal-flare2" }, + { "time": 1.1667, "name": "portal-flare3" }, + { "time": 1.2, "name": "portal-flare1" }, + { "time": 1.2333, "name": "portal-flare2" }, + { "time": 1.2667, "name": "portal-flare1" }, + { "time": 1.3333 } + ] + }, + "portal-flare2": { + "attachment": [ + { "time": 1.1, "name": "portal-flare2" }, + { "time": 1.1333, "name": "portal-flare3" }, + { "time": 1.1667, "name": "portal-flare1" }, + { "time": 1.2, "name": "portal-flare2" }, + { "time": 1.2333, "name": "portal-flare3" }, + { "time": 1.2667 } + ] + }, + "portal-flare3": { + "attachment": [ + { "time": 1.2, "name": "portal-flare3" }, + { "time": 1.2333, "name": "portal-flare2" }, + { "time": 1.2667 } + ] + }, + "portal-flare4": { + "attachment": [ + { "time": 1.2, "name": "portal-flare2" }, + { "time": 1.2333, "name": "portal-flare1" }, + { "time": 1.2667, "name": "portal-flare2" }, + { "time": 1.3333 } + ] + }, + "portal-flare5": { + "attachment": [ + { "time": 1.2333, "name": "portal-flare3" }, + { "time": 1.2667, "name": "portal-flare1" }, + { "time": 1.3333 } + ] + }, + "portal-flare6": { + "attachment": [ + { "time": 1.2667, "name": "portal-flare3" }, + { "time": 1.3333 } + ] + }, + "portal-flare7": { + "attachment": [ + { "time": 1.1333, "name": "portal-flare2" }, + { "time": 1.1667 } + ] + }, + "portal-flare8": { + "attachment": [ + { "time": 1.2, "name": "portal-flare3" }, + { "time": 1.2333, "name": "portal-flare2" }, + { "time": 1.2667 } + ] + }, + "portal-flare9": { + "attachment": [ + { "time": 1.2, "name": "portal-flare2" }, + { "time": 1.2333, "name": "portal-flare3" }, + { "time": 1.2667, "name": "portal-flare1" }, + { "time": 1.3 } + ] + }, + "portal-flare10": { + "attachment": [ + { "time": 1.2, "name": "portal-flare2" }, + { "time": 1.2333, "name": "portal-flare1" }, + { "time": 1.2667, "name": "portal-flare3" }, + { "time": 1.3 } + ] + }, + "portal-shade": { + "attachment": [ + { "name": "portal-shade" }, + { "time": 3 } + ] + }, + "portal-streaks1": { + "attachment": [ + { "name": "portal-streaks1" }, + { "time": 3 } + ] + }, + "portal-streaks2": { + "attachment": [ + { "name": "portal-streaks2" }, + { "time": 3 } + ] + } + }, + "bones": { + "portal-root": { + "translate": [ + { + "x": -458.35, + "y": 105.19, + "curve": [ 0.333, -458.22, 0.669, -457.86, 0.934, 105.19, 0.671, 105.19 ] + }, + { + "time": 1, + "x": -456.02, + "y": 105.19, + "curve": [ 1.339, -454.14, 2.208, -447.28, 1.35, 105.19, 2.05, 105.19 ] + }, + { + "time": 2.4, + "x": -439.12, + "y": 105.19, + "curve": [ 2.463, -436.44, 2.502, -432.92, 2.487, 105.19, 2.512, 105.09 ] + }, + { + "time": 2.6, + "x": -432.58, + "y": 105.09, + "curve": [ 2.784, -431.94, 2.978, -446.6, 2.772, 105.09, 2.933, 105.19 ] + }, + { "time": 3.0333, "x": -457.42, "y": 105.19 } + ], + "scale": [ + { + "x": 0.003, + "y": 0.006, + "curve": [ 0.329, 0.044, 0.347, 0.117, 0.329, 0.097, 0.37, 0.249 ] + }, + { + "time": 0.4, + "x": 0.175, + "y": 0.387, + "curve": [ 0.63, 0.619, 0.663, 0.723, 0.609, 1.338, 0.645, 1.524 ] + }, + { + "time": 0.7333, + "x": 0.724, + "y": 1.52, + "curve": [ 0.798, 0.725, 0.907, 0.647, 0.797, 1.517, 0.895, 1.424 ] + }, + { + "time": 1, + "x": 0.645, + "y": 1.426, + "curve": [ 1.095, 0.643, 1.139, 0.688, 1.089, 1.428, 1.115, 1.513 ] + }, + { + "time": 1.2333, + "x": 0.685, + "y": 1.516, + "curve": [ 1.325, 0.683, 1.508, 0.636, 1.343, 1.518, 1.467, 1.4 ] + }, + { + "time": 1.6, + "x": 0.634, + "y": 1.401, + "curve": [ 1.728, 0.631, 1.946, 0.687, 1.722, 1.402, 1.924, 1.522 ] + }, + { + "time": 2.0667, + "x": 0.688, + "y": 1.522, + "curve": [ 2.189, 0.69, 2.289, 0.649, 2.142, 1.522, 2.265, 1.417 ] + }, + { + "time": 2.4, + "x": 0.65, + "y": 1.426, + "curve": [ 2.494, 0.651, 2.504, 0.766, 2.508, 1.434, 2.543, 1.566 ] + }, + { + "time": 2.6, + "x": 0.766, + "y": 1.568, + "curve": [ 2.73, 0.765, 3.006, 0.098, 2.767, 1.564, 2.997, 0.1 ] + }, + { "time": 3.0333, "x": 0.007, "y": 0.015 } + ] + }, + "portal-streaks1": { + "rotate": [ + {}, + { "time": 3.1667, "value": 1200 } + ], + "translate": [ + { + "x": 15.15, + "curve": [ 0.162, 15.15, 0.432, 12.6, 0.162, 0, 0.432, -3.86 ] + }, + { + "time": 0.6667, + "x": 10.9, + "y": -6.44, + "curve": [ 0.794, 9.93, 0.912, 9.21, 0.794, -7.71, 0.912, -8.66 ] + }, + { + "time": 1, + "x": 9.21, + "y": -8.66, + "curve": [ 1.083, 9.21, 1.25, 21.53, 1.083, -8.66, 1.265, -4.9 ] + }, + { + "time": 1.3333, + "x": 21.53, + "y": -3.19, + "curve": [ 1.5, 21.53, 1.939, 12.3, 1.446, -0.37, 1.9, 6.26 ] + }, + { + "time": 2.0667, + "x": 11.26, + "y": 6.26, + "curve": [ 2.239, 9.85, 2.389, 9.68, 2.208, 6.26, 2.523, 0.51 ] + }, + { + "time": 2.5667, + "x": 9.39, + "y": -0.8, + "curve": [ 2.657, 9.24, 2.842, 9.21, 2.646, -3.2, 2.842, -8.91 ] + }, + { "time": 2.9333, "x": 9.21, "y": -8.91 } + ], + "scale": [ + { + "curve": [ 0.167, 1, 0.5, 1.053, 0.167, 1, 0.5, 1.053 ] + }, + { + "time": 0.6667, + "x": 1.053, + "y": 1.053, + "curve": [ 0.833, 1.053, 1.167, 0.986, 0.833, 1.053, 1.167, 0.986 ] + }, + { + "time": 1.3333, + "x": 0.986, + "y": 0.986, + "curve": [ 1.5, 0.986, 1.833, 1.053, 1.5, 0.986, 1.833, 1.053 ] + }, + { "time": 2, "x": 1.053, "y": 1.053 } + ] + }, + "portal-streaks2": { + "rotate": [ + {}, + { "time": 3.1667, "value": 600 } + ], + "translate": [ + { "x": -2.11 }, + { "time": 1, "x": -2.11, "y": 6.63 }, + { "time": 1.9333, "x": -2.11 } + ], + "scale": [ + { + "x": 1.014, + "y": 1.014, + "curve": [ 0.229, 0.909, 0.501, 0.755, 0.242, 0.892, 0.502, 0.768 ] + }, + { + "time": 0.8667, + "x": 0.745, + "y": 0.745, + "curve": [ 1.282, 0.733, 2.021, 0.699, 1.27, 0.719, 2.071, 0.709 ] + }, + { + "time": 2.2, + "x": 0.7, + "y": 0.704, + "curve": [ 2.315, 0.7, 2.421, 0.794, 2.311, 0.701, 2.485, 0.797 ] + }, + { + "time": 2.5667, + "x": 0.794, + "y": 0.794, + "curve": [ 2.734, 0.794, 2.99, 0.323, 2.714, 0.789, 3.019, 0.341 ] + }, + { "time": 3.1667, "x": 0, "y": 0 } + ] + }, + "portal-shade": { + "translate": [ + { "x": -29.68 } + ], + "scale": [ + { "x": 0.714, "y": 0.714 } + ] + }, + "portal": { + "rotate": [ + {}, + { "time": 3.1667, "value": 600 } + ] + }, + "clipping": { + "translate": [ + { "x": -476.55, "y": 2.27 } + ], + "scale": [ + { "x": 0.983, "y": 1.197 } + ] + }, + "hip": { + "rotate": [ + { + "time": 1.0667, + "value": 22.74, + "curve": [ 1.163, 18.84, 1.77, 8.77 ] + }, + { + "time": 1.9, + "value": 7.82, + "curve": [ 2.271, 5.1, 2.89, 0 ] + }, + { "time": 3.1667 } + ], + "translate": [ + { "x": -899.41, "y": 4.47, "curve": "stepped" }, + { + "time": 1.0667, + "x": -694.16, + "y": 183.28, + "curve": [ 1.091, -602.08, 1.138, -427.59, 1.115, 185.6, 1.171, 133.18 ] + }, + { + "time": 1.2333, + "x": -316.97, + "y": 55.29, + "curve": [ 1.317, -220.27, 1.512, -123.21, 1.271, 8.68, 1.461, -83.18 ] + }, + { + "time": 1.6, + "x": -95.53, + "y": -112.23, + "curve": [ 1.718, -58.25, 2.037, -22.54, 1.858, -166.17, 2.109, -31.4 ] + }, + { + "time": 2.1667, + "x": -14.82, + "y": -31.12, + "curve": [ 2.294, -7.28, 2.442, -7.2, 2.274, -30.6, 2.393, -36.76 ] + }, + { + "time": 2.6, + "x": -7.2, + "y": -36.96, + "curve": [ 2.854, -7.2, 3.071, -11.87, 2.786, -36.27, 3.082, -22.98 ] + }, + { "time": 3.1667, "x": -11.97, "y": -23.15 } + ] + }, + "rear-foot-target": { + "rotate": [ + { "time": 1.0667, "value": 41.6, "curve": "stepped" }, + { + "time": 1.2333, + "value": 41.6, + "curve": [ 1.258, 41.6, 1.379, 35.46 ] + }, + { + "time": 1.4, + "value": 30.09, + "curve": [ 1.412, 27.04, 1.433, 10.65 ] + }, + { "time": 1.4333, "value": -0.28 }, + { "time": 1.6, "value": 2.44 } + ], + "translate": [ + { "x": -899.41, "y": 4.47, "curve": "stepped" }, + { + "time": 1.0667, + "x": -591.13, + "y": 438.46, + "curve": [ 1.076, -539.77, 1.206, -268.1, 1.117, 418.44, 1.21, 333.18 ] + }, + { + "time": 1.2333, + "x": -225.28, + "y": 304.53, + "curve": [ 1.265, -175.22, 1.393, -74.21, 1.296, 226.52, 1.401, 49.61 ] + }, + { + "time": 1.4333, + "x": -52.32, + "y": 0.2, + "curve": [ 1.454, -40.85, 1.616, 40.87, 1.466, 0.17, 1.614, 0.04 ] + }, + { "time": 1.6667, "x": 45.87, "y": 0.01 }, + { "time": 1.9333, "x": 48.87 } + ] + }, + "front-foot-target": { + "rotate": [ + { + "time": 1.0667, + "value": 32.08, + "curve": [ 1.108, 32.08, 1.192, 35.16 ] + }, + { + "time": 1.2333, + "value": 35.16, + "curve": [ 1.258, 35.16, 1.317, 2.23 ] + }, + { + "time": 1.3333, + "value": -4.74, + "curve": [ 1.351, -12.14, 1.429, -34.96 ] + }, + { + "time": 1.6, + "value": -34.77, + "curve": [ 1.765, -34.58, 1.897, -17.25 ] + }, + { "time": 1.9333 } + ], + "translate": [ + { "x": -899.41, "y": 4.47, "curve": "stepped" }, + { + "time": 1.0667, + "x": -533.93, + "y": 363.75, + "curve": [ 1.074, -480.85, 1.18, -261.31, 1.094, 362.3, 1.195, 267.77 ] + }, + { + "time": 1.2333, + "x": -201.23, + "y": 199.93, + "curve": [ 1.269, -161.38, 1.294, -140.32, 1.274, 126.67, 1.308, 77.12 ] + }, + { + "time": 1.3333, + "x": -124.08, + "y": 0.2, + "curve": [ 1.426, -85.6, 1.633, -69.06, 1.45, 0.48, 1.633, 0 ] + }, + { "time": 1.7333, "x": -69.06 } + ] + }, + "torso": { + "rotate": [ + { + "time": 1.0667, + "value": 27.02, + "curve": [ 1.187, 26.86, 1.291, 7.81 ] + }, + { + "time": 1.3333, + "value": -2.62, + "curve": [ 1.402, -19.72, 1.429, -48.64 ] + }, + { + "time": 1.4667, + "value": -56.31, + "curve": [ 1.509, -64.87, 1.62, -77.14 ] + }, + { + "time": 1.7333, + "value": -77.34, + "curve": [ 1.837, -76.89, 1.895, -71.32 ] + }, + { + "time": 2, + "value": -57.52, + "curve": [ 2.104, -43.83, 2.189, -28.59 ] + }, + { + "time": 2.3, + "value": -29.03, + "curve": [ 2.413, -29.48, 2.513, -36.79 ] + }, + { + "time": 2.6667, + "value": -36.79, + "curve": [ 2.814, -36.95, 2.947, -22.88 ] + }, + { "time": 3.1667, "value": -22.88 } + ] + }, + "neck": { + "rotate": [ + { + "time": 1.0667, + "value": -3.57, + "curve": [ 1.146, -3.66, 1.15, -13.5 ] + }, + { + "time": 1.2333, + "value": -13.5, + "curve": [ 1.428, -13.5, 1.443, 11.58 ] + }, + { + "time": 1.5667, + "value": 11.42, + "curve": [ 1.658, 11.3, 1.775, 3.78 ] + }, + { + "time": 1.8667, + "value": 3.78, + "curve": [ 1.92, 3.78, 2.036, 8.01 ] + }, + { + "time": 2.1, + "value": 7.93, + "curve": [ 2.266, 7.72, 2.42, 3.86 ] + }, + { + "time": 2.5333, + "value": 3.86, + "curve": [ 2.783, 3.86, 3.004, 3.78 ] + }, + { "time": 3.1667, "value": 3.78 } + ] + }, + "head": { + "rotate": [ + { + "time": 1.0667, + "value": 16.4, + "curve": [ 1.133, 9.9, 1.207, 1.87 ] + }, + { + "time": 1.3333, + "value": 1.67, + "curve": [ 1.46, 1.56, 1.547, 47.54 ] + }, + { + "time": 1.7333, + "value": 47.55, + "curve": [ 1.897, 47.56, 2.042, 5.68 ] + }, + { + "time": 2.0667, + "value": 0.86, + "curve": [ 2.074, -0.61, 2.086, -2.81 ] + }, + { + "time": 2.1, + "value": -5.31, + "curve": [ 2.145, -13.07, 2.216, -23.65 ] + }, + { + "time": 2.2667, + "value": -23.71, + "curve": [ 2.334, -23.79, 2.426, -13.43 ] + }, + { + "time": 2.4667, + "value": -9.18, + "curve": [ 2.498, -5.91, 2.604, 2.53 ] + }, + { + "time": 2.6667, + "value": 2.52, + "curve": [ 2.738, 2.24, 2.85, -8.76 ] + }, + { + "time": 2.9333, + "value": -8.67, + "curve": [ 3.036, -8.55, 3.09, -7.09 ] + }, + { "time": 3.1667, "value": -6.75 } + ], + "scale": [ + { + "time": 1.3333, + "curve": [ 1.392, 1, 1.526, 1, 1.392, 1, 1.508, 1.043 ] + }, + { + "time": 1.5667, + "x": 0.992, + "y": 1.043, + "curve": [ 1.598, 0.985, 1.676, 0.955, 1.584, 1.043, 1.672, 1.04 ] + }, + { + "time": 1.7333, + "x": 0.954, + "y": 1.029, + "curve": [ 1.843, 0.954, 1.933, 1, 1.825, 1.013, 1.933, 1 ] + }, + { "time": 2 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "time": 0.9, + "value": 39.24, + "curve": [ 0.968, 39.93, 1.267, 85.31 ] + }, + { + "time": 1.4667, + "value": 112.27, + "curve": [ 1.555, 124.24, 1.576, 126.44 ] + }, + { + "time": 1.6333, + "value": 126.44, + "curve": [ 1.782, 126.44, 1.992, 94.55 ] + }, + { + "time": 2.1, + "value": 79.96, + "curve": [ 2.216, 64.26, 2.407, 34.36 ] + }, + { + "time": 2.5667, + "value": 33.38, + "curve": [ 2.815, 31.87, 3.1, 39.2 ] + }, + { "time": 3.1667, "value": 39.2 } + ] + }, + "back-foot-tip": { + "rotate": [ + { + "time": 1.0667, + "value": 56.07, + "curve": [ 1.138, 59.21, 1.192, 59.65 ] + }, + { + "time": 1.2333, + "value": 59.46, + "curve": [ 1.295, 59.17, 1.45, 22.54 ] + }, + { "time": 1.4667, "value": -0.84 } + ] + }, + "front-upper-arm": { + "rotate": [ + { + "time": 1.0667, + "value": 118.03, + "curve": [ 1.075, 93.64, 1.358, -34.03 ] + }, + { + "time": 1.6667, + "value": -33.94, + "curve": [ 1.808, -33.89, 1.879, -25 ] + }, + { + "time": 1.9667, + "value": -25.19, + "curve": [ 2.09, -25.46, 2.312, -34.58 ] + }, + { + "time": 2.3667, + "value": -38.36, + "curve": [ 2.465, -45.18, 2.557, -60.1 ] + }, + { + "time": 2.8333, + "value": -61.1, + "curve": [ 2.843, -61.06, 3.16, -60.87 ] + }, + { "time": 3.1667, "value": -60.87 } + ] + }, + "front-bracer": { + "rotate": [ + { + "time": 1.0667, + "value": 0.66, + "curve": [ 1.108, 0.66, 1.221, 44.95 ] + }, + { + "time": 1.2333, + "value": 49.25, + "curve": [ 1.263, 59.42, 1.342, 68.06 ] + }, + { + "time": 1.3667, + "value": 68.34, + "curve": [ 1.409, 68.8, 1.476, 4.9 ] + }, + { + "time": 1.5, + "value": -2.05, + "curve": [ 1.529, -10.3, 1.695, -15.95 ] + }, + { + "time": 1.7333, + "value": -17.38, + "curve": [ 1.807, -20.1, 1.878, -21.19 ] + }, + { + "time": 1.9333, + "value": -21.08, + "curve": [ 2.073, -20.8, 2.146, -7.63 ] + }, + { + "time": 2.1667, + "value": -3.64, + "curve": [ 2.186, 0.12, 2.275, 15.28 ] + }, + { + "time": 2.3333, + "value": 21.78, + "curve": [ 2.392, 28.31, 2.575, 37.66 ] + }, + { + "time": 2.7, + "value": 39.43, + "curve": [ 2.947, 42.93, 3.02, 42.46 ] + }, + { "time": 3.1667, "value": 42.46 } + ] + }, + "front-thigh": { + "translate": [ + { "time": 1.1, "x": -6.41, "y": 18.23, "curve": "stepped" }, + { "time": 1.1333, "x": -6.41, "y": 18.23 }, + { "time": 1.2, "x": 1.61, "y": 3.66 }, + { "time": 1.2333, "x": 4.5, "y": -3.15 }, + { "time": 1.3667, "x": -3.79, "y": 2.94 }, + { "time": 1.4, "x": -8.37, "y": 8.72 }, + { "time": 1.4333, "x": -11.26, "y": 16.99 }, + { "time": 1.4667, "x": -9.89, "y": 24.73, "curve": "stepped" }, + { "time": 1.8667, "x": -9.89, "y": 24.73 }, + { "time": 2.1 } + ] + }, + "front-foot-tip": { + "rotate": [ + { "time": 1.0667, "value": 42.55, "curve": "stepped" }, + { "time": 1.1333, "value": 42.55 }, + { "time": 1.2333, "value": 17.71 }, + { "time": 1.3667, "value": 3.63 }, + { "time": 1.4333 } + ] + }, + "rear-bracer": { + "rotate": [ + { + "time": 1.0667, + "value": 108.71, + "curve": [ 1.082, 108.29, 1.437, 50.73 ] + }, + { + "time": 1.5667, + "value": 24.87, + "curve": [ 1.62, 14.2, 1.66, -11.74 ] + }, + { + "time": 1.7333, + "value": -11.74, + "curve": [ 1.961, -11.73, 2.172, 1.66 ] + }, + { + "time": 2.2667, + "value": 7.88, + "curve": [ 2.331, 12.13, 2.439, 18.65 ] + }, + { + "time": 2.5333, + "value": 18.72, + "curve": [ 2.788, 18.91, 3.145, -0.3 ] + }, + { "time": 3.1667 } + ] + }, + "front-fist": { + "rotate": [ + { + "time": 1.1, + "value": 6.32, + "curve": [ 1.11, 3.31, 1.153, -5.07 ] + }, + { + "time": 1.2333, + "value": -5.13, + "curve": [ 1.311, -5.19, 1.364, 34.65 ] + }, + { + "time": 1.4667, + "value": 34.53, + "curve": [ 1.574, 34.41, 1.547, -55.78 ] + }, + { + "time": 1.8667, + "value": -54.7, + "curve": [ 1.947, -54.7, 2.03, -53.94 ] + }, + { + "time": 2.1333, + "value": -42.44, + "curve": [ 2.215, -33.42, 2.358, -4.43 ] + }, + { + "time": 2.4, + "value": 0.03, + "curve": [ 2.444, 4.66, 2.536, 8.2 ] + }, + { + "time": 2.6333, + "value": 8.2, + "curve": [ 2.733, 8.19, 2.804, -0.67 ] + }, + { + "time": 2.9, + "value": -0.82, + "curve": [ 3.127, -1.16, 3.093, 0 ] + }, + { "time": 3.1667 } + ] + }, + "gun": { + "rotate": [ + { + "time": 1.2667, + "curve": [ 1.35, 0, 1.549, 7.49 ] + }, + { + "time": 1.6, + "value": 9.5, + "curve": [ 1.663, 12.02, 1.846, 19.58 ] + }, + { + "time": 1.9333, + "value": 19.43, + "curve": [ 1.985, 19.4, 2.057, 2.98 ] + }, + { + "time": 2.2, + "value": 2.95, + "curve": [ 2.304, 3.55, 2.458, 10.8 ] + }, + { + "time": 2.5, + "value": 10.8, + "curve": [ 2.642, 10.8, 2.873, -2.54 ] + }, + { + "time": 2.9333, + "value": -2.55, + "curve": [ 3.09, -2.57, 3.08, 0 ] + }, + { "time": 3.1667 } + ] + }, + "hair2": { + "rotate": [ + { + "time": 1.0667, + "value": 26.19, + "curve": [ 1.158, 26.19, 1.368, 26 ] + }, + { + "time": 1.4333, + "value": 24.43, + "curve": [ 1.534, 22.03, 2, -29.14 ] + }, + { + "time": 2.2, + "value": -29.14, + "curve": [ 2.292, -29.14, 2.475, 6.71 ] + }, + { + "time": 2.5667, + "value": 6.71, + "curve": [ 2.675, 6.71, 2.814, -5.06 ] + }, + { + "time": 2.9, + "value": -5.06, + "curve": [ 2.973, -5.06, 3.123, 0 ] + }, + { "time": 3.1667 } + ] + }, + "hair4": { + "rotate": [ + { + "time": 1.0667, + "value": 5.21, + "curve": [ 1.108, 5.21, 1.192, 26.19 ] + }, + { + "time": 1.2333, + "value": 26.19, + "curve": [ 1.317, 26.19, 1.483, 10.63 ] + }, + { + "time": 1.5667, + "value": 10.63, + "curve": [ 1.627, 10.63, 1.642, 17.91 ] + }, + { + "time": 1.7, + "value": 17.94, + "curve": [ 1.761, 17.97, 1.774, 8.22 ] + }, + { + "time": 1.8, + "value": 3.33, + "curve": [ 1.839, -4.21, 1.95, -22.67 ] + }, + { + "time": 2, + "value": -22.67, + "curve": [ 2.025, -22.67, 2.123, -21.86 ] + }, + { + "time": 2.1667, + "value": -18.71, + "curve": [ 2.228, -14.31, 2.294, -0.3 ] + }, + { + "time": 2.3667, + "value": 6.36, + "curve": [ 2.433, 12.45, 2.494, 19.21 ] + }, + { + "time": 2.6, + "value": 19.21, + "curve": [ 2.729, 19.21, 2.854, 6.75 ] + }, + { + "time": 2.9333, + "value": 4.62, + "curve": [ 3.09, 0.45, 3.062, 0 ] + }, + { "time": 3.1667 } + ] + }, + "hair3": { + "rotate": [ + { + "time": 1.4333, + "curve": [ 1.45, 0, 1.452, 11.29 ] + }, + { + "time": 1.5, + "value": 11.21, + "curve": [ 1.596, 11.06, 1.573, -14.17 ] + }, + { + "time": 1.7333, + "value": -20.4, + "curve": [ 1.851, -24.98, 1.943, -28.45 ] + }, + { + "time": 2.2, + "value": -28.75, + "curve": [ 2.317, -28.75, 2.55, 7.04 ] + }, + { + "time": 2.6667, + "value": 7.04, + "curve": [ 2.792, 7.04, 2.885, -5.19 ] + }, + { + "time": 2.9667, + "value": -5.19, + "curve": [ 3.037, -5.19, 3.096, 0 ] + }, + { "time": 3.1667 } + ] + }, + "hair1": { + "rotate": [ + { + "time": 1.2333, + "curve": [ 1.283, 0, 1.349, 3.99 ] + }, + { + "time": 1.4333, + "value": 6.58, + "curve": [ 1.497, 8.54, 1.683, 9.35 ] + }, + { + "time": 1.7667, + "value": 9.35, + "curve": [ 1.825, 9.35, 1.945, -8.71 ] + }, + { + "time": 2, + "value": -11.15, + "curve": [ 2.058, -13.71, 2.2, -14.97 ] + }, + { + "time": 2.2667, + "value": -14.97, + "curve": [ 2.367, -14.97, 2.567, 18.77 ] + }, + { + "time": 2.6667, + "value": 18.77, + "curve": [ 2.733, 18.77, 2.817, 8.29 ] + }, + { + "time": 2.8667, + "value": 6.51, + "curve": [ 2.988, 2.17, 3.058, 0 ] + }, + { "time": 3.1667 } + ] + }, + "flare1": { + "rotate": [ + { "time": 1.1, "value": 8.2 } + ], + "translate": [ + { "time": 1.1, "x": -19.97, "y": 149.68 }, + { "time": 1.2, "x": 3.85, "y": 152.43 }, + { "time": 1.2333, "x": -15.42, "y": 152.29 } + ], + "scale": [ + { + "time": 1.1, + "x": 0.805, + "y": 0.805, + "curve": [ 1.119, 0.763, 1.16, 1.162, 1.117, 0.805, 1.15, 0.605 ] + }, + { + "time": 1.1667, + "x": 1.279, + "y": 0.605, + "curve": [ 1.177, 1.47, 1.192, 2.151, 1.175, 0.605, 1.192, 0.911 ] + }, + { + "time": 1.2, + "x": 2.151, + "y": 0.911, + "curve": [ 1.208, 2.151, 1.231, 1.668, 1.208, 0.911, 1.227, 0.844 ] + }, + { + "time": 1.2333, + "x": 1.608, + "y": 0.805, + "curve": [ 1.249, 1.205, 1.283, 0.547, 1.254, 0.685, 1.283, 0.416 ] + }, + { "time": 1.3, "x": 0.547, "y": 0.416 } + ], + "shear": [ + { "time": 1.1, "y": 4.63 }, + { "time": 1.2333, "x": -5.74, "y": 4.63 } + ] + }, + "flare2": { + "rotate": [ + { "time": 1.1, "value": 12.29 } + ], + "translate": [ + { "time": 1.1, "x": -8.63, "y": 132.96 }, + { "time": 1.2, "x": 4.35, "y": 132.93 } + ], + "scale": [ + { "time": 1.1, "x": 0.864, "y": 0.864 }, + { "time": 1.1667, "x": 0.945, "y": 0.945 }, + { "time": 1.2, "x": 1.511, "y": 1.081 } + ], + "shear": [ + { "time": 1.1, "y": 24.03 } + ] + }, + "flare3": { + "rotate": [ + { "time": 1.1667, "value": 2.88 } + ], + "translate": [ + { "time": 1.1667, "x": 3.24, "y": 114.81 } + ], + "scale": [ + { "time": 1.1667, "x": 0.668, "y": 0.668 } + ], + "shear": [ + { "time": 1.1667, "y": 38.59 } + ] + }, + "flare4": { + "rotate": [ + { "time": 1.1667, "value": -8.64 } + ], + "translate": [ + { "time": 1.1667, "x": -3.82, "y": 194.06 }, + { "time": 1.2667, "x": -1.82, "y": 198.47, "curve": "stepped" }, + { "time": 1.3, "x": -1.94, "y": 187.81 } + ], + "scale": [ + { "time": 1.1667, "x": 0.545, "y": 0.545 }, + { "time": 1.2667, "x": 0.757, "y": 0.757 } + ], + "shear": [ + { "time": 1.1667, "x": 7.42, "y": -22.04 } + ] + }, + "flare5": { + "translate": [ + { "time": 1.2, "x": -11.17, "y": 176.42 }, + { "time": 1.2333, "x": -8.56, "y": 179.04, "curve": "stepped" }, + { "time": 1.3, "x": -14.57, "y": 168.69 } + ], + "scale": [ + { "time": 1.2333, "x": 1.146 }, + { "time": 1.3, "x": 0.703, "y": 0.61 } + ], + "shear": [ + { "time": 1.2, "x": 6.9 } + ] + }, + "flare6": { + "rotate": [ + { "time": 1.2333, "value": -5.36 }, + { "time": 1.2667, "value": -0.54 } + ], + "translate": [ + { "time": 1.2333, "x": 14.52, "y": 204.67 }, + { "time": 1.2667, "x": 19.16, "y": 212.9, "curve": "stepped" }, + { "time": 1.3, "x": 9.23, "y": 202.85 } + ], + "scale": [ + { "time": 1.2333, "x": 0.777, "y": 0.49 }, + { "time": 1.2667, "x": 0.777, "y": 0.657 }, + { "time": 1.3, "x": 0.475, "y": 0.401 } + ] + }, + "flare7": { + "rotate": [ + { "time": 1.1, "value": 5.98 }, + { "time": 1.1333, "value": 32.82 } + ], + "translate": [ + { "time": 1.1, "x": -6.34, "y": 112.98 }, + { "time": 1.1333, "x": 2.66, "y": 111.6 } + ], + "scale": [ + { "time": 1.1, "x": 0.588, "y": 0.588 } + ], + "shear": [ + { "time": 1.1333, "x": -19.93 } + ] + }, + "flare8": { + "rotate": [ + { "time": 1.2333, "value": -6.85 } + ], + "translate": [ + { "time": 1.1667, "x": 66.67, "y": 125.52, "curve": "stepped" }, + { "time": 1.2, "x": 58.24, "y": 113.53, "curve": "stepped" }, + { "time": 1.2333, "x": 40.15, "y": 114.69 } + ], + "scale": [ + { "time": 1.1667, "x": 1.313, "y": 1.203 }, + { "time": 1.2333, "x": 1.038, "y": 0.95 } + ], + "shear": [ + { "time": 1.2, "y": -13.01 } + ] + }, + "flare9": { + "rotate": [ + { "time": 1.1667, "value": 2.9 } + ], + "translate": [ + { "time": 1.1667, "x": 28.45, "y": 151.35, "curve": "stepped" }, + { "time": 1.2, "x": 48.8, "y": 191.09, "curve": "stepped" }, + { "time": 1.2333, "x": 52, "y": 182.52, "curve": "stepped" }, + { "time": 1.2667, "x": 77.01, "y": 195.96 } + ], + "scale": [ + { "time": 1.1667, "x": 0.871, "y": 1.073 }, + { "time": 1.2, "x": 0.927, "y": 0.944 }, + { "time": 1.2333, "x": 1.165, "y": 1.336 } + ], + "shear": [ + { "time": 1.1667, "x": 7.95, "y": 25.48 } + ] + }, + "flare10": { + "rotate": [ + { "time": 1.1667, "value": 2.18 } + ], + "translate": [ + { "time": 1.1667, "x": 55.64, "y": 137.64, "curve": "stepped" }, + { "time": 1.2, "x": 90.49, "y": 151.07, "curve": "stepped" }, + { "time": 1.2333, "x": 114.06, "y": 153.05, "curve": "stepped" }, + { "time": 1.2667, "x": 90.44, "y": 164.61 } + ], + "scale": [ + { "time": 1.1667, "x": 2.657, "y": 0.891 }, + { "time": 1.2, "x": 3.314, "y": 1.425 }, + { "time": 1.2333, "x": 2.871, "y": 0.924 }, + { "time": 1.2667, "x": 2.317, "y": 0.775 } + ], + "shear": [ + { "time": 1.1667, "x": -1.35 } + ] + }, + "torso2": { + "rotate": [ + { + "time": 1, + "curve": [ 1.117, 0, 1.255, 24.94 ] + }, + { + "time": 1.4, + "value": 24.94, + "curve": [ 1.477, 24.94, 1.59, -17.62 ] + }, + { + "time": 1.6333, + "value": -19.48, + "curve": [ 1.717, -23.1, 1.784, -26.12 ] + }, + { + "time": 1.9333, + "value": -26.14, + "curve": [ 2.067, -26.15, 2.158, 4.3 ] + }, + { + "time": 2.3, + "value": 4.22, + "curve": [ 2.45, 4.13, 2.579, -1.76 ] + }, + { + "time": 2.7333, + "value": -1.8, + "curve": [ 2.816, -1.82, 2.857, -2.94 ] + }, + { + "time": 2.9333, + "value": -2.99, + "curve": [ 3.056, -3.08, 3.09, 0 ] + }, + { "time": 3.1667 } + ] + }, + "torso3": { + "rotate": [ + { + "time": 1.3, + "curve": [ 1.352, 0, 1.408, 6.47 ] + }, + { + "time": 1.4667, + "value": 6.43, + "curve": [ 1.55, 6.39, 1.723, -5.05 ] + }, + { + "time": 1.7333, + "value": -5.53, + "curve": [ 1.782, -7.72, 1.843, -16.94 ] + }, + { + "time": 1.9667, + "value": -16.86, + "curve": [ 2.111, -16.78, 2.259, -3.97 ] + }, + { + "time": 2.4, + "value": -2.43, + "curve": [ 2.525, -1.12, 2.639, -0.5 ] + }, + { + "time": 2.7333, + "value": -0.49, + "curve": [ 2.931, -0.47, 2.999, -2.15 ] + }, + { "time": 3.1667, "value": -2.15 } + ] + }, + "head-control": { + "translate": [ + { + "time": 1.2333, + "curve": [ 1.25, 0, 1.474, 6.89, 1.25, 0, 1.496, 0.98 ] + }, + { + "time": 1.6667, + "x": 11.99, + "y": -6.42, + "curve": [ 1.743, 14.01, 1.86, 14.33, 1.785, -11.55, 1.86, -27.1 ] + }, + { + "time": 1.9667, + "x": 13.91, + "y": -26.88, + "curve": [ 2.074, 13.49, 2.244, 8.13, 2.074, -26.65, 2.215, -21.78 ] + }, + { + "time": 2.3, + "x": 6.07, + "y": -16.64, + "curve": [ 2.416, 1.84, 2.497, -1.41, 2.417, -9.57, 2.526, -1.72 ] + }, + { + "time": 2.5667, + "x": -3.78, + "y": -1.71, + "curve": [ 2.661, -6.98, 2.76, -8.76, 2.692, -1.68, 2.821, -15.75 ] + }, + { + "time": 2.9, + "x": -8.32, + "y": -16.7, + "curve": [ 2.962, -8.12, 3.082, -0.04, 2.958, -17.39, 3.089, 0 ] + }, + { "time": 3.1667 } + ] + }, + "front-shoulder": { + "translate": [ + { + "time": 1.3333, + "curve": [ 1.488, 0, 1.717, 0.21, 1.488, 0, 1.688, -30.29 ] + }, + { + "time": 1.9, + "x": 0.83, + "y": -30.29, + "curve": [ 2.078, 1.43, 2.274, 2.88, 2.071, -30.29, 2.289, 4.48 ] + }, + { + "time": 2.4333, + "x": 2.89, + "y": 4.59, + "curve": [ 2.604, 2.89, 2.677, -0.68, 2.57, 4.7, 2.694, -2.43 ] + }, + { + "time": 2.7667, + "x": -0.67, + "y": -2.47, + "curve": [ 2.866, -0.67, 2.986, -0.07, 2.882, -2.47, 3.036, -0.06 ] + }, + { "time": 3.1667 } + ] + } + }, + "ik": { + "rear-leg-ik": [ + { "time": 3.1667, "softness": 10, "bendPositive": false } + ] + } + }, + "run": { + "slots": { + "mouth": { + "attachment": [ + { "name": "mouth-grind" } + ] + } + }, + "bones": { + "front-thigh": { + "translate": [ + { + "x": -5.14, + "y": 11.13, + "curve": [ 0.033, -7.77, 0.112, -9.03, 0.034, 11.13, 0.108, 9.74 ] + }, + { + "time": 0.1667, + "x": -9.03, + "y": 7.99, + "curve": [ 0.23, -9.05, 0.314, -1.34, 0.236, 5.93, 0.28, 3.22 ] + }, + { + "time": 0.3333, + "x": 0.41, + "y": 3.19, + "curve": [ 0.352, 2.09, 0.449, 11.16, 0.384, 3.16, 0.449, 4.98 ] + }, + { + "time": 0.5, + "x": 11.17, + "y": 6.76, + "curve": [ 0.571, 10.79, 0.621, -1.83, 0.542, 8.21, 0.625, 11.13 ] + }, + { "time": 0.6667, "x": -5.14, "y": 11.13 } + ] + }, + "torso": { + "rotate": [ + { + "value": -37.66, + "curve": [ 0.034, -37.14, 0.107, -36.21 ] + }, + { + "time": 0.1333, + "value": -36.21, + "curve": [ 0.158, -36.21, 0.209, -38.8 ] + }, + { + "time": 0.2333, + "value": -38.79, + "curve": [ 0.259, -38.78, 0.313, -38.03 ] + }, + { + "time": 0.3333, + "value": -37.66, + "curve": [ 0.357, -37.21, 0.4, -36.21 ] + }, + { + "time": 0.4333, + "value": -36.21, + "curve": [ 0.458, -36.21, 0.539, -38.8 ] + }, + { + "time": 0.5667, + "value": -38.8, + "curve": [ 0.592, -38.8, 0.645, -38 ] + }, + { "time": 0.6667, "value": -37.66 } + ] + }, + "rear-thigh": { + "translate": [ + { + "x": -16.41, + "y": 1.55, + "curve": [ 0.013, -15.67, 0.183, -8.55, 0.03, 2.39, 0.183, 6.17 ] + }, + { + "time": 0.2333, + "x": -8.55, + "y": 6.17, + "curve": [ 0.308, -8.55, 0.492, -19.75, 0.308, 6.17, 0.492, 0.61 ] + }, + { + "time": 0.5667, + "x": -19.75, + "y": 0.61, + "curve": [ 0.592, -19.75, 0.641, -18.06, 0.592, 0.61, 0.632, 0.78 ] + }, + { "time": 0.6667, "x": -16.41, "y": 1.55 } + ] + }, + "front-upper-arm": { + "rotate": [ + { + "value": -39.03, + "curve": [ 0.051, -0.1, 0.145, 88.36 ] + }, + { + "time": 0.2333, + "value": 88.36, + "curve": [ 0.28, 88.76, 0.324, 59.52 ] + }, + { + "time": 0.3333, + "value": 51.13, + "curve": [ 0.358, 30.2, 0.445, -74.91 ] + }, + { + "time": 0.5667, + "value": -75.82, + "curve": [ 0.599, -76.06, 0.642, -55.72 ] + }, + { "time": 0.6667, "value": -39.03 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": 20.54, + "curve": [ 0.052, 11.42, 0.089, 0.13 ] + }, + { + "time": 0.1333, + "value": 0.15, + "curve": [ 0.186, 0.17, 0.221, 26.29 ] + }, + { + "time": 0.2333, + "value": 32.37, + "curve": [ 0.247, 39.19, 0.286, 61.45 ] + }, + { + "time": 0.3333, + "value": 61.58, + "curve": [ 0.371, 61.69, 0.42, 55.79 ] + }, + { "time": 0.4667, "value": 49.68 }, + { "time": 0.6667, "value": 20.54 } + ] + }, + "front-fist": { + "rotate": [ + { + "value": -36.16, + "curve": [ 0.014, -38.8, 0.036, -43.27 ] + }, + { + "time": 0.0667, + "value": -43.37, + "curve": [ 0.102, -43.49, 0.182, -28.46 ] + }, + { + "time": 0.2, + "value": -23.04, + "curve": [ 0.23, -13.87, 0.264, 3.86 ] + }, + { + "time": 0.3333, + "value": 3.7, + "curve": [ 0.38, 3.64, 0.535, -16.22 ] + }, + { "time": 0.5667, "value": -21.29 }, + { "time": 0.6667, "value": -36.16 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "value": 40.5, + "curve": [ 0.028, 23.74, 0.128, -79.86 ] + }, + { + "time": 0.2333, + "value": -79.87, + "curve": [ 0.38, -79.88, 0.403, 63.25 ] + }, + { + "time": 0.5667, + "value": 64.13, + "curve": [ 0.607, 64.35, 0.644, 53.1 ] + }, + { "time": 0.6667, "value": 40.5 } + ], + "translate": [ + { + "x": -3.79, + "y": -0.77, + "curve": [ 0.044, -4.58, 0.169, -5.48, 0.044, 0.93, 0.169, 2.85 ] + }, + { + "time": 0.2333, + "x": -5.48, + "y": 2.85, + "curve": [ 0.346, -5.48, 0.475, -2.68, 0.346, 2.85, 0.475, -3.13 ] + }, + { + "time": 0.5667, + "x": -2.68, + "y": -3.13, + "curve": [ 0.611, -2.68, 0.642, -3.34, 0.611, -3.13, 0.642, -1.73 ] + }, + { "time": 0.6667, "x": -3.79, "y": -0.77 } + ] + }, + "rear-bracer": { + "rotate": [ + { "value": 28.28 }, + { + "time": 0.2333, + "value": -11.12, + "curve": [ 0.252, -14.12, 0.297, -19.37 ] + }, + { + "time": 0.3333, + "value": -19.38, + "curve": [ 0.435, -19.41, 0.522, 38.96 ] + }, + { + "time": 0.5667, + "value": 38.87, + "curve": [ 0.619, 38.76, 0.644, 32.01 ] + }, + { "time": 0.6667, "value": 28.28 } + ] + }, + "neck": { + "rotate": [ + { + "value": 11.88, + "curve": [ 0.024, 11.4, 0.075, 9.74 ] + }, + { + "time": 0.1, + "value": 9.74, + "curve": [ 0.125, 9.74, 0.208, 13.36 ] + }, + { + "time": 0.2333, + "value": 13.36, + "curve": [ 0.258, 13.36, 0.321, 12.2 ] + }, + { + "time": 0.3333, + "value": 11.88, + "curve": [ 0.365, 11.06, 0.408, 9.72 ] + }, + { + "time": 0.4333, + "value": 9.72, + "curve": [ 0.458, 9.72, 0.542, 13.36 ] + }, + { + "time": 0.5667, + "value": 13.36, + "curve": [ 0.592, 13.36, 0.636, 12.48 ] + }, + { "time": 0.6667, "value": 11.88 } + ] + }, + "head": { + "rotate": [ + { + "value": 13.14, + "curve": [ 0.02, 11.99, 0.039, 8.94 ] + }, + { + "time": 0.0667, + "value": 8.93, + "curve": [ 0.122, 8.9, 0.232, 15.8 ] + }, + { + "time": 0.2667, + "value": 15.81, + "curve": [ 0.325, 15.82, 0.357, 8.95 ] + }, + { + "time": 0.4, + "value": 8.93, + "curve": [ 0.444, 8.91, 0.568, 15.8 ] + }, + { + "time": 0.6, + "value": 15.77, + "curve": [ 0.632, 15.74, 0.649, 14.05 ] + }, + { "time": 0.6667, "value": 13.14 } + ], + "scale": [ + { + "curve": [ 0.014, 0.996, 0.068, 0.991, 0.027, 1.005, 0.083, 1.012 ] + }, + { + "time": 0.1, + "x": 0.991, + "y": 1.012, + "curve": [ 0.128, 0.991, 0.205, 1.018, 0.128, 1.012, 0.197, 0.988 ] + }, + { + "time": 0.2333, + "x": 1.018, + "y": 0.988, + "curve": [ 0.272, 1.018, 0.305, 1.008, 0.262, 0.988, 0.311, 0.995 ] + }, + { + "time": 0.3333, + "curve": [ 0.351, 0.995, 0.417, 0.987, 0.359, 1.006, 0.417, 1.013 ] + }, + { + "time": 0.4333, + "x": 0.987, + "y": 1.013, + "curve": [ 0.467, 0.987, 0.533, 1.02, 0.467, 1.013, 0.533, 0.989 ] + }, + { + "time": 0.5667, + "x": 1.02, + "y": 0.989, + "curve": [ 0.592, 1.02, 0.652, 1.004, 0.592, 0.989, 0.644, 0.996 ] + }, + { "time": 0.6667 } + ] + }, + "gun": { + "rotate": [ + { + "value": 12.36, + "curve": [ 0.022, 16.28, 0.087, 20.25 ] + }, + { + "time": 0.1333, + "value": 20.19, + "curve": [ 0.168, 20.32, 0.254, -8.82 ] + }, + { + "time": 0.2667, + "value": -11.88, + "curve": [ 0.291, -17.91, 0.344, -24.11 ] + }, + { + "time": 0.4, + "value": -23.88, + "curve": [ 0.448, -23.69, 0.533, -15.47 ] + }, + { "time": 0.5667, "value": -8.69 }, + { "time": 0.6667, "value": 12.36 } + ] + }, + "hip": { + "rotate": [ + { "value": -8.24 } + ], + "translate": [ + { + "x": -3.6, + "y": -34.1, + "curve": [ 0.042, -3.84, 0.118, 7.62, 0.042, -33.74, 0.112, 20.55 ] + }, + { + "time": 0.1667, + "x": 7.61, + "y": 20.36, + "curve": [ 0.194, 7.6, 0.21, 5.06, 0.204, 20.65, 0.217, -8.69 ] + }, + { + "time": 0.2333, + "x": 1.68, + "y": -18.48, + "curve": [ 0.279, -4.99, 0.297, -5.64, 0.254, -31.08, 0.292, -34.55 ] + }, + { + "time": 0.3333, + "x": -5.76, + "y": -35, + "curve": [ 0.379, -5.9, 0.451, 6.8, 0.384, -35.56, 0.428, 17.6 ] + }, + { + "time": 0.5, + "x": 6.61, + "y": 17.01, + "curve": [ 0.536, 6.47, 0.545, 3.56, 0.533, 16.75, 0.548, -8.71 ] + }, + { + "time": 0.5667, + "x": 0.35, + "y": -18.81, + "curve": [ 0.597, -4.07, 0.642, -3.45, 0.584, -28.58, 0.642, -34.32 ] + }, + { "time": 0.6667, "x": -3.6, "y": -34.1 } + ] + }, + "front-foot-target": { + "rotate": [ + { + "value": -62.54, + "curve": [ 0.015, -74.19, 0.056, -103.19 ] + }, + { + "time": 0.0667, + "value": -111.08, + "curve": [ 0.092, -129.44, 0.189, -146.55 ] + }, + { + "time": 0.2333, + "value": -146.32, + "curve": [ 0.285, -146.06, 0.32, -125.1 ] + }, + { "time": 0.3333, "value": -117.24 }, + { + "time": 0.5, + "value": -35.07, + "curve": [ 0.522, -28.64, 0.546, -24.84 ] + }, + { + "time": 0.5667, + "value": -24.9, + "curve": [ 0.595, -25, 0.623, -40.82 ] + }, + { "time": 0.6667, "value": -62.54 } + ], + "translate": [ + { "x": 16.34, "y": 0.18 }, + { + "time": 0.0667, + "x": -101.43, + "y": 8.04, + "curve": [ 0.085, -131.35, 0.129, -207.69, 0.08, 14.9, 0.124, 113.28 ] + }, + { + "time": 0.1667, + "x": -207.92, + "y": 145.81, + "curve": [ 0.196, -208.13, 0.21, -202.91, 0.186, 160.26, 0.206, 163.48 ] + }, + { + "time": 0.2333, + "x": -189.94, + "y": 163.85, + "curve": [ 0.27, -169.94, 0.31, -126.19, 0.269, 164.35, 0.316, 85.97 ] + }, + { + "time": 0.3333, + "x": -90.56, + "y": 78.57, + "curve": [ 0.355, -57.99, 0.376, -29.14, 0.35, 71.55, 0.376, 66.4 ] + }, + { + "time": 0.4, + "x": 2.87, + "y": 66.38, + "curve": [ 0.412, 19.24, 0.469, 90.73, 0.429, 66.37, 0.469, 70.66 ] + }, + { + "time": 0.5, + "x": 117.18, + "y": 70.46, + "curve": [ 0.522, 136.24, 0.542, 151.33, 0.539, 70.2, 0.555, 38.25 ] + }, + { + "time": 0.5667, + "x": 151.49, + "y": 25.29, + "curve": [ 0.578, 146.76, 0.586, 133.13, 0.572, 19.7, 0.582, 12.23 ] + }, + { "time": 0.6, "x": 115.02, "y": 0.1 }, + { "time": 0.6667, "x": 16.34, "y": 0.18 } + ] + }, + "front-leg-target": { + "translate": [ + { "x": -13.95, "y": -30.34 } + ] + }, + "rear-foot-target": { + "rotate": [ + { "value": 18.55 }, + { + "time": 0.2333, + "value": 167.84, + "curve": [ 0.246, 153.66, 0.256, 129.74 ] + }, + { + "time": 0.2667, + "value": 124.32, + "curve": [ 0.296, 124.43, 0.313, 129.93 ] + }, + { + "time": 0.3667, + "value": 129.87, + "curve": [ 0.421, 128.32, 0.519, 0.98 ] + }, + { + "time": 0.5667, + "curve": [ 0.6, 0.27, 0.642, 4.73 ] + }, + { "time": 0.6667, "value": 18.55 } + ], + "translate": [ + { + "x": -176.39, + "y": 134.12, + "curve": [ 0.018, -142.26, 0.054, -94.41, 0.01, 120.96, 0.044, 84.08 ] + }, + { + "time": 0.0667, + "x": -73.56, + "y": 76.68, + "curve": [ 0.086, -42.82, 0.194, 101.2, 0.098, 66.73, 0.198, 60.88 ] + }, + { "time": 0.2333, "x": 98.32, "y": 32.17 }, + { "time": 0.2667, "x": 49.13, "y": -0.63 }, + { + "time": 0.4, + "x": -147.9, + "y": 0.32, + "curve": [ 0.414, -168.78, 0.478, -284.76, 0.43, 30.09, 0.478, 129.14 ] + }, + { + "time": 0.5, + "x": -283.37, + "y": 167.12, + "curve": [ 0.526, -285.66, 0.548, -280.54, 0.516, 194.84, 0.55, 216.53 ] + }, + { + "time": 0.5667, + "x": -266.98, + "y": 216.12, + "curve": [ 0.581, -256.27, 0.643, -206.54, 0.61, 214.82, 0.65, 145.33 ] + }, + { "time": 0.6667, "x": -176.39, "y": 134.12 } + ] + }, + "rear-leg-target": { + "translate": [ + { "x": 85, "y": -33.59 } + ] + }, + "back-foot-tip": { + "rotate": [ + { + "value": -147.04, + "curve": [ 0.033, -113.4, 0.161, 44.34 ] + }, + { + "time": 0.2333, + "value": 43.48, + "curve": [ 0.24, 43.41, 0.282, 35.72 ] + }, + { + "time": 0.3, + "value": 0.29, + "curve": [ 0.347, 0.28, 0.396, 4.27 ] + }, + { + "time": 0.4, + "curve": [ 0.424, -23.8, 0.525, -181.39 ] + }, + { + "time": 0.5667, + "value": -181.39, + "curve": [ 0.592, -181.39, 0.642, -169.09 ] + }, + { "time": 0.6667, "value": -147.04 } + ] + }, + "front-foot-tip": { + "rotate": [ + { + "value": -0.25, + "curve": [ 0.008, -0.25, 0.056, 1.73 ] + }, + { + "time": 0.0667, + "value": -7.68, + "curve": [ 0.075, -43.13, 0.15, -130.44 ] + }, + { + "time": 0.2, + "value": -130.08, + "curve": [ 0.239, -129.79, 0.272, -126.8 ] + }, + { + "time": 0.3, + "value": -116.24, + "curve": [ 0.333, -103.91, 0.348, -86.1 ] + }, + { + "time": 0.3667, + "value": -71.08, + "curve": [ 0.386, -55.25, 0.415, -32.44 ] + }, + { + "time": 0.4333, + "value": -21.63, + "curve": [ 0.47, -0.01, 0.542, 33.42 ] + }, + { + "time": 0.5667, + "value": 33.2, + "curve": [ 0.622, 32.7, 0.569, 0.64 ] + }, + { "time": 0.6667, "value": -0.25 } + ] + }, + "hair1": { + "rotate": [ + { + "value": -6.81, + "curve": [ 0.087, -6.81, 0.143, -5.75 ] + }, + { + "time": 0.1667, + "value": -4.3, + "curve": [ 0.183, -3.28, 0.209, 2.79 ] + }, + { + "time": 0.2333, + "value": 2.78, + "curve": [ 0.262, 2.77, 0.305, -6.63 ] + }, + { + "time": 0.3333, + "value": -6.64, + "curve": [ 0.419, -6.68, 0.49, -4.84 ] + }, + { + "time": 0.5, + "value": -4.38, + "curve": [ 0.518, -3.56, 0.574, 2.32 ] + }, + { + "time": 0.6, + "value": 2.33, + "curve": [ 0.643, 2.35, 0.633, -6.81 ] + }, + { "time": 0.6667, "value": -6.81 } + ] + }, + "hair2": { + "rotate": [ + { + "value": -6.81, + "curve": [ 0.014, -3.17, 0.109, 43.93 ] + }, + { + "time": 0.1333, + "value": 43.95, + "curve": [ 0.177, 43.97, 0.192, -13.76 ] + }, + { + "time": 0.2667, + "value": -13.83, + "curve": [ 0.302, -13.72, 0.322, -8.86 ] + }, + { + "time": 0.3333, + "value": -6.6, + "curve": [ 0.349, -3.5, 0.436, 41.1 ] + }, + { + "time": 0.4667, + "value": 41.05, + "curve": [ 0.51, 40.99, 0.549, -14.06 ] + }, + { + "time": 0.6, + "value": -14.18, + "curve": [ 0.63, -14.26, 0.656, -9.04 ] + }, + { "time": 0.6667, "value": -6.81 } + ] + }, + "hair3": { + "rotate": [ + { + "value": -6.81, + "curve": [ 0.079, -6.83, 0.108, 0.3 ] + }, + { + "time": 0.1333, + "value": 1.96, + "curve": [ 0.177, 4.89, 0.208, 6.28 ] + }, + { + "time": 0.2333, + "value": 6.29, + "curve": [ 0.313, 6.31, 0.383, 3.49 ] + }, + { + "time": 0.4, + "value": 2.58, + "curve": [ 0.442, 0.28, 0.523, -6.81 ] + }, + { "time": 0.6, "value": -6.81 } + ] + }, + "hair4": { + "rotate": [ + { + "value": -6.81, + "curve": [ 0.011, -4.06, 0.108, 24.92 ] + }, + { + "time": 0.1333, + "value": 24.92, + "curve": [ 0.158, 24.92, 0.208, -10.62 ] + }, + { + "time": 0.2333, + "value": -10.62, + "curve": [ 0.254, -10.62, 0.312, -9.73 ] + }, + { + "time": 0.3333, + "value": -6.4, + "curve": [ 0.356, -2.95, 0.438, 24.93 ] + }, + { + "time": 0.4667, + "value": 24.93, + "curve": [ 0.492, 24.93, 0.575, -9.78 ] + }, + { + "time": 0.6, + "value": -9.78, + "curve": [ 0.617, -9.78, 0.655, -8.63 ] + }, + { "time": 0.6667, "value": -6.81 } + ] + }, + "torso2": { + "rotate": [ + { + "value": 3.5, + "curve": [ 0.07, 3.51, 0.075, 8.69 ] + }, + { + "time": 0.1, + "value": 8.69, + "curve": [ 0.139, 8.69, 0.214, 6.9 ] + }, + { + "time": 0.2333, + "value": 6.33, + "curve": [ 0.266, 5.34, 0.285, 3.48 ] + }, + { + "time": 0.3333, + "value": 3.48, + "curve": [ 0.398, 3.48, 0.408, 8.68 ] + }, + { + "time": 0.4333, + "value": 8.68, + "curve": [ 0.458, 8.68, 0.551, 6.8 ] + }, + { + "time": 0.5667, + "value": 6.26, + "curve": [ 0.598, 5.17, 0.642, 3.49 ] + }, + { "time": 0.6667, "value": 3.5 } + ] + }, + "torso3": { + "rotate": [ + { + "value": 4.52, + "curve": [ 0.067, 4.54, 0.075, -7.27 ] + }, + { + "time": 0.1, + "value": -7.27, + "curve": [ 0.125, -7.27, 0.227, 0.84 ] + }, + { + "time": 0.2333, + "value": 1.24, + "curve": [ 0.254, 2.5, 0.301, 4.51 ] + }, + { + "time": 0.3333, + "value": 4.52, + "curve": [ 0.386, 4.54, 0.408, -7.35 ] + }, + { + "time": 0.4333, + "value": -7.35, + "curve": [ 0.458, -7.35, 0.549, -0.14 ] + }, + { + "time": 0.5667, + "value": 0.95, + "curve": [ 0.586, 2.18, 0.632, 4.54 ] + }, + { "time": 0.6667, "value": 4.52 } + ] + }, + "aim-constraint-target": { + "rotate": [ + { "value": 30.57 } + ] + }, + "rear-foot": { + "rotate": [ + { "value": -6.5 } + ] + }, + "front-foot": { + "rotate": [ + { "value": 4.5 } + ] + }, + "head-control": { + "translate": [ + { + "y": -9.94, + "curve": [ 0.058, 0, 0.175, -15.32, 0.044, -4.19, 0.175, 5 ] + }, + { + "time": 0.2333, + "x": -15.32, + "y": 5, + "curve": [ 0.317, -15.32, 0.429, -9.74, 0.317, 5, 0.382, -31.71 ] + }, + { + "time": 0.4667, + "x": -7.81, + "y": -31.59, + "curve": [ 0.507, -5.76, 0.617, 0, 0.549, -31.47, 0.628, -13.33 ] + }, + { "time": 0.6667, "y": -9.94 } + ] + }, + "front-shoulder": { + "translate": [ + { + "x": -0.74, + "y": 11.22, + "curve": [ 0.061, -0.74, 0.144, 1.17, 0.061, 11.22, 0.143, -17.93 ] + }, + { + "time": 0.2333, + "x": 1.19, + "y": -17.9, + "curve": [ 0.54, 1.25, 0.558, -0.74, 0.545, -17.8, 0.558, 11.22 ] + }, + { "time": 0.6667, "x": -0.74, "y": 11.22 } + ] + }, + "back-shoulder": { + "translate": [ + { + "curve": [ 0.083, 0, 0.25, 0, 0.083, 0, 0.25, 8.93 ] + }, + { + "time": 0.3333, + "y": 8.93, + "curve": [ 0.417, 0, 0.583, 0, 0.417, 8.93, 0.583, 0 ] + }, + { "time": 0.6667 } + ] + } + }, + "ik": { + "front-leg-ik": [ + { "softness": 10, "bendPositive": false }, + { "time": 0.5667, "softness": 14.8, "bendPositive": false }, + { "time": 0.6, "softness": 48.2, "bendPositive": false }, + { "time": 0.6667, "softness": 10, "bendPositive": false } + ], + "rear-leg-ik": [ + { "bendPositive": false }, + { "time": 0.1667, "softness": 22.5, "bendPositive": false }, + { "time": 0.3, "softness": 61.4, "bendPositive": false }, + { "time": 0.6667, "bendPositive": false } + ] + }, + "events": [ + { "time": 0.2333, "name": "footstep" }, + { "time": 0.5667, "name": "footstep" } + ] + }, + "run-to-idle": { + "slots": { + "front-fist": { + "attachment": [ + { "name": "front-fist-open" } + ] + } + }, + "bones": { + "front-foot-target": { + "translate": [ + { + "x": -16.5, + "y": 3.41, + "curve": [ 0.033, -16.5, 0.1, -69.06, 0.033, 3.41, 0.1, 0 ] + }, + { "time": 0.1333, "x": -69.06 } + ] + }, + "hip": { + "translate": [ + { + "x": -28.78, + "y": -72.96, + "curve": [ 0.036, -28.63, 0.2, -10.85, 0.135, -62.35, 0.2, -23.15 ] + }, + { "time": 0.2667, "x": -11.97, "y": -23.15 } + ] + }, + "rear-foot-target": { + "translate": [ + { + "x": 33.15, + "y": 31.61, + "curve": [ 0.017, 33.15, 0.05, 24.41, 0.017, 31.61, 0.041, 20.73 ] + }, + { + "time": 0.0667, + "x": 24.41, + "y": 0.19, + "curve": [ 0.117, 24.41, 0.217, 48.87, 0.117, 0.19, 0.217, 0 ] + }, + { "time": 0.2667, "x": 48.87 } + ] + }, + "front-upper-arm": { + "rotate": [ + { + "value": -80.61, + "curve": [ 0.067, -80.61, 0.2, -60.87 ] + }, + { "time": 0.2667, "value": -60.87 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": 8.79, + "curve": [ 0.041, 8.79, 0.115, 6.3 ] + }, + { + "time": 0.1667, + "value": 6.41, + "curve": [ 0.201, 6.48, 0.241, 42.46 ] + }, + { "time": 0.2667, "value": 42.46 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "value": 55.3, + "curve": [ 0.067, 55.3, 0.2, 39.2 ] + }, + { "time": 0.2667, "value": 39.2 } + ] + }, + "head": { + "rotate": [ + { + "curve": [ 0.05, 0, 0.083, 2.67 ] + }, + { + "time": 0.1333, + "value": 2.67, + "curve": [ 0.15, 2.67, 0.25, -6.75 ] + }, + { "time": 0.2667, "value": -6.75 } + ] + }, + "front-fist": { + "rotate": [ + { + "value": 38.26, + "curve": [ 0.041, 38.26, 0.127, -2.19 ] + }, + { + "time": 0.1667, + "value": -3, + "curve": [ 0.209, -3.84, 0.241, 0 ] + }, + { "time": 0.2667 } + ], + "scale": [ + { + "x": 0.844, + "curve": [ 0.067, 0.844, 0.2, 1, 0.067, 1, 0.2, 1 ] + }, + { "time": 0.2667 } + ] + }, + "rear-bracer": { + "rotate": [ + { + "value": 57.24, + "curve": [ 0.067, 57.24, 0.2, 0 ] + }, + { "time": 0.2667 } + ] + }, + "gun": { + "rotate": [ + { + "value": 2.28, + "curve": [ 0.041, 2.28, 0.105, 15.34 ] + }, + { + "time": 0.1667, + "value": 15.32, + "curve": [ 0.205, 15.31, 0.241, 0 ] + }, + { "time": 0.2667 } + ] + }, + "torso": { + "rotate": [ + { + "value": -12.98, + "curve": [ 0.033, -12.98, 0.103, -14.81 ] + }, + { + "time": 0.1333, + "value": -16.63, + "curve": [ 0.168, -18.69, 0.233, -22.88 ] + }, + { "time": 0.2667, "value": -22.88 } + ], + "scale": [ + { + "x": 0.963, + "y": 1.074, + "curve": [ 0.067, 0.963, 0.132, 1, 0.067, 1.074, 0.132, 1 ] + }, + { "time": 0.2667 } + ] + }, + "neck": { + "rotate": [ + {}, + { "time": 0.2667, "value": 3.78 } + ] + }, + "hair3": { + "rotate": [ + { + "curve": [ 0.033, 0, 0.1, 0.88 ] + }, + { + "time": 0.1333, + "value": 0.88, + "curve": [ 0.167, 0.88, 0.233, 0 ] + }, + { "time": 0.2667 } + ] + }, + "hair4": { + "rotate": [ + { + "curve": [ 0.033, 0, 0.1, 15.97 ] + }, + { + "time": 0.1333, + "value": 15.97, + "curve": [ 0.167, 15.97, 0.233, 0 ] + }, + { "time": 0.2667 } + ] + }, + "hair1": { + "rotate": [ + { + "curve": [ 0.033, 0, 0.1, 10.76 ] + }, + { + "time": 0.1333, + "value": 10.76, + "curve": [ 0.167, 10.76, 0.233, 0 ] + }, + { "time": 0.2667 } + ] + }, + "hair2": { + "rotate": [ + { + "curve": [ 0.014, -2.28, 0.042, -7.84 ] + }, + { + "time": 0.0667, + "value": -7.82, + "curve": [ 0.108, -7.79, 0.166, 6.57 ] + }, + { + "time": 0.2, + "value": 6.67, + "curve": [ 0.222, 6.73, 0.255, 1.98 ] + }, + { "time": 0.2667 } + ] + }, + "torso2": { + "rotate": [ + { + "curve": [ 0.041, 0, 0.107, 3.03 ] + }, + { + "time": 0.1667, + "value": 3.03, + "curve": [ 0.205, 3.03, 0.241, 0 ] + }, + { "time": 0.2667 } + ] + }, + "torso3": { + "rotate": [ + { + "curve": [ 0.049, 0, 0.166, 0.66 ] + }, + { + "time": 0.2, + "value": 0.66, + "curve": [ 0.232, 0.65, 0.249, -2.15 ] + }, + { "time": 0.2667, "value": -2.15 } + ] + }, + "head-control": { + "translate": [ + { "x": -10.12, "y": 8.71 }, + { "time": 0.2667 } + ] + }, + "front-shoulder": { + "translate": [ + { "x": 4.91, "y": 11.54 }, + { "time": 0.2667 } + ] + } + } + }, + "shoot": { + "slots": { + "muzzle": { + "rgba": [ + { "time": 0.1333, "color": "ffffffff" }, + { "time": 0.2, "color": "ffffff62" } + ], + "attachment": [ + { "time": 0.0333, "name": "muzzle01" }, + { "time": 0.0667, "name": "muzzle02" }, + { "time": 0.1, "name": "muzzle03" }, + { "time": 0.1333, "name": "muzzle04" }, + { "time": 0.1667, "name": "muzzle05" }, + { "time": 0.2 } + ] + }, + "muzzle-glow": { + "rgba": [ + { "color": "ff0c0c00" }, + { + "time": 0.0333, + "color": "ffc9adff", + "curve": [ 0.255, 1, 0.273, 1, 0.255, 0.76, 0.273, 0.4, 0.255, 0.65, 0.273, 0.22, 0.255, 1, 0.273, 1 ] + }, + { "time": 0.3, "color": "ff400cff" }, + { "time": 0.6333, "color": "ff0c0c00" } + ], + "attachment": [ + { "name": "muzzle-glow" } + ] + }, + "muzzle-ring": { + "rgba": [ + { + "time": 0.0333, + "color": "d8baffff", + "curve": [ 0.202, 0.85, 0.214, 0.84, 0.202, 0.73, 0.214, 0.73, 0.202, 1, 0.214, 1, 0.202, 1, 0.214, 0.21 ] + }, + { "time": 0.2333, "color": "d7baff00" } + ], + "attachment": [ + { "time": 0.0333, "name": "muzzle-ring" }, + { "time": 0.2333 } + ] + }, + "muzzle-ring2": { + "rgba": [ + { + "time": 0.0333, + "color": "d8baffff", + "curve": [ 0.174, 0.85, 0.184, 0.84, 0.174, 0.73, 0.184, 0.73, 0.174, 1, 0.184, 1, 0.174, 1, 0.184, 0.21 ] + }, + { "time": 0.2, "color": "d7baff00" } + ], + "attachment": [ + { "time": 0.0333, "name": "muzzle-ring" }, + { "time": 0.2 } + ] + }, + "muzzle-ring3": { + "rgba": [ + { + "time": 0.0333, + "color": "d8baffff", + "curve": [ 0.174, 0.85, 0.184, 0.84, 0.174, 0.73, 0.184, 0.73, 0.174, 1, 0.184, 1, 0.174, 1, 0.184, 0.21 ] + }, + { "time": 0.2, "color": "d7baff00" } + ], + "attachment": [ + { "time": 0.0333, "name": "muzzle-ring" }, + { "time": 0.2 } + ] + }, + "muzzle-ring4": { + "rgba": [ + { + "time": 0.0333, + "color": "d8baffff", + "curve": [ 0.174, 0.85, 0.184, 0.84, 0.174, 0.73, 0.184, 0.73, 0.174, 1, 0.184, 1, 0.174, 1, 0.184, 0.21 ] + }, + { "time": 0.2, "color": "d7baff00" } + ], + "attachment": [ + { "time": 0.0333, "name": "muzzle-ring" }, + { "time": 0.2 } + ] + } + }, + "bones": { + "gun": { + "rotate": [ + { + "time": 0.0667, + "curve": [ 0.094, 25.89, 0.112, 45.27 ] + }, + { + "time": 0.1333, + "value": 45.35, + "curve": [ 0.192, 45.28, 0.18, -0.09 ] + }, + { "time": 0.6333 } + ] + }, + "muzzle": { + "translate": [ + { "x": -11.02, "y": 25.16 } + ] + }, + "rear-upper-arm": { + "translate": [ + { + "time": 0.0333, + "curve": [ 0.045, 0.91, 0.083, 3.46, 0.044, 0.86, 0.083, 3.32 ] + }, + { + "time": 0.1, + "x": 3.46, + "y": 3.32, + "curve": [ 0.133, 3.46, 0.176, -0.1, 0.133, 3.32, 0.169, 0 ] + }, + { "time": 0.2333 } + ] + }, + "rear-bracer": { + "translate": [ + { + "time": 0.0333, + "curve": [ 0.075, -3.78, 0.083, -4.36, 0.08, -2.7, 0.083, -2.88 ] + }, + { + "time": 0.1, + "x": -4.36, + "y": -2.88, + "curve": [ 0.133, -4.36, 0.168, 0.18, 0.133, -2.88, 0.167, 0 ] + }, + { "time": 0.2333 } + ] + }, + "gun-tip": { + "translate": [ + {}, + { "time": 0.3, "x": 3.15, "y": 0.39 } + ], + "scale": [ + { "x": 0.366, "y": 0.366 }, + { "time": 0.0333, "x": 1.453, "y": 1.453 }, + { "time": 0.3, "x": 0.366, "y": 0.366 } + ] + }, + "muzzle-ring": { + "translate": [ + { "time": 0.0333 }, + { "time": 0.2333, "x": 64.47 } + ], + "scale": [ + { "time": 0.0333 }, + { "time": 0.2333, "x": 5.951, "y": 5.951 } + ] + }, + "muzzle-ring2": { + "translate": [ + { "time": 0.0333 }, + { "time": 0.2, "x": 172.57 } + ], + "scale": [ + { "time": 0.0333 }, + { "time": 0.2, "x": 4, "y": 4 } + ] + }, + "muzzle-ring3": { + "translate": [ + { "time": 0.0333 }, + { "time": 0.2, "x": 277.17 } + ], + "scale": [ + { "time": 0.0333 }, + { "time": 0.2, "x": 2, "y": 2 } + ] + }, + "muzzle-ring4": { + "translate": [ + { "time": 0.0333 }, + { "time": 0.2, "x": 392.06 } + ] + } + } + }, + "walk": { + "bones": { + "rear-foot-target": { + "rotate": [ + { + "value": -32.82, + "curve": [ 0.035, -42.69, 0.057, -70.49 ] + }, + { + "time": 0.1, + "value": -70.59, + "curve": [ 0.236, -70.78, 0.335, -9.87 ] + }, + { + "time": 0.3667, + "value": -1.56, + "curve": [ 0.393, 5.5, 0.477, 13.96 ] + }, + { + "time": 0.5, + "value": 13.96, + "curve": [ 0.519, 13.96, 0.508, 0.13 ] + }, + { "time": 0.5667, "value": -0.28 }, + { + "time": 0.7333, + "value": -0.28, + "curve": [ 0.827, -0.06, 0.958, -21.07 ] + }, + { "time": 1, "value": -32.82 } + ], + "translate": [ + { + "x": -167.32, + "y": 0.58, + "curve": [ 0.022, -180.55, 0.075, -235.51, 0.045, 0.58, 0.075, 30.12 ] + }, + { + "time": 0.1, + "x": -235.51, + "y": 39.92, + "curve": [ 0.142, -235.51, 0.208, -201.73, 0.138, 54.94, 0.18, 60.78 ] + }, + { + "time": 0.2333, + "x": -176.33, + "y": 61.48, + "curve": [ 0.272, -136.61, 0.321, -45.18, 0.275, 62.02, 0.321, 56.6 ] + }, + { + "time": 0.3667, + "x": 8.44, + "y": 49.67, + "curve": [ 0.403, 51.03, 0.486, 66.86, 0.401, 44.37, 0.48, 23.11 ] + }, + { "time": 0.5, "x": 66.57, "y": 14.22 }, + { "time": 0.5333, "x": 52.58, "y": 0.6 }, + { "time": 1, "x": -167.32, "y": 0.58 } + ] + }, + "front-foot-target": { + "rotate": [ + { + "value": 18.19, + "curve": [ 0.01, 11.17, 0.043, 1.37 ] + }, + { "time": 0.1, "value": 0.47 }, + { + "time": 0.2333, + "value": 0.55, + "curve": [ 0.364, 0.3, 0.515, -80.48 ] + }, + { + "time": 0.7333, + "value": -80.78, + "curve": [ 0.788, -80.38, 0.921, 17.42 ] + }, + { "time": 1, "value": 18.19 } + ], + "translate": [ + { + "x": 139.21, + "y": 22.94, + "curve": [ 0.025, 139.21, 0.069, 111.46, 0.031, 3.25, 0.075, 0.06 ] + }, + { "time": 0.1, "x": 96.69, "y": 0.06 }, + { + "time": 0.5, + "x": -94.87, + "y": -0.03, + "curve": [ 0.518, -106.82, 0.575, -152.56, 0.534, 5.42, 0.557, 38.46 ] + }, + { + "time": 0.6, + "x": -152.56, + "y": 57.05, + "curve": [ 0.633, -152.56, 0.688, -128.05, 0.643, 75.61, 0.7, 84.14 ] + }, + { + "time": 0.7333, + "x": -109.42, + "y": 84.14, + "curve": [ 0.771, -93.91, 0.832, -30.64, 0.787, 84.14, 0.799, 89.65 ] + }, + { + "time": 0.8667, + "x": 17, + "y": 75.25, + "curve": [ 0.903, 66.18, 0.967, 139.21, 0.932, 61.53, 0.967, 44.02 ] + }, + { "time": 1, "x": 139.21, "y": 22.94 } + ] + }, + "hip": { + "rotate": [ + { "value": -4.35 } + ], + "translate": [ + { + "x": -2.86, + "y": -13.86, + "curve": [ 0.025, -2.84, 0.067, -2.82, 0.028, -19.14, 0.054, -24.02 ] + }, + { + "time": 0.1, + "x": -2.61, + "y": -24.19, + "curve": [ 0.143, -2.34, 0.202, -1.79, 0.152, -23.98, 0.213, -14.81 ] + }, + { + "time": 0.2667, + "x": -1.21, + "y": -7.12, + "curve": [ 0.308, -0.86, 0.345, -0.51, 0.306, -1.63, 0.341, 3.15 ] + }, + { + "time": 0.3667, + "x": -0.33, + "y": 3.15, + "curve": [ 0.41, 0.02, 0.458, 0.26, 0.427, 3.3, 0.481, -6.75 ] + }, + { + "time": 0.5, + "x": 0.26, + "y": -10.59, + "curve": [ 0.553, 0.26, 0.559, 0.2, 0.519, -14.41, 0.548, -23.88 ] + }, + { + "time": 0.6, + "x": -0.17, + "y": -23.71, + "curve": [ 0.663, -0.72, 0.798, -2.09, 0.702, -23.36, 0.802, 3.53 ] + }, + { + "time": 0.8667, + "x": -2.46, + "y": 3.48, + "curve": [ 0.901, -2.63, 0.967, -2.87, 0.913, 3.45, 0.967, -7.64 ] + }, + { "time": 1, "x": -2.86, "y": -13.86 } + ] + }, + "front-foot-tip": { + "rotate": [ + { + "value": 28.96, + "curve": [ 0.056, 28.74, 0.049, 19.6 ] + }, + { "time": 0.0667, "value": 1.68 }, + { + "time": 0.5, + "value": -10, + "curve": [ 0.525, -10, 0.592, -54.69 ] + }, + { + "time": 0.6, + "value": -59.66, + "curve": [ 0.623, -74.54, 0.674, -101.78 ] + }, + { + "time": 0.7333, + "value": -101.78, + "curve": [ 0.812, -101.78, 0.855, -84.67 ] + }, + { + "time": 0.8667, + "value": -63.53, + "curve": [ 0.869, -58.38, 0.975, 28.96 ] + }, + { "time": 1, "value": 28.96 } + ] + }, + "torso": { + "rotate": [ + { + "value": -20.72, + "curve": [ 0.025, -20.57, 0.071, -20.04 ] + }, + { + "time": 0.1333, + "value": -20.04, + "curve": [ 0.187, -20.04, 0.285, -21.16 ] + }, + { + "time": 0.3667, + "value": -21.16, + "curve": [ 0.405, -21.16, 0.47, -20.9 ] + }, + { + "time": 0.5, + "value": -20.71, + "curve": [ 0.518, -20.6, 0.582, -20.03 ] + }, + { + "time": 0.6333, + "value": -20.04, + "curve": [ 0.709, -20.05, 0.815, -21.18 ] + }, + { + "time": 0.8667, + "value": -21.18, + "curve": [ 0.908, -21.18, 0.971, -20.93 ] + }, + { "time": 1, "value": -20.72 } + ] + }, + "neck": { + "rotate": [ + { + "value": 17.78, + "curve": [ 0.025, 17.93, 0.071, 18.46 ] + }, + { + "time": 0.1333, + "value": 18.46, + "curve": [ 0.187, 18.46, 0.285, 17.34 ] + }, + { + "time": 0.3667, + "value": 17.34, + "curve": [ 0.405, 17.34, 0.47, 17.6 ] + }, + { + "time": 0.5, + "value": 17.79, + "curve": [ 0.518, 17.9, 0.582, 18.47 ] + }, + { + "time": 0.6333, + "value": 18.46, + "curve": [ 0.709, 18.45, 0.815, 17.32 ] + }, + { + "time": 0.8667, + "value": 17.32, + "curve": [ 0.908, 17.32, 0.971, 17.57 ] + }, + { "time": 1, "value": 17.78 } + ] + }, + "head": { + "rotate": [ + { + "value": -12.23, + "curve": [ 0.061, -12.23, 0.191, -7.45 ] + }, + { + "time": 0.2667, + "value": -7.43, + "curve": [ 0.341, -7.42, 0.421, -12.23 ] + }, + { + "time": 0.5, + "value": -12.23, + "curve": [ 0.567, -12.26, 0.694, -7.46 ] + }, + { + "time": 0.7667, + "value": -7.47, + "curve": [ 0.853, -7.49, 0.943, -12.23 ] + }, + { "time": 1, "value": -12.23 } + ], + "scale": [ + { + "curve": [ 0.039, 1, 0.084, 0.991, 0.039, 1, 0.084, 1.019 ] + }, + { + "time": 0.1333, + "x": 0.991, + "y": 1.019, + "curve": [ 0.205, 0.991, 0.318, 1.019, 0.205, 1.019, 0.337, 0.992 ] + }, + { + "time": 0.4, + "x": 1.019, + "y": 0.992, + "curve": [ 0.456, 1.019, 0.494, 1.001, 0.483, 0.991, 0.493, 0.999 ] + }, + { + "time": 0.5, + "curve": [ 0.508, 0.998, 0.584, 0.991, 0.51, 1.002, 0.584, 1.019 ] + }, + { + "time": 0.6333, + "x": 0.991, + "y": 1.019, + "curve": [ 0.705, 0.991, 0.818, 1.019, 0.705, 1.019, 0.837, 0.992 ] + }, + { + "time": 0.9, + "x": 1.019, + "y": 0.992, + "curve": [ 0.956, 1.019, 0.955, 1, 0.983, 0.991, 0.955, 1 ] + }, + { "time": 1 } + ] + }, + "back-foot-tip": { + "rotate": [ + { "value": 4.09 }, + { "time": 0.0333, "value": 3.05 }, + { + "time": 0.1, + "value": -59.01, + "curve": [ 0.124, -72.97, 0.169, -100.05 ] + }, + { + "time": 0.2333, + "value": -99.71, + "curve": [ 0.326, -99.21, 0.349, -37.4 ] + }, + { + "time": 0.3667, + "value": -17.85, + "curve": [ 0.388, 4.74, 0.451, 32.35 ] + }, + { + "time": 0.5, + "value": 32.4, + "curve": [ 0.537, 32.44, 0.566, 6.43 ] + }, + { "time": 0.5667, "value": 2 }, + { "time": 1, "value": 4.09 } + ] + }, + "front-thigh": { + "translate": [ + { + "x": 17.15, + "y": -0.09, + "curve": [ 0.178, 17.14, 0.295, -4.26, 0.009, -0.09, 0.475, 0.02 ] + }, + { + "time": 0.5, + "x": -4.26, + "y": 0.02, + "curve": [ 0.705, -4.27, 0.848, 17.15, 0.525, 0.02, 0.975, -0.09 ] + }, + { "time": 1, "x": 17.15, "y": -0.09 } + ] + }, + "rear-thigh": { + "translate": [ + { + "x": -17.71, + "y": -4.63, + "curve": [ 0.036, -19.81, 0.043, -20.86, 0.036, -4.63, 0.05, -7.03 ] + }, + { + "time": 0.1, + "x": -20.95, + "y": -7.06, + "curve": [ 0.162, -21.05, 0.4, 7.79, 0.2, -7.13, 0.4, -1.9 ] + }, + { + "time": 0.5, + "x": 7.79, + "y": -1.94, + "curve": [ 0.612, 7.69, 0.875, -10.49, 0.592, -1.97, 0.917, -3.25 ] + }, + { "time": 1, "x": -17.71, "y": -4.63 } + ] + }, + "torso2": { + "rotate": [ + { + "value": 1, + "curve": [ 0.006, 1.2, 0.084, 2.88 ] + }, + { + "time": 0.1333, + "value": 2.88, + "curve": [ 0.205, 2.88, 0.284, -1.17 ] + }, + { + "time": 0.3667, + "value": -1.17, + "curve": [ 0.411, -1.17, 0.481, 0.57 ] + }, + { + "time": 0.5, + "value": 1, + "curve": [ 0.515, 1.33, 0.59, 2.83 ] + }, + { + "time": 0.6333, + "value": 2.85, + "curve": [ 0.683, 2.86, 0.796, -1.2 ] + }, + { + "time": 0.8667, + "value": -1.2, + "curve": [ 0.916, -1.2, 0.984, 0.62 ] + }, + { "time": 1, "value": 1 } + ] + }, + "torso3": { + "rotate": [ + { "value": -1.81 } + ] + }, + "front-upper-arm": { + "rotate": [ + { + "value": -9.51, + "curve": [ 0.021, -13.32, 0.058, -19.4 ] + }, + { + "time": 0.1, + "value": -19.4, + "curve": [ 0.238, -19.69, 0.337, 7.78 ] + }, + { + "time": 0.3667, + "value": 16.2, + "curve": [ 0.399, 25.42, 0.497, 60.19 ] + }, + { + "time": 0.6, + "value": 60.26, + "curve": [ 0.719, 60.13, 0.845, 27.61 ] + }, + { + "time": 0.8667, + "value": 22.45, + "curve": [ 0.892, 16.38, 0.979, -3.27 ] + }, + { "time": 1, "value": -9.51 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": 13.57, + "curve": [ 0.022, 9.71, 0.147, -3.78 ] + }, + { + "time": 0.3667, + "value": -3.69, + "curve": [ 0.457, -3.66, 0.479, 0.83 ] + }, + { + "time": 0.5, + "value": 4.05, + "curve": [ 0.513, 6.08, 0.635, 30.8 ] + }, + { + "time": 0.8, + "value": 30.92, + "curve": [ 0.974, 31, 0.98, 18.35 ] + }, + { "time": 1, "value": 13.57 } + ] + }, + "front-fist": { + "rotate": [ + { + "value": -28.72, + "curve": [ 0.024, -31.74, 0.176, -43.4 ] + }, + { + "time": 0.3667, + "value": -43.6, + "curve": [ 0.403, -43.65, 0.47, -40.15 ] + }, + { + "time": 0.5, + "value": -35.63, + "curve": [ 0.547, -28.59, 0.624, -4.57 ] + }, + { + "time": 0.7333, + "value": -4.59, + "curve": [ 0.891, -4.62, 0.954, -24.28 ] + }, + { "time": 1, "value": -28.48 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "value": 28.28, + "curve": [ 0.034, 30.94, 0.068, 32.05 ] + }, + { + "time": 0.1, + "value": 31.88, + "curve": [ 0.194, 31.01, 0.336, -0.11 ] + }, + { + "time": 0.3667, + "value": -7.11, + "curve": [ 0.421, -19.73, 0.53, -46.21 ] + }, + { + "time": 0.6, + "value": -45.75, + "curve": [ 0.708, -45.03, 0.844, -13.56 ] + }, + { + "time": 0.8667, + "value": -6.48, + "curve": [ 0.909, 6.59, 0.958, 24.21 ] + }, + { "time": 1, "value": 28.28 } + ] + }, + "hair2": { + "rotate": [ + { + "value": -2.79, + "curve": [ 0.074, -2.84, 0.121, 25.08 ] + }, + { + "time": 0.2333, + "value": 24.99, + "curve": [ 0.35, 24.89, 0.427, -2.86 ] + }, + { + "time": 0.5, + "value": -2.8, + "curve": [ 0.575, -2.73, 0.652, 24.5 ] + }, + { + "time": 0.7333, + "value": 24.55, + "curve": [ 0.828, 24.6, 0.932, -2.69 ] + }, + { "time": 1, "value": -2.79 } + ] + }, + "hair4": { + "rotate": [ + { + "value": -6.01, + "curve": [ 0.106, -5.97, 0.151, 18.62 ] + }, + { + "time": 0.2333, + "value": 18.72, + "curve": [ 0.336, 18.7, 0.405, -11.37 ] + }, + { + "time": 0.5, + "value": -11.45, + "curve": [ 0.626, -11.46, 0.629, 18.94 ] + }, + { + "time": 0.7333, + "value": 18.92, + "curve": [ 0.833, 18.92, 0.913, -6.06 ] + }, + { "time": 1, "value": -6.01 } + ], + "translate": [ + { "x": 0.03, "y": 1.35 } + ] + }, + "rear-bracer": { + "rotate": [ + { + "value": 10.06, + "curve": [ 0.044, 11.16, 0.063, 11.49 ] + }, + { + "time": 0.1, + "value": 11.49, + "curve": [ 0.215, 11.49, 0.336, 2.92 ] + }, + { + "time": 0.3667, + "value": 0.84, + "curve": [ 0.416, -2.52, 0.498, -10.84 ] + }, + { + "time": 0.6, + "value": -10.83, + "curve": [ 0.762, -10.71, 0.845, -3.05 ] + }, + { + "time": 0.8667, + "value": -1.34, + "curve": [ 0.917, 2.54, 0.977, 8.81 ] + }, + { "time": 1, "value": 10.06 } + ] + }, + "gun": { + "rotate": [ + { + "value": -14.67, + "curve": [ 0.086, -14.67, 0.202, 8.31 ] + }, + { + "time": 0.2333, + "value": 12.14, + "curve": [ 0.279, 17.71, 0.391, 25.79 ] + }, + { + "time": 0.5, + "value": 25.77, + "curve": [ 0.631, 25.74, 0.694, 4.53 ] + }, + { + "time": 0.7333, + "value": -0.65, + "curve": [ 0.768, -5.21, 0.902, -14.4 ] + }, + { "time": 1, "value": -14.67 } + ] + }, + "front-leg-target": { + "translate": [ + { + "x": -2.83, + "y": -8.48, + "curve": [ 0.008, -2.83, 0.058, 0.09, 0.001, 4.97, 0.058, 6.68 ] + }, + { + "time": 0.0667, + "x": 0.09, + "y": 6.68, + "curve": [ 0.3, 0.09, 0.767, -2.83, 0.3, 6.68, 0.767, -8.48 ] + }, + { "time": 1, "x": -2.83, "y": -8.48 } + ] + }, + "hair1": { + "rotate": [ + { + "curve": [ 0.028, 1.24, 0.016, 3.46 ] + }, + { + "time": 0.1, + "value": 3.45, + "curve": [ 0.159, 3.45, 0.189, 0.23 ] + }, + { + "time": 0.2333, + "value": -2.29, + "curve": [ 0.265, -4.32, 0.305, -5.92 ] + }, + { + "time": 0.3667, + "value": -5.94, + "curve": [ 0.446, -5.96, 0.52, 3.41 ] + }, + { + "time": 0.6, + "value": 3.42, + "curve": [ 0.717, 3.42, 0.772, -5.93 ] + }, + { + "time": 0.8667, + "value": -5.97, + "curve": [ 0.933, -5.99, 0.982, -0.94 ] + }, + { "time": 1 } + ] + }, + "hair3": { + "rotate": [ + { + "curve": [ 0.067, 0, 0.159, -10.48 ] + }, + { + "time": 0.2333, + "value": -10.49, + "curve": [ 0.334, -10.5, 0.439, -0.09 ] + }, + { + "time": 0.5, + "value": -0.09, + "curve": [ 0.569, -0.09, 0.658, -10.75 ] + }, + { + "time": 0.7333, + "value": -10.7, + "curve": [ 0.833, -10.63, 0.947, 0 ] + }, + { "time": 1 } + ] + }, + "gun-tip": { + "rotate": [ + { "time": 0.2333, "value": 0.11 } + ] + }, + "muzzle-ring": { + "rotate": [ + { "time": 0.2333, "value": 0.11 } + ] + }, + "muzzle-ring2": { + "rotate": [ + { "time": 0.2667, "value": 0.11 } + ] + }, + "muzzle-ring3": { + "rotate": [ + { "time": 0.2667, "value": 0.11 } + ] + }, + "muzzle-ring4": { + "rotate": [ + { "time": 0.2667, "value": 0.11 } + ] + }, + "back-shoulder": { + "translate": [ + { + "x": -0.18, + "y": -4.49, + "curve": [ 0.133, -0.18, 0.333, 7.69, 0.133, -4.49, 0.333, 2.77 ] + }, + { + "time": 0.4667, + "x": 7.69, + "y": 2.77, + "curve": [ 0.6, 7.69, 0.858, -0.18, 0.6, 2.77, 0.858, -4.49 ] + }, + { "time": 1, "x": -0.18, "y": -4.49 } + ] + }, + "front-shoulder": { + "translate": [ + { + "x": 1.46, + "y": 9.37, + "curve": [ 0.162, 1.41, 0.333, -1.66, 0.162, 9.37, 0.301, -7.23 ] + }, + { + "time": 0.5, + "x": -1.6, + "y": -7.27, + "curve": [ 0.735, -1.5, 0.847, 1.46, 0.723, -7.31, 0.838, 9.32 ] + }, + { "time": 1, "x": 1.46, "y": 9.37 } + ] + }, + "head-control": { + "translate": [ + { + "x": -6.46, + "y": -8.4, + "curve": [ 0.053, -5.31, 0.167, -3.64, 0.093, -8.4, 0.196, -3.81 ] + }, + { + "time": 0.2333, + "x": -3.64, + "y": -1.32, + "curve": [ 0.309, -3.64, 0.436, -5.84, 0.275, 1.43, 0.38, 10.3 ] + }, + { + "time": 0.5, + "x": -7.03, + "y": 10.29, + "curve": [ 0.538, -7.75, 0.66, -10.54, 0.598, 10.27, 0.694, 1.56 ] + }, + { + "time": 0.7333, + "x": -10.54, + "y": -1.26, + "curve": [ 0.797, -10.54, 0.933, -7.91, 0.768, -3.79, 0.875, -8.4 ] + }, + { "time": 1, "x": -6.46, "y": -8.4 } + ] + } + }, + "ik": { + "front-leg-ik": [ + { + "softness": 25.7, + "bendPositive": false, + "curve": [ 0.008, 1, 0.025, 1, 0.008, 25.7, 0.025, 9.9 ] + }, + { + "time": 0.0333, + "softness": 9.9, + "bendPositive": false, + "curve": [ 0.15, 1, 0.383, 1, 0.15, 9.9, 0.383, 43.2 ] + }, + { + "time": 0.5, + "softness": 43.2, + "bendPositive": false, + "curve": [ 0.625, 1, 0.875, 1, 0.625, 43.2, 0.846, 45.57 ] + }, + { "time": 1, "softness": 25.7, "bendPositive": false } + ], + "rear-leg-ik": [ + { "softness": 5, "bendPositive": false }, + { "time": 0.4333, "softness": 4.9, "bendPositive": false }, + { "time": 0.5, "softness": 28.81, "bendPositive": false }, + { "time": 0.6, "softness": 43.8, "bendPositive": false }, + { "time": 1, "softness": 5, "bendPositive": false } + ] + }, + "events": [ + { "name": "footstep" }, + { "time": 0.5, "name": "footstep" } + ] + } +} +} \ No newline at end of file diff --git a/spine-haxe/example/assets/spineboy-pro.skel b/spine-haxe/example/assets/spineboy-pro.skel new file mode 100644 index 0000000000..c14f304057 Binary files /dev/null and b/spine-haxe/example/assets/spineboy-pro.skel differ diff --git a/spine-haxe/example/assets/spineboy.atlas b/spine-haxe/example/assets/spineboy.atlas new file mode 100644 index 0000000000..b07ccc3bf7 --- /dev/null +++ b/spine-haxe/example/assets/spineboy.atlas @@ -0,0 +1,101 @@ +spineboy.png + size: 1024, 256 + filter: Linear, Linear + scale: 0.5 +crosshair + bounds: 813, 160, 45, 45 +eye-indifferent + bounds: 569, 2, 47, 45 +eye-surprised + bounds: 643, 7, 47, 45 + rotate: 90 +front-bracer + bounds: 811, 51, 29, 40 +front-fist-closed + bounds: 807, 93, 38, 41 +front-fist-open + bounds: 815, 210, 43, 44 +front-foot + bounds: 706, 64, 63, 35 + rotate: 90 +front-shin + bounds: 80, 11, 41, 92 +front-thigh + bounds: 754, 12, 23, 56 +front-upper-arm + bounds: 618, 5, 23, 49 +goggles + bounds: 214, 20, 131, 83 +gun + bounds: 347, 14, 105, 102 + rotate: 90 +head + bounds: 80, 105, 136, 149 +hoverboard-board + bounds: 2, 8, 246, 76 + rotate: 90 +hoverboard-thruster + bounds: 478, 2, 30, 32 +hoverglow-small + bounds: 218, 117, 137, 38 + rotate: 90 +mouth-grind + bounds: 775, 80, 47, 30 + rotate: 90 +mouth-oooo + bounds: 779, 31, 47, 30 + rotate: 90 +mouth-smile + bounds: 783, 207, 47, 30 + rotate: 90 +muzzle-glow + bounds: 779, 4, 25, 25 +muzzle-ring + bounds: 451, 14, 25, 105 +muzzle01 + bounds: 664, 60, 67, 40 + rotate: 90 +muzzle02 + bounds: 580, 56, 68, 42 + rotate: 90 +muzzle03 + bounds: 478, 36, 83, 53 + rotate: 90 +muzzle04 + bounds: 533, 49, 75, 45 + rotate: 90 +muzzle05 + bounds: 624, 56, 68, 38 + rotate: 90 +neck + bounds: 806, 8, 18, 21 +portal-bg + bounds: 258, 121, 133, 133 +portal-flare1 + bounds: 690, 2, 56, 30 + rotate: 90 +portal-flare2 + bounds: 510, 3, 57, 31 +portal-flare3 + bounds: 722, 4, 58, 30 + rotate: 90 +portal-shade + bounds: 393, 121, 133, 133 +portal-streaks1 + bounds: 528, 126, 126, 128 +portal-streaks2 + bounds: 656, 129, 125, 125 +rear-bracer + bounds: 826, 13, 28, 36 +rear-foot + bounds: 743, 70, 57, 30 + rotate: 90 +rear-shin + bounds: 174, 14, 38, 89 +rear-thigh + bounds: 783, 158, 28, 47 +rear-upper-arm + bounds: 783, 136, 20, 44 + rotate: 90 +torso + bounds: 123, 13, 49, 90 diff --git a/spine-haxe/example/assets/spineboy.png b/spine-haxe/example/assets/spineboy.png new file mode 100644 index 0000000000..074f1e3511 Binary files /dev/null and b/spine-haxe/example/assets/spineboy.png differ diff --git a/spine-haxe/example/assets/stretchyman-pro.json b/spine-haxe/example/assets/stretchyman-pro.json new file mode 100644 index 0000000000..a7825e2dc6 --- /dev/null +++ b/spine-haxe/example/assets/stretchyman-pro.json @@ -0,0 +1,2127 @@ +{ +"skeleton": { + "hash": "8oGZUTwZfVI", + "spine": "4.1.20", + "x": -100.47, + "y": -9.21, + "width": 260.65, + "height": 573.31, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { "name": "back-arm-ik-target", "parent": "root", "x": 103.52, "y": 345.27, "color": "ff3f00ff" }, + { "name": "hip", "parent": "root", "x": 28.61, "y": 289.9, "color": "ffbd00ff" }, + { + "name": "spine1", + "parent": "hip", + "length": 34.66, + "rotation": 86.69, + "x": -4.48, + "y": 12.66, + "color": "ffbd00ff" + }, + { "name": "spine2", "parent": "spine1", "length": 41.42, "rotation": 16.48, "x": 34.66, "color": "ffbd00ff" }, + { + "name": "spine3", + "parent": "spine2", + "length": 34.45, + "rotation": 16.17, + "x": 41.42, + "y": 0.01, + "color": "ffbd00ff" + }, + { + "name": "spine4", + "parent": "spine3", + "length": 37.53, + "rotation": -13.63, + "x": 34.45, + "y": 0.01, + "color": "ffbd00ff" + }, + { + "name": "back-arm-ik1", + "parent": "spine4", + "length": 66.57, + "rotation": -152.7, + "x": 16.34, + "y": -4.46, + "color": "ff0000ff" + }, + { "name": "back-arm-ik2", "parent": "back-arm-ik1", "length": 66.01, "rotation": 19.36, "x": 66.57, "color": "ff0000ff" }, + { + "name": "back-arm1", + "parent": "spine4", + "length": 32.43, + "rotation": -154.36, + "x": 16, + "y": -4.58, + "transform": "noScale", + "color": "ff0000ff" + }, + { + "name": "back-arm2", + "parent": "back-arm1", + "length": 34.16, + "rotation": 3.11, + "x": 31.88, + "y": 0.02, + "color": "ff0000ff" + }, + { "name": "back-arm3", "parent": "back-arm2", "length": 31.27, "rotation": 9.59, "x": 34.16, "color": "ff0000ff" }, + { + "name": "back-arm4", + "parent": "back-arm3", + "length": 33.3, + "rotation": 14.61, + "x": 32.04, + "y": 0.82, + "color": "ff0000ff" + }, + { + "name": "back-arm5", + "parent": "back-arm4", + "length": 37.41, + "rotation": 11.31, + "x": 33.82, + "y": 0.02, + "color": "ff0000ff" + }, + { + "name": "back-foot1", + "parent": "hip", + "length": 33.24, + "rotation": -6.56, + "x": -34.01, + "y": -279.68, + "transform": "onlyTranslation", + "color": "ff0000ff" + }, + { + "name": "back-foot2", + "parent": "back-foot1", + "length": 32.29, + "rotation": 4.34, + "x": 33.24, + "transform": "noScale", + "color": "ff0000ff" + }, + { + "name": "back-foot3", + "parent": "back-foot2", + "length": 15.87, + "rotation": 10.06, + "x": 32.29, + "transform": "noScale", + "color": "ff0000ff" + }, + { "name": "back-leg-ik-target", "parent": "root", "x": 46.15, "y": 8.68, "color": "ff3f00ff" }, + { + "name": "back-leg-ik1", + "parent": "hip", + "length": 140.17, + "rotation": -88.1, + "x": 9.63, + "y": -0.38, + "color": "ff0000ff" + }, + { + "name": "back-leg-ik2", + "parent": "back-leg-ik1", + "length": 148.96, + "rotation": -21.32, + "x": 140.17, + "y": -0.01, + "color": "ff0000ff" + }, + { + "name": "back-leg1", + "parent": "hip", + "length": 41, + "rotation": -83.66, + "x": 10.41, + "y": 1.04, + "color": "ff0000ff" + }, + { "name": "back-leg2", "parent": "back-leg1", "length": 41, "rotation": -4.07, "x": 34.57, "color": "ff0000ff" }, + { + "name": "back-leg3", + "parent": "back-leg1", + "length": 41, + "rotation": -5.24, + "x": 81.79, + "y": -2.29, + "color": "ff0000ff" + }, + { + "name": "back-leg4", + "parent": "back-leg1", + "length": 41, + "rotation": -16.6, + "x": 121.21, + "y": -11.27, + "color": "ff0000ff" + }, + { + "name": "back-leg5", + "parent": "back-leg1", + "length": 41, + "rotation": -32.36, + "x": 160.16, + "y": -24.86, + "color": "ff0000ff" + }, + { + "name": "back-leg6", + "parent": "back-leg1", + "length": 41, + "rotation": -30.76, + "x": 197.04, + "y": -39.98, + "color": "ff0000ff" + }, + { + "name": "back-leg7", + "parent": "back-leg1", + "length": 41, + "rotation": -30.63, + "x": 233.19, + "y": -57.32, + "color": "ff0000ff" + }, + { + "name": "back-leg8", + "parent": "back-leg1", + "length": 41, + "rotation": -33.79, + "x": 267.29, + "y": -77.39, + "color": "ff0000ff" + }, + { "name": "belly", "parent": "spine1", "x": 35.94, "y": -37.69, "color": "ffbd00ff" }, + { "name": "butt", "parent": "hip", "x": -32.67, "y": -1.88, "color": "ffbd00ff" }, + { "name": "front-arm-ik-target", "parent": "root", "x": -92.44, "y": 331.78, "color": "ff3f00ff" }, + { + "name": "front-arm-ik1", + "parent": "spine4", + "length": 69.56, + "rotation": 117.86, + "x": 27.36, + "y": 4.22, + "color": "50ff00ff" + }, + { "name": "front-arm-ik2", "parent": "front-arm-ik1", "length": 66.72, "rotation": 20.13, "x": 69.56, "color": "50ff00ff" }, + { + "name": "front-arm1", + "parent": "spine4", + "length": 38.33, + "rotation": 118.58, + "x": 27.13, + "y": 4.9, + "transform": "noScale", + "color": "4eff00ff" + }, + { + "name": "front-arm2", + "parent": "front-arm1", + "length": 35.67, + "rotation": -0.44, + "x": 38.33, + "y": 0.01, + "color": "4eff00ff" + }, + { + "name": "front-arm3", + "parent": "front-arm2", + "length": 32.65, + "rotation": 14.45, + "x": 35.67, + "y": -0.02, + "color": "4eff00ff" + }, + { "name": "front-arm4", "parent": "front-arm3", "length": 29.18, "rotation": 13.89, "x": 32.65, "color": "4eff00ff" }, + { + "name": "front-arm5", + "parent": "front-arm4", + "length": 46.32, + "rotation": 16.09, + "x": 29.18, + "transform": "noScale", + "color": "4eff00ff" + }, + { + "name": "front-foot1", + "parent": "hip", + "length": 26.3, + "rotation": -10.98, + "x": -77.05, + "y": -285.04, + "transform": "onlyTranslation", + "color": "50ff00ff" + }, + { "name": "front-foot2", "parent": "front-foot1", "length": 29.12, "rotation": 9.61, "x": 26.3, "color": "50ff00ff" }, + { "name": "front-foot3", "parent": "front-foot2", "length": 23.49, "rotation": 8.91, "x": 29.12, "color": "50ff00ff" }, + { "name": "front-leg-ik-target", "parent": "root", "x": -37.74, "y": 5.03, "color": "ff3f00ff" }, + { + "name": "front-leg-ik1", + "parent": "hip", + "length": 140.67, + "rotation": -89.23, + "x": -23.99, + "y": 1.89, + "color": "50ff00ff" + }, + { + "name": "front-leg-ik2", + "parent": "front-leg-ik1", + "length": 155.95, + "rotation": -21.5, + "x": 140.67, + "y": 0.03, + "color": "50ff00ff" + }, + { + "name": "front-leg1", + "parent": "hip", + "length": 37.2, + "rotation": -88.97, + "x": -23.57, + "y": -2, + "color": "4fff00ff" + }, + { + "name": "front-leg2", + "parent": "front-leg1", + "length": 37.2, + "rotation": 3.45, + "x": 33.75, + "y": 0.01, + "color": "4fff00ff" + }, + { + "name": "front-leg3", + "parent": "front-leg1", + "length": 37.2, + "rotation": -6.12, + "x": 74.4, + "y": -1.08, + "color": "4fff00ff" + }, + { + "name": "front-leg4", + "parent": "front-leg1", + "length": 37.2, + "rotation": -10.02, + "x": 111.4, + "y": -5.28, + "color": "4fff00ff" + }, + { + "name": "front-leg5", + "parent": "front-leg1", + "length": 37.2, + "rotation": -28.4, + "x": 147.76, + "y": -14.99, + "color": "4fff00ff" + }, + { + "name": "front-leg6", + "parent": "front-leg1", + "length": 37.2, + "rotation": -24.33, + "x": 182.41, + "y": -27.57, + "color": "4fff00ff" + }, + { + "name": "front-leg7", + "parent": "front-leg1", + "length": 37.2, + "rotation": -23, + "x": 216.44, + "y": -42.55, + "color": "4fff00ff" + }, + { + "name": "front-leg8", + "parent": "front-leg1", + "length": 37.2, + "rotation": -31.81, + "x": 248.61, + "y": -61.03, + "color": "4fff00ff" + }, + { + "name": "neck1", + "parent": "spine4", + "length": 13.45, + "rotation": -30.66, + "x": 38.97, + "y": -0.83, + "color": "ffbd00ff" + }, + { "name": "neck2", "parent": "neck1", "length": 14.13, "rotation": -11.41, "x": 13.45, "color": "ffbd00ff" }, + { + "name": "head", + "parent": "neck2", + "length": 89.06, + "rotation": 6.98, + "x": 15.82, + "y": 0.22, + "transform": "noScale", + "color": "ffbd00ff" + } +], +"slots": [ + { "name": "back-arm", "bone": "root", "attachment": "back-arm" }, + { "name": "back-leg", "bone": "root", "attachment": "back-leg" }, + { "name": "body", "bone": "root", "attachment": "body" }, + { "name": "head", "bone": "head", "attachment": "head" }, + { "name": "front-arm", "bone": "root", "attachment": "front-arm" }, + { "name": "back-leg-path", "bone": "hip", "attachment": "back-leg-path" }, + { "name": "front-leg-path", "bone": "hip", "attachment": "front-leg-path" }, + { "name": "front-arm-path", "bone": "spine4", "attachment": "front-arm-path" }, + { "name": "back-arm-path", "bone": "spine4", "attachment": "back-arm-path" } +], +"ik": [ + { + "name": "back-arm-ik", + "order": 3, + "bones": [ "back-arm-ik1", "back-arm-ik2" ], + "target": "back-arm-ik-target" + }, + { + "name": "back-leg-ik", + "bones": [ "back-leg-ik1", "back-leg-ik2" ], + "target": "back-leg-ik-target", + "bendPositive": false + }, + { + "name": "front-arm-ik", + "order": 2, + "bones": [ "front-arm-ik1", "front-arm-ik2" ], + "target": "front-arm-ik-target" + }, + { + "name": "front-leg-ik", + "order": 1, + "bones": [ "front-leg-ik1", "front-leg-ik2" ], + "target": "front-leg-ik-target", + "bendPositive": false + } +], +"transform": [ + { + "name": "back-foot-position", + "order": 8, + "bones": [ "back-foot1" ], + "target": "back-leg8", + "rotation": 108.8, + "x": 41.2, + "y": -0.03, + "scaleX": 5.0E-4, + "scaleY": -3.0E-4, + "shearY": 0.1, + "mixRotate": 0, + "mixScaleX": 0 + }, + { + "name": "front-foot-position", + "order": 9, + "bones": [ "front-foot1" ], + "target": "front-leg8", + "rotation": 101.55, + "x": 38.92, + "y": -0.02, + "scaleX": 4.0E-4, + "scaleY": -3.0E-4, + "shearY": 0.1, + "mixRotate": 0, + "mixScaleX": 0 + } +], +"path": [ + { + "name": "back-arm-path", + "order": 7, + "bones": [ "back-arm1", "back-arm2", "back-arm3", "back-arm4" ], + "target": "back-arm-path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.25 + }, + { + "name": "back-leg-path", + "order": 4, + "bones": [ "back-leg1", "back-leg2", "back-leg3", "back-leg4", "back-leg5", "back-leg6", "back-leg7", "back-leg8" ], + "target": "back-leg-path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.125 + }, + { + "name": "front-arm-path", + "order": 6, + "bones": [ "front-arm1", "front-arm2", "front-arm3", "front-arm4" ], + "target": "front-arm-path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.25 + }, + { + "name": "front-leg-path", + "order": 5, + "bones": [ "front-leg1", "front-leg2", "front-leg3", "front-leg4", "front-leg5", "front-leg6", "front-leg7", "front-leg8" ], + "target": "front-leg-path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.125 + } +], +"skins": [ + { + "name": "default", + "attachments": { + "back-arm": { + "back-arm": { + "type": "mesh", + "uvs": [ 0.74522, 0.00989, 0.64111, 0.05762, 0.56303, 0.1559, 0.42509, 0.25886, 0.28974, 0.359, 0.22988, 0.49565, 0.21166, 0.60797, 0.21166, 0.69782, 0.16481, 0.78674, 0.14139, 0.84757, 0.02427, 0.88501, 0.0529, 0.91871, 0.37824, 0.98797, 0.60468, 0.98235, 0.6307, 0.9056, 0.73481, 0.87752, 0.63591, 0.81762, 0.55262, 0.74181, 0.38084, 0.69876, 0.37824, 0.60797, 0.39906, 0.50876, 0.51358, 0.38521, 0.66194, 0.28881, 0.85454, 0.18398, 0.97687, 0.07541, 0.9144, 0.00989 ], + "triangles": [ 14, 17, 16, 14, 16, 15, 11, 10, 9, 14, 12, 17, 18, 8, 7, 12, 18, 17, 13, 12, 14, 12, 8, 18, 9, 8, 12, 11, 9, 12, 6, 5, 19, 7, 6, 19, 7, 19, 18, 20, 4, 21, 5, 4, 20, 19, 5, 20, 3, 2, 22, 21, 3, 22, 4, 3, 21, 0, 25, 24, 1, 0, 24, 23, 1, 24, 2, 1, 23, 22, 2, 23 ], + "vertices": [ 1, 9, -7.68, -11.48, 1, 1, 9, 4.09, -13.63, 1, 1, 9, 23.49, -9.36, 1, 1, 10, 13.44, -9.23, 1, 2, 10, 35.2, -9.62, 0.50649, 11, -0.58, -9.66, 0.49351, 1, 11, 26.04, -6.39, 1, 1, 12, 14.15, -6.11, 1, 2, 12, 31.54, -5.57, 0.66493, 13, -3.33, -5.03, 0.33507, 1, 13, 13.08, -11.25, 1, 1, 13, 24.41, -14.89, 1, 1, 13, 30.15, -24.52, 1, 1, 13, 36.93, -23.54, 1, 1, 13, 54.08, -2.33, 1, 1, 13, 55.73, 14.15, 1, 1, 13, 41.39, 18.48, 1, 1, 13, 37.29, 26.87, 1, 1, 13, 24.66, 21.67, 1, 1, 13, 9.18, 18.1, 1, 2, 12, 31.33, 6.78, 0.47881, 13, -1.11, 7.12, 0.52119, 1, 12, 13.77, 6.04, 1, 2, 11, 24.98, 6.17, 0.89218, 12, -5.48, 6.96, 0.10782, 2, 10, 32.6, 7.29, 0.59842, 11, -0.32, 7.45, 0.40158, 1, 10, 11.08, 8.85, 1, 1, 9, 17.89, 11.88, 1, 1, 9, -4.82, 9.46, 1, 1, 9, -13.69, -0.69, 1 ], + "hull": 26, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 0, 50, 2, 48, 4, 46, 6, 44, 8, 42, 10, 40, 12, 38, 14, 36 ], + "width": 72, + "height": 202 + } + }, + "back-arm-path": { + "back-arm-path": { + "type": "path", + "lengths": [ 66.62, 131.78, 261.99 ], + "vertexCount": 9, + "vertices": [ 1, 7, -19.59, 1.53, 1, 1, 7, 0.28, -0.13, 1, 1, 7, 17.08, -1.7, 1, 2, 7, 47.35, -3.26, 0.504, 8, -19.18, 3.46, 0.496, 2, 7, 66.76, 0.15, 0.504, 8, 0.23, 0.07, 0.496, 2, 7, 86.18, 3.55, 0.504, 8, 19.65, -3.32, 0.496, 1, 8, 46.48, -3.02, 1, 1, 8, 65.15, 0.11, 1, 1, 7, 144.73, 31.88, 1 ] + } + }, + "back-leg": { + "back-leg": { + "type": "mesh", + "uvs": [ 0.502, 0.01179, 0.36076, 0.06379, 0.4057, 0.15046, 0.44743, 0.23916, 0.47953, 0.32991, 0.51163, 0.42269, 0.52127, 0.50629, 0.48274, 0.58888, 0.41212, 0.66025, 0.3126, 0.74182, 0.2163, 0.81625, 0.1232, 0.89272, 0.00763, 0.97429, 0.29655, 0.98958, 0.47407, 0.99222, 0.64004, 0.99468, 0.80989, 0.9896, 0.91291, 0.98652, 1, 0.95797, 0.8333, 0.94681, 0.71067, 0.9386, 0.57123, 0.92031, 0.41533, 0.89986, 0.3447, 0.89272, 0.36885, 0.87178, 0.42817, 0.82033, 0.502, 0.74794, 0.58226, 0.66943, 0.6593, 0.59092, 0.72993, 0.50528, 0.76524, 0.42167, 0.78129, 0.32481, 0.78771, 0.23406, 0.78771, 0.13924, 0.72351, 0.03728, 0.60152, 0.00567, 0.82117, 0.96898, 0.67873, 0.96396, 0.52111, 0.9574, 0.35936, 0.94214, 0.19388, 0.92922, 0.25375, 0.88159, 0.32792, 0.8184 ], + "triangles": [ 36, 20, 19, 17, 19, 18, 16, 37, 36, 17, 16, 36, 17, 36, 19, 38, 22, 21, 37, 21, 20, 38, 21, 37, 37, 20, 36, 15, 38, 37, 14, 38, 15, 15, 37, 16, 39, 23, 22, 40, 23, 39, 39, 22, 38, 13, 40, 39, 12, 40, 13, 14, 39, 38, 13, 39, 14, 9, 8, 26, 25, 42, 9, 10, 9, 42, 26, 25, 9, 24, 42, 25, 41, 10, 42, 41, 42, 24, 11, 10, 41, 23, 41, 24, 40, 11, 41, 40, 41, 23, 12, 11, 40, 26, 8, 27, 6, 5, 29, 28, 6, 29, 7, 6, 28, 27, 7, 28, 8, 7, 27, 29, 5, 30, 31, 5, 4, 30, 5, 31, 32, 4, 3, 31, 4, 32, 34, 1, 0, 34, 0, 35, 2, 1, 34, 2, 34, 33, 3, 2, 33, 32, 3, 33 ], + "vertices": [ 1, 20, -19.79, -5.67, 1, 2, 20, -5.62, -22.28, 0.83363, 21, -41.07, -23.3, 0.16637, 2, 20, 22.31, -21.98, 0.65187, 21, -13.17, -21.89, 0.34813, 3, 20, 50.83, -22.11, 0.3172, 21, 15.33, -20.87, 0.43086, 22, -19.67, -21.09, 0.25193, 4, 20, 79.85, -23.29, 0.10792, 21, 44.37, -20.89, 0.35417, 22, 9.3, -19.2, 0.3192, 23, -25.22, -20.06, 0.21872, 4, 21, 74.06, -20.98, 0.16486, 22, 38.93, -17.34, 0.32776, 23, 4.09, -15.38, 0.29831, 24, -30.1, -17.16, 0.20907, 3, 22, 65.54, -17.61, 0.17523, 23, 30.6, -13.11, 0.39173, 24, -4.12, -11.42, 0.43304, 3, 23, 57.03, -15.71, 0.19718, 24, 22.43, -10.53, 0.52971, 25, -12.97, -9.81, 0.27311, 3, 24, 46.05, -13.47, 0.40991, 25, 10.84, -10.17, 0.34747, 26, -24.93, -10.51, 0.24261, 3, 24, 73.39, -18.69, 0.19432, 25, 38.58, -12.41, 0.37177, 26, 2.9, -10.99, 0.43391, 3, 25, 64.06, -14.98, 0.16664, 26, 28.49, -11.94, 0.56756, 27, -7.53, -11.48, 0.2658, 3, 26, 54.58, -12.37, 0.52114, 27, 18.56, -10.93, 0.36168, 14, -3.08, 24.95, 0.11718, 4, 26, 82.97, -14.36, 0.35144, 27, 47.01, -11.86, 0.29521, 14, -13.07, -1.67, 0.25118, 15, -46.3, 1.83, 0.10216, 1, 14, 16.37, -4.67, 1, 2, 14, 34.32, -4.37, 0.53487, 15, 0.74, -4.44, 0.46513, 3, 14, 51.1, -4.08, 0.14611, 15, 17.5, -5.42, 0.54314, 16, -15.51, -2.75, 0.31075, 2, 15, 34.67, -4.01, 0.40714, 16, 1.65, -4.36, 0.59286, 2, 15, 45.09, -3.16, 0.25726, 16, 12.05, -5.34, 0.74274, 2, 15, 53.99, 5.81, 0.25311, 16, 22.38, 1.94, 0.74689, 2, 15, 37.19, 9.56, 0.4029, 16, 6.5, 8.57, 0.5971, 3, 14, 57.07, 14.17, 0.13352, 15, 24.84, 12.33, 0.54644, 16, -5.18, 13.44, 0.32004, 4, 26, 47.09, 33.11, 0.13131, 14, 42.64, 19.08, 0.26349, 15, 10.82, 18.31, 0.49746, 16, -17.94, 21.78, 0.10773, 4, 26, 46.46, 16.09, 0.21159, 27, 9.37, 17.21, 0.1068, 14, 26.51, 24.57, 0.44951, 15, -4.85, 25.01, 0.23211, 3, 26, 46.8, 8.62, 0.40111, 27, 10, 9.75, 0.24543, 14, 19.24, 26.38, 0.35346, 3, 26, 39.71, 8.61, 0.5825, 27, 2.91, 9.47, 0.30792, 14, 21.25, 33.18, 0.10958, 3, 25, 59.17, 5.89, 0.21955, 26, 22.27, 8.58, 0.57946, 27, -14.51, 8.8, 0.20099, 3, 24, 71.84, 0.47, 0.21583, 25, 34.96, 6.47, 0.32263, 26, -1.92, 7.63, 0.46154, 3, 24, 45.81, 3.96, 0.40554, 25, 8.71, 7.12, 0.38602, 26, -28.17, 6.61, 0.20845, 3, 23, 56.79, 2.13, 0.25409, 24, 19.83, 7.12, 0.53006, 25, -17.46, 7.46, 0.21585, 3, 22, 66.18, 3.45, 0.22414, 23, 29.23, 7.92, 0.34135, 24, -8.25, 9.24, 0.43451, 4, 21, 76.6, 4.51, 0.19364, 22, 39.78, 8.26, 0.28887, 23, 2.49, 10.19, 0.33579, 24, -35.06, 7.97, 0.1817, 4, 20, 82.88, 7.08, 0.11658, 21, 46.18, 9.58, 0.35727, 22, 9.09, 11.32, 0.35745, 23, -28.36, 10.3, 0.16869, 3, 20, 54.46, 12.11, 0.35357, 21, 17.57, 13.46, 0.44494, 22, -19.71, 13.32, 0.20149, 2, 20, 24.65, 16.69, 0.65438, 21, -12.4, 16.85, 0.34562, 2, 20, -8.38, 15.21, 0.85331, 21, -45.34, 14.05, 0.14669, 1, 20, -20.19, 4.56, 1, 2, 15, 35.89, 2.53, 0.4051, 16, 3.99, 1.87, 0.5949, 3, 14, 54.38, 5.92, 0.13921, 15, 21.52, 4.3, 0.54495, 16, -9.85, 6.12, 0.31584, 2, 14, 37.79, 7.63, 0.44939, 15, 5.1, 7.27, 0.55061, 3, 26, 65.39, 20.7, 0.11858, 14, 20.6, 11.35, 0.75134, 15, -11.76, 12.27, 0.13008, 3, 26, 65.41, 1.81, 0.3968, 27, 24.3, 0.23, 0.28258, 14, 2.07, 14.98, 0.32063, 3, 26, 48.01, 0.08, 0.55395, 27, 6.94, -0.33, 0.33293, 14, 3.38, 30.47, 0.11312, 3, 25, 65.95, -2.97, 0.19447, 26, 24.96, -1.58, 0.57382, 27, -15.99, -0.43, 0.23171 ], + "hull": 36, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 34, 36, 44, 46, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 0, 70, 4, 66, 2, 68, 40, 42, 42, 44, 26, 28, 28, 30, 46, 48, 48, 50, 36, 38, 38, 40, 30, 32, 32, 34, 18, 52, 16, 54, 14, 56, 12, 58, 10, 60, 8, 62, 6, 64, 32, 72, 72, 38, 30, 74, 74, 40, 72, 74, 28, 76, 76, 42, 74, 76, 26, 78, 78, 44, 76, 78, 24, 80, 80, 46, 78, 80, 22, 82, 82, 48, 80, 82, 20, 84, 84, 50, 82, 84 ], + "width": 100, + "height": 318 + } + }, + "back-leg-path": { + "back-leg-path": { + "type": "path", + "lengths": [ 137.84, 291.79, 600.02 ], + "vertexCount": 9, + "vertices": [ 1, 18, -43.15, 0.61, 1, 1, 18, -1.31, 0.44, 1, 1, 18, 63.08, -0.19, 1, 2, 18, 72.07, 13.66, 0.5, 19, -69.12, -16.08, 0.5, 2, 18, 135.75, 0.27, 0.5, 19, -3.96, -2.03, 0.5, 2, 18, 202.92, -15.14, 0.5, 19, 65, 14.1, 0.5, 1, 19, 71.09, -2.04, 1, 1, 19, 149.06, -1.74, 1, 1, 18, 368.48, -1.81, 1 ] + } + }, + "body": { + "body": { + "type": "mesh", + "uvs": [ 0.35966, 0.01351, 0.26864, 0.04108, 0.26204, 0.0954, 0.34119, 0.14478, 0.39792, 0.19457, 0.40451, 0.24272, 0.38077, 0.27893, 0.3597, 0.3004, 0.34119, 0.31926, 0.34989, 0.34326, 0.35834, 0.36658, 0.36552, 0.40164, 0.37234, 0.43499, 0.38397, 0.4944, 0.3956, 0.55971, 0.39884, 0.59858, 0.40142, 0.62955, 0.40216, 0.65662, 0.3461, 0.71564, 0.27077, 0.78176, 0.2201, 0.82128, 0.17618, 0.85553, 0.13115, 0.88833, 0.08238, 0.92385, 0.00342, 0.9796, 0.18836, 0.99127, 0.32172, 0.99284, 0.46266, 0.99451, 0.61643, 0.98608, 0.71618, 0.97182, 0.61851, 0.95821, 0.48967, 0.95043, 0.39458, 0.94083, 0.27772, 0.92904, 0.23408, 0.9232, 0.26692, 0.89774, 0.30681, 0.86681, 0.34203, 0.83415, 0.38369, 0.7955, 0.45642, 0.72874, 0.52708, 0.66845, 0.56032, 0.63345, 0.57541, 0.60109, 0.59357, 0.56214, 0.61643, 0.49732, 0.63513, 0.43963, 0.64345, 0.40462, 0.77081, 0.39011, 0.84585, 0.37025, 0.90983, 0.35331, 0.9674, 0.31915, 0.97302, 0.28585, 0.96448, 0.23351, 0.8952, 0.1681, 0.79346, 0.12643, 0.75179, 0.10879, 0.71799, 0.09448, 0.66817, 0.07237, 0.61343, 0.04807, 0.47868, 0.01411, 0.49846, 0.38826, 0.66315, 0.34728, 0.67333, 0.30664, 0.8188, 0.29655, 0.80971, 0.24505, 0.72829, 0.17902, 0.68147, 0.13902, 0.59191, 0.09711, 0.3904, 0.09012, 0.53695, 0.14981, 0.57563, 0.19616, 0.64483, 0.25077, 0.79855, 0.33476, 0.61751, 0.97167, 0.4773, 0.97061, 0.23795, 0.95673, 0.15272, 0.92355, 0.14158, 0.94886, 0.23861, 0.86092, 0.51732, 0.30354, 0.50696, 0.34527, 0.50634, 0.43735, 0.50334, 0.4959, 0.51086, 0.32558, 0.50355, 0.41057, 0.19543, 0.89241, 0.36492, 0.9641 ], + "triangles": [ 2, 1, 68, 68, 1, 58, 58, 1, 59, 1, 0, 59, 69, 67, 66, 3, 68, 69, 69, 68, 67, 3, 2, 68, 66, 56, 55, 66, 67, 56, 67, 57, 56, 67, 58, 57, 67, 68, 58, 5, 70, 71, 71, 70, 65, 5, 4, 70, 70, 66, 65, 4, 69, 70, 70, 69, 66, 4, 3, 69, 65, 54, 53, 65, 66, 54, 66, 55, 54, 46, 61, 47, 46, 80, 61, 80, 83, 61, 61, 62, 72, 61, 83, 62, 80, 9, 83, 9, 8, 83, 83, 79, 62, 8, 7, 83, 83, 7, 79, 71, 6, 5, 7, 6, 79, 79, 6, 62, 6, 71, 62, 47, 72, 48, 47, 61, 72, 48, 72, 49, 49, 72, 50, 72, 63, 50, 72, 62, 63, 50, 63, 51, 62, 64, 63, 63, 52, 51, 63, 64, 52, 71, 65, 64, 64, 53, 52, 64, 65, 53, 62, 71, 64, 26, 86, 27, 27, 74, 28, 27, 86, 74, 28, 73, 29, 28, 74, 73, 73, 30, 29, 74, 31, 73, 73, 31, 30, 86, 32, 74, 74, 32, 31, 25, 75, 26, 26, 75, 86, 24, 77, 25, 25, 77, 75, 24, 23, 77, 75, 33, 86, 86, 33, 32, 75, 77, 33, 77, 34, 33, 77, 76, 34, 77, 23, 76, 23, 22, 76, 76, 85, 34, 76, 22, 85, 34, 85, 35, 85, 78, 35, 22, 21, 85, 35, 78, 36, 85, 21, 78, 37, 36, 20, 21, 20, 78, 36, 78, 20, 20, 19, 37, 37, 19, 38, 19, 18, 38, 38, 18, 39, 18, 17, 39, 39, 17, 40, 41, 40, 16, 40, 17, 16, 42, 41, 15, 41, 16, 15, 43, 42, 14, 42, 15, 14, 14, 82, 43, 43, 82, 44, 14, 13, 82, 82, 81, 44, 44, 81, 45, 82, 13, 81, 13, 12, 81, 46, 45, 84, 12, 84, 81, 45, 81, 84, 12, 11, 84, 11, 60, 84, 84, 60, 46, 60, 80, 46, 11, 10, 60, 60, 10, 80, 10, 9, 80 ], + "vertices": [ 1, 6, 30.85, 2.45, 1, 2, 5, 60.42, 12.42, 0.24859, 6, 22.32, 18.18, 0.75141, 2, 5, 39.47, 25.25, 0.44332, 6, -1.06, 25.72, 0.55668, 3, 4, 48.03, 29.46, 0.37431, 5, 14.55, 26.45, 0.47619, 6, -25.57, 21.02, 0.1495, 3, 3, 50.36, 32.58, 0.11243, 4, 24.29, 26.8, 0.64611, 5, -8.99, 30.5, 0.24146, 3, 44, -45.22, -8.81, 0.10611, 3, 28.69, 30.4, 0.49533, 4, 2.89, 30.85, 0.39856, 3, 44, -28.91, -12.45, 0.25802, 3, 12.15, 32.8, 0.60894, 4, -12.29, 37.84, 0.13304, 3, 44, -18.5, -14.05, 0.28714, 3, 2.34, 35.98, 0.51935, 29, -7.6, 18.95, 0.19351, 4, 44, -10.79, -18.35, 0.28478, 28, -42.03, 75.56, 0.10295, 3, -6.36, 37.32, 0.37494, 29, -10.2, 10.26, 0.23733, 3, 44, 0.92, -16.96, 0.34087, 3, -17.28, 35.45, 0.32141, 29, -8.2, -0.67, 0.33772, 4, 44, 10.64, -16.32, 0.32691, 45, -24.05, -14.9, 0.16082, 3, -27.58, 33.67, 0.14432, 29, -6.37, -11.05, 0.36794, 4, 44, 28.5, -15.63, 0.24237, 45, -9.55, -15.11, 0.27028, 46, -45.51, -19.12, 0.12132, 29, -3.65, -27.88, 0.36603, 4, 44, 41.59, -14.89, 0.21761, 45, 6.93, -15.35, 0.33285, 46, -26.85, -17.49, 0.20377, 29, -1.3, -43.28, 0.24577, 3, 45, 33.83, -15.81, 0.47179, 46, 0, -15.85, 0.42627, 47, -31.79, -17.82, 0.10194, 3, 45, 63.39, -16.48, 0.2126, 46, 29.52, -14.22, 0.42737, 47, -2.43, -14.39, 0.36002, 3, 46, 49.79, -15.51, 0.30179, 47, 14.85, -13.08, 0.47127, 48, -21.15, -15.64, 0.22695, 3, 46, 61.1, -13.41, 0.15443, 47, 29.03, -11.65, 0.50848, 48, -3.27, -12.45, 0.33708, 2, 47, 41.24, -10.8, 0.28079, 48, 8.41, -8.79, 0.71921, 2, 48, 36.24, -8.59, 0.56513, 49, -3.02, -8.84, 0.43487, 3, 48, 67.93, -10.06, 0.16322, 49, 28.69, -7.82, 0.53712, 50, -8.12, -7.7, 0.29966, 3, 49, 47.76, -8.47, 0.40201, 50, 10.97, -7.9, 0.45131, 51, -26.34, -6.21, 0.14668, 3, 49, 64.62, -8.06, 0.25017, 50, 27.8, -8.4, 0.46039, 51, -12.77, -8.82, 0.28944, 4, 49, 79.13, -10.24, 0.11858, 50, 42.33, -8.03, 0.26981, 51, 4.53, -8.38, 0.48104, 38, -1.56, 35.6, 0.13057, 2, 51, 20.84, -9.2, 0.728, 38, -5.38, 19.56, 0.272, 1, 38, -11.5, -7.3, 1, 4, 51, 43.23, 16.27, 0.2746, 38, 15.1, -7.51, 0.48158, 39, -12.29, -5.54, 0.12942, 40, -41.77, 0.94, 0.11439, 4, 51, 37, 33.94, 0.18804, 38, 33.71, -4.58, 0.34252, 39, 6.54, -5.76, 0.18297, 40, -23.2, -2.19, 0.28647, 3, 38, 53.35, -1.59, 0.21646, 39, 26.41, -6.09, 0.26516, 40, -3.62, -5.59, 0.51838, 2, 39, 47.99, -1.76, 0.15753, 40, 18.37, -4.66, 0.84247, 1, 40, 33.16, -0.12, 1, 2, 39, 47.98, 10.84, 0.17387, 40, 20.32, 7.79, 0.82613, 4, 51, 9.83, 48.43, 0.17572, 38, 53.29, 18.7, 0.17038, 39, 29.73, 13.92, 0.136, 40, 2.77, 13.66, 0.5179, 4, 51, 11.45, 34.58, 0.26313, 38, 39.26, 20.56, 0.23037, 39, 16.21, 18.1, 0.15679, 40, -9.94, 19.88, 0.3497, 4, 51, 12.41, 17.13, 0.37057, 38, 22.11, 22.5, 0.30409, 39, -0.38, 22.88, 0.18235, 40, -25.59, 27.17, 0.14299, 3, 51, 12.34, 10.44, 0.4464, 38, 15.56, 23.92, 0.2976, 39, -6.59, 25.37, 0.256, 4, 50, 38.15, 11.09, 0.28506, 51, 1.65, 10.97, 0.37544, 38, 17.99, 34.75, 0.18251, 39, -2.39, 35.65, 0.15699, 3, 49, 62.62, 10.94, 0.26064, 50, 26.05, 10.62, 0.49792, 51, -15.15, 10.14, 0.24144, 3, 49, 47.27, 9.67, 0.40348, 50, 9.53, 10.2, 0.4787, 51, -26.59, 11.94, 0.11781, 3, 48, 69.23, 6.98, 0.16044, 49, 28.64, 9.27, 0.53936, 50, -7.95, 9.39, 0.3002, 2, 48, 37.36, 8.01, 0.57649, 49, -3.21, 7.8, 0.42351, 2, 47, 45.49, 7.11, 0.2935, 48, 8.38, 9.61, 0.7065, 3, 46, 62.85, 9, 0.15446, 47, 29.41, 10.82, 0.49324, 48, -8.13, 9.49, 0.3523, 3, 46, 52.15, 9.28, 0.30575, 47, 12.84, 11.74, 0.46742, 48, -26.12, 8.77, 0.22683, 3, 45, 66.66, 11.26, 0.21798, 46, 30.62, 13.69, 0.42844, 47, -3.05, 13.54, 0.35358, 3, 45, 37.7, 16.76, 0.48246, 46, 1.32, 16.92, 0.41752, 47, -32.5, 14.97, 0.10002, 4, 44, 44.35, 22.12, 0.2346, 45, 11.91, 21.43, 0.43853, 46, -24.76, 19.57, 0.2068, 3, -58.29, -7.2, 0.12007, 4, 44, 28.55, 23.57, 0.31081, 45, -3.77, 23.84, 0.19158, 28, -76.76, 29.23, 0.21531, 3, -42.43, -7.46, 0.28231, 3, 44, 22.31, 41.64, 0.18196, 28, -69.84, 12.47, 0.43955, 3, -34.84, -25, 0.37848, 3, 44, 19.78, 51.42, 0.1392, 28, -59.84, 2.53, 0.47896, 3, -23.9, -35.17, 0.38184, 3, 44, 6.03, 61.54, 0.10543, 28, -52.71, -5.88, 0.51007, 3, -17.11, -43.61, 0.38449, 2, 28, -37.16, -13.14, 0.67427, 3, -1.22, -50.83, 0.32573, 1, 28, -22.09, -13.06, 1, 2, 28, 1.45, -10.49, 0.89019, 3, 37.4, -48.18, 0.10981, 3, 28, 30.41, 0.97, 0.4302, 3, 66.35, -36.73, 0.16237, 4, 19.98, -44.2, 0.40743, 2, 4, 41.58, -34.52, 0.68165, 5, -9.45, -33.21, 0.31835, 2, 4, 50.69, -30.62, 0.51066, 5, 0.38, -31.99, 0.48934, 3, 4, 58.07, -27.45, 0.26484, 5, 8.35, -31.01, 0.61475, 6, -18.05, -36.28, 0.12041, 3, 4, 69.4, -22.88, 0.17396, 5, 20.51, -29.78, 0.5644, 6, -6.53, -32.23, 0.26164, 2, 5, 33.86, -28.42, 0.29085, 6, 6.13, -27.77, 0.70915, 2, 5, 56.55, -19.38, 0.17381, 6, 26.05, -13.63, 0.82619, 4, 44, 20.79, 3.26, 0.43236, 45, -12.74, 4.03, 0.19687, 3, -36.22, 13.38, 0.21782, 29, 13.98, -19.25, 0.15294, 4, 44, 2.69, 26.81, 0.26409, 28, -50.86, 29.21, 0.2337, 3, -16.39, -8.73, 0.34628, 29, 35.79, -0.49, 0.15592, 3, 44, -15.65, 28.57, 0.15678, 28, -33.54, 28.78, 0.2916, 3, 2.03, -9.11, 0.55162, 1, 28, -28.18, 8.37, 1, 1, 28, -5.01, 11, 1, 3, 28, 24.12, 24.18, 0.12052, 3, 60.07, -13.52, 0.21384, 4, 20.53, -20.16, 0.66564, 2, 4, 39.64, -17.85, 0.59513, 5, -6.68, -16.66, 0.40487, 3, 4, 60.96, -9.87, 0.26252, 5, 16.02, -14.92, 0.55541, 6, -14.39, -18.85, 0.18206, 2, 5, 32.69, 8.3, 0.58729, 6, -3.66, 7.65, 0.41271, 2, 4, 39.53, 3.1, 0.47136, 5, -0.95, 3.5, 0.52864, 1, 4, 17.89, 2.56, 1, 2, 3, 27.01, -3.64, 0.67245, 4, -8.37, -1.32, 0.32755, 3, 44, -2.63, 46, 0.10033, 28, -45.42, 10.27, 0.52612, 3, -9.64, -27.47, 0.37356, 2, 39, 47.98, 4.75, 0.16598, 40, 19.38, 1.78, 0.83402, 4, 51, 19.56, 50.48, 0.12624, 38, 53.31, 9.51, 0.16908, 39, 28.22, 4.86, 0.24846, 40, -0.13, 4.94, 0.45621, 4, 51, 26.31, 16.82, 0.32786, 38, 18.97, 9.25, 0.38308, 39, -5.69, 10.34, 0.1588, 40, -32.78, 15.61, 0.13026, 2, 51, 16.97, -0.03, 0.66865, 38, 4.23, 21.71, 0.33135, 3, 51, 28.1, 2.86, 0.4826, 38, 4.92, 10.15, 0.31302, 39, -19.39, 13.57, 0.20437, 3, 49, 63.22, -0.58, 0.21069, 50, 25.96, 0.79, 0.49387, 51, -11.02, 1.48, 0.29545, 3, 44, -14.84, 8.09, 0.24448, 28, -33.35, 51.23, 0.16325, 3, 2.6, 13.54, 0.59227, 4, 44, 3.38, 4.96, 0.28616, 28, -51.81, 51.13, 0.16477, 3, -15.87, 13.44, 0.31892, 29, 13.85, -0.53, 0.23015, 4, 44, 46.09, 3.59, 0.2409, 45, 9.06, 3.1, 0.41152, 46, -28.46, 0.64, 0.21862, 29, 17.5, -43.07, 0.12896, 3, 45, 37.23, 1.25, 0.47745, 46, -0.08, 1.26, 0.42163, 47, -36.26, -5.26, 0.10093, 4, 44, -5.23, 6.3, 0.25594, 28, -43.11, 51.32, 0.15579, 3, -7.17, 13.63, 0.42092, 29, 14.17, 8.17, 0.16735, 4, 44, 33.04, 3.37, 0.36685, 45, -3.97, 3.61, 0.31093, 3, -45.33, 9.83, 0.17307, 29, 15.76, -30.15, 0.14915, 4, 49, 77.51, -1.16, 0.11479, 50, 40.24, 0.95, 0.26889, 51, 3.05, 0.72, 0.44973, 38, 7.66, 35.33, 0.16659, 4, 51, 22.73, 34.68, 0.22091, 38, 37.18, 9.39, 0.26956, 39, 12.3, 7.43, 0.20636, 40, -15.46, 9.95, 0.30317 ], + "hull": 60, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 24, 26, 26, 28, 32, 34, 34, 36, 36, 38, 46, 48, 48, 50, 54, 56, 56, 58, 58, 60, 60, 62, 66, 68, 76, 78, 78, 80, 80, 82, 86, 88, 88, 90, 90, 92, 92, 94, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 116, 118, 0, 118, 92, 120, 120, 20, 28, 86, 82, 32, 34, 80, 78, 36, 76, 38, 12, 124, 102, 126, 126, 124, 126, 128, 128, 130, 130, 132, 132, 134, 112, 134, 134, 136, 136, 4, 2, 116, 6, 138, 138, 132, 8, 140, 140, 130, 10, 142, 142, 128, 128, 104, 130, 106, 132, 108, 122, 92, 100, 144, 144, 122, 126, 144, 144, 94, 112, 114, 114, 116, 108, 110, 110, 112, 16, 18, 18, 20, 20, 22, 22, 24, 12, 14, 14, 16, 122, 124, 94, 96, 96, 98, 56, 146, 146, 60, 54, 148, 148, 62, 146, 148, 50, 150, 150, 66, 46, 152, 152, 68, 154, 152, 154, 48, 42, 156, 156, 72, 14, 158, 158, 124, 18, 160, 160, 122, 160, 120, 24, 162, 162, 90, 26, 164, 164, 88, 162, 164, 16, 166, 160, 166, 166, 158, 166, 124, 162, 168, 168, 120, 168, 22, 168, 92, 38, 40, 40, 42, 72, 74, 74, 76, 40, 74, 42, 44, 44, 46, 152, 170, 170, 156, 44, 170, 68, 70, 70, 72, 170, 70, 62, 64, 64, 66, 148, 172, 172, 150, 64, 172, 50, 52, 52, 54, 172, 52, 154, 66, 150, 154, 28, 30, 30, 32, 82, 84, 84, 86, 30, 84 ], + "width": 141, + "height": 452 + } + }, + "front-arm": { + "front-arm": { + "type": "mesh", + "uvs": [ 0.71401, 0.00566, 0.67108, 0.08129, 0.60222, 0.15434, 0.53633, 0.21683, 0.44558, 0.28705, 0.34898, 0.35134, 0.29097, 0.38941, 0.25238, 0.41472, 0.22423, 0.44271, 0.19483, 0.47193, 0.15998, 0.50658, 0.09138, 0.59568, 0.05498, 0.70866, 0.02988, 0.81366, 0.01049, 0.94262, 0.10495, 0.98985, 0.25391, 0.97421, 0.31482, 0.88907, 0.28834, 0.82869, 0.13607, 0.74572, 0.14335, 0.71488, 0.18317, 0.62253, 0.25217, 0.54221, 0.29538, 0.50981, 0.33787, 0.47795, 0.38452, 0.45013, 0.43581, 0.41953, 0.54711, 0.3655, 0.68845, 0.29832, 0.74855, 0.35527, 0.85874, 0.38229, 0.99674, 0.37645, 0.95354, 0.33244, 0.91356, 0.29172, 0.87464, 0.25208, 0.83759, 0.21434, 0.78083, 0.12598, 0.78194, 0.0683, 0.6322, 0.23719, 0.66925, 0.15784, 0.75533, 0.20967, 0.7161, 0.11137 ], + "triangles": [ 30, 29, 33, 30, 32, 31, 40, 41, 36, 39, 41, 40, 40, 36, 35, 38, 39, 40, 28, 38, 40, 34, 28, 40, 34, 40, 35, 28, 34, 33, 29, 28, 33, 30, 33, 32, 41, 1, 0, 37, 41, 0, 36, 41, 37, 39, 1, 41, 39, 2, 1, 19, 12, 20, 13, 12, 19, 18, 15, 19, 16, 18, 17, 15, 13, 19, 15, 14, 13, 15, 18, 16, 21, 10, 22, 11, 10, 21, 20, 11, 21, 12, 11, 20, 9, 8, 23, 22, 9, 23, 10, 9, 22, 26, 5, 4, 25, 5, 26, 6, 5, 25, 24, 6, 25, 7, 6, 24, 23, 7, 24, 8, 7, 23, 38, 2, 39, 3, 2, 38, 27, 3, 38, 27, 38, 28, 4, 3, 27, 26, 4, 27 ], + "vertices": [ 1, 53, 21.67, 6.08, 1, 2, 52, 18.13, 3.37, 0.16553, 53, 3.92, 4.24, 0.83447, 3, 33, -6.12, -15.24, 0.20965, 52, -0.05, 8.86, 0.53629, 6, 43.44, 6.81, 0.25406, 1, 33, 10.36, -12.02, 1, 2, 33, 30.62, -10.09, 0.88822, 34, -7.63, -10.15, 0.11178, 2, 33, 50.57, -9.69, 0.30996, 34, 12.31, -9.61, 0.69004, 2, 34, 24.21, -9.37, 0.86563, 35, -13.43, -6.2, 0.13437, 2, 34, 32.12, -9.22, 0.73143, 35, -5.73, -8.02, 0.26857, 2, 34, 39.35, -7.59, 0.54007, 35, 1.68, -8.25, 0.45993, 2, 34, 46.9, -5.88, 0.29037, 35, 9.42, -8.48, 0.70963, 2, 35, 18.59, -8.76, 0.66539, 36, -15.76, -5.13, 0.33461, 1, 36, 6.03, -8.58, 1, 2, 36, 31.42, -5.98, 0.39257, 37, 0.49, -6.36, 0.60743, 1, 37, 23.8, -9.31, 1, 1, 37, 52.37, -11.28, 1, 1, 37, 62.39, 2.72, 1, 1, 37, 58.29, 24.21, 1, 1, 37, 39.22, 32.48, 1, 1, 37, 26, 28.25, 1, 1, 37, 8.33, 5.63, 1, 2, 36, 28.81, 6.64, 0.48313, 37, 1.49, 6.49, 0.51687, 1, 36, 7.61, 5.9, 1, 3, 34, 51.67, 11.07, 0.10767, 35, 18.26, 6.75, 0.559, 36, -12.35, 10.01, 0.33333, 2, 34, 42.19, 10.25, 0.31464, 35, 8.88, 8.32, 0.68536, 2, 34, 32.87, 9.45, 0.59184, 35, -0.35, 9.86, 0.40816, 2, 34, 23.73, 9.7, 0.83036, 35, -9.14, 12.39, 0.16964, 2, 33, 52.08, 9.88, 0.29921, 34, 13.68, 9.98, 0.70079, 2, 33, 32.19, 12.6, 0.84687, 34, -6.24, 12.55, 0.15313, 1, 6, 9.42, 3.39, 1, 2, 6, -5.05, -1.59, 0.472, 5, 29.16, -0.35, 0.528, 1, 5, 16.13, -11.36, 1, 1, 5, 7.46, -29.44, 1, 2, 6, -8.23, -31.57, 0.5193, 5, 19, -28.74, 0.4807, 1, 6, 2, -28.43, 1, 1, 6, 11.96, -25.37, 1, 1, 6, 21.44, -22.45, 1, 3, 52, 12.7, -14.55, 0.25482, 53, 2.14, -14.4, 0.32231, 6, 42.47, -19.82, 0.42287, 1, 53, 13.64, -8.89, 1, 1, 33, 3.55, 0.91, 1, 2, 52, 1.72, -0.73, 0.5001, 6, 40.07, -2.34, 0.4999, 1, 6, 25.66, -11.25, 1, 3, 52, 13.4, -4.65, 0.33234, 53, 0.86, -4.56, 0.48165, 6, 48.12, -11.66, 0.18601 ], + "hull": 38, + "edges": [ 0, 2, 8, 10, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 70, 72, 72, 74, 0, 74, 56, 76, 6, 8, 76, 6, 4, 6, 4, 78, 78, 80, 80, 70, 2, 82, 82, 72, 82, 78, 78, 76, 2, 4, 56, 80, 56, 66, 62, 64, 64, 66, 66, 68, 68, 70, 44, 46, 46, 48, 18, 20, 46, 18, 10, 12, 12, 14, 48, 50, 50, 52, 12, 50, 14, 16, 16, 18 ], + "width": 145, + "height": 221 + } + }, + "front-arm-path": { + "front-arm-path": { + "type": "path", + "lengths": [ 73.62, 136.68, 266.32 ], + "vertexCount": 9, + "vertices": [ 1, 31, -21.12, -1.6, 1, 1, 31, 0.92, -0.29, 1, 1, 31, 16.41, 0.79, 1, 2, 31, 53.26, -1.74, 0.504, 32, -15.94, 3.84, 0.496, 2, 31, 74.54, 0.19, 0.504, 32, 4.75, -1.5, 0.496, 2, 31, 94.74, 2.31, 0.504, 32, 24.5, -6.3, 0.496, 1, 32, 46.12, -4.58, 1, 1, 32, 66.56, -0.12, 1, 1, 31, 147.94, 32.21, 1 ] + } + }, + "front-leg-path": { + "front-leg-path": { + "type": "path", + "lengths": [ 140.44, 297.38, 610.53 ], + "vertexCount": 9, + "vertices": [ 1, 42, -40.7, -0.42, 1, 1, 42, 1.49, -0.27, 1, 1, 42, 75.42, 0.33, 1, 2, 42, 82.92, 8.5, 0.5, 43, -58.75, -8.54, 0.5, 2, 42, 141.35, 0.53, 0.5, 43, 0.45, 0.71, 0.5, 2, 42, 208.27, -14.84, 0.5, 43, 68.84, 18.53, 0.5, 1, 43, 73.81, 1.42, 1, 1, 43, 156.58, 0.99, 1, 1, 42, 380.6, 0.76, 1 ] + } + }, + "head": { + "head": { "x": 45.65, "y": -7.92, "rotation": -70.44, "width": 87, "height": 102 } + } + } + } +], +"animations": { + "idle": { + "bones": { + "hip": { + "translate": [ + {}, + { "time": 1, "y": -1.98 }, + { "time": 2 } + ] + } + } + }, + "sneak": { + "bones": { + "hip": { + "rotate": [ + { + "value": 14.66, + "curve": [ 0.034, 21.16, 0.094, 32.2 ] + }, + { + "time": 0.1667, + "value": 32.04, + "curve": [ 0.24, 31.88, 0.299, 25.53 ] + }, + { + "time": 0.3333, + "value": 19.42, + "curve": [ 0.378, 11.34, 0.483, -23.11 ] + }, + { + "time": 0.5333, + "value": -23.11, + "curve": [ 0.583, -23.11, 0.695, -16.6 ] + }, + { + "time": 0.7333, + "value": -10.18, + "curve": [ 0.768, -4.38, 0.87, 13.71 ] + }, + { + "time": 0.9, + "value": 19.59, + "curve": [ 0.925, 24.39, 0.977, 32.14 ] + }, + { + "time": 1.0667, + "value": 32.14, + "curve": [ 1.156, 32.14, 1.222, 24.8 ] + }, + { + "time": 1.2333, + "value": 19.95, + "curve": [ 1.255, 10.45, 1.384, -22.75 ] + }, + { + "time": 1.4667, + "value": -22.81, + "curve": [ 1.526, -22.85, 1.604, -15.78 ] + }, + { + "time": 1.6333, + "value": -11.59, + "curve": [ 1.669, -6.54, 1.777, 8.21 ] + }, + { "time": 1.8, "value": 14.66 } + ], + "translate": [ + { + "x": -57.44, + "y": -40.93, + "curve": [ 0.042, -57.44, 0.117, -38.78, 0.059, -40.93, 0.141, -56.62 ] + }, + { + "time": 0.1667, + "x": -16.16, + "y": -79.84, + "curve": [ 0.197, -2.27, 0.252, 52.64, 0.185, -96.63, 0.222, -128.07 ] + }, + { + "time": 0.2667, + "x": 70.71, + "y": -145.2, + "curve": [ 0.281, 88.77, 0.322, 131.81, 0.292, -155.03, 0.316, -159.28 ] + }, + { + "time": 0.3333, + "x": 149.65, + "y": -159.28, + "curve": [ 0.348, 173.79, 0.41, 269.27, 0.358, -159.28, 0.39, -156.25 ] + }, + { + "time": 0.4333, + "x": 326.26, + "y": -144.88, + "curve": [ 0.453, 374.96, 0.507, 506.55, 0.474, -134.19, 0.499, -123.45 ] + }, + { + "time": 0.5333, + "x": 530.41, + "y": -110.2, + "curve": [ 0.571, 564.55, 0.681, 572.07, 0.574, -94.44, 0.695, -64.62 ] + }, + { + "time": 0.7333, + "x": 575.65, + "y": -58.69, + "curve": [ 0.775, 578.48, 0.849, 587.03, 0.779, -51.62, 0.858, -46.32 ] + }, + { + "time": 0.9, + "x": 591.81, + "y": -46.32, + "curve": [ 0.941, 595.64, 1.009, 602.18, 0.978, -46.32, 1.044, -78.01 ] + }, + { + "time": 1.0667, + "x": 640.01, + "y": -96.6, + "curve": [ 1.107, 666.55, 1.122, 683.15, 1.091, -116.12, 1.123, -138.61 ] + }, + { + "time": 1.1333, + "x": 696.11, + "y": -143.1, + "curve": [ 1.177, 747.03, 1.218, 793.29, 1.163, -155.88, 1.208, -159.3 ] + }, + { + "time": 1.2333, + "x": 812.65, + "y": -159.3, + "curve": [ 1.265, 852.01, 1.32, 964.33, 1.258, -159.3, 1.312, -157.52 ] + }, + { + "time": 1.3333, + "x": 986.95, + "y": -153.35, + "curve": [ 1.355, 1022.45, 1.399, 1138.75, 1.363, -147.68, 1.396, -127.4 ] + }, + { + "time": 1.4333, + "x": 1158.47, + "y": -111.89, + "curve": [ 1.477, 1183.93, 1.569, 1222.76, 1.469, -97.24, 1.581, -62.85 ] + }, + { + "time": 1.6333, + "x": 1234.55, + "y": -55.33, + "curve": [ 1.685, 1244.04, 1.758, 1246.53, 1.677, -49.02, 1.758, -40.93 ] + }, + { "time": 1.8, "x": 1246.53, "y": -40.93 } + ] + }, + "front-leg-ik-target": { + "translate": [ + { + "x": -50.43, + "y": 44.62, + "curve": [ 0.049, -44.97, 0.105, -41.18, 0.057, 51.86, 0.128, 56.27 ] + }, + { + "time": 0.1667, + "x": -36.84, + "y": 59.2, + "curve": [ 0.212, -33.59, 0.293, -27.74, 0.216, 62.97, 0.292, 65.99 ] + }, + { + "time": 0.3333, + "x": -24.98, + "y": 65.99, + "curve": [ 0.381, -21.71, 0.483, -10.4, 0.383, 65.99, 0.483, 62.53 ] + }, + { + "time": 0.5333, + "x": -10.4, + "y": 62.53, + "curve": [ 0.578, 129.03, 0.703, 513.49, 0.64, 62.53, 0.683, 107.27 ] + }, + { + "time": 0.7333, + "x": 622.8, + "y": 107.27, + "curve": [ 0.783, 805.42, 0.855, 1093.98, 0.775, 107.27, 0.864, 78.34 ] + }, + { + "time": 0.9, + "x": 1155.36, + "y": 68.21, + "curve": [ 0.934, 1202.01, 1.025, 1235.47, 0.962, 50.92, 1.008, 32.38 ] + }, + { "time": 1.0667, "x": 1235.47, "y": 15.8 }, + { "time": 1.2333, "x": 1235.47, "y": 0.97 }, + { + "time": 1.5667, + "x": 1230.16, + "y": 3.76, + "curve": [ 1.6, 1230.16, 1.651, 1237.18, 1.621, 4.05, 1.654, 16.84 ] + }, + { + "time": 1.7, + "x": 1244, + "y": 27.11, + "curve": [ 1.714, 1245.89, 1.775, 1253.54, 1.727, 33.18, 1.732, 34.85 ] + }, + { "time": 1.8, "x": 1253.54, "y": 44.62 } + ] + }, + "front-foot1": { + "rotate": [ + { + "value": -48.39, + "curve": [ 0.059, -57.97, 0.117, -65.42 ] + }, + { + "time": 0.1667, + "value": -67.97, + "curve": [ 0.217, -70.56, 0.313, -75.7 ] + }, + { + "time": 0.3333, + "value": -76.85, + "curve": [ 0.375, -79.17, 0.432, -91.73 ] + }, + { + "time": 0.4667, + "value": -98.14, + "curve": [ 0.528, -109.44, 0.642, -121.35 ] + }, + { + "time": 0.7, + "value": -121.35, + "curve": [ 0.725, -121.35, 0.781, -96.15 ] + }, + { + "time": 0.8, + "value": -80.19, + "curve": [ 0.813, -68.71, 0.875, 45.59 ] + }, + { + "time": 0.9, + "value": 45.59, + "curve": [ 0.942, 45.59, 1.025, 2.11 ] + }, + { + "time": 1.0667, + "value": 2.11, + "curve": [ 1.108, 2.11, 1.192, 4.65 ] + }, + { "time": 1.2333, "value": 4.65 }, + { + "time": 1.5667, + "value": 5.67, + "curve": [ 1.625, 5.67, 1.706, -28.74 ] + }, + { "time": 1.8, "value": -48.39 } + ], + "scale": [ + { "time": 0.6 }, + { "time": 0.6333, "x": 0.955 }, + { "time": 0.7667, "x": 0.821 }, + { "time": 0.9 }, + { "time": 1.0667, "x": 0.851 }, + { "time": 1.3667 } + ] + }, + "front-foot3": { + "rotate": [ + { + "value": 36.33, + "curve": [ 0.083, 36.33, 0.25, 28.46 ] + }, + { + "time": 0.3333, + "value": 28.46, + "curve": [ 0.375, 28.46, 0.52, 41.88 ] + }, + { + "time": 0.5333, + "value": 30.32, + "curve": [ 0.538, 26.13, 0.558, -28.8 ] + }, + { + "time": 0.5667, + "value": -28.8, + "curve": [ 0.657, -28.8, 0.85, -0.12 ] + }, + { + "time": 0.9, + "value": -0.12, + "curve": [ 0.942, -0.12, 1.104, -11.35 ] + }, + { "time": 1.2333, "value": -11.35 }, + { + "time": 1.5667, + "value": -11.24, + "curve": [ 1.625, -11.24, 1.742, 36.33 ] + }, + { "time": 1.8, "value": 36.33 } + ] + }, + "back-leg-ik-target": { + "translate": [ + { + "x": 405.61, + "y": 86.68, + "curve": [ 0.061, 468.33, 0.125, 523.72, 0.029, 74.49, 0.134, 28.41 ] + }, + { + "time": 0.1667, + "x": 523.72, + "y": 16.64, + "curve": [ 0.208, 523.72, 0.292, 523.03, 0.208, 1.8, 0.292, -5 ] + }, + { "time": 0.3333, "x": 523.03, "y": -5, "curve": "stepped" }, + { + "time": 0.7, + "x": 523.03, + "y": -5, + "curve": [ 0.71, 523.03, 0.773, 522.64, 0.751, -4.59, 0.789, 13.21 ] + }, + { + "time": 0.8, + "x": 526.1, + "y": 16.19, + "curve": [ 0.831, 530, 0.89, 542.56, 0.811, 19.15, 0.864, 37.99 ] + }, + { + "time": 0.9, + "x": 543.64, + "y": 41.87, + "curve": [ 0.951, 549.22, 1.148, 561.34, 0.941, 46.28, 1.142, 52.84 ] + }, + { "time": 1.2, "x": 564.89, "y": 53.26 }, + { "time": 1.4333, "x": 576.45, "y": 52.97 }, + { + "time": 1.5, + "x": 743.06, + "y": 74.82, + "curve": [ 1.533, 817.54, 1.616, 1051.89, 1.523, 82.58, 1.6, 103.62 ] + }, + { + "time": 1.6333, + "x": 1123.78, + "y": 103.62, + "curve": [ 1.657, 1222.31, 1.773, 1670.69, 1.675, 103.62, 1.755, 95 ] + }, + { "time": 1.8, "x": 1816.85, "y": 86.68 } + ] + }, + "back-foot1": { + "rotate": [ + { + "value": 74.18, + "curve": [ 0.042, 74.18, 0.125, -17.01 ] + }, + { + "time": 0.1667, + "value": -17.01, + "curve": [ 0.236, 3.89, 0.292, 5.06 ] + }, + { "time": 0.3333, "value": 5.06 }, + { + "time": 0.7, + "value": 3.74, + "curve": [ 0.75, 3.74, 0.86, -55.55 ] + }, + { + "time": 0.9, + "value": -65.56, + "curve": [ 0.934, -74.04, 1.133, -86.02 ] + }, + { + "time": 1.2, + "value": -89.72, + "curve": [ 1.296, -94.98, 1.35, -96.3 ] + }, + { + "time": 1.4, + "value": -96.3, + "curve": [ 1.463, -95.87, 1.558, -94.73 ] + }, + { + "time": 1.6333, + "value": -92.53, + "curve": [ 1.671, -91.44, 1.758, 74.18 ] + }, + { "time": 1.8, "value": 74.18 } + ], + "scale": [ + { "x": 0.824 }, + { "time": 0.1667, "x": 0.754 }, + { "time": 0.3333, "x": 0.589 }, + { "time": 0.5667, "x": 0.91 }, + { "time": 0.9, "curve": "stepped" }, + { "time": 1.4 }, + { "time": 1.5, "x": 0.845 }, + { "time": 1.8, "x": 0.824 } + ] + }, + "back-foot2": { + "rotate": [ + { "value": 8.14 }, + { "time": 0.1667, "value": -3.21 }, + { "time": 0.7, "value": -1.14 }, + { "time": 0.9, "value": 34.12 }, + { "time": 1.0667, "value": 39.89 }, + { "time": 1.4, "value": 48.21 }, + { "time": 1.4333, "value": 42.68 }, + { "time": 1.4667, "value": -29.71 }, + { "time": 1.5333, "value": -37.64 }, + { "time": 1.6333, "value": -11.91 }, + { "time": 1.8, "value": 8.14 } + ], + "scale": [ + {}, + { "time": 0.1667, "x": 0.835 }, + { "time": 0.3333 } + ] + }, + "neck1": { + "rotate": [ + { + "value": 21.95, + "curve": [ 0.15, 21.95, 0.45, 34.82 ] + }, + { + "time": 0.6, + "value": 34.82, + "curve": [ 0.675, 34.82, 0.825, 21.95 ] + }, + { + "time": 0.9, + "value": 21.95, + "curve": [ 1.042, 21.95, 1.325, 34.82 ] + }, + { + "time": 1.4667, + "value": 34.82, + "curve": [ 1.55, 34.82, 1.717, 21.95 ] + }, + { "time": 1.8, "value": 21.95 } + ] + }, + "neck2": { + "rotate": [ + { + "value": -22.93, + "curve": [ 0.15, -22.93, 0.45, 8.99 ] + }, + { + "time": 0.6, + "value": 8.99, + "curve": [ 0.675, 8.99, 0.825, -22.93 ] + }, + { + "time": 0.9, + "value": -22.93, + "curve": [ 1.042, -22.93, 1.325, 8.99 ] + }, + { + "time": 1.4667, + "value": 8.99, + "curve": [ 1.55, 8.99, 1.717, -22.93 ] + }, + { "time": 1.8, "value": -22.93 } + ], + "translate": [ + { + "curve": [ 0.066, 2.8, 0.168, 10.67, 0.102, 0.67, 0.168, 1.08 ] + }, + { + "time": 0.2667, + "x": 10.67, + "y": 1.08, + "curve": [ 0.371, 10.67, 0.389, -4.87, 0.371, 1.08, 0.478, -3.28 ] + }, + { + "time": 0.6, + "x": -4.5, + "y": -3.24, + "curve": [ 0.726, -4.29, 0.833, -1.87, 0.733, -3.19, 0.848, -0.41 ] + }, + { + "time": 0.9, + "curve": [ 0.939, 1.08, 1.068, 10.67, 0.977, 0.61, 1.068, 1.08 ] + }, + { + "time": 1.1667, + "x": 10.67, + "y": 1.08, + "curve": [ 1.271, 10.67, 1.288, -4.62, 1.271, 1.08, 1.392, -3.23 ] + }, + { + "time": 1.5, + "x": -4.5, + "y": -3.24, + "curve": [ 1.557, -4.48, 1.719, -1.93, 1.604, -3.24, 1.683, -0.96 ] + }, + { "time": 1.8 } + ] + }, + "head": { + "rotate": [ + { + "value": -12.55, + "curve": [ 0.083, -17.57, 0.298, -21.04 ] + }, + { + "time": 0.3667, + "value": -21.03, + "curve": [ 0.481, -21, 0.467, 20.29 ] + }, + { + "time": 0.5333, + "value": 20.46, + "curve": [ 0.583, 20.59, 0.855, -6.59 ] + }, + { + "time": 0.9, + "value": -12.35, + "curve": [ 0.927, -15.76, 1.08, -20.96 ] + }, + { + "time": 1.1667, + "value": -20.95, + "curve": [ 1.258, -20.93, 1.339, 20.11 ] + }, + { + "time": 1.4333, + "value": 20.11, + "curve": [ 1.476, 20.11, 1.708, -6.98 ] + }, + { "time": 1.8, "value": -12.55 } + ], + "scale": [ + { + "curve": [ 0.069, 1, 0.149, 1.058, 0.069, 1, 0.149, 0.954 ] + }, + { + "time": 0.2333, + "x": 1.058, + "y": 0.954, + "curve": [ 0.327, 1.058, 0.429, 0.958, 0.327, 0.954, 0.417, 1.055 ] + }, + { + "time": 0.5333, + "x": 0.955, + "y": 1.057, + "curve": [ 0.662, 0.951, 0.808, 1, 0.676, 1.059, 0.808, 1 ] + }, + { + "time": 0.9, + "curve": [ 0.969, 1, 1.049, 1.058, 0.969, 1, 1.049, 0.954 ] + }, + { + "time": 1.1333, + "x": 1.058, + "y": 0.954, + "curve": [ 1.227, 1.058, 1.329, 0.958, 1.227, 0.954, 1.317, 1.055 ] + }, + { + "time": 1.4333, + "x": 0.955, + "y": 1.057, + "curve": [ 1.562, 0.951, 1.677, 1, 1.576, 1.059, 1.677, 1 ] + }, + { "time": 1.8 } + ] + }, + "back-leg-ik1": { + "scale": [ + { + "x": 2.186, + "curve": [ 0.062, 2.216, 0.145, 2.132, 0.042, 1, 0.125, 1 ] + }, + { + "time": 0.1667, + "x": 2.099, + "curve": [ 0.226, 2.008, 0.324, 1.504, 0.208, 1, 0.292, 1 ] + }, + { + "time": 0.3333, + "x": 1.432, + "curve": [ 0.349, 1.313, 0.398, 1.144, 0.358, 1, 0.408, 1 ] + }, + { + "time": 0.4333, + "x": 1.089, + "curve": [ 0.446, 1.069, 0.508, 1, 0.458, 1, 0.508, 1 ] + }, + { "time": 0.5333, "curve": "stepped" }, + { + "time": 1.0667, + "curve": [ 1.083, 1, 1.117, 0.893, 1.083, 1, 1.117, 1 ] + }, + { + "time": 1.1333, + "x": 0.893, + "curve": [ 1.158, 0.893, 1.201, 0.91, 1.158, 1, 1.208, 1 ] + }, + { + "time": 1.2333, + "x": 0.957, + "curve": [ 1.276, 1.018, 1.383, 2.315, 1.283, 1, 1.383, 1 ] + }, + { + "time": 1.4333, + "x": 2.315, + "curve": [ 1.483, 2.315, 1.583, 0.774, 1.483, 1, 1.583, 1 ] + }, + { + "time": 1.6333, + "x": 0.774, + "curve": [ 1.675, 0.774, 1.725, 2.035, 1.675, 1, 1.758, 1 ] + }, + { "time": 1.8, "x": 2.186 } + ] + }, + "front-leg1": { + "scale": [ + { "y": 1.118 } + ] + }, + "back-leg1": { + "scale": [ + { "y": 1.039 } + ] + }, + "front-leg-ik1": { + "scale": [ + { + "curve": [ 0.067, 1, 0.2, 0.805, 0.067, 1, 0.2, 1 ] + }, + { + "time": 0.2667, + "x": 0.807, + "curve": [ 0.436, 0.812, 0.483, 2.356, 0.283, 1, 0.483, 1 ] + }, + { + "time": 0.5333, + "x": 2.356, + "curve": [ 0.622, 2.356, 0.658, 1, 0.622, 1, 0.658, 1 ] + }, + { + "time": 0.7, + "curve": [ 0.75, 1, 0.85, 2.248, 0.75, 1, 0.85, 1 ] + }, + { + "time": 0.9, + "x": 2.248, + "curve": [ 1.002, 2.248, 1.191, 1.667, 0.942, 1, 1.192, 1 ] + }, + { + "time": 1.2333, + "x": 1.496, + "curve": [ 1.271, 1.345, 1.283, 1.106, 1.25, 1, 1.269, 1 ] + }, + { + "time": 1.3, + "x": 1.048, + "curve": [ 1.345, 0.89, 1.402, 0.779, 1.345, 0.861, 1.402, 0.763 ] + }, + { + "time": 1.4333, + "x": 0.779, + "y": 0.763, + "curve": [ 1.525, 0.779, 1.708, 1, 1.525, 0.763, 1.708, 1 ] + }, + { "time": 1.8 } + ] + }, + "spine2": { + "rotate": [ + { + "value": -10.08, + "curve": [ 0.106, -8.31, 0.2, 3.24 ] + }, + { + "time": 0.2667, + "value": 3.26, + "curve": [ 0.364, 3.29, 0.468, -3.47 ] + }, + { + "time": 0.5, + "value": -4.69, + "curve": [ 0.53, -5.82, 0.654, -11.88 ] + }, + { + "time": 0.7333, + "value": -11.87, + "curve": [ 0.796, -11.87, 0.849, -11.45 ] + }, + { + "time": 0.9, + "value": -10.11, + "curve": [ 0.954, -8.7, 1.058, 4.57 ] + }, + { + "time": 1.1667, + "value": 4.57, + "curve": [ 1.248, 4.57, 1.318, -3.47 ] + }, + { + "time": 1.3333, + "value": -4.27, + "curve": [ 1.342, -4.73, 1.367, -6.79 ] + }, + { + "time": 1.4, + "value": -7.9, + "curve": [ 1.467, -10.1, 1.567, -11.72 ] + }, + { + "time": 1.6333, + "value": -11.72, + "curve": [ 1.675, -11.72, 1.758, -10.77 ] + }, + { "time": 1.8, "value": -10.08 } + ], + "translate": [ + { + "curve": [ 0.063, 3.71, 0.168, 13.66, 0.099, 2.89, 0.168, 5.98 ] + }, + { + "time": 0.2667, + "x": 13.66, + "y": 5.98, + "curve": [ 0.371, 13.66, 0.484, -15.14, 0.371, 5.98, 0.477, -2.96 ] + }, + { + "time": 0.6, + "x": -18.84, + "y": -2.76, + "curve": [ 0.699, -21.91, 0.853, -3.43, 0.703, -2.59, 0.816, -2.13 ] + }, + { + "time": 0.9, + "curve": [ 0.951, 3.71, 1.08, 14.44, 0.965, 1.65, 1.08, 6.21 ] + }, + { + "time": 1.1667, + "x": 14.44, + "y": 6.21, + "curve": [ 1.248, 14.44, 1.308, -9.04, 1.248, 6.21, 1.324, -3.86 ] + }, + { + "time": 1.4, + "x": -8.81, + "y": -3.47, + "curve": [ 1.5, -8.55, 1.718, -3.71, 1.496, -2.97, 1.647, -1.92 ] + }, + { "time": 1.8 } + ], + "scale": [ + { + "curve": [ 0.104, 1.012, 0.165, 1.025, 0.068, 0.995, 0.165, 0.989 ] + }, + { + "time": 0.2667, + "x": 1.025, + "y": 0.989, + "curve": [ 0.375, 1.025, 0.479, 0.991, 0.375, 0.989, 0.492, 1.026 ] + }, + { + "time": 0.6, + "x": 0.991, + "y": 1.026, + "curve": [ 0.727, 0.992, 0.836, 0.995, 0.716, 1.026, 0.833, 1.003 ] + }, + { + "time": 0.9, + "curve": [ 0.975, 1.005, 1.065, 1.026, 0.986, 0.996, 1.065, 0.993 ] + }, + { + "time": 1.1667, + "x": 1.026, + "y": 0.994, + "curve": [ 1.275, 1.026, 1.381, 1.001, 1.257, 0.994, 1.392, 1.019 ] + }, + { + "time": 1.5, + "x": 0.995, + "y": 1.019, + "curve": [ 1.616, 0.99, 1.725, 0.994, 1.616, 1.019, 1.707, 1.007 ] + }, + { "time": 1.8 } + ] + }, + "spine3": { + "rotate": [ + { + "value": -20.41, + "curve": [ 0.067, -20.41, 0.193, -13.51 ] + }, + { + "time": 0.2667, + "value": -11.58, + "curve": [ 0.341, -9.62, 0.43, -9.04 ] + }, + { + "time": 0.5, + "value": -8.98, + "curve": [ 0.558, -8.93, 0.707, -16.66 ] + }, + { + "time": 0.7333, + "value": -17.78, + "curve": [ 0.79, -20.18, 0.858, -20.34 ] + }, + { + "time": 0.9, + "value": -20.34, + "curve": [ 0.967, -20.34, 1.095, -13.66 ] + }, + { + "time": 1.1667, + "value": -11.58, + "curve": [ 1.221, -9.99, 1.339, -9.09 ] + }, + { + "time": 1.4, + "value": -9.03, + "curve": [ 1.5, -8.93, 1.595, -16.15 ] + }, + { + "time": 1.6333, + "value": -17.88, + "curve": [ 1.669, -19.49, 1.758, -20.41 ] + }, + { "time": 1.8, "value": -20.41 } + ], + "translate": [ + { + "curve": [ 0.069, 0, 0.182, 15.54, 0.069, 0, 0.182, 1 ] + }, + { + "time": 0.2667, + "x": 15.54, + "y": 1, + "curve": [ 0.418, 15.54, 0.557, -14.83, 0.418, 1, 0.557, -6.87 ] + }, + { + "time": 0.7333, + "x": -19.11, + "y": -7.14, + "curve": [ 0.789, -20.44, 0.845, 0, 0.789, -7.23, 0.845, 0 ] + }, + { + "time": 0.9, + "curve": [ 0.99, 0, 1.08, 18.18, 0.99, 0, 1.08, 1.43 ] + }, + { + "time": 1.1667, + "x": 18.18, + "y": 1.43, + "curve": [ 1.336, 18.18, 1.497, -2.55, 1.336, 1.43, 1.497, -4.89 ] + }, + { + "time": 1.6333, + "x": -7.9, + "y": -5.31, + "curve": [ 1.694, -10.23, 1.75, 0, 1.694, -5.5, 1.75, 0 ] + }, + { "time": 1.8 } + ] + }, + "back-foot3": { + "rotate": [ + { "value": 11.35 }, + { "time": 0.7, "value": -4.24 }, + { "time": 0.9, "value": 25.49, "curve": "stepped" }, + { "time": 1.4333, "value": 25.49 }, + { "time": 1.4667, "value": 1.43 }, + { "time": 1.5333, "value": -30.52 }, + { "time": 1.6333, "value": -20.54 }, + { "time": 1.8, "value": 11.35 } + ], + "scale": [ + {}, + { "time": 0.1667, "x": 0.835 }, + { "time": 0.3333 } + ] + }, + "spine1": { + "rotate": [ + { + "value": 10.81, + "curve": [ 0.111, 10.81, 0.467, -28.59 ] + }, + { + "time": 0.6, + "value": -28.7, + "curve": [ 0.716, -28.79, 0.753, 10.87 ] + }, + { + "time": 0.9, + "value": 10.98, + "curve": [ 1.038, 11.08, 1.315, -28.92 ] + }, + { + "time": 1.4667, + "value": -28.7, + "curve": [ 1.578, -28.53, 1.612, 10.86 ] + }, + { "time": 1.8, "value": 10.81 } + ] + }, + "spine4": { + "rotate": [ + { + "curve": [ 0.111, -0.06, 0.201, 11.97 ] + }, + { + "time": 0.3333, + "value": 11.91, + "curve": [ 0.44, 11.87, 0.459, 10.35 ] + }, + { + "time": 0.5, + "value": 8.95, + "curve": [ 0.608, 5.25, 0.82, -0.08 ] + }, + { + "time": 0.9, + "value": -0.01, + "curve": [ 0.967, 0.04, 1.084, 11.8 ] + }, + { + "time": 1.1667, + "value": 11.74, + "curve": [ 1.237, 11.69, 1.266, 11.1 ] + }, + { + "time": 1.3333, + "value": 8.99, + "curve": [ 1.394, 7.11, 1.644, -0.13 ] + }, + { "time": 1.8 } + ] + }, + "front-foot2": { + "rotate": [ + { + "curve": [ 0.089, 2.36, 0.142, 3.99 ] + }, + { + "time": 0.1667, + "value": 3.99, + "curve": [ 0.192, 3.99, 0.242, -1.24 ] + }, + { + "time": 0.2667, + "value": -1.24, + "curve": [ 0.417, -1.24, 0.481, 26.87 ] + }, + { + "time": 0.5333, + "value": 26.87, + "curve": [ 0.542, 26.87, 0.553, 3.56 ] + }, + { + "time": 0.5667, + "value": -7.2, + "curve": [ 0.576, -14.84, 0.667, -39.26 ] + }, + { + "time": 0.7, + "value": -39.26, + "curve": [ 0.75, -39.26, 0.85, 11.27 ] + }, + { + "time": 0.9, + "value": 11.27, + "curve": [ 0.942, 11.27, 1.025, -18.18 ] + }, + { + "time": 1.0667, + "value": -18.18, + "curve": [ 1.108, -18.18, 1.192, -2.64 ] + }, + { + "time": 1.2333, + "value": -2.64, + "curve": [ 1.317, -2.64, 1.483, -5.84 ] + }, + { + "time": 1.5667, + "value": -5.84, + "curve": [ 1.625, -5.84, 1.718, -2.5 ] + }, + { "time": 1.8 } + ] + }, + "belly": { + "translate": [ + { + "x": -13.1, + "y": -3.77, + "curve": [ 0.057, -4.17, 0.187, 20.82, 0.08, -3.77, 0.22, -6.19 ] + }, + { + "time": 0.3, + "x": 21.89, + "y": -8.83, + "curve": [ 0.366, 22.49, 0.432, -15.85, 0.391, -11.84, 0.434, -22.7 ] + }, + { + "time": 0.5, + "x": -15.88, + "y": -22.65, + "curve": [ 0.54, -15.89, 0.625, -6.82, 0.552, -22.6, 0.641, -15.57 ] + }, + { + "time": 0.6667, + "x": -7.38, + "y": -15.36, + "curve": [ 0.717, -8.06, 0.735, -23.68, 0.721, -14.93, 0.699, -16.4 ] + }, + { + "time": 0.7667, + "x": -22.39, + "y": -16.35, + "curve": [ 0.823, -20.15, 0.876, -15.43, 0.813, -16.32, 0.875, -12.67 ] + }, + { + "time": 0.9, + "x": -12.86, + "y": -11.82, + "curve": [ 0.944, -8.04, 1.115, 23.54, 0.942, -10.37, 1.105, -6.95 ] + }, + { + "time": 1.1667, + "x": 23.61, + "y": -6.98, + "curve": [ 1.228, 23.7, 1.299, -15.39, 1.231, -7.01, 1.304, -22.51 ] + }, + { + "time": 1.4, + "x": -16.35, + "y": -22.54, + "curve": [ 1.453, -16.86, 1.467, 7.19, 1.435, -22.56, 1.489, -16.13 ] + }, + { + "time": 1.5333, + "x": 6.65, + "y": -15.7, + "curve": [ 1.567, 6.37, 1.611, -0.18, 1.56, -15.45, 1.623, -17.43 ] + }, + { + "time": 1.6333, + "x": -7.99, + "y": -17.27, + "curve": [ 1.65, -13.81, 1.67, -19.85, 1.663, -16.85, 1.692, -12.63 ] + }, + { + "time": 1.7, + "x": -20.31, + "y": -11.38, + "curve": [ 1.738, -20.91, 1.779, -17.19, 1.728, -7.27, 1.775, -3.77 ] + }, + { "time": 1.8, "x": -13.1, "y": -3.77 } + ], + "scale": [ + { + "curve": [ 0.086, 1, 0.189, 1, 0.086, 1, 0.189, 0.799 ] + }, + { + "time": 0.3, + "y": 0.799, + "curve": [ 0.415, 1, 0.54, 1.16, 0.415, 0.799, 0.54, 0.994 ] + }, + { + "time": 0.6667, + "x": 1.16, + "y": 1.053, + "curve": [ 0.745, 1.16, 0.822, 1, 0.745, 1.088, 0.822, 1 ] + }, + { "time": 0.9 } + ] + }, + "butt": { + "translate": [ + {}, + { "time": 0.2333, "x": -11.47, "y": 1.19 }, + { "time": 0.5, "x": -24.61, "y": -1.65 }, + { "time": 0.7667, "x": 13.32, "y": -51.57 }, + { "time": 0.9, "x": 15.89, "y": -41.89 }, + { "time": 1.1333, "x": 1.3, "y": -33.7 }, + { "time": 1.3333, "x": 0.4, "y": -25.95 }, + { "time": 1.8 } + ] + }, + "front-arm-ik1": { + "rotate": [ + { + "value": -5.97, + "curve": [ 0.143, -5.97, 0.347, 7.38 ] + }, + { + "time": 0.5333, + "value": 7.29, + "curve": [ 0.653, 7.23, 0.776, -11.37 ] + }, + { + "time": 0.9, + "value": -11.37, + "curve": [ 1.161, -11.37, 1.193, 6.88 ] + }, + { + "time": 1.4, + "value": 7.29, + "curve": [ 1.52, 7.52, 1.575, -5.97 ] + }, + { "time": 1.8, "value": -5.97 } + ], + "translate": [ + { + "x": 2.29, + "y": 1.79, + "curve": [ 0.131, 2.29, 0.339, 8.51, 0.131, 1.79, 0.339, 5.16 ] + }, + { + "time": 0.5333, + "x": 8.51, + "y": 5.16, + "curve": [ 0.673, 8.51, 0.808, 2.29, 0.673, 5.16, 0.808, 1.79 ] + }, + { + "time": 0.9, + "x": 2.29, + "y": 1.79, + "curve": [ 1.031, 2.29, 1.239, 8.51, 1.031, 1.79, 1.239, 5.16 ] + }, + { + "time": 1.4333, + "x": 8.51, + "y": 5.16, + "curve": [ 1.573, 8.51, 1.706, 2.29, 1.573, 5.16, 1.706, 1.79 ] + }, + { "time": 1.8, "x": 2.29, "y": 1.79 } + ] + }, + "front-arm-ik2": { + "rotate": [ + { + "value": 53, + "curve": [ 0.019, 48.82, 0.104, 20.3 ] + }, + { + "time": 0.2, + "value": 20.16, + "curve": [ 0.284, 20.04, 0.5, 39.81 ] + }, + { + "time": 0.5333, + "value": 44.12, + "curve": [ 0.583, 50.5, 0.682, 78.41 ] + }, + { + "time": 0.7333, + "value": 78.53, + "curve": [ 0.805, 78.7, 0.887, 55.58 ] + }, + { + "time": 0.9, + "value": 53.25, + "curve": [ 0.933, 47.06, 0.994, 20.59 ] + }, + { + "time": 1.0667, + "value": 20.46, + "curve": [ 1.136, 20.34, 1.35, 38.39 ] + }, + { + "time": 1.3667, + "value": 44.24, + "curve": [ 1.383, 49.69, 1.459, 78.6 ] + }, + { + "time": 1.5333, + "value": 78.58, + "curve": [ 1.674, 78.53, 1.733, 67.46 ] + }, + { "time": 1.8, "value": 53 } + ], + "translate": [ + { + "x": 10.24, + "y": 19.21, + "curve": [ 0.342, 10.24, 0.487, -18.39, 0.342, 19.21, 0.487, -6.28 ] + }, + { + "time": 0.6667, + "x": -18.39, + "y": -6.28, + "curve": [ 0.725, -18.39, 0.818, 10.62, 0.725, -6.28, 0.846, 19.21 ] + }, + { + "time": 0.9, + "x": 10.24, + "y": 19.21, + "curve": [ 1.125, 9.2, 1.287, -18.65, 1.125, 19.21, 1.287, -6.28 ] + }, + { + "time": 1.4667, + "x": -18.65, + "y": -6.28, + "curve": [ 1.525, -18.65, 1.648, 8.34, 1.525, -6.28, 1.692, 18.83 ] + }, + { "time": 1.8, "x": 10.24, "y": 19.21 } + ] + }, + "back-arm5": { + "rotate": [ + { + "value": -14.99, + "curve": [ 0.057, -10.64, 0.126, 32.64 ] + }, + { + "time": 0.1667, + "value": 37.97, + "curve": [ 0.231, 44.18, 0.396, 39.19 ] + }, + { + "time": 0.4667, + "value": 32.19, + "curve": [ 0.559, 23.04, 0.654, -66.69 ] + }, + { + "time": 0.7, + "value": -66.37, + "curve": [ 0.788, -65.76, 0.874, -25.82 ] + }, + { + "time": 0.9, + "value": -19.97, + "curve": [ 0.955, -7.73, 1.05, 14.08 ] + }, + { + "time": 1.0667, + "value": 16.08, + "curve": [ 1.107, 20.81, 1.197, 32.54 ] + }, + { + "time": 1.3333, + "value": 32.59, + "curve": [ 1.45, 32.63, 1.504, -28.89 ] + }, + { + "time": 1.5333, + "value": -28.95, + "curve": [ 1.627, -29.13, 1.774, -17.04 ] + }, + { "time": 1.8, "value": -14.99 } + ] + }, + "front-arm5": { + "rotate": [ + { + "value": -42.24, + "curve": [ 0.065, -42.24, 0.148, -21.72 ] + }, + { + "time": 0.2333, + "value": -21.2, + "curve": [ 0.338, -20.58, 0.483, -32.48 ] + }, + { + "time": 0.5333, + "value": -34.22, + "curve": [ 0.637, -37.8, 0.776, -41.94 ] + }, + { + "time": 0.9, + "value": -41.94, + "curve": [ 0.98, -41.94, 1.056, -22.13 ] + }, + { + "time": 1.1, + "value": -22.01, + "curve": [ 1.22, -21.67, 1.363, -32.31 ] + }, + { + "time": 1.4, + "value": -34.22, + "curve": [ 1.45, -36.76, 1.7, -42.24 ] + }, + { "time": 1.8, "value": -42.24 } + ] + }, + "back-arm-ik2": { + "rotate": [ + { + "value": 33.48, + "curve": [ 0.064, 29.9, 0.115, 25.79 ] + }, + { + "time": 0.1333, + "value": 21.98, + "curve": [ 0.173, 13.22, 0.244, -2.66 ] + }, + { + "time": 0.3667, + "value": -2.83, + "curve": [ 0.538, -3.05, 0.6, 41.5 ] + }, + { + "time": 0.6667, + "value": 41.5, + "curve": [ 0.826, 41.5, 0.996, 29.1 ] + }, + { + "time": 1.0333, + "value": 21.98, + "curve": [ 1.081, 12.92, 1.14, -2.25 ] + }, + { + "time": 1.2333, + "value": -2.11, + "curve": [ 1.332, -1.96, 1.424, 43.13 ] + }, + { + "time": 1.5, + "value": 43.13, + "curve": [ 1.58, 43.13, 1.704, 38.93 ] + }, + { "time": 1.8, "value": 33.48 } + ], + "translate": [ + { + "x": 32.39, + "y": 22.46, + "curve": [ 0.072, 48.13, 0.149, 74.32, 0.086, 25.73, 0.149, 26.68 ] + }, + { + "time": 0.2333, + "x": 74.32, + "y": 26.68, + "curve": [ 0.337, 74.32, 0.41, -17.47, 0.337, 26.68, 0.45, 1.89 ] + }, + { + "time": 0.5667, + "x": -18.45, + "y": 0.79, + "curve": [ 0.653, -18.99, 0.868, 24.32, 0.675, -0.22, 0.824, 18.92 ] + }, + { + "time": 0.9, + "x": 32.39, + "y": 22.46, + "curve": [ 0.943, 43.38, 1.049, 74.32, 0.983, 26.32, 1.049, 26.68 ] + }, + { + "time": 1.1333, + "x": 74.32, + "y": 26.68, + "curve": [ 1.237, 74.32, 1.311, -19.86, 1.237, 26.68, 1.35, 1.89 ] + }, + { + "time": 1.4667, + "x": -18.45, + "y": 0.79, + "curve": [ 1.604, -17.21, 1.73, 13.67, 1.575, -0.22, 1.691, 14.44 ] + }, + { "time": 1.8, "x": 32.39, "y": 22.46 } + ] + }, + "back-arm-ik1": { + "rotate": [ + { + "value": 22.62, + "curve": [ 0.076, 9.7, 0.15, -2.57 ] + }, + { + "time": 0.2, + "value": -2.57, + "curve": [ 0.333, -2.57, 0.6, 49.22 ] + }, + { + "time": 0.7333, + "value": 49.22, + "curve": [ 0.825, 49.22, 1.008, -2.57 ] + }, + { + "time": 1.1, + "value": -2.57, + "curve": [ 1.217, -2.57, 1.45, 53.51 ] + }, + { + "time": 1.5667, + "value": 53.51, + "curve": [ 1.625, 53.51, 1.714, 37.59 ] + }, + { "time": 1.8, "value": 22.62 } + ] + } + }, + "ik": { + "back-arm-ik": [ + { "mix": 0 } + ], + "front-arm-ik": [ + { "mix": 0 } + ] + }, + "attachments": { + "default": { + "back-leg-path": { + "back-leg-path": { + "deform": [ + { + "curve": [ 0.158, 0, 0.475, 1 ] + }, + { + "time": 0.6333, + "offset": 6, + "vertices": [ 7.58212, 6.44012, -6.24036, 7.74866, 0, 0, 0, 0, -8.65305, -6.0506, 5.82422, -8.80603 ], + "curve": [ 0.771, 0, 1.005, 0.48 ] + }, + { + "time": 1.2, + "offset": 6, + "vertices": [ 1.75757, 1.49285, -1.44654, 1.79617, 0, 0, 0, 0, -2.00581, -1.40255, 1.35008, -2.04128 ], + "curve": [ 1.215, 0, 1.225, 0.03 ] + }, + { + "time": 1.2333, + "offset": 6, + "vertices": [ 11.07889, 9.19726, -3.09299, 13.71402, 9.39429, 7.76639, -1.7065, 11.99242, 7.47175, 6.42206, -0.41247, 10.03589 ], + "curve": [ 1.246, 0.12, 1.254, 0.27 ] + }, + { + "time": 1.2667, + "offset": 6, + "vertices": [ 10.10474, 8.7463, -2.36874, 12.63447, 8.81438, 7.65029, -1.30674, 11.31577, 7.34177, 6.62058, -0.31555, 9.81713 ], + "curve": [ 1.275, 0.62, 1.286, 0.79 ] + }, + { + "time": 1.3, + "offset": 6, + "vertices": [ 3.4599, -0.42859, 1.07778, 1.47922, 2.60141, -1.15778, 1.78435, 0.60187, 1.62166, -1.84286, 2.4438, -0.3952 ], + "curve": [ 1.354, 0.76, 1.414, 1 ] + }, + { + "time": 1.4333, + "offset": 6, + "vertices": [ -4.08505, -24.14874, 13.996, -20.09798, -4.08505, -24.14874, 13.996, -20.09798, -4.08505, -24.14874, 13.996, -20.09798 ] + }, + { + "time": 1.5, + "vertices": [ 4.67719, -35.44354, 0, 0, -11.37146, 49.53738, 17.39343, -2.33365, 4.23248, 5.68374, -9.56653, -24.74756, 11.45203, -23.93552, -27.49841, -64.4725, 35.55432, -56.67893, 34.69244, -51.5341, 0, 0, 13.30164, -100.17206 ] + }, + { + "time": 1.5333, + "vertices": [ 1.85684, -28.94159, 0, 0, -12.58768, 38.57599, 11.30969, 16.17496, -13.13428, 1.4907, -12.13364, -13.87851, 4.3075, -20.49398, -34.95135, -45.73811, 21.12878, -45.5335, 30.62613, -45.13649, 0, 0, -0.15961, -190.51059 ] + }, + { + "time": 1.5667, + "vertices": [ -0.9635, -22.43964, 0, 0, -13.80389, 27.61459, 1.79449, 28.22318, -27.06714, -9.07224, -6.2052, -1.21002, 1.34003, -9.39124, -24.41541, -19.97638, 12.56061, -16.52356, 26.55981, -38.73888, 0, 0, -13.62085, -280.84912 ] + }, + { + "time": 1.6, + "vertices": [ -0.64233, -14.95974, 0, 0, -9.20259, 18.40971, 13.73107, 41.19725, -42.90586, -9.10037, 4.13583, -3.71808, 4.12607, -1.04554, -17.52923, -15.07591, 15.79826, -11.47559, 17.70652, -25.82589, 0, 0, -9.08056, -187.23253 ] + }, + { + "time": 1.6333, + "vertices": [ -0.32117, -7.47987, 0, 0, -4.60129, 9.20485, 3.14877, 52.3598, -63.25818, -29.05335, -8.042, -8.03761, 2.39843, -12.62472, -33.16191, -11.98693, 14.52224, -26.35249, 8.85326, -12.91294, 0, 0, -4.54028, -93.61627 ] + }, + { "time": 1.6667 } + ] + } + }, + "front-leg-path": { + "front-leg-path": { + "deform": [ + { + "curve": [ 0.075, 0, 0.189, 0.28 ] + }, + { + "time": 0.3, + "vertices": [ 0.05087, -3.38688, 0, 0, 1.38452, 5.97834, -14.9041, 2.01206, 1.44487, -6.80281, -14.9041, 2.01206, 1.44487, -6.80281, -14.9041, 2.01206, 1.44487, -6.80281 ], + "curve": [ 0.323, 0.2, 0.345, 0.35 ] + }, + { + "time": 0.3667, + "vertices": [ 0.07139, -4.75271, 0, 0, 1.94286, 8.38924, 4.65956, 20.90988, -6.00341, 18.98861, -0.14155, 20.92476, -9.36768, 15.5653, -12.20349, 23.97896, -19.98153, 9.06929 ], + "curve": [ 0.39, 0.31, 0.412, 0.53 ] + }, + { + "time": 0.4333, + "vertices": [ 0.08487, -5.65058, 0, 0, 2.3099, 9.97411, 6.09287, 20.58425, -8.39331, 19.11554, -1.86437, 20.6089, -13.96917, 13.44183, -21.85559, 25.6709, -31.56034, 2.67548 ], + "curve": [ 0.438, 0.32, 0.451, 0.54 ] + }, + { + "time": 0.4667, + "vertices": [ 0.09099, -6.05806, 0, 0, 2.47648, 10.69338, 6.80647, 9.95062, -1.39596, 12.12401, -2.58313, 9.97971, -7.97551, 5.429, -26.17287, 15.95288, -28.7332, -7.27536 ], + "curve": [ 0.491, 0.92, 0.521, 0.99 ] + }, + { + "time": 0.5333, + "vertices": [ 0.0938, -6.24474, 0, 0, 2.55279, 11.0229, 3.37726, -9.77658, 9.35123, -4.41786, -6.66855, -9.74546, 2.31187, -11.58077, -31.90691, -3.35485, -19.89651, -25.173 ], + "curve": [ 0.54, 0.52, 0.553, 0.77 ] + }, + { + "time": 0.5667, + "vertices": [ 0.12554, -7.9214, 0, 0, 0.6047, 13.76218, 28.2061, -4.72442, -24.72498, -10.04851, -1.08998, -15.00371, 3.89968, -14.73675, -45.72995, -9.44002, -7.51602, -33.5578, 22.59846, -13.40422, 0, 0, -21.81488, -287.65363 ], + "curve": [ 0.579, 1, 0.592, 1 ] + }, + { + "time": 0.6, + "vertices": [ 0.12969, -8.14021, 0, 0, 0.35046, 14.11967, 49.51149, 65.25623, -80.01971, 39.68078, -0.36196, -15.68993, 4.10689, -15.14861, -62.03986, -28.71517, 2.78595, -56.47927, 41.45007, -31.91446, 0, 0, -19.75009, -6.99966 ] + }, + { + "time": 0.6333, + "vertices": [ 0.16366, -9.90768, 0, 0, -1.90419, 16.9905, 99.3634, 33.16509, -81.26534, 35.35141, -0.72391, -31.37989, 8.2138, -30.29725, -84.11658, -22.14578, -6.24997, -61.22949, 46.91129, -33.41971, 0, 0, -31.98465, -262.01813 ] + }, + { + "time": 0.6667, + "vertices": [ 0.18382, -11.1283, 0, 0, -2.13879, 19.08371, 85.97569, 24.69115, -94.39235, -5.64914, 3.63728, -14.95789, -10.54588, -27.66409, -78.76755, -2.82176, -20.92926, -42.81331, 26.18336, -20.74105, 0, 0, -159.67368, -300.67038 ] + }, + { + "time": 0.7, + "vertices": [ 0.20398, -12.34892, 0, 0, -2.37338, 21.17692, 70.14705, -52.80042, -51.24022, -73.25025, 20.8386, -23.27967, -12.66359, -23.66, -39.22493, -9.41795, -5.46658, 10.6813, 1.18861, 10.38911, 0, 0, -400.93036, -315.42963 ] + }, + { + "time": 0.7333, + "vertices": [ 0.13599, -8.23261, 0, 0, -1.58226, 14.11795, 46.76473, -35.2003, -34.16017, -48.83353, 13.89241, -15.51979, -8.4424, -15.77335, -26.14997, -6.27864, -3.64439, 7.12087, 0.8908, 26.32127, 0, 0, -439.48523, -177.52177 ] + }, + { + "time": 0.7667, + "vertices": [ 0.06799, -4.11631, 0, 0, -0.79113, 7.05898, 23.38236, -17.60015, -17.08008, -24.41677, 6.94621, -7.7599, -4.2212, -7.88667, -13.07498, -3.13932, -1.8222, 3.56044, 6.0198, 23.00182, 0, 0, -365.68442, -226.89883 ] + }, + { "time": 0.8, "curve": "stepped" }, + { "time": 1.1 }, + { + "time": 1.3, + "offset": 6, + "vertices": [ 22.24737, 20.71245, -17.43828, 31.85296, 22.24737, 20.71245, -17.43828, 31.85296, 22.24737, 20.71245, -17.43828, 31.85296 ] + }, + { + "time": 1.4333, + "offset": 6, + "vertices": [ 50.92273, 30.30164, -15.21045, 57.26978, 50.92273, 30.30164, -15.21045, 57.26978, 50.92273, 30.30164, -15.21045, 57.26978 ] + }, + { "time": 1.8 } + ] + } + } + } + } + } +} +} \ No newline at end of file diff --git a/spine-haxe/example/assets/stretchyman-pro.skel b/spine-haxe/example/assets/stretchyman-pro.skel new file mode 100644 index 0000000000..815094d5e9 Binary files /dev/null and b/spine-haxe/example/assets/stretchyman-pro.skel differ diff --git a/spine-haxe/example/assets/stretchyman.atlas b/spine-haxe/example/assets/stretchyman.atlas new file mode 100644 index 0000000000..424bb868d7 --- /dev/null +++ b/spine-haxe/example/assets/stretchyman.atlas @@ -0,0 +1,18 @@ +stretchyman.png + size: 1024, 256 + filter: Linear, Linear +back-arm + bounds: 679, 173, 72, 202 + rotate: 90 +back-leg + bounds: 2, 2, 100, 318 + rotate: 90 +body + bounds: 2, 104, 141, 452 + rotate: 90 +front-arm + bounds: 456, 100, 145, 221 + rotate: 90 +head + bounds: 322, 15, 87, 102 + rotate: 90 diff --git a/spine-haxe/example/assets/stretchyman.png b/spine-haxe/example/assets/stretchyman.png new file mode 100644 index 0000000000..1b969bb8bf Binary files /dev/null and b/spine-haxe/example/assets/stretchyman.png differ diff --git a/spine-haxe/example/assets/tank-pro.json b/spine-haxe/example/assets/tank-pro.json new file mode 100644 index 0000000000..223e045724 --- /dev/null +++ b/spine-haxe/example/assets/tank-pro.json @@ -0,0 +1,5020 @@ +{ +"skeleton": { + "hash": "ulJOWXMG9PE", + "spine": "4.1.17", + "x": -5852.65, + "y": -348.5, + "width": 7202.61, + "height": 1298.88, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { "name": "tank-root", "parent": "root", "y": 146.79 }, + { "name": "tank-treads", "parent": "tank-root", "y": 48.35 }, + { "name": "tank-body", "parent": "tank-treads", "y": 10 }, + { "name": "guntower", "parent": "tank-body", "x": -21.72, "y": 245.48 }, + { "name": "antenna-root", "parent": "guntower", "x": 164.61, "y": 202.53 }, + { "name": "antenna1", "parent": "antenna-root", "length": 40, "rotation": 90, "y": 40, "color": "ffee00ff" }, + { "name": "antenna2", "parent": "antenna1", "length": 42, "x": 42, "color": "ffee00ff" }, + { "name": "antenna3", "parent": "antenna2", "length": 42, "x": 42, "color": "ffee00ff" }, + { "name": "antenna4", "parent": "antenna3", "length": 42, "x": 42, "color": "ffee00ff" }, + { "name": "antenna5", "parent": "antenna4", "length": 42, "x": 42, "color": "ffee00ff" }, + { "name": "antenna6", "parent": "antenna5", "length": 42, "x": 42, "color": "ffee00ff" }, + { "name": "cannon-connector", "parent": "guntower", "x": -235.05, "y": 96.07 }, + { "name": "cannon-target", "parent": "tank-root", "x": -2276.67, "y": 400.17, "color": "0096ffff" }, + { "name": "cannon", "parent": "cannon-connector", "length": 946.68, "rotation": 180, "color": "ff4000ff" }, + { + "name": "machinegun-mount", + "parent": "guntower", + "length": 90.98, + "rotation": 90, + "x": -123.73, + "y": 218.33, + "color": "15ff00ff" + }, + { "name": "machinegun-target", "parent": "tank-root", "x": -2272.76, "y": 607.77, "color": "0096ffff" }, + { + "name": "machinegun", + "parent": "machinegun-mount", + "length": 208.95, + "rotation": 90, + "x": 91.52, + "y": -1.03, + "color": "15ff00ff" + }, + { "name": "machinegun-tip", "parent": "machinegun", "x": 210.43, "y": -12.21 }, + { "name": "rock", "parent": "root", "x": -1925.2, "y": 33.17 }, + { + "name": "smoke-root", + "parent": "tank-root", + "x": -1200.38, + "y": 405.76, + "scaleX": -6.5, + "scaleY": 6.5, + "color": "ff4000ff" + }, + { "name": "smoke-glow", "parent": "smoke-root", "x": 62.92, "y": -0.71, "color": "ff4000ff" }, + { + "name": "smoke1", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke10", + "parent": "smoke-root", + "rotation": -103.52, + "x": 25.45, + "y": 2.48, + "scaleX": 3.9011, + "scaleY": 2.8523, + "color": "ff4000ff" + }, + { + "name": "smoke11", + "parent": "smoke-root", + "rotation": -103.52, + "x": 25.45, + "y": 2.48, + "scaleX": 3.9011, + "scaleY": 2.8523, + "color": "ff4000ff" + }, + { + "name": "smoke12", + "parent": "smoke-root", + "rotation": -103.52, + "x": 25.45, + "y": 2.48, + "scaleX": 3.9011, + "scaleY": 2.8523, + "color": "ff4000ff" + }, + { + "name": "smoke13", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke14", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke15", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke16", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke17", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke18", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke2", + "parent": "smoke-root", + "rotation": -84.14, + "x": 45.06, + "y": 29.7, + "scaleX": 3.3345, + "scaleY": 3.3345, + "color": "ff4000ff" + }, + { + "name": "smoke20", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke21", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke22", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke23", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke24", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke25", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke26", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke27", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke3", + "parent": "smoke-root", + "rotation": -87.91, + "x": 55.15, + "y": -17.5, + "scaleX": 3.0415, + "scaleY": 4.157, + "color": "ff4000ff" + }, + { + "name": "smoke4", + "parent": "smoke-root", + "rotation": -87.91, + "x": 69.25, + "y": 8.01, + "scaleX": 2.1808, + "scaleY": 2.9807, + "color": "ff4000ff" + }, + { + "name": "smoke5", + "parent": "smoke-root", + "rotation": -87.91, + "x": 80.63, + "y": 59.88, + "scaleX": 4.5119, + "scaleY": 2.9725, + "color": "ff4000ff" + }, + { + "name": "smoke6", + "parent": "smoke-root", + "rotation": -87.91, + "x": 96.19, + "y": 25.65, + "scaleX": 3.7912, + "scaleY": 3.0552, + "color": "ff4000ff" + }, + { + "name": "smoke7", + "parent": "smoke-root", + "rotation": 153.68, + "x": 85.65, + "y": -50.47, + "scaleX": 4.8523, + "scaleY": 3.6528, + "color": "ff4000ff" + }, + { + "name": "smoke8", + "parent": "smoke-root", + "rotation": 67.58, + "x": 47.85, + "y": -42.55, + "scaleX": 4.0006, + "scaleY": 3.4796, + "color": "ff4000ff" + }, + { + "name": "smoke9", + "parent": "smoke-root", + "rotation": 150.05, + "x": 104.02, + "y": -8.73, + "scaleX": 4.2074, + "scaleY": 3.0762, + "color": "ff4000ff" + }, + { "name": "tank-glow", "parent": "tank-root", "x": -247.72, "y": 404.37, "scaleX": 1.0582, "scaleY": 0.6785 }, + { + "name": "tread", + "parent": "tank-root", + "length": 82, + "rotation": 180, + "x": -22.9, + "y": 213.86, + "scaleX": 0.9933, + "color": "e64344ff" + }, + { "name": "wheel-mid-center", "parent": "tank-root", "y": -66.21 }, + { "name": "tread-collider1", "parent": "wheel-mid-center", "x": -329.58, "y": -85.44, "color": "ff00fbff" }, + { "name": "tread-collider2", "parent": "wheel-mid-center", "x": -165.95, "y": -85.44, "color": "ff00fbff" }, + { "name": "tread-collider3", "parent": "wheel-mid-center", "y": -85.44, "color": "ff00fbff" }, + { "name": "tread-collider4", "parent": "wheel-mid-center", "x": 163.56, "y": -85.44, "color": "ff00fbff" }, + { "name": "tread-collider5", "parent": "wheel-mid-center", "x": 329.12, "y": -85.44, "color": "ff00fbff" }, + { "name": "tread-gravity1", "parent": "tank-root", "rotation": 180, "x": -175.35, "y": 149.31, "color": "ff00fbff" }, + { "name": "tread-gravity2", "parent": "tank-root", "rotation": 180, "x": 177.89, "y": 144.78, "color": "ff00fbff" }, + { + "name": "tread10", + "parent": "tread", + "length": 82, + "rotation": 48.85, + "x": 662.9, + "y": -120.35, + "color": "e64344ff" + }, + { + "name": "tread11", + "parent": "tread", + "length": 82, + "rotation": 97.99, + "x": 651.5, + "y": -39.69, + "color": "e64344ff" + }, + { + "name": "tread12", + "parent": "tread", + "length": 82, + "rotation": 113.79, + "x": 618.43, + "y": 34.83, + "color": "e64344ff" + }, + { + "name": "tread13", + "parent": "tread", + "length": 82, + "rotation": 122.96, + "x": 573.82, + "y": 103.18, + "color": "e64344ff" + }, + { + "name": "tread14", + "parent": "tread", + "length": 82, + "rotation": 142.01, + "x": 509.19, + "y": 153.3, + "color": "e64344ff" + }, + { + "name": "tread15", + "parent": "tread", + "length": 82, + "rotation": 157.84, + "x": 433.25, + "y": 184.02, + "color": "e64344ff" + }, + { + "name": "tread16", + "parent": "tread", + "length": 82, + "rotation": 157.37, + "x": 357.56, + "y": 215.37, + "color": "e64344ff" + }, + { + "name": "tread17", + "parent": "tread", + "length": 82, + "rotation": 157.29, + "x": 281.92, + "y": 246.8, + "color": "e64344ff" + }, + { + "name": "tread18", + "parent": "tread", + "length": 82, + "rotation": 157.19, + "x": 206.33, + "y": 278.38, + "color": "e64344ff" + }, + { + "name": "tread19", + "parent": "tread", + "length": 82, + "rotation": 157.14, + "x": 130.77, + "y": 310.02, + "color": "e64344ff" + }, + { "name": "tread2", "parent": "tread", "length": 82, "x": 82, "color": "e64344ff" }, + { + "name": "tread20", + "parent": "tread", + "length": 82, + "rotation": 157.34, + "x": 55.1, + "y": 341.41, + "color": "e64344ff" + }, + { + "name": "tread21", + "parent": "tread", + "length": 82, + "rotation": 158.11, + "x": -20.99, + "y": 371.77, + "color": "e64344ff" + }, + { + "name": "tread22", + "parent": "tread", + "length": 82, + "rotation": 157.99, + "x": -97.02, + "y": 402.28, + "color": "e64344ff" + }, + { + "name": "tread23", + "parent": "tread", + "length": 82, + "rotation": 157.59, + "x": -172.83, + "y": 433.33, + "color": "e64344ff" + }, + { + "name": "tread24", + "parent": "tread", + "length": 82, + "rotation": 156.86, + "x": -248.23, + "y": 465.34, + "color": "e64344ff" + }, + { + "name": "tread25", + "parent": "tread", + "length": 82, + "rotation": 177.94, + "x": -330.17, + "y": 468.27, + "color": "e64344ff" + }, + { + "name": "tread26", + "parent": "tread", + "length": 82, + "rotation": -169.55, + "x": -410.81, + "y": 453.5, + "color": "e64344ff" + }, + { + "name": "tread27", + "parent": "tread", + "length": 82, + "rotation": -163.86, + "x": -489.58, + "y": 430.86, + "color": "e64344ff" + }, + { + "name": "tread28", + "parent": "tread", + "length": 82, + "rotation": -139.13, + "x": -551.59, + "y": 377.57, + "color": "e64344ff" + }, + { + "name": "tread29", + "parent": "tread", + "length": 82, + "rotation": -89.04, + "x": -550.21, + "y": 296.14, + "color": "e64344ff" + }, + { + "name": "tread3", + "parent": "tread", + "length": 82, + "rotation": -8.91, + "x": 163.01, + "y": -12.61, + "color": "e64344ff" + }, + { + "name": "tread30", + "parent": "tread", + "length": 82, + "rotation": -38.99, + "x": -486.48, + "y": 244.89, + "color": "e64344ff" + }, + { + "name": "tread31", + "parent": "tread", + "length": 82, + "rotation": -20.04, + "x": -409.45, + "y": 216.98, + "color": "e64344ff" + }, + { + "name": "tread32", + "parent": "tread", + "length": 82, + "rotation": -46.24, + "x": -352.74, + "y": 158.15, + "color": "e64344ff" + }, + { + "name": "tread33", + "parent": "tread", + "length": 82, + "rotation": -27.95, + "x": -280.3, + "y": 119.98, + "color": "e64344ff" + }, + { + "name": "tread34", + "parent": "tread", + "length": 82, + "rotation": 10.46, + "x": -199.66, + "y": 134.77, + "color": "e64344ff" + }, + { + "name": "tread35", + "parent": "tread", + "length": 82, + "rotation": -17.9, + "x": -121.63, + "y": 109.73, + "color": "e64344ff" + }, + { + "name": "tread36", + "parent": "tread", + "length": 82, + "rotation": -36.82, + "x": -55.99, + "y": 60.92, + "color": "fbff00ff" + }, + { + "name": "tread4", + "parent": "tread", + "length": 82, + "rotation": -29.27, + "x": 234.55, + "y": -52.43, + "color": "e64344ff" + }, + { + "name": "tread5", + "parent": "tread", + "length": 82, + "rotation": -45.26, + "x": 292.26, + "y": -110.28, + "color": "e64344ff" + }, + { + "name": "tread6", + "parent": "tread", + "length": 82, + "rotation": -15.29, + "x": 371.36, + "y": -131.76, + "color": "e64344ff" + }, + { + "name": "tread7", + "parent": "tread", + "length": 82, + "rotation": -5.49, + "x": 452.98, + "y": -139.55, + "color": "e64344ff" + }, + { + "name": "tread8", + "parent": "tread", + "length": 82, + "rotation": -24.99, + "x": 527.31, + "y": -173.95, + "color": "e64344ff" + }, + { + "name": "tread9", + "parent": "tread", + "length": 82, + "rotation": -5.44, + "x": 608.94, + "y": -181.68, + "color": "e64344ff" + }, + { "name": "wheel-big-root1", "parent": "tank-treads", "x": -549.6, "y": 14.4, "color": "abe323ff" }, + { "name": "wheel-big-root2", "parent": "tank-treads", "x": 547.34, "y": 14.4 }, + { "name": "wheel-big1", "parent": "wheel-big-root1", "x": -0.02, "color": "abe323ff" }, + { "name": "wheel-big2", "parent": "wheel-big-root2" }, + { "name": "wheel-mid-root1", "parent": "wheel-mid-center", "x": -410.57, "color": "abe323ff" }, + { "name": "wheel-mid-root2", "parent": "wheel-mid-center", "x": -246.95 }, + { "name": "wheel-mid-root3", "parent": "wheel-mid-center", "x": -82.73 }, + { "name": "wheel-mid-root4", "parent": "wheel-mid-center", "x": 80.89 }, + { "name": "wheel-mid-root5", "parent": "wheel-mid-center", "x": 244.51 }, + { "name": "wheel-mid-root6", "parent": "wheel-mid-center", "x": 408.74 }, + { "name": "wheel-mid1", "parent": "wheel-mid-root1", "color": "abe323ff" }, + { "name": "wheel-mid2", "parent": "wheel-mid-root2" }, + { "name": "wheel-mid3", "parent": "wheel-mid-root3" }, + { "name": "wheel-mid4", "parent": "wheel-mid-root4" }, + { "name": "wheel-mid5", "parent": "wheel-mid-root5" }, + { "name": "wheel-mid6", "parent": "wheel-mid-root6" }, + { "name": "wheel-small-root1", "parent": "tank-treads", "x": -337.39, "y": 109.43 }, + { "name": "wheel-small-root2", "parent": "tank-treads", "x": 0.09, "y": 109.43 }, + { "name": "wheel-small-root3", "parent": "tank-treads", "x": 334.69, "y": 109.43 }, + { "name": "wheel-small1", "parent": "wheel-small-root1", "color": "abe323ff" }, + { "name": "wheel-small2", "parent": "wheel-small-root2" }, + { "name": "wheel-small3", "parent": "wheel-small-root3" } +], +"slots": [ + { "name": "rock", "bone": "rock", "attachment": "rock" }, + { "name": "ground", "bone": "root", "attachment": "ground" }, + { "name": "ground2", "bone": "root", "attachment": "ground" }, + { "name": "ground3", "bone": "root", "attachment": "ground" }, + { "name": "ground4", "bone": "root", "attachment": "ground" }, + { "name": "ground5", "bone": "root", "attachment": "ground" }, + { "name": "ground6", "bone": "root", "attachment": "ground" }, + { "name": "ground7", "bone": "root", "attachment": "ground" }, + { "name": "tank-body-shadow", "bone": "tank-body", "color": "ffffffb9", "attachment": "tank-bottom-shadow" }, + { "name": "bottom", "bone": "tank-body", "attachment": "tank-bottom" }, + { "name": "tread-inside1", "bone": "tread", "attachment": "tread-inside" }, + { "name": "tread-inside53", "bone": "tread27", "attachment": "tread-inside" }, + { "name": "tread-inside27", "bone": "tread14", "attachment": "tread-inside" }, + { "name": "tread-inside3", "bone": "tread2", "attachment": "tread-inside" }, + { "name": "tread-inside55", "bone": "tread28", "attachment": "tread-inside" }, + { "name": "tread-inside29", "bone": "tread15", "attachment": "tread-inside" }, + { "name": "tread-inside5", "bone": "tread3", "attachment": "tread-inside" }, + { "name": "tread-inside57", "bone": "tread29", "attachment": "tread-inside" }, + { "name": "tread-inside31", "bone": "tread16", "attachment": "tread-inside" }, + { "name": "tread-inside7", "bone": "tread4", "attachment": "tread-inside" }, + { "name": "tread-inside59", "bone": "tread30", "attachment": "tread-inside" }, + { "name": "tread-inside33", "bone": "tread17", "attachment": "tread-inside" }, + { "name": "tread-inside9", "bone": "tread5", "attachment": "tread-inside" }, + { "name": "tread-inside61", "bone": "tread31", "attachment": "tread-inside" }, + { "name": "tread-inside35", "bone": "tread18", "attachment": "tread-inside" }, + { "name": "tread-inside11", "bone": "tread6", "attachment": "tread-inside" }, + { "name": "tread-inside63", "bone": "tread32", "attachment": "tread-inside" }, + { "name": "tread-inside37", "bone": "tread19", "attachment": "tread-inside" }, + { "name": "tread-inside13", "bone": "tread7", "attachment": "tread-inside" }, + { "name": "tread-inside65", "bone": "tread33", "attachment": "tread-inside" }, + { "name": "tread-inside39", "bone": "tread20", "attachment": "tread-inside" }, + { "name": "tread-inside15", "bone": "tread8", "attachment": "tread-inside" }, + { "name": "tread-inside67", "bone": "tread34", "attachment": "tread-inside" }, + { "name": "tread-inside69", "bone": "tread35", "attachment": "tread-inside" }, + { "name": "tread-inside71", "bone": "tread36", "attachment": "tread-inside" }, + { "name": "tread-inside41", "bone": "tread21", "attachment": "tread-inside" }, + { "name": "tread-inside17", "bone": "tread9", "attachment": "tread-inside" }, + { "name": "tread-inside43", "bone": "tread22", "attachment": "tread-inside" }, + { "name": "tread-inside19", "bone": "tread10", "attachment": "tread-inside" }, + { "name": "tread-inside45", "bone": "tread23", "attachment": "tread-inside" }, + { "name": "tread-inside21", "bone": "tread11", "attachment": "tread-inside" }, + { "name": "tread-inside47", "bone": "tread24", "attachment": "tread-inside" }, + { "name": "tread-inside23", "bone": "tread12", "attachment": "tread-inside" }, + { "name": "tread-inside49", "bone": "tread25", "attachment": "tread-inside" }, + { "name": "tread-inside25", "bone": "tread13", "attachment": "tread-inside" }, + { "name": "tread-inside51", "bone": "tread26", "attachment": "tread-inside" }, + { "name": "tread-inside2", "bone": "tread", "attachment": "tread-inside" }, + { "name": "tread-inside54", "bone": "tread27", "attachment": "tread-inside" }, + { "name": "tread-inside28", "bone": "tread14", "attachment": "tread-inside" }, + { "name": "tread-inside4", "bone": "tread2", "attachment": "tread-inside" }, + { "name": "tread-inside56", "bone": "tread28", "attachment": "tread-inside" }, + { "name": "tread-inside30", "bone": "tread15", "attachment": "tread-inside" }, + { "name": "tread-inside6", "bone": "tread3", "attachment": "tread-inside" }, + { "name": "tread-inside58", "bone": "tread29", "attachment": "tread-inside" }, + { "name": "tread-inside32", "bone": "tread16", "attachment": "tread-inside" }, + { "name": "tread-inside8", "bone": "tread4", "attachment": "tread-inside" }, + { "name": "tread-inside60", "bone": "tread30", "attachment": "tread-inside" }, + { "name": "tread-inside34", "bone": "tread17", "attachment": "tread-inside" }, + { "name": "tread-inside10", "bone": "tread5", "attachment": "tread-inside" }, + { "name": "tread-inside62", "bone": "tread31", "attachment": "tread-inside" }, + { "name": "tread-inside36", "bone": "tread18", "attachment": "tread-inside" }, + { "name": "tread-inside12", "bone": "tread6", "attachment": "tread-inside" }, + { "name": "tread-inside64", "bone": "tread32", "attachment": "tread-inside" }, + { "name": "tread-inside38", "bone": "tread19", "attachment": "tread-inside" }, + { "name": "tread-inside14", "bone": "tread7", "attachment": "tread-inside" }, + { "name": "tread-inside66", "bone": "tread33", "attachment": "tread-inside" }, + { "name": "tread-inside40", "bone": "tread20", "attachment": "tread-inside" }, + { "name": "tread-inside16", "bone": "tread8", "attachment": "tread-inside" }, + { "name": "tread-inside68", "bone": "tread34", "attachment": "tread-inside" }, + { "name": "tread-inside70", "bone": "tread35", "attachment": "tread-inside" }, + { "name": "tread-inside72", "bone": "tread36", "attachment": "tread-inside" }, + { "name": "tread-inside42", "bone": "tread21", "attachment": "tread-inside" }, + { "name": "tread-inside18", "bone": "tread9", "attachment": "tread-inside" }, + { "name": "tread-inside44", "bone": "tread22", "attachment": "tread-inside" }, + { "name": "tread-inside20", "bone": "tread10", "attachment": "tread-inside" }, + { "name": "tread-inside46", "bone": "tread23", "attachment": "tread-inside" }, + { "name": "tread-inside22", "bone": "tread11", "attachment": "tread-inside" }, + { "name": "tread-inside48", "bone": "tread24", "attachment": "tread-inside" }, + { "name": "tread-inside24", "bone": "tread12", "attachment": "tread-inside" }, + { "name": "tread-inside50", "bone": "tread25", "attachment": "tread-inside" }, + { "name": "tread-inside26", "bone": "tread13", "attachment": "tread-inside" }, + { "name": "tread-inside52", "bone": "tread26", "attachment": "tread-inside" }, + { "name": "wheel-big", "bone": "wheel-big1", "color": "dbdbdbff", "attachment": "wheel-big" }, + { "name": "wheel-big2", "bone": "wheel-big2", "color": "dbdbdbff", "attachment": "wheel-big" }, + { "name": "wheel-mid", "bone": "wheel-mid1", "attachment": "wheel-mid" }, + { "name": "wheel-mid2", "bone": "wheel-mid2", "attachment": "wheel-mid" }, + { "name": "wheel-mid3", "bone": "wheel-mid3", "attachment": "wheel-mid" }, + { "name": "wheel-mid4", "bone": "wheel-mid4", "attachment": "wheel-mid" }, + { "name": "wheel-mid5", "bone": "wheel-mid5", "attachment": "wheel-mid" }, + { "name": "wheel-mid6", "bone": "wheel-mid6", "attachment": "wheel-mid" }, + { "name": "wheel-small", "bone": "wheel-small1", "attachment": "wheel-small" }, + { "name": "wheel-small2", "bone": "wheel-small2", "attachment": "wheel-small" }, + { "name": "wheel-small3", "bone": "wheel-small3", "attachment": "wheel-small" }, + { "name": "wheel-mid-overlay", "bone": "wheel-mid-root1", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" }, + { "name": "wheel-mid-overlay2", "bone": "wheel-mid-root2", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" }, + { "name": "wheel-mid-overlay3", "bone": "wheel-mid-root3", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" }, + { "name": "wheel-mid-overlay4", "bone": "wheel-mid-root4", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" }, + { "name": "wheel-mid-overlay5", "bone": "wheel-mid-root5", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" }, + { "name": "wheel-mid-overlay6", "bone": "wheel-mid-root6", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" }, + { "name": "wheel-big-overlay1", "bone": "wheel-big-root1", "color": "ffffffe9", "attachment": "wheel-big-overlay", "blend": "multiply" }, + { "name": "wheel-big-overlay2", "bone": "wheel-big-root2", "color": "ffffffe9", "attachment": "wheel-big-overlay", "blend": "multiply" }, + { "name": "treads-path", "bone": "tank-root", "attachment": "treads-path" }, + { "name": "tread", "bone": "tread", "attachment": "tread" }, + { "name": "tread27", "bone": "tread27", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread14", "bone": "tread14", "attachment": "tread" }, + { "name": "tread2", "bone": "tread2", "attachment": "tread" }, + { "name": "tread28", "bone": "tread28", "attachment": "tread" }, + { "name": "tread15", "bone": "tread15", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread3", "bone": "tread3", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread29", "bone": "tread29", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread16", "bone": "tread16", "attachment": "tread" }, + { "name": "tread4", "bone": "tread4", "attachment": "tread" }, + { "name": "tread30", "bone": "tread30", "attachment": "tread" }, + { "name": "tread17", "bone": "tread17", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread5", "bone": "tread5", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread31", "bone": "tread31", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread18", "bone": "tread18", "attachment": "tread" }, + { "name": "tread6", "bone": "tread6", "attachment": "tread" }, + { "name": "tread32", "bone": "tread32", "attachment": "tread" }, + { "name": "tread19", "bone": "tread19", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread7", "bone": "tread7", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread33", "bone": "tread33", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread20", "bone": "tread20", "attachment": "tread" }, + { "name": "tread8", "bone": "tread8", "attachment": "tread" }, + { "name": "tread34", "bone": "tread34", "attachment": "tread" }, + { "name": "tread35", "bone": "tread35", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread36", "bone": "tread36", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread21", "bone": "tread21", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread9", "bone": "tread9", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread22", "bone": "tread22", "attachment": "tread" }, + { "name": "tread10", "bone": "tread10", "attachment": "tread" }, + { "name": "tread23", "bone": "tread23", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread11", "bone": "tread11", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread24", "bone": "tread24", "attachment": "tread" }, + { "name": "tread12", "bone": "tread12", "attachment": "tread" }, + { "name": "tread25", "bone": "tread25", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread13", "bone": "tread13", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread26", "bone": "tread26", "attachment": "tread" }, + { "name": "machinegun", "bone": "machinegun", "attachment": "machinegun" }, + { "name": "machinegun-mount", "bone": "machinegun-mount", "attachment": "machinegun-mount" }, + { "name": "tank-top", "bone": "tank-body", "attachment": "tank-top" }, + { "name": "guntower", "bone": "guntower", "attachment": "guntower" }, + { "name": "cannon", "bone": "cannon", "attachment": "cannon" }, + { "name": "cannon-connector", "bone": "cannon-connector", "attachment": "cannon-connector" }, + { "name": "antenna", "bone": "antenna-root", "attachment": "antenna" }, + { "name": "smoke-puff1-bg", "bone": "smoke1", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg13", "bone": "smoke13", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg14", "bone": "smoke14", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg15", "bone": "smoke15", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg16", "bone": "smoke16", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg17", "bone": "smoke17", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg18", "bone": "smoke18", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg20", "bone": "smoke20", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg21", "bone": "smoke21", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg22", "bone": "smoke22", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg23", "bone": "smoke23", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg24", "bone": "smoke24", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg25", "bone": "smoke25", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg26", "bone": "smoke26", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg27", "bone": "smoke27", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg2", "bone": "smoke2", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg5", "bone": "smoke5", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg6", "bone": "smoke6", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg7", "bone": "smoke7", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg10", "bone": "smoke10", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg11", "bone": "smoke11", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg12", "bone": "smoke12", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg8", "bone": "smoke8", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg9", "bone": "smoke9", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg4", "bone": "smoke4", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg3", "bone": "smoke3", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg", "bone": "smoke1", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg13", "bone": "smoke13", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg14", "bone": "smoke14", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg15", "bone": "smoke15", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg16", "bone": "smoke16", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg17", "bone": "smoke17", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg18", "bone": "smoke18", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg20", "bone": "smoke20", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg21", "bone": "smoke21", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg22", "bone": "smoke22", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg23", "bone": "smoke23", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg24", "bone": "smoke24", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg25", "bone": "smoke25", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg26", "bone": "smoke26", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg27", "bone": "smoke27", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg2", "bone": "smoke2", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg5", "bone": "smoke5", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg6", "bone": "smoke6", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg7", "bone": "smoke7", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg10", "bone": "smoke10", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg11", "bone": "smoke11", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg12", "bone": "smoke12", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg8", "bone": "smoke8", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg9", "bone": "smoke9", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg4", "bone": "smoke4", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg3", "bone": "smoke3", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-glow", "bone": "smoke-glow", "blend": "additive" }, + { "name": "clipping", "bone": "tank-body", "attachment": "clipping" }, + { "name": "tank-glow", "bone": "tank-glow", "color": "fcdc6da7", "blend": "additive" } +], +"ik": [ + { + "name": "cannon-ik", + "bones": [ "cannon" ], + "target": "cannon-target" + }, + { + "name": "machinegun-ik", + "order": 1, + "bones": [ "machinegun" ], + "target": "machinegun-target", + "mix": 0 + } +], +"transform": [ + { + "name": "wheel-big-transform", + "order": 8, + "bones": [ "wheel-big2" ], + "target": "wheel-big1", + "rotation": 65.6, + "mixX": 0, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "wheel-mid1-transform", + "order": 3, + "bones": [ "wheel-mid2", "wheel-mid4" ], + "target": "wheel-mid1", + "rotation": 93, + "mixX": 0, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "wheel-mid2-transform", + "order": 4, + "bones": [ "wheel-mid3", "wheel-mid5" ], + "target": "wheel-mid1", + "rotation": -89, + "mixX": 0, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "wheel-mid3-transform", + "order": 5, + "bones": [ "wheel-mid6" ], + "target": "wheel-mid1", + "rotation": -152.6, + "mixX": 0, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "wheel-small1-transform", + "order": 6, + "bones": [ "wheel-small2" ], + "target": "wheel-small1", + "rotation": 87, + "mixX": 0, + "mixScaleX": 0, + "mixShearY": 0 + }, + { + "name": "wheel-small2-transform", + "order": 7, + "bones": [ "wheel-small3" ], + "target": "wheel-small1", + "rotation": 54.9, + "mixX": 0, + "mixScaleX": 0, + "mixShearY": 0 + } +], +"path": [ + { + "name": "treads-path", + "order": 2, + "bones": [ "tread", "tread2", "tread3", "tread4", "tread5", "tread6", "tread7", "tread8", "tread9", "tread10", "tread11", "tread12", "tread13", "tread14", "tread15", "tread16", "tread17", "tread18", "tread19", "tread20", "tread21", "tread22", "tread23", "tread24", "tread25", "tread26", "tread27", "tread28", "tread29", "tread30", "tread31", "tread32", "tread33", "tread34", "tread35", "tread36" ], + "target": "treads-path", + "rotateMode": "chain" + } +], +"skins": [ + { + "name": "default", + "attachments": { + "antenna": { + "antenna": { + "type": "mesh", + "uvs": [ 0.64286, 0.07876, 0.65354, 0.1535, 0.66325, 0.22138, 0.67367, 0.29433, 0.68383, 0.36543, 0.6936, 0.43374, 0.70311, 0.5003, 0.71311, 0.57031, 0.72327, 0.64139, 0.73406, 0.71689, 0.74441, 0.7893, 0.75614, 0.87141, 0.76905, 0.94311, 1, 0.94311, 1, 1, 0, 1, 0, 0.94311, 0.20106, 0.94311, 0.20106, 0.87094, 0.21461, 0.78847, 0.22651, 0.71607, 0.23886, 0.64099, 0.25036, 0.57105, 0.26206, 0.49983, 0.27306, 0.43291, 0.2843, 0.36454, 0.29593, 0.29382, 0.308, 0.22038, 0.319, 0.15345, 0.33142, 0.07796, 0.34423, 0, 0.63161, 0 ], + "triangles": [ 30, 31, 0, 29, 30, 0, 29, 0, 1, 28, 29, 1, 28, 1, 2, 27, 28, 2, 27, 2, 3, 26, 3, 4, 25, 26, 4, 25, 4, 5, 26, 27, 3, 24, 5, 6, 23, 24, 6, 7, 23, 6, 24, 25, 5, 22, 7, 8, 21, 22, 8, 21, 8, 9, 7, 22, 23, 20, 9, 10, 19, 20, 10, 20, 21, 9, 19, 10, 11, 18, 19, 11, 17, 18, 11, 17, 11, 12, 15, 16, 17, 12, 13, 14, 15, 17, 12, 14, 15, 12 ], + "vertices": [ 2, 10, 65.38, -3.14, 0.3125, 11, 23.38, -3.14, 0.6875, 2, 10, 42.73, -3.38, 0.66667, 11, 0.73, -3.38, 0.33333, 2, 9, 64.17, -3.59, 0.33333, 10, 22.17, -3.59, 0.66667, 2, 9, 42.06, -3.82, 0.66667, 10, 0.06, -3.82, 0.33333, 2, 8, 62.52, -4.04, 0.33333, 9, 20.52, -4.04, 0.66667, 2, 8, 41.82, -4.26, 0.66667, 9, -0.18, -4.26, 0.33333, 2, 7, 63.65, -4.47, 0.33333, 8, 21.65, -4.47, 0.66667, 2, 7, 42.44, -4.69, 0.66667, 8, 0.44, -4.69, 0.33333, 2, 6, 62.9, -4.91, 0.33333, 7, 20.9, -4.91, 0.66667, 2, 6, 40.03, -5.15, 0.66667, 7, -1.97, -5.15, 0.33333, 2, 5, 5.38, 58.09, 0.4, 6, 18.09, -5.38, 0.6, 1, 5, 5.64, 33.21, 1, 1, 5, 5.92, 11.48, 1, 1, 5, 11, 11.48, 1, 1, 5, 11, -5.76, 1, 1, 5, -11, -5.76, 1, 1, 5, -11, 11.48, 1, 1, 5, -6.58, 11.48, 1, 1, 5, -6.58, 33.35, 1, 2, 5, -6.28, 58.34, 0.4, 6, 18.34, 6.28, 0.6, 2, 6, 40.27, 6.02, 0.66667, 7, -1.73, 6.02, 0.33333, 2, 6, 63.03, 5.75, 0.33333, 7, 21.03, 5.75, 0.66667, 2, 7, 42.22, 5.49, 0.66667, 8, 0.22, 5.49, 0.33333, 2, 7, 63.8, 5.23, 0.33333, 8, 21.8, 5.23, 0.66667, 2, 8, 42.07, 4.99, 0.66667, 9, 0.07, 4.99, 0.33333, 2, 8, 62.79, 4.75, 0.33333, 9, 20.79, 4.75, 0.66667, 2, 9, 42.22, 4.49, 0.66667, 10, 0.22, 4.49, 0.33333, 2, 9, 64.47, 4.22, 0.33333, 10, 22.47, 4.22, 0.66667, 2, 10, 42.75, 3.98, 0.66667, 11, 0.75, 3.98, 0.33333, 2, 10, 65.62, 3.71, 0.3125, 11, 23.62, 3.71, 0.6875, 1, 11, 47.24, 3.43, 1, 1, 11, 47.24, -2.9, 1 ], + "hull": 32, + "edges": [ 28, 30, 28, 26, 30, 32, 26, 24, 24, 22, 32, 34, 34, 24, 34, 36, 36, 22, 60, 62, 38, 36, 20, 22, 38, 20, 40, 38, 18, 20, 40, 18, 42, 40, 16, 18, 42, 16, 44, 42, 14, 16, 44, 14, 46, 44, 12, 14, 46, 12, 48, 46, 10, 12, 48, 10, 50, 48, 8, 10, 50, 8, 52, 50, 6, 8, 52, 6, 54, 52, 4, 6, 54, 4, 56, 54, 2, 4, 56, 2, 60, 58, 58, 56, 62, 0, 0, 2, 58, 0 ], + "width": 22, + "height": 303 + } + }, + "bottom": { + "tank-bottom": { "x": -16.67, "y": 9.89, "width": 1285, "height": 276 } + }, + "cannon": { + "cannon": { "x": 481.95, "y": -0.03, "rotation": 180, "width": 931, "height": 58 } + }, + "cannon-connector": { + "cannon-connector": { + "type": "mesh", + "uvs": [ 1, 0.03237, 1, 0.10603, 0.90988, 0.32859, 0.81975, 0.55116, 0.72963, 0.77373, 0.6395, 0.9963, 0.42157, 0.9963, 0.20364, 0.9963, 0, 0.85434, 0, 0.69902, 0.02268, 0.52884, 0, 0.31444, 0.21602, 0.12998, 0.43368, 0, 0.63547, 0.0037, 0.48408, 0.77059, 0.31496, 0.52497, 0.64133, 0.19648, 0.21516, 0.76766, 0.58346, 0.56471, 0.68444, 0.40146, 0.46758, 0.36649, 0.28935, 0.34604 ], + "triangles": [ 7, 18, 6, 6, 18, 15, 7, 8, 18, 8, 9, 18, 18, 16, 15, 15, 16, 19, 9, 10, 18, 18, 10, 16, 16, 21, 19, 19, 21, 20, 10, 22, 16, 10, 11, 22, 16, 22, 21, 21, 17, 20, 21, 12, 13, 17, 13, 14, 17, 21, 13, 11, 12, 22, 21, 22, 12, 6, 15, 5, 5, 15, 4, 15, 19, 4, 4, 19, 3, 19, 20, 3, 3, 20, 2, 20, 17, 2, 2, 17, 1, 17, 14, 1, 14, 0, 1 ], + "vertices": [ 1, 12, 35.91, 69.08, 1, 1, 12, 35.91, 59.14, 1, 1, 12, 25.82, 29.09, 1, 1, 12, 15.72, -0.95, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.05, 1, 2, 12, -28.87, -61.05, 0.33333, 14, 28.87, 61.03, 0.66667, 1, 14, 53.28, 61.02, 1, 1, 14, 76.09, 41.84, 1, 1, 14, 71.17, 21.63, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.38, -29.12, 1, 1, 14, 50.67, -56.14, 1, 2, 12, -28.43, 74.38, 0.41, 14, 28.43, -74.4, 0.59, 2, 12, -4.92, 72.95, 0.52, 14, 4.92, -72.95, 0.48, 2, 12, -21.87, -30.58, 0.49, 14, 21.87, 30.57, 0.51, 1, 14, 40.81, -2.6, 1, 2, 12, -4.26, 46.93, 0.49, 14, 4.26, -46.93, 0.51, 1, 14, 51.99, 30.15, 1, 2, 12, -10.74, -2.78, 0.49, 14, 10.74, 2.78, 0.51, 2, 12, 0.57, 19.25, 0.49, 14, -0.57, -19.25, 0.51, 1, 14, 23.72, -23.99, 1, 1, 14, 43.68, -26.76, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 0 ], + "width": 112, + "height": 135 + } + }, + "clipping": { + "clipping": { + "type": "clipping", + "end": "tank-glow", + "vertexCount": 32, + "vertices": [ 1, 3, 165.84, 455.67, 1, 1, 3, 114.21, 493.01, 1, 1, 3, -38.53, 492.23, 1, 1, 3, -193.4, 464.18, 1, 2, 3, -280.85, 415.48, 0.752, 14, 24.09, -73.93, 0.248, 1, 14, 70.34, -27.32, 1, 1, 14, 412.56, -22.02, 1, 1, 14, 412.82, -29.21, 1, 1, 14, 539.26, -29.34, 1, 1, 14, 539.52, -17.09, 1, 1, 14, 894.02, -16.8, 1, 1, 14, 902.99, -28.89, 1, 1, 14, 942.06, -28.58, 1, 1, 14, 948.14, -16.64, 1, 1, 14, 947.9, 14.29, 1, 1, 14, 539.3, 14.55, 1, 1, 14, 539, 29.22, 1, 1, 14, 412.51, 29.88, 1, 1, 14, 412.51, 21.73, 1, 1, 14, 74.24, 27.28, 1, 1, 3, -296.64, 281.2, 1, 1, 3, -316.06, 225.71, 1, 1, 3, -521.69, 190.74, 1, 1, 3, -610.03, 141.02, 1, 1, 3, -671.84, 87.13, 1, 1, 3, -652.23, -11.24, 1, 1, 3, -618.53, -71.36, 1, 1, 3, -478.77, -114.21, 1, 1, 3, -274.11, -116.26, 1, 1, 3, 1.38, -45.75, 1, 1, 3, 189.67, 148.78, 1, 1, 3, 215.75, 276.59, 1 ], + "color": "ce3a3aff" + } + }, + "ground": { + "ground": { "x": 837.96, "y": -172, "width": 1024, "height": 353 } + }, + "ground2": { + "ground": { "x": -179.89, "y": -172, "width": 1024, "height": 353 } + }, + "ground3": { + "ground": { "x": -1213.48, "y": -172, "scaleX": 1.035, "width": 1024, "height": 353 } + }, + "ground4": { + "ground": { "x": -2268.51, "y": -172, "scaleX": 1.04, "width": 1024, "height": 353 } + }, + "ground5": { + "ground": { "x": -3306.54, "y": -172, "width": 1024, "height": 353 } + }, + "ground6": { + "ground": { "x": -4322.71, "y": -172, "width": 1024, "height": 353 } + }, + "ground7": { + "ground": { "x": -5340.65, "y": -172, "width": 1024, "height": 353 } + }, + "guntower": { + "guntower": { "x": 77.22, "y": 122.59, "width": 730, "height": 289 } + }, + "machinegun": { + "machinegun": { "x": 44.85, "y": -5.72, "rotation": -180, "width": 331, "height": 57 } + }, + "machinegun-mount": { + "machinegun-mount": { "x": 47.42, "y": -1.54, "rotation": -90, "width": 72, "height": 96 } + }, + "rock": { + "rock": { "x": 25.24, "y": 27.35, "width": 580, "height": 127 } + }, + "smoke-glow": { + "smoke-glow": { + "type": "mesh", + "uvs": [ 1, 0.24906, 1, 0.51991, 1, 0.73165, 0.70776, 1, 0.49012, 1, 0.24373, 1, 0, 0.71158, 0, 0.50308, 0, 0.26235, 0.28107, 0, 0.47435, 0, 0.73345, 0, 0.48858, 0.51759 ], + "triangles": [ 12, 7, 8, 12, 10, 11, 12, 11, 0, 9, 10, 12, 12, 8, 9, 12, 0, 1, 6, 7, 12, 12, 1, 2, 5, 6, 12, 3, 4, 12, 5, 12, 4, 2, 3, 12 ], + "vertices": [ 49.99, 25.1, 50, -1.98, 50.01, -23.15, 20.79, -50, -0.98, -50, -25.62, -50.01, -50, -21.17, -50, -0.32, -50.01, 23.75, -21.9, 50, -2.58, 50, 23.33, 50.01, -1.14, -1.76 ], + "hull": 12, + "edges": [ 2, 24, 24, 14, 20, 24, 24, 8, 2, 0, 20, 22, 0, 22, 18, 20, 14, 16, 18, 16, 12, 14, 8, 10, 12, 10, 6, 8, 2, 4, 6, 4 ], + "width": 100, + "height": 100 + } + }, + "smoke-puff1-bg": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg2": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg3": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg4": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg5": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg6": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg7": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg8": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg9": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg10": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg11": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg12": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg13": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg14": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg15": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg16": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg17": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg18": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg20": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg21": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg22": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg23": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg24": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg25": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg26": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg27": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-fg": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg2": { + "smoke-puff01-fg": { + "x": -1.01, + "y": -0.07, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.82, + "y": -0.39, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.82, + "y": -0.39, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.82, + "y": -0.39, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg3": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.02, + "y": -0.25, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1145, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.03, + "y": -0.43, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg4": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.63, + "y": -0.09, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.63, + "y": -0.09, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.63, + "y": -0.09, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg5": { + "smoke-puff01-fg": { + "x": -1.21, + "y": -0.08, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.89, + "y": -0.04, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.89, + "y": -0.04, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.89, + "y": -0.04, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg6": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.48, + "y": -0.07, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.48, + "y": -0.07, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.48, + "y": -0.07, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg7": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -0.7, + "y": -0.36, + "scaleX": 0.1216, + "scaleY": 0.1214, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -0.56, + "y": -0.15, + "scaleX": 0.1224, + "scaleY": 0.1224, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -0.56, + "y": -0.15, + "scaleX": 0.1224, + "scaleY": 0.1224, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg8": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -0.65, + "y": 0.01, + "scaleX": 0.1226, + "scaleY": 0.1226, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -0.75, + "y": -0.15, + "scaleX": 0.1211, + "scaleY": 0.1211, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -0.75, + "y": -0.15, + "scaleX": 0.1211, + "scaleY": 0.1211, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg9": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.99, + "y": -0.09, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.99, + "y": -0.09, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -0.95, + "y": -0.48, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg10": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.27, + "y": -0.37, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.27, + "y": -0.37, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.27, + "y": -0.37, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg11": { + "smoke-puff04-fg": { + "x": -1.27, + "y": -0.37, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg12": { + "smoke-puff04-fg": { + "x": -1.27, + "y": -0.37, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg13": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg14": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg15": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg16": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg17": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg18": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg20": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg21": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg22": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg23": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg24": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg25": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg26": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg27": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "tank-body-shadow": { + "tank-bottom-shadow": { "x": -11.44, "y": -42.89, "width": 1291, "height": 341 } + }, + "tank-glow": { + "smoke-glow": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 1, 0 ], + "triangles": [ 1, 2, 0 ], + "vertices": [ 469.64, -738.08, -1660.32, -738.08, 469.64, 1391.88 ], + "hull": 3, + "edges": [ 0, 2, 0, 4, 2, 4 ], + "width": 100, + "height": 100 + } + }, + "tank-top": { + "tank-top": { "x": 6.8, "y": 168.71, "width": 1407, "height": 222 } + }, + "tread": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread-inside1": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside2": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside3": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside4": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside5": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside6": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside7": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside8": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside9": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside10": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside11": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside12": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside13": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside14": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside15": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside16": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside17": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside18": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside19": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside20": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside21": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside22": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside23": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside24": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside25": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside26": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside27": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside28": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside29": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside30": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside31": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside32": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside33": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside34": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside35": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside36": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside37": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside38": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside39": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside40": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside41": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside42": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside43": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside44": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside45": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside46": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside47": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside48": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside49": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside50": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside51": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside52": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside53": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside54": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside55": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside56": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside57": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside58": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside59": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside60": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside61": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside62": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside63": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside64": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside65": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside66": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside67": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside68": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside69": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside70": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside71": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside72": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread2": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread3": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread4": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread5": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread6": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread7": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread8": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread9": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread10": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread11": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread12": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread13": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread14": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread15": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread16": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread17": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread18": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread19": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread20": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread21": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread22": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread23": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread24": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread25": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread26": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread27": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread28": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread29": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread30": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread31": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread32": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread33": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread34": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread35": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread36": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "treads-path": { + "treads-path": { + "type": "path", + "closed": true, + "lengths": [ 185.21, 354.53, 478.3, 608.52, 786, 1058.49, 1138.97, 1223.96, 1303.87, 1388.23, 1471.11, 1551.64, 1633.55, 1713.27, 1799.89, 1882.28, 2164.2, 2326.85, 2444.07, 2584.91, 2754.15, 2940.62 ], + "vertexCount": 66, + "vertices": [ 1, 110, 11.23, 41.87, 1, 1, 110, 0.79, 41.95, 1, 1, 110, -34.72, 42.24, 1, 1, 56, -104.22, 0.41, 1, 1, 56, 0.07, 0.55, 1, 1, 56, 68.8, 0.65, 1, 1, 109, 20.5, 43.47, 1, 1, 109, 1.14, 40.82, 1, 1, 109, -27.38, 36.85, 1, 1, 93, 147.07, 105.01, 1, 1, 93, 96.21, 96.63, 1, 1, 93, 43.87, 87.72, 1, 1, 93, 16.18, 103.35, 1, 1, 93, -33.67, 94.21, 1, 1, 93, -99.36, 81.25, 1, 1, 93, -122.05, -1.7, 1, 1, 93, -83.58, -47.93, 1, 1, 93, -33.53, -109.37, 1, 1, 97, -83.57, -66.1, 1, 1, 97, -2.17, -67.9, 1, 2, 97, 56.68, -41.49, 0.68, 51, -24.31, -41.49, 0.32, 1, 51, -26.59, 16.7, 1, 1, 51, -2.69, 16.7, 1, 1, 51, 13.52, 16.7, 1, 2, 98, -52.42, -46.51, 0.744, 51, 30.21, -46.52, 0.256, 1, 98, -0.32, -68.92, 1, 2, 98, 52.09, -44.73, 0.712, 52, -28.91, -44.73, 0.288, 1, 52, -22.81, 16.24, 1, 1, 52, -1.42, 16.24, 1, 1, 52, 20.48, 16.24, 1, 2, 99, -47.21, -47.46, 0.744, 52, 36.01, -47.46, 0.256, 1, 99, -0.29, -69.66, 1, 2, 99, 45.24, -47.26, 0.736, 53, -37.49, -47.26, 0.264, 1, 53, -23.76, 15.28, 1, 1, 53, -0.14, 15.28, 1, 1, 53, 24.45, 15.28, 1, 2, 100, -47.37, -48.7, 0.744, 53, 33.53, -48.7, 0.256, 1, 100, -0.5, -70.4, 1, 2, 100, 49.09, -48.34, 0.744, 54, -33.58, -48.34, 0.256, 1, 54, -20.89, 15.84, 1, 1, 54, -1.26, 15.84, 1, 1, 54, 15.78, 15.84, 1, 2, 101, -52.5, -48.21, 0.76, 54, 28.45, -48.22, 0.24, 1, 101, -2.5, -68.92, 1, 2, 101, 55.72, -47.82, 0.752, 55, -28.88, -47.83, 0.248, 1, 55, -21.64, 16.7, 1, 1, 55, -0.48, 16.7, 1, 1, 55, 20.74, 16.7, 1, 2, 102, -53.65, -48.9, 0.76, 55, 25.97, -48.9, 0.24, 1, 102, 2.28, -69.66, 1, 1, 102, 44.95, -69.74, 1, 1, 94, 76.03, -85.61, 1, 1, 94, 93.58, -42.24, 1, 1, 94, 118.67, 19.75, 1, 1, 94, 78.59, 76.62, 1, 1, 94, 37.27, 95.07, 1, 1, 94, 31.45, 97.67, 1, 1, 94, -15.16, 87.48, 1, 1, 94, -79.8, 92.52, 1, 1, 94, -119.06, 95.58, 1, 1, 111, 47.07, 42.29, 1, 1, 111, 0.25, 42.75, 1, 1, 111, -29.64, 43.29, 1, 1, 57, -86.65, 1.35, 1, 1, 57, 0.49, 0.26, 1, 1, 57, 92.42, -0.9, 1 ], + "color": "ff8819ff" + } + }, + "wheel-big": { + "wheel-big": { "width": 191, "height": 191 } + }, + "wheel-big-overlay1": { + "wheel-big-overlay": { "width": 186, "height": 186 } + }, + "wheel-big-overlay2": { + "wheel-big-overlay": { "width": 186, "height": 186 } + }, + "wheel-big2": { + "wheel-big": { "width": 191, "height": 191 } + }, + "wheel-mid": { + "wheel-mid": { "width": 136, "height": 136 } + }, + "wheel-mid-overlay": { + "wheel-mid-overlay": { "width": 136, "height": 136 } + }, + "wheel-mid-overlay2": { + "wheel-mid-overlay": { "width": 136, "height": 136 } + }, + "wheel-mid-overlay3": { + "wheel-mid-overlay": { "width": 136, "height": 136 } + }, + "wheel-mid-overlay4": { + "wheel-mid-overlay": { "width": 136, "height": 136 } + }, + "wheel-mid-overlay5": { + "wheel-mid-overlay": { "width": 136, "height": 136 } + }, + "wheel-mid-overlay6": { + "wheel-mid-overlay": { "width": 136, "height": 136 } + }, + "wheel-mid2": { + "wheel-mid": { "width": 136, "height": 136 } + }, + "wheel-mid3": { + "wheel-mid": { "width": 136, "height": 136 } + }, + "wheel-mid4": { + "wheel-mid": { "width": 136, "height": 136 } + }, + "wheel-mid5": { + "wheel-mid": { "width": 136, "height": 136 } + }, + "wheel-mid6": { + "wheel-mid": { "width": 136, "height": 136 } + }, + "wheel-small": { + "wheel-small": { "width": 71, "height": 71 } + }, + "wheel-small2": { + "wheel-small": { "width": 71, "height": 71 } + }, + "wheel-small3": { + "wheel-small": { "width": 71, "height": 71 } + } + } + } +], +"animations": { + "drive": { + "bones": { + "tank-root": { + "rotate": [ + { "time": 2 }, + { "time": 2.0667, "value": 1.99 }, + { "time": 2.5, "value": -15.63 }, + { + "time": 2.6667, + "value": -10.37, + "curve": [ 2.718, -10.37, 2.78, -8.34 ] + }, + { + "time": 2.8333, + "value": -6.13, + "curve": [ 2.909, -2.8, 2.974, 0.8 ] + }, + { "time": 3, "value": 1.84 }, + { "time": 3.0667, "value": 5.32 }, + { "time": 3.1667, "value": 10.99 }, + { "time": 3.2333, "value": 9.73 }, + { + "time": 3.4333, + "value": -4.52, + "curve": [ 3.474, -3.99, 3.608, 0.01 ] + }, + { "time": 3.6667, "value": 0.01 } + ], + "translate": [ + { + "curve": [ 1.019, 0, 1.608, -582.83, 1.019, 0, 1.608, 0 ] + }, + { "time": 2, "x": -1209.75 }, + { "time": 2.3333, "x": -1652.84, "y": 26.05 }, + { "time": 2.5, "x": -1877.69, "y": 71.5 }, + { "time": 2.6667, "x": -2053.37, "y": 100.44 }, + { "time": 2.8333, "x": -2183.86, "y": 97.42 }, + { "time": 3, "x": -2312.32, "y": 74.12 }, + { "time": 3.0667, "x": -2340.68, "y": 45.94 }, + { "time": 3.1333, "x": -2403.04, "y": 17.04 }, + { "time": 3.1667, "x": -2439.84, "y": 5.45 }, + { "time": 3.2333, "x": -2523.34, "y": -3.31 }, + { "time": 3.4333, "x": -2728.27, "y": -12.73 }, + { + "time": 3.5, + "x": -2795.65, + "y": -6.14, + "curve": [ 3.538, -2829.89, 3.583, -2878.59, 3.538, -4.93, 3.583, -3.21 ] + }, + { + "time": 3.6333, + "x": -2938.53, + "y": -1.09, + "curve": [ 3.89, -3218.84, 4.404, -3972.02, 3.89, -0.79, 4.404, 0 ] + }, + { "time": 4.8333, "x": -3972.02 }, + { "time": 5, "x": -3991.31 }, + { "time": 5.3667, "x": -3973.94 } + ] + }, + "tread-collider1": { + "translate": [ + { "time": 2 }, + { "time": 2.0667, "y": 9.99 }, + { "time": 2.1667, "y": 37.69 }, + { "time": 2.3333, "y": 53.45 }, + { "time": 2.5, "y": 30.97 }, + { "time": 2.6667, "y": -2.89 }, + { "time": 2.8333, "y": -0.71 }, + { "time": 3.0667, "y": -13.64 }, + { "time": 3.1667, "y": 59.3 }, + { "time": 3.2333, "y": 48.2 }, + { "time": 3.4333, "y": -11.27 }, + { "time": 3.6333, "y": 4.15 } + ] + }, + "tread-collider2": { + "translate": [ + { "time": 2 }, + { "time": 2.0667, "y": -2.83 }, + { "time": 2.1667, "y": -17.44 }, + { "time": 2.3333, "y": 46.07 }, + { "time": 2.5, "y": 19.45 }, + { "time": 2.6667, "y": 13.46 }, + { "time": 2.8333, "y": -1.92, "curve": "stepped" }, + { "time": 2.9667, "y": -1.92 }, + { "time": 3, "y": -13.17 }, + { "time": 3.0667, "y": -23.25 }, + { "time": 3.1667, "y": 28.13 }, + { "time": 3.2333, "y": 25.63 }, + { "time": 3.4333, "y": -1.52 }, + { "time": 3.6333, "y": 1.15 } + ] + }, + "tread-collider3": { + "translate": [ + { "time": 2 }, + { "time": 2.0667, "y": -7.76 }, + { "time": 2.1667, "y": -16.61 }, + { "time": 2.5, "y": 29.05 }, + { "time": 2.6667, "y": 30.12 }, + { "time": 2.8333, "y": 5.3 }, + { "time": 3, "y": -0.38 }, + { "time": 3.1667, "y": 2.6 }, + { "time": 3.4333, "y": 15.41 }, + { "time": 3.6333, "y": 1.44 } + ] + }, + "tread-collider4": { + "translate": [ + { "time": 2 }, + { "time": 2.1667, "y": -6.72 }, + { "time": 2.3333, "y": -0.92 }, + { "time": 2.5, "y": 18.37 }, + { "time": 2.6667, "y": 38.77 }, + { "time": 2.8333, "y": 30.6 }, + { "time": 3.1667, "y": 12.61 }, + { "time": 3.2333, "y": -16 }, + { "time": 3.4333, "y": 25.62 }, + { "time": 3.6333, "y": -0.68 } + ] + }, + "tread-collider5": { + "translate": [ + { "time": 2 }, + { "time": 2.1667, "y": 3.35 }, + { "time": 2.3333, "y": 22.17 }, + { "time": 2.6667, "y": 13.35 }, + { "time": 2.8333, "y": 39 }, + { "time": 3, "y": 39.88 }, + { "time": 3.1667, "y": 26.57 }, + { "time": 3.2333, "y": -10.15 }, + { "time": 3.4333, "y": 35.98 }, + { "time": 3.6333, "y": -1.36 } + ] + }, + "wheel-mid-root6": { + "translate": [ + { "time": 2 }, + { "time": 2.1667, "y": 5.61 }, + { "time": 2.3333, "y": 27.21 }, + { "time": 2.5, "y": 30.28 }, + { "time": 2.6667, "y": -2.81 }, + { "time": 2.8333, "y": 19.59 }, + { "time": 3, "y": 29.11 }, + { "time": 3.1667, "y": 32.55 }, + { "time": 3.2333, "y": 3.55 }, + { "time": 3.4333, "y": 40.54 }, + { "time": 3.6333 } + ] + }, + "wheel-mid-root5": { + "translate": [ + { "time": 2 }, + { "time": 2.1667, "y": -7.46 }, + { "time": 2.3333, "y": 9.53 }, + { "time": 2.6667, "y": 36.78 }, + { "time": 2.8333, "y": 46.11 }, + { "time": 3.1667, "y": 7.55 }, + { "time": 3.2333, "y": -16.28 }, + { "time": 3.4333, "y": 26.21 }, + { "time": 3.6333 } + ] + }, + "wheel-mid-root4": { + "translate": [ + { "time": 2 }, + { "time": 2.1667, "y": -13.98 }, + { "time": 2.3333, "y": -8.26 }, + { "time": 2.5, "y": 24.27 }, + { "time": 2.6667, "y": 34.42 }, + { "time": 2.8333, "y": 8.88 }, + { "time": 3.1667, "y": 10.32 }, + { "time": 3.2333, "y": -7.63 }, + { "time": 3.4333, "y": 19.69 }, + { "time": 3.6333 } + ] + }, + "wheel-mid-root3": { + "translate": [ + { "time": 2 }, + { "time": 2.1667, "y": -21.14 }, + { "time": 2.3333, "y": 22.83 }, + { "time": 2.5, "y": 23.34 }, + { "time": 2.6667, "y": 18.07 }, + { "time": 2.8333, "y": 1.2 }, + { "time": 3.0667, "y": -13.36 }, + { "time": 3.1667, "y": 15.48 }, + { "time": 3.2333, "y": 13.34 }, + { "time": 3.4333, "y": 6.4 }, + { "time": 3.6333 } + ] + }, + "wheel-mid-root2": { + "translate": [ + { "time": 2 }, + { "time": 2.0667, "y": -4.39 }, + { "time": 2.1667, "y": 3.13 }, + { "time": 2.3333, "y": 53.56 }, + { "time": 2.5, "y": 16.65 }, + { "time": 2.6667, "y": 8.39 }, + { "time": 3.0667, "y": -19.16 }, + { "time": 3.1667, "y": 43.25 }, + { "time": 3.2333, "y": 39.04 }, + { "time": 3.4333, "y": -8.61 }, + { "time": 3.6333 } + ] + }, + "wheel-mid-root1": { + "translate": [ + { "time": 2 }, + { "time": 2.0333, "y": 22.64 }, + { "time": 2.0667, "y": 53.65 }, + { "time": 2.1667, "y": 71.18 }, + { "time": 2.5, "y": 46.83 }, + { "time": 2.6667, "y": 8.38 }, + { "time": 3.0667, "y": -10.03 }, + { "time": 3.1667, "y": 72.71 }, + { "time": 3.2333, "y": 64.74 }, + { "time": 3.4333, "y": -17.65 }, + { "time": 3.6333 } + ] + }, + "tank-body": { + "rotate": [ + { + "curve": [ 0.208, 0, 0.625, -4.39 ] + }, + { "time": 0.8333, "value": -4.39 }, + { "time": 2 }, + { "time": 2.1667, "value": -1.34 }, + { "time": 2.3333, "value": -6.23 }, + { "time": 2.5, "value": -5.45 }, + { "time": 2.9667, "value": -5.07 }, + { "time": 3.0667, "value": -2.39 }, + { "time": 3.1667, "value": -0.98 }, + { "time": 3.2333, "value": -1.1 }, + { + "time": 3.4, + "value": 0.43, + "curve": [ 3.433, 0.43, 3.483, -1.56 ] + }, + { + "time": 3.5333, + "value": -3.55, + "curve": [ 3.675, -3.47, 3.754, 1.49 ] + }, + { "time": 3.8333, "value": 1.93 }, + { "time": 4, "value": 0.48 }, + { + "time": 4.3333, + "curve": [ 4.476, 0.59, 4.833, 3.8 ] + }, + { + "time": 5, + "value": 3.8, + "curve": [ 5.286, 3.8, 5.35, -2.17 ] + }, + { "time": 5.4667, "value": -2.17 }, + { "time": 5.6, "value": -0.61 } + ] + }, + "wheel-big-root1": { + "translate": [ + { "time": 2 }, + { "time": 2.0667, "y": 20.07 }, + { "time": 2.3333, "y": 67.24 }, + { "time": 2.6667, "y": 21.04 }, + { "time": 3, "y": 10.28 }, + { "time": 3.1, "y": 11.28 }, + { "time": 3.1667, "y": 29.43 }, + { "time": 3.2333, "y": 35.31 }, + { "time": 3.4333, "y": 18.38 }, + { "time": 3.5 } + ] + }, + "tank-treads": { + "rotate": [ + {}, + { "time": 0.8333, "value": -2.4 }, + { "time": 2 }, + { "time": 2.0667, "value": 1.72 }, + { "time": 2.4333, "value": -0.37 }, + { "time": 2.8 }, + { "time": 3, "value": -1.41 }, + { "time": 3.1667, "value": 0.54 }, + { + "time": 3.2667, + "value": 2.22, + "curve": [ 3.348, 2.22, 3.392, -1.31 ] + }, + { "time": 3.4333, "value": -1.31 }, + { "time": 3.7333, "value": -1.14 }, + { + "time": 4.3333, + "curve": [ 4.476, 0.35, 4.833, 2.24 ] + }, + { + "time": 5, + "value": 2.24, + "curve": [ 5.286, 2.24, 5.35, 0 ] + }, + { "time": 5.4667 } + ] + }, + "cannon-target": { + "translate": [ + {}, + { "time": 0.8333, "y": 121.95 }, + { "time": 2, "y": 45.73 } + ] + }, + "wheel-big-root2": { + "translate": [ + { "time": 3.4333, "y": 13.01 } + ] + }, + "wheel-big1": { + "rotate": [ + { + "curve": [ 0.51, 0, 0.804, 57.81 ] + }, + { "time": 1, "value": 120 }, + { "time": 1.2667, "value": 240 }, + { "time": 1.5333, "value": 360 }, + { "time": 1.7667, "value": 480 }, + { "time": 2.0333, "value": 600 }, + { "time": 2.2, "value": 720 }, + { "time": 2.4, "value": 840 }, + { "time": 2.5667, "value": 960 }, + { "time": 2.7333, "value": 1080 }, + { "time": 2.9333, "value": 1200 }, + { "time": 3.1333, "value": 1320 }, + { "time": 3.3333, "value": 1440 }, + { "time": 3.5, "value": 1560 }, + { "time": 3.6667, "value": 1680 }, + { "time": 3.8667, "value": 1800 }, + { "time": 4.0667, "value": 1920 }, + { "time": 4.2667, "value": 2040 }, + { + "time": 4.5, + "value": 2160, + "curve": [ 4.563, 2194.34, 4.695, 2225.3 ] + }, + { "time": 4.8333, "value": 2247.67 } + ] + }, + "wheel-mid1": { + "rotate": [ + { + "curve": [ 0.459, 0, 0.724, 57.81 ] + }, + { "time": 0.9, "value": 120 }, + { "time": 1.1667, "value": 240 }, + { "time": 1.4333, "value": 360 }, + { "time": 1.6333, "value": 480 }, + { "time": 1.8333, "value": 600 }, + { "time": 2, "value": 720 }, + { "time": 2.1333, "value": 840 }, + { "time": 2.2667, "value": 960 }, + { "time": 2.4, "value": 1080 }, + { "time": 2.5333, "value": 1200 }, + { "time": 2.6667, "value": 1320 }, + { "time": 2.8333, "value": 1440 }, + { "time": 2.9667, "value": 1560 }, + { "time": 3.1, "value": 1680 }, + { "time": 3.2333, "value": 1800 }, + { "time": 3.3667, "value": 1920 }, + { "time": 3.5, "value": 2040 }, + { "time": 3.6333, "value": 2160 }, + { "time": 3.7667, "value": 2280 }, + { "time": 3.9, "value": 2400 }, + { "time": 4.0333, "value": 2520 }, + { "time": 4.1667, "value": 2640 }, + { "time": 4.3, "value": 2760 }, + { + "time": 4.4667, + "value": 2880, + "curve": [ 4.538, 2949.2, 4.742, 3000 ] + }, + { "time": 4.8333, "value": 3000 } + ] + }, + "wheel-small1": { + "rotate": [ + { + "curve": [ 0.34, 0, 0.536, 57.81 ] + }, + { "time": 0.6667, "value": 120 }, + { "time": 0.8667, "value": 240 }, + { "time": 1.0333, "value": 360 }, + { "time": 1.1667, "value": 480 }, + { "time": 1.3, "value": 600 }, + { "time": 1.4333, "value": 720 }, + { "time": 1.5333, "value": 840 }, + { "time": 1.6333, "value": 960 }, + { "time": 1.7333, "value": 1080 }, + { "time": 1.8333, "value": 1200 }, + { "time": 1.9333, "value": 1320 }, + { "time": 2.0333, "value": 1440 }, + { "time": 2.1333, "value": 1560 }, + { "time": 2.2333, "value": 1680 }, + { "time": 2.3333, "value": 1800 }, + { "time": 2.4333, "value": 1920 }, + { "time": 2.5333, "value": 2040 }, + { "time": 2.6333, "value": 2160 }, + { "time": 2.7333, "value": 2280 }, + { "time": 2.8333, "value": 2400 }, + { "time": 2.9333, "value": 2520 }, + { "time": 3.0333, "value": 2640 }, + { "time": 3.1333, "value": 2760 }, + { "time": 3.2333, "value": 2880 }, + { "time": 3.3333, "value": 3000 }, + { "time": 3.4333, "value": 3120 }, + { "time": 3.5333, "value": 3240 }, + { "time": 3.6333, "value": 3360 }, + { "time": 3.7333, "value": 3480 }, + { "time": 3.8333, "value": 3600 }, + { "time": 3.9333, "value": 3720 }, + { "time": 4.0333, "value": 3840 }, + { "time": 4.1333, "value": 3960 }, + { "time": 4.2333, "value": 4080 }, + { "time": 4.3333, "value": 4200 }, + { "time": 4.4333, "value": 4320 }, + { "time": 4.6667, "value": 4440 }, + { "time": 4.9, "value": 4490 } + ] + }, + "wheel-small-root1": { + "translate": [ + { "time": 2 }, + { "time": 2.1333, "y": 12.37 }, + { "time": 2.4667, "y": 32.37 }, + { "time": 2.7333, "y": -5.27 }, + { "time": 2.9667, "y": 14.31 }, + { "time": 3.1667, "y": 19.54 }, + { "time": 3.4667, "y": 7.5 }, + { "time": 4.3667, "y": -2.4 } + ] + }, + "wheel-small-root2": { + "translate": [ + { "time": 2 }, + { "time": 2.9, "y": 5.26 }, + { "time": 3.1667, "y": 10.67 }, + { "time": 3.4667, "y": -4.71 } + ] + }, + "wheel-small-root3": { + "translate": [ + { "time": 2 }, + { "time": 2.4667, "y": -10.56 }, + { "time": 2.9, "y": -16.08 }, + { "time": 3.1667, "y": 10.12 }, + { "time": 3.4667, "y": 4.1 }, + { "time": 4.3667, "y": -0.03 } + ] + }, + "antenna1": { + "rotate": [ + {}, + { + "time": 0.3333, + "value": 1.05, + "curve": [ 0.731, 1.05, 1.008, -4.55 ] + }, + { + "time": 1.2333, + "value": -4.55, + "curve": [ 1.35, -4.55, 1.583, 0.53 ] + }, + { "time": 1.7, "value": 0.53 }, + { "time": 2, "value": -2.13 }, + { "time": 2.2, "value": 4.71 }, + { "time": 2.3667, "value": -7.26 }, + { "time": 2.5667, "value": 2.26 }, + { "time": 2.7333, "value": -3.39 }, + { "time": 3.0667, "value": -5.53 }, + { "time": 3.2333, "value": 7.78 }, + { "time": 3.4667, "value": -5.99 }, + { "time": 3.7, "value": 3.11 }, + { "time": 3.9, "value": -3.05 }, + { "time": 4.1, "value": 0.31 }, + { "time": 4.3, "value": -3.06 }, + { "time": 4.5333, "value": 0.36 }, + { + "time": 4.8667, + "value": 4.94, + "curve": [ 4.925, 4.94, 5.042, -2.38 ] + }, + { "time": 5.1, "value": -2.38 }, + { "time": 5.2667, "value": 3.65 }, + { "time": 5.4, "value": -3.04 }, + { "time": 5.5, "value": 1.49 }, + { "time": 5.6, "value": -1.86 }, + { "time": 5.7, "value": 0.42 } + ] + }, + "antenna2": { + "rotate": [ + {}, + { + "time": 0.3333, + "value": 1.05, + "curve": [ 0.731, 1.05, 1.008, -4.55 ] + }, + { + "time": 1.2333, + "value": -4.55, + "curve": [ 1.35, -4.55, 1.583, 0.53 ] + }, + { "time": 1.7, "value": 0.53 }, + { "time": 2, "value": -2.13 }, + { "time": 2.2, "value": 4.71 }, + { "time": 2.3667, "value": -7.26 }, + { "time": 2.5667, "value": 2.26 }, + { "time": 2.7333, "value": -3.39 }, + { "time": 3.0667, "value": -5.53 }, + { "time": 3.2333, "value": 7.78 }, + { "time": 3.4667, "value": -5.99 }, + { "time": 3.7, "value": 3.11 }, + { "time": 3.9, "value": -3.05 }, + { "time": 4.1, "value": 0.31 }, + { "time": 4.3, "value": -3.06 }, + { "time": 4.5333, "value": 0.36 }, + { + "time": 4.8667, + "value": 4.94, + "curve": [ 4.925, 4.94, 5.042, -2.38 ] + }, + { "time": 5.1, "value": -2.38 }, + { "time": 5.2667, "value": 3.65 }, + { "time": 5.4, "value": -3.04 }, + { "time": 5.5, "value": 1.49 }, + { "time": 5.6, "value": -1.86 }, + { "time": 5.7, "value": 0.42 } + ] + }, + "antenna3": { + "rotate": [ + {}, + { + "time": 0.3333, + "value": 1.05, + "curve": [ 0.731, 1.05, 1.008, -4.55 ] + }, + { + "time": 1.2333, + "value": -4.55, + "curve": [ 1.35, -4.55, 1.583, 0.53 ] + }, + { "time": 1.7, "value": 0.53 }, + { "time": 2, "value": -2.13 }, + { "time": 2.2, "value": 4.71 }, + { "time": 2.3667, "value": -7.26 }, + { "time": 2.5667, "value": 2.26 }, + { "time": 2.7333, "value": -3.39 }, + { "time": 3.0667, "value": -5.53 }, + { "time": 3.2333, "value": 7.78 }, + { "time": 3.4667, "value": -5.99 }, + { "time": 3.7, "value": 3.11 }, + { "time": 3.9, "value": -3.05 }, + { "time": 4.1, "value": 0.31 }, + { "time": 4.3, "value": -3.06 }, + { "time": 4.5333, "value": 0.36 }, + { + "time": 4.8667, + "value": 4.94, + "curve": [ 4.925, 4.94, 5.042, -2.38 ] + }, + { "time": 5.1, "value": -2.38 }, + { "time": 5.2667, "value": 3.65 }, + { "time": 5.4, "value": -3.04 }, + { "time": 5.5, "value": 1.49 }, + { "time": 5.6, "value": -1.86 }, + { "time": 5.7, "value": 0.42 } + ] + }, + "antenna4": { + "rotate": [ + {}, + { + "time": 0.3333, + "value": 1.05, + "curve": [ 0.731, 1.05, 1.008, -4.55 ] + }, + { + "time": 1.2333, + "value": -4.55, + "curve": [ 1.35, -4.55, 1.583, 0.53 ] + }, + { "time": 1.7, "value": 0.53 }, + { "time": 2, "value": -2.13 }, + { "time": 2.2, "value": 4.71 }, + { "time": 2.3667, "value": -7.26 }, + { "time": 2.5667, "value": 2.26 }, + { "time": 2.7333, "value": -3.39 }, + { "time": 3.0667, "value": -5.53 }, + { "time": 3.2333, "value": 7.78 }, + { "time": 3.4667, "value": -5.99 }, + { "time": 3.7, "value": 3.11 }, + { "time": 3.9, "value": -3.05 }, + { "time": 4.1, "value": 0.31 }, + { "time": 4.3, "value": -3.06 }, + { "time": 4.5333, "value": 0.36 }, + { + "time": 4.8667, + "value": 4.94, + "curve": [ 4.925, 4.94, 5.042, -2.38 ] + }, + { "time": 5.1, "value": -2.38 }, + { "time": 5.2667, "value": 3.65 }, + { "time": 5.4, "value": -3.04 }, + { "time": 5.5, "value": 1.49 }, + { "time": 5.6, "value": -1.86 }, + { "time": 5.7, "value": 0.42 } + ] + }, + "antenna5": { + "rotate": [ + {}, + { + "time": 0.3333, + "value": 1.05, + "curve": [ 0.731, 1.05, 1.008, -4.55 ] + }, + { + "time": 1.2333, + "value": -4.55, + "curve": [ 1.35, -4.55, 1.583, 0.53 ] + }, + { "time": 1.7, "value": 0.53 }, + { "time": 2, "value": -2.13 }, + { "time": 2.2, "value": 4.71 }, + { "time": 2.3667, "value": -7.26 }, + { "time": 2.5667, "value": 2.26 }, + { "time": 2.7333, "value": -3.39 }, + { "time": 3.0667, "value": -5.53 }, + { "time": 3.2333, "value": 7.78 }, + { "time": 3.4667, "value": -5.99 }, + { "time": 3.7, "value": 3.11 }, + { "time": 3.9, "value": -3.05 }, + { "time": 4.1, "value": 0.31 }, + { "time": 4.3, "value": -3.06 }, + { "time": 4.5333, "value": 0.36 }, + { + "time": 4.8667, + "value": 4.94, + "curve": [ 4.925, 4.94, 5.042, -2.38 ] + }, + { "time": 5.1, "value": -2.38 }, + { "time": 5.2667, "value": 3.65 }, + { "time": 5.4, "value": -3.04 }, + { "time": 5.5, "value": 1.49 }, + { "time": 5.6, "value": -1.86 }, + { "time": 5.7, "value": 0.42 } + ] + }, + "antenna6": { + "rotate": [ + {}, + { + "time": 0.3333, + "value": 1.05, + "curve": [ 0.731, 1.05, 1.008, -4.55 ] + }, + { + "time": 1.2333, + "value": -4.55, + "curve": [ 1.35, -4.55, 1.583, 0.53 ] + }, + { "time": 1.7, "value": 0.53 }, + { "time": 2, "value": -2.13 }, + { "time": 2.2, "value": 4.71 }, + { "time": 2.3667, "value": -7.26 }, + { "time": 2.5667, "value": 2.26 }, + { "time": 2.7333, "value": -3.39 }, + { "time": 3.0667, "value": -5.53 }, + { "time": 3.2333, "value": 7.78 }, + { "time": 3.4667, "value": -5.99 }, + { "time": 3.7, "value": 3.11 }, + { "time": 3.9, "value": -3.05 }, + { "time": 4.1, "value": 0.31 }, + { "time": 4.3, "value": -3.06 }, + { "time": 4.5333, "value": 0.36 }, + { + "time": 4.8667, + "value": 4.94, + "curve": [ 4.925, 4.94, 5.042, -2.38 ] + }, + { "time": 5.1, "value": -2.38 }, + { "time": 5.2667, "value": 3.65 }, + { "time": 5.4, "value": -3.04 }, + { "time": 5.5, "value": 1.49 }, + { "time": 5.6, "value": -1.86 }, + { "time": 5.7, "value": 0.42 } + ] + }, + "machinegun": { + "rotate": [ + { "value": 8.07, "curve": "stepped" }, + { "time": 2.0667, "value": 8.07 }, + { "time": 2.1667, "value": 3.11 }, + { "time": 2.5667, "value": -10.99, "curve": "stepped" }, + { "time": 3.1333, "value": -10.99 }, + { "time": 3.2667, "value": 18.18 }, + { "time": 3.4333, "value": 2.75, "curve": "stepped" }, + { "time": 4.7, "value": 2.75 }, + { "time": 4.9, "value": 8.07 } + ] + } + }, + "path": { + "treads-path": { + "position": [ + { + "curve": [ 0.984, 0, 1.588, 0.1788 ] + }, + { + "time": 2, + "value": 0.385, + "curve": [ 2.023, 0.3916, 2.045, 0.3983 ] + }, + { "time": 2.0667, "value": 0.405 }, + { "time": 2.3333, "value": 0.555 }, + { "time": 2.5, "value": 0.605 }, + { "time": 2.6667, "value": 0.685 }, + { "time": 2.8333, "value": 0.745 }, + { "time": 3, "value": 0.785 }, + { "time": 3.0667, "value": 0.8 }, + { "time": 3.1333, "value": 0.825 }, + { "time": 3.1667, "value": 0.835 }, + { "time": 3.2333, "value": 0.87 }, + { + "time": 3.5, + "value": 0.98, + "curve": [ 3.726, 1.0474, 4.335, 1.4 ] + }, + { "time": 4.8333, "value": 1.4 } + ] + } + } + }, + "shoot": { + "slots": { + "rock": { + "attachment": [ + {} + ] + }, + "smoke-glow": { + "rgba": [ + { "time": 0.1333, "color": "ffffffff" }, + { "time": 0.1667, "color": "ffbc8af4" }, + { "time": 0.2, "color": "fc8e8e90" }, + { "time": 0.2667, "color": "fa3e3e1e" } + ], + "attachment": [ + { "time": 0.0667, "name": "smoke-glow" }, + { "time": 0.3 } + ] + }, + "smoke-puff1-bg": { + "rgba2": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.6, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 1.0333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.0667, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg2": { + "rgba2": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg3": { + "rgba2": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg4": { + "rgba2": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.6, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.9, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg5": { + "rgba2": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.6, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.9, "light": "ffd50c00", "dark": "604a3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg6": { + "rgba2": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.7, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg7": { + "rgba2": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3333, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg8": { + "rgba2": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4333, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.9333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg9": { + "rgba2": [ + { "time": 0.1333, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.5333, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg10": { + "rgba2": [ + { "time": 0.1333, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.5333, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8333, "light": "ffd50c00", "dark": "604a3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg11": { + "rgba2": [ + { "time": 0.1333, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.7667, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.3333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg12": { + "rgba2": [ + { "time": 0.3333, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.6, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8667, "light": "ffd50c00", "dark": "604a3f" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg13": { + "rgba2": [ + { "time": 0.3667, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 1, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg14": { + "rgba2": [ + { "time": 0.4333, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.6, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 1.0667, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.4333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg15": { + "rgba2": [ + { "time": 0.4, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.4, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg16": { + "rgba2": [ + { "time": 0.4, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.7, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.4, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg17": { + "rgba2": [ + { "time": 0.2333, "light": "ffd50cff", "dark": "534035" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.6667, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.2333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg18": { + "rgba2": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.5, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.2333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg20": { + "rgba2": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.3333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg21": { + "rgba2": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.7, "light": "ffd50c00", "dark": "604b3f" } + ] + }, + "smoke-puff1-bg22": { + "rgba2": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.7, "light": "ffd50c00", "dark": "604b3f" } + ] + }, + "smoke-puff1-bg23": { + "rgba2": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.5, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.7667, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.3, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg24": { + "rgba2": [ + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.7, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.3, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg25": { + "rgba2": [ + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 1, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg26": { + "rgba2": [ + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.6, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.9333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg27": { + "rgba2": [ + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.7333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-fg": { + "rgba2": [ + { "time": 0.0667, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1333, "light": "fde252ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.6, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 1.0333, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.0667, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg2": { + "rgba2": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.8333, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg3": { + "rgba2": [ + { "time": 0.1333, "light": "ffe457ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.8333, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg4": { + "rgba2": [ + { "time": 0.1333, "light": "fae781ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.6, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.9, "light": "ac8c7500", "dark": "604a3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg5": { + "rgba2": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.6, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.9, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg6": { + "rgba2": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg7": { + "rgba2": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3333, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.8333, "light": "ac8c7500", "dark": "604a3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg8": { + "rgba2": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4333, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.9333, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg9": { + "rgba2": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.5333, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.8333, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg10": { + "rgba2": [ + { "time": 0.1333, "light": "fce35dff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.5333, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.8333, "light": "ac8c7500", "dark": "604a3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg11": { + "rgba2": [ + { "time": 0.3333, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7667, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.3333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg12": { + "rgba2": [ + { "time": 0.3667, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.6, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.8667, "light": "ac8c7500", "dark": "604a3f" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg13": { + "rgba2": [ + { "time": 0.3667, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 1, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg14": { + "rgba2": [ + { "time": 0.4333, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.6, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 1.0667, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.4333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg15": { + "rgba2": [ + { "time": 0.4, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.8333, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.4, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg16": { + "rgba2": [ + { "time": 0.4, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.4, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg17": { + "rgba2": [ + { "time": 0.2333, "light": "e3c05eff", "dark": "ab7e59" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.6667, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.2333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg18": { + "rgba2": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.5, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7667, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.2333, "name": "smoke-puff03-fg" }, + { "time": 0.2667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg20": { + "rgba2": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.8, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.3333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg21": { + "rgba2": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7, "light": "ab764c00", "dark": "ac8d75" } + ] + }, + "smoke-puff1-fg22": { + "rgba2": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7, "light": "ab764c00", "dark": "ac8d75" } + ] + }, + "smoke-puff1-fg23": { + "rgba2": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.5, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7667, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.3, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg24": { + "rgba2": [ + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.3, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg25": { + "rgba2": [ + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 1, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg26": { + "rgba2": [ + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.6, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.9333, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg27": { + "rgba2": [ + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7333, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff04-fg" } + ] + }, + "tank-glow": { + "rgba": [ + { "time": 0.0667, "color": "fc994d84" }, + { + "time": 0.1333, + "color": "f5b16bc8", + "curve": [ 0.221, 0.96, 0.252, 0.98, 0.221, 0.69, 0.252, 0.62, 0.221, 0.42, 0.252, 0.33, 0.221, 0.78, 0.252, 0.32 ] + }, + { "time": 0.2667, "color": "fc994c30" } + ], + "attachment": [ + { "time": 0.0667, "name": "smoke-glow" }, + { "time": 0.2667 } + ] + } + }, + "bones": { + "cannon": { + "translate": [ + { "time": 0.0667 }, + { "time": 0.1667, "x": 34.77, "y": 0.9 }, + { "time": 0.2667, "x": 1.3 } + ] + }, + "tank-body": { + "rotate": [ + { "time": 0.0667 }, + { + "time": 0.1667, + "value": -4.29, + "curve": [ 0.2, -4.29, 0.267, 2.37 ] + }, + { + "time": 0.3, + "value": 2.37, + "curve": [ 0.333, 2.37, 0.4, 0 ] + }, + { "time": 0.4333 } + ], + "translate": [ + { "time": 0.0667 }, + { + "time": 0.1667, + "x": 31.04, + "y": 1.67, + "curve": [ 0.2, 31.04, 0.267, -12.05, 0.2, 1.67, 0.267, -0.23 ] + }, + { "time": 0.3, "x": -12.05, "y": -0.23 }, + { "time": 0.3667 } + ] + }, + "tank-treads": { + "rotate": [ + { "time": 0.0667 }, + { "time": 0.1667, "value": -3.08 }, + { "time": 0.3, "value": -0.42 } + ] + }, + "smoke1": { + "rotate": [ + { "time": 0.0667 }, + { "time": 0.1333, "value": 2.88 }, + { "time": 0.1667, "value": 2.34 }, + { "time": 0.2, "value": 124.36 }, + { "time": 0.2667, "value": 142.26 }, + { "time": 0.3333, "value": 86.78 }, + { "time": 0.4667, "value": 128.79 }, + { "time": 0.6333, "value": 146.22 }, + { "time": 1.0333, "value": 210.7 } + ], + "translate": [ + { "time": 0.0667, "x": -9.69, "y": 1.05 }, + { "time": 0.1333, "x": 7.53, "y": 1.21 }, + { "time": 0.1667, "x": 3.26, "y": 4.07 }, + { "time": 0.2, "x": 29.64, "y": -17.46 }, + { "time": 0.2667, "x": 86.97, "y": 17.83 }, + { "time": 0.3333, "x": 193.74, "y": -38.98 }, + { "time": 0.4, "x": 341.67, "y": -39.52 }, + { "time": 0.6333, "x": 393.24, "y": -4.01 }, + { "time": 1.0333, "x": 410.76, "y": 6.35 } + ], + "scale": [ + { "time": 0.0667 }, + { "time": 0.1333, "x": 3.171, "y": 0.756 }, + { "time": 0.1667, "x": 3.488, "y": 1.279 }, + { "time": 0.2, "x": 5.151, "y": 2.369 }, + { "time": 0.2667, "x": 4.735, "y": 3.622 }, + { "time": 0.3, "x": 4.735, "y": 4.019 }, + { "time": 0.3333, "x": 4.613, "y": 3.339 }, + { "time": 0.3667, "x": 4.918, "y": 3.561 }, + { "time": 0.4, "x": 4.6, "y": 4.263 }, + { "time": 0.6333, "x": 4.449, "y": 2.62 }, + { "time": 1.0333, "x": 3.09, "y": 1.447 } + ] + }, + "smoke2": { + "rotate": [ + { "time": 0.1667, "value": 31.55 }, + { "time": 0.3, "value": -22.63 }, + { "time": 0.4667, "value": 142.89 }, + { "time": 0.6, "value": 253.78 }, + { "time": 0.8333, "value": 299.28 } + ], + "translate": [ + { "time": 0.1667, "x": 17.26, "y": 4.86 }, + { "time": 0.2333, "x": 141.22, "y": 27.27 }, + { "time": 0.3, "x": 178.86, "y": 56.63 }, + { "time": 0.3667, "x": 200.46, "y": 71.05 }, + { "time": 0.4333, "x": 213.12, "y": 78.39 }, + { "time": 0.6333, "x": 221.44, "y": 73.1 }, + { "time": 0.8333, "x": 223.32, "y": 73.74 } + ], + "scale": [ + { "time": 0.1667, "x": 1.34, "y": 1.34 }, + { "time": 0.2333, "x": 2.81, "y": 1.317 }, + { "time": 0.3, "x": 2.932, "y": 1.374 }, + { "time": 0.4667, "x": 1.247, "y": 0.639 }, + { "time": 0.8333, "x": 0.778, "y": 0.515 } + ] + }, + "smoke3": { + "rotate": [ + { "time": 0.1667, "value": -5.54 }, + { "time": 0.2333, "value": 0.2 }, + { "time": 0.3333, "value": 20.27 }, + { "time": 0.4, "value": 31.36 }, + { "time": 0.4667, "value": 68.52 }, + { "time": 0.5333, "value": 99.74 }, + { "time": 0.6333, "value": 145.8 }, + { "time": 0.8333, "value": 193.28 } + ], + "translate": [ + { "time": 0.1333, "x": 1.17, "y": 8.53 }, + { "time": 0.1667, "x": 37.53, "y": 4.84 }, + { "time": 0.2, "x": 67.99, "y": 9.85 }, + { "time": 0.2333, "x": 134.14, "y": -13.5 }, + { "time": 0.2667, "x": 181.31, "y": -19.93 }, + { "time": 0.3, "x": 238.28, "y": -8.82 }, + { "time": 0.3333, "x": 268.51, "y": -25.75 }, + { "time": 0.3667, "x": 359.06, "y": -28.49 }, + { "time": 0.4, "x": 432.96, "y": -24.11 }, + { "time": 0.4667, "x": 452.16, "y": -16.73 }, + { "time": 0.6333, "x": 456.28, "y": -0.41 }, + { "time": 0.8333, "x": 454.14, "y": 16.41 } + ], + "scale": [ + { "time": 0.1333, "x": 2.258, "y": 1.366 }, + { "time": 0.1667, "x": 2.656, "y": 1.47 }, + { "time": 0.2, "x": 3.202, "y": 1.772 }, + { "time": 0.2333, "x": 3.202, "y": 1.93 }, + { "time": 0.2667, "x": 3.124, "y": 1.896 }, + { "time": 0.3, "x": 3.593, "y": 1.896 }, + { "time": 0.3333, "x": 2.363, "y": 1.247 }, + { "time": 0.3667, "x": 1.845, "y": 0.973 }, + { "time": 0.4, "x": 1.754, "y": 0.926 }, + { "time": 0.4333, "x": 1.448, "y": 0.695 }, + { "time": 0.4667, "x": 1.441, "y": 0.688 }, + { "time": 0.5333, "x": 0.865, "y": 0.456 }, + { "time": 0.7, "x": 0.86, "y": 0.454 }, + { "time": 0.8333, "x": 0.211, "y": 0.111 } + ] + }, + "smoke4": { + "rotate": [ + { "time": 0.1667, "value": -20.35 }, + { "time": 0.2333, "value": 18.5 }, + { "time": 0.3, "value": 57.77 }, + { "time": 0.4, "value": 105.85 }, + { "time": 0.6, "value": 161.28 }, + { "time": 0.9, "value": 208.43 } + ], + "translate": [ + { "time": 0.1667, "x": 35.95, "y": 25.54 }, + { "time": 0.2333, "x": 34.17, "y": 1.87 }, + { "time": 0.3, "x": 136.7, "y": 21.5 }, + { "time": 0.4, "x": 138.61, "y": 34.8 }, + { "time": 0.6, "x": 160.38, "y": 37.13 }, + { "time": 0.9, "x": 196.41, "y": 30.36 } + ], + "scale": [ + { "time": 0.1667, "x": 2.751, "y": 1.754 }, + { "time": 0.2333, "x": 3.486, "y": 2.224 }, + { "time": 0.2667, "x": 3.486, "y": 2.586 }, + { "time": 0.3, "x": 3.847, "y": 2.109 }, + { "time": 0.4, "x": 1.96, "y": 1.074 }, + { "time": 0.9, "x": 0.825, "y": 0.452 } + ] + }, + "smoke5": { + "rotate": [ + { "time": 0.2, "value": 23.09 }, + { "time": 0.2667, "value": 12.24 }, + { "time": 0.3333, "value": 36.92 }, + { "time": 0.4333, "value": -37.33 }, + { "time": 0.5333, "value": -0.66 }, + { "time": 0.9, "value": 64.02 } + ], + "translate": [ + { "time": 0.1333 }, + { "time": 0.2333, "x": 123.76, "y": 19.44 }, + { "time": 0.3, "x": 239.08, "y": -49.72 }, + { "time": 0.3667, "x": 280.23, "y": -51.46 }, + { "time": 0.7, "x": 340.62, "y": -20.09 }, + { "time": 0.9, "x": 349.18, "y": -5.25 } + ], + "scale": [ + { "time": 0.1333 }, + { "time": 0.1667, "x": 1.718, "y": 1.718 }, + { "time": 0.2, "x": 2.109, "y": 2.109 }, + { "time": 0.2333, "x": 1.781, "y": 2.183 }, + { "time": 0.2667, "x": 2.148, "y": 2.633 }, + { "time": 0.3333, "x": 2.234, "y": 2.738 }, + { "time": 0.3667, "x": 1.366, "y": 2.148 }, + { "time": 0.4, "x": 0.97, "y": 1.524 }, + { "time": 0.4333, "x": 1.078, "y": 1.157 }, + { "time": 0.4667, "x": 1.126, "y": 1.005 }, + { "time": 0.7, "x": 1.241, "y": 1.301 }, + { "time": 0.9, "x": 0.709, "y": 0.893 } + ] + }, + "smoke6": { + "rotate": [ + { "time": 0.1667, "value": -37.43 }, + { "time": 0.2333, "value": -18.36 }, + { "time": 0.3333, "value": 28.58 }, + { "time": 0.4, "value": 150.54 }, + { "time": 0.7, "value": 301.59 } + ], + "translate": [ + { "time": 0.1333 }, + { "time": 0.2, "x": 68.04, "y": 16.15 }, + { "time": 0.2667, "x": 214.52, "y": 13.25 }, + { "time": 0.3333, "x": 285.4, "y": 17.95 }, + { "time": 0.4, "x": 202.91, "y": 101.43 }, + { "time": 0.4667, "x": 189.25, "y": 116.39 }, + { "time": 0.7, "x": 182.77, "y": 137.4 } + ], + "scale": [ + { "time": 0.1333 }, + { "time": 0.1667, "x": 1.152, "y": 1.288 }, + { "time": 0.2, "x": 1.939, "y": 2.168 }, + { "time": 0.2333, "x": 2.278, "y": 2.223 }, + { "time": 0.2667, "x": 2.023, "y": 1.974 }, + { "time": 0.3, "x": 2.644, "y": 1.974 }, + { "time": 0.4, "x": 1.539, "y": 1.425 }, + { "time": 0.4667, "x": 1.14, "y": 0.939 }, + { "time": 0.7, "x": 0.215, "y": 0.161 } + ] + }, + "smoke7": { + "rotate": [ + { "time": 0.1667, "value": -243.11 }, + { "time": 0.4, "value": -182.02 }, + { "time": 0.8333, "value": -83.02 } + ], + "translate": [ + { "time": 0.1333, "x": 3.19, "y": -6.53 }, + { "time": 0.1667, "x": 44.54, "y": 1.12 }, + { "time": 0.2, "x": 65.84, "y": 6.02 }, + { "time": 0.2333, "x": 173.84, "y": 97.51 }, + { "time": 0.4, "x": 167.39, "y": 74.58 }, + { "time": 0.8333, "x": 227.77, "y": 84.64 } + ], + "scale": [ + { "time": 0.1333, "x": 0.878, "y": 0.878 }, + { "time": 0.1667, "x": 1.235, "y": 1.235 }, + { "time": 0.2, "x": 1.461, "y": 1.461 }, + { "time": 0.2333, "x": 1.114, "y": 1.114 }, + { "time": 0.3333, "x": 1.067, "y": 1.067 }, + { "time": 0.4667, "x": 0.81, "y": 0.753 }, + { "time": 0.8333, "x": 0.52, "y": 0.484 } + ] + }, + "smoke8": { + "rotate": [ + { "time": 0.1667, "value": -156.52 }, + { "time": 0.2667, "value": -154.05 }, + { "time": 0.3333, "value": -108.35 }, + { "time": 0.6, "value": -93.14 }, + { "time": 0.9333, "value": -70.89 } + ], + "translate": [ + { "time": 0.1667, "x": 20.72, "y": 0.25 }, + { "time": 0.2333, "x": 46.1, "y": -10.06 }, + { "time": 0.3, "x": 149.77, "y": 0.92 }, + { "time": 0.3667, "x": 241.21, "y": 49.01 }, + { "time": 0.5333, "x": 276, "y": 58.76 }, + { "time": 0.7, "x": 292.02, "y": 65.91 }, + { "time": 0.9333, "x": 308.7, "y": 69.51 } + ], + "scale": [ + { "time": 0.1333, "y": 1.174 }, + { "time": 0.1667, "x": 1.813, "y": 1.438 }, + { "time": 0.2, "x": 1.813, "y": 1.878 }, + { "time": 0.2333, "x": 1.211, "y": 1.878 }, + { "time": 0.2667, "x": 1.584, "y": 1.596 }, + { "time": 0.3, "x": 1.958, "y": 1.878 }, + { "time": 0.4667, "x": 1.139, "y": 0.958 }, + { "time": 0.9333, "x": 0.839, "y": 0.591 } + ] + }, + "smoke9": { + "rotate": [ + { "time": 0.1333, "value": -44.34 }, + { "time": 0.1667, "value": 14.73 }, + { "time": 0.2333, "value": 116.07 }, + { "time": 0.2667, "value": 118.29 }, + { "time": 0.3333, "value": 148.13 }, + { "time": 0.3667, "value": 172.74 }, + { "time": 0.4, "value": 235.69 }, + { "time": 0.4333, "value": 283.36 }, + { "time": 0.7667, "value": 358.76 } + ], + "translate": [ + { "time": 0.1333, "x": -3.49, "y": 0.04 }, + { "time": 0.2, "x": 87.4, "y": -7.97 }, + { "time": 0.2667, "x": 233.69, "y": -33.86 }, + { "time": 0.3333, "x": 296.44, "y": -30.87 }, + { "time": 0.4, "x": 390.8, "y": 4 }, + { "time": 0.4667, "x": 391.42, "y": 13.17 }, + { "time": 0.6333, "x": 413.3, "y": 36.13 }, + { "time": 0.7667, "x": 408.59, "y": 40.75 } + ], + "scale": [ + { "time": 0.1333, "x": 1.289, "y": 1.501 }, + { "time": 0.2, "x": 1.751, "y": 2.039 }, + { "time": 0.2667, "x": 2.064, "y": 2.347 }, + { "time": 0.3333, "x": 1.822, "y": 2.072 }, + { "time": 0.4, "x": 1.296, "y": 1.045 }, + { "time": 0.4667, "x": 1.872, "y": 1.526 }, + { "time": 0.6333, "x": 1.181, "y": 1.037 }, + { "time": 0.7667, "x": 0.716, "y": 0.615 } + ] + }, + "smoke10": { + "rotate": [ + { "time": 0.1333, "value": 12.16 }, + { "time": 0.2, "value": 49.19 }, + { "time": 0.2667, "value": 33.17 }, + { "time": 0.3333, "value": 42.23 }, + { "time": 0.4, "value": 11.69 }, + { "time": 0.4667, "value": 41.83 }, + { "time": 0.5333, "value": 54.86 }, + { "time": 0.6333, "value": 75.25 }, + { "time": 0.8333, "value": 126.4 } + ], + "translate": [ + { "time": 0.1333, "x": 7.74, "y": 10.25 }, + { "time": 0.2, "x": 42.9, "y": 72.89 }, + { "time": 0.2667, "x": 221.58, "y": 82.27 }, + { "time": 0.3333, "x": 297.31, "y": 85.39 }, + { "time": 0.4, "x": 322.91, "y": 81.04 }, + { "time": 0.4667, "x": 346.62, "y": 76.68 }, + { "time": 0.6667, "x": 377.46, "y": 81.85 }, + { "time": 0.8333, "x": 402.18, "y": 101.03 } + ], + "scale": [ + { "time": 0.1333, "x": 0.537, "y": 1.062 }, + { "time": 0.1667, "x": 1.042, "y": 0.841 }, + { "time": 0.2, "x": 1.937, "y": 1.563 }, + { "time": 0.2333, "x": 1.937, "y": 2.176 }, + { "time": 0.2667, "x": 2.254, "y": 2.532 }, + { "time": 0.3, "x": 2.24, "y": 2.516 }, + { "time": 0.5333, "x": 1.731, "y": 1.882 }, + { "time": 0.8333, "x": 0.855, "y": 0.867 } + ] + }, + "smoke-glow": { + "translate": [ + { "time": 0.0667, "x": -57.08, "y": 0.01 }, + { "time": 0.1, "x": -49.68, "y": -1.46 }, + { "time": 0.1333, "x": 6.3, "y": -2.92 }, + { "time": 0.1667, "x": 31.57, "y": 0.44 }, + { "time": 0.2, "x": 34.04, "y": 0.27 }, + { "time": 0.2333, "x": 109.29, "y": 1.02 }, + { "time": 0.4, "x": 119.89, "y": 1.01 }, + { "time": 0.4333, "x": 135.2, "y": 1.03 }, + { "time": 0.4667, "x": 152.86, "y": 1.06 }, + { "time": 0.5333, "x": 164.64, "y": 1.07 }, + { "time": 0.6, "x": 179.94, "y": 1.09 }, + { "time": 0.6333, "x": 190.54, "y": 1.1 } + ], + "scale": [ + { "time": 0.0667, "x": 0.233, "y": 0.233 }, + { "time": 0.1, "x": 0.42, "y": 0.288 }, + { "time": 0.1333, "x": 1.669, "y": 1.072 }, + { "time": 0.1667, "x": 1.669, "y": 1.785, "curve": "stepped" }, + { "time": 0.2, "x": 1.669, "y": 1.785 }, + { "time": 0.2333, "x": 2.544, "y": 1.785 }, + { "time": 0.4333, "x": 3.48, "y": 2.22 }, + { "time": 0.4667, "x": 4.337, "y": 2.655 } + ] + }, + "smoke11": { + "rotate": [ + { "time": 0.4, "value": 47.07 }, + { "time": 0.4333, "value": 109.71 }, + { "time": 0.4667, "value": 164.62 }, + { "time": 0.8333, "value": 276.93 } + ], + "translate": [ + { "time": 0.3333, "x": 280.31, "y": 126.85 }, + { "time": 0.4, "x": 296.27, "y": 125.62 }, + { "time": 0.4667, "x": 312.45, "y": 131.57 }, + { "time": 0.6667, "x": 310.5, "y": 149.67 }, + { "time": 0.8333, "x": 307.08, "y": 153.94 } + ], + "scale": [ + { "time": 0.3333, "x": 1.491, "y": 1.491 }, + { "time": 0.4667, "x": 1.144, "y": 0.948 }, + { "time": 0.5667, "x": 0.491, "y": 0.491 }, + { "time": 0.8333, "x": 0.985, "y": 0.91 } + ] + }, + "smoke12": { + "rotate": [ + { "time": 0.3667, "value": -37.96 }, + { "time": 0.4333, "value": 28.55 }, + { "time": 0.5333, "value": 108.53 }, + { "time": 0.8667, "value": 191.85 } + ], + "translate": [ + { "time": 0.3667, "x": 390.22, "y": -1.06 }, + { "time": 0.4333, "x": 411.78, "y": 26.39 }, + { "time": 0.5333, "x": 428.12, "y": 56.28 }, + { "time": 0.8667, "x": 444.34, "y": 68.06 } + ], + "scale": [ + { "time": 0.3667, "x": 2.006, "y": 1.821 }, + { "time": 0.5333, "x": 1.719, "y": 1.293 }, + { "time": 0.7333, "x": 1.562, "y": 1.304 }, + { "time": 0.8667, "x": 0.727, "y": 0.637 } + ] + }, + "smoke13": { + "rotate": [ + { "time": 0.3667, "value": 305.8 }, + { "time": 0.4, "value": 478.49 }, + { "time": 0.4333, "value": 537.45 }, + { "time": 0.4667, "value": 573.84 }, + { "time": 0.5333, "value": 596.4 }, + { "time": 0.7, "value": 622.3 }, + { "time": 1, "value": 657.95 } + ], + "translate": [ + { "time": 0.3667, "x": 331.84, "y": -25.82 }, + { "time": 0.4, "x": 417.88, "y": -42.62 }, + { "time": 0.4667, "x": 451.61, "y": -42.21 }, + { "time": 0.5333, "x": 453.81, "y": -37.03 }, + { "time": 0.6, "x": 451.86, "y": -31.89 }, + { "time": 0.7, "x": 453.37, "y": -27.28 }, + { "time": 1, "x": 454.04, "y": -17.89 } + ], + "scale": [ + { "time": 0.3667, "x": 4.509, "y": 3.114 }, + { "time": 0.4, "x": 3.673, "y": 2.537 }, + { "time": 0.4333, "x": 4.201, "y": 2.638 }, + { "time": 0.4667, "x": 4.27, "y": 2.399 }, + { "time": 0.6, "x": 2.798, "y": 1.932 }, + { "time": 0.8333, "x": 2.316, "y": 1.599 }, + { "time": 1, "x": 1.081, "y": 0.746 } + ] + }, + "smoke14": { + "rotate": [ + { "time": 0.4333, "value": 271.03 }, + { "time": 0.7, "value": 299.97 }, + { "time": 1.0667, "value": 331.16 } + ], + "translate": [ + { "time": 0.4333, "x": 371.68, "y": -29.8 }, + { "time": 0.7667, "x": 400.59, "y": -44.36 }, + { "time": 1.0667, "x": 432.26, "y": -44.79 } + ], + "scale": [ + { "time": 0.4333, "x": 4.011, "y": 3.366 }, + { "time": 0.7667, "x": 2.071, "y": 1.624 }, + { "time": 1.0667, "x": 1.798, "y": 1.111 } + ] + }, + "smoke15": { + "rotate": [ + { "time": 0.4, "value": 111.75 }, + { "time": 0.4667, "value": 171.93 }, + { "time": 0.6, "value": 256.95 }, + { "time": 0.8333, "value": 299.15 } + ], + "translate": [ + { "time": 0.4, "x": 266.71, "y": -53.04 }, + { "time": 0.4333, "x": 290.84, "y": -51.43 }, + { "time": 0.5333, "x": 305.65, "y": -44.32 }, + { "time": 0.6667, "x": 318.96, "y": -38.95 }, + { "time": 0.8333, "x": 342.65, "y": -27.33 } + ], + "scale": [ + { "time": 0.4, "x": 2.749, "y": 2.095 }, + { "time": 0.4333, "x": 3.302, "y": 2.289 }, + { "time": 0.4667, "x": 2.591, "y": 1.895 }, + { "time": 0.5333, "x": 1.777, "y": 1.354 }, + { "time": 0.7, "x": 1.932, "y": 1.267 }, + { "time": 0.8333, "x": 1.002, "y": 1.546 } + ] + }, + "smoke16": { + "rotate": [ + { "time": 0.4, "value": 89.78 }, + { "time": 0.4667, "value": 137.83 }, + { "time": 0.5333, "value": 193.49 }, + { "time": 0.6, "value": 235.26 }, + { "time": 0.6333, "value": 286.8 } + ], + "translate": [ + { "time": 0.4, "x": 217.23, "y": -21.45 }, + { "time": 0.4667, "x": 249.95, "y": -13.73 }, + { "time": 0.5333, "x": 264.96, "y": -9.87 }, + { "time": 0.6, "x": 278.95, "y": 6.37 }, + { "time": 0.6333, "x": 245.65, "y": 11.77 } + ], + "scale": [ + { "time": 0.4, "x": 2.265, "y": 1.859 }, + { "time": 0.4333, "x": 2.621, "y": 1.955 }, + { "time": 0.4667, "x": 1.953, "y": 1.538 }, + { "time": 0.6, "x": 1.005, "y": 0.825 }, + { "time": 0.6333, "x": 0.387, "y": 0.318 } + ] + }, + "smoke17": { + "rotate": [ + { "time": 0.2333, "value": 99.02 }, + { "time": 0.3, "value": 58.06 }, + { "time": 0.3333, "value": 34.05 }, + { "time": 0.3667, "value": -17.34 }, + { "time": 0.6667, "value": -62.36 } + ], + "translate": [ + { "time": 0.2333, "x": 18.91, "y": -62.91 }, + { "time": 0.3, "x": 2.43, "y": -61.54 }, + { "time": 0.3333, "x": 1.89, "y": -36.55 }, + { "time": 0.3667, "x": 6.97, "y": -29.52 }, + { "time": 0.4333, "x": 10.78, "y": -20.55 }, + { "time": 0.6667, "x": 18.65, "y": -13.19 } + ], + "scale": [ + { "time": 0.2333, "x": 1.915, "y": 1.915 }, + { "time": 0.3, "x": 1.509, "y": 1.509 }, + { "time": 0.3333, "x": 1.01, "y": 1.01 }, + { "time": 0.3667, "x": 0.715, "y": 0.715 }, + { "time": 0.4333, "x": 0.949, "y": 0.721 }, + { "time": 0.5667, "x": 0.785, "y": 0.74 } + ] + }, + "smoke18": { + "rotate": [ + { "time": 0.2333, "value": 141.75 }, + { "time": 0.2667, "value": 134.51 }, + { "time": 0.3333, "value": 249.12 }, + { "time": 0.5, "value": 363.82 }, + { "time": 0.7333, "value": 450.54 } + ], + "translate": [ + { "time": 0.2333, "x": 60.81, "y": 56.17 }, + { "time": 0.2667, "x": 68.74, "y": 69.4 }, + { "time": 0.3333, "x": 76.85, "y": 69.07 }, + { "time": 0.5, "x": 101.49, "y": 89.87 }, + { "time": 0.7333, "x": 118.58, "y": 101.16 } + ], + "scale": [ + { "time": 0.2333, "x": 2.288, "y": 2.288 }, + { "time": 0.2667, "x": 2.288, "y": 1.628 }, + { "time": 0.3, "x": 1.524, "y": 1.308 }, + { "time": 0.5, "x": 1.757, "y": 1.385 }, + { "time": 0.5333, "x": 2.08, "y": 1.51 }, + { "time": 0.7333, "x": 1.405, "y": 0.896 } + ] + }, + "smoke20": { + "rotate": [ + { "time": 0.3333, "value": 95.16 }, + { "time": 0.3667, "value": 130.42 }, + { "time": 0.4, "value": 170.7 }, + { "time": 0.4333, "value": 266.75 }, + { "time": 0.4667, "value": 299.82 }, + { "time": 0.5333, "value": 326.88 }, + { "time": 0.6, "value": 350.8 }, + { "time": 0.9, "value": 403.14 } + ], + "translate": [ + { "time": 0.3333, "x": 124.61, "y": -46.55 }, + { "time": 0.5333, "x": 173.8, "y": -36.62 }, + { "time": 0.7, "x": 186.5, "y": -35.41 }, + { "time": 0.9, "x": 188.56, "y": -37.75 } + ], + "scale": [ + { "time": 0.3333, "x": 3.346, "y": 2.654 }, + { "time": 0.3667, "x": 2.661, "y": 2.111 }, + { "time": 0.4333, "x": 2.751, "y": 1.984 }, + { "time": 0.4667, "x": 3.059, "y": 2.21 }, + { "time": 0.5333, "x": 2.159, "y": 1.712 }, + { "time": 0.7, "x": 1.601, "y": 1.27 }, + { "time": 0.9, "x": 1.679, "y": 0.856 } + ] + }, + "smoke23": { + "rotate": [ + { "time": 0.3, "value": 115.12 }, + { "time": 0.3667, "value": 79.01 }, + { "time": 0.7667, "value": 6.96 } + ], + "translate": [ + { "time": 0.3, "x": 75.15, "y": -50.92 }, + { "time": 0.3667, "x": 59.33, "y": -53.52 }, + { "time": 0.7667, "x": 39.68, "y": -48.64 } + ], + "scale": [ + { "time": 0.3, "x": 3.331, "y": 2.096 }, + { "time": 0.4333, "x": 2.4, "y": 2.006 }, + { "time": 0.5, "x": 2.555, "y": 2.094 }, + { "time": 0.7667, "x": 1.35, "y": 1.241 } + ] + }, + "antenna1": { + "rotate": [ + { "time": 0.0667 }, + { "time": 0.2, "value": 11.78 }, + { "time": 0.3, "value": -9.52 }, + { "time": 0.4, "value": 8.07 }, + { "time": 0.5, "value": -4.45 }, + { "time": 0.6, "value": 1.54 }, + { "time": 0.7, "value": -0.34 } + ] + }, + "antenna2": { + "rotate": [ + { "time": 0.0667 }, + { "time": 0.2, "value": 11.78 }, + { "time": 0.3, "value": -9.52 }, + { "time": 0.4, "value": 8.07 }, + { "time": 0.5, "value": -4.45 }, + { "time": 0.6, "value": 1.54 }, + { "time": 0.7, "value": -0.34 } + ] + }, + "antenna3": { + "rotate": [ + { "time": 0.0667 }, + { "time": 0.2, "value": 11.78 }, + { "time": 0.3, "value": -9.52 }, + { "time": 0.4, "value": 8.07 }, + { "time": 0.5, "value": -4.45 }, + { "time": 0.6, "value": 1.54 }, + { "time": 0.7, "value": -0.34 } + ] + }, + "antenna4": { + "rotate": [ + { "time": 0.0667 }, + { "time": 0.2, "value": 11.78 }, + { "time": 0.3, "value": -9.52 }, + { "time": 0.4, "value": 8.07 }, + { "time": 0.5, "value": -4.45 }, + { "time": 0.6, "value": 1.54 }, + { "time": 0.7, "value": -0.34 } + ] + }, + "antenna5": { + "rotate": [ + { "time": 0.0667 }, + { "time": 0.2, "value": 11.78 }, + { "time": 0.3, "value": -9.52 }, + { "time": 0.4, "value": 8.07 }, + { "time": 0.5, "value": -4.45 }, + { "time": 0.6, "value": 1.54 }, + { "time": 0.7, "value": -0.34 } + ] + }, + "antenna6": { + "rotate": [ + { "time": 0.0667 }, + { "time": 0.2, "value": 11.78 }, + { "time": 0.3, "value": -9.52 }, + { "time": 0.4, "value": 8.07 }, + { "time": 0.5, "value": -4.45 }, + { "time": 0.6, "value": 1.54 }, + { "time": 0.7, "value": -0.34 } + ] + }, + "smoke24": { + "rotate": [ + { "time": 0.3, "value": 71.32 }, + { "time": 0.3667, "value": 112.39 }, + { "time": 0.4667, "value": 159.56 }, + { "time": 0.7, "value": 224.21 } + ], + "translate": [ + { "time": 0.3, "x": 90.72, "y": -18.79 }, + { "time": 0.3667, "x": 149.69, "y": -7.78 }, + { "time": 0.4667, "x": 176.26, "y": 12.31 }, + { "time": 0.7, "x": 184.07, "y": 31.75 } + ], + "scale": [ + { "time": 0.3, "x": 2.906, "y": 2.311 }, + { "time": 0.4333, "x": 3.567, "y": 2.58 }, + { "time": 0.4667, "x": 3.157, "y": 2.41 }, + { "time": 0.7, "x": 1.705, "y": 1.356 } + ] + }, + "smoke25": { + "rotate": [ + { "time": 0.3667, "value": 91.25 }, + { "time": 0.4333, "value": 117.56 }, + { "time": 0.6333, "value": 150.9 }, + { "time": 1, "value": 189.47 } + ], + "translate": [ + { "time": 0.3667, "x": 187.21, "y": -51.18 }, + { "time": 0.5333, "x": 245.48, "y": -46.28 }, + { "time": 0.6667, "x": 277.36, "y": -43.12 }, + { "time": 1, "x": 313.27, "y": -38.14 } + ], + "scale": [ + { "time": 0.3667, "x": 3.606, "y": 2.657 }, + { "time": 0.4333, "x": 4.166, "y": 2.792 }, + { "time": 0.5333, "x": 3.09, "y": 2.091 }, + { "time": 1, "x": 3.062, "y": 1.801 } + ] + }, + "smoke26": { + "rotate": [ + { "time": 0.3667, "value": 10.64 }, + { "time": 0.4, "value": 60.85 }, + { "time": 0.4667, "value": 89.45 }, + { "time": 0.7, "value": 125.01 }, + { "time": 0.9333, "value": 155.24 } + ], + "translate": [ + { "time": 0.3667, "x": 442.07, "y": -13.19 }, + { "time": 0.4, "x": 453.7, "y": 0.81 }, + { "time": 0.4667, "x": 443.57, "y": -6.95 }, + { "time": 0.7, "x": 460.97, "y": 15.79 }, + { "time": 0.9333, "x": 465.22, "y": 20.92 } + ], + "scale": [ + { "time": 0.3667, "x": 2.726, "y": 2.726 }, + { "time": 0.4333, "x": 3.729, "y": 2.822 }, + { "time": 0.4667, "x": 3.398, "y": 2.441 }, + { "time": 0.7, "x": 4.324, "y": 3.159 }, + { "time": 0.9, "x": 1.977, "y": 1.48 } + ] + }, + "smoke27": { + "rotate": [ + { "time": 0.3667, "value": 24.75 }, + { "time": 0.4333, "value": -5.43 }, + { "time": 0.5333, "value": -39.76 }, + { "time": 0.8333, "value": -56.25 } + ], + "translate": [ + { "time": 0.3667, "x": 92.98, "y": -49.06 }, + { "time": 0.5333, "x": 129.81, "y": -33.09 }, + { "time": 0.8333, "x": 143.68, "y": -25.27 } + ], + "scale": [ + { "time": 0.3667, "x": 3.633, "y": 2.223 }, + { "time": 0.4333, "x": 2.745, "y": 2.283 }, + { "time": 0.4667, "x": 2.962, "y": 2.122 }, + { "time": 0.5333, "x": 2.007, "y": 1.266 } + ] + }, + "cannon-target": { + "translate": [ + { "time": 0.1333 }, + { + "time": 0.2, + "y": 128.38, + "curve": [ 0.4, 0, 0.8, 0, 0.4, 128.38, 0.8, 0 ] + }, + { "time": 1 } + ], + "scale": [ + { "time": 0.4333, "x": 0.632, "y": 1.244 }, + { "time": 0.4667, "x": 0.477, "y": 1.487 } + ] + }, + "machinegun-target": { + "scale": [ + { "time": 0.4333, "x": 0.632, "y": 1.244 }, + { "time": 0.4667, "x": 0.477, "y": 1.487 } + ] + }, + "machinegun": { + "rotate": [ + { "value": 8.07, "curve": "stepped" }, + { "time": 0.0667, "value": 8.07 }, + { + "time": 0.2333, + "value": -18.67, + "curve": [ 0.894, -18.44, 0.832, 7.5 ] + }, + { "time": 0.9, "value": 8.07 } + ] + }, + "tank-root": { + "translate": [ + { "time": 0.0667 }, + { + "time": 0.1667, + "x": 46.59, + "curve": [ 0.192, 46.59, 0.242, 0, 0.192, 0, 0.242, 0 ] + }, + { "time": 0.2667 } + ] + }, + "tank-glow": { + "translate": [ + { + "time": 0.1333, + "x": 198.14, + "curve": [ 0.199, 190.76, 0.222, -255.89, 0.199, 0, 0.222, 0 ] + }, + { "time": 0.2333, "x": -390 } + ], + "scale": [ + { "time": 0.0667 }, + { + "time": 0.1333, + "x": 1.185, + "y": 0.945, + "curve": [ 0.199, 1.182, 0.222, 1.048, 0.199, 0.939, 0.222, 0.579 ] + }, + { "time": 0.2333, "x": 1.008, "y": 0.471 } + ] + } + }, + "attachments": { + "default": { + "clipping": { + "clipping": { + "deform": [ + { + "time": 0.0667, + "offset": 54, + "vertices": [ 4.59198, -4.59192 ] + }, + { + "time": 0.1333, + "offset": 8, + "vertices": [ -8.97369, -1.88211, 9.11177, 1.02258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14.73321, -45.16878, -30.31448, -84.4631, -32.24969, -108.78421, 70.26825, -36.90201 ] + }, + { + "time": 0.1667, + "offset": 8, + "vertices": [ -11.32373, -1.65065, 11.42179, 0.53259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15.36503, -69.18713, -4.45626, -121.90839, 5.46554, -115.23274, 71.78526, -33.85687 ] + }, + { + "time": 0.2, + "offset": 8, + "vertices": [ -8.70522, 1.02196, 8.65102, -1.4101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.59198, -4.59192 ] + }, + { + "time": 0.2333, + "offset": 8, + "vertices": [ -5.23146, 0.85796, 5.23882, -0.81519 ] + }, + { + "time": 0.2667, + "offset": 54, + "vertices": [ 4.59198, -4.59192 ] + } + ] + } + }, + "smoke-glow": { + "smoke-glow": { + "deform": [ + { + "time": 0.1333, + "vertices": [ -14.17073, 19.14352, 0, 0, -10.97961, -15.09065, -5.79558, -24.82121, 0.68117, -17.78759, -1.1179, -5.4463, 0, 0, 0, 0, 17.52957, 6.89397, -0.33841, -2.21582, 5.51004, 18.88118, -6.80153, 20.91101 ] + }, + { + "time": 0.1667, + "vertices": [ -4.34264, 39.78125, 5.6649, -2.42686, -8.39346, -22.52338, -2.66431, 5.08595, -19.28093, 3.98568, -11.21397, 10.2879, 4.56749, 4.1329, -19.50706, -2.28786, 11.35747, 4.55941, 9.04341, -11.72194, 2.15381, 5.14344, -12.82158, 16.08209, -23.19814, 1.81836 ] + }, + { + "time": 0.2, + "vertices": [ -3.95581, 36.12203, 37.20779, -0.87419, 21.29579, -15.76854, -2.02438, 6.16526, -5.92201, 4.19709, -1.39027, 9.92793, 7.70584, -0.7169, -6.69733, -2.62048, 17.91826, 7.77333, -12.2858, 3.25454, -12.75876, 3.71516, 9.67891, 15.48546 ] + }, + { + "time": 0.2333, + "vertices": [ -11.9371, 26.01078, 2.91821, -0.27533, 7.69899, -17.45375, -2.02438, 6.16526, -5.92201, 4.19709, -1.39027, 9.92793, 7.70584, -0.7169, -6.69733, -2.62048, 17.91826, 7.77333, -4.30551, -6.01406, -12.75876, 3.71516, -5.10017, 17.59191 ] + }, + { + "time": 0.2667, + "vertices": [ 0.5959, 23.58176, 20.74303, 0.93943, 7.69899, -17.45375, -2.02438, 6.16526, -5.92201, 4.19709, -1.39027, 9.92793, 20.51733, 2.52203, 13.35544, 2.64274, 24.32408, -1.94308, 8.50604, -20.99353, 13.14276, 5.73959, 6.31876, 19.2114, 16.98909, 0.80981 ] + } + ] + } + } + } + }, + "drawOrder": [ + { + "time": 0.3, + "offsets": [ + { "slot": "smoke-puff1-bg2", "offset": 24 }, + { "slot": "smoke-puff1-bg8", "offset": 19 }, + { "slot": "smoke-puff1-bg9", "offset": 22 }, + { "slot": "smoke-puff1-bg3", "offset": 17 }, + { "slot": "smoke-puff1-fg17", "offset": 13 }, + { "slot": "smoke-puff1-fg2", "offset": 2 }, + { "slot": "smoke-puff1-fg5", "offset": 8 }, + { "slot": "smoke-puff1-fg6", "offset": 4 }, + { "slot": "smoke-puff1-fg7", "offset": -4 }, + { "slot": "smoke-puff1-fg4", "offset": -4 } + ] + }, + { + "time": 0.3333, + "offsets": [ + { "slot": "smoke-puff1-bg2", "offset": 8 }, + { "slot": "smoke-puff1-bg8", "offset": 5 }, + { "slot": "smoke-puff1-bg9", "offset": 3 }, + { "slot": "smoke-puff1-fg", "offset": 24 }, + { "slot": "smoke-puff1-fg5", "offset": -14 }, + { "slot": "smoke-puff1-fg6", "offset": -21 }, + { "slot": "smoke-puff1-fg7", "offset": -19 }, + { "slot": "smoke-puff1-fg10", "offset": -21 } + ] + }, + { + "time": 0.3667, + "offsets": [ + { "slot": "smoke-puff1-bg2", "offset": 7 }, + { "slot": "smoke-puff1-bg9", "offset": 4 }, + { "slot": "smoke-puff1-fg", "offset": 24 }, + { "slot": "smoke-puff1-fg2", "offset": 5 }, + { "slot": "smoke-puff1-fg6", "offset": -22 }, + { "slot": "smoke-puff1-fg7", "offset": -18 }, + { "slot": "smoke-puff1-fg10", "offset": -20 } + ] + }, + { + "time": 0.4, + "offsets": [ + { "slot": "smoke-puff1-bg2", "offset": 5 }, + { "slot": "smoke-puff1-bg4", "offset": 0 }, + { "slot": "smoke-puff1-fg", "offset": 24 }, + { "slot": "smoke-puff1-fg2", "offset": 5 }, + { "slot": "smoke-puff1-fg6", "offset": -21 }, + { "slot": "smoke-puff1-fg7", "offset": -18 }, + { "slot": "smoke-puff1-fg10", "offset": -22 } + ] + }, + { + "time": 0.4333, + "offsets": [ + { "slot": "smoke-puff1-bg2", "offset": 4 }, + { "slot": "smoke-puff1-bg9", "offset": 4 }, + { "slot": "smoke-puff1-fg", "offset": 24 }, + { "slot": "smoke-puff1-fg2", "offset": 5 }, + { "slot": "smoke-puff1-fg6", "offset": -17 }, + { "slot": "smoke-puff1-fg7", "offset": -19 }, + { "slot": "smoke-puff1-fg10", "offset": -23 } + ] + }, + { + "time": 0.5333, + "offsets": [ + { "slot": "smoke-puff1-bg2", "offset": 9 }, + { "slot": "smoke-puff1-bg12", "offset": 0 }, + { "slot": "smoke-puff1-fg", "offset": 24 }, + { "slot": "smoke-puff1-fg2", "offset": 6 }, + { "slot": "smoke-puff1-fg6", "offset": -20 }, + { "slot": "smoke-puff1-fg7", "offset": -19 }, + { "slot": "smoke-puff1-fg10", "offset": -23 }, + { "slot": "smoke-puff1-fg4", "offset": -5 } + ] + } + ] + } +} +} \ No newline at end of file diff --git a/spine-haxe/example/assets/tank-pro.skel b/spine-haxe/example/assets/tank-pro.skel new file mode 100644 index 0000000000..7b1f71bf2d Binary files /dev/null and b/spine-haxe/example/assets/tank-pro.skel differ diff --git a/spine-haxe/example/assets/tank.atlas b/spine-haxe/example/assets/tank.atlas new file mode 100644 index 0000000000..295fb0d223 --- /dev/null +++ b/spine-haxe/example/assets/tank.atlas @@ -0,0 +1,56 @@ +tank.png + size: 1024, 1024 + filter: Linear, Linear + scale: 0.5 +antenna + bounds: 2, 712, 11, 152 + rotate: 90 +cannon + bounds: 222, 694, 466, 29 +cannon-connector + bounds: 82, 654, 56, 68 + rotate: 90 +ground + bounds: 2, 175, 512, 177 +guntower + bounds: 647, 347, 365, 145 +machinegun + bounds: 690, 694, 166, 29 +machinegun-mount + bounds: 858, 687, 36, 48 + rotate: 90 +rock + bounds: 664, 607, 290, 64 +smoke-glow + bounds: 946, 673, 50, 50 +smoke-puff01-bg + bounds: 312, 630, 92, 62 +smoke-puff01-fg + bounds: 222, 633, 88, 59 +smoke-puff02-fg + bounds: 406, 630, 92, 62 +smoke-puff03-fg + bounds: 500, 630, 92, 62 +smoke-puff04-fg + bounds: 2, 662, 78, 48 +tank-bottom + bounds: 2, 354, 643, 138 +tank-bottom-shadow + bounds: 2, 2, 646, 171 +tank-top + bounds: 195, 494, 704, 111 +tread + bounds: 172, 708, 48, 15 +tread-inside + bounds: 156, 710, 13, 14 + rotate: 90 +wheel-big + bounds: 97, 540, 96, 96 +wheel-big-overlay + bounds: 2, 559, 93, 93 +wheel-mid + bounds: 594, 624, 68, 68 +wheel-mid-overlay + bounds: 152, 638, 68, 68 +wheel-small + bounds: 908, 687, 36, 36 diff --git a/spine-haxe/example/assets/tank.png b/spine-haxe/example/assets/tank.png new file mode 100644 index 0000000000..a50ffc8e42 Binary files /dev/null and b/spine-haxe/example/assets/tank.png differ diff --git a/spine-haxe/example/assets/vine-pro.json b/spine-haxe/example/assets/vine-pro.json new file mode 100644 index 0000000000..d0930c9ca6 --- /dev/null +++ b/spine-haxe/example/assets/vine-pro.json @@ -0,0 +1,357 @@ +{ +"skeleton": { + "hash": "J/Kz2d3OlD0", + "spine": "4.1.17", + "x": -87.7, + "y": -1.71, + "width": 227.65, + "height": 841.09, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { + "name": "vine-control1", + "parent": "root", + "length": 296.68, + "rotation": 88.65, + "x": -2.51, + "y": 2.55, + "color": "ff0004ff" + }, + { "name": "vine-control2", "parent": "vine-control1", "length": 292.6, "rotation": 0.96, "x": 296.68, "color": "ff0004ff" }, + { "name": "vine-control3", "parent": "vine-control2", "length": 247.5, "rotation": 0.16, "x": 292.6, "color": "ff0004ff" }, + { "name": "vine-control4", "parent": "vine-control3", "length": 212.43, "rotation": 0.5, "x": 247.5, "color": "ff0004ff" }, + { + "name": "vine1", + "parent": "root", + "length": 74, + "rotation": 90, + "x": 339.1, + "y": -467.15, + "color": "f700ffff" + }, + { + "name": "vine10", + "parent": "vine1", + "length": 74, + "rotation": 48, + "x": 608.63, + "y": 19.06, + "color": "f700ffff" + }, + { + "name": "vine11", + "parent": "vine1", + "length": 74, + "rotation": 39.71, + "x": 670.66, + "y": 66.4, + "color": "f700ffff" + }, + { + "name": "vine12", + "parent": "vine1", + "length": 74, + "rotation": 10.73, + "x": 750.1, + "y": 80.23, + "color": "f700ffff" + }, + { + "name": "vine13", + "parent": "vine1", + "length": 74, + "rotation": -18.44, + "x": 826.07, + "y": 56.95, + "color": "f700ffff" + }, + { "name": "vine2", "parent": "vine1", "length": 74, "x": 74, "color": "f700ffff" }, + { + "name": "vine3", + "parent": "vine1", + "length": 74, + "rotation": 38.95, + "x": 137.97, + "y": 47.51, + "color": "f700ffff" + }, + { + "name": "vine4", + "parent": "vine1", + "length": 74, + "rotation": 16.68, + "x": 214.29, + "y": 68.52, + "color": "f700ffff" + }, + { + "name": "vine5", + "parent": "vine1", + "length": 74, + "rotation": -21.74, + "x": 289.61, + "y": 40.93, + "color": "f700ffff" + }, + { + "name": "vine6", + "parent": "vine1", + "length": 74, + "rotation": -50.04, + "x": 341.13, + "y": -15.58, + "color": "f700ffff" + }, + { + "name": "vine7", + "parent": "vine1", + "length": 74, + "rotation": -39.26, + "x": 402.7, + "y": -61.82, + "color": "f700ffff" + }, + { + "name": "vine8", + "parent": "vine1", + "length": 74, + "rotation": -6.18, + "x": 483.27, + "y": -69.84, + "color": "f700ffff" + }, + { + "name": "vine9", + "parent": "vine1", + "length": 74, + "rotation": 27.11, + "x": 554.26, + "y": -36.44, + "color": "f700ffff" + } +], +"slots": [ + { "name": "vine-path", "bone": "root", "attachment": "vine-path" }, + { "name": "vine", "bone": "vine1", "attachment": "vine" } +], +"path": [ + { + "name": "vine-path", + "bones": [ "vine1", "vine2", "vine3", "vine4", "vine5", "vine6", "vine7", "vine8", "vine9", "vine10", "vine11", "vine12", "vine13" ], + "target": "vine-path", + "rotateMode": "chainScale" + } +], +"skins": [ + { + "name": "default", + "attachments": { + "vine": { + "vine": { + "type": "mesh", + "uvs": [ 0, 0, 0.5, 0, 1, 0, 1, 0.03846, 1, 0.07692, 1, 0.11538, 1, 0.15385, 1, 0.19231, 1, 0.23077, 1, 0.26923, 1, 0.30769, 1, 0.34615, 1, 0.38462, 1, 0.42308, 1, 0.46154, 1, 0.5, 1, 0.53846, 1, 0.57692, 1, 0.61538, 1, 0.65385, 1, 0.69231, 1, 0.73077, 1, 0.76923, 1, 0.80769, 1, 0.84615, 1, 0.88462, 1, 0.92308, 1, 0.96154, 1, 1, 0.5, 1, 0, 1, 0, 0.96154, 0, 0.92308, 0, 0.88462, 0, 0.84615, 0, 0.80769, 0, 0.76923, 0, 0.73077, 0, 0.69231, 0, 0.65385, 0, 0.61538, 0, 0.57692, 0, 0.53846, 0, 0.5, 0, 0.46154, 0, 0.42308, 0, 0.38462, 0, 0.34615, 0, 0.30769, 0, 0.26923, 0, 0.23077, 0, 0.19231, 0, 0.15385, 0, 0.11538, 0, 0.07692, 0, 0.03846, 0.5, 0.03846, 0.5, 0.07692, 0.5, 0.11538, 0.5, 0.15385, 0.5, 0.19231, 0.5, 0.23077, 0.5, 0.26923, 0.5, 0.30769, 0.5, 0.34615, 0.5, 0.38462, 0.5, 0.42308, 0.5, 0.46154, 0.5, 0.5, 0.5, 0.53846, 0.5, 0.57692, 0.5, 0.61538, 0.5, 0.65385, 0.5, 0.69231, 0.5, 0.73077, 0.5, 0.76923, 0.5, 0.80769, 0.5, 0.84615, 0.5, 0.88462, 0.5, 0.92308, 0.5, 0.96154 ], + "triangles": [ 57, 56, 3, 54, 55, 56, 56, 2, 3, 55, 1, 56, 56, 1, 2, 55, 0, 1, 54, 56, 57, 59, 58, 5, 52, 53, 58, 58, 4, 5, 53, 57, 58, 58, 57, 4, 53, 54, 57, 57, 3, 4, 61, 60, 7, 50, 51, 60, 60, 6, 7, 51, 59, 60, 60, 59, 6, 51, 52, 59, 59, 5, 6, 52, 58, 59, 62, 61, 8, 49, 50, 61, 61, 7, 8, 50, 60, 61, 63, 62, 9, 48, 49, 62, 62, 8, 9, 49, 61, 62, 63, 9, 10, 65, 64, 11, 46, 47, 64, 64, 10, 11, 47, 63, 64, 64, 63, 10, 47, 48, 63, 48, 62, 63, 67, 66, 13, 44, 45, 66, 66, 12, 13, 45, 65, 66, 66, 65, 12, 45, 46, 65, 46, 64, 65, 65, 11, 12, 69, 68, 15, 42, 43, 68, 68, 14, 15, 43, 67, 68, 68, 67, 14, 43, 44, 67, 67, 13, 14, 44, 66, 67, 71, 70, 17, 40, 41, 70, 70, 16, 17, 41, 69, 70, 70, 69, 16, 41, 42, 69, 69, 15, 16, 42, 68, 69, 73, 72, 19, 38, 39, 72, 72, 18, 19, 39, 71, 72, 72, 71, 18, 39, 40, 71, 71, 17, 18, 40, 70, 71, 75, 74, 21, 36, 37, 74, 74, 20, 21, 37, 73, 74, 74, 73, 20, 37, 38, 73, 73, 19, 20, 38, 72, 73, 77, 76, 23, 34, 35, 76, 76, 22, 23, 35, 75, 76, 76, 75, 22, 35, 36, 75, 75, 21, 22, 36, 74, 75, 78, 77, 24, 33, 34, 77, 32, 78, 79, 79, 78, 25, 32, 33, 78, 78, 24, 25, 33, 77, 78, 77, 23, 24, 34, 76, 77, 79, 25, 26, 29, 27, 28, 30, 80, 29, 29, 80, 27, 30, 31, 80, 80, 26, 27, 31, 79, 80, 80, 79, 26, 31, 32, 79 ], + "vertices": [ 3, 7, 220, 33.89, 0.0165, 8, 146, 33.89, 0.21533, 9, 72, 33.89, 0.76817, 2, 8, 146, -0.11, 0.16997, 9, 72, -0.11, 0.83003, 3, 7, 220, -34.11, 0.0165, 8, 146, -34.11, 0.21533, 9, 72, -34.11, 0.76817, 3, 7, 183, -34.11, 0.04748, 8, 109, -34.11, 0.33417, 9, 35, -34.11, 0.61835, 4, 6, 220, -34.11, 0.01164, 7, 146, -34.11, 0.14113, 8, 72, -34.11, 0.49183, 9, -2, -34.11, 0.3554, 4, 6, 183, -34.11, 0.04672, 7, 109, -34.11, 0.31228, 8, 35, -34.11, 0.48857, 9, -39, -34.11, 0.15243, 4, 6, 146, -34.11, 0.14271, 7, 72, -34.11, 0.49271, 8, -2, -34.11, 0.3155, 9, -76, -34.11, 0.04909, 4, 6, 109, -34.11, 0.32758, 7, 35, -34.11, 0.51172, 8, -39, -34.11, 0.14821, 9, -113, -34.11, 0.01249, 4, 6, 72, -34.11, 0.57473, 7, -2, -34.11, 0.36792, 8, -76, -34.11, 0.05505, 9, -150, -34.11, 0.00231, 4, 17, 109, -34.11, 0.32766, 6, 35, -34.11, 0.51185, 7, -39, -34.11, 0.14825, 8, -113, -34.11, 0.01223, 4, 16, 146, -34.11, 0.14299, 17, 72, -34.11, 0.49369, 6, -2, -34.11, 0.31604, 7, -76, -34.11, 0.04729, 4, 15, 183, -34.11, 0.04729, 16, 109, -34.11, 0.31604, 17, 35, -34.11, 0.49369, 6, -39, -34.11, 0.14299, 4, 15, 146, -34.11, 0.14299, 16, 72, -34.11, 0.49369, 17, -2, -34.11, 0.31604, 6, -76, -34.11, 0.04729, 4, 14, 183, -34.11, 0.04729, 15, 109, -34.11, 0.31604, 16, 35, -34.11, 0.49369, 17, -39, -34.11, 0.14299, 4, 14, 146, -34.11, 0.14299, 15, 72, -34.11, 0.49369, 16, -2, -34.11, 0.31604, 17, -76, -34.11, 0.04729, 4, 13, 183, -34.11, 0.04729, 14, 109, -34.11, 0.31604, 15, 35, -34.11, 0.49369, 16, -39, -34.11, 0.14299, 4, 13, 146, -34.11, 0.14299, 14, 72, -34.11, 0.49369, 15, -2, -34.11, 0.31604, 16, -76, -34.11, 0.04729, 4, 12, 183, -34.11, 0.04729, 13, 109, -34.11, 0.31604, 14, 35, -34.11, 0.49369, 15, -39, -34.11, 0.14299, 4, 12, 146, -34.11, 0.14299, 13, 72, -34.11, 0.49369, 14, -2, -34.11, 0.31604, 15, -76, -34.11, 0.04729, 4, 11, 183, -34.11, 0.04729, 12, 109, -34.11, 0.31604, 13, 35, -34.11, 0.49369, 14, -39, -34.11, 0.14299, 4, 11, 146, -34.11, 0.14299, 12, 72, -34.11, 0.49369, 13, -2, -34.11, 0.31604, 14, -76, -34.11, 0.04729, 4, 10, 183, -34.11, 0.04752, 11, 109, -34.11, 0.31596, 12, 35, -34.11, 0.49356, 13, -39, -34.11, 0.14296, 4, 10, 146, -34.11, 0.14433, 11, 72, -34.11, 0.49291, 12, -2, -34.11, 0.31554, 13, -76, -34.11, 0.04721, 4, 5, 183, -34.11, 0.04107, 10, 109, -34.11, 0.32351, 11, 35, -34.11, 0.49271, 12, -39, -34.11, 0.14271, 4, 5, 146, -34.11, 0.12766, 10, 72, -34.11, 0.51334, 11, -2, -34.11, 0.31227, 12, -76, -34.11, 0.04672, 4, 5, 109, -34.11, 0.30124, 10, 35, -34.11, 0.54607, 11, -39, -34.11, 0.14105, 12, -113, -34.11, 0.01164, 3, 5, 72, -34.11, 0.55512, 10, -2, -34.11, 0.39816, 11, -76, -34.11, 0.04672, 3, 5, 35, -34.11, 0.77997, 10, -39, -34.11, 0.20831, 11, -113, -34.11, 0.01172, 2, 5, -2, -34.11, 0.89275, 10, -76, -34.11, 0.10725, 2, 5, -2, -0.11, 0.92721, 10, -76, -0.11, 0.07279, 2, 5, -2, 33.89, 0.89275, 10, -76, 33.89, 0.10725, 3, 5, 35, 33.89, 0.77997, 10, -39, 33.89, 0.20831, 11, -113, 33.89, 0.01172, 3, 5, 72, 33.89, 0.55512, 10, -2, 33.89, 0.39816, 11, -76, 33.89, 0.04672, 4, 5, 109, 33.89, 0.30124, 10, 35, 33.89, 0.54607, 11, -39, 33.89, 0.14105, 12, -113, 33.89, 0.01164, 4, 5, 146, 33.89, 0.12766, 10, 72, 33.89, 0.51334, 11, -2, 33.89, 0.31227, 12, -76, 33.89, 0.04672, 4, 5, 183, 33.89, 0.04107, 10, 109, 33.89, 0.32351, 11, 35, 33.89, 0.49271, 12, -39, 33.89, 0.14271, 4, 10, 146, 33.89, 0.14433, 11, 72, 33.89, 0.49291, 12, -2, 33.89, 0.31554, 13, -76, 33.89, 0.04721, 4, 10, 183, 33.89, 0.04752, 11, 109, 33.89, 0.31596, 12, 35, 33.89, 0.49356, 13, -39, 33.89, 0.14296, 4, 11, 146, 33.89, 0.14299, 12, 72, 33.89, 0.49369, 13, -2, 33.89, 0.31604, 14, -76, 33.89, 0.04729, 4, 11, 183, 33.89, 0.04729, 12, 109, 33.89, 0.31604, 13, 35, 33.89, 0.49369, 14, -39, 33.89, 0.14299, 4, 12, 146, 33.89, 0.14299, 13, 72, 33.89, 0.49369, 14, -2, 33.89, 0.31604, 15, -76, 33.89, 0.04729, 4, 12, 183, 33.89, 0.04729, 13, 109, 33.89, 0.31604, 14, 35, 33.89, 0.49369, 15, -39, 33.89, 0.14299, 4, 13, 146, 33.89, 0.14299, 14, 72, 33.89, 0.49369, 15, -2, 33.89, 0.31604, 16, -76, 33.89, 0.04729, 4, 13, 183, 33.89, 0.04729, 14, 109, 33.89, 0.31604, 15, 35, 33.89, 0.49369, 16, -39, 33.89, 0.14299, 4, 14, 146, 33.89, 0.14299, 15, 72, 33.89, 0.49369, 16, -2, 33.89, 0.31604, 17, -76, 33.89, 0.04729, 4, 14, 183, 33.89, 0.04729, 15, 109, 33.89, 0.31604, 16, 35, 33.89, 0.49369, 17, -39, 33.89, 0.14299, 4, 15, 146, 33.89, 0.14299, 16, 72, 33.89, 0.49369, 17, -2, 33.89, 0.31604, 6, -76, 33.89, 0.04729, 4, 15, 183, 33.89, 0.04729, 16, 109, 33.89, 0.31604, 17, 35, 33.89, 0.49369, 6, -39, 33.89, 0.14299, 4, 16, 146, 33.89, 0.14299, 17, 72, 33.89, 0.49369, 6, -2, 33.89, 0.31604, 7, -76, 33.89, 0.04729, 4, 17, 109, 33.89, 0.32766, 6, 35, 33.89, 0.51185, 7, -39, 33.89, 0.14825, 8, -113, 33.89, 0.01223, 4, 6, 72, 33.89, 0.57473, 7, -2, 33.89, 0.36792, 8, -76, 33.89, 0.05505, 9, -150, 33.89, 0.00231, 4, 6, 109, 33.89, 0.32758, 7, 35, 33.89, 0.51172, 8, -39, 33.89, 0.14821, 9, -113, 33.89, 0.01249, 4, 6, 146, 33.89, 0.14271, 7, 72, 33.89, 0.49271, 8, -2, 33.89, 0.3155, 9, -76, 33.89, 0.04909, 4, 6, 183, 33.89, 0.04672, 7, 109, 33.89, 0.31228, 8, 35, 33.89, 0.48857, 9, -39, 33.89, 0.15243, 4, 6, 220, 33.89, 0.01164, 7, 146, 33.89, 0.14113, 8, 72, 33.89, 0.49183, 9, -2, 33.89, 0.3554, 3, 7, 183, 33.89, 0.04748, 8, 109, 33.89, 0.33417, 9, 35, 33.89, 0.61835, 3, 7, 183, -0.11, 0.03069, 8, 109, -0.11, 0.31679, 9, 35, -0.11, 0.65252, 3, 7, 146, -0.11, 0.11465, 8, 72, -0.11, 0.5508, 9, -2, -0.11, 0.33455, 4, 6, 183, -0.11, 0.03047, 7, 109, -0.11, 0.30393, 8, 35, -0.11, 0.54628, 9, -39, -0.11, 0.11931, 4, 6, 146, -0.11, 0.11465, 7, 72, -0.11, 0.54869, 8, -2, -0.11, 0.30539, 9, -76, -0.11, 0.03128, 4, 6, 109, -0.11, 0.31348, 7, 35, -0.11, 0.56323, 8, -39, -0.11, 0.11769, 9, -113, -0.11, 0.0056, 4, 17, 146, -0.11, 0.11473, 6, 72, -0.11, 0.54905, 7, -2, -0.11, 0.30559, 8, -76, -0.11, 0.03064, 4, 16, 183, -0.11, 0.03064, 17, 109, -0.11, 0.30559, 6, 35, -0.11, 0.54905, 7, -39, -0.11, 0.11473, 4, 16, 146, -0.11, 0.11473, 17, 72, -0.11, 0.54905, 6, -2, -0.11, 0.30559, 7, -76, -0.11, 0.03064, 4, 15, 183, -0.11, 0.03064, 16, 109, -0.11, 0.30559, 17, 35, -0.11, 0.54905, 6, -39, -0.11, 0.11473, 4, 15, 146, -0.11, 0.11473, 16, 72, -0.11, 0.54905, 17, -2, -0.11, 0.30559, 6, -76, -0.11, 0.03064, 4, 14, 183, -0.11, 0.03064, 15, 109, -0.11, 0.30559, 16, 35, -0.11, 0.54905, 17, -39, -0.11, 0.11473, 4, 14, 146, -0.11, 0.11473, 15, 72, -0.11, 0.54905, 16, -2, -0.11, 0.30559, 17, -76, -0.11, 0.03064, 4, 13, 183, -0.11, 0.03064, 14, 109, -0.11, 0.30559, 15, 35, -0.11, 0.54905, 16, -39, -0.11, 0.11473, 4, 13, 146, -0.11, 0.11473, 14, 72, -0.11, 0.54905, 15, -2, -0.11, 0.30559, 16, -76, -0.11, 0.03064, 4, 12, 183, -0.11, 0.03064, 13, 109, -0.11, 0.30559, 14, 35, -0.11, 0.54905, 15, -39, -0.11, 0.11473, 4, 12, 146, -0.11, 0.11473, 13, 72, -0.11, 0.54905, 14, -2, -0.11, 0.30559, 15, -76, -0.11, 0.03064, 4, 11, 183, -0.11, 0.03064, 12, 109, -0.11, 0.30559, 13, 35, -0.11, 0.54905, 14, -39, -0.11, 0.11473, 4, 11, 146, -0.11, 0.11473, 12, 72, -0.11, 0.54905, 13, -2, -0.11, 0.30559, 14, -76, -0.11, 0.03064, 4, 10, 183, -0.11, 0.03064, 11, 109, -0.11, 0.30559, 12, 35, -0.11, 0.54905, 13, -39, -0.11, 0.11473, 4, 10, 146, -0.11, 0.11531, 11, 72, -0.11, 0.54869, 12, -2, -0.11, 0.30539, 13, -76, -0.11, 0.03062, 4, 5, 183, -0.11, 0.02691, 10, 109, -0.11, 0.30975, 11, 35, -0.11, 0.54869, 12, -39, -0.11, 0.11465, 4, 5, 146, -0.11, 0.09912, 10, 72, -0.11, 0.56648, 11, -2, -0.11, 0.30393, 12, -76, -0.11, 0.03047, 3, 5, 109, -0.11, 0.27809, 10, 35, -0.11, 0.60726, 11, -39, -0.11, 0.11465, 3, 5, 72, -0.11, 0.55966, 10, -2, -0.11, 0.40987, 11, -76, -0.11, 0.03047, 2, 5, 35, -0.11, 0.82292, 10, -39, -0.11, 0.17708 ], + "hull": 56, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 70, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 86, 88, 88, 90, 90, 92, 92, 94, 94, 96, 96, 98, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 108, 110, 110, 0, 0, 2, 58, 60, 2, 4, 56, 58, 62, 160, 160, 54, 64, 158, 158, 52, 66, 156, 156, 50, 68, 154, 154, 48, 46, 152, 152, 70, 72, 150, 150, 44, 42, 148, 148, 74, 76, 146, 146, 40, 38, 144, 144, 78, 80, 142, 142, 36, 34, 140, 140, 82, 84, 138, 138, 32, 30, 136, 136, 86, 88, 134, 134, 28, 26, 132, 132, 90, 92, 130, 130, 24, 22, 128, 128, 94, 96, 126, 126, 20, 18, 124, 124, 98, 100, 122, 122, 16, 14, 120, 120, 102, 12, 118, 118, 104, 106, 116, 116, 10, 8, 114, 114, 108, 110, 112, 112, 6 ], + "width": 68, + "height": 962 + } + }, + "vine-path": { + "vine-path": { + "type": "path", + "lengths": [ 223.68, 474.79, 780.32, 992.69, 1196.43, 2249.39 ], + "vertexCount": 18, + "vertices": [ 1, 1, -31.65, 22.5, 1, 1, 1, -2.74, -6.56, 1, 1, 1, 56.89, -69.01, 1, 1, 1, 115.58, 75.02, 1, 1, 1, 198.6, 53.37, 1, 2, 1, 332.77, 19.75, 0.8, 2, 36.41, 19.14, 0.2, 2, 1, 276.73, -68.37, 0.232, 2, -21.1, -68.03, 0.768, 1, 2, 96.09, -93.89, 1, 2, 2, 229.75, -122.63, 0.664, 3, -63.19, -122.45, 0.336, 2, 2, 242.54, 29.31, 0.52, 3, -49.98, 29.45, 0.48, 1, 3, 66.72, 38.65, 1, 2, 3, 183.42, 47.85, 0.808, 4, -63.66, 48.41, 0.192, 2, 3, 177.29, -41.23, 0.776, 4, -70.57, -40.61, 0.224, 2, 3, 265.51, -16.19, 0.488, 4, 17.87, -16.34, 0.512, 2, 3, 343.26, 7.26, 0.216, 4, 95.82, 6.42, 0.784, 1, 4, 138.78, 45.73, 1, 1, 4, 212.87, 5.44, 1, 1, 1, 1094.34, -1.03, 1 ] + } + } + } + } +], +"animations": { + "grow": { + "slots": { + "vine": { + "rgba": [ + { + "color": "ffcb73ff", + "curve": [ 2.592, 1, 7.775, 1, 2.592, 0.8, 7.775, 0.98, 2.592, 0.45, 7.775, 1, 2.592, 1, 7.775, 1 ] + }, + { "time": 10.3667, "color": "fefaffff" } + ] + } + }, + "bones": { + "vine1": { + "scale": [ + { + "x": 0, + "y": 0.183, + "curve": [ 0.978, 0.698, 1.776, 1.011, 0.978, 0.708, 1.776, 0.944 ] + }, + { + "time": 3.2333, + "x": 1.218, + "y": 1.1, + "curve": [ 7.182, 1.164, 9.04, 1.116, 7.182, 1.184, 9.04, 1.259 ] + }, + { "time": 11.4333, "y": 1.439 } + ] + }, + "vine-control1": { + "rotate": [ + { + "value": 39.69, + "curve": [ 0.3, 39.69, 0.9, 0.89 ] + }, + { + "time": 1.2, + "value": 0.89, + "curve": [ 1.442, 0.89, 1.925, 5.57 ] + }, + { + "time": 2.1667, + "value": 5.57, + "curve": [ 2.475, 5.57, 3.092, 5.65 ] + }, + { + "time": 3.4, + "value": 5.65, + "curve": [ 4.45, 5.65, 6.55, 1.35 ] + }, + { "time": 7.6, "value": 1.35 } + ], + "scale": [ + { + "curve": [ 1.083, 1, 3.25, 1, 1.083, 1, 3.25, 0.792 ] + }, + { + "time": 4.3333, + "y": 0.792, + "curve": [ 5.15, 1, 6.783, 1, 5.15, 0.792, 6.783, 1 ] + }, + { + "time": 7.6, + "curve": [ 8.558, 1, 9.781, 1, 8.558, 1, 9.781, 0.638 ] + }, + { "time": 11.4333, "y": 0.636 } + ] + }, + "vine-control2": { + "rotate": [ + { + "value": -39.69, + "curve": [ 0.3, -39.69, 0.9, -20.6 ] + }, + { + "time": 1.2, + "value": -20.6, + "curve": [ 1.75, -20.6, 2.85, -8.19 ] + }, + { + "time": 3.4, + "value": -8.19, + "curve": [ 4.45, -8.19, 6.55, -0.96 ] + }, + { "time": 7.6, "value": -0.96 } + ], + "scale": [ + { + "curve": [ 1.083, 1, 3.25, 1, 1.083, 1, 3.25, 0.792 ] + }, + { + "time": 4.3333, + "y": 0.792, + "curve": [ 5.15, 1, 6.783, 1, 5.15, 0.792, 6.783, 1 ] + }, + { + "time": 7.6, + "curve": [ 8.558, 1, 10.475, 1, 8.558, 1, 10.475, 0.924 ] + }, + { "time": 11.4333, "y": 0.924 } + ] + }, + "vine-control3": { + "rotate": [ + { + "curve": [ 0.3, 0, 0.9, 27.37 ] + }, + { + "time": 1.2, + "value": 27.37, + "curve": [ 1.442, 27.37, 1.925, 14.83 ] + }, + { + "time": 2.1667, + "value": 14.83, + "curve": [ 2.475, 14.83, 3.092, -15.24 ] + }, + { + "time": 3.4, + "value": -15.24, + "curve": [ 4.45, -15.24, 6.55, -0.16 ] + }, + { "time": 7.6, "value": -0.16 } + ], + "scale": [ + { + "curve": [ 1.083, 1, 3.25, 1, 1.083, 1, 3.25, 0.792 ] + }, + { + "time": 4.3333, + "y": 0.792, + "curve": [ 5.15, 1, 6.783, 1, 5.15, 0.792, 6.783, 1 ] + }, + { + "time": 7.6, + "curve": [ 8.558, 1, 10.475, 1, 8.558, 1, 10.475, 0.924 ] + }, + { "time": 11.4333, "y": 0.924 } + ] + }, + "vine-control4": { + "rotate": [ + { + "curve": [ 0.542, 0, 1.625, -11.88 ] + }, + { + "time": 2.1667, + "value": -11.88, + "curve": [ 2.475, -11.88, 3.092, 7.57 ] + }, + { + "time": 3.4, + "value": 7.57, + "curve": [ 4.15, 7.57, 5.65, 15.02 ] + }, + { + "time": 6.4, + "value": 15.02, + "curve": [ 6.7, 15.02, 7.3, -0.5 ] + }, + { "time": 7.6, "value": -0.5 } + ], + "scale": [ + { + "curve": [ 1.083, 1, 3.25, 1, 1.083, 1, 3.25, 0.792 ] + }, + { + "time": 4.3333, + "y": 0.792, + "curve": [ 5.15, 1, 6.783, 1, 5.15, 0.792, 6.783, 1 ] + }, + { + "time": 7.6, + "curve": [ 8.558, 1, 10.475, 1, 8.558, 1, 10.475, 0.924 ] + }, + { "time": 11.4333, "y": 0.924 } + ] + } + } + } +} +} \ No newline at end of file diff --git a/spine-haxe/example/assets/vine-pro.skel b/spine-haxe/example/assets/vine-pro.skel new file mode 100644 index 0000000000..0cb9578f7a Binary files /dev/null and b/spine-haxe/example/assets/vine-pro.skel differ diff --git a/spine-haxe/example/assets/vine.atlas b/spine-haxe/example/assets/vine.atlas new file mode 100644 index 0000000000..12a1d3f902 --- /dev/null +++ b/spine-haxe/example/assets/vine.atlas @@ -0,0 +1,5 @@ +vine.png + size: 128, 1024 + filter: Linear, Linear +vine + bounds: 2, 2, 68, 962 diff --git a/spine-haxe/example/assets/vine.png b/spine-haxe/example/assets/vine.png new file mode 100644 index 0000000000..d077af53d3 Binary files /dev/null and b/spine-haxe/example/assets/vine.png differ diff --git a/spine-haxe/example/src/Main.hx b/spine-haxe/example/src/Main.hx new file mode 100644 index 0000000000..0d6b6d2401 --- /dev/null +++ b/spine-haxe/example/src/Main.hx @@ -0,0 +1,77 @@ +package; + +import starling.display.Image; +import haxe.io.Bytes; +import openfl.display.Bitmap; +import openfl.display.BitmapData; +import openfl.display.Sprite; +import openfl.Assets; +import openfl.geom.Rectangle; +import openfl.utils.ByteArray; +import openfl.utils.Endian; +import spine.animation.AnimationStateData; +import spine.atlas.Atlas; +import spine.attachments.AtlasAttachmentLoader; +import spine.SkeletonBinary; +import spine.SkeletonData; +import spine.SkeletonJson; +import spine.starling.SkeletonAnimation; +import spine.starling.StarlingTextureLoader; +import starling.core.Starling; +import starling.events.Event; +import starling.textures.Texture; + +class Main extends Sprite { + private static inline var loadBinary:Bool = true; + + private var starlingSingleton:Starling; + + public function new() { + super(); + + starlingSingleton = new Starling(starling.display.Sprite, stage, new Rectangle(0, 0, 800, 600)); + starlingSingleton.supportHighResolutions = true; + starlingSingleton.addEventListener(Event.ROOT_CREATED, onStarlingRootCreated); + } + + private function onStarlingRootCreated(event:Event):Void { + starlingSingleton.removeEventListener(Event.ROOT_CREATED, onStarlingRootCreated); + starlingSingleton.start(); + Starling.current.stage.color = 0x000000; + + loadSpineAnimation(); + } + + private function loadSpineAnimation():Void { + var textureAtlasBitmapData:BitmapData = Assets.getBitmapData("assets/coin.png"); + var stAtlas:String = Assets.getText("assets/coin.atlas"); + var binaryData:Bytes = Assets.getBytes("assets/coin-pro.skel"); + var jsonData:String = Assets.getText("assets/coin-pro.json"); + + var textureAtlas:Texture = Texture.fromBitmapData(textureAtlasBitmapData); + var textureloader:StarlingTextureLoader = new StarlingTextureLoader(textureAtlas); + var atlas:Atlas = new Atlas(stAtlas, textureloader); + + var skeletondata:SkeletonData; + if (loadBinary) { + var skeletonBinary:SkeletonBinary = new SkeletonBinary(new AtlasAttachmentLoader(atlas)); + var bytearray:ByteArray = ByteArray.fromBytes(binaryData); + bytearray.endian = Endian.BIG_ENDIAN; + skeletondata = skeletonBinary.readSkeletonData(bytearray); + } else { + var skeletonJson:SkeletonJson = new SkeletonJson(new AtlasAttachmentLoader(atlas)); + skeletondata = skeletonJson.readSkeletonData(jsonData); + } + + var stateData:AnimationStateData = new AnimationStateData(skeletondata); + stateData.defaultMix = 0.25; + + var skeletonanimation:SkeletonAnimation = new SkeletonAnimation(skeletondata, stateData); + skeletonanimation.x = Starling.current.stage.stageWidth / 2; + skeletonanimation.y = Starling.current.stage.stageHeight * 0.5; + + Starling.current.stage.addChild(skeletonanimation); + Starling.current.juggler.add(skeletonanimation); + skeletonanimation.state.setAnimationByName(0, "animation", true); + } +} diff --git a/spine-haxe/haxelib.json b/spine-haxe/haxelib.json new file mode 100644 index 0000000000..debac74682 --- /dev/null +++ b/spine-haxe/haxelib.json @@ -0,0 +1,27 @@ +{ + "name": "spine-haxe", + "url": "https://github.com/esotericsoftware/spine-runtimes", + "license": "Spine Runtime License", + "tags": [ + "spine", + "2d-animation", + "skeletal-animation", + "starling", + "2d", + "gpu", + "openfl", + "flash", + "air", + "js", + "web", + "cpp" + ], + "description": "The official Spine Runtime for Haxe", + "version": "4.1.0", + "releasenote": "Initial release", + "contributors": [ + "esotericsoftware" + ], + "dependencies": {}, + "classPath": "spine-haxe" +} \ No newline at end of file diff --git a/spine-haxe/project.xml b/spine-haxe/project.xml new file mode 100644 index 0000000000..620685391e --- /dev/null +++ b/spine-haxe/project.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spine-haxe/spine-haxe/spine/BinaryInput.hx b/spine-haxe/spine-haxe/spine/BinaryInput.hx new file mode 100644 index 0000000000..fc9f0be43d --- /dev/null +++ b/spine-haxe/spine-haxe/spine/BinaryInput.hx @@ -0,0 +1,93 @@ +package spine; + +import openfl.utils.ByteArray; +import openfl.Vector; + +class BinaryInput { + private var bytes:ByteArray; + + public var strings:Vector = new Vector(); + + public function new(bytes:ByteArray) { + this.bytes = bytes; + } + + public function readByte():Int { + return bytes.readByte(); + } + + public function readUnsignedByte():Int { + return bytes.readUnsignedByte(); + } + + public function readShort():Int { + return bytes.readShort(); + } + + public function readInt32():Int { + return bytes.readInt(); + } + + public function readInt(optimizePositive:Bool):Int { + var b:Int = readByte(); + var result:Int = b & 0x7F; + if ((b & 0x80) != 0) { + b = readByte(); + result |= (b & 0x7F) << 7; + if ((b & 0x80) != 0) { + b = readByte(); + result |= (b & 0x7F) << 14; + if ((b & 0x80) != 0) { + b = readByte(); + result |= (b & 0x7F) << 21; + if ((b & 0x80) != 0) { + b = readByte(); + result |= (b & 0x7F) << 28; + } + } + } + } + return optimizePositive ? result : ((result >>> 1) ^ -(result & 1)); + } + + public function readStringRef():String { + var index:Int = readInt(true); + return index == 0 ? null : strings[index - 1]; + } + + public function readString():String { + var byteCount:Int = readInt(true); + switch (byteCount) { + case 0: + return null; + case 1: + return ""; + } + byteCount--; + var chars:String = ""; + var i:Int = 0; + while (i < byteCount) { + var b:Int = readByte(); + switch (b >> 4) { + case 12, 13: + chars += String.fromCharCode(((b & 0x1F) << 6 | readByte() & 0x3F)); + i += 2; + case 14: + chars += String.fromCharCode(((b & 0x0F) << 12 | (readByte() & 0x3F) << 6 | readByte() & 0x3F)); + i += 3; + default: + chars += String.fromCharCode(b); + i++; + } + } + return chars; + } + + public function readFloat():Float { + return bytes.readFloat(); + } + + public function readBoolean():Bool { + return this.readByte() != 0; + } +} diff --git a/spine-haxe/spine-haxe/spine/BlendMode.hx b/spine-haxe/spine-haxe/spine/BlendMode.hx new file mode 100644 index 0000000000..5875cc80fa --- /dev/null +++ b/spine-haxe/spine-haxe/spine/BlendMode.hx @@ -0,0 +1,28 @@ +package spine; + +import openfl.Vector; + +class BlendMode { + public static var normal(default, never):BlendMode = new BlendMode(0, "normal"); + public static var additive(default, never):BlendMode = new BlendMode(1, "additive"); + public static var multiply(default, never):BlendMode = new BlendMode(2, "multiply"); + public static var screen(default, never):BlendMode = new BlendMode(3, "screen"); + + public static var values(default, never):Vector = Vector.ofArray([normal, additive, multiply, screen]); + + public var ordinal(default, null):Int; + public var name(default, null):String; + + public function new(ordinal:Int, name:String) { + this.ordinal = ordinal; + this.name = name; + } + + public static function fromName(name:String):BlendMode { + for (value in values) { + if (value.name == name) + return value; + } + return null; + } +} diff --git a/spine-haxe/spine-haxe/spine/Bone.hx b/spine-haxe/spine-haxe/spine/Bone.hx new file mode 100644 index 0000000000..81e3372382 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/Bone.hx @@ -0,0 +1,326 @@ +package spine; + +import openfl.errors.ArgumentError; +import openfl.Vector; + +class Bone implements Updatable { + static public var yDown:Bool = false; + + private var _data:BoneData; + private var _skeleton:Skeleton; + private var _parent:Bone; + private var _children:Vector = new Vector(); + + public var x:Float = 0; + public var y:Float = 0; + public var rotation:Float = 0; + public var scaleX:Float = 0; + public var scaleY:Float = 0; + public var shearX:Float = 0; + public var shearY:Float = 0; + public var ax:Float = 0; + public var ay:Float = 0; + public var arotation:Float = 0; + public var ascaleX:Float = 0; + public var ascaleY:Float = 0; + public var ashearX:Float = 0; + public var ashearY:Float = 0; + public var a:Float = 0; + public var b:Float = 0; + public var c:Float = 0; + public var d:Float = 0; + public var worldX:Float = 0; + public var worldY:Float = 0; + public var sorted:Bool = false; + public var active:Bool = false; + + /** @param parent May be null. */ + public function new(data:BoneData, skeleton:Skeleton, parent:Bone) { + if (data == null) + throw new ArgumentError("data cannot be null."); + if (skeleton == null) + throw new ArgumentError("skeleton cannot be null."); + _data = data; + _skeleton = skeleton; + _parent = parent; + setToSetupPose(); + } + + public function isActive():Bool { + return active; + } + + /** Same as updateWorldTransform(). This method exists for Bone to implement Updatable. */ + public function update():Void { + updateWorldTransformWith(ax, ay, arotation, ascaleX, ascaleY, ashearX, ashearY); + } + + /** Computes the world SRT using the parent bone and this bone's local SRT. */ + public function updateWorldTransform():Void { + updateWorldTransformWith(x, y, rotation, scaleX, scaleY, shearX, shearY); + } + + /** Computes the world SRT using the parent bone and the specified local SRT. */ + public function updateWorldTransformWith(x:Float, y:Float, rotation:Float, scaleX:Float, scaleY:Float, shearX:Float, shearY:Float):Void { + ax = x; + ay = y; + arotation = rotation; + ascaleX = scaleX; + ascaleY = scaleY; + ashearX = shearX; + ashearY = shearY; + + var rotationY:Float = 0; + var la:Float = 0; + var lb:Float = 0; + var lc:Float = 0; + var ld:Float = 0; + var sin:Float = 0; + var cos:Float = 0; + var s:Float = 0; + var sx:Float = skeleton.scaleX; + var sy:Float = skeleton.scaleY * (yDown ? -1 : 1); + + var parent:Bone = _parent; + if (parent == null) { + // Root bone. + rotationY = rotation + 90 + shearY; + a = MathUtils.cosDeg(rotation + shearX) * scaleX * sx; + b = MathUtils.cosDeg(rotationY) * scaleY * sx; + c = MathUtils.sinDeg(rotation + shearX) * scaleX * sy; + d = MathUtils.sinDeg(rotationY) * scaleY * sy; + worldX = x * sx + skeleton.x; + worldY = y * sy + skeleton.y; + return; + } + + var pa:Float = parent.a, + pb:Float = parent.b, + pc:Float = parent.c, + pd:Float = parent.d; + worldX = pa * x + pb * y + parent.worldX; + worldY = pc * x + pd * y + parent.worldY; + + switch (data.transformMode) { + case TransformMode.normal: + rotationY = rotation + 90 + shearY; + la = MathUtils.cosDeg(rotation + shearX) * scaleX; + lb = MathUtils.cosDeg(rotationY) * scaleY; + lc = MathUtils.sinDeg(rotation + shearX) * scaleX; + ld = MathUtils.sinDeg(rotationY) * scaleY; + a = pa * la + pb * lc; + b = pa * lb + pb * ld; + c = pc * la + pd * lc; + d = pc * lb + pd * ld; + return; + case TransformMode.onlyTranslation: + rotationY = rotation + 90 + shearY; + a = MathUtils.cosDeg(rotation + shearX) * scaleX; + b = MathUtils.cosDeg(rotationY) * scaleY; + c = MathUtils.sinDeg(rotation + shearX) * scaleX; + d = MathUtils.sinDeg(rotationY) * scaleY; + case TransformMode.noRotationOrReflection: + s = pa * pa + pc * pc; + var prx:Float = 0; + if (s > 0.0001) { + s = Math.abs(pa * pd - pb * pc) / s; + pb = pc * s; + pd = pa * s; + prx = Math.atan2(pc, pa) * MathUtils.radDeg; + } else { + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * MathUtils.radDeg; + } + var rx:Float = rotation + shearX - prx; + var ry:Float = rotation + shearY - prx + 90; + la = MathUtils.cosDeg(rx) * scaleX; + lb = MathUtils.cosDeg(ry) * scaleY; + lc = MathUtils.sinDeg(rx) * scaleX; + ld = MathUtils.sinDeg(ry) * scaleY; + a = pa * la - pb * lc; + b = pa * lb - pb * ld; + c = pc * la + pd * lc; + d = pc * lb + pd * ld; + case TransformMode.noScale, TransformMode.noScaleOrReflection: + cos = MathUtils.cosDeg(rotation); + sin = MathUtils.sinDeg(rotation); + var za:Float = (pa * cos + pb * sin) / sx; + var zc:Float = (pc * cos + pd * sin) / sy; + s = Math.sqrt(za * za + zc * zc); + if (s > 0.00001) + s = 1 / s; + za *= s; + zc *= s; + s = Math.sqrt(za * za + zc * zc); + if (data.transformMode == TransformMode.noScale && ((pa * pd - pb * pc < 0) != ((sx < 0) != (sy < 0)))) { + s = -s; + } + var r:Float = Math.PI / 2 + Math.atan2(zc, za); + var zb:Float = Math.cos(r) * s; + var zd:Float = Math.sin(r) * s; + la = MathUtils.cosDeg(shearX) * scaleX; + lb = MathUtils.cosDeg(90 + shearY) * scaleY; + lc = MathUtils.sinDeg(shearX) * scaleX; + ld = MathUtils.sinDeg(90 + shearY) * scaleY; + a = za * la + zb * lc; + b = za * lb + zb * ld; + c = zc * la + zd * lc; + d = zc * lb + zd * ld; + } + a *= sx; + b *= sx; + c *= sy; + d *= sy; + } + + public function setToSetupPose():Void { + x = data.x; + y = data.y; + rotation = data.rotation; + scaleX = data.scaleX; + scaleY = data.scaleY; + shearX = data.shearX; + shearY = data.shearY; + } + + public var data(get, never):BoneData; + + private function get_data():BoneData { + return _data; + } + + public var skeleton(get, never):Skeleton; + + private function get_skeleton():Skeleton { + return _skeleton; + } + + public var parent(get, never):Bone; + + private function get_parent():Bone { + return _parent; + } + + public var children(get, never):Vector; + + private function get_children():Vector { + return _children; + } + + public var worldRotationX(get, never):Float; + + private function get_worldRotationX():Float { + return Math.atan2(c, a) * MathUtils.radDeg; + } + + public var worldRotationY(get, never):Float; + + private function get_worldRotationY():Float { + return Math.atan2(d, b) * MathUtils.radDeg; + } + + public var worldScaleX(get, never):Float; + + private function get_worldScaleX():Float { + return Math.sqrt(a * a + c * c); + } + + public var worldScaleY(get, never):Float; + + private function get_worldScaleY():Float { + return Math.sqrt(b * b + d * d); + } + + /** Computes the individual applied transform values from the world transform. This can be useful to perform processing using + * the applied transform after the world transform has been modified directly (eg, by a constraint). + *

+ * Some information is ambiguous in the world transform, such as -1,-1 scale versus 180 rotation. */ + public function updateAppliedTransform():Void { + var parent:Bone = parent; + if (parent == null) { + ax = worldX - skeleton.x; + ay = worldY - skeleton.y; + arotation = Math.atan2(c, a) * MathUtils.radDeg; + ascaleX = Math.sqrt(a * a + c * c); + ascaleY = Math.sqrt(b * b + d * d); + ashearX = 0; + ashearY = Math.atan2(a * b + c * d, a * d - b * c) * MathUtils.radDeg; + return; + } + var pa:Float = parent.a, + pb:Float = parent.b, + pc:Float = parent.c, + pd:Float = parent.d; + var pid:Float = 1 / (pa * pd - pb * pc); + var dx:Float = worldX - parent.worldX, + dy:Float = worldY - parent.worldY; + ax = (dx * pd * pid - dy * pb * pid); + ay = (dy * pa * pid - dx * pc * pid); + var ia:Float = pid * pd; + var id:Float = pid * pa; + var ib:Float = pid * pb; + var ic:Float = pid * pc; + var ra:Float = ia * a - ib * c; + var rb:Float = ia * b - ib * d; + var rc:Float = id * c - ic * a; + var rd:Float = id * d - ic * b; + ashearX = 0; + ascaleX = Math.sqrt(ra * ra + rc * rc); + if (scaleX > 0.0001) { + var det:Float = ra * rd - rb * rc; + ascaleY = det / ascaleX; + ashearY = Math.atan2(ra * rb + rc * rd, det) * MathUtils.radDeg; + arotation = Math.atan2(rc, ra) * MathUtils.radDeg; + } else { + ascaleX = 0; + ascaleY = Math.sqrt(rb * rb + rd * rd); + ashearY = 0; + arotation = 90 - Math.atan2(rd, rb) * MathUtils.radDeg; + } + } + + public function worldToLocal(world:Vector):Void { + var a:Float = a, b:Float = b, c:Float = c, d:Float = d; + var invDet:Float = 1 / (a * d - b * c); + var x:Float = world[0] - worldX, y:Float = world[1] - worldY; + world[0] = (x * d * invDet - y * b * invDet); + world[1] = (y * a * invDet - x * c * invDet); + } + + public function localToWorld(local:Vector):Void { + var localX:Float = local[0], localY:Float = local[1]; + local[0] = localX * a + localY * b + worldX; + local[1] = localX * c + localY * d + worldY; + } + + public function worldToLocalRotation(worldRotation:Float):Float { + var sin:Float = MathUtils.sinDeg(worldRotation), + cos:Float = MathUtils.cosDeg(worldRotation); + return Math.atan2(a * sin - c * cos, d * cos - b * sin) * MathUtils.radDeg + rotation - shearX; + } + + public function localToWorldRotation(localRotation:Float):Float { + localRotation -= rotation - shearX; + var sin:Float = MathUtils.sinDeg(localRotation), + cos:Float = MathUtils.cosDeg(localRotation); + return Math.atan2(cos * c + sin * d, cos * a + sin * b) * MathUtils.radDeg; + } + + public function rotateWorld(degrees:Float):Void { + var a:Float = this.a, + b:Float = this.b, + c:Float = this.c, + d:Float = this.d; + var cos:Float = MathUtils.cosDeg(degrees), + sin:Float = MathUtils.sinDeg(degrees); + this.a = cos * a - sin * c; + this.b = cos * b - sin * d; + this.c = sin * a + cos * c; + this.d = sin * b + cos * d; + } + + public function toString():String { + return data.name; + } +} diff --git a/spine-haxe/spine-haxe/spine/BoneData.hx b/spine-haxe/spine-haxe/spine/BoneData.hx new file mode 100644 index 0000000000..2cf2662f44 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/BoneData.hx @@ -0,0 +1,55 @@ +package spine; + +import openfl.errors.ArgumentError; + +class BoneData { + private var _index:Int; + private var _name:String; + private var _parent:BoneData; + + public var length:Float = 0; + public var x:Float = 0; + public var y:Float = 0; + public var rotation:Float = 0; + public var scaleX:Float = 1; + public var scaleY:Float = 1; + public var shearX:Float = 0; + public var shearY:Float = 0; + public var transformMode:TransformMode = TransformMode.normal; + public var skinRequired:Bool = false; + public var color:Color = new Color(0, 0, 0, 0); + + /** @param parent May be null. */ + public function new(index:Int, name:String, parent:BoneData) { + if (index < 0) + throw new ArgumentError("index must be >= 0"); + if (name == null) + throw new ArgumentError("name cannot be null."); + _index = index; + _name = name; + _parent = parent; + } + + public var index(get, never):Int; + + private function get_index():Int { + return _index; + } + + public var name(get, never):String; + + private function get_name():String { + return _name; + } + + /** @return May be null. */ + public var parent(get, never):BoneData; + + private function get_parent():BoneData { + return _parent; + } + + public function toString():String { + return _name; + } +} diff --git a/spine-haxe/spine-haxe/spine/Color.hx b/spine-haxe/spine-haxe/spine/Color.hx new file mode 100644 index 0000000000..3e20c85c4e --- /dev/null +++ b/spine-haxe/spine-haxe/spine/Color.hx @@ -0,0 +1,101 @@ +package spine; + +class Color { + public static var WHITE:Color = new Color(1, 1, 1, 1); + public static var RED:Color = new Color(1, 0, 0, 1); + public static var GREEN:Color = new Color(0, 1, 0, 1); + public static var BLUE:Color = new Color(0, 0, 1, 1); + public static var MAGENTA:Color = new Color(1, 0, 1, 1); + + public var r:Float = 0; + public var g:Float = 0; + public var b:Float = 0; + public var a:Float = 0; + + public function new(r:Float, g:Float, b:Float, a:Float = 0) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + clamp(); + } + + public function setFromColor(c:Color):Color { + r = c.r; + g = c.g; + b = c.b; + a = c.a; + clamp(); + return this; + } + + public function setFromString(hex:String):Color { + hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; + r = Std.parseInt("0x" + hex.substr(0, 2)) / 255.0; + g = Std.parseInt("0x" + hex.substr(2, 2)) / 255.0; + b = Std.parseInt("0x" + hex.substr(4, 2)) / 255.0; + a = (hex.length != 8 ? 255 : Std.parseInt("0x" + hex.substr(6, 2))) / 255.0; + clamp(); + return this; + } + + public function set(r:Float, g:Float, b:Float, a:Float):Color { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + clamp(); + return this; + } + + public function add(r:Float, g:Float, b:Float, a:Float):Color { + this.r += r; + this.g += g; + this.b += b; + this.a += a; + clamp(); + return this; + } + + public function setFromRgba8888(value:Int):Void { + r = ((value & 0xff000000) >>> 24) / 255; + g = ((value & 0x00ff0000) >>> 16) / 255; + b = ((value & 0x0000ff00) >>> 8) / 255; + a = ((value & 0x000000ff)) / 255; + clamp(); + } + + public function setFromRgb888(value:Int):Void { + r = ((value & 0x00ff0000) >>> 16) / 255; + g = ((value & 0x0000ff00) >>> 8) / 255; + b = ((value & 0x000000ff)) / 255; + clamp(); + } + + private function clamp():Color { + if (r < 0) + r = 0; + else if (r > 1) + r = 1; + + if (g < 0) + g = 0; + else if (g > 1) + g = 1; + + if (b < 0) + b = 0; + else if (b > 1) + b = 1; + + if (a < 0) + a = 0; + else if (a > 1) + a = 1; + return this; + } + + static public function fromString(hex:String):Color { + return new Color(0, 0, 0, 0).setFromString(hex); + } +} diff --git a/spine-haxe/spine-haxe/spine/ConstraintData.hx b/spine-haxe/spine-haxe/spine/ConstraintData.hx new file mode 100644 index 0000000000..201071fa08 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/ConstraintData.hx @@ -0,0 +1,17 @@ +package spine; + +class ConstraintData { + public var name:String; + public var order:Int = 0; + public var skinRequired:Bool = false; + + function new(name:String, order:Int, skinRequired:Bool) { + this.name = name; + this.order = order; + this.skinRequired = skinRequired; + } + + public function toString():String { + return name; + } +} diff --git a/spine-haxe/spine-haxe/spine/Event.hx b/spine-haxe/spine-haxe/spine/Event.hx new file mode 100644 index 0000000000..3b8517c1bc --- /dev/null +++ b/spine-haxe/spine-haxe/spine/Event.hx @@ -0,0 +1,31 @@ +package spine; + +import openfl.errors.ArgumentError; + +class Event { + private var _data:EventData; + + public var time:Float = 0; + public var intValue:Int = 0; + public var floatValue:Float = 0; + public var stringValue:String; + public var volume:Float = 1; + public var balance:Float = 0; + + public function new(time:Float, data:EventData) { + if (data == null) + throw new ArgumentError("data cannot be null."); + this.time = time; + _data = data; + } + + public var data(get, never):EventData; + + private function get_data():EventData { + return _data; + } + + public function toString():String { + return _data.name != null ? _data.name : "Event?"; + } +} diff --git a/spine-haxe/spine-haxe/spine/EventData.hx b/spine-haxe/spine-haxe/spine/EventData.hx new file mode 100644 index 0000000000..af2f42d45a --- /dev/null +++ b/spine-haxe/spine-haxe/spine/EventData.hx @@ -0,0 +1,30 @@ +package spine; + +import openfl.errors.ArgumentError; + +class EventData { + private var _name:String; + + public var intValue:Int = 0; + public var floatValue:Float = 0; + public var stringValue:String; + public var audioPath:String; + public var volume:Float = 1; + public var balance:Float = 0; + + public function new(name:String) { + if (name == null) + throw new ArgumentError("name cannot be null."); + _name = name; + } + + public var name(get, never):String; + + private function get_name():String { + return _name; + } + + public function toString():String { + return _name; + } +} diff --git a/spine-haxe/spine-haxe/spine/IkConstraint.hx b/spine-haxe/spine-haxe/spine/IkConstraint.hx new file mode 100644 index 0000000000..702d017a28 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/IkConstraint.hx @@ -0,0 +1,307 @@ +package spine; + +import openfl.errors.ArgumentError; +import openfl.Vector; + +class IkConstraint implements Updatable { + private var _data:IkConstraintData; + + public var bones:Vector; + public var target:Bone; + public var bendDirection:Int = 0; + public var compress:Bool = false; + public var stretch:Bool = false; + public var mix:Float = 0; + public var softness:Float = 0; + public var active:Bool = false; + + public function new(data:IkConstraintData, skeleton:Skeleton) { + if (data == null) + throw new ArgumentError("data cannot be null."); + if (skeleton == null) + throw new ArgumentError("skeleton cannot be null."); + _data = data; + mix = data.mix; + softness = data.softness; + bendDirection = data.bendDirection; + compress = data.compress; + stretch = data.stretch; + + bones = new Vector(); + for (boneData in data.bones) { + bones.push(skeleton.findBone(boneData.name)); + } + target = skeleton.findBone(data.target.name); + } + + public function isActive():Bool { + return active; + } + + public function update():Void { + if (mix == 0) + return; + switch (bones.length) { + case 1: + apply1(bones[0], target.worldX, target.worldY, compress, stretch, _data.uniform, mix); + case 2: + apply2(bones[0], bones[1], target.worldX, target.worldY, bendDirection, stretch, _data.uniform, softness, mix); + } + } + + public var data(get, never):IkConstraintData; + + private function get_data():IkConstraintData { + return _data; + } + + public function toString():String { + return _data.name != null ? _data.name : "IkContstraint?"; + } + + /** Adjusts the bone rotation so the tip is as close to the target position as possible. The target is specified in the world + * coordinate system. */ + static public function apply1(bone:Bone, targetX:Float, targetY:Float, compress:Bool, stretch:Bool, uniform:Bool, alpha:Float):Void { + var p:Bone = bone.parent; + var pa:Float = p.a, pb:Float = p.b, pc:Float = p.c, pd:Float = p.d; + var rotationIK:Float = -bone.ashearX - bone.arotation, + tx:Float = 0, + ty:Float = 0; + switch (bone.data.transformMode) { + case TransformMode.onlyTranslation: + tx = targetX - bone.worldX; + ty = targetY - bone.worldY; + case TransformMode.noRotationOrReflection: + var s:Float = Math.abs(pa * pd - pb * pc) / (pa * pa + pc * pc); + var sa:Float = pa / bone.skeleton.scaleX; + var sc:Float = pc / bone.skeleton.scaleY; + pb = -sc * s * bone.skeleton.scaleX; + pd = sa * s * bone.skeleton.scaleY; + rotationIK += Math.atan2(sc, sa) * MathUtils.radDeg; + var x:Float = targetX - p.worldX, y:Float = targetY - p.worldY; + var d:Float = pa * pd - pb * pc; + tx = (x * pd - y * pb) / d - bone.ax; + ty = (y * pa - x * pc) / d - bone.ay; + default: + var x:Float = targetX - p.worldX, y:Float = targetY - p.worldY; + var d:Float = pa * pd - pb * pc; + tx = (x * pd - y * pb) / d - bone.ax; + ty = (y * pa - x * pc) / d - bone.ay; + } + + rotationIK += Math.atan2(ty, tx) * MathUtils.radDeg; + if (bone.ascaleX < 0) + rotationIK += 180; + if (rotationIK > 180) + rotationIK -= 360; + else if (rotationIK < -180) + rotationIK += 360; + var sx:Float = bone.ascaleX; + var sy:Float = bone.ascaleY; + if (compress || stretch) { + switch (bone.data.transformMode) { + case TransformMode.noScale, TransformMode.noScaleOrReflection: + tx = targetX - bone.worldX; + ty = targetY - bone.worldY; + } + var b:Float = bone.data.length * sx, + dd:Float = Math.sqrt(tx * tx + ty * ty); + if ((compress && dd < b) || (stretch && dd > b) && b > 0.0001) { + var ss:Float = (dd / b - 1) * alpha + 1; + sx *= ss; + if (uniform) + sy *= ss; + } + } + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, sx, sy, bone.ashearX, bone.ashearY); + } + + /** Adjusts the parent and child bone rotations so the tip of the child is as close to the target position as possible. The + * target is specified in the world coordinate system. + * @param child Any descendant bone of the parent. */ + static public function apply2(parent:Bone, child:Bone, targetX:Float, targetY:Float, bendDir:Int, stretch:Bool, uniform:Bool, softness:Float, + alpha:Float):Void { + var px:Float = parent.ax; + var py:Float = parent.ay; + var psx:Float = parent.ascaleX; + var sx:Float = psx; + var psy:Float = parent.ascaleY; + var sy:Float = psy; + var csx:Float = child.ascaleX; + var os1:Int; + var os2:Int; + var s2:Int; + if (psx < 0) { + psx = -psx; + os1 = 180; + s2 = -1; + } else { + os1 = 0; + s2 = 1; + } + if (psy < 0) { + psy = -psy; + s2 = -s2; + } + if (csx < 0) { + csx = -csx; + os2 = 180; + } else { + os2 = 0; + } + var cx:Float = child.ax; + var cy:Float; + var cwx:Float; + var cwy:Float; + var a:Float = parent.a; + var b:Float = parent.b; + var c:Float = parent.c; + var d:Float = parent.d; + var u:Bool = Math.abs(psx - psy) <= 0.0001; + if (!u || stretch) { + cy = 0; + cwx = a * cx + parent.worldX; + cwy = c * cx + parent.worldY; + } else { + cy = child.ay; + cwx = a * cx + b * cy + parent.worldX; + cwy = c * cx + d * cy + parent.worldY; + } + var pp:Bone = parent.parent; + a = pp.a; + b = pp.b; + c = pp.c; + d = pp.d; + var id:Float = 1 / (a * d - b * c), + x:Float = cwx - pp.worldX, + y:Float = cwy - pp.worldY; + var dx:Float = (x * d - y * b) * id - px, + dy:Float = (y * a - x * c) * id - py; + var l1:Float = Math.sqrt(dx * dx + dy * dy); + var l2:Float = child.data.length * csx; + var a1:Float = 0; + var a2:Float = 0; + if (l1 < 0.0001) { + apply1(parent, targetX, targetY, false, stretch, false, alpha); + child.updateWorldTransformWith(cx, cy, 0, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + return; + } + x = targetX - pp.worldX; + y = targetY - pp.worldY; + var tx:Float = (x * d - y * b) * id - px; + var ty:Float = (y * a - x * c) * id - py; + var dd:Float = tx * tx + ty * ty; + if (softness != 0) { + softness *= psx * (csx + 1) / 2; + var td:Float = Math.sqrt(dd); + var sd:Float = td - l1 - l2 * psx + softness; + if (sd > 0) { + var p:Float = Math.min(1, sd / (softness * 2)) - 1; + p = (sd - softness * (1 - p * p)) / td; + tx -= p * tx; + ty -= p * ty; + dd = tx * tx + ty * ty; + } + } + + var breakOuter:Bool = false; + if (u) { + l2 *= psx; + var cos:Float = (dd - l1 * l1 - l2 * l2) / (2 * l1 * l2); + if (cos < -1) { + cos = -1; + } else if (cos > 1) { + cos = 1; + if (stretch) { + a = (Math.sqrt(dd) / (l1 + l2) - 1) * alpha + 1; + sx *= a; + if (uniform) + sy *= a; + } + } + a2 = Math.acos(cos) * bendDir; + a = l1 + l2 * cos; + b = l2 * Math.sin(a2); + a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); + } else { + a = psx * l2; + b = psy * l2; + var aa:Float = a * a; + var bb:Float = b * b; + var ta:Float = Math.atan2(ty, tx); + c = bb * l1 * l1 + aa * dd - aa * bb; + var c1:Float = -2 * bb * l1; + var c2:Float = bb - aa; + d = c1 * c1 - 4 * c2 * c; + if (d >= 0) { + var q:Float = Math.sqrt(d); + if (c1 < 0) + q = -q; + q = -(c1 + q) / 2; + var r0:Float = q / c2, r1:Float = c / q; + var r:Float = Math.abs(r0) < Math.abs(r1) ? r0 : r1; + if (r * r <= dd) { + y = Math.sqrt(dd - r * r) * bendDir; + a1 = ta - Math.atan2(y, r); + a2 = Math.atan2(y / psy, (r - l1) / psx); + breakOuter = true; + } + } + + if (!breakOuter) { + var minAngle:Float = Math.PI; + var minX:Float = l1 - a; + var minDist:Float = minX * minX; + var minY:Float = 0; + var maxAngle:Float = 0; + var maxX:Float = l1 + a; + var maxDist:Float = maxX * maxX; + var maxY:Float = 0; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } + } + if (dd <= (minDist + maxDist) / 2) { + a1 = ta - Math.atan2(minY * bendDir, minX); + a2 = minAngle * bendDir; + } else { + a1 = ta - Math.atan2(maxY * bendDir, maxX); + a2 = maxAngle * bendDir; + } + } + } + + var os:Float = Math.atan2(cy, cx) * s2; + var rotation:Float = parent.arotation; + a1 = (a1 - os) * MathUtils.radDeg + os1 - rotation; + if (a1 > 180) { + a1 -= 360; + } else if (a1 < -180) { + a1 += 360; + } + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, sx, sy, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; + if (a2 > 180) { + a2 -= 360; + } else if (a2 < -180) { + a2 += 360; + } + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + } +} diff --git a/spine-haxe/spine-haxe/spine/IkConstraintData.hx b/spine-haxe/spine-haxe/spine/IkConstraintData.hx new file mode 100644 index 0000000000..d9472bbcd6 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/IkConstraintData.hx @@ -0,0 +1,18 @@ +package spine; + +import openfl.Vector; + +class IkConstraintData extends ConstraintData { + public var bones:Vector = new Vector(); + public var target:BoneData; + public var mix:Float = 1; + public var bendDirection:Int = 1; + public var compress:Bool = false; + public var stretch:Bool = false; + public var uniform:Bool = false; + public var softness:Float = 0; + + public function new(name:String) { + super(name, 0, false); + } +} diff --git a/spine-haxe/spine-haxe/spine/Interpolation.hx b/spine-haxe/spine-haxe/spine/Interpolation.hx new file mode 100644 index 0000000000..637124724a --- /dev/null +++ b/spine-haxe/spine-haxe/spine/Interpolation.hx @@ -0,0 +1,11 @@ +package spine; + +class Interpolation { + private function applyInternal(a:Float):Float { + return a; + } + + public function apply(start:Float, end:Float, a:Float):Float { + return start + (end - start) * applyInternal(a); + } +} diff --git a/spine-haxe/spine-haxe/spine/MathUtils.hx b/spine-haxe/spine-haxe/spine/MathUtils.hx new file mode 100644 index 0000000000..c7eb96829f --- /dev/null +++ b/spine-haxe/spine-haxe/spine/MathUtils.hx @@ -0,0 +1,40 @@ +package spine; + +class MathUtils { + static public var PI:Float = Math.PI; + static public var PI2:Float = Math.PI * 2; + static public var radDeg:Float = 180 / Math.PI; + static public var degRad:Float = Math.PI / 180; + + static public function cosDeg(degrees:Float):Float { + return Math.cos(degrees * degRad); + } + + static public function sinDeg(degrees:Float):Float { + return Math.sin(degrees * degRad); + } + + static public function clamp(value:Float, min:Float, max:Float):Float { + if (value < min) + return min; + if (value > max) + return max; + return value; + } + + static public function signum(value:Float):Float { + return value > 0 ? 1 : value < 0 ? -1 : 0; + } + + static public function randomTriangular(min:Float, max:Float):Float { + return randomTriangularWith(min, max, (min + max) * 0.5); + } + + static public function randomTriangularWith(min:Float, max:Float, mode:Float):Float { + var u:Float = Math.random(); + var d:Float = max - min; + if (u <= (mode - min) / d) + return min + Math.sqrt(u * d * (mode - min)); + return max - Math.sqrt((1 - u) * d * (max - mode)); + } +} diff --git a/spine-haxe/spine-haxe/spine/PathConstraint.hx b/spine-haxe/spine-haxe/spine/PathConstraint.hx new file mode 100644 index 0000000000..54556f1e96 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/PathConstraint.hx @@ -0,0 +1,571 @@ +package spine; + +import openfl.errors.ArgumentError; +import openfl.Vector; +import spine.attachments.PathAttachment; + +class PathConstraint implements Updatable { + private static inline var NONE:Int = -1; + private static inline var BEFORE:Int = -2; + private static inline var AFTER:Int = -3; + private static inline var epsilon:Float = 0.00001; + + private var _data:PathConstraintData; + private var _bones:Vector; + + public var target:Slot; + public var position:Float = 0; + public var spacing:Float = 0; + public var mixRotate:Float = 0; + public var mixX:Float = 0; + public var mixY:Float = 0; + + private var _spaces(default, never):Vector = new Vector(); + private var _positions(default, never):Vector = new Vector(); + private var _world(default, never):Vector = new Vector(); + private var _curves(default, never):Vector = new Vector(); + private var _lengths(default, never):Vector = new Vector(); + private var _segments(default, never):Vector = new Vector(10, true); + + public var active:Bool = false; + + public function new(data:PathConstraintData, skeleton:Skeleton) { + if (data == null) + throw new ArgumentError("data cannot be null."); + if (skeleton == null) + throw new ArgumentError("skeleton cannot be null."); + _data = data; + _bones = new Vector(); + for (boneData in data.bones) { + _bones.push(skeleton.findBone(boneData.name)); + } + target = skeleton.findSlot(data.target.name); + position = data.position; + spacing = data.spacing; + mixRotate = data.mixRotate; + mixX = data.mixX; + mixY = data.mixY; + } + + public function isActive():Bool { + return active; + } + + public function update():Void { + var attachment:PathAttachment = cast(target.attachment, PathAttachment); + if (attachment == null) + return; + if (mixRotate == 0 && mixX == 0 && mixY == 0) + return; + + var data:PathConstraintData = _data; + var percentSpacing:Bool = data.spacingMode == SpacingMode.percent; + var rotateMode:RotateMode = data.rotateMode; + var fTangents:Bool = rotateMode == RotateMode.tangent, + fScale:Bool = rotateMode == RotateMode.chainScale; + + var boneCount:Int = _bones.length; + var spacesCount:Int = fTangents ? boneCount : boneCount + 1; + var bones:Vector = _bones; + _spaces.length = spacesCount; + + if (fScale) + _lengths.length = boneCount; + + var i:Int, + n:Int, + bone:Bone, + setupLength:Float, + x:Float, + y:Float, + length:Float; + switch (data.spacingMode) { + case SpacingMode.percent: + if (fScale) { + n = spacesCount - 1; + for (i in 0...n) { + bone = bones[i]; + setupLength = bone.data.length; + if (setupLength < PathConstraint.epsilon) { + _lengths[i] = 0; + } else { + x = setupLength * bone.a; + y = setupLength * bone.c; + _lengths[i] = Math.sqrt(x * x + y * y); + } + } + } + for (i in 1...spacesCount) { + _spaces[i] = spacing; + } + case SpacingMode.proportional: + var sum:Float = 0; + i = 0; + n = spacesCount - 1; + while (i < n) { + bone = bones[i]; + setupLength = bone.data.length; + if (setupLength < PathConstraint.epsilon) { + if (fScale) + _lengths[i] = 0; + _spaces[++i] = spacing; + } else { + x = setupLength * bone.a; + y = setupLength * bone.c; + length = Math.sqrt(x * x + y * y); + if (fScale) + _lengths[i] = length; + _spaces[++i] = length; + sum += length; + } + } + if (sum > 0) { + sum = spacesCount / sum * spacing; + for (i in 1...spacesCount) { + _spaces[i] *= sum; + } + } + default: + var lengthSpacing:Bool = data.spacingMode == SpacingMode.length; + i = 0; + n = spacesCount - 1; + while (i < n) { + bone = bones[i]; + setupLength = bone.data.length; + if (setupLength < PathConstraint.epsilon) { + if (fScale) + _lengths[i] = 0; + _spaces[++i] = spacing; + } else { + x = setupLength * bone.a; + y = setupLength * bone.c; + length = Math.sqrt(x * x + y * y); + if (fScale) + _lengths[i] = length; + _spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length / setupLength; + } + } + } + + var positions:Vector = computeWorldPositions(attachment, spacesCount, fTangents); + var boneX:Float = positions[0]; + var boneY:Float = positions[1]; + var offsetRotation:Float = data.offsetRotation; + var tip:Bool = false; + if (offsetRotation == 0) { + tip = data.rotateMode == RotateMode.chain; + } else { + tip = false; + var pa:Bone = target.bone; + offsetRotation *= pa.a * pa.d - pa.b * pa.c > 0 ? MathUtils.degRad : -MathUtils.degRad; + } + + i = 0; + var p:Int = 3; + while (i < boneCount) { + var bone:Bone = bones[i]; + bone.worldX += (boneX - bone.worldX) * mixX; + bone.worldY += (boneY - bone.worldY) * mixY; + var x:Float = positions[p]; + var y:Float = positions[p + 1]; + var dx:Float = x - boneX; + var dy:Float = y - boneY; + if (fScale) { + var length = _lengths[i]; + if (length != 0) { + var s:Float = (Math.sqrt(dx * dx + dy * dy) / length - 1) * mixRotate + 1; + bone.a *= s; + bone.c *= s; + } + } + boneX = x; + boneY = y; + if (mixRotate > 0) { + var a:Float = bone.a, + b:Float = bone.b, + c:Float = bone.c, + d:Float = bone.d, + r:Float, + cos:Float, + sin:Float; + if (fTangents) { + r = positions[p - 1]; + } else if (_spaces[i + 1] == 0) { + r = positions[p + 2]; + } else { + r = Math.atan2(dy, dx); + } + r -= Math.atan2(c, a); + if (tip) { + cos = Math.cos(r); + sin = Math.sin(r); + var length:Float = bone.data.length; + boneX += (length * (cos * a - sin * c) - dx) * mixRotate; + boneY += (length * (sin * a + cos * c) - dy) * mixRotate; + } else { + r += offsetRotation; + } + if (r > Math.PI) { + r -= (Math.PI * 2); + } else if (r < -Math.PI) { + r += (Math.PI * 2); + } + r *= mixRotate; + cos = Math.cos(r); + sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + bone.updateAppliedTransform(); + + i++; + p += 3; + } + } + + private function computeWorldPositions(path:PathAttachment, spacesCount:Int, tangents:Bool):Vector { + var position:Float = this.position; + _positions.length = spacesCount * 3 + 2; + var out:Vector = _positions, world:Vector; + var closed:Bool = path.closed; + var verticesLength:Int = path.worldVerticesLength; + var curveCount:Int = Std.int(verticesLength / 6); + var prevCurve:Int = NONE; + var multiplier:Float, i:Int; + + if (!path.constantSpeed) { + var lengths:Vector = path.lengths; + curveCount -= closed ? 1 : 2; + var pathLength:Float = lengths[curveCount]; + if (data.positionMode == PositionMode.percent) + position *= pathLength; + switch (data.spacingMode) { + case SpacingMode.percent: + multiplier = pathLength; + case SpacingMode.proportional: + multiplier = pathLength / spacesCount; + default: + multiplier = 1; + } + + _world.length = 8; + world = _world; + var i:Int = 0; + var o:Int = 0; + var curve:Int = 0; + while (i < spacesCount) { + var space:Float = _spaces[i] * multiplier; + position += space; + var p:Float = position; + + if (closed) { + p %= pathLength; + if (p < 0) + p += pathLength; + curve = 0; + } else if (p < 0) { + if (prevCurve != BEFORE) { + prevCurve = BEFORE; + path.computeWorldVertices(target, 2, 4, world, 0, 2); + } + addBeforePosition(p, world, 0, out, o); + continue; + } else if (p > pathLength) { + if (prevCurve != AFTER) { + prevCurve = AFTER; + path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); + } + addAfterPosition(p - pathLength, world, 0, out, o); + continue; + } + + // Determine curve containing position. + while (true) { + var length:Float = lengths[curve]; + if (p > length) { + curve++; + continue; + } + if (curve == 0) { + p /= length; + } else { + var prev:Float = lengths[curve - 1]; + p = (p - prev) / (length - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + if (closed && curve == curveCount) { + path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); + path.computeWorldVertices(target, 0, 4, world, 4, 2); + } else { + path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); + } + } + addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); + + i++; + o += 3; + } + return out; + } + + // World vertices. + if (closed) { + verticesLength += 2; + _world.length = verticesLength; + world = _world; + path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); + path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); + world[verticesLength - 2] = world[0]; + world[verticesLength - 1] = world[1]; + } else { + curveCount--; + verticesLength -= 4; + _world.length = verticesLength; + world = _world; + path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); + } + + // Curve lengths. + _curves.length = curveCount; + var curves:Vector = _curves; + var pathLength:Float = 0; + var x1:Float = world[0], + y1:Float = world[1], + cx1:Float = 0, + cy1:Float = 0, + cx2:Float = 0, + cy2:Float = 0, + x2:Float = 0, + y2:Float = 0; + var tmpx:Float, tmpy:Float, dddfx:Float, dddfy:Float, ddfx:Float, ddfy:Float, dfx:Float, dfy:Float; + var i:Int = 0; + var w:Int = 2; + while (i < curveCount) { + cx1 = world[w]; + cy1 = world[w + 1]; + cx2 = world[w + 2]; + cy2 = world[w + 3]; + x2 = world[w + 4]; + y2 = world[w + 5]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; + tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + curves[i] = pathLength; + x1 = x2; + y1 = y2; + + i++; + w += 6; + } + + if (data.positionMode == PositionMode.percent) + position *= pathLength; + + switch (data.spacingMode) { + case SpacingMode.percent: + multiplier = pathLength; + case SpacingMode.proportional: + multiplier = pathLength / spacesCount; + default: + multiplier = 1; + } + + var segments:Vector = _segments; + var curveLength:Float = 0; + var segment:Int; + i = 0; + var o:Int = 0; + var segment:Int = 0; + while (i < spacesCount) { + var space = _spaces[i] * multiplier; + position += space; + var p = position; + + if (closed) { + p %= pathLength; + if (p < 0) + p += pathLength; + } else if (p < 0) { + addBeforePosition(p, world, 0, out, o); + i++; + o += 3; + continue; + } else if (p > pathLength) { + addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); + i++; + o += 3; + continue; + } + + // Determine curve containing position. + var curve = 0; + while (true) { + var length = curves[curve]; + if (p > length) { + curve++; + continue; + } + if (curve == 0) { + p /= length; + } else { + var prev = curves[curve - 1]; + p = (p - prev) / (length - prev); + } + break; + } + + // Curve segment lengths. + if (curve != prevCurve) { + prevCurve = curve; + var ii:Int = curve * 6; + x1 = world[ii]; + y1 = world[ii + 1]; + cx1 = world[ii + 2]; + cy1 = world[ii + 3]; + cx2 = world[ii + 4]; + cy2 = world[ii + 5]; + x2 = world[ii + 6]; + y2 = world[ii + 7]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.03; + tmpy = (y1 - cy1 * 2 + cy2) * 0.03; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; + curveLength = Math.sqrt(dfx * dfx + dfy * dfy); + segments[0] = curveLength; + for (ii in 1...8) { + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[ii] = curveLength; + } + dfx += ddfx; + dfy += ddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[8] = curveLength; + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[9] = curveLength; + segment = 0; + } + + // Weight by segment length. + p *= curveLength; + while (true) { + var length = segments[segment]; + if (p > length) { + segment++; + continue; + } + if (segment == 0) { + p /= length; + } else { + var prev = segments[segment - 1]; + p = segment + (p - prev) / (length - prev); + } + break; + } + addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); + + i++; + o += 3; + } + return out; + } + + private function addBeforePosition(p:Float, temp:Vector, i:Int, out:Vector, o:Int):Void { + var x1:Float = temp[i]; + var y1:Float = temp[i + 1]; + var dx:Float = temp[i + 2] - x1; + var dy:Float = temp[i + 3] - y1; + var r:Float = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + } + + private function addAfterPosition(p:Float, temp:Vector, i:Int, out:Vector, o:Int):Void { + var x1:Float = temp[i + 2]; + var y1:Float = temp[i + 3]; + var dx:Float = x1 - temp[i]; + var dy:Float = y1 - temp[i + 1]; + var r:Float = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + } + + private function addCurvePosition(p:Float, x1:Float, y1:Float, cx1:Float, cy1:Float, cx2:Float, cy2:Float, x2:Float, y2:Float, out:Vector, o:Int, + tangents:Bool):Void { + if (p == 0 || Math.isNaN(p)) { + out[o] = x1; + out[o + 1] = y1; + out[o + 2] = Math.atan2(cy1 - y1, cx1 - x1); + return; + } + var tt:Float = p * p; + var ttt:Float = tt * p; + var u:Float = 1 - p; + var uu:Float = u * u; + var uuu:Float = uu * u; + var ut:Float = u * p; + var ut3:Float = ut * 3; + var uut3:Float = u * ut3; + var utt3:Float = ut3 * p; + var x:Float = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, + y:Float = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; + out[o] = x; + out[o + 1] = y; + if (tangents) { + if (p < 0.001) { + out[o + 2] = Math.atan2(cy1 - y1, cx1 - x1); + } else { + out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); + } + } + } + + public var bones(get, never):Vector; + + private function get_bones():Vector { + return _bones; + } + + public var data(get, never):PathConstraintData; + + private function get_data():PathConstraintData { + return _data; + } + + public function toString():String { + return _data.name != null ? _data.name : "PathConstraint?"; + } +} diff --git a/spine-haxe/spine-haxe/spine/PathConstraintData.hx b/spine-haxe/spine-haxe/spine/PathConstraintData.hx new file mode 100644 index 0000000000..e4b1dd712d --- /dev/null +++ b/spine-haxe/spine-haxe/spine/PathConstraintData.hx @@ -0,0 +1,28 @@ +package spine; + +import openfl.Vector; + +class PathConstraintData extends ConstraintData { + private var _bones:Vector = new Vector(); + + public var target:SlotData; + public var positionMode:PositionMode; + public var spacingMode:SpacingMode; + public var rotateMode:RotateMode; + public var offsetRotation:Float = 0; + public var position:Float = 0; + public var spacing:Float = 0; + public var mixRotate:Float = 0; + public var mixX:Float = 0; + public var mixY:Float = 0; + + public function new(name:String) { + super(name, 0, false); + } + + public var bones(get, never):Vector; + + private function get_bones():Vector { + return _bones; + } +} diff --git a/spine-haxe/spine-haxe/spine/Polygon.hx b/spine-haxe/spine-haxe/spine/Polygon.hx new file mode 100644 index 0000000000..5a8313d775 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/Polygon.hx @@ -0,0 +1,60 @@ +package spine; + +import openfl.Vector; + +class Polygon { + public var vertices:Vector = new Vector(); + + public function new() {} + + /** Returns true if the polygon contains the point. */ + public function containsPoint(x:Float, y:Float):Bool { + var nn:Int = vertices.length; + + var prevIndex:Int = nn - 2; + var inside:Bool = false; + var ii:Int = 0; + while (ii < nn) { + var vertexY:Float = vertices[ii + 1]; + var prevY:Float = vertices[prevIndex + 1]; + if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { + var vertexX:Float = vertices[ii]; + if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) + inside = !inside; + } + prevIndex = ii; + + ii += 2; + } + + return inside; + } + + /** Returns true if the polygon contains the line segment. */ + public function intersectsSegment(x1:Float, y1:Float, x2:Float, y2:Float):Bool { + var nn:Int = vertices.length; + + var width12:Float = x1 - x2, height12:Float = y1 - y2; + var det1:Float = x1 * y2 - y1 * x2; + var x3:Float = vertices[nn - 2]; + var y3:Float = vertices[nn - 1]; + var ii:Int = 0; + while (ii < nn) { + var x4:Float = vertices[ii], y4:Float = vertices[ii + 1]; + var det2:Float = x3 * y4 - y3 * x4; + var width34:Float = x3 - x4, height34:Float = y3 - y4; + var det3:Float = width12 * height34 - height12 * width34; + var x:Float = (det1 * width34 - width12 * det2) / det3; + if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { + var y:Float = (det1 * height34 - height12 * det2) / det3; + if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) + return true; + } + x3 = x4; + y3 = y4; + + ii += 2; + } + return false; + } +} diff --git a/spine-haxe/spine-haxe/spine/Pool.hx b/spine-haxe/spine-haxe/spine/Pool.hx new file mode 100644 index 0000000000..dd5b434035 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/Pool.hx @@ -0,0 +1,34 @@ +package spine; + +import openfl.utils.Function; +import openfl.Vector; + +@:generic class Pool { + private var items:Vector; + private var instantiator:Function; + + public function new(instantiator:Void->T) { + this.items = new Vector(); + this.instantiator = instantiator; + } + + public function obtain():T { + return this.items.length > 0 ? this.items.pop() : this.instantiator(); + } + + public function free(item:T):Void { + if (Std.isOfType(item, Poolable)) + cast(item, Poolable).reset(); + items.push(item); + } + + public function freeAll(items:Vector):Void { + for (item in items) { + free(item); + } + } + + public function clear():Void { + items.length = 0; + } +} diff --git a/spine-haxe/spine-haxe/spine/Poolable.hx b/spine-haxe/spine-haxe/spine/Poolable.hx new file mode 100644 index 0000000000..35e8862545 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/Poolable.hx @@ -0,0 +1,5 @@ +package spine; + +interface Poolable { + function reset():Void; +} diff --git a/spine-haxe/spine-haxe/spine/PositionMode.hx b/spine-haxe/spine-haxe/spine/PositionMode.hx new file mode 100644 index 0000000000..8fdf1bb846 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/PositionMode.hx @@ -0,0 +1,24 @@ +package spine; + +import openfl.Vector; + +class PositionMode { + public static var fixed(default, never):PositionMode = new PositionMode("fixed"); + public static var percent(default, never):PositionMode = new PositionMode("percent"); + + public static var values(default, never):Vector = Vector.ofArray([fixed, percent]); + + public var name(default, null):String; + + public function new(name:String) { + this.name = name; + } + + public static function fromName(name:String):PositionMode { + for (value in values) { + if (value.name == name) + return value; + } + return null; + } +} diff --git a/spine-haxe/spine-haxe/spine/RotateMode.hx b/spine-haxe/spine-haxe/spine/RotateMode.hx new file mode 100644 index 0000000000..523cd02465 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/RotateMode.hx @@ -0,0 +1,25 @@ +package spine; + +import openfl.Vector; + +class RotateMode { + public static var tangent(default, never):RotateMode = new RotateMode("tangent"); + public static var chain(default, never):RotateMode = new RotateMode("chain"); + public static var chainScale(default, never):RotateMode = new RotateMode("chainScale"); + + public static var values(default, never):Vector = Vector.ofArray([tangent, chain, chainScale]); + + public var name(default, null):String; + + public function new(name:String) { + this.name = name; + } + + public static function fromName(name:String):RotateMode { + for (value in values) { + if (value.name == name) + return value; + } + return null; + } +} diff --git a/spine-haxe/spine-haxe/spine/Skeleton.hx b/spine-haxe/spine-haxe/spine/Skeleton.hx new file mode 100644 index 0000000000..a57c7271b9 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/Skeleton.hx @@ -0,0 +1,612 @@ +package spine; + +import openfl.errors.ArgumentError; +import openfl.utils.Dictionary; +import openfl.Vector; +import spine.attachments.Attachment; +import spine.attachments.MeshAttachment; +import spine.attachments.PathAttachment; +import spine.attachments.RegionAttachment; + +class Skeleton { + private var _data:SkeletonData; + + public var bones:Vector; + public var slots:Vector; + public var drawOrder:Vector; + public var ikConstraints:Vector; + public var transformConstraints:Vector; + public var pathConstraints:Vector; + + private var _updateCache:Vector = new Vector(); + private var _skin:Skin; + + public var color:Color = new Color(1, 1, 1, 1); + public var time:Float = 0; + public var scaleX:Float = 1; + public var scaleY:Float = 1; + public var x:Float = 0; + public var y:Float = 0; + + public function new(data:SkeletonData) { + if (data == null) { + throw new ArgumentError("data cannot be null."); + } + _data = data; + + bones = new Vector(); + for (boneData in data.bones) { + var bone:Bone; + if (boneData.parent == null) { + bone = new Bone(boneData, this, null); + } else { + var parent:Bone = bones[boneData.parent.index]; + bone = new Bone(boneData, this, parent); + parent.children.push(bone); + } + bones.push(bone); + } + + slots = new Vector(); + drawOrder = new Vector(); + for (slotData in data.slots) { + var bone = bones[slotData.boneData.index]; + var slot:Slot = new Slot(slotData, bone); + slots.push(slot); + drawOrder.push(slot); + } + + ikConstraints = new Vector(); + for (ikConstraintData in data.ikConstraints) { + ikConstraints.push(new IkConstraint(ikConstraintData, this)); + } + + transformConstraints = new Vector(); + for (transformConstraintData in data.transformConstraints) { + transformConstraints.push(new TransformConstraint(transformConstraintData, this)); + } + + pathConstraints = new Vector(); + for (pathConstraintData in data.pathConstraints) { + pathConstraints.push(new PathConstraint(pathConstraintData, this)); + } + + updateCache(); + } + + /** Caches information about bones and constraints. Must be called if bones, constraints, or weighted path attachments are + * added or removed. */ + public function updateCache():Void { + _updateCache.length = 0; + + for (bone in bones) { + bone.sorted = bone.data.skinRequired; + bone.active = !bone.sorted; + } + + if (skin != null) { + var skinBones:Vector = skin.bones; + for (i in 0...skin.bones.length) { + var bone:Bone = bones[skinBones[i].index]; + do { + bone.sorted = false; + bone.active = true; + bone = bone.parent; + } while (bone != null); + } + } + + // IK first, lowest hierarchy depth first. + var ikCount:Int = ikConstraints.length; + var transformCount:Int = transformConstraints.length; + var pathCount:Int = pathConstraints.length; + var constraintCount:Int = ikCount + transformCount + pathCount; + + var continueOuter:Bool; + for (i in 0...constraintCount) { + continueOuter = false; + for (ikConstraint in ikConstraints) { + if (ikConstraint.data.order == i) { + sortIkConstraint(ikConstraint); + continueOuter = true; + break; + } + } + if (continueOuter) + continue; + for (transformConstraint in transformConstraints) { + if (transformConstraint.data.order == i) { + sortTransformConstraint(transformConstraint); + continueOuter = true; + break; + } + } + if (continueOuter) + continue; + for (pathConstraint in pathConstraints) { + if (pathConstraint.data.order == i) { + sortPathConstraint(pathConstraint); + break; + } + } + } + + for (bone in bones) { + sortBone(bone); + } + } + + private static function contains(list:Vector, element:ConstraintData):Bool { + return list.indexOf(element) != -1; + } + + private function sortIkConstraint(constraint:IkConstraint):Void { + constraint.active = constraint.target.isActive() + && (!constraint.data.skinRequired || (this.skin != null && contains(this.skin.constraints, constraint.data))); + if (!constraint.active) + return; + + var target:Bone = constraint.target; + sortBone(target); + + var constrained:Vector = constraint.bones; + var parent:Bone = constrained[0]; + sortBone(parent); + + if (constrained.length == 1) { + _updateCache.push(constraint); + sortReset(parent.children); + } else { + var child:Bone = constrained[constrained.length - 1]; + sortBone(child); + + _updateCache.push(constraint); + + sortReset(parent.children); + child.sorted = true; + } + + _updateCache.push(constraint); + + sortReset(parent.children); + constrained[constrained.length - 1].sorted = true; + } + + private function sortPathConstraint(constraint:PathConstraint):Void { + constraint.active = constraint.target.bone.isActive() + && (!constraint.data.skinRequired || (this.skin != null && contains(this.skin.constraints, constraint.data))); + if (!constraint.active) + return; + + var slot:Slot = constraint.target; + var slotIndex:Int = slot.data.index; + var slotBone:Bone = slot.bone; + if (skin != null) + sortPathConstraintAttachment(skin, slotIndex, slotBone); + if (data.defaultSkin != null && data.defaultSkin != skin) { + sortPathConstraintAttachment(data.defaultSkin, slotIndex, slotBone); + } + for (i in 0...data.skins.length) { + sortPathConstraintAttachment(data.skins[i], slotIndex, slotBone); + } + + var attachment:Attachment = slot.attachment; + if (Std.isOfType(attachment, PathAttachment)) + sortPathConstraintAttachment2(attachment, slotBone); + + var constrainedBones:Vector = constraint.bones; + for (bone in constrainedBones) { + sortBone(bone); + } + + _updateCache.push(constraint); + + for (bone in constrainedBones) { + sortReset(bone.children); + } + for (bone in constrainedBones) { + bone.sorted = true; + } + } + + private function sortTransformConstraint(constraint:TransformConstraint):Void { + constraint.active = constraint.target.isActive() + && (!constraint.data.skinRequired || (this.skin != null && contains(this.skin.constraints, constraint.data))); + if (!constraint.active) + return; + + sortBone(constraint.target); + + var constrainedBones:Vector = constraint.bones; + if (constraint.data.local) { + for (bone in constrainedBones) { + sortBone(bone.parent); + sortBone(bone); + } + } else { + for (bone in constrainedBones) { + sortBone(bone); + } + } + + _updateCache.push(constraint); + for (bone in constrainedBones) { + sortReset(bone.children); + } + for (bone in constrainedBones) { + bone.sorted = true; + } + } + + private function sortPathConstraintAttachment(skin:Skin, slotIndex:Int, slotBone:Bone):Void { + var dict:Dictionary = skin.attachments[slotIndex]; + if (dict != null) { + for (attachment in dict.each()) { + sortPathConstraintAttachment2(attachment, slotBone); + } + } + } + + private function sortPathConstraintAttachment2(attachment:Attachment, slotBone:Bone):Void { + var pathAttachment:PathAttachment = cast(attachment, PathAttachment); + if (pathAttachment == null) + return; + var pathBones:Vector = pathAttachment.bones; + if (pathBones == null) { + sortBone(slotBone); + } else { + var i:Int = 0; + var n:Int = pathBones.length; + while (i < n) { + var nn:Int = pathBones[i++]; + nn += i; + while (i < nn) { + sortBone(bones[pathBones[i++]]); + } + } + } + } + + private function sortBone(bone:Bone):Void { + if (bone.sorted) + return; + var parent:Bone = bone.parent; + if (parent != null) + sortBone(parent); + bone.sorted = true; + _updateCache.push(bone); + } + + private function sortReset(bones:Vector):Void { + for (bone in bones) { + if (!bone.active) + continue; + if (bone.sorted) + sortReset(bone.children); + bone.sorted = false; + } + } + + /** Updates the world transform for each bone and applies constraints. */ + public function updateWorldTransform():Void { + for (bone in bones) { + bone.ax = bone.x; + bone.ay = bone.y; + bone.arotation = bone.rotation; + bone.ascaleX = bone.scaleX; + bone.ascaleY = bone.scaleY; + bone.ashearX = bone.shearX; + bone.ashearY = bone.shearY; + } + + for (updatable in _updateCache) { + updatable.update(); + } + } + + public function updateWorldTransformWith(parent:Bone):Void { + // Apply the parent bone transform to the root bone. The root bone always inherits scale, rotation and reflection. + var rootBone:Bone = rootBone; + var pa:Float = parent.a, + pb:Float = parent.b, + pc:Float = parent.c, + pd:Float = parent.d; + rootBone.worldX = pa * x + pb * y + parent.worldX; + rootBone.worldY = pc * x + pd * y + parent.worldY; + + var rotationY:Float = rootBone.rotation + 90 + rootBone.shearY; + var la:Float = MathUtils.cosDeg(rootBone.rotation + rootBone.shearX) * rootBone.scaleX; + var lb:Float = MathUtils.cosDeg(rotationY) * rootBone.scaleY; + var lc:Float = MathUtils.sinDeg(rootBone.rotation + rootBone.shearX) * rootBone.scaleX; + var ld:Float = MathUtils.sinDeg(rotationY) * rootBone.scaleY; + rootBone.a = (pa * la + pb * lc) * scaleX; + rootBone.b = (pa * lb + pb * ld) * scaleX; + rootBone.c = (pc * la + pd * lc) * scaleY; + rootBone.d = (pc * lb + pd * ld) * scaleY; + + // Update everything except root bone. + for (updatable in _updateCache) { + if (updatable != rootBone) + updatable.update(); + } + } + + /** Sets the bones, constraints, and slots to their setup pose values. */ + public function setToSetupPose():Void { + setBonesToSetupPose(); + setSlotsToSetupPose(); + } + + /** Sets the bones and constraints to their setup pose values. */ + public function setBonesToSetupPose():Void { + for (bone in bones) { + bone.setToSetupPose(); + } + + for (ikConstraint in ikConstraints) { + ikConstraint.mix = ikConstraint.data.mix; + ikConstraint.softness = ikConstraint.data.softness; + ikConstraint.bendDirection = ikConstraint.data.bendDirection; + ikConstraint.compress = ikConstraint.data.compress; + ikConstraint.stretch = ikConstraint.data.stretch; + } + + for (transformConstraint in transformConstraints) { + transformConstraint.mixRotate = transformConstraint.data.mixRotate; + transformConstraint.mixX = transformConstraint.data.mixX; + transformConstraint.mixY = transformConstraint.data.mixY; + transformConstraint.mixScaleX = transformConstraint.data.mixScaleX; + transformConstraint.mixScaleY = transformConstraint.data.mixScaleY; + transformConstraint.mixShearY = transformConstraint.data.mixShearY; + } + + for (pathConstraint in pathConstraints) { + pathConstraint.position = pathConstraint.data.position; + pathConstraint.spacing = pathConstraint.data.spacing; + pathConstraint.mixRotate = pathConstraint.data.mixRotate; + pathConstraint.mixX = pathConstraint.data.mixX; + pathConstraint.mixY = pathConstraint.data.mixY; + } + } + + public function setSlotsToSetupPose():Void { + var i:Int = 0; + for (slot in slots) { + drawOrder[i++] = slot; + slot.setToSetupPose(); + } + } + + public var data(get, never):SkeletonData; + + private function get_data():SkeletonData { + return _data; + } + + public var getUpdateCache(get, never):Vector; + + private function get_getUpdateCache():Vector { + return _updateCache; + } + + public var rootBone(get, never):Bone; + + private function get_rootBone():Bone { + if (bones.length == 0) + return null; + return bones[0]; + } + + /** @return May be null. */ + public function findBone(boneName:String):Bone { + if (boneName == null) { + throw new ArgumentError("boneName cannot be null."); + } + for (bone in bones) { + if (bone.data.name == boneName) + return bone; + } + return null; + } + + /** @return -1 if the bone was not found. */ + public function findBoneIndex(boneName:String):Int { + if (boneName == null) { + throw new ArgumentError("boneName cannot be null."); + } + var i:Int = 0; + for (bone in bones) { + if (bone.data.name == boneName) + return i; + i++; + } + return -1; + } + + /** @return May be null. */ + public function findSlot(slotName:String):Slot { + if (slotName == null) { + throw new ArgumentError("slotName cannot be null."); + } + for (slot in slots) { + if (slot.data.name == slotName) + return slot; + } + return null; + } + + public var skinName(get, set):String; + + private function set_skinName(skinName:String):String { + var skin:Skin = data.findSkin(skinName); + if (skin == null) + throw new ArgumentError("Skin not found: " + skinName); + this.skin = skin; + return skinName; + } + + /** @return May be null. */ + private function get_skinName():String { + return _skin == null ? null : _skin.name; + } + + public var skin(get, set):Skin; + + private function get_skin():Skin { + return _skin; + } + + /** Sets the skin used to look up attachments before looking in the {@link SkeletonData#getDefaultSkin() default skin}. + * Attachments from the new skin are attached if the corresponding attachment from the old skin was attached. If there was + * no old skin, each slot's setup mode attachment is attached from the new skin. + * @param newSkin May be null. */ + private function set_skin(newSkin:Skin):Skin { + if (newSkin == _skin) + return null; + if (newSkin != null) { + if (skin != null) { + newSkin.attachAll(this, skin); + } else { + var i:Int = 0; + for (slot in slots) { + var name:String = slot.data.attachmentName; + if (name != null) { + var attachment:Attachment = newSkin.getAttachment(i, name); + if (attachment != null) + slot.attachment = attachment; + } + i++; + } + } + } + _skin = newSkin; + updateCache(); + return _skin; + } + + /** @return May be null. */ + public function getAttachmentForSlotName(slotName:String, attachmentName:String):Attachment { + return getAttachmentForSlotIndex(data.findSlot(slotName).index, attachmentName); + } + + /** @return May be null. */ + public function getAttachmentForSlotIndex(slotIndex:Int, attachmentName:String):Attachment { + if (attachmentName == null) + throw new ArgumentError("attachmentName cannot be null."); + if (skin != null) { + var attachment:Attachment = skin.getAttachment(slotIndex, attachmentName); + if (attachment != null) + return attachment; + } + if (data.defaultSkin != null) + return data.defaultSkin.getAttachment(slotIndex, attachmentName); + return null; + } + + /** @param attachmentName May be null. */ + public function setAttachment(slotName:String, attachmentName:String):Void { + if (slotName == null) + throw new ArgumentError("slotName cannot be null."); + var i:Int = 0; + for (slot in slots) { + if (slot.data.name == slotName) { + var attachment:Attachment = null; + if (attachmentName != null) { + attachment = getAttachmentForSlotIndex(i, attachmentName); + if (attachment == null) { + throw new ArgumentError("Attachment not found: " + attachmentName + ", for slot: " + slotName); + } + } + slot.attachment = attachment; + return; + } + i++; + } + throw new ArgumentError("Slot not found: " + slotName); + } + + /** @return May be null. */ + public function findIkConstraint(constraintName:String):IkConstraint { + if (constraintName == null) + throw new ArgumentError("constraintName cannot be null."); + for (ikConstraint in ikConstraints) { + if (ikConstraint.data.name == constraintName) + return ikConstraint; + } + return null; + } + + /** @return May be null. */ + public function findTransformConstraint(constraintName:String):TransformConstraint { + if (constraintName == null) + throw new ArgumentError("constraintName cannot be null."); + for (transformConstraint in transformConstraints) { + if (transformConstraint.data.name == constraintName) + return transformConstraint; + } + return null; + } + + /** @return May be null. */ + public function findPathConstraint(constraintName:String):PathConstraint { + if (constraintName == null) + throw new ArgumentError("constraintName cannot be null."); + for (pathConstraint in pathConstraints) { + if (pathConstraint.data.name == constraintName) + return pathConstraint; + } + return null; + } + + public function update(delta:Float):Void { + time += delta; + } + + public function toString():String { + return _data.name != null ? _data.name : "Skeleton?"; + } + + public function getBounds(offset:Vector, size:Vector, temp:Vector):Void { + if (offset == null) + throw new ArgumentError("offset cannot be null."); + if (size == null) + throw new ArgumentError("size cannot be null."); + var minX:Float = Math.POSITIVE_INFINITY; + var minY:Float = Math.POSITIVE_INFINITY; + var maxX:Float = Math.NEGATIVE_INFINITY; + var maxY:Float = Math.NEGATIVE_INFINITY; + for (slot in drawOrder) { + var verticesLength:Int = 0; + var vertices:Vector = null; + var attachment:Attachment = slot.attachment; + if (Std.isOfType(attachment, RegionAttachment)) { + verticesLength = 8; + temp.length = verticesLength; + vertices = temp; + cast(attachment, RegionAttachment).computeWorldVertices(slot.bone, vertices, 0, 2); + } else if (Std.isOfType(attachment, MeshAttachment)) { + var mesh:MeshAttachment = cast(attachment, MeshAttachment); + verticesLength = mesh.worldVerticesLength; + temp.length = verticesLength; + vertices = temp; + mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); + } + if (vertices != null) { + var ii:Int = 0; + var nn:Int = vertices.length; + while (ii < nn) { + var x:Float = vertices[ii], y:Float = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + ii += 2; + } + } + } + offset[0] = minX; + offset[1] = minY; + size[0] = maxX - minX; + size[1] = maxY - minY; + } +} diff --git a/spine-haxe/spine-haxe/spine/SkeletonBinary.hx b/spine-haxe/spine-haxe/spine/SkeletonBinary.hx new file mode 100644 index 0000000000..565dcf7657 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/SkeletonBinary.hx @@ -0,0 +1,1205 @@ +package spine; + +import openfl.errors.ArgumentError; +import openfl.errors.Error; +import openfl.utils.ByteArray; +import openfl.Vector; +import spine.animation.AlphaTimeline; +import spine.animation.Animation; +import spine.animation.AttachmentTimeline; +import spine.animation.CurveTimeline1; +import spine.animation.CurveTimeline2; +import spine.animation.CurveTimeline; +import spine.animation.DeformTimeline; +import spine.animation.DrawOrderTimeline; +import spine.animation.EventTimeline; +import spine.animation.IkConstraintTimeline; +import spine.animation.PathConstraintMixTimeline; +import spine.animation.PathConstraintPositionTimeline; +import spine.animation.PathConstraintSpacingTimeline; +import spine.animation.RGB2Timeline; +import spine.animation.RGBA2Timeline; +import spine.animation.RGBATimeline; +import spine.animation.RGBTimeline; +import spine.animation.RotateTimeline; +import spine.animation.ScaleTimeline; +import spine.animation.ScaleXTimeline; +import spine.animation.ScaleYTimeline; +import spine.animation.ShearTimeline; +import spine.animation.ShearXTimeline; +import spine.animation.ShearYTimeline; +import spine.animation.Timeline; +import spine.animation.TransformConstraintTimeline; +import spine.animation.TranslateTimeline; +import spine.animation.TranslateXTimeline; +import spine.animation.TranslateYTimeline; +import spine.attachments.Attachment; +import spine.attachments.AttachmentLoader; +import spine.attachments.AttachmentType; +import spine.attachments.BoundingBoxAttachment; +import spine.attachments.ClippingAttachment; +import spine.attachments.MeshAttachment; +import spine.attachments.PathAttachment; +import spine.attachments.PointAttachment; +import spine.attachments.RegionAttachment; +import spine.attachments.VertexAttachment; +import StringTools; + +class SkeletonBinary { + public var attachmentLoader:AttachmentLoader; + public var scale:Float = 1; + + private var linkedMeshes:Vector = new Vector(); + + private static inline var BONE_ROTATE:Int = 0; + private static inline var BONE_TRANSLATE:Int = 1; + private static inline var BONE_TRANSLATEX:Int = 2; + private static inline var BONE_TRANSLATEY:Int = 3; + private static inline var BONE_SCALE:Int = 4; + private static inline var BONE_SCALEX:Int = 5; + private static inline var BONE_SCALEY:Int = 6; + private static inline var BONE_SHEAR:Int = 7; + private static inline var BONE_SHEARX:Int = 8; + private static inline var BONE_SHEARY:Int = 9; + + private static inline var SLOT_ATTACHMENT:Int = 0; + private static inline var SLOT_RGBA:Int = 1; + private static inline var SLOT_RGB:Int = 2; + private static inline var SLOT_RGBA2:Int = 3; + private static inline var SLOT_RGB2:Int = 4; + private static inline var SLOT_ALPHA:Int = 5; + + private static inline var PATH_POSITION:Int = 0; + private static inline var PATH_SPACING:Int = 1; + private static inline var PATH_MIX:Int = 2; + + private static inline var CURVE_LINEAR:Int = 0; + private static inline var CURVE_STEPPED:Int = 1; + private static inline var CURVE_BEZIER:Int = 2; + + public function new(attachmentLoader:AttachmentLoader = null) { + this.attachmentLoader = attachmentLoader; + } + + public function readSkeletonData(object:ByteArray):SkeletonData { + if (object == null) + throw new ArgumentError("Object cannot be null"); + if (!Std.isOfType(object, ByteArrayData)) + throw new ArgumentError("Object must be ByteArrayData"); + + var skeletonData:SkeletonData = new SkeletonData(); + skeletonData.name = null; + + var input:BinaryInput = new BinaryInput(object); + + var lowHash:Int = input.readInt32(); + var highHash:Int = input.readInt32(); + skeletonData.hash = highHash == 0 && lowHash == 0 ? null : StringTools.hex(highHash) + StringTools.hex(lowHash); + skeletonData.version = input.readString(); + skeletonData.x = input.readFloat(); + skeletonData.y = input.readFloat(); + skeletonData.width = input.readFloat(); + skeletonData.height = input.readFloat(); + + var nonessential:Bool = input.readBoolean(); + if (nonessential) { + skeletonData.fps = input.readFloat(); + skeletonData.imagesPath = input.readString(); + skeletonData.audioPath = input.readString(); + } + + var n:Int = 0; + var nn:Int = 0; + + // Strings. + n = input.readInt(true); + for (i in 0...n) { + input.strings.push(input.readString()); + } + + // Bones. + n = input.readInt(true); + for (i in 0...n) { + var boneName:String = input.readString(); + var boneParent:BoneData = i == 0 ? null : skeletonData.bones[input.readInt(true)]; + var boneData:BoneData = new BoneData(i, boneName, boneParent); + boneData.rotation = input.readFloat(); + boneData.x = input.readFloat() * scale; + boneData.y = input.readFloat() * scale; + boneData.scaleX = input.readFloat(); + boneData.scaleY = input.readFloat(); + boneData.shearX = input.readFloat(); + boneData.shearY = input.readFloat(); + boneData.length = input.readFloat() * scale; + boneData.transformMode = TransformMode.values[input.readInt(true)]; + boneData.skinRequired = input.readBoolean(); + if (nonessential) + boneData.color.setFromRgba8888(input.readInt32()); + skeletonData.bones.push(boneData); + } + + // Slots. + n = input.readInt(true); + for (i in 0...n) { + var slotName:String = input.readString(); + var slotBoneData:BoneData = skeletonData.bones[input.readInt(true)]; + var slotData:SlotData = new SlotData(i, slotName, slotBoneData); + slotData.color.setFromRgba8888(input.readInt32()); + + var darkColor:Int = input.readInt32(); + if (darkColor != -1) { + slotData.darkColor = new Color(0, 0, 0); + slotData.darkColor.setFromRgb888(darkColor); + } + + slotData.attachmentName = input.readStringRef(); + slotData.blendMode = BlendMode.values[input.readInt(true)]; + skeletonData.slots.push(slotData); + } + + // IK constraints. + n = input.readInt(true); + for (i in 0...n) { + var ikData:IkConstraintData = new IkConstraintData(input.readString()); + ikData.order = input.readInt(true); + ikData.skinRequired = input.readBoolean(); + nn = input.readInt(true); + for (ii in 0...nn) { + ikData.bones.push(skeletonData.bones[input.readInt(true)]); + } + ikData.target = skeletonData.bones[input.readInt(true)]; + ikData.mix = input.readFloat(); + ikData.softness = input.readFloat() * scale; + ikData.bendDirection = input.readByte(); + ikData.compress = input.readBoolean(); + ikData.stretch = input.readBoolean(); + ikData.uniform = input.readBoolean(); + skeletonData.ikConstraints.push(ikData); + } + + // Transform constraints. + n = input.readInt(true); + for (i in 0...n) { + var transformData:TransformConstraintData = new TransformConstraintData(input.readString()); + transformData.order = input.readInt(true); + transformData.skinRequired = input.readBoolean(); + nn = input.readInt(true); + for (ii in 0...nn) { + transformData.bones.push(skeletonData.bones[input.readInt(true)]); + } + transformData.target = skeletonData.bones[input.readInt(true)]; + transformData.local = input.readBoolean(); + transformData.relative = input.readBoolean(); + transformData.offsetRotation = input.readFloat(); + transformData.offsetX = input.readFloat() * scale; + transformData.offsetY = input.readFloat() * scale; + transformData.offsetScaleX = input.readFloat(); + transformData.offsetScaleY = input.readFloat(); + transformData.offsetShearY = input.readFloat(); + transformData.mixRotate = input.readFloat(); + transformData.mixX = input.readFloat(); + transformData.mixY = input.readFloat(); + transformData.mixScaleX = input.readFloat(); + transformData.mixScaleY = input.readFloat(); + transformData.mixShearY = input.readFloat(); + skeletonData.transformConstraints.push(transformData); + } + + // Path constraints. + n = input.readInt(true); + for (i in 0...n) { + var pathData:PathConstraintData = new PathConstraintData(input.readString()); + pathData.order = input.readInt(true); + pathData.skinRequired = input.readBoolean(); + nn = input.readInt(true); + for (ii in 0...nn) { + pathData.bones.push(skeletonData.bones[input.readInt(true)]); + } + pathData.target = skeletonData.slots[input.readInt(true)]; + pathData.positionMode = PositionMode.values[input.readInt(true)]; + pathData.spacingMode = SpacingMode.values[input.readInt(true)]; + pathData.rotateMode = RotateMode.values[input.readInt(true)]; + pathData.offsetRotation = input.readFloat(); + pathData.position = input.readFloat(); + if (pathData.positionMode == PositionMode.fixed) + pathData.position *= scale; + pathData.spacing = input.readFloat(); + if (pathData.spacingMode == SpacingMode.length || pathData.spacingMode == SpacingMode.fixed) + pathData.spacing *= scale; + pathData.mixRotate = input.readFloat(); + pathData.mixX = input.readFloat(); + pathData.mixY = input.readFloat(); + skeletonData.pathConstraints.push(pathData); + } + + // Default skin. + var defaultSkin:Skin = readSkin(input, skeletonData, true, nonessential); + if (defaultSkin != null) { + skeletonData.defaultSkin = defaultSkin; + skeletonData.skins.push(defaultSkin); + } + + // Skins. + { + var i:Int = skeletonData.skins.length; + n = i + input.readInt(true); + while (i < n) { + skeletonData.skins.push(readSkin(input, skeletonData, false, nonessential)); + i++; + } + } + + // Linked meshes. + for (linkedMesh in linkedMeshes) { + var skin:Skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (skin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parent:Attachment = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parent == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.deformAttachment = linkedMesh.inheritDeform ? cast(parent, VertexAttachment) : linkedMesh.mesh; + linkedMesh.mesh.parentMesh = cast(parent, MeshAttachment); + linkedMesh.mesh.updateUVs(); + } + linkedMeshes.length = 0; + + // Events. + n = input.readInt(true); + for (i in 0...n) { + var data:EventData = new EventData(input.readStringRef()); + data.intValue = input.readInt(false); + data.floatValue = input.readFloat(); + data.stringValue = input.readString(); + data.audioPath = input.readString(); + if (data.audioPath != null) { + data.volume = input.readFloat(); + data.balance = input.readFloat(); + } + skeletonData.events.push(data); + } + + // Animations. + n = input.readInt(true); + for (i in 0...n) { + skeletonData.animations.push(readAnimation(input, input.readString(), skeletonData)); + } + return skeletonData; + } + + private function readSkin(input:BinaryInput, skeletonData:SkeletonData, defaultSkin:Bool, nonessential:Bool):Skin { + var skin:Skin = null; + var slotCount:Int = 0; + + if (defaultSkin) { + slotCount = input.readInt(true); + if (slotCount == 0) + return null; + skin = new Skin("default"); + } else { + skin = new Skin(input.readStringRef()); + skin.bones.length = input.readInt(true); + for (i in 0...skin.bones.length) { + skin.bones[i] = skeletonData.bones[input.readInt(true)]; + } + + for (i in 0...input.readInt(true)) { + skin.constraints.push(skeletonData.ikConstraints[input.readInt(true)]); + } + for (i in 0...input.readInt(true)) { + skin.constraints.push(skeletonData.transformConstraints[input.readInt(true)]); + } + for (i in 0...input.readInt(true)) { + skin.constraints.push(skeletonData.pathConstraints[input.readInt(true)]); + } + + slotCount = input.readInt(true); + } + + for (i in 0...slotCount) { + var slotIndex:Int = input.readInt(true); + for (ii in 0...input.readInt(true)) { + var name:String = input.readStringRef(); + var attachment:Attachment = readAttachment(input, skeletonData, skin, slotIndex, name, nonessential); + if (attachment != null) + skin.setAttachment(slotIndex, name, attachment); + } + } + return skin; + } + + private function readAttachment(input:BinaryInput, skeletonData:SkeletonData, skin:Skin, slotIndex:Int, attachmentName:String, + nonessential:Bool):Attachment { + var vertexCount:Int; + var vertices:Vertices; + var path:String; + var rotation:Float; + var x:Float; + var y:Float; + var scaleX:Float; + var scaleY:Float; + var width:Float = 0; + var height:Float = 0; + var color:Int; + var mesh:MeshAttachment; + + var name:String = input.readStringRef(); + if (name == null) + name = attachmentName; + + switch (AttachmentType.values[input.readByte()]) { + case AttachmentType.region: + path = input.readStringRef(); + rotation = input.readFloat(); + x = input.readFloat(); + y = input.readFloat(); + scaleX = input.readFloat(); + scaleY = input.readFloat(); + width = input.readFloat(); + height = input.readFloat(); + color = input.readInt32(); + + if (path == null) + path = name; + var region:RegionAttachment = attachmentLoader.newRegionAttachment(skin, name, path); + if (region == null) + return null; + region.path = path; + region.x = x * scale; + region.y = y * scale; + region.scaleX = scaleX; + region.scaleY = scaleY; + region.rotation = rotation; + region.width = width * scale; + region.height = height * scale; + region.color.setFromRgba8888(color); + region.updateOffset(); + return region; + case AttachmentType.boundingbox: + vertexCount = input.readInt(true); + vertices = readVertices(input, vertexCount); + color = nonessential ? input.readInt32() : 0; + + var box:BoundingBoxAttachment = attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + box.worldVerticesLength = vertexCount << 1; + box.vertices = vertices.vertices; + if (vertices.bones.length > 0) + box.bones = vertices.bones; + if (nonessential) + box.color.setFromRgba8888(color); + return box; + case AttachmentType.mesh: + path = input.readStringRef(); + color = input.readInt32(); + vertexCount = input.readInt(true); + var uvs:Vector = readFloatArray(input, vertexCount << 1, 1); + var triangles:Vector = readShortArray(input); + vertices = readVertices(input, vertexCount); + var hullLength:Int = input.readInt(true); + var edges:Vector = null; + if (nonessential) { + edges = readShortArray(input); + width = input.readFloat(); + height = input.readFloat(); + } + + if (path == null) + path = name; + mesh = attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + mesh.color.setFromRgba8888(color); + if (vertices.bones.length > 0) + mesh.bones = vertices.bones; + mesh.vertices = vertices.vertices; + mesh.worldVerticesLength = vertexCount << 1; + mesh.triangles = triangles; + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.hullLength = hullLength << 1; + if (nonessential) { + mesh.edges = edges; + mesh.width = width * scale; + mesh.height = height * scale; + } + return mesh; + case AttachmentType.linkedmesh: + path = input.readStringRef(); + color = input.readInt32(); + var skinName:String = input.readStringRef(); + var parent:String = input.readStringRef(); + var inheritDeform:Bool = input.readBoolean(); + if (nonessential) { + width = input.readFloat(); + height = input.readFloat(); + } + + if (path == null) + path = name; + mesh = attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + mesh.color.setFromRgba8888(color); + if (nonessential) { + mesh.width = width * scale; + mesh.height = height * scale; + } + this.linkedMeshes.push(new LinkedMeshBinary(mesh, skinName, slotIndex, parent, inheritDeform)); + return mesh; + case AttachmentType.path: + var closed:Bool = input.readBoolean(); + var constantSpeed:Bool = input.readBoolean(); + vertexCount = input.readInt(true); + vertices = readVertices(input, vertexCount); + var lengths:Vector = new Vector(); + lengths.length = Std.int(vertexCount / 3); + for (i in 0...lengths.length) { + lengths[i] = input.readFloat() * scale; + } + color = nonessential ? input.readInt32() : 0; + + var pathAttachment:PathAttachment = attachmentLoader.newPathAttachment(skin, name); + if (pathAttachment == null) + return null; + pathAttachment.closed = closed; + pathAttachment.constantSpeed = constantSpeed; + pathAttachment.worldVerticesLength = vertexCount << 1; + pathAttachment.vertices = vertices.vertices; + if (vertices.bones.length > 0) + pathAttachment.bones = vertices.bones; + pathAttachment.lengths = lengths; + if (nonessential) + pathAttachment.color.setFromRgba8888(color); + return pathAttachment; + case AttachmentType.point: + rotation = input.readFloat(); + x = input.readFloat(); + y = input.readFloat(); + color = nonessential ? input.readInt32() : 0; + + var point:PointAttachment = attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = x * scale; + point.y = y * scale; + point.rotation = rotation; + if (nonessential) + point.color.setFromRgba8888(color); + return point; + case AttachmentType.clipping: + var endSlotIndex:Int = input.readInt(true); + vertexCount = input.readInt(true); + vertices = readVertices(input, vertexCount); + color = nonessential ? input.readInt32() : 0; + + var clip:ClippingAttachment = attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + clip.endSlot = skeletonData.slots[endSlotIndex]; + clip.worldVerticesLength = vertexCount << 1; + clip.vertices = vertices.vertices; + if (vertices.bones.length > 0) + clip.bones = vertices.bones; + if (nonessential) + clip.color.setFromRgba8888(color); + return clip; + } + return null; + } + + private function readVertices(input:BinaryInput, vertexCount:Int):Vertices { + var verticesLength:Int = vertexCount << 1; + var vertices:Vertices = new Vertices(); + + var isWeighted:Bool = input.readBoolean(); + if (!isWeighted) { + vertices.vertices = readFloatArray(input, verticesLength, scale); + return vertices; + } + var weights:Vector = new Vector(); + var bonesArray:Vector = new Vector(); + for (i in 0...vertexCount) { + var boneCount:Int = input.readInt(true); + bonesArray.push(boneCount); + for (ii in 0...boneCount) { + bonesArray.push(input.readInt(true)); + weights.push(input.readFloat() * scale); + weights.push(input.readFloat() * scale); + weights.push(input.readFloat()); + } + } + vertices.vertices = weights; + vertices.bones = bonesArray; + return vertices; + } + + private function readFloatArray(input:BinaryInput, n:Int, scale:Float):Vector { + var array:Vector = new Vector(); + if (scale == 1) { + for (i in 0...n) { + array.push(input.readFloat()); + } + } else { + for (i in 0...n) { + array.push(input.readFloat() * scale); + } + } + return array; + } + + private function readShortArray(input:BinaryInput):Vector { + var n:Int = input.readInt(true); + var array:Vector = new Vector(); + for (i in 0...n) { + array.push(input.readShort()); + } + return array; + } + + private function readAnimation(input:BinaryInput, name:String, skeletonData:SkeletonData):Animation { + input.readInt(true); // Count of timelines. + var timelines:Vector = new Vector(); + var i:Int = 0, n:Int = 0, ii:Int = 0, nn:Int = 0; + + var index:Int, slotIndex:Int, timelineType:Int, timelineScale:Float; + var frameCount:Int, + frameLast:Int, + frame:Int, + bezierCount:Int, + bezier:Int; + var time:Float, time2:Float; + + // Slot timelines. + var r:Float, g:Float, b:Float, a:Float; + var r2:Float, g2:Float, b2:Float, a2:Float; + var nr:Float, ng:Float, nb:Float, na:Float; + var nr2:Float, ng2:Float, nb2:Float, na2:Float; + for (i in 0...input.readInt(true)) { + slotIndex = input.readInt(true); + for (ii in 0...input.readInt(true)) { + timelineType = input.readByte(); + frameCount = input.readInt(true); + frameLast = frameCount - 1; + switch (timelineType) { + case SkeletonBinary.SLOT_ATTACHMENT: + var attachmentTimeline:AttachmentTimeline = new AttachmentTimeline(frameCount, slotIndex); + attachmentTimeline.slotIndex = slotIndex; + for (frame in 0...frameCount) { + attachmentTimeline.setFrame(frame, input.readFloat(), input.readStringRef()); + } + timelines.push(attachmentTimeline); + case SLOT_RGBA: + bezierCount = input.readInt(true); + var rgbaTimeline:RGBATimeline = new RGBATimeline(frameCount, bezierCount, slotIndex); + + time = input.readFloat(); + r = input.readUnsignedByte() / 255.0; + g = input.readUnsignedByte() / 255.0; + b = input.readUnsignedByte() / 255.0; + a = input.readUnsignedByte() / 255.0; + + frame = 0; + bezier = 0; + while (true) { + rgbaTimeline.setFrame(frame, time, r, g, b, a); + if (frame == frameLast) + break; + + time2 = input.readFloat(); + r2 = input.readUnsignedByte() / 255.0; + g2 = input.readUnsignedByte() / 255.0; + b2 = input.readUnsignedByte() / 255.0; + a2 = input.readUnsignedByte() / 255.0; + + switch (input.readByte()) { + case CURVE_STEPPED: + rgbaTimeline.setStepped(frame); + case CURVE_BEZIER: + setBezier(input, rgbaTimeline, bezier++, frame, 0, time, time2, r, r2, 1); + setBezier(input, rgbaTimeline, bezier++, frame, 1, time, time2, g, g2, 1); + setBezier(input, rgbaTimeline, bezier++, frame, 2, time, time2, b, b2, 1); + setBezier(input, rgbaTimeline, bezier++, frame, 3, time, time2, a, a2, 1); + } + time = time2; + r = r2; + g = g2; + b = b2; + a = a2; + + frame++; + } + timelines.push(rgbaTimeline); + case SLOT_RGB: + bezierCount = input.readInt(true); + var rgbTimeline:RGBTimeline = new RGBTimeline(frameCount, bezierCount, slotIndex); + + time = input.readFloat(); + r = input.readUnsignedByte() / 255.0; + g = input.readUnsignedByte() / 255.0; + b = input.readUnsignedByte() / 255.0; + + frame = 0; + bezier = 0; + while (true) { + rgbTimeline.setFrame(frame, time, r, g, b); + if (frame == frameLast) + break; + + time2 = input.readFloat(); + r2 = input.readUnsignedByte() / 255.0; + g2 = input.readUnsignedByte() / 255.0; + b2 = input.readUnsignedByte() / 255.0; + + switch (input.readByte()) { + case CURVE_STEPPED: + rgbTimeline.setStepped(frame); + case CURVE_BEZIER: + setBezier(input, rgbTimeline, bezier++, frame, 0, time, time2, r, r2, 1); + setBezier(input, rgbTimeline, bezier++, frame, 1, time, time2, g, g2, 1); + setBezier(input, rgbTimeline, bezier++, frame, 2, time, time2, b, b2, 1); + } + time = time2; + r = r2; + g = g2; + b = b2; + + frame++; + } + timelines.push(rgbTimeline); + case SLOT_RGBA2: + bezierCount = input.readInt(true); + var rgba2Timeline:RGBA2Timeline = new RGBA2Timeline(frameCount, bezierCount, slotIndex); + + time = input.readFloat(); + r = input.readUnsignedByte() / 255.0; + g = input.readUnsignedByte() / 255.0; + b = input.readUnsignedByte() / 255.0; + a = input.readUnsignedByte() / 255.0; + r2 = input.readUnsignedByte() / 255.0; + g2 = input.readUnsignedByte() / 255.0; + b2 = input.readUnsignedByte() / 255.0; + + frame = 0; + bezier = 0; + while (true) { + rgba2Timeline.setFrame(frame, time, r, g, b, a, r2, g2, b2); + if (frame == frameLast) + break; + + time2 = input.readFloat(); + nr = input.readUnsignedByte() / 255.0; + ng = input.readUnsignedByte() / 255.0; + nb = input.readUnsignedByte() / 255.0; + na = input.readUnsignedByte() / 255.0; + nr2 = input.readUnsignedByte() / 255.0; + ng2 = input.readUnsignedByte() / 255.0; + nb2 = input.readUnsignedByte() / 255.0; + + switch (input.readByte()) { + case CURVE_STEPPED: + rgba2Timeline.setStepped(frame); + case CURVE_BEZIER: + setBezier(input, rgba2Timeline, bezier++, frame, 0, time, time2, r, nr, 1); + setBezier(input, rgba2Timeline, bezier++, frame, 1, time, time2, g, ng, 1); + setBezier(input, rgba2Timeline, bezier++, frame, 2, time, time2, b, nb, 1); + setBezier(input, rgba2Timeline, bezier++, frame, 3, time, time2, a, na, 1); + setBezier(input, rgba2Timeline, bezier++, frame, 4, time, time2, r2, nr2, 1); + setBezier(input, rgba2Timeline, bezier++, frame, 5, time, time2, g2, ng2, 1); + setBezier(input, rgba2Timeline, bezier++, frame, 6, time, time2, b2, nb2, 1); + } + time = time2; + r = nr; + g = ng; + b = nb; + a = na; + r2 = nr2; + g2 = ng2; + b2 = nb2; + + frame++; + } + timelines.push(rgba2Timeline); + case SLOT_RGB2: + bezierCount = input.readInt(true); + var rgb2Timeline:RGB2Timeline = new RGB2Timeline(frameCount, bezierCount, slotIndex); + + time = input.readFloat(); + r = input.readUnsignedByte() / 255.0; + g = input.readUnsignedByte() / 255.0; + b = input.readUnsignedByte() / 255.0; + r2 = input.readUnsignedByte() / 255.0; + g2 = input.readUnsignedByte() / 255.0; + b2 = input.readUnsignedByte() / 255.0; + + frame = 0; + bezier = 0; + while (true) { + rgb2Timeline.setFrame(frame, time, r, g, b, r2, g2, b2); + if (frame == frameLast) + break; + + time2 = input.readFloat(); + nr = input.readUnsignedByte() / 255.0; + ng = input.readUnsignedByte() / 255.0; + nb = input.readUnsignedByte() / 255.0; + nr2 = input.readUnsignedByte() / 255.0; + ng2 = input.readUnsignedByte() / 255.0; + nb2 = input.readUnsignedByte() / 255.0; + + switch (input.readByte()) { + case CURVE_STEPPED: + rgb2Timeline.setStepped(frame); + case CURVE_BEZIER: + setBezier(input, rgb2Timeline, bezier++, frame, 0, time, time2, r, nr, 1); + setBezier(input, rgb2Timeline, bezier++, frame, 1, time, time2, g, ng, 1); + setBezier(input, rgb2Timeline, bezier++, frame, 2, time, time2, b, nb, 1); + setBezier(input, rgb2Timeline, bezier++, frame, 3, time, time2, r2, nr2, 1); + setBezier(input, rgb2Timeline, bezier++, frame, 4, time, time2, g2, ng2, 1); + setBezier(input, rgb2Timeline, bezier++, frame, 5, time, time2, b2, nb2, 1); + } + time = time2; + r = nr; + g = ng; + b = nb; + r2 = nr2; + g2 = ng2; + b2 = nb2; + + frame++; + } + timelines.push(rgb2Timeline); + case SLOT_ALPHA: + var alphaTimeline:AlphaTimeline = new AlphaTimeline(frameCount, input.readInt(true), slotIndex); + time = input.readFloat(); + a = input.readUnsignedByte() / 255; + + frame = 0; + bezier = 0; + while (true) { + alphaTimeline.setFrame(frame, time, a); + if (frame == frameLast) + break; + + time2 = input.readFloat(); + a2 = input.readUnsignedByte() / 255; + switch (input.readByte()) { + case CURVE_STEPPED: + alphaTimeline.setStepped(frame); + case CURVE_BEZIER: + setBezier(input, alphaTimeline, bezier++, frame, 0, time, time2, a, a2, 1); + } + time = time2; + a = a2; + + frame++; + } + timelines.push(alphaTimeline); + } + } + } + + // Bone timelines. + for (i in 0...input.readInt(true)) { + var boneIndex:Int = input.readInt(true); + for (ii in 0...input.readInt(true)) { + timelineType = input.readByte(); + frameCount = input.readInt(true); + bezierCount = input.readInt(true); + switch (timelineType) { + case BONE_ROTATE: + timelines.push(readTimeline(input, new RotateTimeline(frameCount, bezierCount, boneIndex), 1)); + case BONE_TRANSLATE: + timelines.push(readTimeline2(input, new TranslateTimeline(frameCount, bezierCount, boneIndex), scale)); + case BONE_TRANSLATEX: + timelines.push(readTimeline(input, new TranslateXTimeline(frameCount, bezierCount, boneIndex), scale)); + case BONE_TRANSLATEY: + timelines.push(readTimeline(input, new TranslateYTimeline(frameCount, bezierCount, boneIndex), scale)); + case BONE_SCALE: + timelines.push(readTimeline2(input, new ScaleTimeline(frameCount, bezierCount, boneIndex), 1)); + case BONE_SCALEX: + timelines.push(readTimeline(input, new ScaleXTimeline(frameCount, bezierCount, boneIndex), 1)); + case BONE_SCALEY: + timelines.push(readTimeline(input, new ScaleYTimeline(frameCount, bezierCount, boneIndex), 1)); + case BONE_SHEAR: + timelines.push(readTimeline2(input, new ShearTimeline(frameCount, bezierCount, boneIndex), 1)); + case BONE_SHEARX: + timelines.push(readTimeline(input, new ShearXTimeline(frameCount, bezierCount, boneIndex), 1)); + case BONE_SHEARY: + timelines.push(readTimeline(input, new ShearYTimeline(frameCount, bezierCount, boneIndex), 1)); + } + } + } + + // IK constraint timelines. + for (i in 0...input.readInt(true)) { + index = input.readInt(true); + frameCount = input.readInt(true); + frameLast = frameCount - 1; + var ikTimeline:IkConstraintTimeline = new IkConstraintTimeline(frameCount, input.readInt(true), index); + time = input.readFloat(); + var mix:Float = input.readFloat(), + softness:Float = input.readFloat() * scale; + + frame = 0; + bezier = 0; + while (true) { + ikTimeline.setFrame(frame, time, mix, softness, input.readByte(), input.readBoolean(), input.readBoolean()); + if (frame == frameLast) + break; + + time2 = input.readFloat(); + var mix2:Float = input.readFloat(), + softness2:Float = input.readFloat() * scale; + switch (input.readByte()) { + case CURVE_STEPPED: + ikTimeline.setStepped(frame); + case CURVE_BEZIER: + setBezier(input, ikTimeline, bezier++, frame, 0, time, time2, mix, mix2, 1); + setBezier(input, ikTimeline, bezier++, frame, 1, time, time2, softness, softness2, scale); + } + time = time2; + mix = mix2; + softness = softness2; + + frame++; + } + timelines.push(ikTimeline); + } + + // Transform constraint timelines. + var mixRotate:Float, mixRotate2:Float; + var mixX:Float, mixX2:Float; + var mixY:Float, mixY2:Float; + for (i in 0...input.readInt(true)) { + index = input.readInt(true); + frameCount = input.readInt(true); + + frameLast = frameCount - 1; + var transformTimeline:TransformConstraintTimeline = new TransformConstraintTimeline(frameCount, input.readInt(true), index); + time = input.readFloat(); + mixRotate = input.readFloat(); + mixX = input.readFloat(); + mixY = input.readFloat(); + var mixScaleX:Float = input.readFloat(), + mixScaleY:Float = input.readFloat(), + mixShearY:Float = input.readFloat(); + frame = 0; + bezier = 0; + while (true) { + transformTimeline.setFrame(frame, time, mixRotate, mixX, mixY, mixScaleX, mixScaleY, mixShearY); + if (frame == frameLast) + break; + + time2 = input.readFloat(); + mixRotate2 = input.readFloat(); + mixX2 = input.readFloat(); + mixY2 = input.readFloat(); + var mixScaleX2:Float = input.readFloat(), + mixScaleY2:Float = input.readFloat(), + mixShearY2:Float = input.readFloat(); + switch (input.readByte()) { + case CURVE_STEPPED: + transformTimeline.setStepped(frame); + case CURVE_BEZIER: + setBezier(input, transformTimeline, bezier++, frame, 0, time, time2, mixRotate, mixRotate2, 1); + setBezier(input, transformTimeline, bezier++, frame, 1, time, time2, mixX, mixX2, 1); + setBezier(input, transformTimeline, bezier++, frame, 2, time, time2, mixY, mixY2, 1); + setBezier(input, transformTimeline, bezier++, frame, 3, time, time2, mixScaleX, mixScaleX2, 1); + setBezier(input, transformTimeline, bezier++, frame, 4, time, time2, mixScaleY, mixScaleY2, 1); + setBezier(input, transformTimeline, bezier++, frame, 5, time, time2, mixShearY, mixShearY2, 1); + } + time = time2; + mixRotate = mixRotate2; + mixX = mixX2; + mixY = mixY2; + mixScaleX = mixScaleX2; + mixScaleY = mixScaleY2; + mixShearY = mixShearY2; + + frame++; + } + + timelines.push(transformTimeline); + } + + // Path constraint timelines. + for (i in 0...input.readInt(true)) { + index = input.readInt(true); + var data:PathConstraintData = skeletonData.pathConstraints[index]; + for (ii in 0...input.readInt(true)) { + switch (input.readByte()) { + case PATH_POSITION: + timelines.push(readTimeline(input, new PathConstraintPositionTimeline(input.readInt(true), input.readInt(true), index), + data.positionMode == PositionMode.fixed ? scale : 1)); + case PATH_SPACING: + timelines.push(readTimeline(input, new PathConstraintSpacingTimeline(input.readInt(true), input.readInt(true), index), + data.spacingMode == SpacingMode.length + || data.spacingMode == SpacingMode.fixed ? scale : 1)); + case PATH_MIX: + var mixTimeline:PathConstraintMixTimeline = new PathConstraintMixTimeline(input.readInt(true), input.readInt(true), index); + time = input.readFloat(); + mixRotate = input.readFloat(); + mixX = input.readFloat(); + mixY = input.readFloat(); + + frame = 0; + bezier = 0; + frameLast = mixTimeline.getFrameCount() - 1; + while (true) { + mixTimeline.setFrame(frame, time, mixRotate, mixX, mixY); + if (frame == frameLast) + break; + time2 = input.readFloat(); + mixRotate2 = input.readFloat(); + mixX2 = input.readFloat(); + mixY2 = input.readFloat(); + switch (input.readByte()) { + case CURVE_STEPPED: + mixTimeline.setStepped(frame); + case CURVE_BEZIER: + setBezier(input, mixTimeline, bezier++, frame, 0, time, time2, mixRotate, mixRotate2, 1); + setBezier(input, mixTimeline, bezier++, frame, 1, time, time2, mixX, mixX2, 1); + setBezier(input, mixTimeline, bezier++, frame, 2, time, time2, mixY, mixY2, 1); + } + time = time2; + mixRotate = mixRotate2; + mixX = mixX2; + mixY = mixY2; + + frame++; + } + timelines.push(mixTimeline); + } + } + } + + // Deform timelines. + for (i in 0...input.readInt(true)) { + var skin:Skin = skeletonData.skins[input.readInt(true)]; + for (ii in 0...input.readInt(true)) { + slotIndex = input.readInt(true); + for (iii in 0...input.readInt(true)) { + var attachmentName:String = input.readStringRef(); + var attachment:VertexAttachment = cast(skin.getAttachment(slotIndex, attachmentName), VertexAttachment); + if (attachment == null) + throw new Error("Vertex attachment not found: " + attachmentName); + var weighted:Bool = attachment.bones != null; + var vertices:Vector = attachment.vertices; + var deformLength:Int = weighted ? Std.int(vertices.length / 3 * 2) : vertices.length; + + frameCount = input.readInt(true); + frameLast = frameCount - 1; + bezierCount = input.readInt(true); + var deformTimeline:DeformTimeline = new DeformTimeline(frameCount, bezierCount, slotIndex, attachment); + + time = input.readFloat(); + frame = 0; + bezier = 0; + while (true) { + var deform:Vector; + var end:Int = input.readInt(true); + if (end == 0) { + if (weighted) { + deform = new Vector(deformLength, true); + } else { + deform = vertices; + } + } else { + var v:Int, vn:Int; + deform = new Vector(deformLength, true); + var start:Int = input.readInt(true); + end += start; + if (scale == 1) { + for (v in start...end) { + deform[v] = input.readFloat(); + } + } else { + for (v in start...end) { + deform[v] = input.readFloat() * scale; + } + } + if (!weighted) { + for (v in 0...deform.length) { + deform[v] += vertices[v]; + } + } + } + + deformTimeline.setFrame(frame, time, deform); + if (frame == frameLast) + break; + time2 = input.readFloat(); + switch (input.readByte()) { + case CURVE_STEPPED: + deformTimeline.setStepped(frame); + case CURVE_BEZIER: + SkeletonBinary.setBezier(input, deformTimeline, bezier++, frame, 0, time, time2, 0, 1, 1); + } + time = time2; + + frame++; + } + timelines.push(deformTimeline); + } + } + } + + // Draw order timelines. + var drawOrderCount:Int = input.readInt(true); + if (drawOrderCount > 0) { + var drawOrderTimeline:DrawOrderTimeline = new DrawOrderTimeline(drawOrderCount); + var slotCount:Int = skeletonData.slots.length; + for (i in 0...drawOrderCount) { + time = input.readFloat(); + var offsetCount:Int = input.readInt(true); + var drawOrder:Vector = new Vector(slotCount, true); + var ii:Int = slotCount - 1; + while (ii >= 0) { + drawOrder[ii--] = -1; + } + var unchanged:Vector = new Vector(slotCount - offsetCount, true); + var originalIndex:Int = 0, unchangedIndex:Int = 0; + for (ii in 0...offsetCount) { + slotIndex = input.readInt(true); + // Collect unchanged items. + while (originalIndex != slotIndex) { + unchanged[unchangedIndex++] = originalIndex++; + } + // Set changed items. + drawOrder[originalIndex + input.readInt(true)] = originalIndex++; + } + // Collect remaining unchanged items. + while (originalIndex < slotCount) { + unchanged[unchangedIndex++] = originalIndex++; + } + // Fill in unchanged items. + ii = slotCount - 1; + while (ii >= 0) { + if (drawOrder[ii] == -1) + drawOrder[ii] = unchanged[--unchangedIndex]; + ii--; + } + drawOrderTimeline.setFrame(i, time, drawOrder); + } + timelines.push(drawOrderTimeline); + } + + // Event timelines. + var eventCount:Int = input.readInt(true); + if (eventCount > 0) { + var eventTimeline:EventTimeline = new EventTimeline(eventCount); + for (i in 0...eventCount) { + time = input.readFloat(); + var eventData:EventData = skeletonData.events[input.readInt(true)]; + var event:Event = new Event(time, eventData); + event.intValue = input.readInt(false); + event.floatValue = input.readFloat(); + event.stringValue = input.readBoolean() ? input.readString() : eventData.stringValue; + if (event.data.audioPath != null) { + event.volume = input.readFloat(); + event.balance = input.readFloat(); + } + eventTimeline.setFrame(i, event); + } + timelines.push(eventTimeline); + } + + var duration:Float = 0; + for (i in 0...timelines.length) { + duration = Math.max(duration, timelines[i].getDuration()); + } + return new Animation(name, timelines, duration); + } + + static private function readTimeline(input:BinaryInput, timeline:CurveTimeline1, scale:Float):CurveTimeline1 { + var time:Float = input.readFloat(), + value:Float = input.readFloat() * scale; + + var frame:Int = 0, + bezier:Int = 0, + frameLast:Int = timeline.getFrameCount() - 1; + while (true) { + timeline.setFrame(frame, time, value); + if (frame == frameLast) + break; + + var time2:Float = input.readFloat(), + value2:Float = input.readFloat() * scale; + switch (input.readByte()) { + case CURVE_STEPPED: + timeline.setStepped(frame); + case CURVE_BEZIER: + setBezier(input, timeline, bezier++, frame, 0, time, time2, value, value2, scale); + } + time = time2; + value = value2; + + frame++; + } + return timeline; + } + + static private function readTimeline2(input:BinaryInput, timeline:CurveTimeline2, scale:Float):CurveTimeline2 { + var time:Float = input.readFloat(), + value1:Float = input.readFloat() * scale, + value2:Float = input.readFloat() * scale; + + var frame:Int = 0, + bezier:Int = 0, + frameLast:Int = timeline.getFrameCount() - 1; + while (true) { + timeline.setFrame(frame, time, value1, value2); + if (frame == frameLast) + break; + + var time2:Float = input.readFloat(), + nvalue1:Float = input.readFloat() * scale, + nvalue2:Float = input.readFloat() * scale; + switch (input.readByte()) { + case CURVE_STEPPED: + timeline.setStepped(frame); + case CURVE_BEZIER: + setBezier(input, timeline, bezier++, frame, 0, time, time2, value1, nvalue1, scale); + setBezier(input, timeline, bezier++, frame, 1, time, time2, value2, nvalue2, scale); + } + time = time2; + value1 = nvalue1; + value2 = nvalue2; + + frame++; + } + return timeline; + } + + static private function setBezier(input:BinaryInput, timeline:CurveTimeline, bezier:Int, frame:Int, value:Float, time1:Float, time2:Float, value1:Float, + value2:Float, scale:Float):Void { + timeline.setBezier(bezier, frame, value, time1, value1, input.readFloat(), input.readFloat() * scale, input.readFloat(), input.readFloat() * scale, + time2, value2); + } +} + +class Vertices { + public var vertices:Vector = new Vector(); + public var bones:Vector = new Vector(); + + public function new() {} +} + +class LinkedMeshBinary { + public var parent(default, null):String; + public var skin(default, null):String; + public var slotIndex(default, null):Int; + public var mesh(default, null):MeshAttachment; + public var inheritDeform(default, null):Bool; + + public function new(mesh:MeshAttachment, skin:String, slotIndex:Int, parent:String, inheritDeform:Bool) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + this.inheritDeform = inheritDeform; + } +} diff --git a/spine-haxe/spine-haxe/spine/SkeletonClipping.hx b/spine-haxe/spine-haxe/spine/SkeletonClipping.hx new file mode 100644 index 0000000000..d485ed64e6 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/SkeletonClipping.hx @@ -0,0 +1,319 @@ +package spine; + +import openfl.Vector; +import spine.attachments.ClippingAttachment; + +class SkeletonClipping { + private var triangulator:Triangulator = new Triangulator(); + private var clippingPolygon:Vector = new Vector(); + private var clipOutput:Vector = new Vector(); + + public var clippedVertices:Vector = new Vector(); + public var clippedUvs:Vector = new Vector(); + public var clippedTriangles:Vector = new Vector(); + + private var scratch:Vector = new Vector(); + + private var clipAttachment:ClippingAttachment; + private var clippingPolygons:Vector>; + + public function new() {} + + public function clipStart(slot:Slot, clip:ClippingAttachment):Int { + if (clipAttachment != null) + return 0; + clipAttachment = clip; + clippingPolygon.length = clip.worldVerticesLength; + clip.computeWorldVertices(slot, 0, clippingPolygon.length, clippingPolygon, 0, 2); + SkeletonClipping.makeClockwise(clippingPolygon); + clippingPolygons = triangulator.decompose(clippingPolygon, triangulator.triangulate(clippingPolygon)); + for (polygon in clippingPolygons) { + SkeletonClipping.makeClockwise(polygon); + polygon.push(polygon[0]); + polygon.push(polygon[1]); + } + return clippingPolygons.length; + } + + public function clipEndWithSlot(slot:Slot):Void { + if (clipAttachment != null && clipAttachment.endSlot == slot.data) + clipEnd(); + } + + public function clipEnd():Void { + if (clipAttachment == null) + return; + clipAttachment = null; + clippingPolygons = null; + clippedVertices.length = 0; + clippedUvs.length = 0; + clippedTriangles.length = 0; + clippingPolygon.length = 0; + clipOutput.length = 0; + } + + public function isClipping():Bool { + return clipAttachment != null; + } + + public function clipTriangles(vertices:Vector, triangles:Vector, trianglesLength:Float, uvs:Vector):Void { + var polygonsCount:Int = clippingPolygons.length; + var index:Int = 0; + clippedVertices.length = 0; + clippedUvs.length = 0; + clippedTriangles.length = 0; + var i:Int = 0; + while (i < trianglesLength) { + var vertexOffset:Int = triangles[i] << 1; + var x1:Float = vertices[vertexOffset], + y1:Float = vertices[vertexOffset + 1]; + var u1:Float = uvs[vertexOffset], v1:Float = uvs[vertexOffset + 1]; + + vertexOffset = triangles[i + 1] << 1; + var x2:Float = vertices[vertexOffset], + y2:Float = vertices[vertexOffset + 1]; + var u2:Float = uvs[vertexOffset], v2:Float = uvs[vertexOffset + 1]; + + vertexOffset = triangles[i + 2] << 1; + var x3:Float = vertices[vertexOffset], + y3:Float = vertices[vertexOffset + 1]; + var u3:Float = uvs[vertexOffset], v3:Float = uvs[vertexOffset + 1]; + + for (p in 0...polygonsCount) { + var s:Int = clippedVertices.length; + var clippedVerticesItems:Vector; + var clippedUvsItems:Vector; + var clippedTrianglesItems:Vector; + if (this.clip(x1, y1, x2, y2, x3, y3, clippingPolygons[p], clipOutput)) { + var clipOutputLength:Int = clipOutput.length; + if (clipOutputLength == 0) + continue; + var d0:Float = y2 - y3, + d1:Float = x3 - x2, + d2:Float = x1 - x3, + d4:Float = y3 - y1; + var d:Float = 1 / (d0 * d2 + d1 * (y1 - y3)); + + var clipOutputCount:Int = clipOutputLength >> 1; + var clipOutputItems:Vector = clipOutput; + clippedVerticesItems = clippedVertices; + clippedVerticesItems.length = s + clipOutputLength; + clippedUvsItems = clippedUvs; + clippedUvsItems.length = s + clipOutputLength; + + var ii:Int = 0; + while (ii < clipOutputLength) { + var x:Float = clipOutputItems[ii], + y:Float = clipOutputItems[ii + 1]; + clippedVerticesItems[s] = x; + clippedVerticesItems[s + 1] = y; + var c0:Float = x - x3, c1:Float = y - y3; + var a:Float = (d0 * c0 + d1 * c1) * d; + var b:Float = (d4 * c0 + d2 * c1) * d; + var c:Float = 1 - a - b; + clippedUvsItems[s] = u1 * a + u2 * b + u3 * c; + clippedUvsItems[s + 1] = v1 * a + v2 * b + v3 * c; + s += 2; + + ii += 2; + } + + s = clippedTriangles.length; + clippedTrianglesItems = clippedTriangles; + clippedTrianglesItems.length = s + 3 * (clipOutputCount - 2); + clipOutputCount--; + for (ii in 1...clipOutputCount) { + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + ii); + clippedTrianglesItems[s + 2] = (index + ii + 1); + s += 3; + } + index += clipOutputCount + 1; + } else { + clippedVerticesItems = clippedVertices; + clippedVerticesItems.length = s + 3 * 2; + clippedVerticesItems[s] = x1; + clippedVerticesItems[s + 1] = y1; + clippedVerticesItems[s + 2] = x2; + clippedVerticesItems[s + 3] = y2; + clippedVerticesItems[s + 4] = x3; + clippedVerticesItems[s + 5] = y3; + + clippedUvsItems = clippedUvs; + clippedUvsItems.length = s + 3 * 2; + clippedUvsItems[s] = u1; + clippedUvsItems[s + 1] = v1; + clippedUvsItems[s + 2] = u2; + clippedUvsItems[s + 3] = v2; + clippedUvsItems[s + 4] = u3; + clippedUvsItems[s + 5] = v3; + + s = clippedTriangles.length; + clippedTrianglesItems = clippedTriangles; + clippedTrianglesItems.length = s + 3; + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + 1); + clippedTrianglesItems[s + 2] = (index + 2); + index += 3; + break; + } + } + + i += 3; + } + } + + /** Clips the input triangle against the convex, clockwise clipping area. If the triangle lies entirely within the clipping + * area, false is returned. The clipping area must duplicate the first vertex at the end of the vertices list. */ + public function clip(x1:Float, y1:Float, x2:Float, y2:Float, x3:Float, y3:Float, clippingArea:Vector, output:Vector):Bool { + var originalOutput:Vector = output; + var clipped:Bool = false; + + // Avoid copy at the end. + var input:Vector = null; + if (clippingArea.length % 4 >= 2) { + input = output; + output = scratch; + } else { + input = scratch; + } + + input.length = 0; + input.push(x1); + input.push(y1); + input.push(x2); + input.push(y2); + input.push(x3); + input.push(y3); + input.push(x1); + input.push(y1); + output.length = 0; + + var clippingVertices:Vector = clippingArea; + var clippingVerticesLast:Int = clippingArea.length - 4; + var c0:Float, c2:Float, s:Float, ua:Float; + var i:Int = 0; + var n:Int = 0; + while (true) { + var edgeX:Float = clippingVertices[i], + edgeY:Float = clippingVertices[i + 1]; + var edgeX2:Float = clippingVertices[i + 2], + edgeY2:Float = clippingVertices[i + 3]; + var deltaX:Float = edgeX - edgeX2, deltaY:Float = edgeY - edgeY2; + + var inputVertices:Vector = input; + var inputVerticesLength:Int = input.length - 2, + outputStart:Int = output.length; + var ii:Int = 0; + while (ii < inputVerticesLength) { + var inputX:Float = inputVertices[ii], + inputY:Float = inputVertices[ii + 1]; + var inputX2:Float = inputVertices[ii + 2], + inputY2:Float = inputVertices[ii + 3]; + var side2:Bool = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; + if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { + if (side2) { + // v1 inside, v2 inside + output.push(inputX2); + output.push(inputY2); + ii += 2; + continue; + } + // v1 inside, v2 outside + c0 = inputY2 - inputY; + c2 = inputX2 - inputX; + s = c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY); + if (Math.abs(s) > 0.000001) { + ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / s; + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } else { + output.push(edgeX); + output.push(edgeY); + } + } else if (side2) { + // v1 outside, v2 inside + c0 = inputY2 - inputY; + c2 = inputX2 - inputX; + s = c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY); + if (Math.abs(s) > 0.000001) { + ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / s; + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } else { + output.push(edgeX); + output.push(edgeY); + } + output.push(inputX2); + output.push(inputY2); + } + clipped = true; + + ii += 2; + } + + if (outputStart == output.length) { + // All edges outside. + originalOutput.length = 0; + return true; + } + + output.push(output[0]); + output.push(output[1]); + + if (i == clippingVerticesLast) + break; + var temp:Vector = output; + output = input; + output.length = 0; + input = temp; + + i += 2; + } + + if (originalOutput != output) { + originalOutput.length = 0; + n = output.length - 2; + for (i in 0...n) { + originalOutput[i] = output[i]; + } + } else { + originalOutput.length = originalOutput.length - 2; + } + + return clipped; + } + + public static function makeClockwise(polygon:Vector):Void { + var vertices:Vector = polygon; + var verticeslength:Int = polygon.length; + + var area:Float = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1]; + var p1x:Float = 0, p1y:Float = 0, p2x:Float = 0, p2y:Float = 0; + var i:Int = 0; + var n:Int = verticeslength - 3; + while (i < n) { + p1x = vertices[i]; + p1y = vertices[i + 1]; + p2x = vertices[i + 2]; + p2y = vertices[i + 3]; + area += p1x * p2y - p2x * p1y; + i += 2; + } + if (area < 0) + return; + + i = 0; + n = verticeslength >> 1; + var lastX:Int = verticeslength - 2; + while (i < n) { + var x:Float = vertices[i], y:Float = vertices[i + 1]; + var other:Int = lastX - i; + vertices[i] = vertices[other]; + vertices[i + 1] = vertices[other + 1]; + vertices[other] = x; + vertices[other + 1] = y; + i += 2; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/SkeletonData.hx b/spine-haxe/spine-haxe/spine/SkeletonData.hx new file mode 100644 index 0000000000..d6361d77ab --- /dev/null +++ b/spine-haxe/spine-haxe/spine/SkeletonData.hx @@ -0,0 +1,175 @@ +package spine; + +import openfl.errors.ArgumentError; +import openfl.Vector; +import spine.animation.Animation; + +class SkeletonData { + /** May be null. */ + public var name:String; + + public var bones:Vector = new Vector(); // Ordered parents first. + public var slots:Vector = new Vector(); // Setup pose draw order. + public var skins:Vector = new Vector(); + public var defaultSkin:Skin; + public var events:Vector = new Vector(); + public var animations:Vector = new Vector(); + public var ikConstraints:Vector = new Vector(); + public var transformConstraints:Vector = new Vector(); + public var pathConstraints:Vector = new Vector(); + public var x:Float = 0; + public var y:Float = 0; + public var width:Float = 0; + public var height:Float = 0; + public var version:String; + public var hash:String; + public var fps:Float = 0; + public var imagesPath:String; + public var audioPath:String; + + public function new() {} + + // --- Bones. + + /** @return May be null. */ + public function findBone(boneName:String):BoneData { + if (boneName == null) + throw new ArgumentError("boneName cannot be null."); + for (i in 0...bones.length) { + var bone:BoneData = bones[i]; + if (bone.name == boneName) + return bone; + } + return null; + } + + /** @return -1 if the bone was not found. */ + public function findBoneIndex(boneName:String):Int { + if (boneName == null) + throw new ArgumentError("boneName cannot be null."); + for (i in 0...bones.length) { + if (bones[i].name == boneName) + return i; + } + return -1; + } + + // --- Slots. + + /** @return May be null. */ + public function findSlot(slotName:String):SlotData { + if (slotName == null) + throw new ArgumentError("slotName cannot be null."); + for (i in 0...slots.length) { + var slot:SlotData = slots[i]; + if (slot.name == slotName) + return slot; + } + return null; + } + + // --- Skins. + + /** @return May be null. */ + public function findSkin(skinName:String):Skin { + if (skinName == null) + throw new ArgumentError("skinName cannot be null."); + for (skin in skins) { + if (skin.name == skinName) + return skin; + } + return null; + } + + // --- Events. + + /** @return May be null. */ + public function findEvent(eventName:String):EventData { + if (eventName == null) + throw new ArgumentError("eventName cannot be null."); + for (eventData in events) { + if (eventData.name == eventName) + return eventData; + } + return null; + } + + // --- Animations. + + /** @return May be null. */ + public function findAnimation(animationName:String):Animation { + if (animationName == null) + throw new ArgumentError("animationName cannot be null."); + for (animation in animations) { + if (animation.name == animationName) + return animation; + } + return null; + } + + // --- IK constraints. + + /** @return May be null. */ + public function findIkConstraint(constraintName:String):IkConstraintData { + if (constraintName == null) + throw new ArgumentError("constraintName cannot be null."); + for (ikConstraintData in ikConstraints) { + if (ikConstraintData.name == constraintName) + return ikConstraintData; + } + return null; + } + + // --- Transform constraints. + + /** @return May be null. */ + public function findTransformConstraint(constraintName:String):TransformConstraintData { + if (constraintName == null) + throw new ArgumentError("constraintName cannot be null."); + for (transformConstraintData in transformConstraints) { + if (transformConstraintData.name == constraintName) + return transformConstraintData; + } + return null; + } + + /** @return -1 if the transform constraint was not found. */ + public function findTransformConstraintIndex(transformConstraintName:String):Int { + if (transformConstraintName == null) + throw new ArgumentError("transformConstraintName cannot be null."); + for (i in 0...transformConstraints.length) { + if (transformConstraints[i].name == transformConstraintName) + return i; + } + return -1; + } + + // --- Path constraints. + + /** @return May be null. */ + public function findPathConstraint(constraintName:String):PathConstraintData { + if (constraintName == null) + throw new ArgumentError("constraintName cannot be null."); + for (i in 0...pathConstraints.length) { + var constraint:PathConstraintData = pathConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + } + + /** @return -1 if the path constraint was not found. */ + public function findPathConstraintIndex(pathConstraintName:String):Int { + if (pathConstraintName == null) + throw new ArgumentError("pathConstraintName cannot be null."); + for (i in 0...pathConstraints.length) { + if (pathConstraints[i].name == pathConstraintName) + return i; + } + return -1; + } + + public function toString():String { + return name; + } +} diff --git a/spine-haxe/spine-haxe/spine/SkeletonJson.hx b/spine-haxe/spine-haxe/spine/SkeletonJson.hx new file mode 100644 index 0000000000..3344a95c9a --- /dev/null +++ b/spine-haxe/spine-haxe/spine/SkeletonJson.hx @@ -0,0 +1,1182 @@ +package spine; + +import haxe.Json; +import openfl.errors.ArgumentError; +import openfl.errors.Error; +import openfl.utils.ByteArray; +import openfl.utils.Object; +import openfl.Vector; +import Reflect; +import spine.animation.AlphaTimeline; +import spine.animation.Animation; +import spine.animation.AttachmentTimeline; +import spine.animation.CurveTimeline1; +import spine.animation.CurveTimeline2; +import spine.animation.CurveTimeline; +import spine.animation.DeformTimeline; +import spine.animation.DrawOrderTimeline; +import spine.animation.EventTimeline; +import spine.animation.IkConstraintTimeline; +import spine.animation.PathConstraintMixTimeline; +import spine.animation.PathConstraintPositionTimeline; +import spine.animation.PathConstraintSpacingTimeline; +import spine.animation.RGB2Timeline; +import spine.animation.RGBA2Timeline; +import spine.animation.RGBATimeline; +import spine.animation.RGBTimeline; +import spine.animation.RotateTimeline; +import spine.animation.ScaleTimeline; +import spine.animation.ScaleXTimeline; +import spine.animation.ScaleYTimeline; +import spine.animation.ShearTimeline; +import spine.animation.ShearXTimeline; +import spine.animation.ShearYTimeline; +import spine.animation.Timeline; +import spine.animation.TransformConstraintTimeline; +import spine.animation.TranslateTimeline; +import spine.animation.TranslateXTimeline; +import spine.animation.TranslateYTimeline; +import spine.attachments.Attachment; +import spine.attachments.AttachmentLoader; +import spine.attachments.AttachmentType; +import spine.attachments.BoundingBoxAttachment; +import spine.attachments.ClippingAttachment; +import spine.attachments.MeshAttachment; +import spine.attachments.PathAttachment; +import spine.attachments.PointAttachment; +import spine.attachments.RegionAttachment; +import spine.attachments.VertexAttachment; + +class SkeletonJson { + public var attachmentLoader:AttachmentLoader; + public var scale:Float = 1; + + private var linkedMeshes:Vector = new Vector(); + + public function new(attachmentLoader:AttachmentLoader = null) { + this.attachmentLoader = attachmentLoader; + } + + /** @param object A String or ByteArray. */ + public function readSkeletonData(object:Object, name:String = null):SkeletonData { + if (object == null) + throw new ArgumentError("object cannot be null."); + + var root:Object; + if (Std.isOfType(object, String)) { + root = Json.parse(cast(object, String)); + } else if (Std.isOfType(object, ByteArrayData)) { + root = Json.parse(cast(object, ByteArray).readUTFBytes(cast(object, ByteArray).length)); + } else if (Std.isOfType(object, Dynamic)) { + root = object; + } else { + throw new ArgumentError("object must be a String, ByteArray or Object."); + } + + var skeletonData:SkeletonData = new SkeletonData(); + skeletonData.name = name; + + // Skeleton. + var skeletonMap:Object = Reflect.getProperty(root, "skeleton"); + if (skeletonMap != null) { + skeletonData.hash = Reflect.getProperty(skeletonMap, "hash"); + skeletonData.version = Reflect.getProperty(skeletonMap, "spine"); + skeletonData.x = getFloat(Reflect.getProperty(skeletonMap, "x")); + skeletonData.y = getFloat(Reflect.getProperty(skeletonMap, "y")); + skeletonData.width = getFloat(Reflect.getProperty(skeletonMap, "width")); + skeletonData.height = getFloat(Reflect.getProperty(skeletonMap, "height")); + skeletonData.fps = getFloat(Reflect.getProperty(skeletonMap, "fps")); + skeletonData.imagesPath = Reflect.getProperty(skeletonMap, "images"); + } + + // Bones. + var boneData:BoneData; + for (boneMap in cast(Reflect.getProperty(root, "bones"), Array)) { + var parent:BoneData = null; + var parentName:String = Reflect.getProperty(boneMap, "parent"); + if (parentName != null) { + parent = skeletonData.findBone(parentName); + if (parent == null) + throw new Error("Parent bone not found: " + parentName); + } + boneData = new BoneData(skeletonData.bones.length, Reflect.getProperty(boneMap, "name"), parent); + boneData.length = getFloat(Reflect.getProperty(boneMap, "length")) * scale; + boneData.x = getFloat(Reflect.getProperty(boneMap, "x")) * scale; + boneData.y = getFloat(Reflect.getProperty(boneMap, "y")) * scale; + boneData.rotation = getFloat(Reflect.getProperty(boneMap, "rotation")); + boneData.scaleX = getFloat(Reflect.getProperty(boneMap, "scaleX"), 1); + boneData.scaleY = getFloat(Reflect.getProperty(boneMap, "scaleY"), 1); + boneData.shearX = getFloat(Reflect.getProperty(boneMap, "shearX")); + boneData.shearY = getFloat(Reflect.getProperty(boneMap, "shearY")); + boneData.transformMode = Reflect.hasField(boneMap, + "transform") ? TransformMode.fromName(Reflect.getProperty(boneMap, "transform")) : TransformMode.normal; + boneData.skinRequired = Reflect.hasField(boneMap, "skin") ? cast(Reflect.getProperty(boneMap, "skin"), Bool) : false; + + var color:String = Reflect.getProperty(boneMap, "color"); + if (color != null) { + boneData.color.setFromString(color); + } + + skeletonData.bones.push(boneData); + } + + // Slots. + for (slotMap in cast(Reflect.getProperty(root, "slots"), Array)) { + var slotName:String = Reflect.getProperty(slotMap, "name"); + var boneName:String = Reflect.getProperty(slotMap, "bone"); + boneData = skeletonData.findBone(boneName); + if (boneData == null) + throw new Error("Slot bone not found: " + boneName); + var slotData:SlotData = new SlotData(skeletonData.slots.length, slotName, boneData); + + var color:String = Reflect.getProperty(slotMap, "color"); + if (color != null) { + slotData.color.setFromString(color); + } + + var dark:String = Reflect.getProperty(slotMap, "dark"); + if (dark != null) { + slotData.darkColor = new Color(0, 0, 0); + slotData.darkColor.setFromString(dark); + } + + slotData.attachmentName = Reflect.getProperty(slotMap, "attachment"); + slotData.blendMode = Reflect.hasField(slotMap, "blend") ? BlendMode.fromName(Reflect.getProperty(slotMap, "blend")) : BlendMode.normal; + skeletonData.slots.push(slotData); + } + + // IK constraints. + if (Reflect.hasField(root, "ik")) { + for (constraintMap in cast(Reflect.getProperty(root, "ik"), Array)) { + var ikData:IkConstraintData = new IkConstraintData(Reflect.getProperty(constraintMap, "name")); + ikData.order = getInt(Reflect.getProperty(constraintMap, "order")); + ikData.skinRequired = Reflect.hasField(constraintMap, "skin") ? cast(Reflect.getProperty(constraintMap, "skin"), Bool) : false; + + for (boneName in cast(Reflect.getProperty(constraintMap, "bones"), Array)) { + var bone:BoneData = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("IK constraint bone not found: " + boneName); + ikData.bones.push(bone); + } + + ikData.target = skeletonData.findBone(Reflect.getProperty(constraintMap, "target")); + if (ikData.target == null) + throw new Error("Target bone not found: " + Reflect.getProperty(constraintMap, "target")); + + ikData.bendDirection = (!Reflect.hasField(constraintMap, "bendPositive") + || cast(Reflect.getProperty(constraintMap, "bendPositive"), Bool)) ? 1 : -1; + ikData.compress = (Reflect.hasField(constraintMap, "compress") + && cast(Reflect.getProperty(constraintMap, "compress"), Bool)); + ikData.stretch = (Reflect.hasField(constraintMap, "stretch") && cast(Reflect.getProperty(constraintMap, "stretch"), Bool)); + ikData.uniform = (Reflect.hasField(constraintMap, "uniform") && cast(Reflect.getProperty(constraintMap, "uniform"), Bool)); + ikData.softness = getFloat(Reflect.getProperty(constraintMap, "softness")) * scale; + ikData.mix = getFloat(Reflect.getProperty(constraintMap, "mix"), 1); + + skeletonData.ikConstraints.push(ikData); + } + } + + // Transform constraints. + if (Reflect.hasField(root, "transform")) { + for (constraintMap in cast(Reflect.getProperty(root, "transform"), Array)) { + var transformData:TransformConstraintData = new TransformConstraintData(Reflect.getProperty(constraintMap, "name")); + transformData.order = getInt(Reflect.getProperty(constraintMap, "order")); + transformData.skinRequired = Reflect.hasField(constraintMap, "skin") ? cast(Reflect.getProperty(constraintMap, "skin"), Bool) : false; + + for (boneName in cast(Reflect.getProperty(constraintMap, "bones"), Array)) { + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + transformData.bones.push(bone); + } + + transformData.target = skeletonData.findBone(Reflect.getProperty(constraintMap, "target")); + if (transformData.target == null) + throw new Error("Target bone not found: " + Reflect.getProperty(constraintMap, "target")); + + transformData.local = Reflect.hasField(constraintMap, "local") ? cast(Reflect.getProperty(constraintMap, "local"), Bool) : false; + transformData.relative = Reflect.hasField(constraintMap, "relative") ? cast(Reflect.getProperty(constraintMap, "relative"), Bool) : false; + + transformData.offsetRotation = getFloat(Reflect.getProperty(constraintMap, "rotation")); + transformData.offsetX = getFloat(Reflect.getProperty(constraintMap, "x")) * scale; + transformData.offsetY = getFloat(Reflect.getProperty(constraintMap, "y")) * scale; + transformData.offsetScaleX = getFloat(Reflect.getProperty(constraintMap, "scaleX")); + transformData.offsetScaleY = getFloat(Reflect.getProperty(constraintMap, "scaleY")); + transformData.offsetShearY = getFloat(Reflect.getProperty(constraintMap, "shearY")); + + transformData.mixRotate = getFloat(Reflect.getProperty(constraintMap, "mixRotate"), 1); + transformData.mixX = getFloat(Reflect.getProperty(constraintMap, "mixX"), 1); + transformData.mixY = getFloat(Reflect.getProperty(constraintMap, "mixY"), transformData.mixX); + transformData.mixScaleX = getFloat(Reflect.getProperty(constraintMap, "mixScaleX"), 1); + transformData.mixScaleY = getFloat(Reflect.getProperty(constraintMap, "mixScaleY"), transformData.mixScaleX); + transformData.mixShearY = getFloat(Reflect.getProperty(constraintMap, "mixShearY"), 1); + + skeletonData.transformConstraints.push(transformData); + } + } + + // Path constraints. + if (Reflect.hasField(root, "path")) { + for (constraintMap in cast(Reflect.getProperty(root, "path"), Array)) { + var pathData:PathConstraintData = new PathConstraintData(Reflect.getProperty(constraintMap, "name")); + pathData.order = getInt(Reflect.getProperty(constraintMap, "order")); + pathData.skinRequired = Reflect.hasField(constraintMap, "skin") ? cast(Reflect.getProperty(constraintMap, "skin"), Bool) : false; + + for (boneName in cast(Reflect.getProperty(constraintMap, "bones"), Array)) { + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Path constraint bone not found: " + boneName); + pathData.bones.push(bone); + } + + pathData.target = skeletonData.findSlot(Reflect.getProperty(constraintMap, "target")); + if (pathData.target == null) + throw new Error("Path target slot not found: " + Reflect.getProperty(constraintMap, "target")); + + pathData.positionMode = Reflect.hasField(constraintMap, + "positionMode") ? PositionMode.fromName(Reflect.getProperty(constraintMap, "positionMode")) : PositionMode.percent; + pathData.spacingMode = Reflect.hasField(constraintMap, + "spacingMode") ? SpacingMode.fromName(Reflect.getProperty(constraintMap, "spacingMode")) : SpacingMode.length; + pathData.rotateMode = Reflect.hasField(constraintMap, + "rotateMode") ? RotateMode.fromName(Reflect.getProperty(constraintMap, "rotateMode")) : RotateMode.tangent; + pathData.offsetRotation = getFloat(Reflect.getProperty(constraintMap, "rotation")); + pathData.position = getFloat(Reflect.getProperty(constraintMap, "position")); + if (pathData.positionMode == PositionMode.fixed) + pathData.position *= scale; + pathData.spacing = getFloat(Reflect.getProperty(constraintMap, "spacing")); + if (pathData.spacingMode == SpacingMode.length || pathData.spacingMode == SpacingMode.fixed) + pathData.spacing *= scale; + pathData.mixRotate = getFloat(Reflect.getProperty(constraintMap, "mixRotate"), 1); + pathData.mixX = getFloat(Reflect.getProperty(constraintMap, "mixX"), 1); + pathData.mixY = getFloat(Reflect.getProperty(constraintMap, "mixY"), 1); + + skeletonData.pathConstraints.push(pathData); + } + } + + // Skins. + if (Reflect.hasField(root, "skins")) { + for (skinMap in cast(Reflect.getProperty(root, "skins"), Array)) { + var skin:Skin = new Skin(Reflect.getProperty(skinMap, "name")); + + if (Reflect.hasField(skinMap, "bones")) { + var bones:Array = cast(Reflect.getProperty(skinMap, "bones"), Array); + for (ii in 0...bones.length) { + var boneData:BoneData = skeletonData.findBone(bones[ii]); + if (boneData == null) + throw new Error("Skin bone not found: " + bones[ii]); + skin.bones.push(boneData); + } + } + + if (Reflect.hasField(skinMap, "ik")) { + var ik:Array = cast(Reflect.getProperty(skinMap, "ik"), Array); + for (ii in 0...ik.length) { + var constraint:ConstraintData = skeletonData.findIkConstraint(ik[ii]); + if (constraint == null) + throw new Error("Skin IK constraint not found: " + ik[ii]); + skin.constraints.push(constraint); + } + } + + if (Reflect.hasField(skinMap, "transform")) { + var transform:Array = cast(Reflect.getProperty(skinMap, "transform"), Array); + for (ii in 0...transform.length) { + var constraint:ConstraintData = skeletonData.findTransformConstraint(transform[ii]); + if (constraint == null) + throw new Error("Skin transform constraint not found: " + transform[ii]); + skin.constraints.push(constraint); + } + } + + if (Reflect.hasField(skinMap, "path")) { + var path:Array = cast(Reflect.getProperty(skinMap, "path"), Array); + for (ii in 0...path.length) { + var constraint:ConstraintData = skeletonData.findPathConstraint(path[ii]); + if (constraint == null) + throw new Error("Skin path constraint not found: " + path[ii]); + skin.constraints.push(constraint); + } + } + + if (Reflect.hasField(skinMap, "attachments")) { + var attachments:Object = Reflect.getProperty(skinMap, "attachments"); + for (slotName in attachments) { + var slot:SlotData = skeletonData.findSlot(slotName); + var slotEntry:Object = Reflect.getProperty(attachments, slotName); + for (attachmentName in slotEntry) { + var attachment:Attachment = readAttachment(Reflect.getProperty(slotEntry, attachmentName), skin, slot.index, attachmentName, + skeletonData); + if (attachment != null) { + skin.setAttachment(slot.index, attachmentName, attachment); + } + } + } + } + + skeletonData.skins.push(skin); + if (skin.name == "default") { + skeletonData.defaultSkin = skin; + } + } + } + + // Linked meshes. + for (linkedMesh in linkedMeshes) { + var parentSkin:Skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (parentSkin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parentMesh:Attachment = parentSkin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parentMesh == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.deformAttachment = linkedMesh.inheritDeform ? cast(parentMesh, VertexAttachment) : linkedMesh.mesh; + linkedMesh.mesh.parentMesh = cast(parentMesh, MeshAttachment); + linkedMesh.mesh.updateUVs(); + } + linkedMeshes.length = 0; + + // Events. + var events:Object = Reflect.getProperty(root, "events"); + for (eventName in events) { + var eventMap:Map = events[eventName]; + var eventData:EventData = new EventData(eventName); + eventData.intValue = getInt(eventMap["int"]); + eventData.floatValue = getFloat(eventMap["float"]); + eventData.stringValue = eventMap["string"] != null ? eventMap["string"] : ""; + eventData.audioPath = eventMap["audio"]; + if (eventData.audioPath != null) { + eventData.volume = getFloat(eventMap["volume"], 1); + eventData.balance = getFloat(eventMap["balance"]); + } + skeletonData.events.push(eventData); + } + + // Animations. + var animations:Object = Reflect.getProperty(root, "animations"); + for (animationName in animations) { + readAnimation(animations[animationName], animationName, skeletonData); + } + return skeletonData; + } + + private function readAttachment(map:Object, skin:Skin, slotIndex:Int, name:String, skeletonData:SkeletonData):Attachment { + if (map["name"] != null) + name = map["name"]; + + var color:String; + switch (AttachmentType.fromName(Reflect.hasField(map, "type") ? Reflect.getProperty(map, "type") : "region")) { + case AttachmentType.region: + var region:RegionAttachment = attachmentLoader.newRegionAttachment(skin, name, map["path"] != null ? map["path"] : name); + if (region == null) + return null; + region.path = map["path"] != null ? map["path"] : name; + region.x = getFloat(map["x"]) * scale; + region.y = getFloat(map["y"]) * scale; + region.scaleX = getFloat(map["scaleX"], 1); + region.scaleY = getFloat(map["scaleY"], 1); + region.rotation = getFloat(map["rotation"]); + region.width = getFloat(map["width"]) * scale; + region.height = getFloat(map["height"]) * scale; + color = Reflect.getProperty(map, "color"); + if (color != null) { + region.color.setFromString(color); + } + region.updateOffset(); + return region; + case AttachmentType.mesh, AttachmentType.linkedmesh: + var mesh:MeshAttachment = attachmentLoader.newMeshAttachment(skin, name, map["path"] != null ? map["path"] : name); + if (mesh == null) + return null; + mesh.path = map["path"] != null ? map["path"] : name; + color = Reflect.getProperty(map, "color"); + if (color != null) { + mesh.color.setFromString(color); + } + mesh.width = getFloat(map["width"]) * scale; + mesh.height = getFloat(map["height"]) * scale; + if (map["parent"] != null) { + var inheritDeform:Bool = map.hasOwnProperty("deform") ? cast(map["deform"], Bool) : true; + linkedMeshes.push(new LinkedMesh(mesh, map["skin"], slotIndex, map["parent"], inheritDeform)); + return mesh; + } + var uvs:Vector = getFloatArray(map, "uvs"); + readVertices(map, mesh, uvs.length); + mesh.triangles = getIntArray(map, "triangles"); + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.hullLength = (getInt(map["hull"])) * 2; + if (map["edges"] != null) + mesh.edges = getIntArray(map, "edges"); + return mesh; + case AttachmentType.boundingbox: + var box:BoundingBoxAttachment = attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + readVertices(map, box, Std.parseInt(map["vertexCount"]) << 1); + return box; + case AttachmentType.path: + var path:PathAttachment = attachmentLoader.newPathAttachment(skin, name); + if (path == null) + return null; + path.closed = map.hasOwnProperty("closed") ? cast(map["closed"], Bool) : false; + path.constantSpeed = map.hasOwnProperty("constantSpeed") ? cast(map["constantSpeed"], Bool) : true; + var vertexCount:Int = Std.parseInt(map["vertexCount"]); + readVertices(map, path, vertexCount << 1); + var lengths:Vector = new Vector(); + for (curves in cast(map["lengths"], Array)) { + lengths.push(Std.parseFloat(curves) * scale); + } + path.lengths = lengths; + return path; + case AttachmentType.point: + var point:PointAttachment = attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = map.hasOwnProperty("x") ? Std.parseFloat(map["x"]) * scale : 0; + point.y = map.hasOwnProperty("y") ? Std.parseFloat(map["y"]) * scale : 0; + point.rotation = map.hasOwnProperty("rotation") ? Std.parseFloat(map["rotation"]) : 0; + color = Reflect.getProperty(map, "color"); + if (color != null) { + point.color.setFromString(color); + } + return point; + case AttachmentType.clipping: + var clip:ClippingAttachment = attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + var end:String = map["end"]; + if (end != null) { + var slot:SlotData = skeletonData.findSlot(end); + if (slot == null) + throw new Error("Clipping end slot not found: " + end); + clip.endSlot = slot; + } + var vertexCount:Int = Std.parseInt(map["vertexCount"]); + readVertices(map, clip, vertexCount << 1); + color = Reflect.getProperty(map, "color"); + if (color != null) { + clip.color.setFromString(color); + } + return clip; + } + return null; + } + + private function readVertices(map:Object, attachment:VertexAttachment, verticesLength:Int):Void { + attachment.worldVerticesLength = verticesLength; + var vertices:Vector = getFloatArray(map, "vertices"); + if (verticesLength == vertices.length) { + if (scale != 1) { + for (i in 0...vertices.length) { + vertices[i] *= scale; + } + } + attachment.vertices = vertices; + return; + } + + var weights:Vector = new Vector(); + var bones:Vector = new Vector(); + var i:Int = 0; + var n:Int = vertices.length; + while (i < n) { + var boneCount:Int = Std.int(vertices[i++]); + bones.push(boneCount); + var nn:Int = i + boneCount * 4; + while (i < nn) { + bones.push(Std.int(vertices[i])); + weights.push(vertices[i + 1] * scale); + weights.push(vertices[i + 2] * scale); + weights.push(vertices[i + 3]); + + i += 4; + } + } + attachment.bones = bones; + attachment.vertices = weights; + } + + private function readAnimation(map:Object, name:String, skeletonData:SkeletonData):Void { + var timelines:Vector = new Vector(); + + var slotMap:Object; + var slotIndex:Int; + var slotName:String; + + var timelineMap:Array; + var keyMap:Object; + var nextMap:Object; + var frame:Int, bezier:Int; + var time:Float, time2:Float; + var curve:Object; + var timelineName:String; + + // Slot timelines. + var slots:Object = Reflect.getProperty(map, "slots"); + for (slotName in slots) { + slotMap = slots[slotName]; + slotIndex = skeletonData.findSlot(slotName).index; + for (timelineName in slotMap) { + timelineMap = slotMap[timelineName]; + if (timelineMap == null) + continue; + if (timelineName == "attachment") { + var attachmentTimeline:AttachmentTimeline = new AttachmentTimeline(timelineMap.length, slotIndex); + for (frame in 0...timelineMap.length) { + keyMap = timelineMap[frame]; + attachmentTimeline.setFrame(frame, getFloat(Reflect.getProperty(keyMap, "time")), keyMap.name); + } + timelines.push(attachmentTimeline); + } else if (timelineName == "rgba") { + var rgbaTimeline:RGBATimeline = new RGBATimeline(timelineMap.length, timelineMap.length << 2, slotIndex); + keyMap = timelineMap[0]; + time = getFloat(Reflect.getProperty(keyMap, "time")); + var rgba:Color = Color.fromString(keyMap.color); + + frame = 0; + bezier = 0; + while (true) { + rgbaTimeline.setFrame(frame, time, rgba.r, rgba.g, rgba.b, rgba.a); + if (timelineMap.length == frame + 1) + break; + + nextMap = timelineMap[frame + 1]; + time2 = getFloat(Reflect.getProperty(nextMap, "time")); + var newRgba:Color = Color.fromString(nextMap.color); + curve = keyMap.curve; + if (curve != null) { + bezier = readCurve(curve, rgbaTimeline, bezier, frame, 0, time, time2, rgba.r, newRgba.r, 1); + bezier = readCurve(curve, rgbaTimeline, bezier, frame, 1, time, time2, rgba.g, newRgba.g, 1); + bezier = readCurve(curve, rgbaTimeline, bezier, frame, 2, time, time2, rgba.b, newRgba.b, 1); + bezier = readCurve(curve, rgbaTimeline, bezier, frame, 3, time, time2, rgba.a, newRgba.a, 1); + } + time = time2; + rgba = newRgba; + keyMap = nextMap; + + frame++; + } + + timelines.push(rgbaTimeline); + } else if (timelineName == "rgb") { + var rgbTimeline:RGBTimeline = new RGBTimeline(timelineMap.length, timelineMap.length * 3, slotIndex); + keyMap = timelineMap[0]; + time = getFloat(Reflect.getProperty(keyMap, "time")); + var rgb:Color = Color.fromString(keyMap.color); + + frame = 0; + bezier = 0; + while (true) { + rgbTimeline.setFrame(frame, time, rgb.r, rgb.g, rgb.b); + nextMap = timelineMap[frame + 1]; + if (nextMap == null) { + rgbTimeline.shrink(bezier); + break; + } + + time2 = getFloat(Reflect.getProperty(nextMap, "time")); + var newRgb:Color = Color.fromString(nextMap.color); + curve = keyMap.curve; + if (curve != null) { + bezier = readCurve(curve, rgbTimeline, bezier, frame, 0, time, time2, rgb.r, newRgb.r, 1); + bezier = readCurve(curve, rgbTimeline, bezier, frame, 1, time, time2, rgb.g, newRgb.g, 1); + bezier = readCurve(curve, rgbTimeline, bezier, frame, 2, time, time2, rgb.b, newRgb.b, 1); + } + time = time2; + rgb = newRgb; + keyMap = nextMap; + + frame++; + } + + timelines.push(rgbTimeline); + } else if (timelineName == "alpha") { + timelines.push(readTimeline(timelineMap, new AlphaTimeline(timelineMap.length, timelineMap.length, slotIndex), 0, 1)); + } else if (timelineName == "rgba2") { + var rgba2Timeline:RGBA2Timeline = new RGBA2Timeline(timelineMap.length, timelineMap.length * 7, slotIndex); + + keyMap = timelineMap[0]; + time = getFloat(Reflect.getProperty(keyMap, "time")); + var lighta:Color = Color.fromString(keyMap.light); + var darka:Color = Color.fromString(keyMap.dark); + + frame = 0; + bezier = 0; + while (true) { + rgba2Timeline.setFrame(frame, time, lighta.r, lighta.g, lighta.b, lighta.a, darka.r, darka.g, darka.b); + nextMap = timelineMap[frame + 1]; + if (nextMap == null) { + rgba2Timeline.shrink(bezier); + break; + } + + time2 = getFloat(Reflect.getProperty(nextMap, "time")); + var newLighta:Color = Color.fromString(nextMap.light); + var newDarka:Color = Color.fromString(nextMap.dark); + curve = keyMap.curve; + if (curve != null) { + bezier = readCurve(curve, rgba2Timeline, bezier, frame, 0, time, time2, lighta.r, newLighta.r, 1); + bezier = readCurve(curve, rgba2Timeline, bezier, frame, 1, time, time2, lighta.g, newLighta.g, 1); + bezier = readCurve(curve, rgba2Timeline, bezier, frame, 2, time, time2, lighta.b, newLighta.b, 1); + bezier = readCurve(curve, rgba2Timeline, bezier, frame, 3, time, time2, lighta.a, newLighta.a, 1); + bezier = readCurve(curve, rgba2Timeline, bezier, frame, 4, time, time2, darka.r, newDarka.r, 1); + bezier = readCurve(curve, rgba2Timeline, bezier, frame, 5, time, time2, darka.g, newDarka.g, 1); + bezier = readCurve(curve, rgba2Timeline, bezier, frame, 6, time, time2, darka.b, newDarka.b, 1); + } + time = time2; + lighta = newLighta; + darka = newDarka; + keyMap = nextMap; + + frame++; + } + + timelines.push(rgba2Timeline); + } else if (timelineName == "rgb2") { + var rgb2Timeline:RGB2Timeline = new RGB2Timeline(timelineMap.length, timelineMap.length * 6, slotIndex); + + keyMap = timelineMap[0]; + time = getFloat(Reflect.getProperty(keyMap, "time")); + var light:Color = Color.fromString(keyMap.light); + var dark:Color = Color.fromString(keyMap.dark); + + frame = 0; + bezier = 0; + while (true) { + rgb2Timeline.setFrame(frame, time, light.r, light.g, light.b, dark.r, dark.g, dark.b); + nextMap = timelineMap[frame + 1]; + if (nextMap == null) { + rgb2Timeline.shrink(bezier); + break; + } + + time2 = getFloat(Reflect.getProperty(nextMap, "time")); + var newLight:Color = Color.fromString(nextMap.light); + var newDark:Color = Color.fromString(nextMap.dark); + curve = keyMap.curve; + if (curve != null) { + bezier = readCurve(curve, rgb2Timeline, bezier, frame, 0, time, time2, light.r, newLight.r, 1); + bezier = readCurve(curve, rgb2Timeline, bezier, frame, 1, time, time2, light.g, newLight.g, 1); + bezier = readCurve(curve, rgb2Timeline, bezier, frame, 2, time, time2, light.b, newLight.b, 1); + bezier = readCurve(curve, rgb2Timeline, bezier, frame, 3, time, time2, dark.r, newDark.r, 1); + bezier = readCurve(curve, rgb2Timeline, bezier, frame, 4, time, time2, dark.g, newDark.g, 1); + bezier = readCurve(curve, rgb2Timeline, bezier, frame, 5, time, time2, dark.b, newDark.b, 1); + } + time = time2; + light = newLight; + dark = newDark; + keyMap = nextMap; + + frame++; + } + + timelines.push(rgb2Timeline); + } else { + throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); + } + } + } + + // Bone timelines. + var bones:Object = Reflect.getProperty(map, "bones"); + for (boneName in bones) { + var boneIndex:Int = skeletonData.findBoneIndex(boneName); + if (boneIndex == -1) + throw new Error("Bone not found: " + boneName); + var boneMap:Object = bones[boneName]; + for (timelineName in boneMap) { + timelineMap = boneMap[timelineName]; + if (timelineMap.length == 0) + continue; + + if (timelineName == "rotate") { + timelines.push(readTimeline(timelineMap, new RotateTimeline(timelineMap.length, timelineMap.length, boneIndex), 0, 1)); + } else if (timelineName == "translate") { + var translateTimeline:TranslateTimeline = new TranslateTimeline(timelineMap.length, timelineMap.length << 1, boneIndex); + timelines.push(readTimeline2(timelineMap, translateTimeline, "x", "y", 0, scale)); + } else if (timelineName == "translatex") { + var translateXTimeline:TranslateXTimeline = new TranslateXTimeline(timelineMap.length, timelineMap.length, boneIndex); + timelines.push(readTimeline(timelineMap, translateXTimeline, 0, scale)); + } else if (timelineName == "translatey") { + var translateYTimeline:TranslateYTimeline = new TranslateYTimeline(timelineMap.length, timelineMap.length, boneIndex); + timelines.push(readTimeline(timelineMap, translateYTimeline, 0, scale)); + } else if (timelineName == "scale") { + var scaleTimeline:ScaleTimeline = new ScaleTimeline(timelineMap.length, timelineMap.length << 1, boneIndex); + timelines.push(readTimeline2(timelineMap, scaleTimeline, "x", "y", 1, 1)); + } else if (timelineName == "scalex") { + var scaleXTimeline:ScaleXTimeline = new ScaleXTimeline(timelineMap.length, timelineMap.length, boneIndex); + timelines.push(readTimeline(timelineMap, scaleXTimeline, 1, 1)); + } else if (timelineName == "scaley") { + var scaleYTimeline:ScaleYTimeline = new ScaleYTimeline(timelineMap.length, timelineMap.length, boneIndex); + timelines.push(readTimeline(timelineMap, scaleYTimeline, 1, 1)); + } else if (timelineName == "shear") { + var shearTimeline:ShearTimeline = new ShearTimeline(timelineMap.length, timelineMap.length << 1, boneIndex); + timelines.push(readTimeline2(timelineMap, shearTimeline, "x", "y", 0, 1)); + } else if (timelineName == "shearx") { + var shearXTimeline:ShearXTimeline = new ShearXTimeline(timelineMap.length, timelineMap.length, boneIndex); + timelines.push(readTimeline(timelineMap, shearXTimeline, 0, 1)); + } else if (timelineName == "sheary") { + var shearYTimeline:ShearYTimeline = new ShearYTimeline(timelineMap.length, timelineMap.length, boneIndex); + timelines.push(readTimeline(timelineMap, shearYTimeline, 0, 1)); + } else { + throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); + } + } + } + + // IK constraint timelines. + var iks:Object = Reflect.getProperty(map, "ik"); + for (ikConstraintName in iks) { + timelineMap = iks[ikConstraintName]; + keyMap = timelineMap[0]; + if (keyMap == null) + continue; + + var ikIndex:Int = skeletonData.ikConstraints.indexOf(skeletonData.findIkConstraint(ikConstraintName)); + var ikTimeline:IkConstraintTimeline = new IkConstraintTimeline(timelineMap.length, timelineMap.length << 1, ikIndex); + + time = getFloat(Reflect.getProperty(keyMap, "time")); + var mix:Float = getFloat(Reflect.getProperty(keyMap, "mix"), 1); + var softness:Float = getFloat(Reflect.getProperty(keyMap, "softness")) * scale; + + frame = 0; + bezier = 0; + while (true) { + ikTimeline.setFrame(frame, time, mix, softness, + Reflect.hasField(keyMap, "bendPositive") ? (cast(Reflect.getProperty(keyMap, "bendPositive"), Bool) ? 1 : -1) : 1, + Reflect.hasField(keyMap, "compress") ? cast(Reflect.getProperty(keyMap, "compress"), Bool) : false, + Reflect.hasField(keyMap, "stretch") ? cast(Reflect.getProperty(keyMap, "stretch"), Bool) : false); + + nextMap = timelineMap[frame + 1]; + if (nextMap == null) { + ikTimeline.shrink(bezier); + break; + } + + time2 = getFloat(Reflect.getProperty(nextMap, "time")); + var mix2:Float = getFloat(Reflect.getProperty(nextMap, "mix"), 1); + var softness2:Float = getFloat(Reflect.getProperty(nextMap, "softness")) * scale; + curve = keyMap.curve; + if (curve != null) { + bezier = readCurve(curve, ikTimeline, bezier, frame, 0, time, time2, mix, mix2, 1); + bezier = readCurve(curve, ikTimeline, bezier, frame, 1, time, time2, softness, softness2, scale); + } + time = time2; + mix = mix2; + softness = softness2; + keyMap = nextMap; + + frame++; + } + timelines.push(ikTimeline); + } + + // Transform constraint timelines. + var mixRotate:Float, mixRotate2:Float; + var mixX:Float, mixX2:Float; + var mixY:Float, mixY2:Float; + var transforms:Object = Reflect.getProperty(map, "transform"); + for (transformName in transforms) { + timelineMap = transforms[transformName]; + keyMap = timelineMap[0]; + if (keyMap == null) + continue; + + var transformIndex:Int = skeletonData.transformConstraints.indexOf(skeletonData.findTransformConstraint(transformName)); + var transformTimeline:TransformConstraintTimeline = new TransformConstraintTimeline(timelineMap.length, timelineMap.length << 2, transformIndex); + + time = getFloat(Reflect.getProperty(keyMap, "time")); + mixRotate = getFloat(Reflect.getProperty(keyMap, "mixRotate"), 1); + var mixShearY:Float = getFloat(Reflect.getProperty(keyMap, "mixShearY"), 1); + mixX = getFloat(Reflect.getProperty(keyMap, "mixX"), 1); + mixY = getFloat(Reflect.getProperty(keyMap, "mixY"), mixX); + var mixScaleX:Float = getFloat(Reflect.getProperty(keyMap, "mixScaleX"), 1); + var mixScaleY:Float = getFloat(Reflect.getProperty(keyMap, "mixScaleY"), mixScaleX); + + frame = 0; + bezier = 0; + while (true) { + transformTimeline.setFrame(frame, time, mixRotate, mixX, mixY, mixScaleX, mixScaleY, mixShearY); + nextMap = timelineMap[frame + 1]; + if (nextMap == null) { + transformTimeline.shrink(bezier); + break; + } + + time2 = getFloat(Reflect.getProperty(nextMap, "time")); + mixRotate2 = getFloat(Reflect.getProperty(nextMap, "mixRotate"), 1); + var mixShearY2:Float = getFloat(Reflect.getProperty(nextMap, "mixShearY"), 1); + mixX2 = getFloat(Reflect.getProperty(nextMap, "mixX"), 1); + mixY2 = getFloat(Reflect.getProperty(nextMap, "mixY"), mixX2); + var mixScaleX2:Float = getFloat(Reflect.getProperty(nextMap, "mixScaleX"), 1); + var mixScaleY2:Float = getFloat(Reflect.getProperty(nextMap, "mixScaleY"), mixScaleX2); + curve = keyMap.curve; + if (curve != null) { + bezier = readCurve(curve, transformTimeline, bezier, frame, 0, time, time2, mixRotate, mixRotate2, 1); + bezier = readCurve(curve, transformTimeline, bezier, frame, 1, time, time2, mixX, mixX2, 1); + bezier = readCurve(curve, transformTimeline, bezier, frame, 2, time, time2, mixY, mixY2, 1); + bezier = readCurve(curve, transformTimeline, bezier, frame, 3, time, time2, mixScaleX, mixScaleX2, 1); + bezier = readCurve(curve, transformTimeline, bezier, frame, 4, time, time2, mixScaleY, mixScaleY2, 1); + bezier = readCurve(curve, transformTimeline, bezier, frame, 5, time, time2, mixShearY, mixShearY2, 1); + } + time = time2; + mixRotate = mixRotate2; + mixX = mixX2; + mixY = mixY2; + mixScaleX = mixScaleX2; + mixScaleY = mixScaleY2; + mixScaleX = mixScaleX2; + keyMap = nextMap; + + frame++; + } + + timelines.push(transformTimeline); + } + + // Path constraint timelines. + var paths:Object = Reflect.getProperty(map, "path"); + for (pathName in paths) { + var index:Int = skeletonData.findPathConstraintIndex(pathName); + if (index == -1) + throw new Error("Path constraint not found: " + pathName); + var pathData:PathConstraintData = skeletonData.pathConstraints[index]; + + var pathMap:Object = paths[pathName]; + for (timelineName in pathMap) { + timelineMap = pathMap[timelineName]; + keyMap = timelineMap[0]; + if (keyMap == null) + continue; + + if (timelineName == "position") { + var positionTimeline:PathConstraintPositionTimeline = new PathConstraintPositionTimeline(timelineMap.length, timelineMap.length, index); + timelines.push(readTimeline(timelineMap, positionTimeline, 0, pathData.positionMode == PositionMode.fixed ? scale : 1)); + } else if (timelineName == "spacing") { + var spacingTimeline:PathConstraintSpacingTimeline = new PathConstraintSpacingTimeline(timelineMap.length, timelineMap.length, index); + timelines.push(readTimeline(timelineMap, spacingTimeline, + 0, pathData.spacingMode == SpacingMode.length || pathData.spacingMode == SpacingMode.fixed ? scale : 1)); + } else if (timelineName == "mix") { + var mixTimeline:PathConstraintMixTimeline = new PathConstraintMixTimeline(timelineMap.length, timelineMap.length * 3, index); + time = getFloat(Reflect.getProperty(keyMap, "time")); + mixRotate = getFloat(Reflect.getProperty(keyMap, "mixRotate"), 1); + mixX = getFloat(Reflect.getProperty(keyMap, "mixX"), 1); + mixY = getFloat(Reflect.getProperty(keyMap, "mixY"), mixX); + + frame = 0; + bezier = 0; + while (true) { + mixTimeline.setFrame(frame, time, mixRotate, mixX, mixY); + nextMap = timelineMap[frame + 1]; + if (nextMap == null) { + mixTimeline.shrink(bezier); + break; + } + time2 = getFloat(Reflect.getProperty(nextMap, "time")); + mixRotate2 = getFloat(Reflect.getProperty(nextMap, "mixRotate"), 1); + mixX2 = getFloat(Reflect.getProperty(nextMap, "mixX"), 1); + mixY2 = getFloat(Reflect.getProperty(nextMap, "mixY"), mixX2); + curve = keyMap.curve; + if (curve != null) { + bezier = readCurve(curve, mixTimeline, bezier, frame, 0, time, time2, mixRotate, mixRotate2, 1); + bezier = readCurve(curve, mixTimeline, bezier, frame, 1, time, time2, mixX, mixX2, 1); + bezier = readCurve(curve, mixTimeline, bezier, frame, 2, time, time2, mixY, mixY2, 1); + } + time = time2; + mixRotate = mixRotate2; + mixX = mixX2; + mixY = mixY2; + keyMap = nextMap; + + frame++; + } + + timelines.push(mixTimeline); + } + } + } + + // Deform timelines. + var deforms:Object = Reflect.getProperty(map, "deform"); + for (deformName in deforms) { + var deformMap:Object = deforms[deformName]; + var skin:Skin = skeletonData.findSkin(deformName); + if (skin == null) + throw new Error("Skin not found: " + deformName); + + for (slotName in deformMap) { + slotMap = deformMap[slotName]; + slotIndex = skeletonData.findSlot(slotName).index; + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + for (timelineName in slotMap) { + timelineMap = slotMap[timelineName]; + keyMap = timelineMap[0]; + if (keyMap == null) + continue; + + var attachment:VertexAttachment = cast(skin.getAttachment(slotIndex, timelineName), VertexAttachment); + if (attachment == null) + throw new Error("Deform attachment not found: " + timelineName); + var weighted:Bool = attachment.bones != null; + var vertices:Vector = attachment.vertices; + var deformLength:Int = weighted ? Std.int(vertices.length / 3 * 2) : vertices.length; + + var deformTimeline:DeformTimeline = new DeformTimeline(timelineMap.length, timelineMap.length, slotIndex, attachment); + time = getFloat(Reflect.getProperty(keyMap, "time")); + frame = 0; + bezier = 0; + while (true) { + var deform:Vector; + var verticesValue:Vector = Reflect.getProperty(keyMap, "vertices"); + if (verticesValue == null) { + deform = weighted ? new Vector(deformLength, true) : vertices; + } else { + deform = new Vector(deformLength, true); + var start:Int = getInt(Reflect.getProperty(keyMap, "offset")); + var temp:Vector = getFloatArray(keyMap, "vertices"); + for (i in 0...temp.length) { + deform[start + i] = temp[i]; + } + if (scale != 1) { + for (i in start...start + temp.length) { + deform[i] *= scale; + } + } + if (!weighted) { + for (i in 0...deformLength) { + deform[i] += vertices[i]; + } + } + } + + deformTimeline.setFrame(frame, time, deform); + nextMap = timelineMap[frame + 1]; + if (nextMap == null) { + deformTimeline.shrink(bezier); + break; + } + time2 = getFloat(Reflect.getProperty(nextMap, "time")); + curve = keyMap.curve; + if (curve != null) { + bezier = readCurve(curve, deformTimeline, bezier, frame, 0, time, time2, 0, 1, 1); + } + time = time2; + keyMap = nextMap; + + frame++; + } + + timelines.push(deformTimeline); + } + } + } + + // Draw order timelines. + if (Reflect.hasField(map, "drawOrder")) { + var drawOrders:Array = cast(map["drawOrder"], Array); + if (drawOrders != null) { + var drawOrderTimeline:DrawOrderTimeline = new DrawOrderTimeline(drawOrders.length); + var slotCount:Int = skeletonData.slots.length; + frame = 0; + for (drawOrderMap in drawOrders) { + var drawOrder:Vector = null; + var offsets:Array = Reflect.getProperty(drawOrderMap, "offsets"); + if (offsets != null) { + drawOrder = new Vector(slotCount, true); + var i = slotCount - 1; + while (i >= 0) { + drawOrder[i--] = -1; + } + var unchanged:Vector = new Vector(slotCount - offsets.length, true); + var originalIndex:Int = 0, unchangedIndex:Int = 0; + for (offsetMap in offsets) { + slotIndex = skeletonData.findSlot(Reflect.getProperty(offsetMap, "slot")).index; + if (slotIndex == -1) + throw new Error("Slot not found: " + Reflect.getProperty(offsetMap, "slot")); + // Collect unchanged items. + while (originalIndex != slotIndex) { + unchanged[unchangedIndex++] = originalIndex++; + } + // Set changed items. + drawOrder[originalIndex + Reflect.getProperty(offsetMap, "offset")] = originalIndex++; + } + // Collect remaining unchanged items. + while (originalIndex < slotCount) { + unchanged[unchangedIndex++] = originalIndex++; + } + // Fill in unchanged items. + i = slotCount - 1; + while (i >= 0) { + if (drawOrder[i] == -1) + drawOrder[i] = unchanged[--unchangedIndex]; + i--; + } + } + drawOrderTimeline.setFrame(frame++, getFloat(Reflect.getProperty(drawOrderMap, "time")), drawOrder); + } + timelines.push(drawOrderTimeline); + } + } + + // Event timelines. + if (Reflect.hasField(map, "events")) { + var eventsMap:Array = cast(map["events"], Array); + if (eventsMap != null) { + var eventTimeline:EventTimeline = new EventTimeline(eventsMap.length); + frame = 0; + for (eventMap in eventsMap) { + var eventData:EventData = skeletonData.findEvent(Reflect.getProperty(eventMap, "name")); + if (eventData == null) + throw new Error("Event not found: " + Reflect.getProperty(eventMap, "name")); + var event:Event = new Event(getFloat(Reflect.getProperty(eventMap, "time")), eventData); + event.intValue = Reflect.hasField(eventMap, "int") ? getInt(Reflect.getProperty(eventMap, "int")) : eventData.intValue; + event.floatValue = Reflect.hasField(eventMap, "float") ? getFloat(Reflect.getProperty(eventMap, "float")) : eventData.floatValue; + event.stringValue = Reflect.hasField(eventMap, "string") ? Reflect.getProperty(eventMap, "string") : eventData.stringValue; + if (eventData.audioPath != null) { + event.volume = getFloat(Reflect.getProperty(eventMap, "volume"), 1); + event.balance = getFloat(Reflect.getProperty(eventMap, "balance")); + } + eventTimeline.setFrame(frame++, event); + } + timelines.push(eventTimeline); + } + } + + var duration:Float = 0; + for (i in 0...timelines.length) { + duration = Math.max(duration, timelines[i].getDuration()); + } + + skeletonData.animations.push(new Animation(name, timelines, duration)); + } + + static private function readTimeline(keys:Array, timeline:CurveTimeline1, defaultValue:Float, scale:Float):CurveTimeline1 { + var keyMap:Object = keys[0]; + var time:Float = getFloat(Reflect.getProperty(keyMap, "time")); + var value:Float = getFloat(Reflect.getProperty(keyMap, "value"), defaultValue) * scale; + var bezier:Int = 0; + var frame:Int = 0; + while (true) { + timeline.setFrame(frame, time, value); + var nextMap:Object = keys[frame + 1]; + if (nextMap == null) { + timeline.shrink(bezier); + break; + } + var time2:Float = getFloat(Reflect.getProperty(nextMap, "time")); + var value2:Float = getFloat(Reflect.getProperty(nextMap, "value"), defaultValue) * scale; + var curve:Object = keyMap.curve; + if (curve != null) { + bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, value, value2, scale); + } + time = time2; + value = value2; + keyMap = nextMap; + + frame++; + } + return timeline; + } + + static private function readTimeline2(keys:Array, timeline:CurveTimeline2, name1:String, name2:String, defaultValue:Float, + scale:Float):CurveTimeline2 { + var keyMap:Object = keys[0]; + var time:Float = getFloat(Reflect.getProperty(keyMap, "time")); + var value1:Float = getFloat(Reflect.getProperty(keyMap, name1), defaultValue) * scale; + var value2:Float = getFloat(Reflect.getProperty(keyMap, name2), defaultValue) * scale; + var bezier:Int = 0; + var frame:Int = 0; + while (true) { + timeline.setFrame(frame, time, value1, value2); + var nextMap:Object = keys[frame + 1]; + if (nextMap == null) { + timeline.shrink(bezier); + break; + } + var time2:Float = getFloat(Reflect.getProperty(nextMap, "time")); + var nvalue1:Float = getFloat(Reflect.getProperty(nextMap, name1), defaultValue) * scale; + var nvalue2:Float = getFloat(Reflect.getProperty(nextMap, name2), defaultValue) * scale; + var curve:Object = keyMap.curve; + if (curve != null) { + bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, value1, nvalue1, scale); + bezier = readCurve(curve, timeline, bezier, frame, 1, time, time2, value2, nvalue2, scale); + } + time = time2; + value1 = nvalue1; + value2 = nvalue2; + keyMap = nextMap; + + frame++; + } + return timeline; + } + + static private function readCurve(curve:Object, timeline:CurveTimeline, bezier:Int, frame:Int, value:Int, time1:Float, time2:Float, value1:Float, + value2:Float, scale:Float):Int { + if (curve == "stepped") { + timeline.setStepped(frame); + return bezier; + } + + var i:Int = value << 2; + var cx1:Float = curve[Std.string(i)]; + var cy1:Float = curve[Std.string(i + 1)] * scale; + var cx2:Float = curve[Std.string(i + 2)]; + var cy2:Float = curve[Std.string(i + 3)] * scale; + timeline.setBezier(bezier, frame, value, time1, value1, cx1, cy1, cx2, cy2, time2, value2); + return bezier + 1; + } + + static private function getFloat(value:Object, defaultValue:Float = 0):Float { + if (Std.isOfType(value, Float)) + return cast(value, Float); + var floatValue:Float = Std.parseFloat(value); + if (Math.isNaN(floatValue)) + floatValue = defaultValue; + return floatValue; + } + + static private function getFloatArray(map:Object, name:String):Vector { + var list:Array = cast(map[name], Array); + var values:Vector = new Vector(list.length, true); + for (i in 0...list.length) { + values[i] = getFloat(list[i]); + } + return values; + } + + static private function getInt(value:Object):Int { + if (Std.isOfType(value, Int)) + return cast(value, Int); + var intValue:Null = Std.parseInt(value); + if (intValue == null) + intValue = 0; + return intValue; + } + + static private function getIntArray(map:Object, name:String):Vector { + var list:Array = cast(map[name], Array); + var values:Vector = new Vector(list.length, true); + for (i in 0...list.length) { + values[i] = getInt(list[i]); + } + return values; + } +} + +class LinkedMesh { + public var parent(default, null):String; + public var skin(default, null):String; + public var slotIndex(default, null):Int; + public var mesh(default, null):MeshAttachment; + public var inheritDeform(default, null):Bool; + + public function new(mesh:MeshAttachment, skin:String, slotIndex:Int, parent:String, inheritDeform:Bool) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + this.inheritDeform = inheritDeform; + } +} diff --git a/spine-haxe/spine-haxe/spine/Skin.hx b/spine-haxe/spine-haxe/spine/Skin.hx new file mode 100644 index 0000000000..2b6eb5ddfe --- /dev/null +++ b/spine-haxe/spine-haxe/spine/Skin.hx @@ -0,0 +1,209 @@ +package spine; + +import openfl.errors.ArgumentError; +import openfl.utils.Dictionary; +import openfl.Vector; +import spine.attachments.Attachment; +import spine.attachments.MeshAttachment; + +/** Stores attachments by slot index and attachment name. */ +class Skin { + private var _name:String; + private var _attachments:Vector> = new Vector>(); + private var _bones:Vector = new Vector(); + private var _constraints:Vector = new Vector(); + + public function new(name:String) { + if (name == null) + throw new ArgumentError("name cannot be null."); + _name = name; + } + + public function setAttachment(slotIndex:Int, name:String, attachment:Attachment):Void { + if (attachment == null) + throw new ArgumentError("attachment cannot be null."); + if (slotIndex >= _attachments.length) + _attachments.length = slotIndex + 1; + if (_attachments[slotIndex] == null) + _attachments[slotIndex] = new Dictionary(); + _attachments[slotIndex][name] = attachment; + } + + public function addSkin(skin:Skin):Void { + var contained:Bool = false; + for (i in 0...skin.bones.length) { + var bone:BoneData = skin.bones[i]; + contained = false; + for (j in 0...bones.length) { + if (_bones[j] == bone) { + contained = true; + break; + } + } + if (!contained) + _bones.push(bone); + } + + for (i in 0...skin.constraints.length) { + var constraint:ConstraintData = skin.constraints[i]; + contained = false; + for (j in 0..._constraints.length) { + if (_constraints[j] == constraint) { + contained = true; + break; + } + } + if (!contained) + _constraints.push(constraint); + } + + var attachments:Vector = skin.getAttachments(); + for (i in 0...attachments.length) { + var attachment:SkinEntry = attachments[i]; + setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); + } + } + + public function copySkin(skin:Skin):Void { + var contained:Bool = false; + var attachment:SkinEntry; + + for (i in 0...skin.bones.length) { + var bone:BoneData = skin.bones[i]; + contained = false; + for (j in 0..._bones.length) { + if (_bones[j] == bone) { + contained = true; + break; + } + } + if (!contained) + _bones.push(bone); + } + + for (i in 0...skin.constraints.length) { + var constraint:ConstraintData = skin.constraints[i]; + contained = false; + for (j in 0..._constraints.length) { + if (_constraints[j] == constraint) { + contained = true; + break; + } + } + if (!contained) + _constraints.push(constraint); + } + + var attachments:Vector = skin.getAttachments(); + for (i in 0...attachments.length) { + attachment = attachments[i]; + if (attachment.attachment == null) + continue; + if (Std.isOfType(attachment.attachment, MeshAttachment)) { + attachment.attachment = new MeshAttachment(attachment.attachment.name).newLinkedMesh(); + setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); + } else { + attachment.attachment = attachment.attachment.copy(); + setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); + } + } + } + + public function getAttachment(slotIndex:Int, name:String):Attachment { + if (slotIndex >= _attachments.length) + return null; + var dictionary:Dictionary = _attachments[slotIndex]; + return dictionary != null ? dictionary[name] : null; + } + + public function removeAttachment(slotIndex:Int, name:String):Void { + var dictionary:Dictionary = _attachments[slotIndex]; + if (dictionary != null) + dictionary[name] = null; + } + + public function getAttachments():Vector { + var entries:Vector = new Vector(); + for (slotIndex in 0..._attachments.length) { + var attachments:Dictionary = _attachments[slotIndex]; + if (attachments != null) { + for (name in attachments.iterator()) { + var attachment:Attachment = attachments[name]; + if (attachment != null) + entries.push(new SkinEntry(slotIndex, name, attachment)); + } + } + } + return entries; + } + + public function getAttachmentsForSlot(slotIndex:Int):Vector { + var entries:Vector = new Vector(); + var attachments:Dictionary = _attachments[slotIndex]; + if (attachments != null) { + for (name in attachments.iterator()) { + var attachment:Attachment = attachments[name]; + if (attachment != null) + entries.push(new SkinEntry(slotIndex, name, attachment)); + } + } + return entries; + } + + public function clear():Void { + _attachments.length = 0; + _bones.length = 0; + _constraints.length = 0; + } + + public var attachments(get, never):Vector>; + + private function get_attachments():Vector> { + return _attachments; + } + + public var bones(get, never):Vector; + + private function get_bones():Vector { + return _bones; + } + + public var constraints(get, never):Vector; + + private function get_constraints():Vector { + return _constraints; + } + + public var name(get, never):String; + + private function get_name():String { + return _name; + } + + /* + public function toString():String + { + return _name; + } + */ + /** Attach each attachment in this skin if the corresponding attachment in the old skin is currently attached. */ + public function attachAll(skeleton:Skeleton, oldSkin:Skin):Void { + var slotIndex:Int = 0; + for (slot in skeleton.slots) { + var slotAttachment:Attachment = slot.attachment; + if (slotAttachment != null && slotIndex < oldSkin.attachments.length) { + var dictionary:Dictionary = oldSkin.attachments[slotIndex]; + for (name in dictionary) { + var skinAttachment:Attachment = dictionary[name]; + if (slotAttachment == skinAttachment) { + var attachment:Attachment = getAttachment(slotIndex, name); + if (attachment != null) + slot.attachment = attachment; + break; + } + } + } + slotIndex++; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/SkinEntry.hx b/spine-haxe/spine-haxe/spine/SkinEntry.hx new file mode 100644 index 0000000000..43f43d9268 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/SkinEntry.hx @@ -0,0 +1,15 @@ +package spine; + +import spine.attachments.Attachment; + +class SkinEntry { + public var slotIndex:Int = 0; + public var name:String; + public var attachment:Attachment; + + public function new(slotIndex:Int, name:String, attachment:Attachment) { + this.slotIndex = slotIndex; + this.name = name; + this.attachment = attachment; + } +} diff --git a/spine-haxe/spine-haxe/spine/Slot.hx b/spine-haxe/spine-haxe/spine/Slot.hx new file mode 100644 index 0000000000..06518c98e7 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/Slot.hx @@ -0,0 +1,101 @@ +package spine; + +import openfl.errors.ArgumentError; +import openfl.Vector; +import spine.attachments.Attachment; +import spine.attachments.VertexAttachment; + +class Slot { + private var _data:SlotData; + private var _bone:Bone; + + public var color:Color; + public var darkColor:Color; + + private var _attachment:Attachment; + private var _attachmentTime:Float = 0; + + public var attachmentState:Int = 0; + public var deform:Vector = new Vector(); + + public function new(data:SlotData, bone:Bone) { + if (data == null) + throw new ArgumentError("data cannot be null."); + if (bone == null) + throw new ArgumentError("bone cannot be null."); + _data = data; + _bone = bone; + this.color = new Color(1, 1, 1, 1); + this.darkColor = data.darkColor == null ? null : new Color(1, 1, 1, 1); + setToSetupPose(); + } + + public var data(get, never):SlotData; + + private function get_data():SlotData { + return _data; + } + + public var bone(get, never):Bone; + + private function get_bone():Bone { + return _bone; + } + + public var skeleton(get, never):Skeleton; + + private function get_skeleton():Skeleton { + return _bone.skeleton; + } + + /** @return May be null. */ + public var attachment(get, set):Attachment; + + private function get_attachment():Attachment { + return _attachment; + } + + /** Sets the slot's attachment and, if the attachment changed, resets {@link #attachmentTime} and clears the {@link #deform}. + * The deform is not cleared if the old attachment has the same {@link VertexAttachment#getDeformAttachment()} as the specified attachment. + * @param attachment May be null. */ + public function set_attachment(attachmentNew:Attachment):Attachment { + if (attachment == attachmentNew) + return attachmentNew; + if (!Std.isOfType(attachmentNew, VertexAttachment) + || !Std.isOfType(attachment, VertexAttachment) + || cast(attachmentNew, VertexAttachment).deformAttachment != cast(attachment, VertexAttachment).deformAttachment) { + deform = new Vector(); + } + _attachment = attachmentNew; + _attachmentTime = skeleton.time; + return attachmentNew; + } + + public var attachmentTime(get, set):Float; + + private function set_attachmentTime(time:Float):Float { + _attachmentTime = skeleton.time - time; + return _attachmentTime; + } + + /** Returns the time since the attachment was set. */ + private function get_attachmentTime():Float { + return skeleton.time - _attachmentTime; + } + + public function setToSetupPose():Void { + color.setFromColor(data.color); + if (darkColor != null) + darkColor.setFromColor(data.darkColor); + if (_data.attachmentName == null) { + attachment = null; + } else { + _attachment = null; + attachment = skeleton.getAttachmentForSlotIndex(data.index, data.attachmentName); + } + } + + public function toString():String { + return _data.name != null ? _data.name : "Slot?"; + } +} diff --git a/spine-haxe/spine-haxe/spine/SlotData.hx b/spine-haxe/spine-haxe/spine/SlotData.hx new file mode 100644 index 0000000000..036ccb0af8 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/SlotData.hx @@ -0,0 +1,48 @@ +package spine; + +import openfl.errors.ArgumentError; + +class SlotData { + private var _index:Int; + private var _name:String; + private var _boneData:BoneData; + + public var color:Color = new Color(1, 1, 1, 1); + public var darkColor:Color = null; + public var attachmentName:String; + public var blendMode:BlendMode; + + public function new(index:Int, name:String, boneData:BoneData) { + if (index < 0) + throw new ArgumentError("index must be >= 0."); + if (name == null) + throw new ArgumentError("name cannot be null."); + if (boneData == null) + throw new ArgumentError("boneData cannot be null."); + _index = index; + _name = name; + _boneData = boneData; + } + + public var index(get, never):Int; + + private function get_index():Int { + return _index; + } + + public var name(get, never):String; + + private function get_name():String { + return _name; + } + + public var boneData(get, never):BoneData; + + private function get_boneData():BoneData { + return _boneData; + } + + public function toString():String { + return _name; + } +} diff --git a/spine-haxe/spine-haxe/spine/SpacingMode.hx b/spine-haxe/spine-haxe/spine/SpacingMode.hx new file mode 100644 index 0000000000..1c63dd4b3b --- /dev/null +++ b/spine-haxe/spine-haxe/spine/SpacingMode.hx @@ -0,0 +1,26 @@ +package spine; + +import openfl.Vector; + +class SpacingMode { + public static var length(default, never):SpacingMode = new SpacingMode("length"); + public static var fixed(default, never):SpacingMode = new SpacingMode("fixed"); + public static var percent(default, never):SpacingMode = new SpacingMode("percent"); + public static var proportional(default, never):SpacingMode = new SpacingMode("proportional"); + + public static var values(default, never):Vector = Vector.ofArray([length, fixed, percent, proportional]); + + public var name(default, null):String; + + public function new(name:String) { + this.name = name; + } + + public static function fromName(name:String):SpacingMode { + for (value in values) { + if (value.name == name) + return value; + } + return null; + } +} diff --git a/spine-haxe/spine-haxe/spine/TransformConstraint.hx b/spine-haxe/spine-haxe/spine/TransformConstraint.hx new file mode 100644 index 0000000000..16653ddaa3 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/TransformConstraint.hx @@ -0,0 +1,259 @@ +package spine; + +import openfl.errors.ArgumentError; +import openfl.Vector; + +class TransformConstraint implements Updatable { + private var _data:TransformConstraintData; + private var _bones:Vector; + + public var target:Bone; + public var mixRotate:Float = 0; + public var mixX:Float = 0; + public var mixY:Float = 0; + public var mixScaleX:Float = 0; + public var mixScaleY:Float = 0; + public var mixShearY:Float = 0; + + private var _temp:Vector = new Vector(2, true); + + public var active:Bool = false; + + public function new(data:TransformConstraintData, skeleton:Skeleton) { + if (data == null) + throw new ArgumentError("data cannot be null."); + if (skeleton == null) + throw new ArgumentError("skeleton cannot be null."); + _data = data; + mixRotate = data.mixRotate; + mixX = data.mixX; + mixY = data.mixY; + mixScaleX = data.mixScaleX; + mixScaleY = data.mixScaleY; + mixShearY = data.mixShearY; + _bones = new Vector(); + for (boneData in data.bones) { + _bones.push(skeleton.findBone(boneData.name)); + } + target = skeleton.findBone(data.target.name); + } + + public function isActive():Bool { + return active; + } + + public function update():Void { + if (mixRotate == 0 && mixX == 0 && mixY == 0 && mixScaleX == 0 && mixScaleX == 0 && mixShearY == 0) + return; + + if (data.local) { + if (data.relative) { + applyRelativeLocal(); + } else { + applyAbsoluteLocal(); + } + } else { + if (data.relative) { + applyRelativeWorld(); + } else { + applyAbsoluteWorld(); + } + } + } + + private function applyAbsoluteWorld():Void { + var translate:Bool = mixX != 0 || mixY != 0; + var ta:Float = target.a, + tb:Float = target.b, + tc:Float = target.c, + td:Float = target.d; + var degRadReflect:Float = ta * td - tb * tc > 0 ? MathUtils.degRad : -MathUtils.degRad; + var offsetRotation:Float = data.offsetRotation * degRadReflect; + var offsetShearY:Float = data.offsetShearY * degRadReflect; + for (bone in bones) { + if (mixRotate != 0) { + var a:Float = bone.a, + b:Float = bone.b, + c:Float = bone.c, + d:Float = bone.d; + var r:Float = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; + if (r > Math.PI) + r -= Math.PI * 2; + else if (r < -Math.PI) + r += Math.PI * 2; + r *= mixRotate; + var cos:Float = Math.cos(r), sin:Float = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + + if (translate) { + _temp[0] = data.offsetX; + _temp[1] = data.offsetY; + target.localToWorld(_temp); + bone.worldX += (_temp[0] - bone.worldX) * mixX; + bone.worldY += (_temp[1] - bone.worldY) * mixY; + } + + if (mixScaleX != 0) { + var s:Float = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + if (s != 0) + s = (s + (Math.sqrt(ta * ta + tc * tc) - s + _data.offsetScaleX) * mixScaleX) / s; + bone.a *= s; + bone.c *= s; + } + + if (mixScaleY != 0) { + var s:Float = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + if (s != 0) + s = (s + (Math.sqrt(tb * tb + td * td) - s + _data.offsetScaleY) * mixScaleY) / s; + bone.b *= s; + bone.d *= s; + } + + if (mixShearY > 0) { + var by:Float = Math.atan2(bone.d, bone.b); + var r:Float = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); + if (r > Math.PI) + r -= Math.PI * 2; + else if (r < -Math.PI) + r += Math.PI * 2; + r = by + (r + offsetShearY) * mixShearY; + var s:Float = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + } + + bone.updateAppliedTransform(); + } + } + + public function applyRelativeWorld():Void { + var translate:Bool = mixX != 0 || mixY != 0; + var ta:Float = target.a, + tb:Float = target.b, + tc:Float = target.c, + td:Float = target.d; + var degRadReflect:Float = ta * td - tb * tc > 0 ? MathUtils.degRad : -MathUtils.degRad; + var offsetRotation:Float = _data.offsetRotation * degRadReflect, + offsetShearY:Float = _data.offsetShearY * degRadReflect; + for (bone in bones) { + if (mixRotate != 0) { + var a:Float = bone.a, + b:Float = bone.b, + c:Float = bone.c, + d:Float = bone.d; + var r:Float = Math.atan2(tc, ta) + offsetRotation; + if (r > MathUtils.PI) + r -= MathUtils.PI2; + else if (r < -MathUtils.PI) + r += MathUtils.PI2; + r *= mixRotate; + var cos:Float = Math.cos(r), sin:Float = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + + if (translate) { + var temp:Vector = _temp; + temp[0] = _data.offsetX; + temp[1] = _data.offsetY; + target.localToWorld(temp); + bone.worldX += temp[0] * mixX; + bone.worldY += temp[1] * mixY; + } + + if (mixScaleX != 0) { + var s:Float = (Math.sqrt(ta * ta + tc * tc) - 1 + _data.offsetScaleX) * mixScaleX + 1; + bone.a *= s; + bone.c *= s; + } + + if (mixScaleY != 0) { + var s:Float = (Math.sqrt(tb * tb + td * td) - 1 + _data.offsetScaleY) * mixScaleY + 1; + bone.b *= s; + bone.d *= s; + } + + if (mixShearY > 0) { + var r = Math.atan2(td, tb) - Math.atan2(tc, ta); + if (r > MathUtils.PI) + r -= MathUtils.PI2; + else if (r < -MathUtils.PI) + r += MathUtils.PI2; + var b = bone.b; + var d = bone.d; + r = Math.atan2(d, b) + (r - MathUtils.PI / 2 + offsetShearY) * mixShearY; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + } + + bone.updateAppliedTransform(); + } + } + + public function applyAbsoluteLocal():Void { + for (bone in bones) { + var rotation:Float = bone.arotation; + if (mixRotate != 0) { + var r:Float = target.arotation - rotation + _data.offsetRotation; + r -= (16384 - (Std.int(16384.499999999996 - r / 360) | 0)) * 360; + rotation += r * mixRotate; + } + + var x:Float = bone.ax, y:Float = bone.ay; + x += (target.ax - x + _data.offsetX) * mixX; + y += (target.ay - y + _data.offsetY) * mixY; + + var scaleX:Float = bone.ascaleX, scaleY:Float = bone.ascaleY; + if (mixScaleX != 0 && scaleX != 0) { + scaleX = (scaleX + (target.ascaleX - scaleX + _data.offsetScaleX) * mixScaleX) / scaleX; + } + if (mixScaleY != 0 && scaleY != 0) { + scaleY = (scaleY + (target.ascaleY - scaleY + _data.offsetScaleY) * mixScaleX) / scaleY; + } + + var shearY:Float = bone.ashearY; + if (mixShearY != 0) { + var r:Float = target.ashearY - shearY + _data.offsetShearY; + r -= (16384 - (Std.int(16384.499999999996 - r / 360) | 0)) * 360; + bone.shearY += r * mixShearY; + } + + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + } + + public function applyRelativeLocal():Void { + for (bone in bones) { + var rotation:Float = bone.arotation + (target.arotation + _data.offsetRotation) * mixRotate; + var x:Float = bone.ax + (target.ax + _data.offsetX) * mixX; + var y:Float = bone.ay + (target.ay + _data.offsetY) * mixY; + var scaleX:Float = bone.ascaleX * (((target.ascaleX - 1 + _data.offsetScaleX) * mixScaleX) + 1); + var scaleY:Float = bone.ascaleY * (((target.ascaleY - 1 + _data.offsetScaleY) * mixScaleY) + 1); + var shearY:Float = bone.ashearY + (target.ashearY + _data.offsetShearY) * mixShearY; + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + } + + public var data(get, never):TransformConstraintData; + + private function get_data():TransformConstraintData { + return _data; + } + + public var bones(get, never):Vector; + + private function get_bones():Vector { + return _bones; + } + + public function toString():String { + return _data.name != null ? _data.name : "TransformConstraint?"; + } +} diff --git a/spine-haxe/spine-haxe/spine/TransformConstraintData.hx b/spine-haxe/spine-haxe/spine/TransformConstraintData.hx new file mode 100644 index 0000000000..5bc35ea01f --- /dev/null +++ b/spine-haxe/spine-haxe/spine/TransformConstraintData.hx @@ -0,0 +1,33 @@ +package spine; + +import openfl.Vector; + +class TransformConstraintData extends ConstraintData { + private var _bones:Vector = new Vector(); + + public var target:BoneData; + public var mixRotate:Float = 0; + public var mixX:Float = 0; + public var mixY:Float = 0; + public var mixScaleX:Float = 0; + public var mixScaleY:Float = 0; + public var mixShearY:Float = 0; + public var offsetRotation:Float = 0; + public var offsetX:Float = 0; + public var offsetY:Float = 0; + public var offsetScaleX:Float = 0; + public var offsetScaleY:Float = 0; + public var offsetShearY:Float = 0; + public var relative:Bool = false; + public var local:Bool = false; + + public function new(name:String) { + super(name, 0, false); + } + + public var bones(get, never):Vector; + + private function get_bones():Vector { + return _bones; + } +} diff --git a/spine-haxe/spine-haxe/spine/TransformMode.hx b/spine-haxe/spine-haxe/spine/TransformMode.hx new file mode 100644 index 0000000000..5f843daf78 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/TransformMode.hx @@ -0,0 +1,27 @@ +package spine; + +import openfl.Vector; + +class TransformMode { + public static var normal(default, never):TransformMode = new TransformMode("normal"); + public static var onlyTranslation(default, never):TransformMode = new TransformMode("onlyTranslation"); + public static var noRotationOrReflection(default, never):TransformMode = new TransformMode("noRotationOrReflection"); + public static var noScale(default, never):TransformMode = new TransformMode("noScale"); + public static var noScaleOrReflection(default, never):TransformMode = new TransformMode("noScaleOrReflection"); + + public static var values:Vector = Vector.ofArray([normal, onlyTranslation, noRotationOrReflection, noScale, noScaleOrReflection]); + + public var name(default, null):String; + + public function new(name:String) { + this.name = name; + } + + public static function fromName(name:String):TransformMode { + for (value in values) { + if (value.name == name) + return value; + } + return null; + } +} diff --git a/spine-haxe/spine-haxe/spine/Triangulator.hx b/spine-haxe/spine-haxe/spine/Triangulator.hx new file mode 100644 index 0000000000..c7ca33e54c --- /dev/null +++ b/spine-haxe/spine-haxe/spine/Triangulator.hx @@ -0,0 +1,283 @@ +package spine; + +import openfl.Vector; + +class Triangulator { + private var convexPolygons:Vector> = new Vector>(); + private var convexPolygonsIndices:Vector> = new Vector>(); + private var indicesArray:Vector = new Vector(); + private var isConcaveArray:Vector = new Vector(); + private var triangles:Vector = new Vector(); + private var polygonPool:Pool> = new Pool(function():Dynamic { + return new Vector(); + }); + private var polygonIndicesPool:Pool> = new Pool(function():Dynamic { + return new Vector(); + }); + + public function new() {} + + public function triangulate(vertices:Vector):Vector { + var vertexCount:Int = vertices.length >> 1; + + indicesArray.length = 0; + for (i in 0...vertexCount) { + indicesArray.push(i); + } + + isConcaveArray.length = 0; + for (i in 0...vertexCount) { + isConcaveArray.push(isConcave(i, vertexCount, vertices, indicesArray)); + } + + triangles.length = 0; + + while (vertexCount > 3) { + // Find ear tip. + var previous:Int = vertexCount - 1, next:Int = 1; + var i:Int = 0; + while (true) { + if (!isConcaveArray[i]) { + var p1:Int = indicesArray[previous] << 1, + p2:Int = indicesArray[i] << 1, + p3:Int = indicesArray[next] << 1; + var p1x:Float = vertices[p1], p1y:Float = vertices[p1 + 1]; + var p2x:Float = vertices[p2], p2y:Float = vertices[p2 + 1]; + var p3x:Float = vertices[p3], p3y:Float = vertices[p3 + 1]; + var ii:Int = (next + 1) % vertexCount; + while (ii != previous) { + if (!isConcaveArray[ii]) { + ii = (ii + 1) % vertexCount; + continue; + } + var v:Int = indicesArray[ii] << 1; + var vx:Float = vertices[v]; + var vy:Float = vertices[v + 1]; + if (positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { + if (positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { + if (positiveArea(p2x, p2y, p3x, p3y, vx, vy)) { + break; + } + } + } + ii = (ii + 1) % vertexCount; + } + break; + } + + if (next == 0) { + do { + if (!isConcaveArray[i]) + break; + i--; + } while (i > 0); + break; + } + + previous = i; + i = next; + next = (next + 1) % vertexCount; + } + + // Cut ear tip. + triangles.push(indicesArray[(vertexCount + i - 1) % vertexCount]); + triangles.push(indicesArray[i]); + triangles.push(indicesArray[(i + 1) % vertexCount]); + indicesArray.splice(i, 1); + isConcaveArray.splice(i, 1); + vertexCount--; + + var previousIndex:Int = (vertexCount + i - 1) % vertexCount; + var nextIndex:Int = i == vertexCount ? 0 : i; + isConcaveArray[previousIndex] = isConcave(previousIndex, vertexCount, vertices, indicesArray); + isConcaveArray[nextIndex] = isConcave(nextIndex, vertexCount, vertices, indicesArray); + } + + if (vertexCount == 3) { + triangles.push(indicesArray[2]); + triangles.push(indicesArray[0]); + triangles.push(indicesArray[1]); + } + + return triangles; + } + + public function decompose(vertices:Vector, triangles:Vector):Vector> { + for (i in 0...convexPolygons.length) { + this.polygonPool.free(convexPolygons[i]); + } + convexPolygons.length = 0; + + for (i in 0...convexPolygonsIndices.length) { + this.polygonIndicesPool.free(convexPolygonsIndices[i]); + } + convexPolygonsIndices.length = 0; + + var polygonIndices:Vector = polygonIndicesPool.obtain(); + polygonIndices.length = 0; + + var polygon:Vector = polygonPool.obtain(); + polygon.length = 0; + + // Merge subsequent triangles if they form a triangle fan. + var fanBaseIndex:Int = -1, lastWinding:Int = 0; + var x1:Float, y1:Float, x2:Float, y2:Float, x3:Float, y3:Float; + var winding1:Int, winding2:Int, o:Int; + var i:Int = 0; + while (i < triangles.length) { + var t1:Int = triangles[i] << 1, + t2:Int = triangles[i + 1] << 1, + t3:Int = triangles[i + 2] << 1; + x1 = vertices[t1]; + y1 = vertices[t1 + 1]; + x2 = vertices[t2]; + y2 = vertices[t2 + 1]; + x3 = vertices[t3]; + y3 = vertices[t3 + 1]; + + // If the base of the last triangle is the same as this triangle, check if they form a convex polygon (triangle fan). + var merged:Bool = false; + if (fanBaseIndex == t1) { + o = polygon.length - 4; + winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); + winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); + if (winding1 == lastWinding && winding2 == lastWinding) { + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(t3); + merged = true; + } + } + + // Otherwise make this triangle the new base. + if (!merged) { + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } else { + polygonPool.free(polygon); + polygonIndicesPool.free(polygonIndices); + } + polygon = polygonPool.obtain(); + polygon.length = 0; + polygon.push(x1); + polygon.push(y1); + polygon.push(x2); + polygon.push(y2); + polygon.push(x3); + polygon.push(y3); + polygonIndices = polygonIndicesPool.obtain(); + polygonIndices.length = 0; + polygonIndices.push(t1); + polygonIndices.push(t2); + polygonIndices.push(t3); + lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); + fanBaseIndex = t1; + } + + i += 3; + } + + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + + // Go through the list of polygons and try to merge the remaining triangles with the found triangle fans. + i = 0; + var n:Int = convexPolygons.length; + while (i < n) { + polygonIndices = convexPolygonsIndices[i]; + if (polygonIndices.length == 0) { + i++; + continue; + } + var firstIndex:Int = polygonIndices[0]; + var lastIndex:Int = polygonIndices[polygonIndices.length - 1]; + + polygon = convexPolygons[i]; + o = polygon.length - 4; + var prevPrevX:Float = polygon[o], prevPrevY:Float = polygon[o + 1]; + var prevX:Float = polygon[o + 2], prevY:Float = polygon[o + 3]; + var firstX:Float = polygon[0], firstY:Float = polygon[1]; + var secondX:Float = polygon[2], secondY:Float = polygon[3]; + var currWinding:Int = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); + + var ii:Int = 0; + while (ii < n) { + if (ii == i) { + ii++; + continue; + } + var otherIndices:Vector = convexPolygonsIndices[ii]; + if (otherIndices.length != 3) { + ii++; + continue; + } + var otherFirstIndex:Int = otherIndices[0]; + var otherSecondIndex:Int = otherIndices[1]; + var otherLastIndex:Int = otherIndices[2]; + + var otherPoly:Vector = convexPolygons[ii]; + x3 = otherPoly[otherPoly.length - 2]; + y3 = otherPoly[otherPoly.length - 1]; + + if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) { + ii++; + continue; + } + winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); + winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); + if (winding1 == currWinding && winding2 == currWinding) { + otherPoly.length = 0; + otherIndices.length = 0; + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(otherLastIndex); + prevPrevX = prevX; + prevPrevY = prevY; + prevX = x3; + prevY = y3; + ii = 0; + } + + ii++; + } + + i++; + } + + // Remove empty polygons that resulted from the merge step above. + i = convexPolygons.length - 1; + while (i >= 0) { + polygon = convexPolygons[i]; + if (polygon.length == 0) { + convexPolygons.splice(i, 1); + this.polygonPool.free(polygon); + polygonIndices = convexPolygonsIndices[i]; + convexPolygonsIndices.splice(i, 1); + this.polygonIndicesPool.free(polygonIndices); + } + + i--; + } + + return convexPolygons; + } + + private static function isConcave(index:Int, vertexCount:Int, vertices:Vector, indices:Vector):Bool { + var previous:Int = indices[(vertexCount + index - 1) % vertexCount] << 1; + var current:Int = indices[index] << 1; + var next:Int = indices[(index + 1) % vertexCount] << 1; + return !positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); + } + + private static function positiveArea(p1x:Float, p1y:Float, p2x:Float, p2y:Float, p3x:Float, p3y:Float):Bool { + return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; + } + + private static function winding(p1x:Float, p1y:Float, p2x:Float, p2y:Float, p3x:Float, p3y:Float):Int { + var px:Float = p2x - p1x, py:Float = p2y - p1y; + return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; + } +} diff --git a/spine-haxe/spine-haxe/spine/Updatable.hx b/spine-haxe/spine-haxe/spine/Updatable.hx new file mode 100644 index 0000000000..f83624c4bf --- /dev/null +++ b/spine-haxe/spine-haxe/spine/Updatable.hx @@ -0,0 +1,7 @@ +package spine; + +interface Updatable { + function update():Void; + + function isActive():Bool; +} diff --git a/spine-haxe/spine-haxe/spine/Vertex.hx b/spine-haxe/spine-haxe/spine/Vertex.hx new file mode 100644 index 0000000000..61d4b9abe1 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/Vertex.hx @@ -0,0 +1,15 @@ +package spine; + +/** + * @author badlogic + */ +class Vertex { + public var x:Float = 0; + public var y:Float = 0; + public var u:Float = 0; + public var v:Float = 0; + public var light:Color = new spine.Color(0, 0, 0); + public var dark:Color = new spine.Color(0, 0, 0); + + public function new() {} +} diff --git a/spine-haxe/spine-haxe/spine/VertexEffect.hx b/spine-haxe/spine-haxe/spine/VertexEffect.hx new file mode 100644 index 0000000000..611d1665c2 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/VertexEffect.hx @@ -0,0 +1,9 @@ +package spine; + +interface VertexEffect { + function begin(skeleton:Skeleton):Void; + + function transform(vertex:Vertex):Void; + + function end():Void; +} diff --git a/spine-haxe/spine-haxe/spine/animation/AlphaTimeline.hx b/spine-haxe/spine-haxe/spine/animation/AlphaTimeline.hx new file mode 100644 index 0000000000..47ac521403 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/AlphaTimeline.hx @@ -0,0 +1,57 @@ +package spine.animation; + +import openfl.Vector; +import spine.Event; +import spine.Skeleton; +import spine.Slot; + +class AlphaTimeline extends CurveTimeline1 implements SlotTimeline { + private static inline var ENTRIES:Int = 4; + private static inline var R:Float = 1; + private static inline var G:Float = 2; + private static inline var B:Float = 3; + + private var slotIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, slotIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.alpha + "|" + slotIndex])); + this.slotIndex = slotIndex; + } + + public override function getFrameEntries():Int { + return ENTRIES; + } + + public function getSlotIndex():Int { + return slotIndex; + } + + public override function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var slot:Slot = skeleton.slots[slotIndex]; + if (!slot.bone.active) + return; + + var color:Color = slot.color; + if (time < frames[0]) // Time is before first frame. + { + var setup:Color = slot.data.color; + switch (blend) { + case MixBlend.setup: + color.a = setup.a; + case MixBlend.first: + color.a += (setup.a - color.a) * alpha; + } + return; + } + + var a:Float = getCurveValue(time); + if (alpha == 1) { + color.a = a; + } else { + if (blend == MixBlend.setup) + color.a = slot.data.color.a; + color.a += (a - color.a) * alpha; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/Animation.hx b/spine-haxe/spine-haxe/spine/animation/Animation.hx new file mode 100644 index 0000000000..47bd508be5 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/Animation.hx @@ -0,0 +1,72 @@ +package spine.animation; + +import openfl.errors.ArgumentError; +import openfl.utils.Dictionary; +import openfl.Vector; +import spine.Event; +import spine.Skeleton; + +class Animation { + private var _name:String; + private var _timelines:Vector; + private var _timelineIds:Dictionary = new Dictionary(); + + public var duration:Float = 0; + + public function new(name:String, timelines:Vector, duration:Float) { + if (name == null) + throw new ArgumentError("name cannot be null."); + if (timelines == null) + throw new ArgumentError("timelines cannot be null."); + _name = name; + _timelines = timelines; + for (timeline in timelines) { + var ids:Vector = timeline.propertyIds; + for (id in ids) { + _timelineIds[id] = true; + } + } + this.duration = duration; + } + + public function hasTimeline(ids:Vector):Bool { + for (id in ids) { + if (_timelineIds[id]) + return true; + } + return false; + } + + /** Poses the skeleton at the specified time for this animation. */ + public function apply(skeleton:Skeleton, lastTime:Float, time:Float, loop:Bool, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + if (skeleton == null) + throw new ArgumentError("skeleton cannot be null."); + + if (loop && duration != 0) { + time %= duration; + if (lastTime > 0) + lastTime %= duration; + } + + for (timeline in timelines) { + timeline.apply(skeleton, lastTime, time, events, alpha, blend, direction); + } + } + + public var name(get, never):String; + + private function get_name():String { + return _name; + } + + public function toString():String { + return _name; + } + + public var timelines(get, never):Vector; + + private function get_timelines():Vector { + return _timelines; + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/AnimationState.hx b/spine-haxe/spine-haxe/spine/animation/AnimationState.hx new file mode 100644 index 0000000000..06ba4f1c4b --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/AnimationState.hx @@ -0,0 +1,686 @@ +package spine.animation; + +import starling.utils.Max; +import openfl.errors.ArgumentError; +import openfl.utils.Dictionary; +import openfl.Vector; +import spine.animation.Listeners.EventListeners; +import spine.Event; +import spine.Pool; +import spine.Skeleton; + +class AnimationState { + public static inline var SUBSEQUENT:Int = 0; + public static inline var FIRST:Int = 1; + public static inline var HOLD_SUBSEQUENT:Int = 2; + public static inline var HOLD_FIRST:Int = 3; + public static inline var HOLD_MIX:Int = 4; + public static inline var SETUP:Int = 1; + public static inline var CURRENT:Int = 2; + + private static var emptyAnimation:Animation = new Animation("", new Vector(), 0); + + public var data:AnimationStateData; + public var tracks:Vector = new Vector(); + + private var events:Vector = new Vector(); + + public var onStart:Listeners = new Listeners(); + public var onInterrupt:Listeners = new Listeners(); + public var onEnd:Listeners = new Listeners(); + public var onDispose:Listeners = new Listeners(); + public var onComplete:Listeners = new Listeners(); + public var onEvent:EventListeners = new EventListeners(); + + private var queue:EventQueue; + private var propertyIDs:StringSet = new StringSet(); + + public var animationsChanged:Bool = false; + public var timeScale:Float = 1; + public var trackEntryPool:Pool; + + private var unkeyedState:Int = 0; + + public function new(data:AnimationStateData) { + if (data == null) + throw new ArgumentError("data can not be null"); + this.data = data; + this.queue = new EventQueue(this); + this.trackEntryPool = new Pool(function():Dynamic { + return new TrackEntry(); + }); + } + + public function update(delta:Float):Void { + delta *= timeScale; + for (i in 0...tracks.length) { + var current:TrackEntry = tracks[i]; + if (current == null) + continue; + + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + + var currentDelta:Float = delta * current.timeScale; + + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) + continue; + currentDelta = -current.delay; + current.delay = 0; + } + + var next:TrackEntry = current.next; + if (next != null) { + // When the next entry's delay is passed, change to the next entry, preserving leftover time. + var nextTime:Float = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime = current.timeScale == 0 ? 0 : (nextTime / current.timeScale + delta) * next.timeScale; + current.trackTime += currentDelta; + setCurrent(i, next, true); + while (next.mixingFrom != null) { + next.mixTime += currentDelta; + next = next.mixingFrom; + } + continue; + } + } else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + // Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom. + tracks[i] = null; + queue.end(current); + clearNext(current); + continue; + } + + if (current.mixingFrom != null && updateMixingFrom(current, delta)) { + // End mixing from entries once all have completed. + var from:TrackEntry = current.mixingFrom; + current.mixingFrom = null; + if (from != null) + from.mixingTo = null; + while (from != null) { + queue.end(from); + from = from.mixingFrom; + } + } + + current.trackTime += currentDelta; + } + + queue.drain(); + } + + private function updateMixingFrom(to:TrackEntry, delta:Float):Bool { + var from:TrackEntry = to.mixingFrom; + if (from == null) + return true; + + var finished:Bool = updateMixingFrom(from, delta); + + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + + // Require mixTime > 0 to ensure the mixing from entry was applied at least once. + if (to.mixTime > 0 && to.mixTime >= to.mixDuration) { + // Require totalAlpha == 0 to ensure mixing is complete, unless mixDuration == 0 (the transition is a single frame). + if (from.totalAlpha == 0 || to.mixDuration == 0) { + to.mixingFrom = from.mixingFrom; + if (from.mixingFrom != null) + from.mixingFrom.mixingTo = to; + to.interruptAlpha = from.interruptAlpha; + queue.end(from); + } + return finished; + } + + from.trackTime += delta * from.timeScale; + to.mixTime += delta; + return false; + } + + public function apply(skeleton:Skeleton):Bool { + if (skeleton == null) + throw new ArgumentError("skeleton cannot be null."); + if (animationsChanged) + _animationsChanged(); + var applied:Bool = false; + + for (i in 0...tracks.length) { + var current:TrackEntry = tracks[i]; + if (current == null || current.delay > 0) + continue; + applied = true; + var blend:MixBlend = i == 0 ? MixBlend.first : current.mixBlend; + + // Apply mixing from entries first. + var mix:Float = current.alpha; + if (current.mixingFrom != null) { + mix *= applyMixingFrom(current, skeleton, blend); + } else if (current.trackTime >= current.trackEnd && current.next == null) { + mix = 0; + } + + // Apply current entry. + var animationLast:Float = current.animationLast, + animationTime:Float = current.getAnimationTime(), + applyTime:Float = animationTime; + var applyEvents:Vector = events; + if (current.reverse) { + applyTime = current.animation.duration - applyTime; + applyEvents = null; + } + var timelines:Vector = current.animation.timelines; + var timelineCount:Int = timelines.length; + var timeline:Timeline; + if ((i == 0 && mix == 1) || blend == MixBlend.add) { + for (timeline in timelines) { + timeline.apply(skeleton, animationLast, applyTime, applyEvents, mix, blend, MixDirection.mixIn); + } + } else { + var timelineMode:Vector = current.timelineMode; + + var firstFrame:Bool = current.timelinesRotation.length == 0; + if (firstFrame) + current.timelinesRotation.length = timelineCount << 1; + + for (ii in 0...timelineCount) { + var timeline:Timeline = timelines[ii]; + var timelineBlend:MixBlend = timelineMode[ii] == SUBSEQUENT ? blend : MixBlend.setup; + timeline.apply(skeleton, animationLast, applyTime, applyEvents, mix, timelineBlend, MixDirection.mixIn); + } + } + queueEvents(current, animationTime); + events.length = 0; + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + + // Set slots attachments to the setup pose, if needed. This occurs if an animation that is mixing out sets attachments so + // subsequent timelines see any deform, but the subsequent timelines don't set an attachment (eg they are also mixing out or + // the time is before the first key). + var setupState:Int = unkeyedState + SETUP; + for (slot in skeleton.slots) { + if (slot.attachmentState == setupState) { + var attachmentName:String = slot.data.attachmentName; + slot.attachment = attachmentName == null ? null : skeleton.getAttachmentForSlotIndex(slot.data.index, attachmentName); + } + } + unkeyedState += 2; // Increasing after each use avoids the need to reset attachmentState for every slot. + + queue.drain(); + return applied; + } + + private function applyMixingFrom(to:TrackEntry, skeleton:Skeleton, blend:MixBlend):Float { + var from:TrackEntry = to.mixingFrom; + if (from.mixingFrom != null) + applyMixingFrom(from, skeleton, blend); + + var mix:Float = 0; + if (to.mixDuration == 0) // Single frame mix to undo mixingFrom changes. + { + mix = 1; + if (blend == MixBlend.first) + blend = MixBlend.setup; + } else { + mix = to.mixTime / to.mixDuration; + if (mix > 1) + mix = 1; + if (blend != MixBlend.first) + blend = from.mixBlend; + } + + var attachments:Bool = mix < from.attachmentThreshold, + drawOrder:Bool = mix < from.drawOrderThreshold; + var timelineCount:Int = from.animation.timelines.length; + var timelines:Vector = from.animation.timelines; + var alphaHold:Float = from.alpha * to.interruptAlpha, + alphaMix:Float = alphaHold * (1 - mix); + var animationLast:Float = from.animationLast, + animationTime:Float = from.getAnimationTime(), + applyTime:Float = animationTime; + var applyEvents:Vector = null; + if (from.reverse) { + applyTime = from.animation.duration - applyTime; + } else if (mix < from.eventThreshold) { + applyEvents = events; + } + + if (blend == MixBlend.add) { + for (timeline in timelines) { + timeline.apply(skeleton, animationLast, applyTime, applyEvents, alphaMix, blend, MixDirection.mixOut); + } + } else { + var timelineMode:Vector = from.timelineMode; + var timelineHoldMix:Vector = from.timelineHoldMix; + + var firstFrame:Bool = from.timelinesRotation.length != timelineCount << 1; + if (firstFrame) + from.timelinesRotation.length = timelineCount << 1; + var timelinesRotation:Vector = from.timelinesRotation; + + from.totalAlpha = 0; + for (i in 0...timelineCount) { + var timeline:Timeline = timelines[i]; + var direction:MixDirection = MixDirection.mixOut; + var timelineBlend:MixBlend; + var alpha:Float = 0; + switch (timelineMode[i]) { + case SUBSEQUENT: + if (!drawOrder && Std.isOfType(timeline, DrawOrderTimeline)) + continue; + timelineBlend = blend; + alpha = alphaMix; + case FIRST: + timelineBlend = MixBlend.setup; + alpha = alphaMix; + case HOLD_SUBSEQUENT: + timelineBlend = blend; + alpha = alphaHold; + case HOLD_FIRST: + timelineBlend = MixBlend.setup; + alpha = alphaHold; + default: + timelineBlend = MixBlend.setup; + var holdMix:TrackEntry = timelineHoldMix[i]; + alpha = alphaHold * Math.max(0, 1 - holdMix.mixTime / holdMix.mixDuration); + } + + from.totalAlpha += alpha; + + if (drawOrder && Std.isOfType(timeline, DrawOrderTimeline) && timelineBlend == MixBlend.setup) + direction = MixDirection.mixIn; + timeline.apply(skeleton, animationLast, applyTime, applyEvents, alpha, timelineBlend, direction); + } + } + + if (to.mixDuration > 0) + queueEvents(from, animationTime); + events.length = 0; + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + + return mix; + } + + private function setAttachment(skeleton:Skeleton, slot:Slot, attachmentName:String, attachments:Bool):Void { + slot.attachment = attachmentName == null ? null : skeleton.getAttachmentForSlotIndex(slot.data.index, attachmentName); + if (attachments) + slot.attachmentState = unkeyedState + CURRENT; + } + + private function queueEvents(entry:TrackEntry, animationTime:Float):Void { + var animationStart:Float = entry.animationStart, + animationEnd:Float = entry.animationEnd; + var duration:Float = animationEnd - animationStart; + var trackLastWrapped:Float = entry.trackLast % duration; + + // Queue events before complete. + var event:Event; + var i:Int = 0; + var n:Int = events.length; + while (i < n) { + event = events[i++]; + if (event == null) + continue; + if (event.time < trackLastWrapped) + break; + if (event.time > animationEnd) + continue; // Discard events outside animation start/end. + queue.event(entry, event); + } + + // Queue complete if completed a loop iteration or the animation. + var complete:Bool; + if (entry.loop) { + complete = duration == 0 || trackLastWrapped > entry.trackTime % duration; + } else { + complete = animationTime >= animationEnd && entry.animationLast < animationEnd; + } + if (complete) + queue.complete(entry); + + // Queue events after complete. + while (i < n) { + event = events[i++]; + if (event == null) + continue; + if (event.time < animationStart) + continue; // Discard events outside animation start/end. + queue.event(entry, event); + } + } + + public function clearTracks():Void { + var oldTrainDisabled:Bool = queue.drainDisabled; + queue.drainDisabled = true; + for (i in 0...tracks.length) { + clearTrack(i); + } + tracks.length = 0; + queue.drainDisabled = oldTrainDisabled; + queue.drain(); + } + + public function clearTrack(trackIndex:Int):Void { + if (trackIndex >= tracks.length) + return; + var current:TrackEntry = tracks[trackIndex]; + if (current == null) + return; + + queue.end(current); + clearNext(current); + + var entry:TrackEntry = current; + while (true) { + var from:TrackEntry = entry.mixingFrom; + if (from == null) + break; + queue.end(from); + entry.mixingFrom = null; + entry.mixingTo = null; + entry = from; + } + + tracks[current.trackIndex] = null; + + queue.drain(); + } + + private function setCurrent(index:Int, current:TrackEntry, interrupt:Bool):Void { + var from:TrackEntry = expandToIndex(index); + tracks[index] = current; + + if (from != null) { + if (interrupt) + queue.interrupt(from); + current.mixingFrom = from; + from.mixingTo = current; + current.mixTime = 0; + + // Store the interrupted mix percentage. + if (from.mixingFrom != null && from.mixDuration > 0) { + current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); + } + + from.timelinesRotation.length = 0; // Reset rotation for mixing out, in case entry was mixed in. + } + + queue.start(current); + } + + public function setAnimationByName(trackIndex:Int, animationName:String, loop:Bool):TrackEntry { + var animation:Animation = data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new ArgumentError("Animation not found: " + animationName); + return setAnimation(trackIndex, animation, loop); + } + + public function setAnimation(trackIndex:Int, animation:Animation, loop:Bool):TrackEntry { + if (animation == null) + throw new ArgumentError("animation cannot be null."); + var interrupt:Bool = true; + var current:TrackEntry = expandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + // Don't mix from an entry that was never applied. + tracks[trackIndex] = current.mixingFrom; + queue.interrupt(current); + queue.end(current); + clearNext(current); + current = current.mixingFrom; + interrupt = false; + } else { + clearNext(current); + } + } + var entry:TrackEntry = trackEntry(trackIndex, animation, loop, current); + setCurrent(trackIndex, entry, interrupt); + queue.drain(); + return entry; + } + + public function addAnimationByName(trackIndex:Int, animationName:String, loop:Bool, delay:Float):TrackEntry { + var animation:Animation = data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new ArgumentError("Animation not found: " + animationName); + return addAnimation(trackIndex, animation, loop, delay); + } + + public function addAnimation(trackIndex:Int, animation:Animation, loop:Bool, delay:Float):TrackEntry { + if (animation == null) + throw new ArgumentError("animation cannot be null."); + + var last:TrackEntry = expandToIndex(trackIndex); + if (last != null) { + while (last.next != null) { + last = last.next; + } + } + + var entry:TrackEntry = trackEntry(trackIndex, animation, loop, last); + + if (last == null) { + setCurrent(trackIndex, entry, true); + queue.drain(); + } else { + last.next = entry; + entry.previous = last; + if (delay <= 0) + delay += last.getTrackComplete() - entry.mixDuration; + } + + entry.delay = delay; + return entry; + } + + public function setEmptyAnimation(trackIndex:Int, mixDuration:Float):TrackEntry { + var entry:TrackEntry = setAnimation(trackIndex, emptyAnimation, false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + } + + public function addEmptyAnimation(trackIndex:Int, mixDuration:Float, delay:Float):TrackEntry { + var entry:TrackEntry = addAnimation(trackIndex, emptyAnimation, false, delay); + if (delay <= 0) + entry.delay += entry.mixDuration - mixDuration; + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + } + + public function setEmptyAnimations(mixDuration:Float):Void { + var oldDrainDisabled:Bool = queue.drainDisabled; + queue.drainDisabled = true; + for (i in 0...tracks.length) { + var current:TrackEntry = tracks[i]; + if (current != null) + setEmptyAnimation(current.trackIndex, mixDuration); + } + queue.drainDisabled = oldDrainDisabled; + queue.drain(); + } + + private function expandToIndex(index:Int):TrackEntry { + if (index < tracks.length) + return tracks[index]; + tracks.length = index + 1; + return null; + } + + private function trackEntry(trackIndex:Int, animation:Animation, loop:Bool, last:TrackEntry):TrackEntry { + var entry:TrackEntry = cast(trackEntryPool.obtain(), TrackEntry); + entry.trackIndex = trackIndex; + entry.animation = animation; + entry.loop = loop; + entry.holdPrevious = false; + + entry.eventThreshold = 0; + entry.attachmentThreshold = 0; + entry.drawOrderThreshold = 0; + + entry.animationStart = 0; + entry.animationEnd = animation.duration; + entry.animationLast = -1; + entry.nextAnimationLast = -1; + + entry.delay = 0; + entry.trackTime = 0; + entry.trackLast = -1; + entry.nextTrackLast = -1; + entry.trackEnd = Max.INT_MAX_VALUE; + entry.timeScale = 1; + + entry.alpha = 1; + entry.interruptAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : data.getMix(last.animation, animation); + entry.mixBlend = MixBlend.replace; + return entry; + } + + /** Removes the {@link TrackEntry#getNext() next entry} and all entries after it for the specified entry. */ + public function clearNext(entry:TrackEntry):Void { + var next:TrackEntry = entry.next; + while (next != null) { + queue.dispose(next); + next = next.next; + } + entry.next = null; + } + + private function _animationsChanged():Void { + animationsChanged = false; + + propertyIDs.clear(); + var entry:TrackEntry = null; + for (i in 0...tracks.length) { + entry = tracks[i]; + if (entry == null) + continue; + while (entry.mixingFrom != null) { + entry = entry.mixingFrom; + } + do { + if (entry.mixingTo == null || entry.mixBlend != MixBlend.add) + computeHold(entry); + entry = entry.mixingTo; + } while (entry != null); + } + } + + private function computeHold(entry:TrackEntry):Void { + var to:TrackEntry = entry.mixingTo; + var timelines:Vector = entry.animation.timelines; + var timelinesCount:Int = entry.animation.timelines.length; + var timelineMode:Vector = entry.timelineMode; + timelineMode.length = timelinesCount; + entry.timelineHoldMix.length = 0; + var timelineHoldMix:Vector = entry.timelineHoldMix; + timelineHoldMix.length = timelinesCount; + + if (to != null && to.holdPrevious) { + for (i in 0...timelinesCount) { + timelineMode[i] = propertyIDs.addAll(timelines[i].propertyIds) ? HOLD_FIRST : HOLD_SUBSEQUENT; + } + return; + } + + var continueOuter:Bool; + for (i in 0...timelinesCount) { + continueOuter = false; + var timeline:Timeline = timelines[i]; + var ids:Vector = timeline.propertyIds; + if (!propertyIDs.addAll(ids)) { + timelineMode[i] = SUBSEQUENT; + } else if (to == null + || Std.isOfType(timeline, AttachmentTimeline) + || Std.isOfType(timeline, DrawOrderTimeline) + || Std.isOfType(timeline, EventTimeline) + || !to.animation.hasTimeline(ids)) { + timelineMode[i] = FIRST; + } else { + var next:TrackEntry = to.mixingTo; + while (next != null) { + if (next.animation.hasTimeline(ids)) { + next = next.mixingTo; + continue; + } + if (entry.mixDuration > 0) { + timelineMode[i] = HOLD_MIX; + timelineHoldMix[i] = next; + continueOuter = true; + break; + } + break; + } + if (continueOuter) + continue; + timelineMode[i] = HOLD_FIRST; + } + } + } + + public function getCurrent(trackIndex:Int):TrackEntry { + if (trackIndex >= tracks.length) + return null; + return tracks[trackIndex]; + } + + public var fHasEndListener(get, never):Bool; + + private function get_fHasEndListener():Bool { + return onComplete.listeners.length > 0 || onEnd.listeners.length > 0; + } + + public function clearListeners():Void { + onStart.listeners.length = 0; + onInterrupt.listeners.length = 0; + onEnd.listeners.length = 0; + onDispose.listeners.length = 0; + onComplete.listeners.length = 0; + onEvent.listeners.length = 0; + } + + public function clearListenerNotifications():Void { + queue.clear(); + } +} + +class StringSet { + private var entries:Dictionary = new Dictionary(); + private var size:Int = 0; + + public function new() {} + + public function add(value:String):Bool { + var contains:Bool = entries[value]; + entries[value] = true; + if (!contains) { + size++; + return true; + } + return false; + } + + public function addAll(values:Vector):Bool { + var oldSize:Int = size; + for (i in 0...values.length) { + add(values[i]); + } + return oldSize != size; + } + + public function contains(value:String):Bool { + return entries[value]; + } + + public function clear():Void { + entries = new Dictionary(); + size = 0; + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/AnimationStateData.hx b/spine-haxe/spine-haxe/spine/animation/AnimationStateData.hx new file mode 100644 index 0000000000..ce2a7f5b79 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/AnimationStateData.hx @@ -0,0 +1,47 @@ +package spine.animation; + +import openfl.errors.ArgumentError; +import openfl.utils.Object; +import spine.SkeletonData; + +class AnimationStateData { + private var _skeletonData:SkeletonData; + private var animationToMixTime:Object = new Object(); + + public var defaultMix:Float = 0; + + public function new(skeletonData:SkeletonData) { + _skeletonData = skeletonData; + } + + public var skeletonData(get, never):SkeletonData; + + private function get_skeletonData():SkeletonData { + return _skeletonData; + } + + public function setMixByName(fromName:String, toName:String, duration:Float):Void { + var from:Animation = _skeletonData.findAnimation(fromName); + if (from == null) + throw new ArgumentError("Animation not found: " + fromName); + var to:Animation = _skeletonData.findAnimation(toName); + if (to == null) + throw new ArgumentError("Animation not found: " + toName); + setMix(from, to, duration); + } + + public function setMix(from:Animation, to:Animation, duration:Float):Void { + if (from == null) + throw new ArgumentError("from cannot be null."); + if (to == null) + throw new ArgumentError("to cannot be null."); + animationToMixTime[from.name + ":" + to.name] = duration; + } + + public function getMix(from:Animation, to:Animation):Float { + var time:Object = animationToMixTime[from.name + ":" + to.name]; + if (time == null) + return defaultMix; + return cast(time, Float); + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/AttachmentTimeline.hx b/spine-haxe/spine-haxe/spine/animation/AttachmentTimeline.hx new file mode 100644 index 0000000000..280a427e6b --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/AttachmentTimeline.hx @@ -0,0 +1,60 @@ +package spine.animation; + +import openfl.Vector; +import spine.Event; +import spine.Skeleton; +import spine.Slot; + +class AttachmentTimeline extends Timeline implements SlotTimeline { + public var slotIndex:Int = 0; + + /** The attachment name for each key frame. May contain null values to clear the attachment. */ + public var attachmentNames:Vector; + + public function new(frameCount:Int, slotIndex:Int) { + super(frameCount, Vector.ofArray([Property.attachment + "|" + slotIndex])); + this.slotIndex = slotIndex; + attachmentNames = new Vector(frameCount, true); + } + + public override function getFrameCount():Int { + return frames.length; + } + + public function getSlotIndex():Int { + return slotIndex; + } + + /** Sets the time in seconds and the attachment name for the specified key frame. */ + public function setFrame(frame:Int, time:Float, attachmentName:String):Void { + frames[frame] = time; + attachmentNames[frame] = attachmentName; + } + + public override function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var slot:Slot = skeleton.slots[slotIndex]; + if (!slot.bone.active) + return; + + if (direction == MixDirection.mixOut) { + if (blend == MixBlend.setup) { + setAttachment(skeleton, slot, slot.data.attachmentName); + } + return; + } + + if (time < frames[0]) { + if (blend == MixBlend.setup || blend == MixBlend.first) { + setAttachment(skeleton, slot, slot.data.attachmentName); + } + return; + } + + setAttachment(skeleton, slot, attachmentNames[Timeline.search1(frames, time)]); + } + + private function setAttachment(skeleton:Skeleton, slot:Slot, attachmentName:String):Void { + slot.attachment = attachmentName == null ? null : skeleton.getAttachmentForSlotIndex(slotIndex, attachmentName); + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/BoneTimeline.hx b/spine-haxe/spine-haxe/spine/animation/BoneTimeline.hx new file mode 100644 index 0000000000..9009ab00c9 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/BoneTimeline.hx @@ -0,0 +1,5 @@ +package spine.animation; + +interface BoneTimeline { + function getBoneIndex():Int; +} diff --git a/spine-haxe/spine-haxe/spine/animation/CurveTimeline.hx b/spine-haxe/spine-haxe/spine/animation/CurveTimeline.hx new file mode 100644 index 0000000000..66317efd67 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/CurveTimeline.hx @@ -0,0 +1,104 @@ +package spine.animation; + +import openfl.Vector; + +/** Base class for frames that use an interpolation bezier curve. */ +class CurveTimeline extends Timeline { + private static inline var LINEAR:Int = 0; + private static inline var STEPPED:Int = 1; + private static inline var BEZIER:Int = 2; + private static inline var BEZIER_SIZE:Int = 18; + + private var curves:Vector; // type, x, y, ... + + public function new(frameCount:Int, bezierCount:Int, propertyIds:Vector) { + super(frameCount, propertyIds); + curves = new Vector(frameCount + bezierCount * BEZIER_SIZE, true); + curves[frameCount - 1] = STEPPED; + } + + public function setLinear(frame:Int):Void { + curves[frame] = LINEAR; + } + + public function setStepped(frame:Int):Void { + curves[frame] = STEPPED; + } + + /** Shrinks the storage for Bezier curves, for use when bezierCount (specified in the constructor) was larger + * than the actual number of Bezier curves. */ + public function shrink(bezierCount:Int):Void { + var size:Int = getFrameCount() + bezierCount * BEZIER_SIZE; + curves.length = size; + } + + /** Stores the segments for the specified Bezier curve. For timelines that modify multiple values, there may be more than + * one curve per frame. + * @param bezier The ordinal of this Bezier curve for this timeline, between 0 and bezierCount - 1 (specified + * in the constructor), inclusive. + * @param frame Between 0 and frameCount - 1, inclusive. + * @param value The index of the value for this frame that this curve is used for. + * @param time1 The time for the first key. + * @param value1 The value for the first key. + * @param cx1 The time for the first Bezier handle. + * @param cy1 The value for the first Bezier handle. + * @param cx2 The time of the second Bezier handle. + * @param cy2 The value for the second Bezier handle. + * @param time2 The time for the second key. + * @param value2 The value for the second key. */ + public function setBezier(bezier:Int, frame:Int, value:Float, time1:Float, value1:Float, cx1:Float, cy1:Float, cx2:Float, cy2:Float, time2:Float, + value2:Float):Void { + var i:Int = getFrameCount() + bezier * BEZIER_SIZE; + if (value == 0) + curves[frame] = BEZIER + i; + var tmpx:Float = (time1 - cx1 * 2 + cx2) * 0.03, + tmpy:Float = (value1 - cy1 * 2 + cy2) * 0.03; + var dddx:Float = ((cx1 - cx2) * 3 - time1 + time2) * 0.006, + dddy:Float = ((cy1 - cy2) * 3 - value1 + value2) * 0.006; + var ddx:Float = tmpx * 2 + dddx, ddy:Float = tmpy * 2 + dddy; + var dx:Float = (cx1 - time1) * 0.3 + tmpx + dddx * 0.16666667, + dy:Float = (cy1 - value1) * 0.3 + tmpy + dddy * 0.16666667; + var x:Float = time1 + dx, y:Float = value1 + dy; + var n:Int = i + BEZIER_SIZE; + while (i < n) { + curves[i] = x; + curves[i + 1] = y; + dx += ddx; + dy += ddy; + ddx += dddx; + ddy += dddy; + x += dx; + y += dy; + + i += 2; + } + } + + /** Returns the Bezier interpolated value for the specified time. + * @param frameIndex The index into {@link #getFrames()} for the values of the frame before time. + * @param valueOffset The offset from frameIndex to the value this curve is used for. + * @param i The index of the Bezier segments. See {@link #getCurveType(int)}. */ + public function getBezierValue(time:Float, frameIndex:Int, valueOffset:Int, i:Int):Float { + var x:Float, y:Float; + if (curves[i] > time) { + x = frames[frameIndex]; + y = frames[frameIndex + valueOffset]; + return y + (time - x) / (curves[i] - x) * (curves[i + 1] - y); + } + var n:Int = i + BEZIER_SIZE; + i += 2; + while (i < n) { + if (curves[i] >= time) { + x = curves[i - 2]; + y = curves[i - 1]; + return y + (time - x) / (curves[i] - x) * (curves[i + 1] - y); + } + + i += 2; + } + frameIndex += getFrameEntries(); + x = curves[n - 2]; + y = curves[n - 1]; + return y + (time - x) / (frames[frameIndex] - x) * (frames[frameIndex + valueOffset] - y); + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/CurveTimeline1.hx b/spine-haxe/spine-haxe/spine/animation/CurveTimeline1.hx new file mode 100644 index 0000000000..5fbdabc652 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/CurveTimeline1.hx @@ -0,0 +1,51 @@ +package spine.animation; + +/** The base class for a {@link CurveTimeline} that sets one property. */ +import openfl.Vector; + +class CurveTimeline1 extends CurveTimeline { + private static inline var ENTRIES:Int = 2; + private static inline var VALUE:Int = 1; + + /** @param bezierCount The maximum number of Bezier curves. See {@link #shrink(Int)}. + * @param propertyIds Unique identifiers for the properties the timeline modifies. */ + public function new(frameCount:Int, bezierCount:Int, propertyIds:Vector) { + super(frameCount, bezierCount, propertyIds); + } + + public override function getFrameEntries():Int { + return ENTRIES; + } + + /** Sets the time and values for the specified frame. + * @param frame Between 0 and frameCount, inclusive. + * @param time The frame time in seconds. */ + public function setFrame(frame:Int, time:Float, value1:Float):Void { + frame <<= 1; + frames[frame] = time; + frames[frame + VALUE] = value1; + } + + /** Returns the interpolated value for the specified time. */ + public function getCurveValue(time:Float):Float { + var i:Int = frames.length - 2; + var ii:Int = 2; + while (ii <= i) { + if (frames[ii] > time) { + i = ii - 2; + break; + } + ii += 2; + } + + var curveType:Int = Std.int(curves[i >> 1]); + switch (curveType) { + case CurveTimeline.LINEAR: + var before:Float = frames[i], value:Float = frames[i + VALUE]; + return value + (time - before) / (frames[i + ENTRIES] - before) * (frames[i + ENTRIES + VALUE] - value); + case CurveTimeline.STEPPED: + return frames[i + VALUE]; + } + return getBezierValue(time, i, VALUE, curveType - CurveTimeline.BEZIER); + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/CurveTimeline2.hx b/spine-haxe/spine-haxe/spine/animation/CurveTimeline2.hx new file mode 100644 index 0000000000..55d4490f93 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/CurveTimeline2.hx @@ -0,0 +1,30 @@ +package spine.animation; + +/** The base class for a {@link CurveTimeline} which sets two properties. */ +import openfl.Vector; + +class CurveTimeline2 extends CurveTimeline { + private static inline var ENTRIES:Int = 3; + private static inline var VALUE1:Int = 1; + private static inline var VALUE2:Int = 2; + + /** @param bezierCount The maximum number of Bezier curves. See {@link #shrink(Int)}. + * @param propertyIds Unique identifiers for the properties the timeline modifies. */ + public function new(frameCount:Int, bezierCount:Int, propertyIds:Vector) { + super(frameCount, bezierCount, propertyIds); + } + + public override function getFrameEntries():Int { + return ENTRIES; + } + + /** Sets the time and values for the specified frame. + * @param frame Between 0 and frameCount, inclusive. + * @param time The frame time in seconds. */ + public function setFrame(frame:Int, time:Float, value1:Float, value2:Float):Void { + frame *= ENTRIES; + frames[frame] = time; + frames[frame + VALUE1] = value1; + frames[frame + VALUE2] = value2; + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/DeformTimeline.hx b/spine-haxe/spine-haxe/spine/animation/DeformTimeline.hx new file mode 100644 index 0000000000..5f3378d3f6 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/DeformTimeline.hx @@ -0,0 +1,279 @@ +package spine.animation; + +import openfl.Vector; +import spine.animation.Timeline; +import spine.attachments.Attachment; +import spine.attachments.VertexAttachment; +import spine.Event; +import spine.Skeleton; +import spine.Slot; + +class DeformTimeline extends CurveTimeline implements SlotTimeline { + public var slotIndex:Int = 0; + + /** The attachment that will be deformed. */ + public var attachment:VertexAttachment; + + /** The vertices for each key frame. */ + public var vertices:Vector>; + + public function new(frameCount:Int, bezierCount:Int, slotIndex:Int, attachment:VertexAttachment) { + super(frameCount, bezierCount, Vector.ofArray([Property.deform + "|" + slotIndex + "|" + attachment.id])); + this.slotIndex = slotIndex; + this.attachment = attachment; + vertices = new Vector>(frameCount, true); + } + + public override function getFrameCount():Int { + return frames.length; + } + + public function getSlotIndex():Int { + return slotIndex; + } + + /** Sets the time in seconds and the vertices for the specified key frame. + * @param vertices Vertex positions for an unweighted VertexAttachment, or deform offsets if it has weights. */ + public function setFrame(frame:Int, time:Float, verticesOrDeform:Vector):Void { + frames[frame] = time; + vertices[frame] = verticesOrDeform; + } + + /** @param value1 Ignored (0 is used for a deform timeline). + * @param value2 Ignored (1 is used for a deform timeline). */ + public override function setBezier(bezier:Int, frame:Int, value:Float, time1:Float, value1:Float, cx1:Float, cy1:Float, cx2:Float, cy2:Float, time2:Float, + value2:Float):Void { + var i:Int = getFrameCount() + bezier * CurveTimeline.BEZIER_SIZE; + if (value == 0) + curves[frame] = CurveTimeline.BEZIER + i; + var tmpx:Float = (time1 - cx1 * 2 + cx2) * 0.03, + tmpy:Float = cy2 * 0.03 - cy1 * 0.06; + var dddx:Float = ((cx1 - cx2) * 3 - time1 + time2) * 0.006, + dddy:Float = (cy1 - cy2 + 0.33333333) * 0.018; + var ddx:Float = tmpx * 2 + dddx, ddy:Float = tmpy * 2 + dddy; + var dx:Float = (cx1 - time1) * 0.3 + tmpx + dddx * 0.16666667, + dy:Float = cy1 * 0.3 + tmpy + dddy * 0.16666667; + var x:Float = time1 + dx, y:Float = dy; + var n:Int = i + CurveTimeline.BEZIER_SIZE; + while (i < n) { + curves[i] = x; + curves[i + 1] = y; + dx += ddx; + dy += ddy; + ddx += dddx; + ddy += dddy; + x += dx; + y += dy; + + i += 2; + } + } + + private function getCurvePercent(time:Float, frame:Int):Float { + var i:Int = Std.int(curves[frame]); + var x:Float; + switch (i) { + case CurveTimeline.LINEAR: + x = frames[frame]; + return (time - x) / (frames[frame + getFrameEntries()] - x); + case CurveTimeline.STEPPED: + return 0; + } + i -= CurveTimeline.BEZIER; + if (curves[i] > time) { + x = frames[frame]; + return curves[i + 1] * (time - x) / (curves[i] - x); + } + var n:Int = i + CurveTimeline.BEZIER_SIZE, y:Float; + i += 2; + while (i < n) { + if (curves[i] >= time) { + x = curves[i - 2]; + y = curves[i - 1]; + return y + (time - x) / (curves[i] - x) * (curves[i + 1] - y); + } + + i += 2; + } + x = curves[n - 2]; + y = curves[n - 1]; + return y + (1 - y) * (time - x) / (frames[frame + getFrameEntries()] - x); + } + + public override function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var slot:Slot = skeleton.slots[slotIndex]; + if (!slot.bone.active) + return; + var slotAttachment:Attachment = slot.attachment; + + if (!Std.isOfType(slotAttachment, VertexAttachment) || cast(slotAttachment, VertexAttachment).deformAttachment != attachment) + return; + var vertexAttachment:VertexAttachment = cast(slotAttachment, VertexAttachment); + + var deform:Vector = slot.deform; + if (deform.length == 0) + blend = MixBlend.setup; + + var vertexCount:Int = vertices[0].length; + var i:Int, setupVertices:Vector; + + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + deform.length = 0; + case MixBlend.first: + if (alpha == 1) { + deform.length = 0; + return; + } + deform.length = vertexCount; + if (vertexAttachment.bones == null) { + // Unweighted vertex positions. + setupVertices = vertexAttachment.vertices; + for (i in 0...vertexCount) { + deform[i] += (setupVertices[i] - deform[i]) * alpha; + } + } else { + // Weighted deform offsets. + alpha = 1 - alpha; + for (i in 0...vertexCount) { + deform[i] *= alpha; + } + } + } + return; + } + + deform.length = vertexCount; + var setup:Float; + if (time >= frames[frames.length - 1]) // Time is after last frame. + { + var lastVertices:Vector = vertices[frames.length - 1]; + if (alpha == 1) { + if (blend == MixBlend.add) { + if (vertexAttachment.bones == null) { + // Unweighted vertex positions, with alpha. + setupVertices = vertexAttachment.vertices; + for (i in 0...vertexCount) { + deform[i] += lastVertices[i] - setupVertices[i]; + } + } else { + // Weighted deform offsets, with alpha. + for (i in 0...vertexCount) { + deform[i] += lastVertices[i]; + } + } + } else { + for (i in 0...vertexCount) { + deform[i] = lastVertices[i]; + } + } + } else { + switch (blend) { + case MixBlend.setup: + if (vertexAttachment.bones == null) { + // Unweighted vertex positions, with alpha. + setupVertices = vertexAttachment.vertices; + for (i in 0...vertexCount) { + setup = setupVertices[i]; + deform[i] = setup + (lastVertices[i] - setup) * alpha; + } + } else { + // Weighted deform offsets, with alpha. + for (i in 0...vertexCount) { + deform[i] = lastVertices[i] * alpha; + } + } + case MixBlend.first, MixBlend.replace: + for (i in 0...vertexCount) { + deform[i] += (lastVertices[i] - deform[i]) * alpha; + } + case MixBlend.add: + if (vertexAttachment.bones == null) { + // Unweighted vertex positions, with alpha. + setupVertices = vertexAttachment.vertices; + for (i in 0...vertexCount) { + deform[i] += (lastVertices[i] - setupVertices[i]) * alpha; + } + } else { + // Weighted deform offsets, with alpha. + for (i in 0...vertexCount) { + deform[i] += lastVertices[i] * alpha; + } + } + } + } + return; + } + + // Interpolate between the previous frame and the current frame. + var frame:Int = Timeline.search1(frames, time); + var percent:Float = getCurvePercent(time, frame); + var prevVertices:Vector = vertices[frame], prev:Float; + var nextVertices:Vector = vertices[frame + 1]; + + if (alpha == 1) { + if (blend == MixBlend.add) { + if (vertexAttachment.bones == null) { + // Unweighted vertex positions, with alpha. + setupVertices = vertexAttachment.vertices; + for (i in 0...vertexCount) { + prev = prevVertices[i]; + deform[i] += prev + (nextVertices[i] - prev) * percent - setupVertices[i]; + } + } else { + // Weighted deform offsets, with alpha. + for (i in 0...vertexCount) { + prev = prevVertices[i]; + deform[i] += prev + (nextVertices[i] - prev) * percent; + } + } + } else { + for (i in 0...vertexCount) { + prev = prevVertices[i]; + deform[i] = prev + (nextVertices[i] - prev) * percent; + } + } + } else { + switch (blend) { + case MixBlend.setup: + if (vertexAttachment.bones == null) { + // Unweighted vertex positions, with alpha. + setupVertices = vertexAttachment.vertices; + for (i in 0...vertexCount) { + prev = prevVertices[i]; + setup = setupVertices[i]; + deform[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha; + } + } else { + // Weighted deform offsets, with alpha. + for (i in 0...vertexCount) { + prev = prevVertices[i]; + deform[i] = (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + case MixBlend.first, MixBlend.replace: + for (i in 0...vertexCount) { + prev = prevVertices[i]; + deform[i] += (prev + (nextVertices[i] - prev) * percent - deform[i]) * alpha; + } + case MixBlend.add: + if (vertexAttachment.bones == null) { + // Unweighted vertex positions, with alpha. + setupVertices = vertexAttachment.vertices; + for (i in 0...vertexCount) { + prev = prevVertices[i]; + deform[i] += (prev + (nextVertices[i] - prev) * percent - setupVertices[i]) * alpha; + } + } else { + // Weighted deform offsets, with alpha. + for (i in 0...vertexCount) { + prev = prevVertices[i]; + deform[i] += (prev + (nextVertices[i] - prev) * percent) * alpha; + } + } + } + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/DrawOrderTimeline.hx b/spine-haxe/spine-haxe/spine/animation/DrawOrderTimeline.hx new file mode 100644 index 0000000000..9f0ddbfc24 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/DrawOrderTimeline.hx @@ -0,0 +1,63 @@ +package spine.animation; + +import openfl.Vector; +import spine.Event; +import spine.Skeleton; +import spine.Slot; + +class DrawOrderTimeline extends Timeline { + public var drawOrders:Vector>; + + public function new(frameCount:Int) { + super(frameCount, Vector.ofArray([Std.string(Property.drawOrder)])); + drawOrders = new Vector>(frameCount, true); + } + + public var frameCount(get, never):Int; + + private function get_frameCount():Int { + return frames.length; + } + + /** Sets the time and value of the specified keyframe. */ + public function setFrame(frame:Int, time:Float, drawOrder:Vector):Void { + frames[frame] = time; + drawOrders[frame] = drawOrder; + } + + override public function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var drawOrder:Vector = skeleton.drawOrder; + var slots:Vector = skeleton.slots; + var i:Int = 0, n:Int = slots.length; + + if (direction == MixDirection.mixOut) { + if (blend == MixBlend.setup) { + for (i in 0...n) { + drawOrder[i] = slots[i]; + } + } + return; + } + + if (time < frames[0]) { + if (blend == MixBlend.setup || blend == MixBlend.first) { + for (i in 0...n) { + drawOrder[i] = slots[i]; + } + } + return; + } + + var drawOrderToSetupIndex:Vector = drawOrders[Timeline.search1(frames, time)]; + if (drawOrderToSetupIndex == null) { + for (i in 0...n) { + drawOrder[i] = slots[i]; + } + } else { + for (i in 0...n) { + drawOrder[i] = slots[drawOrderToSetupIndex[i]]; + } + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/EventQueue.hx b/spine-haxe/spine-haxe/spine/animation/EventQueue.hx new file mode 100644 index 0000000000..854e2af2fd --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/EventQueue.hx @@ -0,0 +1,93 @@ +package spine.animation; + +import spine.Event; + +class EventQueue { + private var objects:Array; + private var animationState:AnimationState; + + public var drainDisabled:Bool = false; + + public function new(animationState:AnimationState) { + this.animationState = animationState; + objects = new Array(); + } + + public function start(entry:TrackEntry):Void { + objects.push(EventType.start); + objects.push(entry); + animationState.animationsChanged = true; + } + + public function interrupt(entry:TrackEntry):Void { + objects.push(EventType.interrupt); + objects.push(entry); + } + + public function end(entry:TrackEntry):Void { + objects.push(EventType.end); + objects.push(entry); + animationState.animationsChanged = true; + } + + public function dispose(entry:TrackEntry):Void { + objects.push(EventType.dispose); + objects.push(entry); + } + + public function complete(entry:TrackEntry):Void { + objects.push(EventType.complete); + objects.push(entry); + } + + public function event(entry:TrackEntry, event:Event):Void { + objects.push(EventType.event); + objects.push(entry); + objects.push(event); + } + + public function drain():Void { + if (drainDisabled) + return; // Not reentrant. + drainDisabled = true; + + var i:Int = 0; + while (i < objects.length) { + var type:EventType = cast(objects[i], EventType); + var entry:TrackEntry = cast(objects[i + 1], TrackEntry); + switch (type) { + case EventType.start: + entry.onStart.invoke(entry); + animationState.onStart.invoke(entry); + case EventType.interrupt: + entry.onInterrupt.invoke(entry); + animationState.onInterrupt.invoke(entry); + case EventType.end: + entry.onEnd.invoke(entry); + animationState.onEnd.invoke(entry); + entry.onDispose.invoke(entry); + animationState.onDispose.invoke(entry); + animationState.trackEntryPool.free(entry); + case EventType.dispose: + entry.onDispose.invoke(entry); + animationState.onDispose.invoke(entry); + animationState.trackEntryPool.free(entry); + case EventType.complete: + entry.onComplete.invoke(entry); + animationState.onComplete.invoke(entry); + case EventType.event: + var event:Event = cast(objects[i++ + 2], Event); + entry.onEvent.invoke(entry, event); + animationState.onEvent.invoke(entry, event); + } + i += 2; + } + clear(); + + drainDisabled = false; + } + + public function clear():Void { + objects.resize(0); + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/EventTimeline.hx b/spine-haxe/spine-haxe/spine/animation/EventTimeline.hx new file mode 100644 index 0000000000..c1eaf5262c --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/EventTimeline.hx @@ -0,0 +1,66 @@ +package spine.animation; + +import starling.utils.Max; +import openfl.Vector; +import spine.animation.Timeline; +import spine.Event; +import spine.Skeleton; + +class EventTimeline extends Timeline { + public var events:Vector; + + public function new(frameCount:Int) { + super(frameCount, Vector.ofArray([Std.string(Property.event)])); + events = new Vector(frameCount, true); + } + + public override function getFrameCount():Int { + return frames.length; + } + + /** Sets the time in seconds and the event for the specified key frame. */ + public function setFrame(frame:Int, event:Event):Void { + frames[frame] = event.time; + events[frame] = event; + } + + /** Fires events for frames > `lastTime` and <= `time`. */ + public override function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + if (events == null) + return; + + var frameCount:Int = frames.length; + + if (lastTime > time) // Fire events after last time for looped animations. + { + apply(skeleton, lastTime, Max.INT_MAX_VALUE, events, alpha, blend, direction); + lastTime = -1; + } else if (lastTime >= frames[frameCount - 1]) // Last time is after last frame. + { + return; + } + + if (time < frames[0]) // Time is before first frame. + { + return; + } + + var frame:Int; + var i:Int = 0; + if (lastTime >= frames[0]) { + i = Timeline.search1(frames, lastTime) + 1; + var frameTime:Float = frames[i]; + while (i > 0) // Fire multiple events with the same frame. + { + if (frames[i - 1] != frameTime) + break; + i--; + } + } + while (i < frameCount && time >= frames[i]) { + events.push(this.events[i]); + i++; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/EventType.hx b/spine-haxe/spine-haxe/spine/animation/EventType.hx new file mode 100644 index 0000000000..6350d26428 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/EventType.hx @@ -0,0 +1,12 @@ +package spine.animation; + +class EventType { + public static var start(default, never):EventType = new EventType(); + public static var interrupt(default, never):EventType = new EventType(); + public static var end(default, never):EventType = new EventType(); + public static var dispose(default, never):EventType = new EventType(); + public static var complete(default, never):EventType = new EventType(); + public static var event(default, never):EventType = new EventType(); + + private function new() {} +} diff --git a/spine-haxe/spine-haxe/spine/animation/IkConstraintTimeline.hx b/spine-haxe/spine-haxe/spine/animation/IkConstraintTimeline.hx new file mode 100644 index 0000000000..7a89bdc274 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/IkConstraintTimeline.hx @@ -0,0 +1,104 @@ +package spine.animation; + +import openfl.Vector; +import spine.Event; +import spine.IkConstraint; +import spine.Skeleton; + +class IkConstraintTimeline extends CurveTimeline { + private static inline var ENTRIES:Int = 6; + private static inline var MIX:Int = 1; + private static inline var SOFTNESS:Int = 2; + private static inline var BEND_DIRECTION:Int = 3; + private static inline var COMPRESS:Int = 4; + private static inline var STRETCH:Int = 5; + + /** The index of the IK constraint slot in {@link Skeleton#ikConstraints} that will be changed. */ + public var ikConstraintIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, ikConstraintIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.ikConstraint + "|" + ikConstraintIndex])); + this.ikConstraintIndex = ikConstraintIndex; + } + + public override function getFrameEntries():Int { + return ENTRIES; + } + + /** Sets the time in seconds, mix, softness, bend direction, compress, and stretch for the specified key frame. */ + public function setFrame(frame:Int, time:Float, mix:Float, softness:Float, bendDirection:Int, compress:Bool, stretch:Bool):Void { + frame *= ENTRIES; + frames[frame] = time; + frames[frame + MIX] = mix; + frames[frame + SOFTNESS] = softness; + frames[frame + BEND_DIRECTION] = bendDirection; + frames[frame + COMPRESS] = compress ? 1 : 0; + frames[frame + STRETCH] = stretch ? 1 : 0; + } + + public override function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var constraint:IkConstraint = skeleton.ikConstraints[ikConstraintIndex]; + if (!constraint.active) + return; + + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + constraint.mix = constraint.data.mix; + constraint.softness = constraint.data.softness; + constraint.bendDirection = constraint.data.bendDirection; + constraint.compress = constraint.data.compress; + constraint.stretch = constraint.data.stretch; + case MixBlend.first: + constraint.mix += (constraint.data.mix - constraint.mix) * alpha; + constraint.softness += (constraint.data.softness - constraint.softness) * alpha; + constraint.bendDirection = constraint.data.bendDirection; + constraint.compress = constraint.data.compress; + constraint.stretch = constraint.data.stretch; + } + return; + } + + var mix:Float = 0, softness:Float = 0; + var i:Int = Timeline.search(frames, time, ENTRIES); + var curveType:Int = Std.int(curves[Std.int(i / ENTRIES)]); + switch (curveType) { + case CurveTimeline.LINEAR: + var before:Float = frames[i]; + mix = frames[i + MIX]; + softness = frames[i + SOFTNESS]; + var t:Float = (time - before) / (frames[i + ENTRIES] - before); + mix += (frames[i + ENTRIES + MIX] - mix) * t; + softness += (frames[i + ENTRIES + SOFTNESS] - softness) * t; + case CurveTimeline.STEPPED: + mix = frames[i + MIX]; + softness = frames[i + SOFTNESS]; + default: + mix = getBezierValue(time, i, MIX, curveType - CurveTimeline.BEZIER); + softness = getBezierValue(time, i, SOFTNESS, curveType + CurveTimeline.BEZIER_SIZE - CurveTimeline.BEZIER); + } + + if (blend == MixBlend.setup) { + constraint.mix = constraint.data.mix + (mix - constraint.data.mix) * alpha; + constraint.softness = constraint.data.softness + (softness - constraint.data.softness) * alpha; + if (direction == MixDirection.mixOut) { + constraint.bendDirection = constraint.data.bendDirection; + constraint.compress = constraint.data.compress; + constraint.stretch = constraint.data.stretch; + } else { + constraint.bendDirection = Std.int(frames[i + BEND_DIRECTION]); + constraint.compress = frames[i + COMPRESS] != 0; + constraint.stretch = frames[i + STRETCH] != 0; + } + } else { + constraint.mix += (mix - constraint.mix) * alpha; + constraint.softness += (softness - constraint.softness) * alpha; + if (direction == MixDirection.mixIn) { + constraint.bendDirection = Std.int(frames[i + BEND_DIRECTION]); + constraint.compress = frames[i + COMPRESS] != 0; + constraint.stretch = frames[i + STRETCH] != 0; + } + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/Listeners.hx b/spine-haxe/spine-haxe/spine/animation/Listeners.hx new file mode 100644 index 0000000000..1bbd9cd57a --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/Listeners.hx @@ -0,0 +1,76 @@ +package spine.animation; + +import openfl.errors.ArgumentError; +import openfl.Vector; + +class Listeners { + private var _listeners:VectorVoid>; + + public var listeners(get, never):VectorVoid>; + + private function get_listeners():VectorVoid> { + return _listeners; + } + + public function new() { + _listeners = new VectorVoid>(); + } + + public function invoke(entry:TrackEntry) { + for (listener in _listeners) { + listener(entry); + } + } + + public function add(listener:TrackEntry->Void):Void { + if (listener == null) + throw new ArgumentError("listener cannot be null."); + var indexOf:Int = _listeners.indexOf(listener); + if (indexOf == -1) + _listeners.push(listener); + } + + public function remove(listener:TrackEntry->Void):Void { + if (listener == null) + throw new ArgumentError("listener cannot be null."); + var indexOf:Int = _listeners.indexOf(listener); + if (indexOf != -1) + _listeners.splice(indexOf, 1); + } +} + +class EventListeners { + private var _listeners:VectorEvent->Void>; + + public var listeners(get, never):VectorEvent->Void>; + + private function get_listeners():VectorEvent->Void> { + return _listeners; + } + + public function new() { + _listeners = new VectorEvent->Void>(); + } + + public function invoke(entry:TrackEntry, event:Event) { + for (listener in _listeners) { + listener(entry, event); + } + } + + public function add(listener:TrackEntry->Event->Void):Void { + if (listener == null) + throw new ArgumentError("listener cannot be null."); + var indexOf:Int = _listeners.indexOf(listener); + if (indexOf == -1) + _listeners.push(listener); + } + + public function remove(listener:TrackEntry->Event->Void):Void { + if (listener == null) + throw new ArgumentError("listener cannot be null."); + var indexOf:Int = _listeners.indexOf(listener); + if (indexOf != -1) + _listeners.splice(indexOf, 1); + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/MixBlend.hx b/spine-haxe/spine-haxe/spine/animation/MixBlend.hx new file mode 100644 index 0000000000..dc26146cdc --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/MixBlend.hx @@ -0,0 +1,14 @@ +package spine.animation; + +class MixBlend { + public var ordinal:Int = 0; + + public function new(ordinal:Int) { + this.ordinal = ordinal; + } + + public static var setup(default, never):MixBlend = new MixBlend(0); + public static var first(default, never):MixBlend = new MixBlend(1); + public static var replace(default, never):MixBlend = new MixBlend(2); + public static var add(default, never):MixBlend = new MixBlend(3); +} diff --git a/spine-haxe/spine-haxe/spine/animation/MixDirection.hx b/spine-haxe/spine-haxe/spine/animation/MixDirection.hx new file mode 100644 index 0000000000..01b7344c57 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/MixDirection.hx @@ -0,0 +1,12 @@ +package spine.animation; + +class MixDirection { + public var ordinal:Int = 0; + + public function new(ordinal:Int) { + this.ordinal = ordinal; + } + + public static var mixIn(default, never):MixDirection = new MixDirection(0); + public static var mixOut(default, never):MixDirection = new MixDirection(1); +} diff --git a/spine-haxe/spine-haxe/spine/animation/PathConstraintMixTimeline.hx b/spine-haxe/spine-haxe/spine/animation/PathConstraintMixTimeline.hx new file mode 100644 index 0000000000..183063306a --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/PathConstraintMixTimeline.hx @@ -0,0 +1,90 @@ +package spine.animation; + +import openfl.Vector; +import spine.Event; +import spine.PathConstraint; +import spine.Skeleton; + +class PathConstraintMixTimeline extends CurveTimeline { + private static inline var ENTRIES:Int = 4; + private static inline var ROTATE:Int = 1; + private static inline var X:Int = 2; + private static inline var Y:Int = 3; + + /** The index of the path constraint slot in {@link Skeleton#getPathConstraints()} that will be changed. */ + public var pathConstraintIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, pathConstraintIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.pathConstraintMix + "|" + pathConstraintIndex])); + this.pathConstraintIndex = pathConstraintIndex; + } + + public override function getFrameEntries():Int { + return ENTRIES; + } + + public function setFrame(frame:Int, time:Float, mixRotate:Float, mixX:Float, mixY:Float):Void { + frame <<= 2; + frames[frame] = time; + frames[frame + ROTATE] = mixRotate; + frames[frame + X] = mixX; + frames[frame + Y] = mixY; + } + + public override function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var constraint:PathConstraint = skeleton.pathConstraints[pathConstraintIndex]; + if (!constraint.active) + return; + + var data:PathConstraintData; + if (time < frames[0]) { + data = constraint.data; + switch (blend) { + case MixBlend.setup: + constraint.mixRotate = data.mixRotate; + constraint.mixX = data.mixX; + constraint.mixY = data.mixY; + case MixBlend.first: + constraint.mixRotate += (data.mixRotate - constraint.mixRotate) * alpha; + constraint.mixX += (data.mixX - constraint.mixX) * alpha; + constraint.mixY += (data.mixY - constraint.mixY) * alpha; + } + return; + } + + var rotate:Float, x:Float, y:Float; + var i:Int = Timeline.search(frames, time, ENTRIES); + var curveType:Int = Std.int(curves[i >> 2]); + switch (curveType) { + case CurveTimeline.LINEAR: + var before:Float = frames[i]; + rotate = frames[i + ROTATE]; + x = frames[i + X]; + y = frames[i + Y]; + var t:Float = (time - before) / (frames[i + ENTRIES] - before); + rotate += (frames[i + ENTRIES + ROTATE] - rotate) * t; + x += (frames[i + ENTRIES + X] - x) * t; + y += (frames[i + ENTRIES + Y] - y) * t; + case CurveTimeline.STEPPED: + rotate = frames[i + ROTATE]; + x = frames[i + X]; + y = frames[i + Y]; + default: + rotate = getBezierValue(time, i, ROTATE, curveType - CurveTimeline.BEZIER); + x = getBezierValue(time, i, X, curveType + CurveTimeline.BEZIER_SIZE - CurveTimeline.BEZIER); + y = getBezierValue(time, i, Y, curveType + CurveTimeline.BEZIER_SIZE * 2 - CurveTimeline.BEZIER); + } + + if (blend == MixBlend.setup) { + data = constraint.data; + constraint.mixRotate = data.mixRotate + (rotate - data.mixRotate) * alpha; + constraint.mixX = data.mixX + (x - data.mixX) * alpha; + constraint.mixY = data.mixY + (y - data.mixY) * alpha; + } else { + constraint.mixRotate += (rotate - constraint.mixRotate) * alpha; + constraint.mixX += (x - constraint.mixX) * alpha; + constraint.mixY += (y - constraint.mixY) * alpha; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/PathConstraintPositionTimeline.hx b/spine-haxe/spine-haxe/spine/animation/PathConstraintPositionTimeline.hx new file mode 100644 index 0000000000..0f4b91ae31 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/PathConstraintPositionTimeline.hx @@ -0,0 +1,40 @@ +package spine.animation; + +import openfl.Vector; +import spine.Event; +import spine.PathConstraint; +import spine.Skeleton; + +class PathConstraintPositionTimeline extends CurveTimeline1 { + /** The index of the path constraint slot in {@link Skeleton#pathConstraints} that will be changed. */ + public var pathConstraintIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, pathConstraintIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.pathConstraintPosition + "|" + pathConstraintIndex])); + this.pathConstraintIndex = pathConstraintIndex; + } + + public override function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var constraint:PathConstraint = skeleton.pathConstraints[pathConstraintIndex]; + if (!constraint.active) + return; + + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + constraint.position = constraint.data.position; + case MixBlend.first: + constraint.position += (constraint.data.position - constraint.position) * alpha; + } + return; + } + + var position:Float = getCurveValue(time); + if (blend == MixBlend.setup) { + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + } else { + constraint.position += (position - constraint.position) * alpha; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/PathConstraintSpacingTimeline.hx b/spine-haxe/spine-haxe/spine/animation/PathConstraintSpacingTimeline.hx new file mode 100644 index 0000000000..ae1e4ee811 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/PathConstraintSpacingTimeline.hx @@ -0,0 +1,40 @@ +package spine.animation; + +import openfl.Vector; +import spine.Event; +import spine.PathConstraint; +import spine.Skeleton; + +class PathConstraintSpacingTimeline extends CurveTimeline1 { + /** The index of the path constraint slot in {@link Skeleton#pathConstraints} that will be changed. */ + public var pathConstraintIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, pathConstraintIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.pathConstraintSpacing + "|" + pathConstraintIndex])); + this.pathConstraintIndex = pathConstraintIndex; + } + + public override function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var constraint:PathConstraint = skeleton.pathConstraints[pathConstraintIndex]; + if (!constraint.active) + return; + + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + constraint.spacing = constraint.data.spacing; + case MixBlend.first: + constraint.spacing += (constraint.data.spacing - constraint.spacing) * alpha; + } + return; + } + + var spacing:Float = getCurveValue(time); + if (blend == MixBlend.setup) { + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + } else { + constraint.spacing += (spacing - constraint.spacing) * alpha; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/Property.hx b/spine-haxe/spine-haxe/spine/animation/Property.hx new file mode 100644 index 0000000000..7ff8440c86 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/Property.hx @@ -0,0 +1,30 @@ +package spine.animation; + +class Property { + public static inline var rotate:Int = 0; + public static inline var x:Int = 1; + public static inline var y:Int = 2; + public static inline var scaleX:Int = 3; + public static inline var scaleY:Int = 4; + public static inline var shearX:Int = 5; + public static inline var shearY:Int = 6; + + public static inline var rgb:Int = 7; + public static inline var alpha:Int = 8; + public static inline var rgb2:Int = 9; + + public static inline var attachment:Int = 10; + public static inline var deform:Int = 11; + + public static inline var event:Int = 12; + public static inline var drawOrder:Int = 13; + + public static inline var ikConstraint:Int = 14; + public static inline var transformConstraint:Int = 15; + + public static inline var pathConstraintPosition:Int = 16; + public static inline var pathConstraintSpacing:Int = 17; + public static inline var pathConstraintMix:Int = 18; + + public function new() {} +} diff --git a/spine-haxe/spine-haxe/spine/animation/RGB2Timeline.hx b/spine-haxe/spine-haxe/spine/animation/RGB2Timeline.hx new file mode 100644 index 0000000000..b6374c9893 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/RGB2Timeline.hx @@ -0,0 +1,132 @@ +package spine.animation; + +import openfl.Vector; + +class RGB2Timeline extends CurveTimeline implements SlotTimeline { + private static inline var ENTRIES:Int = 7; + private static inline var R:Int = 1; + private static inline var G:Int = 2; + private static inline var B:Int = 3; + private static inline var R2:Int = 4; + private static inline var G2:Int = 5; + private static inline var B2:Int = 6; + + private var slotIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, slotIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.rgb + "|" + slotIndex, Property.rgb2 + "|" + slotIndex])); + this.slotIndex = slotIndex; + } + + public override function getFrameEntries():Int { + return ENTRIES; + } + + public function getSlotIndex():Int { + return slotIndex; + } + + /** Sets the time in seconds, light, and dark colors for the specified key frame. */ + public function setFrame(frame:Int, time:Float, r:Float, g:Float, b:Float, r2:Float, g2:Float, b2:Float):Void { + frame *= ENTRIES; + frames[frame] = time; + frames[frame + R] = r; + frames[frame + G] = g; + frames[frame + B] = b; + frames[frame + R2] = r2; + frames[frame + G2] = g2; + frames[frame + B2] = b2; + } + + public override function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var slot:Slot = skeleton.slots[slotIndex]; + if (!slot.bone.active) + return; + + var light:Color = slot.color, dark:Color = slot.darkColor; + var setupLight:Color, setupDark:Color; + if (time < frames[0]) { + setupLight = slot.data.color; + setupDark = slot.data.darkColor; + switch (blend) { + case MixBlend.setup: + light.r = setupLight.r; + light.g = setupLight.g; + light.b = setupLight.b; + dark.r = setupDark.r; + dark.g = setupDark.g; + dark.b = setupDark.b; + case MixBlend.first: + light.r += (setupLight.r - light.r) * alpha; + light.g += (setupLight.g - light.g) * alpha; + light.b += (setupLight.b - light.b) * alpha; + dark.r += (setupDark.r - dark.r) * alpha; + dark.g += (setupDark.g - dark.g) * alpha; + dark.b += (setupDark.b - dark.b) * alpha; + } + return; + } + + var r:Float = 0, g:Float = 0, b:Float = 0, a:Float = 0, r2:Float = 0, g2:Float = 0, b2:Float = 0; + var i:Int = Timeline.search(frames, time, ENTRIES); + var curveType:Int = Std.int(curves[Std.int(i / ENTRIES)]); + switch (curveType) { + case CurveTimeline.LINEAR: + var before:Float = frames[i]; + r = frames[i + R]; + g = frames[i + G]; + b = frames[i + B]; + r2 = frames[i + R2]; + g2 = frames[i + G2]; + b2 = frames[i + B2]; + var t:Float = (time - before) / (frames[i + ENTRIES] - before); + r += (frames[i + ENTRIES + R] - r) * t; + g += (frames[i + ENTRIES + G] - g) * t; + b += (frames[i + ENTRIES + B] - b) * t; + r2 += (frames[i + ENTRIES + R2] - r2) * t; + g2 += (frames[i + ENTRIES + G2] - g2) * t; + b2 += (frames[i + ENTRIES + B2] - b2) * t; + case CurveTimeline.STEPPED: + r = frames[i + R]; + g = frames[i + G]; + b = frames[i + B]; + r2 = frames[i + R2]; + g2 = frames[i + G2]; + b2 = frames[i + B2]; + default: + r = getBezierValue(time, i, R, curveType - CurveTimeline.BEZIER); + g = getBezierValue(time, i, G, curveType + CurveTimeline.BEZIER_SIZE - CurveTimeline.BEZIER); + b = getBezierValue(time, i, B, curveType + CurveTimeline.BEZIER_SIZE * 2 - CurveTimeline.BEZIER); + r2 = getBezierValue(time, i, R2, curveType + CurveTimeline.BEZIER_SIZE * 3 - CurveTimeline.BEZIER); + g2 = getBezierValue(time, i, G2, curveType + CurveTimeline.BEZIER_SIZE * 4 - CurveTimeline.BEZIER); + b2 = getBezierValue(time, i, B2, curveType + CurveTimeline.BEZIER_SIZE * 5 - CurveTimeline.BEZIER); + } + + if (alpha == 1) { + light.r = r; + light.g = g; + light.b = b; + dark.r = r2; + dark.g = g2; + dark.b = b2; + } else { + if (blend == MixBlend.setup) { + setupLight = slot.data.color; + setupDark = slot.data.darkColor; + light.r = setupLight.r; + light.g = setupLight.g; + light.b = setupLight.b; + dark.r = setupDark.r; + dark.g = setupDark.g; + dark.b = setupDark.b; + } + light.r += (r - light.r) * alpha; + light.g += (g - light.g) * alpha; + light.b += (b - light.b) * alpha; + dark.r += (r2 - dark.r) * alpha; + dark.g += (g2 - dark.g) * alpha; + dark.b += (b2 - dark.b) * alpha; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/RGBA2Timeline.hx b/spine-haxe/spine-haxe/spine/animation/RGBA2Timeline.hx new file mode 100644 index 0000000000..c20e0ba317 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/RGBA2Timeline.hx @@ -0,0 +1,128 @@ +package spine.animation; + +import openfl.Vector; + +class RGBA2Timeline extends CurveTimeline implements SlotTimeline { + private static inline var ENTRIES:Int = 8; + private static inline var R:Int = 1; + private static inline var G:Int = 2; + private static inline var B:Int = 3; + private static inline var A:Int = 4; + private static inline var R2:Int = 5; + private static inline var G2:Int = 6; + private static inline var B2:Int = 7; + + private var slotIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, slotIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([ + Property.rgb + "|" + slotIndex, + Property.alpha + "|" + slotIndex, + Property.rgb2 + "|" + slotIndex + ])); + this.slotIndex = slotIndex; + } + + public override function getFrameEntries():Int { + return ENTRIES; + } + + public function getSlotIndex():Int { + return slotIndex; + } + + /** Sets the time in seconds, light, and dark colors for the specified key frame. */ + public function setFrame(frame:Int, time:Float, r:Float, g:Float, b:Float, a:Float, r2:Float, g2:Float, b2:Float):Void { + frame <<= 3; + frames[frame] = time; + frames[frame + R] = r; + frames[frame + G] = g; + frames[frame + B] = b; + frames[frame + A] = a; + frames[frame + R2] = r2; + frames[frame + G2] = g2; + frames[frame + B2] = b2; + } + + public override function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var slot:Slot = skeleton.slots[slotIndex]; + if (!slot.bone.active) + return; + + var light:Color = slot.color, dark:Color = slot.darkColor; + if (time < frames[0]) { + var setupLight:Color = slot.data.color, + setupDark:Color = slot.data.darkColor; + switch (blend) { + case MixBlend.setup: + light.setFromColor(setupLight); + dark.r = setupDark.r; + dark.g = setupDark.g; + dark.b = setupDark.b; + case MixBlend.first: + light.add((setupLight.r - light.r) * alpha, (setupLight.g - light.g) * alpha, (setupLight.b - light.b) * alpha, + (setupLight.a - light.a) * alpha); + dark.r += (setupDark.r - dark.r) * alpha; + dark.g += (setupDark.g - dark.g) * alpha; + dark.b += (setupDark.b - dark.b) * alpha; + } + return; + } + + var r:Float = 0, g:Float = 0, b:Float = 0, a:Float = 0, r2:Float = 0, g2:Float = 0, b2:Float = 0; + var i:Int = Timeline.search(frames, time, ENTRIES); + var curveType:Int = Std.int(curves[i >> 3]); + switch (curveType) { + case CurveTimeline.LINEAR: + var before:Float = frames[i]; + r = frames[i + R]; + g = frames[i + G]; + b = frames[i + B]; + a = frames[i + A]; + r2 = frames[i + R2]; + g2 = frames[i + G2]; + b2 = frames[i + B2]; + var t:Float = (time - before) / (frames[i + ENTRIES] - before); + r += (frames[i + ENTRIES + R] - r) * t; + g += (frames[i + ENTRIES + G] - g) * t; + b += (frames[i + ENTRIES + B] - b) * t; + a += (frames[i + ENTRIES + A] - a) * t; + r2 += (frames[i + ENTRIES + R2] - r2) * t; + g2 += (frames[i + ENTRIES + G2] - g2) * t; + b2 += (frames[i + ENTRIES + B2] - b2) * t; + case CurveTimeline.STEPPED: + r = frames[i + R]; + g = frames[i + G]; + b = frames[i + B]; + a = frames[i + A]; + r2 = frames[i + R2]; + g2 = frames[i + G2]; + b2 = frames[i + B2]; + default: + r = getBezierValue(time, i, R, curveType - CurveTimeline.BEZIER); + g = getBezierValue(time, i, G, curveType + CurveTimeline.BEZIER_SIZE - CurveTimeline.BEZIER); + b = getBezierValue(time, i, B, curveType + CurveTimeline.BEZIER_SIZE * 2 - CurveTimeline.BEZIER); + a = getBezierValue(time, i, A, curveType + CurveTimeline.BEZIER_SIZE * 3 - CurveTimeline.BEZIER); + r2 = getBezierValue(time, i, R2, curveType + CurveTimeline.BEZIER_SIZE * 4 - CurveTimeline.BEZIER); + g2 = getBezierValue(time, i, G2, curveType + CurveTimeline.BEZIER_SIZE * 5 - CurveTimeline.BEZIER); + b2 = getBezierValue(time, i, B2, curveType + CurveTimeline.BEZIER_SIZE * 6 - CurveTimeline.BEZIER); + } + + if (alpha == 1) { + light.set(r, g, b, a); + dark.r = r2; + dark.g = g2; + dark.b = b2; + } else { + if (blend == MixBlend.setup) { + light.setFromColor(slot.data.color); + dark.setFromColor(slot.data.darkColor); + } + light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); + dark.r += (r2 - dark.r) * alpha; + dark.g += (g2 - dark.g) * alpha; + dark.b += (b2 - dark.b) * alpha; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/RGBATimeline.hx b/spine-haxe/spine-haxe/spine/animation/RGBATimeline.hx new file mode 100644 index 0000000000..58d41269c5 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/RGBATimeline.hx @@ -0,0 +1,90 @@ +package spine.animation; + +import openfl.Vector; + +class RGBATimeline extends CurveTimeline implements SlotTimeline { + private static inline var ENTRIES:Int = 5; + private static inline var R:Int = 1; + private static inline var G:Int = 2; + private static inline var B:Int = 3; + private static inline var A:Int = 4; + + private var slotIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, slotIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.rgb + "|" + slotIndex, Property.alpha + "|" + slotIndex])); + this.slotIndex = slotIndex; + } + + public override function getFrameEntries():Int { + return ENTRIES; + } + + public function getSlotIndex():Int { + return slotIndex; + } + + /** Sets the time in seconds, light, and dark colors for the specified key frame. */ + public function setFrame(frame:Int, time:Float, r:Float, g:Float, b:Float, a:Float):Void { + frame *= ENTRIES; + frames[frame] = time; + frames[frame + R] = r; + frames[frame + G] = g; + frames[frame + B] = b; + frames[frame + A] = a; + } + + public override function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var slot:Slot = skeleton.slots[slotIndex]; + if (!slot.bone.active) + return; + + var color:Color = slot.color; + if (time < frames[0]) { + var setup:Color = slot.data.color; + switch (blend) { + case MixBlend.setup: + color.setFromColor(setup); + case MixBlend.first: + color.add((setup.r - color.r) * alpha, (setup.g - color.g) * alpha, (setup.b - color.b) * alpha, (setup.a - color.a) * alpha); + } + return; + } + + var r:Float = 0, g:Float = 0, b:Float = 0, a:Float = 0; + var i:Int = Timeline.search(frames, time, ENTRIES); + var curveType:Int = Std.int(curves[Std.int(i / ENTRIES)]); + switch (curveType) { + case CurveTimeline.LINEAR: + var before:Float = frames[i]; + r = frames[i + R]; + g = frames[i + G]; + b = frames[i + B]; + a = frames[i + A]; + var t:Float = (time - before) / (frames[i + ENTRIES] - before); + r += (frames[i + ENTRIES + R] - r) * t; + g += (frames[i + ENTRIES + G] - g) * t; + b += (frames[i + ENTRIES + B] - b) * t; + a += (frames[i + ENTRIES + A] - a) * t; + case CurveTimeline.STEPPED: + r = frames[i + R]; + g = frames[i + G]; + b = frames[i + B]; + a = frames[i + A]; + default: + r = getBezierValue(time, i, R, curveType - CurveTimeline.BEZIER); + g = getBezierValue(time, i, G, curveType + CurveTimeline.BEZIER_SIZE - CurveTimeline.BEZIER); + b = getBezierValue(time, i, B, curveType + CurveTimeline.BEZIER_SIZE * 2 - CurveTimeline.BEZIER); + a = getBezierValue(time, i, A, curveType + CurveTimeline.BEZIER_SIZE * 3 - CurveTimeline.BEZIER); + } + + if (alpha == 1) { + color.set(r, g, b, a); + } else { + if (blend == MixBlend.setup) + color.setFromColor(slot.data.color); + color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/RGBTimeline.hx b/spine-haxe/spine-haxe/spine/animation/RGBTimeline.hx new file mode 100644 index 0000000000..7e835d2ee5 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/RGBTimeline.hx @@ -0,0 +1,95 @@ +package spine.animation; + +import openfl.Vector; + +class RGBTimeline extends CurveTimeline implements SlotTimeline { + private static inline var ENTRIES:Int = 4; + private static inline var R:Int = 1; + private static inline var G:Int = 2; + private static inline var B:Int = 3; + + private var slotIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, slotIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.rgb + "|" + slotIndex])); + this.slotIndex = slotIndex; + } + + public override function getFrameEntries():Int { + return ENTRIES; + } + + public function getSlotIndex():Int { + return slotIndex; + } + + /** Sets the time in seconds, light, and dark colors for the specified key frame. */ + public function setFrame(frame:Int, time:Float, r:Float, g:Float, b:Float):Void { + frame <<= 2; + frames[frame] = time; + frames[frame + R] = r; + frames[frame + G] = g; + frames[frame + B] = b; + } + + public override function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var slot:Slot = skeleton.slots[slotIndex]; + if (!slot.bone.active) + return; + + var color:Color = slot.color, setup:Color; + if (time < frames[0]) { + setup = slot.data.color; + switch (blend) { + case MixBlend.setup: + color.r = setup.r; + color.g = setup.g; + color.b = setup.b; + case MixBlend.first: + color.r += (setup.r - color.r) * alpha; + color.g += (setup.g - color.g) * alpha; + color.b += (setup.b - color.b) * alpha; + } + return; + } + + var r:Float = 0, g:Float = 0, b:Float = 0; + var i:Int = Timeline.search(frames, time, ENTRIES); + var curveType:Int = Std.int(curves[Std.int(i / ENTRIES)]); + switch (curveType) { + case CurveTimeline.LINEAR: + var before:Float = frames[i]; + r = frames[i + R]; + g = frames[i + G]; + b = frames[i + B]; + var t:Float = (time - before) / (frames[i + ENTRIES] - before); + r += (frames[i + ENTRIES + R] - r) * t; + g += (frames[i + ENTRIES + G] - g) * t; + b += (frames[i + ENTRIES + B] - b) * t; + case CurveTimeline.STEPPED: + r = frames[i + R]; + g = frames[i + G]; + b = frames[i + B]; + default: + r = getBezierValue(time, i, R, curveType - CurveTimeline.BEZIER); + g = getBezierValue(time, i, G, curveType + CurveTimeline.BEZIER_SIZE - CurveTimeline.BEZIER); + b = getBezierValue(time, i, B, curveType + CurveTimeline.BEZIER_SIZE * 2 - CurveTimeline.BEZIER); + } + if (alpha == 1) { + color.r = r; + color.g = g; + color.b = b; + } else { + if (blend == MixBlend.setup) { + setup = slot.data.color; + color.r = setup.r; + color.g = setup.g; + color.b = setup.b; + } + color.r += (r - color.r) * alpha; + color.g += (g - color.g) * alpha; + color.b += (b - color.b) * alpha; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/RotateTimeline.hx b/spine-haxe/spine-haxe/spine/animation/RotateTimeline.hx new file mode 100644 index 0000000000..ce7554e901 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/RotateTimeline.hx @@ -0,0 +1,48 @@ +package spine.animation; + +import openfl.Vector; +import spine.Bone; +import spine.Event; +import spine.Skeleton; + +class RotateTimeline extends CurveTimeline1 implements BoneTimeline { + private var boneIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, boneIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.rotate + "|" + boneIndex])); + this.boneIndex = boneIndex; + } + + public function getBoneIndex():Int { + return boneIndex; + } + + override public function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var bone:Bone = skeleton.bones[boneIndex]; + if (!bone.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.rotation = bone.data.rotation; + case MixBlend.first: + bone.rotation += (bone.data.rotation - bone.rotation) * alpha; + } + return; + } + + var r:Float = getCurveValue(time); + if (Math.abs(r) == 360) + r = 0; + switch (blend) { + case MixBlend.setup: + bone.rotation = bone.data.rotation + r * alpha; + case MixBlend.first, MixBlend.replace: + r += bone.data.rotation - bone.rotation; + bone.rotation += r * alpha; + case MixBlend.add: + bone.rotation += r * alpha; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/ScaleTimeline.hx b/spine-haxe/spine-haxe/spine/animation/ScaleTimeline.hx new file mode 100644 index 0000000000..e1341e34f1 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/ScaleTimeline.hx @@ -0,0 +1,104 @@ +package spine.animation; + +import openfl.Vector; +import spine.Bone; +import spine.Event; +import spine.MathUtils; +import spine.Skeleton; + +class ScaleTimeline extends CurveTimeline2 implements BoneTimeline { + private var boneIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, boneIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.scaleX + "|" + boneIndex, Property.scaleY + "|" + boneIndex])); + this.boneIndex = boneIndex; + } + + public function getBoneIndex():Int { + return boneIndex; + } + + override public function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var bone:Bone = skeleton.bones[boneIndex]; + if (!bone.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + case MixBlend.first: + bone.scaleX += (bone.data.scaleX - bone.scaleX) * alpha; + bone.scaleY += (bone.data.scaleY - bone.scaleY) * alpha; + } + return; + } + + var x:Float = 0, y:Float = 0; + var i:Int = Timeline.search(frames, time, CurveTimeline2.ENTRIES); + var curveType:Int = Std.int(curves[Std.int(i / CurveTimeline2.ENTRIES)]); + switch (curveType) { + case CurveTimeline.LINEAR: + var before:Float = frames[i]; + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + var t:Float = (time - before) / (frames[i + CurveTimeline2.ENTRIES] - before); + x += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE1] - x) * t; + y += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE2] - y) * t; + case CurveTimeline.STEPPED: + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + default: + x = getBezierValue(time, i, CurveTimeline2.VALUE1, curveType - CurveTimeline.BEZIER); + y = getBezierValue(time, i, CurveTimeline2.VALUE2, curveType + CurveTimeline.BEZIER_SIZE - CurveTimeline.BEZIER); + } + x *= bone.data.scaleX; + y *= bone.data.scaleY; + + if (alpha == 1) { + if (blend == MixBlend.add) { + bone.scaleX += x - bone.data.scaleX; + bone.scaleY += y - bone.data.scaleY; + } else { + bone.scaleX = x; + bone.scaleY = y; + } + } else { + var bx:Float = 0, by:Float = 0; + if (direction == MixDirection.mixOut) { + switch (blend) { + case MixBlend.setup: + bx = bone.data.scaleX; + by = bone.data.scaleY; + bone.scaleX = bx + (Math.abs(x) * MathUtils.signum(bx) - bx) * alpha; + bone.scaleY = by + (Math.abs(y) * MathUtils.signum(by) - by) * alpha; + case MixBlend.first, MixBlend.replace: + bx = bone.scaleX; + by = bone.scaleY; + bone.scaleX = bx + (Math.abs(x) * MathUtils.signum(bx) - bx) * alpha; + bone.scaleY = by + (Math.abs(y) * MathUtils.signum(by) - by) * alpha; + case MixBlend.add: + bone.scaleX = (x - bone.data.scaleX) * alpha; + bone.scaleY = (y - bone.data.scaleY) * alpha; + } + } else { + switch (blend) { + case MixBlend.setup: + bx = Math.abs(bone.data.scaleX) * MathUtils.signum(x); + by = Math.abs(bone.data.scaleY) * MathUtils.signum(y); + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + case MixBlend.first, MixBlend.replace: + bx = Math.abs(bone.scaleX) * MathUtils.signum(x); + by = Math.abs(bone.scaleY) * MathUtils.signum(y); + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + case MixBlend.add: + bone.scaleX += (x - bone.data.scaleX) * alpha; + bone.scaleY += (y - bone.data.scaleY) * alpha; + } + } + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/ScaleXTimeline.hx b/spine-haxe/spine-haxe/spine/animation/ScaleXTimeline.hx new file mode 100644 index 0000000000..003d79eb48 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/ScaleXTimeline.hx @@ -0,0 +1,71 @@ +package spine.animation; + +import openfl.Vector; +import spine.Bone; +import spine.Event; +import spine.MathUtils; +import spine.Skeleton; + +class ScaleXTimeline extends CurveTimeline1 implements BoneTimeline { + private var boneIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, boneIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.scaleX + "|" + boneIndex])); + this.boneIndex = boneIndex; + } + + public function getBoneIndex():Int { + return boneIndex; + } + + override public function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var bone:Bone = skeleton.bones[boneIndex]; + if (!bone.active) + return; + + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.scaleX = bone.data.scaleX; + case MixBlend.first: + bone.scaleX += (bone.data.scaleX - bone.scaleX) * alpha; + } + return; + } + + var x:Float = getCurveValue(time) * bone.data.scaleX; + if (alpha == 1) { + if (blend == MixBlend.add) + bone.scaleX += x - bone.data.scaleX; + else + bone.scaleX = x; + } else { + // Mixing out uses sign of setup or current pose, else use sign of key. + var bx:Float = 0; + if (direction == MixDirection.mixOut) { + switch (blend) { + case MixBlend.setup: + bx = bone.data.scaleX; + bone.scaleX = bx + (Math.abs(x) * MathUtils.signum(bx) - bx) * alpha; + case MixBlend.first, MixBlend.replace: + bx = bone.scaleX; + bone.scaleX = bx + (Math.abs(x) * MathUtils.signum(bx) - bx) * alpha; + case MixBlend.add: + bone.scaleX = (x - bone.data.scaleX) * alpha; + } + } else { + switch (blend) { + case MixBlend.setup: + bx = Math.abs(bone.data.scaleX) * MathUtils.signum(x); + bone.scaleX = bx + (x - bx) * alpha; + case MixBlend.first, MixBlend.replace: + bx = Math.abs(bone.scaleX) * MathUtils.signum(x); + bone.scaleX = bx + (x - bx) * alpha; + case MixBlend.add: + bone.scaleX += (x - bone.data.scaleX) * alpha; + } + } + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/ScaleYTimeline.hx b/spine-haxe/spine-haxe/spine/animation/ScaleYTimeline.hx new file mode 100644 index 0000000000..0ba04781f1 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/ScaleYTimeline.hx @@ -0,0 +1,71 @@ +package spine.animation; + +import openfl.Vector; +import spine.Bone; +import spine.Event; +import spine.MathUtils; +import spine.Skeleton; + +class ScaleYTimeline extends CurveTimeline1 implements BoneTimeline { + private var boneIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, boneIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.scaleY + "|" + boneIndex])); + this.boneIndex = boneIndex; + } + + public function getBoneIndex():Int { + return boneIndex; + } + + override public function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var bone:Bone = skeleton.bones[boneIndex]; + if (!bone.active) + return; + + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.scaleY = bone.data.scaleY; + case MixBlend.first: + bone.scaleY += (bone.data.scaleY - bone.scaleY) * alpha; + } + return; + } + + var y:Float = getCurveValue(time) * bone.data.scaleY; + if (alpha == 1) { + if (blend == MixBlend.add) + bone.scaleY += y - bone.data.scaleY; + else + bone.scaleY = y; + } else { + // Mixing out uses sign of setup or current pose, else use sign of key. + var by:Float = 0; + if (direction == MixDirection.mixOut) { + switch (blend) { + case MixBlend.setup: + by = bone.data.scaleY; + bone.scaleY = by + (Math.abs(y) * MathUtils.signum(by) - by) * alpha; + case MixBlend.first, MixBlend.replace: + by = bone.scaleY; + bone.scaleY = by + (Math.abs(y) * MathUtils.signum(by) - by) * alpha; + case MixBlend.add: + bone.scaleY = (y - bone.data.scaleY) * alpha; + } + } else { + switch (blend) { + case MixBlend.setup: + by = Math.abs(bone.data.scaleY) * MathUtils.signum(y); + bone.scaleY = by + (y - by) * alpha; + case MixBlend.first, MixBlend.replace: + by = Math.abs(bone.scaleY) * MathUtils.signum(y); + bone.scaleY = by + (y - by) * alpha; + case MixBlend.add: + bone.scaleY += (y - bone.data.scaleY) * alpha; + } + } + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/ShearTimeline.hx b/spine-haxe/spine-haxe/spine/animation/ShearTimeline.hx new file mode 100644 index 0000000000..ea02399f67 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/ShearTimeline.hx @@ -0,0 +1,69 @@ +package spine.animation; + +import openfl.Vector; +import spine.Bone; +import spine.Event; +import spine.Skeleton; + +class ShearTimeline extends CurveTimeline2 implements BoneTimeline { + private var boneIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, boneIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.shearX + "|" + boneIndex, Property.shearY + "|" + boneIndex])); + this.boneIndex = boneIndex; + } + + public function getBoneIndex():Int { + return boneIndex; + } + + override public function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var bone:Bone = skeleton.bones[boneIndex]; + if (!bone.active) + return; + + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + case MixBlend.first: + bone.shearX += (bone.data.shearX - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY - bone.shearY) * alpha; + } + return; + } + + var x:Float = 0, y:Float = 0; + var i:Int = Timeline.search(frames, time, CurveTimeline2.ENTRIES); + var curveType:Int = Std.int(curves[Std.int(i / CurveTimeline2.ENTRIES)]); + switch (curveType) { + case CurveTimeline.LINEAR: + var before:Float = frames[i]; + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + var t:Float = (time - before) / (frames[i + CurveTimeline2.ENTRIES] - before); + x += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE1] - x) * t; + y += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE2] - y) * t; + case CurveTimeline.STEPPED: + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + default: + x = getBezierValue(time, i, CurveTimeline2.VALUE1, curveType - CurveTimeline.BEZIER); + y = getBezierValue(time, i, CurveTimeline2.VALUE2, curveType + CurveTimeline.BEZIER_SIZE - CurveTimeline.BEZIER); + } + + switch (blend) { + case MixBlend.setup: + bone.shearX = bone.data.shearX + x * alpha; + bone.shearY = bone.data.shearY + y * alpha; + case MixBlend.first, MixBlend.replace: + bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; + case MixBlend.add: + bone.shearX += x * alpha; + bone.shearY += y * alpha; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/ShearXTimeline.hx b/spine-haxe/spine-haxe/spine/animation/ShearXTimeline.hx new file mode 100644 index 0000000000..7f46e6b29e --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/ShearXTimeline.hx @@ -0,0 +1,46 @@ +package spine.animation; + +import openfl.Vector; +import spine.Bone; +import spine.Event; +import spine.Skeleton; + +class ShearXTimeline extends CurveTimeline1 implements BoneTimeline { + private var boneIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, boneIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.shearX + "|" + boneIndex])); + this.boneIndex = boneIndex; + } + + public function getBoneIndex():Int { + return boneIndex; + } + + override public function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var bone:Bone = skeleton.bones[boneIndex]; + if (!bone.active) + return; + + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.shearX = bone.data.shearX; + case MixBlend.first: + bone.shearX += (bone.data.shearX - bone.shearX) * alpha; + } + return; + } + + var x:Float = getCurveValue(time); + switch (blend) { + case MixBlend.setup: + bone.shearX = bone.data.shearX + x * alpha; + case MixBlend.first, MixBlend.replace: + bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; + case MixBlend.add: + bone.shearX += x * alpha; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/ShearYTimeline.hx b/spine-haxe/spine-haxe/spine/animation/ShearYTimeline.hx new file mode 100644 index 0000000000..4e4c4a279c --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/ShearYTimeline.hx @@ -0,0 +1,46 @@ +package spine.animation; + +import openfl.Vector; +import spine.Bone; +import spine.Event; +import spine.Skeleton; + +class ShearYTimeline extends CurveTimeline1 implements BoneTimeline { + private var boneIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, boneIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.shearY + "|" + boneIndex])); + this.boneIndex = boneIndex; + } + + public function getBoneIndex():Int { + return boneIndex; + } + + override public function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var bone:Bone = skeleton.bones[boneIndex]; + if (!bone.active) + return; + + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.shearY = bone.data.shearY; + case MixBlend.first: + bone.shearY += (bone.data.shearY - bone.shearY) * alpha; + } + return; + } + + var y:Float = getCurveValue(time); + switch (blend) { + case MixBlend.setup: + bone.shearY = bone.data.shearY + y * alpha; + case MixBlend.first, MixBlend.replace: + bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; + case MixBlend.add: + bone.shearY += y * alpha; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/SlotTimeline.hx b/spine-haxe/spine-haxe/spine/animation/SlotTimeline.hx new file mode 100644 index 0000000000..6bc8552fe7 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/SlotTimeline.hx @@ -0,0 +1,5 @@ +package spine.animation; + +interface SlotTimeline { + function getSlotIndex():Int; +} diff --git a/spine-haxe/spine-haxe/spine/animation/Timeline.hx b/spine-haxe/spine-haxe/spine/animation/Timeline.hx new file mode 100644 index 0000000000..ca230f9ab0 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/Timeline.hx @@ -0,0 +1,55 @@ +package spine.animation; + +import spine.Event; +import spine.Skeleton; +import openfl.Vector; + +class Timeline { + public var propertyIds:Vector; + public var frames:Vector; + + public function new(frameCount:Int, propertyIds:Vector) { + this.propertyIds = propertyIds; + frames = new Vector(frameCount * getFrameEntries(), true); + } + + public function getFrameEntries():Int { + return 1; + } + + public function getFrameCount():Int { + return Std.int(frames.length / getFrameEntries()); + } + + public function getDuration():Float { + return frames[frames.length - getFrameEntries()]; + } + + public function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, direction:MixDirection):Void { + trace("Timeline implementations must override apply()"); + } + + public static function search1(frames:Vector, time:Float):Int { + var n:Int = frames.length; + for (i in 1...n) { + if (frames[i] > time) + return i - 1; + } + return n - 1; + } + + public static function search(values:Vector, time:Float, step:Int):Int { + var n:Int = values.length; + var i:Int = step; + while (i < n) { + if (values[i] > time) + return i - step; + i += step; + } + return n - step; + } + + public function toString():String { + return "Timeline " + Type.getClassName(Type.getClass(this)); + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/TrackEntry.hx b/spine-haxe/spine-haxe/spine/animation/TrackEntry.hx new file mode 100644 index 0000000000..da9806f510 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/TrackEntry.hx @@ -0,0 +1,92 @@ +package spine.animation; + +import openfl.Vector; +import spine.animation.Listeners.EventListeners; +import spine.Poolable; + +class TrackEntry implements Poolable { + public var animation:Animation; + public var next:TrackEntry; + public var previous:TrackEntry; + public var mixingFrom:TrackEntry; + public var mixingTo:TrackEntry; + public var onStart:Listeners = new Listeners(); + public var onInterrupt:Listeners = new Listeners(); + public var onEnd:Listeners = new Listeners(); + public var onDispose:Listeners = new Listeners(); + public var onComplete:Listeners = new Listeners(); + public var onEvent:EventListeners = new EventListeners(); + public var trackIndex:Int = 0; + public var loop:Bool = false; + public var reverse:Bool = false; + public var holdPrevious:Bool = false; + public var eventThreshold:Float = 0; + public var attachmentThreshold:Float = 0; + public var drawOrderThreshold:Float = 0; + public var animationStart:Float = 0; + public var animationEnd:Float = 0; + public var animationLast:Float = 0; + public var nextAnimationLast:Float = 0; + public var delay:Float = 0; + public var trackTime:Float = 0; + public var trackLast:Float = 0; + public var nextTrackLast:Float = 0; + public var trackEnd:Float = 0; + public var timeScale:Float = 0; + public var alpha:Float = 0; + public var mixTime:Float = 0; + public var mixDuration:Float = 0; + public var interruptAlpha:Float = 0; + public var totalAlpha:Float = 0; + public var mixBlend:MixBlend = MixBlend.replace; + public var timelineMode:Vector = new Vector(); + public var timelineHoldMix:Vector = new Vector(); + public var timelinesRotation:Vector = new Vector(); + + public function new() {} + + public function getAnimationTime():Float { + if (loop) { + var duration:Float = animationEnd - animationStart; + if (duration == 0) + return animationStart; + return (trackTime % duration) + animationStart; + } + return Math.min(trackTime + animationStart, animationEnd); + } + + /** If this track entry is non-looping, the track time in seconds when {@link #getAnimationEnd()} is reached, or the current + * {@link #getTrackTime()} if it has already been reached. If this track entry is looping, the track time when this + * animation will reach its next {@link #getAnimationEnd()} (the next loop completion). */ + public function getTrackComplete():Float { + var duration:Float = animationEnd - animationStart; + if (duration != 0) { + if (loop) + return duration * (1 + Std.int(trackTime / duration)); // Completion of next loop. + if (trackTime < duration) + return duration; // Before duration. + } + return trackTime; // Next update. + } + + public function reset():Void { + next = null; + previous = null; + mixingFrom = null; + mixingTo = null; + animation = null; + onStart.listeners.length = 0; + onInterrupt.listeners.length = 0; + onEnd.listeners.length = 0; + onDispose.listeners.length = 0; + onComplete.listeners.length = 0; + onEvent.listeners.length = 0; + timelineMode.length = 0; + timelineHoldMix.length = 0; + timelinesRotation.length = 0; + } + + public function resetRotationDirection():Void { + timelinesRotation.length = 0; + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/TransformConstraintTimeline.hx b/spine-haxe/spine-haxe/spine/animation/TransformConstraintTimeline.hx new file mode 100644 index 0000000000..34d5bd3bf0 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/TransformConstraintTimeline.hx @@ -0,0 +1,122 @@ +package spine.animation; + +import openfl.Vector; +import spine.Event; +import spine.Skeleton; +import spine.TransformConstraint; +import spine.TransformConstraintData; + +class TransformConstraintTimeline extends CurveTimeline { + static public inline var ENTRIES:Int = 7; + private static inline var ROTATE:Int = 1; + private static inline var X:Int = 2; + private static inline var Y:Int = 3; + private static inline var SCALEX:Int = 4; + private static inline var SCALEY:Int = 5; + private static inline var SHEARY:Int = 6; + + /** The index of the transform constraint slot in {@link Skeleton#transformConstraints} that will be changed. */ + public var transformConstraintIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, transformConstraintIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.transformConstraint + "|" + transformConstraintIndex])); + this.transformConstraintIndex = transformConstraintIndex; + } + + public override function getFrameEntries():Int { + return ENTRIES; + } + + /** The time in seconds, rotate mix, translate mix, scale mix, and shear mix for the specified key frame. */ + public function setFrame(frame:Int, time:Float, mixRotate:Float, mixX:Float, mixY:Float, mixScaleX:Float, mixScaleY:Float, mixShearY:Float):Void { + frame *= ENTRIES; + frames[frame] = time; + frames[frame + ROTATE] = mixRotate; + frames[frame + X] = mixX; + frames[frame + Y] = mixY; + frames[frame + SCALEX] = mixScaleX; + frames[frame + SCALEY] = mixScaleY; + frames[frame + SHEARY] = mixShearY; + } + + override public function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var constraint:TransformConstraint = skeleton.transformConstraints[transformConstraintIndex]; + if (!constraint.active) + return; + + var data:TransformConstraintData; + if (time < frames[0]) { + data = constraint.data; + switch (blend) { + case MixBlend.setup: + constraint.mixRotate = data.mixRotate; + constraint.mixX = data.mixX; + constraint.mixY = data.mixY; + constraint.mixScaleX = data.mixScaleX; + constraint.mixScaleY = data.mixScaleY; + constraint.mixShearY = data.mixShearY; + case MixBlend.first: + constraint.mixRotate += (data.mixRotate - constraint.mixRotate) * alpha; + constraint.mixX += (data.mixX - constraint.mixX) * alpha; + constraint.mixY += (data.mixY - constraint.mixY) * alpha; + constraint.mixScaleX += (data.mixScaleX - constraint.mixScaleX) * alpha; + constraint.mixScaleY += (data.mixScaleY - constraint.mixScaleY) * alpha; + constraint.mixShearY += (data.mixShearY - constraint.mixShearY) * alpha; + } + return; + } + + var rotate:Float, x:Float, y:Float, scaleX:Float, scaleY:Float, shearY:Float; + var i:Int = Timeline.search(frames, time, ENTRIES); + var curveType:Int = Std.int(curves[Std.int(i / ENTRIES)]); + switch (curveType) { + case CurveTimeline.LINEAR: + var before:Float = frames[i]; + rotate = frames[i + ROTATE]; + x = frames[i + X]; + y = frames[i + Y]; + scaleX = frames[i + SCALEX]; + scaleY = frames[i + SCALEY]; + shearY = frames[i + SHEARY]; + var t:Float = (time - before) / (frames[i + ENTRIES] - before); + rotate += (frames[i + ENTRIES + ROTATE] - rotate) * t; + x += (frames[i + ENTRIES + X] - x) * t; + y += (frames[i + ENTRIES + Y] - y) * t; + scaleX += (frames[i + ENTRIES + SCALEX] - scaleX) * t; + scaleY += (frames[i + ENTRIES + SCALEY] - scaleY) * t; + shearY += (frames[i + ENTRIES + SHEARY] - shearY) * t; + case CurveTimeline.STEPPED: + rotate = frames[i + ROTATE]; + x = frames[i + X]; + y = frames[i + Y]; + scaleX = frames[i + SCALEX]; + scaleY = frames[i + SCALEY]; + shearY = frames[i + SHEARY]; + default: + rotate = getBezierValue(time, i, ROTATE, curveType - CurveTimeline.BEZIER); + x = getBezierValue(time, i, X, curveType + CurveTimeline.BEZIER_SIZE - CurveTimeline.BEZIER); + y = getBezierValue(time, i, Y, curveType + CurveTimeline.BEZIER_SIZE * 2 - CurveTimeline.BEZIER); + scaleX = getBezierValue(time, i, SCALEX, curveType + CurveTimeline.BEZIER_SIZE * 3 - CurveTimeline.BEZIER); + scaleY = getBezierValue(time, i, SCALEY, curveType + CurveTimeline.BEZIER_SIZE * 4 - CurveTimeline.BEZIER); + shearY = getBezierValue(time, i, SHEARY, curveType + CurveTimeline.BEZIER_SIZE * 5 - CurveTimeline.BEZIER); + } + + if (blend == MixBlend.setup) { + data = constraint.data; + constraint.mixRotate = data.mixRotate + (rotate - data.mixRotate) * alpha; + constraint.mixX = data.mixX + (x - data.mixX) * alpha; + constraint.mixY = data.mixY + (y - data.mixY) * alpha; + constraint.mixScaleX = data.mixScaleX + (scaleX - data.mixScaleX) * alpha; + constraint.mixScaleY = data.mixScaleY + (scaleY - data.mixScaleY) * alpha; + constraint.mixShearY = data.mixShearY + (shearY - data.mixShearY) * alpha; + } else { + constraint.mixRotate += (rotate - constraint.mixRotate) * alpha; + constraint.mixX += (x - constraint.mixX) * alpha; + constraint.mixY += (y - constraint.mixY) * alpha; + constraint.mixScaleX += (scaleX - constraint.mixScaleX) * alpha; + constraint.mixScaleY += (scaleY - constraint.mixScaleY) * alpha; + constraint.mixShearY += (shearY - constraint.mixShearY) * alpha; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/TranslateTimeline.hx b/spine-haxe/spine-haxe/spine/animation/TranslateTimeline.hx new file mode 100644 index 0000000000..251d4ae846 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/TranslateTimeline.hx @@ -0,0 +1,70 @@ +package spine.animation; + +import openfl.Vector; +import spine.Bone; +import spine.Event; +import spine.Skeleton; + +class TranslateTimeline extends CurveTimeline2 implements BoneTimeline { + public var boneIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, boneIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.x + "|" + boneIndex, Property.y + "|" + boneIndex])); + this.boneIndex = boneIndex; + } + + public function getBoneIndex():Int { + return boneIndex; + } + + override public function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var bone:Bone = skeleton.bones[boneIndex]; + if (!bone.active) + return; + + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.x = bone.data.x; + bone.y = bone.data.y; + case MixBlend.first: + bone.x += (bone.data.x - bone.x) * alpha; + bone.y += (bone.data.y - bone.y) * alpha; + } + return; + } + + var x:Float = 0, y:Float = 0; + var i:Int = Timeline.search(frames, time, CurveTimeline2.ENTRIES); + var curveType:Int = Std.int(curves[Std.int(i / CurveTimeline2.ENTRIES)]); + + switch (curveType) { + case CurveTimeline.LINEAR: + var before:Float = frames[i]; + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + var t:Float = (time - before) / (frames[i + CurveTimeline2.ENTRIES] - before); + x += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE1] - x) * t; + y += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE2] - y) * t; + case CurveTimeline.STEPPED: + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + default: + x = getBezierValue(time, i, CurveTimeline2.VALUE1, curveType - CurveTimeline.BEZIER); + y = getBezierValue(time, i, CurveTimeline2.VALUE2, curveType + CurveTimeline.BEZIER_SIZE - CurveTimeline.BEZIER); + } + + switch (blend) { + case MixBlend.setup: + bone.x = bone.data.x + x * alpha; + bone.y = bone.data.y + y * alpha; + case MixBlend.first, MixBlend.replace: + bone.x += (bone.data.x + x - bone.x) * alpha; + bone.y += (bone.data.y + y - bone.y) * alpha; + case MixBlend.add: + bone.x += x * alpha; + bone.y += y * alpha; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/TranslateXTimeline.hx b/spine-haxe/spine-haxe/spine/animation/TranslateXTimeline.hx new file mode 100644 index 0000000000..6c3167b388 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/TranslateXTimeline.hx @@ -0,0 +1,46 @@ +package spine.animation; + +import openfl.Vector; +import spine.Bone; +import spine.Event; +import spine.Skeleton; + +class TranslateXTimeline extends CurveTimeline1 implements BoneTimeline { + public var boneIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, boneIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.x + "|" + boneIndex])); + this.boneIndex = boneIndex; + } + + public function getBoneIndex():Int { + return boneIndex; + } + + public override function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var bone:Bone = skeleton.bones[boneIndex]; + if (!bone.active) + return; + + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.x = bone.data.x; + case MixBlend.first: + bone.x += (bone.data.x - bone.x) * alpha; + } + return; + } + + var x:Float = getCurveValue(time); + switch (blend) { + case MixBlend.setup: + bone.x = bone.data.x + x * alpha; + case MixBlend.first, MixBlend.replace: + bone.x += (bone.data.x + x - bone.x) * alpha; + case MixBlend.add: + bone.x += x * alpha; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/animation/TranslateYTimeline.hx b/spine-haxe/spine-haxe/spine/animation/TranslateYTimeline.hx new file mode 100644 index 0000000000..7308f658db --- /dev/null +++ b/spine-haxe/spine-haxe/spine/animation/TranslateYTimeline.hx @@ -0,0 +1,46 @@ +package spine.animation; + +import openfl.Vector; +import spine.Bone; +import spine.Event; +import spine.Skeleton; + +class TranslateYTimeline extends CurveTimeline1 implements BoneTimeline { + public var boneIndex:Int = 0; + + public function new(frameCount:Int, bezierCount:Int, boneIndex:Int) { + super(frameCount, bezierCount, Vector.ofArray([Property.y + "|" + boneIndex])); + this.boneIndex = boneIndex; + } + + public function getBoneIndex():Int { + return boneIndex; + } + + public override function apply(skeleton:Skeleton, lastTime:Float, time:Float, events:Vector, alpha:Float, blend:MixBlend, + direction:MixDirection):Void { + var bone:Bone = skeleton.bones[boneIndex]; + if (!bone.active) + return; + + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.y = bone.data.y; + case MixBlend.first: + bone.y += (bone.data.y - bone.y) * alpha; + } + return; + } + + var y:Float = getCurveValue(time); + switch (blend) { + case MixBlend.setup: + bone.y = bone.data.y + y * alpha; + case MixBlend.first, MixBlend.replace: + bone.y += (bone.data.y + y - bone.y) * alpha; + case MixBlend.add: + bone.y += y * alpha; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/atlas/Atlas.hx b/spine-haxe/spine-haxe/spine/atlas/Atlas.hx new file mode 100644 index 0000000000..3416bc8f19 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/atlas/Atlas.hx @@ -0,0 +1,237 @@ +package spine.atlas; + +import openfl.errors.ArgumentError; +import openfl.utils.ByteArray; +import openfl.utils.Dictionary; +import openfl.Vector; + +class Atlas { + private var pages:Vector = new Vector(); + private var regions:Vector = new Vector(); + private var textureLoader:TextureLoader; + + /** @param object A String or ByteArray. */ + public function new(object:Dynamic, textureLoader:TextureLoader) { + if (object == null) { + return; + } + if (Std.isOfType(object, String)) { + load(cast(object, String), textureLoader); + } else if (Std.isOfType(object, ByteArrayData)) { + load(cast(object, ByteArray).readUTFBytes(cast(object, ByteArray).length), textureLoader); + } else { + throw new ArgumentError("object must be a TextureAtlas or AttachmentLoader."); + } + } + + private function load(atlasText:String, textureLoader:TextureLoader):Void { + if (textureLoader == null) { + throw new ArgumentError("textureLoader cannot be null."); + } + this.textureLoader = textureLoader; + + var reader:Reader = new Reader(atlasText); + var entry:Vector = new Vector(5, true); + var page:AtlasPage = null; + var region:AtlasRegion = null; + + var pageFields:DictionaryVoid> = new DictionaryVoid>(); + pageFields["size"] = function():Void { + page.width = Std.parseInt(entry[1]); + page.height = Std.parseInt(entry[2]); + }; + pageFields["format"] = function():Void { + page.format = Format.fromName(entry[0]); + }; + pageFields["filter"] = function():Void { + page.minFilter = TextureFilter.fromName(entry[1]); + page.magFilter = TextureFilter.fromName(entry[2]); + }; + pageFields["repeat"] = function():Void { + if (entry[1].indexOf('x') != -1) + page.uWrap = TextureWrap.repeat; + if (entry[1].indexOf('y') != -1) + page.vWrap = TextureWrap.repeat; + }; + pageFields["pma"] = function():Void { + page.pma = entry[1] == "true"; + }; + + var regionFields:DictionaryVoid> = new DictionaryVoid>(); + regionFields["bounds"] = function():Void { + region.x = Std.parseInt(entry[1]); + region.y = Std.parseInt(entry[2]); + region.width = Std.parseInt(entry[3]); + region.height = Std.parseInt(entry[4]); + }; + regionFields["offsets"] = function():Void { + region.offsetX = Std.parseInt(entry[1]); + region.offsetY = Std.parseInt(entry[2]); + region.originalWidth = Std.parseInt(entry[3]); + region.originalHeight = Std.parseInt(entry[4]); + }; + regionFields["rotate"] = function():Void { + var value:String = entry[1]; + if (value == "true") + region.degrees = 90; + else if (value != "false") + region.degrees = Std.parseInt(value); + }; + regionFields["index"] = function():Void { + region.index = Std.parseInt(entry[1]); + }; + + var line:String = reader.readLine(); + // Ignore empty lines before first entry. + while (line != null && line.length == 0) { + line = reader.readLine(); + } + + // Header entries. + while (true) { + if (line == null || line.length == 0) + break; + if (reader.readEntry(entry, line) == 0) + break; // Silently ignore all header fields. + line = reader.readLine(); + } + + // Page and region entries. + var names:Vector = null; + var values:Vector> = null; + var field:Void->Void; + while (true) { + if (line == null) + break; + if (line.length == 0) { + page = null; + line = reader.readLine(); + } else if (page == null) { + page = new AtlasPage(); + page.name = line; + while (true) { + if (reader.readEntry(entry, line = reader.readLine()) == 0) + break; + field = pageFields[entry[0]]; + if (field != null) { + field(); + } + } + textureLoader.loadPage(page, line); + pages.push(page); + } else { + region = new AtlasRegion(); + region.page = page; + region.name = line; + while (true) { + var count:Int = reader.readEntry(entry, line = reader.readLine()); + if (count == 0) + break; + field = regionFields[entry[0]]; + if (field != null) { + field(); + } else { + if (names == null) { + names = new Vector(); + values = new Vector>(); + } + names.push(entry[0]); + var entryValues:Vector = new Vector(count, true); + for (i in 0...count) { + entryValues[i] = Std.parseInt(entry[i + 1]); + } + values.push(entryValues); + } + } + + if (region.originalWidth == 0 && region.originalHeight == 0) { + region.originalWidth = region.width; + region.originalHeight = region.height; + } + + if (names != null && names.length > 0) { + region.names = names; + region.values = values; + names = null; + values = null; + } + region.u = region.x / page.width; + region.v = region.y / page.height; + if (region.degrees == 90) { + region.u2 = (region.x + region.height) / page.width; + region.v2 = (region.y + region.width) / page.height; + } else { + region.u2 = (region.x + region.width) / page.width; + region.v2 = (region.y + region.height) / page.height; + } + + textureLoader.loadRegion(region); + regions.push(region); + } + } + } + + /** Returns the first region found with the specified name. This method uses string comparison to find the region, so the result + * should be cached rather than calling this method multiple times. + * @return The region, or null. */ + public function findRegion(name:String):AtlasRegion { + for (region in regions) { + if (region.name == name) { + return region; + } + } + return null; + } + + public function dispose():Void { + for (page in pages) { + textureLoader.unloadPage(page); + } + } +} + +class Reader { + private static var trimRegex:EReg = new EReg("^\\s+|\\s+$", "g"); + + private var lines:Array; + private var index:Int = 0; + + public function new(text:String) { + var regex:EReg = new EReg("[ \t]*(?:\r\n|\r|\n)[ \t]*", "g"); + lines = regex.split(text); + } + + private function trim(value:String):String { + return trimRegex.replace(value, ""); + } + + public function readLine():String { + return index >= lines.length ? null : lines[index++]; + } + + public function readEntry(entry:Vector, line:String):Int { + if (line == null) + return 0; + if (line.length == 0) + return 0; + var colon:Int = line.indexOf(':'); + if (colon == -1) + return 0; + entry[0] = trim(line.substr(0, colon)); + var i:Int = 1; + var lastMatch:Int = colon + 1; + while (true) { + var comma:Int = line.indexOf(',', lastMatch); + if (comma == -1) { + entry[i] = trim(line.substr(lastMatch)); + return i; + } + entry[i] = trim(line.substr(lastMatch, comma - lastMatch)); + lastMatch = comma + 1; + if (i == 4) + return 4; + + i++; + } + } +} diff --git a/spine-haxe/spine-haxe/spine/atlas/AtlasPage.hx b/spine-haxe/spine-haxe/spine/atlas/AtlasPage.hx new file mode 100644 index 0000000000..168e255a64 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/atlas/AtlasPage.hx @@ -0,0 +1,16 @@ +package spine.atlas; + +class AtlasPage { + public var name:String; + public var format:Format; + public var minFilter:TextureFilter = TextureFilter.nearest; + public var magFilter:TextureFilter = TextureFilter.nearest; + public var uWrap:TextureWrap = TextureWrap.clampToEdge; + public var vWrap:TextureWrap = TextureWrap.clampToEdge; + public var width:Int = 0; + public var height:Int = 0; + public var pma:Bool = false; + public var rendererObject:Dynamic; + + public function new() {} +} diff --git a/spine-haxe/spine-haxe/spine/atlas/AtlasRegion.hx b/spine-haxe/spine-haxe/spine/atlas/AtlasRegion.hx new file mode 100644 index 0000000000..19b94534c8 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/atlas/AtlasRegion.hx @@ -0,0 +1,29 @@ +package spine.atlas; + +import openfl.Vector; + +class AtlasRegion { + public var page:AtlasPage; + public var name:String; + public var x:Int = 0; + public var y:Int = 0; + public var width:Int = 0; + public var height:Int = 0; + public var u:Float = 0; + public var v:Float = 0; + public var u2:Float = 0; + public var v2:Float = 0; + public var offsetX:Float = 0; + public var offsetY:Float = 0; + public var originalWidth:Int = 0; + public var originalHeight:Int = 0; + public var index:Int = 0; + public var degrees:Int = 0; + public var splits:Vector; + public var pads:Vector; + public var rendererObject:Dynamic; + public var names:Vector; + public var values:Vector>; + + public function new() {} +} diff --git a/spine-haxe/spine-haxe/spine/atlas/Format.hx b/spine-haxe/spine-haxe/spine/atlas/Format.hx new file mode 100644 index 0000000000..aada60194a --- /dev/null +++ b/spine-haxe/spine-haxe/spine/atlas/Format.hx @@ -0,0 +1,31 @@ +package spine.atlas; + +import openfl.Vector; + +class Format { + public static var alpha(default, never):Format = new Format(0, "alpha"); + public static var intensity(default, never):Format = new Format(1, "intensity"); + public static var luminanceAlpha(default, never):Format = new Format(2, "luminanceAlpha"); + public static var rgb565(default, never):Format = new Format(3, "rgb565"); + public static var rgba4444(default, never):Format = new Format(4, "rgba4444"); + public static var rgb888(default, never):Format = new Format(5, "rgb888"); + public static var rgba8888(default, never):Format = new Format(6, "rgba8888"); + + public static var values(default, never):Vector = Vector.ofArray([alpha, intensity, luminanceAlpha, rgb565, rgba4444, rgb888, rgba8888]); + + public var ordinal(default, null):Int; + public var name(default, null):String; + + public function new(ordinal:Int, name:String) { + this.ordinal = ordinal; + this.name = name; + } + + public static function fromName(name:String):Format { + for (value in values) { + if (value.name == name) + return value; + } + return null; + } +} diff --git a/spine-haxe/spine-haxe/spine/atlas/TextureFilter.hx b/spine-haxe/spine-haxe/spine/atlas/TextureFilter.hx new file mode 100644 index 0000000000..dd5622987b --- /dev/null +++ b/spine-haxe/spine-haxe/spine/atlas/TextureFilter.hx @@ -0,0 +1,39 @@ +package spine.atlas; + +import openfl.Vector; + +class TextureFilter { + public static var nearest(default, never):TextureFilter = new TextureFilter(0, "nearest"); + public static var linear(default, never):TextureFilter = new TextureFilter(1, "linear"); + public static var mipMap(default, never):TextureFilter = new TextureFilter(2, "mipMap"); + public static var mipMapNearestNearest(default, never):TextureFilter = new TextureFilter(3, "mipMapNearestNearest"); + public static var mipMapLinearNearest(default, never):TextureFilter = new TextureFilter(4, "mipMapLinearNearest"); + public static var mipMapNearestLinear(default, never):TextureFilter = new TextureFilter(5, "mipMapNearestLinear"); + public static var mipMapLinearLinear(default, never):TextureFilter = new TextureFilter(6, "mipMapLinearLinear"); + + public static var values(default, never):Vector = Vector.ofArray([ + nearest, + linear, + mipMap, + mipMapNearestNearest, + mipMapLinearNearest, + mipMapNearestLinear, + mipMapLinearLinear + ]); + + public var ordinal(default, null):Int; + public var name(default, null):String; + + public function new(ordinal:Int, name:String) { + this.ordinal = ordinal; + this.name = name; + } + + public static function fromName(name:String):TextureFilter { + for (value in values) { + if (value.name == name.toLowerCase()) + return value; + } + return null; + } +} diff --git a/spine-haxe/spine-haxe/spine/atlas/TextureLoader.hx b/spine-haxe/spine-haxe/spine/atlas/TextureLoader.hx new file mode 100644 index 0000000000..eb4cbeb6f3 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/atlas/TextureLoader.hx @@ -0,0 +1,9 @@ +package spine.atlas; + +interface TextureLoader { + function loadPage(page:AtlasPage, path:String):Void; + + function loadRegion(region:AtlasRegion):Void; + + function unloadPage(page:AtlasPage):Void; +} diff --git a/spine-haxe/spine-haxe/spine/atlas/TextureWrap.hx b/spine-haxe/spine-haxe/spine/atlas/TextureWrap.hx new file mode 100644 index 0000000000..f5ec7109e2 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/atlas/TextureWrap.hx @@ -0,0 +1,27 @@ +package spine.atlas; + +import openfl.Vector; + +class TextureWrap { + public static var mirroredRepeat(default, never):TextureWrap = new TextureWrap(0, "mirroredRepeat"); + public static var clampToEdge(default, never):TextureWrap = new TextureWrap(1, "clampToEdge"); + public static var repeat(default, never):TextureWrap = new TextureWrap(2, "repeat"); + + public static var values(default, never):Vector = Vector.ofArray([mirroredRepeat, clampToEdge, repeat]); + + public var ordinal(default, null):Int; + public var name(default, null):String; + + public function new(ordinal:Int, name:String) { + this.ordinal = ordinal; + this.name = name; + } + + public static function fromName(name:String):TextureWrap { + for (value in values) { + if (value.name == name) + return value; + } + return null; + } +} diff --git a/spine-haxe/spine-haxe/spine/attachments/AtlasAttachmentLoader.hx b/spine-haxe/spine-haxe/spine/attachments/AtlasAttachmentLoader.hx new file mode 100644 index 0000000000..d128febf20 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/attachments/AtlasAttachmentLoader.hx @@ -0,0 +1,84 @@ +package spine.attachments; + +import openfl.errors.ArgumentError; +import spine.atlas.Atlas; +import spine.atlas.AtlasRegion; +import spine.Skin; + +class AtlasAttachmentLoader implements AttachmentLoader { + private var atlas:Atlas; + + public function new(atlas:Atlas) { + if (atlas == null) { + throw new ArgumentError("atlas cannot be null."); + } + this.atlas = atlas; + } + + public function newRegionAttachment(skin:Skin, name:String, path:String):RegionAttachment { + var region:AtlasRegion = atlas.findRegion(path); + if (region == null) { + trace("Region not found in atlas: " + path + " (region attachment: " + name + ")"); + return null; + } + var attachment:RegionAttachment = new RegionAttachment(name); + attachment.rendererObject = region; + attachment.setUVs(region.u, region.v, region.u2, region.v2, region.degrees); + attachment.regionOffsetX = region.offsetX; + attachment.regionOffsetY = region.offsetY; + attachment.regionWidth = region.width; + attachment.regionHeight = region.height; + attachment.regionOriginalWidth = region.originalWidth; + attachment.regionOriginalHeight = region.originalHeight; + return attachment; + } + + public function newMeshAttachment(skin:Skin, name:String, path:String):MeshAttachment { + var region:AtlasRegion = atlas.findRegion(path); + if (region == null) { + trace("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); + return null; + } + + var attachment:MeshAttachment = new MeshAttachment(name); + attachment.rendererObject = region; + attachment.regionU = region.u; + attachment.regionV = region.v; + attachment.regionU2 = region.u2; + attachment.regionV2 = region.v2; + attachment.regionDegrees = region.degrees; + attachment.regionOffsetX = region.offsetX; + attachment.regionOffsetY = region.offsetY; + attachment.regionWidth = region.width; + attachment.regionHeight = region.height; + attachment.regionOriginalWidth = region.originalWidth; + attachment.regionOriginalHeight = region.originalHeight; + return attachment; + } + + public function newBoundingBoxAttachment(skin:Skin, name:String):BoundingBoxAttachment { + return new BoundingBoxAttachment(name); + } + + public function newPathAttachment(skin:Skin, name:String):PathAttachment { + return new PathAttachment(name); + } + + public function newPointAttachment(skin:Skin, name:String):PointAttachment { + return new PointAttachment(name); + } + + public function newClippingAttachment(skin:Skin, name:String):ClippingAttachment { + return new ClippingAttachment(name); + } + + static public function nextPOT(value:Int):Int { + value--; + value |= value >> 1; + value |= value >> 2; + value |= value >> 4; + value |= value >> 8; + value |= value >> 16; + return value + 1; + } +} diff --git a/spine-haxe/spine-haxe/spine/attachments/Attachment.hx b/spine-haxe/spine-haxe/spine/attachments/Attachment.hx new file mode 100644 index 0000000000..49daeeb940 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/attachments/Attachment.hx @@ -0,0 +1,29 @@ +package spine.attachments; + +import openfl.errors.ArgumentError; +import openfl.errors.IllegalOperationError; + +class Attachment { + private var _name:String; + + public function new(name:String) { + if (name == null) { + throw new ArgumentError("name cannot be null."); + } + _name = name; + } + + public var name(get, never):String; + + private function get_name():String { + return _name; + } + + public function toString():String { + return name; + } + + public function copy():Attachment { + throw new IllegalOperationError("Not implemented"); + } +} diff --git a/spine-haxe/spine-haxe/spine/attachments/AttachmentLoader.hx b/spine-haxe/spine-haxe/spine/attachments/AttachmentLoader.hx new file mode 100644 index 0000000000..6e52151d10 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/attachments/AttachmentLoader.hx @@ -0,0 +1,23 @@ +package spine.attachments; + +import spine.Skin; + +interface AttachmentLoader { + /** @return May be null to not load an attachment. */ + function newRegionAttachment(skin:Skin, name:String, path:String):RegionAttachment; + + /** @return May be null to not load an attachment. */ + function newMeshAttachment(skin:Skin, name:String, path:String):MeshAttachment; + + /** @return May be null to not load an attachment. */ + function newBoundingBoxAttachment(skin:Skin, name:String):BoundingBoxAttachment; + + /** @return May be null to not load an attachment */ + function newPathAttachment(skin:Skin, name:String):PathAttachment; + + /** @return May be null to not load an attachment */ + function newPointAttachment(skin:Skin, name:String):PointAttachment; + + /** @return May be null to not load an attachment */ + function newClippingAttachment(skin:Skin, name:String):ClippingAttachment; +} diff --git a/spine-haxe/spine-haxe/spine/attachments/AttachmentType.hx b/spine-haxe/spine-haxe/spine/attachments/AttachmentType.hx new file mode 100644 index 0000000000..89926ba017 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/attachments/AttachmentType.hx @@ -0,0 +1,31 @@ +package spine.attachments; + +import openfl.Vector; + +class AttachmentType { + public static var region(default, never):AttachmentType = new AttachmentType(0, "region"); + public static var boundingbox(default, never):AttachmentType = new AttachmentType(1, "boundingbox"); + public static var mesh(default, never):AttachmentType = new AttachmentType(2, "mesh"); + public static var linkedmesh(default, never):AttachmentType = new AttachmentType(3, "linkedmesh"); + public static var path(default, never):AttachmentType = new AttachmentType(4, "path"); + public static var point(default, never):AttachmentType = new AttachmentType(5, "point"); + public static var clipping(default, never):AttachmentType = new AttachmentType(6, "clipping"); + + public static var values(default, never):Vector = Vector.ofArray([region, boundingbox, mesh, linkedmesh, path, point, clipping]); + + public var ordinal(default, null):Int; + public var name(default, null):String; + + public function new(ordinal:Int, name:String) { + this.ordinal = ordinal; + this.name = name; + } + + public static function fromName(name:String):AttachmentType { + for (value in values) { + if (value.name == name) + return value; + } + return null; + } +} diff --git a/spine-haxe/spine-haxe/spine/attachments/BoundingBoxAttachment.hx b/spine-haxe/spine-haxe/spine/attachments/BoundingBoxAttachment.hx new file mode 100644 index 0000000000..7a62e04361 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/attachments/BoundingBoxAttachment.hx @@ -0,0 +1,17 @@ +package spine.attachments; + +import spine.Color; + +class BoundingBoxAttachment extends VertexAttachment { + public var color:Color = new Color(0, 0, 0, 0); + + public function new(name:String) { + super(name); + } + + override public function copy():Attachment { + var copy:BoundingBoxAttachment = new BoundingBoxAttachment(name); + copyTo(copy); + return copy; + } +} diff --git a/spine-haxe/spine-haxe/spine/attachments/ClippingAttachment.hx b/spine-haxe/spine-haxe/spine/attachments/ClippingAttachment.hx new file mode 100644 index 0000000000..dd4318bb81 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/attachments/ClippingAttachment.hx @@ -0,0 +1,21 @@ +package spine.attachments; + +import spine.Color; +import spine.SlotData; + +class ClippingAttachment extends VertexAttachment { + public var endSlot:SlotData; + public var color:Color = new Color(0.2275, 0.2275, 0.2275, 1); + + public function new(name:String) { + super(name); + } + + override public function copy():Attachment { + var copy:ClippingAttachment = new ClippingAttachment(name); + copyTo(copy); + copy.endSlot = endSlot; + copy.color.setFromColor(color); + return copy; + } +} diff --git a/spine-haxe/spine-haxe/spine/attachments/MeshAttachment.hx b/spine-haxe/spine-haxe/spine/attachments/MeshAttachment.hx new file mode 100644 index 0000000000..6d0505c0f4 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/attachments/MeshAttachment.hx @@ -0,0 +1,190 @@ +package spine.attachments; + +import openfl.Vector; +import spine.Color; + +class MeshAttachment extends VertexAttachment { + public var uvs:Vector; + public var regionUVs:Vector; + public var triangles:Vector; + public var color:Color = new Color(1, 1, 1, 1); + public var hullLength:Int = 0; + + private var _parentMesh:MeshAttachment; + + public var path:String; + public var rendererObject:Dynamic; + public var regionU:Float = 0; + public var regionV:Float = 0; + public var regionU2:Float = 0; + public var regionV2:Float = 0; + public var regionDegrees:Int = 0; + public var regionOffsetX:Float = 0; // Pixels stripped from the bottom left, unrotated. + public var regionOffsetY:Float = 0; + public var regionWidth:Float = 0; // Unrotated, stripped size. + public var regionHeight:Float = 0; + public var regionOriginalWidth:Float = 0; // Unrotated, unstripped size. + public var regionOriginalHeight:Float = 0; + // Nonessential. + public var edges:Vector; + public var width:Float = 0; + public var height:Float = 0; + + public function new(name:String) { + super(name); + } + + public function updateUVs():Void { + var i:Int = 0, n:Int = regionUVs.length; + var u:Float = regionU, v:Float = regionV; + var width:Float = 0, height:Float = 0; + var textureWidth:Float, textureHeight:Float; + if (uvs == null || uvs.length != n) + uvs = new Vector(n, true); + + switch (regionDegrees) { + case 90: + { + textureWidth = regionHeight / (regionU2 - regionU); + textureHeight = regionWidth / (regionV2 - regionV); + u -= (regionOriginalHeight - regionOffsetY - regionHeight) / textureWidth; + v -= (regionOriginalWidth - regionOffsetX - regionWidth) / textureHeight; + width = regionOriginalHeight / textureWidth; + height = regionOriginalWidth / textureHeight; + i = 0; + while (i < n) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + (1 - regionUVs[i]) * height; + i += 2; + } + } + case 180: + { + textureWidth = regionWidth / (regionU2 - regionU); + textureHeight = regionHeight / (regionV2 - regionV); + u -= (regionOriginalWidth - regionOffsetX - regionWidth) / textureWidth; + v -= regionOffsetY / textureHeight; + width = regionOriginalWidth / textureWidth; + height = regionOriginalHeight / textureHeight; + i = 0; + while (i < n) { + uvs[i] = u + (1 - regionUVs[i]) * width; + uvs[i + 1] = v + (1 - regionUVs[i + 1]) * height; + i += 2; + } + } + case 270: + { + textureWidth = regionWidth / (regionU2 - regionU); + textureHeight = regionHeight / (regionV2 - regionV); + u -= regionOffsetY / textureWidth; + v -= regionOffsetX / textureHeight; + width = regionOriginalHeight / textureWidth; + height = regionOriginalWidth / textureHeight; + i = 0; + while (i < n) { + uvs[i] = u + (1 - regionUVs[i + 1]) * width; + uvs[i + 1] = v + regionUVs[i] * height; + i += 2; + } + } + default: + { + textureWidth = regionWidth / (regionU2 - regionU); + textureHeight = regionHeight / (regionV2 - regionV); + u -= regionOffsetX / textureWidth; + v -= (regionOriginalHeight - regionOffsetY - regionHeight) / textureHeight; + width = regionOriginalWidth / textureWidth; + height = regionOriginalHeight / textureHeight; + i = 0; + while (i < n) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + i += 2; + } + } + } + } + + public var parentMesh(get, set):MeshAttachment; + + private function get_parentMesh():MeshAttachment { + return _parentMesh; + } + + private function set_parentMesh(parentMesh:MeshAttachment):MeshAttachment { + _parentMesh = parentMesh; + if (parentMesh != null) { + bones = parentMesh.bones; + vertices = parentMesh.vertices; + worldVerticesLength = parentMesh.worldVerticesLength; + regionUVs = parentMesh.regionUVs; + triangles = parentMesh.triangles; + hullLength = parentMesh.hullLength; + edges = parentMesh.edges; + width = parentMesh.width; + height = parentMesh.height; + } + return _parentMesh; + } + + override public function copy():Attachment { + var copy:MeshAttachment = new MeshAttachment(name); + copy.rendererObject = rendererObject; + copy.regionU = regionU; + copy.regionV = regionV; + copy.regionU2 = regionU2; + copy.regionV2 = regionV2; + copy.regionDegrees = regionDegrees; + copy.regionOffsetX = regionOffsetX; + copy.regionOffsetY = regionOffsetY; + copy.regionWidth = regionWidth; + copy.regionHeight = regionHeight; + copy.regionOriginalWidth = regionOriginalWidth; + copy.regionOriginalHeight = regionOriginalHeight; + copy.path = path; + copy.color.setFromColor(color); + + if (parentMesh == null) { + this.copyTo(copy); + copy.regionUVs = regionUVs.concat(); + copy.uvs = uvs.concat(); + copy.triangles = triangles.concat(); + copy.hullLength = hullLength; + + // Nonessential. + if (edges != null) { + copy.edges = edges.concat(); + } + copy.width = width; + copy.height = height; + } else { + copy.parentMesh = parentMesh; + copy.updateUVs(); + } + + return copy; + } + + public function newLinkedMesh():MeshAttachment { + var copy:MeshAttachment = new MeshAttachment(name); + copy.rendererObject = rendererObject; + copy.regionU = regionU; + copy.regionV = regionV; + copy.regionU2 = regionU2; + copy.regionV2 = regionV2; + copy.regionDegrees = regionDegrees; + copy.regionOffsetX = regionOffsetX; + copy.regionOffsetY = regionOffsetY; + copy.regionWidth = regionWidth; + copy.regionHeight = regionHeight; + copy.regionOriginalWidth = regionOriginalWidth; + copy.regionOriginalHeight = regionOriginalHeight; + copy.path = path; + copy.color.setFromColor(color); + copy.deformAttachment = deformAttachment; + copy.parentMesh = parentMesh != null ? parentMesh : this; + copy.updateUVs(); + return copy; + } +} diff --git a/spine-haxe/spine-haxe/spine/attachments/PathAttachment.hx b/spine-haxe/spine-haxe/spine/attachments/PathAttachment.hx new file mode 100644 index 0000000000..8e6540f745 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/attachments/PathAttachment.hx @@ -0,0 +1,24 @@ +package spine.attachments; + +import openfl.Vector; +import spine.Color; + +class PathAttachment extends VertexAttachment { + public var lengths:Vector; + public var closed:Bool = false; + public var constantSpeed:Bool = false; + public var color:Color = new Color(0, 0, 0, 0); + + public function new(name:String) { + super(name); + } + + override public function copy():Attachment { + var copy:PathAttachment = new PathAttachment(name); + copyTo(copy); + copy.lengths = lengths.concat(); + copy.closed = closed; + copy.constantSpeed = constantSpeed; + return copy; + } +} diff --git a/spine-haxe/spine-haxe/spine/attachments/PointAttachment.hx b/spine-haxe/spine-haxe/spine/attachments/PointAttachment.hx new file mode 100644 index 0000000000..2ab8f342b2 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/attachments/PointAttachment.hx @@ -0,0 +1,40 @@ +package spine.attachments; + +import openfl.Vector; +import spine.Bone; +import spine.Color; +import spine.MathUtils; + +class PointAttachment extends VertexAttachment { + public var x:Float = 0; + public var y:Float = 0; + public var rotation:Float = 0; + public var color:Color = new Color(0.38, 0.94, 0, 1); + + public function new(name:String) { + super(name); + } + + public function computeWorldPosition(bone:Bone, point:Vector):Vector { + point[0] = x * bone.a + y * bone.b + bone.worldX; + point[1] = x * bone.c + y * bone.d + bone.worldY; + return point; + } + + public function computeWorldRotation(bone:Bone):Float { + var cos:Float = MathUtils.cosDeg(this.rotation), + sin:Float = MathUtils.sinDeg(this.rotation); + var x:Float = cos * bone.a + sin * bone.b; + var y:Float = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * MathUtils.radDeg; + } + + override public function copy():Attachment { + var copy:PointAttachment = new PointAttachment(name); + copy.x = x; + copy.y = y; + copy.rotation = rotation; + copy.color.setFromColor(color); + return copy; + } +} diff --git a/spine-haxe/spine-haxe/spine/attachments/RegionAttachment.hx b/spine-haxe/spine-haxe/spine/attachments/RegionAttachment.hx new file mode 100644 index 0000000000..265d6aa395 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/attachments/RegionAttachment.hx @@ -0,0 +1,148 @@ +package spine.attachments; + +import openfl.Vector; +import spine.Bone; +import spine.Color; + +class RegionAttachment extends Attachment { + public static inline var BLX:Int = 0; + public static inline var BLY:Int = 1; + public static inline var ULX:Int = 2; + public static inline var ULY:Int = 3; + public static inline var URX:Int = 4; + public static inline var URY:Int = 5; + public static inline var BRX:Int = 6; + public static inline var BRY:Int = 7; + + public var x:Float = 0; + public var y:Float = 0; + public var scaleX:Float = 1; + public var scaleY:Float = 1; + public var rotation:Float = 0; + public var width:Float = 0; + public var height:Float = 0; + public var color:Color = new Color(1, 1, 1, 1); + public var path:String; + public var rendererObject:Dynamic; + public var regionOffsetX:Float = 0; // Pixels stripped from the bottom left, unrotated. + public var regionOffsetY:Float = 0; + public var regionWidth:Float = 0; // Unrotated, stripped size. + public var regionHeight:Float = 0; + public var regionOriginalWidth:Float = 0; // Unrotated, unstripped size. + public var regionOriginalHeight:Float = 0; + + private var offsets:Vector = new Vector(8, true); + + public var uvs:Vector = new Vector(8, true); + + public function new(name:String) { + super(name); + } + + public function updateOffset():Void { + var regionScaleX:Float = width / regionOriginalWidth * scaleX; + var regionScaleY:Float = height / regionOriginalHeight * scaleY; + var localX:Float = -width * 0.5 * scaleX + regionOffsetX * regionScaleX; + var localY:Float = -height * 0.5 * scaleY + regionOffsetY * regionScaleY; + var localX2:Float = localX + regionWidth * regionScaleX; + var localY2:Float = localY + regionHeight * regionScaleY; + + var radians:Float = rotation * MathUtils.degRad; + var cos:Float = Math.cos(radians); + var sin:Float = Math.sin(radians); + var localXCos:Float = localX * cos + x; + var localXSin:Float = localX * sin; + var localYCos:Float = localY * cos + y; + var localYSin:Float = localY * sin; + var localX2Cos:Float = localX2 * cos + x; + var localX2Sin:Float = localX2 * sin; + var localY2Cos:Float = localY2 * cos + y; + var localY2Sin:Float = localY2 * sin; + + offsets[BLX] = localXCos - localYSin; + offsets[BLY] = localYCos + localXSin; + offsets[ULX] = localXCos - localY2Sin; + offsets[ULY] = localY2Cos + localXSin; + offsets[URX] = localX2Cos - localY2Sin; + offsets[URY] = localY2Cos + localX2Sin; + offsets[BRX] = localX2Cos - localYSin; + offsets[BRY] = localYCos + localX2Sin; + } + + public function setUVs(u:Float, v:Float, u2:Float, v2:Float, degrees:Int):Void { + if (degrees == 90) { + uvs[4] = u; + uvs[5] = v2; + uvs[6] = u; + uvs[7] = v; + uvs[0] = u2; + uvs[1] = v; + uvs[2] = u2; + uvs[3] = v2; + } else { + uvs[2] = u; + uvs[3] = v2; + uvs[4] = u; + uvs[5] = v; + uvs[6] = u2; + uvs[7] = v; + uvs[0] = u2; + uvs[1] = v2; + } + } + + public function computeWorldVertices(bone:Bone, worldVertices:Vector, offset:Int, stride:Int):Void { + var x:Float = bone.worldX, y:Float = bone.worldY; + var a:Float = bone.a, + b:Float = bone.b, + c:Float = bone.c, + d:Float = bone.d; + var offsetX:Float = 0, offsetY:Float = 0; + + offsetX = offsets[BRX]; + offsetY = offsets[BRY]; + worldVertices[offset] = offsetX * a + offsetY * b + x; // br + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + + offsetX = offsets[BLX]; + offsetY = offsets[BLY]; + worldVertices[offset] = offsetX * a + offsetY * b + x; // bl + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + + offsetX = offsets[ULX]; + offsetY = offsets[ULY]; + worldVertices[offset] = offsetX * a + offsetY * b + x; // ul + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + + offsetX = offsets[URX]; + offsetY = offsets[URY]; + worldVertices[offset] = offsetX * a + offsetY * b + x; // ur + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + } + + override public function copy():Attachment { + var copy:RegionAttachment = new RegionAttachment(name); + copy.regionWidth = regionWidth; + copy.regionHeight = regionHeight; + copy.regionOffsetX = regionOffsetX; + copy.regionOffsetY = regionOffsetY; + copy.regionOriginalWidth = regionOriginalWidth; + copy.regionOriginalHeight = regionOriginalHeight; + copy.rendererObject = rendererObject; + copy.path = path; + copy.x = x; + copy.y = y; + copy.scaleX = scaleX; + copy.scaleY = scaleY; + copy.rotation = rotation; + copy.width = width; + copy.height = height; + copy.uvs = uvs.concat(); + copy.offsets = offsets.concat(); + copy.color.setFromColor(color); + return copy; + } +} diff --git a/spine-haxe/spine-haxe/spine/attachments/VertexAttachment.hx b/spine-haxe/spine-haxe/spine/attachments/VertexAttachment.hx new file mode 100644 index 0000000000..6b1abd13a7 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/attachments/VertexAttachment.hx @@ -0,0 +1,140 @@ +package spine.attachments; + +import openfl.Vector; +import spine.Bone; +import spine.Skeleton; +import spine.Slot; + +class VertexAttachment extends Attachment { + private static var nextID:Int = 0; + + public var bones:Vector; + public var vertices:Vector; + public var worldVerticesLength:Int = 0; + public var id:Int = nextID++; + public var deformAttachment:VertexAttachment; + + public function new(name:String) { + super(name); + deformAttachment = this; + } + + /** Transforms the attachment's local {@link #vertices} to world coordinates. If the slot's {@link Slot#deform} is + * not empty, it is used to deform the vertices. + * + * See [World transforms](http://esotericsoftware.com/spine-runtime-skeletons#World-transforms) in the Spine + * Runtimes Guide. + * @param start The index of the first {@link #vertices} value to transform. Each vertex has 2 values, x and y. + * @param count The number of world vertex values to output. Must be <= {@link #worldVerticesLength} - `start`. + * @param worldVertices The output world vertices. Must have a length >= `offset` + `count` * + * `stride` / 2. + * @param offset The `worldVertices` index to begin writing values. + * @param stride The number of `worldVertices` entries between the value pairs written. */ + public function computeWorldVertices(slot:Slot, start:Int, count:Int, worldVertices:Vector, offset:Int, stride:Int):Void { + count = offset + (count >> 1) * stride; + var skeleton:Skeleton = slot.skeleton; + var deform:Vector = slot.deform; + + var v:Int, w:Int, n:Int, i:Int, skip:Int, b:Int, f:Int; + var vx:Float, vy:Float; + var wx:Float, wy:Float; + var bone:Bone; + + if (bones == null) { + if (deform.length > 0) + vertices = deform; + bone = slot.bone; + var x:Float = bone.worldX; + var y:Float = bone.worldY; + var a:Float = bone.a, + bb:Float = bone.b, + c:Float = bone.c, + d:Float = bone.d; + v = start; + w = offset; + while (w < count) { + vx = vertices[v]; + vy = vertices[v + 1]; + worldVertices[w] = vx * a + vy * bb + x; + worldVertices[w + 1] = vx * c + vy * d + y; + v += 2; + w += stride; + } + return; + } + v = 0; + skip = 0; + i = 0; + while (i < start) { + n = bones[v]; + v += n + 1; + skip += n; + i += 2; + } + var skeletonBones:Vector = skeleton.bones; + if (deform.length == 0) { + w = offset; + b = skip * 3; + while (w < count) { + wx = 0; + wy = 0; + n = bones[v++]; + n += v; + while (v < n) { + bone = skeletonBones[bones[v]]; + vx = vertices[b]; + vy = vertices[b + 1]; + var weight:Float = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + v++; + b += 3; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + w += stride; + } + } else { + w = offset; + b = skip * 3; + f = skip << 1; + while (w < count) { + wx = 0; + wy = 0; + n = bones[v++]; + n += v; + while (v < n) { + bone = skeletonBones[bones[v]]; + vx = vertices[b] + deform[f]; + vy = vertices[b + 1] + deform[f + 1]; + var weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + v++; + b += 3; + f += 2; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + w += stride; + } + } + } + + public function copyTo(attachment:VertexAttachment):Void { + if (bones != null) { + attachment.bones = bones.concat(); + } else { + attachment.bones = null; + } + + if (this.vertices != null) { + attachment.vertices = vertices.concat(); + } else { + attachment.vertices = null; + } + + attachment.worldVerticesLength = worldVerticesLength; + attachment.deformAttachment = deformAttachment; + } +} diff --git a/spine-haxe/spine-haxe/spine/interpolation/Pow.hx b/spine-haxe/spine-haxe/spine/interpolation/Pow.hx new file mode 100644 index 0000000000..b53202caf7 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/interpolation/Pow.hx @@ -0,0 +1,17 @@ +package spine.interpolation; + +import spine.Interpolation; + +class Pow extends Interpolation { + private var power:Int = 0; + + public function new(power:Int) { + this.power = power; + } + + private override function applyInternal(a:Float):Float { + if (a <= 0.5) + return Math.pow(a * 2, power) / 2; + return Math.pow((a - 1) * 2, power) / (power % 2 == 0 ? -2 : 2) + 1; + } +} diff --git a/spine-haxe/spine-haxe/spine/interpolation/PowOut.hx b/spine-haxe/spine-haxe/spine/interpolation/PowOut.hx new file mode 100644 index 0000000000..b47abf129c --- /dev/null +++ b/spine-haxe/spine-haxe/spine/interpolation/PowOut.hx @@ -0,0 +1,11 @@ +package spine.interpolation; + +class PowOut extends Pow { + public function new(power:Float) { + super(power); + } + + private override function applyInternal(a:Float):Float { + return Math.pow(a - 1, power) * (power % 2 == 0 ? -1 : 1) + 1; + } +} diff --git a/spine-haxe/spine-haxe/spine/starling/SkeletonAnimation.hx b/spine-haxe/spine-haxe/spine/starling/SkeletonAnimation.hx new file mode 100644 index 0000000000..c54870a28d --- /dev/null +++ b/spine-haxe/spine-haxe/spine/starling/SkeletonAnimation.hx @@ -0,0 +1,33 @@ +package spine.starling; + +import starling.core.Starling; +import spine.animation.AnimationState; +import spine.animation.AnimationStateData; +import spine.SkeletonData; +import starling.animation.IAnimatable; + +class SkeletonAnimation extends SkeletonSprite implements IAnimatable { + public var state:AnimationState; + + private var functionUpdate:Void->Void; + + public function new(skeletonData:SkeletonData, stateData:AnimationStateData = null) { + super(skeletonData); + state = new AnimationState(stateData != null ? stateData : new AnimationStateData(skeletonData)); + } + + public function advanceTime(time:Float):Void { + var stage = Starling.current.stage; + skeleton.update(time); + state.update(time); + state.apply(skeleton); + skeleton.updateWorldTransform(); + this.setRequiresRedraw(); + if (this.functionUpdate != null) + this.functionUpdate(); + } + + public function setFunctionAnimationUpdate(functionUpdate:Void->Void):Void { + this.functionUpdate = functionUpdate; + } +} diff --git a/spine-haxe/spine-haxe/spine/starling/SkeletonMesh.hx b/spine-haxe/spine-haxe/spine/starling/SkeletonMesh.hx new file mode 100644 index 0000000000..21603b3c3b --- /dev/null +++ b/spine-haxe/spine-haxe/spine/starling/SkeletonMesh.hx @@ -0,0 +1,22 @@ +package spine.starling; + +import starling.display.Mesh; +import starling.rendering.IndexData; +import starling.rendering.VertexData; +import starling.styles.MeshStyle; +import starling.textures.Texture; + +class SkeletonMesh extends Mesh { + public function new(texture:Texture, vertexData:VertexData = null, indexData:IndexData = null, style:MeshStyle = null) { + super(vertexData == null ? new VertexData() : vertexData, indexData == null ? new IndexData() : indexData, style); + this.texture = texture; + } + + public function getVertexData():VertexData { + return this.vertexData; + } + + public function getIndexData():IndexData { + return this.indexData; + } +} diff --git a/spine-haxe/spine-haxe/spine/starling/SkeletonSprite.hx b/spine-haxe/spine-haxe/spine/starling/SkeletonSprite.hx new file mode 100644 index 0000000000..c488125690 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/starling/SkeletonSprite.hx @@ -0,0 +1,343 @@ +package spine.starling; + +import starling.utils.Max; +import openfl.geom.Matrix; +import openfl.geom.Point; +import openfl.geom.Rectangle; +import openfl.Vector; +import spine.atlas.AtlasRegion; +import spine.attachments.Attachment; +import spine.attachments.ClippingAttachment; +import spine.attachments.MeshAttachment; +import spine.attachments.RegionAttachment; +import spine.Bone; +import spine.Skeleton; +import spine.SkeletonClipping; +import spine.SkeletonData; +import spine.Slot; +import spine.VertexEffect; +import starling.display.BlendMode; +import starling.display.DisplayObject; +import starling.display.Image; +import starling.rendering.IndexData; +import starling.rendering.Painter; +import starling.rendering.VertexData; +import starling.utils.Color; +import starling.utils.MatrixUtil; + +class SkeletonSprite extends DisplayObject { + static private var _tempPoint:Point = new Point(); + static private var _tempMatrix:Matrix = new Matrix(); + static private var _tempVertices:Vector = new Vector(); + static private var blendModes:Vector = Vector.ofArray([BlendMode.NORMAL, BlendMode.ADD, BlendMode.MULTIPLY, BlendMode.SCREEN]); + + private var _skeleton:Skeleton; + private var _smoothing:String = "bilinear"; + + private static var clipper:SkeletonClipping = new SkeletonClipping(); + private static var QUAD_INDICES:Vector = Vector.ofArray([0, 1, 2, 2, 3, 0]); + + public var vertexEffect:VertexEffect; + + private var tempLight:spine.Color = new spine.Color(0, 0, 0); + private var tempDark:spine.Color = new spine.Color(0, 0, 0); + private var tempVertex:spine.Vertex = new spine.Vertex(); + + public function new(skeletonData:SkeletonData) { + super(); + Bone.yDown = true; + _skeleton = new Skeleton(skeletonData); + _skeleton.updateWorldTransform(); + } + + override public function render(painter:Painter):Void { + var clipper:SkeletonClipping = SkeletonSprite.clipper; + painter.state.alpha *= skeleton.color.a; + var originalBlendMode:String = painter.state.blendMode; + var r:Float = skeleton.color.r * 255; + var g:Float = skeleton.color.g * 255; + var b:Float = skeleton.color.b * 255; + var drawOrder:Vector = skeleton.drawOrder; + var attachmentColor:spine.Color; + var rgb:Int; + var a:Float; + var dark:Int; + var mesh:SkeletonMesh = null; + var verticesLength:Int; + var verticesCount:Int; + var indicesLength:Int; + var indexData:IndexData; + var indices:Vector = null; + var vertexData:VertexData; + var uvs:Vector; + + if (vertexEffect != null) + vertexEffect.begin(skeleton); + + for (slot in drawOrder) { + if (!slot.bone.active) { + clipper.clipEndWithSlot(slot); + continue; + } + + var worldVertices:Vector = _tempVertices; + if (Std.isOfType(slot.attachment, RegionAttachment)) { + var region:RegionAttachment = cast(slot.attachment, RegionAttachment); + verticesLength = 8; + verticesCount = verticesLength >> 1; + if (worldVertices.length < verticesLength) + worldVertices.length = verticesLength; + region.computeWorldVertices(slot.bone, worldVertices, 0, 2); + + mesh = null; + if (Std.isOfType(region.rendererObject, SkeletonMesh)) { + mesh = cast(region.rendererObject, SkeletonMesh); + indices = QUAD_INDICES; + } else { + if (Std.isOfType(region.rendererObject, Image)) { + region.rendererObject = mesh = new SkeletonMesh(cast(region.rendererObject, Image).texture); + } else if (Std.isOfType(region.rendererObject, AtlasRegion)) { + region.rendererObject = mesh = new SkeletonMesh(cast(cast(region.rendererObject, AtlasRegion).rendererObject, Image).texture); + } + + indexData = mesh.getIndexData(); + indices = QUAD_INDICES; + for (i in 0...indices.length) { + indexData.setIndex(i, indices[i]); + } + indexData.numIndices = indices.length; + indexData.trim(); + } + + indexData = mesh.getIndexData(); + attachmentColor = region.color; + uvs = region.uvs; + } else if (Std.isOfType(slot.attachment, MeshAttachment)) { + var meshAttachment:MeshAttachment = cast(slot.attachment, MeshAttachment); + verticesLength = meshAttachment.worldVerticesLength; + verticesCount = verticesLength >> 1; + if (worldVertices.length < verticesLength) + worldVertices.length = verticesLength; + meshAttachment.computeWorldVertices(slot, 0, meshAttachment.worldVerticesLength, worldVertices, 0, 2); + + mesh = null; + if (Std.isOfType(meshAttachment.rendererObject, SkeletonMesh)) { + mesh = cast(meshAttachment.rendererObject, SkeletonMesh); + indices = meshAttachment.triangles; + } else { + if (Std.isOfType(meshAttachment.rendererObject, Image)) { + meshAttachment.rendererObject = mesh = new SkeletonMesh(cast(meshAttachment.rendererObject, Image).texture); + } else if (Std.isOfType(meshAttachment.rendererObject, AtlasRegion)) { + meshAttachment.rendererObject = mesh = new SkeletonMesh(cast(cast(meshAttachment.rendererObject, AtlasRegion).rendererObject, Image) + .texture); + } + + indexData = mesh.getIndexData(); + indices = meshAttachment.triangles; + indicesLength = indices.length; + for (i in 0...indicesLength) { + indexData.setIndex(i, indices[i]); + } + indexData.numIndices = indicesLength; + indexData.trim(); + } + + indexData = mesh.getIndexData(); + attachmentColor = meshAttachment.color; + uvs = meshAttachment.uvs; + } else if (Std.isOfType(slot.attachment, ClippingAttachment)) { + var clip:ClippingAttachment = cast(slot.attachment, ClippingAttachment); + clipper.clipStart(slot, clip); + continue; + } else { + clipper.clipEndWithSlot(slot); + continue; + } + + a = slot.color.a * attachmentColor.a; + if (a == 0) { + clipper.clipEndWithSlot(slot); + continue; + } + rgb = Color.rgb(Std.int(r * slot.color.r * attachmentColor.r), Std.int(g * slot.color.g * attachmentColor.g), + Std.int(b * slot.color.b * attachmentColor.b)); + if (slot.darkColor == null) { + dark = Color.rgb(0, 0, 0); + } else { + dark = Color.rgb(Std.int(slot.darkColor.r * 255), Std.int(slot.darkColor.g * 255), Std.int(slot.darkColor.b * 255)); + } + + if (clipper.isClipping()) { + clipper.clipTriangles(worldVertices, indices, indices.length, uvs); + + // Need to create a new mesh here, see https://github.com/EsotericSoftware/spine-runtimes/issues/1125 + mesh = new SkeletonMesh(mesh.texture); + indexData = mesh.getIndexData(); + + verticesCount = clipper.clippedVertices.length >> 1; + worldVertices = clipper.clippedVertices; + uvs = clipper.clippedUvs; + + indices = clipper.clippedTriangles; + indicesLength = indices.length; + indexData.numIndices = indicesLength; + indexData.trim(); + for (i in 0...indicesLength) { + indexData.setIndex(i, indices[i]); + } + } + + vertexData = mesh.getVertexData(); + vertexData.numVertices = verticesCount; + if (vertexEffect != null) { + tempLight.r = ((rgb >> 16) & 0xff) / 255.0; + tempLight.g = ((rgb >> 8) & 0xff) / 255.0; + tempLight.b = (rgb & 0xff) / 255.0; + tempLight.a = a; + tempDark.r = ((dark >> 16) & 0xff) / 255.0; + tempDark.g = ((dark >> 8) & 0xff) / 255.0; + tempDark.b = (dark & 0xff) / 255.0; + tempDark.a = 0; + var ii:Int = 0; + for (i in 0...verticesCount) { + tempVertex.x = worldVertices[ii]; + tempVertex.y = worldVertices[ii + 1]; + tempVertex.u = uvs[ii]; + tempVertex.v = uvs[ii + 1]; + tempVertex.light.setFromColor(tempLight); + tempVertex.dark.setFromColor(tempDark); + vertexEffect.transform(tempVertex); + vertexData.colorize("color", + Color.rgb(Std.int(tempVertex.light.r * 255), Std.int(tempVertex.light.g * 255), Std.int(tempVertex.light.b * 255)), + tempVertex.light.a, i, 1); + mesh.setVertexPosition(i, tempVertex.x, tempVertex.y); + mesh.setTexCoords(i, tempVertex.u, tempVertex.v); + ii += 2; + } + } else { + vertexData.colorize("color", rgb, a); + var ii:Int = 0; + for (i in 0...verticesCount) { + mesh.setVertexPosition(i, worldVertices[ii], worldVertices[ii + 1]); + mesh.setTexCoords(i, uvs[ii], uvs[ii + 1]); + ii += 2; + } + } + + if (indexData.numIndices > 0 && vertexData.numVertices > 0) { + painter.state.blendMode = blendModes[slot.data.blendMode.ordinal]; + painter.batchMesh(mesh); + } + + clipper.clipEndWithSlot(slot); + } + painter.state.blendMode = originalBlendMode; + clipper.clipEnd(); + + if (vertexEffect != null) + vertexEffect.end(); + } + + override public function hitTest(localPoint:Point):DisplayObject { + if (!this.visible || !this.touchable) + return null; + + var minX:Float = Max.MAX_VALUE; + var minY:Float = Max.MAX_VALUE; + var maxX:Float = -Max.MAX_VALUE; + var maxY:Float = -Max.MAX_VALUE; + var slots:Vector = skeleton.slots; + var worldVertices:Vector = _tempVertices; + var empty:Bool = true; + for (i in 0...slots.length) { + var slot:Slot = slots[i]; + var attachment:Attachment = slot.attachment; + if (attachment == null) + continue; + var verticesLength:Int; + if (Std.isOfType(attachment, RegionAttachment)) { + var region:RegionAttachment = cast(slot.attachment, RegionAttachment); + verticesLength = 8; + region.computeWorldVertices(slot.bone, worldVertices, 0, 2); + } else if (Std.isOfType(attachment, MeshAttachment)) { + var mesh:MeshAttachment = cast(attachment, MeshAttachment); + verticesLength = mesh.worldVerticesLength; + if (worldVertices.length < verticesLength) + worldVertices.length = verticesLength; + mesh.computeWorldVertices(slot, 0, verticesLength, worldVertices, 0, 2); + } else { + continue; + } + + if (verticesLength != 0) { + empty = false; + } + + var ii:Int = 0; + while (ii < verticesLength) { + var x:Float = worldVertices[ii], + y:Float = worldVertices[ii + 1]; + minX = minX < x ? minX : x; + minY = minY < y ? minY : y; + maxX = maxX > x ? maxX : x; + maxY = maxY > y ? maxY : y; + ii += 2; + } + } + + if (empty) { + return null; + } + + var temp:Float; + if (maxX < minX) { + temp = maxX; + maxX = minX; + minX = temp; + } + if (maxY < minY) { + temp = maxY; + maxY = minY; + minY = temp; + } + + if (localPoint.x >= minX && localPoint.x < maxX && localPoint.y >= minY && localPoint.y < maxY) { + return this; + } + + return null; + } + + override public function getBounds(targetSpace:DisplayObject, resultRect:Rectangle = null):Rectangle { + if (resultRect == null) { + resultRect = new Rectangle(); + } + if (targetSpace == this) { + resultRect.setTo(0, 0, 0, 0); + } else if (targetSpace == parent) { + resultRect.setTo(x, y, 0, 0); + } else { + getTransformationMatrix(targetSpace, _tempMatrix); + MatrixUtil.transformCoords(_tempMatrix, 0, 0, _tempPoint); + resultRect.setTo(_tempPoint.x, _tempPoint.y, 0, 0); + } + return resultRect; + } + + public var skeleton(get, never):Skeleton; + + private function get_skeleton():Skeleton { + return _skeleton; + } + + public var smoothing(get, set):String; + + private function get_smoothing():String { + return _smoothing; + } + + private function set_smoothing(smoothing:String):String { + _smoothing = smoothing; + return _smoothing; + } +} diff --git a/spine-haxe/spine-haxe/spine/starling/StarlingTextureLoader.hx b/spine-haxe/spine-haxe/spine/starling/StarlingTextureLoader.hx new file mode 100644 index 0000000000..3415a7a4b8 --- /dev/null +++ b/spine-haxe/spine-haxe/spine/starling/StarlingTextureLoader.hx @@ -0,0 +1,82 @@ +package spine.starling; + +import openfl.display.Bitmap; +import openfl.display.BitmapData; +import openfl.errors.ArgumentError; +import openfl.utils.Object; +import spine.atlas.AtlasPage; +import spine.atlas.AtlasRegion; +import spine.atlas.TextureLoader; +import starling.display.Image; +import starling.textures.Texture; + +class StarlingTextureLoader implements TextureLoader { + public var bitmapDatasOrTextures:Object = {}; + public var singleBitmapDataOrTexture:Dynamic; + + /** @param bitmaps A Bitmap or BitmapData or Texture for an atlas that has only one page, or for a multi page atlas an object where the + * key is the image path and the value is the Bitmap or BitmapData or Texture. */ + public function new(bitmapsOrTextures:Dynamic) { + if (Std.isOfType(bitmapsOrTextures, BitmapData)) { + singleBitmapDataOrTexture = cast(bitmapsOrTextures, BitmapData); + return; + } + if (Std.isOfType(bitmapsOrTextures, Bitmap)) { + singleBitmapDataOrTexture = cast(bitmapsOrTextures, Bitmap).bitmapData; + return; + } + if (Std.isOfType(bitmapsOrTextures, Texture)) { + singleBitmapDataOrTexture = cast(bitmapsOrTextures, Texture); + return; + } + + for (path in Reflect.fields(bitmapsOrTextures)) { + var object:Dynamic = Reflect.getProperty(bitmapsOrTextures, path); + var bitmapDataOrTexture:Dynamic; + if (Std.isOfType(object, BitmapData)) { + bitmapDataOrTexture = cast(object, BitmapData); + } else if (Std.isOfType(object, Bitmap)) { + bitmapDataOrTexture = cast(object, Bitmap).bitmapData; + } else if (Std.isOfType(object, Texture)) { + bitmapDataOrTexture = cast(object, Texture); + } else { + throw new ArgumentError("Object for path \"" + path + "\" must be a Bitmap, BitmapData or Texture: " + object); + } + bitmapDatasOrTextures[path] = bitmapDataOrTexture; + } + } + + public function loadPage(page:AtlasPage, path:String):Void { + var bitmapDataOrTexture:Dynamic = singleBitmapDataOrTexture != null ? singleBitmapDataOrTexture : bitmapDatasOrTextures[path]; + if (bitmapDataOrTexture == null) { + throw new ArgumentError("BitmapData/Texture not found with name: " + path); + } + if (Std.isOfType(bitmapDataOrTexture, BitmapData)) { + var bitmapData:BitmapData = cast(bitmapDataOrTexture, BitmapData); + page.rendererObject = Texture.fromBitmapData(bitmapData); + } else { + var texture:Texture = cast(bitmapDataOrTexture, Texture); + page.rendererObject = texture; + } + } + + public function loadRegion(region:AtlasRegion):Void { + var image:Image = new Image(cast(region.page.rendererObject, Texture)); + if (region.degrees == 90) { + image.setTexCoords(0, region.u, region.v2); + image.setTexCoords(1, region.u, region.v); + image.setTexCoords(2, region.u2, region.v2); + image.setTexCoords(3, region.u2, region.v); + } else { + image.setTexCoords(0, region.u, region.v); + image.setTexCoords(1, region.u2, region.v); + image.setTexCoords(2, region.u, region.v2); + image.setTexCoords(3, region.u2, region.v2); + } + region.rendererObject = image; + } + + public function unloadPage(page:AtlasPage):Void { + cast(page.rendererObject, Texture).dispose(); + } +} diff --git a/spine-haxe/spine-haxe/spine/vertexeffects/JitterEffect.hx b/spine-haxe/spine-haxe/spine/vertexeffects/JitterEffect.hx new file mode 100644 index 0000000000..f36db2b01e --- /dev/null +++ b/spine-haxe/spine-haxe/spine/vertexeffects/JitterEffect.hx @@ -0,0 +1,25 @@ +package spine.vertexeffects; + +import spine.MathUtils; +import spine.Skeleton; +import spine.Vertex; +import spine.VertexEffect; + +class JitterEffect implements VertexEffect { + public var jitterX:Float = 0; + public var jitterY:Float = 0; + + public function new(jitterX:Float, jitterY:Float) { + this.jitterX = jitterX; + this.jitterY = jitterY; + } + + public function begin(skeleton:Skeleton):Void {} + + public function transform(vertex:Vertex):Void { + vertex.x += MathUtils.randomTriangular(-jitterX, jitterY); + vertex.y += MathUtils.randomTriangular(-jitterX, jitterY); + } + + public function end():Void {} +} diff --git a/spine-haxe/spine-haxe/spine/vertexeffects/SwirlEffect.hx b/spine-haxe/spine-haxe/spine/vertexeffects/SwirlEffect.hx new file mode 100644 index 0000000000..e4ab32c10a --- /dev/null +++ b/spine-haxe/spine-haxe/spine/vertexeffects/SwirlEffect.hx @@ -0,0 +1,97 @@ +package spine.vertexeffects; + +import spine.interpolation.Pow; +import spine.Interpolation; +import spine.MathUtils; +import spine.Skeleton; +import spine.Vertex; +import spine.VertexEffect; + +class SwirlEffect implements VertexEffect { + private var worldX:Float = 0; + private var worldY:Float = 0; + private var _radius:Float = 0; + private var _angle:Float = 0; + private var _interpolation:Interpolation; + private var _centerX:Float = 0; + private var _centerY:Float = 0; + + public function new(radius:Float) { + this._interpolation = new Pow(2); + this._radius = radius; + } + + public function begin(skeleton:Skeleton):Void { + worldX = skeleton.x + _centerX; + worldY = skeleton.y + _centerY; + } + + public function transform(vertex:Vertex):Void { + var x:Float = vertex.x - worldX; + var y:Float = vertex.y - worldY; + var dist:Float = Math.sqrt(x * x + y * y); + if (dist < radius) { + var theta:Float = interpolation.apply(0, angle, (radius - dist) / radius); + var cos:Float = Math.cos(theta), sin:Float = Math.sin(theta); + vertex.x = cos * x - sin * y + worldX; + vertex.y = sin * x + cos * y + worldY; + } + } + + public function end():Void {} + + public var radius(get, set):Float; + + private function get_radius():Float { + return _radius; + } + + private function set_radius(radius:Float):Float { + _radius = radius; + return _radius; + } + + public var angle(get, set):Float; + + private function get_angle():Float { + return _angle; + } + + private function set_angle(angle:Float):Float { + _angle = angle * MathUtils.degRad; + return _angle; + } + + public var centerX(get, set):Float; + + private function get_centerX():Float { + return _centerX; + } + + private function set_centerX(centerX:Float):Float { + _centerX = centerX; + return _centerX; + } + + public var centerY(get, set):Float; + + private function get_centerY():Float { + return _centerY; + } + + private function set_centerY(centerY:Float):Float { + _centerY = centerY; + return _centerY; + } + + public var interpolation(get, set):Interpolation; + + private function get_interpolation():Interpolation { + return _interpolation; + } + + private function set_interpolation(interpolation:Interpolation):Interpolation { + _interpolation = interpolation; + return _interpolation; + } +}