Преглед на файлове

[runtimes] Fixed owl example project, export and runtime scripts

The owl example project was not keying the control bone, leading to incorrect additive blending. The export.sh and runtimes.sh script in example/export did not account for the folder structure change in spine-ts.
Mario Zechner преди 3 години
родител
ревизия
67c0d39eab
променени са 100 файла, в които са добавени 217 реда и са изтрити 203 реда
  1. 1 1
      examples/alien/export/alien-ess.json
  2. BIN
      examples/alien/export/alien-ess.skel
  3. 1 1
      examples/alien/export/alien-pro.json
  4. BIN
      examples/alien/export/alien-pro.skel
  5. BIN
      examples/coin/export/coin-pma.png
  6. 1 1
      examples/coin/export/coin-pro.json
  7. BIN
      examples/coin/export/coin-pro.skel
  8. BIN
      examples/coin/export/coin.png
  9. 1 1
      examples/dragon/export/dragon-ess.json
  10. BIN
      examples/dragon/export/dragon-ess.skel
  11. BIN
      examples/dragon/export/dragon-pma.png
  12. BIN
      examples/dragon/export/dragon-pma_2.png
  13. BIN
      examples/dragon/export/dragon_2.png
  14. 9 5
      examples/export/export.sh
  15. 91 80
      examples/export/runtimes.sh
  16. 1 1
      examples/goblins/export/goblins-ess.json
  17. BIN
      examples/goblins/export/goblins-ess.skel
  18. BIN
      examples/goblins/export/goblins-pma.png
  19. 1 1
      examples/goblins/export/goblins-pro.json
  20. BIN
      examples/goblins/export/goblins-pro.skel
  21. BIN
      examples/goblins/export/goblins.png
  22. 1 1
      examples/hero/export/hero-ess.json
  23. BIN
      examples/hero/export/hero-ess.skel
  24. BIN
      examples/hero/export/hero-pma.png
  25. 1 1
      examples/hero/export/hero-pro.json
  26. BIN
      examples/hero/export/hero-pro.skel
  27. BIN
      examples/hero/export/hero.png
  28. 3 3
      examples/mix-and-match/export/mix-and-match-pro.json
  29. BIN
      examples/mix-and-match/export/mix-and-match-pro.skel
  30. 13 2
      examples/owl/export/owl-pro.json
  31. BIN
      examples/owl/export/owl-pro.skel
  32. BIN
      examples/owl/owl-pro.spine
  33. 1 1
      examples/powerup/export/powerup-ess.json
  34. BIN
      examples/powerup/export/powerup-ess.skel
  35. BIN
      examples/powerup/export/powerup-pma.png
  36. 1 1
      examples/powerup/export/powerup-pro.json
  37. BIN
      examples/powerup/export/powerup-pro.skel
  38. BIN
      examples/powerup/export/powerup.png
  39. BIN
      examples/raptor/export/raptor-pma.png
  40. 1 1
      examples/raptor/export/raptor-pro.json
  41. BIN
      examples/raptor/export/raptor-pro.skel
  42. BIN
      examples/raptor/export/raptor.png
  43. BIN
      examples/raptor/manual-maps/raptor-normals.png
  44. BIN
      examples/raptor/manual-maps/raptor-rim-mask.png
  45. 1 1
      examples/speedy/export/speedy-ess.json
  46. BIN
      examples/speedy/export/speedy-ess.skel
  47. BIN
      examples/speedy/export/speedy-pma.png
  48. BIN
      examples/speedy/export/speedy.png
  49. 1 1
      examples/spineboy/export/spineboy-ess.json
  50. BIN
      examples/spineboy/export/spineboy-ess.skel
  51. BIN
      examples/spineboy/export/spineboy-pma.png
  52. 1 1
      examples/spineboy/export/spineboy-pro.json
  53. BIN
      examples/spineboy/export/spineboy-pro.skel
  54. BIN
      examples/spineboy/export/spineboy.png
  55. 1 1
      examples/spinosaurus/export/spinosaurus-ess.json
  56. BIN
      examples/spinosaurus/export/spinosaurus-ess.skel
  57. BIN
      examples/stretchyman/export/stretchyman-pma.png
  58. 1 1
      examples/stretchyman/export/stretchyman-pro.json
  59. BIN
      examples/stretchyman/export/stretchyman-pro.skel
  60. BIN
      examples/tank/export/tank-pma.png
  61. 1 1
      examples/tank/export/tank-pro.json
  62. BIN
      examples/tank/export/tank-pro.skel
  63. BIN
      examples/tank/export/tank.png
  64. 1 1
      examples/vine/export/vine-pro.json
  65. BIN
      examples/vine/export/vine-pro.skel
  66. 1 1
      examples/windmill/export/windmill-ess.json
  67. BIN
      examples/windmill/export/windmill-ess.skel
  68. BIN
      examples/windmill/export/windmill-pma.png
  69. 1 1
      spine-as3/spine-as3-example/src/spineboy-ess.json
  70. 1 0
      spine-as3/spine-as3-example/src/spineboy.atlas
  71. 1 1
      spine-cocos2d-objc/Resources/coin-pro.json
  72. 1 1
      spine-cocos2d-objc/Resources/goblins-pro.json
  73. 4 4
      spine-cocos2d-objc/Resources/raptor-pro.json
  74. 1 0
      spine-cocos2d-objc/Resources/raptor.atlas
  75. 17 21
      spine-cocos2d-objc/Resources/spineboy-pro.json
  76. 1 0
      spine-cocos2d-objc/Resources/spineboy.atlas
  77. 1 13
      spine-cocos2d-objc/Resources/tank-pro.json
  78. 1 0
      spine-cocos2d-objc/Resources/tank.atlas
  79. BIN
      spine-cocos2dx/example-v4/Resources/common/coin-pro.skel
  80. 1 1
      spine-cocos2dx/example-v4/Resources/common/goblins-pro.json
  81. BIN
      spine-cocos2dx/example-v4/Resources/common/mix-and-match-pro.skel
  82. 1 0
      spine-cocos2dx/example-v4/Resources/common/mix-and-match.atlas
  83. 4 4
      spine-cocos2dx/example-v4/Resources/common/raptor-pro.json
  84. 1 0
      spine-cocos2dx/example-v4/Resources/common/raptor.atlas
  85. 17 21
      spine-cocos2dx/example-v4/Resources/common/spineboy-pro.json
  86. 1 0
      spine-cocos2dx/example-v4/Resources/common/spineboy.atlas
  87. BIN
      spine-cocos2dx/example-v4/Resources/common/tank-pro.skel
  88. 1 0
      spine-cocos2dx/example-v4/Resources/common/tank.atlas
  89. BIN
      spine-cocos2dx/example/Resources/common/coin-pro.skel
  90. 1 1
      spine-cocos2dx/example/Resources/common/goblins-pro.json
  91. BIN
      spine-cocos2dx/example/Resources/common/mix-and-match-pro.skel
  92. 1 0
      spine-cocos2dx/example/Resources/common/mix-and-match.atlas
  93. 4 4
      spine-cocos2dx/example/Resources/common/raptor-pro.json
  94. 1 0
      spine-cocos2dx/example/Resources/common/raptor.atlas
  95. 17 21
      spine-cocos2dx/example/Resources/common/spineboy-pro.json
  96. 1 0
      spine-cocos2dx/example/Resources/common/spineboy.atlas
  97. BIN
      spine-cocos2dx/example/Resources/common/tank-pro.skel
  98. 1 0
      spine-cocos2dx/example/Resources/common/tank.atlas
  99. BIN
      spine-libgdx/spine-libgdx-tests/assets/coin/coin-pma.png
  100. 1 1
      spine-libgdx/spine-libgdx-tests/assets/coin/coin-pro.json

