瀏覽代碼

[ts] Fix physics!

Mario Zechner 1 年之前
父節點
當前提交
02773518b1
共有 56 個文件被更改,包括 4093 次插入194 次删除
  1. 二進制
      examples/celestial-circus/celestial-circus-pro.spine
  2. 二進制
      examples/celestial-circus/celestial-circus.spine
  3. 170 0
      examples/celestial-circus/export/celestial-circus-pma.atlas
  4. 二進制
      examples/celestial-circus/export/celestial-circus-pma.png
  5. 二進制
      examples/celestial-circus/export/celestial-circus-pma_2.png
  6. 875 0
      examples/celestial-circus/export/celestial-circus-pro.json
  7. 二進制
      examples/celestial-circus/export/celestial-circus-pro.skel
  8. 168 0
      examples/celestial-circus/export/celestial-circus.atlas
  9. 二進制
      examples/celestial-circus/export/celestial-circus.png
  10. 二進制
      examples/celestial-circus/export/celestial-circus_2.png
  11. 6 0
      examples/export/export.sh
  12. 16 0
      examples/export/runtimes.sh
  13. 2 2
      examples/hero/export/hero-pro.json
  14. 二進制
      examples/hero/export/hero-pro.skel
  15. 19 19
      examples/mix-and-match/export/mix-and-match-pro.json
  16. 二進制
      examples/mix-and-match/export/mix-and-match-pro.skel
  17. 二進制
      examples/spineboy/export/spineboy-run.png
  18. 二進制
      spine-cocos2dx/example/Resources/common/mix-and-match-pro.skel
  19. 二進制
      spine-flutter/example/assets/mix-and-match-pro.skel
  20. 19 19
      spine-godot/example-v4/assets/mix-and-match/mix-and-match-pro.spine-json
  21. 19 19
      spine-godot/example/assets/mix-and-match/mix-and-match-pro.spine-json
  22. 19 19
      spine-haxe/example/assets/mix-and-match-pro.json
  23. 二進制
      spine-haxe/example/assets/mix-and-match-pro.skel
  24. 170 0
      spine-libgdx/spine-libgdx-tests/assets/celestial-circus/celestial-circus-pma.atlas
  25. 二進制
      spine-libgdx/spine-libgdx-tests/assets/celestial-circus/celestial-circus-pma.png
  26. 875 0
      spine-libgdx/spine-libgdx-tests/assets/celestial-circus/celestial-circus-pro.json
  27. 二進制
      spine-libgdx/spine-libgdx-tests/assets/celestial-circus/celestial-circus-pro.skel
  28. 19 19
      spine-libgdx/spine-libgdx-tests/assets/mix-and-match/mix-and-match-pro.json
  29. 二進制
      spine-libgdx/spine-libgdx-tests/assets/mix-and-match/mix-and-match-pro.skel
  30. 11 0
      spine-libgdx/spine-libgdx-tests/assets/sack/sack-pma.atlas
  31. 二進制
      spine-libgdx/spine-libgdx-tests/assets/sack/sack-pma.png
  32. 203 0
      spine-libgdx/spine-libgdx-tests/assets/sack/sack-pro.json
  33. 二進制
      spine-libgdx/spine-libgdx-tests/assets/sack/sack-pro.skel
  34. 108 0
      spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/PhysicsTest.java
  35. 19 19
      spine-monogame/spine-monogame-example/data/mix-and-match-pro.json
  36. 19 19
      spine-sfml/c/data/mix-and-match-pro.json
  37. 二進制
      spine-sfml/c/data/mix-and-match-pro.skel
  38. 19 19
      spine-sfml/cpp/data/mix-and-match-pro.json
  39. 二進制
      spine-sfml/cpp/data/mix-and-match-pro.skel
  40. 1 0
      spine-ts/index.html
  41. 二進制
      spine-ts/spine-phaser/example/assets/mix-and-match-pro.skel
  42. 二進制
      spine-ts/spine-pixi/example/assets/mix-and-match-pro.skel
  43. 170 0
      spine-ts/spine-webgl/example/assets/celestial-circus-pma.atlas
  44. 二進制
      spine-ts/spine-webgl/example/assets/celestial-circus-pma.png
  45. 二進制
      spine-ts/spine-webgl/example/assets/celestial-circus-pma_2.png
  46. 875 0
      spine-ts/spine-webgl/example/assets/celestial-circus-pro.json
  47. 二進制
      spine-ts/spine-webgl/example/assets/celestial-circus-pro.skel
  48. 168 0
      spine-ts/spine-webgl/example/assets/celestial-circus.atlas
  49. 二進制
      spine-ts/spine-webgl/example/assets/celestial-circus.png
  50. 二進制
      spine-ts/spine-webgl/example/assets/celestial-circus_2.png
  51. 19 19
      spine-ts/spine-webgl/example/assets/mix-and-match-pro.json
  52. 二進制
      spine-ts/spine-webgl/example/assets/mix-and-match-pro.skel
  53. 83 0
      spine-ts/spine-webgl/example/physics2.html
  54. 二進制
      spine-ue4/Content/GettingStarted/Assets/mix-and-match/mix-and-match-pro.skel
  55. 2 2
      spine-unity/Assets/Spine Examples/Spine Skeletons/Hero/hero-pro.json
  56. 19 19
      spine-unity/Assets/Spine Examples/Spine Skeletons/mix-and-match/mix-and-match-pro.json

二進制
examples/celestial-circus/celestial-circus-pro.spine


二進制
examples/celestial-circus/celestial-circus.spine


+ 170 - 0
examples/celestial-circus/export/celestial-circus-pma.atlas

@@ -0,0 +1,170 @@
+celestial-circus-pma.png
+	size: 1024, 1024
+	filter: Linear, Linear
+	pma: true
+	scale: 0.5
+arm-back-down
+	bounds: 944, 3, 48, 103
+arm-front-down
+	bounds: 241, 56, 45, 98
+bench
+	bounds: 2, 94, 237, 60
+body-bottom
+	bounds: 674, 8, 193, 156
+	rotate: 90
+collar
+	bounds: 822, 352, 59, 33
+ear
+	bounds: 997, 185, 25, 35
+eye-back-shadow
+	bounds: 1004, 978, 18, 12
+eye-front-shadow
+	bounds: 1004, 992, 30, 18
+	rotate: 90
+eye-reflex-back
+	bounds: 822, 341, 10, 9
+eye-reflex-front
+	bounds: 525, 699, 13, 9
+	rotate: 90
+eye-white-back
+	bounds: 956, 963, 16, 20
+eye-white-front
+	bounds: 551, 179, 28, 22
+eyelashes-down-back
+	bounds: 980, 325, 14, 7
+	rotate: 90
+eyelashes-down-front
+	bounds: 979, 1003, 19, 8
+	rotate: 90
+eyelashes-top-back
+	bounds: 997, 118, 23, 12
+	rotate: 90
+eyelashes-top-front
+	bounds: 956, 985, 37, 21
+	rotate: 90
+feathers-front
+	bounds: 2, 2, 90, 108
+	rotate: 90
+fringe-middle-back
+	bounds: 980, 222, 42, 65
+fringe-side-back
+	bounds: 944, 222, 34, 117
+fringe-side-front
+	bounds: 989, 289, 33, 116
+hair-back-1
+	bounds: 289, 2, 166, 383
+	rotate: 90
+hair-back-2
+	bounds: 887, 341, 100, 356
+hair-back-4
+	bounds: 832, 11, 110, 328
+hair-hat-shadow
+	bounds: 944, 108, 112, 51
+	rotate: 90
+hat-front
+	bounds: 112, 22, 121, 70
+leg-front
+	bounds: 554, 699, 323, 400
+	rotate: 90
+logo-brooch
+	bounds: 505, 170, 20, 31
+mouth
+	bounds: 279, 26, 28, 8
+	rotate: 90
+nose
+	bounds: 279, 15, 8, 9
+nose-shadow
+	bounds: 834, 341, 9, 10
+	rotate: 90
+nose.-highlight
+	bounds: 551, 171, 5, 6
+pupil-back
+	bounds: 505, 699, 13, 18
+	rotate: 90
+pupil-front
+	bounds: 112, 5, 15, 22
+	rotate: 90
+rope-back
+	bounds: 989, 407, 13, 615
+rope-front
+	bounds: 989, 407, 13, 615
+skirt
+	bounds: 2, 714, 550, 308
+sock-bow
+	bounds: 235, 14, 42, 40
+spine-logo-body
+	bounds: 997, 143, 16, 40
+star-big
+	bounds: 527, 171, 22, 30
+star-medium
+	bounds: 1015, 173, 7, 10
+star-small
+	bounds: 674, 2, 4, 6
+	rotate: 90
+underskirt
+	bounds: 2, 156, 556, 285
+	rotate: 90
+underskirt-back
+	bounds: 289, 170, 542, 214
+	rotate: 90
+wing-back
+	bounds: 505, 203, 182, 315
+	rotate: 90
+wing-front
+	bounds: 505, 387, 380, 310
+
+celestial-circus-pma_2.png
+	size: 1024, 1024
+	filter: Linear, Linear
+	pma: true
+	scale: 0.5
+arm-back-up
+	bounds: 490, 683, 104, 145
+	rotate: 90
+arm-front-up
+	bounds: 162, 23, 96, 145
+body-top
+	bounds: 2, 2, 158, 166
+chest
+	bounds: 744, 878, 130, 117
+cloud-back
+	bounds: 490, 789, 252, 206
+cloud-front
+	bounds: 2, 170, 406, 245
+	rotate: 90
+face
+	bounds: 876, 879, 116, 128
+	rotate: 90
+feathers-back
+	bounds: 266, 578, 57, 57
+fringe-middle-front
+	bounds: 260, 105, 75, 63
+glove-bottom-back
+	bounds: 325, 584, 64, 51
+glove-bottom-front
+	bounds: 391, 585, 59, 61
+	rotate: 90
+hair-back-3
+	bounds: 249, 241, 87, 335
+hair-back-5
+	bounds: 378, 646, 110, 349
+hair-back-6
+	bounds: 266, 637, 110, 358
+hand-back
+	bounds: 573, 622, 75, 59
+hand-front
+	bounds: 637, 712, 67, 75
+hat-back
+	bounds: 260, 23, 80, 56
+	rotate: 90
+head-back
+	bounds: 744, 768, 128, 108
+jabot
+	bounds: 249, 170, 88, 69
+leg-back
+	bounds: 2, 578, 262, 417
+neck
+	bounds: 338, 511, 49, 71
+rope-front-bottom
+	bounds: 490, 628, 53, 81
+	rotate: 90

二進制
examples/celestial-circus/export/celestial-circus-pma.png


二進制
examples/celestial-circus/export/celestial-circus-pma_2.png


File diff suppressed because it is too large
+ 875 - 0
examples/celestial-circus/export/celestial-circus-pro.json


二進制
examples/celestial-circus/export/celestial-circus-pro.skel


+ 168 - 0
examples/celestial-circus/export/celestial-circus.atlas

@@ -0,0 +1,168 @@
+celestial-circus.png
+	size: 1024, 1024
+	filter: Linear, Linear
+	scale: 0.5
+arm-back-down
+	bounds: 944, 3, 48, 103
+arm-front-down
+	bounds: 241, 56, 45, 98
+bench
+	bounds: 2, 94, 237, 60
+body-bottom
+	bounds: 674, 8, 193, 156
+	rotate: 90
+collar
+	bounds: 822, 352, 59, 33
+ear
+	bounds: 997, 185, 25, 35
+eye-back-shadow
+	bounds: 1004, 978, 18, 12
+eye-front-shadow
+	bounds: 1004, 992, 30, 18
+	rotate: 90
+eye-reflex-back
+	bounds: 822, 341, 10, 9
+eye-reflex-front
+	bounds: 525, 699, 13, 9
+	rotate: 90
+eye-white-back
+	bounds: 956, 963, 16, 20
+eye-white-front
+	bounds: 551, 179, 28, 22
+eyelashes-down-back
+	bounds: 980, 325, 14, 7
+	rotate: 90
+eyelashes-down-front
+	bounds: 979, 1003, 19, 8
+	rotate: 90
+eyelashes-top-back
+	bounds: 997, 118, 23, 12
+	rotate: 90
+eyelashes-top-front
+	bounds: 956, 985, 37, 21
+	rotate: 90
+feathers-front
+	bounds: 2, 2, 90, 108
+	rotate: 90
+fringe-middle-back
+	bounds: 980, 222, 42, 65
+fringe-side-back
+	bounds: 944, 222, 34, 117
+fringe-side-front
+	bounds: 989, 289, 33, 116
+hair-back-1
+	bounds: 289, 2, 166, 383
+	rotate: 90
+hair-back-2
+	bounds: 887, 341, 100, 356
+hair-back-4
+	bounds: 832, 11, 110, 328
+hair-hat-shadow
+	bounds: 944, 108, 112, 51
+	rotate: 90
+hat-front
+	bounds: 112, 22, 121, 70
+leg-front
+	bounds: 554, 699, 323, 400
+	rotate: 90
+logo-brooch
+	bounds: 505, 170, 20, 31
+mouth
+	bounds: 279, 26, 28, 8
+	rotate: 90
+nose
+	bounds: 279, 15, 8, 9
+nose-shadow
+	bounds: 834, 341, 9, 10
+	rotate: 90
+nose.-highlight
+	bounds: 551, 171, 5, 6
+pupil-back
+	bounds: 505, 699, 13, 18
+	rotate: 90
+pupil-front
+	bounds: 112, 5, 15, 22
+	rotate: 90
+rope-back
+	bounds: 989, 407, 13, 615
+rope-front
+	bounds: 989, 407, 13, 615
+skirt
+	bounds: 2, 714, 550, 308
+sock-bow
+	bounds: 235, 14, 42, 40
+spine-logo-body
+	bounds: 997, 143, 16, 40
+star-big
+	bounds: 527, 171, 22, 30
+star-medium
+	bounds: 1015, 173, 7, 10
+star-small
+	bounds: 674, 2, 4, 6
+	rotate: 90
+underskirt
+	bounds: 2, 156, 556, 285
+	rotate: 90
+underskirt-back
+	bounds: 289, 170, 542, 214
+	rotate: 90
+wing-back
+	bounds: 505, 203, 182, 315
+	rotate: 90
+wing-front
+	bounds: 505, 387, 380, 310
+
+celestial-circus_2.png
+	size: 1024, 1024
+	filter: Linear, Linear
+	scale: 0.5
+arm-back-up
+	bounds: 490, 683, 104, 145
+	rotate: 90
+arm-front-up
+	bounds: 162, 23, 96, 145
+body-top
+	bounds: 2, 2, 158, 166
+chest
+	bounds: 744, 878, 130, 117
+cloud-back
+	bounds: 490, 789, 252, 206
+cloud-front
+	bounds: 2, 170, 406, 245
+	rotate: 90
+face
+	bounds: 876, 879, 116, 128
+	rotate: 90
+feathers-back
+	bounds: 266, 578, 57, 57
+fringe-middle-front
+	bounds: 260, 105, 75, 63
+glove-bottom-back
+	bounds: 325, 584, 64, 51
+glove-bottom-front
+	bounds: 391, 585, 59, 61
+	rotate: 90
+hair-back-3
+	bounds: 249, 241, 87, 335
+hair-back-5
+	bounds: 378, 646, 110, 349
+hair-back-6
+	bounds: 266, 637, 110, 358
+hand-back
+	bounds: 573, 622, 75, 59
+hand-front
+	bounds: 637, 712, 67, 75
+hat-back
+	bounds: 260, 23, 80, 56
+	rotate: 90
+head-back
+	bounds: 744, 768, 128, 108
+jabot
+	bounds: 249, 170, 88, 69
+leg-back
+	bounds: 2, 578, 262, 417
+neck
+	bounds: 338, 511, 49, 71
+rope-front-bottom
+	bounds: 490, 628, 53, 81
+	rotate: 90

