Added an example to demonstrate the usage of the Dali Scene Loader library. 40/250340/5
authorGyörgy Straub <g.straub@partner.samsung.com>
Wed, 23 Dec 2020 15:12:18 +0000 (15:12 +0000)
committerGyörgy Straub <g.straub@partner.samsung.com>
Tue, 29 Dec 2020 13:55:34 +0000 (13:55 +0000)
Change-Id: I2cbd4814fbb3238c188a10900f98b5285da8dc98
Signed-off-by: György Straub <g.straub@partner.samsung.com>
75 files changed:
build/tizen/CMakeLists.txt
build/tizen/examples/CMakeLists.txt
com.samsung.dali-demo.xml
demo/dali-demo.cpp
examples/scene-loader/main.cpp [new file with mode: 0644]
examples/scene-loader/scene-loader-example.cpp [new file with mode: 0644]
examples/scene-loader/scene-loader-example.h [new file with mode: 0644]
packaging/com.samsung.dali-demo.spec
resources/images/Studio/Irradiance.ktx [new file with mode: 0644]
resources/images/Studio/Radiance.ktx [new file with mode: 0644]
resources/images/beer/etiqueta.jpg [new file with mode: 0644]
resources/images/exercise/Icons/Icon_Idle.png [new file with mode: 0644]
resources/images/exercise/Icons/Icon_JJ.png [new file with mode: 0644]
resources/images/exercise/Icons/Icon_Lunge.png [new file with mode: 0644]
resources/images/exercise/Icons/Icon_Squat.png [new file with mode: 0644]
resources/images/exercise/Textures/BG_AlbedoMetallic.png [new file with mode: 0644]
resources/images/exercise/Textures/BG_NormalRoughness.png [new file with mode: 0644]
resources/images/exercise/Textures/Body_AlbedoMetallic.png [new file with mode: 0644]
resources/images/exercise/Textures/Body_Female_Asian_Adult_SubsurfaceColor.png [new file with mode: 0644]
resources/images/exercise/Textures/Body_NormalRoughness.png [new file with mode: 0644]
resources/images/exercise/Textures/Eye_AlbedoMetallic.png [new file with mode: 0644]
resources/images/exercise/Textures/Eye_NormalRoughness.png [new file with mode: 0644]
resources/images/exercise/Textures/FitBot_AlbedoMetallic.png [new file with mode: 0644]
resources/images/exercise/Textures/FitBot_NormalRoughness.png [new file with mode: 0644]
resources/images/exercise/Textures/FitTop_AlbedoMetallic.png [new file with mode: 0644]
resources/images/exercise/Textures/FitTop_NormalRoughness.png [new file with mode: 0644]
resources/images/exercise/Textures/Hair_AlbedoMetallic.png [new file with mode: 0644]
resources/images/exercise/Textures/Hair_NormalRoughness.png [new file with mode: 0644]
resources/images/exercise/Textures/Head_AlbedoMetallic.png [new file with mode: 0644]
resources/images/exercise/Textures/Head_Female_SubsurfaceColor.png [new file with mode: 0644]
resources/images/exercise/Textures/Head_NormalRoughness.png [new file with mode: 0644]
resources/images/exercise/Textures/Shoe_AlbedoMetallic.png [new file with mode: 0644]
resources/images/exercise/Textures/Shoe_NormalRoughness.png [new file with mode: 0644]
resources/models/arc.dli [new file with mode: 0644]
resources/models/beer.dli [new file with mode: 0644]
resources/models/beer/beer.bin [new file with mode: 0644]
resources/models/beer/cube.bin [new file with mode: 0644]
resources/models/error.dli [new file with mode: 0644]
resources/models/exercise.dli [new file with mode: 0644]
resources/models/exercise/idle-animation.ani [new file with mode: 0644]
resources/models/exercise/idle-to-jumping-jack-animation.ani [new file with mode: 0644]
resources/models/exercise/idle-to-lunge-animation.ani [new file with mode: 0644]
resources/models/exercise/idle-to-squat-animation-0.ani [new file with mode: 0644]
resources/models/exercise/idle-to-squat-animation-1.ani [new file with mode: 0644]
resources/models/exercise/jumping-jack-animation.ani [new file with mode: 0644]
resources/models/exercise/jumping-jack-to-idle-animation.ani [new file with mode: 0644]
resources/models/exercise/jumping-jack-to-lunge-animation.ani [new file with mode: 0644]
resources/models/exercise/jumping-jack-to-squat-animation.ani [new file with mode: 0644]
resources/models/exercise/lunge-animation.ani [new file with mode: 0644]
resources/models/exercise/lunge-to-idle-animation.ani [new file with mode: 0644]
resources/models/exercise/lunge-to-jumping-jack-animation.ani [new file with mode: 0644]
resources/models/exercise/lunge-to-squat-animation.ani [new file with mode: 0644]
resources/models/exercise/model.dae.bin [new file with mode: 0644]
resources/models/exercise/squat-animation-0.ani [new file with mode: 0644]
resources/models/exercise/squat-animation-1.ani [new file with mode: 0644]
resources/models/exercise/squat-to-idle-animation.ani [new file with mode: 0644]
resources/models/exercise/squat-to-jumping-jack-animation.ani [new file with mode: 0644]
resources/models/exercise/squat-to-lunge-animation.ani [new file with mode: 0644]
resources/models/flair.dli [new file with mode: 0644]
resources/models/flair/Flair.bin [new file with mode: 0644]
resources/models/flair/cube.bin [new file with mode: 0644]
resources/models/flair/flair.ani [new file with mode: 0644]
resources/models/image.dli [new file with mode: 0644]
resources/models/robot.dli [new file with mode: 0644]
resources/models/robot/Bob-Walk.bin [new file with mode: 0644]
resources/models/robot/combinedAnim_00.ani [new file with mode: 0644]
resources/po/en_GB.po
resources/po/en_US.po
resources/shaders/dli_arc.fsh [new file with mode: 0644]
resources/shaders/dli_arc.vsh [new file with mode: 0644]
resources/shaders/dli_images.fsh [new file with mode: 0644]
resources/shaders/dli_images.vsh [new file with mode: 0644]
resources/shaders/dli_pbr.fsh [new file with mode: 0644]
resources/shaders/dli_pbr.vsh [new file with mode: 0644]
shared/dali-demo-strings.h

index aea3cd2..75c6528 100644 (file)
@@ -113,32 +113,51 @@ ELSE()
   SET(DEMO_DATA_PUBLIC_RW_DIR \\"/tmp/\\")
 ENDIF()
 
