mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-06 23:34:53 +08:00
[ts] added demos
This commit is contained in:
parent
84ab430dee
commit
fc2e4b557d
10
spine-ts/build/spine-all.d.ts
vendored
10
spine-ts/build/spine-all.d.ts
vendored
@ -980,7 +980,7 @@ declare module spine.webgl {
|
||||
private tmp;
|
||||
constructor(viewportWidth: number, viewportHeight: number);
|
||||
update(): void;
|
||||
unproject(screenCoords: Vector3): Vector3;
|
||||
screenToWorld(screenCoords: Vector3, screenWidth: number, screenHeight: number): Vector3;
|
||||
setViewport(viewportWidth: number, viewportHeight: number): void;
|
||||
}
|
||||
}
|
||||
@ -1151,6 +1151,7 @@ declare module spine.webgl {
|
||||
begin(): void;
|
||||
drawSkeleton(skeleton: Skeleton, premultipliedAlpha?: boolean): void;
|
||||
drawTexture(texture: GLTexture, x: number, y: number, width: number, height: number, color?: Color): void;
|
||||
drawRegion(region: TextureAtlasRegion, x: number, y: number, width: number, height: number, color?: Color): void;
|
||||
line(x: number, y: number, x2: number, y2: number, color?: Color, color2?: Color): void;
|
||||
triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void;
|
||||
quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void;
|
||||
@ -1160,10 +1161,15 @@ declare module spine.webgl {
|
||||
circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void;
|
||||
curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void;
|
||||
end(): void;
|
||||
resize(): void;
|
||||
resize(resizeMode: ResizeMode): void;
|
||||
private enableRenderer(renderer);
|
||||
dispose(): void;
|
||||
}
|
||||
enum ResizeMode {
|
||||
Stretch = 0,
|
||||
Expand = 1,
|
||||
Fit = 2,
|
||||
}
|
||||
}
|
||||
declare module spine.webgl {
|
||||
class Shader implements Disposable {
|
||||
|
||||
@ -4873,11 +4873,11 @@ var spine;
|
||||
projectionView.multiply(view);
|
||||
inverseProjectionView.set(projectionView.values).invert();
|
||||
};
|
||||
OrthoCamera.prototype.unproject = function (screenCoords) {
|
||||
var x = screenCoords.x, y = this.viewportHeight - screenCoords.y - 1;
|
||||
OrthoCamera.prototype.screenToWorld = function (screenCoords, screenWidth, screenHeight) {
|
||||
var x = screenCoords.x, y = screenHeight - screenCoords.y - 1;
|
||||
var tmp = this.tmp;
|
||||
tmp.x = (2 * x) / this.viewportWidth - 1;
|
||||
tmp.y = (2 * y) / this.viewportHeight - 1;
|
||||
tmp.x = (2 * x) / screenWidth - 1;
|
||||
tmp.y = (2 * y) / screenHeight - 1;
|
||||
tmp.z = (2 * screenCoords.z) - 1;
|
||||
tmp.project(this.inverseProjectionView);
|
||||
screenCoords.set(tmp.x, tmp.y, tmp.z);
|
||||
@ -5652,6 +5652,46 @@ var spine;
|
||||
quad[31] = 0;
|
||||
this.batcher.draw(texture, quad, this.QUAD_TRIANGLES);
|
||||
};
|
||||
SceneRenderer.prototype.drawRegion = function (region, x, y, width, height, color) {
|
||||
if (color === void 0) { color = null; }
|
||||
this.enableRenderer(this.batcher);
|
||||
if (color === null)
|
||||
color = this.WHITE;
|
||||
var quad = this.QUAD;
|
||||
quad[0] = x;
|
||||
quad[1] = y;
|
||||
quad[2] = color.r;
|
||||
quad[3] = color.g;
|
||||
quad[4] = color.b;
|
||||
quad[5] = color.a;
|
||||
quad[6] = region.u;
|
||||
quad[7] = region.v2;
|
||||
quad[8] = x + width;
|
||||
quad[9] = y;
|
||||
quad[10] = color.r;
|
||||
quad[11] = color.g;
|
||||
quad[12] = color.b;
|
||||
quad[13] = color.a;
|
||||
quad[14] = region.u2;
|
||||
quad[15] = region.v2;
|
||||
quad[16] = x + width;
|
||||
quad[17] = y + height;
|
||||
quad[18] = color.r;
|
||||
quad[19] = color.g;
|
||||
quad[20] = color.b;
|
||||
quad[21] = color.a;
|
||||
quad[22] = region.u2;
|
||||
quad[23] = region.v;
|
||||
quad[24] = x;
|
||||
quad[25] = y + height;
|
||||
quad[26] = color.r;
|
||||
quad[27] = color.g;
|
||||
quad[28] = color.b;
|
||||
quad[29] = color.a;
|
||||
quad[30] = region.u;
|
||||
quad[31] = region.v;
|
||||
this.batcher.draw(region.texture, quad, this.QUAD_TRIANGLES);
|
||||
};
|
||||
SceneRenderer.prototype.line = function (x, y, x2, y2, color, color2) {
|
||||
if (color === void 0) { color = null; }
|
||||
if (color2 === void 0) { color2 = null; }
|
||||
@ -5706,7 +5746,7 @@ var spine;
|
||||
this.shapes.end();
|
||||
this.activeRenderer = null;
|
||||
};
|
||||
SceneRenderer.prototype.resize = function () {
|
||||
SceneRenderer.prototype.resize = function (resizeMode) {
|
||||
var canvas = this.canvas;
|
||||
var w = canvas.clientWidth;
|
||||
var h = canvas.clientHeight;
|
||||
@ -5714,9 +5754,22 @@ var spine;
|
||||
canvas.width = w;
|
||||
canvas.height = h;
|
||||
}
|
||||
this.camera.setViewport(w, h);
|
||||
this.camera.update();
|
||||
this.gl.viewport(0, 0, canvas.width, canvas.height);
|
||||
if (resizeMode === ResizeMode.Stretch) {
|
||||
}
|
||||
else if (resizeMode === ResizeMode.Expand) {
|
||||
this.camera.setViewport(w, h);
|
||||
}
|
||||
else if (resizeMode === ResizeMode.Fit) {
|
||||
var sourceWidth = canvas.width, sourceHeight = canvas.height;
|
||||
var targetWidth = this.camera.viewportWidth, targetHeight = this.camera.viewportHeight;
|
||||
var targetRatio = targetHeight / targetWidth;
|
||||
var sourceRatio = sourceHeight / sourceWidth;
|
||||
var scale = targetRatio < sourceRatio ? targetWidth / sourceWidth : targetHeight / sourceHeight;
|
||||
this.camera.viewportWidth = sourceWidth * scale;
|
||||
this.camera.viewportHeight = sourceHeight * scale;
|
||||
}
|
||||
this.camera.update();
|
||||
};
|
||||
SceneRenderer.prototype.enableRenderer = function (renderer) {
|
||||
if (this.activeRenderer === renderer)
|
||||
@ -5744,6 +5797,12 @@ var spine;
|
||||
return SceneRenderer;
|
||||
}());
|
||||
webgl.SceneRenderer = SceneRenderer;
|
||||
(function (ResizeMode) {
|
||||
ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch";
|
||||
ResizeMode[ResizeMode["Expand"] = 1] = "Expand";
|
||||
ResizeMode[ResizeMode["Fit"] = 2] = "Fit";
|
||||
})(webgl.ResizeMode || (webgl.ResizeMode = {}));
|
||||
var ResizeMode = webgl.ResizeMode;
|
||||
})(webgl = spine.webgl || (spine.webgl = {}));
|
||||
})(spine || (spine = {}));
|
||||
var spine;
|
||||
|
||||
File diff suppressed because one or more lines are too long
10
spine-ts/build/spine-webgl.d.ts
vendored
10
spine-ts/build/spine-webgl.d.ts
vendored
@ -910,7 +910,7 @@ declare module spine.webgl {
|
||||
private tmp;
|
||||
constructor(viewportWidth: number, viewportHeight: number);
|
||||
update(): void;
|
||||
unproject(screenCoords: Vector3): Vector3;
|
||||
screenToWorld(screenCoords: Vector3, screenWidth: number, screenHeight: number): Vector3;
|
||||
setViewport(viewportWidth: number, viewportHeight: number): void;
|
||||
}
|
||||
}
|
||||
@ -1081,6 +1081,7 @@ declare module spine.webgl {
|
||||
begin(): void;
|
||||
drawSkeleton(skeleton: Skeleton, premultipliedAlpha?: boolean): void;
|
||||
drawTexture(texture: GLTexture, x: number, y: number, width: number, height: number, color?: Color): void;
|
||||
drawRegion(region: TextureAtlasRegion, x: number, y: number, width: number, height: number, color?: Color): void;
|
||||
line(x: number, y: number, x2: number, y2: number, color?: Color, color2?: Color): void;
|
||||
triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void;
|
||||
quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void;
|
||||
@ -1090,10 +1091,15 @@ declare module spine.webgl {
|
||||
circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void;
|
||||
curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void;
|
||||
end(): void;
|
||||
resize(): void;
|
||||
resize(resizeMode: ResizeMode): void;
|
||||
private enableRenderer(renderer);
|
||||
dispose(): void;
|
||||
}
|
||||
enum ResizeMode {
|
||||
Stretch = 0,
|
||||
Expand = 1,
|
||||
Fit = 2,
|
||||
}
|
||||
}
|
||||
declare module spine.webgl {
|
||||
class Shader implements Disposable {
|
||||
|
||||
@ -4452,11 +4452,11 @@ var spine;
|
||||
projectionView.multiply(view);
|
||||
inverseProjectionView.set(projectionView.values).invert();
|
||||
};
|
||||
OrthoCamera.prototype.unproject = function (screenCoords) {
|
||||
var x = screenCoords.x, y = this.viewportHeight - screenCoords.y - 1;
|
||||
OrthoCamera.prototype.screenToWorld = function (screenCoords, screenWidth, screenHeight) {
|
||||
var x = screenCoords.x, y = screenHeight - screenCoords.y - 1;
|
||||
var tmp = this.tmp;
|
||||
tmp.x = (2 * x) / this.viewportWidth - 1;
|
||||
tmp.y = (2 * y) / this.viewportHeight - 1;
|
||||
tmp.x = (2 * x) / screenWidth - 1;
|
||||
tmp.y = (2 * y) / screenHeight - 1;
|
||||
tmp.z = (2 * screenCoords.z) - 1;
|
||||
tmp.project(this.inverseProjectionView);
|
||||
screenCoords.set(tmp.x, tmp.y, tmp.z);
|
||||
@ -5231,6 +5231,46 @@ var spine;
|
||||
quad[31] = 0;
|
||||
this.batcher.draw(texture, quad, this.QUAD_TRIANGLES);
|
||||
};
|
||||
SceneRenderer.prototype.drawRegion = function (region, x, y, width, height, color) {
|
||||
if (color === void 0) { color = null; }
|
||||
this.enableRenderer(this.batcher);
|
||||
if (color === null)
|
||||
color = this.WHITE;
|
||||
var quad = this.QUAD;
|
||||
quad[0] = x;
|
||||
quad[1] = y;
|
||||
quad[2] = color.r;
|
||||
quad[3] = color.g;
|
||||
quad[4] = color.b;
|
||||
quad[5] = color.a;
|
||||
quad[6] = region.u;
|
||||
quad[7] = region.v2;
|
||||
quad[8] = x + width;
|
||||
quad[9] = y;
|
||||
quad[10] = color.r;
|
||||
quad[11] = color.g;
|
||||
quad[12] = color.b;
|
||||
quad[13] = color.a;
|
||||
quad[14] = region.u2;
|
||||
quad[15] = region.v2;
|
||||
quad[16] = x + width;
|
||||
quad[17] = y + height;
|
||||
quad[18] = color.r;
|
||||
quad[19] = color.g;
|
||||
quad[20] = color.b;
|
||||
quad[21] = color.a;
|
||||
quad[22] = region.u2;
|
||||
quad[23] = region.v;
|
||||
quad[24] = x;
|
||||
quad[25] = y + height;
|
||||
quad[26] = color.r;
|
||||
quad[27] = color.g;
|
||||
quad[28] = color.b;
|
||||
quad[29] = color.a;
|
||||
quad[30] = region.u;
|
||||
quad[31] = region.v;
|
||||
this.batcher.draw(region.texture, quad, this.QUAD_TRIANGLES);
|
||||
};
|
||||
SceneRenderer.prototype.line = function (x, y, x2, y2, color, color2) {
|
||||
if (color === void 0) { color = null; }
|
||||
if (color2 === void 0) { color2 = null; }
|
||||
@ -5285,7 +5325,7 @@ var spine;
|
||||
this.shapes.end();
|
||||
this.activeRenderer = null;
|
||||
};
|
||||
SceneRenderer.prototype.resize = function () {
|
||||
SceneRenderer.prototype.resize = function (resizeMode) {
|
||||
var canvas = this.canvas;
|
||||
var w = canvas.clientWidth;
|
||||
var h = canvas.clientHeight;
|
||||
@ -5293,9 +5333,22 @@ var spine;
|
||||
canvas.width = w;
|
||||
canvas.height = h;
|
||||
}
|
||||
this.camera.setViewport(w, h);
|
||||
this.camera.update();
|
||||
this.gl.viewport(0, 0, canvas.width, canvas.height);
|
||||
if (resizeMode === ResizeMode.Stretch) {
|
||||
}
|
||||
else if (resizeMode === ResizeMode.Expand) {
|
||||
this.camera.setViewport(w, h);
|
||||
}
|
||||
else if (resizeMode === ResizeMode.Fit) {
|
||||
var sourceWidth = canvas.width, sourceHeight = canvas.height;
|
||||
var targetWidth = this.camera.viewportWidth, targetHeight = this.camera.viewportHeight;
|
||||
var targetRatio = targetHeight / targetWidth;
|
||||
var sourceRatio = sourceHeight / sourceWidth;
|
||||
var scale = targetRatio < sourceRatio ? targetWidth / sourceWidth : targetHeight / sourceHeight;
|
||||
this.camera.viewportWidth = sourceWidth * scale;
|
||||
this.camera.viewportHeight = sourceHeight * scale;
|
||||
}
|
||||
this.camera.update();
|
||||
};
|
||||
SceneRenderer.prototype.enableRenderer = function (renderer) {
|
||||
if (this.activeRenderer === renderer)
|
||||
@ -5323,6 +5376,12 @@ var spine;
|
||||
return SceneRenderer;
|
||||
}());
|
||||
webgl.SceneRenderer = SceneRenderer;
|
||||
(function (ResizeMode) {
|
||||
ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch";
|
||||
ResizeMode[ResizeMode["Expand"] = 1] = "Expand";
|
||||
ResizeMode[ResizeMode["Fit"] = 2] = "Fit";
|
||||
})(webgl.ResizeMode || (webgl.ResizeMode = {}));
|
||||
var ResizeMode = webgl.ResizeMode;
|
||||
})(webgl = spine.webgl || (spine.webgl = {}));
|
||||
})(spine || (spine = {}));
|
||||
var spine;
|
||||
|
||||
File diff suppressed because one or more lines are too long
10
spine-ts/build/spine-widget.d.ts
vendored
10
spine-ts/build/spine-widget.d.ts
vendored
@ -910,7 +910,7 @@ declare module spine.webgl {
|
||||
private tmp;
|
||||
constructor(viewportWidth: number, viewportHeight: number);
|
||||
update(): void;
|
||||
unproject(screenCoords: Vector3): Vector3;
|
||||
screenToWorld(screenCoords: Vector3, screenWidth: number, screenHeight: number): Vector3;
|
||||
setViewport(viewportWidth: number, viewportHeight: number): void;
|
||||
}
|
||||
}
|
||||
@ -1081,6 +1081,7 @@ declare module spine.webgl {
|
||||
begin(): void;
|
||||
drawSkeleton(skeleton: Skeleton, premultipliedAlpha?: boolean): void;
|
||||
drawTexture(texture: GLTexture, x: number, y: number, width: number, height: number, color?: Color): void;
|
||||
drawRegion(region: TextureAtlasRegion, x: number, y: number, width: number, height: number, color?: Color): void;
|
||||
line(x: number, y: number, x2: number, y2: number, color?: Color, color2?: Color): void;
|
||||
triangle(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, color?: Color, color2?: Color, color3?: Color): void;
|
||||
quad(filled: boolean, x: number, y: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, color?: Color, color2?: Color, color3?: Color, color4?: Color): void;
|
||||
@ -1090,10 +1091,15 @@ declare module spine.webgl {
|
||||
circle(filled: boolean, x: number, y: number, radius: number, color?: Color, segments?: number): void;
|
||||
curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void;
|
||||
end(): void;
|
||||
resize(): void;
|
||||
resize(resizeMode: ResizeMode): void;
|
||||
private enableRenderer(renderer);
|
||||
dispose(): void;
|
||||
}
|
||||
enum ResizeMode {
|
||||
Stretch = 0,
|
||||
Expand = 1,
|
||||
Fit = 2,
|
||||
}
|
||||
}
|
||||
declare module spine.webgl {
|
||||
class Shader implements Disposable {
|
||||
|
||||
@ -4452,11 +4452,11 @@ var spine;
|
||||
projectionView.multiply(view);
|
||||
inverseProjectionView.set(projectionView.values).invert();
|
||||
};
|
||||
OrthoCamera.prototype.unproject = function (screenCoords) {
|
||||
var x = screenCoords.x, y = this.viewportHeight - screenCoords.y - 1;
|
||||
OrthoCamera.prototype.screenToWorld = function (screenCoords, screenWidth, screenHeight) {
|
||||
var x = screenCoords.x, y = screenHeight - screenCoords.y - 1;
|
||||
var tmp = this.tmp;
|
||||
tmp.x = (2 * x) / this.viewportWidth - 1;
|
||||
tmp.y = (2 * y) / this.viewportHeight - 1;
|
||||
tmp.x = (2 * x) / screenWidth - 1;
|
||||
tmp.y = (2 * y) / screenHeight - 1;
|
||||
tmp.z = (2 * screenCoords.z) - 1;
|
||||
tmp.project(this.inverseProjectionView);
|
||||
screenCoords.set(tmp.x, tmp.y, tmp.z);
|
||||
@ -5231,6 +5231,46 @@ var spine;
|
||||
quad[31] = 0;
|
||||
this.batcher.draw(texture, quad, this.QUAD_TRIANGLES);
|
||||
};
|
||||
SceneRenderer.prototype.drawRegion = function (region, x, y, width, height, color) {
|
||||
if (color === void 0) { color = null; }
|
||||
this.enableRenderer(this.batcher);
|
||||
if (color === null)
|
||||
color = this.WHITE;
|
||||
var quad = this.QUAD;
|
||||
quad[0] = x;
|
||||
quad[1] = y;
|
||||
quad[2] = color.r;
|
||||
quad[3] = color.g;
|
||||
quad[4] = color.b;
|
||||
quad[5] = color.a;
|
||||
quad[6] = region.u;
|
||||
quad[7] = region.v2;
|
||||
quad[8] = x + width;
|
||||
quad[9] = y;
|
||||
quad[10] = color.r;
|
||||
quad[11] = color.g;
|
||||
quad[12] = color.b;
|
||||
quad[13] = color.a;
|
||||
quad[14] = region.u2;
|
||||
quad[15] = region.v2;
|
||||
quad[16] = x + width;
|
||||
quad[17] = y + height;
|
||||
quad[18] = color.r;
|
||||
quad[19] = color.g;
|
||||
quad[20] = color.b;
|
||||
quad[21] = color.a;
|
||||
quad[22] = region.u2;
|
||||
quad[23] = region.v;
|
||||
quad[24] = x;
|
||||
quad[25] = y + height;
|
||||
quad[26] = color.r;
|
||||
quad[27] = color.g;
|
||||
quad[28] = color.b;
|
||||
quad[29] = color.a;
|
||||
quad[30] = region.u;
|
||||
quad[31] = region.v;
|
||||
this.batcher.draw(region.texture, quad, this.QUAD_TRIANGLES);
|
||||
};
|
||||
SceneRenderer.prototype.line = function (x, y, x2, y2, color, color2) {
|
||||
if (color === void 0) { color = null; }
|
||||
if (color2 === void 0) { color2 = null; }
|
||||
@ -5285,7 +5325,7 @@ var spine;
|
||||
this.shapes.end();
|
||||
this.activeRenderer = null;
|
||||
};
|
||||
SceneRenderer.prototype.resize = function () {
|
||||
SceneRenderer.prototype.resize = function (resizeMode) {
|
||||
var canvas = this.canvas;
|
||||
var w = canvas.clientWidth;
|
||||
var h = canvas.clientHeight;
|
||||
@ -5293,9 +5333,22 @@ var spine;
|
||||
canvas.width = w;
|
||||
canvas.height = h;
|
||||
}
|
||||
this.camera.setViewport(w, h);
|
||||
this.camera.update();
|
||||
this.gl.viewport(0, 0, canvas.width, canvas.height);
|
||||
if (resizeMode === ResizeMode.Stretch) {
|
||||
}
|
||||
else if (resizeMode === ResizeMode.Expand) {
|
||||
this.camera.setViewport(w, h);
|
||||
}
|
||||
else if (resizeMode === ResizeMode.Fit) {
|
||||
var sourceWidth = canvas.width, sourceHeight = canvas.height;
|
||||
var targetWidth = this.camera.viewportWidth, targetHeight = this.camera.viewportHeight;
|
||||
var targetRatio = targetHeight / targetWidth;
|
||||
var sourceRatio = sourceHeight / sourceWidth;
|
||||
var scale = targetRatio < sourceRatio ? targetWidth / sourceWidth : targetHeight / sourceHeight;
|
||||
this.camera.viewportWidth = sourceWidth * scale;
|
||||
this.camera.viewportHeight = sourceHeight * scale;
|
||||
}
|
||||
this.camera.update();
|
||||
};
|
||||
SceneRenderer.prototype.enableRenderer = function (renderer) {
|
||||
if (this.activeRenderer === renderer)
|
||||
@ -5323,6 +5376,12 @@ var spine;
|
||||
return SceneRenderer;
|
||||
}());
|
||||
webgl.SceneRenderer = SceneRenderer;
|
||||
(function (ResizeMode) {
|
||||
ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch";
|
||||
ResizeMode[ResizeMode["Expand"] = 1] = "Expand";
|
||||
ResizeMode[ResizeMode["Fit"] = 2] = "Fit";
|
||||
})(webgl.ResizeMode || (webgl.ResizeMode = {}));
|
||||
var ResizeMode = webgl.ResizeMode;
|
||||
})(webgl = spine.webgl || (spine.webgl = {}));
|
||||
})(spine || (spine = {}));
|
||||
var spine;
|
||||
|
||||
File diff suppressed because one or more lines are too long
255
spine-ts/webgl/example/demos/assets/raptor-walk.atlas
Normal file
255
spine-ts/webgl/example/demos/assets/raptor-walk.atlas
Normal file
@ -0,0 +1,255 @@
|
||||
|
||||
raptor-walk.png
|
||||
size: 1024,1024
|
||||
format: RGBA8888
|
||||
filter: Linear,Linear
|
||||
repeat: none
|
||||
raptor-walk_0
|
||||
rotate: false
|
||||
xy: 2, 625
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_1
|
||||
rotate: false
|
||||
xy: 2, 327
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_2
|
||||
rotate: false
|
||||
xy: 309, 625
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_3
|
||||
rotate: false
|
||||
xy: 2, 29
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_4
|
||||
rotate: false
|
||||
xy: 309, 327
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_5
|
||||
rotate: false
|
||||
xy: 616, 625
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_6
|
||||
rotate: false
|
||||
xy: 309, 29
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_7
|
||||
rotate: false
|
||||
xy: 616, 327
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_8
|
||||
rotate: false
|
||||
xy: 616, 29
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
|
||||
raptor-walk2.png
|
||||
size: 1024,1024
|
||||
format: RGBA8888
|
||||
filter: Linear,Linear
|
||||
repeat: none
|
||||
raptor-walk_10
|
||||
rotate: false
|
||||
xy: 2, 327
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_11
|
||||
rotate: false
|
||||
xy: 309, 625
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_12
|
||||
rotate: false
|
||||
xy: 2, 29
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_13
|
||||
rotate: false
|
||||
xy: 309, 327
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_14
|
||||
rotate: false
|
||||
xy: 616, 625
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_15
|
||||
rotate: false
|
||||
xy: 309, 29
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_16
|
||||
rotate: false
|
||||
xy: 616, 327
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_17
|
||||
rotate: false
|
||||
xy: 616, 29
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_9
|
||||
rotate: false
|
||||
xy: 2, 625
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
|
||||
raptor-walk3.png
|
||||
size: 1024,1024
|
||||
format: RGBA8888
|
||||
filter: Linear,Linear
|
||||
repeat: none
|
||||
raptor-walk_18
|
||||
rotate: false
|
||||
xy: 2, 625
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_19
|
||||
rotate: false
|
||||
xy: 2, 327
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_20
|
||||
rotate: false
|
||||
xy: 309, 625
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_21
|
||||
rotate: false
|
||||
xy: 2, 29
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_22
|
||||
rotate: false
|
||||
xy: 309, 327
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_23
|
||||
rotate: false
|
||||
xy: 616, 625
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_24
|
||||
rotate: false
|
||||
xy: 309, 29
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_25
|
||||
rotate: false
|
||||
xy: 616, 327
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_26
|
||||
rotate: false
|
||||
xy: 616, 29
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
|
||||
raptor-walk4.png
|
||||
size: 1024,1024
|
||||
format: RGBA8888
|
||||
filter: Linear,Linear
|
||||
repeat: none
|
||||
raptor-walk_27
|
||||
rotate: false
|
||||
xy: 2, 625
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_28
|
||||
rotate: false
|
||||
xy: 2, 327
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_29
|
||||
rotate: false
|
||||
xy: 309, 625
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_30
|
||||
rotate: false
|
||||
xy: 2, 29
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_31
|
||||
rotate: false
|
||||
xy: 309, 327
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor-walk_32
|
||||
rotate: false
|
||||
xy: 616, 625
|
||||
size: 305, 296
|
||||
orig: 305, 296
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
BIN
spine-ts/webgl/example/demos/assets/raptor-walk.png
Normal file
BIN
spine-ts/webgl/example/demos/assets/raptor-walk.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 701 KiB |
BIN
spine-ts/webgl/example/demos/assets/raptor-walk2.png
Normal file
BIN
spine-ts/webgl/example/demos/assets/raptor-walk2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 729 KiB |
BIN
spine-ts/webgl/example/demos/assets/raptor-walk3.png
Normal file
BIN
spine-ts/webgl/example/demos/assets/raptor-walk3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 693 KiB |
BIN
spine-ts/webgl/example/demos/assets/raptor-walk4.png
Normal file
BIN
spine-ts/webgl/example/demos/assets/raptor-walk4.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 492 KiB |
251
spine-ts/webgl/example/demos/assets/raptor.atlas
Normal file
251
spine-ts/webgl/example/demos/assets/raptor.atlas
Normal file
@ -0,0 +1,251 @@
|
||||
|
||||
raptor.png
|
||||
size: 512,512
|
||||
format: RGBA8888
|
||||
filter: Linear,Linear
|
||||
repeat: none
|
||||
back_arm
|
||||
rotate: false
|
||||
xy: 206, 269
|
||||
size: 23, 14
|
||||
orig: 23, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
back_bracer
|
||||
rotate: false
|
||||
xy: 253, 269
|
||||
size: 19, 14
|
||||
orig: 19, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
back_hand
|
||||
rotate: false
|
||||
xy: 303, 275
|
||||
size: 18, 17
|
||||
orig: 18, 17
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
back_knee
|
||||
rotate: false
|
||||
xy: 306, 313
|
||||
size: 24, 34
|
||||
orig: 24, 34
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
back_thigh
|
||||
rotate: false
|
||||
xy: 184, 271
|
||||
size: 20, 12
|
||||
orig: 20, 12
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
eyes_open
|
||||
rotate: false
|
||||
xy: 332, 325
|
||||
size: 23, 22
|
||||
orig: 23, 22
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
front_arm
|
||||
rotate: false
|
||||
xy: 33, 2
|
||||
size: 24, 15
|
||||
orig: 24, 15
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
front_bracer
|
||||
rotate: false
|
||||
xy: 231, 268
|
||||
size: 20, 15
|
||||
orig: 20, 15
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
front_hand
|
||||
rotate: false
|
||||
xy: 489, 417
|
||||
size: 21, 19
|
||||
orig: 21, 19
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
front_open_hand
|
||||
rotate: false
|
||||
xy: 465, 414
|
||||
size: 22, 22
|
||||
orig: 22, 22
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
front_thigh
|
||||
rotate: false
|
||||
xy: 2, 2
|
||||
size: 29, 15
|
||||
orig: 29, 15
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
gun
|
||||
rotate: false
|
||||
xy: 309, 349
|
||||
size: 53, 52
|
||||
orig: 53, 52
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
gun_nohand
|
||||
rotate: false
|
||||
xy: 100, 218
|
||||
size: 53, 51
|
||||
orig: 53, 51
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
head
|
||||
rotate: false
|
||||
xy: 2, 63
|
||||
size: 68, 75
|
||||
orig: 68, 75
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
lower_leg
|
||||
rotate: false
|
||||
xy: 155, 220
|
||||
size: 37, 49
|
||||
orig: 37, 49
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
mouth_smile
|
||||
rotate: false
|
||||
xy: 59, 2
|
||||
size: 23, 15
|
||||
orig: 23, 15
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
neck
|
||||
rotate: false
|
||||
xy: 86, 224
|
||||
size: 9, 10
|
||||
orig: 9, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor_arm_back
|
||||
rotate: false
|
||||
xy: 407, 359
|
||||
size: 41, 43
|
||||
orig: 41, 43
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor_body
|
||||
rotate: false
|
||||
xy: 2, 367
|
||||
size: 305, 143
|
||||
orig: 305, 143
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor_front_arm
|
||||
rotate: false
|
||||
xy: 364, 350
|
||||
size: 41, 51
|
||||
orig: 41, 51
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor_front_leg
|
||||
rotate: false
|
||||
xy: 2, 236
|
||||
size: 96, 129
|
||||
orig: 96, 129
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor_hindleg_back
|
||||
rotate: false
|
||||
xy: 309, 403
|
||||
size: 85, 107
|
||||
orig: 85, 107
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor_horn
|
||||
rotate: false
|
||||
xy: 184, 325
|
||||
size: 91, 40
|
||||
orig: 91, 40
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor_horn_back
|
||||
rotate: false
|
||||
xy: 184, 285
|
||||
size: 88, 38
|
||||
orig: 88, 38
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor_jaw
|
||||
rotate: false
|
||||
xy: 396, 438
|
||||
size: 76, 72
|
||||
orig: 76, 72
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor_saddle_noshadow
|
||||
rotate: false
|
||||
xy: 2, 140
|
||||
size: 82, 94
|
||||
orig: 82, 94
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor_saddle_strap_front
|
||||
rotate: false
|
||||
xy: 474, 463
|
||||
size: 29, 47
|
||||
orig: 29, 47
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor_saddle_strap_rear
|
||||
rotate: false
|
||||
xy: 274, 280
|
||||
size: 27, 37
|
||||
orig: 27, 37
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor_saddle_w_shadow
|
||||
rotate: false
|
||||
xy: 100, 271
|
||||
size: 82, 94
|
||||
orig: 82, 94
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
raptor_tongue
|
||||
rotate: false
|
||||
xy: 396, 404
|
||||
size: 43, 32
|
||||
orig: 43, 32
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
stirrup_back
|
||||
rotate: false
|
||||
xy: 303, 294
|
||||
size: 22, 17
|
||||
orig: 22, 17
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
stirrup_front
|
||||
rotate: false
|
||||
xy: 441, 411
|
||||
size: 22, 25
|
||||
orig: 22, 25
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
stirrup_strap
|
||||
rotate: false
|
||||
xy: 474, 438
|
||||
size: 24, 23
|
||||
orig: 24, 23
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
torso
|
||||
rotate: false
|
||||
xy: 277, 319
|
||||
size: 27, 46
|
||||
orig: 27, 46
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
visor
|
||||
rotate: false
|
||||
xy: 2, 19
|
||||
size: 65, 42
|
||||
orig: 65, 42
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
2621
spine-ts/webgl/example/demos/assets/raptor.json
Normal file
2621
spine-ts/webgl/example/demos/assets/raptor.json
Normal file
File diff suppressed because one or more lines are too long
BIN
spine-ts/webgl/example/demos/assets/raptor.png
Normal file
BIN
spine-ts/webgl/example/demos/assets/raptor.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 149 KiB |
981
spine-ts/webgl/example/demos/assets/spineboy-mesh.json
Normal file
981
spine-ts/webgl/example/demos/assets/spineboy-mesh.json
Normal file
@ -0,0 +1,981 @@
|
||||
{
|
||||
"skeleton": { "hash": "F8rkPuRWVWWeoK90PmJAvIALFjY", "spine": "3.4.02", "width": 0, "height": 0, "images": "./images/" },
|
||||
"bones": [
|
||||
{ "name": "root" },
|
||||
{ "name": "hip", "parent": "root", "y": 247.26 },
|
||||
{ "name": "rear_foot_ik", "parent": "root", "x": 61.9, "y": 0.42, "color": "ff3f00ff" },
|
||||
{ "name": "rear_ankle_ik", "parent": "rear_foot_ik", "x": -33.9, "y": 37.33, "color": "ff3f00ff" },
|
||||
{ "name": "rear_thigh", "parent": "hip", "length": 85.71, "rotation": -72.54, "x": 8.91, "y": -5.62, "color": "ff000dff" },
|
||||
{ "name": "rear_shin", "parent": "rear_thigh", "length": 121.87, "rotation": -19.83, "x": 86.1, "y": -1.32, "color": "ff000dff" },
|
||||
{ "name": "rear_foot", "parent": "rear_shin", "length": 51.58, "rotation": 45.77, "x": 121.45, "y": -0.75, "color": "ff000dff" },
|
||||
{
|
||||
"name": "back_foot_tip",
|
||||
"parent": "rear_foot",
|
||||
"length": 50.3,
|
||||
"rotation": -0.85,
|
||||
"x": 51.16,
|
||||
"y": 0.23,
|
||||
"inheritRotation": false,
|
||||
"color": "ff000dff"
|
||||
},
|
||||
{ "name": "front_foot_ik", "parent": "root", "x": -13.52, "y": 0.04, "color": "ff3f00ff" },
|
||||
{ "name": "front_ankle_ik", "parent": "front_foot_ik", "x": -28.39, "y": 29.06, "color": "ff3f00ff" },
|
||||
{ "name": "torso", "parent": "hip", "length": 127.55, "rotation": 103.82, "x": -1.61, "y": 4.9, "color": "e0da19ff" },
|
||||
{ "name": "front_upper_arm", "parent": "torso", "length": 69.45, "rotation": 168.37, "x": 103.75, "y": 19.32, "color": "00ff04ff" },
|
||||
{
|
||||
"name": "front_bracer",
|
||||
"parent": "front_upper_arm",
|
||||
"length": 40.57,
|
||||
"rotation": 18.29,
|
||||
"x": 68.8,
|
||||
"y": -0.68,
|
||||
"color": "00ff04ff"
|
||||
},
|
||||
{ "name": "front_fist", "parent": "front_bracer", "length": 65.38, "rotation": 12.43, "x": 40.56, "y": 0.19, "color": "00ff04ff" },
|
||||
{ "name": "front_thigh", "parent": "hip", "length": 74.8, "rotation": -95.51, "x": -17.45, "y": -11.64, "color": "00ff04ff" },
|
||||
{ "name": "front_shin", "parent": "front_thigh", "length": 128.76, "rotation": -2.21, "x": 78.69, "y": 1.6, "color": "00ff04ff" },
|
||||
{ "name": "front_foot", "parent": "front_shin", "length": 41, "rotation": 51.26, "x": 128.75, "y": -0.33, "color": "00ff04ff" },
|
||||
{
|
||||
"name": "front_foot_tip",
|
||||
"parent": "front_foot",
|
||||
"length": 56.02,
|
||||
"rotation": -1.67,
|
||||
"x": 41.42,
|
||||
"y": -0.08,
|
||||
"inheritRotation": false,
|
||||
"color": "00ff04ff"
|
||||
},
|
||||
{ "name": "rear_upper_arm", "parent": "torso", "length": 51.93, "rotation": -169.55, "x": 92.35, "y": -19.22, "color": "ff000dff" },
|
||||
{ "name": "rear_bracer", "parent": "rear_upper_arm", "length": 34.55, "rotation": 23.15, "x": 51.35, "color": "ff000dff" },
|
||||
{ "name": "gun", "parent": "rear_bracer", "length": 43.1, "rotation": 5.34, "x": 34.42, "y": -0.45, "color": "ff000dff" },
|
||||
{ "name": "gunTip", "parent": "gun", "rotation": 6.83, "x": 201.04, "y": 52.13, "color": "ff000dff" },
|
||||
{ "name": "neck", "parent": "torso", "length": 25.45, "rotation": -31.53, "x": 127.49, "y": -0.3, "color": "e0da19ff" },
|
||||
{ "name": "head", "parent": "neck", "length": 131.79, "rotation": 23.18, "x": 27.66, "y": -0.25, "color": "e0da19ff" },
|
||||
{ "name": "hair1", "parent": "head", "length": 47.22, "rotation": -49.1, "x": 149.82, "y": -59.77, "color": "e0da19ff" },
|
||||
{ "name": "hair2", "parent": "hair1", "length": 55.56, "rotation": 50.41, "x": 47.22, "y": 0.18, "color": "e0da19ff" },
|
||||
{ "name": "hair3", "parent": "head", "length": 62.22, "rotation": -32.16, "x": 164.13, "y": 3.68, "color": "e0da19ff" },
|
||||
{ "name": "hair4", "parent": "hair3", "length": 80.28, "rotation": 83.7, "x": 62.22, "y": -0.03, "color": "e0da19ff" }
|
||||
],
|
||||
"slots": [
|
||||
{ "name": "rear_upper_arm", "bone": "rear_upper_arm", "attachment": "rear_upper_arm" },
|
||||
{ "name": "rear_bracer", "bone": "rear_bracer", "attachment": "rear_bracer" },
|
||||
{ "name": "gun", "bone": "gun", "attachment": "gun" },
|
||||
{ "name": "rear_foot", "bone": "rear_foot", "attachment": "rear_foot" },
|
||||
{ "name": "rear_thigh", "bone": "rear_thigh", "attachment": "rear_thigh" },
|
||||
{ "name": "rear_shin", "bone": "rear_shin", "attachment": "rear_shin" },
|
||||
{ "name": "neck", "bone": "neck", "attachment": "neck" },
|
||||
{ "name": "torso", "bone": "torso", "attachment": "torso" },
|
||||
{ "name": "front_upper_arm", "bone": "front_upper_arm", "attachment": "front_upper_arm" },
|
||||
{ "name": "head", "bone": "head", "attachment": "head" },
|
||||
{ "name": "eye", "bone": "head", "attachment": "eye_indifferent" },
|
||||
{ "name": "front_thigh", "bone": "front_thigh", "attachment": "front_thigh" },
|
||||
{ "name": "front_foot", "bone": "front_foot", "attachment": "front_foot" },
|
||||
{ "name": "front_shin", "bone": "front_shin", "attachment": "front_shin" },
|
||||
{ "name": "mouth", "bone": "head", "attachment": "mouth_grind" },
|
||||
{ "name": "goggles", "bone": "head", "attachment": "goggles" },
|
||||
{ "name": "front_bracer", "bone": "front_bracer", "attachment": "front_bracer" },
|
||||
{ "name": "front_fist", "bone": "front_fist", "attachment": "front_fist_closed" },
|
||||
{ "name": "muzzle", "bone": "gunTip", "blend": "additive" },
|
||||
{ "name": "head-bb", "bone": "head" }
|
||||
],
|
||||
"ik": [
|
||||
{
|
||||
"name": "front_ankle_ik",
|
||||
"bones": [ "front_thigh", "front_shin" ],
|
||||
"target": "front_ankle_ik",
|
||||
"bendPositive": false
|
||||
},
|
||||
{
|
||||
"name": "front_foot_ik",
|
||||
"bones": [ "front_foot" ],
|
||||
"target": "front_foot_ik"
|
||||
},
|
||||
{
|
||||
"name": "rear_ankle_ik",
|
||||
"bones": [ "rear_thigh", "rear_shin" ],
|
||||
"target": "rear_ankle_ik",
|
||||
"bendPositive": false
|
||||
},
|
||||
{
|
||||
"name": "rear_foot_ik",
|
||||
"bones": [ "rear_foot" ],
|
||||
"target": "rear_foot_ik"
|
||||
}
|
||||
],
|
||||
"skins": {
|
||||
"default": {
|
||||
"eye": {
|
||||
"eye_indifferent": {
|
||||
"type": "mesh",
|
||||
"uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ],
|
||||
"triangles": [ 1, 3, 0, 1, 2, 3 ],
|
||||
"vertices": [ 59.16, -86.8, 28.32, 0.92, 112.27, 30.44, 143.11, -57.28 ],
|
||||
"hull": 4,
|
||||
"edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ],
|
||||
"width": 93,
|
||||
"height": 89
|
||||
},
|
||||
"eye_surprised": { "x": 85.72, "y": -28.18, "rotation": -70.63, "width": 93, "height": 89 }
|
||||
},
|
||||
"front_bracer": {
|
||||
"front_bracer": { "x": 12.03, "y": -1.67, "rotation": 79.59, "width": 58, "height": 80 }
|
||||
},
|
||||
"front_fist": {
|
||||
"front_fist_closed": { "x": 35.49, "y": 6, "rotation": 67.16, "width": 75, "height": 82 },
|
||||
"front_fist_open": { "x": 39.56, "y": 7.76, "rotation": 67.16, "width": 86, "height": 87 }
|
||||
},
|
||||
"front_foot": {
|
||||
"front_foot": {
|
||||
"type": "mesh",
|
||||
"uvs": [ 0.59417, 0.23421, 0.62257, 0.30335, 0.65009, 0.37035, 0.67637, 0.38403, 0.72068, 0.40709, 0.76264, 0.42894, 1, 0.70375, 1, 1, 0.65517, 1, 0.3644, 1, 0, 1, 0, 0.39196, 0, 0, 0.17845, 0, 0.49795, 0 ],
|
||||
"triangles": [ 8, 6, 7, 8, 5, 6, 8, 4, 5, 4, 8, 3, 8, 9, 3, 9, 2, 3, 2, 10, 1, 2, 9, 10, 1, 11, 0, 0, 11, 13, 13, 14, 0, 11, 1, 10, 11, 12, 13 ],
|
||||
"vertices": [ 2, 16, 18.17, 41.57, 0.72255, 17, 12.46, 46.04, 0.27744, 2, 16, 24.08, 40.75999, 0.57406, 17, 16.12, 41.34, 0.42592, 2, 16, 29.8, 39.97, 0.47663, 17, 19.67, 36.77, 0.52336, 2, 16, 32.8, 41.66, 0.37452, 17, 22.99, 35.89, 0.62547, 2, 16, 37.86, 44.51, 0.24772, 17, 28.6, 34.4, 0.75227, 2, 16, 42.65, 47.21, 0.17783, 17, 33.91, 32.98, 0.82216, 1, 17, 64.15, 14.56, 1, 1, 17, 64.51, -5.87, 1, 1, 17, 21.07, -6.63, 1, 2, 16, 35.38, -16.16, 0.99998, 17, -15.54, -7.28, 1.0E-5, 2, 16, 3.1, -48.81, 1, 17, -61.44, -8.09, 0, 2, 16, -26.72, -19.31, 1, 17, -62.18, 33.84, 0, 2, 16, -45.95, -0.29, 1, 17, -62.66, 60.88, 0, 1, 16, -30.14, 15.69, 1, 2, 16, -1.84, 44.31, 0.91511, 17, 0.05, 61.98, 0.08488 ],
|
||||
"hull": 15,
|
||||
"edges": [ 14, 16, 16, 18, 18, 20, 4, 18, 20, 22, 22, 24, 24, 26, 26, 28, 22, 26, 12, 14, 10, 12, 2, 4, 2, 20, 4, 6, 6, 16, 2, 0, 0, 28, 6, 8, 8, 10 ],
|
||||
"width": 126,
|
||||
"height": 69
|
||||
},
|
||||
"front_foot_bend1": { "x": 22.86, "y": 20.24, "rotation": 45.32, "width": 128, "height": 70 },
|
||||
"front_foot_bend2": { "x": 8.16, "y": 19.57, "rotation": 45.32, "width": 108, "height": 93 }
|
||||
},
|
||||
"front_shin": {
|
||||
"front_shin": { "x": 60.92, "y": -3.9, "rotation": 96.59, "width": 82, "height": 184 }
|
||||
},
|
||||
"front_thigh": {
|
||||
"front_thigh": { "x": 42.47, "y": 4.44, "rotation": 84.86, "width": 48, "height": 112 }
|
||||
},
|
||||
"front_upper_arm": {
|
||||
"front_upper_arm": { "x": 28.3, "y": 7.37, "rotation": 97.89, "width": 54, "height": 97 }
|
||||
},
|
||||
"goggles": {
|
||||
"goggles": {
|
||||
"type": "mesh",
|
||||
"uvs": [ 0.53653, 0.04113, 0.72921, 0.16035, 0.91666, 0.33222, 0.97046, 0.31329, 1, 0.48053, 0.95755, 0.57329, 0.88825, 0.63279, 0.86877, 0.78962, 0.77403, 0.86749, 0.72628, 1, 0.60713, 0.93862, 0.496, 0.88138, 0.41557, 0.75026, 0.32547, 0.70084, 0.2782, 0.58256, 0.17209, 0.63281, 0.17228, 0.75071, 0.1078, 0.79897, 0, 0.32304, 0, 0.12475, 0.07372, 0.07343, 0.15423, 0.10733, 0.23165, 0.13994, 0.30313, 0.02256, 0.34802, 0, 0.42978, 0.69183, 0.39475, 0.51041, 0.39488, 0.31511, 0.45878, 0.23197, 0.56501, 0.28108, 0.6996, 0.39216, 0.82039, 0.54203, 0.85737, 0.62342, 0.91107, 0.51407, 0.72638, 0.32146, 0.58763, 0.19609, 0.48074, 0.11268, 0.37822, 0.05501, 0.32869, 0.17866, 0.31899, 0.30499, 0.36035, 0.53798, 0.40327, 0.70072, 0.30058, 0.55837, 0.21956, 0.2815, 0.09963, 0.28942, 0.56862, 0.4368, 0.4911, 0.37156, 0.51184, 0.52092, 0.67018, 0.59303, 0.7619, 0.68574, 0.73296, 0.43354 ],
|
||||
"triangles": [ 49, 8, 48, 9, 48, 8, 12, 25, 11, 48, 9, 10, 47, 48, 10, 47, 10, 25, 25, 10, 11, 8, 49, 7, 17, 15, 16, 17, 18, 15, 49, 32, 7, 7, 32, 6, 41, 42, 40, 12, 41, 25, 41, 12, 42, 13, 14, 42, 12, 13, 42, 41, 40, 25, 40, 26, 25, 25, 26, 47, 49, 31, 32, 31, 49, 50, 18, 44, 15, 42, 14, 44, 14, 15, 44, 5, 6, 33, 6, 32, 33, 32, 31, 33, 47, 45, 48, 49, 48, 50, 50, 45, 30, 50, 48, 45, 42, 44, 43, 5, 33, 4, 42, 39, 40, 42, 43, 39, 31, 50, 33, 40, 39, 26, 45, 47, 46, 33, 2, 4, 2, 33, 34, 47, 26, 46, 26, 27, 46, 26, 39, 27, 2, 3, 4, 30, 45, 29, 30, 34, 50, 33, 50, 34, 45, 46, 29, 30, 29, 34, 27, 28, 46, 46, 28, 29, 18, 19, 44, 29, 35, 34, 2, 34, 1, 34, 35, 1, 28, 27, 38, 27, 39, 38, 39, 43, 38, 44, 19, 21, 44, 21, 43, 21, 19, 20, 43, 22, 38, 43, 21, 22, 29, 28, 35, 28, 36, 35, 28, 38, 36, 36, 0, 35, 35, 0, 1, 22, 23, 38, 38, 37, 36, 37, 23, 24, 37, 38, 23, 36, 37, 0, 37, 24, 0 ],
|
||||
"vertices": [ 172.08, 22.81, 170.09, -31.19, 159.41, -86.8, 167.03, -99, 143.4, -115.48, 125.2, -110.14, 109.88, -96.35, 83.64, -100.19, 63.25, -81.15, 38.37, -76.69, 37.66, -43.98, 37.00999, -13.47, 50.57, 13.54, 50.51, 38.45, 64.94, 56.6, 47.89, 79.94999, 29.45, 73.42, 16.31, 86.63, 81.5, 139.38, 112.55, 150.29, 126.97, 134.97, 128.63, 113.28, 130.22, 92.43, 154.79, 81.29, 162.21, 71.48, 60.96, 13.26, 86.33, 31.87, 116.92, 42.6, 135.47, 31.44, 136.98, 2.58, 131.23, -36.66, 118.22, -74.65, 108.68, -88.23, 130.45, -95.43, 144.62, -39.36, 152.24, 1.69, 156.05, 32.59999, 156.21, 61.01, 132.56, 66.4, 111.94, 61.83, 79.03, 38.83, 57.27, 19.29999, 70.67, 52.42, 107.01, 87.61, 95.39, 116.7, 112.91, -6.87, 116.41, 15.8, 94.82, 2.47, 97.23, -40.47, 90.66, -68.16, 127.64, -47.15 ],
|
||||
"hull": 25,
|
||||
"edges": [ 36, 34, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 18, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 0, 48, 48, 46, 46, 44, 36, 38, 40, 38, 24, 50, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 62, 64, 64, 12, 8, 66, 66, 68, 68, 70, 70, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 24, 24, 84, 84, 86, 86, 44, 40, 42, 42, 44, 42, 88, 88, 30, 58, 90, 90, 92, 92, 94, 18, 20, 20, 22, 94, 20, 18, 96, 96, 98, 60, 100, 100, 62, 98, 100 ],
|
||||
"width": 261,
|
||||
"height": 166
|
||||
}
|
||||
},
|
||||
"gun": {
|
||||
"gun": { "x": 77.3, "y": 16.4, "rotation": 60.82, "width": 210, "height": 203 }
|
||||
},
|
||||
"head": {
|
||||
"head": {
|
||||
"type": "mesh",
|
||||
"uvs": [ 0.75918, 0.06107, 0.88392, 0.17892, 0.90174, 0.30856, 0.94223, 0.1966, 1, 0.26584, 1, 0.42199, 0.95863, 0.46992, 0.92118, 0.51333, 0.85957, 0.53469, 0.78388, 0.65605, 0.74384, 0.74838, 0.85115, 0.75151, 0.84828, 0.82563, 0.8178, 0.85367, 0.75598, 0.85906, 0.76236, 0.90467, 0.65875, 1, 0.38336, 1, 0.18579, 0.85403, 0.12741, 0.8109, 0.06024, 0.69209, 0, 0.58551, 0, 0.41021, 0.08529, 0.20691, 0.24243, 0.14504, 0.49999, 0.14209, 0.50323, 0.07433, 0.41738, 0, 0.57613, 0, 0.85059, 0.36086, 0.73431, 0.43206, 0.6848, 0.3127, 0.72164, 0.16717, 0.55931, 0.04153, 0.44763, 0.22894, 0.23925, 0.26559, 0.71271, 0.44035, 0.56992, 0.38299, 0.41678, 0.3351, 0.29299, 0.31496, 0.70801, 0.44501, 0.56676, 0.38976, 0.4152, 0.34416, 0.28753, 0.33017, 0.88988, 0.50176, 0.30388, 0.73462, 0.2646, 0.65674, 0.21414, 0.61583, 0.14612, 0.62193, 0.10315, 0.66636, 0.10357, 0.72556, 0.14505, 0.79163, 0.20263, 0.81355, 0.27872, 0.80158, 0.34946, 0.7376, 0.23073, 0.57073, 0.08878, 0.60706, 0.2946, 0.8129, 0.73005, 0.87883, 0.69804, 0.87348, 0.66165, 0.79681 ],
|
||||
"triangles": [ 34, 25, 31, 37, 38, 34, 31, 32, 29, 31, 37, 34, 37, 41, 38, 30, 31, 29, 36, 37, 31, 33, 27, 28, 26, 27, 33, 0, 33, 28, 32, 33, 0, 32, 0, 1, 33, 25, 26, 33, 32, 25, 31, 25, 32, 2, 32, 1, 2, 3, 4, 2, 29, 32, 2, 4, 5, 29, 2, 5, 6, 29, 5, 30, 36, 31, 30, 29, 6, 44, 30, 6, 36, 30, 44, 34, 24, 25, 35, 23, 24, 35, 24, 34, 39, 35, 34, 39, 22, 35, 38, 39, 34, 42, 39, 38, 43, 39, 42, 41, 42, 38, 22, 23, 35, 43, 22, 39, 40, 37, 36, 41, 37, 40, 7, 44, 6, 8, 36, 44, 40, 36, 8, 8, 44, 7, 55, 22, 43, 56, 21, 22, 55, 56, 22, 55, 48, 56, 47, 48, 55, 9, 40, 8, 55, 54, 46, 42, 55, 43, 47, 55, 46, 49, 56, 48, 20, 21, 56, 20, 56, 49, 50, 49, 48, 20, 49, 50, 46, 54, 45, 54, 55, 41, 55, 42, 41, 9, 60, 40, 46, 51, 50, 60, 41, 40, 10, 60, 9, 54, 41, 60, 46, 52, 51, 19, 50, 51, 50, 48, 47, 47, 46, 50, 46, 45, 52, 20, 50, 19, 57, 53, 45, 57, 45, 54, 53, 52, 45, 12, 10, 11, 13, 10, 12, 18, 51, 52, 19, 51, 18, 18, 52, 53, 18, 53, 57, 14, 10, 13, 60, 10, 14, 59, 60, 14, 58, 59, 14, 58, 14, 15, 17, 54, 60, 16, 17, 60, 57, 54, 17, 18, 57, 17, 59, 16, 60, 16, 59, 58, 16, 58, 15 ],
|
||||
"vertices": [ 1, 27, 41.97, -41.79, 1, 3, 25, 73.46, 27.54, 0.18925, 27, -5.75, -51.7, 0.72418, 26, 112.98, -11.43, 0.08656, 3, 25, 38.23, 10.98, 0.84283, 27, -41.00999, -35.22, 0.09705, 26, 92.72, -44.67, 0.0601, 1, 25, 73.35, 10.89, 1, 1, 25, 58.59, -10.38, 1, 2, 24, 75.49, -4.55, 0.10257, 25, 14.35, -24.8, 0.89742, 2, 24, 59.82, -13.72, 0.41734, 25, -2.69, -18.57, 0.58265, 1, 23, 163.06, -108.68, 1, 1, 23, 151.52, -95.04, 1, 1, 23, 110.6, -87.69, 1, 1, 23, 81.05, -86.58, 1, 1, 23, 89.81, -114.32, 1, 1, 23, 68.72, -120.91, 1, 1, 23, 58.1, -115.89, 1, 1, 23, 51.03, -100.62, 1, 1, 23, 38.78, -106.76, 1, 1, 23, 2.67, -89.69, 1, 1, 23, -22.07, -19.29999, 1, 1, 23, 1.19, 45.62, 1, 1, 23, 8.07, 64.81, 1, 1, 23, 35.43, 93.72, 1, 1, 23, 59.98, 119.66, 1, 1, 23, 109.25, 136.98, 1, 1, 23, 174.07, 135.27, 1, 2, 23, 205.58, 101.22, 0.83763, 26, -16.79999, 104.63, 0.16236, 2, 27, 58.93, 30.5, 0.60735, 26, 38.37, 61.89, 0.39264, 2, 27, 75.55, 19, 0.94502, 26, 51.62, 77.15, 0.05497, 1, 27, 106.69, 26.9, 1, 1, 27, 83.78, -9.5, 1, 4, 24, 44.52, 27.24, 0.19601, 25, 19.12, 19.33, 0.58066, 27, -46.82, -15.19, 0.07453, 26, 72.17, -48.24, 0.14877, 2, 24, 7.42, 19.08, 0.79203, 26, 34.31, -45.24, 0.20796, 1, 26, 45.94, -9.06, 1, 1, 27, 20.62, -16.35, 1, 1, 27, 75.73, 0.94, 1, 3, 23, 200.44, 40.47, 0.4822, 27, 44.58, 56.29, 0.14949, 26, 11.16, 50.46, 0.3683, 1, 23, 171.41, 90.11, 1, 2, 24, 1.07, 18.93, 0.79203, 26, 28.19, -43.54, 0.20796, 3, 23, 168.13, -6.01, 0.11484, 24, -28.63, 49.03, 0.13133, 26, 8.54, -6.08, 0.75382, 2, 23, 167.82, 37.86, 0.27101, 26, -15.06, 30.9, 0.72898, 1, 23, 162.36, 71.5, 1, 1, 23, 163.1, -47.44, 1, 1, 23, 165.94, -5.87, 1, 1, 23, 165.14, 37.37, 1, 1, 23, 157.6, 71.39, 1, 1, 23, 163.5, -99.53, 1, 1, 23, 45.37, 27.24, 1, 1, 23, 63.73, 44.98, 1, 1, 23, 70.69999, 61.92, 1, 1, 23, 62.87, 78.69999, 1, 1, 23, 46.52, 85.3, 1, 1, 23, 29.92, 79.33999, 1, 1, 23, 15.07, 62.21, 1, 1, 23, 14.09, 45.32, 1, 1, 23, 24.29, 27.05, 1, 1, 23, 48.63, 15.29, 1, 1, 23, 84.87, 62.14, 1, 1, 23, 61.9, 94.83, 1, 1, 23, 22.54, 21.87, 1, 1, 23, 43.14, -95.94, 1, 1, 23, 41.77, -87.23, 1, 1, 23, 60.05, -70.35, 1 ],
|
||||
"hull": 29,
|
||||
"edges": [ 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 0, 56, 54, 56, 54, 52, 52, 50, 50, 48, 48, 46, 46, 44, 42, 44, 32, 34, 4, 58, 58, 60, 62, 64, 64, 66, 66, 54, 50, 68, 68, 70, 70, 44, 60, 72, 62, 74, 72, 74, 74, 76, 76, 78, 78, 44, 16, 80, 80, 82, 82, 84, 84, 86, 86, 44, 14, 88, 88, 72, 14, 16, 10, 12, 12, 14, 12, 60, 90, 92, 92, 94, 94, 96, 96, 98, 98, 100, 100, 102, 102, 104, 104, 106, 106, 90, 108, 110, 110, 112, 38, 40, 40, 42, 112, 40, 34, 36, 36, 38, 36, 114, 114, 108, 30, 32, 30, 28, 24, 26, 28, 26, 22, 24, 22, 20, 20, 18, 18, 16, 28, 116, 116, 118, 118, 120, 120, 20 ],
|
||||
"width": 271,
|
||||
"height": 298
|
||||
}
|
||||
},
|
||||
"head-bb": {
|
||||
"head": {
|
||||
"type": "boundingbox",
|
||||
"vertexCount": 6,
|
||||
"vertices": [ -19.14, -70.3, 40.8, -118.07, 257.77, -115.61, 285.16, 57.18, 120.77, 164.95, -5.06, 76.94 ]
|
||||
}
|
||||
},
|
||||
"mouth": {
|
||||
"mouth_grind": {
|
||||
"type": "mesh",
|
||||
"uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ],
|
||||
"triangles": [ 1, 3, 0, 1, 2, 3 ],
|
||||
"vertices": [ 11.28, -85.88, -19.56, 1.84, 36.09, 21.41, 66.93, -66.31 ],
|
||||
"hull": 4,
|
||||
"edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ],
|
||||
"width": 93,
|
||||
"height": 59
|
||||
},
|
||||
"mouth_oooo": { "x": 23.68, "y": -32.23, "rotation": -70.63, "width": 93, "height": 59 },
|
||||
"mouth_smile": { "x": 23.68, "y": -32.23, "rotation": -70.63, "width": 93, "height": 59 }
|
||||
},
|
||||
"muzzle": {
|
||||
"muzzle": { "x": 18.25, "y": 5.44, "rotation": 0.15, "width": 462, "height": 400 }
|
||||
},
|
||||
"neck": {
|
||||
"neck": { "x": 9.76, "y": -3.01, "rotation": -55.22, "width": 36, "height": 41 }
|
||||
},
|
||||
"rear_bracer": {
|
||||
"rear_bracer": { "x": 11.15, "y": -2.2, "rotation": 66.17, "width": 56, "height": 72 }
|
||||
},
|
||||
"rear_foot": {
|
||||
"rear_foot": {
|
||||
"type": "mesh",
|
||||
"uvs": [ 0.48368, 0.1387, 0.5199, 0.21423, 0.55099, 0.27906, 0.58838, 0.29816, 0.63488, 0.32191, 0.77342, 0.39266, 1, 0.73346, 1, 1, 0.59435, 1, 0.3116, 1, 0, 1, 0, 0.41396, 0.1363, 0, 0.41716, 0 ],
|
||||
"triangles": [ 8, 6, 7, 6, 8, 5, 5, 8, 4, 4, 8, 3, 8, 9, 3, 9, 2, 3, 2, 10, 1, 2, 9, 10, 1, 11, 0, 0, 11, 12, 12, 13, 0, 11, 1, 10 ],
|
||||
"vertices": [ 2, 6, 10.45, 29.41, 0.88824, 7, -6.74, 49.62, 0.11175, 2, 6, 16.54999, 29.27, 0.83163, 7, -2.65, 45.08, 0.16836, 2, 6, 21.79, 29.15, 0.78305, 7, 0.85, 41.18999, 0.21694, 2, 6, 25.53, 31.43, 0.67844, 7, 5.07, 40.04, 0.32155, 2, 6, 30.17, 34.27, 0.54832, 7, 10.33, 38.61, 0.45167, 2, 6, 44.01, 42.72, 0.16069, 7, 25.97, 34.36, 0.83929, 1, 7, 51.56, 13.89, 1, 2, 6, 88.08, 36.28, 0, 7, 51.54, -2.08999, 1, 2, 6, 56.58, 2.98, 0.02959, 7, 5.71, -2.05, 0.9704, 2, 6, 34.63, -20.21999, 0.99999, 7, -26.22, -2.03, 0, 2, 6, 10.43, -45.8, 0.99999, 7, -61.43, -2, 0, 2, 6, -15.1, -21.64, 1, 7, -61.4, 33.15, 0, 2, 6, -22.56, 6.61, 0.99999, 7, -45.98, 57.97, 0, 2, 6, -0.76, 29.67, 0.99219, 7, -14.25, 57.94, 0.0078 ],
|
||||
"hull": 14,
|
||||
"edges": [ 14, 12, 10, 12, 14, 16, 16, 18, 18, 20, 4, 18, 20, 22, 24, 26, 22, 24, 4, 2, 2, 20, 4, 6, 6, 16, 6, 8, 8, 10, 2, 0, 0, 26 ],
|
||||
"width": 113,
|
||||
"height": 60
|
||||
},
|
||||
"rear_foot_bend1": { "x": 29.61, "y": 18.12, "rotation": 46.59, "width": 117, "height": 66 },
|
||||
"rear_foot_bend2": { "x": 22.82, "y": 23.69, "rotation": 46.59, "width": 103, "height": 83 }
|
||||
},
|
||||
"rear_shin": {
|
||||
"rear_shin": { "x": 58.29, "y": -2.75, "rotation": 92.37, "width": 75, "height": 178 }
|
||||
},
|
||||
"rear_thigh": {
|
||||
"rear_thigh": { "x": 33.1, "y": -4.11, "rotation": 72.54, "width": 65, "height": 104 }
|
||||
},
|
||||
"rear_upper_arm": {
|
||||
"rear_upper_arm": { "x": 21.12, "y": 4.08, "rotation": 89.32, "width": 47, "height": 87 }
|
||||
},
|
||||
"torso": {
|
||||
"torso": {
|
||||
"type": "mesh",
|
||||
"uvs": [ 0.62509, 0.12672, 1, 0.2636, 1, 0.2887, 1, 0.66021, 1, 0.68245, 0.92323, 0.69258, 0.95115, 0.84965, 0.77123, 1, 0.49654, 1, 0.27181, 1, 0.13842, 0.77196, 0, 0.45614, 0, 0.19436, 0.14462, 0, 0.27801, 0, 0.72524, 0.27835, 0.76091, 0.46216, 0.84888, 0.67962, 0.68257, 0.63249, 0.53985, 0.38469, 0.25443, 0.32169, 0.30062, 0.55173, 0.39552, 0.79506, 0.26389, 0.17006, 0.52409, 0.18673 ],
|
||||
"triangles": [ 6, 17, 5, 6, 7, 17, 8, 18, 7, 7, 18, 17, 9, 22, 8, 8, 22, 18, 9, 10, 22, 10, 21, 22, 22, 21, 18, 10, 11, 21, 4, 5, 3, 5, 17, 3, 3, 17, 16, 17, 18, 16, 16, 2, 3, 21, 19, 18, 18, 19, 16, 11, 20, 21, 21, 20, 19, 19, 15, 16, 16, 15, 2, 11, 12, 20, 20, 24, 19, 19, 24, 15, 20, 23, 24, 20, 12, 23, 15, 1, 2, 24, 0, 15, 15, 0, 1, 12, 13, 23, 0, 24, 14, 14, 24, 13, 24, 23, 13 ],
|
||||
"vertices": [ 129.62, -10.38, 102.17, -45.07, 97.66, -44.71, 31, -39.45, 27.01, -39.13, 25.78, -31.49, -2.60999, -31.99, -28.2, -12.29, -26.08, 14.54, -24.34, 36.5, 17.59, 46.3, 75.33, 55.34, 122.31, 51.63, 156.07, 34.75, 155.04, 21.72, 101.64, -18.02, 68.37999, -18.9, 28.68, -24.41, 38.41999, -8.83, 83.99, 1.59, 97.5, 28.58, 55.86, 27.33, 11.47, 21.51, 124.63, 25.51, 119.63, 0.32 ],
|
||||
"hull": 15,
|
||||
"edges": [ 14, 12, 12, 10, 10, 8, 18, 20, 20, 22, 22, 24, 26, 28, 24, 26, 2, 4, 30, 4, 30, 32, 32, 34, 4, 6, 6, 8, 34, 6, 34, 36, 36, 38, 38, 40, 40, 24, 36, 14, 40, 42, 42, 44, 14, 16, 16, 18, 44, 16, 40, 46, 38, 48, 48, 30, 2, 0, 0, 28, 48, 0, 48, 26 ],
|
||||
"width": 98,
|
||||
"height": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"events": {
|
||||
"footstep": {},
|
||||
"headAttach": { "int": 3, "float": 4 },
|
||||
"headBehind": { "int": 5, "float": 6, "string": "setup" },
|
||||
"headPop": { "int": 1, "float": 2 }
|
||||
},
|
||||
"animations": {
|
||||
"run": {
|
||||
"slots": {
|
||||
"front_fist": {
|
||||
"attachment": [
|
||||
{ "time": 0, "name": "front_fist_closed" }
|
||||
]
|
||||
},
|
||||
"mouth": {
|
||||
"attachment": [
|
||||
{ "time": 0, "name": "mouth_grind" }
|
||||
]
|
||||
},
|
||||
"torso": {
|
||||
"attachment": [
|
||||
{ "time": 0, "name": "torso" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"bones": {
|
||||
"front_thigh": {
|
||||
"rotate": [
|
||||
{
|
||||
"time": 0,
|
||||
"angle": 42.05,
|
||||
"curve": [ 0.195, 0.86, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 0.0666, "angle": 46.07 },
|
||||
{ "time": 0.1333, "angle": -20.28 },
|
||||
{ "time": 0.2, "angle": -27.23 },
|
||||
{ "time": 0.2666, "angle": -47.16 },
|
||||
{ "time": 0.3333, "angle": -39.79 },
|
||||
{ "time": 0.4, "angle": -25.86 },
|
||||
{ "time": 0.4666, "angle": 14.35 },
|
||||
{ "time": 0.5333, "angle": 55.62 },
|
||||
{ "time": 0.6, "angle": 69.65 },
|
||||
{ "time": 0.6666, "angle": 86.4 },
|
||||
{ "time": 0.7333, "angle": 65.87 },
|
||||
{ "time": 0.8, "angle": 42.05 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 0, "y": 0 },
|
||||
{ "time": 0.0333, "x": -5.79, "y": 11.15 },
|
||||
{ "time": 0.0666, "x": -5.13, "y": 11.55 },
|
||||
{ "time": 0.1333, "x": -7.7, "y": 8.98 },
|
||||
{ "time": 0.5333, "x": -1.26, "y": 3.83 },
|
||||
{ "time": 0.8, "x": 0, "y": 0 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"torso": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -39.7 },
|
||||
{ "time": 0.2, "angle": -57.29 },
|
||||
{ "time": 0.4, "angle": -39.7 },
|
||||
{ "time": 0.6, "angle": -57.29 },
|
||||
{ "time": 0.8, "angle": -39.7 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
|
||||
{ "time": 0.4, "x": 0, "y": 0, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 0, "y": 0 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"rear_thigh": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -56.59 },
|
||||
{ "time": 0.0666, "angle": -21.57 },
|
||||
{ "time": 0.1333, "angle": 27.95 },
|
||||
{ "time": 0.2, "angle": 42.42 },
|
||||
{ "time": 0.2666, "angle": 62.37 },
|
||||
{ "time": 0.3333, "angle": 45.42 },
|
||||
{ "time": 0.4, "angle": 15.67 },
|
||||
{ "time": 0.4666, "angle": 28.22 },
|
||||
{ "time": 0.5333, "angle": -38.62 },
|
||||
{ "time": 0.6, "angle": -53.26 },
|
||||
{ "time": 0.6666, "angle": -79.31 },
|
||||
{ "time": 0.7333, "angle": -86.47 },
|
||||
{ "time": 0.8, "angle": -56.59 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 0, "y": 0 },
|
||||
{ "time": 0.4, "x": -6.76, "y": -3.86 },
|
||||
{ "time": 0.4333, "x": -15.85, "y": 7.28 },
|
||||
{ "time": 0.4666, "x": -13.04, "y": 4.04 },
|
||||
{ "time": 0.5, "x": -10.24, "y": 7.11 },
|
||||
{ "time": 0.5333, "x": -9.01, "y": -5.15 },
|
||||
{ "time": 0.6666, "x": -23.18, "y": -2.57 },
|
||||
{ "time": 0.8, "x": 0, "y": 0 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"rear_shin": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -74 },
|
||||
{ "time": 0.0666, "angle": -83.38 },
|
||||
{ "time": 0.1333, "angle": -106.69 },
|
||||
{ "time": 0.2, "angle": -66.01 },
|
||||
{ "time": 0.2666, "angle": -55.22 },
|
||||
{ "time": 0.3333, "angle": -24.8 },
|
||||
{
|
||||
"time": 0.4,
|
||||
"angle": 18.44,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 0.4666, "angle": -56.65 },
|
||||
{
|
||||
"time": 0.5333,
|
||||
"angle": -11.94,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 0.6666, "angle": -41.26 },
|
||||
{ "time": 0.7333, "angle": -43.6 },
|
||||
{ "time": 0.8, "angle": -74 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 0, "y": 0 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"front_upper_arm": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -89.36 },
|
||||
{ "time": 0.0666, "angle": -95.67 },
|
||||
{ "time": 0.1333, "angle": -22 },
|
||||
{ "time": 0.2, "angle": -316.04 },
|
||||
{ "time": 0.2666, "angle": -274.94 },
|
||||
{ "time": 0.3333, "angle": -273.74 },
|
||||
{ "time": 0.4, "angle": -272.09 },
|
||||
{ "time": 0.4666, "angle": -264.89 },
|
||||
{ "time": 0.5333, "angle": -320.09 },
|
||||
{ "time": 0.6, "angle": -50.83 },
|
||||
{ "time": 0.6666, "angle": -81.72 },
|
||||
{ "time": 0.7333, "angle": -83.92 },
|
||||
{ "time": 0.8, "angle": -89.36 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 6.24, "y": 10.05 },
|
||||
{ "time": 0.2666, "x": 4.95, "y": -13.13 },
|
||||
{ "time": 0.6, "x": -2.43, "y": 1.94 },
|
||||
{ "time": 0.8, "x": 6.24, "y": 10.05 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"front_bracer": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 33.43 },
|
||||
{ "time": 0.0666, "angle": 20.53 },
|
||||
{ "time": 0.1333, "angle": 15.26 },
|
||||
{ "time": 0.2, "angle": 19.28 },
|
||||
{ "time": 0.2666, "angle": 22.62 },
|
||||
{ "time": 0.3333, "angle": 37.29 },
|
||||
{ "time": 0.4, "angle": 41.53 },
|
||||
{ "time": 0.4666, "angle": 31.73 },
|
||||
{ "time": 0.5333, "angle": 67.45 },
|
||||
{ "time": 0.6666, "angle": 39.77 },
|
||||
{ "time": 0.7333, "angle": 30.95 },
|
||||
{ "time": 0.8, "angle": 33.43 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 0, "y": 0 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"front_fist": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -19.75 },
|
||||
{ "time": 0.0666, "angle": -37.11 },
|
||||
{ "time": 0.1333, "angle": -50.79 },
|
||||
{ "time": 0.2666, "angle": -12.69 },
|
||||
{ "time": 0.3333, "angle": 3.01 },
|
||||
{ "time": 0.4333, "angle": 12.05 },
|
||||
{ "time": 0.5333, "angle": 13.25 },
|
||||
{ "time": 0.8, "angle": -19.75 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 0, "y": 0 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"rear_upper_arm": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 68.68 },
|
||||
{ "time": 0.0666, "angle": 73.89 },
|
||||
{ "time": 0.1333, "angle": -9.64 },
|
||||
{ "time": 0.2, "angle": 284.27 },
|
||||
{ "time": 0.2666, "angle": 283.29 },
|
||||
{ "time": 0.3333, "angle": 278.28 },
|
||||
{ "time": 0.4, "angle": 271.02 },
|
||||
{ "time": 0.4666, "angle": 263.2 },
|
||||
{ "time": 0.5333, "angle": 314.25 },
|
||||
{ "time": 0.6, "angle": 16.83 },
|
||||
{ "time": 0.6666, "angle": 70.35 },
|
||||
{ "time": 0.7333, "angle": 73.53 },
|
||||
{ "time": 0.8, "angle": 68.68 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -2.57, "y": -8.89 },
|
||||
{ "time": 0.1333, "x": -4.68, "y": 7.2 },
|
||||
{ "time": 0.2, "x": 21.73, "y": 51.17 },
|
||||
{ "time": 0.6, "x": 4.33, "y": 2.05 },
|
||||
{ "time": 0.8, "x": -2.57, "y": -8.89 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"rear_bracer": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 31.04 },
|
||||
{ "time": 0.0666, "angle": 28.28 },
|
||||
{ "time": 0.1333, "angle": 49.36 },
|
||||
{ "time": 0.2, "angle": 59.37 },
|
||||
{ "time": 0.2666, "angle": 8.56 },
|
||||
{ "time": 0.3333, "angle": 9.38 },
|
||||
{ "time": 0.4, "angle": 11.51 },
|
||||
{ "time": 0.4666, "angle": 7.22 },
|
||||
{ "time": 0.5333, "angle": -18.44 },
|
||||
{ "time": 0.6, "angle": 11.44 },
|
||||
{ "time": 0.6666, "angle": 9.99 },
|
||||
{ "time": 0.7333, "angle": 8.28 },
|
||||
{ "time": 0.8, "angle": 31.04 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 0, "y": 0 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"neck": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 11.03 },
|
||||
{ "time": 0.2, "angle": 13.58 },
|
||||
{ "time": 0.4, "angle": 11.03 },
|
||||
{ "time": 0.6, "angle": 13.58 },
|
||||
{ "time": 0.8, "angle": 11.03 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
|
||||
{ "time": 0.4, "x": 0, "y": 0, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 0, "y": 0 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"head": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 11.03 },
|
||||
{ "time": 0.1, "angle": 12.34 },
|
||||
{ "time": 0.2, "angle": 25.55 },
|
||||
{ "time": 0.4, "angle": 11.03 },
|
||||
{ "time": 0.5, "angle": 12.34 },
|
||||
{ "time": 0.6, "angle": 25.55 },
|
||||
{ "time": 0.8, "angle": 11.03 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
|
||||
{ "time": 0.4, "x": 0, "y": 0, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 0, "y": 0 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"front_shin": {
|
||||
"rotate": [
|
||||
{
|
||||
"time": 0,
|
||||
"angle": 0,
|
||||
"curve": [ 0.481, 0.01, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 0.0666, "angle": -64.42 },
|
||||
{
|
||||
"time": 0.1333,
|
||||
"angle": -20.59,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 0.2666, "angle": -62.51 },
|
||||
{ "time": 0.3333, "angle": -79.74 },
|
||||
{ "time": 0.4, "angle": -78.28 },
|
||||
{
|
||||
"time": 0.4666,
|
||||
"angle": -118.96,
|
||||
"curve": [ 0.93, 0, 0.952, 0.95 ]
|
||||
},
|
||||
{ "time": 0.6, "angle": -88.95 },
|
||||
{ "time": 0.6666, "angle": -79.09 },
|
||||
{ "time": 0.7333, "angle": -47.77 },
|
||||
{ "time": 0.8, "angle": 0 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 0, "y": 0 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"front_foot": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 0 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"angle": -21.13,
|
||||
"curve": [ 0.121, 0.23, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 0.0666, "angle": 17.64 },
|
||||
{ "time": 0.1, "angle": 29.92 },
|
||||
{ "time": 0.1333, "angle": 16.44 },
|
||||
{ "time": 0.2, "angle": -29.22 },
|
||||
{ "time": 0.2666, "angle": -1.61 },
|
||||
{ "time": 0.3333, "angle": -10.22 },
|
||||
{ "time": 0.4666, "angle": -15.99 },
|
||||
{ "time": 0.6, "angle": 9.03 },
|
||||
{ "time": 0.7333, "angle": 17.32 },
|
||||
{ "time": 0.8, "angle": 0 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 0, "y": 0 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"rear_foot": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 0 },
|
||||
{ "time": 0.0666, "angle": -12.04 },
|
||||
{ "time": 0.1333, "angle": -0.87 },
|
||||
{ "time": 0.2, "angle": 25.81 },
|
||||
{ "time": 0.2666, "angle": 4.71 },
|
||||
{
|
||||
"time": 0.4,
|
||||
"angle": 18.09,
|
||||
"curve": [ 0.281, 0.73, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 0.4333, "angle": -1.7 },
|
||||
{ "time": 0.4666, "angle": 27.12 },
|
||||
{ "time": 0.5, "angle": 38.83 },
|
||||
{ "time": 0.5333, "angle": 30.76 },
|
||||
{ "time": 0.5666, "angle": -20.49 },
|
||||
{ "time": 0.6, "angle": -30.8 },
|
||||
{ "time": 0.6666, "angle": -1.31 },
|
||||
{ "time": 0.8, "angle": 0 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 0, "y": 0 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"gun": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 0 },
|
||||
{ "time": 0.1333, "angle": 24.72 },
|
||||
{ "time": 0.5, "angle": -11.87 },
|
||||
{ "time": 0.8, "angle": 0 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 0, "y": 0 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"hip": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 0, "curve": "stepped" },
|
||||
{ "time": 0.8, "angle": 0 }
|
||||
],
|
||||
"translate": [
|
||||
{
|
||||
"time": 0,
|
||||
"x": 0,
|
||||
"y": -24.88,
|
||||
"curve": [ 0.3, 0.8, 0.663, 0.91 ]
|
||||
},
|
||||
{
|
||||
"time": 0.0666,
|
||||
"x": 0,
|
||||
"y": -40.28,
|
||||
"curve": [ 0.456, 0, 0.339, 0.98 ]
|
||||
},
|
||||
{
|
||||
"time": 0.2666,
|
||||
"x": 0,
|
||||
"y": 20.51,
|
||||
"curve": [ 0.17, 0.52, 0.596, 0.99 ]
|
||||
},
|
||||
{ "time": 0.4, "x": 0, "y": -24.88 },
|
||||
{ "time": 0.4333, "x": 0, "y": -26.36 },
|
||||
{
|
||||
"time": 0.4666,
|
||||
"x": 0,
|
||||
"y": -45.06,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 0.6666, "x": 0, "y": 20.51 },
|
||||
{ "time": 0.8, "x": 0, "y": -24.88 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"front_foot_ik": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 0 },
|
||||
{ "time": 0.0333, "angle": -41.68 },
|
||||
{ "time": 0.1333, "angle": -102.41 },
|
||||
{ "time": 0.2, "angle": -121.43 },
|
||||
{ "time": 0.2333, "angle": -133.6 },
|
||||
{ "time": 0.2666, "angle": -139.86 },
|
||||
{ "time": 0.3333, "angle": -152.39 },
|
||||
{ "time": 0.3666, "angle": -146.32 },
|
||||
{ "time": 0.5, "angle": -143.8 },
|
||||
{ "time": 0.5333, "angle": -114.84 },
|
||||
{ "time": 0.5666, "angle": -99.08 },
|
||||
{ "time": 0.6, "angle": -63.03 },
|
||||
{ "time": 0.6333, "angle": -47.34 },
|
||||
{ "time": 0.6666, "angle": -31.04 },
|
||||
{ "time": 0.7, "angle": -25.01 },
|
||||
{ "time": 0.7666, "angle": -15.95 },
|
||||
{ "time": 0.8, "angle": 0 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 159.31, "y": 38.68 },
|
||||
{ "time": 0.0333, "x": 115.32, "y": 0.18 },
|
||||
{ "time": 0.0666, "x": 16.34, "y": 0.18 },
|
||||
{ "time": 0.1333, "x": -116.47, "y": 0.18 },
|
||||
{ "time": 0.2, "x": -210.62, "y": 126.29 },
|
||||
{ "time": 0.2333, "x": -226.11, "y": 203.77 },
|
||||
{ "time": 0.2666, "x": -223.73, "y": 258 },
|
||||
{ "time": 0.3333, "x": -208.23, "y": 250.25 },
|
||||
{ "time": 0.3666, "x": -207.64, "y": 215.69 },
|
||||
{ "time": 0.4, "x": -205.85, "y": 185.29 },
|
||||
{ "time": 0.4333, "x": -179.03, "y": 176.95 },
|
||||
{ "time": 0.4666, "x": -154, "y": 157.28 },
|
||||
{ "time": 0.5, "x": -128.97, "y": 108.41 },
|
||||
{ "time": 0.5333, "x": -76.68, "y": 75.29 },
|
||||
{ "time": 0.5666, "x": -41.24, "y": 67.74 },
|
||||
{ "time": 0.6, "x": 28.47, "y": 59.02 },
|
||||
{ "time": 0.6333, "x": 70.89, "y": 78.19 },
|
||||
{ "time": 0.6666, "x": 110.42, "y": 99 },
|
||||
{ "time": 0.7, "x": 122.21, "y": 79.58 },
|
||||
{ "time": 0.7666, "x": 145.33, "y": 44.61 },
|
||||
{ "time": 0.8, "x": 159.31, "y": 38.68 }
|
||||
]
|
||||
},
|
||||
"front_ankle_ik": {
|
||||
"translate": [
|
||||
{ "time": 0, "x": -14.25, "y": -25.95 },
|
||||
{ "time": 0.1333, "x": -13.63, "y": -34.72 },
|
||||
{ "time": 0.1666, "x": -11.41, "y": -12.61 },
|
||||
{ "time": 0.5, "x": -14.88, "y": -31.78 },
|
||||
{ "time": 0.8, "x": -14.25, "y": -25.95 }
|
||||
]
|
||||
},
|
||||
"rear_foot_ik": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 0 },
|
||||
{ "time": 0.0666, "angle": 18.55 },
|
||||
{ "time": 0.1333, "angle": 52.75 },
|
||||
{ "time": 0.1666, "angle": 87.39 },
|
||||
{ "time": 0.2333, "angle": 133.94 },
|
||||
{ "time": 0.3, "angle": 150.92 },
|
||||
{ "time": 0.3666, "angle": 168.02 },
|
||||
{ "time": 0.4, "angle": 129.09 },
|
||||
{ "time": 0.4333, "angle": 125.95 },
|
||||
{ "time": 0.5, "angle": 114.27 },
|
||||
{ "time": 0.5333, "angle": 85.36 },
|
||||
{ "time": 0.5666, "angle": 49.17 },
|
||||
{ "time": 0.6333, "angle": 9.5 },
|
||||
{ "time": 0.7, "angle": 4.15 },
|
||||
{ "time": 0.7666, "angle": -1.36 },
|
||||
{ "time": 0.8, "angle": 0 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -248.9, "y": 230.06 },
|
||||
{ "time": 0.0666, "x": -228.7, "y": 134.11 },
|
||||
{ "time": 0.1333, "x": -145.37, "y": 94.22 },
|
||||
{ "time": 0.1666, "x": -82.75, "y": 54.32 },
|
||||
{ "time": 0.2333, "x": 37.92, "y": 74.38 },
|
||||
{ "time": 0.2666, "x": 80.37, "y": 91.82 },
|
||||
{ "time": 0.3, "x": 93.21, "y": 67.3 },
|
||||
{ "time": 0.3666, "x": 99.34, "y": 35.47 },
|
||||
{ "time": 0.4, "x": 68.62, "y": 0.35 },
|
||||
{ "time": 0.4333, "x": 21.58, "y": -2.63 },
|
||||
{ "time": 0.5, "x": -92.9, "y": -2.63 },
|
||||
{ "time": 0.5333, "x": -166.79, "y": -2.63 },
|
||||
{ "time": 0.5666, "x": -252.51, "y": 57.14 },
|
||||
{ "time": 0.6333, "x": -304.31, "y": 214.02 },
|
||||
{ "time": 0.7, "x": -296.91, "y": 281.36 },
|
||||
{ "time": 0.7666, "x": -269.53, "y": 257.68 },
|
||||
{ "time": 0.8, "x": -248.9, "y": 230.06 }
|
||||
]
|
||||
},
|
||||
"rear_ankle_ik": {
|
||||
"translate": [
|
||||
{ "time": 0, "x": 85, "y": -33.59, "curve": "stepped" },
|
||||
{ "time": 0.8, "x": 85, "y": -33.59 }
|
||||
]
|
||||
},
|
||||
"back_foot_tip": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -151.51 },
|
||||
{ "time": 0.1333, "angle": -93.33 },
|
||||
{ "time": 0.1666, "angle": -70.77 },
|
||||
{ "time": 0.2333, "angle": 22.43 },
|
||||
{ "time": 0.3, "angle": 36.85 },
|
||||
{ "time": 0.3666, "angle": 34.85 },
|
||||
{ "time": 0.4, "angle": 0.76 },
|
||||
{ "time": 0.4333, "angle": 0.82, "curve": "stepped" },
|
||||
{ "time": 0.5333, "angle": 0.82 },
|
||||
{ "time": 0.5666, "angle": -61.7 },
|
||||
{ "time": 0.6333, "angle": -139.59 },
|
||||
{ "time": 0.7, "angle": -146.78 },
|
||||
{ "time": 0.8, "angle": -151.51 }
|
||||
]
|
||||
},
|
||||
"front_foot_tip": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 42.19 },
|
||||
{ "time": 0.0333, "angle": -0.23 },
|
||||
{ "time": 0.1333, "angle": -0.28 },
|
||||
{ "time": 0.1666, "angle": -59.58 },
|
||||
{ "time": 0.2, "angle": -112.55 },
|
||||
{ "time": 0.2666, "angle": -130.07 },
|
||||
{ "time": 0.3333, "angle": -146.2 },
|
||||
{ "time": 0.5, "angle": -86.48 },
|
||||
{ "time": 0.5333, "angle": -86.98 },
|
||||
{ "time": 0.5666, "angle": -66.86 },
|
||||
{ "time": 0.6, "angle": -22.89 },
|
||||
{ "time": 0.6333, "angle": -12.06 },
|
||||
{ "time": 0.7, "angle": 35.39 },
|
||||
{ "time": 0.8, "angle": 42.19 }
|
||||
]
|
||||
},
|
||||
"hair1": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 0 },
|
||||
{ "time": 0.1, "angle": -10.21 },
|
||||
{ "time": 0.2666, "angle": 7.16 },
|
||||
{ "time": 0.3666, "angle": -0.15 },
|
||||
{ "time": 0.4666, "angle": -10.21 },
|
||||
{ "time": 0.6333, "angle": 7.16 },
|
||||
{ "time": 0.7333, "angle": -0.15 },
|
||||
{ "time": 0.8, "angle": 0 }
|
||||
]
|
||||
},
|
||||
"hair2": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 0 },
|
||||
{ "time": 0.1, "angle": -10.21 },
|
||||
{ "time": 0.1666, "angle": -30.13 },
|
||||
{ "time": 0.2666, "angle": 6.38 },
|
||||
{ "time": 0.3666, "angle": -13.48 },
|
||||
{ "time": 0.4666, "angle": -10.21 },
|
||||
{ "time": 0.5333, "angle": -30.13 },
|
||||
{ "time": 0.6333, "angle": 6.38 },
|
||||
{ "time": 0.7333, "angle": -13.48 },
|
||||
{ "time": 0.8, "angle": 0 }
|
||||
]
|
||||
},
|
||||
"hair3": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 0 },
|
||||
{ "time": 0.1, "angle": -10.21 },
|
||||
{ "time": 0.2666, "angle": 7.16 },
|
||||
{ "time": 0.3666, "angle": -0.15 },
|
||||
{ "time": 0.4666, "angle": -10.21 },
|
||||
{ "time": 0.6333, "angle": 7.16 },
|
||||
{ "time": 0.7333, "angle": -0.15 },
|
||||
{ "time": 0.8, "angle": 0 }
|
||||
]
|
||||
},
|
||||
"hair4": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 0 },
|
||||
{ "time": 0.1, "angle": -10.21 },
|
||||
{ "time": 0.1666, "angle": -30.13 },
|
||||
{ "time": 0.2666, "angle": 6.38 },
|
||||
{ "time": 0.3666, "angle": -13.48 },
|
||||
{ "time": 0.4666, "angle": -10.21 },
|
||||
{ "time": 0.5333, "angle": -30.13 },
|
||||
{ "time": 0.6333, "angle": 6.38 },
|
||||
{ "time": 0.7333, "angle": -13.48 },
|
||||
{ "time": 0.8, "angle": 0 }
|
||||
]
|
||||
}
|
||||
},
|
||||
"deform": {
|
||||
"default": {
|
||||
"eye": {
|
||||
"eye_indifferent": [
|
||||
{
|
||||
"time": 0,
|
||||
"vertices": [ -0.15328, 0.70867, -0.15328, 0.70867, -0.15328, 0.70867, -0.15328, 0.70867 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.4,
|
||||
"vertices": [ 3.92968, -18.23848, 3.92968, -18.23848, 3.92968, -18.23848, 3.92968, -18.23848 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.8,
|
||||
"vertices": [ -0.15328, 0.70867, -0.15328, 0.70867, -0.15328, 0.70867, -0.15328, 0.70867 ]
|
||||
}
|
||||
]
|
||||
},
|
||||
"goggles": {
|
||||
"goggles": [
|
||||
{
|
||||
"time": 0,
|
||||
"vertices": [ -0.08837, 0.23265, -0.04028, 0.11365, -1.15417, 5.38665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.08233, 5.00095, -1.86743, 8.62226, -0.82043, 3.80258, -0.0957, 0.27987, -0.11633, 0.32749, -5.76245, 7.7601, -3.05987, 10.76796, -2.18188, 10.12056, -4.92511, 9.45659, 0, 0, 0, 0, 0.65328, -3.03142, 0.55996, -2.59837, -1.40084, 6.49587, -0.16394, 0.42825, -0.14651, 0.37985, -0.13543, 0.35089, -0.11294, 0.31703, -0.12219, 0.33459, -0.12271, 0.32937, -0.10714, 0.28684, -0.90087, 4.02339, -0.04678, 0.13842, -1.07189, 4.96331, -1.06213, 4.94195, -1.04928, 4.90511, -0.04034, 0.11959, -0.07522, 0.20426, -0.10211, 0.26987, -0.12774, 0.33331, -0.13964, 0.36775, -0.14172, 0.37709, -0.1307, 0.35703, -0.1195, 0.33389, -0.14541, 0.39531, -0.16638, 0.43952, -1.40084, 6.49587, -0.82043, 3.80258, -0.82043, 3.80258, -0.82043, 3.80258, -1.82894, 8.48513, -1.82894, 8.48513, -1.82894, 8.48513 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.4,
|
||||
"vertices": [ 1.73339, -8.03618, 0.70187, -3.25497, 0.39651, -1.84367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.08755, -5.04639, 3.97546, -18.45124, 0.47232, -2.1937, 1.59594, -7.39851, 2.05963, -9.54877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.58685, -11.98995, 2.93106, -13.58876, 2.71148, -12.57045, 2.01113, -9.32378, 2.26412, -10.49626, 2.34347, -10.8643, 2.05169, -9.51168, 1.96224, -9.10095, 0.75805, -3.51469, 0.08056, -0.37484, 0.57971, -2.69226, 0.35055, -1.63069, 0.65036, -3.01589, 1.40933, -6.53389, 1.98852, -9.21901, 4.07943, -18.92243, 3.45761, -16.03435, 3.45532, -16.02368, 2.42819, -11.25721, 2.14263, -9.93373, 2.06396, -9.56589, 2.5906, -12.00682, 0, 0, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937, 0.47232, -2.1937 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.8,
|
||||
"vertices": [ -0.08837, 0.23265, -0.04028, 0.11365, -1.15417, 5.38665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.08233, 5.00095, -1.86743, 8.62226, -0.82043, 3.80258, -0.0957, 0.27987, -0.11633, 0.32749, -5.76245, 7.7601, -3.05987, 10.76796, -2.18188, 10.12056, -4.92511, 9.45659, 0, 0, 0, 0, 0.65328, -3.03142, 0.55996, -2.59837, -1.40084, 6.49587, -0.16394, 0.42825, -0.14651, 0.37985, -0.13543, 0.35089, -0.11294, 0.31703, -0.12219, 0.33459, -0.12271, 0.32937, -0.10714, 0.28684, -0.90087, 4.02339, -0.04678, 0.13842, -1.07189, 4.96331, -1.06213, 4.94195, -1.04928, 4.90511, -0.04034, 0.11959, -0.07522, 0.20426, -0.10211, 0.26987, -0.12774, 0.33331, -0.13964, 0.36775, -0.14172, 0.37709, -0.1307, 0.35703, -0.1195, 0.33389, -0.14541, 0.39531, -0.16638, 0.43952, -1.40084, 6.49587, -0.82043, 3.80258, -0.82043, 3.80258, -0.82043, 3.80258, -1.82894, 8.48513, -1.82894, 8.48513, -1.82894, 8.48513 ]
|
||||
}
|
||||
]
|
||||
},
|
||||
"head": {
|
||||
"head": [
|
||||
{
|
||||
"time": 0,
|
||||
"offset": 32,
|
||||
"vertices": [ 2.81555, 0.98518, 1.01535, 8.62647, -2.70272, 4.09555, -4.48742, 7.13697, -4.7698, 3.34321, 0, 0, -2.25769, -4.31037, 0, 0, 0, 0, -0.45578, 2.11444, -0.45578, 2.11444, 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, 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, -3.14776, 14.58548, -2.8666, 13.27986, -2.55056, 11.81706, -2.1733, 10.06674, -1.96667, 9.10785, -2.01522, 9.33308, -2.29977, 10.65303, -2.6397, 12.23277, -3.05856, 14.17199, 0, 0, 0, 0, 0, 0, 0, 0, -0.59756, 2.77131, -1.96328, 9.10585, -2.16217, 10.02964 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.4,
|
||||
"offset": 34,
|
||||
"vertices": [ 3.14837, -14.61261, 3.14837, -14.61261, 3.14837, -14.61261, 0.83425, -3.87112, 0, 0, 0, 0, 0, 0, 0, 0, -0.45578, 2.11444, -0.45578, 2.11444, 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, 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.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0.17175, -0.81675, 0, 0, 0, 0, 0, 0, 0, 0, 0.55618, -2.58074, 0.41714, -1.93557, 1.04281, -4.83889 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.8,
|
||||
"offset": 32,
|
||||
"vertices": [ 2.81555, 0.98518, 1.01535, 8.62647, -2.70272, 4.09555, -4.48742, 7.13697, -4.7698, 3.34321, 0, 0, -2.25769, -4.31037, 0, 0, 0, 0, -0.45578, 2.11444, -0.45578, 2.11444, 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, 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, -3.14776, 14.58548, -2.8666, 13.27986, -2.55056, 11.81706, -2.1733, 10.06674, -1.96667, 9.10785, -2.01522, 9.33308, -2.29977, 10.65303, -2.6397, 12.23277, -3.05856, 14.17199, 0, 0, 0, 0, 0, 0, 0, 0, -0.59756, 2.77131, -1.96328, 9.10585, -2.16217, 10.02964 ]
|
||||
}
|
||||
]
|
||||
},
|
||||
"mouth": {
|
||||
"mouth_grind": [
|
||||
{
|
||||
"time": 0,
|
||||
"vertices": [ -10.19201, 11.7786, -1.60018, 14.33763, 0.02328, 8.88684, -8.56857, 6.32778 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.4,
|
||||
"vertices": [ -1.87524, -8.97547, 0.00448, -17.7002, 0.00448, -17.7002, -1.87524, -8.97547 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.8,
|
||||
"vertices": [ -10.19201, 11.7786, -1.60018, 14.33763, 0.02328, 8.88684, -8.56857, 6.32778 ]
|
||||
}
|
||||
]
|
||||
},
|
||||
"torso": {
|
||||
"torso": [
|
||||
{
|
||||
"time": 0,
|
||||
"offset": 6,
|
||||
"vertices": [ 6.35966, 1.33517, 6.35966, 1.33517, 0, 0, 0, 0, 0.8206, 5.12242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.8206, 5.12242, 0.8206, 5.12242, -0.9412, 5.14301, 0.8206, 5.12242, 0.8206, 5.12242, 0.24157, 4.36882, 0.24157, 4.36882, 0.24157, 4.36882, 0, 0, 0.8206, 5.12242 ]
|
||||
},
|
||||
{
|
||||
"time": 0.4,
|
||||
"offset": 2,
|
||||
"vertices": [ 1.4615, 2.96601, 0.68634, 3.23445, 2.20619, 0.10388, 0, 0, -0.31028, -2.89859, 0, 0, -0.1851, 0.38208, 0.33795, -3.61551, 0, 0, 0, 0, -0.5516, 4.21406, -0.5516, 4.21406, 0, 0, 0, 0, -0.29403, -8.94627, -0.02416, -9.50223, 0.23017, -9.93909, -4.64135, -8.88913, -2.62136, -9.24012, -1.70074, -5.16261, -1.70074, -5.16261, -1.70074, -5.16261, 0, 0, -7.3706, -10.47316 ]
|
||||
},
|
||||
{
|
||||
"time": 0.8,
|
||||
"offset": 6,
|
||||
"vertices": [ 6.35966, 1.33517, 6.35966, 1.33517, 0, 0, 0, 0, 0.8206, 5.12242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.8206, 5.12242, 0.8206, 5.12242, -0.9412, 5.14301, 0.8206, 5.12242, 0.8206, 5.12242, 0.24157, 4.36882, 0.24157, 4.36882, 0.24157, 4.36882, 0, 0, 0.8206, 5.12242 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
195
spine-ts/webgl/example/demos/assets/spineboy.atlas
Normal file
195
spine-ts/webgl/example/demos/assets/spineboy.atlas
Normal file
@ -0,0 +1,195 @@
|
||||
|
||||
spineboy.png
|
||||
size: 1024,1024
|
||||
format: RGBA8888
|
||||
filter: Linear,Linear
|
||||
repeat: none
|
||||
eye_indifferent
|
||||
rotate: false
|
||||
xy: 550, 694
|
||||
size: 93, 89
|
||||
orig: 93, 89
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
eye_surprised
|
||||
rotate: false
|
||||
xy: 834, 856
|
||||
size: 93, 89
|
||||
orig: 93, 89
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
front_bracer
|
||||
rotate: false
|
||||
xy: 678, 774
|
||||
size: 58, 80
|
||||
orig: 58, 80
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
front_fist_closed
|
||||
rotate: true
|
||||
xy: 466, 593
|
||||
size: 75, 82
|
||||
orig: 75, 82
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
front_fist_open
|
||||
rotate: false
|
||||
xy: 550, 605
|
||||
size: 86, 87
|
||||
orig: 86, 87
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
front_foot
|
||||
rotate: false
|
||||
xy: 550, 785
|
||||
size: 126, 69
|
||||
orig: 126, 69
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
front_foot_bend1
|
||||
rotate: true
|
||||
xy: 375, 492
|
||||
size: 128, 70
|
||||
orig: 128, 70
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
front_foot_bend2
|
||||
rotate: true
|
||||
xy: 275, 330
|
||||
size: 108, 93
|
||||
orig: 108, 93
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
front_shin
|
||||
rotate: false
|
||||
xy: 466, 670
|
||||
size: 82, 184
|
||||
orig: 82, 184
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
front_thigh
|
||||
rotate: false
|
||||
xy: 214, 208
|
||||
size: 48, 112
|
||||
orig: 48, 112
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
front_upper_arm
|
||||
rotate: false
|
||||
xy: 214, 109
|
||||
size: 54, 97
|
||||
orig: 54, 97
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
goggles
|
||||
rotate: false
|
||||
xy: 466, 856
|
||||
size: 261, 166
|
||||
orig: 261, 166
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
gun
|
||||
rotate: false
|
||||
xy: 2, 117
|
||||
size: 210, 203
|
||||
orig: 210, 203
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
head
|
||||
rotate: false
|
||||
xy: 2, 322
|
||||
size: 271, 298
|
||||
orig: 271, 298
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
mouth_grind
|
||||
rotate: false
|
||||
xy: 929, 896
|
||||
size: 93, 59
|
||||
orig: 93, 59
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
mouth_oooo
|
||||
rotate: false
|
||||
xy: 929, 835
|
||||
size: 93, 59
|
||||
orig: 93, 59
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
mouth_smile
|
||||
rotate: false
|
||||
xy: 447, 532
|
||||
size: 93, 59
|
||||
orig: 93, 59
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
muzzle
|
||||
rotate: false
|
||||
xy: 2, 622
|
||||
size: 462, 400
|
||||
orig: 462, 400
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
neck
|
||||
rotate: false
|
||||
xy: 796, 819
|
||||
size: 36, 41
|
||||
orig: 36, 41
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
rear_bracer
|
||||
rotate: false
|
||||
xy: 738, 788
|
||||
size: 56, 72
|
||||
orig: 56, 72
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
rear_foot
|
||||
rotate: true
|
||||
xy: 2, 2
|
||||
size: 113, 60
|
||||
orig: 113, 60
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
rear_foot_bend1
|
||||
rotate: false
|
||||
xy: 64, 49
|
||||
size: 117, 66
|
||||
orig: 117, 66
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
rear_foot_bend2
|
||||
rotate: false
|
||||
xy: 729, 862
|
||||
size: 103, 83
|
||||
orig: 103, 83
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
rear_shin
|
||||
rotate: true
|
||||
xy: 729, 947
|
||||
size: 75, 178
|
||||
orig: 75, 178
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
rear_thigh
|
||||
rotate: true
|
||||
xy: 909, 957
|
||||
size: 65, 104
|
||||
orig: 65, 104
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
rear_upper_arm
|
||||
rotate: true
|
||||
xy: 447, 483
|
||||
size: 47, 87
|
||||
orig: 47, 87
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
torso
|
||||
rotate: false
|
||||
xy: 275, 440
|
||||
size: 98, 180
|
||||
orig: 98, 180
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
2412
spine-ts/webgl/example/demos/assets/spineboy.json
Normal file
2412
spine-ts/webgl/example/demos/assets/spineboy.json
Normal file
File diff suppressed because it is too large
Load Diff
BIN
spine-ts/webgl/example/demos/assets/spineboy.png
Normal file
BIN
spine-ts/webgl/example/demos/assets/spineboy.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 593 KiB |
13
spine-ts/webgl/example/demos/ikconstraint.html
Normal file
13
spine-ts/webgl/example/demos/ikconstraint.html
Normal file
@ -0,0 +1,13 @@
|
||||
<html>
|
||||
<script src="../../../build/spine-webgl.js"></script>
|
||||
<style>
|
||||
* { margin: 0; padding: 0; }
|
||||
body, html { height: 100% }
|
||||
canvas { position: absolute; width: 100% ;height: 100%; }
|
||||
</style>
|
||||
<body>
|
||||
<canvas id="ikdemo-canvas"></canvas>
|
||||
<center><div id="info" style="color: #f00; position: fixed; top: 0; width: 100%"></div></center>
|
||||
<script src="ikconstraint.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
98
spine-ts/webgl/example/demos/ikconstraint.js
Normal file
98
spine-ts/webgl/example/demos/ikconstraint.js
Normal file
@ -0,0 +1,98 @@
|
||||
(function() {
|
||||
var CIRCLE_INNER_COLOR = new spine.Color(0.8, 0, 0, 0.5);
|
||||
var CIRCLE_OUTER_COLOR = new spine.Color(0.8, 0, 0, 0.8);
|
||||
|
||||
var canvas, gl, renderer, input, assetManager;
|
||||
var skeleton, bounds;
|
||||
var lastFrameTime = Date.now() / 1000;
|
||||
var target = null;
|
||||
var boneName = "hip";
|
||||
var coords = new spine.webgl.Vector3(), temp = new spine.webgl.Vector3(), temp2 = new spine.Vector2();
|
||||
|
||||
function init () {
|
||||
canvas = document.getElementById("ikdemo-canvas");
|
||||
canvas.width = window.innerWidth; canvas.height = window.innerHeight;
|
||||
gl = canvas.getContext("webgl", { alpha: false }) || canvas.getContext("experimental-webgl", { alpha: false });
|
||||
|
||||
renderer = new spine.webgl.SceneRenderer(canvas, gl);
|
||||
assetManager = new spine.webgl.AssetManager(gl);
|
||||
input = new spine.webgl.Input(canvas);
|
||||
input.addListener({
|
||||
down: function(x, y) {
|
||||
var bone = skeleton.findBone(boneName);
|
||||
renderer.camera.screenToWorld(coords.set(x, y, 0), canvas.width, canvas.height);
|
||||
if (temp.set(skeleton.x + bone.worldX, skeleton.y + bone.worldY, 0).distance(coords) < 20) {
|
||||
target = bone;
|
||||
}
|
||||
},
|
||||
up: function(x, y) {
|
||||
target = null;
|
||||
},
|
||||
moved: function(x, y) {
|
||||
if (target != null) {
|
||||
renderer.camera.screenToWorld(coords.set(x, y, 0), canvas.width, canvas.height);
|
||||
if (target.parent !== null) {
|
||||
target.parent.worldToLocal(temp2.set(coords.x - skeleton.x, coords.y - skeleton.y));
|
||||
target.x = temp2.x;
|
||||
target.y = temp2.y;
|
||||
} else {
|
||||
target.x = coords.x - skeleton.x;
|
||||
target.y = coords.y - skeleton.y;
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
assetManager.loadTexture("assets/spineboy.png");
|
||||
assetManager.loadText("assets/spineboy-mesh.json");
|
||||
assetManager.loadText("assets/spineboy.atlas");
|
||||
requestAnimationFrame(load);
|
||||
}
|
||||
|
||||
function load () {
|
||||
if (assetManager.isLoadingComplete()) {
|
||||
var atlas = new spine.TextureAtlas(assetManager.get("assets/spineboy.atlas"), function(path) {
|
||||
return assetManager.get("assets/" + path);
|
||||
});
|
||||
var atlasLoader = new spine.TextureAtlasAttachmentLoader(atlas);
|
||||
var skeletonJson = new spine.SkeletonJson(atlasLoader);
|
||||
var skeletonData = skeletonJson.readSkeletonData(assetManager.get("assets/spineboy-mesh.json"));
|
||||
skeleton = new spine.Skeleton(skeletonData);
|
||||
skeleton.setToSetupPose();
|
||||
skeleton.updateWorldTransform();
|
||||
var offset = new spine.Vector2();
|
||||
bounds = new spine.Vector2();
|
||||
skeleton.getBounds(offset, bounds);
|
||||
|
||||
renderer.camera.position.x = offset.x + bounds.x / 2;
|
||||
renderer.camera.position.y = offset.y + bounds.y / 2;
|
||||
|
||||
requestAnimationFrame(render);
|
||||
} else requestAnimationFrame(load);
|
||||
}
|
||||
|
||||
function render () {
|
||||
var now = Date.now() / 1000;
|
||||
var delta = now - lastFrameTime;
|
||||
lastFrameTime = now;
|
||||
|
||||
renderer.camera.viewportWidth = bounds.x * 1.2;
|
||||
renderer.camera.viewportHeight = bounds.y * 1.2;
|
||||
renderer.resize(spine.webgl.ResizeMode.Fit);
|
||||
|
||||
gl.clearColor(0.2, 0.2, 0.2, 1);
|
||||
gl.clear(gl.COLOR_BUFFER_BIT);
|
||||
|
||||
skeleton.updateWorldTransform();
|
||||
|
||||
renderer.begin();
|
||||
renderer.drawSkeleton(skeleton);
|
||||
var bone = skeleton.findBone(boneName);
|
||||
renderer.circle(true, skeleton.x + bone.worldX, skeleton.y + bone.worldY, 20, CIRCLE_INNER_COLOR);
|
||||
renderer.circle(false, skeleton.x + bone.worldX, skeleton.y + bone.worldY, 20, CIRCLE_OUTER_COLOR);
|
||||
renderer.end();
|
||||
|
||||
requestAnimationFrame(render);
|
||||
}
|
||||
|
||||
init();
|
||||
})();
|
||||
20
spine-ts/webgl/example/demos/skeletalvssprite.html
Normal file
20
spine-ts/webgl/example/demos/skeletalvssprite.html
Normal file
@ -0,0 +1,20 @@
|
||||
<html>
|
||||
<script src="../../../build/spine-webgl.js"></script>
|
||||
<style>
|
||||
* { margin: 0; padding: 0; }
|
||||
body, html { height: 100% }
|
||||
canvas { position: absolute; width: 100% ;height: 100%; }
|
||||
</style>
|
||||
<body>
|
||||
<canvas id="skeletonvsspritedemo-canvas"></canvas>
|
||||
<div style="position: fixed; top: 0; width: 100%">
|
||||
<center>
|
||||
<span style="color: #fff">Time Multiplier</span>
|
||||
<input type="range" min="0" max="200" value ="100" id="skeletonvsspritedemo-timeslider" style="color: #fff;"></input></br>
|
||||
<span style="color: #fff">Show Atlas</span>
|
||||
<input type="checkbox" id="skeletonvsspritedemo-atlascheckbox" style="color: #fff;"></input>
|
||||
</center>
|
||||
</div>
|
||||
<script src="skeletonvssprite.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
133
spine-ts/webgl/example/demos/skeletonvssprite.js
Normal file
133
spine-ts/webgl/example/demos/skeletonvssprite.js
Normal file
@ -0,0 +1,133 @@
|
||||
(function() {
|
||||
var canvas, gl, renderer, input, assetManager;
|
||||
var skeleton, animationState, offset, bounds;
|
||||
var skeletonAtlas;
|
||||
var frameAtlas;
|
||||
var viewportWidth, viewportHeight;
|
||||
var frames = [], currFrame = 0, frameTime = 0, frameScale = 0, FPS = 30;
|
||||
var lastFrameTime = Date.now() / 1000;
|
||||
var timeSlider, atlasCheckbox;
|
||||
|
||||
var SKELETON_ATLAS_COLOR = new spine.Color(0, 0.8, 0, 0.8);
|
||||
var FRAME_ATLAS_COLOR = new spine.Color(0.8, 0, 0, 0.8);
|
||||
|
||||
function init () {
|
||||
timeSlider = document.getElementById("skeletonvsspritedemo-timeslider");
|
||||
atlasCheckbox = document.getElementById("skeletonvsspritedemo-atlascheckbox");
|
||||
|
||||
canvas = document.getElementById("skeletonvsspritedemo-canvas");
|
||||
canvas.width = window.innerWidth; canvas.height = window.innerHeight;
|
||||
gl = canvas.getContext("webgl", { alpha: false }) || canvas.getContext("experimental-webgl", { alpha: false });
|
||||
|
||||
renderer = new spine.webgl.SceneRenderer(canvas, gl);
|
||||
assetManager = new spine.webgl.AssetManager(gl);
|
||||
assetManager.loadTexture("assets/raptor.png");
|
||||
assetManager.loadText("assets/raptor.json");
|
||||
assetManager.loadText("assets/raptor.atlas");
|
||||
assetManager.loadText("assets/raptor-walk.atlas");
|
||||
assetManager.loadTexture("assets/raptor-walk.png");
|
||||
assetManager.loadTexture("assets/raptor-walk2.png");
|
||||
assetManager.loadTexture("assets/raptor-walk3.png");
|
||||
assetManager.loadTexture("assets/raptor-walk4.png");
|
||||
requestAnimationFrame(load);
|
||||
}
|
||||
|
||||
function load () {
|
||||
if (assetManager.isLoadingComplete()) {
|
||||
skeletonAtlas = new spine.TextureAtlas(assetManager.get("assets/raptor.atlas"), function(path) {
|
||||
return assetManager.get("assets/" + path);
|
||||
});
|
||||
var atlasLoader = new spine.TextureAtlasAttachmentLoader(skeletonAtlas);
|
||||
var skeletonJson = new spine.SkeletonJson(atlasLoader);
|
||||
var skeletonData = skeletonJson.readSkeletonData(assetManager.get("assets/raptor.json"));
|
||||
skeleton = new spine.Skeleton(skeletonData);
|
||||
animationState = new spine.AnimationState(new spine.AnimationStateData(skeleton.data));
|
||||
animationState.setAnimation(0, "walk", true);
|
||||
animationState.apply(skeleton);
|
||||
skeleton.updateWorldTransform();
|
||||
offset = new spine.Vector2();
|
||||
bounds = new spine.Vector2();
|
||||
skeleton.getBounds(offset, bounds);
|
||||
|
||||
frameAtlas = new spine.TextureAtlas(assetManager.get("assets/raptor-walk.atlas"), function(path) {
|
||||
return assetManager.get("assets/" + path);
|
||||
});
|
||||
for (var i = 0; i < frameAtlas.regions.length - 1; i++) {
|
||||
frames.push(frameAtlas.findRegion("raptor-walk_" + i));
|
||||
}
|
||||
frameScale = bounds.x / frames[0].width * 1.1;
|
||||
|
||||
viewportWidth = ((700 + bounds.x) - offset.x);
|
||||
viewportHeight = ((0 + bounds.y) - offset.y);
|
||||
|
||||
renderer.camera.position.x = offset.x + viewportWidth / 2;
|
||||
renderer.camera.position.y = offset.y + viewportHeight / 2;
|
||||
|
||||
requestAnimationFrame(render);
|
||||
} else requestAnimationFrame(load);
|
||||
}
|
||||
|
||||
function render () {
|
||||
var now = Date.now() / 1000;
|
||||
var delta = now - lastFrameTime;
|
||||
lastFrameTime = now;
|
||||
if (delta > 0.032) delta = 0.032;
|
||||
|
||||
delta *= (timeSlider.value / 100);
|
||||
|
||||
if (!atlasCheckbox.checked) {
|
||||
animationState.update(delta);
|
||||
animationState.apply(skeleton);
|
||||
skeleton.updateWorldTransform();
|
||||
|
||||
frameTime += delta;
|
||||
if (frameTime > 1 / FPS) {
|
||||
frameTime -= 1 / FPS;
|
||||
currFrame++;
|
||||
if (currFrame >= frames.length) currFrame = 0;
|
||||
}
|
||||
}
|
||||
|
||||
renderer.camera.viewportWidth = viewportWidth * 1.2;
|
||||
renderer.camera.viewportHeight = viewportHeight * 1.2;
|
||||
renderer.resize(spine.webgl.ResizeMode.Fit);
|
||||
gl.clearColor(0.2, 0.2, 0.2, 1);
|
||||
gl.clear(gl.COLOR_BUFFER_BIT);
|
||||
|
||||
renderer.begin();
|
||||
if (!atlasCheckbox.checked) {
|
||||
var frame = frames[currFrame];
|
||||
renderer.drawRegion(frame, 700, offset.y - 40, frame.width * frameScale, frame.height * frameScale);
|
||||
renderer.drawSkeleton(skeleton);
|
||||
} else {
|
||||
var skeletonAtlasSize = skeletonAtlas.pages[0].texture.getImage().width;
|
||||
var frameAtlasSize = frameAtlas.pages[0].texture.getImage().width;
|
||||
var halfSpaceWidth = viewportWidth / 2;
|
||||
var halfSpaceHeight = viewportHeight;
|
||||
var pageSize = halfSpaceWidth / 2;
|
||||
|
||||
// we only have one page for skeleton
|
||||
var skeletonPageSize = pageSize * frameAtlasSize / skeletonAtlasSize;
|
||||
renderer.drawTexture(skeletonAtlas.pages[0].texture, offset.x + halfSpaceWidth - skeletonPageSize / 2,
|
||||
offset.y + halfSpaceWidth - skeletonPageSize / 2, skeletonPageSize, skeletonPageSize);
|
||||
renderer.rect(skeletonAtlas.pages[0].texture, offset.x + halfSpaceWidth - skeletonPageSize / 2,
|
||||
offset.y + halfSpaceWidth - skeletonPageSize / 2, skeletonPageSize, skeletonPageSize, SKELETON_ATLAS_COLOR);
|
||||
|
||||
var x = offset.x + halfSpaceWidth;
|
||||
var y = offset.y + halfSpaceHeight / 2;
|
||||
var i = 0;
|
||||
for (var row = 0; row < frameAtlas.pages.length / 2; row++) {
|
||||
for (var col = 0; col < 2; col++) {
|
||||
var page = frameAtlas.pages[i++];
|
||||
renderer.drawTexture(page.texture, x + col * pageSize, y - row * pageSize, pageSize, pageSize);
|
||||
renderer.rect(false, x + col * pageSize, y - row * pageSize, pageSize, pageSize, FRAME_ATLAS_COLOR);
|
||||
}
|
||||
}
|
||||
}
|
||||
renderer.end();
|
||||
|
||||
requestAnimationFrame(render);
|
||||
}
|
||||
|
||||
init();
|
||||
})();
|
||||
@ -1,6 +1,5 @@
|
||||
<html>
|
||||
<script src="../../build/spine-webgl.js"></script>
|
||||
<script src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
|
||||
<style>
|
||||
* { margin: 0; padding: 0; }
|
||||
body, html { height: 100% }
|
||||
|
||||
@ -1,109 +0,0 @@
|
||||
<html>
|
||||
<script src="../../build/spine-webgl.js"></script>
|
||||
<script src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
|
||||
<style>
|
||||
* { margin: 0; padding: 0; }
|
||||
body, html { height: 100% }
|
||||
canvas { position: absolute; width: 100% ;height: 100%; }
|
||||
</style>
|
||||
<body>
|
||||
<canvas id="canvas"></canvas>
|
||||
<center><div id="info" style="color: #fff; position: fixed; top: 0; width: 100%"></div></center>
|
||||
<script>
|
||||
|
||||
var info, canvas;
|
||||
var gl, renderer, input, assetManager;
|
||||
var skeleton;
|
||||
var coords = new spine.webgl.Vector3();
|
||||
var temp = new spine.webgl.Vector3();
|
||||
var temp2 = new spine.Vector2();
|
||||
var lastFrameTime = Date.now() / 1000;
|
||||
var target = null;
|
||||
var boneName = "hip";
|
||||
|
||||
function init () {
|
||||
info = document.getElementById("info");
|
||||
canvas = document.getElementById("canvas");
|
||||
canvas.width = window.innerWidth; canvas.height = window.innerHeight;
|
||||
gl = canvas.getContext("webgl", { alpha: false }) || canvas.getContext("experimental-webgl", { alpha: false });
|
||||
|
||||
renderer = new spine.webgl.SceneRenderer(canvas, gl);
|
||||
assetManager = new spine.webgl.AssetManager(gl);
|
||||
input = new spine.webgl.Input(canvas);
|
||||
input.addListener({
|
||||
down: function(x, y) {
|
||||
var bone = skeleton.findBone(boneName);
|
||||
renderer.camera.unproject(coords.set(x, y, 0));
|
||||
if (temp.set(skeleton.x + bone.worldX, skeleton.y + bone.worldY, 0).distance(coords) < 20) {
|
||||
target = bone;
|
||||
}
|
||||
},
|
||||
up: function(x, y) {
|
||||
target = null;
|
||||
},
|
||||
moved: function(x, y) {
|
||||
if (target != null) {
|
||||
renderer.camera.unproject(coords.set(x, y, 0));
|
||||
if (target.parent !== null) {
|
||||
target.parent.worldToLocal(temp2.set(coords.x - skeleton.x, coords.y - skeleton.y));
|
||||
target.x = temp2.x;
|
||||
target.y = temp2.y;
|
||||
} else {
|
||||
target.x = coords.x - skeleton.x;
|
||||
target.y = coords.y - skeleton.y;
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
assetManager.loadTexture("assets/spineboy.png");
|
||||
assetManager.loadText("assets/spineboy-mesh.json");
|
||||
assetManager.loadText("assets/spineboy.atlas");
|
||||
requestAnimationFrame(loading);
|
||||
}
|
||||
|
||||
function loading () {
|
||||
if (assetManager.isLoadingComplete()) {
|
||||
var atlas = new spine.TextureAtlas(assetManager.get("assets/spineboy.atlas"), function(path) {
|
||||
return assetManager.get("assets/" + path);
|
||||
});
|
||||
var atlasLoader = new spine.TextureAtlasAttachmentLoader(atlas);
|
||||
var skeletonJson = new spine.SkeletonJson(atlasLoader);
|
||||
var skeletonData = skeletonJson.readSkeletonData(assetManager.get("assets/spineboy-mesh.json"));
|
||||
skeleton = new spine.Skeleton(skeletonData);
|
||||
skeleton.setToSetupPose();
|
||||
skeleton.updateWorldTransform();
|
||||
requestAnimationFrame(render);
|
||||
} else requestAnimationFrame(loading);
|
||||
}
|
||||
|
||||
function render () {
|
||||
var now = Date.now() / 1000;
|
||||
var delta = now - lastFrameTime;
|
||||
lastFrameTime = now;
|
||||
|
||||
renderer.resize();
|
||||
gl.clearColor(0.2, 0.2, 0.2, 1);
|
||||
gl.clear(gl.COLOR_BUFFER_BIT);
|
||||
|
||||
renderer.begin();
|
||||
renderer.line(-canvas.width, 0, canvas.width, 0, spine.Color.RED);
|
||||
renderer.triangle(true, 100, 100, 200, 100, 150, 200, spine.Color.RED, spine.Color.GREEN, spine.Color.BLUE);
|
||||
renderer.drawTexture(assetManager.get("assets/spineboy.png"), -200, 100, 200, 200);
|
||||
renderer.line(0, -canvas.height, 0, canvas.height, spine.Color.GREEN);
|
||||
renderer.rect(false, -200, 100, 200, 200, spine.Color.BLUE);
|
||||
renderer.line(0, 0, 400, 400, spine.Color.BLUE);
|
||||
skeleton.updateWorldTransform();
|
||||
renderer.drawSkeleton(skeleton);
|
||||
var bone = skeleton.findBone(boneName);
|
||||
renderer.circle(true, skeleton.x + bone.worldX, skeleton.y + bone.worldY, 20, spine.Color.MAGENTA);
|
||||
renderer.end();
|
||||
|
||||
requestAnimationFrame(render);
|
||||
}
|
||||
|
||||
(function() {
|
||||
init();
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@ -67,11 +67,11 @@ module spine.webgl {
|
||||
inverseProjectionView.set(projectionView.values).invert();
|
||||
}
|
||||
|
||||
unproject (screenCoords: Vector3) {
|
||||
let x = screenCoords.x, y = this.viewportHeight - screenCoords.y - 1;
|
||||
screenToWorld (screenCoords: Vector3, screenWidth: number, screenHeight: number) {
|
||||
let x = screenCoords.x, y = screenHeight - screenCoords.y - 1;
|
||||
let tmp = this.tmp;
|
||||
tmp.x = (2 * x) / this.viewportWidth - 1;
|
||||
tmp.y = (2 * y) / this.viewportHeight - 1;
|
||||
tmp.x = (2 * x) / screenWidth - 1;
|
||||
tmp.y = (2 * y) / screenHeight - 1;
|
||||
tmp.z = (2 * screenCoords.z) - 1;
|
||||
tmp.project(this.inverseProjectionView);
|
||||
screenCoords.set(tmp.x, tmp.y, tmp.z);
|
||||
|
||||
@ -110,6 +110,45 @@ module spine.webgl {
|
||||
this.batcher.draw(texture, quad, this.QUAD_TRIANGLES);
|
||||
}
|
||||
|
||||
drawRegion (region: TextureAtlasRegion, x: number, y: number, width: number, height: number, color: Color = null) {
|
||||
this.enableRenderer(this.batcher);
|
||||
if (color === null) color = this.WHITE;
|
||||
let quad = this.QUAD;
|
||||
quad[0] = x;
|
||||
quad[1] = y;
|
||||
quad[2] = color.r;
|
||||
quad[3] = color.g;
|
||||
quad[4] = color.b;
|
||||
quad[5] = color.a;
|
||||
quad[6] = region.u;
|
||||
quad[7] = region.v2;
|
||||
quad[8] = x + width;
|
||||
quad[9] = y;
|
||||
quad[10] = color.r;
|
||||
quad[11] = color.g;
|
||||
quad[12] = color.b;
|
||||
quad[13] = color.a;
|
||||
quad[14] = region.u2;
|
||||
quad[15] = region.v2;
|
||||
quad[16] = x + width;
|
||||
quad[17] = y + height;
|
||||
quad[18] = color.r;
|
||||
quad[19] = color.g;
|
||||
quad[20] = color.b;
|
||||
quad[21] = color.a;
|
||||
quad[22] = region.u2;
|
||||
quad[23] = region.v;
|
||||
quad[24] = x;
|
||||
quad[25] = y + height;
|
||||
quad[26] = color.r;
|
||||
quad[27] = color.g;
|
||||
quad[28] = color.b;
|
||||
quad[29] = color.a;
|
||||
quad[30] = region.u;
|
||||
quad[31] = region.v;
|
||||
this.batcher.draw(<GLTexture>region.texture, quad, this.QUAD_TRIANGLES);
|
||||
}
|
||||
|
||||
line (x: number, y: number, x2: number, y2: number, color: Color = null, color2: Color = null) {
|
||||
this.enableRenderer(this.shapes);
|
||||
this.shapes.line(x, y, x2, y2, color);
|
||||
@ -156,7 +195,7 @@ module spine.webgl {
|
||||
this.activeRenderer = null;
|
||||
}
|
||||
|
||||
resize () {
|
||||
resize (resizeMode: ResizeMode) {
|
||||
let canvas = this.canvas;
|
||||
var w = canvas.clientWidth;
|
||||
var h = canvas.clientHeight;
|
||||
@ -164,9 +203,22 @@ module spine.webgl {
|
||||
canvas.width = w;
|
||||
canvas.height = h;
|
||||
}
|
||||
this.camera.setViewport(w, h);
|
||||
this.camera.update();
|
||||
this.gl.viewport(0, 0, canvas.width, canvas.height);
|
||||
|
||||
if (resizeMode === ResizeMode.Stretch) {
|
||||
// nothing to do, we simply apply the viewport size of the camera
|
||||
} else if (resizeMode === ResizeMode.Expand) {
|
||||
this.camera.setViewport(w, h);
|
||||
} else if (resizeMode === ResizeMode.Fit) {
|
||||
let sourceWidth = canvas.width, sourceHeight = canvas.height;
|
||||
let targetWidth = this.camera.viewportWidth, targetHeight = this.camera.viewportHeight;
|
||||
let targetRatio = targetHeight / targetWidth;
|
||||
let sourceRatio = sourceHeight / sourceWidth;
|
||||
let scale = targetRatio < sourceRatio ? targetWidth / sourceWidth : targetHeight / sourceHeight;
|
||||
this.camera.viewportWidth = sourceWidth * scale;
|
||||
this.camera.viewportHeight = sourceHeight * scale;
|
||||
}
|
||||
this.camera.update();
|
||||
}
|
||||
|
||||
private enableRenderer(renderer: PolygonBatcher | ShapeRenderer) {
|
||||
@ -192,4 +244,10 @@ module spine.webgl {
|
||||
this.shapesShader.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
export enum ResizeMode {
|
||||
Stretch,
|
||||
Expand,
|
||||
Fit
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user