二進制
examples/celestial-circus/export/celestial-circus.png


二進制
examples/celestial-circus/export/celestial-circus_2.png


+ 6 - 0
examples/export/export.sh

@@ -40,6 +40,7 @@ rm -rf ../owl/export/*
 rm -rf ../mix-and-match/export/*
 rm -rf ../chibi-stickers/export/*
 rm -rf ../sack/export/*
+rm -rf ../celestial-circus/export/*
 
 echo ""
 echo "Exporting assets..."
@@ -91,6 +92,11 @@ echo "Exporting assets..."
 -i ../sack/images -o ../sack/export -n sack -p atlas-0.5.json \
 -i ../sack/images -o ../sack/export -n sack-pma -p atlas-0.5-pma.json \
 \
+-i ../celestial-circus/celestial-circus-pro.spine -o ../celestial-circus/export -e json.json \
+-i ../celestial-circus/celestial-circus-pro.spine -o ../celestial-circus/export -e binary.json \
+-i ../celestial-circus/images -o ../celestial-circus/export -n celestial-circus -p atlas-0.5.json \
+-i ../celestial-circus/images -o ../celestial-circus/export -n celestial-circus-pma -p atlas-0.5-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 \

+ 16 - 0
examples/export/runtimes.sh

@@ -35,6 +35,20 @@ cp -f ../mix-and-match/export/*.json "$ROOT/spine-libgdx/spine-libgdx-tests/asse
 cp -f ../mix-and-match/export/*.skel "$ROOT/spine-libgdx/spine-libgdx-tests/assets/mix-and-match/"
 cp -f ../mix-and-match/export/*-pma.* "$ROOT/spine-libgdx/spine-libgdx-tests/assets/mix-and-match/"
 
+rm -f "$ROOT/spine-libgdx/spine-libgdx-tests/assets/sack/"*
+mkdir -p "$ROOT/spine-libgdx/spine-libgdx-tests/assets/sack/"
+cp -f ../sack/export/sack-pro.json "$ROOT/spine-libgdx/spine-libgdx-tests/assets/sack/"
+cp -f ../sack/export/sack-pro.skel "$ROOT/spine-libgdx/spine-libgdx-tests/assets/sack/"
+cp -f ../sack/export/sack-pma.atlas "$ROOT/spine-libgdx/spine-libgdx-tests/assets/sack/"
+cp -f ../sack/export/sack-pma.png "$ROOT/spine-libgdx/spine-libgdx-tests/assets/sack/"
+
+rm -f "$ROOT/spine-libgdx/spine-libgdx-tests/assets/celestial-circus/"*
+mkdir -p "$ROOT/spine-libgdx/spine-libgdx-tests/assets/celestial-circus/"
+cp -f ../celestial-circus/export/celestial-circus-pro.json "$ROOT/spine-libgdx/spine-libgdx-tests/assets/celestial-circus/"
+cp -f ../celestial-circus/export/celestial-circus-pro.skel "$ROOT/spine-libgdx/spine-libgdx-tests/assets/celestial-circus/"
+cp -f ../celestial-circus/export/celestial-circus-pma.atlas "$ROOT/spine-libgdx/spine-libgdx-tests/assets/celestial-circus/"
+cp -f ../celestial-circus/export/celestial-circus-pma.png "$ROOT/spine-libgdx/spine-libgdx-tests/assets/celestial-circus/"
+
 echo "spine-cocos2d-objc"
 rm "$ROOT/spine-cocos2d-objc/Resources/"*
 
@@ -392,6 +406,8 @@ cp -f ../sack/export/sack-pro.skel "$ROOT/spine-ts/spine-webgl/example/assets/"
 cp -f ../sack/export/sack-pma.atlas "$ROOT/spine-ts/spine-webgl/example/assets/"
 cp -f ../sack/export/sack-pma.png "$ROOT/spine-ts/spine-webgl/example/assets/"
 
+cp -f ../celestial-circus/export/* "$ROOT/spine-ts/spine-webgl/example/assets/"
+
 rm "$ROOT/spine-ts/spine-pixi/example/assets/"*
 cp -f ../raptor/export/raptor-pro.json "$ROOT/spine-ts/spine-pixi/example/assets/"
 cp -f ../raptor/export/raptor.atlas "$ROOT/spine-ts/spine-pixi/example/assets/"

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

@@ -1,6 +1,6 @@
 {
 "skeleton": {
-	"hash": "osXzZ/Pexog",
+	"hash": "Efa1/KeUOoY",
 	"spine": "4.2.09-beta",
 	"x": -85.7,
 	"y": -0.02,
@@ -309,7 +309,7 @@
 	},
 	{
 		"name": "weapon/morningstar",
-		"bones": [ "weapon-morningstar", "weapon-morningstar-physics2", "weapon-morningstar-physics3", "chain4", "chain1", "chain3", "weapon-morningstar-physics1", "weapon-morningstar-physics4", "chain5", "chain6", "chain7", "chain8", "chain2" ],
+		"bones": [ "weapon-morningstar", "weapon-morningstar-physics1", "weapon-morningstar-physics3", "chain2", "chain1", "chain8", "weapon-morningstar-physics2", "chain3", "chain4", "chain5", "weapon-morningstar-physics4", "chain6", "chain7" ],
 		"path": [ "weapon-morningstar" ]
 	},
 	{

二進制
examples/hero/export/hero-pro.skel


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

@@ -1,6 +1,6 @@
 {
 "skeleton": {
-	"hash": "gdqIJqjhGoQ",
+	"hash": "XD14iwt7TYc",
 	"spine": "4.2.09-beta",
 	"x": -240.58,
 	"y": -3.38,
@@ -1392,7 +1392,7 @@
 	},
 	{
 		"name": "accessories/backpack",
-		"bones": [ "backpack", "backpack-control" ],
+		"bones": [ "backpack-control", "backpack" ],
 		"attachments": {
 			"backpack": {
 				"backpack": {
@@ -1466,7 +1466,7 @@
 	},
 	{
 		"name": "accessories/bag",
-		"bones": [ "bag-back-front", "bag-strap-front", "bag-back-down", "bag-strap-back", "bag", "bag-flap", "bag-control" ],
+		"bones": [ "bag", "bag-flap", "bag-strap-front", "bag-control", "bag-strap-back", "bag-back-front", "bag-back-down" ],
 		"attachments": {
 			"bag-base": {
 				"bag-base": {
@@ -1527,7 +1527,7 @@
 	},
 	{
 		"name": "accessories/cape-blue",
-		"bones": [ "cape-blue-down-back", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-middle-back", "cape-back-rotator", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "cape-blue-down", "cape-blue-up", "cape-blue-control" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "cape-back-rotator", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "cape-blue-middle-back" ],
 		"attachments": {
 			"cape-back": {
 				"cape-back": {
@@ -1615,7 +1615,7 @@
 	},
 	{
 		"name": "accessories/cape-red",
-		"bones": [ "cape-red-back-outside", "cape-red-back-inside", "cape-red-front-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside" ],
+		"bones": [ "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside", "cape-red-front-inside", "cape-red-back-outside" ],
 		"attachments": {
 			"cape-red-down": {
 				"cape-red-down": {
@@ -1653,7 +1653,7 @@
 	},
 	{
 		"name": "accessories/hat-pointy-blue-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1679,7 +1679,7 @@
 	},
 	{
 		"name": "accessories/hat-red-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1730,8 +1730,8 @@
 	},
 	{
 		"name": "clothes/dress-blue",
-		"bones": [ "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "dress-control-leg-down-back", "dress-control-leg-down-front", "dress-control-leg-up-front", "dress-control-leg-up-back", "dress-control-foot-back", "dress-control-middle" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "dress-control-middle", "sleeve-control-back", "dress-control-foot-front", "dress-control-foot-back", "dress-control-leg-down-front", "dress-control-leg-down-back", "sleeve-control-front", "dress-control-leg-up-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -1819,7 +1819,7 @@
 	},
 	{
 		"name": "clothes/dress-green",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "skirt-control-front", "skirt-control", "skirt-control-back", "skirt-control-up" ],
+		"bones": [ "skirt-control", "skirt-control-back-down", "skirt-control-front", "skirt-control-middle", "skirt-control-back", "skirt-control-up", "skirt-control-front-down" ],
 		"attachments": {
 			"body-up": {
 				"body-up": { "name": "girl-spring-dress/body-up", "x": 59.16, "y": -14.67, "rotation": -94.33, "width": 128, "height": 131 }
@@ -1857,7 +1857,7 @@
 	},
 	{
 		"name": "clothes/hoodie-blue-and-scarf",
-		"bones": [ "zip-girl", "scarf-back" ],
+		"bones": [ "scarf-back", "zip-girl" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -2314,7 +2314,7 @@
 	},
 	{
 		"name": "full-skins/boy",
-		"bones": [ "hat-base", "backpack", "pompom-control", "hat-control", "backpack-control", "zip-boy", "hat" ],
+		"bones": [ "backpack-control", "hat-control", "hat-base", "hat", "pompom-control", "backpack", "zip-boy" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"arm-back": {
@@ -2739,8 +2739,8 @@
 	},
 	{
 		"name": "full-skins/girl",
-		"bones": [ "bag-strap-front", "bag-back-front", "hat-base", "hair-strand-front-1", "bag-back-down", "zip-girl", "bag-strap-back", "hair-strand-back-1", "pompom-control", "hair-holder-front", "hair-strand-front-2", "hat-control", "bag", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "bag-flap", "hair-strand-back-2", "hat", "scarf-back", "hair-strand-back-3", "bag-control" ],
-		"transform": [ "hat-control", "leg-up-back", "leg-down-back-up" ],
+		"bones": [ "bag-flap", "bag", "hat-control", "hair-holder-back", "bag-strap-front", "hair-strand-front-4", "scarf-back", "bag-control", "hair-strand-front-1", "hat-base", "hat", "hair-strand-back-2", "zip-girl", "bag-strap-back", "hair-holder-front", "hair-strand-back-3", "pompom-control", "bag-back-front", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1", "bag-back-down" ],
+		"transform": [ "hat-control", "leg-down-back-up", "leg-up-back" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -3237,8 +3237,8 @@
 	},
 	{
 		"name": "full-skins/girl-blue-cape",
-		"bones": [ "dress-control-middle", "cape-blue-down-back", "cape-blue-up-back", "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "cape-blue-up-front", "cape-blue-middle-back", "dress-control-leg-down-back", "dress-control-leg-down-front", "cape-back-rotator", "dress-control-leg-up-front", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "dress-control-leg-up-back", "cape-blue-down", "dress-control-foot-back", "cape-blue-control", "cape-blue-up" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "dress-control-middle", "sleeve-control-back", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "dress-control-foot-front", "cape-back-rotator", "dress-control-foot-back", "cape-blue-up-back", "dress-control-leg-down-front", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "sleeve-control-front", "dress-control-leg-down-back", "dress-control-leg-up-back", "cape-blue-middle-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -3731,8 +3731,8 @@
 	},
 	{
 		"name": "full-skins/girl-spring-dress",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "cape-red-back-outside", "cape-red-front-inside", "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "skirt-control-front", "skirt-control", "skirt-rotation-front", "cape-red-front-outside", "skirt-control-back", "skirt-control-up", "skirt-rotation-back" ],
-		"transform": [ "skirt-rotation-front", "skirt-rotation-back" ],
+		"bones": [ "skirt-rotation-front", "skirt-control", "skirt-control-back-down", "skirt-control-front", "cape-front-rotator", "cape-red-back-inside", "skirt-control-middle", "cape-back-rotator", "skirt-control-back", "skirt-control-up", "cape-red-front-outside", "skirt-rotation-back", "cape-red-back-outside", "cape-red-front-inside", "skirt-control-front-down" ],
+		"transform": [ "skirt-rotation-back", "skirt-rotation-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -4460,7 +4460,7 @@
 	},
 	{
 		"name": "hair/long-blue-with-scarf",
-		"bones": [ "hair-strand-front-1", "hair-strand-back-1", "hair-holder-front", "hair-strand-front-2", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "hair-strand-back-2", "scarf-back", "hair-strand-back-3" ],
+		"bones": [ "hair-holder-back", "hair-strand-front-4", "scarf-back", "hair-strand-front-1", "hair-strand-back-2", "hair-holder-front", "hair-strand-back-3", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1" ],
 		"attachments": {
 			"ear": {
 				"ear": { "name": "girl/ear", "x": 56.58, "y": 85.63, "rotation": -87.57, "width": 38, "height": 45 }

二進制
examples/mix-and-match/export/mix-and-match-pro.skel


二進制
examples/spineboy/export/spineboy-run.png


二進制
spine-cocos2dx/example/Resources/common/mix-and-match-pro.skel


二進制
spine-flutter/example/assets/mix-and-match-pro.skel


+ 19 - 19
spine-godot/example-v4/assets/mix-and-match/mix-and-match-pro.spine-json

@@ -1,6 +1,6 @@
 {
 "skeleton": {
-	"hash": "gdqIJqjhGoQ",
+	"hash": "XD14iwt7TYc",
 	"spine": "4.2.09-beta",
 	"x": -240.58,
 	"y": -3.38,
@@ -1392,7 +1392,7 @@
 	},
 	{
 		"name": "accessories/backpack",
-		"bones": [ "backpack", "backpack-control" ],
+		"bones": [ "backpack-control", "backpack" ],
 		"attachments": {
 			"backpack": {
 				"backpack": {
@@ -1466,7 +1466,7 @@
 	},
 	{
 		"name": "accessories/bag",
-		"bones": [ "bag-back-front", "bag-strap-front", "bag-back-down", "bag-strap-back", "bag", "bag-flap", "bag-control" ],
+		"bones": [ "bag", "bag-flap", "bag-strap-front", "bag-control", "bag-strap-back", "bag-back-front", "bag-back-down" ],
 		"attachments": {
 			"bag-base": {
 				"bag-base": {
@@ -1527,7 +1527,7 @@
 	},
 	{
 		"name": "accessories/cape-blue",
-		"bones": [ "cape-blue-down-back", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-middle-back", "cape-back-rotator", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "cape-blue-down", "cape-blue-up", "cape-blue-control" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "cape-back-rotator", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "cape-blue-middle-back" ],
 		"attachments": {
 			"cape-back": {
 				"cape-back": {
@@ -1615,7 +1615,7 @@
 	},
 	{
 		"name": "accessories/cape-red",
-		"bones": [ "cape-red-back-outside", "cape-red-back-inside", "cape-red-front-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside" ],
+		"bones": [ "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside", "cape-red-front-inside", "cape-red-back-outside" ],
 		"attachments": {
 			"cape-red-down": {
 				"cape-red-down": {
@@ -1653,7 +1653,7 @@
 	},
 	{
 		"name": "accessories/hat-pointy-blue-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1679,7 +1679,7 @@
 	},
 	{
 		"name": "accessories/hat-red-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1730,8 +1730,8 @@
 	},
 	{
 		"name": "clothes/dress-blue",
-		"bones": [ "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "dress-control-leg-down-back", "dress-control-leg-down-front", "dress-control-leg-up-front", "dress-control-leg-up-back", "dress-control-foot-back", "dress-control-middle" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "dress-control-middle", "sleeve-control-back", "dress-control-foot-front", "dress-control-foot-back", "dress-control-leg-down-front", "dress-control-leg-down-back", "sleeve-control-front", "dress-control-leg-up-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -1819,7 +1819,7 @@
 	},
 	{
 		"name": "clothes/dress-green",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "skirt-control-front", "skirt-control", "skirt-control-back", "skirt-control-up" ],
+		"bones": [ "skirt-control", "skirt-control-back-down", "skirt-control-front", "skirt-control-middle", "skirt-control-back", "skirt-control-up", "skirt-control-front-down" ],
 		"attachments": {
 			"body-up": {
 				"body-up": { "name": "girl-spring-dress/body-up", "x": 59.16, "y": -14.67, "rotation": -94.33, "width": 128, "height": 131 }
@@ -1857,7 +1857,7 @@
 	},
 	{
 		"name": "clothes/hoodie-blue-and-scarf",
-		"bones": [ "zip-girl", "scarf-back" ],
+		"bones": [ "scarf-back", "zip-girl" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -2314,7 +2314,7 @@
 	},
 	{
 		"name": "full-skins/boy",
-		"bones": [ "hat-base", "backpack", "pompom-control", "hat-control", "backpack-control", "zip-boy", "hat" ],
+		"bones": [ "backpack-control", "hat-control", "hat-base", "hat", "pompom-control", "backpack", "zip-boy" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"arm-back": {
@@ -2739,8 +2739,8 @@
 	},
 	{
 		"name": "full-skins/girl",
-		"bones": [ "bag-strap-front", "bag-back-front", "hat-base", "hair-strand-front-1", "bag-back-down", "zip-girl", "bag-strap-back", "hair-strand-back-1", "pompom-control", "hair-holder-front", "hair-strand-front-2", "hat-control", "bag", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "bag-flap", "hair-strand-back-2", "hat", "scarf-back", "hair-strand-back-3", "bag-control" ],
-		"transform": [ "hat-control", "leg-up-back", "leg-down-back-up" ],
+		"bones": [ "bag-flap", "bag", "hat-control", "hair-holder-back", "bag-strap-front", "hair-strand-front-4", "scarf-back", "bag-control", "hair-strand-front-1", "hat-base", "hat", "hair-strand-back-2", "zip-girl", "bag-strap-back", "hair-holder-front", "hair-strand-back-3", "pompom-control", "bag-back-front", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1", "bag-back-down" ],
+		"transform": [ "hat-control", "leg-down-back-up", "leg-up-back" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -3237,8 +3237,8 @@
 	},
 	{
 		"name": "full-skins/girl-blue-cape",
-		"bones": [ "dress-control-middle", "cape-blue-down-back", "cape-blue-up-back", "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "cape-blue-up-front", "cape-blue-middle-back", "dress-control-leg-down-back", "dress-control-leg-down-front", "cape-back-rotator", "dress-control-leg-up-front", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "dress-control-leg-up-back", "cape-blue-down", "dress-control-foot-back", "cape-blue-control", "cape-blue-up" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "dress-control-middle", "sleeve-control-back", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "dress-control-foot-front", "cape-back-rotator", "dress-control-foot-back", "cape-blue-up-back", "dress-control-leg-down-front", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "sleeve-control-front", "dress-control-leg-down-back", "dress-control-leg-up-back", "cape-blue-middle-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -3731,8 +3731,8 @@
 	},
 	{
 		"name": "full-skins/girl-spring-dress",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "cape-red-back-outside", "cape-red-front-inside", "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "skirt-control-front", "skirt-control", "skirt-rotation-front", "cape-red-front-outside", "skirt-control-back", "skirt-control-up", "skirt-rotation-back" ],
-		"transform": [ "skirt-rotation-front", "skirt-rotation-back" ],
+		"bones": [ "skirt-rotation-front", "skirt-control", "skirt-control-back-down", "skirt-control-front", "cape-front-rotator", "cape-red-back-inside", "skirt-control-middle", "cape-back-rotator", "skirt-control-back", "skirt-control-up", "cape-red-front-outside", "skirt-rotation-back", "cape-red-back-outside", "cape-red-front-inside", "skirt-control-front-down" ],
+		"transform": [ "skirt-rotation-back", "skirt-rotation-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -4460,7 +4460,7 @@
 	},
 	{
 		"name": "hair/long-blue-with-scarf",
-		"bones": [ "hair-strand-front-1", "hair-strand-back-1", "hair-holder-front", "hair-strand-front-2", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "hair-strand-back-2", "scarf-back", "hair-strand-back-3" ],
+		"bones": [ "hair-holder-back", "hair-strand-front-4", "scarf-back", "hair-strand-front-1", "hair-strand-back-2", "hair-holder-front", "hair-strand-back-3", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1" ],
 		"attachments": {
 			"ear": {
 				"ear": { "name": "girl/ear", "x": 56.58, "y": 85.63, "rotation": -87.57, "width": 38, "height": 45 }

+ 19 - 19
spine-godot/example/assets/mix-and-match/mix-and-match-pro.spine-json

@@ -1,6 +1,6 @@
 {
 "skeleton": {
-	"hash": "gdqIJqjhGoQ",
+	"hash": "XD14iwt7TYc",
 	"spine": "4.2.09-beta",
 	"x": -240.58,
 	"y": -3.38,
@@ -1392,7 +1392,7 @@
 	},
 	{
 		"name": "accessories/backpack",
-		"bones": [ "backpack", "backpack-control" ],
+		"bones": [ "backpack-control", "backpack" ],
 		"attachments": {
 			"backpack": {
 				"backpack": {
@@ -1466,7 +1466,7 @@
 	},
 	{
 		"name": "accessories/bag",
-		"bones": [ "bag-back-front", "bag-strap-front", "bag-back-down", "bag-strap-back", "bag", "bag-flap", "bag-control" ],
+		"bones": [ "bag", "bag-flap", "bag-strap-front", "bag-control", "bag-strap-back", "bag-back-front", "bag-back-down" ],
 		"attachments": {
 			"bag-base": {
 				"bag-base": {
@@ -1527,7 +1527,7 @@
 	},
 	{
 		"name": "accessories/cape-blue",
-		"bones": [ "cape-blue-down-back", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-middle-back", "cape-back-rotator", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "cape-blue-down", "cape-blue-up", "cape-blue-control" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "cape-back-rotator", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "cape-blue-middle-back" ],
 		"attachments": {
 			"cape-back": {
 				"cape-back": {
@@ -1615,7 +1615,7 @@
 	},
 	{
 		"name": "accessories/cape-red",
-		"bones": [ "cape-red-back-outside", "cape-red-back-inside", "cape-red-front-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside" ],
+		"bones": [ "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside", "cape-red-front-inside", "cape-red-back-outside" ],
 		"attachments": {
 			"cape-red-down": {
 				"cape-red-down": {
@@ -1653,7 +1653,7 @@
 	},
 	{
 		"name": "accessories/hat-pointy-blue-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1679,7 +1679,7 @@
 	},
 	{
 		"name": "accessories/hat-red-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1730,8 +1730,8 @@
 	},
 	{
 		"name": "clothes/dress-blue",
-		"bones": [ "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "dress-control-leg-down-back", "dress-control-leg-down-front", "dress-control-leg-up-front", "dress-control-leg-up-back", "dress-control-foot-back", "dress-control-middle" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "dress-control-middle", "sleeve-control-back", "dress-control-foot-front", "dress-control-foot-back", "dress-control-leg-down-front", "dress-control-leg-down-back", "sleeve-control-front", "dress-control-leg-up-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -1819,7 +1819,7 @@
 	},
 	{
 		"name": "clothes/dress-green",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "skirt-control-front", "skirt-control", "skirt-control-back", "skirt-control-up" ],
+		"bones": [ "skirt-control", "skirt-control-back-down", "skirt-control-front", "skirt-control-middle", "skirt-control-back", "skirt-control-up", "skirt-control-front-down" ],
 		"attachments": {
 			"body-up": {
 				"body-up": { "name": "girl-spring-dress/body-up", "x": 59.16, "y": -14.67, "rotation": -94.33, "width": 128, "height": 131 }
@@ -1857,7 +1857,7 @@
 	},
 	{
 		"name": "clothes/hoodie-blue-and-scarf",
-		"bones": [ "zip-girl", "scarf-back" ],
+		"bones": [ "scarf-back", "zip-girl" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -2314,7 +2314,7 @@
 	},
 	{
 		"name": "full-skins/boy",
-		"bones": [ "hat-base", "backpack", "pompom-control", "hat-control", "backpack-control", "zip-boy", "hat" ],
+		"bones": [ "backpack-control", "hat-control", "hat-base", "hat", "pompom-control", "backpack", "zip-boy" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"arm-back": {
@@ -2739,8 +2739,8 @@
 	},
 	{
 		"name": "full-skins/girl",
-		"bones": [ "bag-strap-front", "bag-back-front", "hat-base", "hair-strand-front-1", "bag-back-down", "zip-girl", "bag-strap-back", "hair-strand-back-1", "pompom-control", "hair-holder-front", "hair-strand-front-2", "hat-control", "bag", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "bag-flap", "hair-strand-back-2", "hat", "scarf-back", "hair-strand-back-3", "bag-control" ],
-		"transform": [ "hat-control", "leg-up-back", "leg-down-back-up" ],
+		"bones": [ "bag-flap", "bag", "hat-control", "hair-holder-back", "bag-strap-front", "hair-strand-front-4", "scarf-back", "bag-control", "hair-strand-front-1", "hat-base", "hat", "hair-strand-back-2", "zip-girl", "bag-strap-back", "hair-holder-front", "hair-strand-back-3", "pompom-control", "bag-back-front", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1", "bag-back-down" ],
+		"transform": [ "hat-control", "leg-down-back-up", "leg-up-back" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -3237,8 +3237,8 @@
 	},
 	{
 		"name": "full-skins/girl-blue-cape",
-		"bones": [ "dress-control-middle", "cape-blue-down-back", "cape-blue-up-back", "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "cape-blue-up-front", "cape-blue-middle-back", "dress-control-leg-down-back", "dress-control-leg-down-front", "cape-back-rotator", "dress-control-leg-up-front", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "dress-control-leg-up-back", "cape-blue-down", "dress-control-foot-back", "cape-blue-control", "cape-blue-up" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "dress-control-middle", "sleeve-control-back", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "dress-control-foot-front", "cape-back-rotator", "dress-control-foot-back", "cape-blue-up-back", "dress-control-leg-down-front", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "sleeve-control-front", "dress-control-leg-down-back", "dress-control-leg-up-back", "cape-blue-middle-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -3731,8 +3731,8 @@
 	},
 	{
 		"name": "full-skins/girl-spring-dress",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "cape-red-back-outside", "cape-red-front-inside", "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "skirt-control-front", "skirt-control", "skirt-rotation-front", "cape-red-front-outside", "skirt-control-back", "skirt-control-up", "skirt-rotation-back" ],
-		"transform": [ "skirt-rotation-front", "skirt-rotation-back" ],
+		"bones": [ "skirt-rotation-front", "skirt-control", "skirt-control-back-down", "skirt-control-front", "cape-front-rotator", "cape-red-back-inside", "skirt-control-middle", "cape-back-rotator", "skirt-control-back", "skirt-control-up", "cape-red-front-outside", "skirt-rotation-back", "cape-red-back-outside", "cape-red-front-inside", "skirt-control-front-down" ],
+		"transform": [ "skirt-rotation-back", "skirt-rotation-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -4460,7 +4460,7 @@
 	},
 	{
 		"name": "hair/long-blue-with-scarf",
-		"bones": [ "hair-strand-front-1", "hair-strand-back-1", "hair-holder-front", "hair-strand-front-2", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "hair-strand-back-2", "scarf-back", "hair-strand-back-3" ],
+		"bones": [ "hair-holder-back", "hair-strand-front-4", "scarf-back", "hair-strand-front-1", "hair-strand-back-2", "hair-holder-front", "hair-strand-back-3", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1" ],
 		"attachments": {
 			"ear": {
 				"ear": { "name": "girl/ear", "x": 56.58, "y": 85.63, "rotation": -87.57, "width": 38, "height": 45 }

+ 19 - 19
spine-haxe/example/assets/mix-and-match-pro.json

@@ -1,6 +1,6 @@
 {
 "skeleton": {
-	"hash": "gdqIJqjhGoQ",
+	"hash": "XD14iwt7TYc",
 	"spine": "4.2.09-beta",
 	"x": -240.58,
 	"y": -3.38,
@@ -1392,7 +1392,7 @@
 	},
 	{
 		"name": "accessories/backpack",
-		"bones": [ "backpack", "backpack-control" ],
+		"bones": [ "backpack-control", "backpack" ],
 		"attachments": {
 			"backpack": {
 				"backpack": {
@@ -1466,7 +1466,7 @@
 	},
 	{
 		"name": "accessories/bag",
-		"bones": [ "bag-back-front", "bag-strap-front", "bag-back-down", "bag-strap-back", "bag", "bag-flap", "bag-control" ],
+		"bones": [ "bag", "bag-flap", "bag-strap-front", "bag-control", "bag-strap-back", "bag-back-front", "bag-back-down" ],
 		"attachments": {
 			"bag-base": {
 				"bag-base": {
@@ -1527,7 +1527,7 @@
 	},
 	{
 		"name": "accessories/cape-blue",
-		"bones": [ "cape-blue-down-back", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-middle-back", "cape-back-rotator", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "cape-blue-down", "cape-blue-up", "cape-blue-control" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "cape-back-rotator", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "cape-blue-middle-back" ],
 		"attachments": {
 			"cape-back": {
 				"cape-back": {
@@ -1615,7 +1615,7 @@
 	},
 	{
 		"name": "accessories/cape-red",
-		"bones": [ "cape-red-back-outside", "cape-red-back-inside", "cape-red-front-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside" ],
+		"bones": [ "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside", "cape-red-front-inside", "cape-red-back-outside" ],
 		"attachments": {
 			"cape-red-down": {
 				"cape-red-down": {
@@ -1653,7 +1653,7 @@
 	},
 	{
 		"name": "accessories/hat-pointy-blue-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1679,7 +1679,7 @@
 	},
 	{
 		"name": "accessories/hat-red-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1730,8 +1730,8 @@
 	},
 	{
 		"name": "clothes/dress-blue",
-		"bones": [ "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "dress-control-leg-down-back", "dress-control-leg-down-front", "dress-control-leg-up-front", "dress-control-leg-up-back", "dress-control-foot-back", "dress-control-middle" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "dress-control-middle", "sleeve-control-back", "dress-control-foot-front", "dress-control-foot-back", "dress-control-leg-down-front", "dress-control-leg-down-back", "sleeve-control-front", "dress-control-leg-up-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -1819,7 +1819,7 @@
 	},
 	{
 		"name": "clothes/dress-green",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "skirt-control-front", "skirt-control", "skirt-control-back", "skirt-control-up" ],
+		"bones": [ "skirt-control", "skirt-control-back-down", "skirt-control-front", "skirt-control-middle", "skirt-control-back", "skirt-control-up", "skirt-control-front-down" ],
 		"attachments": {
 			"body-up": {
 				"body-up": { "name": "girl-spring-dress/body-up", "x": 59.16, "y": -14.67, "rotation": -94.33, "width": 128, "height": 131 }
@@ -1857,7 +1857,7 @@
 	},
 	{
 		"name": "clothes/hoodie-blue-and-scarf",
-		"bones": [ "zip-girl", "scarf-back" ],
+		"bones": [ "scarf-back", "zip-girl" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -2314,7 +2314,7 @@
 	},
 	{
 		"name": "full-skins/boy",
-		"bones": [ "hat-base", "backpack", "pompom-control", "hat-control", "backpack-control", "zip-boy", "hat" ],
+		"bones": [ "backpack-control", "hat-control", "hat-base", "hat", "pompom-control", "backpack", "zip-boy" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"arm-back": {
@@ -2739,8 +2739,8 @@
 	},
 	{
 		"name": "full-skins/girl",
-		"bones": [ "bag-strap-front", "bag-back-front", "hat-base", "hair-strand-front-1", "bag-back-down", "zip-girl", "bag-strap-back", "hair-strand-back-1", "pompom-control", "hair-holder-front", "hair-strand-front-2", "hat-control", "bag", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "bag-flap", "hair-strand-back-2", "hat", "scarf-back", "hair-strand-back-3", "bag-control" ],
-		"transform": [ "hat-control", "leg-up-back", "leg-down-back-up" ],
+		"bones": [ "bag-flap", "bag", "hat-control", "hair-holder-back", "bag-strap-front", "hair-strand-front-4", "scarf-back", "bag-control", "hair-strand-front-1", "hat-base", "hat", "hair-strand-back-2", "zip-girl", "bag-strap-back", "hair-holder-front", "hair-strand-back-3", "pompom-control", "bag-back-front", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1", "bag-back-down" ],
+		"transform": [ "hat-control", "leg-down-back-up", "leg-up-back" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -3237,8 +3237,8 @@
 	},
 	{
 		"name": "full-skins/girl-blue-cape",
-		"bones": [ "dress-control-middle", "cape-blue-down-back", "cape-blue-up-back", "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "cape-blue-up-front", "cape-blue-middle-back", "dress-control-leg-down-back", "dress-control-leg-down-front", "cape-back-rotator", "dress-control-leg-up-front", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "dress-control-leg-up-back", "cape-blue-down", "dress-control-foot-back", "cape-blue-control", "cape-blue-up" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "dress-control-middle", "sleeve-control-back", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "dress-control-foot-front", "cape-back-rotator", "dress-control-foot-back", "cape-blue-up-back", "dress-control-leg-down-front", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "sleeve-control-front", "dress-control-leg-down-back", "dress-control-leg-up-back", "cape-blue-middle-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -3731,8 +3731,8 @@
 	},
 	{
 		"name": "full-skins/girl-spring-dress",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "cape-red-back-outside", "cape-red-front-inside", "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "skirt-control-front", "skirt-control", "skirt-rotation-front", "cape-red-front-outside", "skirt-control-back", "skirt-control-up", "skirt-rotation-back" ],
-		"transform": [ "skirt-rotation-front", "skirt-rotation-back" ],
+		"bones": [ "skirt-rotation-front", "skirt-control", "skirt-control-back-down", "skirt-control-front", "cape-front-rotator", "cape-red-back-inside", "skirt-control-middle", "cape-back-rotator", "skirt-control-back", "skirt-control-up", "cape-red-front-outside", "skirt-rotation-back", "cape-red-back-outside", "cape-red-front-inside", "skirt-control-front-down" ],
+		"transform": [ "skirt-rotation-back", "skirt-rotation-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -4460,7 +4460,7 @@
 	},
 	{
 		"name": "hair/long-blue-with-scarf",
-		"bones": [ "hair-strand-front-1", "hair-strand-back-1", "hair-holder-front", "hair-strand-front-2", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "hair-strand-back-2", "scarf-back", "hair-strand-back-3" ],
+		"bones": [ "hair-holder-back", "hair-strand-front-4", "scarf-back", "hair-strand-front-1", "hair-strand-back-2", "hair-holder-front", "hair-strand-back-3", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1" ],
 		"attachments": {
 			"ear": {
 				"ear": { "name": "girl/ear", "x": 56.58, "y": 85.63, "rotation": -87.57, "width": 38, "height": 45 }

二進制
spine-haxe/example/assets/mix-and-match-pro.skel


+ 170 - 0
spine-libgdx/spine-libgdx-tests/assets/celestial-circus/celestial-circus-pma.atlas

@@ -0,0 +1,170 @@
+celestial-circus-pma.png
+	size: 1024, 1024
+	filter: Linear, Linear
+	pma: true
+	scale: 0.5
+arm-back-down
+	bounds: 944, 3, 48, 103
+arm-front-down
+	bounds: 241, 56, 45, 98
+bench
+	bounds: 2, 94, 237, 60
+body-bottom
+	bounds: 674, 8, 193, 156
+	rotate: 90
+collar
+	bounds: 822, 352, 59, 33
+ear
+	bounds: 997, 185, 25, 35
+eye-back-shadow
+	bounds: 1004, 978, 18, 12
+eye-front-shadow
+	bounds: 1004, 992, 30, 18
+	rotate: 90
+eye-reflex-back
+	bounds: 822, 341, 10, 9
+eye-reflex-front
+	bounds: 525, 699, 13, 9
+	rotate: 90
+eye-white-back
+	bounds: 956, 963, 16, 20
+eye-white-front
+	bounds: 551, 179, 28, 22
+eyelashes-down-back
+	bounds: 980, 325, 14, 7
+	rotate: 90
+eyelashes-down-front
+	bounds: 979, 1003, 19, 8
+	rotate: 90
+eyelashes-top-back
+	bounds: 997, 118, 23, 12
+	rotate: 90
+eyelashes-top-front
+	bounds: 956, 985, 37, 21
+	rotate: 90
+feathers-front
+	bounds: 2, 2, 90, 108
+	rotate: 90
+fringe-middle-back
+	bounds: 980, 222, 42, 65
+fringe-side-back
+	bounds: 944, 222, 34, 117
+fringe-side-front
+	bounds: 989, 289, 33, 116
+hair-back-1
+	bounds: 289, 2, 166, 383
+	rotate: 90
+hair-back-2
+	bounds: 887, 341, 100, 356
+hair-back-4
+	bounds: 832, 11, 110, 328
+hair-hat-shadow
+	bounds: 944, 108, 112, 51
+	rotate: 90
+hat-front
+	bounds: 112, 22, 121, 70
+leg-front
+	bounds: 554, 699, 323, 400
+	rotate: 90
+logo-brooch
+	bounds: 505, 170, 20, 31
+mouth
+	bounds: 279, 26, 28, 8
+	rotate: 90
+nose
+	bounds: 279, 15, 8, 9
+nose-shadow
+	bounds: 834, 341, 9, 10
+	rotate: 90
+nose.-highlight
+	bounds: 551, 171, 5, 6
+pupil-back
+	bounds: 505, 699, 13, 18
+	rotate: 90
+pupil-front
+	bounds: 112, 5, 15, 22
+	rotate: 90
+rope-back
+	bounds: 989, 407, 13, 615
+rope-front
+	bounds: 989, 407, 13, 615
+skirt
+	bounds: 2, 714, 550, 308
+sock-bow
+	bounds: 235, 14, 42, 40
+spine-logo-body
+	bounds: 997, 143, 16, 40
+star-big
+	bounds: 527, 171, 22, 30
+star-medium
+	bounds: 1015, 173, 7, 10
+star-small
+	bounds: 674, 2, 4, 6
+	rotate: 90
+underskirt
+	bounds: 2, 156, 556, 285
+	rotate: 90
+underskirt-back
+	bounds: 289, 170, 542, 214
+	rotate: 90
+wing-back
+	bounds: 505, 203, 182, 315
+	rotate: 90
+wing-front
+	bounds: 505, 387, 380, 310
+
+celestial-circus-pma_2.png
+	size: 1024, 1024
+	filter: Linear, Linear
+	pma: true
+	scale: 0.5
+arm-back-up
+	bounds: 490, 683, 104, 145
+	rotate: 90
+arm-front-up
+	bounds: 162, 23, 96, 145
+body-top
+	bounds: 2, 2, 158, 166
+chest
+	bounds: 744, 878, 130, 117
+cloud-back
+	bounds: 490, 789, 252, 206
+cloud-front
+	bounds: 2, 170, 406, 245
+	rotate: 90
+face
+	bounds: 876, 879, 116, 128
+	rotate: 90
+feathers-back
+	bounds: 266, 578, 57, 57
+fringe-middle-front
+	bounds: 260, 105, 75, 63
+glove-bottom-back
+	bounds: 325, 584, 64, 51
+glove-bottom-front
+	bounds: 391, 585, 59, 61
+	rotate: 90
+hair-back-3
+	bounds: 249, 241, 87, 335
+hair-back-5
+	bounds: 378, 646, 110, 349
+hair-back-6
+	bounds: 266, 637, 110, 358
+hand-back
+	bounds: 573, 622, 75, 59
+hand-front
+	bounds: 637, 712, 67, 75
+hat-back
+	bounds: 260, 23, 80, 56
+	rotate: 90
+head-back
+	bounds: 744, 768, 128, 108
+jabot
+	bounds: 249, 170, 88, 69
+leg-back
+	bounds: 2, 578, 262, 417
+neck
+	bounds: 338, 511, 49, 71
+rope-front-bottom
+	bounds: 490, 628, 53, 81
+	rotate: 90

二進制
spine-libgdx/spine-libgdx-tests/assets/celestial-circus/celestial-circus-pma.png


File diff suppressed because it is too large
+ 875 - 0
spine-libgdx/spine-libgdx-tests/assets/celestial-circus/celestial-circus-pro.json


二進制
spine-libgdx/spine-libgdx-tests/assets/celestial-circus/celestial-circus-pro.skel


+ 19 - 19
spine-libgdx/spine-libgdx-tests/assets/mix-and-match/mix-and-match-pro.json

@@ -1,6 +1,6 @@
 {
 "skeleton": {
-	"hash": "gdqIJqjhGoQ",
+	"hash": "XD14iwt7TYc",
 	"spine": "4.2.09-beta",
 	"x": -240.58,
 	"y": -3.38,
@@ -1392,7 +1392,7 @@
 	},
 	{
 		"name": "accessories/backpack",
-		"bones": [ "backpack", "backpack-control" ],
+		"bones": [ "backpack-control", "backpack" ],
 		"attachments": {
 			"backpack": {
 				"backpack": {
@@ -1466,7 +1466,7 @@
 	},
 	{
 		"name": "accessories/bag",
-		"bones": [ "bag-back-front", "bag-strap-front", "bag-back-down", "bag-strap-back", "bag", "bag-flap", "bag-control" ],
+		"bones": [ "bag", "bag-flap", "bag-strap-front", "bag-control", "bag-strap-back", "bag-back-front", "bag-back-down" ],
 		"attachments": {
 			"bag-base": {
 				"bag-base": {
@@ -1527,7 +1527,7 @@
 	},
 	{
 		"name": "accessories/cape-blue",
-		"bones": [ "cape-blue-down-back", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-middle-back", "cape-back-rotator", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "cape-blue-down", "cape-blue-up", "cape-blue-control" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "cape-back-rotator", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "cape-blue-middle-back" ],
 		"attachments": {
 			"cape-back": {
 				"cape-back": {
@@ -1615,7 +1615,7 @@
 	},
 	{
 		"name": "accessories/cape-red",
-		"bones": [ "cape-red-back-outside", "cape-red-back-inside", "cape-red-front-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside" ],
+		"bones": [ "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside", "cape-red-front-inside", "cape-red-back-outside" ],
 		"attachments": {
 			"cape-red-down": {
 				"cape-red-down": {
@@ -1653,7 +1653,7 @@
 	},
 	{
 		"name": "accessories/hat-pointy-blue-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1679,7 +1679,7 @@
 	},
 	{
 		"name": "accessories/hat-red-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1730,8 +1730,8 @@
 	},
 	{
 		"name": "clothes/dress-blue",
-		"bones": [ "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "dress-control-leg-down-back", "dress-control-leg-down-front", "dress-control-leg-up-front", "dress-control-leg-up-back", "dress-control-foot-back", "dress-control-middle" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "dress-control-middle", "sleeve-control-back", "dress-control-foot-front", "dress-control-foot-back", "dress-control-leg-down-front", "dress-control-leg-down-back", "sleeve-control-front", "dress-control-leg-up-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -1819,7 +1819,7 @@
 	},
 	{
 		"name": "clothes/dress-green",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "skirt-control-front", "skirt-control", "skirt-control-back", "skirt-control-up" ],
+		"bones": [ "skirt-control", "skirt-control-back-down", "skirt-control-front", "skirt-control-middle", "skirt-control-back", "skirt-control-up", "skirt-control-front-down" ],
 		"attachments": {
 			"body-up": {
 				"body-up": { "name": "girl-spring-dress/body-up", "x": 59.16, "y": -14.67, "rotation": -94.33, "width": 128, "height": 131 }
@@ -1857,7 +1857,7 @@
 	},
 	{
 		"name": "clothes/hoodie-blue-and-scarf",
-		"bones": [ "zip-girl", "scarf-back" ],
+		"bones": [ "scarf-back", "zip-girl" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -2314,7 +2314,7 @@
 	},
 	{
 		"name": "full-skins/boy",
-		"bones": [ "hat-base", "backpack", "pompom-control", "hat-control", "backpack-control", "zip-boy", "hat" ],
+		"bones": [ "backpack-control", "hat-control", "hat-base", "hat", "pompom-control", "backpack", "zip-boy" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"arm-back": {
@@ -2739,8 +2739,8 @@
 	},
 	{
 		"name": "full-skins/girl",
-		"bones": [ "bag-strap-front", "bag-back-front", "hat-base", "hair-strand-front-1", "bag-back-down", "zip-girl", "bag-strap-back", "hair-strand-back-1", "pompom-control", "hair-holder-front", "hair-strand-front-2", "hat-control", "bag", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "bag-flap", "hair-strand-back-2", "hat", "scarf-back", "hair-strand-back-3", "bag-control" ],
-		"transform": [ "hat-control", "leg-up-back", "leg-down-back-up" ],
+		"bones": [ "bag-flap", "bag", "hat-control", "hair-holder-back", "bag-strap-front", "hair-strand-front-4", "scarf-back", "bag-control", "hair-strand-front-1", "hat-base", "hat", "hair-strand-back-2", "zip-girl", "bag-strap-back", "hair-holder-front", "hair-strand-back-3", "pompom-control", "bag-back-front", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1", "bag-back-down" ],
+		"transform": [ "hat-control", "leg-down-back-up", "leg-up-back" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -3237,8 +3237,8 @@
 	},
 	{
 		"name": "full-skins/girl-blue-cape",
-		"bones": [ "dress-control-middle", "cape-blue-down-back", "cape-blue-up-back", "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "cape-blue-up-front", "cape-blue-middle-back", "dress-control-leg-down-back", "dress-control-leg-down-front", "cape-back-rotator", "dress-control-leg-up-front", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "dress-control-leg-up-back", "cape-blue-down", "dress-control-foot-back", "cape-blue-control", "cape-blue-up" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "dress-control-middle", "sleeve-control-back", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "dress-control-foot-front", "cape-back-rotator", "dress-control-foot-back", "cape-blue-up-back", "dress-control-leg-down-front", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "sleeve-control-front", "dress-control-leg-down-back", "dress-control-leg-up-back", "cape-blue-middle-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -3731,8 +3731,8 @@
 	},
 	{
 		"name": "full-skins/girl-spring-dress",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "cape-red-back-outside", "cape-red-front-inside", "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "skirt-control-front", "skirt-control", "skirt-rotation-front", "cape-red-front-outside", "skirt-control-back", "skirt-control-up", "skirt-rotation-back" ],
-		"transform": [ "skirt-rotation-front", "skirt-rotation-back" ],
+		"bones": [ "skirt-rotation-front", "skirt-control", "skirt-control-back-down", "skirt-control-front", "cape-front-rotator", "cape-red-back-inside", "skirt-control-middle", "cape-back-rotator", "skirt-control-back", "skirt-control-up", "cape-red-front-outside", "skirt-rotation-back", "cape-red-back-outside", "cape-red-front-inside", "skirt-control-front-down" ],
+		"transform": [ "skirt-rotation-back", "skirt-rotation-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -4460,7 +4460,7 @@
 	},
 	{
 		"name": "hair/long-blue-with-scarf",
-		"bones": [ "hair-strand-front-1", "hair-strand-back-1", "hair-holder-front", "hair-strand-front-2", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "hair-strand-back-2", "scarf-back", "hair-strand-back-3" ],
+		"bones": [ "hair-holder-back", "hair-strand-front-4", "scarf-back", "hair-strand-front-1", "hair-strand-back-2", "hair-holder-front", "hair-strand-back-3", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1" ],
 		"attachments": {
 			"ear": {
 				"ear": { "name": "girl/ear", "x": 56.58, "y": 85.63, "rotation": -87.57, "width": 38, "height": 45 }

二進制
spine-libgdx/spine-libgdx-tests/assets/mix-and-match/mix-and-match-pro.skel


+ 11 - 0
spine-libgdx/spine-libgdx-tests/assets/sack/sack-pma.atlas

@@ -0,0 +1,11 @@
+sack-pma.png
+	size: 512, 512
+	filter: Linear, Linear
+	pma: true
+	scale: 0.5
+cape-back
+	bounds: 237, 149, 260, 260
+cape-front
+	bounds: 237, 43, 200, 104
+sack
+	bounds: 2, 2, 233, 407

二進制
spine-libgdx/spine-libgdx-tests/assets/sack/sack-pma.png


File diff suppressed because it is too large
+ 203 - 0
spine-libgdx/spine-libgdx-tests/assets/sack/sack-pro.json


二進制
spine-libgdx/spine-libgdx-tests/assets/sack/sack-pro.skel


+ 108 - 0
spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/PhysicsTest.java

@@ -0,0 +1,108 @@
+/******************************************************************************
+ * Spine Runtimes License Agreement
+ * Last updated July 28, 2023. Replaces all prior versions.
+ *
+ * Copyright (c) 2013-2023, Esoteric Software LLC
+ *
+ * Integration of the Spine Runtimes into software or otherwise creating
+ * derivative works of the Spine Runtimes is permitted under the terms and
+ * conditions of Section 2 of the Spine Editor License Agreement:
+ * http://esotericsoftware.com/spine-editor-license
+ *
+ * Otherwise, it is permitted to integrate the Spine Runtimes into software or
+ * otherwise create derivative works of the Spine Runtimes (collectively,
+ * "Products"), provided that each user of the Products must obtain their own
+ * Spine Editor license and redistribution of the Products in any form must
+ * include this license and copyright notice.
+ *
+ * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
+ * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
+ * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *****************************************************************************/
+
+package com.esotericsoftware.spine;
+
+import com.badlogic.gdx.ApplicationAdapter;
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
+import com.badlogic.gdx.graphics.GL20;
+import com.badlogic.gdx.graphics.OrthographicCamera;
+import com.badlogic.gdx.graphics.g2d.TextureAtlas;
+import com.esotericsoftware.spine.Skeleton.Physics;
+import com.esotericsoftware.spine.utils.TwoColorPolygonBatch;
+
+/** Demonstrates loading, animating, and rendering a skeleton.
+ * @see SkeletonAssetManagerTest */
+public class PhysicsTest extends ApplicationAdapter {
+	OrthographicCamera camera;
+	TwoColorPolygonBatch batch;
+	SkeletonRenderer renderer;
+	SkeletonRendererDebug debugRenderer;
+
+	TextureAtlas atlas;
+	Skeleton skeleton;
+	AnimationState state;
+
+	public void create () {
+		camera = new OrthographicCamera();
+		batch = new TwoColorPolygonBatch();
+		renderer = new SkeletonRenderer();
+		renderer.setPremultipliedAlpha(true); // PMA results in correct blending without outlines.
+		debugRenderer = new SkeletonRendererDebug();
+		debugRenderer.setBoundingBoxes(false);
+		debugRenderer.setRegionAttachments(false);
+
+		atlas = new TextureAtlas(Gdx.files.internal("sack/sack-pma.atlas"));
+		SkeletonBinary binary = new SkeletonBinary(atlas); // This loads skeleton JSON data, which is stateless.
+		binary.setScale(0.2f); // Load the skeleton at 60% the size it was in Spine.
+		SkeletonData skeletonData = binary.readSkeletonData(Gdx.files.internal("sack/sack-pro.skel"));
+
+		skeleton = new Skeleton(skeletonData); // Skeleton holds skeleton state (bone positions, slot attachments, etc).
+		skeleton.setPosition(250, 20);
+
+		AnimationStateData stateData = new AnimationStateData(skeletonData); // Defines mixing (crossfading) between animations.
+		state = new AnimationState(stateData); // Holds the animation state for a skeleton (current animation, time, etc).
+		state.setAnimation(0, "FOA", true);
+	}
+
+	public void render () {
+		float delta = Gdx.graphics.getDeltaTime();
+		state.update(delta); // Update the animation time.
+
+		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
+
+		state.apply(skeleton); // Poses skeleton using current animations. This sets the bones' local SRT.
+		skeleton.update(delta);
+		skeleton.updateWorldTransform(Physics.update); // Uses the bones' local SRT to compute their world SRT.
+
+		// Configure the camera, SpriteBatch, and SkeletonRendererDebug.
+		camera.update();
+		batch.getProjectionMatrix().set(camera.combined);
+		debugRenderer.getShapeRenderer().setProjectionMatrix(camera.combined);
+
+		batch.begin();
+		renderer.draw(batch, skeleton); // Draw the skeleton images.
+		batch.end();
+
+		debugRenderer.draw(skeleton); // Draw debug lines.
+	}
+
+	public void resize (int width, int height) {
+		camera.setToOrtho(false); // Update camera with new size.
+	}
+
+	public void dispose () {
+		atlas.dispose();
+	}
+
+	public static void main (String[] args) throws Exception {
+		new Lwjgl3Application(new PhysicsTest());
+	}
+}