-FILE(GLOB LOCAL_IMAGES_PNG RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.png")
-FILE(GLOB LOCAL_IMAGES_JPG RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.jpg")
-FILE(GLOB LOCAL_IMAGES_GIF RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.gif")
-FILE(GLOB LOCAL_IMAGES_WEBP RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.webp")
-FILE(GLOB LOCAL_IMAGES_BMP RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.bmp")
-FILE(GLOB LOCAL_IMAGES_ICO RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.ico")
-FILE(GLOB LOCAL_IMAGES_WBMP RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.wbmp")
-FILE(GLOB LOCAL_IMAGES_KTX RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.ktx")
-FILE(GLOB LOCAL_IMAGES_ASTC RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.astc")
-FILE(GLOB LOCAL_IMAGES_SVG RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.svg")
-FILE(GLOB LOCAL_IMAGES_JSON RELATIVE  "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.json")
-
-SET(LOCAL_IMAGES_LIST ${LOCAL_IMAGES_PNG};${LOCAL_IMAGES_JPG};${LOCAL_IMAGES_GIF};${LOCAL_IMAGES_WEBP};${LOCAL_IMAGES_BMP};${LOCAL_IMAGES_ICO};${LOCAL_IMAGES_WBMP};${LOCAL_IMAGES_KTX};${LOCAL_IMAGES_ASTC};${LOCAL_IMAGES_SVG};${LOCAL_IMAGES_JSON})
-FOREACH(flag ${LOCAL_IMAGES_LIST})
-        INSTALL(FILES ${LOCAL_IMAGES_DIR}/${flag} DESTINATION ${IMAGES_DIR})
-ENDFOREACH(flag)
+# Gets all sub-directories of SRC_DIR into the list RESULT, which will first be reset to empty.
+MACRO(GET_TREE RESULT SRC_DIR)
+       FILE(GLOB_RECURSE LOCAL_LIST RELATIVE ${SRC_DIR} "${SRC_DIR}/*")
+       SET(${RESULT} "/") # N.B. we need the contents of the root directory as well, and we can't have an empty string in a list in CMake.
+       FOREACH(LOCAL_ENTRY ${LOCAL_LIST})
+               GET_FILENAME_COMPONENT(DIR ${LOCAL_ENTRY} DIRECTORY)
+               LIST(APPEND ${RESULT} ${DIR})
+       ENDFOREACH()
+       LIST(REMOVE_DUPLICATES ${RESULT})
+ENDMACRO()
+
+# Installs files from each subdirectory of ROOT specified in TREE, matching FILTER, to DESTINATION,
+# while keeping the structure, up to (excluding) ROOT.
+MACRO(INSTALL_TREE_FILES ROOT TREE FILTER DESTINATION)
+       FOREACH(LOCAL_DIR ${TREE})
+               SET(SRC_DIR "${ROOT}/${LOCAL_DIR}")
+               FILE(GLOB FILES
+                       LIST_DIRECTORIES false
+                       RELATIVE ${SRC_DIR} "${SRC_DIR}/${FILTER}")
+               FOREACH(LOCAL_FILE ${FILES})
+                       INSTALL(FILES "${SRC_DIR}/${LOCAL_FILE}" DESTINATION "${DESTINATION}/${LOCAL_DIR}")
+               ENDFOREACH()
+       ENDFOREACH()
+ENDMACRO()
+
+GET_TREE(LOCAL_IMAGES_TREE "${LOCAL_IMAGES_DIR}")
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.png" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.jpg" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.gif" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.webp" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.bmp" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.ico" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.wbmp" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.ktx" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.astc" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.svg" ${IMAGES_DIR})
+INSTALL_TREE_FILES(${LOCAL_IMAGES_DIR} "${LOCAL_IMAGES_TREE}" "*.json" ${IMAGES_DIR})
 
 FILE(GLOB LOCAL_VIDEOS_LIST RELATIVE "${LOCAL_VIDEOS_DIR}" "${LOCAL_VIDEOS_DIR}/*")
 FOREACH(flag ${LOCAL_VIDEOS_LIST})
         INSTALL(FILES ${LOCAL_VIDEOS_DIR}/${flag} DESTINATION ${VIDEOS_DIR})
 ENDFOREACH(flag)
 
-FILE(GLOB LOCAL_MODELS_LIST RELATIVE "${LOCAL_MODELS_DIR}" "${LOCAL_MODELS_DIR}/*")
-FOREACH(flag ${LOCAL_MODELS_LIST})
-        INSTALL(FILES ${LOCAL_MODELS_DIR}/${flag} DESTINATION ${MODELS_DIR})
-ENDFOREACH(flag)
+GET_TREE(LOCAL_MODELS_TREE "${LOCAL_MODELS_DIR}")
+INSTALL_TREE_FILES(${LOCAL_MODELS_DIR} "${LOCAL_MODELS_TREE}" "*" ${MODELS_DIR})
 
 FILE(GLOB LOCAL_SCRIPTS_LIST RELATIVE "${LOCAL_SCRIPTS_DIR}" "${LOCAL_SCRIPTS_DIR}/*.json")
 FOREACH(flag ${LOCAL_SCRIPTS_LIST})
@@ -189,6 +208,21 @@ IF( ENABLE_PKG_CONFIGURE )
   FOREACH(flag ${REQUIRED_PKGS_CFLAGS})
         SET(REQUIRED_CFLAGS "${REQUIRED_CFLAGS} ${flag}")
   ENDFOREACH(flag)
+
+  pkg_check_modules(DALI_SCENE_LOADER dali2-scene-loader)
+  IF( DALI_SCENE_LOADER_FOUND )
+    FOREACH(flag ${DALI_SCENE_LOADER_CFLAGS})
+      SET(REQUIRED_CFLAGS "${REQUIRED_CFLAGS} ${flag}")
+    ENDFOREACH(flag)
+
+    SET( REQUIRED_CFLAGS "${REQUIRED_CFLAGS} -DDALI_SCENE_LOADER_AVAILABLE" )
+
+    FOREACH(flag ${DALI_SCENE_LOADER_LDFLAGS})
+      SET(REQUIRED_PKGS_LDFLAGS "${REQUIRED_PKGS_LDFLAGS} ${flag}")
+    ENDFOREACH(flag)
+
+    SET( ENABLE_SCENE_LOADER "ON" )
+  ENDIF()
 ENDIF()
 
 SET( VCPKG_INCLUDE_DIR "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include")
@@ -219,6 +253,8 @@ IF( WIN32 ) # WIN32 includes x64 as well according to the cmake doc.
   FIND_PACKAGE( dali2-adaptor REQUIRED )
   FIND_PACKAGE( dali2-toolkit REQUIRED )
 
+  FIND_PACKAGE( dali2-scene-loader )
+
   # Set up the include dir
   SET( INCLUDE_DIR $ENV{includedir} )
   IF( NOT INCLUDE_DIR )
@@ -259,6 +295,11 @@ IF( WIN32 ) # WIN32 includes x64 as well according to the cmake doc.
     dali2-adaptor::dali2-adaptor
     dali2-toolkit::dali2-toolkit
   )
+
+  IF (dali2_scene_loader_FOUND)
+    SET( REQUIRED_LIBS "${REQUIRED_LIBS} dali2-scene-loader::dali2-scene-loader" )
+    SET( ENABLE_SCENE_LOADER "ON" )
+  ENDIF()
 ELSEIF( UNIX )
   SET( REQUIRED_LIBS
     ${REQUIRED_PKGS_LDFLAGS}
@@ -272,6 +313,10 @@ IF( ENABLE_DEBUG )
   SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -DDEBUG_ENABLED")
 ENDIF()
 
+IF( ENABLE_SCENE_LOADER )
+  SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -DDALI_SCENE_LOADER_AVAILABLE")
+ENDIF()
+
 IF( UNIX )
   IF( NOT ${ENABLE_EXPORTALL} )
     ADD_DEFINITIONS( "-DHIDE_DALI_INTERNALS" )
index e84235c..ed65080 100644 (file)
@@ -13,6 +13,13 @@ MACRO(SUBDIRLIST result curdir)
 ENDMACRO()
 SUBDIRLIST(SUBDIRS ${EXAMPLES_SRC_DIR})
 
+SET(SCENE_LOADER_DIR "scene-loader")
+IF (NOT "${ENABLE_SCENE_LOADER}" )
+  IF ( ${SCENE_LOADER_DIR} IN_LIST SUBDIRS )
+    LIST( REMOVE_ITEM SUBDIRS ${SCENE_LOADER_DIR} )
+  ENDIF()
+ENDIF()
+
 FOREACH(EXAMPLE ${SUBDIRS})
   FILE(GLOB SRCS "${EXAMPLES_SRC_DIR}/${EXAMPLE}/*.cpp")
   SET(SRCS ${SRCS} "${ROOT_SRC_DIR}/shared/resources-location.cpp")
index 552cefd..0671f04 100644 (file)
        <ui-application appid="rendering-triangle.example" exec="/usr/apps/com.samsung.dali-demo/bin/rendering-triangle.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
                <label>Rendering Triangle</label>
        </ui-application>
+       <ui-application appid="scene-loader.example" exec="/usr/apps/com.samsung.dali-demo/bin/scene-loader.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
+               <label>Scene Loader</label>
+       </ui-application>
        <ui-application appid="scripting.example" exec="/usr/apps/com.samsung.dali-demo/bin/scripting.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
                <label>Scroll View</label>
        </ui-application>
index 1ca0894..20ba080 100644 (file)
@@ -58,6 +58,9 @@ int DALI_EXPORT_API main(int argc, char** argv)
   demo.AddExample(Example("renderer-stencil.example", DALI_DEMO_STR_TITLE_RENDERER_STENCIL));
   demo.AddExample(Example("rendering-skybox.example", DALI_DEMO_STR_TITLE_SKYBOX));
   demo.AddExample(Example("rendering-basic-pbr.example", DALI_DEMO_STR_TITLE_PBR));
+#ifdef DALI_SCENE_LOADER_AVAILABLE
+  demo.AddExample(Example("scene-loader.example", DALI_DEMO_STR_TITLE_SCENE_LOADER));
+#endif //DALI_SCENE_LOADER_AVAILABLE
   demo.AddExample(Example("shadows-and-lights.example", DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS));
   demo.AddExample(Example("sparkle.example", DALI_DEMO_STR_TITLE_SPARKLE));
   demo.AddExample(Example("waves.example", DALI_DEMO_STR_TITLE_WAVES));
diff --git a/examples/scene-loader/main.cpp b/examples/scene-loader/main.cpp
new file mode 100644 (file)
index 0000000..a0c8158
--- /dev/null
@@ -0,0 +1,29 @@
+/*\r
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ *\r
+ */\r
+#include "scene-loader-example.h"\r
+\r
+#include "dali/dali.h"\r
+\r
+using namespace Dali;\r
+\r
+int main(int argc, char** argv)\r
+{\r
+  auto app = Application::New(&argc, &argv, DEMO_THEME_PATH);\r
+  SceneLoaderExample sceneLoader(app);\r
+  app.MainLoop();\r
+  return 0;\r
+}\r
diff --git a/examples/scene-loader/scene-loader-example.cpp b/examples/scene-loader/scene-loader-example.cpp
new file mode 100644 (file)
index 0000000..64b31a5
--- /dev/null
@@ -0,0 +1,454 @@
+/*\r
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ *\r
+ */\r
+#include "scene-loader-example.h"\r
+#include "dali-scene-loader/public-api/gltf2-loader.h"\r
+#include "dali-scene-loader/public-api/shader-definition-factory.h"\r
+#include "dali-scene-loader/public-api/light-parameters.h"\r
+#include "dali-scene-loader/public-api/dli-loader.h"\r
+#include "dali-scene-loader/public-api/load-result.h"\r
+#include "dali/public-api/adaptor-framework/key.h"\r
+#include "dali/public-api/events/key-event.h"\r
+#include "dali/public-api/actors/layer.h"\r
+#include "dali/public-api/render-tasks/render-task-list.h"\r
+#include "dali/public-api/object/property-array.h"\r
+#include "dali-toolkit/public-api/controls/scrollable/item-view/item-factory.h"\r
+#include "dali-toolkit/public-api/controls/scrollable/item-view/default-item-layout.h"\r
+#include "dali-toolkit/public-api/controls/text-controls/text-label.h"\r
+#include "dali-toolkit/public-api/visuals/gradient-visual-properties.h"\r
+#include <string_view>\r
+#include <cstring>\r
+#include <dirent.h>\r
+\r
+using namespace Dali;\r
+using namespace Dali::Toolkit;\r
+using namespace Dali::SceneLoader;\r
+\r
+namespace\r
+{\r
+\r
+const float ROTATION_SCALE = 0.05f;\r
+\r
+const float ITEM_HEIGHT = 50.f;\r
+\r
+const Vector3 CAMERA_DEFAULT_POSITION(0.0f, 0.0f, 3.5f);\r
+\r
+const std::string_view DLI_EXTENSION = ".dli";\r
+const std::string_view GLTF_EXTENSION = ".gltf";\r
+\r
+const std::string RESOURCE_TYPE_DIRS[]{\r
+  "images/",\r
+  "shaders/",\r
+  "models/",\r
+  "images/",\r
+};\r
+\r
+using StringVector = std::vector<std::string>;\r
+\r
+StringVector ListFiles(const std::string& path, bool(*predicate)(const char*) = [](const char*) { return true; })\r
+{\r
+  StringVector results;\r
+\r
+  if (auto dirp = opendir(path.c_str()))\r
+  {\r
+    std::unique_ptr<DIR, int(*)(DIR*)> dir(dirp, closedir);\r
+\r
+    struct dirent* ent;\r
+    while ((ent = readdir(dir.get())) != nullptr)\r
+    {\r
+      if (ent->d_type == DT_REG && predicate(ent->d_name))\r
+      {\r
+        results.push_back(ent->d_name);\r
+      }\r
+    }\r
+  }\r
+  return results;\r
+}\r
+\r
+TextLabel MakeLabel(std::string msg)\r
+{\r
+  TextLabel label = TextLabel::New(msg);\r
+  label.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS);\r
+  label.SetProperty(TextLabel::Property::TEXT_COLOR, Color::WHITE);\r
+  label.SetProperty(TextLabel::Property::PIXEL_SIZE, ITEM_HEIGHT * 4 / 7);\r
+  SetActorCentered(label);\r
+  return label;\r
+}\r
+\r
+struct ItemFactoryImpl : Dali::Toolkit::ItemFactory\r
+{\r
+  const std::vector<std::string>& mSceneNames;\r
+  TapGestureDetector mTapDetector;\r
+\r
+  ItemFactoryImpl(const std::vector<std::string>& sceneNames, TapGestureDetector tapDetector)\r
+  : mSceneNames(sceneNames),\r
+    mTapDetector(tapDetector)\r
+  {}\r
+\r
+  unsigned int GetNumberOfItems() override\r
+  {\r
+    return mSceneNames.size();\r
+  }\r
+\r
+  Actor NewItem(unsigned int itemId) override\r
+  {\r
+    auto label = MakeLabel(mSceneNames[itemId]);\r
+    mTapDetector.Attach(label);\r
+    return label;\r
+  }\r
+};\r
+\r
+Actor CreateErrorMessage(std::string msg)\r
+{\r
+  auto label = MakeLabel(msg);\r
+  label.SetProperty(TextLabel::Property::MULTI_LINE, true);\r
+  label.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, HorizontalAlignment::LEFT);\r
+  label.SetProperty(TextLabel::Property::VERTICAL_ALIGNMENT, VerticalAlignment::TOP);\r
+  return label;\r
+}\r
+\r
+void ConfigureCamera(const CameraParameters& params, CameraActor camera)\r
+{\r
+  if (params.isPerspective)\r
+  {\r
+    camera.SetProjectionMode(Camera::PERSPECTIVE_PROJECTION);\r
+    camera.SetNearClippingPlane(params.zNear);\r
+    camera.SetFarClippingPlane(params.zFar);\r
+    camera.SetFieldOfView(Radian(Degree(params.yFov)));\r
+  }\r
+  else\r
+  {\r
+    camera.SetProjectionMode(Camera::ORTHOGRAPHIC_PROJECTION);\r
+    camera.SetOrthographicProjection(params.orthographicSize.x,\r
+      params.orthographicSize.y,\r
+      params.orthographicSize.z,\r
+      params.orthographicSize.w,\r
+      params.zNear,\r
+      params.zFar);\r
+  }\r
+\r
+  // model\r
+  Vector3 camTranslation;\r
+  Vector3 camScale;\r
+  Quaternion camOrientation;\r
+  params.CalculateTransformComponents(camTranslation, camOrientation, camScale);\r
+\r
+  SetActorCentered(camera);\r
+  camera.SetInvertYAxis(true);\r
+  camera.SetProperty(Actor::Property::POSITION, camTranslation);\r
+  camera.SetProperty(Actor::Property::ORIENTATION, camOrientation);\r
+  camera.SetProperty(Actor::Property::SCALE, camScale);\r
+\r
+  camOrientation.Conjugate();\r
+}\r
+\r
+void ConfigureBlendShapeShaders(ResourceBundle& resources, const SceneDefinition& scene, Actor root,\r
+  std::vector<BlendshapeShaderConfigurationRequest>&& requests)\r
+{\r
+  std::vector<std::string> errors;\r
+  auto onError = [&errors](const std::string& msg) {\r
+    errors.push_back(msg);\r
+  };\r
+  if (!scene.ConfigureBlendshapeShaders(resources, root, std::move(requests), onError))\r
+  {\r
+    ExceptionFlinger flinger(ASSERT_LOCATION);\r
+    for (auto& msg : errors)\r
+    {\r
+      flinger << msg << '\n';\r
+    }\r
+  }\r
+}\r
+\r
+Actor LoadScene(std::string sceneName, CameraActor camera)\r
+{\r
+  ResourceBundle::PathProvider pathProvider = [](ResourceType::Value type) {\r
+    return Application::GetResourcePath() + RESOURCE_TYPE_DIRS[type];\r
+  };\r
+\r
+  auto path = pathProvider(ResourceType::Mesh) + sceneName;\r
+\r
+  ResourceBundle resources;\r
+  SceneDefinition scene;\r
+  std::vector<AnimationGroupDefinition> animGroups;\r
+  std::vector<CameraParameters> cameraParameters;\r
+  std::vector<LightParameters> lights;\r
+  std::vector<AnimationDefinition> animations;\r
+\r
+  LoadResult output{\r
+    resources,\r
+    scene,\r
+    animations,\r
+    animGroups,\r
+    cameraParameters,\r
+    lights\r
+  };\r
+\r
+  if (sceneName.rfind(DLI_EXTENSION) == sceneName.size() - DLI_EXTENSION.size())\r
+  {\r
+    DliLoader loader;\r
+    DliLoader::InputParams input{\r
+      pathProvider(ResourceType::Mesh),\r
+      nullptr,\r
+      {},\r
+      {},\r
+      nullptr,\r
+    };\r
+    DliLoader::LoadParams loadParams{ input, output };\r
+    if (!loader.LoadScene(path, loadParams))\r
+    {\r
+      ExceptionFlinger(ASSERT_LOCATION) << "Failed to load scene from '" << path << "': " << loader.GetParseError();\r
+    }\r
+  }\r
+  else\r
+  {\r
+    ShaderDefinitionFactory sdf;\r
+    sdf.SetResources(resources);\r
+    LoadGltfScene(path, sdf, output);\r
+\r
+    resources.mEnvironmentMaps.push_back({});\r
+  }\r
+\r
+  if (cameraParameters.empty())\r
+  {\r
+    cameraParameters.push_back(CameraParameters());\r
+    cameraParameters[0].matrix.SetTranslation(CAMERA_DEFAULT_POSITION);\r
+  }\r
+  ConfigureCamera(cameraParameters[0], camera);\r
+\r
+  ViewProjection viewProjection = cameraParameters[0].GetViewProjection();\r
+  Transforms xforms{\r
+    MatrixStack{},\r
+    viewProjection\r
+  };\r
+  NodeDefinition::CreateParams nodeParams{\r
+    resources,\r
+    xforms\r
+  };\r
+  Customization::Choices choices;\r
+\r
+  Actor root = Actor::New();\r
+  SetActorCentered(root);\r
+\r
+  for (auto iRoot : scene.GetRoots())\r
+  {\r
+    auto resourceRefs = resources.CreateRefCounter();\r
+    scene.CountResourceRefs(iRoot, choices, resourceRefs);\r
+    resources.CountEnvironmentReferences(resourceRefs);\r
+\r
+    resources.LoadResources(resourceRefs, pathProvider);\r
+\r
+    if (auto actor = scene.CreateNodes(iRoot, choices, nodeParams))\r
+    {\r
+      scene.ConfigureSkeletonJoints(iRoot, resources.mSkeletons, actor);\r
+      scene.ConfigureSkinningShaders(resources, actor, std::move(nodeParams.mSkinnables));\r
+      ConfigureBlendShapeShaders(resources, scene, actor, std::move(nodeParams.mBlendshapeRequests));\r
+\r
+      scene.ApplyConstraints(actor, std::move(nodeParams.mConstrainables));\r
+\r
+      root.Add(actor);\r
+    }\r
+  }\r
+\r
+  if (!animations.empty())\r
+  {\r
+    auto getActor = [&root](const std::string& name) {\r
+      return root.FindChildByName(name);\r
+    };\r
+\r
+    animations[0].ReAnimate(getActor).Play();\r
+  }\r
+\r
+  return root;\r
+}\r
+\r
+} // nonamespace\r
+\r
+SceneLoaderExample::SceneLoaderExample(Dali::Application& app)\r
+: mApp(app)\r
+{\r
+  if (!std::getenv("DALI_APPLICATION_PACKAGE"))\r
+  {\r
+    if (auto desktopPrefix = std::getenv("DESKTOP_PREFIX"))\r
+    {\r
+      std::stringstream sstr;\r
+      sstr << desktopPrefix << "/share/com.samsung.dali-demo/res/";\r
+\r
+      auto daliApplicationPackage = sstr.str();\r
+      setenv("DALI_APPLICATION_PACKAGE", daliApplicationPackage.c_str(), 0);\r
+    }\r
+  }\r
+\r
+  app.InitSignal().Connect(this, &SceneLoaderExample::OnInit);\r
+  app.TerminateSignal().Connect(this, &SceneLoaderExample::OnTerminate);\r
+}\r
+\r
+void SceneLoaderExample::OnInit(Application& app)\r
+{\r
+  // get scenes\r
+  auto resPath = Application::GetResourcePath();\r
+  auto scenePath = resPath + RESOURCE_TYPE_DIRS[ResourceType::Mesh];\r
+  auto sceneNames = ListFiles(scenePath, [](const char* name) {\r
+    auto len = strlen(name);\r
+    return (len > DLI_EXTENSION.size() && DLI_EXTENSION.compare(name + (len - DLI_EXTENSION.size())) == 0) ||\r
+      (len > GLTF_EXTENSION.size() && GLTF_EXTENSION.compare(name + (len - GLTF_EXTENSION.size())) == 0);\r
+  });\r
+  mSceneNames = sceneNames;\r
+\r
+  // create Dali objects\r
+  auto window = app.GetWindow();\r
+\r
+  // navigation view\r
+  auto navigationView = NavigationView::New();\r
+  navigationView.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS);\r
+  SetActorCentered(navigationView);\r
+\r
+  // Set up the background gradient.\r
+  Property::Array stopOffsets;\r
+  stopOffsets.PushBack(0.0f);\r
+  stopOffsets.PushBack(1.0f);\r
+  Property::Array stopColors;\r
+  stopColors.PushBack(Color::BLACK);\r
+  stopColors.PushBack(Vector4(0.45f, 0.7f, 0.8f, 1.f)); // Medium bright, pastel blue\r
+  const float percentageWindowHeight = window.GetSize().GetHeight() * 0.6f;\r
+\r
+  navigationView.SetProperty(Toolkit::Control::Property::BACKGROUND, Dali::Property::Map().\r
+    Add(Toolkit::Visual::Property::TYPE, Dali::Toolkit::Visual::GRADIENT).\r
+    Add(Toolkit::GradientVisual::Property::STOP_OFFSET, stopOffsets).\r
+    Add(Toolkit::GradientVisual::Property::STOP_COLOR, stopColors).\r
+    Add(Toolkit::GradientVisual::Property::START_POSITION, Vector2(0.f, -percentageWindowHeight)).\r
+    Add(Toolkit::GradientVisual::Property::END_POSITION, Vector2(0.f, percentageWindowHeight)).\r
+    Add(Toolkit::GradientVisual::Property::UNITS, Toolkit::GradientVisual::Units::USER_SPACE));\r
+  window.Add(navigationView);\r
+  mNavigationView = navigationView;\r
+\r
+  // item view\r
+  auto tapDetector = TapGestureDetector::New();\r
+  mItemFactory.reset(new ::ItemFactoryImpl(mSceneNames, tapDetector));\r
+\r
+  auto items = ItemView::New(*mItemFactory);\r
+  SetActorCentered(items);\r
+  items.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS);\r
+  items.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true);\r
+\r
+  Vector3 windowSize(window.GetSize());\r
+  auto itemLayout = DefaultItemLayout::New(DefaultItemLayout::LIST);\r
+  itemLayout->SetItemSize(Vector3(windowSize.x, ITEM_HEIGHT, 1.f));\r
+  items.AddLayout(*itemLayout);\r
+  navigationView.Push(items);\r
+\r
+  mItemLayout = itemLayout;\r
+  mItemView = items;\r
+\r
+  // camera\r
+  auto camera = CameraActor::New();\r
+  camera.SetInvertYAxis(true);\r
+  window.Add(camera);\r
+  mSceneCamera = camera;\r
+\r
+  // event handling\r
+  window.KeyEventSignal().Connect(this, &SceneLoaderExample::OnKey);\r
+\r
+  tapDetector.DetectedSignal().Connect(this, &SceneLoaderExample::OnTap);\r
+  mTapDetector = tapDetector;\r
+\r
+  // activate layout\r
+  mItemView.ActivateLayout(0, windowSize, 1.f);\r
+}\r
+\r
+void SceneLoaderExample::OnTerminate(Application& app)\r
+{\r
+  mTapDetector.Reset();\r
+  mPanDetector.Reset();\r
+\r
+  auto window = app.GetWindow();\r
+  auto renderTasks = window.GetRenderTaskList();\r
+  renderTasks.RemoveTask(mSceneRender);\r
+  mSceneRender.Reset();\r
+\r
+  UnparentAndReset(mNavigationView);\r
+  UnparentAndReset(mSceneCamera);\r
+\r
+  mItemFactory.reset();\r
+}\r
+\r
+void SceneLoaderExample::OnKey(const KeyEvent& e)\r
+{\r
+  if (e.GetState() == KeyEvent::UP)\r
+  {\r
+    if (IsKey(e, DALI_KEY_ESCAPE) || IsKey(e, DALI_KEY_BACK))\r
+    {\r
+      if (mScene)\r
+      {\r
+        mPanDetector.Reset();\r
+\r
+        mNavigationView.Pop();\r
+        mScene.Reset();\r
+      }\r
+      else\r
+      {\r
+        mApp.Quit();\r
+      }\r
+    }\r
+  }\r
+}\r
+\r
+void SceneLoaderExample::OnPan(Actor actor, const PanGesture& pan)\r
+{\r
+  auto windowSize = mApp.GetWindow().GetSize();\r
+  Vector2 size{ float(windowSize.GetWidth()), float(windowSize.GetHeight()) };\r
+  float aspect = size.y / size.x;\r
+\r
+  size *= ROTATION_SCALE;\r
+\r
+  Vector2 rotation{ pan.GetDisplacement().x / size.x, pan.GetDisplacement().y / size.y * aspect };\r
+\r
+  Quaternion q = Quaternion(Radian(rotation.y), Radian(rotation.x), Radian(0.f));\r
+  Quaternion q0 = mScene.GetProperty(Actor::Property::ORIENTATION).Get<Quaternion>();\r
+\r
+  mScene.SetProperty(Actor::Property::ORIENTATION, q * q0);\r
+}\r
+\r
+void SceneLoaderExample::OnTap(Dali::Actor actor, const Dali::TapGesture& tap)\r
+{\r
+  auto id = mItemView.GetItemId(actor);\r
+\r
+  try\r
+  {\r
+    auto window = mApp.GetWindow();\r
+    auto renderTasks = window.GetRenderTaskList();\r
+    renderTasks.RemoveTask(mSceneRender);\r
+\r
+    auto scene = LoadScene(mSceneNames[id], mSceneCamera);\r
+\r
+    auto sceneRender = renderTasks.CreateTask();\r
+    sceneRender.SetCameraActor(mSceneCamera);\r
+    sceneRender.SetSourceActor(scene);\r
+    sceneRender.SetExclusive(true);\r
+\r
+    mScene = scene;\r
+    mSceneRender = sceneRender;\r
+\r
+    mPanDetector = PanGestureDetector::New();\r
+    mPanDetector.DetectedSignal().Connect(this, &SceneLoaderExample::OnPan);\r
+    mPanDetector.Attach(mNavigationView);\r
+  }\r
+  catch (const DaliException& e)\r
+  {\r
+    mScene = CreateErrorMessage(e.condition);\r
+  }\r
+\r
+  mNavigationView.Push(mScene);\r
+}\r
diff --git a/examples/scene-loader/scene-loader-example.h b/examples/scene-loader/scene-loader-example.h
new file mode 100644 (file)
index 0000000..e7183d8
--- /dev/null
@@ -0,0 +1,69 @@
+#ifndef SCENE_LAUNCHER_H_\r
+#define SCENE_LAUNCHER_H_\r
+/*\r
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ *\r
+ */\r
+#include "dali-scene-loader/public-api/animation-definition.h"\r
+#include "dali-scene-loader/public-api/scene-definition.h"\r
+#include "dali-scene-loader/public-api/node-definition.h"\r
+#include "dali-scene-loader/public-api/camera-parameters.h"\r
+#include "dali/public-api/common/vector-wrapper.h"\r
+#include "dali/public-api/events/pan-gesture-detector.h"\r
+#include "dali/public-api/actors/camera-actor.h"\r
+#include "dali/public-api/render-tasks/render-task.h"\r
+#include "dali/public-api/signals/connection-tracker.h"\r
+#include "dali/public-api/adaptor-framework/application.h"\r
+#include "dali-toolkit/public-api/controls/scrollable/item-view/item-view.h"\r
+#include "dali-toolkit/public-api/controls/scrollable/item-view/item-layout.h"\r
+#include "dali-toolkit/public-api/controls/scrollable/item-view/item-factory.h"\r
+#include "dali-toolkit/devel-api/controls/navigation-view/navigation-view.h"\r
+\r
+class SceneLoaderExample : public Dali::ConnectionTracker\r
+{\r
+public:\r
+  SceneLoaderExample(Dali::Application& app);\r
+  ~SceneLoaderExample() = default;\r
+\r
+private:  // data\r
+  Dali::Application& mApp;\r
+\r
+  std::vector<std::string> mSceneNames;\r
+\r
+  Dali::Toolkit::NavigationView mNavigationView;\r
+\r
+  std::unique_ptr<Dali::Toolkit::ItemFactory> mItemFactory;\r
+  Dali::Toolkit::ItemLayoutPtr mItemLayout;\r
+  Dali::Toolkit::ItemView mItemView;\r
+\r
+  Dali::CameraActor mSceneCamera;\r
+  Dali::RenderTask mSceneRender;\r
+  Dali::Actor mScene;\r
+\r
+  Dali::Quaternion mCameraOrientationInv;\r
+\r
+  Dali::TapGestureDetector mTapDetector;\r
+  Dali::PanGestureDetector  mPanDetector;\r
+\r
+private:  // methods\r
+  void OnInit(Dali::Application& app);\r
+  void OnTerminate(Dali::Application& app);\r
+\r
+  void OnKey(const Dali::KeyEvent& e);\r
+  void OnPan(Dali::Actor actor, const Dali::PanGesture& pan);\r
+  void OnTap(Dali::Actor actor, const Dali::TapGesture& tap);\r
+};\r
+\r
+#endif  //SCENE_LAUNCHER_H_\r
index 8428c2c..648dfa7 100755 (executable)
@@ -21,6 +21,7 @@ BuildRequires:  gettext-tools
 BuildRequires:  pkgconfig(dali2-core)
 BuildRequires:  pkgconfig(dali2-adaptor)
 BuildRequires:  pkgconfig(dali2-toolkit)
+BuildRequires:  pkgconfig(dali2-scene-loader)
 BuildRequires:  pkgconfig(libtzplatform-config)
 
 %description
diff --git a/resources/images/Studio/Irradiance.ktx b/resources/images/Studio/Irradiance.ktx
new file mode 100644 (file)
index 0000000..df24c05
Binary files /dev/null and b/resources/images/Studio/Irradiance.ktx differ
diff --git a/resources/images/Studio/Radiance.ktx b/resources/images/Studio/Radiance.ktx
new file mode 100644 (file)
index 0000000..51aa681
Binary files /dev/null and b/resources/images/Studio/Radiance.ktx differ
diff --git a/resources/images/beer/etiqueta.jpg b/resources/images/beer/etiqueta.jpg
new file mode 100644 (file)
index 0000000..5464ffa
Binary files /dev/null and b/resources/images/beer/etiqueta.jpg differ
diff --git a/resources/images/exercise/Icons/Icon_Idle.png b/resources/images/exercise/Icons/Icon_Idle.png
new file mode 100644 (file)
index 0000000..ee10734
Binary files /dev/null and b/resources/images/exercise/Icons/Icon_Idle.png differ
diff --git a/resources/images/exercise/Icons/Icon_JJ.png b/resources/images/exercise/Icons/Icon_JJ.png
new file mode 100644 (file)
index 0000000..1c690f5
Binary files /dev/null and b/resources/images/exercise/Icons/Icon_JJ.png differ
diff --git a/resources/images/exercise/Icons/Icon_Lunge.png b/resources/images/exercise/Icons/Icon_Lunge.png
new file mode 100644 (file)
index 0000000..8853b14
Binary files /dev/null and b/resources/images/exercise/Icons/Icon_Lunge.png differ
diff --git a/resources/images/exercise/Icons/Icon_Squat.png b/resources/images/exercise/Icons/Icon_Squat.png
new file mode 100644 (file)
index 0000000..f4f8ce3
Binary files /dev/null and b/resources/images/exercise/Icons/Icon_Squat.png differ
diff --git a/resources/images/exercise/Textures/BG_AlbedoMetallic.png b/resources/images/exercise/Textures/BG_AlbedoMetallic.png
new file mode 100644 (file)
index 0000000..45489d2
Binary files /dev/null and b/resources/images/exercise/Textures/BG_AlbedoMetallic.png differ
diff --git a/resources/images/exercise/Textures/BG_NormalRoughness.png b/resources/images/exercise/Textures/BG_NormalRoughness.png
new file mode 100644 (file)
index 0000000..52cb66d
Binary files /dev/null and b/resources/images/exercise/Textures/BG_NormalRoughness.png differ
diff --git a/resources/images/exercise/Textures/Body_AlbedoMetallic.png b/resources/images/exercise/Textures/Body_AlbedoMetallic.png
new file mode 100644 (file)
index 0000000..d8211a6
Binary files /dev/null and b/resources/images/exercise/Textures/Body_AlbedoMetallic.png differ
diff --git a/resources/images/exercise/Textures/Body_Female_Asian_Adult_SubsurfaceColor.png b/resources/images/exercise/Textures/Body_Female_Asian_Adult_SubsurfaceColor.png
new file mode 100644 (file)
index 0000000..8df1878
Binary files /dev/null and b/resources/images/exercise/Textures/Body_Female_Asian_Adult_SubsurfaceColor.png differ
diff --git a/resources/images/exercise/Textures/Body_NormalRoughness.png b/resources/images/exercise/Textures/Body_NormalRoughness.png
new file mode 100644 (file)
index 0000000..91d02cb
Binary files /dev/null and b/resources/images/exercise/Textures/Body_NormalRoughness.png differ
diff --git a/resources/images/exercise/Textures/Eye_AlbedoMetallic.png b/resources/images/exercise/Textures/Eye_AlbedoMetallic.png
new file mode 100644 (file)
index 0000000..0137f24
Binary files /dev/null and b/resources/images/exercise/Textures/Eye_AlbedoMetallic.png differ
diff --git a/resources/images/exercise/Textures/Eye_NormalRoughness.png b/resources/images/exercise/Textures/Eye_NormalRoughness.png
new file mode 100644 (file)
index 0000000..9d5971b
Binary files /dev/null and b/resources/images/exercise/Textures/Eye_NormalRoughness.png differ
diff --git a/resources/images/exercise/Textures/FitBot_AlbedoMetallic.png b/resources/images/exercise/Textures/FitBot_AlbedoMetallic.png
new file mode 100644 (file)
index 0000000..d70a3de
Binary files /dev/null and b/resources/images/exercise/Textures/FitBot_AlbedoMetallic.png differ
diff --git a/resources/images/exercise/Textures/FitBot_NormalRoughness.png b/resources/images/exercise/Textures/FitBot_NormalRoughness.png
new file mode 100644 (file)
index 0000000..fd47924
Binary files /dev/null and b/resources/images/exercise/Textures/FitBot_NormalRoughness.png differ
diff --git a/resources/images/exercise/Textures/FitTop_AlbedoMetallic.png b/resources/images/exercise/Textures/FitTop_AlbedoMetallic.png
new file mode 100644 (file)
index 0000000..f19e93c
Binary files /dev/null and b/resources/images/exercise/Textures/FitTop_AlbedoMetallic.png differ
diff --git a/resources/images/exercise/Textures/FitTop_NormalRoughness.png b/resources/images/exercise/Textures/FitTop_NormalRoughness.png
new file mode 100644 (file)
index 0000000..6c3e743
Binary files /dev/null and b/resources/images/exercise/Textures/FitTop_NormalRoughness.png differ
diff --git a/resources/images/exercise/Textures/Hair_AlbedoMetallic.png b/resources/images/exercise/Textures/Hair_AlbedoMetallic.png
new file mode 100644 (file)
index 0000000..8b96834
Binary files /dev/null and b/resources/images/exercise/Textures/Hair_AlbedoMetallic.png differ
diff --git a/resources/images/exercise/Textures/Hair_NormalRoughness.png b/resources/images/exercise/Textures/Hair_NormalRoughness.png
new file mode 100644 (file)
index 0000000..9d643ab
Binary files /dev/null and b/resources/images/exercise/Textures/Hair_NormalRoughness.png differ
diff --git a/resources/images/exercise/Textures/Head_AlbedoMetallic.png b/resources/images/exercise/Textures/Head_AlbedoMetallic.png
new file mode 100644 (file)
index 0000000..568a115
Binary files /dev/null and b/resources/images/exercise/Textures/Head_AlbedoMetallic.png differ
diff --git a/resources/images/exercise/Textures/Head_Female_SubsurfaceColor.png b/resources/images/exercise/Textures/Head_Female_SubsurfaceColor.png
new file mode 100644 (file)
index 0000000..609ce5b
Binary files /dev/null and b/resources/images/exercise/Textures/Head_Female_SubsurfaceColor.png differ
diff --git a/resources/images/exercise/Textures/Head_NormalRoughness.png b/resources/images/exercise/Textures/Head_NormalRoughness.png
new file mode 100644 (file)
index 0000000..b2eb952
Binary files /dev/null and b/resources/images/exercise/Textures/Head_NormalRoughness.png differ
diff --git a/resources/images/exercise/Textures/Shoe_AlbedoMetallic.png b/resources/images/exercise/Textures/Shoe_AlbedoMetallic.png
new file mode 100644 (file)
index 0000000..6bf07f9
Binary files /dev/null and b/resources/images/exercise/Textures/Shoe_AlbedoMetallic.png differ
diff --git a/resources/images/exercise/Textures/Shoe_NormalRoughness.png b/resources/images/exercise/Textures/Shoe_NormalRoughness.png
new file mode 100644 (file)
index 0000000..f953ec0
Binary files /dev/null and b/resources/images/exercise/Textures/Shoe_NormalRoughness.png differ
diff --git a/resources/models/arc.dli b/resources/models/arc.dli
new file mode 100644 (file)
index 0000000..ccc634f
--- /dev/null
@@ -0,0 +1,35 @@
+{
+  "scene": 0,
+  "scenes": [ { "nodes": [ 0 ] } ],
+  "nodes": [ {
+    "name": "root",
+    "children": [ 1 ]
+  }, {
+    "name": "arc",
+    "size": [ 2.0, 2.0 ],
+    "color": [ 0.5, 1.0, 0.5, 0.5 ],
+    "arc": {
+      "shader": 0,
+      "mesh": 0,
+      "startAngle" : -45.0,
+      "endAngle" : 135.0,
+      "radius" : -0.75,
+      "arcCaps": 3
+    }
+  } ],
+  "environment": [ {
+  } ],
+  "meshes": [ {
+    "uri": "quad",
+    "attributes": 0
+  } ],
+  "materials": [ {
+  } ],
+  "shaders": [ {
+    "vertex": "dli_arc.vsh",
+    "fragment": "dli_arc.fsh",
+    "rendererState" : "ALPHA_BLEND",
+    "startAngle": [ -1.0, 0.0 ],
+    "endAngle": [ 1.0, 0.0 ]
+  } ]
+}
diff --git a/resources/models/beer.dli b/resources/models/beer.dli
new file mode 100644 (file)
index 0000000..86e9eb3
--- /dev/null
@@ -0,0 +1,186 @@
+{
+  "asset": { "version": "1.0" },
+  "scene": 0,
+  "scenes": [ { "nodes": [ 0 ] } ],
+  "nodes": [
+    {
+      "name": "Scene",
+      "matrix": [ 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1 ],
+      "children": [ 1, 2 ]
+    },
+    {
+      "name": "Cube",
+      "matrix": [ 2.5, 0, 0, 0, 0, 2.5, 0, 0, 0, 0, 2.5, 0, 0, 0, 0, 1 ],
+      "model": {
+        "mesh": 0,
+        "material": 0,
+        "shader": 0
+      }
+    },
+    {
+      "name": "bottle",
+      "matrix": [ 0.125, 0, 0, 0, 0, -0, 0.125, 0, 0, -0.125, -0, 0, -0, 0, -1.5, 1 ],
+      "children": [ 3, 4, 5, 6 ]
+    },
+    {
+      "name": "bottle-cap",
+      "model": {
+        "mesh": 3,
+        "material": 3,
+        "shader": 1
+      }
+    },
+    {
+      "name": "bottle-alpha-front",
+      "model": {
+        "mesh": 1,
+        "material": 1,
+        "shader": 2
+      }
+    },
+    {
+      "name": "bottle-alpha-back",
+      "model": {
+        "mesh": 1,
+        "material": 1,
+        "shader": 3
+      }
+    },
+    {
+      "name": "bottle-label",
+      "model": {
+        "mesh": 2,
+        "material": 2,
+        "shader": 4
+      }
+    }
+  ],
+  "meshes": [
+    {
+      "uri": "beer/cube.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 0, "byteLength": 72 },
+      "positions": { "byteOffset": 72, "byteLength": 288 },
+      "normals": { "byteOffset": 360, "byteLength": 288 },
+      "textures": { "byteOffset": 648, "byteLength": 192 },
+      "tangents": { "byteOffset": 840, "byteLength": 288 }
+    },
+    {
+      "uri": "beer/beer.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 0, "byteLength": 19920 },
+      "positions": { "byteOffset": 19920, "byteLength": 54792 },
+      "normals": { "byteOffset": 74712, "byteLength": 54792 },
+      "textures": { "byteOffset": 129504, "byteLength": 36528 },
+      "tangents": { "byteOffset": 166032, "byteLength": 54792 }
+    },
+    {
+      "uri": "beer/beer.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 220824, "byteLength": 13200 },
+      "positions": { "byteOffset": 234024, "byteLength": 14628 },
+      "normals": { "byteOffset": 248652, "byteLength": 14628 },
+      "textures": { "byteOffset": 263280, "byteLength": 9752 },
+      "tangents": { "byteOffset": 273032, "byteLength": 14628 }
+    },
+    {
+      "uri": "beer/beer.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 287660, "byteLength": 31440 },
+      "positions": { "byteOffset": 319100, "byteLength": 121032 },
+      "normals": { "byteOffset": 440132, "byteLength": 121032 },
+      "textures": { "byteOffset": 561164, "byteLength": 80688 },
+      "tangents": { "byteOffset": 641852, "byteLength": 121032 }
+    }
+  ],
+  "skeletons": [
+  ],
+  "cameras": [
+    {
+      "fov": 60,
+      "near": 0.1,
+      "far": 100,
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 3.5, 1 ]
+    }
+  ],
+  "lights": [
+  ],
+  "materials": [
+    {
+      "color": [ 1.0, 0.95, 0.5 ],
+      "metallic": 0.25,
+      "roughness": 1.0,
+      "environment": 1
+    },
+    {
+      "color": [ 0.1, 0.4, 0.0, 0.6 ],
+      "metallic": 0.4,
+      "roughness": 0.0,
+      "environment": 1
+    },
+    {
+      "albedoMap": "beer/etiqueta.jpg",
+      "roughness": 0.5,
+      "environment": 1
+    },
+    {
+      "color": [ 0.5, 0.5, 0.5 ],
+      "metallic": 1.0,
+      "roughness": 0.0,
+      "environment": 1
+    }
+  ],
+  "environment": [
+    {
+    },
+    {
+      "cubeSpecular": "Studio/Radiance.ktx",
+      "cubeDiffuse": "Studio/Irradiance.ktx",
+      "iblIntensity": 0.75
+    }
+  ],
+  "shaders": [
+    {
+      "vertex": "dli_pbr.vsh",
+      "fragment": "dli_pbr.fsh",
+      "rendererState": "DEPTH_TEST|CULL_FRONT",
+      "uCubeMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
+      "uMaxLOD": 6
+    },
+    {
+      "vertex": "dli_pbr.vsh",
+      "fragment": "dli_pbr.fsh",
+      "rendererState": "DEPTH_TEST|DEPTH_WRITE",
+      "uCubeMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
+      "uMaxLOD": 6
+    },
+    {
+      "vertex": "dli_pbr.vsh",
+      "fragment": "dli_pbr.fsh",
+      "defines": [ "THREE_TEX" ],
+      "rendererState": "ALPHA_BLEND|DEPTH_TEST|CULL_FRONT",
+      "uCubeMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
+      "uMaxLOD": 6
+    },
+    {
+      "vertex": "dli_pbr.vsh",
+      "fragment": "dli_pbr.fsh",
+      "defines": [ "THREE_TEX" ],
+      "rendererState": "ALPHA_BLEND|DEPTH_TEST|CULL_BACK",
+      "uCubeMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
+      "uMaxLOD": 6
+    },
+    {
+      "vertex": "dli_pbr.vsh",
+      "fragment": "dli_pbr.fsh",
+      "defines": [ "FLIP_V" ],
+      "rendererState": "DEPTH_TEST|DEPTH_WRITE|CULL_BACK",
+      "uCubeMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
+      "uMaxLOD": 6
+    }
+  ]
+}
diff --git a/resources/models/beer/beer.bin b/resources/models/beer/beer.bin
new file mode 100644 (file)
index 0000000..08571fd
Binary files /dev/null and b/resources/models/beer/beer.bin differ
diff --git a/resources/models/beer/cube.bin b/resources/models/beer/cube.bin
new file mode 100644 (file)
index 0000000..f5bd426
Binary files /dev/null and b/resources/models/beer/cube.bin differ
diff --git a/resources/models/error.dli b/resources/models/error.dli
new file mode 100644 (file)
index 0000000..f7b7c89
--- /dev/null
@@ -0,0 +1,3 @@
+{
+  "scene": 0,
+}
\ No newline at end of file
diff --git a/resources/models/exercise.dli b/resources/models/exercise.dli
new file mode 100644 (file)
index 0000000..c2cbba4
--- /dev/null
@@ -0,0 +1,11701 @@
+{
+    "metadata" : [ {
+        "key" : "clock-type",
+        "value" : "com.samsung.watchface-01"
+    }, {
+        "key" : "tickpersecond",
+        "value" : "1"
+    }, {
+        "key" : "preview_time",
+        "value" : "10:08:32"
+    }, {
+        "key" : "tilt-mode",
+        "value" : "light"
+    }, {
+               "key" : "depth-sorted-3d",
+               "value" : "false"
+       } ],
+    "asset" : {
+        "version" : "1.0"
+    },
+    "scene" : 1,
+    "scenes" : [ {
+        "nodes" : [ 0 ]
+    }, {
+        "nodes" : [ 95 ]
+    } ],
+    "nodes" : [ {
+        "name" : "ExerciseDemo",
+        "matrix" : [ 0.01, 0.0, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "children" : [ 1, 79, 88, 91, 92, 93, 94 ],
+        "behavior" : [ 4 ],
+        "visible" : true,
+        "lightingMode" : "lit"
+    }, {
+        "name" : "ReferenceShape_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "children" : [ 2 ],
+        "visible" : true
+    }, {
+        "name" : "hips_JNT",
+        "matrix" : [ 0.984536, 0.175182, 0.0, 0.0, -0.175122, 0.984198, 0.026198, 0.0, 0.004589, -0.025793, 0.999657, 0.0, 5.27538, 78.6471, -1.41421, 1.0 ],
+        "children" : [ 3, 69, 74 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.013219, -80.0521, 1.41421, 1.0 ]
+    }, {
+        "name" : "spine_JNT",
+        "matrix" : [ 0.984536, -0.175122, 0.004589, 0.0, 0.174502, 0.982682, 0.062338, 0.0, -0.015426, -0.060573, 0.998044, 0.0, 0.015846, 4.13037, 0.166239, 1.0 ],
+        "children" : [ 4 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -0.002627, -84.1824, 1.24797, 1.0 ]
+    }, {
+        "name" : "spine1_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 0.998172, -0.06044, 0.0, 0.0, 0.06044, 0.998172, 0.0, 0.005973, 10.694, 0.968772, 1.0 ],
+        "children" : [ 5 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -0.0086, -94.8764, 0.279197, 1.0 ]
+    }, {
+        "name" : "spine2_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 0.998172, -0.06044, 0.0, 0.0, 0.06044, 0.998172, 0.0, 0.0, 10.1532, -0.580362, 1.0 ],
+        "children" : [ 6, 30, 54 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -0.008557, -105.03, 0.859559, 1.0 ]
+    }, {
+        "name" : "l_shoulder_JNT",
+        "matrix" : [ 0.949195, 0.273744, -0.155217, 0.0, -0.201691, 0.907824, 0.367663, 0.0, 0.241555, -0.317678, 0.916914, 0.0, 2.88666, 12.5391, -0.534974, 1.0 ],
+        "children" : [ 7 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -2.89521, -117.569, 1.39453, 1.0 ]
+    }, {
+        "name" : "l_arm_JNT",
+        "matrix" : [ 0.421571, -0.904401, -0.065849, 0.0, 0.517137, 0.180132, 0.836733, 0.0, -0.744881, -0.386795, 0.543638, 0.0, 10.2653, 0.0, 0.0, 1.0 ],
+        "children" : [ 8 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -13.1738, -116.164, 1.39451, 1.0 ]
+    }, {
+        "name" : "l_forearm_JNT",
+        "matrix" : [ -0.073871, 0.0, 0.997268, 0.0, -3.91E-4, 1.0, 0.0, 0.0, -0.997268, -3.93E-4, -0.073871, 0.0, 25.5729, 0.0, 0.0, 1.0 ],
+        "children" : [ 9 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -38.7466, -116.164, 1.39451, 1.0 ]
+    }, {
+        "name" : "l_hand_JNT",
+        "matrix" : [ 0.738915, 0.444766, -0.506149, 0.0, -0.59918, 0.777334, -0.191665, 0.0, 0.308201, 0.444898, 0.840879, 0.0, 19.8068, -0.345714, 1.00359, 1.0 ],
+        "children" : [ 10, 14, 18, 22, 26 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -58.5534, -115.818, 0.390923, 1.0 ]
+    }, {
+        "name" : "l_handThumb1_JNT",
+        "matrix" : [ 0.782913, -0.117863, 0.610865, 0.0, 0.011962, 0.984561, 0.174635, 0.0, -0.622017, -0.129417, 0.772235, 0.0, 2.27648, -1.65194, 3.31969, 1.0 ],
+        "children" : [ 11 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 0.707107, 0.0, -0.707107, 0.0, 0.0, 1.0, 0.0, 0.0, 0.707107, 0.0, 0.707107, 0.0, -45.0842, -114.166, 40.9423, 1.0 ]
+    }, {
+        "name" : "l_handThumb2_JNT",
+        "matrix" : [ 0.830425, -0.487404, -0.269872, 0.0, 0.464771, 0.873169, -0.146844, 0.0, 0.307216, -0.003486, 0.951633, 0.0, 3.0735, 0.0, 0.0, 1.0 ],
+        "children" : [ 12 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 0.707107, 0.0, -0.707108, 0.0, 0.0, 1.0, 0.0, 0.0, 0.707108, 0.0, 0.707107, 0.0, -48.1577, -114.166, 40.9423, 1.0 ]
+    }, {
+        "name" : "l_handThumb3_JNT",
+        "matrix" : [ 0.98882, -0.149117, 0.0, 0.0, 0.149117, 0.98882, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 3.37693, 0.0, 0.0, 1.0 ],
+        "children" : [ 13 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 0.707107, 0.0, -0.707108, 0.0, 0.0, 1.0, 0.0, 0.0, 0.707107, 0.0, 0.707107, 0.0, -51.5344, -114.166, 40.9423, 1.0 ]
+    }, {
+        "name" : "l_handThumb4_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 3.92326, 0.0, 0.0, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "l_handIndex1_JNT",
+        "matrix" : [ 0.904938, -0.425377, 0.011949, 0.0, 0.425382, 0.905011, 0.002209, 0.0, -0.011754, 0.003084, 1.0, 0.0, 9.34022, -0.291901, 4.04881, 1.0 ],
+        "children" : [ 15 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -67.8936, -115.526, -3.65789, 1.0 ]
+    }, {
+        "name" : "l_handIndex2_JNT",
+        "matrix" : [ 0.973047, -0.230606, 0.0, 0.0, 0.230606, 0.973047, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 4.09938, 0.0, 0.0, 1.0 ],
+        "children" : [ 16 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -71.993, -115.526, -3.65788, 1.0 ]
+    }, {
+        "name" : "l_handIndex3_JNT",
+        "matrix" : [ 0.973047, -0.230606, 0.0, 0.0, 0.230606, 0.973047, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.57415, 0.0, 0.0, 1.0 ],
+        "children" : [ 17 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -74.5672, -115.526, -3.65788, 1.0 ]
+    }, {
+        "name" : "l_handIndex4_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.56603, 0.0, 0.0, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "l_handPinky1_JNT",
+        "matrix" : [ 0.996226, -0.081261, -0.030513, 0.0, 0.081431, 0.996669, 0.004384, 0.0, 0.030055, -0.006852, 0.999525, 0.0, 8.45263, -1.52385, -3.88068, 1.0 ],
+        "children" : [ 19 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -67.0061, -114.294, 4.2716, 1.0 ]
+    }, {
+        "name" : "l_handPinky2_JNT",
+        "matrix" : [ 0.973047, -0.230606, 0.0, 0.0, 0.230606, 0.973047, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 3.07304, 0.0, 0.0, 1.0 ],
+        "children" : [ 20 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -70.0791, -114.294, 4.2716, 1.0 ]
+    }, {
+        "name" : "l_handPinky3_JNT",
+        "matrix" : [ 0.973047, -0.230606, 0.0, 0.0, 0.230606, 0.973047, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.96712, 0.0, 0.0, 1.0 ],
+        "children" : [ 21 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -72.0462, -114.294, 4.27159, 1.0 ]
+    }, {
+        "name" : "l_handPinky4_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.8257, 0.0, 0.0, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "l_handRing1_JNT",
+        "matrix" : [ 0.980994, -0.191551, 0.030976, 0.0, 0.19168, 0.981457, -0.001225, 0.0, -0.030167, 0.007139, 0.999519, 0.0, 9.86254, -0.583908, -1.401, 1.0 ],
+        "children" : [ 23 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -68.416, -115.234, 1.79193, 1.0 ]
+    }, {
+        "name" : "l_handRing2_JNT",
+        "matrix" : [ 0.973047, -0.230606, 0.0, 0.0, 0.230606, 0.973047, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 3.90873, 0.0, 0.0, 1.0 ],
+        "children" : [ 24 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -72.3247, -115.234, 1.79192, 1.0 ]
+    }, {
+        "name" : "l_handRing3_JNT",
+        "matrix" : [ 0.973047, -0.230606, 0.0, 0.0, 0.230606, 0.973047, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.36478, 0.0, 0.0, 1.0 ],
+        "children" : [ 25 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -74.6895, -115.234, 1.79192, 1.0 ]
+    }, {
+        "name" : "l_handRing4_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.88243, 0.0, 0.0, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "l_handMiddle1_JNT",
+        "matrix" : [ 0.953413, -0.301668, 0.0, 0.0, 0.301668, 0.953413, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 10.0737, -0.408325, 1.31404, 1.0 ],
+        "children" : [ 27 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -68.6272, -115.41, -0.923121, 1.0 ]
+    }, {
+        "name" : "l_handMiddle2_JNT",
+        "matrix" : [ 0.973047, -0.230606, 0.0, 0.0, 0.230606, 0.973047, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 4.2249, 0.0, 0.0, 1.0 ],
+        "children" : [ 28 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -72.8521, -115.41, -0.923118, 1.0 ]
+    }, {
+        "name" : "l_handMiddle3_JNT",
+        "matrix" : [ 0.973047, -0.230606, 0.0, 0.0, 0.230606, 0.973048, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.46916, 0.0, 0.0, 1.0 ],
+        "children" : [ 29 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -75.3213, -115.41, -0.923117, 1.0 ]
+    }, {
+        "name" : "l_handMiddle4_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 3.28131, 0.0, 0.0, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "r_shoulder_JNT",
+        "matrix" : [ 0.999696, 0.01745, -0.017452, 0.0, -0.017145, 0.999701, 0.01745, 0.0, 0.017751, -0.017145, 0.999696, 0.0, -2.88677, 12.5391, -0.53497, 1.0 ],
+        "children" : [ 31 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.87821, -117.569, 1.39453, 1.0 ]
+    }, {
+        "name" : "r_arm_JNT",
+        "matrix" : [ 0.148671, 0.988778, -0.014664, 0.0, -0.988733, 0.14837, -0.019851, 0.0, -0.017453, 0.01745, 0.999695, 0.0, -10.2653, 0.0, 0.0, 1.0 ],
+        "children" : [ 32 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 13.1303, -116.164, 1.39455, 1.0 ]
+    }, {
+        "name" : "r_forearm_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 4.01E-4, 0.0, 0.0, -4.01E-4, 1.0, 0.0, -25.5729, 0.0, 0.0, 1.0 ],
+        "children" : [ 33 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 38.7032, -116.164, 1.39456, 1.0 ]
+    }, {
+        "name" : "r_hand_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, -4.01E-4, 0.0, 0.0, 4.01E-4, 1.0, 0.0, -19.807, -0.346, 1.00358, 1.0 ],
+        "children" : [ 34, 38, 42, 46, 50 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 58.5102, -115.818, 0.390979, 1.0 ]
+    }, {
+        "name" : "r_handThumb1_JNT",
+        "matrix" : [ 0.653433, 0.24549, -0.716073, 0.0, -0.244838, 0.963648, 0.106945, 0.0, 0.716296, 0.105441, 0.689785, 0.0, -2.27647, -1.65195, 3.31969, 1.0 ],
+        "children" : [ 35 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 0.707106, 0.0, 0.707106, 0.0, 0.0, 1.0, 0.0, 0.0, -0.707106, 0.0, 0.707106, 0.0, 45.0536, -114.166, 40.9117, 1.0 ]
+    }, {
+        "name" : "r_handThumb2_JNT",
+        "matrix" : [ 0.867302, 0.0, 0.497783, 0.0, 0.0, 1.0, 0.0, 0.0, -0.497783, 0.0, 0.867301, 0.0, -3.0735, 0.0, 0.0, 1.0 ],
+        "children" : [ 36 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 0.707106, 0.0, 0.707106, 0.0, 0.0, 1.0, 0.0, 0.0, -0.707106, 0.0, 0.707106, 0.0, 48.127, -114.166, 40.9117, 1.0 ]
+    }, {
+        "name" : "r_handThumb3_JNT",
+        "matrix" : [ 0.996311, 0.0, 0.085813, 0.0, 0.0, 1.0, 0.0, 0.0, -0.085813, 0.0, 0.996311, 0.0, -3.37693, 0.0, 0.0, 1.0 ],
+        "children" : [ 37 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 0.707106, 0.0, 0.707107, 0.0, 0.0, 1.0, 0.0, 0.0, -0.707106, 0.0, 0.707107, 0.0, 51.504, -114.166, 40.9117, 1.0 ]
+    }, {
+        "name" : "r_handThumb4_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -3.923, 0.0, 0.0, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "r_handRing1_JNT",
+        "matrix" : [ 0.915131, 0.400047, -0.049976, 0.0, -0.400717, 0.916194, -0.003754, 0.0, 0.044286, 0.023462, 0.998743, 0.0, -9.86253, -0.583984, -1.40101, 1.0 ],
+        "children" : [ 39 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 68.3727, -115.234, 1.79199, 1.0 ]
+    }, {
+        "name" : "r_handRing2_JNT",
+        "matrix" : [ 0.94204, 0.335501, 0.0, 0.0, -0.335501, 0.94204, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -3.90872, 0.0, 0.0, 1.0 ],
+        "children" : [ 40 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 72.2814, -115.234, 1.79199, 1.0 ]
+    }, {
+        "name" : "r_handRing3_JNT",
+        "matrix" : [ 0.94204, 0.335501, 0.0, 0.0, -0.335501, 0.94204, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -2.36478, 0.0, 0.0, 1.0 ],
+        "children" : [ 41 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 74.6462, -115.234, 1.792, 1.0 ]
+    }, {
+        "name" : "r_handRing4_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -2.882, 0.0, 0.0, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "r_handPinky1_JNT",
+        "matrix" : [ 0.863063, 0.499949, -0.071924, 0.0, -0.501878, 0.864874, -0.010555, 0.0, 0.056928, 0.045207, 0.997354, 0.0, -8.45262, -1.52391, -3.88068, 1.0 ],
+        "children" : [ 43 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 66.9628, -114.294, 4.27166, 1.0 ]
+    }, {
+        "name" : "r_handPinky2_JNT",
+        "matrix" : [ 0.94204, 0.335501, 0.0, 0.0, -0.335501, 0.94204, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -3.07304, 0.0, 0.0, 1.0 ],
+        "children" : [ 44 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 70.0358, -114.294, 4.27167, 1.0 ]
+    }, {
+        "name" : "r_handPinky3_JNT",
+        "matrix" : [ 0.94204, 0.335501, 0.0, 0.0, -0.335501, 0.94204, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -1.96712, 0.0, 0.0, 1.0 ],
+        "children" : [ 45 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 72.0029, -114.294, 4.27168, 1.0 ]
+    }, {
+        "name" : "r_handPinky4_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -2.826, 0.0, 0.0, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "r_handMiddle1_JNT",
+        "matrix" : [ 0.944916, 0.327312, 0.0, 0.0, -0.327312, 0.944916, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -10.0737, -0.408401, 1.31403, 1.0 ],
+        "children" : [ 47 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 68.5839, -115.409, -0.923056, 1.0 ]
+    }, {
+        "name" : "r_handMiddle2_JNT",
+        "matrix" : [ 0.94204, 0.335501, 0.0, 0.0, -0.335501, 0.94204, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -4.2249, 0.0, 0.0, 1.0 ],
+        "children" : [ 48 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 72.8088, -115.409, -0.923044, 1.0 ]
+    }, {
+        "name" : "r_handMiddle3_JNT",
+        "matrix" : [ 0.94204, 0.335501, 0.0, 0.0, -0.335501, 0.94204, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -2.46917, 0.0, 0.0, 1.0 ],
+        "children" : [ 49 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 75.278, -115.409, -0.92304, 1.0 ]
+    }, {
+        "name" : "r_handMiddle4_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -3.281, 0.0, 0.0, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "r_handIndex1_JNT",
+        "matrix" : [ 0.980248, 0.186022, 0.067154, 0.0, -0.186597, 0.982434, 0.002344, 0.0, -0.065538, -0.014828, 0.99774, 0.0, -9.34022, -0.291962, 4.0488, 1.0 ],
+        "children" : [ 51 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 67.8504, -115.526, -3.65782, 1.0 ]
+    }, {
+        "name" : "r_handIndex2_JNT",
+        "matrix" : [ 0.94204, 0.335501, 0.0, 0.0, -0.335501, 0.94204, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -4.09938, 0.0, 0.0, 1.0 ],
+        "children" : [ 52 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 71.9498, -115.526, -3.65782, 1.0 ]
+    }, {
+        "name" : "r_handIndex3_JNT",
+        "matrix" : [ 0.94204, 0.335501, 0.0, 0.0, -0.335501, 0.94204, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -2.57415, 0.0, 0.0, 1.0 ],
+        "children" : [ 53 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 74.5239, -115.526, -3.65782, 1.0 ]
+    }, {
+        "name" : "r_handIndex4_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -2.566, 0.0, 0.0, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "neck_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 0.998172, -0.06044, 0.0, 0.0, 0.06044, 0.998172, 0.0, 0.0, 17.0656, -0.695395, 1.0 ],
+        "children" : [ 55 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -0.008488, -122.095, 1.55495, 1.0 ]
+    }, {
+        "name" : "head_JNT",
+        "matrix" : [ 0.995828, 0.087837, -0.024703, 0.0, -0.081637, 0.978626, 0.188753, 0.0, 0.040755, -0.185949, 0.981714, 0.0, 0.0, 8.13757, 2.14518, 1.0 ],
+        "children" : [ 56, 59, 62, 65, 66, 67, 68 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -0.021705, -128.828, -2.00444, 1.0 ]
+    }, {
+        "name" : "hair_01_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 11.442, 24.1427, -1.69867, 1.0 ],
+        "children" : [ 57 ],
+        "visible" : true
+    }, {
+        "name" : "hair_01_01_JNT",
+        "matrix" : [ 0.0, 0.0, -1.0, 0.0, -0.093641, 0.995606, 0.0, 0.0, 0.995606, 0.093641, 0.0, 0.0, 0.0, -9.01569, 0.0, 1.0 ],
+        "children" : [ 58 ],
+        "visible" : true
+    }, {
+        "name" : "hair_01_02_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -11.0805, 0.0, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "hair_02_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -13.1304, 24.2143, -1.69866, 1.0 ],
+        "children" : [ 60 ],
+        "visible" : true
+    }, {
+        "name" : "hair_02_01_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -9.01563, 0.0, 1.0 ],
+        "children" : [ 61 ],
+        "visible" : true
+    }, {
+        "name" : "hair_02_02_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -11.0805, 0.0, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "hair_03_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 24.2142, -13.2264, 1.0 ],
+        "children" : [ 63 ],
+        "visible" : true
+    }, {
+        "name" : "hair_03_01_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -9.01563, 0.0, 1.0 ],
+        "children" : [ 64 ],
+        "visible" : true
+    }, {
+        "name" : "hair_03_02_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -11.0805, 0.0, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "l_earring_accessory_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 10.936, 6.972, 0.888, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "r_earring_accessory_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -11.0026, 6.74516, 0.187242, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "l_eye_JNT",
+        "matrix" : [ 0.997963, -0.003027, 0.063724, 0.0, -0.003026, 0.995503, 0.094684, 0.0, -0.063724, -0.094684, 0.993466, 0.0, 4.68487, 12.7498, 9.96268, 1.0 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -4.74966, -141.45, -10.6596, 1.0 ]
+    }, {
+        "name" : "r_eye_JNT",
+        "matrix" : [ 0.997966, -0.002933, 0.063684, 0.0, -0.002932, 0.995772, 0.091809, 0.0, -0.063684, -0.091809, 0.993738, 0.0, -4.77108, 12.7498, 9.96268, 1.0 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 4.70629, -141.45, -10.6596, 1.0 ]
+    }, {
+        "name" : "r_upleg_JNT",
+        "matrix" : [ 0.927337, -0.198173, 0.317448, 0.0, 0.278028, 0.93264, -0.229963, 0.0, -0.250492, 0.301512, 0.919969, 0.0, -7.5159, 0.0, 0.0, 1.0 ],
+        "children" : [ 70 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, -0.002495, -1.16E-4, 0.0, 0.002493, 0.999837, -0.017917, 0.0, 1.61E-4, 0.017917, 0.99984, 0.0, 7.32992, -80.0324, 2.84741, 1.0 ]
+    }, {
+        "name" : "r_leg_JNT",
+        "matrix" : [ 0.997732, 0.060039, 0.030441, 0.0, -0.067243, 0.9099, 0.409341, 0.0, -0.003122, -0.41046, 0.911874, 0.0, -0.724057, -37.7363, 2.80023, 1.0 ],
+        "children" : [ 71 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.002998, 0.0, 0.0, -0.002998, 0.999857, 0.016638, 0.0, 0.0, -0.016638, 0.999862, 0.0, 8.28614, -42.2277, -1.41208, 1.0 ]
+    }, {
+        "name" : "r_foot_JNT",
+        "matrix" : [ 0.964557, 0.026598, 0.262529, 0.0, 0.024923, 0.981276, -0.190988, 0.0, -0.262693, 0.190762, 0.945834, 0.0, 1.26E-4, -34.5752, -1.6048, 1.0 ],
+        "children" : [ 72 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 9.09E-4, 0.0, 0.0, -9.09E-4, 1.0, 0.0, 8.26299, -7.67328, 0.312986, 1.0 ]
+    }, {
+        "name" : "r_toebase_JNT",
+        "matrix" : [ 0.0, -0.103501, 0.994629, 0.0, 0.0, 0.994629, 0.103501, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0, -6.10491, 11.1619, 1.0 ],
+        "children" : [ 73 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 0.0, 0.0, -1.0, 0.0, -0.102591, 0.994724, 0.0, 0.0, 0.994724, 0.102591, 0.0, 0.0, -10.6284, -2.68276, -8.26298, 1.0 ]
+    }, {
+        "name" : "joint1",
+        "matrix" : [ 0.0, 0.0, -1.0, 0.0, -0.108623, 0.994083, 0.0, 0.0, 0.994083, 0.108623, 0.0, 0.0, 5.7477, 0.0, 0.0, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "l_upleg_JNT",
+        "matrix" : [ 0.969105, -0.243372, 0.040065, 0.0, 0.242338, 0.969759, 0.028984, 0.0, -0.045907, -0.018379, 0.998777, 0.0, 7.51591, 0.0, 0.0, 1.0 ],
+        "children" : [ 75 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 0.999881, -0.015441, 0.0, 0.0, 0.015441, 0.999881, 0.0, -7.50515, -80.0204, 2.6501, 1.0 ]
+    }, {
+        "name" : "l_leg_JNT",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 0.993288, -0.115665, 0.0, 0.0, 0.115665, 0.993288, 0.0, 2.16E-4, -37.7436, 2.62906, 1.0 ],
+        "children" : [ 76 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 0.999822, 0.018881, 0.0, 0.0, -0.018881, 0.999822, 0.0, -7.50542, -42.2526, -1.42976, 1.0 ]
+    }, {
+        "name" : "l_foot_JNT",
+        "matrix" : [ 0.996936, 0.072648, -0.029003, 0.0, -0.070636, 0.995367, 0.065233, 0.0, 0.033608, -0.062984, 0.997448, 0.0, 0.0, -34.5752, -1.6048, 1.0 ],
+        "children" : [ 77 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 9.11E-4, 0.0, 0.0, -9.11E-4, 1.0, 0.0, -7.50523, -7.67329, 0.31298, 1.0 ]
+    }, {
+        "name" : "l_toebase_JNT",
+        "matrix" : [ 1.9E-4, -0.10218, 0.994766, 0.0, 0.0, 0.994766, 0.10218, 0.0, -1.0, 0.0, 1.81E-4, 0.0, 0.0, -6.10494, 11.1619, 1.0 ],
+        "children" : [ 78 ],
+        "visible" : true,
+        "inverseBindPoseMatrix" : [ 0.0, 0.0, -1.0, 0.0, -0.102591, 0.994724, 0.0, 0.0, 0.994724, 0.102591, 0.0, 0.0, -10.6284, -2.68276, 7.50523, 1.0 ]
+    }, {
+        "name" : "joint2",
+        "matrix" : [ 0.0, 0.0, -1.0, 0.0, -0.104271, 0.994549, 0.0, 0.0, 0.994549, 0.104271, 0.0, 0.0, 5.91715, 0.0, 0.0, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "Model",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "children" : [ 80, 81, 82, 83, 84, 85, 86, 87 ],
+        "visible" : true,
+        "lightingMode" : "lit-solid"
+    }, {
+        "name" : "R_New_Eye",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.0, 1.0 ],
+        "visible" : true,
+        "model" : {
+            "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+            "material" : 8,
+            "mesh" : 0,
+            "shader" : 1
+        }
+    }, {
+        "name" : "L_New_Eye",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.0, 1.0 ],
+        "visible" : true,
+        "model" : {
+            "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+            "material" : 8,
+            "mesh" : 1,
+            "shader" : 1
+        }
+    }, {
+        "name" : "newhair",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "visible" : true,
+        "model" : {
+            "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+            "material" : 9,
+            "mesh" : 2,
+            "shader" : 1
+        }
+    }, {
+        "name" : "OutFit_Bottom",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "visible" : true,
+        "model" : {
+            "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+            "material" : 10,
+            "mesh" : 3,
+            "shader" : 1
+        }
+    }, {
+        "name" : "OutFit_Top",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "visible" : true,
+        "model" : {
+            "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+            "material" : 11,
+            "mesh" : 4,
+            "shader" : 1
+        }
+    }, {
+        "name" : "Shoes_Shoes01_Female_Adult_Thumbnail_GEO",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "visible" : true,
+        "model" : {
+            "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+            "material" : 12,
+            "mesh" : 5,
+            "shader" : 1
+        }
+    }, {
+        "name" : "Head_GEO",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "visible" : true,
+        "model" : {
+            "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+            "material" : 7,
+            "mesh" : 6,
+            "shader" : 2
+        }
+    }, {
+        "name" : "Body_GEO",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "visible" : true,
+        "model" : {
+            "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+            "material" : 6,
+            "mesh" : 9,
+            "shader" : 2
+        }
+    }, {
+        "name" : "directionalLight1",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 91.3751, 284.323, 1.0 ],
+        "visible" : true
+    }, {
+        "name" : "BackGround",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "visible" : true,
+        "model" : {
+            "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+            "material" : 5,
+            "mesh" : 7,
+            "shader" : 4
+        }
+    }, {
+        "name" : "Ground",
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "visible" : true,
+        "model" : {
+            "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+            "material" : 5,
+            "mesh" : 8,
+            "shader" : 4
+        }
+    }, {
+        "name" : "Idle",
+        "size" : [ 30.0, 30.0 ],
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -82.0, 64.0, -1.0, 1.0 ],
+        "behavior" : [ 0 ],
+        "visible" : true,
+        "model" : {
+            "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+            "material" : 1,
+            "mesh" : 10,
+            "shader" : 3
+        }
+    }, {
+        "name" : "Squat",
+        "size" : [ 30.0, 30.0 ],
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -85.0, 94.0, 1.0, 1.0 ],
+        "behavior" : [ 1 ],
+        "visible" : true,
+        "model" : {
+            "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+            "material" : 2,
+            "mesh" : 10,
+            "shader" : 3
+        }
+    }, {
+        "name" : "JumpingJack",
+        "size" : [ 30.0, 30.0 ],
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -75.0, 124.0, 0.0, 1.0 ],
+        "behavior" : [ 2 ],
+        "visible" : true,
+        "model" : {
+            "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+            "material" : 3,
+            "mesh" : 10,
+            "shader" : 3
+        }
+    }, {
+        "name" : "Lunge",
+        "size" : [ 30.0, 30.0 ],
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -55.0, 154.0, 0.0, 1.0 ],
+        "behavior" : [ 3 ],
+        "visible" : true,
+        "model" : {
+            "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+            "material" : 4,
+            "mesh" : 10,
+            "shader" : 3
+        }
+    }, {
+        "name" : "Backdrop",
+        "matrix" : [ 0.01, 0.0, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "children" : [ 89, 90 ],
+        "visible" : true,
+        "lightingMode" : "lit"
+    } ],
+    "meshes" : [ {
+        "uri" : "exercise/model.dae.bin",
+        "attributes" : 223,
+        "primitive" : "TRIANGLES",
+        "indices" : {
+            "byteOffset" : 0,
+            "byteLength" : 2520
+        },
+        "positions" : {
+            "byteOffset" : 2520,
+            "byteLength" : 3168
+        },
+        "normals" : {
+            "byteOffset" : 5688,
+            "byteLength" : 3168
+        },
+        "textures" : {
+            "byteOffset" : 8856,
+            "byteLength" : 2112
+        },
+        "tangents" : {
+            "byteOffset" : 10968,
+            "byteLength" : 3168
+        },
+        "skeleton" : 0,
+        "joints0" : {
+            "byteOffset" : 14136,
+            "byteLength" : 4224
+        },
+        "weights0" : {
+            "byteOffset" : 18360,
+            "byteLength" : 4224
+        }
+    }, {
+        "uri" : "exercise/model.dae.bin",
+        "attributes" : 223,
+        "primitive" : "TRIANGLES",
+        "indices" : {
+            "byteOffset" : 22584,
+            "byteLength" : 2520
+        },
+        "positions" : {
+            "byteOffset" : 25104,
+            "byteLength" : 3180
+        },
+        "normals" : {
+            "byteOffset" : 28284,
+            "byteLength" : 3180
+        },
+        "textures" : {
+            "byteOffset" : 31464,
+            "byteLength" : 2120
+        },
+        "tangents" : {
+            "byteOffset" : 33584,
+            "byteLength" : 3180
+        },
+        "skeleton" : 0,
+        "joints0" : {
+            "byteOffset" : 36764,
+            "byteLength" : 4240
+        },
+        "weights0" : {
+            "byteOffset" : 41004,
+            "byteLength" : 4240
+        }
+    }, {
+        "uri" : "exercise/model.dae.bin",
+        "attributes" : 223,
+        "primitive" : "TRIANGLES",
+        "indices" : {
+            "byteOffset" : 45244,
+            "byteLength" : 25938
+        },
+        "positions" : {
+            "byteOffset" : 71182,
+            "byteLength" : 34092
+        },
+        "normals" : {
+            "byteOffset" : 105274,
+            "byteLength" : 34092
+        },
+        "textures" : {
+            "byteOffset" : 139366,
+            "byteLength" : 22728
+        },
+        "tangents" : {
+            "byteOffset" : 162094,
+            "byteLength" : 34092
+        },
+        "skeleton" : 0,
+        "joints0" : {
+            "byteOffset" : 196186,
+            "byteLength" : 45456
+        },
+        "weights0" : {
+            "byteOffset" : 241642,
+            "byteLength" : 45456
+        }
+    }, {
+        "uri" : "exercise/model.dae.bin",
+        "attributes" : 223,
+        "primitive" : "TRIANGLES",
+        "indices" : {
+            "byteOffset" : 287098,
+            "byteLength" : 5988
+        },
+        "positions" : {
+            "byteOffset" : 293086,
+            "byteLength" : 8412
+        },
+        "normals" : {
+            "byteOffset" : 301498,
+            "byteLength" : 8412
+        },
+        "textures" : {
+            "byteOffset" : 309910,
+            "byteLength" : 5608
+        },
+        "tangents" : {
+            "byteOffset" : 315518,
+            "byteLength" : 8412
+        },
+        "skeleton" : 0,
+        "joints0" : {
+            "byteOffset" : 323930,
+            "byteLength" : 11216
+        },
+        "weights0" : {
+            "byteOffset" : 335146,
+            "byteLength" : 11216
+        }
+    }, {
+        "uri" : "exercise/model.dae.bin",
+        "attributes" : 223,
+        "primitive" : "TRIANGLES",
+        "indices" : {
+            "byteOffset" : 346362,
+            "byteLength" : 3720
+        },
+        "positions" : {
+            "byteOffset" : 350082,
+            "byteLength" : 5004
+        },
+        "normals" : {
+            "byteOffset" : 355086,
+            "byteLength" : 5004
+        },
+        "textures" : {
+            "byteOffset" : 360090,
+            "byteLength" : 3336
+        },
+        "tangents" : {
+            "byteOffset" : 363426,
+            "byteLength" : 5004
+        },
+        "skeleton" : 0,
+        "joints0" : {
+            "byteOffset" : 368430,
+            "byteLength" : 6672
+        },
+        "weights0" : {
+            "byteOffset" : 375102,
+            "byteLength" : 6672
+        }
+    }, {
+        "uri" : "exercise/model.dae.bin",
+        "attributes" : 223,
+        "primitive" : "TRIANGLES",
+        "indices" : {
+            "byteOffset" : 381774,
+            "byteLength" : 5520
+        },
+        "positions" : {
+            "byteOffset" : 387294,
+            "byteLength" : 7284
+        },
+        "normals" : {
+            "byteOffset" : 394578,
+            "byteLength" : 7284
+        },
+        "textures" : {
+            "byteOffset" : 401862,
+            "byteLength" : 4856
+        },
+        "tangents" : {
+            "byteOffset" : 406718,
+            "byteLength" : 7284
+        },
+        "skeleton" : 0,
+        "joints0" : {
+            "byteOffset" : 414002,
+            "byteLength" : 9712
+        },
+        "weights0" : {
+            "byteOffset" : 423714,
+            "byteLength" : 9712
+        }
+    }, {
+        "uri" : "exercise/model.dae.bin",
+        "attributes" : 223,
+        "primitive" : "TRIANGLES",
+        "indices" : {
+            "byteOffset" : 433426,
+            "byteLength" : 34524
+        },
+        "positions" : {
+            "byteOffset" : 467950,
+            "byteLength" : 37824
+        },
+        "normals" : {
+            "byteOffset" : 505774,
+            "byteLength" : 37824
+        },
+        "textures" : {
+            "byteOffset" : 543598,
+            "byteLength" : 25216
+        },
+        "tangents" : {
+            "byteOffset" : 568814,
+            "byteLength" : 37824
+        },
+        "skeleton" : 0,
+        "joints0" : {
+            "byteOffset" : 606638,
+            "byteLength" : 50432
+        },
+        "weights0" : {
+            "byteOffset" : 657070,
+            "byteLength" : 50432
+        }
+    }, {
+        "uri" : "exercise/model.dae.bin",
+        "attributes" : 31,
+        "primitive" : "TRIANGLES",
+        "indices" : {
+            "byteOffset" : 707502,
+            "byteLength" : 360
+        },
+        "positions" : {
+            "byteOffset" : 707862,
+            "byteLength" : 732
+        },
+        "normals" : {
+            "byteOffset" : 708594,
+            "byteLength" : 732
+        },
+        "textures" : {
+            "byteOffset" : 709326,
+            "byteLength" : 488
+        },
+        "tangents" : {
+            "byteOffset" : 709814,
+            "byteLength" : 732
+        }
+    }, {
+        "uri" : "exercise/model.dae.bin",
+        "attributes" : 31,
+        "primitive" : "TRIANGLES",
+        "indices" : {
+            "byteOffset" : 710546,
+            "byteLength" : 12
+        },
+        "positions" : {
+            "byteOffset" : 710558,
+            "byteLength" : 48
+        },
+        "normals" : {
+            "byteOffset" : 710606,
+            "byteLength" : 48
+        },
+        "textures" : {
+            "byteOffset" : 710654,
+            "byteLength" : 32
+        },
+        "tangents" : {
+            "byteOffset" : 710686,
+            "byteLength" : 48
+        }
+    }, {
+        "uri" : "exercise/model.dae.bin",
+        "attributes" : 223,
+        "primitive" : "TRIANGLES",
+        "indices" : {
+            "byteOffset" : 710734,
+            "byteLength" : 24312
+        },
+        "positions" : {
+            "byteOffset" : 735046,
+            "byteLength" : 33000
+        },
+        "normals" : {
+            "byteOffset" : 768046,
+            "byteLength" : 33000
+        },
+        "textures" : {
+            "byteOffset" : 801046,
+            "byteLength" : 22000
+        },
+        "tangents" : {
+            "byteOffset" : 823046,
+            "byteLength" : 33000
+        },
+        "skeleton" : 0,
+        "joints0" : {
+            "byteOffset" : 856046,
+            "byteLength" : 44000
+        },
+        "weights0" : {
+            "byteOffset" : 900046,
+            "byteLength" : 44000
+        }
+    }, {
+        "uri" : "quad",
+        "attributes" : 0,
+        "primitive" : "TRIANGLES"
+    } ],
+    "cameras" : [ {
+        "near" : 2.5,
+        "far" : 1000.0,
+        "matrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.9138, 5.0, 1.0 ],
+        "fov" : 37.8492
+    } ],
+    "lights" : [ {
+        "matrix" : [ 0.8950600624084473, 0.0914330929517746, 0.4364715814590454, 0.0, 0.3676385283470154, 0.4026888310909271, -0.8382623195648193, 0.0, -0.25240713357925415, 0.9107588529586792, 0.3268163800239563, 0.0, 0.0, 0.0, -1.0, 1.0 ],
+        "color" : [ 1.0, 1.0, 1.0 ],
+        "intensity" : 1.0,
+        "shadowMapSize" : 256,
+        "orthographicSize" : 4.2760005,
+        "shadowIntensity" : 1.0
+    } ],
+    "materials" : [ {
+        "name" : "No name",
+        "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+        "roughness" : 1.0,
+        "metallic" : 1.0,
+        "mipmap" : true,
+        "environment" : 1
+    }, {
+        "name" : "Icons\\Icon_Idle.png",
+        "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+        "roughness" : 1.0,
+        "metallic" : 1.0,
+        "mipmap" : false,
+        "albedoMap" : "exercise/Icons/Icon_Idle.png"
+    }, {
+        "name" : "Icons\\Icon_Squat.png",
+        "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+        "roughness" : 1.0,
+        "metallic" : 1.0,
+        "mipmap" : false,
+        "albedoMap" : "exercise/Icons/Icon_Squat.png"
+    }, {
+        "name" : "Icons\\Icon_JJ.png",
+        "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+        "roughness" : 1.0,
+        "metallic" : 1.0,
+        "mipmap" : false,
+        "albedoMap" : "exercise/Icons/Icon_JJ.png"
+    }, {
+        "name" : "Icons\\Icon_Lunge.png",
+        "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+        "roughness" : 1.0,
+        "metallic" : 1.0,
+        "mipmap" : false,
+        "albedoMap" : "exercise/Icons/Icon_Lunge.png"
+    }, {
+        "name" : "Background",
+        "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+        "normalRoughnessMap" : "exercise/Textures/BG_NormalRoughness.png",
+        "albedoMetallicMap" : "exercise/Textures/BG_AlbedoMetallic.png",
+        "roughness" : 1.0,
+        "metallic" : 1.0,
+        "mipmap" : true,
+        "environment" : 1
+    }, {
+        "name" : "Body",
+        "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+        "normalRoughnessMap" : "exercise/Textures/Body_NormalRoughness.png",
+        "albedoMetallicMap" : "exercise/Textures/Body_AlbedoMetallic.png",
+        "roughness" : 1.0,
+        "metallic" : 1.0,
+        "mipmap" : true,
+        "subsurfaceMap" : "exercise/Textures/Body_Female_Asian_Adult_SubsurfaceColor.png",
+        "environment" : 1
+    }, {
+        "name" : "Head",
+        "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+        "normalRoughnessMap" : "exercise/Textures/Head_NormalRoughness.png",
+        "albedoMetallicMap" : "exercise/Textures/Head_AlbedoMetallic.png",
+        "roughness" : 1.0,
+        "metallic" : 1.0,
+        "mipmap" : true,
+        "subsurfaceMap" : "exercise/Textures/Head_Female_SubsurfaceColor.png",
+        "environment" : 1
+    }, {
+        "name" : "Eye",
+        "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+        "normalRoughnessMap" : "exercise/Textures/Eye_NormalRoughness.png",
+        "albedoMetallicMap" : "exercise/Textures/Eye_AlbedoMetallic.png",
+        "roughness" : 1.0,
+        "metallic" : 1.0,
+        "mipmap" : true,
+        "environment" : 1
+    }, {
+        "name" : "Hair",
+        "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+        "normalRoughnessMap" : "exercise/Textures/Hair_NormalRoughness.png",
+        "albedoMetallicMap" : "exercise/Textures/Hair_AlbedoMetallic.png",
+        "roughness" : 1.0,
+        "metallic" : 1.0,
+        "mipmap" : true,
+        "environment" : 1
+    }, {
+        "name" : "Bottom outfit",
+        "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+        "normalRoughnessMap" : "exercise/Textures/FitBot_NormalRoughness.png",
+        "albedoMetallicMap" : "exercise/Textures/FitBot_AlbedoMetallic.png",
+        "roughness" : 1.0,
+        "metallic" : 1.0,
+        "mipmap" : true,
+        "environment" : 1
+    }, {
+        "name" : "Top outfit",
+        "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+        "normalRoughnessMap" : "exercise/Textures/FitTop_NormalRoughness.png",
+        "albedoMetallicMap" : "exercise/Textures/FitTop_AlbedoMetallic.png",
+        "roughness" : 1.0,
+        "metallic" : 1.0,
+        "mipmap" : true,
+        "environment" : 1
+    }, {
+        "name" : "Shoe",
+        "color" : [ 1.0, 1.0, 1.0, 1.0 ],
+        "normalRoughnessMap" : "exercise/Textures/Shoe_NormalRoughness.png",
+        "albedoMetallicMap" : "exercise/Textures/Shoe_AlbedoMetallic.png",
+        "roughness" : 1.0,
+        "metallic" : 1.0,
+        "mipmap" : true,
+        "environment" : 1
+    } ],
+    "environment" : [ {
+        "cubeInitialOrientation" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "iblIntensity" : 1.0
+    }, {
+        "cubeSpecular" : "Studio/Radiance.ktx",
+        "cubeDiffuse" : "Studio/Irradiance.ktx",
+        "cubeInitialOrientation" : [ 0.6716271638870239, 0.07979151606559753, -0.7365801334381104, 0.0, 0.07979151606559753, 0.9806114435195923, 0.17898204922676086, 0.0, 0.7365801334381104, -0.17898204922676086, 0.6522386074066162, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "iblIntensity" : 0.75
+    } ],
+    "shaders" : [ {
+        "vertex" : "dli_pbr.vsh",
+        "fragment" : "dli_pbr.fsh",
+        "rendererState" : "DEPTH_TEST|DEPTH_WRITE|CULL_BACK|DEPTH_FUNC:LESS_EQUAL",
+        "uCubeMatrix" : [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
+        "uMaxLOD" : 8
+    }, {
+        "vertex" : "dli_pbr.vsh",
+        "fragment" : "dli_pbr.fsh",
+        "hints": [ "MODIFIES_GEOMETRY" ],
+        "defines" : [ "LIT", "SKINNING" ],
+        "rendererState" : "DEPTH_TEST|DEPTH_WRITE|CULL_BACK|DEPTH_FUNC:LESS_EQUAL",
+        "uCubeMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "uMaxLOD" : 6
+    }, {
+        "vertex" : "dli_pbr.vsh",
+        "fragment" : "dli_pbr.fsh",
+        "hints": [ "MODIFIES_GEOMETRY" ],
+        "defines" : [ "LIT", "SKINNING", "SSS" ],
+        "rendererState" : "DEPTH_TEST|DEPTH_WRITE|CULL_BACK|DEPTH_FUNC:LESS_EQUAL",
+        "uCubeMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "uMaxLOD" : 6
+    }, {
+        "vertex" : "dli_images.vsh",
+        "fragment" : "dli_images.fsh",
+        "rendererState" : "DEPTH_TEST|ALPHA_BLEND",
+        "uCubeMatrix" : [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
+        "uTilt" : [ 0.0, 0.0 ]
+    }, {
+        "vertex" : "dli_pbr.vsh",
+        "fragment" : "dli_pbr.fsh",
+        "defines" : [ "LIT", "SHADOW" ],
+        "rendererState" : "DEPTH_TEST|DEPTH_WRITE|CULL_BACK|DEPTH_FUNC:LESS_EQUAL",
+        "uCubeMatrix" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ],
+        "uMaxLOD" : 6
+    } ],
+    "behaviors" : [ {
+        "url" : "on-tap-idle.lua",
+        "event" : "tap"
+    }, {
+        "url" : "on-tap-squat.lua",
+        "event" : "tap"
+    }, {
+        "url" : "on-tap-jumping-jack.lua",
+        "event" : "tap"
+    }, {
+        "url" : "on-tap-lunge.lua",
+        "event" : "tap"
+    }, {
+        "url" : "ExerciseDemo- behavior_1.lua",
+        "event" : "scene.loaded"
+    } ],
+    "stateMachines" : [ {
+        "name" : "ExerciseStateMachine",
+        "url" : "exercise-animations-state-machine.lua"
+    } ],
+    "animationFinishedActions" : [ {
+        "url" : "on-idle-to-squat-animation-finished.lua"
+    }, {
+        "url" : "on-squat-animation-finished.lua"
+    }, {
+        "url" : "on-squat-to-idle-animation-finished.lua"
+    }, {
+        "url" : "on-idle-to-jumping-jack-animation-finished.lua"
+    }, {
+        "url" : "on-jumping-jack-animation-finished.lua"
+    }, {
+        "url" : "on-jumping-jack-to-idle-animation-finished.lua"
+    }, {
+        "url" : "on-idle-to-lunge-animation-finished.lua"
+    }, {
+        "url" : "on-lunge-animation-finished.lua"
+    }, {
+        "url" : "on-lunge-to-idle-animation-finished.lua"
+    }, {
+        "url" : "on-jumping-jack-to-lunge-animation-finished.lua"
+    }, {
+        "url" : "on-jumping-jack-to-squat-animation-finished.lua"
+    }, {
+        "url" : "on-lunge-to-jumping-jack-animation-finished.lua"
+    }, {
+        "url" : "on-lunge-to-squat-animation-finished.lua"
+    }, {
+        "url" : "on-squat-to-jumping-jack-animation-finished.lua"
+    }, {
+        "url" : "on-squat-to-lunge-animation-finished.lua"
+    } ],
+    "animations" : [ {
+        "name" : "idleClip",
+        "loopCount" : 0,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hips_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 0,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 3024,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "spine1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 6048,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "spine2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 9072,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 12096,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 15120,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_shoulder_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 18144,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 20592,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "neck_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 23616,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "head_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 26640,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 29664,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 32688,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 35712,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 38736,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 41760,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 44784,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 47808,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 50832,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-animation.ani",
+                "byteOffset" : 53856,
+                "numKeys" : 144
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 6.0
+            },
+            "relative" : false
+        } ]
+    }, {
+        "name" : "squatClip_0",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hips_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-0.ani",
+                "byteOffset" : 0,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "hips_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-0.ani",
+                "byteOffset" : 1764,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-0.ani",
+                "byteOffset" : 3192,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "spine1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-0.ani",
+                "byteOffset" : 4956,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "spine2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-0.ani",
+                "byteOffset" : 6720,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "neck_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-0.ani",
+                "byteOffset" : 8484,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "head_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-0.ani",
+                "byteOffset" : 10248,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "hair_02_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-0.ani",
+                "byteOffset" : 12012,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "hair_03_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-0.ani",
+                "byteOffset" : 13776,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        } ],
+        "finishedActions" : [ 1 ]
+    }, {
+        "name" : "squatClip_1",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "l_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 0,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "l_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 1596,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "l_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 3192,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 4788,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 6384,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 7980,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 9576,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 11172,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 12768,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "r_shoulder_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 14364,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "r_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 15656,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "r_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 17252,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "r_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 18848,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 20444,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 22040,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 23636,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 25232,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 26828,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 28424,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "l_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 30020,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "r_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 31616,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "r_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 33212,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "r_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 34808,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "r_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 36404,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "r_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 38000,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "l_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 39596,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "l_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 41192,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "l_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 42788,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        }, {
+            "node" : "l_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-animation-1.ani",
+                "byteOffset" : 44384,
+                "numKeys" : 76
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.16667
+            },
+            "relative" : false
+        } ]
+    }, {
+        "name" : "jumpingJackClip",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hips_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 0,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "hips_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 630,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 1140,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "spine1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 1770,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "spine2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 2400,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 3030,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 3660,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 4290,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 4920,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 5550,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 6180,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 6810,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 7440,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 8070,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 8700,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 9330,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 9960,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 10590,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 11220,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 11850,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 12480,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 13110,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 13740,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 14370,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 15000,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 15630,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 16260,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 16890,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 17520,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 18150,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 18780,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 19410,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 20040,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 20670,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 21300,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 21930,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 22560,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 23190,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 23820,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 24450,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "neck_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 25080,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "head_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 25710,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 26340,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 26970,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 27600,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 28230,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 28860,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 29490,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 30120,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 30750,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 31380,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-animation.ani",
+                "byteOffset" : 32010,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        } ],
+        "finishedActions" : [ 4 ]
+    }, {
+        "name" : "lungeClip",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hips_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 0,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 1649,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "spine1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 3686,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "spine2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 5723,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 7760,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 9797,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 11834,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 13871,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 15908,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 17945,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 19982,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 22019,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 24056,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 26093,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 28130,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 30167,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 32204,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 34241,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 36278,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 38315,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 40352,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 42389,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_shoulder_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 44426,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 46075,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 48112,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 50149,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "neck_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 52186,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "head_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 54223,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 56260,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 58297,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 60334,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 62371,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 64408,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 66445,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-animation.ani",
+                "byteOffset" : 68482,
+                "numKeys" : 97
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 4.04167
+            },
+            "relative" : false
+        } ],
+        "finishedActions" : [ 7 ]
+    }, {
+        "name" : "idleToSquatClip_0",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hips_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 0,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "hips_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 1932,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 3496,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 5428,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "spine1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 6992,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "spine2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 8924,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_shoulder_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 10856,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 12788,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 14720,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 16652,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 18584,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 20516,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 22448,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 24380,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 26312,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 28244,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 30176,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 32108,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 34040,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 35972,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 37904,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 39836,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 41768,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 43700,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 45632,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_shoulder_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 47564,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_shoulder_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 49496,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 51060,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 52992,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 54924,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 56856,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 58788,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 60720,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 62652,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 64584,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 66516,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 68448,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 70380,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 72312,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 74244,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 76176,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 78108,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 80040,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 81972,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 83904,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "neck_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 85836,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "head_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 87768,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 89700,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 91632,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 93564,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 95496,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 97428,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 99360,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 101292,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 103224,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 105156,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-0.ani",
+                "byteOffset" : 107088,
+                "numKeys" : 92
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.83333
+            },
+            "relative" : false
+        } ],
+        "finishedActions" : [ 0 ]
+    }, {
+        "name" : "idleToSquatClip_1",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hair_02_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-1.ani",
+                "byteOffset" : 0,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "hair_03_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-squat-animation-1.ani",
+                "byteOffset" : 1764,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        } ]
+    }, {
+        "name" : "squatToIdleClip",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hips_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 0,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "hips_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 1806,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 3268,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "spine1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 5074,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "spine2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 6880,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_shoulder_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 8686,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 10492,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 12298,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 14104,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 15910,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 17716,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 19522,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 21328,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 23134,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 24940,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 26746,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 28552,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 30358,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 32164,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 33970,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 35776,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 37582,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 39388,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 41194,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_shoulder_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 43000,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 44462,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 46268,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 48074,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 49880,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 51686,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 53492,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 55298,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 57104,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 58910,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 60716,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 62522,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 64328,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 66134,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 67940,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 69746,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 71552,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 73358,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 75164,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "neck_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 76970,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "head_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 78776,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "hair_02_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 80582,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "hair_03_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 82388,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 84194,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 86000,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 87806,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 89612,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 91418,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 93224,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 95030,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 96836,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 98642,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-idle-animation.ani",
+                "byteOffset" : 100448,
+                "numKeys" : 86
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.58333
+            },
+            "relative" : false
+        } ],
+        "finishedActions" : [ 2 ]
+    }, {
+        "name" : "idleToJumpingJackClip",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hips_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 0,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "hips_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 1365,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 2470,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "spine1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 3835,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "spine2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 5200,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_shoulder_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 6565,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 7930,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 9295,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 10660,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 12025,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 13390,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 14755,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 16120,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 17485,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 18850,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 20215,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 21580,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 22945,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 24310,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 25675,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 27040,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 28405,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 29770,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 31135,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_shoulder_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 32500,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_shoulder_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 33865,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 34970,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 36335,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 37700,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 39065,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 40430,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 41795,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 43160,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 44525,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 45890,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 47255,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 48620,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 49985,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 51350,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 52715,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 54080,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 55445,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 56810,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 58175,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "neck_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 59540,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "head_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 60905,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 62270,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 63635,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 65000,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 66365,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 67730,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 69095,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 70460,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 71825,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 73190,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-jumping-jack-animation.ani",
+                "byteOffset" : 74555,
+                "numKeys" : 65
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.70833
+            },
+            "relative" : false
+        } ],
+        "finishedActions" : [ 3 ]
+    }, {
+        "name" : "jumpingJackToIdleClip",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hips_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 0,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "hips_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 1491,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 2698,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "spine1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 4189,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "spine2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 5680,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_shoulder_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 7171,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 8662,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 10153,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 11644,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 13135,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 14626,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 16117,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 17608,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 19099,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 20590,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 22081,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 23572,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 25063,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 26554,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 28045,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 29536,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 31027,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 32518,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 34009,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_shoulder_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 35500,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 36707,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 38198,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 39689,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 41180,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 42671,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 44162,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 45653,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 47144,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 48635,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 50126,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 51617,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 53108,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 54599,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 56090,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 57581,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 59072,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 60563,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 62054,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "neck_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 63545,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "head_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 65036,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 66527,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 68018,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 69509,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 71000,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 72491,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 73982,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 75473,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 76964,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 78455,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-idle-animation.ani",
+                "byteOffset" : 79946,
+                "numKeys" : 71
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 2.95833
+            },
+            "relative" : false
+        } ],
+        "finishedActions" : [ 5 ]
+    }, {
+        "name" : "idleToLungeClip",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hips_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 0,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "hips_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 1764,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 3192,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 4956,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "spine1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 6384,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "spine2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 8148,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_shoulder_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 9912,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 11676,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 13440,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 15204,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 16968,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 18732,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 20496,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 22260,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 24024,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 25788,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 27552,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 29316,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 31080,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 32844,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 34608,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 36372,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 38136,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 39900,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 41664,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_shoulder_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 43428,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_shoulder_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 45192,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 46620,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 48384,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 50148,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 51912,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 53676,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 55440,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 57204,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 58968,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 60732,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 62496,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 64260,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 66024,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 67788,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 69552,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 71316,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 73080,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 74844,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 76608,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "neck_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 78372,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "head_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 80136,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 81900,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 83664,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 85428,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 87192,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 88956,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 90720,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 92484,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 94248,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/idle-to-lunge-animation.ani",
+                "byteOffset" : 96012,
+                "numKeys" : 84
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.5
+            },
+            "relative" : false
+        } ],
+        "finishedActions" : [ 6 ]
+    }, {
+        "name" : "lungeToIdleClip",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hips_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 0,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "hips_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 1701,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 3078,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "spine1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 4779,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "spine2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 6480,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_shoulder_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 8181,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 9882,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 11583,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 13284,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 14985,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 16686,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 18387,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 20088,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 21789,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 23490,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 25191,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 26892,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 28593,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 30294,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 31995,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 33696,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 35397,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 37098,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 38799,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_shoulder_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 40500,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 41877,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 43578,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 45279,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 46980,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 48681,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 50382,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 52083,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 53784,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 55485,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 57186,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 58887,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 60588,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 62289,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 63990,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 65691,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 67392,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 69093,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 70794,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "neck_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 72495,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "head_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 74196,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_eye_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 75897,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 77598,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 79299,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 81000,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "r_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 82701,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 84402,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 86103,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 87804,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        }, {
+            "node" : "l_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-idle-animation.ani",
+                "byteOffset" : 89505,
+                "numKeys" : 81
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 3.375
+            },
+            "relative" : false
+        } ],
+        "finishedActions" : [ 8 ]
+    }, {
+        "name" : "jumpingJackToLungeClip",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hips_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 0,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "hips_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 756,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 1368,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 2124,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "spine1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 2736,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "spine2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 3492,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 4248,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 5004,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 5760,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 6516,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 7272,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 8028,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 8784,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 9540,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 10296,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 11052,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 11808,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 12564,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 13320,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 14076,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 14832,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 15588,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 16344,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 17100,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_shoulder_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 17856,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 18468,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 19224,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 19980,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 20736,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 21492,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 22248,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 23004,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 23760,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 24516,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 25272,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 26028,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 26784,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 27540,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 28296,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 29052,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 29808,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 30564,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 31320,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "neck_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 32076,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "head_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 32832,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 33588,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 34344,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 35100,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "r_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 35856,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 36612,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 37368,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        }, {
+            "node" : "l_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-lunge-animation.ani",
+                "byteOffset" : 38124,
+                "numKeys" : 36
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.5
+            },
+            "relative" : false
+        } ],
+        "finishedActions" : [ 9 ]
+    }, {
+        "name" : "jumpingJackToSquatClip",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hips_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 0,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "hips_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 525,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 950,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "spine1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 1475,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "spine2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 2000,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 2525,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 3050,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 3575,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 4100,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 4625,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 5150,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 5675,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 6200,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 6725,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 7250,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 7775,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "neck_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 8300,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "head_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 8825,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 9350,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 9875,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 10400,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "r_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 10925,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 11450,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 11975,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        }, {
+            "node" : "l_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/jumping-jack-to-squat-animation.ani",
+                "byteOffset" : 12500,
+                "numKeys" : 25
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.04167
+            },
+            "relative" : false
+        } ],
+        "finishedActions" : [ 10 ]
+    }, {
+        "name" : "lungeToJumpingJackClip",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hips_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 0,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "hips_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 861,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 1558,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 2419,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "spine1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 3116,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "spine2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 3977,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 4838,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 5699,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 6560,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 7421,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 8282,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 9143,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 10004,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 10865,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 11726,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 12587,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 13448,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 14309,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 15170,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 16031,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 16892,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 17753,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 18614,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 19475,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_shoulder_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 20336,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 21033,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 21894,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 22755,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 23616,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 24477,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 25338,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 26199,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 27060,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 27921,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 28782,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 29643,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 30504,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 31365,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 32226,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 33087,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 33948,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 34809,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 35670,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "neck_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 36531,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "head_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 37392,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 38253,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 39114,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 39975,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "r_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 40836,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 41697,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 42558,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        }, {
+            "node" : "l_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-jumping-jack-animation.ani",
+                "byteOffset" : 43419,
+                "numKeys" : 41
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.70833
+            },
+            "relative" : false
+        } ],
+        "finishedActions" : [ 11 ]
+    }, {
+        "name" : "lungeToSquatClip",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hips_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 0,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "hips_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 546,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 988,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 1534,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "spine1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 1976,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "spine2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 2522,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 3068,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 3614,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 4160,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 4706,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 5252,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 5798,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 6344,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 6890,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 7436,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 7982,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 8528,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 9074,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 9620,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 10166,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 10712,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 11258,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 11804,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 12350,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_shoulder_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 12896,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 13338,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 13884,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 14430,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 14976,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 15522,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 16068,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 16614,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 17160,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 17706,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 18252,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 18798,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 19344,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 19890,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 20436,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 20982,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 21528,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 22074,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 22620,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "neck_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 23166,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "head_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 23712,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 24258,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 24804,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 25350,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "r_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 25896,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 26442,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 26988,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        }, {
+            "node" : "l_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/lunge-to-squat-animation.ani",
+                "byteOffset" : 27534,
+                "numKeys" : 26
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.08333
+            },
+            "relative" : false
+        } ],
+        "finishedActions" : [ 12 ]
+    }, {
+        "name" : "squatToJumpingJackClip",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hips_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 0,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "hips_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 630,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 1140,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "spine1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 1770,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "spine2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 2400,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 3030,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 3660,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 4290,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 4920,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 5550,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_shoulder_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 6180,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 6690,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 7320,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 7950,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 8580,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 9210,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 9840,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "neck_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 10470,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "head_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 11100,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 11730,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 12360,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 12990,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "r_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 13620,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 14250,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 14880,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 15510,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        }, {
+            "node" : "l_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-jumping-jack-animation.ani",
+                "byteOffset" : 16140,
+                "numKeys" : 30
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.25
+            },
+            "relative" : false
+        } ],
+        "finishedActions" : [ 13 ]
+    }, {
+        "name" : "squatToLungeClip",
+        "loopCount" : 1,
+        "duration" : 0.0,
+        "endAction" : "BAKE",
+        "disconnectAction" : "BAKE",
+        "properties" : [ {
+            "node" : "hips_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 0,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "hips_JNT",
+            "property" : "position",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 504,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "spine_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 912,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "spine1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 1416,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "spine2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 1920,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 2424,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 2928,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 3432,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 3936,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 4440,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 4944,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 5448,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 5952,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 6456,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 6960,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 7464,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 7968,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 8472,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 8976,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 9480,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 9984,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 10488,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 10992,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_arm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 11496,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_forearm_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 12000,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_hand_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 12504,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 13008,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 13512,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handThumb3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 14016,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 14520,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 15024,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handRing3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 15528,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 16032,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 16536,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handPinky3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 17040,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 17544,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 18048,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handMiddle3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 18552,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex1_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 19056,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex2_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 19560,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_handIndex3_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 20064,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "neck_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 20568,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "head_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 21072,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 21576,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 22080,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 22584,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "r_toebase_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 23088,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_upleg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 23592,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_leg_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 24096,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        }, {
+            "node" : "l_foot_JNT",
+            "property" : "orientation",
+            "keyFramesBin" : {
+                "url" : "exercise/squat-to-lunge-animation.ani",
+                "byteOffset" : 24600,
+                "numKeys" : 24
+            },
+            "alphaFunction" : "DEFAULT",
+            "timePeriod" : {
+                "delay" : 0.0,
+                "duration" : 1.0
+            },
+            "relative" : false
+        } ],
+        "finishedActions" : [ 14 ]
+    } ],
+    "animationGroups" : [ {
+        "name" : "Idle",
+        "animations" : [ "idleClip" ]
+    }, {
+        "name" : "Squat",
+        "animations" : [ "squatClip_0", "squatClip_1" ]
+    }, {
+        "name" : "JumpingJack",
+        "animations" : [ "jumpingJackClip" ]
+    }, {
+        "name" : "Lunge",
+        "animations" : [ "lungeClip" ]
+    }, {
+        "name" : "IdleToSquat",
+        "animations" : [ "idleToSquatClip_0", "idleToSquatClip_1" ]
+    }, {
+        "name" : "SquatToIdle",
+        "animations" : [ "squatToIdleClip" ]
+    }, {
+        "name" : "IdleToJumpingJack",
+        "animations" : [ "idleToJumpingJackClip" ]
+    }, {
+        "name" : "JumpingJackToIdle",
+        "animations" : [ "jumpingJackToIdleClip" ]
+    }, {
+        "name" : "IdleToLunge",
+        "animations" : [ "idleToLungeClip" ]
+    }, {
+        "name" : "LungeToIdle",
+        "animations" : [ "lungeToIdleClip" ]
+    }, {
+        "name" : "JumpingJackToLunge",
+        "animations" : [ "jumpingJackToLungeClip" ]
+    }, {
+        "name" : "JumpingJackToSquat",
+        "animations" : [ "jumpingJackToSquatClip" ]
+    }, {
+        "name" : "LungeToJumpingJack",
+        "animations" : [ "lungeToJumpingJackClip" ]
+    }, {
+        "name" : "LungeToSquat",
+        "animations" : [ "lungeToSquatClip" ]
+    }, {
+        "name" : "SquatToJumpingJack",
+        "animations" : [ "squatToJumpingJackClip" ]
+    }, {
+        "name" : "SquatToLunge",
+        "animations" : [ "squatToLungeClip" ]
+    } ],
+    "skeletons" : [ {
+        "node" : "hips_JNT"
+    } ]
+}
diff --git a/resources/models/exercise/idle-animation.ani b/resources/models/exercise/idle-animation.ani
new file mode 100644 (file)
index 0000000..02f76fd
Binary files /dev/null and b/resources/models/exercise/idle-animation.ani differ
diff --git a/resources/models/exercise/idle-to-jumping-jack-animation.ani b/resources/models/exercise/idle-to-jumping-jack-animation.ani
new file mode 100644 (file)
index 0000000..74b8647
Binary files /dev/null and b/resources/models/exercise/idle-to-jumping-jack-animation.ani differ
diff --git a/resources/models/exercise/idle-to-lunge-animation.ani b/resources/models/exercise/idle-to-lunge-animation.ani
new file mode 100644 (file)
index 0000000..81743dd
Binary files /dev/null and b/resources/models/exercise/idle-to-lunge-animation.ani differ
diff --git a/resources/models/exercise/idle-to-squat-animation-0.ani b/resources/models/exercise/idle-to-squat-animation-0.ani
new file mode 100644 (file)
index 0000000..f7d792c
Binary files /dev/null and b/resources/models/exercise/idle-to-squat-animation-0.ani differ
diff --git a/resources/models/exercise/idle-to-squat-animation-1.ani b/resources/models/exercise/idle-to-squat-animation-1.ani
new file mode 100644 (file)
index 0000000..e0ec040
Binary files /dev/null and b/resources/models/exercise/idle-to-squat-animation-1.ani differ
diff --git a/resources/models/exercise/jumping-jack-animation.ani b/resources/models/exercise/jumping-jack-animation.ani
new file mode 100644 (file)
index 0000000..8bd679d
Binary files /dev/null and b/resources/models/exercise/jumping-jack-animation.ani differ
diff --git a/resources/models/exercise/jumping-jack-to-idle-animation.ani b/resources/models/exercise/jumping-jack-to-idle-animation.ani
new file mode 100644 (file)
index 0000000..6d143e1
Binary files /dev/null and b/resources/models/exercise/jumping-jack-to-idle-animation.ani differ
diff --git a/resources/models/exercise/jumping-jack-to-lunge-animation.ani b/resources/models/exercise/jumping-jack-to-lunge-animation.ani
new file mode 100644 (file)
index 0000000..08c588b
Binary files /dev/null and b/resources/models/exercise/jumping-jack-to-lunge-animation.ani differ
diff --git a/resources/models/exercise/jumping-jack-to-squat-animation.ani b/resources/models/exercise/jumping-jack-to-squat-animation.ani
new file mode 100644 (file)
index 0000000..ae66e77
Binary files /dev/null and b/resources/models/exercise/jumping-jack-to-squat-animation.ani differ
diff --git a/resources/models/exercise/lunge-animation.ani b/resources/models/exercise/lunge-animation.ani
new file mode 100644 (file)
index 0000000..3912665
Binary files /dev/null and b/resources/models/exercise/lunge-animation.ani differ
diff --git a/resources/models/exercise/lunge-to-idle-animation.ani b/resources/models/exercise/lunge-to-idle-animation.ani
new file mode 100644 (file)
index 0000000..d88c844
Binary files /dev/null and b/resources/models/exercise/lunge-to-idle-animation.ani differ
diff --git a/resources/models/exercise/lunge-to-jumping-jack-animation.ani b/resources/models/exercise/lunge-to-jumping-jack-animation.ani
new file mode 100644 (file)
index 0000000..118ffa1
Binary files /dev/null and b/resources/models/exercise/lunge-to-jumping-jack-animation.ani differ
diff --git a/resources/models/exercise/lunge-to-squat-animation.ani b/resources/models/exercise/lunge-to-squat-animation.ani
new file mode 100644 (file)
index 0000000..6d435de
Binary files /dev/null and b/resources/models/exercise/lunge-to-squat-animation.ani differ
diff --git a/resources/models/exercise/model.dae.bin b/resources/models/exercise/model.dae.bin
new file mode 100644 (file)
index 0000000..c894ae9
Binary files /dev/null and b/resources/models/exercise/model.dae.bin differ
diff --git a/resources/models/exercise/squat-animation-0.ani b/resources/models/exercise/squat-animation-0.ani
new file mode 100644 (file)
index 0000000..435aaeb
Binary files /dev/null and b/resources/models/exercise/squat-animation-0.ani differ
diff --git a/resources/models/exercise/squat-animation-1.ani b/resources/models/exercise/squat-animation-1.ani
new file mode 100644 (file)
index 0000000..6fd09cb
Binary files /dev/null and b/resources/models/exercise/squat-animation-1.ani differ
diff --git a/resources/models/exercise/squat-to-idle-animation.ani b/resources/models/exercise/squat-to-idle-animation.ani
new file mode 100644 (file)
index 0000000..1bfef9a
Binary files /dev/null and b/resources/models/exercise/squat-to-idle-animation.ani differ
diff --git a/resources/models/exercise/squat-to-jumping-jack-animation.ani b/resources/models/exercise/squat-to-jumping-jack-animation.ani
new file mode 100644 (file)
index 0000000..82316cb
Binary files /dev/null and b/resources/models/exercise/squat-to-jumping-jack-animation.ani differ
diff --git a/resources/models/exercise/squat-to-lunge-animation.ani b/resources/models/exercise/squat-to-lunge-animation.ani
new file mode 100644 (file)
index 0000000..c967b9a
Binary files /dev/null and b/resources/models/exercise/squat-to-lunge-animation.ani differ
diff --git a/resources/models/flair.dli b/resources/models/flair.dli
new file mode 100644 (file)
index 0000000..727b587
--- /dev/null
@@ -0,0 +1,828 @@
+{
+  "asset": { "version": "1.0" },
+  "scene": 0,
+  "scenes": [ { "nodes": [ 70 ] } ],
+  "nodes": [
+    {
+      "name": "RootNode",
+      "matrix": [ 0.01, 0, 0, 0, 0, 0.01, 0, 0, 0, 0, 0.01, 0, 0, 0, 0, 1 ],
+      "children": [ 1, 68, 69 ]
+    },
+    {
+      "name": "mixamorig_Hips",
+      "matrix": [ 0.993922, -0.109704, -0.009112, 0, -0.054715, -0.420492, -0.905645, 0, 0.095522, 0.900639, -0.423939, 0, 0.170038, 35.2548, -3.29966, 1 ],
+      "children": [ 2, 58, 63 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, -103.991, -2.07608, 1 ]
+    },
+    {
+      "name": "mixamorig_Spine",
+      "matrix": [ 0.989792, -0.129223, 0.060106, 0, 0.027566, 0.587364, 0.808853, 0, -0.139826, -0.79894, 0.584931, 0, 0, 10.1816, 0.131521, 1 ],
+      "children": [ 3 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0, -114.173, -2.2076, 1 ]
+    },
+    {
+      "name": "mixamorig_Spine1",
+      "matrix": [ 0.997733, 0.038028, 0.055515, 0, -0.05063, 0.967672, 0.247078, 0, -0.044325, -0.249329, 0.967404, 0, 0, 10.0835, -1.0008, 1 ],
+      "children": [ 4 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0, -124.257, -1.20679, 1 ]
+    },
+    {
+      "name": "mixamorig_Spine2",
+      "matrix": [ 0.998271, 0.043996, 0.038981, 0, -0.052343, 0.96711, 0.248913, 0, -0.026747, -0.250523, 0.967741, 0, 0, 9.10001, -1.37342, 1 ],
+      "children": [ 5, 10, 34 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0, -133.357, 0.166624, 1 ]
+    },
+    {
+      "name": "mixamorig_Neck",
+      "matrix": [ 0.999713, 0.023967, 0.000629, 0, -0.023817, 0.989778, 0.140617, 0, 0.002747, -0.140592, 0.990064, 0, 0, 16.6717, -2.51617, 1 ],
+      "children": [ 6 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0, -150.028, 2.68279, 1 ]
+    },
+    {
+      "name": "mixamorig_Head",
+      "matrix": [ 0.992245, 0.124199, 0.005025, 0, -0.111747, 0.873599, 0.473643, 0, 0.054436, -0.470531, 0.880703, 0, 0, 9.61788, 1.68501, 1 ],
+      "children": [ 7, 8, 9 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0, -159.646, 0.997784, 1 ]
+    },
+    {
+      "name": "mixamorig_HeadTop_End",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0, 17.8152, 2.58499, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftEye",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.06756, 6.40951, 9.28355, 1 ]
+    },
+    {
+      "name": "mixamorig_RightEye",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.06755, 6.4095, 9.28355, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftShoulder",
+      "matrix": [ 0.998736, -0.015656, 0.047773, 0, 0.010721, 0.99474, 0.101866, 0, -0.049116, -0.101225, 0.99365, 0, 4.57045, 10.946, -2.62799, 1 ],
+      "children": [ 11 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.57046, -144.303, 2.79461, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftArm",
+      "matrix": [ -0.267645, -0.796531, -0.54213, 0, 0.956453, -0.151627, -0.249413, 0, 0.116463, -0.585276, 0.802427, 0, 10.5924, -0.524583, -2.23212, 1 ],
+      "children": [ 12 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -15.1628, -143.778, 5.02673, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftForeArm",
+      "matrix": [ 0.824786, -0, 0.565445, 0, 0, 1, 0, 0, -0.565445, 0, 0.824786, 0, 27.8415, -0, 0, 1 ],
+      "children": [ 13 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -43.0043, -143.778, 5.02669, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHand",
+      "matrix": [ -0.023267, 0.942263, 0.334065, 0, -0.935231, -0.138595, 0.325783, 0, 0.353273, -0.304848, 0.884458, 0, 28.3288, -0, 0, 1 ],
+      "children": [ 14, 18, 22, 26, 30 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -71.3332, -143.778, 5.02666, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandThumb1",
+      "matrix": [ 0.923885, 0.37441, 0.079077, 0, -0.344295, 0.90349, -0.255276, 0, -0.167023, 0.20862, 0.963629, 0, 2.46614, -1.57505, 2.68241, 1 ],
+      "children": [ 15 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -73.7993, -142.203, 2.34424, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandThumb2",
+      "matrix": [ 0.975473, 0.04614, -0.215227, 0, -0.02286, 0.993732, 0.109429, 0, 0.218927, -0.101825, 0.970414, 0, 3.2298, -1.86469, 1.86468, 1 ],
+      "children": [ 16 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -77.0291, -140.338, 0.479562, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandThumb3",
+      "matrix": [ 0.973758, 0.22652, -0.02201, 0, -0.227471, 0.965605, -0.125954, 0, -0.007278, 0.127656, 0.991792, 0, 2.65257, -1.53149, 1.53147, 1 ],
+      "children": [ 17 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -79.6817, -138.807, -1.05191, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandThumb4",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.95457, -1.1285, 1.12849, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandIndex1",
+      "matrix": [ 0.987986, -0.145331, -0.052565, 0, 0.145353, 0.989374, -0.003426, 0, 0.052505, -0.004256, 0.998612, 0, 9.1093, -0.517083, 2.26007, 1 ],
+      "children": [ 19 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -80.4425, -143.261, 2.76658, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandIndex2",
+      "matrix": [ 1, -0.000799, -0, 0, 0.000799, 1, 0, 0, 0, 0, 1, 0, 3.67641, -0, 0, 1 ],
+      "children": [ 20 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -84.1189, -143.261, 2.76655, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandIndex3",
+      "matrix": [ 1, 0.000494, 0, 0, -0.000494, 1, 0, 0, -0, 0, 1, 0, 2.88306, 0, -0, 1 ],
+      "children": [ 21 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -87.002, -143.261, 2.7666, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandIndex4",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.39272, 0, 0, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandMiddle1",
+      "matrix": [ 0.988358, -0.142802, -0.0525, 0, 0.142694, 0.98975, -0.005822, 0, 0.052793, -0.001737, 0.998604, 0, 9.5334, -0, 0, 1 ],
+      "children": [ 23 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -80.8666, -143.778, 5.02664, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandMiddle2",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.69824, 0, 0, 1 ],
+      "children": [ 24 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -84.5648, -143.778, 5.02663, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandMiddle3",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.95092, -0, 0, 1 ],
+      "children": [ 25 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -87.5157, -143.778, 5.02661, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandMiddle4",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.8339, -0, -0, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandRing1",
+      "matrix": [ 0.991315, -0.12141, -0.050532, 0, 0.12133, 0.992601, -0.004647, 0, 0.050722, -0.001524, 0.998712, 0, 9.10453, -0.04394, -1.86509, 1 ],
+      "children": [ 27 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -80.4377, -143.734, 6.89174, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandRing2",
+      "matrix": [ 1, -0.001159, -0.000118, 0, 0.001159, 1, 0, 0, 0.000118, 0, 1, 0, 3.15403, -0, 0, 1 ],
+      "children": [ 28 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -83.5917, -143.734, 6.89173, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandRing3",
+      "matrix": [ 1, 0.000679, 0, 0, -0.000679, 1, 0, 0, -0, 0, 1, 0, 2.93767, -0, -0, 1 ],
+      "children": [ 29 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -86.5294, -143.734, 6.89174, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandRing4",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.64745, -0, 0, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandPinky1",
+      "matrix": [ 0.994569, -0.092424, -0.047847, 0, 0.092359, 0.995719, -0.003583, 0, 0.047973, -0.000855, 0.998848, 0, 8.07778, -0.488668, -3.80607, 1 ],
+      "children": [ 31 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -79.411, -143.289, 8.83272, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandPinky2",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.60003, -0, -0, 1 ],
+      "children": [ 32 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -83.011, -143.289, 8.83275, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandPinky3",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.11421, 0, -0, 1 ],
+      "children": [ 33 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -85.1252, -143.289, 8.83275, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftHandPinky4",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.97568, 0, -0, 1 ]
+    },
+    {
+      "name": "mixamorig_RightShoulder",
+      "matrix": [ 0.999603, -0.028183, 0, 0, 0.028181, 0.999554, 0.009886, 0, -0.000351, -0.00988, 1, 0, -4.56997, 10.9462, -2.62802, 1 ],
+      "children": [ 35 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.56996, -144.303, 2.79464, 1 ]
+    },
+    {
+      "name": "mixamorig_RightArm",
+      "matrix": [ -0.07137, 0.866873, 0.493394, 0, -0.984512, 0.018192, -0.174373, 0, -0.160135, -0.498197, 0.852148, 0, -10.5928, -0.524798, -2.2321, 1 ],
+      "children": [ 36 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 15.1628, -143.778, 5.02674, 1 ]
+    },
+    {
+      "name": "mixamorig_RightForeArm",
+      "matrix": [ 0.747732, 0, -0.664001, 0, 0, 1, 0, 0, 0.664001, 0, 0.747732, 0, -27.8415, -0, 0, 1 ],
+      "children": [ 37 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 43.0043, -143.778, 5.02673, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHand",
+      "matrix": [ 0.207849, -0.829632, -0.51818, 0, 0.787387, -0.172405, 0.591861, 0, -0.580363, -0.531025, 0.617406, 0, -28.3288, 0, 0, 1 ],
+      "children": [ 38, 42, 46, 50, 54 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 71.3332, -143.778, 5.02667, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandPinky1",
+      "matrix": [ 0.996074, 0.07568, 0.045921, 0, -0.075649, 0.997132, -0.002411, 0, -0.045972, -0.001073, 0.998942, 0, -8.07667, -0.488459, -3.80601, 1 ],
+      "children": [ 39 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 79.4098, -143.289, 8.83268, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandPinky2",
+      "matrix": [ 1, 0.000864, 0, 0, -0.000864, 1, 0, 0, -0, 0, 1, 0, -3.60003, 0, 0, 1 ],
+      "children": [ 40 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 83.0099, -143.289, 8.83263, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandPinky3",
+      "matrix": [ 1, -0.000491, -0, 0, 0.000491, 1, 0, 0, 0, 0, 1, 0, -2.11421, 0, 0, 1 ],
+      "children": [ 41 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 85.1241, -143.289, 8.83262, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandPinky4",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.97568, -0, -0, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandRing1",
+      "matrix": [ 0.991946, 0.116756, 0.049093, 0, -0.116683, 0.99316, -0.004371, 0, -0.049268, -0.001392, 0.998785, 0, -9.10359, -0.043914, -1.86507, 1 ],
+      "children": [ 43 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 80.4368, -143.734, 6.89175, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandRing2",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.15403, 0, 0, 1 ],
+      "children": [ 44 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 83.5908, -143.734, 6.8917, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandRing3",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.93767, -0, -0, 1 ],
+      "children": [ 45 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 86.5285, -143.734, 6.89174, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandRing4",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.64745, 0, -0, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandMiddle1",
+      "matrix": [ 0.991448, 0.120786, 0.049404, 0, -0.120708, 0.992678, -0.004571, 0, -0.049594, -0.001431, 0.998768, 0, -9.5325, -0, 0, 1 ],
+      "children": [ 47 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 80.8657, -143.778, 5.02666, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandMiddle2",
+      "matrix": [ 1, 0.001033, 0, 0, -0.001033, 1, 0, 0, -0, 0, 1, 0, -3.69824, 0, -0, 1 ],
+      "children": [ 48 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 84.5639, -143.778, 5.02668, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandMiddle3",
+      "matrix": [ 1, -0.000624, -0, 0, 0.000624, 1, 0, 0, 0, 0, 1, 0, -2.95092, 0, 0, 1 ],
+      "children": [ 49 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 87.5148, -143.778, 5.02668, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandMiddle4",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.8339, 0, 0, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandIndex1",
+      "matrix": [ 0.99114, 0.123217, 0.04959, 0, -0.123136, 0.992379, -0.004692, 0, -0.049791, -0.001456, 0.998759, 0, -9.10828, -0.516789, 2.26012, 1 ],
+      "children": [ 51 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 80.4414, -143.261, 2.76656, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandIndex2",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.67641, 0, 0, 1 ],
+      "children": [ 52 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 84.1179, -143.261, 2.76652, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandIndex3",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.88306, -0, 0, 1 ],
+      "children": [ 53 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 87.0009, -143.261, 2.76648, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandIndex4",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.39272, 0, 0, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandThumb1",
+      "matrix": [ 0.91586, -0.385245, -0.113079, 0, 0.347237, 0.901412, -0.258619, 0, 0.201562, 0.197594, 0.959338, 0, -2.46481, -1.57271, 2.68263, 1 ],
+      "children": [ 55 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 73.798, -142.205, 2.34405, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandThumb2",
+      "matrix": [ 0.967728, -0.064145, 0.243697, 0, 0.035585, 0.992155, 0.119843, 0, -0.249472, -0.107303, 0.962419, 0, -3.22977, -1.86471, 1.86472, 1 ],
+      "children": [ 56 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 77.0277, -140.34, 0.479328, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandThumb3",
+      "matrix": [ 0.962703, -0.243992, 0.116925, 0, 0.252902, 0.96507, -0.068421, 0, -0.096147, 0.09544, 0.990781, 0, -2.65261, -1.53145, 1.53145, 1 ],
+      "children": [ 57 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 79.6803, -138.809, -1.05212, 1 ]
+    },
+    {
+      "name": "mixamorig_RightHandThumb4",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.95458, -1.12846, 1.12851, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftUpLeg",
+      "matrix": [ 0.543578, 0.357985, -0.75919, 0, -0.837166, 0.296569, -0.459565, 0, 0.060635, 0.885378, 0.460901, 0, 8.20778, -6.75171, -1.59956, 1 ],
+      "children": [ 59 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -8.20778, -97.2398, -0.476521, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftLeg",
+      "matrix": [ 0.996676, 0.023833, 0.0779, 0, -0.051564, 0.924871, 0.376768, 0, -0.063068, -0.379533, 0.923026, 0, 0, -44.3705, 0.284643, 1 ],
+      "children": [ 60 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -8.20778, -52.8693, -0.761164, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftFoot",
+      "matrix": [ 0.9999, -0.011862, -0.007738, 0, 0.014132, 0.871434, 0.490309, 0, 0.000928, -0.490369, 0.871514, 0, 0, -44.4279, -2.98219, 1 ],
+      "children": [ 61 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -8.20778, -8.44141, 2.22103, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftToeBase",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0.002531, 0, 0, -0.002531, 1, 0, -0, -8.72867, 10.7106, 1 ],
+      "children": [ 62 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -8.20778, 0.28726, -8.48953, 1 ]
+    },
+    {
+      "name": "mixamorig_LeftToe_End",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0, -0.000677, 9.27814, 1 ]
+    },
+    {
+      "name": "mixamorig_RightUpLeg",
+      "matrix": [ 0.66381, -0.467129, 0.584078, 0, 0.745301, 0.47823, -0.464567, 0, -0.06231, 0.743698, 0.665606, 0, -8.2078, -6.75166, -1.59956, 1 ],
+      "children": [ 64 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 8.2078, -97.2398, -0.476517, 1 ]
+    },
+    {
+      "name": "mixamorig_RightLeg",
+      "matrix": [ 0.981097, -0.106816, 0.161363, 0, 0.085276, 0.987171, 0.134985, 0, -0.173712, -0.118673, 0.97762, 0, 0, -44.3705, 0.286156, 1 ],
+      "children": [ 65 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 8.2078, -52.8693, -0.762674, 1 ]
+    },
+    {
+      "name": "mixamorig_RightFoot",
+      "matrix": [ 0.933352, 0.230512, 0.275169, 0, -0.184264, 0.965533, -0.183829, 0, -0.308059, 0.120873, 0.943657, 0, 0, -44.4277, -2.98379, 1 ],
+      "children": [ 66 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 8.2078, -8.44154, 2.22112, 1 ]
+    },
+    {
+      "name": "mixamorig_RightToeBase",
+      "matrix": [ 1, 0, 0, 0, 0, 0.997733, 0.067301, 0, 0, -0.067301, 0.997733, 0, -0, -8.72867, 10.7106, 1 ],
+      "children": [ 67 ],
+      "inverseBindPoseMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 8.2078, 0.287128, -8.48944, 1 ]
+    },
+    {
+      "name": "mixamorig_RightToe_End",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0, -0.000676, 9.27812, 1 ]
+    },
+    {
+      "name": "Beta_Joints",
+      "model": {
+        "mesh": 0
+      }
+    },
+    {
+      "name": "Beta_Surface",
+      "model": {
+        "mesh": 1
+      }
+    },
+    {
+      "name": "Root",
+      "children": [ 0, 71 ]
+    },
+    {
+      "name": "Cube",
+      "matrix": [ 40, 0, 0, 0, 0, 25, 0, 0, 0, 0, 40, 0, 0, 25, 0, 1 ],
+      "model": {
+        "mesh": 2,
+        "material": 1,
+        "shader": 1
+      }
+    }
+  ],
+  "meshes": [
+    {
+      "uri": "flair/Flair.bin",
+      "attributes": 223,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 0, "byteLength": 125040 },
+      "positions": { "byteOffset": 125040, "byteLength": 152160 },
+      "normals": { "byteOffset": 277200, "byteLength": 152160 },
+      "textures": { "byteOffset": 429360, "byteLength": 101440 },
+      "tangents": { "byteOffset": 530800, "byteLength": 152160 },
+      "joints0": { "byteOffset": 682960, "byteLength": 202880 },
+      "weights0": { "byteOffset": 885840, "byteLength": 202880 },
+      "skeleton": 0
+    },
+    {
+      "uri": "flair/Flair.bin",
+      "attributes": 223,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 1088720, "byteLength": 169632 },
+      "positions": { "byteOffset": 1258352, "byteLength": 192384 },
+      "normals": { "byteOffset": 1450736, "byteLength": 192384 },
+      "textures": { "byteOffset": 1643120, "byteLength": 128256 },
+      "tangents": { "byteOffset": 1771376, "byteLength": 192384 },
+      "joints0": { "byteOffset": 1963760, "byteLength": 256512 },
+      "weights0": { "byteOffset": 2220272, "byteLength": 256512 },
+      "skeleton": 0
+    },
+    {
+      "uri": "flair/cube.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 0, "byteLength": 72 },
+      "positions": { "byteOffset": 72, "byteLength": 288 },
+      "normals": { "byteOffset": 360, "byteLength": 288 },
+      "textures": { "byteOffset": 648, "byteLength": 192 },
+      "tangents": { "byteOffset": 840, "byteLength": 288 }
+    }
+  ],
+  "skeletons": [
+    { "node": "mixamorig_Hips" }
+  ],
+  "cameras": [
+    {
+      "fov": 60,
+      "near": 0.1,
+      "far": 100,
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1.5, 3.5, 1 ]
+    }
+  ],
+  "lights": [
+  ],
+  "materials": [
+    {
+      "color": [ 0.0, 0.5, 1.0 ],
+      "metallic": 1.0,
+      "roughness": 0.0,
+      "mipmap": true,
+      "environment": 1
+    },
+    {
+      "color": [ 1.0, 1.0, 1.0 ],
+      "metallic": 0.0,
+      "roughness": 1.0,
+      "mipmap": true,
+      "environment": 1
+    }
+  ],
+  "environment": [
+    {
+    },
+    {
+      "cubeSpecular": "Studio/Radiance.ktx",
+      "cubeDiffuse": "Studio/Irradiance.ktx"
+    }
+  ],
+  "shaders": [
+    {
+      "vertex": "dli_pbr.vsh",
+      "fragment": "dli_pbr.fsh",
+      "hints": [ "MODIFIES_GEOMETRY" ],
+      "defines": [ "SKINNING" ],
+      "rendererState": "DEPTH_TEST|DEPTH_WRITE|CULL_BACK",
+      "uCubeMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
+      "uMaxLOD": 6
+    },
+    {
+      "vertex": "dli_pbr.vsh",
+      "fragment": "dli_pbr.fsh",
+      "rendererState": "DEPTH_TEST|DEPTH_WRITE|CULL_FRONT",
+      "uCubeMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
+      "uMaxLOD": 6
+    }
+  ],
+  "animations": [
+    {
+      "name": "autogenerated-name#1",
+      "properties": [
+        {
+          "node": "mixamorig_Hips",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 0, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_Hips",
+          "property": "position",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 651, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_Spine",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 1178, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_Spine1",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 1829, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_Spine2",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 2480, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_Neck",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 3131, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_Head",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 3782, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftShoulder",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 4433, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftArm",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 5084, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftForeArm",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 5735, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftHand",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 6386, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftHandThumb1",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 7037, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftHandThumb2",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 7688, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftHandThumb3",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 8339, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftHandIndex1",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 8990, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftHandIndex2",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 9641, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftHandIndex3",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 10292, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftHandMiddle1",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 10943, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftHandMiddle2",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 11594, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftHandMiddle3",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 12245, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftHandRing1",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 12896, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftHandRing2",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 13547, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftHandRing3",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 14198, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftHandPinky1",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 14849, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftHandPinky2",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 15500, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftHandPinky3",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 16151, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightShoulder",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 16802, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightArm",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 17453, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightForeArm",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 18104, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightHand",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 18755, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightHandPinky1",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 19406, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightHandPinky2",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 20057, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightHandPinky3",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 20708, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightHandRing1",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 21359, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightHandRing2",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 22010, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightHandRing3",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 22661, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightHandMiddle1",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 23312, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightHandMiddle2",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 23963, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightHandMiddle3",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 24614, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightHandIndex1",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 25265, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightHandIndex2",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 25916, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightHandIndex3",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 26567, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightHandThumb1",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 27218, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightHandThumb2",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 27869, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightHandThumb3",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 28520, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftUpLeg",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 29171, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftLeg",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 29822, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftFoot",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 30473, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_LeftToeBase",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 31124, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightUpLeg",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 31775, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightLeg",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 32426, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightFoot",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 33077, "numKeys": 31 }
+        },
+        {
+          "node": "mixamorig_RightToeBase",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 1 },
+          "keyFramesBin": { "url": "flair/flair.ani", "byteOffset": 33728, "numKeys": 31 }
+        }
+      ],
+      "loopCount": 0
+    }
+  ]
+}
diff --git a/resources/models/flair/Flair.bin b/resources/models/flair/Flair.bin
new file mode 100644 (file)
index 0000000..0babbbc
Binary files /dev/null and b/resources/models/flair/Flair.bin differ
diff --git a/resources/models/flair/cube.bin b/resources/models/flair/cube.bin
new file mode 100644 (file)
index 0000000..f5bd426
Binary files /dev/null and b/resources/models/flair/cube.bin differ
diff --git a/resources/models/flair/flair.ani b/resources/models/flair/flair.ani
new file mode 100644 (file)
index 0000000..30ceaf1
Binary files /dev/null and b/resources/models/flair/flair.ani differ
diff --git a/resources/models/image.dli b/resources/models/image.dli
new file mode 100644 (file)
index 0000000..4f46d3d
--- /dev/null
@@ -0,0 +1,30 @@
+{
+  "scene": 0,
+  "scenes": [ { "nodes": [ 0 ] } ],
+  "nodes": [ {
+    "name": "root",
+    "children": [ 1 ]
+  }, {
+    "name": "image",
+    "size": [ 2.0, 2.0 ],
+       "color": [ 0.5, 1.0, 0.5, 0.5 ],
+    "model": {
+      "shader": 0,
+      "mesh": 0
+    }
+  } ],
+  "environment": [ {
+  } ],
+  "meshes": [ {
+    "uri": "quad",
+    "attributes": 0
+  } ],
+  "materials": [ {
+    "albedoMap": "gallery-large-19.jpg"
+  } ],
+  "shaders": [ {
+    "vertex": "dli_images.vsh",
+    "fragment": "dli_images.fsh",
+    "rendererState" : "ALPHA_BLEND"
+  } ]
+}
diff --git a/resources/models/robot.dli b/resources/models/robot.dli
new file mode 100644 (file)
index 0000000..186b24a
--- /dev/null
@@ -0,0 +1,1266 @@
+{
+  "asset": { "version": "1.0" },
+  "scene": 0,
+  "scenes": [ { "nodes": [ 0 ] } ],
+  "nodes": [
+    {
+      "name": "$ColladaAutoName$_0",
+      "matrix": [ 1.0, 0, 0, 0, 0, 1.0, 0, 0, 0, 0, 1.0, 0, 0, 0, 0, 1 ],
+      "children": [ 1 ]
+    },
+    {
+      "name": "Spine",
+      "matrix": [ -0.171577, 0.985155, -0.00565, 0, -0.000969, 0.005566, 1, 0, 0.98517, 0.17158, 0, 0, 0, -0.782697, 0.001134, 1 ],
+      "children": [ 2, 40, 51, 62, 63, 64 ]
+    },
+    {
+      "name": "Neck",
+      "matrix": [ 0.999282, 0.037887, 0, 0, 0.037887, -0.999282, 0, 0, 0, 0, -1, 0, 1.73609, 0, 0, 1 ],
+      "children": [ 3, 14, 27 ]
+    },
+    {
+      "name": "Head1",
+      "matrix": [ -0.048873, -0.001577, -0.998804, 0, 0.998285, 0.032203, -0.048898, 0, 0.032241, -0.99948, 0, 0, 0.304215, 0, 0, 1 ],
+      "children": [ 4, 5 ]
+    },
+    {
+      "name": "Head",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.75609, 0.062596, 0, 1 ]
+    },
+    {
+      "name": "Head2",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, -1.25743, -0.001134, 1 ],
+      "model": {
+        "mesh": 8
+      },
+      "children": [ 6, 7, 8, 9, 10, 11, 12, 13 ]
+    },
+    {
+      "name": "pCube15",
+      "matrix": [ 0.580968, 0, 0, 0, 0, 0.391873, 0, 0, 0, 0, 1.04858, 0, 0.38687, 1.62435, 0, 1 ],
+      "model": {
+        "mesh": 0
+      }
+    },
+    {
+      "name": "pCube16",
+      "matrix": [ 0.580968, 0, 0, 0, 0, 0.391873, 0, 0, 0, 0, 1.04858, 0, 0.38687, 2.11656, 0, 1 ],
+      "model": {
+        "mesh": 1
+      }
+    },
+    {
+      "name": "pCylinder10",
+      "matrix": [ 0, 0, -0.52708, 0, 0, 0.52708, 0, 0, 0.585644, 0, 0, 0, 0.408816, 2.34025, 0.394094, 1 ],
+      "model": {
+        "mesh": 2
+      }
+    },
+    {
+      "name": "pCylinder10_1",
+      "matrix": [ 0, 0, -0.52708, 0, 0, 0.52708, 0, 0, 0.585644, 0, 0, 0, 0.408816, 2.34025, 0.394094, 1 ],
+      "model": {
+        "mesh": 3
+      }
+    },
+    {
+      "name": "pCylinder12",
+      "matrix": [ 0, 0, -0.202256, 0, 0, 0.202256, 0, 0, 0.224729, 0, 0, 0, 0.633571, 2.34025, 0.333171, 1 ],
+      "model": {
+        "mesh": 4
+      }
+    },
+    {
+      "name": "pCylinder13",
+      "matrix": [ 0, 0, -0.52708, 0, 0, 0.52708, 0, 0, 0.585644, 0, 0, 0, 0.408816, 2.34025, -0.397361, 1 ],
+      "model": {
+        "mesh": 5
+      }
+    },
+    {
+      "name": "pCylinder13_1",
+      "matrix": [ 0, 0, -0.52708, 0, 0, 0.52708, 0, 0, 0.585644, 0, 0, 0, 0.408816, 2.34025, -0.397361, 1 ],
+      "model": {
+        "mesh": 6
+      }
+    },
+    {
+      "name": "pCylinder14",
+      "matrix": [ 0, 0, -0.270309, 0, 0, 0.270309, 0, 0, 0.300343, 0, 0, 0, 0.58518, 2.34025, -0.381515, 1 ],
+      "model": {
+        "mesh": 7
+      }
+    },
+    {
+      "name": "Right_Upperarm",
+      "matrix": [ -0.595968, -0.019225, -0.802778, 0, -0.802361, -0.025883, 0.596278, 0, -0.032241, 0.99948, 0, 0, -0.432337, -1.70723, -0.000403, 1 ],
+      "children": [ 15, 22 ]
+    },
+    {
+      "name": "Right_Forearm",
+      "matrix": [ 0.81362, -0.581397, 0, 0, 0.581397, 0.81362, 0, 0, 0, 0, 1, 0, 1.20009, 0, 0, 1 ],
+      "children": [ 16, 19 ]
+    },
+    {
+      "name": "Right_Hand",
+      "matrix": [ 1, 0.000962, 0, 0, -0.000962, 1, 0, 0, 0, 0, 1, 0, 1.09048, 0, 0, 1 ],
+      "children": [ 17, 18 ]
+    },
+    {
+      "name": "jRight_Fingers",
+      "matrix": [ -0.000966, -1, 0, 0, -1, 0.000966, 0, 0, 0, 0, -1, 0, 1.49049, 0, 0, 1 ]
+    },
+    {
+      "name": "Right_Hand_ncl1_1",
+      "matrix": [ -0.000483, -0.500496, 0, 0, -0.500496, 0.000483, 0, 0, 0, 0, -0.500497, 0, 0.347351, -0.000719, 0.014509, 1 ],
+      "model": {
+        "mesh": 9
+      }
+    },
+    {
+      "name": "Righ_Forearm",
+      "matrix": [ -0, -0.500497, 0, 0, -0.500497, 0, 0, 0, 0, 0, -0.500497, 0, 0.546595, -0.000381, 0.014509, 1 ],
+      "model": {
+        "mesh": 12
+      },
+      "children": [ 20, 21 ]
+    },
+    {
+      "name": "pCylinder5",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, -1.08951, -0.073969, 1 ],
+      "model": {
+        "mesh": 10
+      }
+    },
+    {
+      "name": "pCylinder5_1",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, -1.08951, -0.073969, 1 ],
+      "model": {
+        "mesh": 11
+      }
+    },
+    {
+      "name": "Right_UpperArm",
+      "matrix": [ -0.000326, -0.500497, 0, 0, -0.500497, 0.000326, 0, 0, 0, 0, -0.500497, 0, 0.342486, 0.00018, 0.014509, 1 ],
+      "model": {
+        "mesh": 17
+      },
+      "children": [ 23, 24, 25, 26 ]
+    },
+    {
+      "name": "pCylinder4",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, -1.71598, -0.073969, 1 ],
+      "model": {
+        "mesh": 13
+      }
+    },
+    {
+      "name": "pCylinder4_1",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, -1.71598, -0.073969, 1 ],
+      "model": {
+        "mesh": 14
+      }
+    },
+    {
+      "name": "pCylinder3",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, 0.680126, -0.590869, 1 ],
+      "model": {
+        "mesh": 15
+      }
+    },
+    {
+      "name": "pCylinder3_1",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, 0.680126, -0.590869, 1 ],
+      "model": {
+        "mesh": 16
+      }
+    },
+    {
+      "name": "Left_Upperarm",
+      "matrix": [ -0.567567, -0.015373, -0.823184, 0, -0.341154, 0.914346, 0.218142, 0, 0.749321, 0.404643, -0.524197, 0, -0.543289, 1.67126, -0.000403, 1 ],
+      "children": [ 28, 35 ]
+    },
+    {
+      "name": "Left_Forearm",
+      "matrix": [ 0.702899, -0.272392, 0.657066, 0, 0.273195, 0.9563, 0.104189, 0, -0.656732, 0.106273, 0.746598, 0, 1.19756, 0, 0, 1 ],
+      "children": [ 29, 32 ]
+    },
+    {
+      "name": "Left_Hand",
+      "matrix": [ 1, 0.000366, -0.00089, 0, -0.000962, 0.380273, -0.924874, 0, 0, 0.924874, 0.380273, 0, 1.09358, 0, 0, 1 ],
+      "children": [ 30, 31 ]
+    },
+    {
+      "name": "Left_Finger",
+      "matrix": [ -0.000966, -1, 0, 0, -1, 0.000966, 0, 0, 0, 0, -1, 0, 1.49049, 0, 0, 1 ]
+    },
+    {
+      "name": "LeftHand",
+      "matrix": [ -0.000483, -0.500496, 0, 0, -0.500496, 0.000483, 0, 0, 0, 0, 0.5, 0, 0.344822, 0.00061, -0.030987, 1 ],
+      "model": {
+        "mesh": 18
+      }
+    },
+    {
+      "name": "Left_Forearm_ncl1_1",
+      "matrix": [ 0, 0.190325, -0.462897, 0, -0.500497, 0, -0, 0, 0, 0.462897, 0.190325, 0, 0.547157, -0.028299, -0.012658, 1 ],
+      "model": {
+        "mesh": 21
+      },
+      "children": [ 33, 34 ]
+    },
+    {
+      "name": "pCylinder5_ncl1_1",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, -1.08951, -0.073969, 1 ],
+      "model": {
+        "mesh": 19
+      }
+    },
+    {
+      "name": "pCylinder5_ncl1_1_1",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, -1.08951, -0.073969, 1 ],
+      "model": {
+        "mesh": 20
+      }
+    },
+    {
+      "name": "Left_Upperarm_ncl1_1",
+      "matrix": [ 0.000604, 0.190325, -0.462897, 0, -0.500494, 0.001588, 0, 0, 0.001468, 0.462894, 0.190325, 0, 0.340438, -0.02558, -0.01266, 1 ],
+      "model": {
+        "mesh": 26
+      },
+      "children": [ 36, 37, 38, 39 ]
+    },
+    {
+      "name": "pCylinder3_ncl1_1",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, 0.680126, -0.590869, 1 ],
+      "model": {
+        "mesh": 22
+      }
+    },
+    {
+      "name": "pCylinder3_ncl1_1_1",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, 0.680126, -0.590869, 1 ],
+      "model": {
+        "mesh": 23
+      }
+    },
+    {
+      "name": "pCylinder4_ncl1_1",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, -1.71598, -0.073969, 1 ],
+      "model": {
+        "mesh": 24
+      }
+    },
+    {
+      "name": "pCylinder4_ncl1_1_1",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, -1.71598, -0.073969, 1 ],
+      "model": {
+        "mesh": 25
+      }
+    },
+    {
+      "name": "Left_Thigh",
+      "matrix": [ -0.929044, -0.005249, -0.369932, 0, -0.369926, -0.00209, 0.929059, 0, -0.00565, 1, 0, 0, 0.004042, -0.618058, 0, 1 ],
+      "children": [ 41, 48 ]
+    },
+    {
+      "name": "Left_Shin",
+      "matrix": [ 1, -0.000442, 0, 0, -0.000442, -1, 0, 0, 0, 0, -1, 0, 0.967288, 0, 0, 1 ],
+      "children": [ 42, 45 ]
+    },
+    {
+      "name": "Left_Foot",
+      "matrix": [ -0.211977, -0.977275, 0, 0, -0.977275, 0.211977, 0, 0, 0, 0, -1, 0, 0.961114, 0, 0, 1 ],
+      "children": [ 43, 44 ]
+    },
+    {
+      "name": "Left_Toe",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.5841, -0.237615, 0, 1 ]
+    },
+    {
+      "name": "Left_Foot_ncl1_1",
+      "matrix": [ 0.500497, 0, 0, 0, 0, 0.500497, 0, 0, 0, 0, 0.500497, 0, -0.000166, -0.34695, 0.018488, 1 ],
+      "model": {
+        "mesh": 27
+      }
+    },
+    {
+      "name": "Left_Shin_ncl1_1",
+      "matrix": [ -0, -0.500497, 0, 0, -0.500497, 0, 0, 0, 0, 0, -0.500497, 0, 0.416823, 0.000247, -0.018488, 1 ],
+      "model": {
+        "mesh": 30
+      },
+      "children": [ 46, 47 ]
+    },
+    {
+      "name": "pCylinder7",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, -1.08951, -0.073969, 1 ],
+      "model": {
+        "mesh": 28
+      }
+    },
+    {
+      "name": "pCylinder7_1",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, -1.08951, -0.073969, 1 ],
+      "model": {
+        "mesh": 29
+      }
+    },
+    {
+      "name": "Left_Thigh_ncl1_1",
+      "matrix": [ 0.000146, 0.500497, 0, 0, -0.500497, 0.000146, 0, 0, 0, 0, 0.500497, 0, -0.020082, -0, 0.018488, 1 ],
+      "model": {
+        "mesh": 33
+      },
+      "children": [ 49, 50 ]
+    },
+    {
+      "name": "pCylinder6",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, -1.71598, -0.073969, 1 ],
+      "model": {
+        "mesh": 31
+      }
+    },
+    {
+      "name": "pCylinder6_1",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, -1.71598, -0.073969, 1 ],
+      "model": {
+        "mesh": 32
+      }
+    },
+    {
+      "name": "Right_Thigh",
+      "matrix": [ -0.732731, -0.00414, 0.680505, 0, 0.680495, 0.003845, 0.732743, 0, -0.00565, 1, 0, 0, -0.003002, 0.628649, 0, 1 ],
+      "children": [ 52, 59 ]
+    },
+    {
+      "name": "Right_Shin",
+      "matrix": [ 1, -0.000442, 0, 0, -0.000442, -1, 0, 0, 0, 0, -1, 0, 0.967288, 0, 0, 1 ],
+      "children": [ 53, 56 ]
+    },
+    {
+      "name": "Right_Foot",
+      "matrix": [ -0.00015, -1, 0, 0, -1, 0.00015, 0, 0, 0, 0, -1, 0, 0.961114, 0, 0, 1 ],
+      "children": [ 54, 55 ]
+    },
+    {
+      "name": "Right_Toe",
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.5841, -0.237615, 0, 1 ]
+    },
+    {
+      "name": "Right_Foot_ncl1_1",
+      "matrix": [ 0.500497, 0, 0, 0, 0, 0.500497, 0, 0, 0, 0, 0.500497, 0, -0.000166, -0.34695, -0.029295, 1 ],
+      "model": {
+        "mesh": 34
+      }
+    },
+    {
+      "name": "Right_Shin_ncl1_1",
+      "matrix": [ -0, -0.500497, 0, 0, -0.500497, 0, 0, 0, 0, 0, -0.500497, 0, 0.416823, 0.000247, 0.029295, 1 ],
+      "model": {
+        "mesh": 37
+      },
+      "children": [ 57, 58 ]
+    },
+    {
+      "name": "pCylinder2",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, -1.08951, -0.073969, 1 ],
+      "model": {
+        "mesh": 35
+      }
+    },
+    {
+      "name": "pCylinder2_1",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, -1.08951, -0.073969, 1 ],
+      "model": {
+        "mesh": 36
+      }
+    },
+    {
+      "name": "Right_Thigh_ncl1_1",
+      "matrix": [ 0.000146, 0.500497, 0, 0, -0.500497, 0.000146, 0, 0, 0, 0, 0.500497, 0, -0.020082, -0, -0.029295, 1 ],
+      "model": {
+        "mesh": 40
+      },
+      "children": [ 60, 61 ]
+    },
+    {
+      "name": "pCylinder1",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, -1.71598, -0.073969, 1 ],
+      "model": {
+        "mesh": 38
+      }
+    },
+    {
+      "name": "pCylinder1_1",
+      "matrix": [ 1.79821, 0, 0, 0, 0, 1.79821, 0, 0, 0, 0, 1.99801, 0, 0, -1.71598, -0.073969, 1 ],
+      "model": {
+        "mesh": 39
+      }
+    },
+    {
+      "name": "Body",
+      "matrix": [ 0, 0, 1, 0, 1, 0.00565, 0, 0, -0.00565, 1, 0, 0, 0.782691, 0.003288, 0, 1 ],
+      "model": {
+        "mesh": 58
+      },
+      "children": [ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81 ]
+    },
+    {
+      "name": "Body_1",
+      "matrix": [ 0, 0, 1, 0, 1, 0.00565, 0, 0, -0.00565, 1, 0, 0, 0.782691, 0.003288, 0, 1 ],
+      "model": {
+        "mesh": 59
+      }
+    },
+    {
+      "name": "Body_2",
+      "matrix": [ 0, 0, 1, 0, 1, 0.00565, 0, 0, -0.00565, 1, 0, 0, 0.782691, 0.003288, 0, 1 ],
+      "model": {
+        "mesh": 60
+      }
+    },
+    {
+      "name": "pCube17",
+      "matrix": [ 0.092455, 0, 0, 0, 0, 0.196238, 0, 0, 0, 0, 0.092455, 0, 1.09881, -0.018808, -0.157063, 1 ],
+      "model": {
+        "mesh": 41
+      }
+    },
+    {
+      "name": "pCube18",
+      "matrix": [ 0.060376, 0, 0, 0, 0, 0.051061, 0, 0, 0, 0, 0.137247, 0, 1.1219, 0.157511, 0.384788, 1 ],
+      "model": {
+        "mesh": 42
+      }
+    },
+    {
+      "name": "pCube20",
+      "matrix": [ 0.060376, 0, 0, 0, 0, 0.051061, 0, 0, 0, 0, 0.137247, 0, 1.1219, -0.046732, 0.384788, 1 ],
+      "model": {
+        "mesh": 43
+      }
+    },
+    {
+      "name": "pCube22",
+      "matrix": [ 0.060376, 0, 0, 0, 0, 0.051061, 0, 0, 0, 0, 0.137247, 0, 1.1219, -0.250975, 0.384788, 1 ],
+      "model": {
+        "mesh": 44
+      }
+    },
+    {
+      "name": "pCube24",
+      "matrix": [ 0.060376, 0, 0, 0, 0, 0.051061, 0, 0, 0, 0, 0.137247, 0, 1.1219, -0.455218, 0.384788, 1 ],
+      "model": {
+        "mesh": 45
+      }
+    },
+    {
+      "name": "pCube26",
+      "matrix": [ 0.060376, 0, 0, 0, 0, 0.051061, 0, 0, 0, 0, 0.137247, 0, 1.1219, -0.659461, 0.384788, 1 ],
+      "model": {
+        "mesh": 46
+      }
+    },
+    {
+      "name": "pCylinder15",
+      "matrix": [ 0, 0, -0.52708, 0, 0, 0.52708, 0, 0, 0.585644, 0, 0, 0, 0.835433, -0.395527, -0.493379, 1 ],
+      "model": {
+        "mesh": 47
+      }
+    },
+    {
+      "name": "pCylinder16",
+      "matrix": [ 0, 0, -0.374965, 0, 0, 0.374965, 0, 0, 0.416628, 0, 0, 0, 0.917221, 0.064661, -0.645405, 1 ],
+      "model": {
+        "mesh": 48
+      }
+    },
+    {
+      "name": "pCube28",
+      "model": {
+        "mesh": 49
+      }
+    },
+    {
+      "name": "pCube29",
+      "matrix": [ 0.02096, 0.014892, 0, 0, -0.049072, 0.069069, 0, 0, 0, 0, 0.037403, 0, 0.918412, 0.876956, -0.195153, 1 ],
+      "model": {
+        "mesh": 50
+      }
+    },
+    {
+      "name": "pCube30",
+      "matrix": [ 0.02096, 0.014892, 0, 0, -0.049072, 0.069069, 0, 0, 0, 0, 0.037403, 0, 0.918412, 0.876956, -0.533602, 1 ],
+      "model": {
+        "mesh": 51
+      }
+    },
+    {
+      "name": "pCube31",
+      "matrix": [ 0.02096, 0.014892, 0, 0, -0.049072, 0.069069, 0, 0, 0, 0, 0.037403, 0, 0.918412, 0.876956, -0.859591, 1 ],
+      "model": {
+        "mesh": 52
+      }
+    },
+    {
+      "name": "pCylinder18",
+      "matrix": [ 0, 0, -0.288926, 0, -0.16734, 0.235532, 0, 0, 0.261702, 0.185934, 0, 0, 0.921682, 0.559763, -0.889644, 1 ],
+      "model": {
+        "mesh": 53
+      }
+    },
+    {
+      "name": "pCube13",
+      "matrix": [ 0.338439, 0, 0, 0, 0, 0.653419, 0, 0, 0, 0, 1.03816, 0, -1.0356, 0.256829, 0, 1 ],
+      "model": {
+        "mesh": 54
+      }
+    },
+    {
+      "name": "pCylinder8",
+      "matrix": [ 0.461704, 0, 0, 0, 0, 0, 0.461704, 0, 0, -0.513005, 0, 0, -1.18371, 1.52539, -0.505625, 1 ],
+      "model": {
+        "mesh": 55
+      }
+    },
+    {
+      "name": "pCylinder9",
+      "matrix": [ 0.461704, 0, 0, 0, 0, 0, 0.461704, 0, 0, -0.513005, 0, 0, -1.18371, 1.52539, 0.489406, 1 ],
+      "model": {
+        "mesh": 56
+      }
+    },
+    {
+      "name": "Neck_ncl1_1",
+      "matrix": [ -0.761271, 0, 0, 0, 0, 0, -0.761271, 0, 0, -0.514956, 0, 0, -0.00199, 1.13774, 0, 1 ],
+      "model": {
+        "mesh": 57
+      }
+    }
+  ],
+  "meshes": [
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 0, "byteLength": 264 },
+      "positions": { "byteOffset": 264, "byteLength": 1152 },
+      "normals": { "byteOffset": 1416, "byteLength": 1152 },
+      "textures": { "byteOffset": 2568, "byteLength": 768 },
+      "tangents": { "byteOffset": 3336, "byteLength": 1152 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 4488, "byteLength": 264 },
+      "positions": { "byteOffset": 4752, "byteLength": 1152 },
+      "normals": { "byteOffset": 5904, "byteLength": 1152 },
+      "textures": { "byteOffset": 7056, "byteLength": 768 },
+      "tangents": { "byteOffset": 7824, "byteLength": 1152 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 8976, "byteLength": 744 },
+      "positions": { "byteOffset": 9720, "byteLength": 2892 },
+      "normals": { "byteOffset": 12612, "byteLength": 2892 },
+      "textures": { "byteOffset": 15504, "byteLength": 1928 },
+      "tangents": { "byteOffset": 17432, "byteLength": 2892 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 20324, "byteLength": 744 },
+      "positions": { "byteOffset": 21068, "byteLength": 2892 },
+      "normals": { "byteOffset": 23960, "byteLength": 2892 },
+      "textures": { "byteOffset": 26852, "byteLength": 1928 },
+      "tangents": { "byteOffset": 28780, "byteLength": 2892 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 31672, "byteLength": 360 },
+      "positions": { "byteOffset": 32032, "byteLength": 792 },
+      "normals": { "byteOffset": 32824, "byteLength": 792 },
+      "textures": { "byteOffset": 33616, "byteLength": 528 },
+      "tangents": { "byteOffset": 34144, "byteLength": 792 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 34936, "byteLength": 744 },
+      "positions": { "byteOffset": 35680, "byteLength": 2892 },
+      "normals": { "byteOffset": 38572, "byteLength": 2892 },
+      "textures": { "byteOffset": 41464, "byteLength": 1928 },
+      "tangents": { "byteOffset": 43392, "byteLength": 2892 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 46284, "byteLength": 744 },
+      "positions": { "byteOffset": 47028, "byteLength": 2892 },
+      "normals": { "byteOffset": 49920, "byteLength": 2892 },
+      "textures": { "byteOffset": 52812, "byteLength": 1928 },
+      "tangents": { "byteOffset": 54740, "byteLength": 2892 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 57632, "byteLength": 360 },
+      "positions": { "byteOffset": 57992, "byteLength": 792 },
+      "normals": { "byteOffset": 58784, "byteLength": 792 },
+      "textures": { "byteOffset": 59576, "byteLength": 528 },
+      "tangents": { "byteOffset": 60104, "byteLength": 792 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 60896, "byteLength": 1128 },
+      "positions": { "byteOffset": 62024, "byteLength": 4836 },
+      "normals": { "byteOffset": 66860, "byteLength": 4836 },
+      "textures": { "byteOffset": 71696, "byteLength": 3224 },
+      "tangents": { "byteOffset": 74920, "byteLength": 4836 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 79756, "byteLength": 1380 },
+      "positions": { "byteOffset": 81136, "byteLength": 6492 },
+      "normals": { "byteOffset": 87628, "byteLength": 6492 },
+      "textures": { "byteOffset": 94120, "byteLength": 4328 },
+      "tangents": { "byteOffset": 98448, "byteLength": 6492 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 104940, "byteLength": 744 },
+      "positions": { "byteOffset": 105684, "byteLength": 1560 },
+      "normals": { "byteOffset": 107244, "byteLength": 1560 },
+      "textures": { "byteOffset": 108804, "byteLength": 1040 },
+      "tangents": { "byteOffset": 109844, "byteLength": 1560 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 111404, "byteLength": 744 },
+      "positions": { "byteOffset": 112148, "byteLength": 1560 },
+      "normals": { "byteOffset": 113708, "byteLength": 1560 },
+      "textures": { "byteOffset": 115268, "byteLength": 1040 },
+      "tangents": { "byteOffset": 116308, "byteLength": 1560 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 117868, "byteLength": 456 },
+      "positions": { "byteOffset": 118324, "byteLength": 1908 },
+      "normals": { "byteOffset": 120232, "byteLength": 1908 },
+      "textures": { "byteOffset": 122140, "byteLength": 1272 },
+      "tangents": { "byteOffset": 123412, "byteLength": 1908 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 125320, "byteLength": 744 },
+      "positions": { "byteOffset": 126064, "byteLength": 1560 },
+      "normals": { "byteOffset": 127624, "byteLength": 1560 },
+      "textures": { "byteOffset": 129184, "byteLength": 1040 },
+      "tangents": { "byteOffset": 130224, "byteLength": 1560 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 131784, "byteLength": 744 },
+      "positions": { "byteOffset": 132528, "byteLength": 1560 },
+      "normals": { "byteOffset": 134088, "byteLength": 1560 },
+      "textures": { "byteOffset": 135648, "byteLength": 1040 },
+      "tangents": { "byteOffset": 136688, "byteLength": 1560 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 138248, "byteLength": 552 },
+      "positions": { "byteOffset": 138800, "byteLength": 1176 },
+      "normals": { "byteOffset": 139976, "byteLength": 1176 },
+      "textures": { "byteOffset": 141152, "byteLength": 784 },
+      "tangents": { "byteOffset": 141936, "byteLength": 1176 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 143112, "byteLength": 552 },
+      "positions": { "byteOffset": 143664, "byteLength": 1176 },
+      "normals": { "byteOffset": 144840, "byteLength": 1176 },
+      "textures": { "byteOffset": 146016, "byteLength": 784 },
+      "tangents": { "byteOffset": 146800, "byteLength": 1176 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 147976, "byteLength": 456 },
+      "positions": { "byteOffset": 148432, "byteLength": 1872 },
+      "normals": { "byteOffset": 150304, "byteLength": 1872 },
+      "textures": { "byteOffset": 152176, "byteLength": 1248 },
+      "tangents": { "byteOffset": 153424, "byteLength": 1872 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 155296, "byteLength": 1380 },
+      "positions": { "byteOffset": 156676, "byteLength": 6480 },
+      "normals": { "byteOffset": 163156, "byteLength": 6480 },
+      "textures": { "byteOffset": 169636, "byteLength": 4320 },
+      "tangents": { "byteOffset": 173956, "byteLength": 6480 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 180436, "byteLength": 744 },
+      "positions": { "byteOffset": 181180, "byteLength": 1560 },
+      "normals": { "byteOffset": 182740, "byteLength": 1560 },
+      "textures": { "byteOffset": 184300, "byteLength": 1040 },
+      "tangents": { "byteOffset": 185340, "byteLength": 1560 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 186900, "byteLength": 744 },
+      "positions": { "byteOffset": 187644, "byteLength": 1560 },
+      "normals": { "byteOffset": 189204, "byteLength": 1560 },
+      "textures": { "byteOffset": 190764, "byteLength": 1040 },
+      "tangents": { "byteOffset": 191804, "byteLength": 1560 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 193364, "byteLength": 456 },
+      "positions": { "byteOffset": 193820, "byteLength": 1920 },
+      "normals": { "byteOffset": 195740, "byteLength": 1920 },
+      "textures": { "byteOffset": 197660, "byteLength": 1280 },
+      "tangents": { "byteOffset": 198940, "byteLength": 1920 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 200860, "byteLength": 552 },
+      "positions": { "byteOffset": 201412, "byteLength": 1224 },
+      "normals": { "byteOffset": 202636, "byteLength": 1224 },
+      "textures": { "byteOffset": 203860, "byteLength": 816 },
+      "tangents": { "byteOffset": 204676, "byteLength": 1224 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 205900, "byteLength": 552 },
+      "positions": { "byteOffset": 206452, "byteLength": 1224 },
+      "normals": { "byteOffset": 207676, "byteLength": 1224 },
+      "textures": { "byteOffset": 208900, "byteLength": 816 },
+      "tangents": { "byteOffset": 209716, "byteLength": 1224 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 210940, "byteLength": 744 },
+      "positions": { "byteOffset": 211684, "byteLength": 1560 },
+      "normals": { "byteOffset": 213244, "byteLength": 1560 },
+      "textures": { "byteOffset": 214804, "byteLength": 1040 },
+      "tangents": { "byteOffset": 215844, "byteLength": 1560 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 217404, "byteLength": 744 },
+      "positions": { "byteOffset": 218148, "byteLength": 1560 },
+      "normals": { "byteOffset": 219708, "byteLength": 1560 },
+      "textures": { "byteOffset": 221268, "byteLength": 1040 },
+      "tangents": { "byteOffset": 222308, "byteLength": 1560 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 223868, "byteLength": 456 },
+      "positions": { "byteOffset": 224324, "byteLength": 1872 },
+      "normals": { "byteOffset": 226196, "byteLength": 1872 },
+      "textures": { "byteOffset": 228068, "byteLength": 1248 },
+      "tangents": { "byteOffset": 229316, "byteLength": 1872 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 231188, "byteLength": 432 },
+      "positions": { "byteOffset": 231620, "byteLength": 1752 },
+      "normals": { "byteOffset": 233372, "byteLength": 1752 },
+      "textures": { "byteOffset": 235124, "byteLength": 1168 },
+      "tangents": { "byteOffset": 236292, "byteLength": 1752 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 238044, "byteLength": 744 },
+      "positions": { "byteOffset": 238788, "byteLength": 1560 },
+      "normals": { "byteOffset": 240348, "byteLength": 1560 },
+      "textures": { "byteOffset": 241908, "byteLength": 1040 },
+      "tangents": { "byteOffset": 242948, "byteLength": 1560 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 244508, "byteLength": 744 },
+      "positions": { "byteOffset": 245252, "byteLength": 1560 },
+      "normals": { "byteOffset": 246812, "byteLength": 1560 },
+      "textures": { "byteOffset": 248372, "byteLength": 1040 },
+      "tangents": { "byteOffset": 249412, "byteLength": 1560 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 250972, "byteLength": 456 },
+      "positions": { "byteOffset": 251428, "byteLength": 1872 },
+      "normals": { "byteOffset": 253300, "byteLength": 1872 },
+      "textures": { "byteOffset": 255172, "byteLength": 1248 },
+      "tangents": { "byteOffset": 256420, "byteLength": 1872 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 258292, "byteLength": 744 },
+      "positions": { "byteOffset": 259036, "byteLength": 1560 },
+      "normals": { "byteOffset": 260596, "byteLength": 1560 },
+      "textures": { "byteOffset": 262156, "byteLength": 1040 },
+      "tangents": { "byteOffset": 263196, "byteLength": 1560 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 264756, "byteLength": 744 },
+      "positions": { "byteOffset": 265500, "byteLength": 1560 },
+      "normals": { "byteOffset": 267060, "byteLength": 1560 },
+      "textures": { "byteOffset": 268620, "byteLength": 1040 },
+      "tangents": { "byteOffset": 269660, "byteLength": 1560 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 271220, "byteLength": 456 },
+      "positions": { "byteOffset": 271676, "byteLength": 1932 },
+      "normals": { "byteOffset": 273608, "byteLength": 1932 },
+      "textures": { "byteOffset": 275540, "byteLength": 1288 },
+      "tangents": { "byteOffset": 276828, "byteLength": 1932 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 278760, "byteLength": 432 },
+      "positions": { "byteOffset": 279192, "byteLength": 1752 },
+      "normals": { "byteOffset": 280944, "byteLength": 1752 },
+      "textures": { "byteOffset": 282696, "byteLength": 1168 },
+      "tangents": { "byteOffset": 283864, "byteLength": 1752 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 285616, "byteLength": 744 },
+      "positions": { "byteOffset": 286360, "byteLength": 1560 },
+      "normals": { "byteOffset": 287920, "byteLength": 1560 },
+      "textures": { "byteOffset": 289480, "byteLength": 1040 },
+      "tangents": { "byteOffset": 290520, "byteLength": 1560 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 292080, "byteLength": 744 },
+      "positions": { "byteOffset": 292824, "byteLength": 1560 },
+      "normals": { "byteOffset": 294384, "byteLength": 1560 },
+      "textures": { "byteOffset": 295944, "byteLength": 1040 },
+      "tangents": { "byteOffset": 296984, "byteLength": 1560 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 298544, "byteLength": 456 },
+      "positions": { "byteOffset": 299000, "byteLength": 1872 },
+      "normals": { "byteOffset": 300872, "byteLength": 1872 },
+      "textures": { "byteOffset": 302744, "byteLength": 1248 },
+      "tangents": { "byteOffset": 303992, "byteLength": 1872 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 305864, "byteLength": 744 },
+      "positions": { "byteOffset": 306608, "byteLength": 1560 },
+      "normals": { "byteOffset": 308168, "byteLength": 1560 },
+      "textures": { "byteOffset": 309728, "byteLength": 1040 },
+      "tangents": { "byteOffset": 310768, "byteLength": 1560 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 312328, "byteLength": 744 },
+      "positions": { "byteOffset": 313072, "byteLength": 1560 },
+      "normals": { "byteOffset": 314632, "byteLength": 1560 },
+      "textures": { "byteOffset": 316192, "byteLength": 1040 },
+      "tangents": { "byteOffset": 317232, "byteLength": 1560 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 318792, "byteLength": 456 },
+      "positions": { "byteOffset": 319248, "byteLength": 1932 },
+      "normals": { "byteOffset": 321180, "byteLength": 1932 },
+      "textures": { "byteOffset": 323112, "byteLength": 1288 },
+      "tangents": { "byteOffset": 324400, "byteLength": 1932 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 326332, "byteLength": 168 },
+      "positions": { "byteOffset": 326500, "byteLength": 576 },
+      "normals": { "byteOffset": 327076, "byteLength": 576 },
+      "textures": { "byteOffset": 327652, "byteLength": 384 },
+      "tangents": { "byteOffset": 328036, "byteLength": 576 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 328612, "byteLength": 120 },
+      "positions": { "byteOffset": 328732, "byteLength": 480 },
+      "normals": { "byteOffset": 329212, "byteLength": 480 },
+      "textures": { "byteOffset": 329692, "byteLength": 320 },
+      "tangents": { "byteOffset": 330012, "byteLength": 480 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 330492, "byteLength": 120 },
+      "positions": { "byteOffset": 330612, "byteLength": 480 },
+      "normals": { "byteOffset": 331092, "byteLength": 480 },
+      "textures": { "byteOffset": 331572, "byteLength": 320 },
+      "tangents": { "byteOffset": 331892, "byteLength": 480 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 332372, "byteLength": 120 },
+      "positions": { "byteOffset": 332492, "byteLength": 480 },
+      "normals": { "byteOffset": 332972, "byteLength": 480 },
+      "textures": { "byteOffset": 333452, "byteLength": 320 },
+      "tangents": { "byteOffset": 333772, "byteLength": 480 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 334252, "byteLength": 120 },
+      "positions": { "byteOffset": 334372, "byteLength": 480 },
+      "normals": { "byteOffset": 334852, "byteLength": 480 },
+      "textures": { "byteOffset": 335332, "byteLength": 320 },
+      "tangents": { "byteOffset": 335652, "byteLength": 480 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 336132, "byteLength": 120 },
+      "positions": { "byteOffset": 336252, "byteLength": 480 },
+      "normals": { "byteOffset": 336732, "byteLength": 480 },
+      "textures": { "byteOffset": 337212, "byteLength": 320 },
+      "tangents": { "byteOffset": 337532, "byteLength": 480 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 338012, "byteLength": 744 },
+      "positions": { "byteOffset": 338756, "byteLength": 2604 },
+      "normals": { "byteOffset": 341360, "byteLength": 2604 },
+      "textures": { "byteOffset": 343964, "byteLength": 1736 },
+      "tangents": { "byteOffset": 345700, "byteLength": 2604 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 348304, "byteLength": 744 },
+      "positions": { "byteOffset": 349048, "byteLength": 2508 },
+      "normals": { "byteOffset": 351556, "byteLength": 2508 },
+      "textures": { "byteOffset": 354064, "byteLength": 1672 },
+      "tangents": { "byteOffset": 355736, "byteLength": 2508 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 358244, "byteLength": 180 },
+      "positions": { "byteOffset": 358424, "byteLength": 768 },
+      "normals": { "byteOffset": 359192, "byteLength": 768 },
+      "textures": { "byteOffset": 359960, "byteLength": 512 },
+      "tangents": { "byteOffset": 360472, "byteLength": 768 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 361240, "byteLength": 72 },
+      "positions": { "byteOffset": 361312, "byteLength": 288 },
+      "normals": { "byteOffset": 361600, "byteLength": 288 },
+      "textures": { "byteOffset": 361888, "byteLength": 192 },
+      "tangents": { "byteOffset": 362080, "byteLength": 288 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 362368, "byteLength": 72 },
+      "positions": { "byteOffset": 362440, "byteLength": 288 },
+      "normals": { "byteOffset": 362728, "byteLength": 288 },
+      "textures": { "byteOffset": 363016, "byteLength": 192 },
+      "tangents": { "byteOffset": 363208, "byteLength": 288 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 363496, "byteLength": 72 },
+      "positions": { "byteOffset": 363568, "byteLength": 288 },
+      "normals": { "byteOffset": 363856, "byteLength": 288 },
+      "textures": { "byteOffset": 364144, "byteLength": 192 },
+      "tangents": { "byteOffset": 364336, "byteLength": 288 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 364624, "byteLength": 744 },
+      "positions": { "byteOffset": 365368, "byteLength": 2508 },
+      "normals": { "byteOffset": 367876, "byteLength": 2508 },
+      "textures": { "byteOffset": 370384, "byteLength": 1672 },
+      "tangents": { "byteOffset": 372056, "byteLength": 2508 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 374564, "byteLength": 264 },
+      "positions": { "byteOffset": 374828, "byteLength": 1152 },
+      "normals": { "byteOffset": 375980, "byteLength": 1152 },
+      "textures": { "byteOffset": 377132, "byteLength": 768 },
+      "tangents": { "byteOffset": 377900, "byteLength": 1152 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 379052, "byteLength": 1428 },
+      "positions": { "byteOffset": 380480, "byteLength": 5436 },
+      "normals": { "byteOffset": 385916, "byteLength": 5436 },
+      "textures": { "byteOffset": 391352, "byteLength": 3624 },
+      "tangents": { "byteOffset": 394976, "byteLength": 5436 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 400412, "byteLength": 1428 },
+      "positions": { "byteOffset": 401840, "byteLength": 5436 },
+      "normals": { "byteOffset": 407276, "byteLength": 5436 },
+      "textures": { "byteOffset": 412712, "byteLength": 3624 },
+      "tangents": { "byteOffset": 416336, "byteLength": 5436 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 421772, "byteLength": 276 },
+      "positions": { "byteOffset": 422048, "byteLength": 600 },
+      "normals": { "byteOffset": 422648, "byteLength": 600 },
+      "textures": { "byteOffset": 423248, "byteLength": 400 },
+      "tangents": { "byteOffset": 423648, "byteLength": 600 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 424248, "byteLength": 864 },
+      "positions": { "byteOffset": 425112, "byteLength": 3888 },
+      "normals": { "byteOffset": 429000, "byteLength": 3888 },
+      "textures": { "byteOffset": 432888, "byteLength": 2592 },
+      "tangents": { "byteOffset": 435480, "byteLength": 3888 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 439368, "byteLength": 864 },
+      "positions": { "byteOffset": 440232, "byteLength": 3888 },
+      "normals": { "byteOffset": 444120, "byteLength": 3888 },
+      "textures": { "byteOffset": 448008, "byteLength": 2592 },
+      "tangents": { "byteOffset": 450600, "byteLength": 3888 }
+    },
+    {
+      "uri": "robot/Bob-Walk.bin",
+      "attributes": 31,
+      "primitive": "TRIANGLES",
+      "indices": { "byteOffset": 454488, "byteLength": 864 },
+      "positions": { "byteOffset": 455352, "byteLength": 3888 },
+      "normals": { "byteOffset": 459240, "byteLength": 3888 },
+      "textures": { "byteOffset": 463128, "byteLength": 2592 },
+      "tangents": { "byteOffset": 465720, "byteLength": 3888 }
+    }
+  ],
+  "skeletons": [
+  ],
+  "cameras": [
+    {
+      "fov": 60,
+      "near": 0.1,
+      "far": 100,
+      "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 10, 1 ]
+    }
+  ],
+  "lights": [
+  ],
+  "materials": [
+    {
+      "texture1": "Basic_albedo_metallic.png",
+      "texture2": "Basic_normal_roughness.png",
+      "mipmap": true,
+      "environment": 1
+    }
+  ],
+  "environment": [
+    {
+    },
+    {
+      "cubeSpecular": "Studio/Radiance.ktx",
+      "cubeDiffuse": "Studio/Irradiance.ktx"
+    }
+  ],
+  "shaders": [
+    {
+      "vertex": "dli_pbr.vsh",
+      "fragment": "dli_pbr.fsh",
+      "rendererState": "DEPTH_TEST|DEPTH_WRITE|CULL_BACK|DEPTH_FUNC:LESS_EQUAL",
+      "uCubeMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
+      "uMaxLOD": 6
+    }
+  ],
+  "animations": [
+    {
+      "name": "combinedAnim_0",
+      "properties": [
+        {
+          "node": "Spine",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 10.0417 },
+          "keyFramesBin": { "url": "robot/combinedAnim_00.ani", "byteOffset": 0, "numKeys": 241 }
+        },
+        {
+          "node": "Spine",
+          "property": "position",
+          "timePeriod": { "delay": 0, "duration": 10.0417 },
+          "keyFramesBin": { "url": "robot/combinedAnim_00.ani", "byteOffset": 5061, "numKeys": 241 }
+        },
+        {
+          "node": "Head1",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 10.0417 },
+          "keyFramesBin": { "url": "robot/combinedAnim_00.ani", "byteOffset": 9158, "numKeys": 241 }
+        },
+        {
+          "node": "Right_Upperarm",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 10.0417 },
+          "keyFramesBin": { "url": "robot/combinedAnim_00.ani", "byteOffset": 14219, "numKeys": 241 }
+        },
+        {
+          "node": "Left_Upperarm",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 10.0417 },
+          "keyFramesBin": { "url": "robot/combinedAnim_00.ani", "byteOffset": 19280, "numKeys": 241 }
+        },
+        {
+          "node": "Left_Thigh",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 10.0417 },
+          "keyFramesBin": { "url": "robot/combinedAnim_00.ani", "byteOffset": 24341, "numKeys": 241 }
+        },
+        {
+          "node": "Left_Shin",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 10.0417 },
+          "keyFramesBin": { "url": "robot/combinedAnim_00.ani", "byteOffset": 29402, "numKeys": 241 }
+        },
+        {
+          "node": "Left_Foot",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 10.0417 },
+          "keyFramesBin": { "url": "robot/combinedAnim_00.ani", "byteOffset": 34463, "numKeys": 241 }
+        },
+        {
+          "node": "Right_Thigh",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 10.0417 },
+          "keyFramesBin": { "url": "robot/combinedAnim_00.ani", "byteOffset": 39524, "numKeys": 241 }
+        },
+        {
+          "node": "Right_Shin",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 10.0417 },
+          "keyFramesBin": { "url": "robot/combinedAnim_00.ani", "byteOffset": 44585, "numKeys": 241 }
+        },
+        {
+          "node": "Right_Foot",
+          "property": "orientation",
+          "timePeriod": { "delay": 0, "duration": 10.0417 },
+          "keyFramesBin": { "url": "robot/combinedAnim_00.ani", "byteOffset": 49646, "numKeys": 241 }
+        }
+      ],
+      "loopCount": 0
+    }
+  ]
+}
diff --git a/resources/models/robot/Bob-Walk.bin b/resources/models/robot/Bob-Walk.bin
new file mode 100644 (file)
index 0000000..71e3a74
Binary files /dev/null and b/resources/models/robot/Bob-Walk.bin differ
diff --git a/resources/models/robot/combinedAnim_00.ani b/resources/models/robot/combinedAnim_00.ani
new file mode 100644 (file)
index 0000000..27349be
Binary files /dev/null and b/resources/models/robot/combinedAnim_00.ani differ
index a8eb4e1..2445e70 100755 (executable)
@@ -190,8 +190,8 @@ msgstr "Reflection"
 msgid "DALI_DEMO_STR_TITLE_RENDERER_STENCIL"
 msgstr "Renderer Stencil"
 