+ 1 - 1
examples/alien/export/alien-ess.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "zgiHK9o7sFk",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -191.3,
 	"y": -4.51,
 	"width": 365.79,

BIN
examples/alien/export/alien-ess.skel


+ 1 - 1
examples/alien/export/alien-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "tnPDOU8oIi0",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -191.3,
 	"y": -4.51,
 	"width": 368.26,

BIN
examples/alien/export/alien-pro.skel


BIN
examples/coin/export/coin-pma.png


+ 1 - 1
examples/coin/export/coin-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "svidebPqqeg",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -152.5,
 	"y": -151,
 	"width": 305,

BIN
examples/coin/export/coin-pro.skel


BIN
examples/coin/export/coin.png


+ 1 - 1
examples/dragon/export/dragon-ess.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "UIFpNNbbcQI",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -366.31,
 	"y": -286.62,
 	"width": 660.39,

BIN
examples/dragon/export/dragon-ess.skel


BIN
examples/dragon/export/dragon-pma.png


BIN
examples/dragon/export/dragon-pma_2.png


BIN
examples/dragon/export/dragon_2.png


+ 9 - 5
examples/export/export.sh

@@ -121,16 +121,20 @@ echo "Exporting assets..."
 -i ../vine/images -o ../vine/export -n vine -p atlas-1.0.json \
 -i ../vine/images -o ../vine/export -n vine-pma -p atlas-1.0-pma.json \
 \
--i ../owl/owl-pro.spine -o ../owl/export -e json.json \
--i ../owl/owl-pro.spine -o ../owl/export -e binary.json \
--i ../owl/images -o ../owl/export -n owl -p atlas-0.5.json \
--i ../owl/images -o ../owl/export -n owl-pma -p atlas-0.5-pma.json \
-\
 -i ../windmill/windmill-ess.spine -o ../windmill/export -e json.json \
 -i ../windmill/windmill-ess.spine -o ../windmill/export -e binary.json \
 -i ../windmill/images -o ../windmill/export -n windmill -p atlas-0.5.json \
 -i ../windmill/images -o ../windmill/export -n windmill-pma -p atlas-0.5-pma.json
 
+# Owl needs separate export, as cleaning would kill keys in idle animation, which
+# would lead to incorrect additive animation blending.
+"$SPINE_EXE" \
+-u $version ${@:2} \
+-i ../owl/owl-pro.spine -o ../owl/export -e json.json \
+-i ../owl/owl-pro.spine -o ../owl/export -e binary.json \
+-i ../owl/images -o ../owl/export -n owl -p atlas-0.5.json \
+-i ../owl/images -o ../owl/export -n owl-pma -p atlas-0.5-pma.json \
+
 # Export Unity Assets
 UNITY_BASE_DIR=../spine-unity
 if [ -d "$UNITY_BASE_DIR" ]; then

+ 91 - 80
examples/export/runtimes.sh

@@ -325,71 +325,71 @@ cp -f ../mix-and-match/export/mix-and-match.atlas "$ROOT/spine-starling/spine-st
 cp -f ../mix-and-match/export/mix-and-match.png "$ROOT/spine-starling/spine-starling-example/src/"
 
 echo "spine-ts"