+ 19 - 19
spine-monogame/spine-monogame-example/data/mix-and-match-pro.json

@@ -1,6 +1,6 @@
 {
 "skeleton": {
-	"hash": "gdqIJqjhGoQ",
+	"hash": "XD14iwt7TYc",
 	"spine": "4.2.09-beta",
 	"x": -240.58,
 	"y": -3.38,
@@ -1392,7 +1392,7 @@
 	},
 	{
 		"name": "accessories/backpack",
-		"bones": [ "backpack", "backpack-control" ],
+		"bones": [ "backpack-control", "backpack" ],
 		"attachments": {
 			"backpack": {
 				"backpack": {
@@ -1466,7 +1466,7 @@
 	},
 	{
 		"name": "accessories/bag",
-		"bones": [ "bag-back-front", "bag-strap-front", "bag-back-down", "bag-strap-back", "bag", "bag-flap", "bag-control" ],
+		"bones": [ "bag", "bag-flap", "bag-strap-front", "bag-control", "bag-strap-back", "bag-back-front", "bag-back-down" ],
 		"attachments": {
 			"bag-base": {
 				"bag-base": {
@@ -1527,7 +1527,7 @@
 	},
 	{
 		"name": "accessories/cape-blue",
-		"bones": [ "cape-blue-down-back", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-middle-back", "cape-back-rotator", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "cape-blue-down", "cape-blue-up", "cape-blue-control" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "cape-back-rotator", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "cape-blue-middle-back" ],
 		"attachments": {
 			"cape-back": {
 				"cape-back": {
@@ -1615,7 +1615,7 @@
 	},
 	{
 		"name": "accessories/cape-red",
-		"bones": [ "cape-red-back-outside", "cape-red-back-inside", "cape-red-front-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside" ],
+		"bones": [ "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside", "cape-red-front-inside", "cape-red-back-outside" ],
 		"attachments": {
 			"cape-red-down": {
 				"cape-red-down": {
@@ -1653,7 +1653,7 @@
 	},
 	{
 		"name": "accessories/hat-pointy-blue-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1679,7 +1679,7 @@
 	},
 	{
 		"name": "accessories/hat-red-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1730,8 +1730,8 @@
 	},
 	{
 		"name": "clothes/dress-blue",
-		"bones": [ "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "dress-control-leg-down-back", "dress-control-leg-down-front", "dress-control-leg-up-front", "dress-control-leg-up-back", "dress-control-foot-back", "dress-control-middle" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "dress-control-middle", "sleeve-control-back", "dress-control-foot-front", "dress-control-foot-back", "dress-control-leg-down-front", "dress-control-leg-down-back", "sleeve-control-front", "dress-control-leg-up-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -1819,7 +1819,7 @@
 	},
 	{
 		"name": "clothes/dress-green",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "skirt-control-front", "skirt-control", "skirt-control-back", "skirt-control-up" ],
+		"bones": [ "skirt-control", "skirt-control-back-down", "skirt-control-front", "skirt-control-middle", "skirt-control-back", "skirt-control-up", "skirt-control-front-down" ],
 		"attachments": {
 			"body-up": {
 				"body-up": { "name": "girl-spring-dress/body-up", "x": 59.16, "y": -14.67, "rotation": -94.33, "width": 128, "height": 131 }
@@ -1857,7 +1857,7 @@
 	},
 	{
 		"name": "clothes/hoodie-blue-and-scarf",
-		"bones": [ "zip-girl", "scarf-back" ],
+		"bones": [ "scarf-back", "zip-girl" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -2314,7 +2314,7 @@
 	},
 	{
 		"name": "full-skins/boy",
-		"bones": [ "hat-base", "backpack", "pompom-control", "hat-control", "backpack-control", "zip-boy", "hat" ],
+		"bones": [ "backpack-control", "hat-control", "hat-base", "hat", "pompom-control", "backpack", "zip-boy" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"arm-back": {
@@ -2739,8 +2739,8 @@
 	},
 	{
 		"name": "full-skins/girl",
-		"bones": [ "bag-strap-front", "bag-back-front", "hat-base", "hair-strand-front-1", "bag-back-down", "zip-girl", "bag-strap-back", "hair-strand-back-1", "pompom-control", "hair-holder-front", "hair-strand-front-2", "hat-control", "bag", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "bag-flap", "hair-strand-back-2", "hat", "scarf-back", "hair-strand-back-3", "bag-control" ],
-		"transform": [ "hat-control", "leg-up-back", "leg-down-back-up" ],
+		"bones": [ "bag-flap", "bag", "hat-control", "hair-holder-back", "bag-strap-front", "hair-strand-front-4", "scarf-back", "bag-control", "hair-strand-front-1", "hat-base", "hat", "hair-strand-back-2", "zip-girl", "bag-strap-back", "hair-holder-front", "hair-strand-back-3", "pompom-control", "bag-back-front", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1", "bag-back-down" ],
+		"transform": [ "hat-control", "leg-down-back-up", "leg-up-back" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -3237,8 +3237,8 @@
 	},
 	{
 		"name": "full-skins/girl-blue-cape",
-		"bones": [ "dress-control-middle", "cape-blue-down-back", "cape-blue-up-back", "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "cape-blue-up-front", "cape-blue-middle-back", "dress-control-leg-down-back", "dress-control-leg-down-front", "cape-back-rotator", "dress-control-leg-up-front", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "dress-control-leg-up-back", "cape-blue-down", "dress-control-foot-back", "cape-blue-control", "cape-blue-up" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "dress-control-middle", "sleeve-control-back", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "dress-control-foot-front", "cape-back-rotator", "dress-control-foot-back", "cape-blue-up-back", "dress-control-leg-down-front", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "sleeve-control-front", "dress-control-leg-down-back", "dress-control-leg-up-back", "cape-blue-middle-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -3731,8 +3731,8 @@
 	},
 	{
 		"name": "full-skins/girl-spring-dress",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "cape-red-back-outside", "cape-red-front-inside", "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "skirt-control-front", "skirt-control", "skirt-rotation-front", "cape-red-front-outside", "skirt-control-back", "skirt-control-up", "skirt-rotation-back" ],
-		"transform": [ "skirt-rotation-front", "skirt-rotation-back" ],
+		"bones": [ "skirt-rotation-front", "skirt-control", "skirt-control-back-down", "skirt-control-front", "cape-front-rotator", "cape-red-back-inside", "skirt-control-middle", "cape-back-rotator", "skirt-control-back", "skirt-control-up", "cape-red-front-outside", "skirt-rotation-back", "cape-red-back-outside", "cape-red-front-inside", "skirt-control-front-down" ],
+		"transform": [ "skirt-rotation-back", "skirt-rotation-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -4460,7 +4460,7 @@
 	},
 	{
 		"name": "hair/long-blue-with-scarf",
-		"bones": [ "hair-strand-front-1", "hair-strand-back-1", "hair-holder-front", "hair-strand-front-2", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "hair-strand-back-2", "scarf-back", "hair-strand-back-3" ],
+		"bones": [ "hair-holder-back", "hair-strand-front-4", "scarf-back", "hair-strand-front-1", "hair-strand-back-2", "hair-holder-front", "hair-strand-back-3", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1" ],
 		"attachments": {
 			"ear": {
 				"ear": { "name": "girl/ear", "x": 56.58, "y": 85.63, "rotation": -87.57, "width": 38, "height": 45 }

+ 19 - 19
spine-sfml/c/data/mix-and-match-pro.json

@@ -1,6 +1,6 @@
 {
 "skeleton": {
-	"hash": "gdqIJqjhGoQ",
+	"hash": "XD14iwt7TYc",
 	"spine": "4.2.09-beta",
 	"x": -240.58,
 	"y": -3.38,
@@ -1392,7 +1392,7 @@
 	},
 	{
 		"name": "accessories/backpack",
-		"bones": [ "backpack", "backpack-control" ],
+		"bones": [ "backpack-control", "backpack" ],
 		"attachments": {
 			"backpack": {
 				"backpack": {
@@ -1466,7 +1466,7 @@
 	},
 	{
 		"name": "accessories/bag",
-		"bones": [ "bag-back-front", "bag-strap-front", "bag-back-down", "bag-strap-back", "bag", "bag-flap", "bag-control" ],
+		"bones": [ "bag", "bag-flap", "bag-strap-front", "bag-control", "bag-strap-back", "bag-back-front", "bag-back-down" ],
 		"attachments": {
 			"bag-base": {
 				"bag-base": {
@@ -1527,7 +1527,7 @@
 	},
 	{
 		"name": "accessories/cape-blue",
-		"bones": [ "cape-blue-down-back", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-middle-back", "cape-back-rotator", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "cape-blue-down", "cape-blue-up", "cape-blue-control" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "cape-back-rotator", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "cape-blue-middle-back" ],
 		"attachments": {
 			"cape-back": {
 				"cape-back": {
@@ -1615,7 +1615,7 @@
 	},
 	{
 		"name": "accessories/cape-red",
-		"bones": [ "cape-red-back-outside", "cape-red-back-inside", "cape-red-front-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside" ],
+		"bones": [ "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside", "cape-red-front-inside", "cape-red-back-outside" ],
 		"attachments": {
 			"cape-red-down": {
 				"cape-red-down": {
@@ -1653,7 +1653,7 @@
 	},
 	{
 		"name": "accessories/hat-pointy-blue-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1679,7 +1679,7 @@
 	},
 	{
 		"name": "accessories/hat-red-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1730,8 +1730,8 @@
 	},
 	{
 		"name": "clothes/dress-blue",
-		"bones": [ "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "dress-control-leg-down-back", "dress-control-leg-down-front", "dress-control-leg-up-front", "dress-control-leg-up-back", "dress-control-foot-back", "dress-control-middle" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "dress-control-middle", "sleeve-control-back", "dress-control-foot-front", "dress-control-foot-back", "dress-control-leg-down-front", "dress-control-leg-down-back", "sleeve-control-front", "dress-control-leg-up-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -1819,7 +1819,7 @@
 	},
 	{
 		"name": "clothes/dress-green",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "skirt-control-front", "skirt-control", "skirt-control-back", "skirt-control-up" ],
+		"bones": [ "skirt-control", "skirt-control-back-down", "skirt-control-front", "skirt-control-middle", "skirt-control-back", "skirt-control-up", "skirt-control-front-down" ],
 		"attachments": {
 			"body-up": {
 				"body-up": { "name": "girl-spring-dress/body-up", "x": 59.16, "y": -14.67, "rotation": -94.33, "width": 128, "height": 131 }
@@ -1857,7 +1857,7 @@
 	},
 	{
 		"name": "clothes/hoodie-blue-and-scarf",
-		"bones": [ "zip-girl", "scarf-back" ],
+		"bones": [ "scarf-back", "zip-girl" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -2314,7 +2314,7 @@
 	},
 	{
 		"name": "full-skins/boy",
-		"bones": [ "hat-base", "backpack", "pompom-control", "hat-control", "backpack-control", "zip-boy", "hat" ],
+		"bones": [ "backpack-control", "hat-control", "hat-base", "hat", "pompom-control", "backpack", "zip-boy" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"arm-back": {
@@ -2739,8 +2739,8 @@
 	},
 	{
 		"name": "full-skins/girl",
-		"bones": [ "bag-strap-front", "bag-back-front", "hat-base", "hair-strand-front-1", "bag-back-down", "zip-girl", "bag-strap-back", "hair-strand-back-1", "pompom-control", "hair-holder-front", "hair-strand-front-2", "hat-control", "bag", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "bag-flap", "hair-strand-back-2", "hat", "scarf-back", "hair-strand-back-3", "bag-control" ],
-		"transform": [ "hat-control", "leg-up-back", "leg-down-back-up" ],
+		"bones": [ "bag-flap", "bag", "hat-control", "hair-holder-back", "bag-strap-front", "hair-strand-front-4", "scarf-back", "bag-control", "hair-strand-front-1", "hat-base", "hat", "hair-strand-back-2", "zip-girl", "bag-strap-back", "hair-holder-front", "hair-strand-back-3", "pompom-control", "bag-back-front", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1", "bag-back-down" ],
+		"transform": [ "hat-control", "leg-down-back-up", "leg-up-back" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -3237,8 +3237,8 @@
 	},
 	{
 		"name": "full-skins/girl-blue-cape",
-		"bones": [ "dress-control-middle", "cape-blue-down-back", "cape-blue-up-back", "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "cape-blue-up-front", "cape-blue-middle-back", "dress-control-leg-down-back", "dress-control-leg-down-front", "cape-back-rotator", "dress-control-leg-up-front", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "dress-control-leg-up-back", "cape-blue-down", "dress-control-foot-back", "cape-blue-control", "cape-blue-up" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "dress-control-middle", "sleeve-control-back", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "dress-control-foot-front", "cape-back-rotator", "dress-control-foot-back", "cape-blue-up-back", "dress-control-leg-down-front", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "sleeve-control-front", "dress-control-leg-down-back", "dress-control-leg-up-back", "cape-blue-middle-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -3731,8 +3731,8 @@
 	},
 	{
 		"name": "full-skins/girl-spring-dress",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "cape-red-back-outside", "cape-red-front-inside", "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "skirt-control-front", "skirt-control", "skirt-rotation-front", "cape-red-front-outside", "skirt-control-back", "skirt-control-up", "skirt-rotation-back" ],
-		"transform": [ "skirt-rotation-front", "skirt-rotation-back" ],
+		"bones": [ "skirt-rotation-front", "skirt-control", "skirt-control-back-down", "skirt-control-front", "cape-front-rotator", "cape-red-back-inside", "skirt-control-middle", "cape-back-rotator", "skirt-control-back", "skirt-control-up", "cape-red-front-outside", "skirt-rotation-back", "cape-red-back-outside", "cape-red-front-inside", "skirt-control-front-down" ],
+		"transform": [ "skirt-rotation-back", "skirt-rotation-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -4460,7 +4460,7 @@
 	},
 	{
 		"name": "hair/long-blue-with-scarf",
-		"bones": [ "hair-strand-front-1", "hair-strand-back-1", "hair-holder-front", "hair-strand-front-2", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "hair-strand-back-2", "scarf-back", "hair-strand-back-3" ],
+		"bones": [ "hair-holder-back", "hair-strand-front-4", "scarf-back", "hair-strand-front-1", "hair-strand-back-2", "hair-holder-front", "hair-strand-back-3", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1" ],
 		"attachments": {
 			"ear": {
 				"ear": { "name": "girl/ear", "x": 56.58, "y": 85.63, "rotation": -87.57, "width": 38, "height": 45 }

二進制
spine-sfml/c/data/mix-and-match-pro.skel


+ 19 - 19
spine-sfml/cpp/data/mix-and-match-pro.json

@@ -1,6 +1,6 @@
 {
 "skeleton": {
-	"hash": "gdqIJqjhGoQ",
+	"hash": "XD14iwt7TYc",
 	"spine": "4.2.09-beta",
 	"x": -240.58,
 	"y": -3.38,
@@ -1392,7 +1392,7 @@
 	},
 	{
 		"name": "accessories/backpack",
-		"bones": [ "backpack", "backpack-control" ],
+		"bones": [ "backpack-control", "backpack" ],
 		"attachments": {
 			"backpack": {
 				"backpack": {
@@ -1466,7 +1466,7 @@
 	},
 	{
 		"name": "accessories/bag",
-		"bones": [ "bag-back-front", "bag-strap-front", "bag-back-down", "bag-strap-back", "bag", "bag-flap", "bag-control" ],
+		"bones": [ "bag", "bag-flap", "bag-strap-front", "bag-control", "bag-strap-back", "bag-back-front", "bag-back-down" ],
 		"attachments": {
 			"bag-base": {
 				"bag-base": {
@@ -1527,7 +1527,7 @@
 	},
 	{
 		"name": "accessories/cape-blue",
-		"bones": [ "cape-blue-down-back", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-middle-back", "cape-back-rotator", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "cape-blue-down", "cape-blue-up", "cape-blue-control" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "cape-back-rotator", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "cape-blue-middle-back" ],
 		"attachments": {
 			"cape-back": {
 				"cape-back": {
@@ -1615,7 +1615,7 @@
 	},
 	{
 		"name": "accessories/cape-red",
-		"bones": [ "cape-red-back-outside", "cape-red-back-inside", "cape-red-front-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside" ],
+		"bones": [ "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside", "cape-red-front-inside", "cape-red-back-outside" ],
 		"attachments": {
 			"cape-red-down": {
 				"cape-red-down": {
@@ -1653,7 +1653,7 @@
 	},
 	{
 		"name": "accessories/hat-pointy-blue-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1679,7 +1679,7 @@
 	},
 	{
 		"name": "accessories/hat-red-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1730,8 +1730,8 @@
 	},
 	{
 		"name": "clothes/dress-blue",
-		"bones": [ "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "dress-control-leg-down-back", "dress-control-leg-down-front", "dress-control-leg-up-front", "dress-control-leg-up-back", "dress-control-foot-back", "dress-control-middle" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "dress-control-middle", "sleeve-control-back", "dress-control-foot-front", "dress-control-foot-back", "dress-control-leg-down-front", "dress-control-leg-down-back", "sleeve-control-front", "dress-control-leg-up-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -1819,7 +1819,7 @@
 	},
 	{
 		"name": "clothes/dress-green",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "skirt-control-front", "skirt-control", "skirt-control-back", "skirt-control-up" ],
+		"bones": [ "skirt-control", "skirt-control-back-down", "skirt-control-front", "skirt-control-middle", "skirt-control-back", "skirt-control-up", "skirt-control-front-down" ],
 		"attachments": {
 			"body-up": {
 				"body-up": { "name": "girl-spring-dress/body-up", "x": 59.16, "y": -14.67, "rotation": -94.33, "width": 128, "height": 131 }
@@ -1857,7 +1857,7 @@
 	},
 	{
 		"name": "clothes/hoodie-blue-and-scarf",
-		"bones": [ "zip-girl", "scarf-back" ],
+		"bones": [ "scarf-back", "zip-girl" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -2314,7 +2314,7 @@
 	},
 	{
 		"name": "full-skins/boy",
-		"bones": [ "hat-base", "backpack", "pompom-control", "hat-control", "backpack-control", "zip-boy", "hat" ],
+		"bones": [ "backpack-control", "hat-control", "hat-base", "hat", "pompom-control", "backpack", "zip-boy" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"arm-back": {
@@ -2739,8 +2739,8 @@
 	},
 	{
 		"name": "full-skins/girl",
-		"bones": [ "bag-strap-front", "bag-back-front", "hat-base", "hair-strand-front-1", "bag-back-down", "zip-girl", "bag-strap-back", "hair-strand-back-1", "pompom-control", "hair-holder-front", "hair-strand-front-2", "hat-control", "bag", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "bag-flap", "hair-strand-back-2", "hat", "scarf-back", "hair-strand-back-3", "bag-control" ],
-		"transform": [ "hat-control", "leg-up-back", "leg-down-back-up" ],
+		"bones": [ "bag-flap", "bag", "hat-control", "hair-holder-back", "bag-strap-front", "hair-strand-front-4", "scarf-back", "bag-control", "hair-strand-front-1", "hat-base", "hat", "hair-strand-back-2", "zip-girl", "bag-strap-back", "hair-holder-front", "hair-strand-back-3", "pompom-control", "bag-back-front", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1", "bag-back-down" ],
+		"transform": [ "hat-control", "leg-down-back-up", "leg-up-back" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -3237,8 +3237,8 @@
 	},
 	{
 		"name": "full-skins/girl-blue-cape",
-		"bones": [ "dress-control-middle", "cape-blue-down-back", "cape-blue-up-back", "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "cape-blue-up-front", "cape-blue-middle-back", "dress-control-leg-down-back", "dress-control-leg-down-front", "cape-back-rotator", "dress-control-leg-up-front", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "dress-control-leg-up-back", "cape-blue-down", "dress-control-foot-back", "cape-blue-control", "cape-blue-up" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "dress-control-middle", "sleeve-control-back", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "dress-control-foot-front", "cape-back-rotator", "dress-control-foot-back", "cape-blue-up-back", "dress-control-leg-down-front", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "sleeve-control-front", "dress-control-leg-down-back", "dress-control-leg-up-back", "cape-blue-middle-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -3731,8 +3731,8 @@
 	},
 	{
 		"name": "full-skins/girl-spring-dress",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "cape-red-back-outside", "cape-red-front-inside", "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "skirt-control-front", "skirt-control", "skirt-rotation-front", "cape-red-front-outside", "skirt-control-back", "skirt-control-up", "skirt-rotation-back" ],
-		"transform": [ "skirt-rotation-front", "skirt-rotation-back" ],
+		"bones": [ "skirt-rotation-front", "skirt-control", "skirt-control-back-down", "skirt-control-front", "cape-front-rotator", "cape-red-back-inside", "skirt-control-middle", "cape-back-rotator", "skirt-control-back", "skirt-control-up", "cape-red-front-outside", "skirt-rotation-back", "cape-red-back-outside", "cape-red-front-inside", "skirt-control-front-down" ],
+		"transform": [ "skirt-rotation-back", "skirt-rotation-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -4460,7 +4460,7 @@
 	},
 	{
 		"name": "hair/long-blue-with-scarf",
-		"bones": [ "hair-strand-front-1", "hair-strand-back-1", "hair-holder-front", "hair-strand-front-2", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "hair-strand-back-2", "scarf-back", "hair-strand-back-3" ],
+		"bones": [ "hair-holder-back", "hair-strand-front-4", "scarf-back", "hair-strand-front-1", "hair-strand-back-2", "hair-holder-front", "hair-strand-back-3", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1" ],
 		"attachments": {
 			"ear": {
 				"ear": { "name": "girl/ear", "x": 56.58, "y": 85.63, "rotation": -87.57, "width": 38, "height": 45 }

二進制
spine-sfml/cpp/data/mix-and-match-pro.skel


+ 1 - 0
spine-ts/index.html

@@ -117,6 +117,7 @@
         <li><a href="/spine-webgl/example">Example</a></li>
         <li><a href="/spine-webgl/example/barebones.html">Barebones</a></li>
         <li><a href="/spine-webgl/example/physics.html">Physics</a></li>
+        <li><a href="/spine-webgl/example/physics2.html">Physics II</a></li>
         <li>
           <a href="/spine-webgl/example/mix-and-match.html">Mix &amp; match</a>
         </li>

二進制
spine-ts/spine-phaser/example/assets/mix-and-match-pro.skel


二進制
spine-ts/spine-pixi/example/assets/mix-and-match-pro.skel


+ 170 - 0
spine-ts/spine-webgl/example/assets/celestial-circus-pma.atlas

@@ -0,0 +1,170 @@
+celestial-circus-pma.png
+	size: 1024, 1024
+	filter: Linear, Linear
+	pma: true
+	scale: 0.5
+arm-back-down
+	bounds: 944, 3, 48, 103
+arm-front-down
+	bounds: 241, 56, 45, 98
+bench
+	bounds: 2, 94, 237, 60
+body-bottom
+	bounds: 674, 8, 193, 156
+	rotate: 90
+collar
+	bounds: 822, 352, 59, 33
+ear
+	bounds: 997, 185, 25, 35
+eye-back-shadow
+	bounds: 1004, 978, 18, 12
+eye-front-shadow
+	bounds: 1004, 992, 30, 18
+	rotate: 90
+eye-reflex-back
+	bounds: 822, 341, 10, 9
+eye-reflex-front
+	bounds: 525, 699, 13, 9
+	rotate: 90
+eye-white-back
+	bounds: 956, 963, 16, 20
+eye-white-front
+	bounds: 551, 179, 28, 22
+eyelashes-down-back
+	bounds: 980, 325, 14, 7
+	rotate: 90
+eyelashes-down-front
+	bounds: 979, 1003, 19, 8
+	rotate: 90
+eyelashes-top-back
+	bounds: 997, 118, 23, 12
+	rotate: 90
+eyelashes-top-front
+	bounds: 956, 985, 37, 21
+	rotate: 90
+feathers-front
+	bounds: 2, 2, 90, 108
+	rotate: 90
+fringe-middle-back
+	bounds: 980, 222, 42, 65
+fringe-side-back
+	bounds: 944, 222, 34, 117
+fringe-side-front
+	bounds: 989, 289, 33, 116
+hair-back-1
+	bounds: 289, 2, 166, 383
+	rotate: 90
+hair-back-2
+	bounds: 887, 341, 100, 356
+hair-back-4
+	bounds: 832, 11, 110, 328
+hair-hat-shadow
+	bounds: 944, 108, 112, 51
+	rotate: 90
+hat-front
+	bounds: 112, 22, 121, 70
+leg-front
+	bounds: 554, 699, 323, 400
+	rotate: 90
+logo-brooch
+	bounds: 505, 170, 20, 31
+mouth
+	bounds: 279, 26, 28, 8
+	rotate: 90
+nose
+	bounds: 279, 15, 8, 9
+nose-shadow
+	bounds: 834, 341, 9, 10
+	rotate: 90
+nose.-highlight
+	bounds: 551, 171, 5, 6
+pupil-back
+	bounds: 505, 699, 13, 18
+	rotate: 90
+pupil-front
+	bounds: 112, 5, 15, 22
+	rotate: 90
+rope-back
+	bounds: 989, 407, 13, 615
+rope-front
+	bounds: 989, 407, 13, 615
+skirt
+	bounds: 2, 714, 550, 308
+sock-bow
+	bounds: 235, 14, 42, 40
+spine-logo-body
+	bounds: 997, 143, 16, 40
+star-big
+	bounds: 527, 171, 22, 30
+star-medium
+	bounds: 1015, 173, 7, 10
+star-small
+	bounds: 674, 2, 4, 6
+	rotate: 90
+underskirt
+	bounds: 2, 156, 556, 285
+	rotate: 90
+underskirt-back
+	bounds: 289, 170, 542, 214
+	rotate: 90
+wing-back
+	bounds: 505, 203, 182, 315
+	rotate: 90
+wing-front
+	bounds: 505, 387, 380, 310
+
+celestial-circus-pma_2.png
+	size: 1024, 1024
+	filter: Linear, Linear
+	pma: true
+	scale: 0.5
+arm-back-up
+	bounds: 490, 683, 104, 145
+	rotate: 90
+arm-front-up
+	bounds: 162, 23, 96, 145
+body-top
+	bounds: 2, 2, 158, 166
+chest
+	bounds: 744, 878, 130, 117
+cloud-back
+	bounds: 490, 789, 252, 206
+cloud-front
+	bounds: 2, 170, 406, 245
+	rotate: 90
+face
+	bounds: 876, 879, 116, 128
+	rotate: 90
+feathers-back
+	bounds: 266, 578, 57, 57
+fringe-middle-front
+	bounds: 260, 105, 75, 63
+glove-bottom-back
+	bounds: 325, 584, 64, 51
+glove-bottom-front
+	bounds: 391, 585, 59, 61
+	rotate: 90
+hair-back-3
+	bounds: 249, 241, 87, 335
+hair-back-5
+	bounds: 378, 646, 110, 349
+hair-back-6
+	bounds: 266, 637, 110, 358
+hand-back
+	bounds: 573, 622, 75, 59
+hand-front
+	bounds: 637, 712, 67, 75
+hat-back
+	bounds: 260, 23, 80, 56
+	rotate: 90
+head-back
+	bounds: 744, 768, 128, 108
+jabot
+	bounds: 249, 170, 88, 69
+leg-back
+	bounds: 2, 578, 262, 417
+neck
+	bounds: 338, 511, 49, 71
+rope-front-bottom
+	bounds: 490, 628, 53, 81
+	rotate: 90

二進制
spine-ts/spine-webgl/example/assets/celestial-circus-pma.png


二進制
spine-ts/spine-webgl/example/assets/celestial-circus-pma_2.png


File diff suppressed because it is too large
+ 875 - 0
spine-ts/spine-webgl/example/assets/celestial-circus-pro.json


二進制
spine-ts/spine-webgl/example/assets/celestial-circus-pro.skel


+ 168 - 0
spine-ts/spine-webgl/example/assets/celestial-circus.atlas

@@ -0,0 +1,168 @@
+celestial-circus.png
+	size: 1024, 1024
+	filter: Linear, Linear
+	scale: 0.5
+arm-back-down
+	bounds: 944, 3, 48, 103
+arm-front-down
+	bounds: 241, 56, 45, 98
+bench
+	bounds: 2, 94, 237, 60
+body-bottom
+	bounds: 674, 8, 193, 156
+	rotate: 90
+collar
+	bounds: 822, 352, 59, 33
+ear
+	bounds: 997, 185, 25, 35
+eye-back-shadow
+	bounds: 1004, 978, 18, 12
+eye-front-shadow
+	bounds: 1004, 992, 30, 18
+	rotate: 90
+eye-reflex-back
+	bounds: 822, 341, 10, 9
+eye-reflex-front
+	bounds: 525, 699, 13, 9
+	rotate: 90
+eye-white-back
+	bounds: 956, 963, 16, 20
+eye-white-front
+	bounds: 551, 179, 28, 22
+eyelashes-down-back
+	bounds: 980, 325, 14, 7
+	rotate: 90
+eyelashes-down-front
+	bounds: 979, 1003, 19, 8
+	rotate: 90
+eyelashes-top-back
+	bounds: 997, 118, 23, 12
+	rotate: 90
+eyelashes-top-front
+	bounds: 956, 985, 37, 21
+	rotate: 90
+feathers-front
+	bounds: 2, 2, 90, 108
+	rotate: 90
+fringe-middle-back
+	bounds: 980, 222, 42, 65
+fringe-side-back
+	bounds: 944, 222, 34, 117
+fringe-side-front
+	bounds: 989, 289, 33, 116
+hair-back-1
+	bounds: 289, 2, 166, 383
+	rotate: 90
+hair-back-2
+	bounds: 887, 341, 100, 356
+hair-back-4
+	bounds: 832, 11, 110, 328
+hair-hat-shadow
+	bounds: 944, 108, 112, 51
+	rotate: 90
+hat-front
+	bounds: 112, 22, 121, 70
+leg-front
+	bounds: 554, 699, 323, 400
+	rotate: 90
+logo-brooch
+	bounds: 505, 170, 20, 31
+mouth
+	bounds: 279, 26, 28, 8
+	rotate: 90
+nose
+	bounds: 279, 15, 8, 9
+nose-shadow
+	bounds: 834, 341, 9, 10
+	rotate: 90
+nose.-highlight
+	bounds: 551, 171, 5, 6
+pupil-back
+	bounds: 505, 699, 13, 18
+	rotate: 90
+pupil-front
+	bounds: 112, 5, 15, 22
+	rotate: 90
+rope-back
+	bounds: 989, 407, 13, 615
+rope-front
+	bounds: 989, 407, 13, 615
+skirt
+	bounds: 2, 714, 550, 308
+sock-bow
+	bounds: 235, 14, 42, 40
+spine-logo-body
+	bounds: 997, 143, 16, 40
+star-big
+	bounds: 527, 171, 22, 30
+star-medium
+	bounds: 1015, 173, 7, 10
+star-small
+	bounds: 674, 2, 4, 6
+	rotate: 90
+underskirt
+	bounds: 2, 156, 556, 285
+	rotate: 90
+underskirt-back
+	bounds: 289, 170, 542, 214
+	rotate: 90
+wing-back
+	bounds: 505, 203, 182, 315
+	rotate: 90
+wing-front
+	bounds: 505, 387, 380, 310
+
+celestial-circus_2.png
+	size: 1024, 1024
+	filter: Linear, Linear
+	scale: 0.5
+arm-back-up
+	bounds: 490, 683, 104, 145
+	rotate: 90
+arm-front-up
+	bounds: 162, 23, 96, 145
+body-top
+	bounds: 2, 2, 158, 166
+chest
+	bounds: 744, 878, 130, 117
+cloud-back
+	bounds: 490, 789, 252, 206
+cloud-front
+	bounds: 2, 170, 406, 245
+	rotate: 90
+face
+	bounds: 876, 879, 116, 128
+	rotate: 90
+feathers-back
+	bounds: 266, 578, 57, 57
+fringe-middle-front
+	bounds: 260, 105, 75, 63
+glove-bottom-back
+	bounds: 325, 584, 64, 51
+glove-bottom-front
+	bounds: 391, 585, 59, 61
+	rotate: 90
+hair-back-3
+	bounds: 249, 241, 87, 335
+hair-back-5
+	bounds: 378, 646, 110, 349
+hair-back-6
+	bounds: 266, 637, 110, 358
+hand-back
+	bounds: 573, 622, 75, 59
+hand-front
+	bounds: 637, 712, 67, 75
+hat-back
+	bounds: 260, 23, 80, 56
+	rotate: 90
+head-back
+	bounds: 744, 768, 128, 108
+jabot
+	bounds: 249, 170, 88, 69
+leg-back
+	bounds: 2, 578, 262, 417
+neck
+	bounds: 338, 511, 49, 71
+rope-front-bottom
+	bounds: 490, 628, 53, 81
+	rotate: 90

二進制
spine-ts/spine-webgl/example/assets/celestial-circus.png


二進制
spine-ts/spine-webgl/example/assets/celestial-circus_2.png


+ 19 - 19
spine-ts/spine-webgl/example/assets/mix-and-match-pro.json

@@ -1,6 +1,6 @@
 {
 "skeleton": {
-	"hash": "gdqIJqjhGoQ",
+	"hash": "XD14iwt7TYc",
 	"spine": "4.2.09-beta",
 	"x": -240.58,
 	"y": -3.38,
@@ -1392,7 +1392,7 @@
 	},
 	{
 		"name": "accessories/backpack",
-		"bones": [ "backpack", "backpack-control" ],
+		"bones": [ "backpack-control", "backpack" ],
 		"attachments": {
 			"backpack": {
 				"backpack": {
@@ -1466,7 +1466,7 @@
 	},
 	{
 		"name": "accessories/bag",
-		"bones": [ "bag-back-front", "bag-strap-front", "bag-back-down", "bag-strap-back", "bag", "bag-flap", "bag-control" ],
+		"bones": [ "bag", "bag-flap", "bag-strap-front", "bag-control", "bag-strap-back", "bag-back-front", "bag-back-down" ],
 		"attachments": {
 			"bag-base": {
 				"bag-base": {
@@ -1527,7 +1527,7 @@
 	},
 	{
 		"name": "accessories/cape-blue",
-		"bones": [ "cape-blue-down-back", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-middle-back", "cape-back-rotator", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "cape-blue-down", "cape-blue-up", "cape-blue-control" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "cape-back-rotator", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "cape-blue-middle-back" ],
 		"attachments": {
 			"cape-back": {
 				"cape-back": {
@@ -1615,7 +1615,7 @@
 	},
 	{
 		"name": "accessories/cape-red",
-		"bones": [ "cape-red-back-outside", "cape-red-back-inside", "cape-red-front-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside" ],
+		"bones": [ "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside", "cape-red-front-inside", "cape-red-back-outside" ],
 		"attachments": {
 			"cape-red-down": {
 				"cape-red-down": {
@@ -1653,7 +1653,7 @@
 	},
 	{
 		"name": "accessories/hat-pointy-blue-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1679,7 +1679,7 @@
 	},
 	{
 		"name": "accessories/hat-red-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1730,8 +1730,8 @@
 	},
 	{
 		"name": "clothes/dress-blue",
-		"bones": [ "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "dress-control-leg-down-back", "dress-control-leg-down-front", "dress-control-leg-up-front", "dress-control-leg-up-back", "dress-control-foot-back", "dress-control-middle" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "dress-control-middle", "sleeve-control-back", "dress-control-foot-front", "dress-control-foot-back", "dress-control-leg-down-front", "dress-control-leg-down-back", "sleeve-control-front", "dress-control-leg-up-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -1819,7 +1819,7 @@
 	},
 	{
 		"name": "clothes/dress-green",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "skirt-control-front", "skirt-control", "skirt-control-back", "skirt-control-up" ],
+		"bones": [ "skirt-control", "skirt-control-back-down", "skirt-control-front", "skirt-control-middle", "skirt-control-back", "skirt-control-up", "skirt-control-front-down" ],
 		"attachments": {
 			"body-up": {
 				"body-up": { "name": "girl-spring-dress/body-up", "x": 59.16, "y": -14.67, "rotation": -94.33, "width": 128, "height": 131 }
@@ -1857,7 +1857,7 @@
 	},
 	{
 		"name": "clothes/hoodie-blue-and-scarf",
-		"bones": [ "zip-girl", "scarf-back" ],
+		"bones": [ "scarf-back", "zip-girl" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -2314,7 +2314,7 @@
 	},
 	{
 		"name": "full-skins/boy",
-		"bones": [ "hat-base", "backpack", "pompom-control", "hat-control", "backpack-control", "zip-boy", "hat" ],
+		"bones": [ "backpack-control", "hat-control", "hat-base", "hat", "pompom-control", "backpack", "zip-boy" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"arm-back": {
@@ -2739,8 +2739,8 @@
 	},
 	{
 		"name": "full-skins/girl",
-		"bones": [ "bag-strap-front", "bag-back-front", "hat-base", "hair-strand-front-1", "bag-back-down", "zip-girl", "bag-strap-back", "hair-strand-back-1", "pompom-control", "hair-holder-front", "hair-strand-front-2", "hat-control", "bag", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "bag-flap", "hair-strand-back-2", "hat", "scarf-back", "hair-strand-back-3", "bag-control" ],
-		"transform": [ "hat-control", "leg-up-back", "leg-down-back-up" ],
+		"bones": [ "bag-flap", "bag", "hat-control", "hair-holder-back", "bag-strap-front", "hair-strand-front-4", "scarf-back", "bag-control", "hair-strand-front-1", "hat-base", "hat", "hair-strand-back-2", "zip-girl", "bag-strap-back", "hair-holder-front", "hair-strand-back-3", "pompom-control", "bag-back-front", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1", "bag-back-down" ],
+		"transform": [ "hat-control", "leg-down-back-up", "leg-up-back" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -3237,8 +3237,8 @@
 	},
 	{
 		"name": "full-skins/girl-blue-cape",
-		"bones": [ "dress-control-middle", "cape-blue-down-back", "cape-blue-up-back", "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "cape-blue-up-front", "cape-blue-middle-back", "dress-control-leg-down-back", "dress-control-leg-down-front", "cape-back-rotator", "dress-control-leg-up-front", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "dress-control-leg-up-back", "cape-blue-down", "dress-control-foot-back", "cape-blue-control", "cape-blue-up" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "dress-control-middle", "sleeve-control-back", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "dress-control-foot-front", "cape-back-rotator", "dress-control-foot-back", "cape-blue-up-back", "dress-control-leg-down-front", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "sleeve-control-front", "dress-control-leg-down-back", "dress-control-leg-up-back", "cape-blue-middle-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -3731,8 +3731,8 @@
 	},
 	{
 		"name": "full-skins/girl-spring-dress",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "cape-red-back-outside", "cape-red-front-inside", "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "skirt-control-front", "skirt-control", "skirt-rotation-front", "cape-red-front-outside", "skirt-control-back", "skirt-control-up", "skirt-rotation-back" ],
-		"transform": [ "skirt-rotation-front", "skirt-rotation-back" ],
+		"bones": [ "skirt-rotation-front", "skirt-control", "skirt-control-back-down", "skirt-control-front", "cape-front-rotator", "cape-red-back-inside", "skirt-control-middle", "cape-back-rotator", "skirt-control-back", "skirt-control-up", "cape-red-front-outside", "skirt-rotation-back", "cape-red-back-outside", "cape-red-front-inside", "skirt-control-front-down" ],
+		"transform": [ "skirt-rotation-back", "skirt-rotation-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -4460,7 +4460,7 @@
 	},
 	{
 		"name": "hair/long-blue-with-scarf",
-		"bones": [ "hair-strand-front-1", "hair-strand-back-1", "hair-holder-front", "hair-strand-front-2", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "hair-strand-back-2", "scarf-back", "hair-strand-back-3" ],
+		"bones": [ "hair-holder-back", "hair-strand-front-4", "scarf-back", "hair-strand-front-1", "hair-strand-back-2", "hair-holder-front", "hair-strand-back-3", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1" ],
 		"attachments": {
 			"ear": {
 				"ear": { "name": "girl/ear", "x": 56.58, "y": 85.63, "rotation": -87.57, "width": 38, "height": 45 }

二進制
spine-ts/spine-webgl/example/assets/mix-and-match-pro.skel


+ 83 - 0
spine-ts/spine-webgl/example/physics2.html

@@ -0,0 +1,83 @@
+<html>
+<script src="../dist/iife/spine-webgl.js"></script>
+<style>
+	* {
+		margin: 0;
+		padding: 0;
+	}
+</style>
+
+<body>
+	<canvas id="canvas" style="position: absolute; width: 100%; height: 100%;"></canvas>
+	<script>
+		class App {
+			constructor() {
+				this.skeleton = null;
+				this.animationState = null;
+			}
+
+			loadAssets(canvas) {
+				// Load the skeleton file.
+				canvas.assetManager.loadBinary("assets/celestial-circus-pro.skel");
+				// Load the atlas and its pages.
+				canvas.assetManager.loadTextureAtlas("assets/celestial-circus-pma.atlas");
+			}
+
+			initialize(canvas) {
+				let assetManager = canvas.assetManager;
+
+				// Create the texture atlas.
+				var atlas = assetManager.require("assets/celestial-circus-pma.atlas");
+
+				// Create a AtlasAttachmentLoader that resolves region, mesh, boundingbox and path attachments
+				var atlasLoader = new spine.AtlasAttachmentLoader(atlas);
+
+				// Create a SkeletonBinary instance for parsing the .skel file.
+				var skeletonBinary = new spine.SkeletonBinary(atlasLoader);
+
+				// Set the scale to apply during parsing, parse the file, and create a new skeleton.
+				skeletonBinary.scale = 0.5;
+				var skeletonData = skeletonBinary.readSkeletonData(assetManager.require("assets/celestial-circus-pro.skel"));
+				this.skeleton = new spine.Skeleton(skeletonData);
+
+				// Create an AnimationState, and set the "run" animation in looping mode.
+				var animationStateData = new spine.AnimationStateData(skeletonData);
+				this.animationState = new spine.AnimationState(animationStateData);
+				this.animationState.setAnimation(0, "swing", true);
+				this.animationState.setAnimation(1, "eyeblink-long", true);
+			}
+
+			update(canvas, delta) {
+				// Update the animation state using the delta time.
+				this.animationState.update(delta);
+				// Apply the animation state to the skeleton.
+				this.animationState.apply(this.skeleton);
+				// Let the skeleton update the transforms of its bones and apply physics
+				this.skeleton.update(delta);
+				this.skeleton.updateWorldTransform(spine.Physics.update);
+			}
+
+			render(canvas) {
+				let renderer = canvas.renderer;
+				// Resize the viewport to the full canvas.
+				renderer.resize(spine.ResizeMode.Expand);
+
+				// Clear the canvas with a light gray color.
+				canvas.clear(0.2, 0.2, 0.2, 1);
+
+				// Begin rendering.
+				renderer.begin();
+				// Draw the skeleton
+				renderer.drawSkeleton(this.skeleton, true);
+				// Complete rendering.
+				renderer.end();
+			}
+		}
+
+		new spine.SpineCanvas(document.getElementById("canvas"), {
+			app: new App()
+		})
+	</script>
+</body>
+
+</html>

二進制
spine-ue4/Content/GettingStarted/Assets/mix-and-match/mix-and-match-pro.skel


+ 2 - 2
spine-unity/Assets/Spine Examples/Spine Skeletons/Hero/hero-pro.json

@@ -1,6 +1,6 @@
 {
 "skeleton": {
-	"hash": "osXzZ/Pexog",
+	"hash": "Efa1/KeUOoY",
 	"spine": "4.2.09-beta",
 	"x": -85.7,
 	"y": -0.02,
@@ -309,7 +309,7 @@
 	},
 	{
 		"name": "weapon/morningstar",
-		"bones": [ "weapon-morningstar", "weapon-morningstar-physics2", "weapon-morningstar-physics3", "chain4", "chain1", "chain3", "weapon-morningstar-physics1", "weapon-morningstar-physics4", "chain5", "chain6", "chain7", "chain8", "chain2" ],
+		"bones": [ "weapon-morningstar", "weapon-morningstar-physics1", "weapon-morningstar-physics3", "chain2", "chain1", "chain8", "weapon-morningstar-physics2", "chain3", "chain4", "chain5", "weapon-morningstar-physics4", "chain6", "chain7" ],
 		"path": [ "weapon-morningstar" ]
 	},
 	{

+ 19 - 19
spine-unity/Assets/Spine Examples/Spine Skeletons/mix-and-match/mix-and-match-pro.json

@@ -1,6 +1,6 @@
 {
 "skeleton": {
-	"hash": "gdqIJqjhGoQ",
+	"hash": "XD14iwt7TYc",
 	"spine": "4.2.09-beta",
 	"x": -240.58,
 	"y": -3.38,
@@ -1392,7 +1392,7 @@
 	},
 	{
 		"name": "accessories/backpack",
-		"bones": [ "backpack", "backpack-control" ],
+		"bones": [ "backpack-control", "backpack" ],
 		"attachments": {
 			"backpack": {
 				"backpack": {
@@ -1466,7 +1466,7 @@
 	},
 	{
 		"name": "accessories/bag",
-		"bones": [ "bag-back-front", "bag-strap-front", "bag-back-down", "bag-strap-back", "bag", "bag-flap", "bag-control" ],
+		"bones": [ "bag", "bag-flap", "bag-strap-front", "bag-control", "bag-strap-back", "bag-back-front", "bag-back-down" ],
 		"attachments": {
 			"bag-base": {
 				"bag-base": {
@@ -1527,7 +1527,7 @@
 	},
 	{
 		"name": "accessories/cape-blue",
-		"bones": [ "cape-blue-down-back", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-middle-back", "cape-back-rotator", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "cape-blue-down", "cape-blue-up", "cape-blue-control" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "cape-back-rotator", "cape-blue-up-back", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "cape-blue-middle-back" ],
 		"attachments": {
 			"cape-back": {
 				"cape-back": {
@@ -1615,7 +1615,7 @@
 	},
 	{
 		"name": "accessories/cape-red",
-		"bones": [ "cape-red-back-outside", "cape-red-back-inside", "cape-red-front-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside" ],
+		"bones": [ "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "cape-red-front-outside", "cape-red-front-inside", "cape-red-back-outside" ],
 		"attachments": {
 			"cape-red-down": {
 				"cape-red-down": {
@@ -1653,7 +1653,7 @@
 	},
 	{
 		"name": "accessories/hat-pointy-blue-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1679,7 +1679,7 @@
 	},
 	{
 		"name": "accessories/hat-red-yellow",
-		"bones": [ "hat-base", "pompom-control", "hat-control", "hat" ],
+		"bones": [ "hat-control", "hat-base", "hat", "pompom-control" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"hat": {
@@ -1730,8 +1730,8 @@
 	},
 	{
 		"name": "clothes/dress-blue",
-		"bones": [ "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "dress-control-leg-down-back", "dress-control-leg-down-front", "dress-control-leg-up-front", "dress-control-leg-up-back", "dress-control-foot-back", "dress-control-middle" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "dress-control-middle", "sleeve-control-back", "dress-control-foot-front", "dress-control-foot-back", "dress-control-leg-down-front", "dress-control-leg-down-back", "sleeve-control-front", "dress-control-leg-up-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -1819,7 +1819,7 @@
 	},
 	{
 		"name": "clothes/dress-green",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "skirt-control-front", "skirt-control", "skirt-control-back", "skirt-control-up" ],
+		"bones": [ "skirt-control", "skirt-control-back-down", "skirt-control-front", "skirt-control-middle", "skirt-control-back", "skirt-control-up", "skirt-control-front-down" ],
 		"attachments": {
 			"body-up": {
 				"body-up": { "name": "girl-spring-dress/body-up", "x": 59.16, "y": -14.67, "rotation": -94.33, "width": 128, "height": 131 }
@@ -1857,7 +1857,7 @@
 	},
 	{
 		"name": "clothes/hoodie-blue-and-scarf",
-		"bones": [ "zip-girl", "scarf-back" ],
+		"bones": [ "scarf-back", "zip-girl" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -2314,7 +2314,7 @@
 	},
 	{
 		"name": "full-skins/boy",
-		"bones": [ "hat-base", "backpack", "pompom-control", "hat-control", "backpack-control", "zip-boy", "hat" ],
+		"bones": [ "backpack-control", "hat-control", "hat-base", "hat", "pompom-control", "backpack", "zip-boy" ],
 		"transform": [ "hat-control" ],
 		"attachments": {
 			"arm-back": {
@@ -2739,8 +2739,8 @@
 	},
 	{
 		"name": "full-skins/girl",
-		"bones": [ "bag-strap-front", "bag-back-front", "hat-base", "hair-strand-front-1", "bag-back-down", "zip-girl", "bag-strap-back", "hair-strand-back-1", "pompom-control", "hair-holder-front", "hair-strand-front-2", "hat-control", "bag", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "bag-flap", "hair-strand-back-2", "hat", "scarf-back", "hair-strand-back-3", "bag-control" ],
-		"transform": [ "hat-control", "leg-up-back", "leg-down-back-up" ],
+		"bones": [ "bag-flap", "bag", "hat-control", "hair-holder-back", "bag-strap-front", "hair-strand-front-4", "scarf-back", "bag-control", "hair-strand-front-1", "hat-base", "hat", "hair-strand-back-2", "zip-girl", "bag-strap-back", "hair-holder-front", "hair-strand-back-3", "pompom-control", "bag-back-front", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1", "bag-back-down" ],
+		"transform": [ "hat-control", "leg-down-back-up", "leg-up-back" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 }
@@ -3237,8 +3237,8 @@
 	},
 	{
 		"name": "full-skins/girl-blue-cape",
-		"bones": [ "dress-control-middle", "cape-blue-down-back", "cape-blue-up-back", "sleeve-control-back", "sleeve-control-front", "dress-control-foot-front", "cape-blue-up-front", "cape-blue-middle-back", "dress-control-leg-down-back", "dress-control-leg-down-front", "cape-back-rotator", "dress-control-leg-up-front", "cape-front-rotator", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-front", "dress-control-leg-up-back", "cape-blue-down", "dress-control-foot-back", "cape-blue-control", "cape-blue-up" ],
-		"transform": [ "leg-down-front", "leg-up", "leg-down-down", "leg-up-back", "leg-down-back", "leg-down-back-up" ],
+		"bones": [ "cape-blue-control", "cape-blue-middle-front", "dress-control-middle", "sleeve-control-back", "cape-blue-up", "cape-front-rotator", "cape-blue-down-front", "dress-control-foot-front", "cape-back-rotator", "dress-control-foot-back", "cape-blue-up-back", "dress-control-leg-down-front", "cape-blue-up-front", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-middle", "sleeve-control-front", "dress-control-leg-down-back", "dress-control-leg-up-back", "cape-blue-middle-back", "dress-control-leg-up-front" ],
+		"transform": [ "leg-down-back-up", "leg-up-back", "leg-down-back", "leg-up", "leg-down-down", "leg-down-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -3731,8 +3731,8 @@
 	},
 	{
 		"name": "full-skins/girl-spring-dress",
-		"bones": [ "skirt-control-back-down", "skirt-control-front-down", "skirt-control-middle", "cape-red-back-outside", "cape-red-front-inside", "cape-red-back-inside", "cape-back-rotator", "cape-front-rotator", "skirt-control-front", "skirt-control", "skirt-rotation-front", "cape-red-front-outside", "skirt-control-back", "skirt-control-up", "skirt-rotation-back" ],
-		"transform": [ "skirt-rotation-front", "skirt-rotation-back" ],
+		"bones": [ "skirt-rotation-front", "skirt-control", "skirt-control-back-down", "skirt-control-front", "cape-front-rotator", "cape-red-back-inside", "skirt-control-middle", "cape-back-rotator", "skirt-control-back", "skirt-control-up", "cape-red-front-outside", "skirt-rotation-back", "cape-red-back-outside", "cape-red-front-inside", "skirt-control-front-down" ],
+		"transform": [ "skirt-rotation-back", "skirt-rotation-front" ],
 		"attachments": {
 			"arm-back": {
 				"arm-back": {
@@ -4460,7 +4460,7 @@
 	},
 	{
 		"name": "hair/long-blue-with-scarf",
-		"bones": [ "hair-strand-front-1", "hair-strand-back-1", "hair-holder-front", "hair-strand-front-2", "hair-holder-back", "hair-strand-front-3", "hair-strand-front-4", "hair-strand-back-2", "scarf-back", "hair-strand-back-3" ],
+		"bones": [ "hair-holder-back", "hair-strand-front-4", "scarf-back", "hair-strand-front-1", "hair-strand-back-2", "hair-holder-front", "hair-strand-back-3", "hair-strand-front-3", "hair-strand-front-2", "hair-strand-back-1" ],
 		"attachments": {
 			"ear": {
 				"ear": { "name": "girl/ear", "x": 56.58, "y": 85.63, "rotation": -87.57, "width": 38, "height": 45 }

Some files were not shown because too many files changed in this diff