Эх сурвалжийг харах

[ue4] Better version check, fixes #2045

badlogic 3 жил өмнө
parent
commit
5adf03afcf

BIN
spine-ue4/Content/GettingStarted/Assets/Raptor/Textures/raptor.uasset


+ 4 - 4
spine-ue4/Content/GettingStarted/Assets/Raptor/raptor.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
-	"hash": "HgNSAZhNqi0",
-	"spine": "4.0.61",
+	"hash": "AAVlM3uJh3s",
+	"spine": "4.1.22-beta",
 	"x": -809.16,
 	"y": -73.54,
 	"width": 1287.65,
@@ -882,7 +882,7 @@
 			},
 			"gun": {
 				"attachment": [
-					{ "time": 0.2333, "name": null }
+					{ "time": 0.2333 }
 				]
 			}
 		},
@@ -1009,7 +1009,7 @@
 			},
 			"gun": {
 				"attachment": [
-					{ "name": null },
+					{},
 					{ "time": 0.3, "name": "gun-nohand" }
 				]
 			}

BIN
spine-ue4/Content/GettingStarted/Assets/Raptor/raptor.uasset


BIN
spine-ue4/Content/GettingStarted/Assets/Spineboy/Textures/spineboy.uasset


+ 78 - 70
spine-ue4/Content/GettingStarted/Assets/Spineboy/spineboy.json

@@ -1,7 +1,7 @@
 {
 "skeleton": {
-	"hash": "IQgkYFQG8ng",
-	"spine": "4.0.61",
+	"hash": "itfFESDjM1c",
+	"spine": "4.1.22-beta",
 	"x": -188.63,
 	"y": -7.94,
 	"width": 418.45,
@@ -2427,19 +2427,19 @@
 			"side-glow1": {
 				"attachment": [
 					{ "name": "hoverglow-small" },
-					{ "time": 0.9667, "name": null }
+					{ "time": 0.9667 }
 				]
 			},
 			"side-glow2": {
 				"attachment": [
 					{ "time": 0.0667, "name": "hoverglow-small" },
-					{ "time": 1, "name": null }
+					{ "time": 1 }
 				]
 			},
 			"side-glow3": {
 				"attachment": [
 					{ "name": "hoverglow-small" },
-					{ "time": 0.9667, "name": null }
+					{ "time": 0.9667 }
 				]
 			}
 		},
@@ -3479,60 +3479,68 @@
 				{ "mixX": 0, "mixScaleX": 0, "mixShearY": 0 }
 			]
 		},