-msgid "DALI_DEMO_STR_TITLE_SIMPLE_VISUALS_CONTROL"
-msgstr "Simple Visuals Control"
+msgid "DALI_DEMO_STR_TITLE_SCENE_LOADER"
+msgstr "Scene Loader"
 
 msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI"
 msgstr "Script-based UI"
@@ -202,6 +202,9 @@ msgstr "Scroll View"
 msgid "DALI_DEMO_STR_TITLE_SIMPLE_SCROLL_VIEW"
 msgstr "Simple Scroll View"
 
+msgid "DALI_DEMO_STR_TITLE_SIMPLE_VISUALS_CONTROL"
+msgstr "Simple Visuals Control"
+
 msgid "DALI_DEMO_STR_TITLE_SPARKLE"
 msgstr "Sparkle"
 
index 6f338f5..d31b85e 100755 (executable)
@@ -193,8 +193,8 @@ msgstr "Refraction"
 msgid "DALI_DEMO_STR_TITLE_RENDERER_STENCIL"
 msgstr "Renderer Stencil"
 
-msgid "DALI_DEMO_STR_TITLE_SIMPLE_VISUALS_CONTROL"
-msgstr "Simple Visuals Control"
+msgid "DALI_DEMO_STR_TITLE_SCENE_LOADER"
+msgstr "Scene Loader"
 
 msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI"
 msgstr "Script-based UI"