-rm "$ROOT/spine-ts/webgl/example/assets/"*
-cp -f ../coin/export/coin-pro.json "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../coin/export/coin-pro.skel "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../coin/export/coin-pma.atlas "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../coin/export/coin-pma.png "$ROOT/spine-ts/webgl/example/assets/"
-
-cp -f ../goblins/export/goblins-pro.json "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../goblins/export/goblins-pro.skel "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../goblins/export/goblins-pma.atlas "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../goblins/export/goblins-pma.png "$ROOT/spine-ts/webgl/example/assets/"
-
-cp -f ../raptor/export/raptor-pro.json "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../raptor/export/raptor-pro.skel "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../raptor/export/raptor-pma.atlas "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../raptor/export/raptor-pma.png "$ROOT/spine-ts/webgl/example/assets/"
-
-cp -f ../spineboy/export/spineboy-pro.json "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../spineboy/export/spineboy-pro.skel "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../spineboy/export/spineboy-pma.atlas "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../spineboy/export/spineboy-pma.png "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../spineboy/export/spineboy.png "$ROOT/spine-ts/webgl/example/assets/"
-
-cp -f ../tank/export/tank-pro.json "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../tank/export/tank-pro.skel "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../tank/export/tank-pma.atlas "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../tank/export/tank-pma.png "$ROOT/spine-ts/webgl/example/assets/"
-
-cp -f ../vine/export/vine-pro.json "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../vine/export/vine-pro.skel "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../vine/export/vine-pma.atlas "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../vine/export/vine-pma.png "$ROOT/spine-ts/webgl/example/assets/"
-
-cp -f ../owl/export/owl-pro.json "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../owl/export/owl-pro.skel "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../owl/export/owl-pma.atlas "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../owl/export/owl-pma.png "$ROOT/spine-ts/webgl/example/assets/"
-
-cp -f ../stretchyman/export/stretchyman-pro.json "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../stretchyman/export/stretchyman-pro.skel "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../stretchyman/export/stretchyman-pma.atlas "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../stretchyman/export/stretchyman-pma.png "$ROOT/spine-ts/webgl/example/assets/"
-
-cp -f ../mix-and-match/export/mix-and-match-pro.json "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../mix-and-match/export/mix-and-match-pro.skel "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../mix-and-match/export/mix-and-match-pma.atlas "$ROOT/spine-ts/webgl/example/assets/"
-cp -f ../mix-and-match/export/mix-and-match-pma.png "$ROOT/spine-ts/webgl/example/assets/"
-
-rm "$ROOT/spine-ts/canvas/example/assets/"*
-cp -f ../spineboy/export/spineboy-ess.json "$ROOT/spine-ts/canvas/example/assets/"
-cp -f ../spineboy/export/spineboy.atlas "$ROOT/spine-ts/canvas/example/assets/"
-cp -f ../spineboy/export/spineboy.png "$ROOT/spine-ts/canvas/example/assets/"
-
-rm "$ROOT/spine-ts/threejs/example/assets/"*
-cp -f ../raptor/export/raptor-pro.json "$ROOT/spine-ts/threejs/example/assets/"
-cp -f ../raptor/export/raptor.atlas "$ROOT/spine-ts/threejs/example/assets/"
-cp -f ../raptor/export/raptor.png "$ROOT/spine-ts/threejs/example/assets/"
-
-rm "$ROOT/spine-ts/player/example/assets/"*
-cp -f ../raptor/export/raptor-pro.json "$ROOT/spine-ts/player/example/assets/"
-cp -f ../raptor/export/raptor-pma.atlas "$ROOT/spine-ts/player/example/assets/"
-cp -f ../raptor/export/raptor-pma.png "$ROOT/spine-ts/player/example/assets/"
-
-cp -f ../spineboy/export/spineboy-pro.skel "$ROOT/spine-ts/player/example/assets/"
-cp -f ../spineboy/export/spineboy-pma.atlas "$ROOT/spine-ts/player/example/assets/"
-cp -f ../spineboy/export/spineboy-pma.png "$ROOT/spine-ts/player/example/assets/"
+rm "$ROOT/spine-ts/spine-webgl/example/assets/"*
+cp -f ../coin/export/coin-pro.json "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../coin/export/coin-pro.skel "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../coin/export/coin-pma.atlas "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../coin/export/coin-pma.png "$ROOT/spine-ts/spine-webgl/example/assets/"
+
+cp -f ../goblins/export/goblins-pro.json "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../goblins/export/goblins-pro.skel "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../goblins/export/goblins-pma.atlas "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../goblins/export/goblins-pma.png "$ROOT/spine-ts/spine-webgl/example/assets/"
+
+cp -f ../raptor/export/raptor-pro.json "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../raptor/export/raptor-pro.skel "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../raptor/export/raptor-pma.atlas "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../raptor/export/raptor-pma.png "$ROOT/spine-ts/spine-webgl/example/assets/"
+
+cp -f ../spineboy/export/spineboy-pro.json "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../spineboy/export/spineboy-pro.skel "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../spineboy/export/spineboy-pma.atlas "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../spineboy/export/spineboy-pma.png "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../spineboy/export/spineboy.png "$ROOT/spine-ts/spine-webgl/example/assets/"
+
+cp -f ../tank/export/tank-pro.json "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../tank/export/tank-pro.skel "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../tank/export/tank-pma.atlas "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../tank/export/tank-pma.png "$ROOT/spine-ts/spine-webgl/example/assets/"
+
+cp -f ../vine/export/vine-pro.json "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../vine/export/vine-pro.skel "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../vine/export/vine-pma.atlas "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../vine/export/vine-pma.png "$ROOT/spine-ts/spine-webgl/example/assets/"
+
+cp -f ../owl/export/owl-pro.json "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../owl/export/owl-pro.skel "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../owl/export/owl-pma.atlas "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../owl/export/owl-pma.png "$ROOT/spine-ts/spine-webgl/example/assets/"
+
+cp -f ../stretchyman/export/stretchyman-pro.json "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../stretchyman/export/stretchyman-pro.skel "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../stretchyman/export/stretchyman-pma.atlas "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../stretchyman/export/stretchyman-pma.png "$ROOT/spine-ts/spine-webgl/example/assets/"
+
+cp -f ../mix-and-match/export/mix-and-match-pro.json "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../mix-and-match/export/mix-and-match-pro.skel "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../mix-and-match/export/mix-and-match-pma.atlas "$ROOT/spine-ts/spine-webgl/example/assets/"
+cp -f ../mix-and-match/export/mix-and-match-pma.png "$ROOT/spine-ts/spine-webgl/example/assets/"
+
+rm "$ROOT/spine-ts/spine-canvas/example/assets/"*
+cp -f ../spineboy/export/spineboy-ess.json "$ROOT/spine-ts/spine-canvas/example/assets/"
+cp -f ../spineboy/export/spineboy.atlas "$ROOT/spine-ts/spine-canvas/example/assets/"
+cp -f ../spineboy/export/spineboy.png "$ROOT/spine-ts/spine-canvas/example/assets/"
+
+rm "$ROOT/spine-ts/spine-threejs/example/assets/"*
+cp -f ../raptor/export/raptor-pro.json "$ROOT/spine-ts/spine-threejs/example/assets/"
+cp -f ../raptor/export/raptor.atlas "$ROOT/spine-ts/spine-threejs/example/assets/"
+cp -f ../raptor/export/raptor.png "$ROOT/spine-ts/spine-threejs/example/assets/"
+
+rm "$ROOT/spine-ts/spine-player/example/assets/"*
+cp -f ../raptor/export/raptor-pro.json "$ROOT/spine-ts/spine-player/example/assets/"
+cp -f ../raptor/export/raptor-pma.atlas "$ROOT/spine-ts/spine-player/example/assets/"
+cp -f ../raptor/export/raptor-pma.png "$ROOT/spine-ts/spine-player/example/assets/"
+
+cp -f ../spineboy/export/spineboy-pro.skel "$ROOT/spine-ts/spine-player/example/assets/"
+cp -f ../spineboy/export/spineboy-pma.atlas "$ROOT/spine-ts/spine-player/example/assets/"
+cp -f ../spineboy/export/spineboy-pma.png "$ROOT/spine-ts/spine-player/example/assets/"
 
 echo "spine-xna"
 rm "$ROOT/spine-xna/example/data/"*
@@ -438,27 +438,38 @@ echo "spine-unity"
 # Section of assets specific for the spine-unity runtime.
 UNITY_SOURCE_DIR=../spine-unity
 
+# On macOS, we need gsed for the -i switch to work. Check it's available
+# and error out otherwise.
+sed="sed"
+if [[ $OSTYPE == 'darwin'* ]]; then
+  if [ ! -f "/usr/local/bin/gsed" ]; then
+	echo "macOS sed detected. Please install GNU sed via brew install gnu-sed"
+	exit -1
+  fi
+  sed="/usr/local/bin/gsed"
+fi
+
 # Do not delete everything in unity dirs, especially not .meta files.
 # Note: We copy the files following the existing naming scheme (e.g. goblins.json instead of goblins-pro.json)
 #       to the unity assets directories. This requires to change the png file reference line in the atlas file.
 UNITY_TARGET_DIR="$ROOT/spine-unity/Assets/Spine Examples/Spine Skeletons/Dragon"
 cp -f ../dragon/export/dragon-ess.json "$UNITY_TARGET_DIR/dragon.json"
 cp -f ../dragon/export/dragon-pma.atlas "$UNITY_TARGET_DIR/dragon.atlas.txt"