-		"deform": {
+		"attachments": {
 			"default": {
 				"front-foot": {
-					"front-foot": [
-						{
-							"offset": 26,
-							"vertices": [ -0.02832, -5.37024, -0.02832, -5.37024, 3.8188, -3.7757, -0.02832, -5.37024, -3.82159, 3.77847 ]
-						}
-					]
+					"front-foot": {
+						"deform": [
+							{
+								"offset": 26,
+								"vertices": [ -0.02832, -5.37024, -0.02832, -5.37024, 3.8188, -3.7757, -0.02832, -5.37024, -3.82159, 3.77847 ]
+							}
+						]
+					}
 				},
 				"front-shin": {
-					"front-shin": [
-						{
-							"offset": 14,
-							"vertices": [ 0.5298, -1.12677, -0.85507, -4.20587, -11.35158, -10.19225, -10.79865, -8.43765, -6.06447, -6.89757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.54892, -3.06021, 1.48463, -2.29663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4.80437, -7.01817 ]
-						},
-						{
-							"time": 0.3667,
-							"offset": 14,
-							"vertices": [ 0.5298, -1.12677, -11.66571, -9.07211, -25.65866, -17.53735, -25.53217, -16.50978, -11.78232, -11.26097, 0, 0, 0.60487, -1.63589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.60487, -1.63589, 0, 0, -2.64522, -7.35739, 1.48463, -2.29663, 0, 0, 0, 0, 0, 0, 0.60487, -1.63589, 0.60487, -1.63589, 0.60487, -1.63589, 0.60487, -1.63589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.60487, -1.63589, 0, 0, -10.06873, -12.0999 ]
-						},
-						{
-							"time": 0.5333,
-							"offset": 14,
-							"vertices": [ 0.5298, -1.12677, -0.85507, -4.20587, -7.00775, -8.24771, -6.45482, -6.49312, -6.06447, -6.89757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.54892, -3.06021, 1.48463, -2.29663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4.80437, -7.01817 ]
-						},
-						{
-							"time": 1,
-							"offset": 14,
-							"vertices": [ 0.5298, -1.12677, -0.85507, -4.20587, -11.35158, -10.19225, -10.79865, -8.43765, -6.06447, -6.89757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.54892, -3.06021, 1.48463, -2.29663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4.80437, -7.01817 ]
-						}
-					]
+					"front-shin": {
+						"deform": [
+							{
+								"offset": 14,
+								"vertices": [ 0.5298, -1.12677, -0.85507, -4.20587, -11.35158, -10.19225, -10.79865, -8.43765, -6.06447, -6.89757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.54892, -3.06021, 1.48463, -2.29663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4.80437, -7.01817 ]
+							},
+							{
+								"time": 0.3667,
+								"offset": 14,
+								"vertices": [ 0.5298, -1.12677, -11.66571, -9.07211, -25.65866, -17.53735, -25.53217, -16.50978, -11.78232, -11.26097, 0, 0, 0.60487, -1.63589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.60487, -1.63589, 0, 0, -2.64522, -7.35739, 1.48463, -2.29663, 0, 0, 0, 0, 0, 0, 0.60487, -1.63589, 0.60487, -1.63589, 0.60487, -1.63589, 0.60487, -1.63589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.60487, -1.63589, 0, 0, -10.06873, -12.0999 ]
+							},
+							{
+								"time": 0.5333,
+								"offset": 14,
+								"vertices": [ 0.5298, -1.12677, -0.85507, -4.20587, -7.00775, -8.24771, -6.45482, -6.49312, -6.06447, -6.89757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.54892, -3.06021, 1.48463, -2.29663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4.80437, -7.01817 ]
+							},
+							{
+								"time": 1,
+								"offset": 14,
+								"vertices": [ 0.5298, -1.12677, -0.85507, -4.20587, -11.35158, -10.19225, -10.79865, -8.43765, -6.06447, -6.89757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.54892, -3.06021, 1.48463, -2.29663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4.80437, -7.01817 ]
+							}
+						]
+					}
 				},
 				"hoverboard-board": {
-					"hoverboard-board": [
-						{
-							"curve": [ 0.067, 0, 0.2, 1 ]
-						},
-						{
-							"time": 0.2667,
-							"offset": 1,
-							"vertices": [ 2.45856, 0, 0, 0, 0, 0, 0, 0, 0, 3.55673, -3.0E-4, 3.55673, -3.0E-4, 0, 0, 0, 0, 0, 0, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, 0, 0, 0, 0, 0, 0, 0, 0, -4.90558, 0.11214, -9.40706, 6.2E-4, -6.34871, 4.3E-4, -6.34925, -6.57018, -6.34925, -6.57018, -6.34871, 4.3E-4, -2.3308, 1.7E-4, -2.33133, -6.57045, -2.33133, -6.57045, -2.3308, 1.7E-4, 0, 0, 1.2E-4, 2.45856, 1.2E-4, 2.45856, 1.2E-4, 2.45856, 1.2E-4, 2.45856, 3.3297, 4.44005, 3.3297, 4.44005, 3.3297, 4.44005, 1.2E-4, 2.45856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.46227, 1.7E-4, -2.46227, 1.7E-4, -2.52316, 1.1313, -2.52316, 1.1313, -2.52316, 1.1313, 1.2E-4, 2.45856, 1.2E-4, 2.45856, -9.40694, 2.45918, 1.88063, 0.44197, -2.9E-4, -3.54808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.52316, 1.1313, -2.52316, 1.1313, -2.52316, 1.1313, -2.46227, 1.7E-4, -2.46227, 1.7E-4, -2.46227, 1.7E-4, 0, 0, 0, 0, 1.2E-4, 2.45856 ],
-							"curve": [ 0.45, 0, 0.817, 1 ]
-						},
-						{ "time": 1 }
-					]
+					"hoverboard-board": {
+						"deform": [
+							{
+								"curve": [ 0.067, 0, 0.2, 1 ]
+							},
+							{
+								"time": 0.2667,
+								"offset": 1,
+								"vertices": [ 2.45856, 0, 0, 0, 0, 0, 0, 0, 0, 3.55673, -3.0E-4, 3.55673, -3.0E-4, 0, 0, 0, 0, 0, 0, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, 0, 0, 0, 0, 0, 0, 0, 0, -4.90558, 0.11214, -9.40706, 6.2E-4, -6.34871, 4.3E-4, -6.34925, -6.57018, -6.34925, -6.57018, -6.34871, 4.3E-4, -2.3308, 1.7E-4, -2.33133, -6.57045, -2.33133, -6.57045, -2.3308, 1.7E-4, 0, 0, 1.2E-4, 2.45856, 1.2E-4, 2.45856, 1.2E-4, 2.45856, 1.2E-4, 2.45856, 3.3297, 4.44005, 3.3297, 4.44005, 3.3297, 4.44005, 1.2E-4, 2.45856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.46227, 1.7E-4, -2.46227, 1.7E-4, -2.52316, 1.1313, -2.52316, 1.1313, -2.52316, 1.1313, 1.2E-4, 2.45856, 1.2E-4, 2.45856, -9.40694, 2.45918, 1.88063, 0.44197, -2.9E-4, -3.54808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.52316, 1.1313, -2.52316, 1.1313, -2.52316, 1.1313, -2.46227, 1.7E-4, -2.46227, 1.7E-4, -2.46227, 1.7E-4, 0, 0, 0, 0, 1.2E-4, 2.45856 ],
+								"curve": [ 0.45, 0, 0.817, 1 ]
+							},
+							{ "time": 1 }
+						]
+					}
 				},
 				"rear-foot": {
-					"rear-foot": [
-						{
-							"offset": 28,
-							"vertices": [ -1.93078, 1.34782, -0.31417, 2.33363, 3.05122, 0.33946, 2.31472, -2.01678, 2.17583, -2.05795, -0.04277, -2.99459, 1.15429, 0.26328, 0.97501, -0.67169 ]
-						}
-					]
+					"rear-foot": {
+						"deform": [
+							{
+								"offset": 28,
+								"vertices": [ -1.93078, 1.34782, -0.31417, 2.33363, 3.05122, 0.33946, 2.31472, -2.01678, 2.17583, -2.05795, -0.04277, -2.99459, 1.15429, 0.26328, 0.97501, -0.67169 ]
+							}
+						]
+					}
 				}
 			}
 		}
@@ -5203,7 +5211,7 @@
 			"portal-bg": {
 				"attachment": [
 					{ "name": "portal-bg" },
-					{ "time": 3, "name": null }
+					{ "time": 3 }
 				]
 			},
 			"portal-flare1": {
@@ -5214,7 +5222,7 @@
 					{ "time": 1.2, "name": "portal-flare1" },
 					{ "time": 1.2333, "name": "portal-flare2" },
 					{ "time": 1.2667, "name": "portal-flare1" },
-					{ "time": 1.3333, "name": null }
+					{ "time": 1.3333 }
 				]
 			},
 			"portal-flare2": {
@@ -5224,14 +5232,14 @@
 					{ "time": 1.1667, "name": "portal-flare1" },
 					{ "time": 1.2, "name": "portal-flare2" },
 					{ "time": 1.2333, "name": "portal-flare3" },
-					{ "time": 1.2667, "name": null }
+					{ "time": 1.2667 }
 				]
 			},
 			"portal-flare3": {
 				"attachment": [
 					{ "time": 1.2, "name": "portal-flare3" },
 					{ "time": 1.2333, "name": "portal-flare2" },
-					{ "time": 1.2667, "name": null }
+					{ "time": 1.2667 }
 				]
 			},
 			"portal-flare4": {
@@ -5239,33 +5247,33 @@
 					{ "time": 1.2, "name": "portal-flare2" },
 					{ "time": 1.2333, "name": "portal-flare1" },
 					{ "time": 1.2667, "name": "portal-flare2" },
-					{ "time": 1.3333, "name": null }
+					{ "time": 1.3333 }
 				]
 			},
 			"portal-flare5": {
 				"attachment": [
 					{ "time": 1.2333, "name": "portal-flare3" },
 					{ "time": 1.2667, "name": "portal-flare1" },
-					{ "time": 1.3333, "name": null }
+					{ "time": 1.3333 }
 				]
 			},
 			"portal-flare6": {
 				"attachment": [
 					{ "time": 1.2667, "name": "portal-flare3" },
-					{ "time": 1.3333, "name": null }
+					{ "time": 1.3333 }
 				]
 			},
 			"portal-flare7": {
 				"attachment": [
 					{ "time": 1.1333, "name": "portal-flare2" },
-					{ "time": 1.1667, "name": null }
+					{ "time": 1.1667 }
 				]
 			},
 			"portal-flare8": {
 				"attachment": [
 					{ "time": 1.2, "name": "portal-flare3" },
 					{ "time": 1.2333, "name": "portal-flare2" },
-					{ "time": 1.2667, "name": null }
+					{ "time": 1.2667 }
 				]
 			},
 			"portal-flare9": {
@@ -5273,7 +5281,7 @@
 					{ "time": 1.2, "name": "portal-flare2" },
 					{ "time": 1.2333, "name": "portal-flare3" },
 					{ "time": 1.2667, "name": "portal-flare1" },
-					{ "time": 1.3, "name": null }
+					{ "time": 1.3 }
 				]
 			},
 			"portal-flare10": {
@@ -5281,25 +5289,25 @@
 					{ "time": 1.2, "name": "portal-flare2" },
 					{ "time": 1.2333, "name": "portal-flare1" },
 					{ "time": 1.2667, "name": "portal-flare3" },
-					{ "time": 1.3, "name": null }
+					{ "time": 1.3 }
 				]
 			},
 			"portal-shade": {
 				"attachment": [
 					{ "name": "portal-shade" },
-					{ "time": 3, "name": null }
+					{ "time": 3 }
 				]
 			},
 			"portal-streaks1": {
 				"attachment": [
 					{ "name": "portal-streaks1" },
-					{ "time": 3, "name": null }
+					{ "time": 3 }
 				]
 			},
 			"portal-streaks2": {
 				"attachment": [
 					{ "name": "portal-streaks2" },
-					{ "time": 3, "name": null }
+					{ "time": 3 }
 				]
 			}
 		},