@@ -205,6 +205,9 @@ msgstr "Scroll View"
 msgid "DALI_DEMO_STR_TITLE_SIMPLE_SCROLL_VIEW"
 msgstr "Simple Scroll View"
 
+msgid "DALI_DEMO_STR_TITLE_SIMPLE_VISUALS_CONTROL"
+msgstr "Simple Visuals Control"
+
 msgid "DALI_DEMO_STR_TITLE_SPARKLE"
 msgstr "Sparkle"
 
diff --git a/resources/shaders/dli_arc.fsh b/resources/shaders/dli_arc.fsh
new file mode 100644 (file)
index 0000000..7d885c7
--- /dev/null
@@ -0,0 +1,112 @@
+#version 300 es
+
+#ifdef HIGHP
+  precision highp float;
+#else
+  precision mediump float;
+#endif
+
+#define ROUND_STARTCAP   0x1
+#define ROUND_ENDCAP     0x2
+#define SQUARE_STARTCAP  0x4
+#define SQUARE_ENDCAP    0x8
+precision mediump float;
+
+in vec2 vUV;
+
+uniform vec4 uColor;
+uniform int antiAliasing;
+uniform float radius;
+uniform vec2 startAngle;
+uniform vec2 endAngle;
+uniform int arcCaps;
+
+out vec4 FragColor;
+
+
+void main()
+{
+////////////////////
+//Inputs
+  float radius1 = 1.0;
+  float uvPixel = length( dFdx( vUV ) ) * 2.0;
+  float dx = mix( 0.0001, uvPixel, antiAliasing > 0 );
+  float radius2 = mix( 1.0 - radius * uvPixel - dx , -radius , step( 0.0, -radius ) );
+////////////////////
+  float alpha = 0.0;
+  float circle = 0.0;
+
+  vec2 uv = fract(vUV) * 2.0 - 1.0;
+
+  float ang_img = endAngle.y * startAngle.x - endAngle.x * startAngle.y;
+  float half1 = uv.x * startAngle.x - uv.y * startAngle.y;
+  float half2 = uv.y * endAngle.y - uv.x * endAngle.x;
+  float len = length(uv);
+  float equalAngles = step(0.99999, dot(endAngle, startAngle));
+  float right_side = step(0.0, ang_img);
+  vec2 uv_norm = normalize(uv);
+  float cap_radius = -0.5 + radius2 / 2.0;
+  float square_cap;
+  float sq_plane;
+
+    /******************************************
+   * Equivalent to:
+   * if( len > radius1 || len < radius2 )
+   */
+  circle = alpha =  smoothstep( len, len + dx, radius1 ) * smoothstep( -len, -len + dx, -radius2 );
+  float half1_step = smoothstep( -dx, 0.0, half1 );
+  float half2_step = smoothstep( -dx, 0.0, half2 );
+
+  float neg_angimg = max( half1_step, half2_step );
+  float pos_angimg = min( half1_step, half2_step );
+  /******************************************
+   * Equivalent to:
+  if(ang_img < 0.0)
+  {
+    alpha *= max(smoothstep( 0.0, dx, half1 ), smoothstep( 0.0, dx, half2));
+  }
+  else
+  {
+    alpha *= min(smoothstep( 0.0, dx, half1 ) , smoothstep( 0.0, dx, half2 ));
+  }
+  */
+  alpha *= mix( neg_angimg, pos_angimg, step(0.0, ang_img) );
+
+  alpha = mix( alpha, mix( circle, 0.0, right_side ), equalAngles );
+
+  if((arcCaps & ROUND_STARTCAP) > 0)
+  {
+    len = length(uv - normalize( vec2( startAngle.y, startAngle.x )) * (1.0 + cap_radius));
+    alpha = max(alpha, smoothstep(cap_radius, cap_radius + dx, -len) );
+  }
+  if((arcCaps & ROUND_ENDCAP) > 0)
+  {
+    len = length(uv - normalize( vec2( endAngle.y, endAngle.x )) * (1.0 + cap_radius));
+    alpha = max(alpha, smoothstep(cap_radius, cap_radius + dx, -len) );
+  }
+
+  if((arcCaps & SQUARE_STARTCAP) > 0)
+  {
+    sq_plane = -uv.x * startAngle.y - uv.y * startAngle.x;
+    square_cap = min(step( 0.0, -half1 ), smoothstep( cap_radius, cap_radius + dx, half1 ));
+    square_cap = min(square_cap, smoothstep( radius2, radius2 + dx, -sq_plane ));
+    square_cap = min(square_cap, smoothstep( -1.0, -1.0 + dx, sq_plane ));
+    alpha = max(square_cap, alpha);
+  }
+
+  if((arcCaps & SQUARE_ENDCAP) > 0)
+  {
+    sq_plane = -uv.x * endAngle.y - uv.y * endAngle.x;
+    square_cap = min(step( 0.0, -half2 ), smoothstep( cap_radius, cap_radius + dx, half2 ));
+    square_cap = min(square_cap, smoothstep( radius2, radius2 + dx, -sq_plane ));
+    square_cap = min(square_cap, smoothstep( -1.0, -1.0 + dx, sq_plane ));
+    alpha = max(square_cap, alpha);
+  }
+
+  if( alpha == 0.0 )
+  {
+    discard;
+  }
+
+  FragColor = vec4(vec3(uColor), uColor.a * alpha);
+}
diff --git a/resources/shaders/dli_arc.vsh b/resources/shaders/dli_arc.vsh
new file mode 100644 (file)
index 0000000..1863c3d
--- /dev/null
@@ -0,0 +1,36 @@
+#version 300 es
+
+#ifdef HIGHP
+  precision highp float;
+#else
+  precision mediump float;
+#endif
+
+in vec3 aPosition;
+in vec2 aTexCoord;
+
+out vec2 vUV;
+
+uniform vec3 uSize;
+
+uniform mat4 uProjection;
+uniform mat4 uModelMatrix;
+uniform mat4 uViewMatrix;
+
+uniform vec2 uTilt;
+
+void main()
+{
+  vec4 vPosition = vec4( aPosition * uSize, 1.0);
+  vec4 mPosition = uModelMatrix * vPosition;
+
+  mPosition.xy += 0.3 * uTilt * mPosition.z;
+  gl_Position = uProjection * uViewMatrix * mPosition;
+
+#ifdef FLIP_V
+  vUV = vec2(aTexCoord.x, 1.0 - aTexCoord.y);
+#else
+  vUV = aTexCoord;
+#endif
+
+}
diff --git a/resources/shaders/dli_images.fsh b/resources/shaders/dli_images.fsh
new file mode 100644 (file)
index 0000000..6d0b882
--- /dev/null
@@ -0,0 +1,27 @@
+#ifdef HIGHP
+  precision highp float;
+#else
+  precision mediump float;
+#endif
+
+uniform sampler2D sAlbedo;
+
+uniform vec4 uColor;
+
+#ifdef ALPHA_TEST
+  uniform float uAlphaThreshold;
+#endif //ALPHA_TEST
+
+varying vec2 vUV;
+
+void main()
+{
+  vec4 color = texture2D(sAlbedo, vUV.st);
+#ifdef ALPHA_TEST
+  if (color.a <= uAlphaThreshold)
+  {
+    discard;
+  }
+#endif
+  gl_FragColor = color * uColor;
+}
diff --git a/resources/shaders/dli_images.vsh b/resources/shaders/dli_images.vsh
new file mode 100644 (file)
index 0000000..5f0c28a
--- /dev/null
@@ -0,0 +1,35 @@
+#ifdef HIGHP
+  precision highp float;
+#else
+  precision mediump float;
+#endif
+
+attribute vec3 aPosition;
+attribute vec2 aTexCoord;
+
+varying vec2 vUV;
+
+uniform vec3 uSize;
+
+uniform mat4 uCubeMatrix;
+
+uniform mat4 uProjection;
+uniform mat4 uModelMatrix;
+uniform mat4 uViewMatrix;
+
+uniform vec2 uTilt;
+
+void main()
+{
+  vec4 vPosition = vec4( aPosition * uSize, 1.0);
+  vec4 mPosition = uModelMatrix * vPosition;
+
+  mPosition.xy += 0.3 * uTilt * mPosition.z;
+  gl_Position = uProjection * uViewMatrix * mPosition;
+
+#ifdef FLIP_V
+  vUV = vec2(aTexCoord.x, 1.0 - aTexCoord.y);
+#else
+  vUV = aTexCoord;
+#endif
+}
diff --git a/resources/shaders/dli_pbr.fsh b/resources/shaders/dli_pbr.fsh
new file mode 100644 (file)
index 0000000..78a1b9e
--- /dev/null
@@ -0,0 +1,160 @@
+#version 300 es
+
+#ifdef HIGHP
+  precision highp float;
+#else
+  precision mediump float;
+#endif
+
+#ifdef THREE_TEX
+#ifdef GLTF_CHANNELS
+// https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#pbrmetallicroughnessmetallicroughnesstexture
+#define METALLIC b
+#define ROUGHNESS g
+#else //GLTF_CHANNELS
+#define METALLIC r
+#define ROUGHNESS a
+#endif //GLTF_CHANNELS
+#endif //THREE_TEX
+
+#ifdef THREE_TEX
+  uniform sampler2D sAlbedoAlpha;
+  uniform sampler2D sMetalRoughness;
+  uniform sampler2D sNormal;
+
+#ifdef ALPHA_TEST
+  uniform float uAlphaThreshold;
+#endif //ALPHA_TEST
+
+#else
+  uniform sampler2D sAlbedoMetal;
+  uniform sampler2D sNormalRoughness;
+#endif
+
+uniform samplerCube sDiffuse;
+uniform samplerCube sSpecular;
+
+// Number of mip map levels in the texture
+uniform float uMaxLOD;
+
+// Transformation matrix of the cubemap texture
+uniform mat4 uCubeMatrix;
+
+uniform vec4 uColor;
+uniform float uMetallicFactor;
+uniform float uRoughnessFactor;
+
+//IBL Light intensity
+uniform float uIblIntensity;
+
+in vec2 vUV;
+in vec3 vNormal;
+in vec3 vTangent;
+in vec3 vViewVec;
+
+out vec4 FragColor;
+
+// Functions for BRDF calculation come from
+// https://www.unrealengine.com/blog/physically-based-shading-on-mobile
+// Based on the paper by Dimitar Lazarov
+// http://blog.selfshadow.com/publications/s2013-shading-course/lazarov/s2013_pbs_black_ops_2_notes.pdf
+vec3 EnvBRDFApprox( vec3 SpecularColor, float Roughness, float NoV )
+{
+  const vec4 c0 = vec4( -1.0, -0.0275, -0.572, 0.022 );
+  const vec4 c1 = vec4( 1.0, 0.0425, 1.04, -0.04 );
+  vec4 r = Roughness * c0 + c1;
+  float a004 = min( r.x * r.x, exp2( -9.28 * NoV ) ) * r.x + r.y;
+  vec2 AB = vec2( -1.04, 1.04 ) * a004 + r.zw;
+
+  return SpecularColor * AB.x + AB.y;
+}
+
+void main()
+{
+  // We get information from the maps (albedo, normal map, roughness, metalness
+  // I access the maps in the order they will be used
+#ifdef THREE_TEX
+  vec4 albedoAlpha = texture(sAlbedoAlpha, vUV.st);
+  float alpha = albedoAlpha.a;
+#ifdef ALPHA_TEST
+  if (alpha <= uAlphaThreshold)
+  {
+    discard;
+  }
+#endif //ALPHA_TEST
+  vec3 albedoColor = albedoAlpha.rgb * uColor.rgb;
+
+  vec4 metalRoughness = texture(sMetalRoughness, vUV.st);
+  float metallic = metalRoughness.METALLIC * uMetallicFactor;
+  float roughness = metalRoughness.ROUGHNESS * uRoughnessFactor;
+
+  vec3 normalMap = texture(sNormal, vUV.st).rgb;
+#else  //THREE_TEX
+  vec4 albedoMetal = texture(sAlbedoMetal, vUV.st);
+  vec3 albedoColor = albedoMetal.rgb * uColor.rgb;
+  float metallic = albedoMetal.a * uMetallicFactor;
+
+  vec4 normalRoughness = texture(sNormalRoughness, vUV.st);
+  vec3 normalMap = normalRoughness.rgb;
+  float roughness = normalRoughness.a * uRoughnessFactor;
+#endif
+  //Normalize vectors
+  vec3 normal = normalize(vNormal);
+  vec3 tangent = normalize(vTangent);
+
+  // NOTE: normal and tangent have to be orthogonal for the result of the cross()
+  // product to be a unit vector. We might find that we need to normalize().
+  vec3 bitangent = cross(normal, tangent);
+
+  vec3 viewVec = normalize(vViewVec);
+
+  // Create Inverse Local to world matrix
+  mat3 vInvTBN = mat3(tangent, bitangent, normal);
+
+  // Get normal map info in world space
+  normalMap = normalize(normalMap - 0.5);
+  vec3 newNormal = vInvTBN * normalMap.rgb;
+
+  // Calculate normal dot view vector
+  float NoV = max(dot(newNormal, -viewVec), 0.0);
+
+  // Reflect vector
+  vec3 reflectionVec = reflect(viewVec, newNormal);
+
+  //transform it now to environment coordinates (used when the environment rotates)
+  vec3 reflecCube = (uCubeMatrix * vec4( reflectionVec, 0.0 ) ).xyz;
+  reflecCube = normalize( reflecCube );
+
+  //transform it now to environment coordinates
+  vec3 normalCube = ( uCubeMatrix * vec4( newNormal, 0.0 ) ).xyz;
+  normalCube = normalize( normalCube );
+
+  // Get irradiance from diffuse cubemap
+  vec3 irradiance = texture( sDiffuse, normalCube ).rgb;
+
+  // Access reflection color using roughness value
+  float finalLod = mix( 0.0, uMaxLOD - 2.0, roughness);
+  vec3 reflectionColor = textureLod(sSpecular, reflecCube, finalLod).rgb;
+
+  // We are supposed to be using DielectricColor (0.04) of a plastic (almost everything)
+  // http://blog.selfshadow.com/publications/s2014-shading-course/hoffman/s2014_pbs_physics_math_slides.pdf
+  // however that seems to prevent achieving very dark tones (i.e. get dark gray blacks).
+  vec3 DiffuseColor = albedoColor - albedoColor * metallic;  // 1 mad
+  vec3 SpecularColor = mix( vec3(0.04), albedoColor, metallic); // 2 mad
+
+  // Calculate specular color using Magic Function (takes original roughness and normal dot view).
+  vec3 specColor =  reflectionColor.rgb * EnvBRDFApprox(SpecularColor, roughness, NoV );
+
+  // Multiply the result by albedo texture and do energy conservation
+  vec3 diffuseColor = irradiance * DiffuseColor;
+
+  // Final color is the sum of the diffuse and specular term
+  vec3 finalColor = diffuseColor + specColor;
+
+  finalColor = sqrt( finalColor ) * uIblIntensity;
+#ifdef THREE_TEX
+  FragColor = vec4( finalColor, alpha );
+#else //THREE_TEX
+  FragColor = vec4( finalColor, 1.0 );
+#endif //THREE_TEX
+}
diff --git a/resources/shaders/dli_pbr.vsh b/resources/shaders/dli_pbr.vsh
new file mode 100644 (file)
index 0000000..01937ba
--- /dev/null
@@ -0,0 +1,150 @@
+#version 300 es
+
+#ifdef HIGHP
+  precision highp float;
+#else
+  precision mediump float;
+#endif
+
+in vec3 aPosition;
+in vec2 aTexCoord;
+in vec3 aNormal;
+in vec3 aTangent;
+
+#ifdef MORPH
+  uniform sampler2D sBlendShapeGeometry;
+#endif
+
+out vec2 vUV;
+out vec3 vNormal;
+out vec3 vTangent;
+out vec3 vViewVec;
+
+
+uniform highp mat4 uMvpMatrix;
+uniform highp mat4 uViewMatrix;
+uniform mat3 uNormalMatrix;
+uniform mat4 uModelMatrix;
+uniform mat4 uModelView;
+uniform mat4 uProjection;
+
+#ifdef SKINNING
+  in vec4 aJoints;
+  in vec4 aWeights;
+  #define MAX_BONES 64
+  uniform mat4 uBone[MAX_BONES];
+#endif
+
+#ifdef MORPH
+#define MAX_BLEND_SHAPE_NUMBER 128
+uniform int uNumberOfBlendShapes;                                   ///< Total number of blend shapes loaded.
+uniform float uBlendShapeWeight[MAX_BLEND_SHAPE_NUMBER];            ///< The weight of each blend shape.
+#ifdef MORPH_VERSION_2_0
+uniform float uBlendShapeUnnormalizeFactor;                         ///< Factor used to unnormalize the geometry of the blend shape.
+#else
+uniform float uBlendShapeUnnormalizeFactor[MAX_BLEND_SHAPE_NUMBER]; ///< Factor used to unnormalize the geometry of the blend shape.
+#endif
+uniform int uBlendShapeComponentSize;                               ///< The size in the texture of either the vertices, normals or tangents. Used to calculate the offset to address them.
+#endif
+
+void main()
+{
+  vec4 position = vec4(aPosition, 1.0);
+  vec3 normal = aNormal;
+  vec3 tangent = aTangent;
+
+#ifdef MORPH
+  int width = textureSize( sBlendShapeGeometry, 0 ).x;
+
+  int blendShapeBufferOffset = 0;
+  for( int index = 0; index < uNumberOfBlendShapes; ++index )
+  {
+#ifdef MORPH_POSITION
+    // Calculate the index to retrieve the geometry from the texture.
+    int vertexId = gl_VertexID + blendShapeBufferOffset;
+    int x = vertexId % width;
+    int y = vertexId / width;
+
+    vec3 diff = vec3(0.0);
+    // Retrieves the blend shape geometry from the texture, unnormalizes it and multiply by the weight.
+    if( 0.0 != uBlendShapeWeight[index] )
+    {
+#ifdef MORPH_VERSION_2_0
+       float unnormalizeFactor = uBlendShapeUnnormalizeFactor;
+#else
+       float unnormalizeFactor = uBlendShapeUnnormalizeFactor[index];
+#endif
+
+      diff = uBlendShapeWeight[index] * unnormalizeFactor * ( texelFetch( sBlendShapeGeometry, ivec2(x, y), 0 ).xyz - 0.5 );
+    }
+
+    position.xyz += diff;
+
+    blendShapeBufferOffset += uBlendShapeComponentSize;
+#endif
+
+#ifdef MORPH_NORMAL
+    // Calculate the index to retrieve the normal from the texture.
+    vertexId = gl_VertexID + blendShapeBufferOffset;
+    x = vertexId % width;
+    y = vertexId / width;
+
+    // Retrieves the blend shape normal from the texture, unnormalizes it and multiply by the weight.
+    if( 0.0 != uBlendShapeWeight[index] )
+    {
+      diff = uBlendShapeWeight[index] * 2.0 * ( texelFetch( sBlendShapeGeometry, ivec2(x, y), 0 ).xyz - 0.5 );
+    }
+
+    normal += diff.xyz;
+
+    blendShapeBufferOffset += uBlendShapeComponentSize;
+#endif
+
+#ifdef MORPH_TANGENT
+    // Calculate the index to retrieve the tangent from the texture.
+    vertexId = gl_VertexID + blendShapeBufferOffset;
+    x = vertexId % width;
+    y = vertexId / width;
+
+    // Retrieves the blend shape tangent from the texture, unnormalizes it and multiply by the weight.
+    if( 0.0 != uBlendShapeWeight[index] )
+    {
+      diff = uBlendShapeWeight[index] * 2.0 * ( texelFetch( sBlendShapeGeometry, ivec2(x, y), 0 ).xyz - 0.5 );
+    }
+
+    tangent += diff.xyz;
+
+    blendShapeBufferOffset += uBlendShapeComponentSize;
+#endif
+  }
+
+#endif
+
+#ifdef SKINNING
+  mat4 bone = uBone[int(aJoints.x)] * aWeights.x +
+    uBone[int(aJoints.y)] * aWeights.y +
+    uBone[int(aJoints.z)] * aWeights.z +
+    uBone[int(aJoints.w)] * aWeights.w;
+  position = bone * position;
+  normal = (bone * vec4(normal, 0.0)).xyz;
+  tangent = (bone * vec4(tangent, 0.0)).xyz;
+#endif
+
+  vec4 vPosition = uModelMatrix * position;
+
+  vNormal = normalize(uNormalMatrix * normal);
+
+  vTangent = normalize(uNormalMatrix * tangent);
+
+
+  vec4 viewPosition = uViewMatrix * vPosition;
+  gl_Position = uProjection * viewPosition;
+
+#ifdef FLIP_V
+  vUV = vec2(aTexCoord.x, 1.0 - aTexCoord.y);
+#else
+  vUV = aTexCoord;
+#endif
+
+  vViewVec = viewPosition.xyz;
+}
index 889f9ca..6d9f754 100644 (file)
@@ -109,6 +109,7 @@ extern "C"
 #define DALI_DEMO_STR_TITLE_RENDERING_RADIAL_PROGRESS dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RENDERING_RADIAL_PROGRESS")
 #define DALI_DEMO_STR_TITLE_RENDERING_RAY_MARCHING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RENDERING_RAY_MARCHING")
 #define DALI_DEMO_STR_TITLE_RENDERER_STENCIL dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RENDERER_STENCIL")
+#define DALI_DEMO_STR_TITLE_SCENE_LOADER dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCENE_LOADER")
 #define DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI")
 #define DALI_DEMO_STR_TITLE_SCROLL_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCROLL_VIEW")
 #define DALI_DEMO_STR_TITLE_SIMPLE_SCROLL_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SIMPLE_SCROLL_VIEW")
@@ -213,6 +214,7 @@ extern "C"
 #define DALI_DEMO_STR_TITLE_RENDERING_RAY_MARCHING "Ray Marching"
 #define DALI_DEMO_STR_TITLE_RENDERING_RADIAL_PROGRESS "Radial Progress"
 #define DALI_DEMO_STR_TITLE_RENDERER_STENCIL "Renderer Stencils"
+#define DALI_DEMO_STR_TITLE_SCENE_LOADER "Scene Loader"
 #define DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI "Script Based UI"
 #define DALI_DEMO_STR_TITLE_SCROLL_VIEW "Scroll View"
 #define DALI_DEMO_STR_TITLE_SIMPLE_SCROLL_VIEW "Simple Scroll View"