-sed -i 's/dragon-pma.png/dragon.png/g' "$UNITY_TARGET_DIR/dragon.atlas.txt"
-sed -i 's/dragon-pma_2.png/dragon2.png/g' "$UNITY_TARGET_DIR/dragon.atlas.txt"
+$sed -i "s/dragon-pma.png/dragon.png/g" "$UNITY_TARGET_DIR/dragon.atlas.txt"
+$sed -i "s/dragon-pma_2.png/dragon2.png/g" "$UNITY_TARGET_DIR/dragon.atlas.txt"
 cp -f ../dragon/export/dragon-pma.png "$UNITY_TARGET_DIR/dragon.png"
 cp -f ../dragon/export/dragon-pma_2.png "$UNITY_TARGET_DIR/dragon2.png"
 
 UNITY_TARGET_DIR="$ROOT/spine-unity/Assets/Spine Examples/Spine Skeletons/Goblins"
 cp -f ../goblins/export/goblins-pro.json "$UNITY_TARGET_DIR/goblins.json"
 cp -f ../goblins/export/goblins-pma.atlas "$UNITY_TARGET_DIR/goblins.atlas.txt"
-sed -i 's/goblins-pma.png/goblins.png/g' "$UNITY_TARGET_DIR/goblins.atlas.txt"
+$sed -i 's/goblins-pma.png/goblins.png/g' "$UNITY_TARGET_DIR/goblins.atlas.txt"
 cp -f ../goblins/export/goblins-pma.png "$UNITY_TARGET_DIR/goblins.png"
 
 UNITY_TARGET_DIR="$ROOT/spine-unity/Assets/Spine Examples/Spine Skeletons/Hero"
 cp -f ../hero/export/hero-pro.json "$UNITY_TARGET_DIR/"
 cp -f ../hero/export/hero-pma.atlas "$UNITY_TARGET_DIR/hero-pro.atlas.txt"
-sed -i 's/hero-pma.png/hero-pro.png/g' "$UNITY_TARGET_DIR/hero-pro.atlas.txt"
+$sed -i 's/hero-pma.png/hero-pro.png/g' "$UNITY_TARGET_DIR/hero-pro.atlas.txt"
 cp -f ../hero/export/hero-pma.png "$UNITY_TARGET_DIR/hero-pro.png"
 
 UNITY_TARGET_DIR="$ROOT/spine-unity/Assets/Spine Examples/Spine Skeletons/raptor-pro-and-mask"
@@ -484,7 +495,7 @@ cp -f ../raptor/export/raptor.png "$UNITY_TARGET_DIR/"
 UNITY_TARGET_DIR="$ROOT/spine-unity/Assets/Spine Examples/Spine Skeletons/spineboy-pro"
 cp -f ../spineboy/export/spineboy-pro.json "$UNITY_TARGET_DIR/spineboy-pro.json"
 cp -f ../spineboy/export/spineboy-pma.atlas "$UNITY_TARGET_DIR/spineboy-pro.atlas.txt"
-sed -i 's/spineboy-pma.png/spineboy-pro.png/g' "$UNITY_TARGET_DIR/spineboy-pro.atlas.txt"
+$sed -i 's/spineboy-pma.png/spineboy-pro.png/g' "$UNITY_TARGET_DIR/spineboy-pro.atlas.txt"
 cp -f ../spineboy/export/spineboy-pma.png "$UNITY_TARGET_DIR/spineboy-pro.png"
 
 UNITY_TARGET_DIR="$ROOT/spine-unity/Assets/Spine Examples/Spine Skeletons/mix-and-match"
@@ -497,7 +508,7 @@ cp -f ../stretchyman/export/stretchyman-pro.json "$UNITY_TARGET_DIR/stretchyman.
 # Note: normalmap and emissionmap need to be created manually. Thus we use a separately prepared
 # atlas and diffuse map here so that the maps always match. These atlas textures are copied to the target dir.
 cp -f ../stretchyman/manual-maps/stretchyman-pma.atlas "$UNITY_TARGET_DIR/stretchyman-diffuse-pma.atlas.txt"
-sed -i 's/stretchyman-pma.png/stretchyman-diffuse-pma.png/g' "$UNITY_TARGET_DIR/stretchyman-diffuse-pma.atlas.txt"
+$sed -i 's/stretchyman-pma.png/stretchyman-diffuse-pma.png/g' "$UNITY_TARGET_DIR/stretchyman-diffuse-pma.atlas.txt"
 cp -f ../stretchyman/manual-maps/stretchyman-pma.png "$UNITY_TARGET_DIR/stretchyman-diffuse-pma.png"
 cp -f ../stretchyman/manual-maps/stretchyman-normals.png "$UNITY_TARGET_DIR/"
 cp -f ../stretchyman/manual-maps/stretchyman-emission.png "$UNITY_TARGET_DIR/"
@@ -526,56 +537,56 @@ cp -f ../stretchyman/manual-maps/stretchyman-emission.png "$UNITY_TARGET_DIR/"
 UNITY_TARGET_DIR="$ROOT/spine-unity/Assets/Spine Examples/Spine Skeletons/Eyes"
 cp -f $UNITY_SOURCE_DIR/eyes/export/eyes.json "$UNITY_TARGET_DIR/eyes.json"
 cp -f $UNITY_SOURCE_DIR/eyes/export/eyes-pma.atlas "$UNITY_TARGET_DIR/eyes.atlas.txt"
-sed -i 's/eyes-pma.png/eyes.png/g' "$UNITY_TARGET_DIR/eyes.atlas.txt"
+$sed -i 's/eyes-pma.png/eyes.png/g' "$UNITY_TARGET_DIR/eyes.atlas.txt"
 cp -f $UNITY_SOURCE_DIR/eyes/export/eyes-pma.png "$UNITY_TARGET_DIR/eyes.png"
 
 UNITY_TARGET_DIR="$ROOT/spine-unity/Assets/Spine Examples/Spine Skeletons/FootSoldier"
 cp -f $UNITY_SOURCE_DIR/footsoldier/export/footsoldier.json "$UNITY_TARGET_DIR/FootSoldier.json"
 cp -f $UNITY_SOURCE_DIR/footsoldier/export/footsoldier-pma.atlas "$UNITY_TARGET_DIR/FS_White.atlas.txt"
-sed -i 's/footsoldier-pma.png/FS_White.png/g' "$UNITY_TARGET_DIR/FS_White.atlas.txt"
+$sed -i 's/footsoldier-pma.png/FS_White.png/g' "$UNITY_TARGET_DIR/FS_White.atlas.txt"
 cp -f $UNITY_SOURCE_DIR/footsoldier/export/footsoldier-pma.png "$UNITY_TARGET_DIR/FS_White.png"
 
 UNITY_TARGET_DIR="$ROOT/spine-unity/Assets/Spine Examples/Spine Skeletons/Gauge"
 cp -f $UNITY_SOURCE_DIR/gauge/export/gauge.json "$UNITY_TARGET_DIR/Gauge.json"
 cp -f $UNITY_SOURCE_DIR/gauge/export/gauge-pma.atlas "$UNITY_TARGET_DIR/Gauge.atlas.txt"