@@ -7696,7 +7704,7 @@
 					{ "time": 0.1, "name": "muzzle03" },
 					{ "time": 0.1333, "name": "muzzle04" },
 					{ "time": 0.1667, "name": "muzzle05" },
-					{ "time": 0.2, "name": null }
+					{ "time": 0.2 }
 				]
 			},
 			"muzzle-glow": {
@@ -7725,7 +7733,7 @@
 				],
 				"attachment": [
 					{ "time": 0.0333, "name": "muzzle-ring" },
-					{ "time": 0.2333, "name": null }
+					{ "time": 0.2333 }
 				]
 			},
 			"muzzle-ring2": {
@@ -7739,7 +7747,7 @@
 				],
 				"attachment": [
 					{ "time": 0.0333, "name": "muzzle-ring" },
-					{ "time": 0.2, "name": null }
+					{ "time": 0.2 }
 				]
 			},
 			"muzzle-ring3": {
@@ -7753,7 +7761,7 @@
 				],
 				"attachment": [
 					{ "time": 0.0333, "name": "muzzle-ring" },
-					{ "time": 0.2, "name": null }
+					{ "time": 0.2 }
 				]
 			},
 			"muzzle-ring4": {
@@ -7767,7 +7775,7 @@
 				],
 				"attachment": [
 					{ "time": 0.0333, "name": "muzzle-ring" },
-					{ "time": 0.2, "name": null }
+					{ "time": 0.2 }
 				]
 			}
 		},

