diff --git a/.github/actions/setup-godot-deps/action.yml b/.github/actions/setup-godot-deps/action.yml new file mode 100644 index 000000000..7d10dcdf5 --- /dev/null +++ b/.github/actions/setup-godot-deps/action.yml @@ -0,0 +1,27 @@ +name: Setup python and scons +description: Setup python, install the pip version of scons. +inputs: + python-version: + description: The python version to use. + default: "3.x" + python-arch: + description: The python architecture. + default: "x64" +runs: + using: "composite" + steps: + # Use python 3.x release (works cross platform) + - name: Set up Python 3.x + uses: actions/setup-python@v2 + with: + # Semantic version range syntax or exact version of a Python version + python-version: ${{ inputs.python-version }} + # Optional - x64 or x86 architecture, defaults to x64 + architecture: ${{ inputs.python-arch }} + + - name: Setup scons + shell: bash + run: | + python -c "import sys; print(sys.version)" + python -m pip install scons + scons --version \ No newline at end of file diff --git a/.github/workflows/spine-godot.yml b/.github/workflows/spine-godot.yml new file mode 100644 index 000000000..20b742243 --- /dev/null +++ b/.github/workflows/spine-godot.yml @@ -0,0 +1,363 @@ +name: Build and Publish Godot editor and templates + +on: + push: + paths: + - ".github/workflows/spine-godot.yml" + - 'spine-godot/**' + - 'spine-cpp/**' + workflow_dispatch: + +env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_EC2_METADATA_DISABLED: true + EM_VERSION: 3.1.10 + GODOT_TAG: 3.4.4-stable + GODOT_VERSION: 3.4.4.stable + +jobs: + + godot-editor-windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Setup python and scons + uses: ./.github/actions/setup-godot-deps + + - name: Build Godot artifact + shell: bash + run: | + ./spine-godot/build/setup.sh $GODOT_TAG false + ./spine-godot/build/build.sh release_debug + + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: godot-editor-windows.zip + path: spine-godot/godot/bin/godot.windows.opt.tools.64.exe + + godot-editor-linux: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Setup python and scons + uses: ./.github/actions/setup-godot-deps + + - name: Build Godot artifact + shell: bash + run: | + sudo apt-get install build-essential scons pkg-config libx11-dev libxcursor-dev libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev + ./spine-godot/build/setup.sh $GODOT_TAG false + ./spine-godot/build/build.sh release_debug + + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: godot-editor-linux.zip + path: spine-godot/godot/bin/godot.x11.opt.tools.64 + + godot-editor-macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Setup python and scons + uses: ./.github/actions/setup-godot-deps + + - name: Build Godot artifact + shell: bash + run: | + ./spine-godot/build/setup.sh $GODOT_TAG false + ./spine-godot/build/build.sh release_debug + pushd spine-godot/godot/bin + zip -r godot-editor-macos.zip Godot.app + popd + + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: godot-editor-macos.zip + path: spine-godot/godot/bin/godot-editor-macos.zip + + godot-template-ios: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Setup python and scons + uses: ./.github/actions/setup-godot-deps + + - name: Build Godot artifact + run: | + ./spine-godot/build/setup.sh $GODOT_TAG false + ./spine-godot/build/build-templates.sh ios + + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: godot-template-ios.zip + path: spine-godot/godot/bin/iphone.zip + + godot-template-macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Setup python and scons + uses: ./.github/actions/setup-godot-deps + + - name: Build Godot artifact + run: | + ./spine-godot/build/setup.sh $GODOT_TAG false + ./spine-godot/build/build-templates.sh macos + + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: godot-template-macos.zip + path: spine-godot/godot/bin/osx.zip + + godot-template-linux: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Setup python and scons + uses: ./.github/actions/setup-godot-deps + + - name: Build Godot artifact + run: | + sudo apt-get install build-essential scons pkg-config libx11-dev libxcursor-dev libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev + ./spine-godot/build/setup.sh $GODOT_TAG false + ./spine-godot/build/build-templates.sh linux + + - name: Upload artifacts debug + uses: actions/upload-artifact@v2 + with: + name: godot-template-linux-debug.zip + path: spine-godot/godot/bin/linux_x11_64_debug + + - name: Upload artifacts release + uses: actions/upload-artifact@v2 + with: + name: godot-template-linux-release.zip + path: spine-godot/godot/bin/linux_x11_64_release + + godot-template-windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Setup python and scons + uses: ./.github/actions/setup-godot-deps + + - name: Build Godot artifact + shell: bash + run: | + ./spine-godot/build/setup.sh $GODOT_TAG false + ./spine-godot/build/build-templates.sh windows + + - name: Upload artifacts debug + uses: actions/upload-artifact@v2 + with: + name: godot-template-windows-debug.zip + path: spine-godot/godot/bin/windows_64_debug.exe + + - name: Upload artifacts release + uses: actions/upload-artifact@v2 + with: + name: godot-template-windows-release.zip + path: spine-godot/godot/bin/windows_64_release.exe + + godot-template-android: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + # Azure repositories are not reliable, we need to prevent azure giving us packages. + - name: Make apt sources.list use the default Ubuntu repositories + run: | + sudo rm -f /etc/apt/sources.list.d/* + sudo cp -f spine-godot/build/sources.lst /etc/apt/sources.list + sudo apt-get update + + - name: Set up Java 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + + - name: Setup python and scons + uses: ./.github/actions/setup-godot-deps + + - name: Build Godot artifact + shell: bash + run: | + ./spine-godot/build/setup.sh $GODOT_TAG false + ./spine-godot/build/build-templates.sh android + + - name: Upload artifacts debug + uses: actions/upload-artifact@v2 + with: + name: godot-template-android-debug.zip + path: spine-godot/godot/bin/android_debug.apk + + - name: Upload artifacts release + uses: actions/upload-artifact@v2 + with: + name: godot-template-android-release.zip + path: spine-godot/godot/bin/android_release.apk + + - name: Upload artifacts source + uses: actions/upload-artifact@v2 + with: + name: godot-template-android-source.zip + path: spine-godot/godot/bin/android_source.zip + + godot-template-web: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Set up Emscripten latest + uses: mymindstorm/setup-emsdk@v10 + with: + version: ${{env.EM_VERSION}} + + - name: Verify Emscripten setup + run: | + emcc -v + + - name: Setup python and scons + uses: ./.github/actions/setup-godot-deps + + - name: Build Godot artifact + run: | + ./spine-godot/build/setup.sh $GODOT_TAG false + ./spine-godot/build/build-templates.sh web + + - name: Upload artifacts debug + uses: actions/upload-artifact@v2 + with: + name: godot-template-web-debug.zip + path: spine-godot/godot/bin/webassembly_debug.zip + + - name: Upload artifacts release + uses: actions/upload-artifact@v2 + with: + name: godot-template-web-release.zip + path: spine-godot/godot/bin/webassembly_release.zip + + upload-to-s3: + needs: [godot-editor-windows, godot-editor-linux, godot-editor-macos, godot-template-ios, godot-template-macos, godot-template-windows, godot-template-linux, godot-template-android, godot-template-web] + runs-on: ubuntu-latest + steps: + - name: Download godot-editor-windows artifact + uses: actions/download-artifact@v2 + with: + name: godot-editor-windows.zip + + - name: Download godot-editor-linux artifact + uses: actions/download-artifact@v2 + with: + name: godot-editor-linux.zip + + - name: Download godot-editor-macos artifact + uses: actions/download-artifact@v2 + with: + name: godot-editor-macos.zip + + - name: Download godot-template-ios artifact + uses: actions/download-artifact@v2 + with: + name: godot-template-ios.zip + + - name: Download godot-template-macos artifact + uses: actions/download-artifact@v2 + with: + name: godot-template-macos.zip + + - name: Download godot-template-windows-release artifact + uses: actions/download-artifact@v2 + with: + name: godot-template-windows-release.zip + + - name: Download godot-template-windows-debug artifact + uses: actions/download-artifact@v2 + with: + name: godot-template-windows-debug.zip + + - name: Download godot-template-linux-release artifact + uses: actions/download-artifact@v2 + with: + name: godot-template-linux-release.zip + + - name: Download godot-template-linux-debug artifact + uses: actions/download-artifact@v2 + with: + name: godot-template-linux-debug.zip + + - name: Download godot-template-android-release artifact + uses: actions/download-artifact@v2 + with: + name: godot-template-android-release.zip + + - name: Download godot-template-android-debug artifact + uses: actions/download-artifact@v2 + with: + name: godot-template-android-debug.zip + + - name: Download godot-template-android-source artifact + uses: actions/download-artifact@v2 + with: + name: godot-template-android-source.zip + + - name: Download godot-template-web-release artifact + uses: actions/download-artifact@v2 + with: + name: godot-template-web-release.zip + + - name: Download godot-template-web-debug artifact + uses: actions/download-artifact@v2 + with: + name: godot-template-web-debug.zip + + - name: Upload artifacts to S3 + shell: bash + if: env.AWS_ACCESS_KEY_ID != null + run: | + BRANCH=${GITHUB_REF#refs/heads/} + echo "branch: $BRANCH" + mv godot.windows.opt.tools.64.exe godot-$BRANCH-$GODOT_TAG.exe + mv godot.x11.opt.tools.64 godot-$BRANCH-$GODOT_TAG + zip godot-editor-windows.zip godot-$BRANCH-$GODOT_TAG.exe + zip godot-editor-linux.zip godot-$BRANCH-$GODOT_TAG + aws s3 cp godot-editor-windows.zip s3://spine-godot/$BRANCH/$GODOT_TAG/ + aws s3 cp godot-editor-linux.zip s3://spine-godot/$BRANCH/$GODOT_TAG/ + aws s3 cp godot-editor-macos.zip s3://spine-godot/$BRANCH/$GODOT_TAG/ + echo "$GODOT_VERSION" > version.txt + ls -lah + zip spine-godot-templates-$BRANCH-$GODOT_TAG.zip iphone.zip osx.zip windows_64_debug.exe windows_64_release.exe linux_x11_64_debug linux_x11_64_release webassembly_debug.zip webassembly_release.zip android_release.apk android_debug.apk android_source.zip version.txt + aws s3 cp spine-godot-templates-$BRANCH-$GODOT_TAG.zip s3://spine-godot/$BRANCH/$GODOT_TAG/spine-godot-templates-$BRANCH-$GODOT_TAG.tpz + + diff --git a/.gitignore b/.gitignore index ada74354c..bf1a1ee8f 100644 --- a/.gitignore +++ b/.gitignore @@ -164,4 +164,17 @@ spine-cocos2dx/example-v4/build-macos spine-cocos2dx/example/build-ios spine-cocos2dx/example/proj.android/app/.cxx spine-cocos2dx/example/build-win +spine-godot/godot +spine-godot/spine_godot/*.o +spine-godot/spine_godot/spine-cpp +spine-godot/spine_godot/__pycache__ +spine-godot/example/.import +spine-godot/spine_godot/*.obj +*.bc +spine-godot/example/.godot +spine-godot/example-v4/.godot spine-cocos2dx/example/build-macos +spine-godot/logs +!spine-godot/build +spine-ts/spine-ts.zip +*.d \ No newline at end of file diff --git a/examples/export/runtimes.sh b/examples/export/runtimes.sh index aa315dc5d..5c514bfe7 100755 --- a/examples/export/runtimes.sh +++ b/examples/export/runtimes.sh @@ -85,31 +85,75 @@ cp -f ../mix-and-match/export/mix-and-match-pro.skel "$ROOT/spine-cocos2dx/examp cp -f ../mix-and-match/export/mix-and-match.atlas "$ROOT/spine-cocos2dx/example/Resources/common/" cp -f ../mix-and-match/export/mix-and-match.png "$ROOT/spine-cocos2dx/example/Resources/common/" -rm "$ROOT/spine-cocos2dx/example-v4/Resources/common/"* +echo "spine-godot" +rm -f "$ROOT"/spine-godot/example/assets/spineboy/*.atlas +rm -f "$ROOT"/spine-godot/example/assets/spineboy/*.png +rm -f "$ROOT"/spine-godot/example/assets/spineboy/*.json +rm -f "$ROOT"/spine-godot/example/assets/spineboy/*.skel +rm -f "$ROOT"/spine-godot/example/assets/raptor/*.atlas +rm -f "$ROOT"/spine-godot/example/assets/raptor/*.png +rm -f "$ROOT"/spine-godot/example/assets/raptor/*.skel +rm -f "$ROOT"/spine-godot/example/assets/mix-and-match/*.atlas +rm -f "$ROOT"/spine-godot/example/assets/mix-and-match/*.png +rm -f "$ROOT"/spine-godot/example/assets/mix-and-match/*.json +rm -f "$ROOT"/spine-godot/example/assets/mix-and-match/*.skel +rm -f "$ROOT"/spine-godot/example/assets/raggedyspineboy/*.atlas +rm -f "$ROOT"/spine-godot/example/assets/raggedyspineboy/*.png +rm -f "$ROOT"/spine-godot/example/assets/raggedyspineboy/*.json -cp -f ../coin/export/coin-pro.skel "$ROOT/spine-cocos2dx/example-v4/Resources/common/" -cp -f ../coin/export/coin.atlas "$ROOT/spine-cocos2dx/example-v4/Resources/common/" -cp -f ../coin/export/coin.png "$ROOT/spine-cocos2dx/example-v4/Resources/common/" -cp -f ../goblins/export/goblins-pro.json "$ROOT/spine-cocos2dx/example-v4/Resources/common/" -cp -f ../goblins/export/goblins.atlas "$ROOT/spine-cocos2dx/example-v4/Resources/common/" -cp -f ../goblins/export/goblins.png "$ROOT/spine-cocos2dx/example-v4/Resources/common/" +cp -f ../spineboy/export/spineboy-pro.json "$ROOT/spine-godot/example/assets/spineboy/" +cp -f ../spineboy/export/spineboy-pro.skel "$ROOT/spine-godot/example/assets/spineboy/" +cp -f ../spineboy/export/spineboy.atlas "$ROOT/spine-godot/example/assets/spineboy/" +cp -f ../spineboy/export/spineboy.png "$ROOT/spine-godot/example/assets/spineboy/" -cp -f ../raptor/export/raptor-pro.json "$ROOT/spine-cocos2dx/example-v4/Resources/common/" -cp -f ../raptor/export/raptor.atlas "$ROOT/spine-cocos2dx/example-v4/Resources/common/" -cp -f ../raptor/export/raptor.png "$ROOT/spine-cocos2dx/example-v4/Resources/common/" +cp -f ../mix-and-match/export/mix-and-match-pro.json "$ROOT/spine-godot/example/assets/mix-and-match/" +cp -f ../mix-and-match/export/mix-and-match.atlas "$ROOT/spine-godot/example/assets/mix-and-match/" +cp -f ../mix-and-match/export/mix-and-match.png "$ROOT/spine-godot/example/assets/mix-and-match/" -cp -f ../spineboy/export/spineboy-pro.json "$ROOT/spine-cocos2dx/example-v4/Resources/common/" -cp -f ../spineboy/export/spineboy.atlas "$ROOT/spine-cocos2dx/example-v4/Resources/common/" -cp -f ../spineboy/export/spineboy.png "$ROOT/spine-cocos2dx/example-v4/Resources/common/" +cp -f ../raptor/export/raptor-pro.skel "$ROOT/spine-godot/example/assets/raptor/" +cp -f ../raptor/export/raptor.atlas "$ROOT/spine-godot/example/assets/raptor/" +cp -f ../raptor/export/raptor.png "$ROOT/spine-godot/example/assets/raptor/" +cp -f ../raptor/manual-maps/raptor-normals.png "$ROOT/spine-godot/example/assets/raptor/n_raptor.png" +cp -f ../raptor/manual-maps/light-sprite.png "$ROOT/spine-godot/example/assets/raptor/light-sprite.png" -cp -f ../tank/export/tank-pro.skel "$ROOT/spine-cocos2dx/example-v4/Resources/common/" -cp -f ../tank/export/tank.atlas "$ROOT/spine-cocos2dx/example-v4/Resources/common/" -cp -f ../tank/export/tank.png "$ROOT/spine-cocos2dx/example-v4/Resources/common/" +cp -f ../../spine-unity/Assets/Spine\ Examples/Spine\ Skeletons/Raggedy\ Spineboy/raggedy\ spineboy.json "$ROOT/spine-godot/example/assets/raggedyspineboy/" +cp -f ../../spine-unity/Assets/Spine\ Examples/Spine\ Skeletons/Raggedy\ Spineboy/Raggedy\ Spineboy.atlas.txt "$ROOT/spine-godot/example/assets/raggedyspineboy/Raggedy Spineboy.atlas" +cp -f ../../spine-unity/Assets/Spine\ Examples/Spine\ Skeletons/Raggedy\ Spineboy/Raggedy\ Spineboy.png "$ROOT/spine-godot/example/assets/raggedyspineboy/" -cp -f ../mix-and-match/export/mix-and-match-pro.skel "$ROOT/spine-cocos2dx/example-v4/Resources/common/" -cp -f ../mix-and-match/export/mix-and-match.atlas "$ROOT/spine-cocos2dx/example-v4/Resources/common/" -cp -f ../mix-and-match/export/mix-and-match.png "$ROOT/spine-cocos2dx/example-v4/Resources/common/" +rm -f "$ROOT"/spine-godot/example-v4/assets/spineboy/*.atlas +rm -f "$ROOT"/spine-godot/example-v4/assets/spineboy/*.png +rm -f "$ROOT"/spine-godot/example-v4/assets/spineboy/*.json +rm -f "$ROOT"/spine-godot/example-v4/assets/spineboy/*.skel +rm -f "$ROOT"/spine-godot/example-v4/assets/raptor/*.atlas +rm -f "$ROOT"/spine-godot/example-v4/assets/raptor/*.png +rm -f "$ROOT"/spine-godot/example-v4/assets/raptor/*.skel +rm -f "$ROOT"/spine-godot/example-v4/assets/mix-and-match/*.atlas +rm -f "$ROOT"/spine-godot/example-v4/assets/mix-and-match/*.png +rm -f "$ROOT"/spine-godot/example-v4/assets/mix-and-match/*.json +rm -f "$ROOT"/spine-godot/example-v4/assets/mix-and-match/*.skel +rm -f "$ROOT"/spine-godot/example-v4/assets/raggedyspineboy/*.atlas +rm -f "$ROOT"/spine-godot/example-v4/assets/raggedyspineboy/*.png +rm -f "$ROOT"/spine-godot/example-v4/assets/raggedyspineboy/*.json + +cp -f ../spineboy/export/spineboy-pro.json "$ROOT/spine-godot/example-v4/assets/spineboy/" +cp -f ../spineboy/export/spineboy-pro.skel "$ROOT/spine-godot/example-v4/assets/spineboy/" +cp -f ../spineboy/export/spineboy.atlas "$ROOT/spine-godot/example-v4/assets/spineboy/" +cp -f ../spineboy/export/spineboy.png "$ROOT/spine-godot/example-v4/assets/spineboy/" + +cp -f ../mix-and-match/export/mix-and-match-pro.json "$ROOT/spine-godot/example-v4/assets/mix-and-match/" +cp -f ../mix-and-match/export/mix-and-match.atlas "$ROOT/spine-godot/example-v4/assets/mix-and-match/" +cp -f ../mix-and-match/export/mix-and-match.png "$ROOT/spine-godot/example-v4/assets/mix-and-match/" + +cp -f ../raptor/export/raptor-pro.skel "$ROOT/spine-godot/example-v4/assets/raptor/" +cp -f ../raptor/export/raptor.atlas "$ROOT/spine-godot/example-v4/assets/raptor/" +cp -f ../raptor/export/raptor.png "$ROOT/spine-godot/example-v4/assets/raptor/" +cp -f ../raptor/manual-maps/raptor-normals.png "$ROOT/spine-godot/example-v4/assets/raptor/n_raptor.png" +cp -f ../raptor/manual-maps/light-sprite.png "$ROOT/spine-godot/example-v4/assets/raptor/light-sprite.png" + +cp -f ../../spine-unity/Assets/Spine\ Examples/Spine\ Skeletons/Raggedy\ Spineboy/raggedy\ spineboy.json "$ROOT/spine-godot/example-v4/assets/raggedyspineboy/" +cp -f ../../spine-unity/Assets/Spine\ Examples/Spine\ Skeletons/Raggedy\ Spineboy/Raggedy\ Spineboy.atlas.txt "$ROOT/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.atlas" +cp -f ../../spine-unity/Assets/Spine\ Examples/Spine\ Skeletons/Raggedy\ Spineboy/Raggedy\ Spineboy.png "$ROOT/spine-godot/example-v4/assets/raggedyspineboy/" echo "spine-sfml-c" rm "$ROOT/spine-sfml/c/data/"* diff --git a/examples/raptor/manual-maps/light-sprite.png b/examples/raptor/manual-maps/light-sprite.png new file mode 100644 index 000000000..b5b04d795 Binary files /dev/null and b/examples/raptor/manual-maps/light-sprite.png differ diff --git a/formatters/build.gradle b/formatters/build.gradle index b343aca11..bbdd39c97 100644 --- a/formatters/build.gradle +++ b/formatters/build.gradle @@ -25,7 +25,9 @@ spotless { 'spine-sfml/**/*.cpp', 'spine-sfml/**/*.h', 'spine-ue4/**/*.cpp', - 'spine-ue4/**/*.h' + 'spine-ue4/**/*.h', + 'spine-godot/spine_godot/*.cpp', + 'spine-godot/spine_godot/*.h' clangFormat("13.0.1").pathToExe("$System.env.CLANGFORMAT").style('file') } diff --git a/spine-cpp/spine-cpp/include/spine/AnimationStateData.h b/spine-cpp/spine-cpp/include/spine/AnimationStateData.h index dec7999b6..84db21f0b 100644 --- a/spine-cpp/spine-cpp/include/spine/AnimationStateData.h +++ b/spine-cpp/spine-cpp/include/spine/AnimationStateData.h @@ -67,6 +67,9 @@ namespace spine { /// or the DefaultMix if no mix duration has been set. float getMix(Animation *from, Animation *to); + /// Removes all mixes and sets the default mix to 0. + void clear(); + private: class AnimationPair : public SpineObject { public: diff --git a/spine-cpp/spine-cpp/include/spine/MeshAttachment.h b/spine-cpp/spine-cpp/include/spine/MeshAttachment.h index 78ec8a709..6961a2dd3 100644 --- a/spine-cpp/spine-cpp/include/spine/MeshAttachment.h +++ b/spine-cpp/spine-cpp/include/spine/MeshAttachment.h @@ -53,6 +53,8 @@ namespace spine { virtual ~MeshAttachment(); + using VertexAttachment::computeWorldVertices; + virtual void computeWorldVertices(Slot &slot, size_t start, size_t count, float *worldVertices, size_t offset, size_t stride = 2); diff --git a/spine-cpp/spine-cpp/src/spine/AnimationStateData.cpp b/spine-cpp/spine-cpp/src/spine/AnimationStateData.cpp index de41deb2e..a68e62cd1 100644 --- a/spine-cpp/spine-cpp/src/spine/AnimationStateData.cpp +++ b/spine-cpp/spine-cpp/src/spine/AnimationStateData.cpp @@ -73,6 +73,11 @@ void AnimationStateData::setDefaultMix(float inValue) { _defaultMix = inValue; } +void AnimationStateData::clear() { + _defaultMix = 0; + _animationToMixTime.clear(); +} + AnimationStateData::AnimationPair::AnimationPair(Animation *a1, Animation *a2) : _a1(a1), _a2(a2) { } diff --git a/spine-cpp/spine-cpp/src/spine/SkeletonBinary.cpp b/spine-cpp/spine-cpp/src/spine/SkeletonBinary.cpp index b5462b69b..e5b4b4150 100644 --- a/spine-cpp/spine-cpp/src/spine/SkeletonBinary.cpp +++ b/spine-cpp/spine-cpp/src/spine/SkeletonBinary.cpp @@ -453,17 +453,29 @@ Skin *SkeletonBinary::readSkin(DataInput *input, bool defaultSkin, SkeletonData skin = new (__FILE__, __LINE__) Skin("default"); } else { skin = new (__FILE__, __LINE__) Skin(readStringRef(input, skeletonData)); - for (int i = 0, n = readVarint(input, true); i < n; i++) - skin->getBones().add(skeletonData->_bones[readVarint(input, true)]); + for (int i = 0, n = readVarint(input, true); i < n; i++) { + int boneIndex = readVarint(input, true); + if (boneIndex >= (int) skeletonData->_bones.size()) return NULL; + skin->getBones().add(skeletonData->_bones[boneIndex]); + } - for (int i = 0, n = readVarint(input, true); i < n; i++) - skin->getConstraints().add(skeletonData->_ikConstraints[readVarint(input, true)]); + for (int i = 0, n = readVarint(input, true); i < n; i++) { + int ikIndex = readVarint(input, true); + if (ikIndex >= (int) skeletonData->_ikConstraints.size()) return NULL; + skin->getConstraints().add(skeletonData->_ikConstraints[ikIndex]); + } - for (int i = 0, n = readVarint(input, true); i < n; i++) - skin->getConstraints().add(skeletonData->_transformConstraints[readVarint(input, true)]); + for (int i = 0, n = readVarint(input, true); i < n; i++) { + int transformIndex = readVarint(input, true); + if (transformIndex >= (int) skeletonData->_transformConstraints.size()) return NULL; + skin->getConstraints().add(skeletonData->_transformConstraints[transformIndex]); + } - for (int i = 0, n = readVarint(input, true); i < n; i++) - skin->getConstraints().add(skeletonData->_pathConstraints[readVarint(input, true)]); + for (int i = 0, n = readVarint(input, true); i < n; i++) { + int pathIndex = readVarint(input, true); + if (pathIndex >= (int) skeletonData->_pathConstraints.size()) return NULL; + skin->getConstraints().add(skeletonData->_pathConstraints[pathIndex]); + } slotCount = readVarint(input, true); } @@ -476,7 +488,7 @@ Skin *SkeletonBinary::readSkin(DataInput *input, bool defaultSkin, SkeletonData skin->setAttachment(slotIndex, String(name), attachment); else { delete skin; - return nullptr; + return NULL; } } } @@ -515,7 +527,7 @@ Attachment *SkeletonBinary::readAttachment(DataInput *input, Skin *skin, int slo RegionAttachment *region = _attachmentLoader->newRegionAttachment(*skin, String(name), String(path), sequence); if (!region) { setError("Error reading attachment: ", name.buffer()); - return nullptr; + return NULL; } region->_path = path; region->_rotation = rotation; @@ -536,7 +548,7 @@ Attachment *SkeletonBinary::readAttachment(DataInput *input, Skin *skin, int slo BoundingBoxAttachment *box = _attachmentLoader->newBoundingBoxAttachment(*skin, String(name)); if (!box) { setError("Error reading attachment: ", name.buffer()); - return nullptr; + return NULL; } readVertices(input, box->getVertices(), box->getBones(), vertexCount); box->setWorldVerticesLength(vertexCount << 1); @@ -577,7 +589,7 @@ Attachment *SkeletonBinary::readAttachment(DataInput *input, Skin *skin, int slo MeshAttachment *mesh = _attachmentLoader->newMeshAttachment(*skin, String(name), String(path), sequence); if (!mesh) { setError("Error reading attachment: ", name.buffer()); - return nullptr; + return NULL; } mesh->_path = path; mesh->_color.set(color); @@ -616,7 +628,7 @@ Attachment *SkeletonBinary::readAttachment(DataInput *input, Skin *skin, int slo MeshAttachment *mesh = _attachmentLoader->newMeshAttachment(*skin, String(name), String(path), sequence); if (!mesh) { setError("Error reading attachment: ", name.buffer()); - return nullptr; + return NULL; } mesh->_path = path; mesh->_color.set(color); @@ -635,7 +647,7 @@ Attachment *SkeletonBinary::readAttachment(DataInput *input, Skin *skin, int slo PathAttachment *path = _attachmentLoader->newPathAttachment(*skin, String(name)); if (!path) { setError("Error reading attachment: ", name.buffer()); - return nullptr; + return NULL; } path->_closed = readBoolean(input); path->_constantSpeed = readBoolean(input); @@ -657,7 +669,7 @@ Attachment *SkeletonBinary::readAttachment(DataInput *input, Skin *skin, int slo PointAttachment *point = _attachmentLoader->newPointAttachment(*skin, String(name)); if (!point) { setError("Error reading attachment: ", name.buffer()); - return nullptr; + return NULL; } point->_rotation = readFloat(input); point->_x = readFloat(input) * _scale; @@ -675,7 +687,7 @@ Attachment *SkeletonBinary::readAttachment(DataInput *input, Skin *skin, int slo ClippingAttachment *clip = _attachmentLoader->newClippingAttachment(*skin, name); if (!clip) { setError("Error reading attachment: ", name.buffer()); - return nullptr; + return NULL; } readVertices(input, clip->getVertices(), clip->getBones(), vertexCount); clip->setWorldVerticesLength(vertexCount << 1); @@ -687,7 +699,7 @@ Attachment *SkeletonBinary::readAttachment(DataInput *input, Skin *skin, int slo return clip; } } - return nullptr; + return NULL; } void SkeletonBinary::readVertices(DataInput *input, Vector &vertices, Vector &bones, int vertexCount) { diff --git a/spine-godot/README.md b/spine-godot/README.md new file mode 100644 index 000000000..222f23198 --- /dev/null +++ b/spine-godot/README.md @@ -0,0 +1,85 @@ +# spine-godot + +The spine-godot runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [Godot](https://godotengine.org/). spine-godot is based on [spine-cpp](../spine-cpp). + +# See the [spine-godot documentation](http://esotericsoftware.com/spine-godot]) for in-depth information. + +## 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-godot works with data exported from Spine 4.2.xx. + +spine-godot supports all Spine features, except two-color tinting and the screen blend mode. + +## Setup + +spine-godot works with the latest stable Godot 3.4 release. It requires compilation of Godot, as spine-godot is implemented as a module. + +> *NOTE:* spine-godot also compiles and works against Godot 4.x. However, we currently can not guarantee stability, as Godot 4.x is still heavily in flux. + +### Pre-built Godot editor and export template binaries + +We provide prebuilt Godot editor and export template binaries for Godot 3.4.4-stable: + +* [Godot Editor Windows](https://spine-godot.s3.eu-central-1.amazonaws.com/4.2-beta/3.4.4-stable/godot-editor-windows.zip) +* [Godot Editor Linux](https://spine-godot.s3.eu-central-1.amazonaws.com/4.2-beta/3.4.4-stable/godot-editor-linux.zip) +* [Godot Editor macOS](https://spine-godot.s3.eu-central-1.amazonaws.com/4.2-beta/3.4.4-stable/godot-editor-macos.zip) +* [Godot export templates for Windows, Linux, macOS, Web, Android, iOS](https://spine-godot.s3.eu-central-1.amazonaws.com/4.2-beta/3.4.4-stable/spine-godot-templates-4.2-beta-3.4.4-stable.tpz) + +### Building the Godot editor and export templates locally + +If you want to build the Godot editor and export templates yourself, either because you want to add custom engine modules or for engine development, you can use the shell scripts in the `spine-godot/build` folder. + +> *NOTE:* Make sure you have all build dependencies installed before attempting this, as per the [official instructions by Godot](https://docs.godotengine.org/en/stable/development/compiling/index.html). + +To build a Godot editor binary, run the following in a Bash shell (use Git Bash on Windows): + +``` +cd spine-godot +./build/setup.sh 3.4.4-stable false +./build/build.sh release_debug +``` + +The first argument to `setup.sh` is the Godot repository branch or commit hash you want to build the Godot editor from. The second argument specifies whether you want to compile the editor for development, which will include support for Live++ on Windows, and disable many modules so compilation is faster. + +The first argument to `build.sh` specifies the optimization level of the resulting binary. Supported values are `debug`, which allows full debugging but may be slow due to missing optimizations, and `release_debug`, which is generally used for release builds of the Godot editor. + +The resulting Godot editor binary can then be found in `spine-godot/godot/bin`. + +To build the export template for a specific platform, run the following in a Bash shell (use Git Bash on Windows): + +``` +cd spine-godot +./build/setup.sh 3.4.4-stable false +./build/build-templates.sh windows +``` + +The first argument to `setup.sh` is the Godot repository branch or commit hash you want to build the Godot editor from. The second argument must be `false`. + +The first argument to `built-templates.sh` is the platform to compile the template for. Valid values are `windows`, `linux`, `macos`, `web`, `android`, and `ios`. Note that macOS and iOS export templates can only be build on a machine running macOS. See the [official instructions by Godot](https://docs.godotengine.org/en/stable/development/compiling/index.html). + +The resulting Godot export template binary can then be found in `spine-godot/godot/bin`. + +### Building the Godot editor and export templates via GitHub Actions +This repository contains a GitHub workflow in `.github/workflows/spine-godot.yml` that allows building all Godot editor and export template binaries through GitHub actions. This may be simpler than compiling these artifacts locally. To use the GitHub workflow: + +1. Clone this repository +2. Enable GitHub workflows on the cloned repository +3. Manually trigger the `spine-godot` workflow. + +The resulting binaries will be attached as artifacts to a sucessful workflow run. + +## Example +Sample projects for both Godot 3.4.x and Godot 4.x are provided in the `example/` and `example-v4/` folders respectively. They illustrate all spine-godot functionality and can be opened and exported with the pre-built or custom build Godot editor and export template binaries. + + + diff --git a/spine-godot/build/build-templates.sh b/spine-godot/build/build-templates.sh new file mode 100755 index 000000000..af6c8d8c2 --- /dev/null +++ b/spine-godot/build/build-templates.sh @@ -0,0 +1,125 @@ +#!/bin/bash +set -e + +dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +pushd $dir > /dev/null + +if [ ! "$#" -eq 1 ]; then + echo "Usage: ./build-templates.sh " + echo + echo "e.g.:" + echo " ./build-templates.sh windows" + echo " ./build-templates.sh linux" + echo " ./build-templates.sh macos" + echo " ./build-templates.sh ios" + echo " ./build-templates.sh android" + echo " ./build-templates.sh web" + echo + exit 1 +fi + +if [ ! -d ../godot ]; then + echo "No Godot clone found. Run ./setup.sh first." + exit 1 +fi + +platform=${1%/} + +cpus=2 +if [ "$OSTYPE" = "msys" ]; then + cpus=$NUMBER_OF_PROCESSORS +elif [[ "$OSTYPE" = "darwin"* ]]; then + cpus=$(sysctl -n hw.logicalcpu) +else + cpus=$(grep -c ^processor /proc/cpuinfo) +fi + +pushd ../godot +if [ "$platform" = "windows" ]; then + # --- Windows --- + #generates windows_64_debug.exe and windows_64_release.exe + scons platform=windows tools=no target=release custom_modules="../spine_godot" --jobs=$cpus + scons platform=windows tools=no target=release_debug custom_modules="../spine_godot" --jobs=$cpus + cp bin/godot.windows.opt.64.exe bin/windows_64_release.exe + cp bin/godot.windows.opt.debug.64.exe bin/windows_64_debug.exe + +elif [ "$platform" = "macos" ]; then + # --- macOS --- + # generates osx.zip + + scons platform=osx tools=no target=release arch=x86_64 custom_modules="../spine_godot" --jobs=$cpus + scons platform=osx tools=no target=release_debug arch=x86_64 custom_modules="../spine_godot" --jobs=$cpus + scons platform=osx tools=no target=release arch=arm64 custom_modules="../spine_godot" --jobs=$cpus + scons platform=osx tools=no target=release_debug arch=arm64 custom_modules="../spine_godot" --jobs=$cpus + lipo -create bin/godot.osx.opt.x86_64 bin/godot.osx.opt.arm64 -output bin/godot.osx.opt.universal + lipo -create bin/godot.osx.opt.debug.x86_64 bin/godot.osx.opt.debug.arm64 -output bin/godot.osx.opt.debug.universal + strip -S -x bin/godot.osx.opt.universal + + pushd bin + cp -r ../misc/dist/osx_template.app . + mkdir -p osx_template.app/Contents/MacOS + cp godot.osx.opt.universal osx_template.app/Contents/MacOS/godot_osx_release.64 + cp godot.osx.opt.debug.universal osx_template.app/Contents/MacOS/godot_osx_debug.64 + chmod +x osx_template.app/Contents/MacOS/godot_osx* + rm -rf osx.zip + zip -q -9 -r osx.zip osx_template.app + popd +elif [ "$platform" = "ios" ]; then + # --- iOS -- + # generates iphone.zip + + scons p=iphone tools=no target=release arch=arm64 custom_modules="../spine_godot" --jobs=$cpus + scons p=iphone tools=no target=release_debug arch=arm64 custom_modules="../spine_godot" --jobs=$cpus + scons p=iphone tools=no target=release arch=arm64 ios_simulator=yes custom_modules="../spine_godot" --jobs=$cpus + scons p=iphone tools=no target=release arch=x86_64 ios_simulator=yes custom_modules="../spine_godot" --jobs=$cpus + scons p=iphone tools=no target=release_debug arch=arm64 ios_simulator=yes custom_modules="../spine_godot" --jobs=$cpus + scons p=iphone tools=no target=release_debug arch=x86_64 ios_simulator=yes custom_modules="../spine_godot" --jobs=$cpus + lipo -create bin/libgodot.iphone.opt.arm64.simulator.a bin/libgodot.iphone.opt.x86_64.simulator.a -output bin/libgodot.iphone.opt.simulator.a + lipo -create bin/libgodot.iphone.opt.debug.arm64.simulator.a bin/libgodot.iphone.opt.debug.x86_64.simulator.a -output bin/libgodot.iphone.opt.debug.simulator.a + strip -S -x bin/libgodot.iphone.opt.arm64.a + strip -S -x bin/libgodot.iphone.opt.simulator.a + + pushd bin + cp -r ../misc/dist/ios_xcode . + cp libgodot.iphone.opt.arm64.a ios_xcode/libgodot.iphone.release.xcframework/ios-arm64/libgodot.a + cp libgodot.iphone.opt.simulator.a ios_xcode/libgodot.iphone.release.xcframework/ios-arm64_x86_64-simulator/libgodot.a + cp libgodot.iphone.opt.debug.arm64.a ios_xcode/libgodot.iphone.debug.xcframework/ios-arm64/libgodot.a + cp libgodot.iphone.opt.debug.simulator.a ios_xcode/libgodot.iphone.debug.xcframework/ios-arm64_x86_64-simulator/libgodot.a + rm -rf iphone.zip + pushd ios_xcode + zip -q -9 -r ../iphone.zip * + popd + popd +elif [ "$platform" = "web" ]; then + # --- WEB --- + # generates webassembly_debug.zip, webassembly_release.zip + scons platform=javascript tools=no target=release custom_modules="../spine_godot" --jobs=$cpus + scons platform=javascript tools=no target=release_debug custom_modules="../spine_godot" --jobs=$cpus + mv bin/godot.javascript.opt.zip bin/webassembly_release.zip + mv bin/godot.javascript.opt.debug.zip bin/webassembly_debug.zip +elif [ "$platform" = "android" ]; then + # --- ANROID --- + # generates android_release.apk, android_debug.apk, android_source.zip + scons platform=android target=release android_arch=armv7 custom_modules="../spine_godot" --jobs=$cpus + scons platform=android target=release_debug android_arch=armv7 custom_modules="../spine_godot" --jobs=$cpus + scons platform=android target=release android_arch=arm64v8 custom_modules="../spine_godot" --jobs=$cpus + scons platform=android target=release_debug android_arch=arm64v8 custom_modules="../spine_godot" --jobs=$cpus + + pushd platform/android/java + chmod a+x gradlew + ./gradlew generateGodotTemplates + popd +elif [ "$platform" = "linux" ]; then + # --- Linix --- + # generates linux_x11_64_release, linux_x11_64_debug + scons platform=x11 tools=no target=release bits=64 custom_modules="../spine_godot" --jobs=$cpus + scons platform=x11 tools=no target=release_debug bits=64 custom_modules="../spine_godot" --jobs=$cpus + strip bin/godot.x11.opt.64 + strip bin/godot.x11.opt.debug.64 + cp bin/godot.x11.opt.64 bin/linux_x11_64_release + cp bin/godot.x11.opt.debug.64 bin/linux_x11_64_debug +else + echo "Unknown platform: $platform" + exit 1 +fi +popd diff --git a/spine-godot/build/build.sh b/spine-godot/build/build.sh new file mode 100755 index 000000000..3eebd1aca --- /dev/null +++ b/spine-godot/build/build.sh @@ -0,0 +1,70 @@ +#!/bin/bash +set -e + +dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +pushd $dir > /dev/null + +if [ ! "$#" -eq 1 ]; then + echo "Usage: ./build.sh " + echo + echo "e.g.:" + echo " ./build.sh release_debug" + echo " ./build.sh debug" + echo + exit 1 +fi + +if [ ! -d ../godot ]; then + echo "No Godot clone found. Run ./setup.sh first." + exit 1 +fi + +target="target=${1%/}" +dev="false" +if [ -f "../godot/custom.py" ]; then + dev="true" +fi + +cpus=2 +if [ "$OSTYPE" = "msys" ]; then + cpus=$NUMBER_OF_PROCESSORS +elif [[ "$OSTYPE" = "darwin"* ]]; then + cpus=$(sysctl -n hw.logicalcpu) +else + cpus=$(grep -c ^processor /proc/cpuinfo) +fi + +echo "CPUS: $cpus" + +pushd ../godot +if [ `uname` == 'Darwin' ] && [ $dev = "false" ]; then + scons $target arch=x86_64 compiledb=yes custom_modules="../spine_godot" --jobs=$cpus + scons $target arch=arm64 compiledb=yes custom_modules="../spine_godot" --jobs=$cpus + + pushd bin + cp -r ../misc/dist/osx_tools.app . + mv osx_tools.app Godot.app + mkdir -p Godot.app/Contents/MacOS + if [ "$target" = "debug" ]; then + lipo -create godot.osx.tools.x86_64 godot.osx.tools.arm64 -output godot.osx.tools.universal + strip -S -x godot.osx.tools.universal + cp godot.osx.tools.universal Godot.app/Contents/MacOS/Godot + else + lipo -create godot.osx.opt.tools.x86_64 godot.osx.opt.tools.arm64 -output godot.osx.opt.tools.universal + strip -S -x godot.osx.opt.tools.universal + cp godot.osx.opt.tools.universal Godot.app/Contents/MacOS/Godot + fi + chmod +x Godot.app/Contents/MacOS/Godot + popd +else + if [ "$OSTYPE" = "msys" ]; then + target="$target vsproj=yes livepp=$LIVEPP" + fi + scons $target compiledb=yes custom_modules="../spine_godot" --jobs=$cpus + if [ -f "bin/godot.x11.opt.tools.64" ]; then + strip bin/godot.x11.opt.tools.64 + fi +fi +popd + +popd > /dev/null \ No newline at end of file diff --git a/spine-godot/build/custom.py b/spine-godot/build/custom.py new file mode 100644 index 000000000..64d255532 --- /dev/null +++ b/spine-godot/build/custom.py @@ -0,0 +1,33 @@ +# list of disabled modules for faster compilation of the engine +module_arkit_enabled = "no" +module_assimp_enabled = "no" +module_bmp_enabled = "no" +module_denoise_enabled = "no" +module_bullet_enabled = "no" +module_raycast_enabled = "no" +module_camera_enabled = "no" +module_csg_enabled = "no" +module_dds_enabled = "no" +module_enet_enabled = "no" +module_etc_enabled = "no" +module_gdnative_enabled = "no" +module_gridmap_enabled = "no" +module_hdr_enabled = "no" +module_jsonrpc_enabled = "no" +module_mbedtls_enabled = "no" +module_mobile_vr_enabled = "no" +module_opensimplex_enabled = "no" +module_opus_enabled = "no" +module_pvr_enabled = "no" +module_recast_enabled = "no" +module_squish_enabled = "no" +module_tga_enabled = "no" +module_theora_enabled = "no" +module_tinyexr_enabled = "no" +module_upnp_enabled = "no" +module_vhacd_enabled = "no" +module_webm_enabled = "no" +module_webp_enabled = "no" +module_webrtc_enabled = "no" +module_websocket_enabled = "no" +module_xatlas_unwrap_enabled = "no" \ No newline at end of file diff --git a/spine-godot/build/livepp-v4.patch b/spine-godot/build/livepp-v4.patch new file mode 100644 index 000000000..7557a8351 --- /dev/null +++ b/spine-godot/build/livepp-v4.patch @@ -0,0 +1,124 @@ +diff --git a/methods.py b/methods.py +index fe84641e9d0625b4f0c4d90a65839337d6120ff8..51ef8550d3a9def0a2ff88a2fde4fa096c085de9 100644 +--- a/methods.py ++++ b/methods.py +@@ -734,6 +734,7 @@ def generate_vs_project(env, num_jobs): + f"target={configuration_getter}", + "progress=no", + "tools=!tools!", ++ "livepp=%s" % env["livepp"], + "-j%s" % num_jobs, + ] + +diff --git a/platform/windows/detect.py b/platform/windows/detect.py +index 0b18fb74fb145e4d2e88ee91abe99f8f39312a46..04880a8fa8209c4002b49f964d86227974ce9ca8 100644 +--- a/platform/windows/detect.py ++++ b/platform/windows/detect.py +@@ -44,7 +44,7 @@ def can_build(): + + + def get_opts(): +- from SCons.Variables import BoolVariable, EnumVariable ++ from SCons.Variables import BoolVariable, EnumVariable, PathVariable + + mingw32 = "" + mingw64 = "" +@@ -73,6 +73,7 @@ def get_opts(): + BoolVariable("use_thinlto", "Use ThinLTO", False), + BoolVariable("use_static_cpp", "Link MinGW/MSVC C++ runtime libraries statically", True), + BoolVariable("use_asan", "Use address sanitizer (ASAN)", False), ++ PathVariable("livepp", "Path to the Live++ installation", "", PathVariable.PathAccept), + ] + + +@@ -310,6 +311,19 @@ def configure_msvc(env, manual_msvc_config): + + env.AppendUnique(LINKFLAGS=["/STACK:" + str(STACK_SIZE)]) + ++ # Check if LIVEPP_PATH is set and add #define. Perform ++ # some sanity checks. ++ if env.get("livepp"): ++ if env["target"] == "release_debug" or env["target"] == "debug": ++ print("Found Live++ at %s" % env.get("livepp")) ++ env.AppendUnique(CPPDEFINES=["LIVEPP_PATH=%s" % env.get("livepp")]) ++ env.AppendUnique(CPPPATH=[env.get("livepp")]) ++ env.AppendUnique(LINKFLAGS=["/FUNCTIONPADMIN"]) ++ else: ++ print("Live++ can only be used with targets 'debug' and 'release_debug'") ++ else: ++ print("No Live++ specified.") ++ + + def configure_mingw(env): + # Workaround for MinGW. See: +diff --git a/platform/windows/godot_windows.cpp b/platform/windows/godot_windows.cpp +index 8de3ef294a99c6f02f6f1380e331e4bb598864ce..8e4c15dd66d1b640a352ed826b25b23917f72cc4 100644 +--- a/platform/windows/godot_windows.cpp ++++ b/platform/windows/godot_windows.cpp +@@ -34,6 +34,11 @@ + #include + #include + ++#ifdef LIVEPP_PATH ++#include "API/LPP_API.h" ++HMODULE livePP; ++#endif ++ + // For export templates, add a section; the exporter will patch it to enclose + // the data appended to the executable (bundled PCK) + #ifndef TOOLS_ENABLED +@@ -147,6 +152,16 @@ char *wc_to_utf8(const wchar_t *wc) { + } + + int widechar_main(int argc, wchar_t **argv) { ++#ifdef LIVEPP_PATH ++#define _MKSTR_L(x) _STR_L(x) ++#define _STR_L(x) L#x ++ livePP = lpp::lppLoadAndRegister(_MKSTR_L(LIVEPP_PATH), "Godot"); ++ lpp::lppEnableAllCallingModulesSync(livePP); ++ lpp::lppInstallExceptionHandler(livePP); ++#undef _MKSTR_L ++#undef _STR_L ++#endif ++ + OS_Windows os(nullptr); + + setlocale(LC_CTYPE, ""); +@@ -179,6 +194,11 @@ int widechar_main(int argc, wchar_t **argv) { + } + delete[] argv_utf8; + ++#ifdef LIVEPP_PATH ++ lpp::lppShutdown(livePP); ++ ::FreeLibrary(livePP); ++#endif ++ + return os.get_exit_code(); + } + +diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp +index 8755bc65dce7e4b88fd509d0cbdbec576356c5f5..50e0d8d0b06bf76d5f4d085d010cf6a683a9e64f 100644 +--- a/platform/windows/os_windows.cpp ++++ b/platform/windows/os_windows.cpp +@@ -53,6 +53,11 @@ + #include + #include + ++#ifdef LIVEPP_PATH ++#include "API/LPP_API.h" ++extern HMODULE livePP; ++#endif ++ + extern "C" { + __declspec(dllexport) DWORD NvOptimusEnablement = 1; + __declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1; +@@ -677,6 +682,9 @@ void OS_Windows::run() { + if (Main::iteration()) { + break; + } ++#ifdef LIVEPP_PATH ++ lpp::lppSyncPoint(livePP); ++#endif + } + + main_loop->finalize(); diff --git a/spine-godot/build/livepp.patch b/spine-godot/build/livepp.patch new file mode 100644 index 000000000..e45be6175 --- /dev/null +++ b/spine-godot/build/livepp.patch @@ -0,0 +1,123 @@ +diff --git a/methods.py b/methods.py +index 9b8cb38c0c1c0fd4ba2917815fdfb7efafb4b646..874e10bcc637632db26b4ac062a5359cd44eaa25 100644 +--- a/methods.py ++++ b/methods.py +@@ -688,6 +688,7 @@ def generate_vs_project(env, num_jobs): + "target=$(Configuration)", + "progress=no", + "tools=!tools!", ++ "livepp=%s" % env["livepp"], + "-j%s" % num_jobs, + ] + +diff --git a/platform/windows/detect.py b/platform/windows/detect.py +index e4facad816b7584fe38dc760356310e0a3937288..2d9da3df65cd3a0b0882ace984002320ebf6c3fc 100644 +--- a/platform/windows/detect.py ++++ b/platform/windows/detect.py +@@ -44,7 +44,7 @@ def can_build(): + + + def get_opts(): +- from SCons.Variables import BoolVariable, EnumVariable ++ from SCons.Variables import BoolVariable, EnumVariable, PathVariable + + mingw32 = "" + mingw64 = "" +@@ -72,6 +72,7 @@ def get_opts(): + BoolVariable("use_thinlto", "Use ThinLTO", False), + BoolVariable("use_static_cpp", "Link MinGW/MSVC C++ runtime libraries statically", True), + BoolVariable("use_asan", "Use address sanitizer (ASAN)", False), ++ PathVariable("livepp", "Path to the Live++ installation", "", PathVariable.PathAccept), + ] + + +@@ -296,6 +297,18 @@ def configure_msvc(env, manual_msvc_config): + + env.AppendUnique(LINKFLAGS=["/STACK:" + str(STACK_SIZE)]) + ++ # Check if LIVEPP_PATH is set and add #define. Perform ++ # some sanity checks. ++ if env.get("livepp"): ++ if env["target"] == "release_debug" or env["target"] == "debug": ++ print("Found Live++ at %s" % env.get("livepp")) ++ env.AppendUnique(CPPDEFINES=["LIVEPP_PATH=%s" % env.get("livepp")]) ++ env.AppendUnique(CPPPATH=[env.get("livepp")]) ++ env.AppendUnique(LINKFLAGS=["/FUNCTIONPADMIN"]) ++ else: ++ print("Live++ can only be used with targets 'debug' and 'release_debug'") ++ else: ++ print("No Live++ specified.") + + def configure_mingw(env): + # Workaround for MinGW. See: +diff --git a/platform/windows/godot_windows.cpp b/platform/windows/godot_windows.cpp +index d7d9e4eace00a696abbb47cb9632f40e183a4ec4..e362320e51c725cd01f292887bd93442752c1c48 100644 +--- a/platform/windows/godot_windows.cpp ++++ b/platform/windows/godot_windows.cpp +@@ -34,6 +34,11 @@ + #include + #include + ++#ifdef LIVEPP_PATH ++#include "API/LPP_API.h" ++HMODULE livePP; ++#endif ++ + // For export templates, add a section; the exporter will patch it to enclose + // the data appended to the executable (bundled PCK) + #ifndef TOOLS_ENABLED +@@ -136,6 +141,16 @@ char *wc_to_utf8(const wchar_t *wc) { + } + + __declspec(dllexport) int widechar_main(int argc, wchar_t **argv) { ++#ifdef LIVEPP_PATH ++#define _MKSTR_L(x) _STR_L(x) ++#define _STR_L(x) L#x ++ livePP = lpp::lppLoadAndRegister(_MKSTR_L(LIVEPP_PATH), "Godot"); ++ lpp::lppEnableAllCallingModulesSync(livePP); ++ lpp::lppInstallExceptionHandler(livePP); ++#undef _MKSTR_L ++#undef _STR_L ++#endif ++ + OS_Windows os(NULL); + + setlocale(LC_CTYPE, ""); +@@ -170,6 +185,11 @@ __declspec(dllexport) int widechar_main(int argc, wchar_t **argv) { + } + delete[] argv_utf8; + ++#ifdef LIVEPP_PATH ++ lpp::lppShutdown(livePP); ++ ::FreeLibrary(livePP); ++#endif ++ + return os.get_exit_code(); + }; + +diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp +index 8b28cbf1f23d6574aac41a3676fea64ddf786fc4..0124d4ac9652df9ba682ab8cc18b4008461d74cf 100644 +--- a/platform/windows/os_windows.cpp ++++ b/platform/windows/os_windows.cpp +@@ -53,6 +53,11 @@ + #include + #include + ++#ifdef LIVEPP_PATH ++#include "API/LPP_API.h" ++extern HMODULE livePP; ++#endif ++ + static const WORD MAX_CONSOLE_LINES = 1500; + + extern "C" { +@@ -3371,6 +3376,9 @@ void OS_Windows::run() { + process_events(); // get rid of pending events + if (Main::iteration()) + break; ++#ifdef LIVEPP_PATH ++ lpp::lppSyncPoint(livePP); ++#endif + }; + + main_loop->finish(); diff --git a/spine-godot/build/setup.sh b/spine-godot/build/setup.sh new file mode 100755 index 000000000..a400e3e18 --- /dev/null +++ b/spine-godot/build/setup.sh @@ -0,0 +1,39 @@ +#!/bin/bash +set -e + +dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +pushd $dir > /dev/null + +if [ ! "$#" -eq 2 ]; then + echo "Usage: ./setup.sh " + echo + echo "e.g.:" + echo " ./setup.sh 3.4.4-stable true" + echo " ./setup.sh master false" + echo + exit 1 +fi + +branch=${1%/} +dev=${2%/} + +pushd .. +rm -rf godot +git clone --depth 1 https://github.com/godotengine/godot.git -b $branch +if [ $dev = "true" ]; then + cp -r .idea godot + cp build/custom.py godot + rm -rf example/.import + rm -rf example/.godot + + if [ "$OSTYPE" = "msys" ]; then + pushd godot + git apply ../build/livepp.patch + git apply ../build/livepp-v4.patch + popd + fi +fi +cp -r ../spine-cpp/spine-cpp spine_godot +popd + +popd > /dev/null \ No newline at end of file diff --git a/spine-godot/build/sources.lst b/spine-godot/build/sources.lst new file mode 100644 index 000000000..30b5bd122 --- /dev/null +++ b/spine-godot/build/sources.lst @@ -0,0 +1,4 @@ +deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse +deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse +deb http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse +deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse \ No newline at end of file diff --git a/spine-godot/example-v4/assets/footstep.ogg b/spine-godot/example-v4/assets/footstep.ogg new file mode 100644 index 000000000..0e1468d8c Binary files /dev/null and b/spine-godot/example-v4/assets/footstep.ogg differ diff --git a/spine-godot/example-v4/assets/footstep.ogg.import b/spine-godot/example-v4/assets/footstep.ogg.import new file mode 100644 index 000000000..7712ffdc0 --- /dev/null +++ b/spine-godot/example-v4/assets/footstep.ogg.import @@ -0,0 +1,16 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOGGVorbis" +uid="uid://can7k84o8svum" +path="res://.godot/imported/footstep.ogg-789c3f1e3c4e0ca3bebcb13f1160f623.oggvorbisstr" + +[deps] + +source_file="res://assets/footstep.ogg" +dest_files=["res://.godot/imported/footstep.ogg-789c3f1e3c4e0ca3bebcb13f1160f623.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 diff --git a/spine-godot/example-v4/assets/mix-and-match/mix-and-match-data.tres b/spine-godot/example-v4/assets/mix-and-match/mix-and-match-data.tres new file mode 100644 index 000000000..691b54067 --- /dev/null +++ b/spine-godot/example-v4/assets/mix-and-match/mix-and-match-data.tres @@ -0,0 +1,10 @@ +[gd_resource type="SpineSkeletonDataResource" load_steps=3 format=2] + +[ext_resource path="res://assets/mix-and-match/mix-and-match.atlas" type="SpineAtlasResource" id=1] +[ext_resource path="res://assets/mix-and-match/mix-and-match-pro.json" type="SpineSkeletonFileResource" id=2] + +[resource] +atlas_res = ExtResource( 1 ) +skeleton_file_res = ExtResource( 2 ) +animations = null +skins = null diff --git a/spine-godot/example-v4/assets/mix-and-match/mix-and-match-pro.json b/spine-godot/example-v4/assets/mix-and-match/mix-and-match-pro.json new file mode 100644 index 000000000..9f27b879a --- /dev/null +++ b/spine-godot/example-v4/assets/mix-and-match/mix-and-match-pro.json @@ -0,0 +1,8001 @@ +{ +"skeleton": { + "hash": "5bSWDwjOkqw", + "spine": "4.1.23-beta", + "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-back-front", "bag-flap", "bag-strap-front", "bag-back-down", "bag-strap-back", "bag", "bag-control" ], + "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-up", "cape-front-rotator", "cape-blue-control", "cape-blue-down-middle", "cape-blue-middle-back", "cape-blue-middle-front", "cape-blue-up-front", "cape-back-rotator", "cape-blue-down-back", "cape-blue-down-front", "cape-blue-down", "cape-blue-up-back" ], + "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-red-front-inside", "cape-red-front-outside", "cape-front-rotator", "cape-red-back-outside", "cape-back-rotator", "cape-red-back-inside" ], + "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": [ "pompom-control", "hat", "hat-control", "hat-base" ], + "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": [ "pompom-control", "hat", "hat-control", "hat-base" ], + "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-leg-down-back", "dress-control-leg-up-back", "sleeve-control-front", "dress-control-leg-down-front", "sleeve-control-back", "dress-control-middle", "dress-control-foot-back", "dress-control-foot-front", "dress-control-leg-up-front" ], + "transform": [ "leg-down-front", "leg-up", "leg-down-back", "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-front-down", "skirt-control-up", "skirt-control-back-down", "skirt-control", "skirt-control-front", "skirt-control-back", "skirt-control-middle" ], + "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", "pompom-control", "hat", "zip-boy", "hat-control", "backpack", "backpack-control" ], + "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": [ "bag-back-front", "bag-flap", "hair-strand-back-1", "hair-strand-back-3", "hat", "pompom-control", "zip-girl", "bag-strap-front", "hair-holder-front", "scarf-back", "bag-back-down", "hat-control", "bag-strap-back", "hair-strand-front-2", "hair-strand-front-3", "hair-holder-back", "bag", "hair-strand-front-4", "bag-control", "hair-strand-front-1", "hair-strand-back-2", "hat-base" ], + "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": [ "cape-blue-up", "dress-control-leg-up-front", "dress-control-leg-down-back", "sleeve-control-front", "dress-control-leg-up-back", "cape-front-rotator", "cape-blue-control", "cape-blue-down-middle", "cape-blue-middle-back", "cape-blue-middle-front", "dress-control-leg-down-front", "dress-control-middle", "sleeve-control-back", "cape-blue-up-front", "cape-back-rotator", "cape-blue-down-back", "cape-blue-down-front", "dress-control-foot-back", "cape-blue-down", "dress-control-foot-front", "cape-blue-up-back" ], + "transform": [ "leg-down-front", "leg-up", "leg-down-back", "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-red-front-inside", "skirt-control-front-down", "cape-red-front-outside", "cape-front-rotator", "skirt-control-back-down", "skirt-control-up", "skirt-rotation-back", "skirt-control", "cape-red-back-outside", "cape-back-rotator", "skirt-rotation-front", "skirt-control-middle", "skirt-control-front", "skirt-control-back", "cape-red-back-inside" ], + "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-1", "hair-strand-back-3", "hair-holder-front", "scarf-back", "hair-strand-front-2", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-1", "hair-strand-front-4", "hair-strand-back-2" ], + "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-godot/example-v4/assets/mix-and-match/mix-and-match-pro.json.import b/spine-godot/example-v4/assets/mix-and-match/mix-and-match-pro.json.import new file mode 100644 index 000000000..80c63a701 --- /dev/null +++ b/spine-godot/example-v4/assets/mix-and-match/mix-and-match-pro.json.import @@ -0,0 +1,14 @@ +[remap] + +importer="spine.json" +type="SpineSkeletonFileResource" +uid="uid://bijrb2mt3vodc" +path="res://.godot/imported/mix-and-match-pro.json-57325a5014e6fd56fc4a86824bc458ea.spjson" + +[deps] + +source_file="res://assets/mix-and-match/mix-and-match-pro.json" +dest_files=["res://.godot/imported/mix-and-match-pro.json-57325a5014e6fd56fc4a86824bc458ea.spjson"] + +[params] + diff --git a/spine-godot/example-v4/assets/mix-and-match/mix-and-match.atlas b/spine-godot/example-v4/assets/mix-and-match/mix-and-match.atlas new file mode 100644 index 000000000..3cab05d5e --- /dev/null +++ b/spine-godot/example-v4/assets/mix-and-match/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-godot/example-v4/assets/mix-and-match/mix-and-match.atlas.import b/spine-godot/example-v4/assets/mix-and-match/mix-and-match.atlas.import new file mode 100644 index 000000000..62adf3d7e --- /dev/null +++ b/spine-godot/example-v4/assets/mix-and-match/mix-and-match.atlas.import @@ -0,0 +1,15 @@ +[remap] + +importer="spine.atlas" +type="SpineAtlasResource" +uid="uid://cvu8lycjkd245" +path="res://.godot/imported/mix-and-match.atlas-3d349b543ecdcc01fb29033adaef0841.spatlas" + +[deps] + +source_file="res://assets/mix-and-match/mix-and-match.atlas" +dest_files=["res://.godot/imported/mix-and-match.atlas-3d349b543ecdcc01fb29033adaef0841.spatlas"] + +[params] + +normal_map_prefix="n" diff --git a/spine-godot/example-v4/assets/mix-and-match/mix-and-match.png b/spine-godot/example-v4/assets/mix-and-match/mix-and-match.png new file mode 100644 index 000000000..441cd2a81 Binary files /dev/null and b/spine-godot/example-v4/assets/mix-and-match/mix-and-match.png differ diff --git a/spine-godot/example-v4/assets/mix-and-match/mix-and-match.png.import b/spine-godot/example-v4/assets/mix-and-match/mix-and-match.png.import new file mode 100644 index 000000000..761e2b425 --- /dev/null +++ b/spine-godot/example-v4/assets/mix-and-match/mix-and-match.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dkpeve6qcxa70" +path="res://.godot/imported/mix-and-match.png-c2d8e28d9f2efc380ff8b95a22dadcc3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/mix-and-match/mix-and-match.png" +dest_files=["res://.godot/imported/mix-and-match.png-c2d8e28d9f2efc380ff8b95a22dadcc3.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.atlas b/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.atlas new file mode 100644 index 000000000..792c6867e --- /dev/null +++ b/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.atlas @@ -0,0 +1,16 @@ +Raggedy Spineboy.png + size: 256, 256 + filter: Linear, Linear + pma: true +arm + bounds: 2, 140, 71, 75 + rotate: 90 +head + bounds: 2, 2, 136, 187 + rotate: 90 +leg + bounds: 2, 213, 36, 99 + rotate: 90 +torso + bounds: 103, 187, 62, 95 + rotate: 90 diff --git a/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.atlas.import b/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.atlas.import new file mode 100644 index 000000000..7f9c5ac13 --- /dev/null +++ b/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.atlas.import @@ -0,0 +1,15 @@ +[remap] + +importer="spine.atlas" +type="SpineAtlasResource" +uid="uid://c75mtwn6dnkwp" +path="res://.godot/imported/Raggedy Spineboy.atlas-07f7c6b30431397bcf472b18d48851e0.spatlas" + +[deps] + +source_file="res://assets/raggedyspineboy/Raggedy Spineboy.atlas" +dest_files=["res://.godot/imported/Raggedy Spineboy.atlas-07f7c6b30431397bcf472b18d48851e0.spatlas"] + +[params] + +normal_map_prefix="n" diff --git a/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.png b/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.png new file mode 100644 index 000000000..337fbc5a2 Binary files /dev/null and b/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.png differ diff --git a/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.png.import b/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.png.import new file mode 100644 index 000000000..e852fe8b8 --- /dev/null +++ b/spine-godot/example-v4/assets/raggedyspineboy/Raggedy Spineboy.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://couyrsq850nh6" +path="res://.godot/imported/Raggedy Spineboy.png-8982b59aad5b612b7ed1a5da8b447d00.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/raggedyspineboy/Raggedy Spineboy.png" +dest_files=["res://.godot/imported/Raggedy Spineboy.png-8982b59aad5b612b7ed1a5da8b447d00.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/spine-godot/example-v4/assets/raggedyspineboy/raggedy spineboy-res.tres b/spine-godot/example-v4/assets/raggedyspineboy/raggedy spineboy-res.tres new file mode 100644 index 000000000..0b47cd648 --- /dev/null +++ b/spine-godot/example-v4/assets/raggedyspineboy/raggedy spineboy-res.tres @@ -0,0 +1,8 @@ +[gd_resource type="SpineSkeletonDataResource" load_steps=3 format=2] + +[ext_resource path="res://assets/raggedyspineboy/Raggedy Spineboy.atlas" type="SpineAtlasResource" id=1] +[ext_resource path="res://assets/raggedyspineboy/raggedy spineboy.json" type="SpineSkeletonFileResource" id=2] + +[resource] +atlas_res = ExtResource( 1 ) +skeleton_file_res = ExtResource( 2 ) diff --git a/spine-godot/example-v4/assets/raggedyspineboy/raggedy spineboy.json b/spine-godot/example-v4/assets/raggedyspineboy/raggedy spineboy.json new file mode 100644 index 000000000..ece22dd22 --- /dev/null +++ b/spine-godot/example-v4/assets/raggedyspineboy/raggedy spineboy.json @@ -0,0 +1,304 @@ +{ +"skeleton": { + "hash": "ukmbgK+14T0", + "spine": "4.1.23-beta", + "x": -78.45, + "y": -9.66, + "width": 157.48, + "height": 364.98, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { "name": "hip", "parent": "root", "x": -0.79, "y": 82.38 }, + { "name": "abdomen", "parent": "hip", "length": 33.5, "rotation": 89.55, "y": -0.1 }, + { "name": "chest", "parent": "abdomen", "length": 29.58, "x": 38.08, "y": 0.73 }, + { "name": "L-arm", "parent": "chest", "length": 32.68, "rotation": -121.23, "x": 24.64, "y": -16.69 }, + { "name": "L-thigh", "parent": "hip", "length": 29.76, "rotation": -81.94, "x": 17.32, "y": -5.2 }, + { "name": "L-foot", "parent": "L-thigh", "length": 37.25, "rotation": -6.29, "x": 37.36, "y": -1.79 }, + { "name": "L-forearm", "parent": "L-arm", "length": 33.69, "rotation": -12.09, "x": 39.1, "y": -2.35 }, + { "name": "R-arm", "parent": "chest", "length": 36.76, "rotation": 133.38, "x": 26, "y": 13.63 }, + { "name": "R-thigh", "parent": "hip", "length": 29.49, "rotation": -93.16, "x": -18.19, "y": -6.06 }, + { "name": "R-foot", "parent": "R-thigh", "length": 39.99, "rotation": -1.8, "x": 36.41, "y": 0.27 }, + { "name": "R-forearm", "parent": "R-arm", "length": 36.13, "rotation": 2.73, "x": 41.66, "y": 0.28 }, + { "name": "head", "parent": "chest", "length": 94.23, "rotation": -2.25, "x": 41.02, "y": -0.11 }, + { "name": "scalp", "parent": "head", "length": 31.95, "rotation": -29.89, "x": 129.34, "y": 15.1 }, + { "name": "hair1", "parent": "scalp", "length": 23.01, "rotation": 68.49, "x": 36.51, "y": 4.13 }, + { "name": "hair2", "parent": "hair1", "length": 23.5, "rotation": 59.56, "x": 29.03, "y": 1.58 } +], +"slots": [ + { "name": "R-arm", "bone": "R-arm", "attachment": "arm" }, + { "name": "L-arm", "bone": "L-arm", "attachment": "arm" }, + { "name": "L-leg", "bone": "L-thigh", "attachment": "leg" }, + { "name": "R-leg", "bone": "R-thigh", "attachment": "leg" }, + { "name": "torso", "bone": "abdomen", "attachment": "torso" }, + { "name": "head", "bone": "head", "attachment": "head" } +], +"skins": [ + { + "name": "default", + "attachments": { + "head": { + "head": { + "type": "mesh", + "uvs": [ 0.60755, 0.01864, 0.64146, 0.03355, 0.70227, 0.06028, 0.76687, 0.08869, 0.80696, 0.14524, 0.84158, 0.19407, 1, 0.41294, 1, 0.78562, 0.67349, 1, 0.38214, 1, 0.13935, 0.8937, 0.07949, 0.78808, 0.05899, 0.7519, 0, 0.64781, 0, 0.40213, 0.15055, 0.27784, 0.25632, 0.21734, 0.28424, 0.20137, 0.31117, 0.18597, 0.32034, 0.16739, 0.32984, 0.14814, 0.3317, 0.12798, 0.33358, 0.1076, 0.29623, 0.08869, 0.21779, 0.06978, 0.2514, 0.03195, 0.32659, 0.01699, 0.37521, 0.00732, 0.41202, 0, 0.45684, 0, 0.49046, 0, 0.53155, 0, 0.56517, 0, 0.55023, 0.1049, 0.46058, 0.06437, 0.38587, 0.05086, 0.31117, 0.04816, 0.54649, 0.17516, 0.35973, 0.28865, 0.14308, 0.41294, 0.13188, 0.57777, 0.24767, 0.43186, 0.43817, 0.37511, 0.59878, 0.3616, 0.78181, 0.43726, 0.89761, 0.53994, 0.87616, 0.37787 ], + "triangles": [ 36, 25, 26, 35, 27, 28, 23, 25, 36, 24, 25, 23, 26, 35, 36, 35, 26, 27, 22, 36, 35, 23, 36, 22, 28, 29, 34, 35, 28, 34, 21, 35, 34, 35, 21, 22, 37, 20, 34, 37, 38, 20, 19, 20, 38, 18, 19, 38, 17, 18, 38, 2, 4, 37, 4, 2, 3, 43, 4, 5, 43, 37, 4, 42, 38, 37, 43, 42, 37, 6, 46, 5, 44, 43, 5, 39, 14, 15, 41, 15, 16, 39, 15, 41, 16, 17, 38, 41, 16, 38, 41, 38, 42, 46, 44, 5, 45, 46, 6, 44, 46, 45, 40, 14, 39, 40, 39, 41, 13, 14, 40, 12, 13, 40, 45, 6, 7, 11, 12, 40, 9, 10, 40, 11, 40, 10, 9, 41, 42, 9, 40, 41, 8, 9, 42, 42, 43, 8, 44, 8, 43, 8, 44, 45, 8, 45, 7, 34, 29, 30, 33, 31, 32, 33, 32, 0, 31, 34, 30, 34, 20, 21, 31, 33, 34, 37, 34, 33, 1, 33, 0, 2, 33, 1, 33, 2, 37 ], + "vertices": [ 1, 14, 17.04, -22.66, 1, 3, 14, 11.42, -25.02, 0.97438, 12, 187.6, -11.93, 0.00182, 13, 63.98, 5.58, 0.02381, 2, 14, 1.36, -29.25, 0.37005, 12, 182.37, -21.52, 0.62995, 3, 14, -9.34, -33.75, 0.09775, 12, 176.82, -31.71, 0.82289, 13, 64.49, -16.93, 0.07936, 3, 14, -22.66, -31.7, 0.05494, 12, 165.13, -38.42, 0.86351, 13, 57.7, -28.58, 0.08156, 3, 14, -34.17, -29.93, 0.01796, 12, 155.03, -44.22, 0.89858, 13, 51.83, -38.64, 0.08345, 1, 12, 109.81, -70.7, 1, 1, 12, 30.84, -74.45, 1, 1, 12, -16.96, -26.55, 1, 1, 12, -19.08, 18.11, 1, 1, 12, 1.68, 56.4, 1, 1, 12, 23.63, 66.63, 1, 1, 12, 31.14, 70.14, 1, 1, 12, 52.77, 80.23, 1, 2, 12, 104.83, 82.69, 0.99074, 13, -54.93, 46.39, 0.00926, 3, 12, 132.26, 60.87, 0.88784, 13, -20.27, 41.13, 0.11168, 15, 48.07, 46.13, 4.7E-4, 4, 14, 14.49, 45.72, 0.00833, 12, 145.85, 45.26, 0.85196, 13, -0.71, 34.37, 0.12365, 15, 30.69, 34.9, 0.01605, 4, 14, 14.72, 40.26, 0.01053, 12, 149.44, 41.14, 0.84249, 13, 4.45, 32.59, 0.12681, 15, 26.1, 31.94, 0.02016, 4, 14, 14.94, 35, 0.01266, 12, 152.9, 37.17, 0.83336, 13, 9.43, 30.87, 0.12986, 15, 21.68, 29.08, 0.02412, 4, 14, 17.31, 31.55, 0.05833, 12, 156.9, 35.95, 0.60487, 13, 13.51, 31.8, 0.21603, 15, 19.9, 25.29, 0.12077, 4, 14, 19.76, 27.97, 0.10569, 12, 161.05, 34.68, 0.368, 13, 17.74, 32.78, 0.30535, 15, 18.06, 21.36, 0.22096, 4, 14, 23.06, 25.24, 0.1279, 12, 165.34, 34.6, 0.18497, 13, 21.49, 34.84, 0.23674, 15, 17.37, 17.13, 0.45039, 3, 14, 26.39, 22.47, 0.15034, 13, 25.29, 36.92, 0.16741, 15, 16.67, 12.86, 0.68225, 3, 14, 33.01, 24.76, 0.02128, 13, 25.58, 43.92, 0.03309, 15, 22, 8.32, 0.94563, 1, 15, 33.6, 3.18, 1, 1, 15, 27.7, -4.32, 1, 1, 15, 15.91, -6.38, 1, 1, 15, 8.29, -7.71, 1, 1, 15, 2.52, -8.72, 1, 2, 14, 33.8, -6.24, 0.33703, 15, -4.33, -8.07, 0.66297, 2, 14, 30.77, -10.42, 0.58778, 15, -9.46, -7.58, 0.41222, 2, 14, 27.08, -15.53, 0.81447, 15, -15.74, -6.98, 0.18553, 2, 14, 24.05, -19.7, 0.97838, 15, -20.88, -6.49, 0.02162, 1, 14, 7.37, -4.8, 1, 1, 14, 22.4, 1.3, 1, 1, 15, 7.54, 1.64, 1, 3, 14, 38.63, 17.86, 0.0046, 13, 34.06, 46.62, 0.01618, 15, 18.9, -0.03, 0.97922, 1, 13, 30.82, 1.68, 1, 3, 14, -7.07, 41.74, 7.0E-5, 12, 131.49, 28.69, 0.99828, 15, 16.34, 51.47, 0.00165, 1, 12, 103.58, 60.65, 1, 1, 12, 68.57, 60.72, 1, 1, 12, 100.33, 44.43, 1, 1, 12, 113.74, 15.8, 1, 1, 12, 117.77, -8.69, 1, 1, 12, 103.07, -37.5, 1, 1, 12, 82.15, -56.28, 1, 3, 14, -68.87, -11.37, 0.00371, 12, 116.34, -51.37, 0.97904, 13, 21.84, -64.11, 0.01725 ], + "hull": 33, + "edges": [ 16, 14, 16, 18, 18, 20, 26, 28, 28, 30, 44, 46, 46, 48, 48, 50, 14, 12, 10, 12, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 2, 0, 0, 64, 2, 4, 4, 6, 20, 22, 22, 24, 24, 26, 80, 82, 82, 84, 84, 86, 86, 88, 88, 90, 90, 12, 80, 26, 34, 36, 30, 32, 32, 34, 36, 38, 38, 40, 40, 42, 42, 44, 12, 92, 6, 8, 8, 10 ], + "width": 136, + "height": 187 + } + }, + "L-arm": { + "arm": { + "type": "mesh", + "uvs": [ 1, 0.16418, 0.90368, 0.30178, 0.80735, 0.43938, 0.75345, 0.50664, 0.71536, 0.55417, 0.66561, 0.61626, 0.63234, 0.65778, 0.59417, 0.7054, 0.45366, 0.8527, 0.31316, 1, 0.15658, 1, 0, 1, 0, 0.71458, 0.13235, 0.59074, 0.26471, 0.4669, 0.34675, 0.39836, 0.39153, 0.36096, 0.43008, 0.32876, 0.4689, 0.29633, 0.52302, 0.25113, 0.59417, 0.1917, 0.72983, 0.09585, 0.86549, 0, 1, 0, 0.15703, 0.83582, 0.46722, 0.51561, 0.78995, 0.22527, 0.34029, 0.70958, 0.62889, 0.3843 ], + "triangles": [ 10, 24, 9, 9, 27, 8, 9, 24, 27, 10, 11, 24, 11, 12, 24, 8, 27, 7, 12, 13, 24, 24, 13, 27, 13, 14, 27, 27, 25, 7, 25, 27, 14, 7, 25, 6, 6, 25, 5, 18, 4, 17, 28, 4, 18, 4, 28, 3, 15, 16, 25, 16, 17, 25, 25, 17, 5, 17, 4, 5, 3, 28, 2, 28, 26, 2, 2, 26, 1, 18, 19, 28, 19, 20, 28, 28, 20, 26, 1, 26, 0, 20, 21, 26, 26, 22, 0, 26, 21, 22, 22, 23, 0, 25, 14, 15 ], + "vertices": [ 1, 4, -11.38, 11.41, 1, 1, 4, 0.99, 11.79, 1, 1, 4, 13.36, 12.18, 1, 1, 4, 19.69, 11.97, 1, 2, 4, 24.16, 11.83, 0.91748, 7, -17.58, 10.73, 0.08252, 2, 4, 30, 11.64, 0.75238, 7, -11.83, 11.77, 0.24762, 2, 4, 33.91, 11.51, 0.44551, 7, -7.98, 12.46, 0.55449, 2, 4, 38.39, 11.36, 0.2127, 7, -3.57, 13.26, 0.7873, 2, 4, 53.17, 9.61, 0.07308, 7, 11.25, 14.65, 0.92692, 2, 4, 67.95, 7.86, 0.00873, 7, 26.07, 16.03, 0.99127, 1, 7, 34.26, 8.51, 1, 1, 7, 42.44, 0.99, 1, 1, 7, 27.96, -14.77, 1, 2, 4, 50.33, -20.36, 0.05494, 7, 14.76, -15.25, 0.94506, 2, 4, 37.32, -18.06, 0.23231, 7, 1.56, -15.74, 0.76769, 2, 4, 29.76, -16.28, 0.47868, 7, -6.21, -15.58, 0.52132, 2, 4, 25.63, -15.31, 0.71242, 7, -10.45, -15.5, 0.28758, 2, 4, 22.08, -14.47, 0.81876, 7, -14.1, -15.42, 0.18124, 2, 4, 18.5, -13.63, 0.9506, 7, -17.77, -15.35, 0.0494, 2, 4, 13.51, -12.45, 0.97879, 7, -22.9, -15.25, 0.02121, 2, 4, 6.96, -10.91, 0.99704, 7, -29.63, -15.11, 0.00296, 1, 4, -4.48, -7.2, 1, 1, 4, -15.91, -3.5, 1, 1, 4, -21.43, 4.29, 1, 1, 7, 25.9, -0.53, 1, 2, 4, 31.99, -4.22, 0.80128, 7, -6.56, -3.32, 0.19872, 1, 4, 0.98, 1.89, 1, 1, 7, 9.92, 1.3, 1, 1, 4, 17.32, -0.55, 1 ], + "hull": 24, + "edges": [ 0, 2, 2, 4, 4, 6, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 38, 40, 40, 42, 42, 44, 44, 46, 46, 0, 10, 34, 30, 32, 32, 34, 10, 12, 12, 14, 6, 8, 8, 10, 34, 36, 36, 38, 8, 36 ], + "width": 71, + "height": 75 + } + }, + "L-leg": { + "leg": { + "type": "mesh", + "uvs": [ 1, 0.23129, 1, 0.29498, 1, 0.37025, 1, 0.44552, 1, 0.50921, 1, 0.65976, 1, 0.71766, 1, 0.87399, 0.73924, 1, 0.22971, 1, 0, 0.89715, 0, 0.64818, 0.01978, 0.59915, 0.08517, 0.43712, 0.10542, 0.38694, 0.13057, 0.32459, 0.15317, 0.26859, 0.178, 0.20707, 0.26155, 0, 1, 0, 0.61186, 0.12128, 0.51632, 0.54396 ], + "triangles": [ 21, 13, 4, 21, 4, 5, 12, 13, 21, 12, 21, 5, 12, 5, 6, 11, 12, 6, 9, 10, 11, 11, 6, 9, 6, 8, 9, 7, 8, 6, 20, 18, 19, 20, 19, 0, 17, 18, 20, 17, 20, 0, 17, 0, 1, 16, 17, 1, 16, 1, 2, 15, 16, 2, 15, 2, 3, 14, 15, 3, 14, 3, 4, 13, 14, 4 ], + "vertices": [ 1, 5, 11.02, 15.15, 1, 1, 5, 17.32, 14.75, 1, 2, 5, 24.75, 14.29, 0.95577, 6, -14.29, 14.6, 0.04423, 2, 5, 32.19, 13.83, 0.71874, 6, -6.84, 14.96, 0.28126, 2, 5, 38.49, 13.44, 0.37177, 6, -0.55, 15.26, 0.62823, 2, 5, 53.36, 12.51, 0.00736, 6, 14.34, 15.96, 0.99264, 1, 6, 20.07, 16.24, 1, 1, 6, 35.53, 16.97, 1, 1, 6, 48.43, 8.19, 1, 1, 6, 49.31, -10.13, 1, 1, 6, 39.53, -18.88, 1, 2, 5, 49.98, -23.35, 0.00313, 6, 14.91, -20.05, 0.99687, 2, 5, 45.18, -22.34, 0.02543, 6, 10.03, -19.57, 0.97457, 2, 5, 29.32, -18.99, 0.4709, 6, -6.11, -17.98, 0.5291, 2, 5, 24.4, -17.96, 0.69968, 6, -11.11, -17.49, 0.30032, 2, 5, 18.3, -16.67, 0.89625, 6, -17.32, -16.88, 0.10375, 2, 5, 12.82, -15.51, 0.9779, 6, -22.89, -16.33, 0.0221, 1, 5, 6.79, -14.24, 1, 1, 5, -13.48, -9.97, 1, 1, 5, -11.83, 16.57, 1, 1, 5, -0.72, 1.88, 1, 1, 6, 3.72, -1.97, 1 ], + "hull": 20, + "edges": [ 36, 38, 20, 22, 18, 20, 16, 18, 16, 14, 22, 24, 24, 10, 10, 12, 12, 14, 12, 22, 24, 26, 10, 8, 26, 8, 8, 6, 26, 28, 6, 28, 28, 30, 6, 4, 30, 4, 4, 2, 30, 32, 2, 32, 32, 34, 34, 36, 2, 0, 0, 38, 34, 0 ], + "width": 36, + "height": 99 + } + }, + "R-arm": { + "arm": { + "type": "mesh", + "uvs": [ 1, 0.16418, 0.90368, 0.30178, 0.80735, 0.43938, 0.75345, 0.50664, 0.71536, 0.55417, 0.66561, 0.61626, 0.63234, 0.65778, 0.59417, 0.7054, 0.45366, 0.8527, 0.31316, 1, 0.15658, 1, 0, 1, 0, 0.71458, 0.13235, 0.59074, 0.26471, 0.4669, 0.34675, 0.39836, 0.39153, 0.36096, 0.43008, 0.32876, 0.4689, 0.29633, 0.52302, 0.25113, 0.59417, 0.1917, 0.72983, 0.09585, 0.86549, 0, 1, 0, 0.15703, 0.83582, 0.46722, 0.51561, 0.78995, 0.22527, 0.34029, 0.70958, 0.62889, 0.3843 ], + "triangles": [ 10, 24, 9, 9, 27, 8, 9, 24, 27, 10, 11, 24, 11, 12, 24, 8, 27, 7, 12, 13, 24, 24, 13, 27, 13, 14, 27, 27, 25, 7, 25, 14, 15, 25, 27, 14, 7, 25, 6, 22, 23, 0, 26, 22, 0, 1, 26, 0, 6, 25, 5, 18, 4, 17, 28, 4, 18, 4, 28, 3, 15, 16, 25, 16, 17, 25, 25, 17, 5, 17, 4, 5, 3, 28, 2, 28, 26, 2, 2, 26, 1, 18, 19, 28, 19, 20, 28, 28, 20, 26, 20, 21, 26, 26, 21, 22 ], + "vertices": [ 1, 8, -6.97, 5.03, 1, 1, 8, 5.06, 7.93, 1, 1, 8, 17.1, 10.83, 1, 2, 8, 23.34, 11.91, 0.99563, 11, -17.75, 12.49, 0.00437, 2, 8, 27.74, 12.68, 0.95467, 11, -13.31, 13.04, 0.04533, 2, 8, 33.5, 13.69, 0.75827, 11, -7.51, 13.77, 0.24173, 2, 8, 37.35, 14.36, 0.53963, 11, -3.63, 14.26, 0.46037, 2, 8, 41.77, 15.13, 0.29363, 11, 0.82, 14.82, 0.70637, 2, 8, 56.6, 16.42, 4.0E-4, 11, 15.69, 15.41, 0.9996, 1, 11, 30.56, 16, 1, 1, 11, 38.34, 8.05, 1, 1, 11, 46.11, 0.1, 1, 1, 11, 30.8, -14.86, 1, 2, 8, 59.92, -13.5, 4.8E-4, 11, 17.59, -14.64, 0.99952, 2, 8, 46.72, -13.9, 0.17385, 11, 4.38, -14.41, 0.82615, 2, 8, 38.95, -13.7, 0.5683, 11, -3.37, -13.84, 0.4317, 2, 8, 34.71, -13.59, 0.79613, 11, -7.6, -13.53, 0.20387, 2, 8, 31.06, -13.49, 0.92362, 11, -11.24, -13.26, 0.07638, 2, 8, 27.39, -13.4, 0.98278, 11, -14.9, -12.99, 0.01722, 1, 8, 22.26, -13.26, 1, 1, 8, 15.53, -13.09, 1, 1, 8, 3.58, -11.79, 1, 1, 8, -8.37, -10.49, 1, 1, 8, -15.36, -3.99, 1, 1, 11, 29.51, -0.54, 1, 2, 8, 38.68, -1.43, 0.57762, 11, -3.06, -1.58, 0.42238, 1, 8, 7.07, -1.77, 1, 1, 11, 13.64, 2.15, 1, 1, 8, 23.56, -0.83, 1 ], + "hull": 24, + "edges": [ 0, 2, 2, 4, 4, 6, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 38, 40, 40, 42, 42, 44, 44, 46, 46, 0, 10, 34, 30, 32, 32, 34, 10, 12, 12, 14, 6, 8, 8, 10, 34, 36, 36, 38, 8, 36 ], + "width": 71, + "height": 75 + } + }, + "R-leg": { + "leg": { + "type": "mesh", + "uvs": [ 1, 0.23129, 1, 0.29498, 1, 0.37025, 1, 0.44552, 1, 0.50921, 1, 0.65976, 1, 0.71766, 1, 0.87399, 0.73924, 1, 0.22971, 1, 0, 0.89715, 0, 0.64818, 0.01978, 0.59915, 0.08517, 0.43712, 0.10542, 0.38694, 0.13057, 0.32459, 0.15317, 0.26859, 0.178, 0.20707, 0.26155, 0, 1, 0, 0.61186, 0.12128, 0.51632, 0.54396 ], + "triangles": [ 21, 13, 4, 21, 4, 5, 12, 13, 21, 12, 21, 5, 12, 5, 6, 11, 12, 6, 9, 10, 11, 11, 6, 9, 6, 8, 9, 7, 8, 6, 20, 18, 19, 20, 19, 0, 17, 18, 20, 17, 20, 0, 17, 0, 1, 16, 17, 1, 16, 1, 2, 15, 16, 2, 15, 2, 3, 14, 15, 3, 14, 3, 4, 13, 14, 4 ], + "vertices": [ 1, 9, 7.41, 14.89, 1, 2, 9, 13.71, 15.24, 0.99432, 10, -23.16, 14.24, 0.00568, 2, 9, 21.15, 15.65, 0.91831, 10, -15.74, 14.89, 0.08169, 2, 9, 28.59, 16.06, 0.65731, 10, -8.32, 15.53, 0.34269, 2, 9, 34.88, 16.4, 0.33128, 10, -2.03, 16.08, 0.66872, 2, 9, 49.77, 17.22, 0.00401, 10, 12.81, 17.36, 0.99599, 1, 10, 18.52, 17.86, 1, 1, 10, 33.94, 19.2, 1, 1, 10, 47.18, 10.92, 1, 1, 10, 48.77, -7.35, 1, 1, 10, 39.34, -16.47, 1, 2, 9, 50.6, -18.79, 0.01347, 10, 14.78, -18.6, 0.98653, 2, 9, 45.72, -18.34, 0.05687, 10, 9.88, -18.31, 0.94313, 2, 9, 29.57, -16.87, 0.66681, 10, -6.3, -17.35, 0.33319, 2, 9, 24.57, -16.42, 0.86313, 10, -11.31, -17.05, 0.13687, 2, 9, 18.36, -15.85, 0.97673, 10, -17.54, -16.68, 0.02327, 2, 9, 12.77, -15.35, 0.99935, 10, -23.13, -16.35, 6.5E-4, 1, 9, 6.64, -14.79, 1, 2, 9, -13.99, -12.91, 0.99999, 10, -49.96, -14.76, 1.0E-5, 1, 9, -15.45, 13.63, 1, 1, 9, -2.7, 0.34, 1, 2, 9, 39.28, -0.79, 0.02735, 10, 2.9, -0.97, 0.97265 ], + "hull": 20, + "edges": [ 36, 38, 20, 22, 18, 20, 16, 18, 16, 14, 22, 24, 24, 10, 10, 12, 12, 14, 12, 22, 24, 26, 10, 8, 26, 8, 8, 6, 26, 28, 6, 28, 28, 30, 6, 4, 30, 4, 4, 2, 30, 32, 2, 32, 32, 34, 34, 36, 2, 0, 0, 38, 34, 0 ], + "width": 36, + "height": 99 + } + }, + "torso": { + "torso": { + "type": "mesh", + "uvs": [ 0.87097, 0.13351, 1, 0.26703, 1, 0.45027, 1, 0.63351, 1, 0.81676, 1, 1, 0.75, 1, 0.5, 1, 0.25, 1, 0, 1, 0, 0.72402, 0, 0.44805, 0.09823, 0.22402, 0.19646, 0, 0.4692, 0, 0.74195, 0, 0.58869, 0.13132, 0.401, 0.46063, 0.8354, 0.50156, 0.42394, 0.2675, 0.36228, 0.63166, 0.58839, 0.76773, 0.71972, 0.25773, 0.84058, 0.76485, 0.57726, 0.50305, 0.24069, 0.44016, 0.19158, 0.8008, 0.29695, 0.12289, 0.37843, 0.84006, 0.71037, 0.63433, 0.15889, 0.60896 ], + "triangles": [ 8, 26, 28, 8, 28, 7, 9, 26, 8, 9, 10, 26, 23, 4, 5, 6, 23, 5, 7, 21, 6, 6, 21, 23, 23, 3, 4, 7, 28, 21, 26, 20, 28, 28, 20, 21, 10, 30, 26, 26, 30, 20, 20, 24, 21, 21, 29, 23, 21, 24, 29, 29, 18, 23, 23, 18, 3, 10, 11, 30, 29, 24, 18, 18, 2, 3, 30, 25, 20, 20, 17, 24, 20, 25, 17, 30, 11, 25, 2, 18, 1, 11, 12, 25, 22, 19, 16, 22, 0, 1, 19, 14, 16, 19, 27, 14, 22, 15, 0, 22, 16, 15, 12, 13, 27, 16, 14, 15, 27, 13, 14, 22, 24, 19, 1, 18, 22, 25, 27, 19, 25, 12, 27, 17, 19, 24, 24, 22, 18, 17, 25, 19 ], + "vertices": [ 1, 3, 31.69, -23.15, 1, 2, 3, 19.07, -31.25, 0.60494, 2, 57.15, -30.53, 0.39506, 2, 3, 1.66, -31.39, 0.39506, 2, 39.74, -30.66, 0.60494, 2, 3, -15.75, -31.53, 0.20988, 2, 22.33, -30.8, 0.79012, 1, 5, -7.76, 14.89, 1, 1, 5, 9.48, 12.45, 1, 1, 5, 7.3, -2.9, 1, 2, 5, 5.13, -18.25, 0.488, 9, 5.77, 18.5, 0.512, 2, 5, 2.96, -33.59, 0.16267, 9, 6.62, 3.03, 0.83733, 3, 3, -51.05, 30.2, 0.06996, 2, -12.97, 30.92, 0.26337, 9, 7.46, -12.45, 0.66667, 1, 9, -18.72, -13.88, 1, 2, 3, 1.38, 30.61, 0.39506, 2, 39.46, 31.34, 0.60494, 2, 3, 22.71, 24.69, 0.60494, 2, 60.79, 25.41, 0.39506, 1, 3, 44.04, 18.76, 1, 1, 3, 44.18, 1.86, 1, 1, 3, 44.31, -15.05, 1, 1, 3, 31.76, -5.65, 1, 2, 3, 0.38, 5.74, 0.448, 2, 38.46, 6.47, 0.552, 2, 3, -3.29, -21.22, 0.448, 2, 34.79, -20.5, 0.552, 1, 3, 18.74, 4.46, 1, 1, 2, 22.2, 8.74, 1, 2, 2, 9.38, -5.38, 0.52, 5, -15.95, -9.73, 0.48, 1, 3, 19.82, -13.87, 1, 2, 2, 9.78, -21.01, 0.52, 5, -14.03, 5.79, 0.48, 2, 3, -3.56, -5.22, 0.448, 2, 34.52, -4.49, 0.552, 2, 3, 2.25, 15.69, 0.448, 2, 40.33, 16.42, 0.552, 2, 2, 6.04, 19.2, 0.584, 9, -12.08, -1.62, 0.416, 1, 3, 32.42, 12.44, 1, 2, 2, 2.41, 7.58, 0.584, 9, -8.99, 10.15, 0.416, 1, 2, 22.11, -12.84, 1, 1, 2, 24.25, 21.37, 1 ], + "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, 30, 0 ], + "width": 62, + "height": 95 + } + } + } + } +], +"animations": { + "animation": { + "bones": { + "abdomen": { + "rotate": [ + { + "curve": [ 0.075, 0, 0.112, 6.52 ] + }, + { "time": 0.3, "value": 6.52 }, + { "time": 1.3333 } + ] + }, + "chest": { + "rotate": [ + { + "curve": [ 0.092, 0, 0.137, 13.73 ] + }, + { + "time": 0.3667, + "value": 13.73, + "curve": [ 0.469, 13.73, 0.562, 13.32 ] + }, + { + "time": 0.6667, + "value": 12.78, + "curve": [ 0.77, 12.78, 0.842, 9.11 ] + }, + { + "time": 0.9, + "value": 9.11, + "curve": [ 1.092, 9.11, 1.225, 0 ] + }, + { "time": 1.3333 } + ] + }, + "head": { + "rotate": [ + { + "curve": [ 0.035, 0, 0.061, -5.44 ] + }, + { + "time": 0.1, + "value": -10.88, + "curve": [ 0.183, -10.88, 0.35, 6.77 ] + }, + { + "time": 0.4333, + "value": 6.77, + "curve": [ 1.157, 6.77, 0.966, 0.14 ] + }, + { "time": 1.3333 } + ] + }, + "R-arm": { + "rotate": [ + { + "curve": [ 0.042, 0, 0.125, -26.35 ] + }, + { + "time": 0.1667, + "value": -26.35, + "curve": [ 0.233, -26.35, 0.367, -6.09 ] + }, + { + "time": 0.4333, + "value": -6.09, + "curve": [ 0.658, -6.09, 1.108, 0 ] + }, + { "time": 1.3333 } + ] + }, + "L-arm": { + "rotate": [ + { + "curve": [ 0.083, 0, 0.125, 53.01 ] + }, + { + "time": 0.3333, + "value": 53.01, + "curve": [ 0.477, 52.83, 0.538, 35.12 ] + }, + { + "time": 0.6, + "value": 35.12, + "curve": [ 0.682, 35.12, 0.754, 56.78 ] + }, + { + "time": 0.8333, + "value": 56.78, + "curve": [ 1.128, 56.78, 1.181, 0 ] + }, + { "time": 1.3333 } + ] + }, + "R-forearm": { + "rotate": [ + { + "curve": [ 0.116, 0, 0.203, 4.89 ] + }, + { + "time": 0.3333, + "value": 9.78, + "curve": [ 0.583, 9.78, 0.804, 0 ] + }, + { "time": 1.3333 } + ] + }, + "L-forearm": { + "rotate": [ + { + "value": 14.9, + "curve": [ 0.143, -80.79, 0.229, 32.08 ] + }, + { + "time": 0.4333, + "value": 32.08, + "curve": [ 0.562, 32.08, 0.497, -11.74 ] + }, + { + "time": 0.6333, + "value": -11.74, + "curve": [ 0.814, -11.74, 0.749, 58 ] + }, + { + "time": 0.9333, + "value": 58, + "curve": [ 1.033, 58, 1.185, 14.9 ] + }, + { "time": 1.3333, "value": 14.9 } + ] + }, + "scalp": { + "rotate": [ + { + "value": -7.01, + "curve": [ 0.095, -7.01, 0.171, -0.43 ] + }, + { + "time": 0.2667, + "value": 7.61, + "curve": [ 0.35, 4.26, 0.458, 0 ] + }, + { "time": 0.6667 }, + { "time": 1.3333, "value": -7.01 } + ] + }, + "hair1": { + "rotate": [ + { + "value": -8.8, + "curve": [ 0.067, -8.8, 0.1, -16.02 ] + }, + { + "time": 0.2667, + "value": -16.02, + "curve": [ 0.333, -16.02, 0.41, 29.39 ] + }, + { + "time": 0.5333, + "value": 29.39, + "curve": [ 0.733, 29.39, 0.885, -8.8 ] + }, + { "time": 1.3333, "value": -8.8 } + ] + }, + "hair2": { + "rotate": [ + { + "value": 4.65, + "curve": [ 0.141, 4.65, 0.125, -17.96 ] + }, + { + "time": 0.3333, + "value": -17.96, + "curve": [ 0.408, -17.96, 0.494, 6.63 ] + }, + { + "time": 0.6333, + "value": 6.63, + "curve": [ 0.808, 6.63, 0.941, 4.65 ] + }, + { "time": 1.3333, "value": 4.65 } + ] + } + } + } +} +} \ No newline at end of file diff --git a/spine-godot/example-v4/assets/raggedyspineboy/raggedy spineboy.json.import b/spine-godot/example-v4/assets/raggedyspineboy/raggedy spineboy.json.import new file mode 100644 index 000000000..5c2123ba8 --- /dev/null +++ b/spine-godot/example-v4/assets/raggedyspineboy/raggedy spineboy.json.import @@ -0,0 +1,14 @@ +[remap] + +importer="spine.json" +type="SpineSkeletonFileResource" +uid="uid://bulrbalpjr863" +path="res://.godot/imported/raggedy spineboy.json-a7000cc987b23355ac0b09613918efcc.spjson" + +[deps] + +source_file="res://assets/raggedyspineboy/raggedy spineboy.json" +dest_files=["res://.godot/imported/raggedy spineboy.json-a7000cc987b23355ac0b09613918efcc.spjson"] + +[params] + diff --git a/spine-godot/example-v4/assets/raptor/light-sprite.png b/spine-godot/example-v4/assets/raptor/light-sprite.png new file mode 100644 index 000000000..b5b04d795 Binary files /dev/null and b/spine-godot/example-v4/assets/raptor/light-sprite.png differ diff --git a/spine-godot/example-v4/assets/raptor/light-sprite.png.import b/spine-godot/example-v4/assets/raptor/light-sprite.png.import new file mode 100644 index 000000000..60c836315 --- /dev/null +++ b/spine-godot/example-v4/assets/raptor/light-sprite.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cggfs567rn1ay" +path="res://.godot/imported/light-sprite.png-346e910021b52658f1de723e4c80e05e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/raptor/light-sprite.png" +dest_files=["res://.godot/imported/light-sprite.png-346e910021b52658f1de723e4c80e05e.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/spine-godot/example-v4/assets/raptor/n_raptor.png b/spine-godot/example-v4/assets/raptor/n_raptor.png new file mode 100644 index 000000000..5dc3697ca Binary files /dev/null and b/spine-godot/example-v4/assets/raptor/n_raptor.png differ diff --git a/spine-godot/example-v4/assets/raptor/n_raptor.png.import b/spine-godot/example-v4/assets/raptor/n_raptor.png.import new file mode 100644 index 000000000..1ac7c0eef --- /dev/null +++ b/spine-godot/example-v4/assets/raptor/n_raptor.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnjt8gyvsw0l8" +path="res://.godot/imported/n_raptor.png-d9af68b4a56af2b4319bb485e366dc90.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/raptor/n_raptor.png" +dest_files=["res://.godot/imported/n_raptor.png-d9af68b4a56af2b4319bb485e366dc90.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/spine-godot/example-v4/assets/raptor/raptor-data.tres b/spine-godot/example-v4/assets/raptor/raptor-data.tres new file mode 100644 index 000000000..d4e99ca58 --- /dev/null +++ b/spine-godot/example-v4/assets/raptor/raptor-data.tres @@ -0,0 +1,9 @@ +[gd_resource type="SpineSkeletonDataResource" load_steps=3 format=2] + +[ext_resource path="res://assets/raptor/raptor.atlas" type="SpineAtlasResource" id=1] +[ext_resource path="res://assets/raptor/raptor-pro.skel" type="SpineSkeletonFileResource" id=2] + +[resource] +atlas_res = ExtResource( 1 ) +skeleton_file_res = ExtResource( 2 ) +default_mix = 0.2 diff --git a/spine-godot/example-v4/assets/raptor/raptor-pro.skel b/spine-godot/example-v4/assets/raptor/raptor-pro.skel new file mode 100644 index 000000000..32ab530d7 Binary files /dev/null and b/spine-godot/example-v4/assets/raptor/raptor-pro.skel differ diff --git a/spine-godot/example-v4/assets/raptor/raptor-pro.skel.import b/spine-godot/example-v4/assets/raptor/raptor-pro.skel.import new file mode 100644 index 000000000..845790969 --- /dev/null +++ b/spine-godot/example-v4/assets/raptor/raptor-pro.skel.import @@ -0,0 +1,14 @@ +[remap] + +importer="spine.skel" +type="SpineSkeletonFileResource" +uid="uid://dor8huwld4f84" +path="res://.godot/imported/raptor-pro.skel-022e23a5f5581547a2d7faa9fb2c54e3.spskel" + +[deps] + +source_file="res://assets/raptor/raptor-pro.skel" +dest_files=["res://.godot/imported/raptor-pro.skel-022e23a5f5581547a2d7faa9fb2c54e3.spskel"] + +[params] + diff --git a/spine-godot/example-v4/assets/raptor/raptor.atlas b/spine-godot/example-v4/assets/raptor/raptor.atlas new file mode 100644 index 000000000..89cf60341 --- /dev/null +++ b/spine-godot/example-v4/assets/raptor/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-godot/example-v4/assets/raptor/raptor.atlas.import b/spine-godot/example-v4/assets/raptor/raptor.atlas.import new file mode 100644 index 000000000..1c6ac9efb --- /dev/null +++ b/spine-godot/example-v4/assets/raptor/raptor.atlas.import @@ -0,0 +1,15 @@ +[remap] + +importer="spine.atlas" +type="SpineAtlasResource" +uid="uid://dhtyf5vltqsjg" +path="res://.godot/imported/raptor.atlas-66da4b831eebf404341993162ba3ddb8.spatlas" + +[deps] + +source_file="res://assets/raptor/raptor.atlas" +dest_files=["res://.godot/imported/raptor.atlas-66da4b831eebf404341993162ba3ddb8.spatlas"] + +[params] + +normal_map_prefix="n" diff --git a/spine-godot/example-v4/assets/raptor/raptor.png b/spine-godot/example-v4/assets/raptor/raptor.png new file mode 100644 index 000000000..474f6316b Binary files /dev/null and b/spine-godot/example-v4/assets/raptor/raptor.png differ diff --git a/spine-godot/example-v4/assets/raptor/raptor.png.import b/spine-godot/example-v4/assets/raptor/raptor.png.import new file mode 100644 index 000000000..cd8ee4280 --- /dev/null +++ b/spine-godot/example-v4/assets/raptor/raptor.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ucvdpil67hul" +path="res://.godot/imported/raptor.png-505be50f63fd1d0fb9175a9efbb9776c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/raptor/raptor.png" +dest_files=["res://.godot/imported/raptor.png-505be50f63fd1d0fb9175a9efbb9776c.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/spine-godot/example-v4/assets/spineboy/spineboy-data-res.tres b/spine-godot/example-v4/assets/spineboy/spineboy-data-res.tres new file mode 100644 index 000000000..b2e8bd73d --- /dev/null +++ b/spine-godot/example-v4/assets/spineboy/spineboy-data-res.tres @@ -0,0 +1,20 @@ +[gd_resource type="SpineSkeletonDataResource" load_steps=5 format=2] + +[ext_resource path="res://assets/spineboy/spineboy.atlas" type="SpineAtlasResource" id=1] +[ext_resource path="res://assets/spineboy/spineboy-pro.json" type="SpineSkeletonFileResource" id=2] + +[sub_resource type="SpineAnimationMix" id=1] +from = "idle" +to = "run" +mix = 0.2 + +[sub_resource type="SpineAnimationMix" id=2] +from = "run" +to = "idle" +mix = 0.2 + +[resource] +atlas_res = ExtResource( 1 ) +skeleton_file_res = ExtResource( 2 ) +default_mix = 0.1 +animation_mixes = [ SubResource( 1 ), SubResource( 2 ) ] diff --git a/spine-godot/example-v4/assets/spineboy/spineboy-pro.json b/spine-godot/example-v4/assets/spineboy/spineboy-pro.json new file mode 100644 index 000000000..b4dd8b40f --- /dev/null +++ b/spine-godot/example-v4/assets/spineboy/spineboy-pro.json @@ -0,0 +1,8707 @@ +{ +"skeleton": { + "hash": "itfFESDjM1c", + "spine": "4.1.23-beta", + "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-godot/example-v4/assets/spineboy/spineboy-pro.json.import b/spine-godot/example-v4/assets/spineboy/spineboy-pro.json.import new file mode 100644 index 000000000..a066a2e0e --- /dev/null +++ b/spine-godot/example-v4/assets/spineboy/spineboy-pro.json.import @@ -0,0 +1,14 @@ +[remap] + +importer="spine.json" +type="SpineSkeletonFileResource" +uid="uid://drl0og0imdkla" +path="res://.godot/imported/spineboy-pro.json-60444223fe3960c6d4c33b92d7495419.spjson" + +[deps] + +source_file="res://assets/spineboy/spineboy-pro.json" +dest_files=["res://.godot/imported/spineboy-pro.json-60444223fe3960c6d4c33b92d7495419.spjson"] + +[params] + diff --git a/spine-godot/example-v4/assets/spineboy/spineboy-pro.skel b/spine-godot/example-v4/assets/spineboy/spineboy-pro.skel new file mode 100644 index 000000000..199839b49 Binary files /dev/null and b/spine-godot/example-v4/assets/spineboy/spineboy-pro.skel differ diff --git a/spine-godot/example-v4/assets/spineboy/spineboy-pro.skel.import b/spine-godot/example-v4/assets/spineboy/spineboy-pro.skel.import new file mode 100644 index 000000000..f6d3adbf0 --- /dev/null +++ b/spine-godot/example-v4/assets/spineboy/spineboy-pro.skel.import @@ -0,0 +1,14 @@ +[remap] + +importer="spine.skel" +type="SpineSkeletonFileResource" +uid="uid://cth0eypg16cgi" +path="res://.godot/imported/spineboy-pro.skel-52781a88227740d2a80cb8d7636ea22e.spskel" + +[deps] + +source_file="res://assets/spineboy/spineboy-pro.skel" +dest_files=["res://.godot/imported/spineboy-pro.skel-52781a88227740d2a80cb8d7636ea22e.spskel"] + +[params] + diff --git a/spine-godot/example-v4/assets/spineboy/spineboy.atlas b/spine-godot/example-v4/assets/spineboy/spineboy.atlas new file mode 100644 index 000000000..b07ccc3bf --- /dev/null +++ b/spine-godot/example-v4/assets/spineboy/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-godot/example-v4/assets/spineboy/spineboy.atlas.import b/spine-godot/example-v4/assets/spineboy/spineboy.atlas.import new file mode 100644 index 000000000..831af22f0 --- /dev/null +++ b/spine-godot/example-v4/assets/spineboy/spineboy.atlas.import @@ -0,0 +1,15 @@ +[remap] + +importer="spine.atlas" +type="SpineAtlasResource" +uid="uid://dt2kctrit34y0" +path="res://.godot/imported/spineboy.atlas-54c12b5ff1cdaaa1b4e452a7d0d868c9.spatlas" + +[deps] + +source_file="res://assets/spineboy/spineboy.atlas" +dest_files=["res://.godot/imported/spineboy.atlas-54c12b5ff1cdaaa1b4e452a7d0d868c9.spatlas"] + +[params] + +normal_map_prefix="n" diff --git a/spine-godot/example-v4/assets/spineboy/spineboy.png b/spine-godot/example-v4/assets/spineboy/spineboy.png new file mode 100644 index 000000000..d1c3ac1be Binary files /dev/null and b/spine-godot/example-v4/assets/spineboy/spineboy.png differ diff --git a/spine-godot/example-v4/assets/spineboy/spineboy.png.import b/spine-godot/example-v4/assets/spineboy/spineboy.png.import new file mode 100644 index 000000000..b2d68597d --- /dev/null +++ b/spine-godot/example-v4/assets/spineboy/spineboy.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bh5imhdfuc6m0" +path="res://.godot/imported/spineboy.png-436dbd6da2b707b6828ede17b7871f43.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spineboy/spineboy.png" +dest_files=["res://.godot/imported/spineboy.png-436dbd6da2b707b6828ede17b7871f43.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/spine-godot/example-v4/default_env.tres b/spine-godot/example-v4/default_env.tres new file mode 100644 index 000000000..20207a4aa --- /dev/null +++ b/spine-godot/example-v4/default_env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) diff --git a/spine-godot/example-v4/examples/01-helloworld/helloworld.tscn b/spine-godot/example-v4/examples/01-helloworld/helloworld.tscn new file mode 100644 index 000000000..6c3e6105e --- /dev/null +++ b/spine-godot/example-v4/examples/01-helloworld/helloworld.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=3 format=3 uid="uid://d0v5rhv2ysej8"] + +[ext_resource type="Script" path="res://examples/01-helloworld/spineboy-helloworld.gd" id="1"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="3"] + +[node name="Node2D" type="Node2D"] + +[node name="Spineboy" type="SpineSprite" parent="."] +position = Vector2(505, 466) +scale = Vector2(0.466832, 0.466832) +skeleton_data_res = ExtResource( "3" ) +bones_color = Color(0.968627, 1, 0, 0.501961) +paths_color = Color(1, 0.498039, 0, 0.466667) +paths_clipping = Color(0.8, 0, 0, 0.5) +preview_animation = "run" +preview_frame = true +preview_time = 0.24 +script = ExtResource( "1" ) diff --git a/spine-godot/example-v4/examples/01-helloworld/spineboy-helloworld.gd b/spine-godot/example-v4/examples/01-helloworld/spineboy-helloworld.gd new file mode 100644 index 000000000..1a4493c41 --- /dev/null +++ b/spine-godot/example-v4/examples/01-helloworld/spineboy-helloworld.gd @@ -0,0 +1,4 @@ +extends SpineSprite + +func _ready(): + get_animation_state().set_animation("walk", true, 0) diff --git a/spine-godot/example-v4/examples/02-animation-state-listeners/animation-state-listeners.gd b/spine-godot/example-v4/examples/02-animation-state-listeners/animation-state-listeners.gd new file mode 100644 index 000000000..6313ea9ff --- /dev/null +++ b/spine-godot/example-v4/examples/02-animation-state-listeners/animation-state-listeners.gd @@ -0,0 +1,38 @@ +extends Node2D + +@onready var footstep_audio: AudioStreamPlayer = $FootstepAudio + +func _animation_started(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry): + print("Animation started: " + track_entry.get_animation().get_name()) + +func _animation_interrupted(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry): + print("Animation interrupted: " + track_entry.get_animation().get_name()) + +func _animation_ended(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry): + print("Animation ended: " + track_entry.get_animation().get_name()) + +func _animation_completed(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry): + print("Animation completed: " + track_entry.get_animation().get_name()) + +func _animation_disposed(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry): + print("Animation disposed: " + track_entry.get_animation().get_name()) + +func _animation_event(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry, event: SpineEvent): + print("Animation event: " + track_entry.get_animation().get_name() + ", " + event.get_data().get_event_name()) + if (event.get_data().get_event_name() == "footstep"): + footstep_audio.play() + +func _ready(): + var spineboy = $Spineboy + var animation_state = spineboy.get_animation_state() + animation_state.set_animation("jump", false, 0) + animation_state.add_animation("walk", 0, true, 0) + animation_state.add_animation("run", 2, true, 0) + + spineboy.animation_started.connect(_animation_started) + spineboy.animation_interrupted.connect(_animation_interrupted) + spineboy.animation_ended.connect(_animation_ended) + spineboy.animation_completed.connect(_animation_completed) + spineboy.animation_disposed.connect(_animation_disposed) + spineboy.animation_event.connect(_animation_event) + pass diff --git a/spine-godot/example-v4/examples/02-animation-state-listeners/animation-state-listeners.tscn b/spine-godot/example-v4/examples/02-animation-state-listeners/animation-state-listeners.tscn new file mode 100644 index 000000000..8f0faa9cf --- /dev/null +++ b/spine-godot/example-v4/examples/02-animation-state-listeners/animation-state-listeners.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=3 uid="uid://c738i3nbdkn0h"] + +[ext_resource type="Script" path="res://examples/02-animation-state-listeners/animation-state-listeners.gd" id="1"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="2"] +[ext_resource type="AudioStream" uid="uid://can7k84o8svum" path="res://assets/footstep.ogg" id="3"] + +[node name="Node2D" type="Node2D"] +script = ExtResource( "1" ) + +[node name="Spineboy" type="SpineSprite" parent="."] +position = Vector2(473, 487) +scale = Vector2(0.575051, 0.575051) +skeleton_data_res = ExtResource( "2" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="FootstepAudio" type="AudioStreamPlayer" parent="."] +stream = ExtResource( "3" ) diff --git a/spine-godot/example-v4/examples/03-mix-and-match/mix-and-match.gd b/spine-godot/example-v4/examples/03-mix-and-match/mix-and-match.gd new file mode 100644 index 000000000..4b8eabcc4 --- /dev/null +++ b/spine-godot/example-v4/examples/03-mix-and-match/mix-and-match.gd @@ -0,0 +1,22 @@ +extends SpineSprite + +func _ready(): + var data = get_skeleton().get_data() + var custom_skin = new_skin("custom-skin") + var skin_base = data.find_skin("skin-base") + custom_skin.add_skin(skin_base) + custom_skin.add_skin(data.find_skin("nose/short")) + custom_skin.add_skin(data.find_skin("eyelids/girly")) + custom_skin.add_skin(data.find_skin("eyes/violet")) + custom_skin.add_skin(data.find_skin("hair/brown")) + custom_skin.add_skin(data.find_skin("clothes/hoodie-orange")) + custom_skin.add_skin(data.find_skin("legs/pants-jeans")) + custom_skin.add_skin(data.find_skin("accessories/bag")) + custom_skin.add_skin(data.find_skin("accessories/hat-red-yellow")) + get_skeleton().set_skin(custom_skin); + + for el in custom_skin.get_attachments(): + var entry: SpineSkinEntry = el + print(str(entry.get_slot_index()) + " " + entry.get_name()) + + get_animation_state().set_animation("dance", true, 0) diff --git a/spine-godot/example-v4/examples/03-mix-and-match/mix-and-match.tscn b/spine-godot/example-v4/examples/03-mix-and-match/mix-and-match.tscn new file mode 100644 index 000000000..7f14e428e --- /dev/null +++ b/spine-godot/example-v4/examples/03-mix-and-match/mix-and-match.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=3 format=3 uid="uid://dodvuj07fsynd"] + +[ext_resource type="SpineSkeletonDataResource" path="res://assets/mix-and-match/mix-and-match-data.tres" id="1"] +[ext_resource type="Script" path="res://examples/03-mix-and-match/mix-and-match.gd" id="2"] + +[node name="Node2D" type="Node2D"] + +[node name="MixAndMatch" type="SpineSprite" parent="."] +position = Vector2(532.982, 480.287) +scale = Vector2(0.441932, 0.441932) +skeleton_data_res = ExtResource( "1" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 +script = ExtResource( "2" ) diff --git a/spine-godot/example-v4/examples/04-simple-input/simple-input.tscn b/spine-godot/example-v4/examples/04-simple-input/simple-input.tscn new file mode 100644 index 000000000..9028020f7 --- /dev/null +++ b/spine-godot/example-v4/examples/04-simple-input/simple-input.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=3 format=3 uid="uid://bgdpghp11j3kg"] + +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="1"] +[ext_resource type="Script" path="res://examples/04-simple-input/spineboy-simple-input.gd" id="2"] + +[node name="Node2D" type="Node2D"] + +[node name="Spineboy" type="SpineSprite" parent="."] +position = Vector2(501.503, 472.035) +scale = Vector2(0.518624, 0.518624) +skeleton_data_res = ExtResource( "1" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 +script = ExtResource( "2" ) diff --git a/spine-godot/example-v4/examples/04-simple-input/spineboy-simple-input.gd b/spine-godot/example-v4/examples/04-simple-input/spineboy-simple-input.gd new file mode 100644 index 000000000..7e1ae9dc7 --- /dev/null +++ b/spine-godot/example-v4/examples/04-simple-input/spineboy-simple-input.gd @@ -0,0 +1,19 @@ +extends SpineSprite + +func _ready(): + get_animation_state().set_animation("idle", true, 0) + +func _process(_delta): + if Input.is_action_just_pressed("ui_left"): + get_animation_state().set_animation("run", true, 0) + get_skeleton().set_scale_x(-1) + + if Input.is_action_just_released("ui_left"): + get_animation_state().set_animation("idle", true, 0) + + if (Input.is_action_just_pressed("ui_right")): + get_animation_state().set_animation("run", true, 0) + get_skeleton().set_scale_x(1) + + if Input.is_action_just_released("ui_right"): + get_animation_state().set_animation("idle", true, 0) diff --git a/spine-godot/example-v4/examples/05-mouse-following/mouse-following.gd b/spine-godot/example-v4/examples/05-mouse-following/mouse-following.gd new file mode 100644 index 000000000..d863e7d8c --- /dev/null +++ b/spine-godot/example-v4/examples/05-mouse-following/mouse-following.gd @@ -0,0 +1,11 @@ +extends Node2D + +@onready var spineboy: SpineSprite = $Spineboy +@onready var crosshair_bone: SpineBoneNode = $Spineboy/CrosshairBone + +func _ready(): + spineboy.get_animation_state().set_animation("walk", true, 0) + spineboy.get_animation_state().set_animation("aim", true, 1) + +func _process(_delta): + crosshair_bone.global_position = get_viewport().get_mouse_position() diff --git a/spine-godot/example-v4/examples/05-mouse-following/mouse-following.tscn b/spine-godot/example-v4/examples/05-mouse-following/mouse-following.tscn new file mode 100644 index 000000000..b28780a3a --- /dev/null +++ b/spine-godot/example-v4/examples/05-mouse-following/mouse-following.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=3 format=3 uid="uid://borp2l17n5xw1"] + +[ext_resource type="Script" path="res://examples/05-mouse-following/mouse-following.gd" id="1"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="2"] + +[node name="Node2D" type="Node2D"] +script = ExtResource( "1" ) + +[node name="Spineboy" type="SpineSprite" parent="."] +position = Vector2(481, 457) +scale = Vector2(0.5, 0.5) +skeleton_data_res = ExtResource( "2" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="CrosshairBone" type="SpineBoneNode" parent="Spineboy"] +show_behind_parent = true +position = Vector2(302.333, -569.714) +rotation = -0.000872665 +bone_name = "crosshair" +bone_mode = 1 diff --git a/spine-godot/example-v4/examples/06-bone-following/bone-following.gd b/spine-godot/example-v4/examples/06-bone-following/bone-following.gd new file mode 100644 index 000000000..7294ee6a4 --- /dev/null +++ b/spine-godot/example-v4/examples/06-bone-following/bone-following.gd @@ -0,0 +1,5 @@ +extends Node2D + +func _ready(): + var spineboy: SpineSprite = $Spineboy + spineboy.get_animation_state().set_animation("walk", true, 0) diff --git a/spine-godot/example-v4/examples/06-bone-following/bone-following.tscn b/spine-godot/example-v4/examples/06-bone-following/bone-following.tscn new file mode 100644 index 000000000..5694deae2 --- /dev/null +++ b/spine-godot/example-v4/examples/06-bone-following/bone-following.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=4 format=3 uid="uid://bir7yvf0qwdge"] + +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="1"] +[ext_resource type="Script" path="res://examples/06-bone-following/bone-following.gd" id="2"] +[ext_resource type="Texture2D" uid="uid://8ud5n2ywp5ba" path="res://icon.png" id="3"] + +[node name="Node2D" type="Node2D"] +script = ExtResource( "2" ) + +[node name="Spineboy" type="SpineSprite" parent="."] +position = Vector2(478, 483) +scale = Vector2(0.58461, 0.58461) +skeleton_data_res = ExtResource( "1" ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 + +[node name="GunTipBone" type="SpineBoneNode" parent="Spineboy"] +show_behind_parent = true +position = Vector2(214.298, -162.047) +rotation = 0.713316 +bone_name = "gun-tip" + +[node name="Sprite" type="Sprite2D" parent="Spineboy/GunTipBone"] +texture = ExtResource( "3" ) diff --git a/spine-godot/example-v4/examples/07-slot-node/slot-node.gd b/spine-godot/example-v4/examples/07-slot-node/slot-node.gd new file mode 100644 index 000000000..fd5a2770b --- /dev/null +++ b/spine-godot/example-v4/examples/07-slot-node/slot-node.gd @@ -0,0 +1,11 @@ +extends Node2D + +@onready var spineboy: SpineSprite = $Spineboy +@onready var raptor: SpineSprite = $Spineboy/GunSlot/Raptor +@onready var tiny_spineboy: SpineSprite = $Spineboy/FrontFistSlot/TinySpineboy + +func _ready(): + var entry = spineboy.get_animation_state().set_animation("run", true, 0) + entry.set_time_scale(0.1) + raptor.get_animation_state().set_animation("walk", true, 0) + tiny_spineboy.get_animation_state().set_animation("walk", true, 0) diff --git a/spine-godot/example-v4/examples/07-slot-node/slot-node.tscn b/spine-godot/example-v4/examples/07-slot-node/slot-node.tscn new file mode 100644 index 000000000..4eac5e614 --- /dev/null +++ b/spine-godot/example-v4/examples/07-slot-node/slot-node.tscn @@ -0,0 +1,56 @@ +[gd_scene load_steps=5 format=3 uid="uid://bhht8dees2pyq"] + +[ext_resource type="Script" path="res://examples/07-slot-node/slot-node.gd" id="1"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="2"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/raptor/raptor-data.tres" id="3"] +[ext_resource type="Texture2D" uid="uid://8ud5n2ywp5ba" path="res://icon.png" id="4"] + +[node name="Node2D" type="Node2D"] +script = ExtResource( "1" ) + +[node name="Spineboy" type="SpineSprite" parent="."] +position = Vector2(474, 506) +scale = Vector2(0.560712, 0.560712) +skeleton_data_res = ExtResource( "2" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="GunSlot" type="SpineSlotNode" parent="Spineboy"] +show_behind_parent = true +position = Vector2(40.8753, -276.036) +rotation = 0.837234 +slot_name = "gun" + +[node name="Raptor" type="SpineSprite" parent="Spineboy/GunSlot"] +position = Vector2(84.6909, -67.9174) +scale = Vector2(0.193472, 0.193472) +skeleton_data_res = ExtResource( "3" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="EyeSlot" type="SpineSlotNode" parent="Spineboy"] +show_behind_parent = true +position = Vector2(-23.4598, -402.301) +rotation = -1.71793 +slot_name = "eye" + +[node name="Sprite" type="Sprite2D" parent="Spineboy/EyeSlot"] +position = Vector2(84.4734, 43.4469) +rotation = 1.66344 +texture = ExtResource( "4" ) + +[node name="FrontFistSlot" type="SpineSlotNode" parent="Spineboy"] +show_behind_parent = true +position = Vector2(-29.0298, -241.577) +rotation = 0.995187 +slot_name = "front-fist" + +[node name="TinySpineboy" type="SpineSprite" parent="Spineboy/FrontFistSlot"] +position = Vector2(-2.64624, -10.8111) +scale = Vector2(0.193389, 0.193389) +skeleton_data_res = ExtResource( "2" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 diff --git a/spine-godot/example-v4/examples/08-animation-player/animation-player.gd b/spine-godot/example-v4/examples/08-animation-player/animation-player.gd new file mode 100644 index 000000000..ac04783e9 --- /dev/null +++ b/spine-godot/example-v4/examples/08-animation-player/animation-player.gd @@ -0,0 +1,33 @@ +extends Node2D + +@onready var player = $AnimationPlayer +@onready var spineboy = $Spineboy + +var speed = 400; +var velocity_x = 0; + +func _ready(): + player.play("cutscene") + pass + +func _process(delta): + if (!player.is_playing()): + if Input.is_action_just_released("ui_left"): + spineboy.get_animation_state().set_animation("idle", true, 0) + velocity_x = 0 + + if Input.is_action_just_released("ui_right"): + spineboy.get_animation_state().set_animation("idle", true, 0) + velocity_x = 0 + + if (Input.is_action_just_pressed("ui_right")): + spineboy.get_animation_state().set_animation("run", true, 0) + spineboy.get_skeleton().set_scale_x(1) + velocity_x = 1 + + if Input.is_action_just_pressed("ui_left"): + spineboy.get_animation_state().set_animation("run", true, 0) + spineboy.get_skeleton().set_scale_x(-1) + velocity_x = -1 + + spineboy.position.x += velocity_x * speed * delta diff --git a/spine-godot/example-v4/examples/08-animation-player/animation-player.tscn b/spine-godot/example-v4/examples/08-animation-player/animation-player.tscn new file mode 100644 index 000000000..d0cf5249e --- /dev/null +++ b/spine-godot/example-v4/examples/08-animation-player/animation-player.tscn @@ -0,0 +1,1942 @@ +[gd_scene load_steps=68 format=3 uid="uid://dmddd1ll1y0bm"] + +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="1"] +[ext_resource type="Script" path="res://examples/08-animation-player/animation-player.gd" id="2"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/raptor/raptor-data.tres" id="3"] + +[sub_resource type="Animation" id="Animation_t6m4d"] +resource_name = "aim_looped" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["aim"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_njcku"] +resource_name = "aim" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["aim"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_uj85l"] +resource_name = "death_looped" +length = 4.9333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["death"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_irg42"] +resource_name = "death" +length = 4.9333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["death"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_u0h4m"] +resource_name = "hoverboard_looped" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["hoverboard"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_ksgd8"] +resource_name = "hoverboard" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["hoverboard"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_onrph"] +resource_name = "idle_looped" +length = 1.6667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["idle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_uq46m"] +resource_name = "idle" +length = 1.6667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["idle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_vm3do"] +resource_name = "idle-turn_looped" +length = 0.2667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["idle-turn"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_tlrtt"] +resource_name = "idle-turn" +length = 0.2667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["idle-turn"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_8gf4p"] +resource_name = "jump_looped" +length = 1.3333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["jump"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_e3mt7"] +resource_name = "jump" +length = 1.3333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["jump"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_q7d0d"] +resource_name = "portal_looped" +length = 3.1667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["portal"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_hu1qx"] +resource_name = "portal" +length = 3.1667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["portal"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_4qvwn"] +resource_name = "run_looped" +length = 0.6667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["run"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_rcbj7"] +resource_name = "run" +length = 0.6667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["run"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_xaopv"] +resource_name = "run-to-idle_looped" +length = 0.2667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["run-to-idle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_hhaj8"] +resource_name = "run-to-idle" +length = 0.2667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["run-to-idle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_2epiy"] +resource_name = "shoot_looped" +length = 0.6333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["shoot"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_xvf75"] +resource_name = "shoot" +length = 0.6333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["shoot"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_ailgk"] +resource_name = "walk_looped" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["walk"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_1ifml"] +resource_name = "walk" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["walk"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_13jvi"] +resource_name = "RESET" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [""] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_3juul"] +_data = { +"-- Empty --": SubResource( "Animation_13jvi" ), +"RESET": SubResource( "Animation_13jvi" ), +"aim": SubResource( "Animation_njcku" ), +"aim_looped": SubResource( "Animation_t6m4d" ), +"death": SubResource( "Animation_irg42" ), +"death_looped": SubResource( "Animation_uj85l" ), +"hoverboard": SubResource( "Animation_ksgd8" ), +"hoverboard_looped": SubResource( "Animation_u0h4m" ), +"idle": SubResource( "Animation_uq46m" ), +"idle-turn": SubResource( "Animation_tlrtt" ), +"idle-turn_looped": SubResource( "Animation_vm3do" ), +"idle_looped": SubResource( "Animation_onrph" ), +"jump": SubResource( "Animation_e3mt7" ), +"jump_looped": SubResource( "Animation_8gf4p" ), +"portal": SubResource( "Animation_hu1qx" ), +"portal_looped": SubResource( "Animation_q7d0d" ), +"run": SubResource( "Animation_rcbj7" ), +"run-to-idle": SubResource( "Animation_hhaj8" ), +"run-to-idle_looped": SubResource( "Animation_xaopv" ), +"run_looped": SubResource( "Animation_4qvwn" ), +"shoot": SubResource( "Animation_xvf75" ), +"shoot_looped": SubResource( "Animation_2epiy" ), +"walk": SubResource( "Animation_1ifml" ), +"walk_looped": SubResource( "Animation_ailgk" ) +} + +[sub_resource type="Animation" id="Animation_43jug"] +resource_name = "aim_looped" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["aim"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_npdlv"] +resource_name = "aim" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["aim"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_v5dry"] +resource_name = "death_looped" +length = 4.9333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["death"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_wthcu"] +resource_name = "death" +length = 4.9333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["death"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_0t4px"] +resource_name = "hoverboard_looped" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["hoverboard"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_cflga"] +resource_name = "hoverboard" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["hoverboard"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_4l5af"] +resource_name = "idle_looped" +length = 1.6667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["idle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_3kd2q"] +resource_name = "idle" +length = 1.6667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["idle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_pcovu"] +resource_name = "idle-turn_looped" +length = 0.2667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["idle-turn"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_ji8c3"] +resource_name = "idle-turn" +length = 0.2667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["idle-turn"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_hxqi7"] +resource_name = "jump_looped" +length = 1.3333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["jump"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_h822y"] +resource_name = "jump" +length = 1.3333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["jump"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_8f1h5"] +resource_name = "portal_looped" +length = 3.1667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["portal"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_i0wgj"] +resource_name = "portal" +length = 3.1667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["portal"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_0q41s"] +resource_name = "run_looped" +length = 0.6667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["run"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_og3lw"] +resource_name = "run" +length = 0.6667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["run"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_q7ndl"] +resource_name = "run-to-idle_looped" +length = 0.2667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["run-to-idle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_nxlcc"] +resource_name = "run-to-idle" +length = 0.2667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["run-to-idle"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_riqly"] +resource_name = "shoot_looped" +length = 0.6333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["shoot"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_e7tup"] +resource_name = "shoot" +length = 0.6333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["shoot"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_5q6ru"] +resource_name = "walk_looped" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["walk"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_rbpim"] +resource_name = "walk" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["walk"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_n4owa"] +resource_name = "RESET" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [""] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_weodw"] +_data = { +"-- Empty --": SubResource( "Animation_n4owa" ), +"RESET": SubResource( "Animation_n4owa" ), +"aim": SubResource( "Animation_npdlv" ), +"aim_looped": SubResource( "Animation_43jug" ), +"death": SubResource( "Animation_wthcu" ), +"death_looped": SubResource( "Animation_v5dry" ), +"hoverboard": SubResource( "Animation_cflga" ), +"hoverboard_looped": SubResource( "Animation_0t4px" ), +"idle": SubResource( "Animation_3kd2q" ), +"idle-turn": SubResource( "Animation_ji8c3" ), +"idle-turn_looped": SubResource( "Animation_pcovu" ), +"idle_looped": SubResource( "Animation_4l5af" ), +"jump": SubResource( "Animation_h822y" ), +"jump_looped": SubResource( "Animation_hxqi7" ), +"portal": SubResource( "Animation_i0wgj" ), +"portal_looped": SubResource( "Animation_8f1h5" ), +"run": SubResource( "Animation_og3lw" ), +"run-to-idle": SubResource( "Animation_nxlcc" ), +"run-to-idle_looped": SubResource( "Animation_q7ndl" ), +"run_looped": SubResource( "Animation_0q41s" ), +"shoot": SubResource( "Animation_e7tup" ), +"shoot_looped": SubResource( "Animation_riqly" ), +"walk": SubResource( "Animation_rbpim" ), +"walk_looped": SubResource( "Animation_5q6ru" ) +} + +[sub_resource type="Animation" id="Animation_g0fba"] +resource_name = "gun-grab_looped" +length = 0.666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["gun-grab"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_tnmwm"] +resource_name = "gun-grab" +length = 0.666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["gun-grab"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_scefx"] +resource_name = "gun-holster_looped" +length = 0.666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["gun-holster"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_6lq4v"] +resource_name = "gun-holster" +length = 0.666667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["gun-holster"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_b7ns0"] +resource_name = "jump_looped" +length = 1.53333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["jump"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_l4kgf"] +resource_name = "jump" +length = 1.53333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["jump"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_jt8r5"] +resource_name = "roar_looped" +length = 2.13333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["roar"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_wlr0r"] +resource_name = "roar" +length = 2.13333 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["roar"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_0e04p"] +resource_name = "walk_looped" +length = 1.26667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["walk"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [true] +} + +[sub_resource type="Animation" id="Animation_ysb1x"] +resource_name = "walk" +length = 1.26667 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": ["walk"] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="Animation" id="Animation_j5g3u"] +resource_name = "RESET" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [""] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [false] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_nir4m"] +_data = { +"-- Empty --": SubResource( "Animation_j5g3u" ), +"RESET": SubResource( "Animation_j5g3u" ), +"gun-grab": SubResource( "Animation_tnmwm" ), +"gun-grab_looped": SubResource( "Animation_g0fba" ), +"gun-holster": SubResource( "Animation_6lq4v" ), +"gun-holster_looped": SubResource( "Animation_scefx" ), +"jump": SubResource( "Animation_l4kgf" ), +"jump_looped": SubResource( "Animation_b7ns0" ), +"roar": SubResource( "Animation_wlr0r" ), +"roar_looped": SubResource( "Animation_jt8r5" ), +"walk": SubResource( "Animation_ysb1x" ), +"walk_looped": SubResource( "Animation_0e04p" ) +} + +[sub_resource type="Animation" id="25"] +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Spineboy:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(72.0001, 520)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Raptor:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1284, 520)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Spineboy/SpineAnimationTrack:mix_duration") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [-1.0] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Spineboy/SpineAnimationTrack:reverse") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [false] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Raptor/SpineAnimationTrack:mix_duration") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [-1.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Spineboy/SpineAnimationTrack:time_scale") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1.0] +} + +[sub_resource type="Animation" id="1"] +resource_name = "cutscene" +length = 10.0 +step = 0.02 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Spineboy:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 4, 10), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(72.0001, 520), Vector2(500, 520), Vector2(500, 520)] +} +tracks/1/type = "animation" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Spineboy/SpineAnimationTrack/Spineboy Track 0") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"clips": PackedStringArray("walk_looped", "idle", "death", "idle"), +"times": PackedFloat32Array(0, 4, 4.34, 8.86) +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Spineboy/SpineAnimationTrack2:mix_duration") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0.1] +} +tracks/3/type = "animation" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Spineboy/SpineAnimationTrack2/Spineboy Track 1") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"clips": PackedStringArray("-- Empty --", "aim", "-- Empty --"), +"times": PackedFloat32Array(0.14, 2.5, 3.94) +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Raptor:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 2.02, 3.7, 10), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Vector2(1284, 520), Vector2(1284, 520), Vector2(750, 520), Vector2(750, 520)] +} +tracks/5/type = "animation" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Raptor/SpineAnimationTrack/Raptor Track 0") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"clips": PackedStringArray("walk_looped", "roar_looped", "-- Empty --"), +"times": PackedFloat32Array(0.46, 3.7, 9.64) +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Spineboy/SpineAnimationTrack:mix_duration") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.2] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Raptor/SpineAnimationTrack:mix_duration") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.2] +} + +[sub_resource type="Animation" id="83"] +resource_name = "slow-moonwalk" +length = 5.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Spineboy:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(905, 565), Vector2(70, 565)] +} +tracks/1/type = "animation" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Spineboy/SpineAnimationTrack/Spineboy Track 0") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"clips": PackedStringArray("walk_looped"), +"times": PackedFloat32Array(0) +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Spineboy/SpineAnimationTrack:reverse") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [true] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Spineboy/SpineAnimationTrack:time_scale") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.5] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_3lgey"] +_data = { +"RESET": SubResource( "25" ), +"cutscene": SubResource( "1" ), +"slow-moonwalk": SubResource( "83" ) +} + +[node name="Node2D2" type="Node2D"] +script = ExtResource( "2" ) + +[node name="Spineboy" type="SpineSprite" parent="."] +position = Vector2(72.0001, 520) +scale = Vector2(0.323942, 0.323942) +skeleton_data_res = ExtResource( "1" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="SpineAnimationTrack" type="SpineAnimationTrack" parent="Spineboy"] +track_index = 0 +debug = true + +[node name="Spineboy Track 0" type="AnimationPlayer" parent="Spineboy/SpineAnimationTrack"] +libraries = { +"": SubResource( "AnimationLibrary_3juul" ) +} + +[node name="SpineAnimationTrack2" type="SpineAnimationTrack" parent="Spineboy"] +track_index = 1 +mix_duration = 0.1 +debug = true + +[node name="Spineboy Track 1" type="AnimationPlayer" parent="Spineboy/SpineAnimationTrack2"] +libraries = { +"": SubResource( "AnimationLibrary_weodw" ) +} + +[node name="Raptor" type="SpineSprite" parent="."] +position = Vector2(1284, 520) +scale = Vector2(-0.328761, 0.328761) +skeleton_data_res = ExtResource( "3" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="SpineAnimationTrack" type="SpineAnimationTrack" parent="Raptor"] +track_index = 0 + +[node name="Raptor Track 0" type="AnimationPlayer" parent="Raptor/SpineAnimationTrack"] +libraries = { +"": SubResource( "AnimationLibrary_nir4m" ) +} + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource( "AnimationLibrary_3lgey" ) +} diff --git a/spine-godot/example-v4/examples/09-custom-material/custom-material.tscn b/spine-godot/example-v4/examples/09-custom-material/custom-material.tscn new file mode 100644 index 000000000..5ef3dc06d --- /dev/null +++ b/spine-godot/example-v4/examples/09-custom-material/custom-material.tscn @@ -0,0 +1,43 @@ +[gd_scene load_steps=6 format=3 uid="uid://b4p2vn7bwm52a"] + +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="1"] + +[sub_resource type="Shader" id="1"] +code = "shader_type canvas_item; + +void fragment() { + COLOR = texture(TEXTURE, UV); + COLOR.r = 0.0; +}" + +[sub_resource type="ShaderMaterial" id="2"] +shader = SubResource( "1" ) + +[sub_resource type="Shader" id="3"] +code = "shader_type canvas_item; + +void fragment() { + COLOR = texture(TEXTURE, UV); + COLOR.b = 0.0; +}" + +[sub_resource type="ShaderMaterial" id="4"] +shader = SubResource( "3" ) + +[node name="Node2D" type="Node2D"] + +[node name="SpineSprite" type="SpineSprite" parent="."] +position = Vector2(501, 507) +scale = Vector2(0.546374, 0.546373) +skeleton_data_res = ExtResource( "1" ) +normal_material = SubResource( "2" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="GunSlot" type="SpineSlotNode" parent="SpineSprite"] +show_behind_parent = true +position = Vector2(40.8753, -276.036) +rotation = 0.837234 +slot_name = "gun" +normal_material = SubResource( "4" ) diff --git a/spine-godot/example-v4/examples/10-2d-lighting/2d-lighting.gd b/spine-godot/example-v4/examples/10-2d-lighting/2d-lighting.gd new file mode 100644 index 000000000..92540af3a --- /dev/null +++ b/spine-godot/example-v4/examples/10-2d-lighting/2d-lighting.gd @@ -0,0 +1,4 @@ +extends Node2D + +func _ready(): + $SpineSprite.get_animation_state().set_animation("walk"); diff --git a/spine-godot/example-v4/examples/10-2d-lighting/2d-lighting.tscn b/spine-godot/example-v4/examples/10-2d-lighting/2d-lighting.tscn new file mode 100644 index 000000000..296b04007 --- /dev/null +++ b/spine-godot/example-v4/examples/10-2d-lighting/2d-lighting.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=4 format=3 uid="uid://rt2llskmx7xm"] + +[ext_resource type="SpineSkeletonDataResource" path="res://assets/raptor/raptor-data.tres" id="1"] +[ext_resource type="Texture2D" uid="uid://cggfs567rn1ay" path="res://assets/raptor/light-sprite.png" id="2"] +[ext_resource type="Script" path="res://examples/10-2d-lighting/2d-lighting.gd" id="3"] + +[node name="Node2D" type="Node2D"] +script = ExtResource( "3" ) + +[node name="SpineSprite" type="SpineSprite" parent="."] +position = Vector2(576, 506) +scale = Vector2(0.458967, 0.458967) +skeleton_data_res = ExtResource( "1" ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="Light2D" type="PointLight2D" parent="."] +position = Vector2(822, 270) +scale = Vector2(1.51563, 1.51563) +color = Color(1, 0.0117647, 0.0117647, 1) +texture = ExtResource( "2" ) + +[node name="CanvasModulate" type="CanvasModulate" parent="."] +color = Color(0.145098, 0.0980392, 0.0980392, 1) diff --git a/spine-godot/example-v4/examples/11-bone-node/bone-node.gd b/spine-godot/example-v4/examples/11-bone-node/bone-node.gd new file mode 100644 index 000000000..a5d721a3a --- /dev/null +++ b/spine-godot/example-v4/examples/11-bone-node/bone-node.gd @@ -0,0 +1,19 @@ +extends Node2D + +@onready var spineboy = $SpineSprite +@onready var center_bone = $SpineSprite/HoverboardCenterBone +@onready var center_ray = $SpineSprite/HoverboardCenterBone/RayCast2D +@onready var target_bone = $SpineSprite/HoverboardTargetBone +@onready var target_ray = $SpineSprite/HoverboardTargetBone/RayCast2D + +func _ready(): + spineboy.get_animation_state().set_animation("hoverboard", true, 0) + +func _physics_process(delta): + if target_ray.is_colliding(): + target_bone.global_position.y = target_ray.get_collision_point().y - 50 + if center_ray.is_colliding(): + center_bone.global_position.y = center_ray.get_collision_point().y - 50 + + spineboy.global_position.x += delta * 150; + spineboy.global_position.y = center_bone.global_position.y diff --git a/spine-godot/example-v4/examples/11-bone-node/bone-node.tscn b/spine-godot/example-v4/examples/11-bone-node/bone-node.tscn new file mode 100644 index 000000000..8a7a337d1 --- /dev/null +++ b/spine-godot/example-v4/examples/11-bone-node/bone-node.tscn @@ -0,0 +1,47 @@ +[gd_scene load_steps=3 format=3 uid="uid://chrw4i0nksphn"] + +[ext_resource type="Script" path="res://examples/11-bone-node/bone-node.gd" id="1"] +[ext_resource type="SpineSkeletonDataResource" path="res://assets/spineboy/spineboy-data-res.tres" id="2"] + +[node name="Node2D" type="Node2D"] +script = ExtResource( "1" ) + +[node name="SpineSprite" type="SpineSprite" parent="."] +position = Vector2(8, 553) +scale = Vector2(0.278096, 0.278096) +skeleton_data_res = ExtResource( "2" ) +update_mode = 1 +preview_animation = "hoverboard" +preview_frame = true +preview_time = 0.0 + +[node name="HoverboardCenterBone" type="SpineBoneNode" parent="SpineSprite"] +show_behind_parent = true +bone_name = "hoverboard-controller" +bone_mode = 1 + +[node name="RayCast2D" type="RayCast2D" parent="SpineSprite/HoverboardCenterBone"] + +[node name="HoverboardTargetBone" type="SpineBoneNode" parent="SpineSprite"] +show_behind_parent = true +position = Vector2(262.499, 0) +rotation = -0.000872665 +bone_name = "board-ik" +bone_mode = 1 + +[node name="RayCast2D" type="RayCast2D" parent="SpineSprite/HoverboardTargetBone"] + +[node name="HipBone" type="SpineBoneNode" parent="SpineSprite"] +show_behind_parent = true +position = Vector2(0, -169.006) +rotation = -0.000872665 +bone_name = "hip" +bone_mode = 1 + +[node name="Polygon2D" type="Polygon2D" parent="."] +polygon = PackedVector2Array(0, 596, 309, 471, 516, 515, 762, 447, 984, 504, 1023, 505, 1024, 596) + +[node name="StaticBody2D" type="StaticBody2D" parent="Polygon2D"] + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Polygon2D/StaticBody2D"] +polygon = PackedVector2Array(3, 592, 304, 469, 516, 514, 762, 443, 984, 499, 1252, 498, 1280, 596) diff --git a/spine-godot/example-v4/icon.png b/spine-godot/example-v4/icon.png new file mode 100644 index 000000000..c98fbb601 Binary files /dev/null and b/spine-godot/example-v4/icon.png differ diff --git a/spine-godot/example-v4/icon.png.import b/spine-godot/example-v4/icon.png.import new file mode 100644 index 000000000..7bdb198b7 --- /dev/null +++ b/spine-godot/example-v4/icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://8ud5n2ywp5ba" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/spine-godot/example-v4/project.godot b/spine-godot/example-v4/project.godot new file mode 100644 index 000000000..e989f7857 --- /dev/null +++ b/spine-godot/example-v4/project.godot @@ -0,0 +1,35 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="spine-godot-examples" +run/main_scene="res://examples/08-animation-player/animation-player.tscn" +run/low_processor_mode=true +config/icon="res://icon.png" +config/features=PackedStringArray("4.0") + +[global] + +batch=false + +[physics] + +common/enable_pause_aware_picking=true + +[rendering] + +batching/parameters/max_join_item_commands=100 +batching/parameters/batch_buffer_size=65535 +batching/parameters/item_reordering_lookahead=100 +quality/driver/driver_name="GLES2" +vram_compression/import_etc=true +vram_compression/import_etc2=false +environment/default_environment="res://default_env.tres" diff --git a/spine-godot/example-v4/tests/batch-test.gd b/spine-godot/example-v4/tests/batch-test.gd new file mode 100644 index 000000000..ec463b6ef --- /dev/null +++ b/spine-godot/example-v4/tests/batch-test.gd @@ -0,0 +1,4 @@ +extends SpineSprite + +func _ready(): + get_animation_state().set_animation("walk", true) diff --git a/spine-godot/example-v4/tests/batch-test.tscn b/spine-godot/example-v4/tests/batch-test.tscn new file mode 100644 index 000000000..0d5ac3bcb --- /dev/null +++ b/spine-godot/example-v4/tests/batch-test.tscn @@ -0,0 +1,871 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=1] +[ext_resource path="res://tests/batch-test.gd" type="Script" id=2] + +[node name="Node2D" type="Node2D"] +rotation = -3.67884e-05 + +[node name="SpineSprite" type="SpineSprite" parent="."] +position = Vector2( 53.8037, 119.483 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite2" type="SpineSprite" parent="."] +position = Vector2( 111.488, 119.485 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite3" type="SpineSprite" parent="."] +position = Vector2( 164.678, 119.487 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = true +preview_time = 2.36477e-39 +script = ExtResource( 2 ) + +[node name="SpineSprite4" type="SpineSprite" parent="."] +position = Vector2( 217.119, 121.736 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = true +preview_time = 6.85235e-43 +script = ExtResource( 2 ) + +[node name="SpineSprite5" type="SpineSprite" parent="."] +position = Vector2( 277.051, 120.989 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite6" type="SpineSprite" parent="."] +position = Vector2( 337.733, 118.744 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite7" type="SpineSprite" parent="."] +position = Vector2( 403.658, 120.994 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite8" type="SpineSprite" parent="."] +position = Vector2( 464.34, 120.996 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite9" type="SpineSprite" parent="."] +position = Vector2( 525.021, 120.998 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 51.0 +script = ExtResource( 2 ) + +[node name="SpineSprite10" type="SpineSprite" parent="."] +position = Vector2( 589.448, 121.001 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite11" type="SpineSprite" parent="."] +position = Vector2( 649.381, 121.752 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite12" type="SpineSprite" parent="."] +position = Vector2( 709.313, 123.253 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite13" type="SpineSprite" parent="."] +position = Vector2( 769.245, 119.509 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite14" type="SpineSprite" parent="."] +position = Vector2( 830.676, 119.511 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite15" type="SpineSprite" parent="."] +position = Vector2( 892.106, 121.761 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite16" type="SpineSprite" parent="."] +position = Vector2( 953.537, 121.763 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite17" type="SpineSprite" parent="."] +position = Vector2( 56.0478, 207.883 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite18" type="SpineSprite" parent="."] +position = Vector2( 113.733, 207.885 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite19" type="SpineSprite" parent="."] +position = Vector2( 166.923, 207.887 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite20" type="SpineSprite" parent="."] +position = Vector2( 219.363, 210.136 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite21" type="SpineSprite" parent="."] +position = Vector2( 279.295, 209.389 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite22" type="SpineSprite" parent="."] +position = Vector2( 339.977, 207.144 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite23" type="SpineSprite" parent="."] +position = Vector2( 405.902, 209.394 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite24" type="SpineSprite" parent="."] +position = Vector2( 466.584, 209.396 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite25" type="SpineSprite" parent="."] +position = Vector2( 527.265, 209.399 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite26" type="SpineSprite" parent="."] +position = Vector2( 591.692, 209.401 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite27" type="SpineSprite" parent="."] +position = Vector2( 651.625, 210.152 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite28" type="SpineSprite" parent="."] +position = Vector2( 711.557, 211.653 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite29" type="SpineSprite" parent="."] +position = Vector2( 771.489, 207.909 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite30" type="SpineSprite" parent="."] +position = Vector2( 832.92, 207.911 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite31" type="SpineSprite" parent="."] +position = Vector2( 894.351, 210.161 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite32" type="SpineSprite" parent="."] +position = Vector2( 955.781, 210.163 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite33" type="SpineSprite" parent="."] +position = Vector2( 60.5394, 300.778 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite34" type="SpineSprite" parent="."] +position = Vector2( 118.224, 300.78 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite35" type="SpineSprite" parent="."] +position = Vector2( 171.414, 300.782 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite36" type="SpineSprite" parent="."] +position = Vector2( 223.855, 303.032 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite37" type="SpineSprite" parent="."] +position = Vector2( 283.787, 302.285 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite38" type="SpineSprite" parent="."] +position = Vector2( 344.468, 300.039 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite39" type="SpineSprite" parent="."] +position = Vector2( 410.394, 302.289 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite40" type="SpineSprite" parent="."] +position = Vector2( 471.075, 302.292 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite41" type="SpineSprite" parent="."] +position = Vector2( 531.757, 302.294 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite42" type="SpineSprite" parent="."] +position = Vector2( 596.184, 302.296 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite43" type="SpineSprite" parent="."] +position = Vector2( 656.116, 303.047 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite44" type="SpineSprite" parent="."] +position = Vector2( 716.048, 304.548 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite45" type="SpineSprite" parent="."] +position = Vector2( 775.981, 300.804 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite46" type="SpineSprite" parent="."] +position = Vector2( 837.411, 300.807 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite47" type="SpineSprite" parent="."] +position = Vector2( 898.842, 303.056 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite48" type="SpineSprite" parent="."] +position = Vector2( 960.273, 303.059 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite49" type="SpineSprite" parent="."] +position = Vector2( 60.5361, 389.178 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite50" type="SpineSprite" parent="."] +position = Vector2( 118.221, 389.18 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite51" type="SpineSprite" parent="."] +position = Vector2( 171.411, 389.182 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite52" type="SpineSprite" parent="."] +position = Vector2( 223.851, 391.432 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite53" type="SpineSprite" parent="."] +position = Vector2( 283.784, 390.685 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite54" type="SpineSprite" parent="."] +position = Vector2( 344.465, 388.44 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite55" type="SpineSprite" parent="."] +position = Vector2( 410.391, 390.689 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite56" type="SpineSprite" parent="."] +position = Vector2( 471.072, 390.692 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite57" type="SpineSprite" parent="."] +position = Vector2( 531.753, 390.694 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite58" type="SpineSprite" parent="."] +position = Vector2( 596.181, 390.696 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite59" type="SpineSprite" parent="."] +position = Vector2( 656.113, 391.448 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite60" type="SpineSprite" parent="."] +position = Vector2( 716.045, 392.948 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite61" type="SpineSprite" parent="."] +position = Vector2( 775.978, 389.204 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite62" type="SpineSprite" parent="."] +position = Vector2( 837.408, 389.207 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite63" type="SpineSprite" parent="."] +position = Vector2( 898.839, 391.456 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite64" type="SpineSprite" parent="."] +position = Vector2( 960.269, 391.459 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite65" type="SpineSprite" parent="."] +position = Vector2( 62.0311, 477.578 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite66" type="SpineSprite" parent="."] +position = Vector2( 119.716, 477.581 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite67" type="SpineSprite" parent="."] +position = Vector2( 172.906, 477.583 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite68" type="SpineSprite" parent="."] +position = Vector2( 225.346, 479.832 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite69" type="SpineSprite" parent="."] +position = Vector2( 285.279, 479.085 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite70" type="SpineSprite" parent="."] +position = Vector2( 345.96, 476.84 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite71" type="SpineSprite" parent="."] +position = Vector2( 411.886, 479.09 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite72" type="SpineSprite" parent="."] +position = Vector2( 472.567, 479.092 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite73" type="SpineSprite" parent="."] +position = Vector2( 533.248, 479.094 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite74" type="SpineSprite" parent="."] +position = Vector2( 597.676, 479.096 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite75" type="SpineSprite" parent="."] +position = Vector2( 657.608, 479.848 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite76" type="SpineSprite" parent="."] +position = Vector2( 717.54, 481.348 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite77" type="SpineSprite" parent="."] +position = Vector2( 777.473, 477.605 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite78" type="SpineSprite" parent="."] +position = Vector2( 838.903, 477.607 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite79" type="SpineSprite" parent="."] +position = Vector2( 900.334, 479.857 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite80" type="SpineSprite" parent="."] +position = Vector2( 961.765, 479.859 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite81" type="SpineSprite" parent="."] +position = Vector2( 66.5229, 562.233 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite82" type="SpineSprite" parent="."] +position = Vector2( 124.208, 562.235 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite83" type="SpineSprite" parent="."] +position = Vector2( 177.398, 562.237 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite84" type="SpineSprite" parent="."] +position = Vector2( 229.838, 564.486 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite85" type="SpineSprite" parent="."] +position = Vector2( 289.77, 563.74 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite86" type="SpineSprite" parent="."] +position = Vector2( 350.452, 561.494 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite87" type="SpineSprite" parent="."] +position = Vector2( 416.377, 563.744 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite88" type="SpineSprite" parent="."] +position = Vector2( 477.059, 563.746 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite89" type="SpineSprite" parent="."] +position = Vector2( 537.74, 563.749 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite90" type="SpineSprite" parent="."] +position = Vector2( 602.167, 563.751 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite91" type="SpineSprite" parent="."] +position = Vector2( 662.1, 564.502 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite92" type="SpineSprite" parent="."] +position = Vector2( 722.032, 566.003 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite93" type="SpineSprite" parent="."] +position = Vector2( 781.964, 562.259 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite94" type="SpineSprite" parent="."] +position = Vector2( 843.395, 562.261 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite95" type="SpineSprite" parent="."] +position = Vector2( 904.826, 564.511 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite96" type="SpineSprite" parent="."] +position = Vector2( 966.256, 564.513 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) diff --git a/spine-godot/example-v4/tests/ragdoll.tscn b/spine-godot/example-v4/tests/ragdoll.tscn new file mode 100644 index 000000000..9f9abfb11 --- /dev/null +++ b/spine-godot/example-v4/tests/ragdoll.tscn @@ -0,0 +1,53 @@ +[gd_scene format=2] + +[node name="Node2D" type="Node2D"] + +[node name="A" type="RigidBody2D" parent="."] +position = Vector2( 483, 158 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="A"] +position = Vector2( 6, 17 ) +polygon = PoolVector2Array( -38, 6, 28, 6, 28, -45, -40, -45 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="B" type="RigidBody2D" parent="."] +position = Vector2( 484, 228 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="B"] +position = Vector2( 6, 17 ) +polygon = PoolVector2Array( -38, 6, 28, 6, 28, -45, -40, -45 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="C" type="RigidBody2D" parent="."] +position = Vector2( 485, 296 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="C"] +position = Vector2( 6, 17 ) +polygon = PoolVector2Array( -38, 6, 28, 6, 28, -45, -40, -45 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="PinJoint2D" type="PinJoint2D" parent="."] +position = Vector2( 484, 189 ) +node_a = NodePath("../A") +node_b = NodePath("../B") +bias = 0.9 +disable_collision = false + +[node name="PinJoint2D2" type="PinJoint2D" parent="."] +position = Vector2( 486, 257 ) +node_a = NodePath("../B") +node_b = NodePath("../C") +bias = 0.9 +disable_collision = false + +[node name="Ground" type="StaticBody2D" parent="."] +position = Vector2( 489, 478 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Ground"] +polygon = PoolVector2Array( -116, -4, 128, -100, 204, 34, -156, 48 ) diff --git a/spine-godot/example-v4/tests/transforms.tscn b/spine-godot/example-v4/tests/transforms.tscn new file mode 100644 index 000000000..faa212623 --- /dev/null +++ b/spine-godot/example-v4/tests/transforms.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=1] +[ext_resource path="res://icon.png" type="Texture" id=2] + +[node name="Node2D" type="Node2D"] + +[node name="SpineSprite" type="SpineSprite" parent="."] +position = Vector2( 459.397, 501.236 ) +scale = Vector2( 0.742335, 0.742335 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "aim" +preview_frame = true +preview_time = 0.0 + +[node name="SpineBoneNode" type="SpineBoneNode" parent="SpineSprite"] +position = Vector2( 40.8752, -276.036 ) +rotation = 0.837234 +bone_name = "gun" +bone_mode = 1 +enabled = false +color = Color( 0, 1, 0.0627451, 0.466667 ) + +[node name="Sprite" type="Sprite" parent="SpineSprite/SpineBoneNode"] +visible = false +texture = ExtResource( 2 ) diff --git a/spine-godot/example-v4/tests/unit-tests.gd b/spine-godot/example-v4/tests/unit-tests.gd new file mode 100644 index 000000000..9a48ab841 --- /dev/null +++ b/spine-godot/example-v4/tests/unit-tests.gd @@ -0,0 +1,39 @@ +extends SpineSprite + +func test_spine_animation(): + var walkAnim: SpineAnimation = get_skeleton().get_data().find_animation("walk") + assert(walkAnim.get_name() == "walk") + var duration = walkAnim.get_duration() + walkAnim.set_duration(duration + 1) + assert(walkAnim.get_duration() == duration + 1) + assert(walkAnim.get_timelines().size() == 39) + var timeline: SpineTimeline = walkAnim.get_timelines()[0] + var propertyIds = timeline.get_property_ids() + assert(walkAnim.has_timeline(propertyIds)) + assert(!walkAnim.has_timeline([0])) + +func test_spine_timeline(): + var walkAnim: SpineAnimation = get_skeleton().get_data().find_animation("walk") + var timeline: SpineTimeline = walkAnim.get_timelines()[0] + assert(timeline.get_duration() == 1) + assert(timeline.get_property_ids() == [4294967300]) + assert(timeline.get_type() == "RotateTimeline") + +func test_spine_object_invalidation(): + var skeleton_data = get_skeleton().get_data() + var bone_data = skeleton_data.find_bone("gun"); + var old_bone_data_x = bone_data.get_x(); + var bone = get_skeleton().find_bone("gun") + var old_bone_x = bone.get_x() + skeleton_data_res = null + assert(old_bone_x != bone.get_x()) + assert(old_bone_data_x == bone_data.get_x()) + skeleton_data.atlas_res = null; + assert(old_bone_data_x != bone_data.get_x()) + +func _ready(): + + test_spine_animation() + test_spine_timeline() + test_spine_object_invalidation() + print("All tests passed") diff --git a/spine-godot/example-v4/tests/unit-tests.tscn b/spine-godot/example-v4/tests/unit-tests.tscn new file mode 100644 index 000000000..d7c4a3193 --- /dev/null +++ b/spine-godot/example-v4/tests/unit-tests.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://tests/unit-tests.gd" type="Script" id=1] +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=2] + +[node name="Node2D" type="Node2D"] +position = Vector2( 496.659, 431.634 ) +scale = Vector2( 0.7, 0.7 ) + +[node name="SpineSprite" type="SpineSprite" parent="."] +skeleton_data_res = ExtResource( 2 ) +script = ExtResource( 1 ) diff --git a/spine-godot/example/assets/footstep.ogg b/spine-godot/example/assets/footstep.ogg new file mode 100644 index 000000000..0e1468d8c Binary files /dev/null and b/spine-godot/example/assets/footstep.ogg differ diff --git a/spine-godot/example/assets/footstep.ogg.import b/spine-godot/example/assets/footstep.ogg.import new file mode 100644 index 000000000..f6e4d12a3 --- /dev/null +++ b/spine-godot/example/assets/footstep.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/footstep.ogg-789c3f1e3c4e0ca3bebcb13f1160f623.oggstr" + +[deps] + +source_file="res://assets/footstep.ogg" +dest_files=[ "res://.import/footstep.ogg-789c3f1e3c4e0ca3bebcb13f1160f623.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/spine-godot/example/assets/mix-and-match/mix-and-match-data.tres b/spine-godot/example/assets/mix-and-match/mix-and-match-data.tres new file mode 100644 index 000000000..691b54067 --- /dev/null +++ b/spine-godot/example/assets/mix-and-match/mix-and-match-data.tres @@ -0,0 +1,10 @@ +[gd_resource type="SpineSkeletonDataResource" load_steps=3 format=2] + +[ext_resource path="res://assets/mix-and-match/mix-and-match.atlas" type="SpineAtlasResource" id=1] +[ext_resource path="res://assets/mix-and-match/mix-and-match-pro.json" type="SpineSkeletonFileResource" id=2] + +[resource] +atlas_res = ExtResource( 1 ) +skeleton_file_res = ExtResource( 2 ) +animations = null +skins = null diff --git a/spine-godot/example/assets/mix-and-match/mix-and-match-pro.json b/spine-godot/example/assets/mix-and-match/mix-and-match-pro.json new file mode 100644 index 000000000..9f27b879a --- /dev/null +++ b/spine-godot/example/assets/mix-and-match/mix-and-match-pro.json @@ -0,0 +1,8001 @@ +{ +"skeleton": { + "hash": "5bSWDwjOkqw", + "spine": "4.1.23-beta", + "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-back-front", "bag-flap", "bag-strap-front", "bag-back-down", "bag-strap-back", "bag", "bag-control" ], + "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-up", "cape-front-rotator", "cape-blue-control", "cape-blue-down-middle", "cape-blue-middle-back", "cape-blue-middle-front", "cape-blue-up-front", "cape-back-rotator", "cape-blue-down-back", "cape-blue-down-front", "cape-blue-down", "cape-blue-up-back" ], + "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-red-front-inside", "cape-red-front-outside", "cape-front-rotator", "cape-red-back-outside", "cape-back-rotator", "cape-red-back-inside" ], + "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": [ "pompom-control", "hat", "hat-control", "hat-base" ], + "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": [ "pompom-control", "hat", "hat-control", "hat-base" ], + "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-leg-down-back", "dress-control-leg-up-back", "sleeve-control-front", "dress-control-leg-down-front", "sleeve-control-back", "dress-control-middle", "dress-control-foot-back", "dress-control-foot-front", "dress-control-leg-up-front" ], + "transform": [ "leg-down-front", "leg-up", "leg-down-back", "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-front-down", "skirt-control-up", "skirt-control-back-down", "skirt-control", "skirt-control-front", "skirt-control-back", "skirt-control-middle" ], + "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", "pompom-control", "hat", "zip-boy", "hat-control", "backpack", "backpack-control" ], + "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": [ "bag-back-front", "bag-flap", "hair-strand-back-1", "hair-strand-back-3", "hat", "pompom-control", "zip-girl", "bag-strap-front", "hair-holder-front", "scarf-back", "bag-back-down", "hat-control", "bag-strap-back", "hair-strand-front-2", "hair-strand-front-3", "hair-holder-back", "bag", "hair-strand-front-4", "bag-control", "hair-strand-front-1", "hair-strand-back-2", "hat-base" ], + "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": [ "cape-blue-up", "dress-control-leg-up-front", "dress-control-leg-down-back", "sleeve-control-front", "dress-control-leg-up-back", "cape-front-rotator", "cape-blue-control", "cape-blue-down-middle", "cape-blue-middle-back", "cape-blue-middle-front", "dress-control-leg-down-front", "dress-control-middle", "sleeve-control-back", "cape-blue-up-front", "cape-back-rotator", "cape-blue-down-back", "cape-blue-down-front", "dress-control-foot-back", "cape-blue-down", "dress-control-foot-front", "cape-blue-up-back" ], + "transform": [ "leg-down-front", "leg-up", "leg-down-back", "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-red-front-inside", "skirt-control-front-down", "cape-red-front-outside", "cape-front-rotator", "skirt-control-back-down", "skirt-control-up", "skirt-rotation-back", "skirt-control", "cape-red-back-outside", "cape-back-rotator", "skirt-rotation-front", "skirt-control-middle", "skirt-control-front", "skirt-control-back", "cape-red-back-inside" ], + "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-1", "hair-strand-back-3", "hair-holder-front", "scarf-back", "hair-strand-front-2", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-1", "hair-strand-front-4", "hair-strand-back-2" ], + "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-godot/example/assets/mix-and-match/mix-and-match-pro.json.import b/spine-godot/example/assets/mix-and-match/mix-and-match-pro.json.import new file mode 100644 index 000000000..0d81a2f6a --- /dev/null +++ b/spine-godot/example/assets/mix-and-match/mix-and-match-pro.json.import @@ -0,0 +1,13 @@ +[remap] + +importer="spine.json" +type="SpineSkeletonFileResource" +path="res://.import/mix-and-match-pro.json-57325a5014e6fd56fc4a86824bc458ea.spjson" + +[deps] + +source_file="res://assets/mix-and-match/mix-and-match-pro.json" +dest_files=[ "res://.import/mix-and-match-pro.json-57325a5014e6fd56fc4a86824bc458ea.spjson" ] + +[params] + diff --git a/spine-godot/example/assets/mix-and-match/mix-and-match.atlas b/spine-godot/example/assets/mix-and-match/mix-and-match.atlas new file mode 100644 index 000000000..3cab05d5e --- /dev/null +++ b/spine-godot/example/assets/mix-and-match/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-godot/example/assets/mix-and-match/mix-and-match.atlas.import b/spine-godot/example/assets/mix-and-match/mix-and-match.atlas.import new file mode 100644 index 000000000..602678dd4 --- /dev/null +++ b/spine-godot/example/assets/mix-and-match/mix-and-match.atlas.import @@ -0,0 +1,14 @@ +[remap] + +importer="spine.atlas" +type="SpineAtlasResource" +path="res://.import/mix-and-match.atlas-3d349b543ecdcc01fb29033adaef0841.spatlas" + +[deps] + +source_file="res://assets/mix-and-match/mix-and-match.atlas" +dest_files=[ "res://.import/mix-and-match.atlas-3d349b543ecdcc01fb29033adaef0841.spatlas" ] + +[params] + +normal_map_prefix="n" diff --git a/spine-godot/example/assets/mix-and-match/mix-and-match.png b/spine-godot/example/assets/mix-and-match/mix-and-match.png new file mode 100644 index 000000000..441cd2a81 Binary files /dev/null and b/spine-godot/example/assets/mix-and-match/mix-and-match.png differ diff --git a/spine-godot/example/assets/mix-and-match/mix-and-match.png.import b/spine-godot/example/assets/mix-and-match/mix-and-match.png.import new file mode 100644 index 000000000..5aed4962f --- /dev/null +++ b/spine-godot/example/assets/mix-and-match/mix-and-match.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/mix-and-match.png-c2d8e28d9f2efc380ff8b95a22dadcc3.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/mix-and-match/mix-and-match.png" +dest_files=[ "res://.import/mix-and-match.png-c2d8e28d9f2efc380ff8b95a22dadcc3.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/spine-godot/example/assets/raggedyspineboy/Raggedy Spineboy.atlas b/spine-godot/example/assets/raggedyspineboy/Raggedy Spineboy.atlas new file mode 100644 index 000000000..792c6867e --- /dev/null +++ b/spine-godot/example/assets/raggedyspineboy/Raggedy Spineboy.atlas @@ -0,0 +1,16 @@ +Raggedy Spineboy.png + size: 256, 256 + filter: Linear, Linear + pma: true +arm + bounds: 2, 140, 71, 75 + rotate: 90 +head + bounds: 2, 2, 136, 187 + rotate: 90 +leg + bounds: 2, 213, 36, 99 + rotate: 90 +torso + bounds: 103, 187, 62, 95 + rotate: 90 diff --git a/spine-godot/example/assets/raggedyspineboy/Raggedy Spineboy.atlas.import b/spine-godot/example/assets/raggedyspineboy/Raggedy Spineboy.atlas.import new file mode 100644 index 000000000..d19f92256 --- /dev/null +++ b/spine-godot/example/assets/raggedyspineboy/Raggedy Spineboy.atlas.import @@ -0,0 +1,14 @@ +[remap] + +importer="spine.atlas" +type="SpineAtlasResource" +path="res://.import/Raggedy Spineboy.atlas-07f7c6b30431397bcf472b18d48851e0.spatlas" + +[deps] + +source_file="res://assets/raggedyspineboy/Raggedy Spineboy.atlas" +dest_files=[ "res://.import/Raggedy Spineboy.atlas-07f7c6b30431397bcf472b18d48851e0.spatlas" ] + +[params] + +normal_map_prefix="n" diff --git a/spine-godot/example/assets/raggedyspineboy/Raggedy Spineboy.png b/spine-godot/example/assets/raggedyspineboy/Raggedy Spineboy.png new file mode 100644 index 000000000..337fbc5a2 Binary files /dev/null and b/spine-godot/example/assets/raggedyspineboy/Raggedy Spineboy.png differ diff --git a/spine-godot/example/assets/raggedyspineboy/Raggedy Spineboy.png.import b/spine-godot/example/assets/raggedyspineboy/Raggedy Spineboy.png.import new file mode 100644 index 000000000..d462184f3 --- /dev/null +++ b/spine-godot/example/assets/raggedyspineboy/Raggedy Spineboy.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Raggedy Spineboy.png-8982b59aad5b612b7ed1a5da8b447d00.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/raggedyspineboy/Raggedy Spineboy.png" +dest_files=[ "res://.import/Raggedy Spineboy.png-8982b59aad5b612b7ed1a5da8b447d00.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/spine-godot/example/assets/raggedyspineboy/raggedy spineboy-res.tres b/spine-godot/example/assets/raggedyspineboy/raggedy spineboy-res.tres new file mode 100644 index 000000000..0b47cd648 --- /dev/null +++ b/spine-godot/example/assets/raggedyspineboy/raggedy spineboy-res.tres @@ -0,0 +1,8 @@ +[gd_resource type="SpineSkeletonDataResource" load_steps=3 format=2] + +[ext_resource path="res://assets/raggedyspineboy/Raggedy Spineboy.atlas" type="SpineAtlasResource" id=1] +[ext_resource path="res://assets/raggedyspineboy/raggedy spineboy.json" type="SpineSkeletonFileResource" id=2] + +[resource] +atlas_res = ExtResource( 1 ) +skeleton_file_res = ExtResource( 2 ) diff --git a/spine-godot/example/assets/raggedyspineboy/raggedy spineboy.json b/spine-godot/example/assets/raggedyspineboy/raggedy spineboy.json new file mode 100644 index 000000000..ece22dd22 --- /dev/null +++ b/spine-godot/example/assets/raggedyspineboy/raggedy spineboy.json @@ -0,0 +1,304 @@ +{ +"skeleton": { + "hash": "ukmbgK+14T0", + "spine": "4.1.23-beta", + "x": -78.45, + "y": -9.66, + "width": 157.48, + "height": 364.98, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { "name": "hip", "parent": "root", "x": -0.79, "y": 82.38 }, + { "name": "abdomen", "parent": "hip", "length": 33.5, "rotation": 89.55, "y": -0.1 }, + { "name": "chest", "parent": "abdomen", "length": 29.58, "x": 38.08, "y": 0.73 }, + { "name": "L-arm", "parent": "chest", "length": 32.68, "rotation": -121.23, "x": 24.64, "y": -16.69 }, + { "name": "L-thigh", "parent": "hip", "length": 29.76, "rotation": -81.94, "x": 17.32, "y": -5.2 }, + { "name": "L-foot", "parent": "L-thigh", "length": 37.25, "rotation": -6.29, "x": 37.36, "y": -1.79 }, + { "name": "L-forearm", "parent": "L-arm", "length": 33.69, "rotation": -12.09, "x": 39.1, "y": -2.35 }, + { "name": "R-arm", "parent": "chest", "length": 36.76, "rotation": 133.38, "x": 26, "y": 13.63 }, + { "name": "R-thigh", "parent": "hip", "length": 29.49, "rotation": -93.16, "x": -18.19, "y": -6.06 }, + { "name": "R-foot", "parent": "R-thigh", "length": 39.99, "rotation": -1.8, "x": 36.41, "y": 0.27 }, + { "name": "R-forearm", "parent": "R-arm", "length": 36.13, "rotation": 2.73, "x": 41.66, "y": 0.28 }, + { "name": "head", "parent": "chest", "length": 94.23, "rotation": -2.25, "x": 41.02, "y": -0.11 }, + { "name": "scalp", "parent": "head", "length": 31.95, "rotation": -29.89, "x": 129.34, "y": 15.1 }, + { "name": "hair1", "parent": "scalp", "length": 23.01, "rotation": 68.49, "x": 36.51, "y": 4.13 }, + { "name": "hair2", "parent": "hair1", "length": 23.5, "rotation": 59.56, "x": 29.03, "y": 1.58 } +], +"slots": [ + { "name": "R-arm", "bone": "R-arm", "attachment": "arm" }, + { "name": "L-arm", "bone": "L-arm", "attachment": "arm" }, + { "name": "L-leg", "bone": "L-thigh", "attachment": "leg" }, + { "name": "R-leg", "bone": "R-thigh", "attachment": "leg" }, + { "name": "torso", "bone": "abdomen", "attachment": "torso" }, + { "name": "head", "bone": "head", "attachment": "head" } +], +"skins": [ + { + "name": "default", + "attachments": { + "head": { + "head": { + "type": "mesh", + "uvs": [ 0.60755, 0.01864, 0.64146, 0.03355, 0.70227, 0.06028, 0.76687, 0.08869, 0.80696, 0.14524, 0.84158, 0.19407, 1, 0.41294, 1, 0.78562, 0.67349, 1, 0.38214, 1, 0.13935, 0.8937, 0.07949, 0.78808, 0.05899, 0.7519, 0, 0.64781, 0, 0.40213, 0.15055, 0.27784, 0.25632, 0.21734, 0.28424, 0.20137, 0.31117, 0.18597, 0.32034, 0.16739, 0.32984, 0.14814, 0.3317, 0.12798, 0.33358, 0.1076, 0.29623, 0.08869, 0.21779, 0.06978, 0.2514, 0.03195, 0.32659, 0.01699, 0.37521, 0.00732, 0.41202, 0, 0.45684, 0, 0.49046, 0, 0.53155, 0, 0.56517, 0, 0.55023, 0.1049, 0.46058, 0.06437, 0.38587, 0.05086, 0.31117, 0.04816, 0.54649, 0.17516, 0.35973, 0.28865, 0.14308, 0.41294, 0.13188, 0.57777, 0.24767, 0.43186, 0.43817, 0.37511, 0.59878, 0.3616, 0.78181, 0.43726, 0.89761, 0.53994, 0.87616, 0.37787 ], + "triangles": [ 36, 25, 26, 35, 27, 28, 23, 25, 36, 24, 25, 23, 26, 35, 36, 35, 26, 27, 22, 36, 35, 23, 36, 22, 28, 29, 34, 35, 28, 34, 21, 35, 34, 35, 21, 22, 37, 20, 34, 37, 38, 20, 19, 20, 38, 18, 19, 38, 17, 18, 38, 2, 4, 37, 4, 2, 3, 43, 4, 5, 43, 37, 4, 42, 38, 37, 43, 42, 37, 6, 46, 5, 44, 43, 5, 39, 14, 15, 41, 15, 16, 39, 15, 41, 16, 17, 38, 41, 16, 38, 41, 38, 42, 46, 44, 5, 45, 46, 6, 44, 46, 45, 40, 14, 39, 40, 39, 41, 13, 14, 40, 12, 13, 40, 45, 6, 7, 11, 12, 40, 9, 10, 40, 11, 40, 10, 9, 41, 42, 9, 40, 41, 8, 9, 42, 42, 43, 8, 44, 8, 43, 8, 44, 45, 8, 45, 7, 34, 29, 30, 33, 31, 32, 33, 32, 0, 31, 34, 30, 34, 20, 21, 31, 33, 34, 37, 34, 33, 1, 33, 0, 2, 33, 1, 33, 2, 37 ], + "vertices": [ 1, 14, 17.04, -22.66, 1, 3, 14, 11.42, -25.02, 0.97438, 12, 187.6, -11.93, 0.00182, 13, 63.98, 5.58, 0.02381, 2, 14, 1.36, -29.25, 0.37005, 12, 182.37, -21.52, 0.62995, 3, 14, -9.34, -33.75, 0.09775, 12, 176.82, -31.71, 0.82289, 13, 64.49, -16.93, 0.07936, 3, 14, -22.66, -31.7, 0.05494, 12, 165.13, -38.42, 0.86351, 13, 57.7, -28.58, 0.08156, 3, 14, -34.17, -29.93, 0.01796, 12, 155.03, -44.22, 0.89858, 13, 51.83, -38.64, 0.08345, 1, 12, 109.81, -70.7, 1, 1, 12, 30.84, -74.45, 1, 1, 12, -16.96, -26.55, 1, 1, 12, -19.08, 18.11, 1, 1, 12, 1.68, 56.4, 1, 1, 12, 23.63, 66.63, 1, 1, 12, 31.14, 70.14, 1, 1, 12, 52.77, 80.23, 1, 2, 12, 104.83, 82.69, 0.99074, 13, -54.93, 46.39, 0.00926, 3, 12, 132.26, 60.87, 0.88784, 13, -20.27, 41.13, 0.11168, 15, 48.07, 46.13, 4.7E-4, 4, 14, 14.49, 45.72, 0.00833, 12, 145.85, 45.26, 0.85196, 13, -0.71, 34.37, 0.12365, 15, 30.69, 34.9, 0.01605, 4, 14, 14.72, 40.26, 0.01053, 12, 149.44, 41.14, 0.84249, 13, 4.45, 32.59, 0.12681, 15, 26.1, 31.94, 0.02016, 4, 14, 14.94, 35, 0.01266, 12, 152.9, 37.17, 0.83336, 13, 9.43, 30.87, 0.12986, 15, 21.68, 29.08, 0.02412, 4, 14, 17.31, 31.55, 0.05833, 12, 156.9, 35.95, 0.60487, 13, 13.51, 31.8, 0.21603, 15, 19.9, 25.29, 0.12077, 4, 14, 19.76, 27.97, 0.10569, 12, 161.05, 34.68, 0.368, 13, 17.74, 32.78, 0.30535, 15, 18.06, 21.36, 0.22096, 4, 14, 23.06, 25.24, 0.1279, 12, 165.34, 34.6, 0.18497, 13, 21.49, 34.84, 0.23674, 15, 17.37, 17.13, 0.45039, 3, 14, 26.39, 22.47, 0.15034, 13, 25.29, 36.92, 0.16741, 15, 16.67, 12.86, 0.68225, 3, 14, 33.01, 24.76, 0.02128, 13, 25.58, 43.92, 0.03309, 15, 22, 8.32, 0.94563, 1, 15, 33.6, 3.18, 1, 1, 15, 27.7, -4.32, 1, 1, 15, 15.91, -6.38, 1, 1, 15, 8.29, -7.71, 1, 1, 15, 2.52, -8.72, 1, 2, 14, 33.8, -6.24, 0.33703, 15, -4.33, -8.07, 0.66297, 2, 14, 30.77, -10.42, 0.58778, 15, -9.46, -7.58, 0.41222, 2, 14, 27.08, -15.53, 0.81447, 15, -15.74, -6.98, 0.18553, 2, 14, 24.05, -19.7, 0.97838, 15, -20.88, -6.49, 0.02162, 1, 14, 7.37, -4.8, 1, 1, 14, 22.4, 1.3, 1, 1, 15, 7.54, 1.64, 1, 3, 14, 38.63, 17.86, 0.0046, 13, 34.06, 46.62, 0.01618, 15, 18.9, -0.03, 0.97922, 1, 13, 30.82, 1.68, 1, 3, 14, -7.07, 41.74, 7.0E-5, 12, 131.49, 28.69, 0.99828, 15, 16.34, 51.47, 0.00165, 1, 12, 103.58, 60.65, 1, 1, 12, 68.57, 60.72, 1, 1, 12, 100.33, 44.43, 1, 1, 12, 113.74, 15.8, 1, 1, 12, 117.77, -8.69, 1, 1, 12, 103.07, -37.5, 1, 1, 12, 82.15, -56.28, 1, 3, 14, -68.87, -11.37, 0.00371, 12, 116.34, -51.37, 0.97904, 13, 21.84, -64.11, 0.01725 ], + "hull": 33, + "edges": [ 16, 14, 16, 18, 18, 20, 26, 28, 28, 30, 44, 46, 46, 48, 48, 50, 14, 12, 10, 12, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 2, 0, 0, 64, 2, 4, 4, 6, 20, 22, 22, 24, 24, 26, 80, 82, 82, 84, 84, 86, 86, 88, 88, 90, 90, 12, 80, 26, 34, 36, 30, 32, 32, 34, 36, 38, 38, 40, 40, 42, 42, 44, 12, 92, 6, 8, 8, 10 ], + "width": 136, + "height": 187 + } + }, + "L-arm": { + "arm": { + "type": "mesh", + "uvs": [ 1, 0.16418, 0.90368, 0.30178, 0.80735, 0.43938, 0.75345, 0.50664, 0.71536, 0.55417, 0.66561, 0.61626, 0.63234, 0.65778, 0.59417, 0.7054, 0.45366, 0.8527, 0.31316, 1, 0.15658, 1, 0, 1, 0, 0.71458, 0.13235, 0.59074, 0.26471, 0.4669, 0.34675, 0.39836, 0.39153, 0.36096, 0.43008, 0.32876, 0.4689, 0.29633, 0.52302, 0.25113, 0.59417, 0.1917, 0.72983, 0.09585, 0.86549, 0, 1, 0, 0.15703, 0.83582, 0.46722, 0.51561, 0.78995, 0.22527, 0.34029, 0.70958, 0.62889, 0.3843 ], + "triangles": [ 10, 24, 9, 9, 27, 8, 9, 24, 27, 10, 11, 24, 11, 12, 24, 8, 27, 7, 12, 13, 24, 24, 13, 27, 13, 14, 27, 27, 25, 7, 25, 27, 14, 7, 25, 6, 6, 25, 5, 18, 4, 17, 28, 4, 18, 4, 28, 3, 15, 16, 25, 16, 17, 25, 25, 17, 5, 17, 4, 5, 3, 28, 2, 28, 26, 2, 2, 26, 1, 18, 19, 28, 19, 20, 28, 28, 20, 26, 1, 26, 0, 20, 21, 26, 26, 22, 0, 26, 21, 22, 22, 23, 0, 25, 14, 15 ], + "vertices": [ 1, 4, -11.38, 11.41, 1, 1, 4, 0.99, 11.79, 1, 1, 4, 13.36, 12.18, 1, 1, 4, 19.69, 11.97, 1, 2, 4, 24.16, 11.83, 0.91748, 7, -17.58, 10.73, 0.08252, 2, 4, 30, 11.64, 0.75238, 7, -11.83, 11.77, 0.24762, 2, 4, 33.91, 11.51, 0.44551, 7, -7.98, 12.46, 0.55449, 2, 4, 38.39, 11.36, 0.2127, 7, -3.57, 13.26, 0.7873, 2, 4, 53.17, 9.61, 0.07308, 7, 11.25, 14.65, 0.92692, 2, 4, 67.95, 7.86, 0.00873, 7, 26.07, 16.03, 0.99127, 1, 7, 34.26, 8.51, 1, 1, 7, 42.44, 0.99, 1, 1, 7, 27.96, -14.77, 1, 2, 4, 50.33, -20.36, 0.05494, 7, 14.76, -15.25, 0.94506, 2, 4, 37.32, -18.06, 0.23231, 7, 1.56, -15.74, 0.76769, 2, 4, 29.76, -16.28, 0.47868, 7, -6.21, -15.58, 0.52132, 2, 4, 25.63, -15.31, 0.71242, 7, -10.45, -15.5, 0.28758, 2, 4, 22.08, -14.47, 0.81876, 7, -14.1, -15.42, 0.18124, 2, 4, 18.5, -13.63, 0.9506, 7, -17.77, -15.35, 0.0494, 2, 4, 13.51, -12.45, 0.97879, 7, -22.9, -15.25, 0.02121, 2, 4, 6.96, -10.91, 0.99704, 7, -29.63, -15.11, 0.00296, 1, 4, -4.48, -7.2, 1, 1, 4, -15.91, -3.5, 1, 1, 4, -21.43, 4.29, 1, 1, 7, 25.9, -0.53, 1, 2, 4, 31.99, -4.22, 0.80128, 7, -6.56, -3.32, 0.19872, 1, 4, 0.98, 1.89, 1, 1, 7, 9.92, 1.3, 1, 1, 4, 17.32, -0.55, 1 ], + "hull": 24, + "edges": [ 0, 2, 2, 4, 4, 6, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 38, 40, 40, 42, 42, 44, 44, 46, 46, 0, 10, 34, 30, 32, 32, 34, 10, 12, 12, 14, 6, 8, 8, 10, 34, 36, 36, 38, 8, 36 ], + "width": 71, + "height": 75 + } + }, + "L-leg": { + "leg": { + "type": "mesh", + "uvs": [ 1, 0.23129, 1, 0.29498, 1, 0.37025, 1, 0.44552, 1, 0.50921, 1, 0.65976, 1, 0.71766, 1, 0.87399, 0.73924, 1, 0.22971, 1, 0, 0.89715, 0, 0.64818, 0.01978, 0.59915, 0.08517, 0.43712, 0.10542, 0.38694, 0.13057, 0.32459, 0.15317, 0.26859, 0.178, 0.20707, 0.26155, 0, 1, 0, 0.61186, 0.12128, 0.51632, 0.54396 ], + "triangles": [ 21, 13, 4, 21, 4, 5, 12, 13, 21, 12, 21, 5, 12, 5, 6, 11, 12, 6, 9, 10, 11, 11, 6, 9, 6, 8, 9, 7, 8, 6, 20, 18, 19, 20, 19, 0, 17, 18, 20, 17, 20, 0, 17, 0, 1, 16, 17, 1, 16, 1, 2, 15, 16, 2, 15, 2, 3, 14, 15, 3, 14, 3, 4, 13, 14, 4 ], + "vertices": [ 1, 5, 11.02, 15.15, 1, 1, 5, 17.32, 14.75, 1, 2, 5, 24.75, 14.29, 0.95577, 6, -14.29, 14.6, 0.04423, 2, 5, 32.19, 13.83, 0.71874, 6, -6.84, 14.96, 0.28126, 2, 5, 38.49, 13.44, 0.37177, 6, -0.55, 15.26, 0.62823, 2, 5, 53.36, 12.51, 0.00736, 6, 14.34, 15.96, 0.99264, 1, 6, 20.07, 16.24, 1, 1, 6, 35.53, 16.97, 1, 1, 6, 48.43, 8.19, 1, 1, 6, 49.31, -10.13, 1, 1, 6, 39.53, -18.88, 1, 2, 5, 49.98, -23.35, 0.00313, 6, 14.91, -20.05, 0.99687, 2, 5, 45.18, -22.34, 0.02543, 6, 10.03, -19.57, 0.97457, 2, 5, 29.32, -18.99, 0.4709, 6, -6.11, -17.98, 0.5291, 2, 5, 24.4, -17.96, 0.69968, 6, -11.11, -17.49, 0.30032, 2, 5, 18.3, -16.67, 0.89625, 6, -17.32, -16.88, 0.10375, 2, 5, 12.82, -15.51, 0.9779, 6, -22.89, -16.33, 0.0221, 1, 5, 6.79, -14.24, 1, 1, 5, -13.48, -9.97, 1, 1, 5, -11.83, 16.57, 1, 1, 5, -0.72, 1.88, 1, 1, 6, 3.72, -1.97, 1 ], + "hull": 20, + "edges": [ 36, 38, 20, 22, 18, 20, 16, 18, 16, 14, 22, 24, 24, 10, 10, 12, 12, 14, 12, 22, 24, 26, 10, 8, 26, 8, 8, 6, 26, 28, 6, 28, 28, 30, 6, 4, 30, 4, 4, 2, 30, 32, 2, 32, 32, 34, 34, 36, 2, 0, 0, 38, 34, 0 ], + "width": 36, + "height": 99 + } + }, + "R-arm": { + "arm": { + "type": "mesh", + "uvs": [ 1, 0.16418, 0.90368, 0.30178, 0.80735, 0.43938, 0.75345, 0.50664, 0.71536, 0.55417, 0.66561, 0.61626, 0.63234, 0.65778, 0.59417, 0.7054, 0.45366, 0.8527, 0.31316, 1, 0.15658, 1, 0, 1, 0, 0.71458, 0.13235, 0.59074, 0.26471, 0.4669, 0.34675, 0.39836, 0.39153, 0.36096, 0.43008, 0.32876, 0.4689, 0.29633, 0.52302, 0.25113, 0.59417, 0.1917, 0.72983, 0.09585, 0.86549, 0, 1, 0, 0.15703, 0.83582, 0.46722, 0.51561, 0.78995, 0.22527, 0.34029, 0.70958, 0.62889, 0.3843 ], + "triangles": [ 10, 24, 9, 9, 27, 8, 9, 24, 27, 10, 11, 24, 11, 12, 24, 8, 27, 7, 12, 13, 24, 24, 13, 27, 13, 14, 27, 27, 25, 7, 25, 14, 15, 25, 27, 14, 7, 25, 6, 22, 23, 0, 26, 22, 0, 1, 26, 0, 6, 25, 5, 18, 4, 17, 28, 4, 18, 4, 28, 3, 15, 16, 25, 16, 17, 25, 25, 17, 5, 17, 4, 5, 3, 28, 2, 28, 26, 2, 2, 26, 1, 18, 19, 28, 19, 20, 28, 28, 20, 26, 20, 21, 26, 26, 21, 22 ], + "vertices": [ 1, 8, -6.97, 5.03, 1, 1, 8, 5.06, 7.93, 1, 1, 8, 17.1, 10.83, 1, 2, 8, 23.34, 11.91, 0.99563, 11, -17.75, 12.49, 0.00437, 2, 8, 27.74, 12.68, 0.95467, 11, -13.31, 13.04, 0.04533, 2, 8, 33.5, 13.69, 0.75827, 11, -7.51, 13.77, 0.24173, 2, 8, 37.35, 14.36, 0.53963, 11, -3.63, 14.26, 0.46037, 2, 8, 41.77, 15.13, 0.29363, 11, 0.82, 14.82, 0.70637, 2, 8, 56.6, 16.42, 4.0E-4, 11, 15.69, 15.41, 0.9996, 1, 11, 30.56, 16, 1, 1, 11, 38.34, 8.05, 1, 1, 11, 46.11, 0.1, 1, 1, 11, 30.8, -14.86, 1, 2, 8, 59.92, -13.5, 4.8E-4, 11, 17.59, -14.64, 0.99952, 2, 8, 46.72, -13.9, 0.17385, 11, 4.38, -14.41, 0.82615, 2, 8, 38.95, -13.7, 0.5683, 11, -3.37, -13.84, 0.4317, 2, 8, 34.71, -13.59, 0.79613, 11, -7.6, -13.53, 0.20387, 2, 8, 31.06, -13.49, 0.92362, 11, -11.24, -13.26, 0.07638, 2, 8, 27.39, -13.4, 0.98278, 11, -14.9, -12.99, 0.01722, 1, 8, 22.26, -13.26, 1, 1, 8, 15.53, -13.09, 1, 1, 8, 3.58, -11.79, 1, 1, 8, -8.37, -10.49, 1, 1, 8, -15.36, -3.99, 1, 1, 11, 29.51, -0.54, 1, 2, 8, 38.68, -1.43, 0.57762, 11, -3.06, -1.58, 0.42238, 1, 8, 7.07, -1.77, 1, 1, 11, 13.64, 2.15, 1, 1, 8, 23.56, -0.83, 1 ], + "hull": 24, + "edges": [ 0, 2, 2, 4, 4, 6, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 38, 40, 40, 42, 42, 44, 44, 46, 46, 0, 10, 34, 30, 32, 32, 34, 10, 12, 12, 14, 6, 8, 8, 10, 34, 36, 36, 38, 8, 36 ], + "width": 71, + "height": 75 + } + }, + "R-leg": { + "leg": { + "type": "mesh", + "uvs": [ 1, 0.23129, 1, 0.29498, 1, 0.37025, 1, 0.44552, 1, 0.50921, 1, 0.65976, 1, 0.71766, 1, 0.87399, 0.73924, 1, 0.22971, 1, 0, 0.89715, 0, 0.64818, 0.01978, 0.59915, 0.08517, 0.43712, 0.10542, 0.38694, 0.13057, 0.32459, 0.15317, 0.26859, 0.178, 0.20707, 0.26155, 0, 1, 0, 0.61186, 0.12128, 0.51632, 0.54396 ], + "triangles": [ 21, 13, 4, 21, 4, 5, 12, 13, 21, 12, 21, 5, 12, 5, 6, 11, 12, 6, 9, 10, 11, 11, 6, 9, 6, 8, 9, 7, 8, 6, 20, 18, 19, 20, 19, 0, 17, 18, 20, 17, 20, 0, 17, 0, 1, 16, 17, 1, 16, 1, 2, 15, 16, 2, 15, 2, 3, 14, 15, 3, 14, 3, 4, 13, 14, 4 ], + "vertices": [ 1, 9, 7.41, 14.89, 1, 2, 9, 13.71, 15.24, 0.99432, 10, -23.16, 14.24, 0.00568, 2, 9, 21.15, 15.65, 0.91831, 10, -15.74, 14.89, 0.08169, 2, 9, 28.59, 16.06, 0.65731, 10, -8.32, 15.53, 0.34269, 2, 9, 34.88, 16.4, 0.33128, 10, -2.03, 16.08, 0.66872, 2, 9, 49.77, 17.22, 0.00401, 10, 12.81, 17.36, 0.99599, 1, 10, 18.52, 17.86, 1, 1, 10, 33.94, 19.2, 1, 1, 10, 47.18, 10.92, 1, 1, 10, 48.77, -7.35, 1, 1, 10, 39.34, -16.47, 1, 2, 9, 50.6, -18.79, 0.01347, 10, 14.78, -18.6, 0.98653, 2, 9, 45.72, -18.34, 0.05687, 10, 9.88, -18.31, 0.94313, 2, 9, 29.57, -16.87, 0.66681, 10, -6.3, -17.35, 0.33319, 2, 9, 24.57, -16.42, 0.86313, 10, -11.31, -17.05, 0.13687, 2, 9, 18.36, -15.85, 0.97673, 10, -17.54, -16.68, 0.02327, 2, 9, 12.77, -15.35, 0.99935, 10, -23.13, -16.35, 6.5E-4, 1, 9, 6.64, -14.79, 1, 2, 9, -13.99, -12.91, 0.99999, 10, -49.96, -14.76, 1.0E-5, 1, 9, -15.45, 13.63, 1, 1, 9, -2.7, 0.34, 1, 2, 9, 39.28, -0.79, 0.02735, 10, 2.9, -0.97, 0.97265 ], + "hull": 20, + "edges": [ 36, 38, 20, 22, 18, 20, 16, 18, 16, 14, 22, 24, 24, 10, 10, 12, 12, 14, 12, 22, 24, 26, 10, 8, 26, 8, 8, 6, 26, 28, 6, 28, 28, 30, 6, 4, 30, 4, 4, 2, 30, 32, 2, 32, 32, 34, 34, 36, 2, 0, 0, 38, 34, 0 ], + "width": 36, + "height": 99 + } + }, + "torso": { + "torso": { + "type": "mesh", + "uvs": [ 0.87097, 0.13351, 1, 0.26703, 1, 0.45027, 1, 0.63351, 1, 0.81676, 1, 1, 0.75, 1, 0.5, 1, 0.25, 1, 0, 1, 0, 0.72402, 0, 0.44805, 0.09823, 0.22402, 0.19646, 0, 0.4692, 0, 0.74195, 0, 0.58869, 0.13132, 0.401, 0.46063, 0.8354, 0.50156, 0.42394, 0.2675, 0.36228, 0.63166, 0.58839, 0.76773, 0.71972, 0.25773, 0.84058, 0.76485, 0.57726, 0.50305, 0.24069, 0.44016, 0.19158, 0.8008, 0.29695, 0.12289, 0.37843, 0.84006, 0.71037, 0.63433, 0.15889, 0.60896 ], + "triangles": [ 8, 26, 28, 8, 28, 7, 9, 26, 8, 9, 10, 26, 23, 4, 5, 6, 23, 5, 7, 21, 6, 6, 21, 23, 23, 3, 4, 7, 28, 21, 26, 20, 28, 28, 20, 21, 10, 30, 26, 26, 30, 20, 20, 24, 21, 21, 29, 23, 21, 24, 29, 29, 18, 23, 23, 18, 3, 10, 11, 30, 29, 24, 18, 18, 2, 3, 30, 25, 20, 20, 17, 24, 20, 25, 17, 30, 11, 25, 2, 18, 1, 11, 12, 25, 22, 19, 16, 22, 0, 1, 19, 14, 16, 19, 27, 14, 22, 15, 0, 22, 16, 15, 12, 13, 27, 16, 14, 15, 27, 13, 14, 22, 24, 19, 1, 18, 22, 25, 27, 19, 25, 12, 27, 17, 19, 24, 24, 22, 18, 17, 25, 19 ], + "vertices": [ 1, 3, 31.69, -23.15, 1, 2, 3, 19.07, -31.25, 0.60494, 2, 57.15, -30.53, 0.39506, 2, 3, 1.66, -31.39, 0.39506, 2, 39.74, -30.66, 0.60494, 2, 3, -15.75, -31.53, 0.20988, 2, 22.33, -30.8, 0.79012, 1, 5, -7.76, 14.89, 1, 1, 5, 9.48, 12.45, 1, 1, 5, 7.3, -2.9, 1, 2, 5, 5.13, -18.25, 0.488, 9, 5.77, 18.5, 0.512, 2, 5, 2.96, -33.59, 0.16267, 9, 6.62, 3.03, 0.83733, 3, 3, -51.05, 30.2, 0.06996, 2, -12.97, 30.92, 0.26337, 9, 7.46, -12.45, 0.66667, 1, 9, -18.72, -13.88, 1, 2, 3, 1.38, 30.61, 0.39506, 2, 39.46, 31.34, 0.60494, 2, 3, 22.71, 24.69, 0.60494, 2, 60.79, 25.41, 0.39506, 1, 3, 44.04, 18.76, 1, 1, 3, 44.18, 1.86, 1, 1, 3, 44.31, -15.05, 1, 1, 3, 31.76, -5.65, 1, 2, 3, 0.38, 5.74, 0.448, 2, 38.46, 6.47, 0.552, 2, 3, -3.29, -21.22, 0.448, 2, 34.79, -20.5, 0.552, 1, 3, 18.74, 4.46, 1, 1, 2, 22.2, 8.74, 1, 2, 2, 9.38, -5.38, 0.52, 5, -15.95, -9.73, 0.48, 1, 3, 19.82, -13.87, 1, 2, 2, 9.78, -21.01, 0.52, 5, -14.03, 5.79, 0.48, 2, 3, -3.56, -5.22, 0.448, 2, 34.52, -4.49, 0.552, 2, 3, 2.25, 15.69, 0.448, 2, 40.33, 16.42, 0.552, 2, 2, 6.04, 19.2, 0.584, 9, -12.08, -1.62, 0.416, 1, 3, 32.42, 12.44, 1, 2, 2, 2.41, 7.58, 0.584, 9, -8.99, 10.15, 0.416, 1, 2, 22.11, -12.84, 1, 1, 2, 24.25, 21.37, 1 ], + "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, 30, 0 ], + "width": 62, + "height": 95 + } + } + } + } +], +"animations": { + "animation": { + "bones": { + "abdomen": { + "rotate": [ + { + "curve": [ 0.075, 0, 0.112, 6.52 ] + }, + { "time": 0.3, "value": 6.52 }, + { "time": 1.3333 } + ] + }, + "chest": { + "rotate": [ + { + "curve": [ 0.092, 0, 0.137, 13.73 ] + }, + { + "time": 0.3667, + "value": 13.73, + "curve": [ 0.469, 13.73, 0.562, 13.32 ] + }, + { + "time": 0.6667, + "value": 12.78, + "curve": [ 0.77, 12.78, 0.842, 9.11 ] + }, + { + "time": 0.9, + "value": 9.11, + "curve": [ 1.092, 9.11, 1.225, 0 ] + }, + { "time": 1.3333 } + ] + }, + "head": { + "rotate": [ + { + "curve": [ 0.035, 0, 0.061, -5.44 ] + }, + { + "time": 0.1, + "value": -10.88, + "curve": [ 0.183, -10.88, 0.35, 6.77 ] + }, + { + "time": 0.4333, + "value": 6.77, + "curve": [ 1.157, 6.77, 0.966, 0.14 ] + }, + { "time": 1.3333 } + ] + }, + "R-arm": { + "rotate": [ + { + "curve": [ 0.042, 0, 0.125, -26.35 ] + }, + { + "time": 0.1667, + "value": -26.35, + "curve": [ 0.233, -26.35, 0.367, -6.09 ] + }, + { + "time": 0.4333, + "value": -6.09, + "curve": [ 0.658, -6.09, 1.108, 0 ] + }, + { "time": 1.3333 } + ] + }, + "L-arm": { + "rotate": [ + { + "curve": [ 0.083, 0, 0.125, 53.01 ] + }, + { + "time": 0.3333, + "value": 53.01, + "curve": [ 0.477, 52.83, 0.538, 35.12 ] + }, + { + "time": 0.6, + "value": 35.12, + "curve": [ 0.682, 35.12, 0.754, 56.78 ] + }, + { + "time": 0.8333, + "value": 56.78, + "curve": [ 1.128, 56.78, 1.181, 0 ] + }, + { "time": 1.3333 } + ] + }, + "R-forearm": { + "rotate": [ + { + "curve": [ 0.116, 0, 0.203, 4.89 ] + }, + { + "time": 0.3333, + "value": 9.78, + "curve": [ 0.583, 9.78, 0.804, 0 ] + }, + { "time": 1.3333 } + ] + }, + "L-forearm": { + "rotate": [ + { + "value": 14.9, + "curve": [ 0.143, -80.79, 0.229, 32.08 ] + }, + { + "time": 0.4333, + "value": 32.08, + "curve": [ 0.562, 32.08, 0.497, -11.74 ] + }, + { + "time": 0.6333, + "value": -11.74, + "curve": [ 0.814, -11.74, 0.749, 58 ] + }, + { + "time": 0.9333, + "value": 58, + "curve": [ 1.033, 58, 1.185, 14.9 ] + }, + { "time": 1.3333, "value": 14.9 } + ] + }, + "scalp": { + "rotate": [ + { + "value": -7.01, + "curve": [ 0.095, -7.01, 0.171, -0.43 ] + }, + { + "time": 0.2667, + "value": 7.61, + "curve": [ 0.35, 4.26, 0.458, 0 ] + }, + { "time": 0.6667 }, + { "time": 1.3333, "value": -7.01 } + ] + }, + "hair1": { + "rotate": [ + { + "value": -8.8, + "curve": [ 0.067, -8.8, 0.1, -16.02 ] + }, + { + "time": 0.2667, + "value": -16.02, + "curve": [ 0.333, -16.02, 0.41, 29.39 ] + }, + { + "time": 0.5333, + "value": 29.39, + "curve": [ 0.733, 29.39, 0.885, -8.8 ] + }, + { "time": 1.3333, "value": -8.8 } + ] + }, + "hair2": { + "rotate": [ + { + "value": 4.65, + "curve": [ 0.141, 4.65, 0.125, -17.96 ] + }, + { + "time": 0.3333, + "value": -17.96, + "curve": [ 0.408, -17.96, 0.494, 6.63 ] + }, + { + "time": 0.6333, + "value": 6.63, + "curve": [ 0.808, 6.63, 0.941, 4.65 ] + }, + { "time": 1.3333, "value": 4.65 } + ] + } + } + } +} +} \ No newline at end of file diff --git a/spine-godot/example/assets/raggedyspineboy/raggedy spineboy.json.import b/spine-godot/example/assets/raggedyspineboy/raggedy spineboy.json.import new file mode 100644 index 000000000..e3b928050 --- /dev/null +++ b/spine-godot/example/assets/raggedyspineboy/raggedy spineboy.json.import @@ -0,0 +1,13 @@ +[remap] + +importer="spine.json" +type="SpineSkeletonFileResource" +path="res://.import/raggedy spineboy.json-a7000cc987b23355ac0b09613918efcc.spjson" + +[deps] + +source_file="res://assets/raggedyspineboy/raggedy spineboy.json" +dest_files=[ "res://.import/raggedy spineboy.json-a7000cc987b23355ac0b09613918efcc.spjson" ] + +[params] + diff --git a/spine-godot/example/assets/raptor/light-sprite.png b/spine-godot/example/assets/raptor/light-sprite.png new file mode 100644 index 000000000..b5b04d795 Binary files /dev/null and b/spine-godot/example/assets/raptor/light-sprite.png differ diff --git a/spine-godot/example/assets/raptor/light-sprite.png.import b/spine-godot/example/assets/raptor/light-sprite.png.import new file mode 100644 index 000000000..4ee47c6be --- /dev/null +++ b/spine-godot/example/assets/raptor/light-sprite.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/light-sprite.png-346e910021b52658f1de723e4c80e05e.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/raptor/light-sprite.png" +dest_files=[ "res://.import/light-sprite.png-346e910021b52658f1de723e4c80e05e.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/spine-godot/example/assets/raptor/n_raptor.png b/spine-godot/example/assets/raptor/n_raptor.png new file mode 100644 index 000000000..5dc3697ca Binary files /dev/null and b/spine-godot/example/assets/raptor/n_raptor.png differ diff --git a/spine-godot/example/assets/raptor/n_raptor.png.import b/spine-godot/example/assets/raptor/n_raptor.png.import new file mode 100644 index 000000000..6f622dd1d --- /dev/null +++ b/spine-godot/example/assets/raptor/n_raptor.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/n_raptor.png-d9af68b4a56af2b4319bb485e366dc90.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/raptor/n_raptor.png" +dest_files=[ "res://.import/n_raptor.png-d9af68b4a56af2b4319bb485e366dc90.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/spine-godot/example/assets/raptor/raptor-data.tres b/spine-godot/example/assets/raptor/raptor-data.tres new file mode 100644 index 000000000..d4e99ca58 --- /dev/null +++ b/spine-godot/example/assets/raptor/raptor-data.tres @@ -0,0 +1,9 @@ +[gd_resource type="SpineSkeletonDataResource" load_steps=3 format=2] + +[ext_resource path="res://assets/raptor/raptor.atlas" type="SpineAtlasResource" id=1] +[ext_resource path="res://assets/raptor/raptor-pro.skel" type="SpineSkeletonFileResource" id=2] + +[resource] +atlas_res = ExtResource( 1 ) +skeleton_file_res = ExtResource( 2 ) +default_mix = 0.2 diff --git a/spine-godot/example/assets/raptor/raptor-pro.skel b/spine-godot/example/assets/raptor/raptor-pro.skel new file mode 100644 index 000000000..32ab530d7 Binary files /dev/null and b/spine-godot/example/assets/raptor/raptor-pro.skel differ diff --git a/spine-godot/example/assets/raptor/raptor-pro.skel.import b/spine-godot/example/assets/raptor/raptor-pro.skel.import new file mode 100644 index 000000000..e5dde3bda --- /dev/null +++ b/spine-godot/example/assets/raptor/raptor-pro.skel.import @@ -0,0 +1,13 @@ +[remap] + +importer="spine.skel" +type="SpineSkeletonFileResource" +path="res://.import/raptor-pro.skel-022e23a5f5581547a2d7faa9fb2c54e3.spskel" + +[deps] + +source_file="res://assets/raptor/raptor-pro.skel" +dest_files=[ "res://.import/raptor-pro.skel-022e23a5f5581547a2d7faa9fb2c54e3.spskel" ] + +[params] + diff --git a/spine-godot/example/assets/raptor/raptor.atlas b/spine-godot/example/assets/raptor/raptor.atlas new file mode 100644 index 000000000..89cf60341 --- /dev/null +++ b/spine-godot/example/assets/raptor/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-godot/example/assets/raptor/raptor.atlas.import b/spine-godot/example/assets/raptor/raptor.atlas.import new file mode 100644 index 000000000..840608165 --- /dev/null +++ b/spine-godot/example/assets/raptor/raptor.atlas.import @@ -0,0 +1,14 @@ +[remap] + +importer="spine.atlas" +type="SpineAtlasResource" +path="res://.import/raptor.atlas-66da4b831eebf404341993162ba3ddb8.spatlas" + +[deps] + +source_file="res://assets/raptor/raptor.atlas" +dest_files=[ "res://.import/raptor.atlas-66da4b831eebf404341993162ba3ddb8.spatlas" ] + +[params] + +normal_map_prefix="n" diff --git a/spine-godot/example/assets/raptor/raptor.png b/spine-godot/example/assets/raptor/raptor.png new file mode 100644 index 000000000..474f6316b Binary files /dev/null and b/spine-godot/example/assets/raptor/raptor.png differ diff --git a/spine-godot/example/assets/raptor/raptor.png.import b/spine-godot/example/assets/raptor/raptor.png.import new file mode 100644 index 000000000..d5b77bbbf --- /dev/null +++ b/spine-godot/example/assets/raptor/raptor.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/raptor.png-505be50f63fd1d0fb9175a9efbb9776c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/raptor/raptor.png" +dest_files=[ "res://.import/raptor.png-505be50f63fd1d0fb9175a9efbb9776c.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/spine-godot/example/assets/spineboy/spineboy-data-res.tres b/spine-godot/example/assets/spineboy/spineboy-data-res.tres new file mode 100644 index 000000000..b2e8bd73d --- /dev/null +++ b/spine-godot/example/assets/spineboy/spineboy-data-res.tres @@ -0,0 +1,20 @@ +[gd_resource type="SpineSkeletonDataResource" load_steps=5 format=2] + +[ext_resource path="res://assets/spineboy/spineboy.atlas" type="SpineAtlasResource" id=1] +[ext_resource path="res://assets/spineboy/spineboy-pro.json" type="SpineSkeletonFileResource" id=2] + +[sub_resource type="SpineAnimationMix" id=1] +from = "idle" +to = "run" +mix = 0.2 + +[sub_resource type="SpineAnimationMix" id=2] +from = "run" +to = "idle" +mix = 0.2 + +[resource] +atlas_res = ExtResource( 1 ) +skeleton_file_res = ExtResource( 2 ) +default_mix = 0.1 +animation_mixes = [ SubResource( 1 ), SubResource( 2 ) ] diff --git a/spine-godot/example/assets/spineboy/spineboy-pro.json b/spine-godot/example/assets/spineboy/spineboy-pro.json new file mode 100644 index 000000000..b4dd8b40f --- /dev/null +++ b/spine-godot/example/assets/spineboy/spineboy-pro.json @@ -0,0 +1,8707 @@ +{ +"skeleton": { + "hash": "itfFESDjM1c", + "spine": "4.1.23-beta", + "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-godot/example/assets/spineboy/spineboy-pro.json.import b/spine-godot/example/assets/spineboy/spineboy-pro.json.import new file mode 100644 index 000000000..2417e0c06 --- /dev/null +++ b/spine-godot/example/assets/spineboy/spineboy-pro.json.import @@ -0,0 +1,13 @@ +[remap] + +importer="spine.json" +type="SpineSkeletonFileResource" +path="res://.import/spineboy-pro.json-60444223fe3960c6d4c33b92d7495419.spjson" + +[deps] + +source_file="res://assets/spineboy/spineboy-pro.json" +dest_files=[ "res://.import/spineboy-pro.json-60444223fe3960c6d4c33b92d7495419.spjson" ] + +[params] + diff --git a/spine-godot/example/assets/spineboy/spineboy-pro.skel b/spine-godot/example/assets/spineboy/spineboy-pro.skel new file mode 100644 index 000000000..199839b49 Binary files /dev/null and b/spine-godot/example/assets/spineboy/spineboy-pro.skel differ diff --git a/spine-godot/example/assets/spineboy/spineboy-pro.skel.import b/spine-godot/example/assets/spineboy/spineboy-pro.skel.import new file mode 100644 index 000000000..99e97a7a1 --- /dev/null +++ b/spine-godot/example/assets/spineboy/spineboy-pro.skel.import @@ -0,0 +1,13 @@ +[remap] + +importer="spine.skel" +type="SpineSkeletonFileResource" +path="res://.import/spineboy-pro.skel-52781a88227740d2a80cb8d7636ea22e.spskel" + +[deps] + +source_file="res://assets/spineboy/spineboy-pro.skel" +dest_files=[ "res://.import/spineboy-pro.skel-52781a88227740d2a80cb8d7636ea22e.spskel" ] + +[params] + diff --git a/spine-godot/example/assets/spineboy/spineboy.atlas b/spine-godot/example/assets/spineboy/spineboy.atlas new file mode 100644 index 000000000..b07ccc3bf --- /dev/null +++ b/spine-godot/example/assets/spineboy/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-godot/example/assets/spineboy/spineboy.atlas.import b/spine-godot/example/assets/spineboy/spineboy.atlas.import new file mode 100644 index 000000000..166d719ba --- /dev/null +++ b/spine-godot/example/assets/spineboy/spineboy.atlas.import @@ -0,0 +1,14 @@ +[remap] + +importer="spine.atlas" +type="SpineAtlasResource" +path="res://.import/spineboy.atlas-54c12b5ff1cdaaa1b4e452a7d0d868c9.spatlas" + +[deps] + +source_file="res://assets/spineboy/spineboy.atlas" +dest_files=[ "res://.import/spineboy.atlas-54c12b5ff1cdaaa1b4e452a7d0d868c9.spatlas" ] + +[params] + +normal_map_prefix="n" diff --git a/spine-godot/example/assets/spineboy/spineboy.png b/spine-godot/example/assets/spineboy/spineboy.png new file mode 100644 index 000000000..d1c3ac1be Binary files /dev/null and b/spine-godot/example/assets/spineboy/spineboy.png differ diff --git a/spine-godot/example/assets/spineboy/spineboy.png.import b/spine-godot/example/assets/spineboy/spineboy.png.import new file mode 100644 index 000000000..1ff0d1e77 --- /dev/null +++ b/spine-godot/example/assets/spineboy/spineboy.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/spineboy.png-436dbd6da2b707b6828ede17b7871f43.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spineboy/spineboy.png" +dest_files=[ "res://.import/spineboy.png-436dbd6da2b707b6828ede17b7871f43.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/spine-godot/example/default_env.tres b/spine-godot/example/default_env.tres new file mode 100644 index 000000000..20207a4aa --- /dev/null +++ b/spine-godot/example/default_env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) diff --git a/spine-godot/example/examples/01-helloworld/helloworld.tscn b/spine-godot/example/examples/01-helloworld/helloworld.tscn new file mode 100644 index 000000000..3073e6dd9 --- /dev/null +++ b/spine-godot/example/examples/01-helloworld/helloworld.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://examples/01-helloworld/spineboy-helloworld.gd" type="Script" id=1] +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=3] + +[node name="Node2D" type="Node2D"] + +[node name="Spineboy" type="SpineSprite" parent="."] +position = Vector2( 505, 466 ) +scale = Vector2( 0.466832, 0.466832 ) +skeleton_data_res = ExtResource( 3 ) +bones_color = Color( 0.968627, 1, 0, 0.501961 ) +paths_color = Color( 1, 0.498039, 0, 0.466667 ) +paths_clipping = Color( 0.8, 0, 0, 0.5 ) +preview_animation = "run" +preview_frame = true +preview_time = 0.24 +script = ExtResource( 1 ) diff --git a/spine-godot/example/examples/01-helloworld/spineboy-helloworld.gd b/spine-godot/example/examples/01-helloworld/spineboy-helloworld.gd new file mode 100644 index 000000000..1a4493c41 --- /dev/null +++ b/spine-godot/example/examples/01-helloworld/spineboy-helloworld.gd @@ -0,0 +1,4 @@ +extends SpineSprite + +func _ready(): + get_animation_state().set_animation("walk", true, 0) diff --git a/spine-godot/example/examples/02-animation-state-listeners/animation-state-listeners.gd b/spine-godot/example/examples/02-animation-state-listeners/animation-state-listeners.gd new file mode 100644 index 000000000..3c497a102 --- /dev/null +++ b/spine-godot/example/examples/02-animation-state-listeners/animation-state-listeners.gd @@ -0,0 +1,38 @@ +extends Node2D + +onready var footstep_audio: AudioStreamPlayer = $FootstepAudio + +func _animation_started(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry): + print("Animation started: " + track_entry.get_animation().get_name()) + +func _animation_interrupted(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry): + print("Animation interrupted: " + track_entry.get_animation().get_name()) + +func _animation_ended(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry): + print("Animation ended: " + track_entry.get_animation().get_name()) + +func _animation_completed(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry): + print("Animation completed: " + track_entry.get_animation().get_name()) + +func _animation_disposed(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry): + print("Animation disposed: " + track_entry.get_animation().get_name()) + +func _animation_event(sprite: SpineSprite, animation_state: SpineAnimationState, track_entry: SpineTrackEntry, event: SpineEvent): + print("Animation event: " + track_entry.get_animation().get_name() + ", " + event.get_data().get_event_name()) + if (event.get_data().get_event_name() == "footstep"): + footstep_audio.play() + +func _ready(): + var spineboy = $Spineboy + var animation_state = spineboy.get_animation_state() + animation_state.set_animation("jump", false, 0) + animation_state.add_animation("walk", 0, true, 0) + animation_state.add_animation("run", 2, true, 0) + + spineboy.connect("animation_started", self, "_animation_started") + spineboy.connect("animation_interrupted", self, "_animation_interrupted") + spineboy.connect("animation_ended", self, "_animation_ended") + spineboy.connect("animation_completed", self, "_animation_completed") + spineboy.connect("animation_disposed", self, "_animation_disposed") + spineboy.connect("animation_event", self, "_animation_event") + pass diff --git a/spine-godot/example/examples/02-animation-state-listeners/animation-state-listeners.tscn b/spine-godot/example/examples/02-animation-state-listeners/animation-state-listeners.tscn new file mode 100644 index 000000000..c72344957 --- /dev/null +++ b/spine-godot/example/examples/02-animation-state-listeners/animation-state-listeners.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://examples/02-animation-state-listeners/animation-state-listeners.gd" type="Script" id=1] +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=2] +[ext_resource path="res://assets/footstep.ogg" type="AudioStream" id=3] + +[node name="Node2D" type="Node2D"] +script = ExtResource( 1 ) + +[node name="Spineboy" type="SpineSprite" parent="."] +position = Vector2( 473, 487 ) +scale = Vector2( 0.575051, 0.575051 ) +skeleton_data_res = ExtResource( 2 ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="FootstepAudio" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 3 ) diff --git a/spine-godot/example/examples/03-mix-and-match/mix-and-match.gd b/spine-godot/example/examples/03-mix-and-match/mix-and-match.gd new file mode 100644 index 000000000..4b8eabcc4 --- /dev/null +++ b/spine-godot/example/examples/03-mix-and-match/mix-and-match.gd @@ -0,0 +1,22 @@ +extends SpineSprite + +func _ready(): + var data = get_skeleton().get_data() + var custom_skin = new_skin("custom-skin") + var skin_base = data.find_skin("skin-base") + custom_skin.add_skin(skin_base) + custom_skin.add_skin(data.find_skin("nose/short")) + custom_skin.add_skin(data.find_skin("eyelids/girly")) + custom_skin.add_skin(data.find_skin("eyes/violet")) + custom_skin.add_skin(data.find_skin("hair/brown")) + custom_skin.add_skin(data.find_skin("clothes/hoodie-orange")) + custom_skin.add_skin(data.find_skin("legs/pants-jeans")) + custom_skin.add_skin(data.find_skin("accessories/bag")) + custom_skin.add_skin(data.find_skin("accessories/hat-red-yellow")) + get_skeleton().set_skin(custom_skin); + + for el in custom_skin.get_attachments(): + var entry: SpineSkinEntry = el + print(str(entry.get_slot_index()) + " " + entry.get_name()) + + get_animation_state().set_animation("dance", true, 0) diff --git a/spine-godot/example/examples/03-mix-and-match/mix-and-match.tscn b/spine-godot/example/examples/03-mix-and-match/mix-and-match.tscn new file mode 100644 index 000000000..0a03dbfaf --- /dev/null +++ b/spine-godot/example/examples/03-mix-and-match/mix-and-match.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://assets/mix-and-match/mix-and-match-data.tres" type="SpineSkeletonDataResource" id=1] +[ext_resource path="res://examples/03-mix-and-match/mix-and-match.gd" type="Script" id=2] + +[node name="Node2D" type="Node2D"] + +[node name="MixAndMatch" type="SpineSprite" parent="."] +position = Vector2( 532.982, 480.287 ) +scale = Vector2( 0.441932, 0.441932 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) diff --git a/spine-godot/example/examples/04-simple-input/simple-input.tscn b/spine-godot/example/examples/04-simple-input/simple-input.tscn new file mode 100644 index 000000000..d7a3067f7 --- /dev/null +++ b/spine-godot/example/examples/04-simple-input/simple-input.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=1] +[ext_resource path="res://examples/04-simple-input/spineboy-simple-input.gd" type="Script" id=2] + +[node name="Node2D" type="Node2D"] + +[node name="Spineboy" type="SpineSprite" parent="."] +position = Vector2( 501.503, 472.035 ) +scale = Vector2( 0.518624, 0.518624 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) diff --git a/spine-godot/example/examples/04-simple-input/spineboy-simple-input.gd b/spine-godot/example/examples/04-simple-input/spineboy-simple-input.gd new file mode 100644 index 000000000..5b0277060 --- /dev/null +++ b/spine-godot/example/examples/04-simple-input/spineboy-simple-input.gd @@ -0,0 +1,19 @@ +extends SpineSprite + +func _ready(): + get_animation_state().set_animation("idle", true, 0) + +func _process(_delta): + if Input.is_action_just_pressed("ui_left"): + get_animation_state().set_animation("run", true, 0) + get_skeleton().set_scale_x(-1) + + if Input.is_action_just_released("ui_left"): + get_animation_state().set_animation("idle", true, 0) + + if (Input.is_action_just_pressed("ui_right")): + get_animation_state().set_animation("run", true, 0) + get_skeleton().set_scale_x(1) + + if Input.is_action_just_released("ui_right"): + get_animation_state().set_animation("idle", true, 0) diff --git a/spine-godot/example/examples/05-mouse-following/mouse-following.gd b/spine-godot/example/examples/05-mouse-following/mouse-following.gd new file mode 100644 index 000000000..a62e61857 --- /dev/null +++ b/spine-godot/example/examples/05-mouse-following/mouse-following.gd @@ -0,0 +1,11 @@ +extends Node2D + +onready var spineboy: SpineSprite = $Spineboy +onready var crosshair_bone: SpineBoneNode = $Spineboy/CrosshairBone + +func _ready(): + spineboy.get_animation_state().set_animation("walk", true, 0) + spineboy.get_animation_state().set_animation("aim", true, 1) + +func _process(_delta): + crosshair_bone.global_position = get_viewport().get_mouse_position() diff --git a/spine-godot/example/examples/05-mouse-following/mouse-following.tscn b/spine-godot/example/examples/05-mouse-following/mouse-following.tscn new file mode 100644 index 000000000..7592d35cc --- /dev/null +++ b/spine-godot/example/examples/05-mouse-following/mouse-following.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://examples/05-mouse-following/mouse-following.gd" type="Script" id=1] +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=2] + +[node name="Node2D" type="Node2D"] +script = ExtResource( 1 ) + +[node name="Spineboy" type="SpineSprite" parent="."] +position = Vector2( 481, 457 ) +scale = Vector2( 0.5, 0.5 ) +skeleton_data_res = ExtResource( 2 ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="CrosshairBone" type="SpineBoneNode" parent="Spineboy"] +show_behind_parent = true +position = Vector2( 302.333, -569.714 ) +rotation = -0.000872665 +bone_name = "crosshair" +bone_mode = 1 diff --git a/spine-godot/example/examples/06-bone-following/bone-following.gd b/spine-godot/example/examples/06-bone-following/bone-following.gd new file mode 100644 index 000000000..7294ee6a4 --- /dev/null +++ b/spine-godot/example/examples/06-bone-following/bone-following.gd @@ -0,0 +1,5 @@ +extends Node2D + +func _ready(): + var spineboy: SpineSprite = $Spineboy + spineboy.get_animation_state().set_animation("walk", true, 0) diff --git a/spine-godot/example/examples/06-bone-following/bone-following.tscn b/spine-godot/example/examples/06-bone-following/bone-following.tscn new file mode 100644 index 000000000..c579984d5 --- /dev/null +++ b/spine-godot/example/examples/06-bone-following/bone-following.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=1] +[ext_resource path="res://examples/06-bone-following/bone-following.gd" type="Script" id=2] +[ext_resource path="res://icon.png" type="Texture" id=3] + +[node name="Node2D" type="Node2D"] +script = ExtResource( 2 ) + +[node name="Spineboy" type="SpineSprite" parent="."] +position = Vector2( 478, 483 ) +scale = Vector2( 0.58461, 0.58461 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 + +[node name="GunTipBone" type="SpineBoneNode" parent="Spineboy"] +show_behind_parent = true +position = Vector2( 214.298, -162.047 ) +rotation = 0.713316 +scale = Vector2( 1, 1 ) +bone_name = "gun-tip" + +[node name="Sprite" type="Sprite" parent="Spineboy/GunTipBone"] +texture = ExtResource( 3 ) diff --git a/spine-godot/example/examples/07-slot-node/slot-node.gd b/spine-godot/example/examples/07-slot-node/slot-node.gd new file mode 100644 index 000000000..496875d0b --- /dev/null +++ b/spine-godot/example/examples/07-slot-node/slot-node.gd @@ -0,0 +1,11 @@ +extends Node2D + +onready var spineboy: SpineSprite = $Spineboy +onready var raptor: SpineSprite = $Spineboy/GunSlot/Raptor +onready var tiny_spineboy: SpineSprite = $Spineboy/FrontFistSlot/TinySpineboy + +func _ready(): + var entry = spineboy.get_animation_state().set_animation("run", true, 0) + entry.set_time_scale(0.1) + raptor.get_animation_state().set_animation("walk", true, 0) + tiny_spineboy.get_animation_state().set_animation("walk", true, 0) diff --git a/spine-godot/example/examples/07-slot-node/slot-node.tscn b/spine-godot/example/examples/07-slot-node/slot-node.tscn new file mode 100644 index 000000000..b3274f491 --- /dev/null +++ b/spine-godot/example/examples/07-slot-node/slot-node.tscn @@ -0,0 +1,59 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://examples/07-slot-node/slot-node.gd" type="Script" id=1] +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=2] +[ext_resource path="res://assets/raptor/raptor-data.tres" type="SpineSkeletonDataResource" id=3] +[ext_resource path="res://icon.png" type="Texture" id=4] + +[node name="Node2D" type="Node2D"] +script = ExtResource( 1 ) + +[node name="Spineboy" type="SpineSprite" parent="."] +position = Vector2( 474, 506 ) +scale = Vector2( 0.560712, 0.560712 ) +skeleton_data_res = ExtResource( 2 ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="GunSlot" type="SpineSlotNode" parent="Spineboy"] +show_behind_parent = true +position = Vector2( 40.8753, -276.036 ) +rotation = 0.837234 +scale = Vector2( 1, 1 ) +slot_name = "gun" + +[node name="Raptor" type="SpineSprite" parent="Spineboy/GunSlot"] +position = Vector2( 84.6909, -67.9174 ) +scale = Vector2( 0.193472, 0.193472 ) +skeleton_data_res = ExtResource( 3 ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="EyeSlot" type="SpineSlotNode" parent="Spineboy"] +show_behind_parent = true +position = Vector2( -23.4598, -402.301 ) +rotation = -1.71793 +scale = Vector2( 1, 1 ) +slot_name = "eye" + +[node name="Sprite" type="Sprite" parent="Spineboy/EyeSlot"] +position = Vector2( 84.4734, 43.4469 ) +rotation = 1.66344 +texture = ExtResource( 4 ) + +[node name="FrontFistSlot" type="SpineSlotNode" parent="Spineboy"] +show_behind_parent = true +position = Vector2( -29.0298, -241.577 ) +rotation = 0.995187 +scale = Vector2( 1, 1 ) +slot_name = "front-fist" + +[node name="TinySpineboy" type="SpineSprite" parent="Spineboy/FrontFistSlot"] +position = Vector2( -2.64624, -10.8111 ) +scale = Vector2( 0.193389, 0.193389 ) +skeleton_data_res = ExtResource( 2 ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 diff --git a/spine-godot/example/examples/08-animation-player/animation-player.gd b/spine-godot/example/examples/08-animation-player/animation-player.gd new file mode 100644 index 000000000..3eae87893 --- /dev/null +++ b/spine-godot/example/examples/08-animation-player/animation-player.gd @@ -0,0 +1,33 @@ +extends Node2D + +onready var player = $AnimationPlayer +onready var spineboy = $Spineboy + +var speed = 400; +var velocity_x = 0; + +func _ready(): + player.play("cutscene") + pass + +func _process(delta): + if (!player.is_playing()): + if Input.is_action_just_released("ui_left"): + spineboy.get_animation_state().set_animation("idle", true, 0) + velocity_x = 0 + + if Input.is_action_just_released("ui_right"): + spineboy.get_animation_state().set_animation("idle", true, 0) + velocity_x = 0 + + if (Input.is_action_just_pressed("ui_right")): + spineboy.get_animation_state().set_animation("run", true, 0) + spineboy.get_skeleton().set_scale_x(1) + velocity_x = 1 + + if Input.is_action_just_pressed("ui_left"): + spineboy.get_animation_state().set_animation("run", true, 0) + spineboy.get_skeleton().set_scale_x(-1) + velocity_x = -1 + + spineboy.position.x += velocity_x * speed * delta diff --git a/spine-godot/example/examples/08-animation-player/animation-player.tscn b/spine-godot/example/examples/08-animation-player/animation-player.tscn new file mode 100644 index 000000000..191f8e992 --- /dev/null +++ b/spine-godot/example/examples/08-animation-player/animation-player.tscn @@ -0,0 +1,1946 @@ +[gd_scene load_steps=64 format=2] + +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=1] +[ext_resource path="res://examples/08-animation-player/animation-player.gd" type="Script" id=2] +[ext_resource path="res://assets/raptor/raptor-data.tres" type="SpineSkeletonDataResource" id=3] + +[sub_resource type="Animation" id=84] +resource_name = "RESET" +length = 0.5 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=85] +resource_name = "aim" +length = 0.5 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "aim" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=86] +resource_name = "aim_looped" +length = 0.5 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "aim" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=87] +resource_name = "death" +length = 4.9333 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "death" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=88] +resource_name = "death_looped" +length = 4.9333 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "death" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=89] +resource_name = "hoverboard" +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "hoverboard" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=90] +resource_name = "hoverboard_looped" +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "hoverboard" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=91] +resource_name = "idle" +length = 1.6667 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "idle" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=92] +resource_name = "idle-turn" +length = 0.2667 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "idle-turn" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=93] +resource_name = "idle-turn_looped" +length = 0.2667 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "idle-turn" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=94] +resource_name = "idle_looped" +length = 1.6667 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "idle" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=95] +resource_name = "jump" +length = 1.3333 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "jump" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=96] +resource_name = "jump_looped" +length = 1.3333 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "jump" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=97] +resource_name = "portal" +length = 3.1667 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "portal" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=98] +resource_name = "portal_looped" +length = 3.1667 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "portal" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=99] +resource_name = "run" +length = 0.6667 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "run" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=100] +resource_name = "run-to-idle" +length = 0.2667 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "run-to-idle" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=101] +resource_name = "run-to-idle_looped" +length = 0.2667 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "run-to-idle" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=102] +resource_name = "run_looped" +length = 0.6667 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "run" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=103] +resource_name = "shoot" +length = 0.6333 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "shoot" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=104] +resource_name = "shoot_looped" +length = 0.6333 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "shoot" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=105] +resource_name = "walk" +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "walk" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=106] +resource_name = "walk_looped" +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "walk" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=107] +resource_name = "RESET" +length = 0.5 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=108] +resource_name = "aim" +length = 0.5 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "aim" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=109] +resource_name = "aim_looped" +length = 0.5 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "aim" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=110] +resource_name = "death" +length = 4.9333 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "death" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=111] +resource_name = "death_looped" +length = 4.9333 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "death" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=112] +resource_name = "hoverboard" +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "hoverboard" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=113] +resource_name = "hoverboard_looped" +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "hoverboard" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=114] +resource_name = "idle" +length = 1.6667 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "idle" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=115] +resource_name = "idle-turn" +length = 0.2667 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "idle-turn" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=116] +resource_name = "idle-turn_looped" +length = 0.2667 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "idle-turn" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=117] +resource_name = "idle_looped" +length = 1.6667 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "idle" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=118] +resource_name = "jump" +length = 1.3333 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "jump" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=119] +resource_name = "jump_looped" +length = 1.3333 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "jump" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=120] +resource_name = "portal" +length = 3.1667 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "portal" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=121] +resource_name = "portal_looped" +length = 3.1667 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "portal" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=122] +resource_name = "run" +length = 0.6667 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "run" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=123] +resource_name = "run-to-idle" +length = 0.2667 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "run-to-idle" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=124] +resource_name = "run-to-idle_looped" +length = 0.2667 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "run-to-idle" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=125] +resource_name = "run_looped" +length = 0.6667 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "run" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=126] +resource_name = "shoot" +length = 0.6333 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "shoot" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=127] +resource_name = "shoot_looped" +length = 0.6333 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "shoot" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=128] +resource_name = "walk" +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "walk" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=129] +resource_name = "walk_looped" +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "walk" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=130] +resource_name = "RESET" +length = 0.5 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=131] +resource_name = "gun-grab" +length = 0.666667 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "gun-grab" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=132] +resource_name = "gun-grab_looped" +length = 0.666667 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "gun-grab" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=133] +resource_name = "gun-holster" +length = 0.666667 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "gun-holster" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=134] +resource_name = "gun-holster_looped" +length = 0.666667 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "gun-holster" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=135] +resource_name = "jump" +length = 1.53333 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "jump" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=136] +resource_name = "jump_looped" +length = 1.53333 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "jump" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=137] +resource_name = "roar" +length = 2.13333 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "roar" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=138] +resource_name = "roar_looped" +length = 2.13333 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "roar" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=139] +resource_name = "walk" +length = 1.26667 +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "walk" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] +} + +[sub_resource type="Animation" id=140] +resource_name = "walk_looped" +length = 1.26667 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath(".:animation_name") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ "walk" ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:loop") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} + +[sub_resource type="Animation" id=25] +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Spineboy:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 72.0001, 520 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Raptor:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 1284, 520 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Spineboy/SpineAnimationTrack:mix_duration") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ -1.0 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Spineboy/SpineAnimationTrack:reverse") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Raptor/SpineAnimationTrack:mix_duration") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ -1.0 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Spineboy/SpineAnimationTrack:time_scale") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 1.0 ] +} + +[sub_resource type="Animation" id=1] +resource_name = "cutscene" +length = 10.0 +step = 0.02 +tracks/0/type = "value" +tracks/0/path = NodePath("Spineboy:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 4, 10 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 72.0001, 520 ), Vector2( 500, 520 ), Vector2( 500, 520 ) ] +} +tracks/1/type = "animation" +tracks/1/path = NodePath("Spineboy/SpineAnimationTrack/Spineboy Track 0") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"clips": PoolStringArray( "walk_looped", "idle", "death", "idle" ), +"times": PoolRealArray( 0, 4, 4.34, 8.86 ) +} +tracks/2/type = "value" +tracks/2/path = NodePath("Spineboy/SpineAnimationTrack2:mix_duration") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 0.1 ] +} +tracks/3/type = "animation" +tracks/3/path = NodePath("Spineboy/SpineAnimationTrack2/Spineboy Track 1") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"clips": PoolStringArray( "-- Empty --", "aim", "-- Empty --" ), +"times": PoolRealArray( 0.14, 2.5, 3.94 ) +} +tracks/4/type = "value" +tracks/4/path = NodePath("Raptor:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 2.02, 3.7, 10 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 1284, 520 ), Vector2( 1284, 520 ), Vector2( 750, 520 ), Vector2( 750, 520 ) ] +} +tracks/5/type = "animation" +tracks/5/path = NodePath("Raptor/SpineAnimationTrack/Raptor Track 0") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"clips": PoolStringArray( "walk_looped", "roar_looped", "-- Empty --" ), +"times": PoolRealArray( 0.46, 3.7, 9.64 ) +} +tracks/6/type = "value" +tracks/6/path = NodePath("Spineboy/SpineAnimationTrack:mix_duration") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.2 ] +} +tracks/7/type = "value" +tracks/7/path = NodePath("Raptor/SpineAnimationTrack:mix_duration") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.2 ] +} + +[sub_resource type="Animation" id=83] +resource_name = "slow-moonwalk" +length = 5.0 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Spineboy:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 905, 565 ), Vector2( 70, 565 ) ] +} +tracks/1/type = "animation" +tracks/1/path = NodePath("Spineboy/SpineAnimationTrack/Spineboy Track 0") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"clips": PoolStringArray( "walk_looped" ), +"times": PoolRealArray( 0 ) +} +tracks/2/type = "value" +tracks/2/path = NodePath("Spineboy/SpineAnimationTrack:reverse") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Spineboy/SpineAnimationTrack:time_scale") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.5 ] +} + +[node name="Node2D" type="Node2D"] +script = ExtResource( 2 ) + +[node name="Spineboy" type="SpineSprite" parent="."] +position = Vector2( 72.0001, 520 ) +scale = Vector2( 0.323942, 0.323942 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="SpineAnimationTrack" type="SpineAnimationTrack" parent="Spineboy"] +track_index = 0 +debug = true + +[node name="Spineboy Track 0" type="AnimationPlayer" parent="Spineboy/SpineAnimationTrack"] +"anims/-- Empty --" = SubResource( 84 ) +anims/RESET = SubResource( 84 ) +anims/aim = SubResource( 85 ) +anims/aim_looped = SubResource( 86 ) +anims/death = SubResource( 87 ) +anims/death_looped = SubResource( 88 ) +anims/hoverboard = SubResource( 89 ) +anims/hoverboard_looped = SubResource( 90 ) +anims/idle = SubResource( 91 ) +anims/idle-turn = SubResource( 92 ) +anims/idle-turn_looped = SubResource( 93 ) +anims/idle_looped = SubResource( 94 ) +anims/jump = SubResource( 95 ) +anims/jump_looped = SubResource( 96 ) +anims/portal = SubResource( 97 ) +anims/portal_looped = SubResource( 98 ) +anims/run = SubResource( 99 ) +anims/run-to-idle = SubResource( 100 ) +anims/run-to-idle_looped = SubResource( 101 ) +anims/run_looped = SubResource( 102 ) +anims/shoot = SubResource( 103 ) +anims/shoot_looped = SubResource( 104 ) +anims/walk = SubResource( 105 ) +anims/walk_looped = SubResource( 106 ) + +[node name="SpineAnimationTrack2" type="SpineAnimationTrack" parent="Spineboy"] +track_index = 1 +mix_duration = 0.1 +debug = true + +[node name="Spineboy Track 1" type="AnimationPlayer" parent="Spineboy/SpineAnimationTrack2"] +"anims/-- Empty --" = SubResource( 107 ) +anims/RESET = SubResource( 107 ) +anims/aim = SubResource( 108 ) +anims/aim_looped = SubResource( 109 ) +anims/death = SubResource( 110 ) +anims/death_looped = SubResource( 111 ) +anims/hoverboard = SubResource( 112 ) +anims/hoverboard_looped = SubResource( 113 ) +anims/idle = SubResource( 114 ) +anims/idle-turn = SubResource( 115 ) +anims/idle-turn_looped = SubResource( 116 ) +anims/idle_looped = SubResource( 117 ) +anims/jump = SubResource( 118 ) +anims/jump_looped = SubResource( 119 ) +anims/portal = SubResource( 120 ) +anims/portal_looped = SubResource( 121 ) +anims/run = SubResource( 122 ) +anims/run-to-idle = SubResource( 123 ) +anims/run-to-idle_looped = SubResource( 124 ) +anims/run_looped = SubResource( 125 ) +anims/shoot = SubResource( 126 ) +anims/shoot_looped = SubResource( 127 ) +anims/walk = SubResource( 128 ) +anims/walk_looped = SubResource( 129 ) + +[node name="Raptor" type="SpineSprite" parent="."] +position = Vector2( 1284, 520 ) +scale = Vector2( -0.328761, 0.328761 ) +skeleton_data_res = ExtResource( 3 ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="SpineAnimationTrack" type="SpineAnimationTrack" parent="Raptor"] +track_index = 0 + +[node name="Raptor Track 0" type="AnimationPlayer" parent="Raptor/SpineAnimationTrack"] +"anims/-- Empty --" = SubResource( 130 ) +anims/RESET = SubResource( 130 ) +anims/gun-grab = SubResource( 131 ) +anims/gun-grab_looped = SubResource( 132 ) +anims/gun-holster = SubResource( 133 ) +anims/gun-holster_looped = SubResource( 134 ) +anims/jump = SubResource( 135 ) +anims/jump_looped = SubResource( 136 ) +anims/roar = SubResource( 137 ) +anims/roar_looped = SubResource( 138 ) +anims/walk = SubResource( 139 ) +anims/walk_looped = SubResource( 140 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/RESET = SubResource( 25 ) +anims/cutscene = SubResource( 1 ) +anims/slow-moonwalk = SubResource( 83 ) diff --git a/spine-godot/example/examples/09-custom-material/custom-material.tscn b/spine-godot/example/examples/09-custom-material/custom-material.tscn new file mode 100644 index 000000000..9d3462726 --- /dev/null +++ b/spine-godot/example/examples/09-custom-material/custom-material.tscn @@ -0,0 +1,44 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=1] + +[sub_resource type="Shader" id=1] +code = "shader_type canvas_item; + +void fragment() { + COLOR = texture(TEXTURE, UV); + COLOR.r = 0.0; +}" + +[sub_resource type="ShaderMaterial" id=2] +shader = SubResource( 1 ) + +[sub_resource type="Shader" id=3] +code = "shader_type canvas_item; + +void fragment() { + COLOR = texture(TEXTURE, UV); + COLOR.b = 0.0; +}" + +[sub_resource type="ShaderMaterial" id=4] +shader = SubResource( 3 ) + +[node name="Node2D" type="Node2D"] + +[node name="SpineSprite" type="SpineSprite" parent="."] +position = Vector2( 501, 507 ) +scale = Vector2( 0.546374, 0.546373 ) +skeleton_data_res = ExtResource( 1 ) +normal_material = SubResource( 2 ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="GunSlot" type="SpineSlotNode" parent="SpineSprite"] +show_behind_parent = true +position = Vector2( 40.8753, -276.036 ) +rotation = 0.837234 +scale = Vector2( 1, 1 ) +slot_name = "gun" +normal_material = SubResource( 4 ) diff --git a/spine-godot/example/examples/10-2d-lighting/2d-lighting.gd b/spine-godot/example/examples/10-2d-lighting/2d-lighting.gd new file mode 100644 index 000000000..92540af3a --- /dev/null +++ b/spine-godot/example/examples/10-2d-lighting/2d-lighting.gd @@ -0,0 +1,4 @@ +extends Node2D + +func _ready(): + $SpineSprite.get_animation_state().set_animation("walk"); diff --git a/spine-godot/example/examples/10-2d-lighting/2d-lighting.tscn b/spine-godot/example/examples/10-2d-lighting/2d-lighting.tscn new file mode 100644 index 000000000..8e6161b01 --- /dev/null +++ b/spine-godot/example/examples/10-2d-lighting/2d-lighting.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://assets/raptor/raptor-data.tres" type="SpineSkeletonDataResource" id=1] +[ext_resource path="res://assets/raptor/light-sprite.png" type="Texture" id=2] +[ext_resource path="res://examples/10-2d-lighting/2d-lighting.gd" type="Script" id=3] + +[node name="Node2D" type="Node2D"] +script = ExtResource( 3 ) + +[node name="SpineSprite" type="SpineSprite" parent="."] +position = Vector2( 576, 506 ) +scale = Vector2( 0.458967, 0.458967 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "-- Empty --" +preview_frame = false +preview_time = 0.0 + +[node name="Light2D" type="Light2D" parent="."] +position = Vector2( 822, 270 ) +scale = Vector2( 1.51563, 1.51563 ) +texture = ExtResource( 2 ) +color = Color( 1, 0.0117647, 0.0117647, 1 ) +range_height = 41.5 + +[node name="CanvasModulate" type="CanvasModulate" parent="."] +color = Color( 0.145098, 0.0980392, 0.0980392, 1 ) diff --git a/spine-godot/example/icon.png b/spine-godot/example/icon.png new file mode 100644 index 000000000..c98fbb601 Binary files /dev/null and b/spine-godot/example/icon.png differ diff --git a/spine-godot/example/icon.png.import b/spine-godot/example/icon.png.import new file mode 100644 index 000000000..a4c02e6e2 --- /dev/null +++ b/spine-godot/example/icon.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/spine-godot/example/project.godot b/spine-godot/example/project.godot new file mode 100644 index 000000000..d1b46851c --- /dev/null +++ b/spine-godot/example/project.godot @@ -0,0 +1,34 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +[application] + +config/name="spine-godot-examples" +run/main_scene="res://examples/01-helloworld/helloworld.tscn" +run/low_processor_mode=true +config/icon="res://icon.png" + +[global] + +batch=false + +[physics] + +common/enable_pause_aware_picking=true + +[rendering] + +quality/driver/driver_name="GLES2" +vram_compression/import_etc=true +vram_compression/import_etc2=false +batching/parameters/max_join_item_commands=100 +batching/parameters/batch_buffer_size=65535 +batching/parameters/item_reordering_lookahead=100 +environment/default_environment="res://default_env.tres" diff --git a/spine-godot/example/tests/batch-test.gd b/spine-godot/example/tests/batch-test.gd new file mode 100644 index 000000000..ec463b6ef --- /dev/null +++ b/spine-godot/example/tests/batch-test.gd @@ -0,0 +1,4 @@ +extends SpineSprite + +func _ready(): + get_animation_state().set_animation("walk", true) diff --git a/spine-godot/example/tests/batch-test.tscn b/spine-godot/example/tests/batch-test.tscn new file mode 100644 index 000000000..0d5ac3bcb --- /dev/null +++ b/spine-godot/example/tests/batch-test.tscn @@ -0,0 +1,871 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=1] +[ext_resource path="res://tests/batch-test.gd" type="Script" id=2] + +[node name="Node2D" type="Node2D"] +rotation = -3.67884e-05 + +[node name="SpineSprite" type="SpineSprite" parent="."] +position = Vector2( 53.8037, 119.483 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite2" type="SpineSprite" parent="."] +position = Vector2( 111.488, 119.485 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite3" type="SpineSprite" parent="."] +position = Vector2( 164.678, 119.487 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = true +preview_time = 2.36477e-39 +script = ExtResource( 2 ) + +[node name="SpineSprite4" type="SpineSprite" parent="."] +position = Vector2( 217.119, 121.736 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = true +preview_time = 6.85235e-43 +script = ExtResource( 2 ) + +[node name="SpineSprite5" type="SpineSprite" parent="."] +position = Vector2( 277.051, 120.989 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite6" type="SpineSprite" parent="."] +position = Vector2( 337.733, 118.744 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite7" type="SpineSprite" parent="."] +position = Vector2( 403.658, 120.994 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite8" type="SpineSprite" parent="."] +position = Vector2( 464.34, 120.996 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite9" type="SpineSprite" parent="."] +position = Vector2( 525.021, 120.998 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 51.0 +script = ExtResource( 2 ) + +[node name="SpineSprite10" type="SpineSprite" parent="."] +position = Vector2( 589.448, 121.001 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite11" type="SpineSprite" parent="."] +position = Vector2( 649.381, 121.752 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite12" type="SpineSprite" parent="."] +position = Vector2( 709.313, 123.253 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite13" type="SpineSprite" parent="."] +position = Vector2( 769.245, 119.509 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite14" type="SpineSprite" parent="."] +position = Vector2( 830.676, 119.511 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite15" type="SpineSprite" parent="."] +position = Vector2( 892.106, 121.761 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite16" type="SpineSprite" parent="."] +position = Vector2( 953.537, 121.763 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite17" type="SpineSprite" parent="."] +position = Vector2( 56.0478, 207.883 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite18" type="SpineSprite" parent="."] +position = Vector2( 113.733, 207.885 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite19" type="SpineSprite" parent="."] +position = Vector2( 166.923, 207.887 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite20" type="SpineSprite" parent="."] +position = Vector2( 219.363, 210.136 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite21" type="SpineSprite" parent="."] +position = Vector2( 279.295, 209.389 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite22" type="SpineSprite" parent="."] +position = Vector2( 339.977, 207.144 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite23" type="SpineSprite" parent="."] +position = Vector2( 405.902, 209.394 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite24" type="SpineSprite" parent="."] +position = Vector2( 466.584, 209.396 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite25" type="SpineSprite" parent="."] +position = Vector2( 527.265, 209.399 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite26" type="SpineSprite" parent="."] +position = Vector2( 591.692, 209.401 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite27" type="SpineSprite" parent="."] +position = Vector2( 651.625, 210.152 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite28" type="SpineSprite" parent="."] +position = Vector2( 711.557, 211.653 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite29" type="SpineSprite" parent="."] +position = Vector2( 771.489, 207.909 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite30" type="SpineSprite" parent="."] +position = Vector2( 832.92, 207.911 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite31" type="SpineSprite" parent="."] +position = Vector2( 894.351, 210.161 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite32" type="SpineSprite" parent="."] +position = Vector2( 955.781, 210.163 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite33" type="SpineSprite" parent="."] +position = Vector2( 60.5394, 300.778 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite34" type="SpineSprite" parent="."] +position = Vector2( 118.224, 300.78 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite35" type="SpineSprite" parent="."] +position = Vector2( 171.414, 300.782 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite36" type="SpineSprite" parent="."] +position = Vector2( 223.855, 303.032 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite37" type="SpineSprite" parent="."] +position = Vector2( 283.787, 302.285 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite38" type="SpineSprite" parent="."] +position = Vector2( 344.468, 300.039 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite39" type="SpineSprite" parent="."] +position = Vector2( 410.394, 302.289 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite40" type="SpineSprite" parent="."] +position = Vector2( 471.075, 302.292 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite41" type="SpineSprite" parent="."] +position = Vector2( 531.757, 302.294 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite42" type="SpineSprite" parent="."] +position = Vector2( 596.184, 302.296 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite43" type="SpineSprite" parent="."] +position = Vector2( 656.116, 303.047 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite44" type="SpineSprite" parent="."] +position = Vector2( 716.048, 304.548 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite45" type="SpineSprite" parent="."] +position = Vector2( 775.981, 300.804 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite46" type="SpineSprite" parent="."] +position = Vector2( 837.411, 300.807 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite47" type="SpineSprite" parent="."] +position = Vector2( 898.842, 303.056 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite48" type="SpineSprite" parent="."] +position = Vector2( 960.273, 303.059 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite49" type="SpineSprite" parent="."] +position = Vector2( 60.5361, 389.178 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite50" type="SpineSprite" parent="."] +position = Vector2( 118.221, 389.18 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite51" type="SpineSprite" parent="."] +position = Vector2( 171.411, 389.182 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite52" type="SpineSprite" parent="."] +position = Vector2( 223.851, 391.432 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite53" type="SpineSprite" parent="."] +position = Vector2( 283.784, 390.685 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite54" type="SpineSprite" parent="."] +position = Vector2( 344.465, 388.44 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite55" type="SpineSprite" parent="."] +position = Vector2( 410.391, 390.689 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite56" type="SpineSprite" parent="."] +position = Vector2( 471.072, 390.692 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite57" type="SpineSprite" parent="."] +position = Vector2( 531.753, 390.694 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite58" type="SpineSprite" parent="."] +position = Vector2( 596.181, 390.696 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite59" type="SpineSprite" parent="."] +position = Vector2( 656.113, 391.448 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite60" type="SpineSprite" parent="."] +position = Vector2( 716.045, 392.948 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite61" type="SpineSprite" parent="."] +position = Vector2( 775.978, 389.204 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite62" type="SpineSprite" parent="."] +position = Vector2( 837.408, 389.207 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite63" type="SpineSprite" parent="."] +position = Vector2( 898.839, 391.456 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite64" type="SpineSprite" parent="."] +position = Vector2( 960.269, 391.459 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite65" type="SpineSprite" parent="."] +position = Vector2( 62.0311, 477.578 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite66" type="SpineSprite" parent="."] +position = Vector2( 119.716, 477.581 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite67" type="SpineSprite" parent="."] +position = Vector2( 172.906, 477.583 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite68" type="SpineSprite" parent="."] +position = Vector2( 225.346, 479.832 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite69" type="SpineSprite" parent="."] +position = Vector2( 285.279, 479.085 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite70" type="SpineSprite" parent="."] +position = Vector2( 345.96, 476.84 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite71" type="SpineSprite" parent="."] +position = Vector2( 411.886, 479.09 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite72" type="SpineSprite" parent="."] +position = Vector2( 472.567, 479.092 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite73" type="SpineSprite" parent="."] +position = Vector2( 533.248, 479.094 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite74" type="SpineSprite" parent="."] +position = Vector2( 597.676, 479.096 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite75" type="SpineSprite" parent="."] +position = Vector2( 657.608, 479.848 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite76" type="SpineSprite" parent="."] +position = Vector2( 717.54, 481.348 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite77" type="SpineSprite" parent="."] +position = Vector2( 777.473, 477.605 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite78" type="SpineSprite" parent="."] +position = Vector2( 838.903, 477.607 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite79" type="SpineSprite" parent="."] +position = Vector2( 900.334, 479.857 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite80" type="SpineSprite" parent="."] +position = Vector2( 961.765, 479.859 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite81" type="SpineSprite" parent="."] +position = Vector2( 66.5229, 562.233 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite82" type="SpineSprite" parent="."] +position = Vector2( 124.208, 562.235 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite83" type="SpineSprite" parent="."] +position = Vector2( 177.398, 562.237 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite84" type="SpineSprite" parent="."] +position = Vector2( 229.838, 564.486 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite85" type="SpineSprite" parent="."] +position = Vector2( 289.77, 563.74 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite86" type="SpineSprite" parent="."] +position = Vector2( 350.452, 561.494 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite87" type="SpineSprite" parent="."] +position = Vector2( 416.377, 563.744 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite88" type="SpineSprite" parent="."] +position = Vector2( 477.059, 563.746 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite89" type="SpineSprite" parent="."] +position = Vector2( 537.74, 563.749 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite90" type="SpineSprite" parent="."] +position = Vector2( 602.167, 563.751 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite91" type="SpineSprite" parent="."] +position = Vector2( 662.1, 564.502 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite92" type="SpineSprite" parent="."] +position = Vector2( 722.032, 566.003 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite93" type="SpineSprite" parent="."] +position = Vector2( 781.964, 562.259 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite94" type="SpineSprite" parent="."] +position = Vector2( 843.395, 562.261 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite95" type="SpineSprite" parent="."] +position = Vector2( 904.826, 564.511 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) + +[node name="SpineSprite96" type="SpineSprite" parent="."] +position = Vector2( 966.256, 564.513 ) +scale = Vector2( 0.1, 0.1 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "" +preview_frame = false +preview_time = 0.0 +script = ExtResource( 2 ) diff --git a/spine-godot/example/tests/ragdoll.tscn b/spine-godot/example/tests/ragdoll.tscn new file mode 100644 index 000000000..9f9abfb11 --- /dev/null +++ b/spine-godot/example/tests/ragdoll.tscn @@ -0,0 +1,53 @@ +[gd_scene format=2] + +[node name="Node2D" type="Node2D"] + +[node name="A" type="RigidBody2D" parent="."] +position = Vector2( 483, 158 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="A"] +position = Vector2( 6, 17 ) +polygon = PoolVector2Array( -38, 6, 28, 6, 28, -45, -40, -45 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="B" type="RigidBody2D" parent="."] +position = Vector2( 484, 228 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="B"] +position = Vector2( 6, 17 ) +polygon = PoolVector2Array( -38, 6, 28, 6, 28, -45, -40, -45 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="C" type="RigidBody2D" parent="."] +position = Vector2( 485, 296 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="C"] +position = Vector2( 6, 17 ) +polygon = PoolVector2Array( -38, 6, 28, 6, 28, -45, -40, -45 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="PinJoint2D" type="PinJoint2D" parent="."] +position = Vector2( 484, 189 ) +node_a = NodePath("../A") +node_b = NodePath("../B") +bias = 0.9 +disable_collision = false + +[node name="PinJoint2D2" type="PinJoint2D" parent="."] +position = Vector2( 486, 257 ) +node_a = NodePath("../B") +node_b = NodePath("../C") +bias = 0.9 +disable_collision = false + +[node name="Ground" type="StaticBody2D" parent="."] +position = Vector2( 489, 478 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Ground"] +polygon = PoolVector2Array( -116, -4, 128, -100, 204, 34, -156, 48 ) diff --git a/spine-godot/example/tests/transforms.tscn b/spine-godot/example/tests/transforms.tscn new file mode 100644 index 000000000..faa212623 --- /dev/null +++ b/spine-godot/example/tests/transforms.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=1] +[ext_resource path="res://icon.png" type="Texture" id=2] + +[node name="Node2D" type="Node2D"] + +[node name="SpineSprite" type="SpineSprite" parent="."] +position = Vector2( 459.397, 501.236 ) +scale = Vector2( 0.742335, 0.742335 ) +skeleton_data_res = ExtResource( 1 ) +preview_animation = "aim" +preview_frame = true +preview_time = 0.0 + +[node name="SpineBoneNode" type="SpineBoneNode" parent="SpineSprite"] +position = Vector2( 40.8752, -276.036 ) +rotation = 0.837234 +bone_name = "gun" +bone_mode = 1 +enabled = false +color = Color( 0, 1, 0.0627451, 0.466667 ) + +[node name="Sprite" type="Sprite" parent="SpineSprite/SpineBoneNode"] +visible = false +texture = ExtResource( 2 ) diff --git a/spine-godot/example/tests/unit-tests.gd b/spine-godot/example/tests/unit-tests.gd new file mode 100644 index 000000000..9a48ab841 --- /dev/null +++ b/spine-godot/example/tests/unit-tests.gd @@ -0,0 +1,39 @@ +extends SpineSprite + +func test_spine_animation(): + var walkAnim: SpineAnimation = get_skeleton().get_data().find_animation("walk") + assert(walkAnim.get_name() == "walk") + var duration = walkAnim.get_duration() + walkAnim.set_duration(duration + 1) + assert(walkAnim.get_duration() == duration + 1) + assert(walkAnim.get_timelines().size() == 39) + var timeline: SpineTimeline = walkAnim.get_timelines()[0] + var propertyIds = timeline.get_property_ids() + assert(walkAnim.has_timeline(propertyIds)) + assert(!walkAnim.has_timeline([0])) + +func test_spine_timeline(): + var walkAnim: SpineAnimation = get_skeleton().get_data().find_animation("walk") + var timeline: SpineTimeline = walkAnim.get_timelines()[0] + assert(timeline.get_duration() == 1) + assert(timeline.get_property_ids() == [4294967300]) + assert(timeline.get_type() == "RotateTimeline") + +func test_spine_object_invalidation(): + var skeleton_data = get_skeleton().get_data() + var bone_data = skeleton_data.find_bone("gun"); + var old_bone_data_x = bone_data.get_x(); + var bone = get_skeleton().find_bone("gun") + var old_bone_x = bone.get_x() + skeleton_data_res = null + assert(old_bone_x != bone.get_x()) + assert(old_bone_data_x == bone_data.get_x()) + skeleton_data.atlas_res = null; + assert(old_bone_data_x != bone_data.get_x()) + +func _ready(): + + test_spine_animation() + test_spine_timeline() + test_spine_object_invalidation() + print("All tests passed") diff --git a/spine-godot/example/tests/unit-tests.tscn b/spine-godot/example/tests/unit-tests.tscn new file mode 100644 index 000000000..d7c4a3193 --- /dev/null +++ b/spine-godot/example/tests/unit-tests.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://tests/unit-tests.gd" type="Script" id=1] +[ext_resource path="res://assets/spineboy/spineboy-data-res.tres" type="SpineSkeletonDataResource" id=2] + +[node name="Node2D" type="Node2D"] +position = Vector2( 496.659, 431.634 ) +scale = Vector2( 0.7, 0.7 ) + +[node name="SpineSprite" type="SpineSprite" parent="."] +skeleton_data_res = ExtResource( 2 ) +script = ExtResource( 1 ) diff --git a/spine-godot/spine_godot/GodotSpineExtension.cpp b/spine-godot/spine_godot/GodotSpineExtension.cpp new file mode 100644 index 000000000..c37b91a3a --- /dev/null +++ b/spine-godot/spine_godot/GodotSpineExtension.cpp @@ -0,0 +1,73 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "GodotSpineExtension.h" +#include "core/os/memory.h" +#include "core/version.h" +#if VERSION_MAJOR > 3 +#include "core/io/file_access.h" +#else +#include "core/os/file_access.h" +#endif +#include + +spine::SpineExtension *spine::getDefaultExtension() { + return new GodotSpineExtension(); +} + +void *GodotSpineExtension::_alloc(size_t size, const char *file, int line) { + return memalloc(size); +} + +void *GodotSpineExtension::_calloc(size_t size, const char *file, int line) { + auto p = memalloc(size); + memset(p, 0, size); + return p; +} + +void *GodotSpineExtension::_realloc(void *ptr, size_t size, const char *file, int line) { + return memrealloc(ptr, size); +} + +void GodotSpineExtension::_free(void *mem, const char *file, int line) { + memfree(mem); +} + +char *GodotSpineExtension::_readFile(const spine::String &path, int *length) { + Error error; + auto res = FileAccess::get_file_as_array(String(path.buffer()), &error); + if (error != OK) { + if (length) *length = 0; + return NULL; + } + auto r = alloc(res.size(), __FILE__, __LINE__); + memcpy(r, res.ptr(), res.size()); + if (length) *length = res.size(); + return r; +} diff --git a/spine-godot/spine_godot/GodotSpineExtension.h b/spine-godot/spine_godot/GodotSpineExtension.h new file mode 100644 index 000000000..0d7a3e861 --- /dev/null +++ b/spine-godot/spine_godot/GodotSpineExtension.h @@ -0,0 +1,45 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include + +class GodotSpineExtension : public spine::SpineExtension { +protected: + virtual void *_alloc(size_t size, const char *file, int line); + + virtual void *_calloc(size_t size, const char *file, int line); + + virtual void *_realloc(void *ptr, size_t size, const char *file, int line); + + virtual void _free(void *mem, const char *file, int line); + + virtual char *_readFile(const spine::String &path, int *length); +}; diff --git a/spine-godot/spine_godot/SCsub b/spine-godot/spine_godot/SCsub new file mode 100644 index 000000000..6718c5005 --- /dev/null +++ b/spine-godot/spine_godot/SCsub @@ -0,0 +1,15 @@ +Import('env') + +# Need to add the include path to env so the vsproj generator consumes it. +if env["vsproj"]: + env.Append(CPPPATH=["#../spine_godot/spine-cpp/include"]) + +env_spine_runtime = env.Clone() +env_spine_runtime.Append(CPPPATH=["#../spine_godot/spine-cpp/include"]) +env_spine_runtime.add_source_files(env.modules_sources, "spine-cpp/src/spine/*.cpp") +env_spine_runtime.add_source_files(env.modules_sources, "*.cpp") + +# Needed on Clang to not have a gazillion -Winconsistent-missing-override warnings for GDCLASS +# I do not understand why other modules using GDCLASS do not have this issue when compiling. +if not env_spine_runtime.msvc: + env_spine_runtime.Append(CXXFLAGS=["-Wno-inconsistent-missing-override"]) diff --git a/spine-godot/spine_godot/SpineAnimation.cpp b/spine-godot/spine_godot/SpineAnimation.cpp new file mode 100644 index 000000000..944487687 --- /dev/null +++ b/spine-godot/spine_godot/SpineAnimation.cpp @@ -0,0 +1,99 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineAnimation.h" +#include "SpineSkeleton.h" +#include "SpineEvent.h" +#include "SpineTimeline.h" +#if VERSION_MAJOR == 3 +#include "core/method_bind_ext.gen.inc" +#endif + +void SpineAnimation::_bind_methods() { + ClassDB::bind_method(D_METHOD("get_name"), &SpineAnimation::get_name); + ClassDB::bind_method(D_METHOD("get_duration"), &SpineAnimation::get_duration); + ClassDB::bind_method(D_METHOD("set_duration", "duration"), &SpineAnimation::set_duration); + + ClassDB::bind_method(D_METHOD("apply", "skeleton", "last_time", "time", "loop", "events", "alpha", "blend", "direction"), &SpineAnimation::apply); + ClassDB::bind_method(D_METHOD("get_timelines"), &SpineAnimation::get_timelines); + ClassDB::bind_method(D_METHOD("has_timeline", "ids"), &SpineAnimation::has_timeline); +} + +String SpineAnimation::get_name() { + SPINE_CHECK(get_spine_object(), "") + return get_spine_object()->getName().buffer(); +} + +float SpineAnimation::get_duration() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getDuration(); +} + +void SpineAnimation::set_duration(float duration) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setDuration(duration); +} + +void SpineAnimation::apply(Ref skeleton, float last_time, float time, bool loop, + Array events, float alpha, SpineConstant::MixBlend blend, + SpineConstant::MixDirection direction) { + SPINE_CHECK(get_spine_object(), ) + spine::Vector spineEvents; + get_spine_object()->apply(*(skeleton->get_spine_object()), last_time, time, loop, &spineEvents, alpha, (spine::MixBlend) blend, (spine::MixDirection) direction); + for (int i = 0; i < (int) spineEvents.size(); ++i) { + auto event_ref = memnew(SpineEvent); + event_ref->set_spine_object(skeleton->get_spine_owner(), spineEvents[i]); + events.append(event_ref); + } +} + +Array SpineAnimation::get_timelines() { + Array result; + SPINE_CHECK(get_spine_object(), result) + auto &timelines = get_spine_object()->getTimelines(); + result.resize((int) timelines.size()); + + for (int i = 0; i < (int) result.size(); ++i) { + auto timeline_ref = Ref(memnew(SpineTimeline)); + timeline_ref->set_spine_object(get_spine_owner(), timelines[i]); + result.set(i, timeline_ref); + } + return result; +} + +bool SpineAnimation::has_timeline(Array ids) { + SPINE_CHECK(get_spine_object(), false) + spine::Vector property_ids; + property_ids.setSize(ids.size(), 0); + + for (int i = 0; i < (int) property_ids.size(); ++i) { + property_ids[i] = (int64_t) ids[i]; + } + return get_spine_object()->hasTimeline(property_ids); +} diff --git a/spine-godot/spine_godot/SpineAnimation.h b/spine-godot/spine_godot/SpineAnimation.h new file mode 100644 index 000000000..3a04c73c3 --- /dev/null +++ b/spine-godot/spine_godot/SpineAnimation.h @@ -0,0 +1,59 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include "SpineConstant.h" +#include + +class SpineEvent; +class SpineSkeleton; +class SpineTimeline; +class SpineSkeletonDataResource; + +class SpineAnimation : public SpineSkeletonDataResourceOwnedObject { + GDCLASS(SpineAnimation, SpineObjectWrapper) + +protected: + static void _bind_methods(); + +public: + void apply(Ref skeleton, float last_time, float time, bool loop, Array events, float alpha, SpineConstant::MixBlend blend, SpineConstant::MixDirection direction); + + Array get_timelines(); + + bool has_timeline(Array ids); + + String get_name(); + + float get_duration(); + + void set_duration(float duration); +}; diff --git a/spine-godot/spine_godot/SpineAnimationState.cpp b/spine-godot/spine_godot/SpineAnimationState.cpp new file mode 100644 index 000000000..7052bc91b --- /dev/null +++ b/spine-godot/spine_godot/SpineAnimationState.cpp @@ -0,0 +1,171 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineAnimationState.h" +#include "SpineTrackEntry.h" + +void SpineAnimationState::_bind_methods() { + ClassDB::bind_method(D_METHOD("update", "delta"), &SpineAnimationState::update, DEFVAL(0)); + ClassDB::bind_method(D_METHOD("apply", "skeleton"), &SpineAnimationState::apply); + ClassDB::bind_method(D_METHOD("clear_tracks"), &SpineAnimationState::clear_tracks); + ClassDB::bind_method(D_METHOD("clear_track"), &SpineAnimationState::clear_track); + ClassDB::bind_method(D_METHOD("get_num_tracks"), &SpineAnimationState::get_num_tracks); + ClassDB::bind_method(D_METHOD("set_animation", "animation_name", "loop", "track_id"), &SpineAnimationState::set_animation, DEFVAL(true), DEFVAL(0)); + ClassDB::bind_method(D_METHOD("add_animation", "animation_name", "delay", "loop", "track_id"), &SpineAnimationState::add_animation, DEFVAL(0), DEFVAL(true), DEFVAL(0)); + ClassDB::bind_method(D_METHOD("set_empty_animation", "track_id", "mix_duration"), &SpineAnimationState::set_empty_animation); + ClassDB::bind_method(D_METHOD("add_empty_animation", "track_id", "mix_duration", "delay"), &SpineAnimationState::add_empty_animation); + ClassDB::bind_method(D_METHOD("set_empty_animations", "mix_duration"), &SpineAnimationState::set_empty_animations); + ClassDB::bind_method(D_METHOD("get_current", "track_id"), &SpineAnimationState::get_current); + ClassDB::bind_method(D_METHOD("get_time_scale"), &SpineAnimationState::get_time_scale); + ClassDB::bind_method(D_METHOD("set_time_scale", "time_scale"), &SpineAnimationState::set_time_scale); + ClassDB::bind_method(D_METHOD("disable_queue"), &SpineAnimationState::disable_queue); + ClassDB::bind_method(D_METHOD("enable_queue"), &SpineAnimationState::enable_queue); +} + +SpineAnimationState::SpineAnimationState() : animation_state(nullptr), sprite(nullptr) { +} + +SpineAnimationState::~SpineAnimationState() { + delete animation_state; +} + +void SpineAnimationState::set_spine_sprite(SpineSprite *_sprite) { + delete animation_state; + animation_state = nullptr; + sprite = _sprite; + if (!sprite || !sprite->get_skeleton_data_res().is_valid() || !sprite->get_skeleton_data_res()->is_skeleton_data_loaded()) return; + animation_state = new spine::AnimationState(sprite->get_skeleton_data_res()->get_animation_state_data()); +} + +void SpineAnimationState::update(float delta) { + SPINE_CHECK(animation_state, ) + animation_state->update(delta); +} + +bool SpineAnimationState::apply(Ref skeleton) { + SPINE_CHECK(animation_state, false) + if (!skeleton->get_spine_object()) return false; + return animation_state->apply(*(skeleton->get_spine_object())); +} + +void SpineAnimationState::clear_tracks() { + SPINE_CHECK(animation_state, ) + animation_state->clearTracks(); +} + +void SpineAnimationState::clear_track(int track_id) { + SPINE_CHECK(animation_state, ) + animation_state->clearTrack(track_id); +} + +int SpineAnimationState::get_num_tracks() { + SPINE_CHECK(animation_state, 0) + int highest_index = -1; + for (int i = 0; i < animation_state->getTracks().size(); i++) { + if (animation_state->getTracks()[i]) highest_index = i; + } + return highest_index + 1; +} + + +Ref SpineAnimationState::set_animation(const String &animation_name, bool loop, int track) { + SPINE_CHECK(animation_state, nullptr) + auto skeleton_data = animation_state->getData()->getSkeletonData(); + auto animation = skeleton_data->findAnimation(animation_name.utf8().ptr()); + if (!animation) { + ERR_PRINT(String("Can not find animation: ") + animation_name); + return nullptr; + } + auto track_entry = animation_state->setAnimation(track, animation, loop); + Ref track_entry_ref(memnew(SpineTrackEntry)); + track_entry_ref->set_spine_object(sprite, track_entry); + return track_entry_ref; +} + +Ref SpineAnimationState::add_animation(const String &animation_name, float delay, bool loop, int track) { + SPINE_CHECK(animation_state, nullptr) + auto skeleton_data = animation_state->getData()->getSkeletonData(); + auto animation = skeleton_data->findAnimation(animation_name.utf8().ptr()); + if (!animation) { + ERR_PRINT(String("Can not find animation: ") + animation_name); + return nullptr; + } + auto track_entry = animation_state->addAnimation(track, animation, loop, delay); + Ref track_entry_ref(memnew(SpineTrackEntry)); + track_entry_ref->set_spine_object(sprite, track_entry); + return track_entry_ref; +} + +Ref SpineAnimationState::set_empty_animation(int track_id, float mix_duration) { + SPINE_CHECK(animation_state, nullptr) + auto track_entry = animation_state->setEmptyAnimation(track_id, mix_duration); + Ref track_entry_ref(memnew(SpineTrackEntry)); + track_entry_ref->set_spine_object(sprite, track_entry); + return track_entry_ref; +} +Ref SpineAnimationState::add_empty_animation(int track_id, float mix_duration, float delay) { + SPINE_CHECK(animation_state, nullptr) + auto track_entry = animation_state->addEmptyAnimation(track_id, mix_duration, delay); + Ref track_entry_ref(memnew(SpineTrackEntry)); + track_entry_ref->set_spine_object(sprite, track_entry); + return track_entry_ref; +} +void SpineAnimationState::set_empty_animations(float mix_duration) { + SPINE_CHECK(animation_state, ) + animation_state->setEmptyAnimations(mix_duration); +} + +Ref SpineAnimationState::get_current(int track_index) { + SPINE_CHECK(animation_state, nullptr) + auto track_entry = animation_state->getCurrent(track_index); + if (!track_entry) return nullptr; + Ref track_entry_ref(memnew(SpineTrackEntry)); + track_entry_ref->set_spine_object(sprite, track_entry); + return track_entry_ref; +} + +float SpineAnimationState::get_time_scale() { + SPINE_CHECK(animation_state, 0) + return animation_state->getTimeScale(); +} + +void SpineAnimationState::set_time_scale(float time_scale) { + SPINE_CHECK(animation_state, ) + animation_state->setTimeScale(time_scale); +} + +void SpineAnimationState::disable_queue() { + SPINE_CHECK(animation_state, ) + animation_state->disableQueue(); +} + +void SpineAnimationState::enable_queue() { + SPINE_CHECK(animation_state, ) + animation_state->enableQueue(); +} diff --git a/spine-godot/spine_godot/SpineAnimationState.h b/spine-godot/spine_godot/SpineAnimationState.h new file mode 100644 index 000000000..88a0a3865 --- /dev/null +++ b/spine-godot/spine_godot/SpineAnimationState.h @@ -0,0 +1,84 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include "SpineSkeleton.h" + +class SpineTrackEntry; + +class SpineAnimationState : public REFCOUNTED { + GDCLASS(SpineAnimationState, REFCOUNTED) + +protected: + static void _bind_methods(); + +private: + spine::AnimationState *animation_state; + SpineSprite *sprite; + +public: + SpineAnimationState(); + ~SpineAnimationState(); + + spine::AnimationState *get_spine_object() { return animation_state; } + + void set_spine_sprite(SpineSprite *sprite); + + void update(float delta); + + bool apply(Ref skeleton); + + void clear_tracks(); + + void clear_track(int track_id); + + int get_num_tracks(); + + Ref set_animation(const String &animation_name, bool loop, int track_id); + + Ref add_animation(const String &animation_name, float delay, bool loop, int track_id); + + Ref set_empty_animation(int track_id, float mix_duration); + + Ref add_empty_animation(int track_id, float mix_duration, float delay); + + void set_empty_animations(float mix_duration); + + Ref get_current(int track_index); + + float get_time_scale(); + + void set_time_scale(float time_scale); + + void disable_queue(); + + void enable_queue(); +}; diff --git a/spine-godot/spine_godot/SpineAnimationTrack.cpp b/spine-godot/spine_godot/SpineAnimationTrack.cpp new file mode 100644 index 000000000..e67f391ca --- /dev/null +++ b/spine-godot/spine_godot/SpineAnimationTrack.cpp @@ -0,0 +1,476 @@ +#include "SpineAnimationTrack.h" +#if VERSION_MAJOR > 3 +#include "core/config/engine.h" +#else +#include "core/engine.h" +#endif +#include "godot/editor/editor_node.h" +#include "scene/animation/animation_player.h" +#include "scene/resources/animation.h" + +#ifdef TOOLS_ENABLED +#include "editor/plugins/animation_player_editor_plugin.h" +#endif + +void SpineAnimationTrack::_bind_methods() { + ClassDB::bind_method(D_METHOD("set_animation_name", "animation_name"), &SpineAnimationTrack::set_animation_name); + ClassDB::bind_method(D_METHOD("get_animation_name"), &SpineAnimationTrack::get_animation_name); + ClassDB::bind_method(D_METHOD("set_loop", "loop"), &SpineAnimationTrack::set_loop); + ClassDB::bind_method(D_METHOD("get_loop"), &SpineAnimationTrack::get_loop); + + ClassDB::bind_method(D_METHOD("set_track_index", "track_index"), &SpineAnimationTrack::set_track_index); + ClassDB::bind_method(D_METHOD("get_track_index"), &SpineAnimationTrack::get_track_index); + ClassDB::bind_method(D_METHOD("set_mix_duration", "mix_duration"), &SpineAnimationTrack::set_mix_duration); + ClassDB::bind_method(D_METHOD("get_mix_duration"), &SpineAnimationTrack::get_mix_duration); + ClassDB::bind_method(D_METHOD("set_hold_previous", "hold_previous"), &SpineAnimationTrack::set_hold_previous); + ClassDB::bind_method(D_METHOD("get_hold_previous"), &SpineAnimationTrack::get_hold_previous); + ClassDB::bind_method(D_METHOD("set_reverse", "reverse"), &SpineAnimationTrack::set_reverse); + ClassDB::bind_method(D_METHOD("get_reverse"), &SpineAnimationTrack::get_reverse); + ClassDB::bind_method(D_METHOD("set_shortest_rotation", "shortest_rotation"), &SpineAnimationTrack::set_shortest_rotation); + ClassDB::bind_method(D_METHOD("get_shortest_rotation"), &SpineAnimationTrack::get_shortest_rotation); + ClassDB::bind_method(D_METHOD("set_time_scale", "time_scale"), &SpineAnimationTrack::set_time_scale); + ClassDB::bind_method(D_METHOD("get_time_scale"), &SpineAnimationTrack::get_time_scale); + ClassDB::bind_method(D_METHOD("set_alpha", "alpha"), &SpineAnimationTrack::set_alpha); + ClassDB::bind_method(D_METHOD("get_alpha"), &SpineAnimationTrack::get_alpha); + ClassDB::bind_method(D_METHOD("set_attachment_threshold", "attachment_threshold"), &SpineAnimationTrack::set_attachment_threshold); + ClassDB::bind_method(D_METHOD("get_attachment_threshold"), &SpineAnimationTrack::get_attachment_threshold); + ClassDB::bind_method(D_METHOD("set_draw_order_threshold", "draw_order_threshold"), &SpineAnimationTrack::set_draw_order_threshold); + ClassDB::bind_method(D_METHOD("get_draw_order_threshold"), &SpineAnimationTrack::get_draw_order_threshold); + ClassDB::bind_method(D_METHOD("set_mix_blend", "mix_blend"), &SpineAnimationTrack::set_mix_blend); + ClassDB::bind_method(D_METHOD("get_mix_blend"), &SpineAnimationTrack::get_mix_blend); + ClassDB::bind_method(D_METHOD("set_debug", "debug"), &SpineAnimationTrack::set_debug); + ClassDB::bind_method(D_METHOD("get_debug"), &SpineAnimationTrack::get_debug); + + ClassDB::bind_method(D_METHOD("update_animation_state", "spine_sprite"), &SpineAnimationTrack::update_animation_state); + + ADD_PROPERTY(PropertyInfo(Variant::STRING, "animation_name", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_INTERNAL | PROPERTY_USAGE_NOEDITOR), "set_animation_name", "get_animation_name"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "loop", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_INTERNAL | PROPERTY_USAGE_NOEDITOR), "set_loop", "get_loop"); + + ADD_PROPERTY(PropertyInfo(Variant::INT, "track_index", PROPERTY_HINT_RANGE, "0,256,0"), "set_track_index", "get_track_index"); + ADD_PROPERTY(PropertyInfo(VARIANT_FLOAT, "mix_duration"), "set_mix_duration", "get_mix_duration"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "hold_previous"), "set_hold_previous", "get_hold_previous"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "reverse"), "set_reverse", "get_reverse"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "shortest_rotation"), "set_shortest_rotation", "get_shortest_rotation"); + ADD_PROPERTY(PropertyInfo(Variant::VARIANT_FLOAT, "time_scale"), "set_time_scale", "get_time_scale"); + ADD_PROPERTY(PropertyInfo(Variant::VARIANT_FLOAT, "alpha"), "set_alpha", "get_alpha"); + ADD_PROPERTY(PropertyInfo(Variant::VARIANT_FLOAT, "attachment_threshold"), "set_attachment_threshold", "get_attachment_threshold"); + ADD_PROPERTY(PropertyInfo(Variant::VARIANT_FLOAT, "draw_order_threshold"), "set_draw_order_threshold", "get_draw_order_threshold"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "mix_blend", PROPERTY_HINT_ENUM, "Setup,First,Replace,Add"), "set_mix_blend", "get_mix_blend"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "debug"), "set_debug", "get_debug"); +} + +SpineAnimationTrack::SpineAnimationTrack() : loop(false), + track_index(-1), + mix_duration(-1), + hold_previous(false), + reverse(false), + shortest_rotation(false), + time_scale(1), + alpha(1), + attachment_threshold(0), + draw_order_threshold(0), + mix_blend(SpineConstant::MixBlend_Replace), + debug(false), + sprite(nullptr) { +} + +void SpineAnimationTrack::_notification(int what) { + switch (what) { + case NOTIFICATION_PARENTED: { + sprite = Object::cast_to(get_parent()); + if (sprite) +#if VERSION_MAJOR > 3 + sprite->connect("before_animation_state_update", callable_mp(this, &SpineAnimationTrack::update_animation_state)); +#else + sprite->connect("before_animation_state_update", this, "update_animation_state"); +#endif + NOTIFY_PROPERTY_LIST_CHANGED(); + break; + } + case NOTIFICATION_READY: { + setup_animation_player(); + break; + } + case NOTIFICATION_UNPARENTED: { + if (sprite) { +#if VERSION_MAJOR > 3 + sprite->disconnect("before_animation_state_update", callable_mp(this, &SpineAnimationTrack::update_animation_state)); +#else + sprite->disconnect("before_animation_state_update", this, "update_animation_state"); +#endif + sprite = nullptr; + } + break; + } + default: + break; + } +} + +AnimationPlayer *SpineAnimationTrack::find_animation_player() { + AnimationPlayer *animation_player = nullptr; + for (int i = 0; i < get_child_count(); i++) { + animation_player = cast_to(get_child(i)); + if (animation_player) { + break; + } + } + return animation_player; +} + +void SpineAnimationTrack::setup_animation_player() { + if (!sprite) return; + if (!sprite->get_skeleton_data_res().is_valid() || !sprite->get_skeleton_data_res()->is_skeleton_data_loaded()) return; + AnimationPlayer *animation_player = find_animation_player(); + if (!animation_player) return; + + // If we don't have a track index yet, find the highest track number used + // by existing tracks. + if (track_index < 0) { + int highest_track_number = -1; + for (int i = 0; i < sprite->get_child_count(); i++) { + auto other_track = cast_to(sprite->get_child(i)); + if (other_track) { + if (other_track->track_index > highest_track_number) + highest_track_number = other_track->track_index; + } + } + track_index = highest_track_number + 1; + } + + // Find the animation player under the track and reset its animation. Create a new one + // if there isn't one already. + if (!animation_player) { + animation_player = memnew(AnimationPlayer); + animation_player->set_name(String("{0} Track {1}").format(varray(sprite->get_name(), String::num_int64(track_index)))); + add_child(animation_player); + animation_player->set_owner(sprite->get_owner()); + } else { +#if VERSION_MAJOR > 3 + List animation_libraries; + animation_player->get_animation_library_list(&animation_libraries); + for (int i = 0; i < animation_libraries.size(); i++) { + animation_player->remove_animation_library(animation_libraries[i]); + } +#else + List animation_names; + animation_player->get_animation_list(&animation_names); + for (int i = 0; i < animation_names.size(); i++) { + animation_player->remove_animation(animation_names[i]); + } +#endif + } + + auto skeleton_data = sprite->get_skeleton_data_res()->get_skeleton_data(); + auto &animations = skeleton_data->getAnimations(); +#if VERSION_MAJOR > 3 + Ref animation_library; + animation_library.instantiate(); + animation_player->add_animation_library("", animation_library); +#endif + for (int i = 0; i < (int) animations.size(); i++) { + auto &animation = animations[i]; + Ref animation_ref = create_animation(animation, false); + Ref animation_looped_ref = create_animation(animation, true); +#if VERSION_MAJOR > 3 + animation_library->add_animation(animation_ref->get_name(), animation_ref); + animation_library->add_animation(animation_looped_ref->get_name(), animation_looped_ref); +#else + animation_player->add_animation(animation_ref->get_name(), animation_ref); + animation_player->add_animation(animation_looped_ref->get_name(), animation_looped_ref); +#endif + } + + Ref reset_animation_ref; + INSTANTIATE(reset_animation_ref); + reset_animation_ref->set_name("RESET"); +#if VERSION_MAJOR > 3 + // reset_animation_ref->set_loop(true); +#else + reset_animation_ref->set_loop(true); +#endif + reset_animation_ref->set_length(0.5f); + reset_animation_ref->add_track(Animation::TYPE_VALUE); + reset_animation_ref->track_set_path(0, NodePath(".:animation_name")); + reset_animation_ref->track_insert_key(0, 0, ""); + reset_animation_ref->add_track(Animation::TYPE_VALUE); + reset_animation_ref->track_set_path(1, NodePath(".:loop")); + reset_animation_ref->track_insert_key(1, 0, false); +#if VERSION_MAJOR > 3 + animation_library->add_animation(reset_animation_ref->get_name(), reset_animation_ref); + animation_library->add_animation("-- Empty --", reset_animation_ref); +#else + animation_player->add_animation(reset_animation_ref->get_name(), reset_animation_ref); + animation_player->add_animation("-- Empty --", reset_animation_ref); +#endif +} + +Ref SpineAnimationTrack::create_animation(spine::Animation *animation, bool loop) { + float duration = animation->getDuration(); + if (duration == 0) duration = 0.5; + + Ref animation_ref; + INSTANTIATE(animation_ref); + animation_ref->set_name(String(animation->getName().buffer()) + (loop ? "" : "_looped")); +#if VERSION_MAJOR > 3 + // animation_ref->set_loop(!loop); +#else + animation_ref->set_loop(!loop); +#endif + animation_ref->set_length(duration); + + animation_ref->add_track(Animation::TYPE_VALUE); + animation_ref->track_set_path(0, NodePath(".:animation_name")); + animation_ref->track_insert_key(0, 0, animation->getName().buffer()); + + animation_ref->add_track(Animation::TYPE_VALUE); + animation_ref->track_set_path(1, NodePath(".:loop")); + animation_ref->track_insert_key(1, 0, !loop); + + return animation_ref; +} + +void SpineAnimationTrack::update_animation_state(const Variant &variant_sprite) { + if (track_index < 0) return; + sprite = Object::cast_to(variant_sprite); + if (!sprite) return; + if (!sprite->get_skeleton_data_res().is_valid() || !sprite->get_skeleton_data_res()->is_skeleton_data_loaded()) return; + if (!sprite->get_skeleton().is_valid() || !sprite->get_animation_state().is_valid()) return; + spine::AnimationState *animation_state = sprite->get_animation_state()->get_spine_object(); + if (!animation_state) return; + spine::Skeleton *skeleton = sprite->get_skeleton()->get_spine_object(); + if (!skeleton) return; + AnimationPlayer *animation_player = find_animation_player(); + if (!animation_player) return; + + if (Engine::get_singleton()->is_editor_hint()) { +#ifdef TOOLS_ENABLED + // When the animation dock is no longer visible or we aren't being + // keyed in the current animation, bail. +#if VERSION_MAJOR > 3 + auto player_editor = AnimationPlayerEditor::get_singleton(); +#else + auto player_editor = AnimationPlayerEditor::singleton; +#endif + if (!player_editor->is_visible_in_tree()) { + skeleton->setToSetupPose(); + animation_state->clearTracks(); + animation_state->setTimeScale(1); + return; + } + + // Check if the player is actually editing an animation for which there is a track + // for us. + Ref edited_animation = player_editor->get_track_editor()->get_current_animation(); + if (!edited_animation.is_valid()) { + skeleton->setToSetupPose(); + animation_state->clearTracks(); + animation_state->setTimeScale(1); + return; + } + + int found_track_index = -1; + auto scene_path = EditorNode::get_singleton()->get_edited_scene()->get_path(); + auto animation_player_path = scene_path.rel_path_to(animation_player->get_path()); + for (int i = 0; i < edited_animation->get_track_count(); i++) { + auto path = edited_animation->track_get_path(i); + if (path == animation_player_path) { + found_track_index = i; + break; + } + } + + // if we are track 0, set the skeleton to the setup pose + // and the animation state time scale to 0, as we are + // setting track times manually. Also, kill anything + // currently in the track. + if (track_index == 0) { + skeleton->setToSetupPose(); + animation_state->setTimeScale(0); + } + animation_state->clearTrack(track_index); + if (found_track_index == -1) return; + + // If no animation is set or it's set to "[stop]", we are done. + if (EMPTY(animation_name) || animation_name == "[stop]") return; + + // If there's no keys on the timeline for this track, we are done. + if (edited_animation->track_get_key_count(found_track_index) == 0) return; + + // Find the key in the track that matches the editor's playback position + auto playback_position = player_editor->get_player()->get_current_animation_position(); + int key_index = -1; + for (int i = 0; i < edited_animation->track_get_key_count(found_track_index); i++) { + float key_time = edited_animation->track_get_key_time(found_track_index, i); + if (key_time <= playback_position) { + key_index = i; + } else { + // epsilon compare key and playback time, as playback time is imprecise + if (fabs(key_time - playback_position) < edited_animation->get_step()) { + key_index = i; + } + break; + } + } + + // No key found? bail. + if (key_index == -1) return; + + // Get the animation from our player for the key + float key_time = edited_animation->track_get_key_time(found_track_index, key_index); + String key_value = edited_animation->track_get_key_value(found_track_index, key_index); + Ref keyed_animation = animation_player->get_animation(key_value); + if (!keyed_animation.is_valid()) return; + + // Calculate the track time and setup the track entry based on the currently keyed + // properties. + float track_time = (playback_position - key_time) * time_scale; + if (track_time < 0) track_time = 0; + auto entry = animation_state->setAnimation(track_index, SPINE_STRING(animation_name), loop); + entry->setMixDuration(0); + entry->setTrackTime(track_time); + + entry->setHoldPrevious(hold_previous); + entry->setReverse(reverse); + entry->setShortestRotation(shortest_rotation); + entry->setAlpha(alpha); + entry->setAttachmentThreshold(attachment_threshold); + entry->setDrawOrderThreshold(draw_order_threshold); + entry->setMixBlend((spine::MixBlend) mix_blend); +#endif + } else { + if (animation_player->is_playing()) { + auto current_entry = animation_state->getCurrent(track_index); + bool should_set_mix = mix_duration >= 0; + bool should_set_animation = !current_entry || (animation_name != current_entry->getAnimation()->getName().buffer() || current_entry->getLoop() != loop); + + if (should_set_animation) { + if (!EMPTY(animation_name)) { + auto entry = animation_state->setAnimation(track_index, SPINE_STRING(animation_name), loop); + if (should_set_mix) entry->setMixDuration(mix_duration); + + entry->setHoldPrevious(hold_previous); + entry->setReverse(reverse); + entry->setShortestRotation(shortest_rotation); + entry->setTimeScale(time_scale); + entry->setAlpha(alpha); + entry->setAttachmentThreshold(attachment_threshold); + entry->setDrawOrderThreshold(draw_order_threshold); + entry->setMixBlend((spine::MixBlend) mix_blend); + + if (debug) print_line(String("Setting animation {0} with mix_duration {1} on track {2} on {3}").format(varray(animation_name, mix_duration, track_index, sprite->get_name())).utf8().ptr()); + } else { + if (!current_entry || (String("") != current_entry->getAnimation()->getName().buffer())) { + auto entry = animation_state->setEmptyAnimation(track_index, should_set_mix ? mix_duration : 0); + entry->setTrackEnd(FLT_MAX); + if (debug) print_line(String("Setting empty animation with mix_duration {0} on track {1} on {2}").format(varray(mix_duration, track_index, sprite->get_name())).utf8().ptr()); + } + } + } + } + } +} + +void SpineAnimationTrack::set_animation_name(const String &_animation_name) { + animation_name = _animation_name; +} + +String SpineAnimationTrack::get_animation_name() { + return animation_name; +} + +void SpineAnimationTrack::set_loop(bool _loop) { + loop = _loop; +} + +bool SpineAnimationTrack::get_loop() { + return loop; +} + +void SpineAnimationTrack::set_track_index(int _track_index) { + track_index = _track_index; +} + +int SpineAnimationTrack::get_track_index() { + return track_index; +} + +void SpineAnimationTrack::set_mix_duration(float _mix_duration) { + mix_duration = _mix_duration; +} + +float SpineAnimationTrack::get_mix_duration() { + return mix_duration; +} + +void SpineAnimationTrack::set_hold_previous(bool _hold_previous) { + hold_previous = _hold_previous; +} + +bool SpineAnimationTrack::get_hold_previous() { + return hold_previous; +} + +void SpineAnimationTrack::set_reverse(bool _reverse) { + reverse = _reverse; +} + +bool SpineAnimationTrack::get_reverse() { + return reverse; +} + +void SpineAnimationTrack::set_shortest_rotation(bool _shortest_rotation) { + shortest_rotation = _shortest_rotation; +} + +bool SpineAnimationTrack::get_shortest_rotation() { + return shortest_rotation; +} + +void SpineAnimationTrack::set_time_scale(float _time_scale) { + time_scale = _time_scale; +} + +float SpineAnimationTrack::get_time_scale() { + return time_scale; +} + +void SpineAnimationTrack::set_alpha(float _alpha) { + alpha = _alpha; +} + +float SpineAnimationTrack::get_alpha() { + return alpha; +} + +void SpineAnimationTrack::set_attachment_threshold(bool _attachment_threshold) { + attachment_threshold = _attachment_threshold; +} + +float SpineAnimationTrack::get_attachment_threshold() { + return attachment_threshold; +} + +void SpineAnimationTrack::set_draw_order_threshold(bool _draw_order_threshold) { + draw_order_threshold = _draw_order_threshold; +} + +float SpineAnimationTrack::get_draw_order_threshold() { + return draw_order_threshold; +} + +void SpineAnimationTrack::set_mix_blend(SpineConstant::MixBlend _blend) { + mix_blend = _blend; +} + +SpineConstant::MixBlend SpineAnimationTrack::get_mix_blend() { + return mix_blend; +} + +void SpineAnimationTrack::set_debug(bool _debug) { + debug = _debug; +} + +bool SpineAnimationTrack::get_debug() { + return debug; +} diff --git a/spine-godot/spine_godot/SpineAnimationTrack.h b/spine-godot/spine_godot/SpineAnimationTrack.h new file mode 100644 index 000000000..ff04ae4c6 --- /dev/null +++ b/spine-godot/spine_godot/SpineAnimationTrack.h @@ -0,0 +1,130 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineSprite.h" +#include "scene/animation/animation_player.h" +#include "scene/resources/animation.h" + +class SpineAnimationTrack : public Node { + GDCLASS(SpineAnimationTrack, Node) +protected: + // These are not exposed in the inspector, see SpineAnimationTrackInspectorPlugin. + // Instead, they are are keyed by the animations created in setup_animation_player + // and primarily used for animation player editor support like scrubbing. + String animation_name; + bool loop; + + // These can be set by the user. + int track_index; + float mix_duration; + bool hold_previous; + bool reverse; + bool shortest_rotation; + float time_scale; + float alpha; + float attachment_threshold; + float draw_order_threshold; + SpineConstant::MixBlend mix_blend; + bool debug; + + SpineSprite *sprite; + + static void _bind_methods(); + + void _notification(int what); + + AnimationPlayer *find_animation_player(); + + void setup_animation_player(); + + static Ref create_animation(spine::Animation *animation, bool loop); + + void update_animation_state(const Variant &variant_sprite); + +public: + SpineAnimationTrack(); + + void set_animation_name(const String &_animation_name); + + String get_animation_name(); + + void set_animation_time(float _animation_time); + + float get_animation_time(); + + void set_loop(bool _loop); + + bool get_loop(); + + void set_track_index(int _track_index); + + int get_track_index(); + + void set_mix_duration(float _mix_duration); + + float get_mix_duration(); + + void set_hold_previous(bool _hold_previous); + + bool get_hold_previous(); + + void set_reverse(bool _reverse); + + bool get_reverse(); + + void set_shortest_rotation(bool _shortest_rotation); + + bool get_shortest_rotation(); + + void set_time_scale(float _time_scale); + + float get_time_scale(); + + void set_alpha(float _alpha); + + float get_alpha(); + + void set_attachment_threshold(bool _attachment_threshold); + + float get_attachment_threshold(); + + void set_draw_order_threshold(bool _draw_order_threshold); + + float get_draw_order_threshold(); + + void set_mix_blend(SpineConstant::MixBlend _blend); + + SpineConstant::MixBlend get_mix_blend(); + + void set_debug(bool _debug); + + bool get_debug(); +}; diff --git a/spine-godot/spine_godot/SpineAtlasResource.cpp b/spine-godot/spine_godot/SpineAtlasResource.cpp new file mode 100644 index 000000000..1fd685786 --- /dev/null +++ b/spine-godot/spine_godot/SpineAtlasResource.cpp @@ -0,0 +1,269 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineAtlasResource.h" +#include "SpineRendererObject.h" +#include "core/io/json.h" +#include "scene/resources/texture.h" +#include + +class GodotSpineTextureLoader : public spine::TextureLoader { + + Array *textures; + Array *normal_maps; + String normal_map_prefix; + +public: + GodotSpineTextureLoader(Array *_textures, Array *_normal_maps, const String &normal_map_prefix) : textures(_textures), normal_maps(_normal_maps), normal_map_prefix(normal_map_prefix) { + } + + static String fix_path(const String &path) { + if (path.size() > 5 && path[4] == '/' && path[5] == '/') return path; + const String prefix = "res:/"; + auto i = path.find(prefix); + auto sub_str_pos = i + prefix.size() - 1; + if (sub_str_pos < 0) return path; + auto res = path.substr(sub_str_pos); + + if (!EMPTY(res)) { + if (res[0] != '/') { + return prefix + "/" + res; + } else { + return prefix + res; + } + } + return path; + } + + void load(spine::AtlasPage &page, const spine::String &path) override { + Error error = OK; + auto fixed_path = fix_path(String(path.buffer())); + +#if VERSION_MAJOR > 3 + Ref texture = ResourceLoader::load(fixed_path, "", ResourceFormatLoader::CACHE_MODE_REUSE, &error); +#else + Ref texture = ResourceLoader::load(fixed_path, "", false, &error); +#endif + if (error != OK || !texture.is_valid()) { + ERR_PRINT(vformat("Can't load texture: \"%s\"", String(path.buffer()))); + auto renderer_object = memnew(SpineRendererObject); + renderer_object->texture = Ref(nullptr); + renderer_object->normal_map = Ref(nullptr); + page.setRendererObject((void *) renderer_object); + return; + } + + textures->append(texture); + auto renderer_object = memnew(SpineRendererObject); + renderer_object->texture = texture; + renderer_object->normal_map = Ref(nullptr); + + String new_path = vformat("%s/%s_%s", fixed_path.get_base_dir(), normal_map_prefix, fixed_path.get_file()); + if (ResourceLoader::exists(new_path)) { + Ref normal_map = ResourceLoader::load(new_path); + normal_maps->append(normal_map); + renderer_object->normal_map = normal_map; + } + +#if VERSION_MAJOR > 3 + renderer_object->canvas_texture.instantiate(); + renderer_object->canvas_texture->set_diffuse_texture(renderer_object->texture); + renderer_object->canvas_texture->set_normal_texture(renderer_object->normal_map); +#endif + + page.setRendererObject((void *) renderer_object); + page.width = texture->get_width(); + page.height = texture->get_height(); + } + + void unload(void *data) override { + auto renderer_object = (SpineRendererObject *) data; + if (renderer_object->texture.is_valid()) renderer_object->texture.unref(); + if (renderer_object->normal_map.is_valid()) renderer_object->normal_map.unref(); +#if VERSION_MAJOR > 3 + if (renderer_object->canvas_texture.is_valid()) renderer_object->canvas_texture.unref(); +#endif + memdelete(renderer_object); + } +}; + +void SpineAtlasResource::_bind_methods() { + ClassDB::bind_method(D_METHOD("load_from_atlas_file", "path"), &SpineAtlasResource::load_from_atlas_file); + ClassDB::bind_method(D_METHOD("get_source_path"), &SpineAtlasResource::get_source_path); + ClassDB::bind_method(D_METHOD("get_textures"), &SpineAtlasResource::get_textures); + ClassDB::bind_method(D_METHOD("get_normal_maps"), &SpineAtlasResource::get_normal_maps); + + ADD_PROPERTY(PropertyInfo(Variant::STRING, "source_path"), "", "get_source_path"); + ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "textures"), "", "get_textures"); + ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "normal_maps"), "", "get_normal_maps"); +} + +SpineAtlasResource::SpineAtlasResource() : atlas(nullptr), texture_loader(nullptr), normal_map_prefix("n") { +} + +SpineAtlasResource::~SpineAtlasResource() { + delete atlas; + delete texture_loader; +} + +void SpineAtlasResource::clear() { + delete atlas; + atlas = nullptr; + delete texture_loader; + texture_loader = nullptr; + textures.clear(); + normal_maps.clear(); +} + +Array SpineAtlasResource::get_textures() { + return textures; +} + +Array SpineAtlasResource::get_normal_maps() { + return normal_maps; +} + +String SpineAtlasResource::get_source_path() { + return source_path; +} + +Error SpineAtlasResource::load_from_atlas_file(const String &path) { + Error err; + source_path = path; + atlas_data = FileAccess::get_file_as_string(path, &err); + if (err != OK) return err; + + clear(); + texture_loader = new GodotSpineTextureLoader(&textures, &normal_maps, normal_map_prefix); + auto atlas_utf8 = atlas_data.utf8(); + atlas = new spine::Atlas(atlas_utf8, atlas_utf8.length(), source_path.get_base_dir().utf8(), texture_loader); + if (atlas) return OK; + + clear(); + return ERR_FILE_UNRECOGNIZED; +} + +Error SpineAtlasResource::load_from_file(const String &path) { + Error error; + String json_string = FileAccess::get_file_as_string(path, &error); + if (error != OK) return error; + +#if VERSION_MAJOR > 3 + JSON json; + error = json.parse(json_string); + if (error != OK) return error; + Variant result = json.get_data(); +#else + String error_string; + int error_line; + Variant result; + error = JSON::parse(json_string, result, error_string, error_line); + if (error != OK) return error; +#endif + + Dictionary content = Dictionary(result); + source_path = content["source_path"]; + atlas_data = content["atlas_data"]; + normal_map_prefix = content["normal_texture_prefix"]; + + clear(); + texture_loader = new GodotSpineTextureLoader(&textures, &normal_maps, normal_map_prefix); + atlas = new spine::Atlas(atlas_data.utf8(), atlas_data.size(), source_path.get_base_dir().utf8(), texture_loader); + if (atlas) return OK; + + clear(); + return ERR_FILE_UNRECOGNIZED; +} + +Error SpineAtlasResource::save_to_file(const String &path) { + Error err; +#if VERSION_MAJOR > 3 + Ref file = FileAccess::open(path, FileAccess::WRITE, &err); + if (err != OK) return err; +#else + FileAccess *file = FileAccess::open(path, FileAccess::WRITE, &err); + if (err != OK) { + if (file) file->close(); + return err; + } +#endif + + Dictionary content; + content["source_path"] = source_path; + content["atlas_data"] = atlas_data; + content["normal_texture_prefix"] = normal_map_prefix; +#if VERSION_MAJOR > 3 + JSON json; + file->store_string(json.stringify(content)); + file->flush(); +#else + file->store_string(JSON::print(content)); + file->close(); +#endif + return OK; +} + +#if VERSION_MAJOR > 3 +RES SpineAtlasResourceFormatLoader::load(const String &path, const String &original_path, Error *error, bool use_sub_threads, float *progress, CacheMode cache_mode) { +#else +RES SpineAtlasResourceFormatLoader::load(const String &path, const String &original_path, Error *error) { +#endif + Ref atlas = memnew(SpineAtlasResource); + atlas->load_from_file(path); + if (error) *error = OK; + return atlas; +} + +void SpineAtlasResourceFormatLoader::get_recognized_extensions(List *extensions) const { + const char atlas_ext[] = "spatlas"; + if (!extensions->find(atlas_ext)) + extensions->push_back(atlas_ext); +} + +String SpineAtlasResourceFormatLoader::get_resource_type(const String &path) const { + return "SpineAtlasResource"; +} + +bool SpineAtlasResourceFormatLoader::handles_type(const String &type) const { + return type == "SpineAtlasResource" || ClassDB::is_parent_class(type, "SpineAtlasResource"); +} + +Error SpineAtlasResourceFormatSaver::save(const String &path, const RES &resource, uint32_t flags) { + Ref res = resource; + return res->save_to_file(path); +} + +void SpineAtlasResourceFormatSaver::get_recognized_extensions(const RES &resource, List *extensions) const { + if (Object::cast_to(*resource)) + extensions->push_back("spatlas"); +} + +bool SpineAtlasResourceFormatSaver::recognize(const RES &resource) const { + return Object::cast_to(*resource) != nullptr; +} diff --git a/spine-godot/spine_godot/SpineAtlasResource.h b/spine-godot/spine_godot/SpineAtlasResource.h new file mode 100644 index 000000000..2de2b54e0 --- /dev/null +++ b/spine-godot/spine_godot/SpineAtlasResource.h @@ -0,0 +1,105 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include "core/io/resource_loader.h" +#include "core/io/resource_saver.h" +#include "core/io/image_loader.h" +#include + +class GodotSpineTextureLoader; + +class SpineAtlasResource : public Resource { + GDCLASS(SpineAtlasResource, Resource) + + void clear(); + +protected: + static void _bind_methods(); + + spine::Atlas *atlas; + GodotSpineTextureLoader *texture_loader; + + String source_path; + String atlas_data; + String normal_map_prefix; + + Array textures; + Array normal_maps; + +public: + SpineAtlasResource(); + ~SpineAtlasResource() override; + + spine::Atlas *get_spine_atlas() { return atlas; } + + void set_normal_texture_prefix(const String &prefix) { normal_map_prefix = prefix; } + + Error load_from_atlas_file(const String &path);// .atlas + + Error load_from_file(const String &path);// .spatlas + + Error save_to_file(const String &path);// .spatlas + + String get_source_path(); + + Array get_textures(); + + Array get_normal_maps(); +}; + +class SpineAtlasResourceFormatLoader : public ResourceFormatLoader { + GDCLASS(SpineAtlasResourceFormatLoader, ResourceFormatLoader) + +public: +#if VERSION_MAJOR > 3 + RES load(const String &path, const String &original_path, Error *error, bool use_sub_threads, float *progress, CacheMode cache_mode) override; +#else + RES load(const String &path, const String &original_path, Error *error) override; +#endif + + void get_recognized_extensions(List *extensions) const override; + + bool handles_type(const String &type) const override; + + String get_resource_type(const String &path) const override; +}; + +class SpineAtlasResourceFormatSaver : public ResourceFormatSaver { + GDCLASS(SpineAtlasResourceFormatSaver, ResourceFormatSaver) + +public: + Error save(const String &path, const RES &resource, uint32_t flags) override; + + void get_recognized_extensions(const RES &resource, List *extensions) const override; + + bool recognize(const RES &resource) const override; +}; diff --git a/spine-godot/spine_godot/SpineAttachment.cpp b/spine-godot/spine_godot/SpineAttachment.cpp new file mode 100644 index 000000000..7b84c655b --- /dev/null +++ b/spine-godot/spine_godot/SpineAttachment.cpp @@ -0,0 +1,54 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineAttachment.h" +#include "SpineCommon.h" + +void SpineAttachment::_bind_methods() { + ClassDB::bind_method(D_METHOD("get_attachment_name"), &SpineAttachment::get_attachment_name); + ClassDB::bind_method(D_METHOD("copy"), &SpineAttachment::copy); +} + +SpineAttachment::~SpineAttachment() { + if (get_spine_object()) get_spine_object()->dereference(); +} + +String SpineAttachment::get_attachment_name() { + SPINE_CHECK(get_spine_object(), "") + return get_spine_object()->getName().buffer(); +} + +Ref SpineAttachment::copy() { + SPINE_CHECK(get_spine_object(), nullptr) + auto copy = get_spine_object()->copy(); + if (!copy) return nullptr; + Ref attachment_ref(memnew(SpineAttachment)); + attachment_ref->set_spine_object(get_spine_owner(), copy); + return attachment_ref; +} diff --git a/spine-godot/spine_godot/SpineAttachment.h b/spine-godot/spine_godot/SpineAttachment.h new file mode 100644 index 000000000..76826c102 --- /dev/null +++ b/spine-godot/spine_godot/SpineAttachment.h @@ -0,0 +1,49 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include + +class SpineSkeletonDataResource; + +class SpineAttachment : public SpineSkeletonDataResourceOwnedObject { + GDCLASS(SpineAttachment, SpineObjectWrapper) + +protected: + static void _bind_methods(); + +public: + ~SpineAttachment() override; + + String get_attachment_name(); + + Ref copy(); +}; diff --git a/spine-godot/spine_godot/SpineBone.cpp b/spine-godot/spine_godot/SpineBone.cpp new file mode 100644 index 000000000..1f4777d15 --- /dev/null +++ b/spine-godot/spine_godot/SpineBone.cpp @@ -0,0 +1,471 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineBone.h" +#include "SpineSprite.h" +#include "SpineSkeleton.h" +#include "SpineCommon.h" + +void SpineBone::_bind_methods() { + ClassDB::bind_method(D_METHOD("update_world_transform"), &SpineBone::update_world_transform); + ClassDB::bind_method(D_METHOD("set_to_setup_pose"), &SpineBone::set_to_setup_pose); + ClassDB::bind_method(D_METHOD("world_to_local", "world_position"), &SpineBone::world_to_local); + ClassDB::bind_method(D_METHOD("local_to_world", "local_position"), &SpineBone::local_to_world); + ClassDB::bind_method(D_METHOD("world_to_local_rotation", "world_rotation"), &SpineBone::world_to_local_rotation); + ClassDB::bind_method(D_METHOD("local_to_world_rotation", "local_rotation"), &SpineBone::local_to_world_rotation); + ClassDB::bind_method(D_METHOD("rotate_world"), &SpineBone::rotate_world); + ClassDB::bind_method(D_METHOD("get_world_to_local_rotation_x"), &SpineBone::get_world_to_local_rotation_x); + ClassDB::bind_method(D_METHOD("get_world_to_local_rotation_y"), &SpineBone::get_world_to_local_rotation_y); + ClassDB::bind_method(D_METHOD("get_data"), &SpineBone::get_data); + ClassDB::bind_method(D_METHOD("get_parent"), &SpineBone::get_parent); + ClassDB::bind_method(D_METHOD("get_children"), &SpineBone::get_children); + ClassDB::bind_method(D_METHOD("get_x"), &SpineBone::get_x); + ClassDB::bind_method(D_METHOD("set_x", "v"), &SpineBone::set_x); + ClassDB::bind_method(D_METHOD("get_y"), &SpineBone::get_y); + ClassDB::bind_method(D_METHOD("set_y", "v"), &SpineBone::set_y); + ClassDB::bind_method(D_METHOD("get_rotation"), &SpineBone::get_rotation); + ClassDB::bind_method(D_METHOD("set_rotation", "v"), &SpineBone::set_rotation); + ClassDB::bind_method(D_METHOD("get_scale_x"), &SpineBone::get_scale_x); + ClassDB::bind_method(D_METHOD("set_scale_x", "v"), &SpineBone::set_scale_x); + ClassDB::bind_method(D_METHOD("get_scale_y"), &SpineBone::get_scale_y); + ClassDB::bind_method(D_METHOD("set_scale_y", "v"), &SpineBone::set_scale_y); + ClassDB::bind_method(D_METHOD("get_shear_x"), &SpineBone::get_shear_x); + ClassDB::bind_method(D_METHOD("set_shear_x", "v"), &SpineBone::set_shear_x); + ClassDB::bind_method(D_METHOD("get_shear_y"), &SpineBone::get_shear_y); + ClassDB::bind_method(D_METHOD("set_shear_y", "v"), &SpineBone::set_shear_y); + ClassDB::bind_method(D_METHOD("get_applied_rotation"), &SpineBone::get_applied_rotation); + ClassDB::bind_method(D_METHOD("set_applied_rotation", "v"), &SpineBone::set_applied_rotation); + ClassDB::bind_method(D_METHOD("get_a_x"), &SpineBone::get_a_x); + ClassDB::bind_method(D_METHOD("set_a_x", "v"), &SpineBone::set_a_x); + ClassDB::bind_method(D_METHOD("get_a_y"), &SpineBone::get_a_y); + ClassDB::bind_method(D_METHOD("set_a_y", "v"), &SpineBone::set_a_y); + ClassDB::bind_method(D_METHOD("get_a_scale_x"), &SpineBone::get_a_scale_x); + ClassDB::bind_method(D_METHOD("set_a_scale_x", "v"), &SpineBone::set_a_scale_x); + ClassDB::bind_method(D_METHOD("get_a_scale_y"), &SpineBone::get_a_scale_y); + ClassDB::bind_method(D_METHOD("set_a_scale_y", "v"), &SpineBone::set_a_scale_y); + ClassDB::bind_method(D_METHOD("get_a_shear_x"), &SpineBone::get_a_shear_x); + ClassDB::bind_method(D_METHOD("set_a_shear_x", "v"), &SpineBone::set_a_shear_x); + ClassDB::bind_method(D_METHOD("get_a_shear_y"), &SpineBone::get_a_shear_y); + ClassDB::bind_method(D_METHOD("set_a_shear_y", "v"), &SpineBone::set_a_shear_y); + ClassDB::bind_method(D_METHOD("get_a"), &SpineBone::get_a); + ClassDB::bind_method(D_METHOD("set_a", "v"), &SpineBone::set_a); + ClassDB::bind_method(D_METHOD("get_b"), &SpineBone::get_b); + ClassDB::bind_method(D_METHOD("set_b", "v"), &SpineBone::set_b); + ClassDB::bind_method(D_METHOD("get_c"), &SpineBone::get_c); + ClassDB::bind_method(D_METHOD("set_c", "v"), &SpineBone::set_c); + ClassDB::bind_method(D_METHOD("get_d"), &SpineBone::get_d); + ClassDB::bind_method(D_METHOD("set_d", "v"), &SpineBone::set_d); + ClassDB::bind_method(D_METHOD("get_world_x"), &SpineBone::get_world_x); + ClassDB::bind_method(D_METHOD("set_world_x", "v"), &SpineBone::set_world_x); + ClassDB::bind_method(D_METHOD("get_world_y"), &SpineBone::get_world_y); + ClassDB::bind_method(D_METHOD("set_world_y", "v"), &SpineBone::set_world_y); + ClassDB::bind_method(D_METHOD("get_world_rotation_x"), &SpineBone::get_world_rotation_x); + ClassDB::bind_method(D_METHOD("get_world_rotation_y"), &SpineBone::get_world_rotation_y); + ClassDB::bind_method(D_METHOD("get_world_scale_x"), &SpineBone::get_world_scale_x); + ClassDB::bind_method(D_METHOD("get_world_scale_y"), &SpineBone::get_world_scale_y); + ClassDB::bind_method(D_METHOD("is_active"), &SpineBone::is_active); + ClassDB::bind_method(D_METHOD("set_active", "v"), &SpineBone::set_active); + ClassDB::bind_method(D_METHOD("get_transform"), &SpineBone::get_transform); + ClassDB::bind_method(D_METHOD("set_transform", "local_transform"), &SpineBone::set_transform); + ClassDB::bind_method(D_METHOD("get_global_transform"), &SpineBone::get_global_transform); + ClassDB::bind_method(D_METHOD("set_global_transform", "global_transform"), &SpineBone::set_global_transform); +} + +void SpineBone::update_world_transform() { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->updateWorldTransform(); +} + +void SpineBone::set_to_setup_pose() { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setToSetupPose(); +} + +Vector2 SpineBone::world_to_local(Vector2 world_position) { + SPINE_CHECK(get_spine_object(), Vector2()) + float x, y; + get_spine_object()->worldToLocal(world_position.x, world_position.y, x, y); + return Vector2(x, y); +} + +Vector2 SpineBone::local_to_world(Vector2 local_position) { + SPINE_CHECK(get_spine_object(), Vector2()) + float x, y; + get_spine_object()->localToWorld(local_position.x, local_position.y, x, y); + return Vector2(x, y); +} + +float SpineBone::world_to_local_rotation(float world_rotation) { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->worldToLocalRotation(world_rotation); +} + +float SpineBone::local_to_world_rotation(float local_rotation) { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->localToWorldRotation(local_rotation); +} + +void SpineBone::rotate_world(float degrees) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->rotateWorld(degrees); +} + +float SpineBone::get_world_to_local_rotation_x() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getWorldToLocalRotationX(); +} + +float SpineBone::get_world_to_local_rotation_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getWorldToLocalRotationY(); +} + +Ref SpineBone::get_data() { + SPINE_CHECK(get_spine_object(), nullptr) + auto &bone_data = get_spine_object()->getData(); + Ref bone_data_ref(memnew(SpineBoneData)); + bone_data_ref->set_spine_object(*get_spine_owner()->get_skeleton_data_res(), &bone_data); + return bone_data_ref; +} + +Ref SpineBone::get_parent() { + SPINE_CHECK(get_spine_object(), nullptr) + auto parent = get_spine_object()->getParent(); + if (!parent) return nullptr; + Ref parent_ref(memnew(SpineBone)); + parent_ref->set_spine_object(get_spine_owner(), parent); + return parent_ref; +} + +Array SpineBone::get_children() { + Array result; + SPINE_CHECK(get_spine_object(), result) + auto children = get_spine_object()->getChildren(); + result.resize((int) children.size()); + for (int i = 0; i < children.size(); ++i) { + auto child = children[i]; + Ref bone_ref(memnew(SpineBone)); + bone_ref->set_spine_object(get_spine_owner(), child); + result[i] = bone_ref; + } + return result; +} + +float SpineBone::get_x() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getX(); +} + +void SpineBone::set_x(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setX(v); +} + +float SpineBone::get_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getY(); +} + +void SpineBone::set_y(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setY(v); +} + +float SpineBone::get_rotation() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getRotation(); +} + +void SpineBone::set_rotation(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setRotation(v); +} + +float SpineBone::get_scale_x() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getScaleX(); +} + +void SpineBone::set_scale_x(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setScaleX(v); +} + +float SpineBone::get_scale_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getScaleY(); +} + +void SpineBone::set_scale_y(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setScaleY(v); +} + +float SpineBone::get_shear_x() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getShearX(); +} + +void SpineBone::set_shear_x(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setShearX(v); +} + +float SpineBone::get_shear_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getShearY(); +} + +void SpineBone::set_shear_y(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setShearY(v); +} + +float SpineBone::get_applied_rotation() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getAppliedRotation(); +} + +void SpineBone::set_applied_rotation(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAppliedRotation(v); +} + +float SpineBone::get_a_x() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getAX(); +} + +void SpineBone::set_a_x(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAX(v); +} + +float SpineBone::get_a_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getAY(); +} + +void SpineBone::set_a_y(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAY(v); +} + +float SpineBone::get_a_scale_x() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getAScaleX(); +} + +void SpineBone::set_a_scale_x(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAScaleX(v); +} + +float SpineBone::get_a_scale_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getAScaleY(); +} + +void SpineBone::set_a_scale_y(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAScaleY(v); +} + +float SpineBone::get_a_shear_x() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getAShearX(); +} + +void SpineBone::set_a_shear_x(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAShearX(v); +} + +float SpineBone::get_a_shear_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getAShearY(); +} + +void SpineBone::set_a_shear_y(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAShearY(v); +} + +float SpineBone::get_a() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getA(); +} + +void SpineBone::set_a(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setA(v); +} + +float SpineBone::get_b() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getB(); +} + +void SpineBone::set_b(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setB(v); +} + +float SpineBone::get_c() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getC(); +} + +void SpineBone::set_c(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setC(v); +} + +float SpineBone::get_d() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getD(); +} + +void SpineBone::set_d(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setD(v); +} + +float SpineBone::get_world_x() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getWorldX(); +} + +void SpineBone::set_world_x(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setWorldX(v); +} + +float SpineBone::get_world_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getWorldY(); +} + +void SpineBone::set_world_y(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setWorldY(v); +} + +float SpineBone::get_world_rotation_x() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getWorldRotationX(); +} + +float SpineBone::get_world_rotation_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getWorldRotationY(); +} + + +float SpineBone::get_world_scale_x() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getWorldScaleX(); +} + +float SpineBone::get_world_scale_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getWorldScaleY(); +} + +bool SpineBone::is_active() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_object()->isActive(); +} +void SpineBone::set_active(bool v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setActive(v); +} + +Transform2D SpineBone::get_transform() { + SPINE_CHECK(get_spine_object(), Transform2D()) + Transform2D transform; + transform.rotate(Math::deg2rad(get_rotation())); + transform.scale(Size2(get_scale_x(), get_scale_y())); + transform.set_origin(Vector2(get_x(), get_y())); + return transform; +} + +void SpineBone::set_transform(Transform2D transform) { + SPINE_CHECK(get_spine_object(), ) + Vector2 position = transform.get_origin(); + float rotation = Math::rad2deg(transform.get_rotation()); + Vector2 scale = transform.get_scale(); + + set_x(position.x); + set_y(position.y); + set_rotation(rotation); + set_scale_x(scale.x); + set_scale_y(scale.y); + + get_spine_owner()->set_modified_bones(); +} + +Transform2D SpineBone::get_global_transform() { + SPINE_CHECK(get_spine_object(), Transform2D()) + if (!get_spine_owner()) return get_transform(); + if (!get_spine_owner()->is_visible_in_tree()) return get_transform(); + Transform2D local; + local.rotate(Math::deg2rad(get_world_rotation_x())); + local.scale(Vector2(get_world_scale_x(), get_world_scale_y())); + local.set_origin(Vector2(get_world_x(), get_world_y())); + return get_spine_owner()->get_global_transform() * local; +} + +void SpineBone::set_global_transform(Transform2D transform) { + SPINE_CHECK(get_spine_object(), ) + if (!get_spine_owner()) set_transform(transform); + if (!get_spine_owner()->is_visible_in_tree()) return; + + auto bone = get_spine_object(); + + Transform2D inverse_sprite_transform = get_spine_owner()->get_global_transform().affine_inverse(); + transform = inverse_sprite_transform * transform; + Vector2 position = transform.get_origin(); + float rotation = Math::rad2deg(transform.get_rotation()); + Vector2 scale = transform.get_scale(); + Vector2 local_position = position; + float local_rotation = bone->worldToLocalRotation(rotation) - 180; + Vector2 local_scale = scale; + spine::Bone *parent = bone->getParent(); + if (parent) { + parent->worldToLocal(local_position.x, local_position.y, local_position.x, local_position.y); + } + bone->setX(local_position.x); + bone->setY(local_position.y); + bone->setRotation(local_rotation); + bone->setScaleX(local_scale.x); + bone->setScaleY(local_scale.y); + + get_spine_owner()->set_modified_bones(); +} diff --git a/spine-godot/spine_godot/SpineBone.h b/spine-godot/spine_godot/SpineBone.h new file mode 100644 index 000000000..c7daebf8f --- /dev/null +++ b/spine-godot/spine_godot/SpineBone.h @@ -0,0 +1,173 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include "SpineBoneData.h" +#include "scene/2d/node_2d.h" +#include + +class SpineSkeleton; +class SpineSprite; + +class SpineBone : public SpineSpriteOwnedObject { + GDCLASS(SpineBone, SpineObjectWrapper) + +protected: + static void _bind_methods(); + +public: + void update_world_transform(); + + void set_to_setup_pose(); + + Vector2 world_to_local(Vector2 world_position); + + Vector2 local_to_world(Vector2 local_position); + + float world_to_local_rotation(float world_rotation); + + float local_to_world_rotation(float local_rotation); + + void rotate_world(float degrees); + + float get_world_to_local_rotation_x(); + + float get_world_to_local_rotation_y(); + + Ref get_data(); + + Ref get_parent(); + + Array get_children(); + + float get_x(); + + void set_x(float v); + + float get_y(); + + void set_y(float v); + + float get_rotation(); + + void set_rotation(float v); + + float get_scale_x(); + + void set_scale_x(float v); + + float get_scale_y(); + + void set_scale_y(float v); + + float get_shear_x(); + + void set_shear_x(float v); + + float get_shear_y(); + + void set_shear_y(float v); + + float get_applied_rotation(); + + void set_applied_rotation(float v); + + float get_a_x(); + + void set_a_x(float v); + + float get_a_y(); + + void set_a_y(float v); + + float get_a_scale_x(); + + void set_a_scale_x(float v); + + float get_a_scale_y(); + + void set_a_scale_y(float v); + + float get_a_shear_x(); + + void set_a_shear_x(float v); + + float get_a_shear_y(); + + void set_a_shear_y(float v); + + float get_a(); + + void set_a(float v); + + float get_b(); + + void set_b(float v); + + float get_c(); + + void set_c(float v); + + float get_d(); + + void set_d(float v); + + float get_world_x(); + + void set_world_x(float v); + + float get_world_y(); + + void set_world_y(float v); + + float get_world_rotation_x(); + + float get_world_rotation_y(); + + float get_world_scale_x(); + + float get_world_scale_y(); + + bool is_active(); + + void set_active(bool v); + + // External feature functions + void apply_world_transform_2d(const Variant &o); + + Transform2D get_transform(); + + void set_transform(Transform2D transform); + + Transform2D get_global_transform(); + + void set_global_transform(Transform2D trans); +}; diff --git a/spine-godot/spine_godot/SpineBoneData.cpp b/spine-godot/spine_godot/SpineBoneData.cpp new file mode 100644 index 000000000..96e070ba6 --- /dev/null +++ b/spine-godot/spine_godot/SpineBoneData.cpp @@ -0,0 +1,189 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineBoneData.h" +#include "SpineCommon.h" + +void SpineBoneData::_bind_methods() { + ClassDB::bind_method(D_METHOD("get_index"), &SpineBoneData::get_index); + ClassDB::bind_method(D_METHOD("get_bone_name"), &SpineBoneData::get_bone_name); + ClassDB::bind_method(D_METHOD("get_parent"), &SpineBoneData::get_parent); + ClassDB::bind_method(D_METHOD("get_length"), &SpineBoneData::get_length); + ClassDB::bind_method(D_METHOD("set_length", "v"), &SpineBoneData::set_length); + ClassDB::bind_method(D_METHOD("get_x"), &SpineBoneData::get_x); + ClassDB::bind_method(D_METHOD("set_x", "v"), &SpineBoneData::set_x); + ClassDB::bind_method(D_METHOD("get_y"), &SpineBoneData::get_y); + ClassDB::bind_method(D_METHOD("set_y", "v"), &SpineBoneData::set_y); + ClassDB::bind_method(D_METHOD("get_rotation"), &SpineBoneData::get_rotation); + ClassDB::bind_method(D_METHOD("set_rotation", "v"), &SpineBoneData::set_rotation); + ClassDB::bind_method(D_METHOD("get_scale_x"), &SpineBoneData::get_scale_x); + ClassDB::bind_method(D_METHOD("set_scale_x", "v"), &SpineBoneData::set_scale_x); + ClassDB::bind_method(D_METHOD("get_scale_y"), &SpineBoneData::get_scale_y); + ClassDB::bind_method(D_METHOD("set_scale_y", "v"), &SpineBoneData::set_scale_y); + ClassDB::bind_method(D_METHOD("get_shear_x"), &SpineBoneData::get_shear_x); + ClassDB::bind_method(D_METHOD("set_shear_x", "v"), &SpineBoneData::set_shear_x); + ClassDB::bind_method(D_METHOD("get_shear_y"), &SpineBoneData::get_shear_y); + ClassDB::bind_method(D_METHOD("set_shear_y", "v"), &SpineBoneData::set_shear_y); + ClassDB::bind_method(D_METHOD("get_transform_mode"), &SpineBoneData::get_transform_mode); + ClassDB::bind_method(D_METHOD("set_transform_mode", "v"), &SpineBoneData::set_transform_mode); + ClassDB::bind_method(D_METHOD("is_skin_required"), &SpineBoneData::is_skin_required); + ClassDB::bind_method(D_METHOD("set_skin_required", "v"), &SpineBoneData::set_skin_required); + ClassDB::bind_method(D_METHOD("get_color"), &SpineBoneData::get_color); + ClassDB::bind_method(D_METHOD("set_color", "v"), &SpineBoneData::set_color); +} + +int SpineBoneData::get_index() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getIndex(); +} + +String SpineBoneData::get_bone_name() { + SPINE_CHECK(get_spine_object(), "") + return get_spine_object()->getName().buffer(); +} + +Ref SpineBoneData::get_parent() { + SPINE_CHECK(get_spine_object(), nullptr) + auto parent = get_spine_object()->getParent(); + if (!parent) return nullptr; + Ref parent_ref(memnew(SpineBoneData)); + parent_ref->set_spine_object(get_spine_owner(), parent); + return parent_ref; +} + +float SpineBoneData::get_length() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getLength(); +} + +void SpineBoneData::set_length(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setLength(v); +} + +float SpineBoneData::get_x() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getX(); +} + +void SpineBoneData::set_x(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setX(v); +} + +float SpineBoneData::get_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getY(); +} + +void SpineBoneData::set_y(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setY(v); +} + +float SpineBoneData::get_rotation() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getRotation(); +} + +void SpineBoneData::set_rotation(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setRotation(v); +} + +float SpineBoneData::get_scale_x() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getScaleX(); +} + +void SpineBoneData::set_scale_x(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setScaleX(v); +} + +float SpineBoneData::get_scale_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getScaleY(); +} + +void SpineBoneData::set_scale_y(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setScaleY(v); +} + +float SpineBoneData::get_shear_x() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getShearX(); +} + +void SpineBoneData::set_shear_x(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setShearX(v); +} + +float SpineBoneData::get_shear_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getShearY(); +} + +void SpineBoneData::set_shear_y(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setShearY(v); +} + +SpineConstant::TransformMode SpineBoneData::get_transform_mode() { + SPINE_CHECK(get_spine_object(), SpineConstant::TransformMode::TransformMode_Normal) + return (SpineConstant::TransformMode) get_spine_object()->getTransformMode(); +} + +void SpineBoneData::set_transform_mode(SpineConstant::TransformMode v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setTransformMode((spine::TransformMode) v); +} + +bool SpineBoneData::is_skin_required() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_object()->isSkinRequired(); +} + +void SpineBoneData::set_skin_required(bool v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setSkinRequired(v); +} + +Color SpineBoneData::get_color() { + SPINE_CHECK(get_spine_object(), Color()) + auto color = get_spine_object()->getColor(); + return Color(color.r, color.g, color.b, color.a); +} + +void SpineBoneData::set_color(Color color) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->getColor().set(color.r, color.g, color.b, color.a); +} diff --git a/spine-godot/spine_godot/SpineBoneData.h b/spine-godot/spine_godot/SpineBoneData.h new file mode 100644 index 000000000..2c13f2b36 --- /dev/null +++ b/spine-godot/spine_godot/SpineBoneData.h @@ -0,0 +1,94 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include "SpineConstant.h" +#include + +class SpineSkeletonDataResource; + +class SpineBoneData : public SpineSkeletonDataResourceOwnedObject { + GDCLASS(SpineBoneData, SpineObjectWrapper) + +protected: + static void _bind_methods(); + +public: + int get_index(); + + String get_bone_name(); + + Ref get_parent(); + + float get_length(); + + void set_length(float v); + + float get_x(); + + void set_x(float v); + + float get_y(); + + void set_y(float v); + + float get_rotation(); + + void set_rotation(float v); + + float get_scale_x(); + + void set_scale_x(float v); + + float get_scale_y(); + + void set_scale_y(float v); + + float get_shear_x(); + + void set_shear_x(float v); + + float get_shear_y(); + + void set_shear_y(float v); + + SpineConstant::TransformMode get_transform_mode(); + + void set_transform_mode(SpineConstant::TransformMode v); + + bool is_skin_required(); + + void set_skin_required(bool v); + + Color get_color(); + + void set_color(Color color); +}; diff --git a/spine-godot/spine_godot/SpineBoneNode.cpp b/spine-godot/spine_godot/SpineBoneNode.cpp new file mode 100644 index 000000000..3ba3a5c40 --- /dev/null +++ b/spine-godot/spine_godot/SpineBoneNode.cpp @@ -0,0 +1,262 @@ +/****************************************************************************** +* Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineBoneNode.h" + +#if VERSION_MAJOR > 3 +#include "core/config/engine.h" +#else +#include "core/engine.h" +#endif + +void SpineBoneNode::_bind_methods() { + ClassDB::bind_method(D_METHOD("set_bone_mode"), &SpineBoneNode::set_bone_mode); + ClassDB::bind_method(D_METHOD("get_bone_mode"), &SpineBoneNode::get_bone_mode); + ClassDB::bind_method(D_METHOD("set_enabled"), &SpineBoneNode::set_enabled); + ClassDB::bind_method(D_METHOD("get_enabled"), &SpineBoneNode::get_enabled); + ClassDB::bind_method(D_METHOD("set_debug_thickness"), &SpineBoneNode::set_debug_thickness); + ClassDB::bind_method(D_METHOD("get_debug_thickness"), &SpineBoneNode::get_debug_thickness); + ClassDB::bind_method(D_METHOD("set_debug_color"), &SpineBoneNode::set_debug_color); + ClassDB::bind_method(D_METHOD("get_debug_color"), &SpineBoneNode::get_debug_color); + ClassDB::bind_method(D_METHOD("_on_world_transforms_changed", "spine_sprite"), &SpineBoneNode::on_world_transforms_changed); + + ADD_PROPERTY(PropertyInfo(Variant::INT, "bone_mode", PROPERTY_HINT_ENUM, "Follow,Drive"), "set_bone_mode", "get_bone_mode"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "enabled"), "set_enabled", "get_enabled"); + ADD_GROUP("Debug", ""); + ADD_PROPERTY(PropertyInfo(VARIANT_FLOAT, "thickness"), "set_debug_thickness", "get_debug_thickness"); + ADD_PROPERTY(PropertyInfo(Variant::COLOR, "color"), "set_debug_color", "get_debug_color"); +} + +void SpineBoneNode::_notification(int what) { + switch (what) { + case NOTIFICATION_PARENTED: { + SpineSprite *sprite = find_parent_sprite(); + if (sprite) { +#if VERSION_MAJOR > 3 + sprite->connect("world_transforms_changed", callable_mp(this, &SpineBoneNode::on_world_transforms_changed)); +#else + sprite->connect("world_transforms_changed", this, "_on_world_transforms_changed"); +#endif + update_transform(sprite); +#if VERSION_MAJOR == 3 + _change_notify("transform/translation"); + _change_notify("transform/rotation"); + _change_notify("transform/scale"); + _change_notify("translation"); + _change_notify("rotation"); + _change_notify("rotation_deg"); + _change_notify("scale"); +#endif + } else { + WARN_PRINT("SpineBoneNode parent is not a SpineSprite."); + } + NOTIFY_PROPERTY_LIST_CHANGED(); + break; + } + case NOTIFICATION_UNPARENTED: { + SpineSprite *sprite = find_parent_sprite(); + if (sprite) { +#if VERSION_MAJOR > 3 + sprite->disconnect("world_transforms_changed", callable_mp(this, &SpineBoneNode::on_world_transforms_changed)); +#else + sprite->disconnect("world_transforms_changed", this, "_on_world_transforms_changed"); +#endif + } + break; + } + case NOTIFICATION_DRAW: { + draw(); + break; + } + default: + break; + } +} + +void SpineBoneNode::_get_property_list(List *list) const { + Vector bone_names; + SpineSprite *sprite = find_parent_sprite(); + if (sprite) sprite->get_skeleton_data_res()->get_bone_names(bone_names); + else + bone_names.push_back(bone_name); + auto element = list->front(); + while (element) { + auto property_info = element->get(); + if (property_info.name == "SpineBoneNode") break; + element = element->next(); + } + PropertyInfo slot_name_property; + slot_name_property.name = "bone_name"; + slot_name_property.type = Variant::STRING; + slot_name_property.hint_string = String(",").join(bone_names); + slot_name_property.hint = PROPERTY_HINT_ENUM; + slot_name_property.usage = PROPERTY_USAGE_DEFAULT; + list->insert_after(element, slot_name_property); +} + +bool SpineBoneNode::_get(const StringName &property, Variant &value) const { + if (property == "bone_name") { + value = bone_name; + return true; + } + return false; +} + +bool SpineBoneNode::_set(const StringName &property, const Variant &value) { + if (property == "bone_name") { + bone_name = value; + SpineSprite *sprite = find_parent_sprite(); + init_transform(sprite); + return true; + } + return false; +} + +void SpineBoneNode::on_world_transforms_changed(const Variant &_sprite) { + SpineSprite *sprite = cast_to(_sprite.operator Object *()); + update_transform(sprite); + update(); +} + +void SpineBoneNode::update_transform(SpineSprite *sprite) { + if (!enabled) return; + Ref bone = find_bone(); + if (!bone.is_valid()) return; + + Transform2D bone_transform = bone->get_global_transform(); + Transform2D this_transform = get_global_transform(); + + if (bone_mode == SpineConstant::BoneMode_Drive) { + bone->set_global_transform(this_transform); + } else { + set_global_transform(bone_transform); + } + + if (Engine::get_singleton()->is_editor_hint()) { +#if VERSION_MAJOR == 3 + _change_notify("transform/translation"); + _change_notify("transform/rotation"); + _change_notify("transform/scale"); + _change_notify("translation"); + _change_notify("rotation"); + _change_notify("rotation_deg"); + _change_notify("scale"); +#endif + } +} + +void SpineBoneNode::init_transform(SpineSprite *sprite) { + if (!sprite) return; + if (bone_mode == SpineConstant::BoneMode_Drive) return; + sprite->get_skeleton()->set_to_setup_pose(); + sprite->get_skeleton()->update_world_transform(); + Transform2D global_transform = sprite->get_global_bone_transform(bone_name); + set_global_transform(global_transform); + update_transform(sprite); +} + +SpineSprite *SpineBoneNode::find_parent_sprite() const { + auto parent = get_parent(); + SpineSprite *sprite = nullptr; + while (parent) { + sprite = cast_to(parent); + if (sprite) break; + parent = parent->get_parent(); + } + return sprite; +} + +Ref SpineBoneNode::find_bone() const { + if (!is_visible_in_tree()) return nullptr; + SpineSprite *sprite = find_parent_sprite(); + if (!sprite) return nullptr; + if (!sprite->get_skeleton().is_valid() || !sprite->get_skeleton()->get_spine_object()) return nullptr; + auto bone = sprite->get_skeleton()->find_bone(bone_name); + return bone; +} + +void SpineBoneNode::draw() { + if (!Engine::get_singleton()->is_editor_hint() && !get_tree()->is_debugging_collisions_hint()) return; + Ref bone = find_bone(); + if (!bone.is_valid()) return; + + spine::Bone *spine_bone = bone->get_spine_object(); + if (!spine_bone) return; + float bone_length = spine_bone->getData().getLength(); + if (bone_length == 0) { + draw_circle(Vector2(0, 0), debug_thickness, debug_color); + } else { + Vector points; + points.push_back(Vector2(-debug_thickness, 0)); + points.push_back(Vector2(0, debug_thickness)); + points.push_back(Vector2(bone_length, 0)); + points.push_back(Vector2(0, -debug_thickness)); + draw_colored_polygon(points, debug_color); + } +} + +SpineConstant::BoneMode SpineBoneNode::get_bone_mode() { + return bone_mode; +} + +void SpineBoneNode::set_bone_mode(SpineConstant::BoneMode _bone_mode) { + bone_mode = _bone_mode; + SpineSprite *sprite = find_parent_sprite(); + init_transform(sprite); +} + +void SpineBoneNode::set_debug_thickness(float _thickness) { + debug_thickness = _thickness; +} + +float SpineBoneNode::get_debug_thickness() { + return debug_thickness; +} + +void SpineBoneNode::set_debug_color(Color _color) { + debug_color = _color; +} + +Color SpineBoneNode::get_debug_color() { + return debug_color; +} + +void SpineBoneNode::set_enabled(bool _enabled) { + enabled = _enabled; + if (!enabled && Engine::get_singleton()->is_editor_hint()) { + auto sprite = find_parent_sprite(); + if (!sprite) return; + sprite->get_skeleton()->set_to_setup_pose(); + sprite->get_skeleton()->update_world_transform(); + } +} + +bool SpineBoneNode::get_enabled() { + return enabled; +} diff --git a/spine-godot/spine_godot/SpineBoneNode.h b/spine-godot/spine_godot/SpineBoneNode.h new file mode 100644 index 000000000..52ec12cd4 --- /dev/null +++ b/spine-godot/spine_godot/SpineBoneNode.h @@ -0,0 +1,76 @@ +/****************************************************************************** +* Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include "SpineSprite.h" +#include "scene/2d/node_2d.h" + +class SpineBoneNode : public Node2D { + GDCLASS(SpineBoneNode, Node2D) + +protected: + String bone_name; + SpineConstant::BoneMode bone_mode; + bool enabled; + Color debug_color; + float debug_thickness; + + static void _bind_methods(); + void _notification(int what); + void _get_property_list(List *list) const; + bool _get(const StringName &property, Variant &value) const; + bool _set(const StringName &property, const Variant &value); + void on_world_transforms_changed(const Variant &_sprite); + void update_transform(SpineSprite *sprite); + void init_transform(SpineSprite *sprite); + SpineSprite *find_parent_sprite() const; + Ref find_bone() const; + void draw(); + +public: + SpineBoneNode() : bone_mode(SpineConstant::BoneMode_Follow), enabled(true), debug_color(Color::hex(0xff000077)), debug_thickness(5) {} + + SpineConstant::BoneMode get_bone_mode(); + + void set_bone_mode(SpineConstant::BoneMode bone_mode); + + void set_enabled(bool _enabled); + + bool get_enabled(); + + void set_debug_thickness(float _thickness); + + float get_debug_thickness(); + + void set_debug_color(Color _color); + + Color get_debug_color(); +}; diff --git a/spine-godot/spine_godot/SpineCommon.h b/spine-godot/spine_godot/SpineCommon.h new file mode 100644 index 000000000..622e566e9 --- /dev/null +++ b/spine-godot/spine_godot/SpineCommon.h @@ -0,0 +1,157 @@ +/****************************************************************************** +* Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#ifndef SPINE_COMMON_H +#define SPINE_COMMON_H + +#include "core/version.h" +#if VERSION_MAJOR > 3 +#include "core/core_bind.h" +#include "core/error/error_macros.h" +#define REFCOUNTED RefCounted +#define EMPTY(x) ((x).is_empty()) +#define EMPTY_PTR(x) ((x)->is_empty()) +#define INSTANTIATE(x) (x).instantiate() +#define NOTIFY_PROPERTY_LIST_CHANGED() notify_property_list_changed() +#define VARIANT_FLOAT Variant::FLOAT +#define PROPERTY_USAGE_NOEDITOR PROPERTY_USAGE_NO_EDITOR +#define RES Ref +#define REF Ref +#define GEOMETRY2D Geometry2D +#else +#include "core/object.h" +#include "core/reference.h" +#include "core/error_macros.h" +#define REFCOUNTED Reference +#define EMPTY(x) ((x).empty()) +#define EMPTY_PTR(x) ((x)->empty()) +#define INSTANTIATE(x) (x).instance() +#define NOTIFY_PROPERTY_LIST_CHANGED() property_list_changed_notify() +#define VARIANT_FLOAT Variant::REAL +#define GDREGISTER_CLASS(x) ClassDB::register_class() +#define GEOMETRY2D Geometry +#endif + +#define SPINE_CHECK(obj, ret) \ + if (!(obj)) { \ + ERR_PRINT("Native Spine object not set."); \ + return ret; \ + } + +#define SPINE_STRING(x) spine::String((x).utf8()) + +// Can't do template classes with Godot's object model :( +class SpineObjectWrapper : public REFCOUNTED { + GDCLASS(SpineObjectWrapper, REFCOUNTED) + + Object *spine_owner; + void *spine_object; + +protected: + static void _bind_methods() { + ClassDB::bind_method(D_METHOD("_internal_spine_objects_invalidated"), &SpineObjectWrapper::spine_objects_invalidated); + } + + void spine_objects_invalidated() { + spine_object = nullptr; +#if VERSION_MAJOR > 3 + spine_owner->disconnect("_internal_spine_objects_invalidated", callable_mp(this, &SpineObjectWrapper::spine_objects_invalidated)); +#else + spine_owner->disconnect("_internal_spine_objects_invalidated", this, "_internal_spine_objects_invalidated"); +#endif + } + + SpineObjectWrapper() : spine_owner(nullptr), spine_object(nullptr) { + } + + template + void _set_spine_object_internal(const OWNER *_owner, OBJECT *_object) { + if (spine_owner) { + ERR_PRINT("Owner already set."); + return; + } + if (spine_object) { + ERR_PRINT("Object already set."); + return; + } + if (!_owner) { + ERR_PRINT("Owner must not be null."); + return; + } + + spine_owner = (Object *) _owner; + spine_object = _object; +#if VERSION_MAJOR > 3 + spine_owner->connect("_internal_spine_objects_invalidated", callable_mp(this, &SpineObjectWrapper::spine_objects_invalidated)); +#else + spine_owner->connect("_internal_spine_objects_invalidated", this, "_internal_spine_objects_invalidated"); +#endif + } + + void *_get_spine_object_internal() { return spine_object; } + void *_get_spine_owner_internal() { return spine_owner; } +}; + +class SpineSprite; + +template +class SpineSpriteOwnedObject : public SpineObjectWrapper { +public: + void set_spine_object(const SpineSprite *_owner, OBJECT *_object) { + _set_spine_object_internal(_owner, _object); + } + + OBJECT *get_spine_object() { + return (OBJECT *) _get_spine_object_internal(); + } + + SpineSprite *get_spine_owner() { + return (SpineSprite *) _get_spine_owner_internal(); + } +}; + +class SpineSkeletonDataResource; + +template +class SpineSkeletonDataResourceOwnedObject : public SpineObjectWrapper { +public: + void set_spine_object(const SpineSkeletonDataResource *_owner, OBJECT *_object) { + _set_spine_object_internal(_owner, _object); + } + + OBJECT *get_spine_object() { + return (OBJECT *) _get_spine_object_internal(); + } + + SpineSkeletonDataResource *get_spine_owner() { + return (SpineSkeletonDataResource *) _get_spine_owner_internal(); + } +}; + +#endif diff --git a/spine-godot/spine_godot/SpineConstant.cpp b/spine-godot/spine_godot/SpineConstant.cpp new file mode 100644 index 000000000..ef0f73166 --- /dev/null +++ b/spine-godot/spine_godot/SpineConstant.cpp @@ -0,0 +1,90 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineConstant.h" + +void SpineConstant::_bind_methods() { + BIND_ENUM_CONSTANT(MixBlend_Setup) + BIND_ENUM_CONSTANT(MixBlend_First) + BIND_ENUM_CONSTANT(MixBlend_Replace) + BIND_ENUM_CONSTANT(MixBlend_Add) + + BIND_ENUM_CONSTANT(MixDirection_In) + BIND_ENUM_CONSTANT(MixDirection_Out) + + BIND_ENUM_CONSTANT(Property_Rotate) + BIND_ENUM_CONSTANT(Property_X) + BIND_ENUM_CONSTANT(Property_Y) + BIND_ENUM_CONSTANT(Property_ScaleX) + BIND_ENUM_CONSTANT(Property_ScaleY) + BIND_ENUM_CONSTANT(Property_ShearX) + BIND_ENUM_CONSTANT(Property_ShearY) + BIND_ENUM_CONSTANT(Property_Rgb) + BIND_ENUM_CONSTANT(Property_Alpha) + BIND_ENUM_CONSTANT(Property_Rgb2) + BIND_ENUM_CONSTANT(Property_Attachment) + BIND_ENUM_CONSTANT(Property_Deform) + BIND_ENUM_CONSTANT(Property_Event) + BIND_ENUM_CONSTANT(Property_DrawOrder) + BIND_ENUM_CONSTANT(Property_IkConstraint) + BIND_ENUM_CONSTANT(Property_TransformConstraint) + BIND_ENUM_CONSTANT(Property_PathConstraintPosition) + BIND_ENUM_CONSTANT(Property_PathConstraintSpacing) + BIND_ENUM_CONSTANT(Property_PathConstraintMix) + BIND_ENUM_CONSTANT(Property_Sequence) + + BIND_ENUM_CONSTANT(TransformMode_Normal) + BIND_ENUM_CONSTANT(TransformMode_OnlyTranslation) + BIND_ENUM_CONSTANT(TransformMode_NoRotationOrReflection) + BIND_ENUM_CONSTANT(TransformMode_NoScale) + BIND_ENUM_CONSTANT(TransformMode_NoScaleOrReflection) + + BIND_ENUM_CONSTANT(PositionMode_Fixed) + BIND_ENUM_CONSTANT(PositionMode_Percent) + + BIND_ENUM_CONSTANT(SpacingMode_Length) + BIND_ENUM_CONSTANT(SpacingMode_Fixed) + BIND_ENUM_CONSTANT(SpacingMode_Percent) + + BIND_ENUM_CONSTANT(RotateMode_Tangent) + BIND_ENUM_CONSTANT(RotateMode_Chain) + BIND_ENUM_CONSTANT(RotateMode_ChainScale) + + BIND_ENUM_CONSTANT(BlendMode_Normal) + BIND_ENUM_CONSTANT(BlendMode_Additive) + BIND_ENUM_CONSTANT(BlendMode_Multiply) + BIND_ENUM_CONSTANT(BlendMode_Screen) + + BIND_ENUM_CONSTANT(UpdateMode_Process) + BIND_ENUM_CONSTANT(UpdateMode_Physics) + BIND_ENUM_CONSTANT(UpdateMode_Manual) + + BIND_ENUM_CONSTANT(BoneMode_Follow) + BIND_ENUM_CONSTANT(BoneMode_Drive) +} diff --git a/spine-godot/spine_godot/SpineConstant.h b/spine-godot/spine_godot/SpineConstant.h new file mode 100644 index 000000000..6d90da497 --- /dev/null +++ b/spine-godot/spine_godot/SpineConstant.h @@ -0,0 +1,129 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" + +class SpineConstant : public Object { + GDCLASS(SpineConstant, Object); + +protected: + static void _bind_methods(); + +public: + enum MixBlend { + MixBlend_Setup = 0, + MixBlend_First, + MixBlend_Replace, + MixBlend_Add + }; + + enum MixDirection { + MixDirection_In = 0, + MixDirection_Out + }; + + enum PropertyId { + Property_Rotate = 1 << 0, + Property_X = 1 << 1, + Property_Y = 1 << 2, + Property_ScaleX = 1 << 3, + Property_ScaleY = 1 << 4, + Property_ShearX = 1 << 5, + Property_ShearY = 1 << 6, + Property_Rgb = 1 << 7, + Property_Alpha = 1 << 8, + Property_Rgb2 = 1 << 9, + Property_Attachment = 1 << 10, + Property_Deform = 1 << 11, + Property_Event = 1 << 12, + Property_DrawOrder = 1 << 13, + Property_IkConstraint = 1 << 14, + Property_TransformConstraint = 1 << 15, + Property_PathConstraintPosition = 1 << 16, + Property_PathConstraintSpacing = 1 << 17, + Property_PathConstraintMix = 1 << 18, + Property_Sequence = 1 << 19 + }; + + enum TransformMode { + TransformMode_Normal = 0, + TransformMode_OnlyTranslation, + TransformMode_NoRotationOrReflection, + TransformMode_NoScale, + TransformMode_NoScaleOrReflection + }; + + enum PositionMode { + PositionMode_Fixed = 0, + PositionMode_Percent + }; + + enum SpacingMode { + SpacingMode_Length = 0, + SpacingMode_Fixed, + SpacingMode_Percent + }; + + enum RotateMode { + RotateMode_Tangent = 0, + RotateMode_Chain, + RotateMode_ChainScale + }; + + enum BlendMode { + BlendMode_Normal = 0, + BlendMode_Additive, + BlendMode_Multiply, + BlendMode_Screen + }; + + enum UpdateMode { + UpdateMode_Process, + UpdateMode_Physics, + UpdateMode_Manual + }; + + enum BoneMode { + BoneMode_Follow, + BoneMode_Drive + }; +}; + +VARIANT_ENUM_CAST(SpineConstant::MixBlend) +VARIANT_ENUM_CAST(SpineConstant::MixDirection) +VARIANT_ENUM_CAST(SpineConstant::PropertyId) +VARIANT_ENUM_CAST(SpineConstant::TransformMode) +VARIANT_ENUM_CAST(SpineConstant::PositionMode) +VARIANT_ENUM_CAST(SpineConstant::SpacingMode) +VARIANT_ENUM_CAST(SpineConstant::RotateMode) +VARIANT_ENUM_CAST(SpineConstant::BlendMode) +VARIANT_ENUM_CAST(SpineConstant::UpdateMode) +VARIANT_ENUM_CAST(SpineConstant::BoneMode) diff --git a/spine-godot/spine_godot/SpineConstraintData.cpp b/spine-godot/spine_godot/SpineConstraintData.cpp new file mode 100644 index 000000000..36d93aaa1 --- /dev/null +++ b/spine-godot/spine_godot/SpineConstraintData.cpp @@ -0,0 +1,65 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineConstraintData.h" +#include "SpineCommon.h" +#include + +void SpineConstraintData::_bind_methods() { + ClassDB::bind_method(D_METHOD("get_constraint_name"), &SpineConstraintData::get_constraint_name); + ClassDB::bind_method(D_METHOD("get_order"), &SpineConstraintData::get_order); + ClassDB::bind_method(D_METHOD("set_order", "v"), &SpineConstraintData::set_order); + ClassDB::bind_method(D_METHOD("is_skin_required"), &SpineConstraintData::is_skin_required); + ClassDB::bind_method(D_METHOD("set_skin_required", "v"), &SpineConstraintData::set_skin_required); +} + +String SpineConstraintData::get_constraint_name() { + SPINE_CHECK(get_spine_object(), "") + return get_spine_object()->getName().buffer(); +} + +int SpineConstraintData::get_order() { + SPINE_CHECK(get_spine_object(), 0) + return (int) get_spine_object()->getOrder(); +} + +void SpineConstraintData::set_order(int v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setOrder(v); +} + +bool SpineConstraintData::is_skin_required() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_object()->isSkinRequired(); +} + +void SpineConstraintData::set_skin_required(bool v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setSkinRequired(v); +} diff --git a/spine-godot/spine_godot/SpineConstraintData.h b/spine-godot/spine_godot/SpineConstraintData.h new file mode 100644 index 000000000..1ea763bc2 --- /dev/null +++ b/spine-godot/spine_godot/SpineConstraintData.h @@ -0,0 +1,53 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include + +class SpineSkeletonDataResource; + +class SpineConstraintData : public SpineSkeletonDataResourceOwnedObject { + GDCLASS(SpineConstraintData, SpineObjectWrapper) + +protected: + static void _bind_methods(); + +public: + String get_constraint_name(); + + int get_order(); + + void set_order(int v); + + bool is_skin_required(); + + void set_skin_required(bool v); +}; diff --git a/spine-godot/spine_godot/SpineEditorPlugin.cpp b/spine-godot/spine_godot/SpineEditorPlugin.cpp new file mode 100644 index 000000000..eb6841b7d --- /dev/null +++ b/spine-godot/spine_godot/SpineEditorPlugin.cpp @@ -0,0 +1,346 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#ifdef TOOLS_ENABLED +#include "SpineEditorPlugin.h" +#include "SpineAtlasResource.h" +#include "SpineSkeletonFileResource.h" + +#if VERSION_MAJOR > 3 +Error SpineAtlasResourceImportPlugin::import(const String &source_file, const String &save_path, const HashMap &options, List *platform_variants, List *gen_files, Variant *metadata) { +#else +Error SpineAtlasResourceImportPlugin::import(const String &source_file, const String &save_path, const Map &options, List *platform_variants, List *gen_files, Variant *metadata) { +#endif + Ref atlas(memnew(SpineAtlasResource)); + atlas->set_normal_texture_prefix(options["normal_map_prefix"]); + atlas->load_from_atlas_file(source_file); + + String file_name = vformat("%s.%s", save_path, get_save_extension()); + auto error = ResourceSaver::save(file_name, atlas); + return error; +} + +#if VERSION_MAJOR > 3 +void SpineAtlasResourceImportPlugin::get_import_options(const String &path, List *options, int preset) const { +#else +void SpineAtlasResourceImportPlugin::get_import_options(List *options, int preset) const { +#endif + if (preset == 0) { + ImportOption op; + op.option.name = "normal_map_prefix"; + op.option.type = Variant::STRING; + op.option.hint_string = "String"; + op.default_value = String("n"); + options->push_back(op); + } +} + +#if VERSION_MAJOR > 3 +Error SpineJsonResourceImportPlugin::import(const String &source_file, const String &save_path, const HashMap &options, List *platform_variants, List *gen_files, Variant *metadata) { +#else +Error SpineJsonResourceImportPlugin::import(const String &source_file, const String &save_path, const Map &options, List *platform_variants, List *gen_files, Variant *metadata) { +#endif + Ref skeleton_file_res(memnew(SpineSkeletonFileResource)); + skeleton_file_res->load_from_file(source_file); + + String file_name = vformat("%s.%s", save_path, get_save_extension()); + auto error = ResourceSaver::save(file_name, skeleton_file_res); + return error; +} + +#if VERSION_MAJOR > 3 +Error SpineBinaryResourceImportPlugin::import(const String &source_file, const String &save_path, const HashMap &options, List *platform_variants, List *gen_files, Variant *metadata) { +#else +Error SpineBinaryResourceImportPlugin::import(const String &source_file, const String &save_path, const Map &options, List *platform_variants, List *gen_files, Variant *metadata) { +#endif + Ref skeleton_file_res(memnew(SpineSkeletonFileResource)); + skeleton_file_res->load_from_file(source_file); + + String file_name = vformat("%s.%s", save_path, get_save_extension()); + auto error = ResourceSaver::save(file_name, skeleton_file_res); + return error; +} + +SpineEditorPlugin::SpineEditorPlugin(EditorNode *node) { + add_import_plugin(memnew(SpineAtlasResourceImportPlugin)); + add_import_plugin(memnew(SpineJsonResourceImportPlugin)); + add_import_plugin(memnew(SpineBinaryResourceImportPlugin)); + add_inspector_plugin(memnew(SpineSkeletonDataResourceInspectorPlugin)); + add_inspector_plugin(memnew(SpineSpriteInspectorPlugin)); +} + +bool SpineSkeletonDataResourceInspectorPlugin::can_handle(Object *object) { + return object->is_class("SpineSkeletonDataResource"); +} + +#if VERSION_MAJOR > 3 +bool SpineSkeletonDataResourceInspectorPlugin::parse_property(Object *object, const Variant::Type type, const String &path, const PropertyHint hint, const String &hint_text, const uint32_t usage, const bool wide) { +#else +bool SpineSkeletonDataResourceInspectorPlugin::parse_property(Object *object, Variant::Type type, const String &path, + PropertyHint hint, const String &hint_text, int usage) { +#endif + if (path == "animation_mixes") { + Ref skeleton_data = Object::cast_to(object); + if (!skeleton_data.is_valid() || !skeleton_data->is_skeleton_data_loaded()) return true; + auto mixes_property = memnew(SpineEditorPropertyAnimationMixes); + mixes_property->setup(skeleton_data); + add_property_editor(path, mixes_property); + return true; + } + return false; +} + +SpineEditorPropertyAnimationMixes::SpineEditorPropertyAnimationMixes() : skeleton_data(nullptr), container(nullptr), updating(false) { + INSTANTIATE(array_object); +} + +void SpineEditorPropertyAnimationMixes::_bind_methods() { + ClassDB::bind_method(D_METHOD("add_mix"), &SpineEditorPropertyAnimationMixes::add_mix); + ClassDB::bind_method(D_METHOD("delete_mix"), &SpineEditorPropertyAnimationMixes::delete_mix); + ClassDB::bind_method(D_METHOD("update_mix_property"), &SpineEditorPropertyAnimationMixes::update_mix_property); +} + +void SpineEditorPropertyAnimationMixes::add_mix() { + if (!skeleton_data.is_valid() || !skeleton_data->is_skeleton_data_loaded() || updating) return; + + Vector animation_names; + skeleton_data->get_animation_names(animation_names); + Ref mix = Ref(memnew(SpineAnimationMix)); + mix->set_from(animation_names[0]); + mix->set_to(animation_names[0]); + mix->set_mix(0); + + Array mixes = skeleton_data->get_animation_mixes().duplicate(); + mixes.push_back(mix); + emit_changed(get_edited_property(), mixes); +} + +void SpineEditorPropertyAnimationMixes::delete_mix(int idx) { + if (!skeleton_data.is_valid() || !skeleton_data->is_skeleton_data_loaded() || updating) return; + + auto mixes = skeleton_data->get_animation_mixes().duplicate(); +#if VERSION_MAJOR > 3 + mixes.remove_at((int) idx); +#else + mixes.remove((int) idx); +#endif + emit_changed(get_edited_property(), mixes); +} + +void SpineEditorPropertyAnimationMixes::update_mix_property(int index) { + if (index < 0 || index > mix_properties.size()) return; + mix_properties[index]->update_property(); +} + +void SpineEditorPropertyAnimationMixes::update_property() { + if (updating) return; + updating = true; + + mix_properties.clear(); + + if (container) { + set_bottom_editor(nullptr); + memdelete(container); + container = nullptr; + } + + if (!skeleton_data.is_valid() || !skeleton_data->is_skeleton_data_loaded()) { + updating = false; + return; + } + + Vector animation_names; + skeleton_data->get_animation_names(animation_names); + + container = memnew(VBoxContainer); + add_child(container); + set_bottom_editor(container); + + Array mixes = skeleton_data->get_animation_mixes(); + array_object->set_array(mixes); + for (int i = 0; i < mixes.size(); i++) { + Ref mix = mixes[i]; + String property_name = "indices/" + itos(i); + + auto hbox = memnew(HBoxContainer); + hbox->set_h_size_flags(SIZE_EXPAND_FILL); + container->add_child(hbox); + + auto mix_property = memnew(SpineEditorPropertyAnimationMix); + mix_property->set_h_size_flags(SIZE_EXPAND_FILL); + mix_property->set_name_split_ratio(0); + hbox->add_child(mix_property); + mix_property->setup(this, skeleton_data, i); + mix_property->set_object_and_property(*array_object, property_name); + mix_property->update_property(); + mix_properties.push_back(mix_property); + + auto delete_button = memnew(Button); + hbox->add_child(delete_button); + delete_button->set_text("Remove"); +#if VERSION_MAJOR > 3 + delete_button->connect("pressed", callable_mp(this, &SpineEditorPropertyAnimationMixes::delete_mix), varray(i)); +#else + delete_button->connect("pressed", this, "delete_mix", varray(i)); +#endif + } + + auto add_mix_button = memnew(Button); + add_mix_button->set_text("Add mix"); +#if VERSION_MAJOR > 3 + add_mix_button->connect("pressed", callable_mp(this, &SpineEditorPropertyAnimationMixes::add_mix)); +#else + add_mix_button->connect("pressed", this, "add_mix"); +#endif + container->add_child(add_mix_button); + + updating = false; +} + +SpineEditorPropertyAnimationMix::SpineEditorPropertyAnimationMix() : mixes_property(nullptr), skeleton_data(nullptr), index(0), container(nullptr), updating(false) { +} + +void SpineEditorPropertyAnimationMix::setup(SpineEditorPropertyAnimationMixes *_mixes_property, const Ref &_skeleton_data, int _index) { + this->mixes_property = _mixes_property; + this->skeleton_data = _skeleton_data; + this->index = _index; +} + +void SpineEditorPropertyAnimationMix::_bind_methods() { + ClassDB::bind_method(D_METHOD("data_changed"), &SpineEditorPropertyAnimationMix::data_changed); +} + +void SpineEditorPropertyAnimationMix::data_changed(const String &property, const Variant &value, const String &name, bool changing) { + auto mix = Object::cast_to(get_edited_object()->get(get_edited_property())); + + UndoRedo *undo_redo = EditorNode::get_undo_redo(); + undo_redo->create_action("Set mix property " + property); + undo_redo->add_do_property(mix, property, value); + undo_redo->add_undo_property(mix, property, mix->get(property)); + undo_redo->add_do_method(mixes_property, "update_mix_property", index); + undo_redo->add_undo_method(mixes_property, "update_mix_property", index); + // temporarily disable rebuilding the UI, as commit_action() calls update() which calls update_property(). however, + // data_changed is invoked by the control that changed the property, which would get deleted in update_property(). + updating = true; + undo_redo->commit_action(); + updating = false; + emit_changed(property, value, name, changing); +} + +void SpineEditorPropertyAnimationMix::update_property() { + if (updating) return; + updating = true; + + if (container) { + memdelete(container); + container->queue_delete(); + container = nullptr; + } + + if (!skeleton_data.is_valid() || !skeleton_data->is_skeleton_data_loaded()) { + updating = false; + return; + } + + auto mix = Object::cast_to(get_edited_object()->get(get_edited_property())); + if (!mix) { + updating = false; + return; + } + + Vector animation_names; + skeleton_data->get_animation_names(animation_names); + + container = memnew(HBoxContainer); + container->set_h_size_flags(SIZE_EXPAND_FILL); + add_child(container); + + auto from_enum = memnew(EditorPropertyTextEnum); + from_enum->set_h_size_flags(SIZE_EXPAND_FILL); + from_enum->set_name_split_ratio(0); + from_enum->set_selectable(false); + from_enum->setup(animation_names); + from_enum->set_object_and_property(mix, "from"); + from_enum->update_property(); +#if VERSION_MAJOR > 3 + from_enum->connect("property_changed", callable_mp(this, &SpineEditorPropertyAnimationMix::data_changed)); +#else + from_enum->connect("property_changed", this, "data_changed"); +#endif + container->add_child(from_enum); + + auto to_enum = memnew(EditorPropertyTextEnum); + to_enum->set_h_size_flags(SIZE_EXPAND_FILL); + to_enum->set_name_split_ratio(0); + to_enum->set_selectable(false); + to_enum->setup(animation_names); + to_enum->set_object_and_property(mix, "to"); + to_enum->update_property(); +#if VERSION_MAJOR > 3 + to_enum->connect("property_changed", callable_mp(this, &SpineEditorPropertyAnimationMix::data_changed)); +#else + to_enum->connect("property_changed", this, "data_changed"); +#endif + container->add_child(to_enum); + + auto mix_float = memnew(EditorPropertyFloat); + mix_float->set_h_size_flags(SIZE_EXPAND_FILL); + mix_float->set_name_split_ratio(0); + mix_float->set_selectable(false); + mix_float->setup(0, 9999999, 0.001, true, false, false, false); + mix_float->set_object_and_property(mix, "mix"); + mix_float->update_property(); +#if VERSION_MAJOR > 3 + mix_float->connect("property_changed", callable_mp(this, &SpineEditorPropertyAnimationMix::data_changed)); +#else + mix_float->connect("property_changed", this, "data_changed"); +#endif + container->add_child(mix_float); + + updating = false; +} + +void SpineSpriteInspectorPlugin::_bind_methods() { + ClassDB::bind_method(D_METHOD("button_clicked"), &SpineSpriteInspectorPlugin::button_clicked); +} + +void SpineSpriteInspectorPlugin::button_clicked(const String &button_name) { +} + +bool SpineSpriteInspectorPlugin::can_handle(Object *object) { + return Object::cast_to(object) != nullptr; +} + +void SpineSpriteInspectorPlugin::parse_begin(Object *object) { + sprite = Object::cast_to(object); + if (!sprite) return; + if (!sprite->get_skeleton_data_res().is_valid() || !sprite->get_skeleton_data_res()->is_skeleton_data_loaded()) return; +} + +#endif diff --git a/spine-godot/spine_godot/SpineEditorPlugin.h b/spine-godot/spine_godot/SpineEditorPlugin.h new file mode 100644 index 000000000..ca29b0df5 --- /dev/null +++ b/spine-godot/spine_godot/SpineEditorPlugin.h @@ -0,0 +1,218 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#ifdef TOOLS_ENABLED +#include "SpineCommon.h" +#include "SpineSprite.h" +#include "editor/editor_node.h" +#include "editor/editor_properties.h" +#include "editor/editor_properties_array_dict.h" + +class SpineAtlasResourceImportPlugin : public EditorImportPlugin { + GDCLASS(SpineAtlasResourceImportPlugin, EditorImportPlugin) + +public: + String get_importer_name() const override { return "spine.atlas"; } + + String get_visible_name() const override { return "Spine Runtime Atlas"; } + + void get_recognized_extensions(List *extensions) const override { extensions->push_back("atlas"); } + + String get_preset_name(int idx) const override { return idx == 0 ? "Default" : "Unknown"; } + + int get_preset_count() const override { return 1; } + + String get_save_extension() const override { return "spatlas"; } + + String get_resource_type() const override { return "SpineAtlasResource"; } + +#if VERSION_MAJOR > 3 + int get_import_order() const override { return IMPORT_ORDER_DEFAULT; } + + void get_import_options(const String &path, List *options, int preset) const override; + + virtual bool get_option_visibility(const String &path, const String &option, const HashMap &options) const override { return true; } + + Error import(const String &source_file, const String &save_path, const HashMap &options, List *platform_variants, List *gen_files, Variant *metadata) override; +#else + void get_import_options(List *options, int preset) const override; + + bool get_option_visibility(const String &option, const Map &options) const override { return true; } + + Error import(const String &source_file, const String &save_path, const Map &options, List *platform_variants, List *gen_files, Variant *metadata) override; +#endif +}; + +class SpineJsonResourceImportPlugin : public EditorImportPlugin { + GDCLASS(SpineJsonResourceImportPlugin, EditorImportPlugin) + +public: + String get_importer_name() const override { return "spine.json"; } + + String get_visible_name() const override { return "Spine Skeleton Json"; } + + void get_recognized_extensions(List *extensions) const override { extensions->push_back("json"); } + + String get_preset_name(int idx) const override { return idx == 0 ? "Default" : "Unknown"; } + + int get_preset_count() const override { return 1; } + + String get_save_extension() const override { return "spjson"; } + + String get_resource_type() const override { return "SpineSkeletonFileResource"; } + +#if VERSION_MAJOR > 3 + int get_import_order() const override { return IMPORT_ORDER_DEFAULT; } + + void get_import_options(const String &path, List *options, int preset) const override {} + + bool get_option_visibility(const String &path, const String &option, const HashMap &options) const override { return true; } + + Error import(const String &source_file, const String &save_path, const HashMap &options, List *platform_variants, List *gen_files, Variant *metadata) override; +#else + void get_import_options(List *options, int preset) const override {} + + bool get_option_visibility(const String &option, const Map &options) const override { return true; } + + Error import(const String &source_file, const String &save_path, const Map &options, List *platform_variants, List *gen_files, Variant *metadata) override; +#endif +}; + +class SpineBinaryResourceImportPlugin : public EditorImportPlugin { + GDCLASS(SpineBinaryResourceImportPlugin, EditorImportPlugin); + +public: + String get_importer_name() const override { return "spine.skel"; } + + String get_visible_name() const override { return "Spine Skeleton Binary"; } + + void get_recognized_extensions(List *extensions) const override { extensions->push_back("skel"); } + + String get_preset_name(int idx) const override { return idx == 0 ? "Default" : "Unknown"; } + + int get_preset_count() const override { return 1; } + + String get_save_extension() const override { return "spskel"; } + + String get_resource_type() const override { return "SpineSkeletonFileResource"; } + +#if VERSION_MAJOR > 3 + int get_import_order() const override { return IMPORT_ORDER_DEFAULT; } + + void get_import_options(const String &path, List *options, int preset) const override {} + + bool get_option_visibility(const String &path, const String &option, const HashMap &options) const override { return true; } + + Error import(const String &source_file, const String &save_path, const HashMap &options, List *platform_variants, List *gen_files, Variant *metadata) override; +#else + void get_import_options(List *options, int preset) const override {} + + bool get_option_visibility(const String &option, const Map &options) const override { return true; } + + Error import(const String &source_file, const String &save_path, const Map &options, List *platform_variants, List *gen_files, Variant *metadata) override; +#endif +}; + +class SpineEditorPlugin : public EditorPlugin { + GDCLASS(SpineEditorPlugin, EditorPlugin) + +public: + explicit SpineEditorPlugin(EditorNode *node); + + String get_name() const override { return "SpineEditorPlugin"; } +}; + +class SpineSkeletonDataResourceInspectorPlugin : public EditorInspectorPlugin { + GDCLASS(SpineSkeletonDataResourceInspectorPlugin, EditorInspectorPlugin) + +public: + bool can_handle(Object *object) override; +#if VERSION_MAJOR > 3 + bool parse_property(Object *object, Variant::Type type, const String &path, PropertyHint hint, const String &hint_text, uint32_t usage, bool wide) override; +#else + bool parse_property(Object *object, Variant::Type type, const String &path, PropertyHint hint, const String &hint_text, int usage) override; +#endif +}; + +class SpineEditorPropertyAnimationMix; + +class SpineEditorPropertyAnimationMixes : public EditorProperty { + GDCLASS(SpineEditorPropertyAnimationMixes, EditorProperty) + + Ref array_object; + Ref skeleton_data; + VBoxContainer *container; + Vector mix_properties; + bool updating; + + static void _bind_methods(); + void add_mix(); + void delete_mix(int idx); + void update_mix_property(int index); + +public: + SpineEditorPropertyAnimationMixes(); + void setup(const Ref &_skeleton_data) { this->skeleton_data = _skeleton_data; }; + void update_property() override; +}; + +class SpineEditorPropertyAnimationMix : public EditorProperty { + GDCLASS(SpineEditorPropertyAnimationMix, EditorProperty) + + SpineEditorPropertyAnimationMixes *mixes_property; + Ref skeleton_data; + int index; + Container *container; + bool updating; + + static void _bind_methods(); + void data_changed(const String &property, const Variant &value, const String &name, bool changing); + +public: + SpineEditorPropertyAnimationMix(); + void setup(SpineEditorPropertyAnimationMixes *mixes_property, const Ref &skeleton_data, int index); + void update_property() override; +}; + +class SpineSpriteInspectorPlugin : public EditorInspectorPlugin { + GDCLASS(SpineSpriteInspectorPlugin, EditorInspectorPlugin) + + SpineSprite *sprite; + + static void _bind_methods(); + void button_clicked(const String &button_name); + +public: + bool can_handle(Object *object) override; + void parse_begin(Object *object) override; +}; + +#endif diff --git a/spine-godot/spine_godot/SpineEvent.cpp b/spine-godot/spine_godot/SpineEvent.cpp new file mode 100644 index 000000000..612a406e2 --- /dev/null +++ b/spine-godot/spine_godot/SpineEvent.cpp @@ -0,0 +1,109 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineEvent.h" +#include "SpineCommon.h" +#include "SpineSprite.h" + +void SpineEvent::_bind_methods() { + ClassDB::bind_method(D_METHOD("get_data"), &SpineEvent::get_data); + ClassDB::bind_method(D_METHOD("get_time"), &SpineEvent::get_time); + ClassDB::bind_method(D_METHOD("get_int_value"), &SpineEvent::get_int_value); + ClassDB::bind_method(D_METHOD("set_int_value", "v"), &SpineEvent::set_int_value); + ClassDB::bind_method(D_METHOD("get_float_value"), &SpineEvent::get_float_value); + ClassDB::bind_method(D_METHOD("set_float_value", "v"), &SpineEvent::set_float_value); + ClassDB::bind_method(D_METHOD("get_string_value"), &SpineEvent::get_string_value); + ClassDB::bind_method(D_METHOD("set_string_value", "v"), &SpineEvent::set_string_value); + ClassDB::bind_method(D_METHOD("get_volume"), &SpineEvent::get_volume); + ClassDB::bind_method(D_METHOD("set_volume", "v"), &SpineEvent::set_volume); + ClassDB::bind_method(D_METHOD("get_balance"), &SpineEvent::get_balance); + ClassDB::bind_method(D_METHOD("set_balance", "v"), &SpineEvent::set_balance); +} + +Ref SpineEvent::get_data() { + SPINE_CHECK(get_spine_object(), nullptr) + Ref event_data(memnew(SpineEventData)); + event_data->set_spine_object(*get_spine_owner()->get_skeleton_data_res(), (spine::EventData *) &get_spine_object()->getData()); + return event_data; +} + +float SpineEvent::get_time() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getTime(); +} + +int SpineEvent::get_int_value() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getIntValue(); +} + +void SpineEvent::set_int_value(int v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setIntValue(v); +} + +float SpineEvent::get_float_value() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getFloatValue(); +} + +void SpineEvent::set_float_value(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setFloatValue(v); +} + +String SpineEvent::get_string_value() { + SPINE_CHECK(get_spine_object(), "") + return get_spine_object()->getStringValue().buffer(); +} + +void SpineEvent::set_string_value(const String &v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setStringValue(spine::String(v.utf8())); +} + +float SpineEvent::get_volume() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getVolume(); +} + +void SpineEvent::set_volume(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setVolume(v); +} + +float SpineEvent::get_balance() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getBalance(); +} + +void SpineEvent::set_balance(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setBalance(v); +} diff --git a/spine-godot/spine_godot/SpineEvent.h b/spine-godot/spine_godot/SpineEvent.h new file mode 100644 index 000000000..2dfd90ce8 --- /dev/null +++ b/spine-godot/spine_godot/SpineEvent.h @@ -0,0 +1,68 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include "SpineEventData.h" +#include + +class SpineSprite; + +class SpineEvent : public SpineSpriteOwnedObject { + GDCLASS(SpineEvent, SpineObjectWrapper) + +protected: + static void _bind_methods(); + +public: + Ref get_data(); + + float get_time(); + + int get_int_value(); + + void set_int_value(int v); + + float get_float_value(); + + void set_float_value(float v); + + String get_string_value(); + + void set_string_value(const String &v); + + float get_volume(); + + void set_volume(float v); + + float get_balance(); + + void set_balance(float v); +}; diff --git a/spine-godot/spine_godot/SpineEventData.cpp b/spine-godot/spine_godot/SpineEventData.cpp new file mode 100644 index 000000000..9142809d1 --- /dev/null +++ b/spine-godot/spine_godot/SpineEventData.cpp @@ -0,0 +1,100 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineEventData.h" +#include "SpineCommon.h" + +void SpineEventData::_bind_methods() { + ClassDB::bind_method(D_METHOD("get_event_name"), &SpineEventData::get_event_name); + ClassDB::bind_method(D_METHOD("get_int_value"), &SpineEventData::get_int_value); + ClassDB::bind_method(D_METHOD("set_int_value", "v"), &SpineEventData::set_int_value); + ClassDB::bind_method(D_METHOD("get_float_value"), &SpineEventData::get_float_value); + ClassDB::bind_method(D_METHOD("set_float_value", "v"), &SpineEventData::set_float_value); + ClassDB::bind_method(D_METHOD("get_string_value"), &SpineEventData::get_string_value); + ClassDB::bind_method(D_METHOD("set_string_value", "v"), &SpineEventData::set_string_value); + ClassDB::bind_method(D_METHOD("get_volume"), &SpineEventData::get_volume); + ClassDB::bind_method(D_METHOD("set_volume", "v"), &SpineEventData::set_volume); + ClassDB::bind_method(D_METHOD("get_balance"), &SpineEventData::get_balance); + ClassDB::bind_method(D_METHOD("set_balance", "v"), &SpineEventData::set_balance); +} + +String SpineEventData::get_event_name() { + SPINE_CHECK(get_spine_object(), "") + return get_spine_object()->getName().buffer(); +} + +int SpineEventData::get_int_value() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getIntValue(); +} + +void SpineEventData::set_int_value(int v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setIntValue(v); +} + +float SpineEventData::get_float_value() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getFloatValue(); +} + +void SpineEventData::set_float_value(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setFloatValue(v); +} + +String SpineEventData::get_string_value() { + SPINE_CHECK(get_spine_object(), "") + return get_spine_object()->getStringValue().buffer(); +} + +void SpineEventData::set_string_value(const String &v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setStringValue(spine::String(v.utf8())); +} + +float SpineEventData::get_volume() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getVolume(); +} + +void SpineEventData::set_volume(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setVolume(v); +} + +float SpineEventData::get_balance() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getBalance(); +} + +void SpineEventData::set_balance(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setBalance(v); +} diff --git a/spine-godot/spine_godot/SpineEventData.h b/spine-godot/spine_godot/SpineEventData.h new file mode 100644 index 000000000..b6bd18053 --- /dev/null +++ b/spine-godot/spine_godot/SpineEventData.h @@ -0,0 +1,65 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include + +class SpineSkeletonDataResource; + +class SpineEventData : public SpineSkeletonDataResourceOwnedObject { + GDCLASS(SpineEventData, SpineObjectWrapper); + +protected: + static void _bind_methods(); + +public: + String get_event_name(); + + int get_int_value(); + + void set_int_value(int v); + + float get_float_value(); + + void set_float_value(float v); + + String get_string_value(); + + void set_string_value(const String &v); + + float get_volume(); + + void set_volume(float v); + + float get_balance(); + + void set_balance(float v); +}; diff --git a/spine-godot/spine_godot/SpineIkConstraint.cpp b/spine-godot/spine_godot/SpineIkConstraint.cpp new file mode 100644 index 000000000..045b09a84 --- /dev/null +++ b/spine-godot/spine_godot/SpineIkConstraint.cpp @@ -0,0 +1,159 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineIkConstraint.h" +#include "SpineBone.h" +#include "SpineCommon.h" +#include "SpineSprite.h" + +void SpineIkConstraint::_bind_methods() { + ClassDB::bind_method(D_METHOD("update"), &SpineIkConstraint::update); + ClassDB::bind_method(D_METHOD("get_order"), &SpineIkConstraint::get_order); + ClassDB::bind_method(D_METHOD("get_data"), &SpineIkConstraint::get_data); + ClassDB::bind_method(D_METHOD("get_bones"), &SpineIkConstraint::get_bones); + ClassDB::bind_method(D_METHOD("get_target"), &SpineIkConstraint::get_target); + ClassDB::bind_method(D_METHOD("set_target", "v"), &SpineIkConstraint::set_target); + ClassDB::bind_method(D_METHOD("get_bend_direction"), &SpineIkConstraint::get_bend_direction); + ClassDB::bind_method(D_METHOD("set_bend_direction", "v"), &SpineIkConstraint::set_bend_direction); + ClassDB::bind_method(D_METHOD("get_compress"), &SpineIkConstraint::get_compress); + ClassDB::bind_method(D_METHOD("set_compress", "v"), &SpineIkConstraint::set_compress); + ClassDB::bind_method(D_METHOD("get_stretch"), &SpineIkConstraint::get_stretch); + ClassDB::bind_method(D_METHOD("set_stretch", "v"), &SpineIkConstraint::set_stretch); + ClassDB::bind_method(D_METHOD("get_mix"), &SpineIkConstraint::get_mix); + ClassDB::bind_method(D_METHOD("set_mix", "v"), &SpineIkConstraint::set_mix); + ClassDB::bind_method(D_METHOD("get_softness"), &SpineIkConstraint::get_softness); + ClassDB::bind_method(D_METHOD("set_softness", "v"), &SpineIkConstraint::set_softness); + ClassDB::bind_method(D_METHOD("is_active"), &SpineIkConstraint::is_active); + ClassDB::bind_method(D_METHOD("set_active", "v"), &SpineIkConstraint::set_active); +} + +void SpineIkConstraint::update() { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->update(); +} + +int SpineIkConstraint::get_order() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getOrder(); +} + +Ref SpineIkConstraint::get_data() { + SPINE_CHECK(get_spine_object(), nullptr) + auto &ik_constraint_data = get_spine_object()->getData(); + Ref ik_constraint_data_ref(memnew(SpineIkConstraintData)); + ik_constraint_data_ref->set_spine_object(*get_spine_owner()->get_skeleton_data_res(), &ik_constraint_data); + return ik_constraint_data_ref; +} + +Array SpineIkConstraint::get_bones() { + Array result; + SPINE_CHECK(get_spine_object(), result) + auto &bones = get_spine_object()->getBones(); + result.resize((int) bones.size()); + for (int i = 0; i < bones.size(); ++i) { + auto bone = bones[i]; + Ref bone_ref(memnew(SpineBone)); + bone_ref->set_spine_object(get_spine_owner(), bone); + result[i] = bone_ref; + } + return result; +} + +Ref SpineIkConstraint::get_target() { + SPINE_CHECK(get_spine_object(), nullptr) + auto target = get_spine_object()->getTarget(); + if (!target) return nullptr; + Ref target_ref(memnew(SpineBone)); + target_ref->set_spine_object(get_spine_owner(), target); + return target_ref; +} + +void SpineIkConstraint::set_target(Ref v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setTarget(v.is_valid() && v->get_spine_object() ? v->get_spine_object() : nullptr); +} + +int SpineIkConstraint::get_bend_direction() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getBendDirection(); +} + +void SpineIkConstraint::set_bend_direction(int v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setBendDirection(v); +} + +bool SpineIkConstraint::get_compress() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_object()->getCompress(); +} + +void SpineIkConstraint::set_compress(bool v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setCompress(v); +} + +bool SpineIkConstraint::get_stretch() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_object()->getStretch(); +} + +void SpineIkConstraint::set_stretch(bool v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setStretch(v); +} + +float SpineIkConstraint::get_mix() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getMix(); +} +void SpineIkConstraint::set_mix(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setMix(v); +} + +float SpineIkConstraint::get_softness() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getSoftness(); +} + +void SpineIkConstraint::set_softness(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setSoftness(v); +} + +bool SpineIkConstraint::is_active() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_object()->isActive(); +} + +void SpineIkConstraint::set_active(bool v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setActive(v); +} diff --git a/spine-godot/spine_godot/SpineIkConstraint.h b/spine-godot/spine_godot/SpineIkConstraint.h new file mode 100644 index 000000000..06189727b --- /dev/null +++ b/spine-godot/spine_godot/SpineIkConstraint.h @@ -0,0 +1,80 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineIkConstraintData.h" +#include + +class SpineBone; +class SpineSprite; + +class SpineIkConstraint : public SpineSpriteOwnedObject { + GDCLASS(SpineIkConstraint, SpineObjectWrapper) + +protected: + static void _bind_methods(); + +public: + void update(); + + int get_order(); + + Ref get_data(); + + Array get_bones(); + + Ref get_target(); + + void set_target(Ref v); + + int get_bend_direction(); + + void set_bend_direction(int v); + + bool get_compress(); + + void set_compress(bool v); + + bool get_stretch(); + + void set_stretch(bool v); + + float get_mix(); + + void set_mix(float v); + + float get_softness(); + + void set_softness(float v); + + bool is_active(); + + void set_active(bool v); +}; diff --git a/spine-godot/spine_godot/SpineIkConstraintData.cpp b/spine-godot/spine_godot/SpineIkConstraintData.cpp new file mode 100644 index 000000000..c63f2bd33 --- /dev/null +++ b/spine-godot/spine_godot/SpineIkConstraintData.cpp @@ -0,0 +1,136 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineIkConstraintData.h" +#include "SpineCommon.h" + +void SpineIkConstraintData::_bind_methods() { + ClassDB::bind_method(D_METHOD("get_bones"), &SpineIkConstraintData::get_bones); + ClassDB::bind_method(D_METHOD("get_target"), &SpineIkConstraintData::get_target); + ClassDB::bind_method(D_METHOD("set_target", "v"), &SpineIkConstraintData::set_target); + ClassDB::bind_method(D_METHOD("get_bend_direction"), &SpineIkConstraintData::get_bend_direction); + ClassDB::bind_method(D_METHOD("set_bend_direction", "v"), &SpineIkConstraintData::set_bend_direction); + ClassDB::bind_method(D_METHOD("get_compress"), &SpineIkConstraintData::get_compress); + ClassDB::bind_method(D_METHOD("set_compress", "v"), &SpineIkConstraintData::set_compress); + ClassDB::bind_method(D_METHOD("get_stretch"), &SpineIkConstraintData::get_stretch); + ClassDB::bind_method(D_METHOD("set_stretch", "v"), &SpineIkConstraintData::set_stretch); + ClassDB::bind_method(D_METHOD("get_uniform"), &SpineIkConstraintData::get_uniform); + ClassDB::bind_method(D_METHOD("set_uniform", "v"), &SpineIkConstraintData::set_uniform); + ClassDB::bind_method(D_METHOD("get_mix"), &SpineIkConstraintData::get_mix); + ClassDB::bind_method(D_METHOD("set_mix", "v"), &SpineIkConstraintData::set_mix); + ClassDB::bind_method(D_METHOD("get_softness"), &SpineIkConstraintData::get_softness); + ClassDB::bind_method(D_METHOD("set_softness", "v"), &SpineIkConstraintData::set_softness); +} + +Array SpineIkConstraintData::get_bones() { + Array result; + SPINE_CHECK(get_spine_object(), result) + auto bones = get_spine_constraint_data()->getBones(); + result.resize((int) bones.size()); + for (int i = 0; i < bones.size(); ++i) { + Ref bone_ref(memnew(SpineBoneData)); + bone_ref->set_spine_object(get_spine_owner(), bones[i]); + result[i] = bone_ref; + } + return result; +} + +Ref SpineIkConstraintData::get_target() { + SPINE_CHECK(get_spine_object(), nullptr) + auto target = get_spine_constraint_data()->getTarget(); + if (!target) return nullptr; + Ref target_ref(memnew(SpineBoneData)); + target_ref->set_spine_object(get_spine_owner(), target); + return target_ref; +} + +void SpineIkConstraintData::set_target(Ref v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_constraint_data()->setTarget(v.is_valid() && v->get_spine_object() ? v->get_spine_object() : nullptr); +} + +int SpineIkConstraintData::get_bend_direction() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_constraint_data()->getBendDirection(); +} + +void SpineIkConstraintData::set_bend_direction(int v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_constraint_data()->setBendDirection(v); +} + +bool SpineIkConstraintData::get_compress() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_constraint_data()->getCompress(); +} + +void SpineIkConstraintData::set_compress(bool v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_constraint_data()->setCompress(v); +} + +bool SpineIkConstraintData::get_stretch() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_constraint_data()->getStretch(); +} + +void SpineIkConstraintData::set_stretch(bool v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_constraint_data()->setStretch(v); +} + +bool SpineIkConstraintData::get_uniform() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_constraint_data()->getUniform(); +} + +void SpineIkConstraintData::set_uniform(bool v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_constraint_data()->setUniform(v); +} + +float SpineIkConstraintData::get_mix() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_constraint_data()->getMix(); +} + +void SpineIkConstraintData::set_mix(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_constraint_data()->setMix(v); +} + +float SpineIkConstraintData::get_softness() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_constraint_data()->getSoftness(); +} + +void SpineIkConstraintData::set_softness(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_constraint_data()->setSoftness(v); +} diff --git a/spine-godot/spine_godot/SpineIkConstraintData.h b/spine-godot/spine_godot/SpineIkConstraintData.h new file mode 100644 index 000000000..58f3ef9d2 --- /dev/null +++ b/spine-godot/spine_godot/SpineIkConstraintData.h @@ -0,0 +1,74 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineConstraintData.h" +#include "SpineBoneData.h" +#include + +class SpineIkConstraintData : public SpineConstraintData { + GDCLASS(SpineIkConstraintData, SpineConstraintData) + + spine::IkConstraintData *get_spine_constraint_data() { return (spine::IkConstraintData *) get_spine_object(); } + +protected: + static void _bind_methods(); + +public: + Array get_bones(); + + Ref get_target(); + + void set_target(Ref v); + + int get_bend_direction(); + + void set_bend_direction(int v); + + bool get_compress(); + + void set_compress(bool v); + + bool get_stretch(); + + void set_stretch(bool v); + + bool get_uniform(); + + void set_uniform(bool v); + + float get_mix(); + + void set_mix(float v); + + float get_softness(); + + void set_softness(float v); +}; diff --git a/spine-godot/spine_godot/SpinePathConstraint.cpp b/spine-godot/spine_godot/SpinePathConstraint.cpp new file mode 100644 index 000000000..57f2e9d3c --- /dev/null +++ b/spine-godot/spine_godot/SpinePathConstraint.cpp @@ -0,0 +1,160 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpinePathConstraint.h" +#include "SpineBone.h" +#include "SpineCommon.h" +#include "SpineSprite.h" + +void SpinePathConstraint::_bind_methods() { + ClassDB::bind_method(D_METHOD("update"), &SpinePathConstraint::update); + ClassDB::bind_method(D_METHOD("get_order"), &SpinePathConstraint::get_order); + ClassDB::bind_method(D_METHOD("get_position"), &SpinePathConstraint::get_position); + ClassDB::bind_method(D_METHOD("set_position", "v"), &SpinePathConstraint::set_position); + ClassDB::bind_method(D_METHOD("get_spacing"), &SpinePathConstraint::get_spacing); + ClassDB::bind_method(D_METHOD("set_spacing", "v"), &SpinePathConstraint::set_spacing); + ClassDB::bind_method(D_METHOD("get_mix_rotate"), &SpinePathConstraint::get_mix_rotate); + ClassDB::bind_method(D_METHOD("set_mix_rotate", "v"), &SpinePathConstraint::set_mix_rotate); + ClassDB::bind_method(D_METHOD("get_mix_x"), &SpinePathConstraint::get_mix_x); + ClassDB::bind_method(D_METHOD("set_mix_x", "v"), &SpinePathConstraint::set_mix_x); + ClassDB::bind_method(D_METHOD("get_mix_y"), &SpinePathConstraint::get_mix_y); + ClassDB::bind_method(D_METHOD("set_mix_y", "v"), &SpinePathConstraint::set_mix_y); + ClassDB::bind_method(D_METHOD("get_bones"), &SpinePathConstraint::get_bones); + ClassDB::bind_method(D_METHOD("get_target"), &SpinePathConstraint::get_target); + ClassDB::bind_method(D_METHOD("set_target", "v"), &SpinePathConstraint::set_target); + ClassDB::bind_method(D_METHOD("get_data"), &SpinePathConstraint::get_data); + ClassDB::bind_method(D_METHOD("is_active"), &SpinePathConstraint::is_active); + ClassDB::bind_method(D_METHOD("set_active", "v"), &SpinePathConstraint::set_active); +} + +void SpinePathConstraint::update() { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->update(); +} + +int SpinePathConstraint::get_order() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getOrder(); +} + +float SpinePathConstraint::get_position() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getPosition(); +} + +void SpinePathConstraint::set_position(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setPosition(v); +} + +float SpinePathConstraint::get_spacing() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getSpacing(); +} + +void SpinePathConstraint::set_spacing(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setSpacing(v); +} + +float SpinePathConstraint::get_mix_rotate() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getMixRotate(); +} + +void SpinePathConstraint::set_mix_rotate(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setMixRotate(v); +} + +float SpinePathConstraint::get_mix_x() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getMixX(); +} + +void SpinePathConstraint::set_mix_x(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setMixX(v); +} + +float SpinePathConstraint::get_mix_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getMixY(); +} + +void SpinePathConstraint::set_mix_y(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setMixY(v); +} + +Array SpinePathConstraint::get_bones() { + Array result; + SPINE_CHECK(get_spine_object(), result) + auto &bones = get_spine_object()->getBones(); + result.resize((int) bones.size()); + for (int i = 0; i < bones.size(); ++i) { + auto bone = bones[i]; + Ref bone_ref(memnew(SpineBone)); + bone_ref->set_spine_object(get_spine_owner(), bone); + result[i] = bone_ref; + } + return result; +} + +Ref SpinePathConstraint::get_target() { + SPINE_CHECK(get_spine_object(), nullptr) + auto target = get_spine_object()->getTarget(); + if (!target) return nullptr; + Ref target_ref(memnew(SpineSlot)); + target_ref->set_spine_object(get_spine_owner(), target); + return target_ref; +} + +void SpinePathConstraint::set_target(Ref v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setTarget(v.is_valid() && v->get_spine_object() ? v->get_spine_object() : nullptr); +} + +Ref SpinePathConstraint::get_data() { + SPINE_CHECK(get_spine_object(), nullptr) + auto &data = get_spine_object()->getData(); + Ref data_ref(memnew(SpinePathConstraintData)); + data_ref->set_spine_object(*get_spine_owner()->get_skeleton_data_res(), &data); + return data_ref; +} + +bool SpinePathConstraint::is_active() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_object()->isActive(); +} + +void SpinePathConstraint::set_active(bool v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setActive(v); +} diff --git a/spine-godot/spine_godot/SpinePathConstraint.h b/spine-godot/spine_godot/SpinePathConstraint.h new file mode 100644 index 000000000..7ceb4db92 --- /dev/null +++ b/spine-godot/spine_godot/SpinePathConstraint.h @@ -0,0 +1,78 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpinePathConstraintData.h" +#include "SpineSlot.h" +#include + +class SpinePathConstraint : public SpineSpriteOwnedObject { + GDCLASS(SpinePathConstraint, SpineObjectWrapper) + +protected: + static void _bind_methods(); + +public: + void update(); + + int get_order(); + + float get_position(); + + void set_position(float v); + + float get_spacing(); + + void set_spacing(float v); + + float get_mix_rotate(); + + void set_mix_rotate(float v); + + float get_mix_x(); + + void set_mix_x(float v); + + float get_mix_y(); + + void set_mix_y(float v); + + Array get_bones(); + + Ref get_target(); + + void set_target(Ref v); + + Ref get_data(); + + bool is_active(); + + void set_active(bool v); +}; diff --git a/spine-godot/spine_godot/SpinePathConstraintData.cpp b/spine-godot/spine_godot/SpinePathConstraintData.cpp new file mode 100644 index 000000000..08722076c --- /dev/null +++ b/spine-godot/spine_godot/SpinePathConstraintData.cpp @@ -0,0 +1,173 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpinePathConstraintData.h" +#include "SpineCommon.h" +#include "SpineSkeletonDataResource.h" + +void SpinePathConstraintData::_bind_methods() { + ClassDB::bind_method(D_METHOD("get_bones"), &SpinePathConstraintData::get_bones); + ClassDB::bind_method(D_METHOD("get_target"), &SpinePathConstraintData::get_target); + ClassDB::bind_method(D_METHOD("set_target", "v"), &SpinePathConstraintData::set_target); + ClassDB::bind_method(D_METHOD("get_position_mode"), &SpinePathConstraintData::get_position_mode); + ClassDB::bind_method(D_METHOD("set_position_mode", "v"), &SpinePathConstraintData::set_position_mode); + ClassDB::bind_method(D_METHOD("get_spacing_mode"), &SpinePathConstraintData::get_spacing_mode); + ClassDB::bind_method(D_METHOD("set_spacing_mode", "v"), &SpinePathConstraintData::set_spacing_mode); + ClassDB::bind_method(D_METHOD("get_rotate_mode"), &SpinePathConstraintData::get_rotate_mode); + ClassDB::bind_method(D_METHOD("set_rotate_mode", "v"), &SpinePathConstraintData::set_rotate_mode); + ClassDB::bind_method(D_METHOD("get_offset_rotation"), &SpinePathConstraintData::get_offset_rotation); + ClassDB::bind_method(D_METHOD("set_offset_rotation", "v"), &SpinePathConstraintData::set_offset_rotation); + ClassDB::bind_method(D_METHOD("get_position"), &SpinePathConstraintData::get_position); + ClassDB::bind_method(D_METHOD("set_position", "v"), &SpinePathConstraintData::set_position); + ClassDB::bind_method(D_METHOD("get_spacing"), &SpinePathConstraintData::get_spacing); + ClassDB::bind_method(D_METHOD("set_spacing", "v"), &SpinePathConstraintData::set_spacing); + ClassDB::bind_method(D_METHOD("get_mix_rotate"), &SpinePathConstraintData::get_mix_rotate); + ClassDB::bind_method(D_METHOD("set_mix_rotate", "v"), &SpinePathConstraintData::set_mix_rotate); + ClassDB::bind_method(D_METHOD("get_mix_x"), &SpinePathConstraintData::get_mix_x); + ClassDB::bind_method(D_METHOD("set_mix_x", "v"), &SpinePathConstraintData::set_mix_x); + ClassDB::bind_method(D_METHOD("get_mix_y"), &SpinePathConstraintData::get_mix_y); + ClassDB::bind_method(D_METHOD("set_mix_y", "v"), &SpinePathConstraintData::set_mix_y); +} + +Array SpinePathConstraintData::get_bones() { + Array result; + SPINE_CHECK(get_spine_constraint_data(), result) + auto bones = get_spine_constraint_data()->getBones(); + result.resize((int) bones.size()); + for (int i = 0; i < bones.size(); ++i) { + Ref bone_ref(memnew(SpineBoneData)); + bone_ref->set_spine_object(get_spine_owner(), bones[i]); + result[i] = bone_ref; + } + return result; +} + +Ref SpinePathConstraintData::get_target() { + SPINE_CHECK(get_spine_constraint_data(), nullptr) + auto slot = get_spine_constraint_data()->getTarget(); + if (!slot) return nullptr; + Ref slot_ref(memnew(SpineSlotData)); + slot_ref->set_spine_object(get_spine_owner(), slot); + return slot_ref; +} + +void SpinePathConstraintData::set_target(Ref v) { + SPINE_CHECK(get_spine_constraint_data(), ) + get_spine_constraint_data()->setTarget(v.is_valid() && v->get_spine_object() ? v->get_spine_object() : nullptr); +} + +SpineConstant::PositionMode SpinePathConstraintData::get_position_mode() { + SPINE_CHECK(get_spine_constraint_data(), SpineConstant::PositionMode_Fixed) + return (SpineConstant::PositionMode) get_spine_constraint_data()->getPositionMode(); +} + +void SpinePathConstraintData::set_position_mode(SpineConstant::PositionMode v) { + SPINE_CHECK(get_spine_constraint_data(), ) + get_spine_constraint_data()->setPositionMode((spine::PositionMode) v); +} + +SpineConstant::SpacingMode SpinePathConstraintData::get_spacing_mode() { + SPINE_CHECK(get_spine_constraint_data(), SpineConstant::SpacingMode_Fixed) + return (SpineConstant::SpacingMode) get_spine_constraint_data()->getSpacingMode(); +} + +void SpinePathConstraintData::set_spacing_mode(SpineConstant::SpacingMode v) { + SPINE_CHECK(get_spine_constraint_data(), ) + get_spine_constraint_data()->setSpacingMode((spine::SpacingMode) v); +} + +SpineConstant::RotateMode SpinePathConstraintData::get_rotate_mode() { + SPINE_CHECK(get_spine_constraint_data(), SpineConstant::RotateMode_Tangent) + return (SpineConstant::RotateMode) get_spine_constraint_data()->getRotateMode(); +} + +void SpinePathConstraintData::set_rotate_mode(SpineConstant::RotateMode v) { + SPINE_CHECK(get_spine_constraint_data(), ) + get_spine_constraint_data()->setRotateMode((spine::RotateMode) v); +} + +float SpinePathConstraintData::get_offset_rotation() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getOffsetRotation(); +} + +void SpinePathConstraintData::set_offset_rotation(float v) { + SPINE_CHECK(get_spine_constraint_data(), ) + get_spine_constraint_data()->setOffsetRotation(v); +} + +float SpinePathConstraintData::get_position() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getPosition(); +} + +void SpinePathConstraintData::set_position(float v) { + SPINE_CHECK(get_spine_constraint_data(), ) + get_spine_constraint_data()->setPosition(v); +} + +float SpinePathConstraintData::get_spacing() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getSpacing(); +} + +void SpinePathConstraintData::set_spacing(float v) { + SPINE_CHECK(get_spine_constraint_data(), ) + get_spine_constraint_data()->setSpacing(v); +} + +float SpinePathConstraintData::get_mix_rotate() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getMixRotate(); +} + +void SpinePathConstraintData::set_mix_rotate(float v) { + SPINE_CHECK(get_spine_constraint_data(), ) + get_spine_constraint_data()->setMixRotate(v); +} + +float SpinePathConstraintData::get_mix_x() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getMixX(); +} + +void SpinePathConstraintData::set_mix_x(float v) { + SPINE_CHECK(get_spine_constraint_data(), ) + get_spine_constraint_data()->setMixX(v); +} + +float SpinePathConstraintData::get_mix_y() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getMixY(); +} + +void SpinePathConstraintData::set_mix_y(float v) { + SPINE_CHECK(get_spine_constraint_data(), ) + get_spine_constraint_data()->setMixY(v); +} diff --git a/spine-godot/spine_godot/SpinePathConstraintData.h b/spine-godot/spine_godot/SpinePathConstraintData.h new file mode 100644 index 000000000..3582aa7e0 --- /dev/null +++ b/spine-godot/spine_godot/SpinePathConstraintData.h @@ -0,0 +1,88 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineConstraintData.h" +#include "SpineConstant.h" +#include "SpineBoneData.h" +#include "SpineSlotData.h" +#include + +class SpinePathConstraintData : public SpineConstraintData { + GDCLASS(SpinePathConstraintData, SpineConstraintData) + + spine::PathConstraintData *get_spine_constraint_data() { return (spine::PathConstraintData *) get_spine_object(); } + +protected: + static void _bind_methods(); + +public: + Array get_bones(); + + Ref get_target(); + + void set_target(Ref v); + + SpineConstant::PositionMode get_position_mode(); + + void set_position_mode(SpineConstant::PositionMode v); + + SpineConstant::SpacingMode get_spacing_mode(); + + void set_spacing_mode(SpineConstant::SpacingMode v); + + SpineConstant::RotateMode get_rotate_mode(); + + void set_rotate_mode(SpineConstant::RotateMode v); + + float get_offset_rotation(); + + void set_offset_rotation(float v); + + float get_position(); + + void set_position(float v); + + float get_spacing(); + + void set_spacing(float v); + + float get_mix_rotate(); + + void set_mix_rotate(float v); + + float get_mix_x(); + + void set_mix_x(float v); + + float get_mix_y(); + + void set_mix_y(float v); +}; diff --git a/spine-godot/spine_godot/SpineRendererObject.h b/spine-godot/spine_godot/SpineRendererObject.h new file mode 100644 index 000000000..30bd525a3 --- /dev/null +++ b/spine-godot/spine_godot/SpineRendererObject.h @@ -0,0 +1,47 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#ifndef GODOT_SPINERENDEREROBJECT_H +#define GODOT_SPINERENDEREROBJECT_H + +#include + +#if VERSION_MAJOR > 3 +#include +#endif + +struct SpineRendererObject { + Ref texture; + Ref normal_map; +#if VERSION_MAJOR > 3 + Ref canvas_texture; +#endif +}; + +#endif diff --git a/spine-godot/spine_godot/SpineSkeleton.cpp b/spine-godot/spine_godot/SpineSkeleton.cpp new file mode 100644 index 000000000..81169289b --- /dev/null +++ b/spine-godot/spine_godot/SpineSkeleton.cpp @@ -0,0 +1,358 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineSkeleton.h" +#include "SpineCommon.h" +#include "SpineSprite.h" + +void SpineSkeleton::_bind_methods() { + ClassDB::bind_method(D_METHOD("update_world_transform"), &SpineSkeleton::update_world_transform); + ClassDB::bind_method(D_METHOD("set_to_setup_pose"), &SpineSkeleton::set_to_setup_pose); + ClassDB::bind_method(D_METHOD("set_bones_to_setup_pose"), &SpineSkeleton::set_bones_to_setup_pose); + ClassDB::bind_method(D_METHOD("set_slots_to_setup_pose"), &SpineSkeleton::set_slots_to_setup_pose); + ClassDB::bind_method(D_METHOD("find_bone", "bone_name"), &SpineSkeleton::find_bone); + ClassDB::bind_method(D_METHOD("find_slot", "slot_name"), &SpineSkeleton::find_slot); + ClassDB::bind_method(D_METHOD("set_skin_by_name", "skin_name"), &SpineSkeleton::set_skin_by_name); + ClassDB::bind_method(D_METHOD("set_skin", "new_skin"), &SpineSkeleton::set_skin); + ClassDB::bind_method(D_METHOD("get_attachment_by_slot_name", "slot_name", "attachment_name"), &SpineSkeleton::get_attachment_by_slot_name); + ClassDB::bind_method(D_METHOD("get_attachment_by_slot_index", "slot_index", "attachment_name"), &SpineSkeleton::get_attachment_by_slot_index); + ClassDB::bind_method(D_METHOD("set_attachment", "slot_name", "attachment_name"), &SpineSkeleton::set_attachment); + ClassDB::bind_method(D_METHOD("find_ik_constraint", "constraint_name"), &SpineSkeleton::find_ik_constraint); + ClassDB::bind_method(D_METHOD("find_transform_constraint", "constraint_name"), &SpineSkeleton::find_transform_constraint); + ClassDB::bind_method(D_METHOD("find_path_constraint", "constraint_name"), &SpineSkeleton::find_path_constraint); + ClassDB::bind_method(D_METHOD("get_bounds"), &SpineSkeleton::get_bounds); + ClassDB::bind_method(D_METHOD("get_root_bone"), &SpineSkeleton::get_root_bone); + ClassDB::bind_method(D_METHOD("get_data"), &SpineSkeleton::get_skeleton_data_res); + ClassDB::bind_method(D_METHOD("get_bones"), &SpineSkeleton::get_bones); + ClassDB::bind_method(D_METHOD("get_slots"), &SpineSkeleton::get_slots); + ClassDB::bind_method(D_METHOD("get_draw_order"), &SpineSkeleton::get_draw_order); + ClassDB::bind_method(D_METHOD("get_ik_constraints"), &SpineSkeleton::get_ik_constraints); + ClassDB::bind_method(D_METHOD("get_path_constraints"), &SpineSkeleton::get_path_constraints); + ClassDB::bind_method(D_METHOD("get_transform_constraints"), &SpineSkeleton::get_transform_constraints); + ClassDB::bind_method(D_METHOD("get_skin"), &SpineSkeleton::get_skin); + ClassDB::bind_method(D_METHOD("get_color"), &SpineSkeleton::get_color); + ClassDB::bind_method(D_METHOD("set_color", "v"), &SpineSkeleton::set_color); + ClassDB::bind_method(D_METHOD("set_position", "position"), &SpineSkeleton::set_position); + ClassDB::bind_method(D_METHOD("get_x"), &SpineSkeleton::get_x); + ClassDB::bind_method(D_METHOD("set_x", "v"), &SpineSkeleton::set_x); + ClassDB::bind_method(D_METHOD("get_y"), &SpineSkeleton::get_y); + ClassDB::bind_method(D_METHOD("set_y", "v"), &SpineSkeleton::set_y); + ClassDB::bind_method(D_METHOD("get_scale_x"), &SpineSkeleton::get_scale_x); + ClassDB::bind_method(D_METHOD("set_scale_x", "v"), &SpineSkeleton::set_scale_x); + ClassDB::bind_method(D_METHOD("get_scale_y"), &SpineSkeleton::get_scale_y); + ClassDB::bind_method(D_METHOD("set_scale_y", "v"), &SpineSkeleton::set_scale_y); +} + +SpineSkeleton::SpineSkeleton() : skeleton(nullptr), sprite(nullptr) { +} + +SpineSkeleton::~SpineSkeleton() { + delete skeleton; +} + +void SpineSkeleton::set_spine_sprite(SpineSprite *_sprite) { + delete skeleton; + skeleton = nullptr; + sprite = _sprite; + if (!sprite || !sprite->get_skeleton_data_res().is_valid() || !sprite->get_skeleton_data_res()->is_skeleton_data_loaded()) return; + skeleton = new spine::Skeleton(sprite->get_skeleton_data_res()->get_skeleton_data()); +} + +Ref SpineSkeleton::get_skeleton_data_res() const { + if (!sprite) return nullptr; + return sprite->get_skeleton_data_res(); +} + +void SpineSkeleton::update_world_transform() { + SPINE_CHECK(skeleton, ) + skeleton->updateWorldTransform(); +} + +void SpineSkeleton::set_to_setup_pose() { + SPINE_CHECK(skeleton, ) + skeleton->setToSetupPose(); +} + +void SpineSkeleton::set_bones_to_setup_pose() { + SPINE_CHECK(skeleton, ) + skeleton->setBonesToSetupPose(); +} + +void SpineSkeleton::set_slots_to_setup_pose() { + SPINE_CHECK(skeleton, ) + skeleton->setSlotsToSetupPose(); +} + +Ref SpineSkeleton::find_bone(const String &name) { + SPINE_CHECK(skeleton, nullptr) + if (EMPTY(name)) return nullptr; + auto bone = skeleton->findBone(SPINE_STRING(name)); + if (!bone) return nullptr; + Ref bone_ref(memnew(SpineBone)); + bone_ref->set_spine_object(sprite, bone); + return bone_ref; +} + +Ref SpineSkeleton::find_slot(const String &name) { + SPINE_CHECK(skeleton, nullptr) + if (EMPTY(name)) return nullptr; + auto slot = skeleton->findSlot(SPINE_STRING(name)); + if (!slot) return nullptr; + Ref slot_ref(memnew(SpineSlot)); + slot_ref->set_spine_object(sprite, slot); + return slot_ref; +} + +void SpineSkeleton::set_skin_by_name(const String &skin_name) { + SPINE_CHECK(skeleton, ) + skeleton->setSkin(SPINE_STRING(skin_name)); +} + +void SpineSkeleton::set_skin(Ref new_skin) { + SPINE_CHECK(skeleton, ) + skeleton->setSkin(new_skin.is_valid() && new_skin->get_spine_object() ? new_skin->get_spine_object() : nullptr); +} + +Ref SpineSkeleton::get_attachment_by_slot_name(const String &slot_name, const String &attachment_name) { + SPINE_CHECK(skeleton, nullptr) + auto attachment = skeleton->getAttachment(SPINE_STRING(slot_name), SPINE_STRING(attachment_name)); + if (!attachment) return nullptr; + Ref attachment_ref(memnew(SpineAttachment)); + attachment_ref->set_spine_object(*sprite->get_skeleton_data_res(), attachment); + return attachment_ref; +} + +Ref SpineSkeleton::get_attachment_by_slot_index(int slot_index, const String &attachment_name) { + SPINE_CHECK(skeleton, nullptr) + auto attachment = skeleton->getAttachment(slot_index, SPINE_STRING(attachment_name)); + if (!attachment) return nullptr; + Ref attachment_ref(memnew(SpineAttachment)); + attachment_ref->set_spine_object(*sprite->get_skeleton_data_res(), attachment); + return attachment_ref; +} + +void SpineSkeleton::set_attachment(const String &slot_name, const String &attachment_name) { + SPINE_CHECK(skeleton, ) + skeleton->setAttachment(SPINE_STRING(slot_name), SPINE_STRING(attachment_name)); +} + +Ref SpineSkeleton::find_ik_constraint(const String &constraint_name) { + SPINE_CHECK(skeleton, nullptr) + if (EMPTY(constraint_name)) return nullptr; + auto constraint = skeleton->findIkConstraint(SPINE_STRING(constraint_name)); + if (!constraint) return nullptr; + Ref constraint_ref(memnew(SpineIkConstraint)); + constraint_ref->set_spine_object(sprite, constraint); + return constraint_ref; +} + +Ref SpineSkeleton::find_transform_constraint(const String &constraint_name) { + SPINE_CHECK(skeleton, nullptr) + if (EMPTY(constraint_name)) return nullptr; + auto constraint = skeleton->findTransformConstraint(SPINE_STRING(constraint_name)); + if (!constraint) return nullptr; + Ref constraint_ref(memnew(SpineTransformConstraint)); + constraint_ref->set_spine_object(sprite, constraint); + return constraint_ref; +} + +Ref SpineSkeleton::find_path_constraint(const String &constraint_name) { + SPINE_CHECK(skeleton, nullptr) + if (EMPTY(constraint_name)) return nullptr; + auto constraint = skeleton->findPathConstraint(SPINE_STRING(constraint_name)); + if (!constraint) return nullptr; + Ref constraint_ref(memnew(SpinePathConstraint)); + constraint_ref->set_spine_object(sprite, constraint); + return constraint_ref; +} + +Rect2 SpineSkeleton::get_bounds() { + SPINE_CHECK(skeleton, Rect2(0, 0, 0, 0)) + float x, y, w, h; + skeleton->getBounds(x, y, w, h, bounds_vertex_buffer); + return Rect2(x, y, w, h); +} + +Ref SpineSkeleton::get_root_bone() { + SPINE_CHECK(skeleton, nullptr) + auto bone = skeleton->getRootBone(); + if (!bone) return nullptr; + Ref bone_ref(memnew(SpineBone)); + bone_ref->set_spine_object(sprite, bone); + return bone_ref; +} + +Array SpineSkeleton::get_bones() { + Array result; + SPINE_CHECK(skeleton, result) + auto &bones = skeleton->getBones(); + result.resize((int) bones.size()); + for (int i = 0; i < result.size(); ++i) { + auto bone = bones[i]; + Ref bone_ref(memnew(SpineBone)); + bone_ref->set_spine_object(sprite, bone); + result[i] = bone_ref; + } + return result; +} + +Array SpineSkeleton::get_slots() { + Array result; + SPINE_CHECK(skeleton, result) + auto &slots = skeleton->getSlots(); + result.resize((int) slots.size()); + for (int i = 0; i < result.size(); ++i) { + auto slot = slots[i]; + Ref slot_ref(memnew(SpineSlot)); + slot_ref->set_spine_object(sprite, slot); + result[i] = slot_ref; + } + return result; +} + +Array SpineSkeleton::get_draw_order() { + Array result; + SPINE_CHECK(skeleton, result) + auto &slots = skeleton->getDrawOrder(); + result.resize((int) slots.size()); + for (int i = 0; i < result.size(); ++i) { + auto slot = slots[i]; + Ref slot_ref(memnew(SpineSlot)); + slot_ref->set_spine_object(sprite, slot); + result[i] = slot_ref; + } + return result; +} + +Array SpineSkeleton::get_ik_constraints() { + Array result; + SPINE_CHECK(skeleton, result) + auto &constraints = skeleton->getIkConstraints(); + result.resize((int) constraints.size()); + for (int i = 0; i < result.size(); ++i) { + auto constraint = constraints[i]; + Ref constraint_ref(memnew(SpineIkConstraint)); + constraint_ref->set_spine_object(sprite, constraint); + result[i] = constraint_ref; + } + return result; +} + +Array SpineSkeleton::get_path_constraints() { + Array result; + SPINE_CHECK(skeleton, result) + auto &constraints = skeleton->getPathConstraints(); + result.resize((int) constraints.size()); + for (int i = 0; i < result.size(); ++i) { + auto constraint = constraints[i]; + Ref constraint_ref(memnew(SpinePathConstraint)); + constraint_ref->set_spine_object(sprite, constraint); + result[i] = constraint_ref; + } + return result; +} +Array SpineSkeleton::get_transform_constraints() { + Array result; + SPINE_CHECK(skeleton, result) + auto &constraints = skeleton->getTransformConstraints(); + result.resize((int) constraints.size()); + for (int i = 0; i < result.size(); ++i) { + auto constraint = constraints[i]; + Ref constraint_ref(memnew(SpineTransformConstraint)); + constraint_ref->set_spine_object(sprite, constraint); + result[i] = constraint_ref; + } + return result; +} + +Ref SpineSkeleton::get_skin() { + SPINE_CHECK(skeleton, nullptr) + auto skin = skeleton->getSkin(); + if (!skin) return nullptr; + Ref skin_ref(memnew(SpineSkin)); + skin_ref->set_spine_object(*sprite->get_skeleton_data_res(), skin); + return skin_ref; +} + +Color SpineSkeleton::get_color() { + SPINE_CHECK(skeleton, Color(0, 0, 0, 0)) + auto &color = skeleton->getColor(); + return Color(color.r, color.g, color.b, color.a); +} + +void SpineSkeleton::set_color(Color v) { + SPINE_CHECK(skeleton, ) + auto &color = skeleton->getColor(); + color.set(v.r, v.g, v.b, v.a); +} + +void SpineSkeleton::set_position(Vector2 position) { + SPINE_CHECK(skeleton, ) + skeleton->setPosition(position.x, position.y); +} + +float SpineSkeleton::get_x() { + SPINE_CHECK(skeleton, 0) + return skeleton->getX(); +} + +void SpineSkeleton::set_x(float v) { + SPINE_CHECK(skeleton, ) + skeleton->setX(v); +} + +float SpineSkeleton::get_y() { + SPINE_CHECK(skeleton, 0) + return skeleton->getY(); +} + +void SpineSkeleton::set_y(float v) { + SPINE_CHECK(skeleton, ) + skeleton->setY(v); +} + +float SpineSkeleton::get_scale_x() { + SPINE_CHECK(skeleton, 1) + return skeleton->getScaleX(); +} + +void SpineSkeleton::set_scale_x(float v) { + SPINE_CHECK(skeleton, ) + skeleton->setScaleX(v); +} + +float SpineSkeleton::get_scale_y() { + SPINE_CHECK(skeleton, 1) + return -skeleton->getScaleY(); +} + +void SpineSkeleton::set_scale_y(float v) { + SPINE_CHECK(skeleton, ) + skeleton->setScaleY(v); +} diff --git a/spine-godot/spine_godot/SpineSkeleton.h b/spine-godot/spine_godot/SpineSkeleton.h new file mode 100644 index 000000000..f312f2b31 --- /dev/null +++ b/spine-godot/spine_godot/SpineSkeleton.h @@ -0,0 +1,140 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include "SpineSkeletonDataResource.h" +#include "SpineBone.h" +#include "SpineSlot.h" +#include "SpineIkConstraint.h" +#include "SpineTransformConstraint.h" +#include "SpinePathConstraint.h" + +class SpineSprite; + +class SpineSkeleton : public REFCOUNTED { + GDCLASS(SpineSkeleton, REFCOUNTED); + + friend class SpineBone; + friend class SpineSlot; + friend class SpineTimeline; + friend class SpineSprite; + friend class SpineAnimation; + friend class SpineAnimationState; + friend class SpineCollisionShapeProxy; + friend class SpineAnimationTrack; + friend class SpineBoneNode; + friend class SpineSlotNode; + +protected: + static void _bind_methods(); + + void set_spine_sprite(SpineSprite *_sprite); + spine::Skeleton *get_spine_object() { return skeleton; } + SpineSprite *get_spine_owner() { return sprite; } + Ref get_skeleton_data_res() const; + +private: + spine::Skeleton *skeleton; + SpineSprite *sprite; + spine::Vector bounds_vertex_buffer; + +public: + SpineSkeleton(); + ~SpineSkeleton() override; + + void update_world_transform(); + + void set_to_setup_pose(); + + void set_bones_to_setup_pose(); + + void set_slots_to_setup_pose(); + + Ref find_bone(const String &name); + + Ref find_slot(const String &name); + + void set_skin_by_name(const String &skin_name); + + void set_skin(Ref new_skin); + + Ref get_attachment_by_slot_name(const String &slot_name, const String &attachment_name); + + Ref get_attachment_by_slot_index(int slot_index, const String &attachment_name); + + void set_attachment(const String &slot_name, const String &attachment_name); + + Ref find_ik_constraint(const String &constraint_name); + + Ref find_transform_constraint(const String &constraint_name); + + Ref find_path_constraint(const String &constraint_name); + + Rect2 get_bounds(); + + Ref get_root_bone(); + + Array get_bones(); + + Array get_slots(); + + Array get_draw_order(); + + Array get_ik_constraints(); + + Array get_path_constraints(); + + Array get_transform_constraints(); + + Ref get_skin(); + + Color get_color(); + + void set_color(Color v); + + void set_position(Vector2 position); + + float get_x(); + + void set_x(float v); + + float get_y(); + + void set_y(float v); + + float get_scale_x(); + + void set_scale_x(float v); + + float get_scale_y(); + + void set_scale_y(float v); +}; diff --git a/spine-godot/spine_godot/SpineSkeletonDataResource.cpp b/spine-godot/spine_godot/SpineSkeletonDataResource.cpp new file mode 100644 index 000000000..05bf832e8 --- /dev/null +++ b/spine-godot/spine_godot/SpineSkeletonDataResource.cpp @@ -0,0 +1,541 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineSkeletonDataResource.h" +#include "SpineCommon.h" +#include "core/io/marshalls.h" + +void SpineAnimationMix::_bind_methods() { + ClassDB::bind_method(D_METHOD("set_from", "from"), &SpineAnimationMix::set_from); + ClassDB::bind_method(D_METHOD("get_from"), &SpineAnimationMix::get_from); + ClassDB::bind_method(D_METHOD("set_to", "to"), &SpineAnimationMix::set_to); + ClassDB::bind_method(D_METHOD("get_to"), &SpineAnimationMix::get_to); + ClassDB::bind_method(D_METHOD("set_mix", "mix"), &SpineAnimationMix::set_mix); + ClassDB::bind_method(D_METHOD("get_mix"), &SpineAnimationMix::get_mix); + + ADD_PROPERTY(PropertyInfo(Variant::STRING, "from"), "set_from", "get_from"); + ADD_PROPERTY(PropertyInfo(Variant::STRING, "to"), "set_to", "get_to"); +#if VERSION_MAJOR > 3 + ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "mix"), "set_mix", "get_mix"); +#else + ADD_PROPERTY(PropertyInfo(Variant::REAL, "mix"), "set_mix", "get_mix"); +#endif +} + +SpineAnimationMix::SpineAnimationMix() : from(""), to(""), mix(0) { +} + +void SpineAnimationMix::set_from(const StringName &_from) { + this->from = _from; +} + +String SpineAnimationMix::get_from() { + return from; +} + +void SpineAnimationMix::set_to(const StringName &_to) { + this->to = _to; +} + +String SpineAnimationMix::get_to() { + return to; +} + +void SpineAnimationMix::set_mix(float _mix) { + this->mix = _mix; +} + +float SpineAnimationMix::get_mix() { + return mix; +} + +void SpineSkeletonDataResource::_bind_methods() { + ClassDB::bind_method(D_METHOD("is_skeleton_data_loaded"), &SpineSkeletonDataResource::is_skeleton_data_loaded); + ClassDB::bind_method(D_METHOD("set_atlas_res", "atlas_res"), &SpineSkeletonDataResource::set_atlas_res); + ClassDB::bind_method(D_METHOD("get_atlas_res"), &SpineSkeletonDataResource::get_atlas_res); + ClassDB::bind_method(D_METHOD("set_skeleton_file_res", "skeleton_file_res"), &SpineSkeletonDataResource::set_skeleton_file_res); + ClassDB::bind_method(D_METHOD("get_skeleton_file_res"), &SpineSkeletonDataResource::get_skeleton_file_res); + ClassDB::bind_method(D_METHOD("set_default_mix", "default_mix"), &SpineSkeletonDataResource::set_default_mix); + ClassDB::bind_method(D_METHOD("get_default_mix"), &SpineSkeletonDataResource::get_default_mix); + ClassDB::bind_method(D_METHOD("set_animation_mixes", "mixes"), &SpineSkeletonDataResource::set_animation_mixes); + ClassDB::bind_method(D_METHOD("get_animation_mixes"), &SpineSkeletonDataResource::get_animation_mixes); + + // Spine API + ClassDB::bind_method(D_METHOD("find_bone", "bone_name"), &SpineSkeletonDataResource::find_bone); + ClassDB::bind_method(D_METHOD("find_slot", "slot_name"), &SpineSkeletonDataResource::find_slot); + ClassDB::bind_method(D_METHOD("find_skin", "skin_name"), &SpineSkeletonDataResource::find_skin); + ClassDB::bind_method(D_METHOD("find_event", "event_data_name"), &SpineSkeletonDataResource::find_event); + ClassDB::bind_method(D_METHOD("find_animation", "animation_name"), &SpineSkeletonDataResource::find_animation); + ClassDB::bind_method(D_METHOD("find_ik_constraint_data", "constraint_name"), &SpineSkeletonDataResource::find_ik_constraint); + ClassDB::bind_method(D_METHOD("find_transform_constraint_data", "constraint_name"), &SpineSkeletonDataResource::find_transform_constraint); + ClassDB::bind_method(D_METHOD("find_path_constraint_data", "constraint_name"), &SpineSkeletonDataResource::find_path_constraint); + ClassDB::bind_method(D_METHOD("get_skeleton_name"), &SpineSkeletonDataResource::get_skeleton_name); + ClassDB::bind_method(D_METHOD("get_bones"), &SpineSkeletonDataResource::get_bones); + ClassDB::bind_method(D_METHOD("get_slots"), &SpineSkeletonDataResource::get_slots); + ClassDB::bind_method(D_METHOD("get_skins"), &SpineSkeletonDataResource::get_skins); + ClassDB::bind_method(D_METHOD("get_default_skin"), &SpineSkeletonDataResource::get_default_skin); + ClassDB::bind_method(D_METHOD("set_default_skin", "skin"), &SpineSkeletonDataResource::set_default_skin); + ClassDB::bind_method(D_METHOD("get_events"), &SpineSkeletonDataResource::get_events); + ClassDB::bind_method(D_METHOD("get_animations"), &SpineSkeletonDataResource::get_animations); + ClassDB::bind_method(D_METHOD("get_ik_constraints"), &SpineSkeletonDataResource::get_ik_constraints); + ClassDB::bind_method(D_METHOD("get_transform_constraints"), &SpineSkeletonDataResource::get_transform_constraints); + ClassDB::bind_method(D_METHOD("get_path_constraints"), &SpineSkeletonDataResource::get_path_constraints); + ClassDB::bind_method(D_METHOD("get_x"), &SpineSkeletonDataResource::get_x); + ClassDB::bind_method(D_METHOD("get_y"), &SpineSkeletonDataResource::get_y); + ClassDB::bind_method(D_METHOD("get_width"), &SpineSkeletonDataResource::get_width); + ClassDB::bind_method(D_METHOD("get_height"), &SpineSkeletonDataResource::get_height); + ClassDB::bind_method(D_METHOD("get_version"), &SpineSkeletonDataResource::get_version); + ClassDB::bind_method(D_METHOD("get_hash"), &SpineSkeletonDataResource::get_hash); + ClassDB::bind_method(D_METHOD("get_images_path"), &SpineSkeletonDataResource::get_images_path); + ClassDB::bind_method(D_METHOD("get_audio_path"), &SpineSkeletonDataResource::get_audio_path); + ClassDB::bind_method(D_METHOD("get_fps"), &SpineSkeletonDataResource::get_fps); + + ADD_SIGNAL(MethodInfo("skeleton_data_changed")); + ADD_SIGNAL(MethodInfo("_internal_spine_objects_invalidated")); + + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "atlas_res", PropertyHint::PROPERTY_HINT_RESOURCE_TYPE, "SpineAtlasResource"), "set_atlas_res", "get_atlas_res"); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "skeleton_file_res", PropertyHint::PROPERTY_HINT_RESOURCE_TYPE, "SpineSkeletonFileResource"), "set_skeleton_file_res", "get_skeleton_file_res"); +#if VERSION_MAJOR > 3 + ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "default_mix"), "set_default_mix", "get_default_mix"); +#else + ADD_PROPERTY(PropertyInfo(Variant::REAL, "default_mix"), "set_default_mix", "get_default_mix"); +#endif + ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "animation_mixes"), "set_animation_mixes", "get_animation_mixes"); +} + +SpineSkeletonDataResource::SpineSkeletonDataResource() : default_mix(0), skeleton_data(nullptr), animation_state_data(nullptr) { +} + +SpineSkeletonDataResource::~SpineSkeletonDataResource() { + delete skeleton_data; + delete animation_state_data; +} + +void SpineSkeletonDataResource::update_skeleton_data() { + if (skeleton_data) { + delete skeleton_data; + skeleton_data = nullptr; + } + if (animation_state_data) { + delete animation_state_data; + animation_state_data = nullptr; + } + + emit_signal("_internal_spine_objects_invalidated"); + + if (atlas_res.is_valid() && skeleton_file_res.is_valid()) { + load_resources(atlas_res->get_spine_atlas(), skeleton_file_res->get_json(), skeleton_file_res->get_binary()); + } + emit_signal("skeleton_data_changed"); +#ifdef TOOLS_ENABLED + NOTIFY_PROPERTY_LIST_CHANGED(); +#endif +} + +void SpineSkeletonDataResource::load_resources(spine::Atlas *atlas, const String &json, const Vector &binary) { + if ((EMPTY(json) && EMPTY(binary)) || atlas == nullptr) return; + + spine::SkeletonData *data; + if (!EMPTY(json)) { + spine::SkeletonJson skeletonJson(atlas); + data = skeletonJson.readSkeletonData(json.utf8()); + if (!data) { + ERR_PRINT(String("Error while loading skeleton data: ") + get_path()); + ERR_PRINT(String("Error message: ") + skeletonJson.getError().buffer()); + return; + } + } else { + spine::SkeletonBinary skeletonBinary(atlas); + data = skeletonBinary.readSkeletonData(binary.ptr(), binary.size()); + if (!data) { + ERR_PRINT(String("Error while loading skeleton data: ") + get_path()); + ERR_PRINT(String("Error message: ") + skeletonBinary.getError().buffer()); + return; + } + } + skeleton_data = data; + animation_state_data = new spine::AnimationStateData(data); + update_mixes(); +} + +bool SpineSkeletonDataResource::is_skeleton_data_loaded() const { + return skeleton_data != nullptr; +} + +void SpineSkeletonDataResource::set_atlas_res(const Ref &atlas) { + atlas_res = atlas; + update_skeleton_data(); +} + +Ref SpineSkeletonDataResource::get_atlas_res() { + return atlas_res; +} + +void SpineSkeletonDataResource::set_skeleton_file_res(const Ref &skeleton_file) { + skeleton_file_res = skeleton_file; + update_skeleton_data(); +} + +Ref SpineSkeletonDataResource::get_skeleton_file_res() { + return skeleton_file_res; +} + +void SpineSkeletonDataResource::get_animation_names(Vector &animation_names) const { + animation_names.clear(); + if (!is_skeleton_data_loaded()) return; + auto animations = skeleton_data->getAnimations(); + for (size_t i = 0; i < animations.size(); ++i) { + auto animation = animations[i]; + animation_names.push_back(animation->getName().buffer()); + } +} + +void SpineSkeletonDataResource::get_skin_names(Vector &skin_names) const { + skin_names.clear(); + if (!is_skeleton_data_loaded()) return; + auto skins = skeleton_data->getSkins(); + for (size_t i = 0; i < skins.size(); ++i) { + auto skin = skins[i]; + skin_names.push_back(skin->getName().buffer()); + } +} + +void SpineSkeletonDataResource::get_slot_names(Vector &slot_names) { + slot_names.clear(); + if (!is_skeleton_data_loaded()) return; + auto slots = skeleton_data->getSlots(); + for (size_t i = 0; i < slots.size(); ++i) { + auto slot = slots[i]; + slot_names.push_back(slot->getName().buffer()); + } +} + +void SpineSkeletonDataResource::get_bone_names(Vector &bone_names) { + bone_names.clear(); + if (!is_skeleton_data_loaded()) return; + auto bones = skeleton_data->getBones(); + for (size_t i = 0; i < bones.size(); ++i) { + auto bone = bones[i]; + bone_names.push_back(bone->getName().buffer()); + } +} + +void SpineSkeletonDataResource::set_default_mix(float _default_mix) { + this->default_mix = _default_mix; + update_mixes(); +} + +float SpineSkeletonDataResource::get_default_mix() { + return default_mix; +} + +void SpineSkeletonDataResource::set_animation_mixes(Array _animation_mixes) { + for (int i = 0; i < _animation_mixes.size(); i++) { + auto objectId = Object::cast_to(_animation_mixes[0]); + if (objectId) { + ERR_PRINT("Live-editing of animation mixes is not supported."); + return; + } + } + + this->animation_mixes = _animation_mixes; + update_mixes(); +} + +Array SpineSkeletonDataResource::get_animation_mixes() { + return animation_mixes; +} + +void SpineSkeletonDataResource::update_mixes() { + if (!is_skeleton_data_loaded()) return; + animation_state_data->clear(); + animation_state_data->setDefaultMix(default_mix); + for (int i = 0; i < animation_mixes.size(); i++) { + Ref mix = animation_mixes[i]; + spine::Animation *from = skeleton_data->findAnimation(mix->get_from().utf8().ptr()); + spine::Animation *to = skeleton_data->findAnimation(mix->get_to().utf8().ptr()); + if (!from) { + ERR_PRINT(vformat("Failed to set animation mix %s->%s. Animation %s does not exist in skeleton.", from, to, from)); + continue; + } + if (!to) { + ERR_PRINT(vformat("Failed to set animation mix %s->%s. Animation %s does not exist in skeleton.", from, to, to)); + continue; + } + animation_state_data->setMix(from, to, mix->get_mix()); + } +} + +Ref SpineSkeletonDataResource::find_animation(const String &animation_name) const { + SPINE_CHECK(skeleton_data, nullptr) + if (EMPTY(animation_name)) return nullptr; + auto animation = skeleton_data->findAnimation(SPINE_STRING(animation_name)); + if (!animation) return nullptr; + Ref animation_ref(memnew(SpineAnimation)); + animation_ref->set_spine_object(this, animation); + return animation_ref; +} + +Ref SpineSkeletonDataResource::find_bone(const String &bone_name) const { + SPINE_CHECK(skeleton_data, nullptr) + if (EMPTY(bone_name)) return nullptr; + auto bone = skeleton_data->findBone(SPINE_STRING(bone_name)); + if (!bone) return nullptr; + Ref bone_ref(memnew(SpineBoneData)); + bone_ref->set_spine_object(this, bone); + return bone_ref; +} + +Ref SpineSkeletonDataResource::find_slot(const String &slot_name) const { + SPINE_CHECK(skeleton_data, nullptr) + if (EMPTY(slot_name)) return nullptr; + auto slot = skeleton_data->findSlot(SPINE_STRING(slot_name)); + if (!slot) return nullptr; + Ref slot_ref(memnew(SpineSlotData)); + slot_ref->set_spine_object(this, slot); + return slot_ref; +} + +Ref SpineSkeletonDataResource::find_skin(const String &skin_name) const { + SPINE_CHECK(skeleton_data, nullptr) + if (EMPTY(skin_name)) return nullptr; + auto skin = skeleton_data->findSkin(SPINE_STRING(skin_name)); + if (!skin) return nullptr; + Ref skin_ref(memnew(SpineSkin)); + skin_ref->set_spine_object(this, skin); + return skin_ref; +} + +Ref SpineSkeletonDataResource::find_event(const String &event_data_name) const { + SPINE_CHECK(skeleton_data, nullptr) + if (EMPTY(event_data_name)) return nullptr; + auto event = skeleton_data->findEvent(SPINE_STRING(event_data_name)); + if (!event) return nullptr; + Ref event_ref(memnew(SpineEventData)); + event_ref->set_spine_object(this, event); + return event_ref; +} + +Ref SpineSkeletonDataResource::find_ik_constraint(const String &constraint_name) const { + SPINE_CHECK(skeleton_data, nullptr) + if (EMPTY(constraint_name)) return nullptr; + auto constraint = skeleton_data->findIkConstraint(SPINE_STRING(constraint_name)); + if (!constraint) return nullptr; + Ref constraint_ref(memnew(SpineIkConstraintData)); + constraint_ref->set_spine_object(this, constraint); + return constraint_ref; +} + +Ref SpineSkeletonDataResource::find_transform_constraint(const String &constraint_name) const { + SPINE_CHECK(skeleton_data, nullptr) + if (EMPTY(constraint_name)) return nullptr; + auto constraint = skeleton_data->findTransformConstraint(SPINE_STRING(constraint_name)); + if (!constraint) return nullptr; + Ref constraint_ref(memnew(SpineTransformConstraintData)); + constraint_ref->set_spine_object(this, constraint); + return constraint_ref; +} +Ref SpineSkeletonDataResource::find_path_constraint(const String &constraint_name) const { + SPINE_CHECK(skeleton_data, nullptr) + if (EMPTY(constraint_name)) return nullptr; + auto constraint = skeleton_data->findPathConstraint(SPINE_STRING(constraint_name)); + if (constraint == nullptr) return nullptr; + Ref constraint_ref(memnew(SpinePathConstraintData)); + constraint_ref->set_spine_object(this, constraint); + return constraint_ref; +} + +String SpineSkeletonDataResource::get_skeleton_name() const { + SPINE_CHECK(skeleton_data, "") + return skeleton_data->getName().buffer(); +} + +Array SpineSkeletonDataResource::get_bones() const { + Array result; + SPINE_CHECK(skeleton_data, result) + auto bones = skeleton_data->getBones(); + result.resize((int) bones.size()); + for (int i = 0; i < bones.size(); ++i) { + Ref bone_ref(memnew(SpineBoneData)); + bone_ref->set_spine_object(this, bones[i]); + result[i] = bone_ref; + } + return result; +} + +Array SpineSkeletonDataResource::get_slots() const { + Array result; + SPINE_CHECK(skeleton_data, result) + auto slots = skeleton_data->getSlots(); + result.resize((int) slots.size()); + for (int i = 0; i < slots.size(); ++i) { + Ref slot_ref(memnew(SpineSlotData)); + slot_ref->set_spine_object(this, slots[i]); + result[i] = slot_ref; + } + return result; +} + +Array SpineSkeletonDataResource::get_skins() const { + Array result; + SPINE_CHECK(skeleton_data, result) + auto skins = skeleton_data->getSkins(); + result.resize((int) skins.size()); + for (int i = 0; i < skins.size(); ++i) { + Ref skin_ref(memnew(SpineSkin)); + skin_ref->set_spine_object(this, skins[i]); + result[i] = skin_ref; + } + return result; +} + +Ref SpineSkeletonDataResource::get_default_skin() const { + SPINE_CHECK(skeleton_data, nullptr) + auto skin = skeleton_data->getDefaultSkin(); + if (skin) return nullptr; + Ref skin_ref(memnew(SpineSkin)); + skin_ref->set_spine_object(this, skin); + return skin_ref; +} + +void SpineSkeletonDataResource::set_default_skin(Ref skin) { + SPINE_CHECK(skeleton_data, ) + skeleton_data->setDefaultSkin(skin.is_valid() && skin->get_spine_object() ? skin->get_spine_object() : nullptr); +} + +Array SpineSkeletonDataResource::get_events() const { + Array result; + SPINE_CHECK(skeleton_data, result) + auto events = skeleton_data->getEvents(); + result.resize((int) events.size()); + for (int i = 0; i < events.size(); ++i) { + Ref event_ref(memnew(SpineEventData)); + event_ref->set_spine_object(this, events[i]); + result[i] = event_ref; + } + return result; +} + +Array SpineSkeletonDataResource::get_animations() const { + Array result; + SPINE_CHECK(skeleton_data, result) + auto animations = skeleton_data->getAnimations(); + result.resize((int) animations.size()); + for (int i = 0; i < animations.size(); ++i) { + Ref animation_ref(memnew(SpineAnimation)); + animation_ref->set_spine_object(this, animations[i]); + result[i] = animation_ref; + } + return result; +} + +Array SpineSkeletonDataResource::get_ik_constraints() const { + Array result; + SPINE_CHECK(skeleton_data, result) + auto constraints = skeleton_data->getIkConstraints(); + result.resize((int) constraints.size()); + for (int i = 0; i < constraints.size(); ++i) { + Ref constraint_ref(memnew(SpineIkConstraintData)); + constraint_ref->set_spine_object(this, constraints[i]); + result[i] = constraint_ref; + } + return result; +} + +Array SpineSkeletonDataResource::get_transform_constraints() const { + Array result; + SPINE_CHECK(skeleton_data, result) + auto constraints = skeleton_data->getTransformConstraints(); + result.resize((int) constraints.size()); + for (int i = 0; i < constraints.size(); ++i) { + Ref constraint_ref(memnew(SpineTransformConstraintData)); + constraint_ref->set_spine_object(this, constraints[i]); + result[i] = constraint_ref; + } + return result; +} + +Array SpineSkeletonDataResource::get_path_constraints() const { + Array result; + SPINE_CHECK(skeleton_data, result) + auto constraints = skeleton_data->getPathConstraints(); + result.resize((int) constraints.size()); + for (int i = 0; i < constraints.size(); ++i) { + Ref constraint_ref(memnew(SpinePathConstraintData)); + constraint_ref->set_spine_object(this, constraints[i]); + result[i] = constraint_ref; + } + return result; +} + +float SpineSkeletonDataResource::get_x() const { + SPINE_CHECK(skeleton_data, 0) + return skeleton_data->getX(); +} + +float SpineSkeletonDataResource::get_y() const { + SPINE_CHECK(skeleton_data, 0) + return skeleton_data->getY(); +} + +float SpineSkeletonDataResource::get_width() const { + SPINE_CHECK(skeleton_data, 0) + return skeleton_data->getWidth(); +} + +float SpineSkeletonDataResource::get_height() const { + SPINE_CHECK(skeleton_data, 0) + return skeleton_data->getHeight(); +} + +String SpineSkeletonDataResource::get_version() const { + SPINE_CHECK(skeleton_data, "") + return skeleton_data->getVersion().buffer(); +} + +String SpineSkeletonDataResource::get_hash() const { + SPINE_CHECK(skeleton_data, "") + return skeleton_data->getHash().buffer(); +} + +String SpineSkeletonDataResource::get_images_path() const { + SPINE_CHECK(skeleton_data, "") + return skeleton_data->getImagesPath().buffer(); +} + +String SpineSkeletonDataResource::get_audio_path() const { + SPINE_CHECK(skeleton_data, "") + return skeleton_data->getAudioPath().buffer(); +} + +float SpineSkeletonDataResource::get_fps() const { + SPINE_CHECK(skeleton_data, 0) + return skeleton_data->getFps(); +} +// diff --git a/spine-godot/spine_godot/SpineSkeletonDataResource.h b/spine-godot/spine_godot/SpineSkeletonDataResource.h new file mode 100644 index 000000000..4486817d0 --- /dev/null +++ b/spine-godot/spine_godot/SpineSkeletonDataResource.h @@ -0,0 +1,150 @@ +#pragma once + +#include "SpineAtlasResource.h" +#include "SpineSkeletonFileResource.h" +#include "SpineAnimation.h" +#include "SpineBoneData.h" +#include "SpineSlotData.h" +#include "SpineSkin.h" +#include "SpineIkConstraintData.h" +#include "SpineTransformConstraintData.h" +#include "SpinePathConstraintData.h" +#include "SpineEventData.h" + +class SpineAnimationMix : public Resource { + GDCLASS(SpineAnimationMix, Resource) + +protected: + static void _bind_methods(); + + String from; + String to; + float mix; + +public: + SpineAnimationMix(); + + void set_from(const StringName &from); + + String get_from(); + + void set_to(const StringName &to); + + String get_to(); + + void set_mix(float mix); + + float get_mix(); +}; + +class SpineSkeletonDataResource : public Resource { + GDCLASS(SpineSkeletonDataResource, Resource) + +protected: + static void _bind_methods(); + +private: + Ref atlas_res; + Ref skeleton_file_res; + float default_mix; + Array animation_mixes; + + spine::SkeletonData *skeleton_data; + spine::AnimationStateData *animation_state_data; + + void update_skeleton_data(); + + void load_resources(spine::Atlas *atlas, const String &json, const Vector &binary); + +public: + SpineSkeletonDataResource(); + virtual ~SpineSkeletonDataResource(); + + bool is_skeleton_data_loaded() const; + + void set_atlas_res(const Ref &atlas); + Ref get_atlas_res(); + + void set_skeleton_file_res(const Ref &skeleton_file); + Ref get_skeleton_file_res(); + + spine::SkeletonData *get_skeleton_data() const { return skeleton_data; } + + spine::AnimationStateData *get_animation_state_data() const { return animation_state_data; } + + void get_animation_names(Vector &animation_names) const; + + void get_skin_names(Vector &l) const; + + void get_slot_names(Vector &slot_names); + + void get_bone_names(Vector &bone_names); + + void set_default_mix(float default_mix); + + float get_default_mix(); + + void set_animation_mixes(Array animation_mixes); + + Array get_animation_mixes(); + + // Used by SpineEditorPropertyAnimationMix(es) to update the underlying AnimationState + void update_mixes(); + + // Spine API + Ref find_bone(const String &bone_name) const; + + Ref find_slot(const String &slot_name) const; + + Ref find_skin(const String &skin_name) const; + + Ref find_event(const String &event_data_name) const; + + Ref find_animation(const String &animation_name) const; + + Ref find_ik_constraint(const String &constraint_name) const; + + Ref find_transform_constraint(const String &constraint_name) const; + + Ref find_path_constraint(const String &constraint_name) const; + + String get_skeleton_name() const; + + Array get_bones() const; + + Array get_slots() const; + + Array get_skins() const; + + Ref get_default_skin() const; + + void set_default_skin(Ref skin); + + Array get_events() const; + + Array get_animations() const; + + Array get_ik_constraints() const; + + Array get_transform_constraints() const; + + Array get_path_constraints() const; + + float get_x() const; + + float get_y() const; + + float get_width() const; + + float get_height() const; + + String get_version() const; + + String get_hash() const; + + String get_images_path() const; + + String get_audio_path() const; + + float get_fps() const; +}; diff --git a/spine-godot/spine_godot/SpineSkeletonFileResource.cpp b/spine-godot/spine_godot/SpineSkeletonFileResource.cpp new file mode 100644 index 000000000..1c617fc81 --- /dev/null +++ b/spine-godot/spine_godot/SpineSkeletonFileResource.cpp @@ -0,0 +1,112 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineSkeletonFileResource.h" +#if VERSION_MAJOR > 3 +#include "core/io/file_access.h" +#else +#include "core/os/file_access.h" +#endif + +void SpineSkeletonFileResource::_bind_methods() { +} + +Error SpineSkeletonFileResource::load_from_file(const String &path) { + Error error; + if (path.ends_with("spjson")) + json = FileAccess::get_file_as_string(path, &error); + else + binary = FileAccess::get_file_as_array(path, &error); + return error; +} + +Error SpineSkeletonFileResource::save_to_file(const String &path) { + Error error; +#if VERSION_MAJOR > 3 + Ref file = FileAccess::open(path, FileAccess::WRITE, &error); + if (error != OK) return error; +#else + FileAccess *file = FileAccess::open(path, FileAccess::WRITE, &error); + if (error != OK) { + if (file) file->close(); + return error; + } +#endif + if (!is_binary()) + file->store_string(json); + else + file->store_buffer(binary.ptr(), binary.size()); +#if VERSION_MAJOR > 3 + file->flush(); +#else + file->close(); +#endif + return OK; +} + +#if VERSION_MAJOR > 3 +RES SpineSkeletonFileResourceFormatLoader::load(const String &path, const String &original_path, Error *error, bool use_sub_threads, float *progress, CacheMode cache_mode) { +#else +RES SpineSkeletonFileResourceFormatLoader::load(const String &path, const String &original_path, Error *error) { +#endif + Ref skeleton_file = memnew(SpineSkeletonFileResource); + skeleton_file->load_from_file(path); + if (error) *error = OK; + return skeleton_file; +} + +void SpineSkeletonFileResourceFormatLoader::get_recognized_extensions(List *extensions) const { + extensions->push_back("spjson"); + extensions->push_back("spskel"); +} + +String SpineSkeletonFileResourceFormatLoader::get_resource_type(const String &path) const { + return "SpineSkeletonFileResource"; +} + +bool SpineSkeletonFileResourceFormatLoader::handles_type(const String &type) const { + return type == "SpineSkeletonFileResource" || ClassDB::is_parent_class(type, "SpineSkeletonFileResource"); +} + +Error SpineSkeletonFileResourceFormatSaver::save(const String &path, const RES &resource, uint32_t flags) { + Ref res = resource; + Error error = res->save_to_file(path); + return error; +} + +void SpineSkeletonFileResourceFormatSaver::get_recognized_extensions(const RES &resource, List *p_extensions) const { + if (Object::cast_to(*resource)) { + p_extensions->push_back("spjson"); + p_extensions->push_back("spskel"); + } +} + +bool SpineSkeletonFileResourceFormatSaver::recognize(const RES &p_resource) const { + return Object::cast_to(*p_resource) != nullptr; +} diff --git a/spine-godot/spine_godot/SpineSkeletonFileResource.h b/spine-godot/spine_godot/SpineSkeletonFileResource.h new file mode 100644 index 000000000..d8b6d68c2 --- /dev/null +++ b/spine-godot/spine_godot/SpineSkeletonFileResource.h @@ -0,0 +1,83 @@ +/****************************************************************************** +* Spine Runtimes License Agreement +* Last updated January 1, 2020. Replaces all prior versions. +* +* Copyright (c) 2013-2020, Esoteric Software LLC +* +* Integration of the Spine Runtimes into software or otherwise creating +* derivative works of the Spine Runtimes is permitted under the terms and +* conditions of Section 2 of the Spine Editor License Agreement: +* http://esotericsoftware.com/spine-editor-license +* +* Otherwise, it is permitted to integrate the Spine Runtimes into software +* or otherwise create derivative works of the Spine Runtimes (collectively, +* "Products"), provided that each user of the Products must obtain their own +* Spine Editor license and redistribution of the Products in any form must +* include this license and copyright notice. +* +* THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, +* BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include "core/io/resource_loader.h" +#include "core/io/resource_saver.h" + +class SpineSkeletonFileResource : public Resource { + GDCLASS(SpineSkeletonFileResource, Resource); + +protected: + static void _bind_methods(); + + String json; + Vector binary; + +public: + bool is_binary() { return binary.size() > 0; } + + const Vector &get_binary() { return binary; } + + const String &get_json() { return json; } + + Error load_from_file(const String &path); + + Error save_to_file(const String &path); +}; + +class SpineSkeletonFileResourceFormatLoader : public ResourceFormatLoader { + GDCLASS(SpineSkeletonFileResourceFormatLoader, ResourceFormatLoader); + +public: +#if VERSION_MAJOR > 3 + RES load(const String &path, const String &original_path, Error *error, bool use_sub_threads, float *progress, CacheMode cache_mode); +#else + RES load(const String &path, const String &original_path, Error *error) override; +#endif + + void get_recognized_extensions(List *extensions) const override; + + bool handles_type(const String &type) const override; + + String get_resource_type(const String &path) const override; +}; + +class SpineSkeletonFileResourceFormatSaver : public ResourceFormatSaver { + GDCLASS(SpineSkeletonFileResourceFormatSaver, ResourceFormatSaver); + +public: + Error save(const String &path, const RES &resource, uint32_t flags) override; + + void get_recognized_extensions(const RES &resource, List *p_extensions) const override; + + bool recognize(const RES &p_resource) const override; +}; diff --git a/spine-godot/spine_godot/SpineSkin.cpp b/spine-godot/spine_godot/SpineSkin.cpp new file mode 100644 index 000000000..c93271f69 --- /dev/null +++ b/spine-godot/spine_godot/SpineSkin.cpp @@ -0,0 +1,210 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineSkin.h" +#include "SpineBoneData.h" +#include "SpineConstraintData.h" +#include "SpineCommon.h" +#include "SpineSprite.h" + +void SpineSkin::_bind_methods() { + ClassDB::bind_method(D_METHOD("set_attachment", "slot_index", "name", "attachment"), &SpineSkin::set_attachment); + ClassDB::bind_method(D_METHOD("get_attachment", "slot_index", "name"), &SpineSkin::get_attachment); + ClassDB::bind_method(D_METHOD("remove_attachment", "slot_index", "name"), &SpineSkin::remove_attachment); + ClassDB::bind_method(D_METHOD("find_names_for_slot", "slot_index"), &SpineSkin::find_names_for_slot); + ClassDB::bind_method(D_METHOD("find_attachments_for_slot", "slot_index"), &SpineSkin::find_attachments_for_slot); + ClassDB::bind_method(D_METHOD("get_name"), &SpineSkin::get_name); + ClassDB::bind_method(D_METHOD("add_skin", "other"), &SpineSkin::add_skin); + ClassDB::bind_method(D_METHOD("copy_skin", "other"), &SpineSkin::copy_skin); + ClassDB::bind_method(D_METHOD("get_attachments"), &SpineSkin::get_attachments); + ClassDB::bind_method(D_METHOD("get_bones"), &SpineSkin::get_bones); + ClassDB::bind_method(D_METHOD("get_constraints"), &SpineSkin::get_constraints); +} + +SpineSkin::SpineSkin() : owns_skin(false) { +} + +SpineSkin::~SpineSkin() { + if (owns_skin) delete get_spine_object(); +} + +Ref SpineSkin::init(const String &name, SpineSprite *sprite) { + if (get_spine_object()) { + ERR_PRINT("Can not initialize an already initialized skin."); + return this; + } + if (!sprite) { + ERR_PRINT("Must provide a valid SpineSprite."); + return this; + } + if (!sprite->get_skeleton_data_res().is_valid() || !sprite->get_skeleton_data_res()->is_skeleton_data_loaded()) { + ERR_PRINT("SpineSkeletonDataResource on SpineSprite must be valid and loaded."); + return this; + } + owns_skin = true; + set_spine_object(*sprite->get_skeleton_data_res(), new spine::Skin(SPINE_STRING(name))); + return this; +} + +void SpineSkin::set_attachment(int slot_index, const String &name, Ref attachment) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAttachment(slot_index, SPINE_STRING(name), attachment.is_valid() && attachment->get_spine_owner() ? attachment->get_spine_object() : nullptr); +} + +Ref SpineSkin::get_attachment(int slot_index, const String &name) { + SPINE_CHECK(get_spine_object(), nullptr) + auto attachment = get_spine_object()->getAttachment(slot_index, SPINE_STRING(name)); + if (attachment) return nullptr; + Ref attachment_ref(memnew(SpineAttachment)); + attachment_ref->set_spine_object(get_spine_owner(), attachment); + return attachment_ref; +} + +void SpineSkin::remove_attachment(int slot_index, const String &name) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->removeAttachment(slot_index, SPINE_STRING(name)); +} + +Array SpineSkin::find_names_for_slot(int slot_index) { + Array result; + SPINE_CHECK(get_spine_object(), result) + spine::Vector names; + get_spine_object()->findNamesForSlot(slot_index, names); + result.resize((int) names.size()); + for (int i = 0; i < names.size(); ++i) { + result[i] = names[i].buffer(); + } + return result; +} + +Array SpineSkin::find_attachments_for_slot(int slot_index) { + Array result; + SPINE_CHECK(get_spine_object(), result) + spine::Vector attachments; + get_spine_object()->findAttachmentsForSlot(slot_index, attachments); + result.resize((int) attachments.size()); + for (int i = 0; i < attachments.size(); ++i) { + if (!attachments[i]) { + result[i] = Ref(nullptr); + } else { + Ref attachment_ref(memnew(SpineAttachment)); + attachment_ref->set_spine_object(get_spine_owner(), attachments[i]); + result[i] = attachment_ref; + } + } + return result; +} + +String SpineSkin::get_name() { + SPINE_CHECK(get_spine_object(), "") + return get_spine_object()->getName().buffer(); +} + +void SpineSkin::add_skin(Ref other) { + SPINE_CHECK(get_spine_object(), ) + if (!other.is_valid() || !other->get_spine_object()) { + ERR_PRINT("other is not a valid SpineSkin."); + return; + } + get_spine_object()->addSkin(other->get_spine_object()); +} + +void SpineSkin::copy_skin(Ref other) { + SPINE_CHECK(get_spine_object(), ) + if (!other.is_valid() || !other->get_spine_object()) { + ERR_PRINT("other is not a valid SpineSkin."); + return; + } + get_spine_object()->copySkin(other->get_spine_object()); +} + +Array SpineSkin::get_attachments() { + Array result; + SPINE_CHECK(get_spine_object(), result) + auto entries = get_spine_object()->getAttachments(); + while (entries.hasNext()) { + spine::Skin::AttachmentMap::Entry &entry = entries.next(); + Ref entry_ref = memnew(SpineSkinEntry); + Ref attachment_ref = nullptr; + if (entry._attachment) { + attachment_ref = Ref(memnew(SpineAttachment)); + attachment_ref->set_spine_object(get_spine_owner(), entry._attachment); + } + entry_ref->init(entry._slotIndex, entry._name.buffer(), attachment_ref); + result.push_back(entry_ref); + } + return result; +} + +Array SpineSkin::get_bones() { + Array result; + SPINE_CHECK(get_spine_object(), result) + auto bones = get_spine_object()->getBones(); + result.resize((int) bones.size()); + for (int i = 0; i < bones.size(); ++i) { + Ref bone_ref(memnew(SpineBoneData)); + bone_ref->set_spine_object(get_spine_owner(), bones[i]); + result[i] = bone_ref; + } + return result; +} + +Array SpineSkin::get_constraints() { + Array result; + SPINE_CHECK(get_spine_object(), result) + auto constraints = get_spine_object()->getConstraints(); + result.resize((int) constraints.size()); + for (int i = 0; i < constraints.size(); ++i) { + Ref constraint_ref(memnew(SpineConstraintData)); + constraint_ref->set_spine_object(get_spine_owner(), constraints[i]); + result[i] = constraint_ref; + } + return result; +} + +void SpineSkinEntry::_bind_methods() { + ClassDB::bind_method(D_METHOD("get_slot_index"), &SpineSkinEntry::get_slot_index); + ClassDB::bind_method(D_METHOD("get_name"), &SpineSkinEntry::get_name); + ClassDB::bind_method(D_METHOD("get_attachment"), &SpineSkinEntry::get_attachment); +} + +SpineSkinEntry::SpineSkinEntry() : slot_index(0) { +} + +int SpineSkinEntry::get_slot_index() { + return slot_index; +} + +const String &SpineSkinEntry::get_name() { + return name; +} + +Ref SpineSkinEntry::get_attachment() { + return attachment; +} diff --git a/spine-godot/spine_godot/SpineSkin.h b/spine-godot/spine_godot/SpineSkin.h new file mode 100644 index 000000000..82db7f1eb --- /dev/null +++ b/spine-godot/spine_godot/SpineSkin.h @@ -0,0 +1,103 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include "SpineAttachment.h" + +class SpineSkeletonDataResource; +class SpineSprite; + +class SpineSkin : public SpineSkeletonDataResourceOwnedObject { + GDCLASS(SpineSkin, SpineObjectWrapper) + +protected: + static void _bind_methods(); + +private: + bool owns_skin; + +public: + SpineSkin(); + ~SpineSkin() override; + + Ref init(const String &name, SpineSprite *sprite); + + void set_attachment(int slot_index, const String &name, Ref attachment); + + Ref get_attachment(int slot_index, const String &name); + + void remove_attachment(int slot_index, const String &name); + + Array find_names_for_slot(int slot_index); + + Array find_attachments_for_slot(int slot_index); + + String get_name(); + + void add_skin(Ref other); + + void copy_skin(Ref other); + + Array get_attachments(); + + Array get_bones(); + + Array get_constraints(); +}; + +class SpineSkinEntry : public REFCOUNTED { + GDCLASS(SpineSkinEntry, REFCOUNTED); + + friend class SpineSkin; + +protected: + static void _bind_methods(); + + void init(int _slot_index, const String &_name, Ref _attachment) { + this->slot_index = _slot_index; + this->name = _name; + this->attachment = _attachment; + } + +private: + int slot_index; + String name; + Ref attachment; + +public: + SpineSkinEntry(); + + int get_slot_index(); + + const String &get_name(); + + Ref get_attachment(); +}; diff --git a/spine-godot/spine_godot/SpineSlot.cpp b/spine-godot/spine_godot/SpineSlot.cpp new file mode 100644 index 000000000..798222fe4 --- /dev/null +++ b/spine-godot/spine_godot/SpineSlot.cpp @@ -0,0 +1,157 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineSlot.h" +#include "SpineBone.h" +#include "SpineCommon.h" +#include "SpineSprite.h" +#include "SpineSkeletonDataResource.h" + +void SpineSlot::_bind_methods() { + ClassDB::bind_method(D_METHOD("set_to_setup_pose"), &SpineSlot::set_to_setup_pose); + ClassDB::bind_method(D_METHOD("get_data"), &SpineSlot::get_data); + ClassDB::bind_method(D_METHOD("get_bone"), &SpineSlot::get_bone); + ClassDB::bind_method(D_METHOD("get_color"), &SpineSlot::get_color); + ClassDB::bind_method(D_METHOD("set_color"), &SpineSlot::set_color); + ClassDB::bind_method(D_METHOD("get_dark_color"), &SpineSlot::get_dark_color); + ClassDB::bind_method(D_METHOD("set_dark_color", "v"), &SpineSlot::set_dark_color); + ClassDB::bind_method(D_METHOD("has_dark_color"), &SpineSlot::has_dark_color); + ClassDB::bind_method(D_METHOD("get_attachment"), &SpineSlot::get_attachment); + ClassDB::bind_method(D_METHOD("set_attachment", "v"), &SpineSlot::set_attachment); + ClassDB::bind_method(D_METHOD("get_attachment_state"), &SpineSlot::get_attachment_state); + ClassDB::bind_method(D_METHOD("set_attachment_state", "v"), &SpineSlot::set_attachment_state); + ClassDB::bind_method(D_METHOD("get_deform"), &SpineSlot::get_deform); + ClassDB::bind_method(D_METHOD("set_deform", "v"), &SpineSlot::set_deform); + ClassDB::bind_method(D_METHOD("get_sequence_index"), &SpineSlot::get_sequence_index); + ClassDB::bind_method(D_METHOD("set_sequence_index", "v"), &SpineSlot::set_sequence_index); +} + +void SpineSlot::set_to_setup_pose() { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setToSetupPose(); +} + +Ref SpineSlot::get_data() { + SPINE_CHECK(get_spine_object(), nullptr) + auto &slot_data = get_spine_object()->getData(); + Ref slot_data_ref(memnew(SpineSlotData)); + slot_data_ref->set_spine_object(*get_spine_owner()->get_skeleton_data_res(), &slot_data); + return slot_data_ref; +} + +Ref SpineSlot::get_bone() { + SPINE_CHECK(get_spine_object(), nullptr) + auto &bone = get_spine_object()->getBone(); + Ref bone_ref(memnew(SpineBone)); + bone_ref->set_spine_object(get_spine_owner(), &bone); + return bone_ref; +} + +Color SpineSlot::get_color() { + SPINE_CHECK(get_spine_object(), Color(0, 0, 0, 0)) + auto &color = get_spine_object()->getColor(); + return Color(color.r, color.g, color.b, color.a); +} + +void SpineSlot::set_color(Color v) { + SPINE_CHECK(get_spine_object(), ) + auto &color = get_spine_object()->getColor(); + color.set(v.r, v.g, v.b, v.a); +} + +Color SpineSlot::get_dark_color() { + SPINE_CHECK(get_spine_object(), Color(0, 0, 0, 0)) + auto &color = get_spine_object()->getDarkColor(); + return Color(color.r, color.g, color.b, color.a); +} + +void SpineSlot::set_dark_color(Color v) { + SPINE_CHECK(get_spine_object(), ) + auto &color = get_spine_object()->getDarkColor(); + color.set(v.r, v.g, v.b, v.a); +} + +bool SpineSlot::has_dark_color() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_object()->hasDarkColor(); +} + +Ref SpineSlot::get_attachment() { + SPINE_CHECK(get_spine_object(), nullptr) + auto attachment = get_spine_object()->getAttachment(); + if (!attachment) return nullptr; + Ref attachment_ref(memnew(SpineAttachment)); + attachment_ref->set_spine_object(*get_spine_owner()->get_skeleton_data_res(), attachment); + return attachment_ref; +} + +void SpineSlot::set_attachment(Ref v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAttachment(v.is_valid() && v->get_spine_object() ? v->get_spine_object() : nullptr); +} + +int SpineSlot::get_attachment_state() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getAttachmentState(); +} + +void SpineSlot::set_attachment_state(int v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAttachmentState(v); +} + +Array SpineSlot::get_deform() { + Array result; + SPINE_CHECK(get_spine_object(), result) + auto &deform = get_spine_object()->getDeform(); + result.resize((int) deform.size()); + for (int i = 0; i < (int) deform.size(); ++i) { + result[i] = deform[i]; + } + return result; +} + +void SpineSlot::set_deform(Array v) { + SPINE_CHECK(get_spine_object(), ) + auto &deform = get_spine_object()->getDeform(); + deform.setSize(v.size(), 0); + for (int i = 0; i < v.size(); ++i) { + deform[i] = v[i]; + } +} + +int SpineSlot::get_sequence_index() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getAttachmentState(); +} + +void SpineSlot::set_sequence_index(int v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAttachmentState(v); +} diff --git a/spine-godot/spine_godot/SpineSlot.h b/spine-godot/spine_godot/SpineSlot.h new file mode 100644 index 000000000..795645473 --- /dev/null +++ b/spine-godot/spine_godot/SpineSlot.h @@ -0,0 +1,78 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include "SpineSlotData.h" +#include "SpineAttachment.h" +#include "SpineBone.h" + +class SpineSkeleton; +class SpineSprite; + +class SpineSlot : public SpineSpriteOwnedObject { + GDCLASS(SpineSlot, SpineObjectWrapper) + +protected: + static void _bind_methods(); + +public: + void set_to_setup_pose(); + + Ref get_data(); + + Ref get_bone(); + + Color get_color(); + + void set_color(Color v); + + Color get_dark_color(); + + void set_dark_color(Color v); + + bool has_dark_color(); + + Ref get_attachment(); + + void set_attachment(Ref v); + + int get_attachment_state(); + + void set_attachment_state(int v); + + Array get_deform(); + + void set_deform(Array v); + + int get_sequence_index(); + + void set_sequence_index(int v); +}; diff --git a/spine-godot/spine_godot/SpineSlotData.cpp b/spine-godot/spine_godot/SpineSlotData.cpp new file mode 100644 index 000000000..b95ed3352 --- /dev/null +++ b/spine-godot/spine_godot/SpineSlotData.cpp @@ -0,0 +1,117 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineSlotData.h" +#include "SpineCommon.h" + +void SpineSlotData::_bind_methods() { + ClassDB::bind_method(D_METHOD("get_index"), &SpineSlotData::get_index); + ClassDB::bind_method(D_METHOD("get_name"), &SpineSlotData::get_name); + ClassDB::bind_method(D_METHOD("get_bone_data"), &SpineSlotData::get_bone_data); + ClassDB::bind_method(D_METHOD("get_color"), &SpineSlotData::get_color); + ClassDB::bind_method(D_METHOD("set_color", "v"), &SpineSlotData::set_color); + ClassDB::bind_method(D_METHOD("get_dark_color"), &SpineSlotData::get_dark_color); + ClassDB::bind_method(D_METHOD("set_dark_color", "v"), &SpineSlotData::set_dark_color); + ClassDB::bind_method(D_METHOD("has_dark_color"), &SpineSlotData::has_dark_color); + ClassDB::bind_method(D_METHOD("set_has_dark_color", "v"), &SpineSlotData::set_has_dark_color); + ClassDB::bind_method(D_METHOD("get_attachment_name"), &SpineSlotData::get_attachment_name); + ClassDB::bind_method(D_METHOD("set_attachment_name", "v"), &SpineSlotData::set_attachment_name); + ClassDB::bind_method(D_METHOD("get_blend_mode"), &SpineSlotData::get_blend_mode); + ClassDB::bind_method(D_METHOD("set_blend_mode", "v"), &SpineSlotData::set_blend_mode); +} + +int SpineSlotData::get_index() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getIndex(); +} + +String SpineSlotData::get_name() { + SPINE_CHECK(get_spine_object(), String("")) + return get_spine_object()->getName().buffer(); +} + +Ref SpineSlotData::get_bone_data() { + SPINE_CHECK(get_spine_object(), nullptr) + auto &bone_data = get_spine_object()->getBoneData(); + Ref bone_data_ref(memnew(SpineBoneData)); + bone_data_ref->set_spine_object(get_spine_owner(), &bone_data); + return bone_data_ref; +} + +Color SpineSlotData::get_color() { + SPINE_CHECK(get_spine_object(), Color(0, 0, 0, 0)) + auto &color = get_spine_object()->getColor(); + return Color(color.r, color.g, color.b, color.a); +} + +void SpineSlotData::set_color(Color v) { + SPINE_CHECK(get_spine_object(), ) + auto &color = get_spine_object()->getColor(); + color.set(v.r, v.g, v.b, v.a); +} + +Color SpineSlotData::get_dark_color() { + SPINE_CHECK(get_spine_object(), Color(0, 0, 0, 0)) + auto &color = get_spine_object()->getDarkColor(); + return Color(color.r, color.g, color.b, color.a); +} + +void SpineSlotData::set_dark_color(Color v) { + SPINE_CHECK(get_spine_object(), ) + auto &color = get_spine_object()->getDarkColor(); + color.set(v.r, v.g, v.b, v.a); +} + +bool SpineSlotData::has_dark_color() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_object()->hasDarkColor(); +} + +void SpineSlotData::set_has_dark_color(bool v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setHasDarkColor(v); +} + +String SpineSlotData::get_attachment_name() { + SPINE_CHECK(get_spine_object(), "") + return get_spine_object()->getAttachmentName().buffer(); +} +void SpineSlotData::set_attachment_name(const String &v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAttachmentName(SPINE_STRING(v)); +} + +SpineConstant::BlendMode SpineSlotData::get_blend_mode() { + SPINE_CHECK(get_spine_object(), SpineConstant::BlendMode_Normal) + return (SpineConstant::BlendMode) get_spine_object()->getBlendMode(); +} +void SpineSlotData::set_blend_mode(SpineConstant::BlendMode v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setBlendMode((spine::BlendMode) v); +} diff --git a/spine-godot/spine_godot/SpineSlotData.h b/spine-godot/spine_godot/SpineSlotData.h new file mode 100644 index 000000000..2cc538dfe --- /dev/null +++ b/spine-godot/spine_godot/SpineSlotData.h @@ -0,0 +1,70 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include "SpineBoneData.h" +#include + +class SpineSkeletonDataResource; + +class SpineSlotData : public SpineSkeletonDataResourceOwnedObject { + GDCLASS(SpineSlotData, SpineObjectWrapper) + +protected: + static void _bind_methods(); + +public: + int get_index(); + + String get_name(); + + Ref get_bone_data(); + + Color get_color(); + + void set_color(Color c); + + Color get_dark_color(); + + void set_dark_color(Color c); + + bool has_dark_color(); + + void set_has_dark_color(bool v); + + String get_attachment_name(); + + void set_attachment_name(const String &v); + + SpineConstant::BlendMode get_blend_mode(); + + void set_blend_mode(SpineConstant::BlendMode v); +}; diff --git a/spine-godot/spine_godot/SpineSlotNode.cpp b/spine-godot/spine_godot/SpineSlotNode.cpp new file mode 100644 index 000000000..c4fb0d072 --- /dev/null +++ b/spine-godot/spine_godot/SpineSlotNode.cpp @@ -0,0 +1,206 @@ +/****************************************************************************** +* Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineSlotNode.h" + +#include "editor/editor_node.h" +#include "scene/main/viewport.h" + +void SpineSlotNode::_bind_methods() { + ClassDB::bind_method(D_METHOD("_on_world_transforms_changed", "spine_sprite"), &SpineSlotNode::on_world_transforms_changed); + + ClassDB::bind_method(D_METHOD("set_normal_material", "material"), &SpineSlotNode::set_normal_material); + ClassDB::bind_method(D_METHOD("get_normal_material"), &SpineSlotNode::get_normal_material); + ClassDB::bind_method(D_METHOD("set_additive_material", "material"), &SpineSlotNode::set_additive_material); + ClassDB::bind_method(D_METHOD("get_additive_material"), &SpineSlotNode::get_additive_material); + ClassDB::bind_method(D_METHOD("set_multiply_material", "material"), &SpineSlotNode::set_multiply_material); + ClassDB::bind_method(D_METHOD("get_multiply_material"), &SpineSlotNode::get_multiply_material); + ClassDB::bind_method(D_METHOD("set_screen_material", "material"), &SpineSlotNode::set_screen_material); + ClassDB::bind_method(D_METHOD("get_screen_material"), &SpineSlotNode::get_screen_material); + + ADD_GROUP("Materials", ""); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "normal_material", PROPERTY_HINT_RESOURCE_TYPE, "Material"), "set_normal_material", "get_normal_material"); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "additive_material", PROPERTY_HINT_RESOURCE_TYPE, "Material"), "set_additive_material", "get_additive_material"); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "multiply_material", PROPERTY_HINT_RESOURCE_TYPE, "Material"), "set_multiply_material", "get_multiply_material"); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "screen_material", PROPERTY_HINT_RESOURCE_TYPE, "Material"), "set_screen_material", "get_screen_material"); +} + +SpineSlotNode::SpineSlotNode() : slot_index(-1) { +} + +void SpineSlotNode::_notification(int what) { + switch (what) { + case NOTIFICATION_PARENTED: { + SpineSprite *sprite = cast_to(get_parent()); + if (sprite) { +#if VERSION_MAJOR > 3 + sprite->connect("world_transforms_changed", callable_mp(this, &SpineSlotNode::on_world_transforms_changed)); +#else + sprite->connect("world_transforms_changed", this, "_on_world_transforms_changed"); +#endif + update_transform(sprite); +#if VERSION_MAJOR == 3 + _change_notify("transform/translation"); + _change_notify("transform/rotation"); + _change_notify("transform/scale"); + _change_notify("translation"); + _change_notify("rotation"); + _change_notify("rotation_deg"); + _change_notify("scale"); +#endif + } else { + WARN_PRINT("SpineSlotNode parent is not a SpineSprite."); + } + NOTIFY_PROPERTY_LIST_CHANGED(); + break; + } + case NOTIFICATION_UNPARENTED: { + SpineSprite *sprite = cast_to(get_parent()); + if (sprite) { +#if VERSION_MAJOR > 3 + sprite->disconnect("world_transforms_changed", callable_mp(this, &SpineSlotNode::on_world_transforms_changed)); +#else + sprite->disconnect("world_transforms_changed", this, "_on_world_transforms_changed"); +#endif + } + break; + } + default: + break; + } +} + +void SpineSlotNode::_get_property_list(List *list) const { + Vector slot_names; + SpineSprite *sprite = cast_to(get_parent()); + if (sprite) sprite->get_skeleton_data_res()->get_slot_names(slot_names); + else + slot_names.push_back(slot_name); + auto element = list->front(); + while (element) { + auto property_info = element->get(); + if (property_info.name == "SpineSlotNode") break; + element = element->next(); + } + PropertyInfo slot_name_property; + slot_name_property.name = "slot_name"; + slot_name_property.type = Variant::STRING; + slot_name_property.hint_string = String(",").join(slot_names); + slot_name_property.hint = PROPERTY_HINT_ENUM; + slot_name_property.usage = PROPERTY_USAGE_DEFAULT; + list->insert_after(element, slot_name_property); +} + +bool SpineSlotNode::_get(const StringName &property, Variant &value) const { + if (property == "slot_name") { + value = slot_name; + return true; + } + return false; +} + +bool SpineSlotNode::_set(const StringName &property, const Variant &value) { + if (property == "slot_name") { + slot_name = value; + SpineSprite *sprite = cast_to(get_parent()); + update_transform(sprite); +#if VERSION_MAJOR == 3 + _change_notify("transform/translation"); + _change_notify("transform/rotation"); + _change_notify("transform/scale"); + _change_notify("translation"); + _change_notify("rotation"); + _change_notify("rotation_deg"); + _change_notify("scale"); +#endif + return true; + } + return false; +} + +void SpineSlotNode::on_world_transforms_changed(const Variant &_sprite) { + SpineSprite *sprite = cast_to(_sprite.operator Object *()); + update_transform(sprite); +} + +void SpineSlotNode::update_transform(SpineSprite *sprite) { + if (!is_visible_in_tree()) return; + if (!sprite) return; + if (!sprite->get_skeleton().is_valid() || !sprite->get_skeleton()->get_spine_object()) return; + auto slot = sprite->get_skeleton()->find_slot(slot_name); + if (!slot.is_valid()) { + slot_index = -1; + return; + } else { + slot_index = slot->get_data()->get_index(); + } + auto bone = slot->get_bone(); + if (!bone.is_valid()) return; + this->set_global_transform(bone->get_global_transform()); +} + +void SpineSlotNode::set_slot_name(const String &_slot_name) { + slot_name = _slot_name; +} + +String SpineSlotNode::get_slot_name() { + return slot_name; +} + +Ref SpineSlotNode::get_normal_material() { + return normal_material; +} + +void SpineSlotNode::set_normal_material(Ref material) { + normal_material = material; +} + +Ref SpineSlotNode::get_additive_material() { + return additive_material; +} + +void SpineSlotNode::set_additive_material(Ref material) { + additive_material = material; +} + +Ref SpineSlotNode::get_multiply_material() { + return multiply_material; +} + +void SpineSlotNode::set_multiply_material(Ref material) { + multiply_material = material; +} + +Ref SpineSlotNode::get_screen_material() { + return screen_material; +} + +void SpineSlotNode::set_screen_material(Ref material) { + screen_material = material; +} diff --git a/spine-godot/spine_godot/SpineSlotNode.h b/spine-godot/spine_godot/SpineSlotNode.h new file mode 100644 index 000000000..9d66bb1fc --- /dev/null +++ b/spine-godot/spine_godot/SpineSlotNode.h @@ -0,0 +1,79 @@ +/****************************************************************************** +* Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include "SpineSprite.h" +#include "scene/2d/node_2d.h" + +class SpineSlotNode : public Node2D { + GDCLASS(SpineSlotNode, Node2D) + +protected: + String slot_name; + int slot_index; + Ref normal_material; + Ref additive_material; + Ref multiply_material; + Ref screen_material; + + static void _bind_methods(); + void _notification(int what); + void _get_property_list(List *list) const; + bool _get(const StringName &property, Variant &value) const; + bool _set(const StringName &property, const Variant &value); + void on_world_transforms_changed(const Variant &_sprite); + void update_transform(SpineSprite *sprite); + +public: + SpineSlotNode(); + + void set_slot_name(const String &_slot_name); + + String get_slot_name(); + + int get_slot_index() { return slot_index; } + + Ref get_normal_material(); + + void set_normal_material(Ref material); + + Ref get_additive_material(); + + void set_additive_material(Ref material); + + Ref get_multiply_material(); + + void set_multiply_material(Ref material); + + Ref get_screen_material(); + + void set_screen_material(Ref material); +}; diff --git a/spine-godot/spine_godot/SpineSprite.cpp b/spine-godot/spine_godot/SpineSprite.cpp new file mode 100644 index 000000000..615df18e7 --- /dev/null +++ b/spine-godot/spine_godot/SpineSprite.cpp @@ -0,0 +1,946 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineSprite.h" +#include "SpineEvent.h" +#include "SpineTrackEntry.h" +#include "SpineSkeleton.h" +#include "SpineRendererObject.h" +#include "SpineSlotNode.h" + +#if VERSION_MAJOR > 3 +#include "core/config/engine.h" +#include "core/math/geometry_2d.h" +#else +#include "core/engine.h" +#endif + +#include "scene/gui/control.h" +#include "scene/main/viewport.h" + +#if TOOLS_ENABLED +#include "editor/editor_plugin.h" +#endif + +Ref SpineSprite::default_materials[4] = {}; +static int sprite_count = 0; +static spine::Vector quad_indices; +static spine::Vector scratch_vertices; +static Vector scratch_points; +static Vector scratch_uvs; +static Vector scratch_colors; +static Vector scratch_indices; + +void SpineSprite::_bind_methods() { + ClassDB::bind_method(D_METHOD("set_skeleton_data_res", "skeleton_data_res"), &SpineSprite::set_skeleton_data_res); + ClassDB::bind_method(D_METHOD("get_skeleton_data_res"), &SpineSprite::get_skeleton_data_res); + ClassDB::bind_method(D_METHOD("get_skeleton"), &SpineSprite::get_skeleton); + ClassDB::bind_method(D_METHOD("get_animation_state"), &SpineSprite::get_animation_state); + ClassDB::bind_method(D_METHOD("on_skeleton_data_changed"), &SpineSprite::on_skeleton_data_changed); + + ClassDB::bind_method(D_METHOD("get_global_bone_transform", "bone_name"), &SpineSprite::get_global_bone_transform); + ClassDB::bind_method(D_METHOD("set_global_bone_transform", "bone_name", "global_transform"), &SpineSprite::set_global_bone_transform); + + ClassDB::bind_method(D_METHOD("set_update_mode", "v"), &SpineSprite::set_update_mode); + ClassDB::bind_method(D_METHOD("get_update_mode"), &SpineSprite::get_update_mode); + + ClassDB::bind_method(D_METHOD("set_normal_material", "material"), &SpineSprite::set_normal_material); + ClassDB::bind_method(D_METHOD("get_normal_material"), &SpineSprite::get_normal_material); + ClassDB::bind_method(D_METHOD("set_additive_material", "material"), &SpineSprite::set_additive_material); + ClassDB::bind_method(D_METHOD("get_additive_material"), &SpineSprite::get_additive_material); + ClassDB::bind_method(D_METHOD("set_multiply_material", "material"), &SpineSprite::set_multiply_material); + ClassDB::bind_method(D_METHOD("get_multiply_material"), &SpineSprite::get_multiply_material); + ClassDB::bind_method(D_METHOD("set_screen_material", "material"), &SpineSprite::set_screen_material); + ClassDB::bind_method(D_METHOD("get_screen_material"), &SpineSprite::get_screen_material); + + ClassDB::bind_method(D_METHOD("set_debug_bones", "v"), &SpineSprite::set_debug_bones); + ClassDB::bind_method(D_METHOD("get_debug_bones"), &SpineSprite::get_debug_bones); + ClassDB::bind_method(D_METHOD("set_debug_bones_color", "v"), &SpineSprite::set_debug_bones_color); + ClassDB::bind_method(D_METHOD("get_debug_bones_color"), &SpineSprite::get_debug_bones_color); + ClassDB::bind_method(D_METHOD("set_debug_bones_thickness", "v"), &SpineSprite::set_debug_bones_thickness); + ClassDB::bind_method(D_METHOD("get_debug_bones_thickness"), &SpineSprite::get_debug_bones_thickness); + ClassDB::bind_method(D_METHOD("set_debug_regions", "v"), &SpineSprite::set_debug_regions); + ClassDB::bind_method(D_METHOD("get_debug_regions"), &SpineSprite::get_debug_regions); + ClassDB::bind_method(D_METHOD("set_debug_regions_color", "v"), &SpineSprite::set_debug_regions_color); + ClassDB::bind_method(D_METHOD("get_debug_regions_color"), &SpineSprite::get_debug_regions_color); + ClassDB::bind_method(D_METHOD("set_debug_meshes", "v"), &SpineSprite::set_debug_meshes); + ClassDB::bind_method(D_METHOD("get_debug_meshes"), &SpineSprite::get_debug_meshes); + ClassDB::bind_method(D_METHOD("set_debug_meshes_color", "v"), &SpineSprite::set_debug_meshes_color); + ClassDB::bind_method(D_METHOD("get_debug_meshes_color"), &SpineSprite::get_debug_meshes_color); + ClassDB::bind_method(D_METHOD("set_debug_bounding_boxes", "v"), &SpineSprite::set_debug_bounding_boxes); + ClassDB::bind_method(D_METHOD("get_debug_bounding_boxes"), &SpineSprite::get_debug_bounding_boxes); + ClassDB::bind_method(D_METHOD("set_debug_bounding_boxes_color", "v"), &SpineSprite::set_debug_bounding_boxes_color); + ClassDB::bind_method(D_METHOD("get_debug_bounding_boxes_color"), &SpineSprite::get_debug_bounding_boxes_color); + ClassDB::bind_method(D_METHOD("set_debug_paths", "v"), &SpineSprite::set_debug_paths); + ClassDB::bind_method(D_METHOD("get_debug_paths"), &SpineSprite::get_debug_paths); + ClassDB::bind_method(D_METHOD("set_debug_paths_color", "v"), &SpineSprite::set_debug_paths_color); + ClassDB::bind_method(D_METHOD("get_debug_paths_color"), &SpineSprite::get_debug_paths_color); + ClassDB::bind_method(D_METHOD("set_debug_clipping", "v"), &SpineSprite::set_debug_clipping); + ClassDB::bind_method(D_METHOD("get_debug_clipping"), &SpineSprite::get_debug_clipping); + ClassDB::bind_method(D_METHOD("set_debug_clipping_color", "v"), &SpineSprite::set_debug_clipping_color); + ClassDB::bind_method(D_METHOD("get_debug_clipping_color"), &SpineSprite::get_debug_clipping_color); + + ClassDB::bind_method(D_METHOD("update_skeleton", "delta"), &SpineSprite::update_skeleton); + ClassDB::bind_method(D_METHOD("new_skin", "name"), &SpineSprite::new_skin); + + ADD_SIGNAL(MethodInfo("animation_started", PropertyInfo(Variant::OBJECT, "spine_sprite", PROPERTY_HINT_TYPE_STRING, "SpineSprite"), PropertyInfo(Variant::OBJECT, "animation_state", PROPERTY_HINT_TYPE_STRING, "SpineAnimationState"), PropertyInfo(Variant::OBJECT, "track_entry", PROPERTY_HINT_TYPE_STRING, "SpineTrackEntry"))); + ADD_SIGNAL(MethodInfo("animation_interrupted", PropertyInfo(Variant::OBJECT, "spine_sprite", PROPERTY_HINT_TYPE_STRING, "SpineSprite"), PropertyInfo(Variant::OBJECT, "animation_state", PROPERTY_HINT_TYPE_STRING, "SpineAnimationState"), PropertyInfo(Variant::OBJECT, "track_entry", PROPERTY_HINT_TYPE_STRING, "SpineTrackEntry"))); + ADD_SIGNAL(MethodInfo("animation_ended", PropertyInfo(Variant::OBJECT, "spine_sprite", PROPERTY_HINT_TYPE_STRING, "SpineSprite"), PropertyInfo(Variant::OBJECT, "animation_state", PROPERTY_HINT_TYPE_STRING, "SpineAnimationState"), PropertyInfo(Variant::OBJECT, "track_entry", PROPERTY_HINT_TYPE_STRING, "SpineTrackEntry"))); + ADD_SIGNAL(MethodInfo("animation_completed", PropertyInfo(Variant::OBJECT, "spine_sprite", PROPERTY_HINT_TYPE_STRING, "SpineSprite"), PropertyInfo(Variant::OBJECT, "animation_state", PROPERTY_HINT_TYPE_STRING, "SpineAnimationState"), PropertyInfo(Variant::OBJECT, "track_entry", PROPERTY_HINT_TYPE_STRING, "SpineTrackEntry"))); + ADD_SIGNAL(MethodInfo("animation_disposed", PropertyInfo(Variant::OBJECT, "spine_sprite", PROPERTY_HINT_TYPE_STRING, "SpineSprite"), PropertyInfo(Variant::OBJECT, "animation_state", PROPERTY_HINT_TYPE_STRING, "SpineAnimationState"), PropertyInfo(Variant::OBJECT, "track_entry", PROPERTY_HINT_TYPE_STRING, "SpineTrackEntry"))); + ADD_SIGNAL(MethodInfo("animation_event", PropertyInfo(Variant::OBJECT, "spine_sprite", PROPERTY_HINT_TYPE_STRING, "SpineSprite"), PropertyInfo(Variant::OBJECT, "animation_state", PROPERTY_HINT_TYPE_STRING, "SpineAnimationState"), PropertyInfo(Variant::OBJECT, "track_entry", PROPERTY_HINT_TYPE_STRING, "SpineTrackEntry"), PropertyInfo(Variant::OBJECT, "event", PROPERTY_HINT_TYPE_STRING, "SpineEvent"))); + ADD_SIGNAL(MethodInfo("before_animation_state_update", PropertyInfo(Variant::OBJECT, "spine_sprite", PROPERTY_HINT_TYPE_STRING, "SpineSprite"))); + ADD_SIGNAL(MethodInfo("before_animation_state_apply", PropertyInfo(Variant::OBJECT, "spine_sprite", PROPERTY_HINT_TYPE_STRING, "SpineSprite"))); + ADD_SIGNAL(MethodInfo("before_world_transforms_change", PropertyInfo(Variant::OBJECT, "spine_sprite", PROPERTY_HINT_TYPE_STRING, "SpineSprite"))); + ADD_SIGNAL(MethodInfo("world_transforms_changed", PropertyInfo(Variant::OBJECT, "spine_sprite", PROPERTY_HINT_TYPE_STRING, "SpineSprite"))); + ADD_SIGNAL(MethodInfo("_internal_spine_objects_invalidated")); + + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "skeleton_data_res", PropertyHint::PROPERTY_HINT_RESOURCE_TYPE, "SpineSkeletonDataResource"), "set_skeleton_data_res", "get_skeleton_data_res"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "update_mode", PROPERTY_HINT_ENUM, "Process,Physics,Manual"), "set_update_mode", "get_update_mode"); + ADD_GROUP("Materials", ""); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "normal_material", PROPERTY_HINT_RESOURCE_TYPE, "Material"), "set_normal_material", "get_normal_material"); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "additive_material", PROPERTY_HINT_RESOURCE_TYPE, "Material"), "set_additive_material", "get_additive_material"); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "multiply_material", PROPERTY_HINT_RESOURCE_TYPE, "Material"), "set_multiply_material", "get_multiply_material"); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "screen_material", PROPERTY_HINT_RESOURCE_TYPE, "Material"), "set_screen_material", "get_screen_material"); + + ADD_GROUP("Debug", ""); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "bones"), "set_debug_bones", "get_debug_bones"); + ADD_PROPERTY(PropertyInfo(Variant::COLOR, "bones_color"), "set_debug_bones_color", "get_debug_bones_color"); + ADD_PROPERTY(PropertyInfo(VARIANT_FLOAT, "bones_thickness"), "set_debug_bones_thickness", "get_debug_bones_thickness"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "regions"), "set_debug_regions", "get_debug_regions"); + ADD_PROPERTY(PropertyInfo(Variant::COLOR, "regions_color"), "set_debug_regions_color", "get_debug_regions_color"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "meshes"), "set_debug_meshes", "get_debug_meshes"); + ADD_PROPERTY(PropertyInfo(Variant::COLOR, "meshes_color"), "set_debug_meshes_color", "get_debug_meshes_color"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "bounding_boxes"), "set_debug_bounding_boxes", "get_debug_bounding_boxes"); + ADD_PROPERTY(PropertyInfo(Variant::COLOR, "bounding_boxes_color"), "set_debug_bounding_boxes_color", "get_debug_bounding_boxes_color"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "paths"), "set_debug_paths", "get_debug_paths"); + ADD_PROPERTY(PropertyInfo(Variant::COLOR, "paths_color"), "set_debug_paths_color", "get_debug_paths_color"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "clipping"), "set_debug_clipping", "get_debug_clipping"); + ADD_PROPERTY(PropertyInfo(Variant::COLOR, "paths_clipping"), "set_debug_clipping_color", "get_debug_clipping_color"); + + ADD_GROUP("Preview", ""); + // Filled in in _get_property_list() +} + +SpineSprite::SpineSprite() : update_mode(SpineConstant::UpdateMode_Process), preview_animation("-- Empty --"), preview_frame(false), preview_time(0), skeleton_clipper(nullptr), modified_bones(false) { + skeleton_clipper = new spine::SkeletonClipping(); + + // One material per blend mode, shared across all sprites. + if (!default_materials[0].is_valid()) { + Ref material_normal(memnew(CanvasItemMaterial)); + material_normal->set_blend_mode(CanvasItemMaterial::BLEND_MODE_MIX); + default_materials[spine::BlendMode_Normal] = material_normal; + + Ref material_additive(memnew(CanvasItemMaterial)); + material_additive->set_blend_mode(CanvasItemMaterial::BLEND_MODE_ADD); + default_materials[spine::BlendMode_Additive] = material_additive; + + Ref material_multiply(memnew(CanvasItemMaterial)); + material_multiply->set_blend_mode(CanvasItemMaterial::BLEND_MODE_MUL); + default_materials[spine::BlendMode_Multiply] = material_multiply; + + Ref material_screen(memnew(CanvasItemMaterial)); + material_screen->set_blend_mode(CanvasItemMaterial::BLEND_MODE_SUB); + default_materials[spine::BlendMode_Screen] = material_screen; + } + + // Setup static scratch buffers + if (quad_indices.size() == 0) { + quad_indices.setSize(6, 0); + quad_indices[0] = 0; + quad_indices[1] = 1; + quad_indices[2] = 2; + quad_indices[3] = 2; + quad_indices[4] = 3; + quad_indices[5] = 0; + scratch_vertices.ensureCapacity(1200); + } + + // Default debug settings + debug_bones = false; + debug_bones_color = Color(1, 1, 0, 0.5); + debug_bones_thickness = 5; + debug_regions = false; + debug_regions_color = Color(0, 0, 1, 0.5); + debug_meshes = false; + debug_meshes_color = Color(0, 0, 1, 0.5); + debug_bounding_boxes = false; + debug_bounding_boxes_color = Color(0, 1, 0, 0.5); + debug_paths = false; + debug_paths_color = Color::hex(0xff7f0077); + debug_clipping = false; + debug_clipping_color = Color(0.8, 0, 0, 0.8); + + sprite_count++; +} + +SpineSprite::~SpineSprite() { + delete skeleton_clipper; + sprite_count--; + if (!sprite_count) { + for (int i = 0; i < 4; i++) + default_materials[i].unref(); + } +} + +void SpineSprite::set_skeleton_data_res(const Ref &_skeleton_data) { + skeleton_data_res = _skeleton_data; + on_skeleton_data_changed(); +} +Ref SpineSprite::get_skeleton_data_res() { + return skeleton_data_res; +} + +void SpineSprite::on_skeleton_data_changed() { + remove_meshes(); + skeleton.unref(); + animation_state.unref(); + emit_signal("_internal_spine_objects_invalidated"); + + if (skeleton_data_res.is_valid()) { +#if VERSION_MAJOR > 3 + if (!skeleton_data_res->is_connected("skeleton_data_changed", callable_mp(this, &SpineSprite::on_skeleton_data_changed))) + skeleton_data_res->connect("skeleton_data_changed", callable_mp(this, &SpineSprite::on_skeleton_data_changed)); +#else + if (!skeleton_data_res->is_connected("skeleton_data_changed", this, "on_skeleton_data_changed")) + skeleton_data_res->connect("skeleton_data_changed", this, "on_skeleton_data_changed"); +#endif + } + + if (skeleton_data_res.is_valid() && skeleton_data_res->is_skeleton_data_loaded()) { + skeleton = Ref(memnew(SpineSkeleton)); + skeleton->set_spine_sprite(this); + + animation_state = Ref(memnew(SpineAnimationState)); + animation_state->set_spine_sprite(this); + animation_state->get_spine_object()->setListener(this); + + animation_state->update(0); + animation_state->apply(skeleton); + skeleton->update_world_transform(); + generate_meshes_for_slots(skeleton); + + if (update_mode == SpineConstant::UpdateMode_Process) { + _notification(NOTIFICATION_INTERNAL_PROCESS); + } else if (update_mode == SpineConstant::UpdateMode_Physics) { + _notification(NOTIFICATION_INTERNAL_PHYSICS_PROCESS); + } + } + + NOTIFY_PROPERTY_LIST_CHANGED(); +} + +void SpineSprite::generate_meshes_for_slots(Ref skeleton_ref) { + auto skeleton = skeleton_ref->get_spine_object(); + for (int i = 0, n = (int) skeleton->getSlots().size(); i < n; i++) { + auto mesh_instance = memnew(MeshInstance2D); + mesh_instance->set_position(Vector2(0, 0)); + mesh_instance->set_material(default_materials[spine::BlendMode_Normal]); + // Needed so that debug drawables are rendered in front of attachments + mesh_instance->set_draw_behind_parent(true); + add_child(mesh_instance); + mesh_instances.push_back(mesh_instance); + slot_nodes.add(spine::Vector()); + } +} + +void SpineSprite::remove_meshes() { + for (int i = 0; i < mesh_instances.size(); ++i) { + remove_child(mesh_instances[i]); + memdelete(mesh_instances[i]); + } + mesh_instances.clear(); + slot_nodes.clear(); +} + +void SpineSprite::sort_slot_nodes() { + for (int i = 0; i < (int) slot_nodes.size(); i++) { + slot_nodes[i].setSize(0, nullptr); + } + + auto draw_order = skeleton->get_spine_object()->getDrawOrder(); + for (int i = 0; i < get_child_count(); i++) { + auto child = cast_to(get_child(i)); + if (!child) continue; + // Needed so that debug drawables are rendered in front of attachments and other nodes under the sprite. + child->set_draw_behind_parent(true); + auto slot_node = Object::cast_to(get_child(i)); + if (!slot_node) continue; + if (slot_node->get_slot_index() == -1 || slot_node->get_slot_index() >= (int) draw_order.size()) { + continue; + } + slot_nodes[slot_node->get_slot_index()].add(slot_node); + } + + for (int i = 0; i < (int) draw_order.size(); i++) { + int slot_index = draw_order[i]->getData().getIndex(); + int mesh_index = mesh_instances[i]->get_index(); + spine::Vector &nodes = slot_nodes[slot_index]; + for (int j = 0; j < (int) nodes.size(); j++) { + auto node = nodes[j]; + move_child(node, mesh_index + 1); + } + } +} + +Ref SpineSprite::get_skeleton() { + return skeleton; +} + +Ref SpineSprite::get_animation_state() { + return animation_state; +} + +void SpineSprite::_notification(int what) { + switch (what) { + case NOTIFICATION_READY: { + set_process_internal(update_mode == SpineConstant::UpdateMode_Process); + set_physics_process_internal(update_mode == SpineConstant::UpdateMode_Physics); + break; + } + case NOTIFICATION_INTERNAL_PROCESS: { + if (update_mode == SpineConstant::UpdateMode_Process) + update_skeleton(get_process_delta_time()); + break; + } + case NOTIFICATION_INTERNAL_PHYSICS_PROCESS: { + if (update_mode == SpineConstant::UpdateMode_Physics) + update_skeleton(get_physics_process_delta_time()); + break; + } + case NOTIFICATION_DRAW: { + draw(); + break; + } + default: + break; + } +} + +void SpineSprite::_get_property_list(List *list) const { + if (!skeleton_data_res.is_valid() || !skeleton_data_res->is_skeleton_data_loaded()) return; + Vector animation_names; + skeleton_data_res->get_animation_names(animation_names); + animation_names.insert(0, "-- Empty --"); + + PropertyInfo preview_anim_property; + preview_anim_property.name = "preview_animation"; + preview_anim_property.type = Variant::STRING; + preview_anim_property.usage = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_STORAGE; + preview_anim_property.hint_string = String(",").join(animation_names); + preview_anim_property.hint = PROPERTY_HINT_ENUM; + list->push_back(preview_anim_property); + + PropertyInfo preview_frame_property; + preview_frame_property.name = "preview_frame"; + preview_frame_property.type = Variant::BOOL; + preview_frame_property.usage = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_STORAGE; + list->push_back(preview_frame_property); + + PropertyInfo preview_time_property; + preview_time_property.name = "preview_time"; + preview_time_property.type = VARIANT_FLOAT; + preview_time_property.usage = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_STORAGE; + float animation_duration = 0; + if (!EMPTY(preview_animation) && preview_animation != "-- Empty --") { + auto animation = skeleton_data_res->find_animation(preview_animation); + if (animation.is_valid()) animation_duration = animation->get_duration(); + } + preview_time_property.hint_string = String("0.0,{0},0.01").format(varray(animation_duration)); + preview_time_property.hint = PROPERTY_HINT_RANGE; + list->push_back(preview_time_property); +} + +bool SpineSprite::_get(const StringName &property, Variant &value) const { + if (property == "preview_animation") { + value = preview_animation; + return true; + } + + if (property == "preview_frame") { + value = preview_frame; + return true; + } + + if (property == "preview_time") { + value = preview_time; + return true; + } + return false; +} + +static void update_preview_animation(SpineSprite *sprite, const String &animation, bool frame, float time) { + if (!sprite->get_skeleton().is_valid()) return; + sprite->get_skeleton()->set_to_setup_pose(); + if (EMPTY(animation) || animation == "-- Empty --") { + sprite->get_animation_state()->set_empty_animation(0, 0); + return; + } + + auto track_entry = sprite->get_animation_state()->set_animation(animation, true, 0); + track_entry->set_mix_duration(0); + if (frame) { + track_entry->set_time_scale(0); + track_entry->set_track_time(time); + } +} + +bool SpineSprite::_set(const StringName &property, const Variant &value) { + if (property == "preview_animation") { + preview_animation = value; + update_preview_animation(this, preview_animation, preview_frame, preview_time); + NOTIFY_PROPERTY_LIST_CHANGED(); + return true; + } + + if (property == "preview_frame") { + preview_frame = value; + update_preview_animation(this, preview_animation, preview_frame, preview_time); + return true; + } + + if (property == "preview_time") { + preview_time = value; + update_preview_animation(this, preview_animation, preview_frame, preview_time); + return true; + } + + return false; +} + +void SpineSprite::update_skeleton(float delta) { + if (!skeleton_data_res.is_valid() || + !skeleton_data_res->is_skeleton_data_loaded() || + !skeleton.is_valid() || + !skeleton->get_spine_object() || + !animation_state.is_valid() || + !animation_state->get_spine_object()) + return; + + emit_signal("before_animation_state_update", this); + animation_state->update(delta); + if (!is_visible_in_tree()) return; + emit_signal("before_animation_state_apply", this); + animation_state->apply(skeleton); + emit_signal("before_world_transforms_change", this); + skeleton->update_world_transform(); + modified_bones = false; + emit_signal("world_transforms_changed", this); + if (modified_bones) skeleton->update_world_transform(); + sort_slot_nodes(); + update_meshes(skeleton); + update(); +} + +static void clear_mesh_instance(MeshInstance2D *mesh_instance) { +#if VERSION_MAJOR > 3 + RenderingServer::get_singleton()->canvas_item_clear(mesh_instance->get_canvas_item()); +#else + VisualServer::get_singleton()->canvas_item_clear(mesh_instance->get_canvas_item()); +#endif +} + +static void add_triangles(MeshInstance2D *mesh_instance, + const Vector &vertices, + const Vector &uvs, + const Vector &colors, + const Vector &indices, + SpineRendererObject *renderer_object) { +#if VERSION_MAJOR > 3 + RenderingServer::get_singleton()->canvas_item_add_triangle_array(mesh_instance->get_canvas_item(), + indices, + vertices, + colors, + uvs, + Vector(), + Vector(), + renderer_object->canvas_texture.is_valid() ? renderer_object->canvas_texture->get_rid() : RID(), + -1); +#else + auto texture = renderer_object->texture; + auto normal_map = renderer_object->normal_map; + VisualServer::get_singleton()->canvas_item_add_triangle_array(mesh_instance->get_canvas_item(), + indices, + vertices, + colors, + uvs, + Vector(), + Vector(), + texture.is_null() ? RID() : texture->get_rid(), + -1, + normal_map.is_null() ? RID() : normal_map->get_rid()); +#endif +} + +void SpineSprite::update_meshes(Ref skeleton_ref) { + spine::Skeleton *skeleton = skeleton_ref->get_spine_object(); + for (int i = 0, n = (int) skeleton->getSlots().size(); i < n; ++i) { + spine::Slot *slot = skeleton->getDrawOrder()[i]; + spine::Attachment *attachment = slot->getAttachment(); + MeshInstance2D *mesh_instance = mesh_instances[i]; + if (!attachment) { + mesh_instances[i]->set_visible(false); + skeleton_clipper->clipEnd(*slot); + continue; + } + mesh_instance->set_visible(true); + clear_mesh_instance(mesh_instance); + + spine::Color skeleton_color = skeleton->getColor(); + spine::Color slot_color = slot->getColor(); + spine::Color tint(skeleton_color.r * slot_color.r, skeleton_color.g * slot_color.g, skeleton_color.b * slot_color.b, skeleton_color.a * slot_color.a); + SpineRendererObject *renderer_object; + spine::Vector *vertices = &scratch_vertices; + spine::Vector *uvs; + spine::Vector *indices; + + if (attachment->getRTTI().isExactly(spine::RegionAttachment::rtti)) { + auto *region = (spine::RegionAttachment *) attachment; + renderer_object = (SpineRendererObject *) ((spine::AtlasRegion *) region->getRendererObject())->page->getRendererObject(); + + vertices->setSize(8, 0); + region->computeWorldVertices(*slot, *vertices, 0); + uvs = ®ion->getUVs(); + indices = &quad_indices; + + auto attachment_color = region->getColor(); + tint.r *= attachment_color.r; + tint.g *= attachment_color.g; + tint.b *= attachment_color.b; + tint.a *= attachment_color.a; + } else if (attachment->getRTTI().isExactly(spine::MeshAttachment::rtti)) { + auto *mesh = (spine::MeshAttachment *) attachment; + renderer_object = (SpineRendererObject *) ((spine::AtlasRegion *) mesh->getRendererObject())->page->getRendererObject(); + + vertices->setSize(mesh->getWorldVerticesLength(), 0); + mesh->computeWorldVertices(*slot, *vertices); + uvs = &mesh->getUVs(); + indices = &mesh->getTriangles(); + + auto attachment_color = mesh->getColor(); + tint.r *= attachment_color.r; + tint.g *= attachment_color.g; + tint.b *= attachment_color.b; + tint.a *= attachment_color.a; + } else if (attachment->getRTTI().isExactly(spine::ClippingAttachment::rtti)) { + auto clip = (spine::ClippingAttachment *) attachment; + skeleton_clipper->clipStart(*slot, clip); + continue; + } else { + skeleton_clipper->clipEnd(*slot); + continue; + } + + if (skeleton_clipper->isClipping()) { + skeleton_clipper->clipTriangles(*vertices, *indices, *uvs, 2); + if (skeleton_clipper->getClippedTriangles().size() == 0) { + skeleton_clipper->clipEnd(*slot); + continue; + } + + vertices = &skeleton_clipper->getClippedVertices(); + uvs = &skeleton_clipper->getClippedUVs(); + indices = &skeleton_clipper->getClippedTriangles(); + } + + if (indices->size() > 0) { + size_t num_vertices = vertices->size() / 2; + scratch_points.resize((int) num_vertices); + memcpy(scratch_points.ptrw(), vertices->buffer(), num_vertices * 2 * sizeof(float)); + scratch_uvs.resize((int) num_vertices); + memcpy(scratch_uvs.ptrw(), uvs->buffer(), num_vertices * 2 * sizeof(float)); + scratch_colors.resize((int) num_vertices); + for (int j = 0; j < (int) num_vertices; j++) { + scratch_colors.set(j, Color(tint.r, tint.g, tint.b, tint.a)); + } + scratch_indices.resize((int) indices->size()); + for (int j = 0; j < (int) indices->size(); ++j) { + scratch_indices.set(j, indices->buffer()[j]); + } + + add_triangles(mesh_instance, scratch_points, scratch_uvs, scratch_colors, scratch_indices, renderer_object); + + spine::BlendMode blend_mode = slot->getData().getBlendMode(); + Ref custom_material; + + // See if we have a slot node for this slot with a custom material + auto &nodes = slot_nodes[i]; + if (nodes.size() > 0) { + auto slot_node = nodes[0]; + if (slot_node) { + switch (blend_mode) { + case spine::BlendMode_Normal: + custom_material = slot_node->get_normal_material(); + break; + case spine::BlendMode_Additive: + custom_material = slot_node->get_additive_material(); + break; + case spine::BlendMode_Multiply: + custom_material = slot_node->get_multiply_material(); + break; + case spine::BlendMode_Screen: + custom_material = slot_node->get_screen_material(); + break; + } + } + } + + // Else, check if we have a material on the sprite itself + if (!custom_material.is_valid()) { + switch (blend_mode) { + case spine::BlendMode_Normal: + custom_material = normal_material; + break; + case spine::BlendMode_Additive: + custom_material = additive_material; + break; + case spine::BlendMode_Multiply: + custom_material = multiply_material; + break; + case spine::BlendMode_Screen: + custom_material = screen_material; + break; + } + } + + // Set the custom material, or the default material + if (custom_material.is_valid()) mesh_instance->set_material(custom_material); + else + mesh_instance->set_material(default_materials[slot->getData().getBlendMode()]); + } + skeleton_clipper->clipEnd(*slot); + } + skeleton_clipper->clipEnd(); +} + +void SpineSprite::draw() { + if (!Engine::get_singleton()->is_editor_hint() && !get_tree()->is_debugging_collisions_hint()) return; + if (!animation_state.is_valid() && !skeleton.is_valid()) return; + + auto mouse_position = get_local_mouse_position(); + spine::Slot *hovered_slot = nullptr; + + if (debug_regions) { + draw_set_transform(Vector2(0, 0), 0, Vector2(1, 1)); + auto &draw_order = skeleton->get_spine_object()->getDrawOrder(); + for (int i = 0; i < (int) draw_order.size(); i++) { + auto *slot = draw_order[i]; + if (!slot->getBone().isActive()) continue; + auto *attachment = slot->getAttachment(); + if (!attachment) continue; + if (!attachment->getRTTI().isExactly(spine::RegionAttachment::rtti)) continue; + auto *region = (spine::RegionAttachment *) attachment; + auto *vertices = &scratch_vertices; + vertices->setSize(8, 0); + region->computeWorldVertices(*slot, *vertices, 0); + scratch_points.resize(0); + for (int i = 0, j = 0; i < 4; i++, j += 2) { + float x = vertices->buffer()[j]; + float y = vertices->buffer()[j + 1]; + scratch_points.push_back(Vector2(x, y)); + } + scratch_points.push_back(Vector2(vertices->buffer()[0], vertices->buffer()[1])); + + Color color = debug_regions_color; + if (GEOMETRY2D::is_point_in_polygon(mouse_position, scratch_points)) { + hovered_slot = slot; + color = Color(1, 1, 1, 1); + } + scratch_points.push_back(Vector2(vertices->buffer()[0], vertices->buffer()[1])); + draw_polyline(scratch_points, color, 2); + } + } + + if (debug_meshes) { + draw_set_transform(Vector2(0, 0), 0, Vector2(1, 1)); + auto &draw_order = skeleton->get_spine_object()->getDrawOrder(); + for (int i = 0; i < (int) draw_order.size(); i++) { + auto *slot = draw_order[i]; + if (!slot->getBone().isActive()) continue; + auto *attachment = slot->getAttachment(); + if (!attachment) continue; + if (!attachment->getRTTI().isExactly(spine::MeshAttachment::rtti)) continue; + auto *mesh = (spine::MeshAttachment *) attachment; + auto *vertices = &scratch_vertices; + vertices->setSize(mesh->getWorldVerticesLength(), 0); + mesh->computeWorldVertices(*slot, *vertices); + scratch_points.resize(0); + for (int i = 0, j = 0; i < mesh->getHullLength(); i++, j += 2) { + float x = vertices->buffer()[j]; + float y = vertices->buffer()[j + 1]; + scratch_points.push_back(Vector2(x, y)); + } + + Color color = debug_meshes_color; + if (GEOMETRY2D::is_point_in_polygon(mouse_position, scratch_points)) { + hovered_slot = slot; + color = Color(1, 1, 1, 1); + } + scratch_points.push_back(Vector2(vertices->buffer()[0], vertices->buffer()[1])); + draw_polyline(scratch_points, color, 2); + } + } + + if (debug_bounding_boxes) { + draw_set_transform(Vector2(0, 0), 0, Vector2(1, 1)); + auto &draw_order = skeleton->get_spine_object()->getDrawOrder(); + for (int i = 0; i < (int) draw_order.size(); i++) { + auto *slot = draw_order[i]; + if (!slot->getBone().isActive()) continue; + auto *attachment = slot->getAttachment(); + if (!attachment) continue; + if (!attachment->getRTTI().isExactly(spine::BoundingBoxAttachment::rtti)) continue; + auto *bounding_box = (spine::BoundingBoxAttachment *) attachment; + auto *vertices = &scratch_vertices; + vertices->setSize(bounding_box->getWorldVerticesLength(), 0); + bounding_box->computeWorldVertices(*slot, *vertices); + size_t num_vertices = vertices->size() / 2; + scratch_points.resize((int) num_vertices); + memcpy(scratch_points.ptrw(), vertices->buffer(), num_vertices * 2 * sizeof(float)); + scratch_points.push_back(Vector2(vertices->buffer()[0], vertices->buffer()[1])); + draw_polyline(scratch_points, debug_bounding_boxes_color, 2); + } + } + + if (debug_clipping) { + draw_set_transform(Vector2(0, 0), 0, Vector2(1, 1)); + auto &draw_order = skeleton->get_spine_object()->getDrawOrder(); + for (int i = 0; i < (int) draw_order.size(); i++) { + auto *slot = draw_order[i]; + if (!slot->getBone().isActive()) continue; + auto *attachment = slot->getAttachment(); + if (!attachment) continue; + if (!attachment->getRTTI().isExactly(spine::ClippingAttachment::rtti)) continue; + auto *clipping = (spine::ClippingAttachment *) attachment; + auto *vertices = &scratch_vertices; + vertices->setSize(clipping->getWorldVerticesLength(), 0); + clipping->computeWorldVertices(*slot, *vertices); + size_t num_vertices = vertices->size() / 2; + scratch_points.resize((int) num_vertices); + memcpy(scratch_points.ptrw(), vertices->buffer(), num_vertices * 2 * sizeof(float)); + scratch_points.push_back(Vector2(vertices->buffer()[0], vertices->buffer()[1])); + draw_polyline(scratch_points, debug_clipping_color, 2); + } + } + + + spine::Bone *hovered_bone = nullptr; + if (debug_bones) { + auto &bones = skeleton->get_spine_object()->getBones(); + for (int i = 0; i < (int) bones.size(); i++) { + auto *bone = bones[i]; + if (!bone->isActive()) continue; + draw_bone(bone, debug_bones_color); + + float bone_length = bone->getData().getLength(); + if (bone_length == 0) bone_length = debug_bones_thickness * 2; + + scratch_points.resize(5); + scratch_points.set(0, Vector2(-debug_bones_thickness, 0)); + scratch_points.set(1, Vector2(0, debug_bones_thickness)); + scratch_points.set(2, Vector2(bone_length, 0)); + scratch_points.set(3, Vector2(0, -debug_bones_thickness)); + scratch_points.set(4, Vector2(-debug_bones_thickness, 0)); + Transform2D bone_transform(Math::deg2rad(bone->getWorldRotationX()), Vector2(bone->getWorldX(), bone->getWorldY())); + bone_transform.scale_basis(Vector2(bone->getWorldScaleX(), bone->getWorldScaleY())); + auto mouse_local_position = bone_transform.affine_inverse().xform(mouse_position); + if (GEOMETRY2D::is_point_in_polygon(mouse_local_position, scratch_points)) { + hovered_bone = bone; + } + } + } + +#if TOOLS_ENABLED + Ref default_font; + auto control = memnew(Control); +#if VERSION_MAJOR > 3 + default_font = control->get_theme_default_font(); +#else + default_font = control->get_font("font", "Label"); +#endif + memfree(control); + + float editor_scale = EditorInterface::get_singleton()->get_editor_scale(); + float inverse_zoom = 1 / get_viewport()->get_global_canvas_transform().get_scale().x * editor_scale; + Vector hover_text_lines; + if (hovered_slot) { + hover_text_lines.push_back(String("Slot: ") + hovered_slot->getData().getName().buffer()); + } + + if (hovered_bone) { + float thickness = debug_bones_thickness; + debug_bones_thickness *= 1.1; + draw_bone(hovered_bone, Color(debug_bones_color.r, debug_bones_color.g, debug_bones_color.b, 1)); + debug_bones_thickness = thickness; + hover_text_lines.push_back(String("Bone: ") + hovered_bone->getData().getName().buffer()); + } + + auto global_scale = get_global_scale(); + draw_set_transform(mouse_position + Vector2(20, 0), -get_global_rotation(), Vector2(inverse_zoom * (1 / global_scale.x), inverse_zoom * (1 / global_scale.y))); + + float line_height = default_font->get_height() + default_font->get_descent(); + float rect_width = 0; + for (int i = 0; i < hover_text_lines.size(); i++) { + rect_width = MAX(rect_width, default_font->get_string_size(hover_text_lines[i]).x); + } + Rect2 background_rect(0, -default_font->get_height() - 5, rect_width + 20, line_height * hover_text_lines.size() + 10); + if (hover_text_lines.size() > 0) draw_rect(background_rect, Color(0, 0, 0, 0.8)); + for (int i = 0; i < hover_text_lines.size(); i++) { +#if VERSION_MAJOR > 3 + draw_string(default_font, Vector2(10, 0 + i * default_font->get_height()), hover_text_lines[i], HORIZONTAL_ALIGNMENT_LEFT, -1, Font::DEFAULT_FONT_SIZE, Color(1, 1, 1, 1)); +#else + draw_string(default_font, Vector2(10, 0 + i * default_font->get_height()), hover_text_lines[i], Color(1, 1, 1, 1)); +#endif + } +#endif +} + +void SpineSprite::draw_bone(spine::Bone *bone, const Color &color) { + draw_set_transform(Vector2(bone->getWorldX(), bone->getWorldY()), Math::deg2rad(bone->getWorldRotationX()), Vector2(bone->getWorldScaleX(), bone->getWorldScaleY())); + float bone_length = bone->getData().getLength(); + if (bone_length == 0) bone_length = debug_bones_thickness * 2; + Vector points; + points.push_back(Vector2(-debug_bones_thickness, 0)); + points.push_back(Vector2(0, debug_bones_thickness)); + points.push_back(Vector2(bone_length, 0)); + points.push_back(Vector2(0, -debug_bones_thickness)); + draw_colored_polygon(points, color); +} + +void SpineSprite::callback(spine::AnimationState *state, spine::EventType type, spine::TrackEntry *entry, spine::Event *event) { + Ref entry_ref = Ref(memnew(SpineTrackEntry)); + entry_ref->set_spine_object(this, entry); + + Ref event_ref(nullptr); + if (event) { + event_ref = Ref(memnew(SpineEvent)); + event_ref->set_spine_object(this, event); + } + + switch (type) { + case spine::EventType_Start: + emit_signal("animation_started", this, animation_state, entry_ref); + break; + case spine::EventType_Interrupt: + emit_signal("animation_interrupted", this, animation_state, entry_ref); + break; + case spine::EventType_End: + emit_signal("animation_ended", this, animation_state, entry_ref); + break; + case spine::EventType_Complete: + emit_signal("animation_completed", this, animation_state, entry_ref); + break; + case spine::EventType_Dispose: + emit_signal("animation_disposed", this, animation_state, entry_ref); + break; + case spine::EventType_Event: + emit_signal("animation_event", this, animation_state, entry_ref, event_ref); + break; + } +} + +Transform2D SpineSprite::get_global_bone_transform(const String &bone_name) { + if (!animation_state.is_valid() && !skeleton.is_valid()) return get_global_transform(); + auto bone = skeleton->find_bone(bone_name); + if (!bone.is_valid()) { + print_error(vformat("Bone: '%s' not found.", bone_name)); + return get_global_transform(); + } + return bone->get_global_transform(); +} + +void SpineSprite::set_global_bone_transform(const String &bone_name, Transform2D transform) { + if (!animation_state.is_valid() && !skeleton.is_valid()) return; + auto bone = skeleton->find_bone(bone_name); + if (!bone.is_valid()) return; + bone->set_global_transform(transform); +} + +SpineConstant::UpdateMode SpineSprite::get_update_mode() { + return update_mode; +} + +void SpineSprite::set_update_mode(SpineConstant::UpdateMode v) { + update_mode = v; + set_process_internal(update_mode == SpineConstant::UpdateMode_Process); + set_physics_process_internal(update_mode == SpineConstant::UpdateMode_Physics); +} + +Ref SpineSprite::new_skin(const String &name) { + Ref skin = memnew(SpineSkin); + skin->init(name, this); + return skin; +} + +Ref SpineSprite::get_normal_material() { + return normal_material; +} + +void SpineSprite::set_normal_material(Ref material) { + normal_material = material; +} + +Ref SpineSprite::get_additive_material() { + return additive_material; +} + +void SpineSprite::set_additive_material(Ref material) { + additive_material = material; +} + +Ref SpineSprite::get_multiply_material() { + return multiply_material; +} + +void SpineSprite::set_multiply_material(Ref material) { + multiply_material = material; +} + +Ref SpineSprite::get_screen_material() { + return screen_material; +} + +void SpineSprite::set_screen_material(Ref material) { + screen_material = material; +} + +#ifdef TOOLS_ENABLED +Rect2 SpineSprite::_edit_get_rect() const { + if (skeleton_data_res.is_valid() && skeleton_data_res->is_skeleton_data_loaded()) { + auto data = skeleton_data_res->get_skeleton_data(); + return Rect2(data->getX(), -data->getY() - data->getHeight(), data->getWidth(), data->getHeight()); + } + + return Node2D::_edit_get_rect(); +} + +bool SpineSprite::_edit_use_rect() const { + return skeleton_data_res.is_valid() && skeleton_data_res->is_skeleton_data_loaded(); +} +#endif diff --git a/spine-godot/spine_godot/SpineSprite.h b/spine-godot/spine_godot/SpineSprite.h new file mode 100644 index 000000000..38ca4108d --- /dev/null +++ b/spine-godot/spine_godot/SpineSprite.h @@ -0,0 +1,192 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineSkeleton.h" +#include "SpineAnimationState.h" +#include "scene/2d/node_2d.h" +#include "scene/2d/mesh_instance_2d.h" + +class SpineSlotNode; + +class SpineSprite : public Node2D, public spine::AnimationStateListenerObject { + GDCLASS(SpineSprite, Node2D) + + friend class SpineBone; + +protected: + Ref skeleton_data_res; + Ref skeleton; + Ref animation_state; + SpineConstant::UpdateMode update_mode; + + String preview_animation; + bool preview_frame; + float preview_time; + + bool debug_bones; + Color debug_bones_color; + float debug_bones_thickness; + bool debug_regions; + Color debug_regions_color; + bool debug_meshes; + Color debug_meshes_color; + bool debug_bounding_boxes; + Color debug_bounding_boxes_color; + bool debug_paths; + Color debug_paths_color; + bool debug_clipping; + Color debug_clipping_color; + + spine::Vector> slot_nodes; + Vector mesh_instances; + static Ref default_materials[4]; + Ref normal_material; + Ref additive_material; + Ref multiply_material; + Ref screen_material; + spine::SkeletonClipping *skeleton_clipper; + bool modified_bones; + + static void _bind_methods(); + void _notification(int what); + void _get_property_list(List *list) const; + bool _get(const StringName &property, Variant &value) const; + bool _set(const StringName &property, const Variant &value); + + void generate_meshes_for_slots(Ref skeleton_ref); + void remove_meshes(); + void sort_slot_nodes(); + void update_meshes(Ref skeleton_ref); + void set_modified_bones() { modified_bones = true; } + void draw(); + void draw_bone(spine::Bone *bone, const Color &color); + + void callback(spine::AnimationState *state, spine::EventType type, spine::TrackEntry *entry, spine::Event *event); + +public: + SpineSprite(); + ~SpineSprite(); + + void set_skeleton_data_res(const Ref &_spine_skeleton_data_resource); + + Ref get_skeleton_data_res(); + + Ref get_skeleton(); + + Ref get_animation_state(); + + void on_skeleton_data_changed(); + + void update_skeleton(float delta); + + Transform2D get_global_bone_transform(const String &bone_name); + + void set_global_bone_transform(const String &bone_name, Transform2D transform); + + SpineConstant::UpdateMode get_update_mode(); + + void set_update_mode(SpineConstant::UpdateMode v); + + Ref new_skin(const String &name); + + Ref get_normal_material(); + + void set_normal_material(Ref material); + + Ref get_additive_material(); + + void set_additive_material(Ref material); + + Ref get_multiply_material(); + + void set_multiply_material(Ref material); + + Ref get_screen_material(); + + void set_screen_material(Ref material); + + bool get_debug_bones() { return debug_bones; } + + void set_debug_bones(bool bones) { debug_bones = bones; } + + Color get_debug_bones_color() { return debug_bones_color; } + + void set_debug_bones_color(const Color &color) { debug_bones_color = color; } + + float get_debug_bones_thickness() { return debug_bones_thickness; } + + void set_debug_bones_thickness(float thickness) { debug_bones_thickness = thickness; } + + bool get_debug_regions() { return debug_regions; } + + void set_debug_regions(bool regions) { debug_regions = regions; } + + Color get_debug_regions_color() { return debug_regions_color; } + + void set_debug_regions_color(const Color &color) { debug_regions_color = color; } + + bool get_debug_meshes() { return debug_meshes; } + + void set_debug_meshes(bool meshes) { debug_meshes = meshes; } + + Color get_debug_meshes_color() { return debug_meshes_color; } + + void set_debug_meshes_color(const Color &color) { debug_meshes_color = color; } + + bool get_debug_paths() { return debug_paths; } + + void set_debug_paths(bool paths) { debug_paths = paths; } + + Color get_debug_paths_color() { return debug_paths_color; } + + void set_debug_paths_color(const Color &color) { debug_paths_color = color; } + + bool get_debug_bounding_boxes() { return debug_bounding_boxes; } + + void set_debug_bounding_boxes(bool paths) { debug_bounding_boxes = paths; } + + Color get_debug_bounding_boxes_color() { return debug_bounding_boxes_color; } + + void set_debug_bounding_boxes_color(const Color &color) { debug_bounding_boxes_color = color; } + + bool get_debug_clipping() { return debug_clipping; } + + void set_debug_clipping(bool clipping) { debug_clipping = clipping; } + + Color get_debug_clipping_color() { return debug_clipping_color; } + + void set_debug_clipping_color(const Color &color) { debug_clipping_color = color; } + +#ifdef TOOLS_ENABLED + virtual Rect2 _edit_get_rect() const; + virtual bool _edit_use_rect() const; +#endif +}; diff --git a/spine-godot/spine_godot/SpineTimeline.cpp b/spine-godot/spine_godot/SpineTimeline.cpp new file mode 100644 index 000000000..bb8bd400f --- /dev/null +++ b/spine-godot/spine_godot/SpineTimeline.cpp @@ -0,0 +1,99 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineTimeline.h" +#include "SpineSkeleton.h" +#include "SpineEvent.h" +#if VERSION_MAJOR == 3 +#include "core/method_bind_ext.gen.inc" +#endif + +void SpineTimeline::_bind_methods() { + ClassDB::bind_method(D_METHOD("apply", "skeleton", "last_time", "time", "events", "alpha", "blend", "direction"), &SpineTimeline::apply); + ClassDB::bind_method(D_METHOD("get_frame_entries"), &SpineTimeline::get_frame_entries); + ClassDB::bind_method(D_METHOD("get_frame_count"), &SpineTimeline::get_frame_count); + ClassDB::bind_method(D_METHOD("get_frames"), &SpineTimeline::get_frames); + ClassDB::bind_method(D_METHOD("get_duration"), &SpineTimeline::get_duration); + ClassDB::bind_method(D_METHOD("get_property_ids"), &SpineTimeline::get_property_ids); + ClassDB::bind_method(D_METHOD("get_type"), &SpineTimeline::get_type); +} + +void SpineTimeline::apply(Ref skeleton, float last_time, float time, Array events, float alpha, + SpineConstant::MixBlend blend, SpineConstant::MixDirection direction) { + SPINE_CHECK(get_spine_object(), ) + if (!skeleton->get_spine_object()) return; + spine::Vector spine_events; + spine_events.setSize((int) events.size(), nullptr); + for (int i = 0; i < events.size(); ++i) { + events[i] = ((Ref) spine_events[i])->get_spine_object(); + } + get_spine_object()->apply(*(skeleton->get_spine_object()), last_time, time, &spine_events, alpha, (spine::MixBlend) blend, (spine::MixDirection) direction); +} + +int SpineTimeline::get_frame_entries() { + SPINE_CHECK(get_spine_object(), 0) + return (int) get_spine_object()->getFrameEntries(); +} + +int SpineTimeline::get_frame_count() { + SPINE_CHECK(get_spine_object(), 0) + return (int) get_spine_object()->getFrameCount(); +} + +Array SpineTimeline::get_frames() { + Array result; + SPINE_CHECK(get_spine_object(), result) + auto &frames = get_spine_object()->getFrames(); + result.resize((int) frames.size()); + for (int i = 0; i < result.size(); ++i) { + result[i] = frames[i]; + } + return result; +} + +float SpineTimeline::get_duration() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getDuration(); +} + +Array SpineTimeline::get_property_ids() { + Array result; + SPINE_CHECK(get_spine_object(), result) + auto &ids = get_spine_object()->getPropertyIds(); + result.resize((int) ids.size()); + for (int i = 0; i < result.size(); ++i) { + result[i] = (int64_t) ids[i]; + } + return result; +} + +String SpineTimeline::get_type() { + SPINE_CHECK(get_spine_object(), "") + return get_spine_object()->getRTTI().getClassName(); +} diff --git a/spine-godot/spine_godot/SpineTimeline.h b/spine-godot/spine_godot/SpineTimeline.h new file mode 100644 index 000000000..6cac70f7b --- /dev/null +++ b/spine-godot/spine_godot/SpineTimeline.h @@ -0,0 +1,61 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include "SpineConstant.h" +#include + +#include "SpineSkeletonDataResource.h" + +class SpineSkeleton; +class SpineEvent; + +class SpineTimeline : public SpineSkeletonDataResourceOwnedObject { + GDCLASS(SpineTimeline, SpineObjectWrapper) + +protected: + static void _bind_methods(); + +public: + void apply(Ref skeleton, float last_time, float time, Array events, float alpha, SpineConstant::MixBlend blend, SpineConstant::MixDirection direction); + + int get_frame_entries(); + + int get_frame_count(); + + Array get_frames(); + + float get_duration(); + + Array get_property_ids(); + + String get_type(); +}; diff --git a/spine-godot/spine_godot/SpineTrackEntry.cpp b/spine-godot/spine_godot/SpineTrackEntry.cpp new file mode 100644 index 000000000..ae9110a7e --- /dev/null +++ b/spine-godot/spine_godot/SpineTrackEntry.cpp @@ -0,0 +1,330 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineTrackEntry.h" +#include "SpineCommon.h" + +void SpineTrackEntry::_bind_methods() { + ClassDB::bind_method(D_METHOD("get_track_index"), &SpineTrackEntry::get_track_index); + ClassDB::bind_method(D_METHOD("get_animation"), &SpineTrackEntry::get_animation); + ClassDB::bind_method(D_METHOD("get_previous"), &SpineTrackEntry::get_previous); + ClassDB::bind_method(D_METHOD("get_loop"), &SpineTrackEntry::get_loop); + ClassDB::bind_method(D_METHOD("set_loop", "v"), &SpineTrackEntry::set_loop); + ClassDB::bind_method(D_METHOD("get_hold_previous"), &SpineTrackEntry::get_hold_previous); + ClassDB::bind_method(D_METHOD("set_hold_previous", "v"), &SpineTrackEntry::set_hold_previous); + ClassDB::bind_method(D_METHOD("get_reverse"), &SpineTrackEntry::get_reverse); + ClassDB::bind_method(D_METHOD("set_reverse", "v"), &SpineTrackEntry::set_reverse); + ClassDB::bind_method(D_METHOD("get_shortest_rotation"), &SpineTrackEntry::get_shortest_rotation); + ClassDB::bind_method(D_METHOD("set_shortest_rotation", "v"), &SpineTrackEntry::set_shortest_rotation); + ClassDB::bind_method(D_METHOD("get_delay"), &SpineTrackEntry::get_delay); + ClassDB::bind_method(D_METHOD("set_delay", "v"), &SpineTrackEntry::set_delay); + ClassDB::bind_method(D_METHOD("get_track_time"), &SpineTrackEntry::get_track_time); + ClassDB::bind_method(D_METHOD("set_track_time", "v"), &SpineTrackEntry::set_track_time); + ClassDB::bind_method(D_METHOD("get_track_end"), &SpineTrackEntry::get_track_end); + ClassDB::bind_method(D_METHOD("set_track_end", "v"), &SpineTrackEntry::set_track_end); + ClassDB::bind_method(D_METHOD("get_animation_start"), &SpineTrackEntry::get_animation_start); + ClassDB::bind_method(D_METHOD("set_animation_start", "v"), &SpineTrackEntry::set_animation_start); + ClassDB::bind_method(D_METHOD("get_animation_end"), &SpineTrackEntry::get_animation_end); + ClassDB::bind_method(D_METHOD("set_animation_end", "v"), &SpineTrackEntry::set_animation_end); + ClassDB::bind_method(D_METHOD("get_animation_last"), &SpineTrackEntry::get_animation_last); + ClassDB::bind_method(D_METHOD("set_animation_last", "v"), &SpineTrackEntry::set_animation_last); + ClassDB::bind_method(D_METHOD("get_animation_time"), &SpineTrackEntry::get_animation_time); + ClassDB::bind_method(D_METHOD("get_time_scale"), &SpineTrackEntry::get_time_scale); + ClassDB::bind_method(D_METHOD("set_time_scale", "v"), &SpineTrackEntry::set_time_scale); + ClassDB::bind_method(D_METHOD("get_alpha"), &SpineTrackEntry::get_alpha); + ClassDB::bind_method(D_METHOD("set_alpha", "v"), &SpineTrackEntry::set_alpha); + ClassDB::bind_method(D_METHOD("get_event_threshold"), &SpineTrackEntry::get_event_threshold); + ClassDB::bind_method(D_METHOD("set_event_threshold", "v"), &SpineTrackEntry::set_event_threshold); + ClassDB::bind_method(D_METHOD("get_attachment_threshold"), &SpineTrackEntry::get_attachment_threshold); + ClassDB::bind_method(D_METHOD("set_attachment_threshold", "v"), &SpineTrackEntry::set_attachment_threshold); + ClassDB::bind_method(D_METHOD("get_draw_order_threshold"), &SpineTrackEntry::get_draw_order_threshold); + ClassDB::bind_method(D_METHOD("set_draw_order_threshold", "v"), &SpineTrackEntry::set_draw_order_threshold); + ClassDB::bind_method(D_METHOD("get_next"), &SpineTrackEntry::get_next); + ClassDB::bind_method(D_METHOD("is_complete"), &SpineTrackEntry::is_complete); + ClassDB::bind_method(D_METHOD("get_mix_time"), &SpineTrackEntry::get_mix_time); + ClassDB::bind_method(D_METHOD("set_mix_time", "v"), &SpineTrackEntry::set_mix_time); + ClassDB::bind_method(D_METHOD("get_mix_duration"), &SpineTrackEntry::get_mix_duration); + ClassDB::bind_method(D_METHOD("set_mix_duration", "v"), &SpineTrackEntry::set_mix_duration); + ClassDB::bind_method(D_METHOD("get_mix_blend"), &SpineTrackEntry::get_mix_blend); + ClassDB::bind_method(D_METHOD("set_mix_blend", "v"), &SpineTrackEntry::set_mix_blend); + ClassDB::bind_method(D_METHOD("get_mixing_from"), &SpineTrackEntry::get_mixing_from); + ClassDB::bind_method(D_METHOD("get_mixing_to"), &SpineTrackEntry::get_mixing_to); + ClassDB::bind_method(D_METHOD("reset_rotation_directions"), &SpineTrackEntry::reset_rotation_directions); + ClassDB::bind_method(D_METHOD("get_track_complete"), &SpineTrackEntry::get_track_complete); +} + +int SpineTrackEntry::get_track_index() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getTrackIndex(); +} + +Ref SpineTrackEntry::get_animation() { + SPINE_CHECK(get_spine_object(), nullptr) + auto animation = get_spine_object()->getAnimation(); + if (!animation) return nullptr; + Ref animation_ref(memnew(SpineAnimation)); + animation_ref->set_spine_object(*get_spine_owner()->get_skeleton_data_res(), animation); + return animation_ref; +} + +Ref SpineTrackEntry::get_previous() { + SPINE_CHECK(get_spine_object(), nullptr) + auto previous = get_spine_object()->getPrevious(); + if (!previous) return nullptr; + Ref previous_ref(memnew(SpineTrackEntry)); + previous_ref->set_spine_object(get_spine_owner(), previous); + return previous_ref; +} + +bool SpineTrackEntry::get_loop() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_object()->getLoop(); +} + +void SpineTrackEntry::set_loop(bool v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setLoop(v); +} + +bool SpineTrackEntry::get_hold_previous() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_object()->getHoldPrevious(); +} + +void SpineTrackEntry::set_hold_previous(bool v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setHoldPrevious(v); +} + +bool SpineTrackEntry::get_reverse() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_object()->getReverse(); +} + +void SpineTrackEntry::set_reverse(bool v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setReverse(v); +} + +bool SpineTrackEntry::get_shortest_rotation() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_object()->getShortestRotation(); +} + +void SpineTrackEntry::set_shortest_rotation(bool v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setShortestRotation(v); +} + +float SpineTrackEntry::get_delay() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getDelay(); +} + +void SpineTrackEntry::set_delay(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setDelay(v); +} + +float SpineTrackEntry::get_track_time() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getTrackTime(); +} + +void SpineTrackEntry::set_track_time(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setTrackTime(v); +} + +float SpineTrackEntry::get_track_end() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getTrackEnd(); +} + +void SpineTrackEntry::set_track_end(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setTrackEnd(v); +} + +float SpineTrackEntry::get_animation_start() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getAnimationStart(); +} + +void SpineTrackEntry::set_animation_start(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAnimationStart(v); +} + +float SpineTrackEntry::get_animation_end() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getAnimationEnd(); +} + +void SpineTrackEntry::set_animation_end(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAnimationEnd(v); +} + +float SpineTrackEntry::get_animation_last() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getAnimationLast(); +} + +void SpineTrackEntry::set_animation_last(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAnimationLast(v); +} + +float SpineTrackEntry::get_animation_time() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getAnimationTime(); +} + +float SpineTrackEntry::get_time_scale() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getTimeScale(); +} + +void SpineTrackEntry::set_time_scale(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setTimeScale(v); +} + +float SpineTrackEntry::get_alpha() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getAlpha(); +} + +void SpineTrackEntry::set_alpha(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAlpha(v); +} + +float SpineTrackEntry::get_event_threshold() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getEventThreshold(); +} + +void SpineTrackEntry::set_event_threshold(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setEventThreshold(v); +} + +float SpineTrackEntry::get_attachment_threshold() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getAttachmentThreshold(); +} + +void SpineTrackEntry::set_attachment_threshold(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setAttachmentThreshold(v); +} + +float SpineTrackEntry::get_draw_order_threshold() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getDrawOrderThreshold(); +} + +void SpineTrackEntry::set_draw_order_threshold(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setDrawOrderThreshold(v); +} + +Ref SpineTrackEntry::get_next() { + SPINE_CHECK(get_spine_object(), nullptr) + auto next = get_spine_object()->getNext(); + if (!next) return nullptr; + Ref next_ref(memnew(SpineTrackEntry)); + next_ref->set_spine_object(get_spine_owner(), next); + return next_ref; +} + +bool SpineTrackEntry::is_complete() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_object()->isComplete(); +} + +float SpineTrackEntry::get_mix_time() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getMixTime(); +} + +void SpineTrackEntry::set_mix_time(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setMixTime(v); +} + +float SpineTrackEntry::get_mix_duration() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getMixDuration(); +} + +void SpineTrackEntry::set_mix_duration(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setMixDuration(v); +} + +SpineConstant::MixBlend SpineTrackEntry::get_mix_blend() { + SPINE_CHECK(get_spine_object(), SpineConstant::MixBlend_Setup) + return (SpineConstant::MixBlend) get_spine_object()->getMixBlend(); +} + +void SpineTrackEntry::set_mix_blend(SpineConstant::MixBlend v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setMixBlend((spine::MixBlend) v); +} + +Ref SpineTrackEntry::get_mixing_from() { + SPINE_CHECK(get_spine_object(), nullptr) + auto mixing_from = get_spine_object()->getMixingFrom(); + if (!mixing_from) return nullptr; + Ref mixing_from_ref(memnew(SpineTrackEntry)); + mixing_from_ref->set_spine_object(get_spine_owner(), mixing_from); + return mixing_from_ref; +} + +Ref SpineTrackEntry::get_mixing_to() { + SPINE_CHECK(get_spine_object(), nullptr) + auto mixing_to = get_spine_object()->getMixingTo(); + if (!mixing_to) return nullptr; + Ref mixing_to_ref(memnew(SpineTrackEntry)); + mixing_to_ref->set_spine_object(get_spine_owner(), mixing_to); + return mixing_to_ref; +} + +void SpineTrackEntry::reset_rotation_directions() { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->resetRotationDirections(); +} + +float SpineTrackEntry::get_track_complete() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getTrackComplete(); +} diff --git a/spine-godot/spine_godot/SpineTrackEntry.h b/spine-godot/spine_godot/SpineTrackEntry.h new file mode 100644 index 000000000..a7ae3027b --- /dev/null +++ b/spine-godot/spine_godot/SpineTrackEntry.h @@ -0,0 +1,137 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include "SpineAnimation.h" +#include "SpineConstant.h" +#include + +#include "SpineSprite.h" + +class SpineTrackEntry : public SpineSpriteOwnedObject { + GDCLASS(SpineTrackEntry, SpineObjectWrapper); + +protected: + static void _bind_methods(); + +public: + int get_track_index(); + + Ref get_animation(); + + Ref get_previous(); + + bool get_loop(); + + void set_loop(bool v); + + bool get_hold_previous(); + + void set_hold_previous(bool v); + + bool get_reverse(); + + void set_reverse(bool v); + + bool get_shortest_rotation(); + + void set_shortest_rotation(bool v); + + float get_delay(); + + void set_delay(float v); + + float get_track_time(); + + void set_track_time(float v); + + float get_track_end(); + + void set_track_end(float v); + + float get_animation_start(); + + void set_animation_start(float v); + + float get_animation_end(); + + void set_animation_end(float v); + + float get_animation_last(); + + void set_animation_last(float v); + + float get_animation_time(); + + float get_time_scale(); + + void set_time_scale(float v); + + float get_alpha(); + + void set_alpha(float v); + + float get_event_threshold(); + + void set_event_threshold(float v); + + float get_attachment_threshold(); + + void set_attachment_threshold(float v); + + float get_draw_order_threshold(); + + void set_draw_order_threshold(float v); + + Ref get_next(); + + bool is_complete(); + + float get_mix_time(); + + void set_mix_time(float v); + + float get_mix_duration(); + + void set_mix_duration(float v); + + SpineConstant::MixBlend get_mix_blend(); + + void set_mix_blend(SpineConstant::MixBlend v); + + Ref get_mixing_from(); + + Ref get_mixing_to(); + + void reset_rotation_directions(); + + float get_track_complete(); +}; diff --git a/spine-godot/spine_godot/SpineTransformConstraint.cpp b/spine-godot/spine_godot/SpineTransformConstraint.cpp new file mode 100644 index 000000000..b241ed817 --- /dev/null +++ b/spine-godot/spine_godot/SpineTransformConstraint.cpp @@ -0,0 +1,170 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineTransformConstraint.h" +#include "SpineCommon.h" +#include "SpineSprite.h" + +void SpineTransformConstraint::_bind_methods() { + ClassDB::bind_method(D_METHOD("update"), &SpineTransformConstraint::update); + ClassDB::bind_method(D_METHOD("get_data"), &SpineTransformConstraint::get_data); + ClassDB::bind_method(D_METHOD("get_bones"), &SpineTransformConstraint::get_bones); + ClassDB::bind_method(D_METHOD("get_target"), &SpineTransformConstraint::get_target); + ClassDB::bind_method(D_METHOD("set_target", "v"), &SpineTransformConstraint::set_target); + ClassDB::bind_method(D_METHOD("get_mix_rotate"), &SpineTransformConstraint::get_mix_rotate); + ClassDB::bind_method(D_METHOD("set_mix_rotate", "v"), &SpineTransformConstraint::set_mix_rotate); + ClassDB::bind_method(D_METHOD("get_mix_x"), &SpineTransformConstraint::get_mix_x); + ClassDB::bind_method(D_METHOD("set_mix_x", "v"), &SpineTransformConstraint::set_mix_x); + ClassDB::bind_method(D_METHOD("get_mix_y"), &SpineTransformConstraint::get_mix_y); + ClassDB::bind_method(D_METHOD("set_mix_y", "v"), &SpineTransformConstraint::set_mix_y); + ClassDB::bind_method(D_METHOD("get_mix_scale_x"), &SpineTransformConstraint::get_mix_scale_x); + ClassDB::bind_method(D_METHOD("set_mix_scale_x", "v"), &SpineTransformConstraint::set_mix_scale_x); + ClassDB::bind_method(D_METHOD("get_mix_scale_y"), &SpineTransformConstraint::get_mix_scale_y); + ClassDB::bind_method(D_METHOD("set_mix_scale_y", "v"), &SpineTransformConstraint::set_mix_scale_y); + ClassDB::bind_method(D_METHOD("get_mix_shear_y"), &SpineTransformConstraint::get_mix_shear_y); + ClassDB::bind_method(D_METHOD("set_mix_shear_y", "v"), &SpineTransformConstraint::set_mix_shear_y); + ClassDB::bind_method(D_METHOD("is_active"), &SpineTransformConstraint::is_active); + ClassDB::bind_method(D_METHOD("set_active", "v"), &SpineTransformConstraint::set_active); +} + +void SpineTransformConstraint::update() { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->update(); +} + +int SpineTransformConstraint::get_order() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getOrder(); +} + +Ref SpineTransformConstraint::get_data() { + SPINE_CHECK(get_spine_object(), nullptr) + auto &data = get_spine_object()->getData(); + Ref data_ref(memnew(SpineTransformConstraintData)); + data_ref->set_spine_object(*get_spine_owner()->get_skeleton_data_res(), &data); + return data_ref; +} + +Array SpineTransformConstraint::get_bones() { + Array result; + SPINE_CHECK(get_spine_object(), result) + auto &bones = get_spine_object()->getBones(); + result.resize((int) bones.size()); + for (int i = 0; i < bones.size(); ++i) { + auto bone = bones[i]; + Ref bone_ref(memnew(SpineBone)); + bone_ref->set_spine_object(get_spine_owner(), bone); + result[i] = bone_ref; + } + return result; +} + +Ref SpineTransformConstraint::get_target() { + SPINE_CHECK(get_spine_object(), nullptr) + auto target = get_spine_object()->getTarget(); + if (!target) return nullptr; + Ref target_ref(memnew(SpineBone)); + target_ref->set_spine_object(get_spine_owner(), target); + return target_ref; +} + +void SpineTransformConstraint::set_target(Ref v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setTarget(v.is_valid() && v->get_spine_object() ? v->get_spine_object() : nullptr); +} + +float SpineTransformConstraint::get_mix_rotate() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getMixRotate(); +} + +void SpineTransformConstraint::set_mix_rotate(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setMixRotate(v); +} + +float SpineTransformConstraint::get_mix_x() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getMixX(); +} + +void SpineTransformConstraint::set_mix_x(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setMixX(v); +} + +float SpineTransformConstraint::get_mix_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getMixY(); +} + +void SpineTransformConstraint::set_mix_y(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setMixY(v); +} + +float SpineTransformConstraint::get_mix_scale_x() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getMixScaleX(); +} + +void SpineTransformConstraint::set_mix_scale_x(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setMixScaleX(v); +} + +float SpineTransformConstraint::get_mix_scale_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getMixScaleY(); +} + +void SpineTransformConstraint::set_mix_scale_y(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setMixScaleY(v); +} + +float SpineTransformConstraint::get_mix_shear_y() { + SPINE_CHECK(get_spine_object(), 0) + return get_spine_object()->getMixShearY(); +} + +void SpineTransformConstraint::set_mix_shear_y(float v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setMixShearY(v); +} + +bool SpineTransformConstraint::is_active() { + SPINE_CHECK(get_spine_object(), false) + return get_spine_object()->isActive(); +} + +void SpineTransformConstraint::set_active(bool v) { + SPINE_CHECK(get_spine_object(), ) + get_spine_object()->setActive(v); +} diff --git a/spine-godot/spine_godot/SpineTransformConstraint.h b/spine-godot/spine_godot/SpineTransformConstraint.h new file mode 100644 index 000000000..95f7cdcc4 --- /dev/null +++ b/spine-godot/spine_godot/SpineTransformConstraint.h @@ -0,0 +1,83 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" +#include "SpineTransformConstraintData.h" +#include "SpineBone.h" +#include + +class SpineTransformConstraint : public SpineSpriteOwnedObject { + GDCLASS(SpineTransformConstraint, SpineObjectWrapper) + +protected: + static void _bind_methods(); + +public: + void update(); + + int get_order(); + + Ref get_data(); + + Array get_bones(); + + Ref get_target(); + + void set_target(Ref v); + + float get_mix_rotate(); + + void set_mix_rotate(float v); + + float get_mix_x(); + + void set_mix_x(float v); + + float get_mix_y(); + + void set_mix_y(float v); + + float get_mix_scale_x(); + + void set_mix_scale_x(float v); + + float get_mix_scale_y(); + + void set_mix_scale_y(float v); + + float get_mix_shear_y(); + + void set_mix_shear_y(float v); + + bool is_active(); + + void set_active(bool v); +}; diff --git a/spine-godot/spine_godot/SpineTransformConstraintData.cpp b/spine-godot/spine_godot/SpineTransformConstraintData.cpp new file mode 100644 index 000000000..b4804ce77 --- /dev/null +++ b/spine-godot/spine_godot/SpineTransformConstraintData.cpp @@ -0,0 +1,142 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineTransformConstraintData.h" +#include "SpineCommon.h" + +void SpineTransformConstraintData::_bind_methods() { + ClassDB::bind_method(D_METHOD("get_bones"), &SpineTransformConstraintData::get_bones); + ClassDB::bind_method(D_METHOD("get_target"), &SpineTransformConstraintData::get_target); + ClassDB::bind_method(D_METHOD("get_mix_rotate"), &SpineTransformConstraintData::get_mix_rotate); + ClassDB::bind_method(D_METHOD("get_mix_x"), &SpineTransformConstraintData::get_mix_x); + ClassDB::bind_method(D_METHOD("get_mix_y"), &SpineTransformConstraintData::get_mix_y); + ClassDB::bind_method(D_METHOD("get_mix_scale_x"), &SpineTransformConstraintData::get_mix_scale_x); + ClassDB::bind_method(D_METHOD("get_mix_scale_y"), &SpineTransformConstraintData::get_mix_scale_y); + ClassDB::bind_method(D_METHOD("get_mix_shear_y"), &SpineTransformConstraintData::get_mix_shear_y); + ClassDB::bind_method(D_METHOD("get_offset_rotation"), &SpineTransformConstraintData::get_offset_rotation); + ClassDB::bind_method(D_METHOD("get_offset_x"), &SpineTransformConstraintData::get_offset_x); + ClassDB::bind_method(D_METHOD("get_offset_y"), &SpineTransformConstraintData::get_offset_y); + ClassDB::bind_method(D_METHOD("get_offset_scale_x"), &SpineTransformConstraintData::get_offset_scale_x); + ClassDB::bind_method(D_METHOD("get_offset_scale_y"), &SpineTransformConstraintData::get_offset_scale_y); + ClassDB::bind_method(D_METHOD("get_offset_shear_y"), &SpineTransformConstraintData::get_offset_shear_y); + ClassDB::bind_method(D_METHOD("is_relative"), &SpineTransformConstraintData::is_relative); + ClassDB::bind_method(D_METHOD("is_local"), &SpineTransformConstraintData::is_local); +} + +Array SpineTransformConstraintData::get_bones() { + Array result; + SPINE_CHECK(get_spine_constraint_data(), result) + auto bones = get_spine_constraint_data()->getBones(); + result.resize((int) bones.size()); + for (int i = 0; i < (int) bones.size(); ++i) { + Ref bone_ref(memnew(SpineBoneData)); + bone_ref->set_spine_object(get_spine_owner(), bones[i]); + result[i] = bone_ref; + } + return result; +} + +Ref SpineTransformConstraintData::get_target() { + SPINE_CHECK(get_spine_constraint_data(), nullptr) + auto bone = get_spine_constraint_data()->getTarget(); + if (!bone) return nullptr; + Ref slot_ref(memnew(SpineBoneData)); + slot_ref->set_spine_object(get_spine_owner(), bone); + return slot_ref; +} + +float SpineTransformConstraintData::get_mix_rotate() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getMixRotate(); +} + +float SpineTransformConstraintData::get_mix_x() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getMixX(); +} + +float SpineTransformConstraintData::get_mix_y() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getMixY(); +} + +float SpineTransformConstraintData::get_mix_scale_x() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getMixScaleX(); +} + +float SpineTransformConstraintData::get_mix_scale_y() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getMixScaleY(); +} + +float SpineTransformConstraintData::get_mix_shear_y() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getMixShearY(); +} + +float SpineTransformConstraintData::get_offset_rotation() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getOffsetRotation(); +} + +float SpineTransformConstraintData::get_offset_x() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getOffsetX(); +} + +float SpineTransformConstraintData::get_offset_y() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getOffsetY(); +} + +float SpineTransformConstraintData::get_offset_scale_x() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getOffsetScaleX(); +} + +float SpineTransformConstraintData::get_offset_scale_y() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getOffsetScaleY(); +} + +float SpineTransformConstraintData::get_offset_shear_y() { + SPINE_CHECK(get_spine_constraint_data(), 0) + return get_spine_constraint_data()->getOffsetShearY(); +} + +bool SpineTransformConstraintData::is_relative() { + SPINE_CHECK(get_spine_constraint_data(), false) + return get_spine_constraint_data()->isRelative(); +} + +bool SpineTransformConstraintData::is_local() { + SPINE_CHECK(get_spine_constraint_data(), false) + return get_spine_constraint_data()->isLocal(); +} diff --git a/spine-godot/spine_godot/SpineTransformConstraintData.h b/spine-godot/spine_godot/SpineTransformConstraintData.h new file mode 100644 index 000000000..3d0b899c3 --- /dev/null +++ b/spine-godot/spine_godot/SpineTransformConstraintData.h @@ -0,0 +1,76 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineConstraintData.h" +#include "SpineBoneData.h" +#include + +class SpineTransformConstraintData : public SpineConstraintData { + GDCLASS(SpineTransformConstraintData, SpineConstraintData) + + spine::TransformConstraintData *get_spine_constraint_data() { return (spine::TransformConstraintData *) SpineConstraintData::get_spine_object(); } + +protected: + static void _bind_methods(); + +public: + Array get_bones(); + + Ref get_target(); + + float get_mix_rotate(); + + float get_mix_x(); + + float get_mix_y(); + + float get_mix_scale_x(); + + float get_mix_scale_y(); + + float get_mix_shear_y(); + + float get_offset_rotation(); + + float get_offset_x(); + + float get_offset_y(); + + float get_offset_scale_x(); + + float get_offset_scale_y(); + + float get_offset_shear_y(); + + bool is_relative(); + + bool is_local(); +}; diff --git a/spine-godot/spine_godot/config.py b/spine-godot/spine_godot/config.py new file mode 100644 index 000000000..689c91499 --- /dev/null +++ b/spine-godot/spine_godot/config.py @@ -0,0 +1,38 @@ +def can_build(env, platform): + return True + +def configure(env): + pass + +def get_doc_path(): + return "docs" + +def get_doc_classes(): + return [ + "SpineAnimation", + "SpineAnimationState", + "SpineAnimationTrack", + "SpineAtlasResource", + "SpineAttachment", + "SpineBone", + "SpineBoneData", + "SpineBoneNode", + "SpineConstraintData", + "SpineEvent", + "SpineIkConstraint", + "SpineIkConstraintData", + "SpinePathConstraint", + "SpinePathConstraintData", + "SpineSkeleton", + "SpineSkeletonDataResource", + "SpineSkeletonFileResource", + "SpineSkin", + "SpineSlot", + "SpineSlotData", + "SpineSlotNode", + "SpineSprite", + "SpineTimeline", + "SpineTrackEntry", + "SpineTransformConstraint", + "SpineTransformConstraintData" + ] diff --git a/spine-godot/spine_godot/docs/SpineAnimation.xml b/spine-godot/spine_godot/docs/SpineAnimation.xml new file mode 100644 index 000000000..656442062 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineAnimation.xml @@ -0,0 +1,61 @@ + + + + Stores a list of timelines to animate a skeleton's pose over time. The timelines can not be modified through GDScript. + + + Stores a list of timelines to animate a skeleton's pose over time. The timelines can not be modified through GDScript. + + + + + + + + + + + + + + + + Applies the animation's timelines to the specified skeleton. + + + + + + The duration of the animation in seconds, which is usually the highest time of all frames in the timeline. The duration is used to know when it has completed and when it should loop back to the start. + + + + + + The animation's name, which is unique across all animations in the skeleton. + + + + + + Returns the timlines making up this animation. Modifying the returned array has no effect on the animation. + + + + + + + Returns whether the animation has the timeline with the given [code]ids[/code]. + + + + + + + Sets the [code]duration[/code] of the timeline in seconds. + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineAnimationState.xml b/spine-godot/spine_godot/docs/SpineAnimationState.xml new file mode 100644 index 000000000..e7af0fccb --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineAnimationState.xml @@ -0,0 +1,134 @@ + + + + Applies animations over time, queues animations for later playback, mixes (crossfading) between animations, and applies multiple animations on top of each other (layering). + + + Applies animations over time, queues animations for later playback, mixes (crossfading) between animations, and applies multiple animations on top of each other (layering). See [url]http://esotericsoftware.com/spine-applying-animations[/url] in the Spine Runtimes Guide. + + + + + + + + + + + + Adds an animation to be played after the current or last queued animation for a track. If the track is empty, it is equivalent to calling [code]set_animation[/code]. + If [code]delay[/code] > 0, sets [code]TrackEntry.delay[/code]. If [code]delay[/code] <= 0, the delay set is the duration of the previous track entry minus any mix duration (from the [code]AnimationStateData[/code]) plus the specified [code]delay[/code] (ie the mix ends at ([code]delay[/code] >= 0) or before ([code]delay[/code] < 0) the previous track entry duration). If the previous entry is looping, its next loop completion is used instead of its duration. + + + + + + + + + Adds an empty animation to be played after the current or last queued animation for a track, and sets the track entry's mix duration. If the track is empty, it is equivalent to calling [code]set_empty_animation()[/code]. See [code]set_empty_animation()[/code]. + If [code]delay[/code]> 0, sets the track entry's delay. If <= 0, the delay set is the duration of the previous track entry minus any mix duration plus the specified [code]delay[/code] (ie the mix ends at ([code]delay[/code] = 0) or before ([code]delay[/code] < 0) the previous track entry duration). If the previous entry is looping, its next loop completion is used instead of its duration. + Returns a track entry to allow further customization of animation playback. References to the track entry must not be kept + after the dispose event occurs. + + + + + + + Poses the skeleton using the track entry animations. The animation state is not changed, so can be applied to multiple skeletons to pose them identically. + Returns true if any animations were applied. + + + + + + + Removes all animations from the track, leaving skeletons in their current pose. + It may be desired to use [code]set_empty_animation()[/code] to mix the skeletons back to the setup pose, rather than leaving them in their current pose. + + + + + + Removes all animations from all tracks, leaving skeletons in their current pose. + It may be desired to use [code]set_empty_animations()[/code] to mix the skeletons back to the setup pose, rather than leaving them in their current pose. + + + + + + Halts the emission of any animation state events. + + + + + + Resumes the emission of any animation state events. + + + + + + + Returns the track entry for the animation currently playing on the track, or null if no animation is currently playing. + + + + + + Returns the number of tracks (or the highest track index) on which an animation has been set previously. + + + + + + Multiplier for the delta time when the animation state is updated, causing time for all animations and mixes to play slower or faster. Defaults to 1. + + + + + + + + + Sets the current animation for a track, discarding any queued animations. If the formerly current track entry was never applied to a skeleton, it is replaced (not mixed from). + If [loop] is true, the animation will repeat. If false it will not, instead its last frame is applied if played beyond its duration. In either case [code]TrackEntry.trackEnd[/code] determines when the track is cleared. + Returns track entry to allow further customization of animation playback. References to the track entry must not be kept after the dispose event occurs. + + + + + + + + Sets an empty animation for a track, discarding any queued animations, and sets the track entry's mix duration. An empty animation has no timelines and serves as a placeholder for mixing in or out. + Mixing out is done by setting an empty animation with a mix duration using either [code]set_empty_animation()[/code], [code]set_empty_animations()[/code], or [code]add_empty_animation()[/code]. Mixing to an empty animation causes the previous animation to be applied less and less over the mix duration. Properties keyed in the previous animation transition to the value from lower tracks or to the setup pose value if no lower tracks key the property. A mix duration of 0 still mixes out over one frame. + Mixing in is done by first setting an empty animation, then adding an animation using [code]add_animation()[/code]with the desired delay (an empty animation has a duration of 0) and on the returned track entry, set the mix duration. Mixing from an empty animation causes the new animation to be applied more and more over the mix duration. Properties keyed in the new animation transition from the value from lower tracks or from the setup pose value if no lower tracks key the property to the value keyed in the new animation. + + + + + + + Sets an empty animation for every track, discarding any queued animations, and mixes to it over the specified mix duration. + + + + + + + Sets the multiplier for the delta time when the animation state is updated, causing time for all animations and mixes to play slower or faster. Defaults to 1. + + + + + + + Increments each track entry track time, setting queued animations as current if needed. + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineAnimationTrack.xml b/spine-godot/spine_godot/docs/SpineAnimationTrack.xml new file mode 100644 index 000000000..bfc606f75 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineAnimationTrack.xml @@ -0,0 +1,67 @@ + + + + Internal class to allow composing animations on [code]SpineSprite[/code] instances via Godot's animation player and animation editor. + + + Internal class to allow composing animations on [code]SpineSprite[/code] instances via Godot's animation player and animation editor. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineAtlasResource.xml b/spine-godot/spine_godot/docs/SpineAtlasResource.xml new file mode 100644 index 000000000..6cbdc689e --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineAtlasResource.xml @@ -0,0 +1,29 @@ + + + + A Godot resource encapsulating a Spine atlas and its atlas page images. + + + A Godot resource encapsulating a Spine atlas and its atlas page images. + + + + + + + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineAttachment.xml b/spine-godot/spine_godot/docs/SpineAttachment.xml new file mode 100644 index 000000000..60c46eecb --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineAttachment.xml @@ -0,0 +1,26 @@ + + + + Represents an attachment in a Spine skeleton's skin. + + + Represents an attachment in a Spine skeleton's skin. See [url]http://en.esotericsoftware.com/spine-runtime-skins[/url]. + Attachments can only be queried for their name and can not be manipulated. + + + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineBone.xml b/spine-godot/spine_godot/docs/SpineBone.xml new file mode 100644 index 000000000..c9230a6c1 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineBone.xml @@ -0,0 +1,397 @@ + + + + A bone of a Spine skeleton, storing its current pose. + + + A bone of a Spine skeleton, storing its current pose. + A bone has a local transform which is used to compute its world transform. A bone also has an applied transform, which is a local transform that can be applied to compute the world transform. The local transform and applied transform may differ if a constraint or application code modifies the world transform after it was computed from the local transform. + The bone's world transform is relative to the skeleton's coordinate system origin. Use [code]set_global_transform()[/code] and [code]get_global_transform()[/code] to convert from and to Godot's Canvas coordinate system. + + + + + + + + Part of the world transform matrix for the X axis. If changed, [code]update_applied_transform[/code] should be called. + + + + + + The local scaleX. + + + + + + The local scaleY. + + + + + + The local shearX. + + + + + + The local shearY. + + + + + + The applied local x translation. + + + + + + The applied local y translation. + + + + + + The applied local rotation in degrees, counter clockwise. + + + + + + Part of the world transform matrix for the Y axis. If changed, [code]update_applied_transform()[/code] should be called. + + + + + + Part of the world transform matrix for the X axis. If changed, [code]update_applied_transform()[/code] should be called. + + + + + + The immediate children of this bone. Modifications of the array have no effect. + + + + + + Part of the world transform matrix for the Y axis. If changed, [code]update_applied_transform()[/code] should be called. + + + + + + The bone's setup pose data. + + + + + + Returns the bone transform as a [code]Transform2D[/code] relative to Godot's global canvas coordinate space. Shear is not encoded in the transform. + + + + + + The parent bone, or null if this is the root bone. + + + + + + The local rotation in degrees, counter clockwise. + + + + + + The local scaleX. + + + + + + The local scaleY. + + + + + + The local shearX. + + + + + + The local shearY. + + + + + + Returns the bone transform as a [code]Transform2D[/code] relative to the [code]SpineSprite[/code] node representing the skeleton. Shear is not encoded in the transform. + + + + + + The world rotation for the X axis in degrees, calculated using a and c of the transform. The rotation is relative to the [code]SpineSprite[/code]. + + + + + + The world rotation for the X axis in degrees, calculated using b and d of the transform. The rotation is relative to the [code]SpineSprite[/code]. + + + + + + The magnitude (always positive) of the world scale X, calculated using a and c. The scale is relative to the [code]SpineSprite[/code]. + + + + + + The magnitude (always positive) of the world scale X, calculated using b and d. The scale is relative to the [code]SpineSprite[/code]. + + + + + + Transforms a world rotation to a local rotation. The world coordinate system is equal to the [code]SpineSprite[/code] coordinate space. + + + + + + Transforms a world rotation to a local rotation. The world coordinate system is equal to the [code]SpineSprite[/code] coordinate space. + + + + + + The world X position. If changed, [code]update_applied_transform()[/code] should be called. The world coordinate system is equal to the [code]SpineSprite[/code] coordinate space. + + + + + + The world Y position. If changed, [code]update_applied_transform()[/code] should be called. The world coordinate system is equal to the [code]SpineSprite[/code] coordinate space. + + + + + + The local x translation. + + + + + + The local y translation. + + + + + + Returns false when the bone has not been computed because [code]BoneData.get_skin_required()[/code] is true and the active skin does not contain this bone. + + + + + + + Transforms a point from the bone's local coordinates to world coordinates. The world coordinate space equals the coordinate space of the [code]SpineSprite[/code]. + + + + + + + Transforms a local rotation to a world rotation. The world coordinate space equals the coordinate space of the [code]SpineSprite[/code]. + + + + + + + Rotates the world transform the specified amount. + After changes are made to the world transform, [code]update_applied_transform[/code] should be called and [code]update()[/code] will need to be called on any child bones, recursively. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets the bone's transform to the global Godot [code]Transform2D[/code]. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets this bone's local transform to the setup pose. + + + + + + + Sets the bone transform to the Godot [code]Transform2D[/code]. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Computes the world transform using the parent bone and this bone's local transform. + + + + + + + Transforms a point from world coordinates to the bone's local coordinates. The world coordinate space is equal to the [code]SpineSprite[/code] coordinate space. + + + + + + + Transforms a world rotation to a local rotation. The world coordinate space is equal to the [code]SpineSprite[/code] coordinate space. + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineBoneData.xml b/spine-godot/spine_godot/docs/SpineBoneData.xml new file mode 100644 index 000000000..729200d1d --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineBoneData.xml @@ -0,0 +1,163 @@ + + + + Stores the setup pose for a bone. + + + Stores the setup pose for a bone. + + + + + + + + The name of the bone, which is unique across all bones in the skeleton. + + + + + + The color of the bone as it was in Spine, or a default color if nonessential data was not exported. Bones are not usually rendered at runtime. + + + + + + The index of the bone in [code]Skeleton.get_bones()[/code]. + + + + + + The bone's length. + + + + + + + + + + + The local rotation in degrees. + + + + + + The local scaleX. + + + + + + The local scaleY. + + + + + + The local shearX. + + + + + + The local shearY. + + + + + + The transform mode for how parent world transforms affect this bone. + + + + + + The local x translation. + + + + + + The local y translation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineBoneNode.xml b/spine-godot/spine_godot/docs/SpineBoneNode.xml new file mode 100644 index 000000000..690c81c96 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineBoneNode.xml @@ -0,0 +1,25 @@ + + + + Node2D that either follows or drives a bone in a [code]SpineSprite[/code]. + + + Node2D that either follows or drives a bone in a [code]SpineSprite[/code]. If set to follow a bone, the bone's shear will be ignored. + + + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineConstraintData.xml b/spine-godot/spine_godot/docs/SpineConstraintData.xml new file mode 100644 index 000000000..900bd8911 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineConstraintData.xml @@ -0,0 +1,45 @@ + + + + The base class for all constraint datas. + + + The base class for all constraint datas. + + + + + + + + The constraint's name, which is unique across all constraints in the skeleton of the same type. + + + + + + The ordinal of this constraint for the order a skeleton's constraints will be applied by [code]Skeleton.update_world_transform[/code]. + + + + + + When true, [code]Skeleton.update_world_transform[/code] only updates this constraint if the active skin contains this constraint. + + + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineEvent.xml b/spine-godot/spine_godot/docs/SpineEvent.xml new file mode 100644 index 000000000..b1f0567b1 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineEvent.xml @@ -0,0 +1,80 @@ + + + + Stores the current pose values for an event. See [url]http://esotericsoftware.com/spine-events[/url] in the Spine User Guide. + + + Stores the current pose values for an event. See [url]http://esotericsoftware.com/spine-events[/url] in the Spine User Guide. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineIkConstraint.xml b/spine-godot/spine_godot/docs/SpineIkConstraint.xml new file mode 100644 index 000000000..d64bb209b --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineIkConstraint.xml @@ -0,0 +1,122 @@ + + + + Stores the current pose for an IK constraint. + + + Stores the current pose for an IK constraint. An IK constraint adjusts the rotation of 1 or 2 constrained bones so the tip of the last bone is as close to the target bone as possible. + See [url]http://esotericsoftware.com/spine-ik-constraints[/url] in the Spine User Guide. + + + + + + + + For two bone IK, controls the bend direction of the IK bones, either 1 or -1. + + + + + + The bones that will be modified by this IK constraint. Modifying the array has no effect. + + + + + + For one bone IK, when true and the target is too close, the bone is scaled to reach it. + + + + + + The IK constraint's setup pose data. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained rotation. + For two bone IK: if the parent bone has local nonuniform scale, the child bone's local Y translation is set to 0. + + + + + + + + + + + For two bone IK, the target bone's distance from the maximum reach of the bones where rotation begins to slow. The bones will not straighten completely until the target is this far out of range. + + + + + + When true and the target is out of range, the parent bone is scaled to reach it. For two bone IK: 1) the child bone's local Y translation is set to 0, 2) stretch is not applied if softness is > 0, and 3) if the parent bone has local nonuniform scale, stretch is not applied. + + + + + + The bone that is the IK target. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineIkConstraintData.xml b/spine-godot/spine_godot/docs/SpineIkConstraintData.xml new file mode 100644 index 000000000..62ce586f1 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineIkConstraintData.xml @@ -0,0 +1,108 @@ + + + + Stores the setup pose for an [code]SpineIkConstraint[/code]. + + + Stores the setup pose for an [code]SpineIkConstraint[/code]. + See [url]http://esotericsoftware.com/spine-ik-constraints[/url] in the Spine User Guide. + + + + + + + + For two bone IK, controls the bend direction of the IK bones, either 1 or -1. + + + + + + The bones that are constrained by this IK constraint. + + + + + + For one bone IK, when true and the target is too close, the bone is scaled to reach it. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained rotation. + For two bone IK: if the parent bone has local nonuniform scale, the child bone's local Y translation is set to 0. + + + + + + For two bone IK, the target bone's distance from the maximum reach of the bones where rotation begins to slow. The bones will not straighten completely until the target is this far out of range. + + + + + + When true and the target is out of range, the parent bone is scaled to reach it. + For two bone IK: 1) the child bone's local Y translation is set to 0, 2) stretch is not applied if softness is > 0, and 3) if the parent bone has local nonuniform scale, stretch is not applied. + + + + + + The bone that is the IK target. + + + + + + When true and compress or stretch is used, the bone is scaled on both the X and Y axes. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpinePathConstraint.xml b/spine-godot/spine_godot/docs/SpinePathConstraint.xml new file mode 100644 index 000000000..0b0cf9008 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpinePathConstraint.xml @@ -0,0 +1,121 @@ + + + + Stores the current pose for a path constraint. + + + Stores the current pose for a path constraint. A path constraint adjusts the rotation, translation, and scale of the constrained bones so they follow a {@link PathAttachment}. + See [url]http://esotericsoftware.com/spine-path-constraints[/url] in the Spine User Guide. + + + + + + + + The bones that will be modified by this path constraint. Modifying the array has no effect. + + + + + + The path constraint's setup pose data. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained rotation. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained translation X. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained translation Y. + + + + + + + + + + + The position along the path. + + + + + + The spacing between bones. + + + + + + The slot whose path attachment will be used to constrained the bones. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpinePathConstraintData.xml b/spine-godot/spine_godot/docs/SpinePathConstraintData.xml new file mode 100644 index 000000000..227b797c6 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpinePathConstraintData.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + The bones that will be modified by this path constraint. Modifying the array has no effect. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained rotation. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained translation X. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained translation Y. + + + + + + An offset added to the constrained bone rotation. + + + + + + The position along the path. + + + + + + The mode for positioning the first bone on the path. + + + + + + The mode for adjusting the rotation of the bones. + + + + + + The spacing between bones. + + + + + + The mode for positioning the bones after the first bone on the path. + + + + + + The slot whose path attachment will be used to constrained the bones. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineSkeleton.xml b/spine-godot/spine_godot/docs/SpineSkeleton.xml new file mode 100644 index 000000000..d44bae661 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineSkeleton.xml @@ -0,0 +1,259 @@ + + + + Stores the current pose for a skeleton. + + + Stores the current pose for a skeleton. + See [url]http://esotericsoftware.com/spine-runtime-architecture#Instance-objects[/url] in the Spine Runtimes Guide. + + + + + + + + + Finds a bone by comparing each bone's name. It is more efficient to cache the results of this method than to call it repeatedly. + + + + + + + Finds an IK constraint by comparing each IK constraint's name. It is more efficient to cache the results of this method than to call it repeatedly. + + + + + + + Finds a path constraint by comparing each path constraint's name. It is more efficient to cache the results of this method than to call it repeatedly. + + + + + + + Finds a slot by comparing each slot's name. It is more efficient to cache the results of this method than to call it repeatedly. + + + + + + + Finds a transform constraint by comparing each transform constraint's name. It is more efficient to cache the results of this method than to call it repeatedly. + + + + + + + + Finds an attachment by looking in the active skin and default skin using the slot index and attachment name. First the skin is checked and if the attachment was not found, the default skin is checked. + See [url]http://esotericsoftware.com/spine-runtime-skins">Runtime skins[/url] in the Spine Runtimes Guide. + + + + + + + + Finds an attachment by looking in the active skin and default skin using the slot index and attachment name. First the skin is checked and if the attachment was not found, the default skin is checked. + See [url]http://esotericsoftware.com/spine-runtime-skins">Runtime skins[/url] in the Spine Runtimes Guide. + + + + + + The skeleton's bones, sorted parent first. The root bone is always the first bone. Modifying the array has no effect. + + + + + + Returns the axis aligned bounding box (AABB) of the region and mesh attachments for the current pose. The bounds are relative to the [code]SpineSprite[/code] that stores the skeleton. + + + + + + The color to tint all the skeleton's attachments. + + + + + + The skeleton's setup pose data. + + + + + + The skeleton's slots in the order they should be drawn. The returned array may be modified to change the draw order. Modifying the array has no effect. + + + + + + The skeleton's IK constraints. Modifying the array has no effect. + + + + + + The skeleton's path constraints. Modifying the array has no effect. + + + + + + Returns the root bone, or null if the skeleton has no bones. + + + + + + Scales the entire skeleton on the X axis. + Bones that do not inherit scale are still affected by this property. + + + + + + Scales the entire skeleton on the Y axis. + Bones that do not inherit scale are still affected by this property. + + + + + + The skeleton's current skin. + + + + + + The skeleton's slots. Modifying the array has no effect. + + + + + + The skeleton's transform constraints. Modifying the array has no effect. + + + + + + Sets the skeleton X position, which is added to the root bone worldX position. Relative to the [code]SpineSprite[/code]. + Bones that do not inherit translation are still affected by this property. + + + + + + Sets the skeleton Y position, which is added to the root bone worldX position. Relative to the [code]SpineSprite[/code]. + Bones that do not inherit translation are still affected by this property. + + + + + + + + A convenience method to set an attachment by finding the slot with [code]find_slot()[/code], finding the attachment with [code]get_attachment()[/code], then setting the slot's attachment. + [code]attachmentName[/code] may be null to clear the slot's attachment. + + + + + + Sets the bones and constraints to their setup pose values. + + + + + + + Sets the skeleton color. + + + + + + + Sets the skeleton position relative to the [code]SpineSprite[/code]. + + + + + + + Scales the skeleton on the X axis. + + + + + + + Scales the skeleton on the Y axis. + + + + + + + Sets the skin used to look up attachments before looking in the default skin. If the skin is changed, [code]update_cache()[/code] is called. + 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. + After changing the skin, the visible attachments can be reset to those attached in the setup pose by calling [code]set_slots_to_setup_pose()[/code]. Also, often [code]AnimationState.apply()[/code] is called before the next time the skeleton is rendered to allow any attachment keys in the current animation(s) to hide or show attachments from the new skin. + + + + + + + Sets the skin by name used to look up attachments before looking in the default skin. If the skin is changed, [code]update_cache()[/code] is called. + 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. + After changing the skin, the visible attachments can be reset to those attached in the setup pose by calling [code]set_slots_to_setup_pose()[/code]. Also, often [code]AnimationState.apply()[/code] is called before the next time the skeleton is rendered to allow any attachment keys in the current animation(s) to hide or show attachments from the new skin. + + + + + + Sets the slots and draw order to their setup pose values. + + + + + + Sets the bones, constraints, slots, and draw order to their setup pose values. + + + + + + + Sets the skeleton X position, which is added to the root bone worldX position. + Bones that do not inherit translation are still affected by this property. + + + + + + + Sets the skeleton Y position, which is added to the root bone worldX position. + Bones that do not inherit translation are still affected by this property. + + + + + + Updates the world transform for each bone and applies all constraints. + See [url]http://esotericsoftware.com/spine-runtime-skeletons#World-transforms[/url] in the Spine Runtimes Guide. + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineSkeletonDataResource.xml b/spine-godot/spine_godot/docs/SpineSkeletonDataResource.xml new file mode 100644 index 000000000..c069e1d6a --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineSkeletonDataResource.xml @@ -0,0 +1,220 @@ + + + + Resource used to spawn new [code]SpineSkeleton[/code] instances. + + + Resource used to spawn new [code]SpineSkeleton[/code] instances. The skeleton data resource consists of the skeleton data loaded from a .json or .skel [code]SpineSkeletonFileResource[/code], the texture atlas loaded from a .atlas and .png files making up a [code]SpineAtlasResource[/code], as well as animation mixes, governing for how long two specific animations should be cross faded via [code]SpineAnimationState[/code]. + A single skeleton data resource can be shared among multiple [code]SpineSprite[/code] instances to avoid duplication of resources. + + + + + + + + + Finds an animation by comparing each animation's name. It is more efficient to cache the results of this method than to call it multiple times. + + + + + + + Finds a bone by comparing each bone's name. It is more efficient to cache the results of this method than to call it multiple times. + + + + + + + Finds an event by comparing each events's name. It is more efficient to cache the results of this method than to call it multiple times. + + + + + + + Finds an IK constraint by comparing each IK constraint's name. It is more efficient to cache the results of this method than to call it multiple times. + + + + + + + Finds a path constraint by comparing each path constraint's name. It is more efficient to cache the results of this method than to call it multiple times. + + + + + + + Finds a skin by comparing each skin's name. It is more efficient to cache the results of this method than to call it multiple times. + + + + + + + Finds a slot by comparing each slot's name. It is more efficient to cache the results of this method than to call it multiple times. + + + + + + + Finds a transform constraint by comparing each transform constraint's name. It is more efficient to cache the results of this method than to call it multiple times. + + + + + + The skeleton's animations. Modifying the array has no effect. + + + + + + The path to the audio directory as defined in Spine, or null if nonessential data was not exported. + + + + + + The skeleton's bones, sorted parent first. The root bone is always the first bone. Modifying the array has no effect. + + + + + + The skeleton's default skin. By default this skin contains all attachments that were not in a skin in Spine. + See [code]Skeleton.get_attachment()[/code]. + + + + + + The skeleton's events. Modifying the array has no effect. + + + + + + The dopesheet FPS in Spine, or zero if nonessential data was not exported. + + + + + + The skeleton data hash. This value will change if any of the skeleton data has changed. + + + + + + The height of the skeleton's axis aligned bounding box in the setup pose. + + + + + + The skeleton's IK constraints. Modifying the array has no effect. + + + + + + The path to the images directory as defined in Spine, or null if nonessential data was not exported. + + + + + + The skeleton's path constraints. Modifying the array has no effect. + + + + + + The skeleton's name, which by default is the name of the skeleton data file when possible, or null when a name hasn't been set. + + + + + + All skins, including the default skin. Modifying the array has no effect. + + + + + + The skeleton's slots. Modifying the array has no effect. + + + + + + The skeleton's transform constraints. Modifying the array has no effect. + + + + + + The Spine version used to export the skeleton data, or null. + + + + + + The width of the skeleton's axis aligned bounding box in the setup pose. + + + + + + The X coordinate of the skeleton's axis aligned bounding box in the setup pose. + + + + + + The Y coordinate of the skeleton's axis aligned bounding box in the setup pose. + + + + + + Whether the skeleton data file and atlas have been successfully loaded. + + + + + + + Sets the skeleton's default skin. + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineSkeletonFileResource.xml b/spine-godot/spine_godot/docs/SpineSkeletonFileResource.xml new file mode 100644 index 000000000..16d502191 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineSkeletonFileResource.xml @@ -0,0 +1,15 @@ + + + + Resource wrapping a Spine skeleton .json or .skel file. Used by [code]SpineSkeletonDataResource[/code]. + + + Resource wrapping a Spine skeleton .json or .skel file. Used by [code]SpineSkeletonDataResource[/code]. + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineSkin.xml b/spine-godot/spine_godot/docs/SpineSkin.xml new file mode 100644 index 000000000..a50c52fd3 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineSkin.xml @@ -0,0 +1,93 @@ + + + + Stores attachments by slot index and attachment name. + + + Stores attachments by slot index and attachment name. + See [url]http://esotericsoftware.com/spine-runtime-skins[/url] in the Spine Runtimes Guide. + + + + + + + + + Adds all attachments, bones, and constraints from the specified skin to this skin. + + + + + + + Adds all bones and constraints and copies of all attachments from the specified skin to this skin. Mesh attachments are not copied, instead a new linked mesh is created. The attachment copies can be modified without affecting the originals. + + + + + + + Returns all attachments for a slot index. Modifying the array has no effect. + + + + + + + Finds the skin keys for a given slot. The results are added to the passed array of names. Modifying the array has no effect. + + + + + + + + Returns the attachment for the specified slot index and name, or null. + + + + + + Returns all attachments in this skin. Modifying the array has no effect. + + + + + + Returns the bones associated with this skin. Modifying the array has no effect. + + + + + + Returns the constraints associated with this skin. Modifying the array has no effect. + + + + + + The name of the skin. + + + + + + + + Removes the attachment in the skin for the specified slot index and name, if any. + + + + + + + + + Adds an attachment to the skin for the specified slot index and name. + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineSlot.xml b/spine-godot/spine_godot/docs/SpineSlot.xml new file mode 100644 index 000000000..076f913ce --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineSlot.xml @@ -0,0 +1,111 @@ + + + + Stores a slot's current pose. + + + Stores a slot's current pose. Slots organize attachments for {@link Skeleton#drawOrder} purposes and provide a place to store state for an attachment. State cannot be stored in an attachment itself because attachments are stateless and may be shared across multiple skeletons. + + + + + + + + The current attachment for the slot, or null if the slot has no attachment. + + + + + + + + + + + The bone this slot belongs to. + + + + + + The color used to tint the slot's attachment. If {@link #getDarkColor()} is set, this is used as the light color for two color tinting. Modifying the color has no effect. + + + + + + The dark color used to tint the slot's attachment for two color tinting, or null if two color tinting is not used. The dark color's alpha is not used. Modifying the color has no effect. + + + + + + The slot's setup pose data. + + + + + + Values to deform the slot's attachment. For an unweighted mesh, the entries are local positions for each vertex. For a weighted mesh, the entries are an offset for each vertex which will be added to the mesh's local vertex positions. Modifying the deform has no effect. + + + + + + The index of the texture region to display when the slot's attachment has a sequence. -1 represents the sequence's setup index. + + + + + + Whether the slot has a dark color. + + + + + + + Sets the slot's attachment and, if the attachment changed, resets the sequence index and clears the deform. The deform is not cleared if the old attachment has the same timeline as the specified attachment + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets this slot to the setup pose. + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineSlotData.xml b/spine-godot/spine_godot/docs/SpineSlotData.xml new file mode 100644 index 000000000..e00d811be --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineSlotData.xml @@ -0,0 +1,93 @@ + + + + Stores the setup pose for a slot. + + + Stores the setup pose for a slot. + + + + + + + + The name of the attachment that is visible for this slot in the setup pose, or null if no attachment is visible. + + + + + + The blend mode for drawing the slot's attachment. + + + + + + The bone this slot belongs to. + + + + + + The color used to tint the slot's attachment. If {@link #getDarkColor()} is set, this is used as the light color for two color tinting. Modifying the color has no effect. + + + + + + The dark color used to tint the slot's attachment for two color tinting, or null if two color tinting is not used. The dark color's alpha is not used. Modifying the color has no effect. + + + + + + The index of the slot in [code]Skeleton.get_slots()[/code]. + + + + + + The name of the slot, which is unique across all slots in the skeleton. + + + + + + Whether the slot has a dark color. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineSlotNode.xml b/spine-godot/spine_godot/docs/SpineSlotNode.xml new file mode 100644 index 000000000..229f270ad --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineSlotNode.xml @@ -0,0 +1,29 @@ + + + + A node to insert other Node2D instances into the skeleton drawing order and override materials for a specific slot. + + + A node to insert other Node2D instances into the skeleton drawing order and override materials for a specific slot. + A slot node needs to be parented to a [code]SpineSprite[/code] directly. To insert the node and its children into the skeleton drawing order, the slot name property needs to be set to the name of the slot the node should be inserted into. + The children of the slot node will be rendered on top any active attachment of the slot. + If any of the slot node materials are set, they will be used for the active attachment of the slot. + See the [code]examples/07-slot-node[/code] and [code]examples/09-custom-material[/code] examples. + + + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineSprite.xml b/spine-godot/spine_godot/docs/SpineSprite.xml new file mode 100644 index 000000000..475e81f0f --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineSprite.xml @@ -0,0 +1,195 @@ + + + + A node for animating and rendering a Spine skeleton to a 2D scene. + + + A Spine sprite node is the main node type used to animate and render a Spine skeleton in a 2D scene. + The Spine sprite gets its skeleton, texture atlas data, and animation mixes from a [code]SpineSkeletonDataResource[/code]. The skeleton data resource can and should be shared across multiple Spine sprites to save resources. + The Spine sprite provides a [code]SpineAnimationState[/code] via [code]get_animation_state()[/code] through which it can be animated. + The Spine sprite also provides acccess to the underlying [code]SpineSkeleton[/code] via [code]get_skeleton[/code] which allows querying bones, slots, constraints, and other parts of the skeleton. + The [code]SpineSkeleton[/code] is also used to set the active skin. For mix-and-match scenarios, a new skin can be created via [code]new_skin()[/code] to which the attachments of existing skins can be added via [code]SpineSkin.add_skin()[/code]. + To insert other nodes into the drawing order of the Spine sprite's slots, a [code]SpineSlotNode[/code] can be used. This allows attaching particle systems, collision shapes, and other Godot nodes to specific slots and bones of the Spine sprite's skeleton. + The Spine sprite allows overriding the internal materials through 4 material properties. If set, these materials will be used instead of the default internal materials for all attachments. For more fine grained control, a [code]SpineSlotNode[/code] can override the material of the attachment on a specific slot. + By default, a Spine sprite is updated during the standard [code]process[/code] update. It can be set to update during the physics update via the [code]process_mode[/code] property. It can also be set to be updated manually, in which case [code]update_skeleton[/code] must be called so the internal animation state is updated and applied to the skeleon. + The Spine sprite provides the method to query ([code]get_global_bone_transform()[/code]) and set ([code]set_global_bone_transform[/code]) a bone's global transform. This can be used to have another node follow a bone, or have a bone follow e.g. the mouse or another node. Alternatively, a [code]SpineBoneNode[/code] can be used to achieve the same, without having to manually update and synchronize transforms. + The Spine sprite provides signals to listen for animation state events, such as an animation having completed or when a user defined event occurred. It also provides signals before the animations state is updated and applied, and before and after the world transforms of bones have been computed, allowing to modify the underlying skeleton before these actions happen. + In editor mode, the Spine sprite provides properties to show debugging information, such as bone and slot names on hover, regions and meshes, and so forth. This can be used to inspect a skeleton and its hierarchy in the editor viewport. + To animate a Spine sprite via the Godot animation player, [code]SpineAnimationTrack[/code] instances can be used. See the Spine Godot Runtimes documentation and the [code]examples/08-animation-player[/code] examople for more information. + + + + + + + + Returns the animation state for animating the skeleton. + + + + + + + Returns the bone's global transform. + + + + + + Returns the skeleton. + + + + + + + Creates a new skin. + + + + + + + + + + + + + Sets a bone's global transform. This must be done before the skeleton world transforms are computed. + + + + + + + Updates and applies the animation state, then updates the world transforms. Only needed for the manual processing mode. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Invoked every time this entry's animation completes a loop. This may occur during mixing (after interrupt). + If this entry's [code]get_mixing_to()[/code] is not null, this entry is mixing out (it is not the current entry). + Because this event is triggered at the end of [code]AnimationState.apply[/code], any animations set in response to the event won't be applied until the next time the AnimationState is applied. + + + + + + + + Invoked when this entry will be disposed. This may occur without the entry ever being set as the current entry. + References to the entry should not be kept after [code]dispose[/code] is called, as it may be destroyed or reused. + + + + + + + + Invoked when this entry will never be applied again. This only occurs if this entry has previously been set as the current entry (start was invoked). + + + + + + + + + Invoked when this entry's animation triggers an event. This may occur during mixing (after interrupt), see [code]TrackEntry.get_event_threshold()[/code]. + Because this event is triggered at the end of {@link AnimationState#apply(Skeleton)}, any animations set in response to the event won't be applied until the next time the AnimationState is applied. + + + + + + + + Invoked when another entry has replaced this entry as the current entry. This entry may continue being applied for mixing. + + + + + + + + Invoked when this entry has been set as the current entry. {@link #end(TrackEntry)} will occur when this entry will no longer be applied. + + + + + + Invoked before the animation state is applied to the skeleton. + + + + + + Invoked before the animation state is updated. + + + + + + Invoked before the world transforms are computed. + + + + + + Invoked after the world transforms have been computed. + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineTimeline.xml b/spine-godot/spine_godot/docs/SpineTimeline.xml new file mode 100644 index 000000000..6e8a9435f --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineTimeline.xml @@ -0,0 +1,63 @@ + + + + The base class for all timelines. + + + The base class for all timelines. + + + + + + + + + + + + + + + + + + + + The duration in seconds. + + + + + + The number of frames for this timeline. + + + + + + The number of entries stored per frame. + + + + + + The time in seconds and any other values for each frame. Modifying the array has no effect. + + + + + + Uniquely encodes both the type of this timeline and the skeleton properties that it affects. Modifying the array has no effect. + + + + + + The timeline's type encoded as a string. + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineTrackEntry.xml b/spine-godot/spine_godot/docs/SpineTrackEntry.xml new file mode 100644 index 000000000..c0bb22b8b --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineTrackEntry.xml @@ -0,0 +1,310 @@ + + + + + + + Stores settings and other state for the playback of an animation on an animation state track. + References to a track entry must not be kept after the dispose event occurs. + + + + + + + + Values < 1 mix this animation with the skeleton's current pose (usually the pose resulting from lower tracks). Defaults to 1, which overwrites the skeleton's current pose with this animation. + Typically track 0 is used to completely pose the skeleton, then alpha is used on higher tracks. It doesn't make sense to use alpha on track 0 if the skeleton pose is from the last frame render. + + + + + + The animation to apply for this track entry. + + + + + + Seconds for the last frame of this animation. Non-looping animations won't play past this time. Looping animations will loop back to animation start at this time. Defaults to the animation duration. + + + + + + The time in seconds this animation was last applied. Some timelines use this for one-time triggers. Eg, when this animation is applied, event timelines will fire all events between the [code]animationLast[/code] time (exclusive) and [code]animationTime[/code](inclusive). Defaults to -1 to ensure triggers on frame 0 happen the first time this animation is applied. + + + + + + Seconds when this animation starts, both initially and after looping. Defaults to 0. + When changing the animation start time, it often makes sense to set animation last to the same value to prevent timeline keys before the start time from triggering. + + + + + + Uses [code]get_track_time()[/code] to compute the animation time. When the track time is 0, the animation time is equal to the animation start time. + The animation time is between [code]get_animation_start()[/code] and [code]get_animation_end()[/code], except if this track entry is non-looping and [code]get_animation_end()[/code] is >= to the animation duration, then animation time continues to increase past [code]get_animation_end()[/code]. + + + + + + When the mix percentage ([code]get_mix_time()[/code] / [code]get_mix_duration()[/code]) is less than the attachment threshold, attachment timelines are applied while this animation is being mixed out. Defaults to 0, so attachment timelines are not applied while this animation is being mixed out. + + + + + + Seconds to postpone playing the animation. When this track entry is the current track entry, delay postpones incrementing the [code]get_track_time()[/code]. When this track entry is queued, delay is the time from the start of the previous animation to when this track entry will become the current track entry (ie when the previous track entry [code]get_track_time()[/code] >= this track entry's delay). + [code]get_time_scale()[/code] affects the delay. + When using [code]AnimationState.add_animation()[/code] with a delay <= 0, the delay is set using the mix duration from the skeleton data resource. If mix duration is set afterward, the delay may need to be adjusted. + + + + + + When the mix percentage ([code]get_mix_time()[/code] / [code]get_mix_duration()[/code]) is less than the draw order threshold, draw order timelines are applied while this animation is being mixed out. Defaults to 0, so draw order timelines are not applied while this animation is being mixed out. + + + + + + When the mix percentage ([code]get_mix_time()[/code] / [code]get_mix_duration()[/code]) is less than the event threshold, event timelines are applied while this animation is being mixed out. Defaults to 0, so event timelines are not applied while this animation is being mixed out. + + + + + + If true, when mixing from the previous animation to this animation, the previous animation is applied as normal instead of being mixed out. + When mixing between animations that key the same property, if a lower track also keys that property then the value will briefly dip toward the lower track value during the mix. This happens because the first animation mixes from 100% to 0% while the second animation mixes from 0% to 100%. Setting hold previous to true applies the first animation at 100% during the mix so the lower track value is overwritten. Such dipping does not occur on the lowest track which keys the property, only when a higher track also keys the property. + Snapping will occur if hold previous is true and this animation does not key all the same properties as the previous animation. + + + + + + If true, the animation will repeat. If false it will not, instead its last frame is applied if played beyond its duration. + + + + + + Controls how properties keyed in the animation are mixed with lower tracks. Defaults to [code]MixBlend.replace[/code]. Track entries on track 0 ignore this setting and always use [code]MixBlend.first[/code]. + The mix blend can be set for a new track entry only before [code]AnimationState.apply()[/code] is first called. + + + + + + Seconds for mixing from the previous animation to this animation. Defaults to the value provided by the skeleton data resource based on the animation before this animation (if any). + A mix duration of 0 still mixes out over one frame to provide the track entry being mixed out a chance to revert the properties it was animating. The mix duration can be set manually rather than use the value from the skeleton data resource. In that case, themix duration can be set for a new track entry only before [code]AnimationState#update()[/code] is first called. + When using [code]AnimationState.add_animation()[/code] with a delay <= 0, the delay is set using the mix duration from the skeleton data resource. If mix duration is set afterward, the delay may need to be adjusted. + + + + + + Seconds from 0 to the mix duration when mixing from the previous animation to this animation. May be slightly more than mix duration when the mix is complete. + + + + + + The track entry for the previous animation when mixing from the previous animation to this animation, or null if no mixing is currently occuring. When mixing from multiple animations, mixing from makes up a linked list. + + + + + + The track entry for the next animation when mixing from this animation to the next animation, or null if no mixing is currently occuring. When mixing to multiple animations, mixing to makes up a linked list. + + + + + + The animation queued to start after this animation, or null if there is none. Next makes up a doubly linked list. + See [code]AnimationState.clear_next()[/code] to truncate the list. + + + + + + The animation queued to play before this animation, or null. previous makes up a doubly linked list. + + + + + + If true, the animation will be applied in reverse. Events are not fired when an animation is applied in reverse. + + + + + + If true, mixing rotation between tracks always uses the shortest rotation direction. If the rotation is animated, the shortest rotation direction may change during the mix. + If false, the shortest rotation direction is remembered when the mix starts and the same direction is used for the rest of the mix. Defaults to false. + + + + + + Multiplier for the delta time when this track entry is updated, causing time for this animation to pass slower or faster. Defaults to 1. + Values < 0 are not supported. To play an animation in reverse, use {@link #getReverse()}. + [code]get_mix_time()[/code] is not affected by track entry time scale, so [code]get_mix_duration()[/code] may need to be adjusted to match the animation speed. + When using [code]AnimationState.add_animation()[/code]with a delay <= 0, the delay is set using the mix duration from the skeleton data resource, assuming time scale to be 1. If the time scale is not 1, the delay may need to be adjusted. + See [code]AnimationState.get_time_scale()[/code] for affecting all animations. + + + + + + If this track entry is non-looping, the track time in seconds when [code]get_animation_end()[/code] is reached, or the current [code]get_track_time()[/code] if it has already been reached. If this track entry is looping, the track time when this animation will reach its next [code]get_animation_end()[/code] (the next loop completion). + + + + + + The track time in seconds when this animation will be removed from the track. Defaults to the highest possible float value, meaning the animation will be applied until a new animation is set or the track is cleared. If the track end time is reached, no other animations are queued for playback, and mixing from any previous animations is complete, then the properties keyed by the animation are set to the setup pose and the track is cleared. + It may be desired to use {@link AnimationState#addEmptyAnimation(int, float, float)} rather than have the animation abruptly cease being applied. + + + + + + The index of the track where this track entry is either current or queued. + + + + + + Current time in seconds this track entry has been the current track entry. The track time determines [code]get_animation_time()[/code]. The track time can be set to start the animation at a time other than 0, without affecting looping. + + + + + + Returns true if at least one loop has been completed. + + + + + + Resets the rotation directions for mixing this entry's rotate timelines. This can be useful to avoid bones rotating the long way around when using {@link #alpha} and starting animations on other tracks. + Mixing with [code]MixBlend.replace[/code] involves finding a rotation between two others, which has two possible solutions: the short way or the long way around. The two rotations likely change over time, so which direction is the short or long way also changes. If the short way was always chosen, bones would flip to the other side when that direction became the long way. TrackEntry chooses the short way the first time it is applied and remembers that direction. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineTransformConstraint.xml b/spine-godot/spine_godot/docs/SpineTransformConstraint.xml new file mode 100644 index 000000000..5bb034a89 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineTransformConstraint.xml @@ -0,0 +1,128 @@ + + + + Stores the current pose for a transform constraint. + + + Stores the current pose for a transform constraint. A transform constraint adjusts the world transform of the constrained bones to match that of the target bone. + See [url]http://esotericsoftware.com/spine-transform-constraints[/url] in the Spine User Guide. + + + + + + + + The bones that will be modified by this transform constraint. Modifying the array has no effect. + + + + + + The transform constraint's setup pose data. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained rotation. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained scale X. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained scale X. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained shear Y. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained translation X. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained translation Y. + + + + + + The target bone whose world transform will be copied to the constrained bones. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/docs/SpineTransformConstraintData.xml b/spine-godot/spine_godot/docs/SpineTransformConstraintData.xml new file mode 100644 index 000000000..1e13afd20 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineTransformConstraintData.xml @@ -0,0 +1,109 @@ + + + + + + Stores the setup pose for a transform constraint. + See [url]http://esotericsoftware.com/spine-transform-constraints[/url] in the Spine User Guide. + + + + + + + + The bones that will be modified by this transform constraint. Modifying the array has no effect. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained rotation. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained scale X. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained scale Y. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained shear Y. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained translation X. + + + + + + A percentage (0-1) that controls the mix between the constrained and unconstrained translation Y. + + + + + + An offset added to the constrained bone rotation. + + + + + + An offset added to the constrained bone scaleX. + + + + + + An offset added to the constrained bone scaleY. + + + + + + An offset added to the constrained bone shearY. + + + + + + An offset added to the constrained bone X translation. + + + + + + An offset added to the constrained bone Y translation. + + + + + + The target bone whose world transform will be copied to the constrained bones. + + + + + + + + + + + + + + + + diff --git a/spine-godot/spine_godot/icons/icon_spine_animation_track.svg b/spine-godot/spine_godot/icons/icon_spine_animation_track.svg new file mode 100644 index 000000000..705bfb161 --- /dev/null +++ b/spine-godot/spine_godot/icons/icon_spine_animation_track.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/spine-godot/spine_godot/icons/icon_spine_atlas_resource.svg b/spine-godot/spine_godot/icons/icon_spine_atlas_resource.svg new file mode 100644 index 000000000..705bfb161 --- /dev/null +++ b/spine-godot/spine_godot/icons/icon_spine_atlas_resource.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/spine-godot/spine_godot/icons/icon_spine_bone_node.svg b/spine-godot/spine_godot/icons/icon_spine_bone_node.svg new file mode 100644 index 000000000..705bfb161 --- /dev/null +++ b/spine-godot/spine_godot/icons/icon_spine_bone_node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/spine-godot/spine_godot/icons/icon_spine_skeleton_data_resource.svg b/spine-godot/spine_godot/icons/icon_spine_skeleton_data_resource.svg new file mode 100644 index 000000000..705bfb161 --- /dev/null +++ b/spine-godot/spine_godot/icons/icon_spine_skeleton_data_resource.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/spine-godot/spine_godot/icons/icon_spine_skeleton_file_resource.svg b/spine-godot/spine_godot/icons/icon_spine_skeleton_file_resource.svg new file mode 100644 index 000000000..705bfb161 --- /dev/null +++ b/spine-godot/spine_godot/icons/icon_spine_skeleton_file_resource.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/spine-godot/spine_godot/icons/icon_spine_slot_node.svg b/spine-godot/spine_godot/icons/icon_spine_slot_node.svg new file mode 100644 index 000000000..705bfb161 --- /dev/null +++ b/spine-godot/spine_godot/icons/icon_spine_slot_node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/spine-godot/spine_godot/icons/icon_spine_sprite.svg b/spine-godot/spine_godot/icons/icon_spine_sprite.svg new file mode 100644 index 000000000..705bfb161 --- /dev/null +++ b/spine-godot/spine_godot/icons/icon_spine_sprite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/spine-godot/spine_godot/register_types.cpp b/spine-godot/spine_godot/register_types.cpp new file mode 100644 index 000000000..5680b8a29 --- /dev/null +++ b/spine-godot/spine_godot/register_types.cpp @@ -0,0 +1,155 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#include "SpineCommon.h" +#include "register_types.h" +#include "SpineAtlasResource.h" +#include "SpineSkeletonFileResource.h" +#include "SpineSkeletonDataResource.h" +#include "SpineSprite.h" +#include "SpineSkeleton.h" +#include "SpineAnimationState.h" +#include "SpineAnimationTrack.h" +#include "SpineEventData.h" +#include "SpineEvent.h" +#include "SpineTrackEntry.h" +#include "SpineBoneData.h" +#include "SpineSlotData.h" +#include "SpineAttachment.h" +#include "SpineConstraintData.h" +#include "SpineSkin.h" +#include "SpineIkConstraintData.h" +#include "SpineTransformConstraintData.h" +#include "SpinePathConstraintData.h" +#include "SpineTimeline.h" +#include "SpineConstant.h" +#include "SpineSlotNode.h" +#include "SpineBoneNode.h" +#include "spine/Bone.h" + +static SpineAtlasResourceFormatLoader *atlas_loader; +static SpineAtlasResourceFormatSaver *atlas_saver; +static SpineSkeletonFileResourceFormatLoader *skeleton_file_loader; +static SpineSkeletonFileResourceFormatSaver *skeleton_file_saver; + +#ifdef TOOLS_ENABLED +#include "editor/editor_node.h" +#include "SpineEditorPlugin.h" + +static void editor_init_callback() { + EditorNode::get_singleton()->add_editor_plugin(memnew(SpineEditorPlugin(EditorNode::get_singleton()))); +} + +#endif + +#if VERSION_MAJOR > 3 +void initialize_spine_godot_module(ModuleInitializationLevel level) { +#else +void register_spine_godot_types() { +#endif +#ifdef TOOLS_ENABLED + EditorNode::add_init_callback(editor_init_callback); + GDREGISTER_CLASS(SpineEditorPropertyAnimationMixes); +#endif + spine::Bone::setYDown(true); + + GDREGISTER_CLASS(SpineAtlasResource); + GDREGISTER_CLASS(SpineSkeletonFileResource); + GDREGISTER_CLASS(SpineSkeletonDataResource); + GDREGISTER_CLASS(SpineAnimationMix); + GDREGISTER_CLASS(SpineSprite); + GDREGISTER_CLASS(SpineSkeleton); + GDREGISTER_CLASS(SpineAnimationState); + GDREGISTER_CLASS(SpineAnimation); + GDREGISTER_CLASS(SpineEventData); + GDREGISTER_CLASS(SpineTrackEntry); + GDREGISTER_CLASS(SpineEvent); + GDREGISTER_CLASS(SpineBoneData); + GDREGISTER_CLASS(SpineSlotData); + GDREGISTER_CLASS(SpineAttachment); + GDREGISTER_CLASS(SpineSkinEntry); + GDREGISTER_CLASS(SpineConstraintData); + GDREGISTER_CLASS(SpineSkin); + GDREGISTER_CLASS(SpineIkConstraintData); + GDREGISTER_CLASS(SpineTransformConstraintData); + GDREGISTER_CLASS(SpinePathConstraintData); + GDREGISTER_CLASS(SpineBone); + GDREGISTER_CLASS(SpineSlot); + GDREGISTER_CLASS(SpineIkConstraint); + GDREGISTER_CLASS(SpinePathConstraint); + GDREGISTER_CLASS(SpineTransformConstraint); + GDREGISTER_CLASS(SpineTimeline); + GDREGISTER_CLASS(SpineConstant); + + GDREGISTER_CLASS(SpineSlotNode); + GDREGISTER_CLASS(SpineBoneNode); + GDREGISTER_CLASS(SpineAnimationTrack); + +#if VERSION_MAJOR > 3 + atlas_loader = memnew(SpineAtlasResourceFormatLoader); + ResourceLoader::add_resource_format_loader(atlas_loader); + + atlas_saver = memnew(SpineAtlasResourceFormatSaver); + ResourceSaver::add_resource_format_saver(atlas_saver); + + skeleton_file_loader = memnew(SpineSkeletonFileResourceFormatLoader); + ResourceLoader::add_resource_format_loader(skeleton_file_loader); + + skeleton_file_saver = memnew(SpineSkeletonFileResourceFormatSaver); + ResourceSaver::add_resource_format_saver(skeleton_file_saver); +#else + atlas_loader = memnew(SpineAtlasResourceFormatLoader); + ResourceLoader::add_resource_format_loader(atlas_loader); + + atlas_saver = memnew(SpineAtlasResourceFormatSaver); + ResourceSaver::add_resource_format_saver(atlas_saver); + + skeleton_file_loader = memnew(SpineSkeletonFileResourceFormatLoader); + ResourceLoader::add_resource_format_loader(skeleton_file_loader); + + skeleton_file_saver = memnew(SpineSkeletonFileResourceFormatSaver); + ResourceSaver::add_resource_format_saver(skeleton_file_saver); +#endif +} + +#if VERSION_MAJOR > 3 +void uninitialize_spine_godot_module(ModuleInitializationLevel level) { +#else +void unregister_spine_godot_types() { +#endif + ResourceLoader::remove_resource_format_loader(atlas_loader); + ResourceSaver::remove_resource_format_saver(atlas_saver); + ResourceLoader::remove_resource_format_loader(skeleton_file_loader); + ResourceSaver::remove_resource_format_saver(skeleton_file_saver); + + /*memdelete(atlas_loader); + memdelete(atlas_saver); + memdelete(skeleton_file_saver); + memdelete(skeleton_file_loader);*/ +} diff --git a/spine-godot/spine_godot/register_types.h b/spine-godot/spine_godot/register_types.h new file mode 100644 index 000000000..cc88e50ce --- /dev/null +++ b/spine-godot/spine_godot/register_types.h @@ -0,0 +1,41 @@ +/****************************************************************************** + * Spine Runtimes License Agreement + * Last updated January 1, 2020. Replaces all prior versions. + * + * Copyright (c) 2013-2020, Esoteric Software LLC + * + * Integration of the Spine Runtimes into software or otherwise creating + * derivative works of the Spine Runtimes is permitted under the terms and + * conditions of Section 2 of the Spine Editor License Agreement: + * http://esotericsoftware.com/spine-editor-license + * + * Otherwise, it is permitted to integrate the Spine Runtimes into software + * or otherwise create derivative works of the Spine Runtimes (collectively, + * "Products"), provided that each user of the Products must obtain their own + * Spine Editor license and redistribution of the Products in any form must + * include this license and copyright notice. + * + * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, + * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#pragma once + +#include "SpineCommon.h" + +#if VERSION_MAJOR > 3 +#include "modules/register_module_types.h" +void initialize_spine_godot_module(ModuleInitializationLevel level); +void uninitialize_spine_godot_module(ModuleInitializationLevel level); +#else +void register_spine_godot_types(); +void unregister_spine_godot_types(); +#endif