-sed -i 's/gauge-pma.png/Gauge.png/g' "$UNITY_TARGET_DIR/Gauge.atlas.txt"
+$sed -i 's/gauge-pma.png/Gauge.png/g' "$UNITY_TARGET_DIR/Gauge.atlas.txt"
 cp -f $UNITY_SOURCE_DIR/gauge/export/gauge-pma.png "$UNITY_TARGET_DIR/Gauge.png"
 
 UNITY_TARGET_DIR="$ROOT/spine-unity/Assets/Spine Examples/Spine Skeletons/Raptor"
 cp -f $UNITY_SOURCE_DIR/raptor/export/raptor.json "$UNITY_TARGET_DIR/raptor.json"
 cp -f $UNITY_SOURCE_DIR/raptor/export/raptor-pma.atlas "$UNITY_TARGET_DIR/raptor.atlas.txt"
-sed -i 's/raptor-pma.png/raptor.png/g' "$UNITY_TARGET_DIR/raptor.atlas.txt"
+$sed -i 's/raptor-pma.png/raptor.png/g' "$UNITY_TARGET_DIR/raptor.atlas.txt"
 cp -f $UNITY_SOURCE_DIR/raptor/export/raptor-pma.png "$UNITY_TARGET_DIR/raptor.png"
 
 
 UNITY_TARGET_DIR="$ROOT/spine-unity/Assets/Spine Examples/Spine Skeletons/Raggedy Spineboy"
 cp -f $UNITY_SOURCE_DIR/raggedyspineboy/export/raggedyspineboy.json "$UNITY_TARGET_DIR/raggedy spineboy.json"
 cp -f $UNITY_SOURCE_DIR/raggedyspineboy/export/raggedyspineboy-pma.atlas "$UNITY_TARGET_DIR/Raggedy Spineboy.atlas.txt"
-sed -i 's/raggedyspineboy-pma.png/Raggedy Spineboy.png/g' "$UNITY_TARGET_DIR/Raggedy Spineboy.atlas.txt"
+$sed -i 's/raggedyspineboy-pma.png/Raggedy Spineboy.png/g' "$UNITY_TARGET_DIR/Raggedy Spineboy.atlas.txt"
 cp -f $UNITY_SOURCE_DIR/raggedyspineboy/export/raggedyspineboy-pma.png "$UNITY_TARGET_DIR/Raggedy Spineboy.png"
 
 UNITY_TARGET_DIR="$ROOT/spine-unity/Assets/Spine Examples/Spine Skeletons/spineboy-pro"
 cp -f $UNITY_SOURCE_DIR/spineboy-pro/export/spineboy-pro.json "$UNITY_TARGET_DIR/spineboy-pro.json"
 cp -f $UNITY_SOURCE_DIR/spineboy-pro/export/spineboy-pma.atlas "$UNITY_TARGET_DIR/spineboy-pro.atlas.txt"
-sed -i 's/spineboy-pma.png/spineboy-pro.png/g' "$UNITY_TARGET_DIR/spineboy-pro.atlas.txt"
+$sed -i 's/spineboy-pma.png/spineboy-pro.png/g' "$UNITY_TARGET_DIR/spineboy-pro.atlas.txt"
 cp -f $UNITY_SOURCE_DIR/spineboy-pro/export/spineboy-pma.png "$UNITY_TARGET_DIR/spineboy-pro.png"
 
 UNITY_TARGET_DIR="$ROOT/spine-unity/Assets/Spine Examples/Spine Skeletons/spineboy-unity"
 cp -f $UNITY_SOURCE_DIR/spineboy-unity/export/spineboy-unity.json "$UNITY_TARGET_DIR/spineboy-unity.json"
 cp -f $UNITY_SOURCE_DIR/spineboy-unity/export/spineboy-pma.atlas "$UNITY_TARGET_DIR/spineboy.atlas.txt"
-sed -i 's/spineboy-pma.png/spineboy.png/g' "$UNITY_TARGET_DIR/spineboy.atlas.txt"
+$sed -i 's/spineboy-pma.png/spineboy.png/g' "$UNITY_TARGET_DIR/spineboy.atlas.txt"
 cp -f $UNITY_SOURCE_DIR/spineboy-unity/export/spineboy-pma.png "$UNITY_TARGET_DIR/spineboy.png"
 
 UNITY_TARGET_DIR="$ROOT/spine-unity/Assets/Spine Examples/Spine Skeletons/Spineunitygirl"
 cp -f $UNITY_SOURCE_DIR/spineunitygirl/export/doi.json "$UNITY_TARGET_DIR/Doi.json"
 cp -f $UNITY_SOURCE_DIR/spineunitygirl/export/doi-pma.atlas "$UNITY_TARGET_DIR/Doi.atlas.txt"
-sed -i 's/doi-pma.png/Doi.png/g' "$UNITY_TARGET_DIR/Doi.atlas.txt"
+$sed -i 's/doi-pma.png/Doi.png/g' "$UNITY_TARGET_DIR/Doi.atlas.txt"
 cp -f $UNITY_SOURCE_DIR/spineunitygirl/export/doi-pma.png "$UNITY_TARGET_DIR/Doi.png"
 
 UNITY_TARGET_DIR="$ROOT/spine-unity/Assets/Spine Examples/Spine Skeletons/Whirlyblendmodes"
 cp -f $UNITY_SOURCE_DIR/whirlyblendmodes/export/whirlyblendmodes.json "$UNITY_TARGET_DIR/whirlyblendmodes.json"
 cp -f $UNITY_SOURCE_DIR/whirlyblendmodes/export/whirlyblendmodes-pma.atlas "$UNITY_TARGET_DIR/whirlyblendmodes.atlas.txt"
-sed -i 's/whirlyblendmodes-pma.png/whirlyblendmodes.png/g' "$UNITY_TARGET_DIR/whirlyblendmodes.atlas.txt"
+$sed -i 's/whirlyblendmodes-pma.png/whirlyblendmodes.png/g' "$UNITY_TARGET_DIR/whirlyblendmodes.atlas.txt"
 cp -f $UNITY_SOURCE_DIR/whirlyblendmodes/export/whirlyblendmodes-pma.png "$UNITY_TARGET_DIR/whirlyblendmodes.png"
 
 echo "--"

+ 1 - 1
examples/goblins/export/goblins-ess.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "vsus27NzL88",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -92.53,
 	"y": -5.3,
 	"width": 234.03,

BIN
examples/goblins/export/goblins-ess.skel