BIN
spine-ue4/Content/GettingStarted/Assets/Spineboy/spineboy.uasset


+ 5 - 1
spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonComponent.cpp

@@ -86,7 +86,7 @@ void USpineSkeletonComponent::GetSkins(TArray<FString> &Skins) {
 bool USpineSkeletonComponent::HasSkin(const FString skinName) {
 	CheckState();
 	if (skeleton) {
-		return skeleton->getData()->findAnimation(TCHAR_TO_UTF8(*skinName)) != nullptr;
+		return skeleton->getData()->findSkin(TCHAR_TO_UTF8(*skinName)) != nullptr;
 	}
 	return false;
 }
@@ -94,6 +94,10 @@ bool USpineSkeletonComponent::HasSkin(const FString skinName) {
 bool USpineSkeletonComponent::SetAttachment(const FString slotName, const FString attachmentName) {
 	CheckState();
 	if (skeleton) {
+		if (attachmentName.IsEmpty()) {
+			skeleton->setAttachment(TCHAR_TO_UTF8(*slotName), NULL);
+			return true;
+		}
 		if (!skeleton->getAttachment(TCHAR_TO_UTF8(*slotName), TCHAR_TO_UTF8(*attachmentName))) return false;
 		skeleton->setAttachment(TCHAR_TO_UTF8(*slotName), TCHAR_TO_UTF8(*attachmentName));
 		return true;

+ 4 - 24
spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonDataAsset.cpp

@@ -30,6 +30,7 @@
 #include "Runtime/Core/Public/Misc/MessageDialog.h"
 #include "SpinePluginPrivatePCH.h"
 #include "spine/spine.h"
+#include "spine/Version.h"
 #include <stdlib.h>
 #include <string.h>
 #include <string>
@@ -38,9 +39,6 @@
 
 using namespace spine;
 
-#define SPINE_MAJOR_VERSION 4
-#define SPINE_MINOR_VERSION 1
-
 FName USpineSkeletonDataAsset::GetSkeletonDataFileName() const {
 #if WITH_EDITORONLY_DATA
 	TArray<FString> files;
@@ -138,27 +136,9 @@ void USpineSkeletonDataAsset::SetRawData(TArray<uint8> &Data) {
 }
 
 static bool checkVersion(const char *version) {
-	String tokens[3];
-	int currToken = 0;
-
-	while (*version && currToken < 3) {
-		if (*version == '.') {
-			version++;
-			currToken++;
-			continue;
-		}
-
-		char str[2];
-		str[0] = *version;
-		str[1] = 0;
-		tokens[currToken].append(str);
-		version++;
-	}
-	int versionNumber[3];
-	for (int i = 0; i < 3; i++)
-		versionNumber[i] = atoi(tokens[i].buffer());
-
-	return versionNumber[0] >= SPINE_MAJOR_VERSION && versionNumber[1] >= SPINE_MINOR_VERSION;
+	if (!version) return false;
+	char* result = (char*)(strstr(version, SPINE_VERSION_STRING) - version);
+	return result == 0;
 }
 
 static bool checkJson(const char *jsonData) {