export.sh 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. #!/bin/sh
  2. # Usage: export.sh <version> <one or more parameters to pass to Spine, eg: -f --trace>
  3. set -e
  4. SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
  5. cd "$SCRIPT_DIR"
  6. SPINE_EXE="C:/Program Files/Spine/Spine.com"
  7. if [ ! -f "$SPINE_EXE" ]; then
  8. SPINE_EXE="/mnt/c/Program Files/Spine/Spine.com"
  9. fi
  10. if [ ! -f "$SPINE_EXE" ]; then
  11. SPINE_EXE="/Applications/Spine.app/Contents/MacOS/Spine"
  12. fi
  13. echo "Spine exe: $SPINE_EXE"
  14. if [ "$#" -eq 0 ]; then
  15. echo "Enter the Spine editor version to use for the export (eg 3.8.99):"
  16. read version
  17. else
  18. version=${1%/}
  19. fi
  20. echo "Cleaning export directories..."
  21. rm -rf ../alien/export/*
  22. rm -rf ../coin/export/*
  23. rm -rf ../dragon/export/*
  24. rm -rf ../goblins/export/*
  25. rm -rf ../hero/export/*
  26. rm -rf ../powerup/export/*
  27. rm -rf ../speedy/export/*
  28. rm -rf ../spineboy/export/*
  29. rm -rf ../spinosaurus/export/*
  30. rm -rf ../stretchyman/export/*
  31. rm -rf ../raptor/export/*
  32. rm -rf ../tank/export/*
  33. rm -rf ../vine/export/*
  34. rm -rf ../owl/export/*
  35. rm -rf ../mix-and-match/export/*
  36. echo ""
  37. echo "Exporting assets..."
  38. "$SPINE_EXE" \
  39. -u $version ${@:2} --clean-examples \
  40. -i ../alien/alien-ess.spine -o ../alien/export -e json.json \
  41. -i ../alien/alien-ess.spine -o ../alien/export -e binary.json \
  42. -i ../alien/alien-pro.spine -o ../alien/export -e json.json \
  43. -i ../alien/alien-pro.spine -o ../alien/export -e binary.json \
  44. -i ../alien/images -o ../alien/export -n alien -p atlas-0.5.json \
  45. -i ../alien/images -o ../alien/export -n alien-pma -p atlas-0.5-pma.json \
  46. \
  47. -i ../coin/coin-pro.spine -o ../coin/export -e json.json \
  48. -i ../coin/coin-pro.spine -o ../coin/export -e binary.json \
  49. -i ../coin/images -o ../coin/export -n coin -p atlas-1.0.json \
  50. -i ../coin/images -o ../coin/export -n coin-pma -p atlas-1.0-pma.json \
  51. \
  52. -i ../dragon/dragon-ess.spine -o ../dragon/export -e json.json \
  53. -i ../dragon/dragon-ess.spine -o ../dragon/export -e binary.json \
  54. -i ../dragon/images -o ../dragon/export -n dragon -p atlas-1.0.json \
  55. -i ../dragon/images -o ../dragon/export -n dragon-pma -p atlas-1.0-pma.json \
  56. \
  57. -i ../goblins/goblins-ess.spine -o ../goblins/export -e json.json \
  58. -i ../goblins/goblins-ess.spine -o ../goblins/export -e binary.json \
  59. -i ../goblins/goblins-pro.spine -o ../goblins/export -e json.json \
  60. -i ../goblins/goblins-pro.spine -o ../goblins/export -e binary.json \
  61. -i ../goblins/images -o ../goblins/export -n goblins -p atlas-1.0.json \
  62. -i ../goblins/images -o ../goblins/export -n goblins-pma -p atlas-1.0-pma.json \
  63. \
  64. -i ../hero/hero-ess.spine -o ../hero/export -e json.json \
  65. -i ../hero/hero-ess.spine -o ../hero/export -e binary.json \
  66. -i ../hero/hero-pro.spine -o ../hero/export -e json.json \
  67. -i ../hero/hero-pro.spine -o ../hero/export -e binary.json \
  68. -i ../hero/images -o ../hero/export -n hero -p atlas-1.0.json \
  69. -i ../hero/images -o ../hero/export -n hero-pma -p atlas-1.0-pma.json \
  70. \
  71. -i ../mix-and-match/mix-and-match-pro.spine -o ../mix-and-match/export -e json.json \
  72. -i ../mix-and-match/mix-and-match-pro.spine -o ../mix-and-match/export -e binary.json \
  73. -i ../mix-and-match/images -o ../mix-and-match/export -n mix-and-match -p atlas-0.5.json \
  74. -i ../mix-and-match/images -o ../mix-and-match/export -n mix-and-match-pma -p atlas-0.5-pma.json \
  75. \
  76. -i ../powerup/powerup-ess.spine -o ../powerup/export -e json.json \
  77. -i ../powerup/powerup-ess.spine -o ../powerup/export -e binary.json \
  78. -i ../powerup/powerup-pro.spine -o ../powerup/export -e json.json \
  79. -i ../powerup/powerup-pro.spine -o ../powerup/export -e binary.json \
  80. -i ../powerup/images -o ../powerup/export -n powerup -p atlas-1.0.json \
  81. -i ../powerup/images -o ../powerup/export -n powerup-pma -p atlas-1.0-pma.json \
  82. \
  83. -i ../raptor/raptor-pro.spine -o ../raptor/export -e json.json \
  84. -i ../raptor/raptor-pro.spine -o ../raptor/export -e binary.json \
  85. -i ../raptor/images -o ../raptor/export -n raptor -p atlas-0.5.json \
  86. -i ../raptor/images -o ../raptor/export -n raptor-pma -p atlas-0.5-pma.json \
  87. \
  88. -i ../speedy/speedy-ess.spine -o ../speedy/export -e json.json \
  89. -i ../speedy/speedy-ess.spine -o ../speedy/export -e binary.json \
  90. -i ../speedy/images -o ../speedy/export -n speedy -p atlas-1.0.json \
  91. -i ../speedy/images -o ../speedy/export -n speedy-pma -p atlas-1.0-pma.json \
  92. \
  93. -i ../spineboy/spineboy-ess.spine -o ../spineboy/export -e json.json \
  94. -i ../spineboy/spineboy-ess.spine -o ../spineboy/export -e binary.json \
  95. -i ../spineboy/spineboy-pro.spine -o ../spineboy/export -e json.json \
  96. -i ../spineboy/spineboy-pro.spine -o ../spineboy/export -e binary.json \
  97. -i ../spineboy/images -o ../spineboy/export -n spineboy -p atlas-0.5.json \
  98. -i ../spineboy/images -o ../spineboy/export -n spineboy-pma -p atlas-0.5-pma.json \
  99. \
  100. -i ../spinosaurus/spinosaurus-ess.spine -o ../spinosaurus/export -e json.json \
  101. -i ../spinosaurus/spinosaurus-ess.spine -o ../spinosaurus/export -e binary.json \
  102. \
  103. -i ../stretchyman/stretchyman-pro.spine -o ../stretchyman/export -e json.json \
  104. -i ../stretchyman/stretchyman-pro.spine -o ../stretchyman/export -e binary.json \
  105. -i ../stretchyman/images -o ../stretchyman/export -n stretchyman -p atlas-1.0.json \
  106. -i ../stretchyman/images -o ../stretchyman/export -n stretchyman-pma -p atlas-1.0-pma.json \
  107. \
  108. -i ../tank/tank-pro.spine -o ../tank/export -e json.json \
  109. -i ../tank/tank-pro.spine -o ../tank/export -e binary.json \
  110. -i ../tank/images -o ../tank/export -n tank -p atlas-0.5.json \
  111. -i ../tank/images -o ../tank/export -n tank-pma -p atlas-0.5-pma.json \
  112. \
  113. -i ../vine/vine-pro.spine -o ../vine/export -e json.json \
  114. -i ../vine/vine-pro.spine -o ../vine/export -e binary.json \
  115. -i ../vine/images -o ../vine/export -n vine -p atlas-1.0.json \
  116. -i ../vine/images -o ../vine/export -n vine-pma -p atlas-1.0-pma.json \
  117. \
  118. -i ../owl/owl-pro.spine -o ../owl/export -e json.json \
  119. -i ../owl/owl-pro.spine -o ../owl/export -e binary.json \
  120. -i ../owl/images -o ../owl/export -n owl -p atlas-0.5.json \
  121. -i ../owl/images -o ../owl/export -n owl-pma -p atlas-0.5-pma.json \
  122. \
  123. -i ../windmill/windmill-ess.spine -o ../windmill/export -e json.json \
  124. -i ../windmill/windmill-ess.spine -o ../windmill/export -e binary.json \
  125. -i ../windmill/images -o ../windmill/export -n windmill -p atlas-0.5.json \
  126. -i ../windmill/images -o ../windmill/export -n windmill-pma -p atlas-0.5-pma.json
  127. # Export Unity Assets
  128. UNITY_BASE_DIR=../spine-unity
  129. if [ -d "$UNITY_BASE_DIR" ]; then
  130. echo "Cleaning Unity export directories..."
  131. rm -rf $UNITY_BASE_DIR/eyes/export/*
  132. rm -rf $UNITY_BASE_DIR/footsoldier/export/*
  133. rm -rf $UNITY_BASE_DIR/gauge/export/*
  134. rm -rf $UNITY_BASE_DIR/raggedyspineboy/export/*
  135. rm -rf $UNITY_BASE_DIR/raptor/export/*
  136. rm -rf $UNITY_BASE_DIR/spineboy-pro/export/*
  137. rm -rf $UNITY_BASE_DIR/spineboy-unity/export/*
  138. rm -rf $UNITY_BASE_DIR/spineunitygirl/export/*
  139. rm -rf $UNITY_BASE_DIR/whirlyblendmodes/export/*
  140. echo ""
  141. echo "Exporting Unity assets..."
  142. "$SPINE_EXE" \
  143. -u $version \
  144. -i $UNITY_BASE_DIR/eyes/eyes.spine -o $UNITY_BASE_DIR/eyes/export -e json.json \
  145. -i $UNITY_BASE_DIR/eyes/eyes.spine -o $UNITY_BASE_DIR/eyes/export -e binary.json \
  146. -i $UNITY_BASE_DIR/eyes/images -o $UNITY_BASE_DIR/eyes/export -n eyes -p atlas-1.0.json \
  147. -i $UNITY_BASE_DIR/eyes/images -o $UNITY_BASE_DIR/eyes/export -n eyes-pma -p atlas-1.0-pma.json \
  148. \
  149. -i $UNITY_BASE_DIR/footsoldier/footsoldier.spine -o $UNITY_BASE_DIR/footsoldier/export -e json.json \
  150. -i $UNITY_BASE_DIR/footsoldier/footsoldier.spine -o $UNITY_BASE_DIR/footsoldier/export -e binary.json \
  151. -i $UNITY_BASE_DIR/footsoldier/images -o $UNITY_BASE_DIR/footsoldier/export -n footsoldier -p atlas-1.0.json \
  152. -i $UNITY_BASE_DIR/footsoldier/images -o $UNITY_BASE_DIR/footsoldier/export -n footsoldier-pma -p atlas-1.0-pma.json \
  153. \
  154. -i $UNITY_BASE_DIR/gauge/gauge.spine -o $UNITY_BASE_DIR/gauge/export -e json.json \
  155. -i $UNITY_BASE_DIR/gauge/gauge.spine -o $UNITY_BASE_DIR/gauge/export -e binary.json \
  156. -i $UNITY_BASE_DIR/gauge/images -o $UNITY_BASE_DIR/gauge/export -n gauge -p atlas-1.0.json \
  157. -i $UNITY_BASE_DIR/gauge/images -o $UNITY_BASE_DIR/gauge/export -n gauge-pma -p atlas-1.0-pma.json \
  158. \
  159. -i $UNITY_BASE_DIR/raggedyspineboy/raggedyspineboy.spine -o $UNITY_BASE_DIR/raggedyspineboy/export -e json.json \
  160. -i $UNITY_BASE_DIR/raggedyspineboy/raggedyspineboy.spine -o $UNITY_BASE_DIR/raggedyspineboy/export -e binary.json \
  161. -i $UNITY_BASE_DIR/raggedyspineboy/images -o $UNITY_BASE_DIR/raggedyspineboy/export -n raggedyspineboy -p atlas-1.0.json \
  162. -i $UNITY_BASE_DIR/raggedyspineboy/images -o $UNITY_BASE_DIR/raggedyspineboy/export -n raggedyspineboy-pma -p atlas-1.0-pma.json \
  163. \
  164. -i $UNITY_BASE_DIR/raptor/raptor.spine -o $UNITY_BASE_DIR/raptor/export -e json.json \
  165. -i $UNITY_BASE_DIR/raptor/raptor.spine -o $UNITY_BASE_DIR/raptor/export -e binary.json \
  166. -i $UNITY_BASE_DIR/raptor/images -o $UNITY_BASE_DIR/raptor/export -n raptor -p atlas-1.0-square.json \
  167. -i $UNITY_BASE_DIR/raptor/images -o $UNITY_BASE_DIR/raptor/export -n raptor-pma -p atlas-1.0-square-pma.json \
  168. \
  169. -i $UNITY_BASE_DIR/spineboy-pro/spineboy-pro.spine -o $UNITY_BASE_DIR/spineboy-pro/export -e json.json \
  170. -i $UNITY_BASE_DIR/spineboy-pro/spineboy-pro.spine -o $UNITY_BASE_DIR/spineboy-pro/export -e binary.json \
  171. -i $UNITY_BASE_DIR/spineboy-pro/images -o $UNITY_BASE_DIR/spineboy-pro/export -n spineboy -p atlas-1.0-2048.json \
  172. -i $UNITY_BASE_DIR/spineboy-pro/images -o $UNITY_BASE_DIR/spineboy-pro/export -n spineboy-pma -p atlas-1.0-2048-pma.json \
  173. \
  174. -i $UNITY_BASE_DIR/spineboy-unity/spineboy-unity.spine -o $UNITY_BASE_DIR/spineboy-unity/export -e json.json \
  175. -i $UNITY_BASE_DIR/spineboy-unity/spineboy-unity.spine -o $UNITY_BASE_DIR/spineboy-unity/export -e binary.json \
  176. -i $UNITY_BASE_DIR/spineboy-unity/images -o $UNITY_BASE_DIR/spineboy-unity/export -n spineboy -p atlas-1.0-square.json \
  177. -i $UNITY_BASE_DIR/spineboy-unity/images -o $UNITY_BASE_DIR/spineboy-unity/export -n spineboy-pma -p atlas-1.0-square-pma.json \
  178. \
  179. -i $UNITY_BASE_DIR/spineunitygirl/doi.spine -o $UNITY_BASE_DIR/spineunitygirl/export -e json.json \
  180. -i $UNITY_BASE_DIR/spineunitygirl/doi.spine -o $UNITY_BASE_DIR/spineunitygirl/export -e binary.json \
  181. -i $UNITY_BASE_DIR/spineunitygirl/images -o $UNITY_BASE_DIR/spineunitygirl/export -n doi -p atlas-1.0.json \
  182. -i $UNITY_BASE_DIR/spineunitygirl/images -o $UNITY_BASE_DIR/spineunitygirl/export -n doi-pma -p atlas-1.0-pma.json \
  183. \
  184. -i $UNITY_BASE_DIR/whirlyblendmodes/whirlyblendmodes.spine -o $UNITY_BASE_DIR/whirlyblendmodes/export -e json.json \
  185. -i $UNITY_BASE_DIR/whirlyblendmodes/whirlyblendmodes.spine -o $UNITY_BASE_DIR/whirlyblendmodes/export -e binary.json \
  186. -i $UNITY_BASE_DIR/whirlyblendmodes/images -o $UNITY_BASE_DIR/whirlyblendmodes/export -n whirlyblendmodes -p atlas-1.0.json \
  187. -i $UNITY_BASE_DIR/whirlyblendmodes/images -o $UNITY_BASE_DIR/whirlyblendmodes/export -n whirlyblendmodes-pma -p atlas-1.0-pma.json
  188. fi
  189. echo ""
  190. echo "Optimizing PNGs..."
  191. cd ..
  192. find . -iname '*.png' -exec oxipng -q --nx -i 0 -o 4 --strip all {} +
  193. echo ""
  194. echo "Done!"