BIN
examples/goblins/export/goblins-pma.png


+ 1 - 1
examples/goblins/export/goblins-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "PtTAK+zF95I",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -134.12,
 	"y": -3.28,
 	"width": 266.94,

BIN
examples/goblins/export/goblins-pro.skel


BIN
examples/goblins/export/goblins.png


+ 1 - 1
examples/hero/export/hero-ess.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "cJR8Fbsu8Hg",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -87.83,
 	"y": 0.01,
 	"width": 319.3,

BIN
examples/hero/export/hero-ess.skel


BIN
examples/hero/export/hero-pma.png


+ 1 - 1
examples/hero/export/hero-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "3ozYAtTiEh8",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -85.7,
 	"y": -0.02,
 	"width": 321.77,

BIN
examples/hero/export/hero-pro.skel


BIN
examples/hero/export/hero.png


+ 3 - 3
examples/mix-and-match/export/mix-and-match-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
-	"hash": "EedJfu7UJ/I",
-	"spine": "4.0.07",
+	"hash": "bR3EmyUwO+g",
+	"spine": "4.0.31",
 	"x": -240.58,
 	"y": -3.38,
 	"width": 410.36,
@@ -6643,7 +6643,7 @@
 				"translate": [
 					{},
 					{ "time": 0.2, "x": -13.37, "y": -33.42 },
-					{ "time": 0.5667, "x": 5.92, "y": 24.83, "curve": "stepped" },
+					{ "time": 0.5667, "x": 5.92, "y": 24.83 },
 					{ "time": 1.1667, "x": 5.92, "y": 24.83 },
 					{ "time": 1.4, "x": -3.11, "y": 35.48 },
 					{ "time": 2.3, "x": 12.15, "y": 12.12 },

BIN
examples/mix-and-match/export/mix-and-match-pro.skel


+ 13 - 2
examples/owl/export/owl-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
-	"hash": "D48YMP6TYgI",
-	"spine": "4.0.07",
+	"hash": "5OTv2PhCedw",
+	"spine": "4.0.31",
 	"x": -644,
 	"y": -274,
 	"width": 1350.84,
@@ -696,6 +696,17 @@
 					{ "time": 6, "value": -4.1 },
 					{ "time": 6.6667 }
 				]
+			},
+			"control": {
+				"rotate": [
+					{}
+				],
+				"translate": [
+					{}
+				],
+				"scale": [
+					{}
+				]
 			}
 		}
 	},

BIN
examples/owl/export/owl-pro.skel


BIN
examples/owl/owl-pro.spine


+ 1 - 1
examples/powerup/export/powerup-ess.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "oNeCFa8SiWU",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -207.3,
 	"y": 119.41,
 	"width": 413.19,

BIN
examples/powerup/export/powerup-ess.skel


BIN
examples/powerup/export/powerup-pma.png


+ 1 - 1
examples/powerup/export/powerup-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "1WHGXJIHCvk",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -208.76,
 	"y": 119.41,
 	"width": 414.65,

BIN
examples/powerup/export/powerup-pro.skel


BIN
examples/powerup/export/powerup.png


BIN
examples/raptor/export/raptor-pma.png


+ 1 - 1
examples/raptor/export/raptor-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "c1+xCfJH+TE",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -809.16,
 	"y": -73.54,
 	"width": 1287.65,

BIN
examples/raptor/export/raptor-pro.skel


BIN
examples/raptor/export/raptor.png


BIN
examples/raptor/manual-maps/raptor-normals.png


BIN
examples/raptor/manual-maps/raptor-rim-mask.png


+ 1 - 1
examples/speedy/export/speedy-ess.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "Q9eFOmFPMXI",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -95.43,
 	"y": -18.79,
 	"width": 196.03,

BIN
examples/speedy/export/speedy-ess.skel


BIN
examples/speedy/export/speedy-pma.png


BIN
examples/speedy/export/speedy.png


+ 1 - 1
examples/spineboy/export/spineboy-ess.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "lS/mQzJwi+I",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -221.27,
 	"y": -8.57,
 	"width": 470.72,

BIN
examples/spineboy/export/spineboy-ess.skel


BIN
examples/spineboy/export/spineboy-pma.png


+ 1 - 1
examples/spineboy/export/spineboy-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "IQgkYFQG8ng",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -188.63,
 	"y": -7.94,
 	"width": 418.45,

BIN
examples/spineboy/export/spineboy-pro.skel


BIN
examples/spineboy/export/spineboy.png


+ 1 - 1
examples/spinosaurus/export/spinosaurus-ess.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "Ytk7Zos6DR4",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -840,
 	"y": -766.03,
 	"width": 1680,

BIN
examples/spinosaurus/export/spinosaurus-ess.skel


BIN
examples/stretchyman/export/stretchyman-pma.png


+ 1 - 1
examples/stretchyman/export/stretchyman-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "F+EPhClYhR8",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -100.47,
 	"y": -9.21,
 	"width": 260.65,

BIN
examples/stretchyman/export/stretchyman-pro.skel


BIN
examples/tank/export/tank-pma.png


+ 1 - 1
examples/tank/export/tank-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "3P3VgYJ8Bxk",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -5852.65,
 	"y": -348.5,
 	"width": 7202.61,

BIN
examples/tank/export/tank-pro.skel


BIN
examples/tank/export/tank.png


+ 1 - 1
examples/vine/export/vine-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "mROo4Xkf3Fs",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -87.7,
 	"y": -1.71,
 	"width": 227.65,

BIN
examples/vine/export/vine-pro.skel


+ 1 - 1
examples/windmill/export/windmill-ess.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "tBKgYacI7e4",
-	"spine": "4.0.07",
+	"spine": "4.0.31",
 	"x": -564.6,
 	"y": -335.4,
 	"width": 1124.2,

BIN
examples/windmill/export/windmill-ess.skel


BIN
examples/windmill/export/windmill-pma.png


+ 1 - 1
spine-as3/spine-as3-example/src/spineboy-ess.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "lS/mQzJwi+I",
-	"spine": "4.0.58-beta",
+	"spine": "4.0.31",
 	"x": -221.27,
 	"y": -8.57,
 	"width": 470.72,

+ 1 - 0
spine-as3/spine-as3-example/src/spineboy.atlas

@@ -1,6 +1,7 @@
 spineboy.png
 	size: 1024, 256
 	filter: Linear, Linear
+	scale: 0.5
 crosshair
 	bounds: 813, 160, 45, 45
 eye-indifferent

+ 1 - 1
spine-cocos2d-objc/Resources/coin-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "svidebPqqeg",
-	"spine": "4.0.58-beta",
+	"spine": "4.0.31",
 	"x": -152.5,
 	"y": -151,
 	"width": 305,

+ 1 - 1
spine-cocos2d-objc/Resources/goblins-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "PtTAK+zF95I",
-	"spine": "4.0.58-beta",
+	"spine": "4.0.31",
 	"x": -134.12,
 	"y": -3.28,
 	"width": 266.94,

Файловите разлики са ограничени, защото са твърде много
+ 4 - 4
spine-cocos2d-objc/Resources/raptor-pro.json


+ 1 - 0
spine-cocos2d-objc/Resources/raptor.atlas

@@ -1,6 +1,7 @@
 raptor.png
 	size: 1024, 512
 	filter: Linear, Linear
+	scale: 0.5
 back-arm
 	bounds: 829, 88, 46, 25
 	rotate: 90

+ 17 - 21
spine-cocos2d-objc/Resources/spineboy-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
-	"hash": "xw6BotWLkgU",
-	"spine": "4.0.58-beta",
+	"hash": "IQgkYFQG8ng",
+	"spine": "4.0.31",
 	"x": -188.63,
 	"y": -7.94,
 	"width": 418.45,
@@ -358,9 +358,7 @@
 		"rotation": -180,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -371,9 +369,7 @@
 		"rotation": 84.3,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -385,9 +381,7 @@
 		"y": 56.4,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -399,9 +393,7 @@
 		"shearY": -36,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -413,9 +405,7 @@
 		"y": 20.7,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -427,9 +417,7 @@
 		"y": 21.3,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -440,9 +428,7 @@
 		"y": -1.66,
 		"mixRotate": 0,
 		"mixX": -1,
-		"mixY": -1,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -452,9 +438,7 @@
 		"target": "hoverboard-controller",
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	}
 ],
@@ -1034,7 +1018,11 @@
 						"value": 47.95,
 						"curve": [ 2.3, 47.95, 2.617, 18.72 ]
 					},
-					{ "time": 2.6667, "value": 18.51, "curve": "stepped" },
+					{
+						"time": 2.6667,
+						"value": 18.51,
+						"curve": [ 3.172, 16.58, 4.06, 16.79 ]
+					},
 					{
 						"time": 4.5333,
 						"value": 18.51,
@@ -1900,7 +1888,11 @@
 						"value": 1.29,
 						"curve": [ 1.509, 3.3, 1.763, 2.75 ]
 					},
-					{ "time": 1.8667, "value": 2.78, "curve": "stepped" },
+					{
+						"time": 1.8667,
+						"value": 2.78,
+						"curve": [ 1.974, 2.81, 2.108, 2.81 ]
+					},
 					{
 						"time": 2.2,
 						"value": 2.78,
@@ -2005,7 +1997,11 @@
 						"value": 15.21,
 						"curve": [ 1.142, 15.21, 1.183, 10.73 ]
 					},
-					{ "time": 1.2667, "value": 10.61, "curve": "stepped" },
+					{
+						"time": 1.2667,
+						"value": 10.61,
+						"curve": [ 1.45, 10.34, 1.817, 10.61 ]
+					},
 					{
 						"time": 2,
 						"value": 10.61,

+ 1 - 0
spine-cocos2d-objc/Resources/spineboy.atlas

@@ -1,6 +1,7 @@
 spineboy.png
 	size: 1024, 256
 	filter: Linear, Linear
+	scale: 0.5
 crosshair
 	bounds: 813, 160, 45, 45
 eye-indifferent

+ 1 - 13
spine-cocos2d-objc/Resources/tank-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "3P3VgYJ8Bxk",
-	"spine": "4.0.58-beta",
+	"spine": "4.0.31",
 	"x": -5852.65,
 	"y": -348.5,
 	"width": 7202.61,
@@ -889,9 +889,7 @@
 		"target": "wheel-big1",
 		"rotation": 65.6,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -901,9 +899,7 @@
 		"target": "wheel-mid1",
 		"rotation": 93,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -913,9 +909,7 @@
 		"target": "wheel-mid1",
 		"rotation": -89,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -925,9 +919,7 @@
 		"target": "wheel-mid1",
 		"rotation": -152.6,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -937,9 +929,7 @@
 		"target": "wheel-small1",
 		"rotation": 87,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -949,9 +939,7 @@
 		"target": "wheel-small1",
 		"rotation": 54.9,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	}
 ],

+ 1 - 0
spine-cocos2d-objc/Resources/tank.atlas

@@ -1,6 +1,7 @@
 tank.png
 	size: 1024, 1024
 	filter: Linear, Linear
+	scale: 0.5
 antenna
 	bounds: 2, 712, 11, 152
 	rotate: 90

BIN
spine-cocos2dx/example-v4/Resources/common/coin-pro.skel


+ 1 - 1
spine-cocos2dx/example-v4/Resources/common/goblins-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "PtTAK+zF95I",
-	"spine": "4.0.58-beta",
+	"spine": "4.0.31",
 	"x": -134.12,
 	"y": -3.28,
 	"width": 266.94,

BIN
spine-cocos2dx/example-v4/Resources/common/mix-and-match-pro.skel


+ 1 - 0
spine-cocos2dx/example-v4/Resources/common/mix-and-match.atlas

@@ -1,6 +1,7 @@
 mix-and-match.png
 	size: 1024, 512
 	filter: Linear, Linear
+	scale: 0.5
 base-head
 	bounds: 587, 2, 95, 73
 boy/arm-front

Файловите разлики са ограничени, защото са твърде много
+ 4 - 4
spine-cocos2dx/example-v4/Resources/common/raptor-pro.json


+ 1 - 0
spine-cocos2dx/example-v4/Resources/common/raptor.atlas

@@ -1,6 +1,7 @@
 raptor.png
 	size: 1024, 512
 	filter: Linear, Linear
+	scale: 0.5
 back-arm
 	bounds: 829, 88, 46, 25
 	rotate: 90

+ 17 - 21
spine-cocos2dx/example-v4/Resources/common/spineboy-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
-	"hash": "xw6BotWLkgU",
-	"spine": "4.0.58-beta",
+	"hash": "IQgkYFQG8ng",
+	"spine": "4.0.31",
 	"x": -188.63,
 	"y": -7.94,
 	"width": 418.45,
@@ -358,9 +358,7 @@
 		"rotation": -180,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -371,9 +369,7 @@
 		"rotation": 84.3,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -385,9 +381,7 @@
 		"y": 56.4,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -399,9 +393,7 @@
 		"shearY": -36,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -413,9 +405,7 @@
 		"y": 20.7,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -427,9 +417,7 @@
 		"y": 21.3,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -440,9 +428,7 @@
 		"y": -1.66,
 		"mixRotate": 0,
 		"mixX": -1,
-		"mixY": -1,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -452,9 +438,7 @@
 		"target": "hoverboard-controller",
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	}
 ],
@@ -1034,7 +1018,11 @@
 						"value": 47.95,
 						"curve": [ 2.3, 47.95, 2.617, 18.72 ]
 					},
-					{ "time": 2.6667, "value": 18.51, "curve": "stepped" },
+					{
+						"time": 2.6667,
+						"value": 18.51,
+						"curve": [ 3.172, 16.58, 4.06, 16.79 ]
+					},
 					{
 						"time": 4.5333,
 						"value": 18.51,
@@ -1900,7 +1888,11 @@
 						"value": 1.29,
 						"curve": [ 1.509, 3.3, 1.763, 2.75 ]
 					},
-					{ "time": 1.8667, "value": 2.78, "curve": "stepped" },
+					{
+						"time": 1.8667,
+						"value": 2.78,
+						"curve": [ 1.974, 2.81, 2.108, 2.81 ]
+					},
 					{
 						"time": 2.2,
 						"value": 2.78,
@@ -2005,7 +1997,11 @@
 						"value": 15.21,
 						"curve": [ 1.142, 15.21, 1.183, 10.73 ]
 					},
-					{ "time": 1.2667, "value": 10.61, "curve": "stepped" },
+					{
+						"time": 1.2667,
+						"value": 10.61,
+						"curve": [ 1.45, 10.34, 1.817, 10.61 ]
+					},
 					{
 						"time": 2,
 						"value": 10.61,

+ 1 - 0
spine-cocos2dx/example-v4/Resources/common/spineboy.atlas

@@ -1,6 +1,7 @@
 spineboy.png
 	size: 1024, 256
 	filter: Linear, Linear
+	scale: 0.5
 crosshair
 	bounds: 813, 160, 45, 45
 eye-indifferent

BIN
spine-cocos2dx/example-v4/Resources/common/tank-pro.skel


+ 1 - 0
spine-cocos2dx/example-v4/Resources/common/tank.atlas

@@ -1,6 +1,7 @@
 tank.png
 	size: 1024, 1024
 	filter: Linear, Linear
+	scale: 0.5
 antenna
 	bounds: 2, 712, 11, 152
 	rotate: 90

BIN
spine-cocos2dx/example/Resources/common/coin-pro.skel


+ 1 - 1
spine-cocos2dx/example/Resources/common/goblins-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "PtTAK+zF95I",
-	"spine": "4.0.58-beta",
+	"spine": "4.0.31",
 	"x": -134.12,
 	"y": -3.28,
 	"width": 266.94,

BIN
spine-cocos2dx/example/Resources/common/mix-and-match-pro.skel


+ 1 - 0
spine-cocos2dx/example/Resources/common/mix-and-match.atlas

@@ -1,6 +1,7 @@
 mix-and-match.png
 	size: 1024, 512
 	filter: Linear, Linear
+	scale: 0.5
 base-head
 	bounds: 587, 2, 95, 73
 boy/arm-front

Файловите разлики са ограничени, защото са твърде много
+ 4 - 4
spine-cocos2dx/example/Resources/common/raptor-pro.json


+ 1 - 0
spine-cocos2dx/example/Resources/common/raptor.atlas

@@ -1,6 +1,7 @@
 raptor.png
 	size: 1024, 512
 	filter: Linear, Linear
+	scale: 0.5
 back-arm
 	bounds: 829, 88, 46, 25
 	rotate: 90

+ 17 - 21
spine-cocos2dx/example/Resources/common/spineboy-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
-	"hash": "xw6BotWLkgU",
-	"spine": "4.0.58-beta",
+	"hash": "IQgkYFQG8ng",
+	"spine": "4.0.31",
 	"x": -188.63,
 	"y": -7.94,
 	"width": 418.45,
@@ -358,9 +358,7 @@
 		"rotation": -180,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -371,9 +369,7 @@
 		"rotation": 84.3,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -385,9 +381,7 @@
 		"y": 56.4,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -399,9 +393,7 @@
 		"shearY": -36,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -413,9 +405,7 @@
 		"y": 20.7,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -427,9 +417,7 @@
 		"y": 21.3,
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -440,9 +428,7 @@
 		"y": -1.66,
 		"mixRotate": 0,
 		"mixX": -1,
-		"mixY": -1,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	},
 	{
@@ -452,9 +438,7 @@
 		"target": "hoverboard-controller",
 		"mixRotate": 0,
 		"mixX": 0,
-		"mixY": 0,
 		"mixScaleX": 0,
-		"mixScaleY": 0,
 		"mixShearY": 0
 	}
 ],
@@ -1034,7 +1018,11 @@
 						"value": 47.95,
 						"curve": [ 2.3, 47.95, 2.617, 18.72 ]
 					},
-					{ "time": 2.6667, "value": 18.51, "curve": "stepped" },
+					{
+						"time": 2.6667,
+						"value": 18.51,
+						"curve": [ 3.172, 16.58, 4.06, 16.79 ]
+					},
 					{
 						"time": 4.5333,
 						"value": 18.51,
@@ -1900,7 +1888,11 @@
 						"value": 1.29,
 						"curve": [ 1.509, 3.3, 1.763, 2.75 ]
 					},
-					{ "time": 1.8667, "value": 2.78, "curve": "stepped" },
+					{
+						"time": 1.8667,
+						"value": 2.78,
+						"curve": [ 1.974, 2.81, 2.108, 2.81 ]
+					},
 					{
 						"time": 2.2,
 						"value": 2.78,
@@ -2005,7 +1997,11 @@
 						"value": 15.21,
 						"curve": [ 1.142, 15.21, 1.183, 10.73 ]
 					},
-					{ "time": 1.2667, "value": 10.61, "curve": "stepped" },
+					{
+						"time": 1.2667,
+						"value": 10.61,
+						"curve": [ 1.45, 10.34, 1.817, 10.61 ]
+					},
 					{
 						"time": 2,
 						"value": 10.61,

+ 1 - 0
spine-cocos2dx/example/Resources/common/spineboy.atlas

@@ -1,6 +1,7 @@
 spineboy.png
 	size: 1024, 256
 	filter: Linear, Linear
+	scale: 0.5
 crosshair
 	bounds: 813, 160, 45, 45
 eye-indifferent

BIN
spine-cocos2dx/example/Resources/common/tank-pro.skel


+ 1 - 0
spine-cocos2dx/example/Resources/common/tank.atlas

@@ -1,6 +1,7 @@
 tank.png
 	size: 1024, 1024
 	filter: Linear, Linear
+	scale: 0.5
 antenna
 	bounds: 2, 712, 11, 152
 	rotate: 90

BIN
spine-libgdx/spine-libgdx-tests/assets/coin/coin-pma.png


+ 1 - 1
spine-libgdx/spine-libgdx-tests/assets/coin/coin-pro.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
 	"hash": "svidebPqqeg",
-	"spine": "4.0.58-beta",
+	"spine": "4.0.31",
 	"x": -152.5,
 	"y": -151,
 	"width": 305,

Някои файлове не бяха показани, защото твърде много файлове са промени