From 3863828c3e83a4f3b303d39fba8cd849bdd99588 Mon Sep 17 00:00:00 2001 From: badlogic Date: Tue, 10 Nov 2020 16:35:56 +0100 Subject: [PATCH] [ts] Port of 4.0 changes, some kinks to be ironed out yet. [ts] Add .json exports to WebGL assets dir for tests. [ts] She loads, but she no play nice. --- examples/export/runtimes.sh | 9 + spine-ts/build/spine-webgl.d.ts | 3308 ++- spine-ts/build/spine-webgl.js | 21592 ++++++++-------- spine-ts/build/spine-webgl.js.map | 2 +- spine-ts/core/src/Animation.ts | 1248 +- spine-ts/core/src/AnimationState.ts | 124 +- spine-ts/core/src/Bone.ts | 6 +- spine-ts/core/src/IkConstraint.ts | 5 +- spine-ts/core/src/PathConstraint.ts | 5 - spine-ts/core/src/Skeleton.ts | 58 +- spine-ts/core/src/SkeletonBinary.ts | 390 +- spine-ts/core/src/SkeletonJson.ts | 404 +- spine-ts/core/src/TransformConstraint.ts | 21 +- spine-ts/core/src/Utils.ts | 30 + spine-ts/core/src/attachments/Attachment.ts | 2 +- spine-ts/webgl/example/assets/coin-pro.json | 259 + .../webgl/example/assets/goblins-pro.json | 1210 + .../example/assets/mix-and-match-pro.json | 8001 ++++++ spine-ts/webgl/example/assets/owl-pro.json | 597 + spine-ts/webgl/example/assets/raptor-pro.json | 3726 +++ .../webgl/example/assets/spineboy-pro.json | 8692 +++++++ .../webgl/example/assets/stretchyman-pro.json | 1129 + spine-ts/webgl/example/assets/tank-pro.json | 5016 ++++ spine-ts/webgl/example/assets/vine-pro.json | 357 + spine-ts/webgl/tests/test-binary.html | 2 +- 25 files changed, 42861 insertions(+), 13332 deletions(-) create mode 100644 spine-ts/webgl/example/assets/coin-pro.json create mode 100644 spine-ts/webgl/example/assets/goblins-pro.json create mode 100644 spine-ts/webgl/example/assets/mix-and-match-pro.json create mode 100644 spine-ts/webgl/example/assets/owl-pro.json create mode 100644 spine-ts/webgl/example/assets/raptor-pro.json create mode 100644 spine-ts/webgl/example/assets/spineboy-pro.json create mode 100644 spine-ts/webgl/example/assets/stretchyman-pro.json create mode 100644 spine-ts/webgl/example/assets/tank-pro.json create mode 100644 spine-ts/webgl/example/assets/vine-pro.json diff --git a/examples/export/runtimes.sh b/examples/export/runtimes.sh index 70ba823b8..d25dfd9bd 100755 --- a/examples/export/runtimes.sh +++ b/examples/export/runtimes.sh @@ -326,39 +326,48 @@ cp -f ../mix-and-match/export/mix-and-match.png "$ROOT/spine-starling/spine-star echo "spine-ts" rm "$ROOT/spine-ts/webgl/example/assets/"* +cp -f ../coin/export/coin-pro.json "$ROOT/spine-ts/webgl/example/assets/" cp -f ../coin/export/coin-pro.skel "$ROOT/spine-ts/webgl/example/assets/" cp -f ../coin/export/coin-pma.atlas "$ROOT/spine-ts/webgl/example/assets/" cp -f ../coin/export/coin-pma.png "$ROOT/spine-ts/webgl/example/assets/" +cp -f ../goblins/export/goblins-pro.json "$ROOT/spine-ts/webgl/example/assets/" cp -f ../goblins/export/goblins-pro.skel "$ROOT/spine-ts/webgl/example/assets/" cp -f ../goblins/export/goblins-pma.atlas "$ROOT/spine-ts/webgl/example/assets/" cp -f ../goblins/export/goblins-pma.png "$ROOT/spine-ts/webgl/example/assets/" +cp -f ../raptor/export/raptor-pro.json "$ROOT/spine-ts/webgl/example/assets/" cp -f ../raptor/export/raptor-pro.skel "$ROOT/spine-ts/webgl/example/assets/" cp -f ../raptor/export/raptor-pma.atlas "$ROOT/spine-ts/webgl/example/assets/" cp -f ../raptor/export/raptor-pma.png "$ROOT/spine-ts/webgl/example/assets/" +cp -f ../spineboy/export/spineboy-pro.json "$ROOT/spine-ts/webgl/example/assets/" cp -f ../spineboy/export/spineboy-pro.skel "$ROOT/spine-ts/webgl/example/assets/" cp -f ../spineboy/export/spineboy-pma.atlas "$ROOT/spine-ts/webgl/example/assets/" cp -f ../spineboy/export/spineboy-pma.png "$ROOT/spine-ts/webgl/example/assets/" cp -f ../spineboy/export/spineboy.png "$ROOT/spine-ts/webgl/example/assets/" +cp -f ../tank/export/tank-pro.json "$ROOT/spine-ts/webgl/example/assets/" cp -f ../tank/export/tank-pro.skel "$ROOT/spine-ts/webgl/example/assets/" cp -f ../tank/export/tank-pma.atlas "$ROOT/spine-ts/webgl/example/assets/" cp -f ../tank/export/tank-pma.png "$ROOT/spine-ts/webgl/example/assets/" +cp -f ../vine/export/vine-pro.json "$ROOT/spine-ts/webgl/example/assets/" cp -f ../vine/export/vine-pro.skel "$ROOT/spine-ts/webgl/example/assets/" cp -f ../vine/export/vine-pma.atlas "$ROOT/spine-ts/webgl/example/assets/" cp -f ../vine/export/vine-pma.png "$ROOT/spine-ts/webgl/example/assets/" +cp -f ../owl/export/owl-pro.json "$ROOT/spine-ts/webgl/example/assets/" cp -f ../owl/export/owl-pro.skel "$ROOT/spine-ts/webgl/example/assets/" cp -f ../owl/export/owl-pma.atlas "$ROOT/spine-ts/webgl/example/assets/" cp -f ../owl/export/owl-pma.png "$ROOT/spine-ts/webgl/example/assets/" +cp -f ../stretchyman/export/stretchyman-pro.json "$ROOT/spine-ts/webgl/example/assets/" cp -f ../stretchyman/export/stretchyman-pro.skel "$ROOT/spine-ts/webgl/example/assets/" cp -f ../stretchyman/export/stretchyman-pma.atlas "$ROOT/spine-ts/webgl/example/assets/" cp -f ../stretchyman/export/stretchyman-pma.png "$ROOT/spine-ts/webgl/example/assets/" +cp -f ../mix-and-match/export/mix-and-match-pro.json "$ROOT/spine-ts/webgl/example/assets/" cp -f ../mix-and-match/export/mix-and-match-pro.skel "$ROOT/spine-ts/webgl/example/assets/" cp -f ../mix-and-match/export/mix-and-match-pma.atlas "$ROOT/spine-ts/webgl/example/assets/" cp -f ../mix-and-match/export/mix-and-match-pma.png "$ROOT/spine-ts/webgl/example/assets/" diff --git a/spine-ts/build/spine-webgl.d.ts b/spine-ts/build/spine-webgl.d.ts index d2aeb28a7..256e03107 100644 --- a/spine-ts/build/spine-webgl.d.ts +++ b/spine-ts/build/spine-webgl.d.ts @@ -1,1775 +1,1773 @@ declare module spine { - class Animation { - name: string; - timelines: Array; - timelineIds: Array; - duration: number; - constructor(name: string, timelines: Array, duration: number); - hasTimeline(id: number): boolean; - apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - static binarySearch(values: ArrayLike, target: number, step?: number): number; - static linearSearch(values: ArrayLike, target: number, step: number): number; - } - interface Timeline { - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - getPropertyId(): number; - } - enum MixBlend { - setup = 0, - first = 1, - replace = 2, - add = 3 - } - enum MixDirection { - mixIn = 0, - mixOut = 1 - } - enum TimelineType { - rotate = 0, - translate = 1, - scale = 2, - shear = 3, - attachment = 4, - color = 5, - deform = 6, - event = 7, - drawOrder = 8, - ikConstraint = 9, - transformConstraint = 10, - pathConstraintPosition = 11, - pathConstraintSpacing = 12, - pathConstraintMix = 13, - twoColor = 14 - } - abstract class CurveTimeline implements Timeline { - static LINEAR: number; - static STEPPED: number; - static BEZIER: number; - static BEZIER_SIZE: number; - private curves; - abstract getPropertyId(): number; - constructor(frameCount: number); - getFrameCount(): number; - setLinear(frameIndex: number): void; - setStepped(frameIndex: number): void; - getCurveType(frameIndex: number): number; - setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; - getCurvePercent(frameIndex: number, percent: number): number; - abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class RotateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATION: number; - static ROTATION: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, degrees: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class TranslateTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_X: number; - static PREV_Y: number; - static X: number; - static Y: number; - boneIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, x: number, y: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class ScaleTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class ShearTimeline extends TranslateTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class ColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static R: number; - static G: number; - static B: number; - static A: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class TwoColorTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_R: number; - static PREV_G: number; - static PREV_B: number; - static PREV_A: number; - static PREV_R2: number; - static PREV_G2: number; - static PREV_B2: number; - static R: number; - static G: number; - static B: number; - static A: number; - static R2: number; - static G2: number; - static B2: number; - slotIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class AttachmentTimeline implements Timeline { - slotIndex: number; - frames: ArrayLike; - attachmentNames: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, attachmentName: string): void; - apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - setAttachment(skeleton: Skeleton, slot: Slot, attachmentName: string): void; - } - class DeformTimeline extends CurveTimeline { - slotIndex: number; - attachment: VertexAttachment; - frames: ArrayLike; - frameVertices: Array>; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class EventTimeline implements Timeline { - frames: ArrayLike; - events: Array; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, event: Event): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class DrawOrderTimeline implements Timeline { - frames: ArrayLike; - drawOrders: Array>; - constructor(frameCount: number); - getPropertyId(): number; - getFrameCount(): number; - setFrame(frameIndex: number, time: number, drawOrder: Array): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class IkConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_MIX: number; - static PREV_SOFTNESS: number; - static PREV_BEND_DIRECTION: number; - static PREV_COMPRESS: number; - static PREV_STRETCH: number; - static MIX: number; - static SOFTNESS: number; - static BEND_DIRECTION: number; - static COMPRESS: number; - static STRETCH: number; - ikConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, mix: number, softness: number, bendDirection: number, compress: boolean, stretch: boolean): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class TransformConstraintTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static PREV_SCALE: number; - static PREV_SHEAR: number; - static ROTATE: number; - static TRANSLATE: number; - static SCALE: number; - static SHEAR: number; - transformConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class PathConstraintPositionTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_VALUE: number; - static VALUE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, value: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { - constructor(frameCount: number); - getPropertyId(): number; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } - class PathConstraintMixTimeline extends CurveTimeline { - static ENTRIES: number; - static PREV_TIME: number; - static PREV_ROTATE: number; - static PREV_TRANSLATE: number; - static ROTATE: number; - static TRANSLATE: number; - pathConstraintIndex: number; - frames: ArrayLike; - constructor(frameCount: number); - getPropertyId(): number; - setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; - apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - } + class Animation { + name: string; + timelines: Array; + timelineIds: StringSet; + duration: number; + constructor(name: string, timelines: Array, duration: number); + hasTimeline(ids: string[]): boolean; + apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + static search(frames: ArrayLike, time: number): number; + static search2(values: ArrayLike, target: number, step: number): number; + } + enum MixBlend { + setup = 0, + first = 1, + replace = 2, + add = 3 + } + enum MixDirection { + mixIn = 0, + mixOut = 1 + } + enum Property { + rotate = 0, + translateX = 1, + translateY = 2, + scaleX = 3, + scaleY = 4, + shearX = 5, + shearY = 6, + rgba = 7, + rgb2 = 8, + attachment = 9, + deform = 10, + event = 11, + drawOrder = 12, + ikConstraint = 13, + transformConstraint = 14, + pathConstraintPosition = 15, + pathConstraintSpacing = 16, + pathConstraintMix = 17 + } + abstract class Timeline { + propertyIds: string[]; + frames: ArrayLike; + constructor(frameCount: number, propertyIds: string[]); + abstract getFrameEntries(): number; + getFrameCount(): number; + getDuration(): number; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + getPropertyIds(): string[]; + } + interface BoneTimeline { + boneIndex: number; + } + interface SlotTimeline { + slotIndex: number; + } + abstract class CurveTimeline extends Timeline { + static LINEAR: number; + static STEPPED: number; + static BEZIER: number; + static BEZIER_SIZE: number; + protected curves: ArrayLike; + constructor(frameCount: number, bezierCount: number, propertyIds: string[]); + setLinear(frame: number): void; + setStepped(frame: number): void; + shrink(bezierCount: number): void; + setBezier(bezier: number, frame: number, value: number, time1: number, value1: number, cx1: number, cy1: number, cx2: number, cy2: number, time2: number, value2: number): void; + getBezierValue(time: number, frameIndex: number, valueOffset: number, i: number): number; + } + abstract class CurveTimeline1 extends CurveTimeline { + static ENTRIES: number; + static VALUE: number; + constructor(frameCount: number, bezierCount: number, propertyIds: string[]); + getFrameEntries(): number; + setFrame(frame: number, time: number, value: number): void; + getCurveValue(time: number): number; + } + abstract class CurveTimeline2 extends CurveTimeline { + static ENTRIES: number; + static VALUE1: number; + static VALUE2: number; + constructor(frameCount: number, bezierCount: number, propertyIds: string[]); + getFrameEntries(): number; + setFrame(frame: number, time: number, value1: number, value2: number): void; + } + class RotateTimeline extends CurveTimeline1 implements BoneTimeline { + boneIndex: number; + constructor(frameCount: number, bezierCount: number, boneIndex: number); + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class TranslateTimeline extends CurveTimeline2 implements BoneTimeline { + boneIndex: number; + constructor(frameCount: number, bezierCount: number, boneIndex: number); + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class ScaleTimeline extends CurveTimeline2 implements BoneTimeline { + boneIndex: number; + constructor(frameCount: number, bezierCount: number, boneIndex: number); + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class ShearTimeline extends CurveTimeline2 implements BoneTimeline { + boneIndex: number; + constructor(frameCount: number, bezierCount: number, boneIndex: number); + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class ColorTimeline extends CurveTimeline implements SlotTimeline { + static ENTRIES: number; + static R: number; + static G: number; + static B: number; + static A: number; + slotIndex: number; + constructor(frameCount: number, bezierCount: number, slotIndex: number); + getFrameEntries(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class TwoColorTimeline extends CurveTimeline implements SlotTimeline { + static ENTRIES: number; + static R: number; + static G: number; + static B: number; + static A: number; + static R2: number; + static G2: number; + static B2: number; + slotIndex: number; + constructor(frameCount: number, bezierCount: number, slotIndex: number); + getFrameEntries(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class AttachmentTimeline extends Timeline implements SlotTimeline { + slotIndex: number; + attachmentNames: Array; + constructor(frameCount: number, slotIndex: number); + getFrameEntries(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, attachmentName: string): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + setAttachment(skeleton: Skeleton, slot: Slot, attachmentName: string): void; + } + class DeformTimeline extends CurveTimeline implements SlotTimeline { + slotIndex: number; + attachment: VertexAttachment; + vertices: Array>; + constructor(frameCount: number, bezierCount: number, slotIndex: number, attachment: VertexAttachment); + getFrameEntries(): number; + setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; + setBezier(bezier: number, frame: number, value: number, time1: number, value1: number, cx1: number, cy1: number, cx2: number, cy2: number, time2: number, value2: number): void; + getCurvePercent(time: number, frame: number): number; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class EventTimeline extends Timeline { + static propertyIds: string[]; + events: Array; + constructor(frameCount: number); + getFrameEntries(): number; + setFrame(frameIndex: number, event: Event): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class DrawOrderTimeline extends Timeline { + static propertyIds: string[]; + drawOrders: Array>; + constructor(frameCount: number); + getFrameEntries(): number; + setFrame(frameIndex: number, time: number, drawOrder: Array): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class IkConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static MIX: number; + static SOFTNESS: number; + static BEND_DIRECTION: number; + static COMPRESS: number; + static STRETCH: number; + ikConstraintIndex: number; + constructor(frameCount: number, bezierCount: number, ikConstraintIndex: number); + getFrameEntries(): number; + setFrame(frame: number, time: number, mix: number, softness: number, bendDirection: number, compress: boolean, stretch: boolean): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class TransformConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static ROTATE: number; + static TRANSLATE: number; + static SCALE: number; + static SHEAR: number; + transformConstraintIndex: number; + constructor(frameCount: number, bezierCount: number, transformConstraintIndex: number); + getFrameEntries(): number; + setFrame(frame: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class PathConstraintPositionTimeline extends CurveTimeline1 { + pathConstraintIndex: number; + constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number); + setFrame(frameIndex: number, time: number, value: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class PathConstraintSpacingTimeline extends CurveTimeline1 { + pathConstraintIndex: number; + constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number); + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class PathConstraintMixTimeline extends CurveTimeline2 { + pathConstraintIndex: number; + constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number); + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } } declare module spine { - class AnimationState { - static emptyAnimation: Animation; - static SUBSEQUENT: number; - static FIRST: number; - static HOLD_SUBSEQUENT: number; - static HOLD_FIRST: number; - static HOLD_MIX: number; - static SETUP: number; - static CURRENT: number; - data: AnimationStateData; - tracks: TrackEntry[]; - timeScale: number; - unkeyedState: number; - events: Event[]; - listeners: AnimationStateListener[]; - queue: EventQueue; - propertyIDs: IntSet; - animationsChanged: boolean; - trackEntryPool: Pool; - constructor(data: AnimationStateData); - update(delta: number): void; - updateMixingFrom(to: TrackEntry, delta: number): boolean; - apply(skeleton: Skeleton): boolean; - applyMixingFrom(to: TrackEntry, skeleton: Skeleton, blend: MixBlend): number; - applyAttachmentTimeline(timeline: AttachmentTimeline, skeleton: Skeleton, time: number, blend: MixBlend, attachments: boolean): void; - setAttachment(skeleton: Skeleton, slot: Slot, attachmentName: string, attachments: boolean): void; - applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, blend: MixBlend, timelinesRotation: Array, i: number, firstFrame: boolean): void; - queueEvents(entry: TrackEntry, animationTime: number): void; - clearTracks(): void; - clearTrack(trackIndex: number): void; - setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; - setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; - setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; - addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; - addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; - setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; - addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; - setEmptyAnimations(mixDuration: number): void; - expandToIndex(index: number): TrackEntry; - trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; - disposeNext(entry: TrackEntry): void; - _animationsChanged(): void; - computeHold(entry: TrackEntry): void; - getCurrent(trackIndex: number): TrackEntry; - addListener(listener: AnimationStateListener): void; - removeListener(listener: AnimationStateListener): void; - clearListeners(): void; - clearListenerNotifications(): void; - } - class TrackEntry { - animation: Animation; - next: TrackEntry; - mixingFrom: TrackEntry; - mixingTo: TrackEntry; - listener: AnimationStateListener; - trackIndex: number; - loop: boolean; - holdPrevious: boolean; - eventThreshold: number; - attachmentThreshold: number; - drawOrderThreshold: number; - animationStart: number; - animationEnd: number; - animationLast: number; - nextAnimationLast: number; - delay: number; - trackTime: number; - trackLast: number; - nextTrackLast: number; - trackEnd: number; - timeScale: number; - alpha: number; - mixTime: number; - mixDuration: number; - interruptAlpha: number; - totalAlpha: number; - mixBlend: MixBlend; - timelineMode: number[]; - timelineHoldMix: TrackEntry[]; - timelinesRotation: number[]; - reset(): void; - getAnimationTime(): number; - setAnimationLast(animationLast: number): void; - isComplete(): boolean; - resetRotationDirections(): void; - } - class EventQueue { - objects: Array; - drainDisabled: boolean; - animState: AnimationState; - constructor(animState: AnimationState); - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - drain(): void; - clear(): void; - } - enum EventType { - start = 0, - interrupt = 1, - end = 2, - dispose = 3, - complete = 4, - event = 5 - } - interface AnimationStateListener { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } - abstract class AnimationStateAdapter implements AnimationStateListener { - start(entry: TrackEntry): void; - interrupt(entry: TrackEntry): void; - end(entry: TrackEntry): void; - dispose(entry: TrackEntry): void; - complete(entry: TrackEntry): void; - event(entry: TrackEntry, event: Event): void; - } + class AnimationState { + private static _emptyAnimation; + private static emptyAnimation; + static SUBSEQUENT: number; + static FIRST: number; + static HOLD_SUBSEQUENT: number; + static HOLD_FIRST: number; + static HOLD_MIX: number; + static SETUP: number; + static CURRENT: number; + data: AnimationStateData; + tracks: TrackEntry[]; + timeScale: number; + unkeyedState: number; + events: Event[]; + listeners: AnimationStateListener[]; + queue: EventQueue; + propertyIDs: StringSet; + animationsChanged: boolean; + trackEntryPool: Pool; + constructor(data: AnimationStateData); + update(delta: number): void; + updateMixingFrom(to: TrackEntry, delta: number): boolean; + apply(skeleton: Skeleton): boolean; + applyMixingFrom(to: TrackEntry, skeleton: Skeleton, blend: MixBlend): number; + applyAttachmentTimeline(timeline: AttachmentTimeline, skeleton: Skeleton, time: number, blend: MixBlend, attachments: boolean): void; + setAttachment(skeleton: Skeleton, slot: Slot, attachmentName: string, attachments: boolean): void; + applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, blend: MixBlend, timelinesRotation: Array, i: number, firstFrame: boolean): void; + queueEvents(entry: TrackEntry, animationTime: number): void; + clearTracks(): void; + clearTrack(trackIndex: number): void; + clearNext(entry: TrackEntry): void; + setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; + setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; + setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; + addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; + addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; + setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; + addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; + setEmptyAnimations(mixDuration: number): void; + expandToIndex(index: number): TrackEntry; + trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; + disposeNext(entry: TrackEntry): void; + _animationsChanged(): void; + computeHold(entry: TrackEntry): void; + getCurrent(trackIndex: number): TrackEntry; + addListener(listener: AnimationStateListener): void; + removeListener(listener: AnimationStateListener): void; + clearListeners(): void; + clearListenerNotifications(): void; + } + class TrackEntry { + animation: Animation; + previous: TrackEntry; + next: TrackEntry; + mixingFrom: TrackEntry; + mixingTo: TrackEntry; + listener: AnimationStateListener; + trackIndex: number; + loop: boolean; + holdPrevious: boolean; + reverse: boolean; + eventThreshold: number; + attachmentThreshold: number; + drawOrderThreshold: number; + animationStart: number; + animationEnd: number; + animationLast: number; + nextAnimationLast: number; + delay: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; + timeScale: number; + alpha: number; + mixTime: number; + mixDuration: number; + interruptAlpha: number; + totalAlpha: number; + mixBlend: MixBlend; + timelineMode: number[]; + timelineHoldMix: TrackEntry[]; + timelinesRotation: number[]; + reset(): void; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; + isComplete(): boolean; + resetRotationDirections(): void; + getTrackComplete(): number; + } + class EventQueue { + objects: Array; + drainDisabled: boolean; + animState: AnimationState; + constructor(animState: AnimationState); + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + drain(): void; + clear(): void; + } + enum EventType { + start = 0, + interrupt = 1, + end = 2, + dispose = 3, + complete = 4, + event = 5 + } + interface AnimationStateListener { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } + abstract class AnimationStateAdapter implements AnimationStateListener { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } } declare module spine { - class AnimationStateData { - skeletonData: SkeletonData; - animationToMixTime: Map; - defaultMix: number; - constructor(skeletonData: SkeletonData); - setMix(fromName: string, toName: string, duration: number): void; - setMixWith(from: Animation, to: Animation, duration: number): void; - getMix(from: Animation, to: Animation): number; - } + class AnimationStateData { + skeletonData: SkeletonData; + animationToMixTime: Map; + defaultMix: number; + constructor(skeletonData: SkeletonData); + setMix(fromName: string, toName: string, duration: number): void; + setMixWith(from: Animation, to: Animation, duration: number): void; + getMix(from: Animation, to: Animation): number; + } } declare module spine { - class AssetManager implements Disposable { - private pathPrefix; - private textureLoader; - private assets; - private errors; - private toLoad; - private loaded; - private rawDataUris; - constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); - private downloadText; - private downloadBinary; - setRawDataURI(path: string, data: string): void; - loadBinary(path: string, success?: (path: string, binary: Uint8Array) => void, error?: (path: string, error: string) => void): void; - loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; - loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; - loadTextureAtlas(path: string, success?: (path: string, atlas: TextureAtlas) => void, error?: (path: string, error: string) => void): void; - get(path: string): any; - remove(path: string): void; - removeAll(): void; - isLoadingComplete(): boolean; - getToLoad(): number; - getLoaded(): number; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class AssetManager implements Disposable { + private pathPrefix; + private textureLoader; + private assets; + private errors; + private toLoad; + private loaded; + private rawDataUris; + constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); + private downloadText; + private downloadBinary; + setRawDataURI(path: string, data: string): void; + loadBinary(path: string, success?: (path: string, binary: Uint8Array) => void, error?: (path: string, error: string) => void): void; + loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; + loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureAtlas(path: string, success?: (path: string, atlas: TextureAtlas) => void, error?: (path: string, error: string) => void): void; + get(path: string): any; + remove(path: string): void; + removeAll(): void; + isLoadingComplete(): boolean; + getToLoad(): number; + getLoaded(): number; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class AtlasAttachmentLoader implements AttachmentLoader { - atlas: TextureAtlas; - constructor(atlas: TextureAtlas); - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + class AtlasAttachmentLoader implements AttachmentLoader { + atlas: TextureAtlas; + constructor(atlas: TextureAtlas); + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - enum BlendMode { - Normal = 0, - Additive = 1, - Multiply = 2, - Screen = 3 - } + enum BlendMode { + Normal = 0, + Additive = 1, + Multiply = 2, + Screen = 3 + } } declare module spine { - class Bone implements Updatable { - data: BoneData; - skeleton: Skeleton; - parent: Bone; - children: Bone[]; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - ax: number; - ay: number; - arotation: number; - ascaleX: number; - ascaleY: number; - ashearX: number; - ashearY: number; - appliedValid: boolean; - a: number; - b: number; - c: number; - d: number; - worldY: number; - worldX: number; - sorted: boolean; - active: boolean; - constructor(data: BoneData, skeleton: Skeleton, parent: Bone); - isActive(): boolean; - update(): void; - updateWorldTransform(): void; - updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; - setToSetupPose(): void; - getWorldRotationX(): number; - getWorldRotationY(): number; - getWorldScaleX(): number; - getWorldScaleY(): number; - updateAppliedTransform(): void; - worldToLocal(world: Vector2): Vector2; - localToWorld(local: Vector2): Vector2; - worldToLocalRotation(worldRotation: number): number; - localToWorldRotation(localRotation: number): number; - rotateWorld(degrees: number): void; - } + class Bone implements Updatable { + data: BoneData; + skeleton: Skeleton; + parent: Bone; + children: Bone[]; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + ax: number; + ay: number; + arotation: number; + ascaleX: number; + ascaleY: number; + ashearX: number; + ashearY: number; + appliedValid: boolean; + a: number; + b: number; + c: number; + d: number; + worldY: number; + worldX: number; + sorted: boolean; + active: boolean; + constructor(data: BoneData, skeleton: Skeleton, parent: Bone); + isActive(): boolean; + update(): void; + updateWorldTransform(): void; + updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; + setToSetupPose(): void; + getWorldRotationX(): number; + getWorldRotationY(): number; + getWorldScaleX(): number; + getWorldScaleY(): number; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + worldToLocalRotation(worldRotation: number): number; + localToWorldRotation(localRotation: number): number; + rotateWorld(degrees: number): void; + } } declare module spine { - class BoneData { - index: number; - name: string; - parent: BoneData; - length: number; - x: number; - y: number; - rotation: number; - scaleX: number; - scaleY: number; - shearX: number; - shearY: number; - transformMode: TransformMode; - skinRequired: boolean; - color: Color; - constructor(index: number, name: string, parent: BoneData); - } - enum TransformMode { - Normal = 0, - OnlyTranslation = 1, - NoRotationOrReflection = 2, - NoScale = 3, - NoScaleOrReflection = 4 - } + class BoneData { + index: number; + name: string; + parent: BoneData; + length: number; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + transformMode: TransformMode; + skinRequired: boolean; + color: Color; + constructor(index: number, name: string, parent: BoneData); + } + enum TransformMode { + Normal = 0, + OnlyTranslation = 1, + NoRotationOrReflection = 2, + NoScale = 3, + NoScaleOrReflection = 4 + } } declare module spine { - abstract class ConstraintData { - name: string; - order: number; - skinRequired: boolean; - constructor(name: string, order: number, skinRequired: boolean); - } + abstract class ConstraintData { + name: string; + order: number; + skinRequired: boolean; + constructor(name: string, order: number, skinRequired: boolean); + } } declare module spine { - class Event { - data: EventData; - intValue: number; - floatValue: number; - stringValue: string; - time: number; - volume: number; - balance: number; - constructor(time: number, data: EventData); - } + class Event { + data: EventData; + intValue: number; + floatValue: number; + stringValue: string; + time: number; + volume: number; + balance: number; + constructor(time: number, data: EventData); + } } declare module spine { - class EventData { - name: string; - intValue: number; - floatValue: number; - stringValue: string; - audioPath: string; - volume: number; - balance: number; - constructor(name: string); - } + class EventData { + name: string; + intValue: number; + floatValue: number; + stringValue: string; + audioPath: string; + volume: number; + balance: number; + constructor(name: string); + } } declare module spine { - class IkConstraint implements Updatable { - data: IkConstraintData; - bones: Array; - target: Bone; - bendDirection: number; - compress: boolean; - stretch: boolean; - mix: number; - softness: number; - active: boolean; - constructor(data: IkConstraintData, skeleton: Skeleton); - isActive(): boolean; - apply(): void; - update(): void; - apply1(bone: Bone, targetX: number, targetY: number, compress: boolean, stretch: boolean, uniform: boolean, alpha: number): void; - apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, stretch: boolean, softness: number, alpha: number): void; - } + class IkConstraint implements Updatable { + data: IkConstraintData; + bones: Array; + target: Bone; + bendDirection: number; + compress: boolean; + stretch: boolean; + mix: number; + softness: number; + active: boolean; + constructor(data: IkConstraintData, skeleton: Skeleton); + isActive(): boolean; + apply(): void; + update(): void; + apply1(bone: Bone, targetX: number, targetY: number, compress: boolean, stretch: boolean, uniform: boolean, alpha: number): void; + apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, stretch: boolean, softness: number, alpha: number): void; + } } declare module spine { - class IkConstraintData extends ConstraintData { - bones: BoneData[]; - target: BoneData; - bendDirection: number; - compress: boolean; - stretch: boolean; - uniform: boolean; - mix: number; - softness: number; - constructor(name: string); - } + class IkConstraintData extends ConstraintData { + bones: BoneData[]; + target: BoneData; + bendDirection: number; + compress: boolean; + stretch: boolean; + uniform: boolean; + mix: number; + softness: number; + constructor(name: string); + } } declare module spine { - class PathConstraint implements Updatable { - static NONE: number; - static BEFORE: number; - static AFTER: number; - static epsilon: number; - data: PathConstraintData; - bones: Array; - target: Slot; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - spaces: number[]; - positions: number[]; - world: number[]; - curves: number[]; - lengths: number[]; - segments: number[]; - active: boolean; - constructor(data: PathConstraintData, skeleton: Skeleton); - isActive(): boolean; - apply(): void; - update(): void; - computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; - addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; - addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; - } + class PathConstraint implements Updatable { + static NONE: number; + static BEFORE: number; + static AFTER: number; + static epsilon: number; + data: PathConstraintData; + bones: Array; + target: Slot; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + spaces: number[]; + positions: number[]; + world: number[]; + curves: number[]; + lengths: number[]; + segments: number[]; + active: boolean; + constructor(data: PathConstraintData, skeleton: Skeleton); + isActive(): boolean; + update(): void; + computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; + addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; + } } declare module spine { - class PathConstraintData extends ConstraintData { - bones: BoneData[]; - target: SlotData; - positionMode: PositionMode; - spacingMode: SpacingMode; - rotateMode: RotateMode; - offsetRotation: number; - position: number; - spacing: number; - rotateMix: number; - translateMix: number; - constructor(name: string); - } - enum PositionMode { - Fixed = 0, - Percent = 1 - } - enum SpacingMode { - Length = 0, - Fixed = 1, - Percent = 2 - } - enum RotateMode { - Tangent = 0, - Chain = 1, - ChainScale = 2 - } + class PathConstraintData extends ConstraintData { + bones: BoneData[]; + target: SlotData; + positionMode: PositionMode; + spacingMode: SpacingMode; + rotateMode: RotateMode; + offsetRotation: number; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + constructor(name: string); + } + enum PositionMode { + Fixed = 0, + Percent = 1 + } + enum SpacingMode { + Length = 0, + Fixed = 1, + Percent = 2 + } + enum RotateMode { + Tangent = 0, + Chain = 1, + ChainScale = 2 + } } declare module spine { - class SharedAssetManager implements Disposable { - private pathPrefix; - private clientAssets; - private queuedAssets; - private rawAssets; - private errors; - constructor(pathPrefix?: string); - private queueAsset; - loadText(clientId: string, path: string): void; - loadJson(clientId: string, path: string): void; - loadTexture(clientId: string, textureLoader: (image: HTMLImageElement | ImageBitmap) => any, path: string): void; - get(clientId: string, path: string): any; - private updateClientAssets; - isLoadingComplete(clientId: string): boolean; - dispose(): void; - hasErrors(): boolean; - getErrors(): Map; - } + class SharedAssetManager implements Disposable { + private pathPrefix; + private clientAssets; + private queuedAssets; + private rawAssets; + private errors; + constructor(pathPrefix?: string); + private queueAsset; + loadText(clientId: string, path: string): void; + loadJson(clientId: string, path: string): void; + loadTexture(clientId: string, textureLoader: (image: HTMLImageElement | ImageBitmap) => any, path: string): void; + get(clientId: string, path: string): any; + private updateClientAssets; + isLoadingComplete(clientId: string): boolean; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } } declare module spine { - class Skeleton { - data: SkeletonData; - bones: Array; - slots: Array; - drawOrder: Array; - ikConstraints: Array; - transformConstraints: Array; - pathConstraints: Array; - _updateCache: Updatable[]; - updateCacheReset: Updatable[]; - skin: Skin; - color: Color; - time: number; - scaleX: number; - scaleY: number; - x: number; - y: number; - constructor(data: SkeletonData); - updateCache(): void; - sortIkConstraint(constraint: IkConstraint): void; - sortPathConstraint(constraint: PathConstraint): void; - sortTransformConstraint(constraint: TransformConstraint): void; - sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; - sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; - sortBone(bone: Bone): void; - sortReset(bones: Array): void; - updateWorldTransform(): void; - setToSetupPose(): void; - setBonesToSetupPose(): void; - setSlotsToSetupPose(): void; - getRootBone(): Bone; - findBone(boneName: string): Bone; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): Slot; - findSlotIndex(slotName: string): number; - setSkinByName(skinName: string): void; - setSkin(newSkin: Skin): void; - getAttachmentByName(slotName: string, attachmentName: string): Attachment; - getAttachment(slotIndex: number, attachmentName: string): Attachment; - setAttachment(slotName: string, attachmentName: string): void; - findIkConstraint(constraintName: string): IkConstraint; - findTransformConstraint(constraintName: string): TransformConstraint; - findPathConstraint(constraintName: string): PathConstraint; - getBounds(offset: Vector2, size: Vector2, temp?: Array): void; - update(delta: number): void; - } + class Skeleton { + data: SkeletonData; + bones: Array; + slots: Array; + drawOrder: Array; + ikConstraints: Array; + transformConstraints: Array; + pathConstraints: Array; + _updateCache: Updatable[]; + skin: Skin; + color: Color; + time: number; + scaleX: number; + scaleY: number; + x: number; + y: number; + constructor(data: SkeletonData); + updateCache(): void; + sortIkConstraint(constraint: IkConstraint): void; + sortPathConstraint(constraint: PathConstraint): void; + sortTransformConstraint(constraint: TransformConstraint): void; + sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; + sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; + sortBone(bone: Bone): void; + sortReset(bones: Array): void; + updateWorldTransform(): void; + updateWorldTransformWith(parent: Bone): void; + setToSetupPose(): void; + setBonesToSetupPose(): void; + setSlotsToSetupPose(): void; + getRootBone(): Bone; + findBone(boneName: string): Bone; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): Slot; + findSlotIndex(slotName: string): number; + setSkinByName(skinName: string): void; + setSkin(newSkin: Skin): void; + getAttachmentByName(slotName: string, attachmentName: string): Attachment; + getAttachment(slotIndex: number, attachmentName: string): Attachment; + setAttachment(slotName: string, attachmentName: string): void; + findIkConstraint(constraintName: string): IkConstraint; + findTransformConstraint(constraintName: string): TransformConstraint; + findPathConstraint(constraintName: string): PathConstraint; + getBounds(offset: Vector2, size: Vector2, temp?: Array): void; + update(delta: number): void; + } } declare module spine { - class SkeletonBinary { - static AttachmentTypeValues: number[]; - static TransformModeValues: TransformMode[]; - static PositionModeValues: PositionMode[]; - static SpacingModeValues: SpacingMode[]; - static RotateModeValues: RotateMode[]; - static BlendModeValues: BlendMode[]; - static BONE_ROTATE: number; - static BONE_TRANSLATE: number; - static BONE_SCALE: number; - static BONE_SHEAR: number; - static SLOT_ATTACHMENT: number; - static SLOT_COLOR: number; - static SLOT_TWO_COLOR: number; - static PATH_POSITION: number; - static PATH_SPACING: number; - static PATH_MIX: number; - static CURVE_LINEAR: number; - static CURVE_STEPPED: number; - static CURVE_BEZIER: number; - scale: number; - attachmentLoader: AttachmentLoader; - private linkedMeshes; - constructor(attachmentLoader: AttachmentLoader); - readSkeletonData(binary: Uint8Array): SkeletonData; - private readSkin; - private readAttachment; - private readVertices; - private readFloatArray; - private readShortArray; - private readAnimation; - private readCurve; - setCurve(timeline: CurveTimeline, frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; - } + export class SkeletonBinary { + static AttachmentTypeValues: number[]; + static TransformModeValues: TransformMode[]; + static PositionModeValues: PositionMode[]; + static SpacingModeValues: SpacingMode[]; + static RotateModeValues: RotateMode[]; + static BlendModeValues: BlendMode[]; + static BONE_ROTATE: number; + static BONE_TRANSLATE: number; + static BONE_SCALE: number; + static BONE_SHEAR: number; + static SLOT_ATTACHMENT: number; + static SLOT_COLOR: number; + static SLOT_TWO_COLOR: number; + static PATH_POSITION: number; + static PATH_SPACING: number; + static PATH_MIX: number; + static CURVE_LINEAR: number; + static CURVE_STEPPED: number; + static CURVE_BEZIER: number; + scale: number; + attachmentLoader: AttachmentLoader; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(binary: Uint8Array): SkeletonData; + private readSkin; + private readAttachment; + private readVertices; + private readFloatArray; + private readShortArray; + private readAnimation; + static readTimeline(input: BinaryInput, timeline: CurveTimeline1, scale: number): Timeline; + static readTimeline2(input: BinaryInput, timeline: CurveTimeline2, scale: number): Timeline; + static setBezier(input: BinaryInput, timeline: CurveTimeline, bezier: number, frame: number, value: number, time1: number, time2: number, value1: number, value2: number, scale: number): void; + } + class BinaryInput { + strings: string[]; + private index; + private buffer; + constructor(data: Uint8Array, strings?: string[], index?: number, buffer?: DataView); + readByte(): number; + readUnsignedByte(): number; + readShort(): number; + readInt32(): number; + readInt(optimizePositive: boolean): number; + readStringRef(): string; + readString(): string; + readFloat(): number; + readBoolean(): boolean; + } + export {}; } declare module spine { - class SkeletonBounds { - minX: number; - minY: number; - maxX: number; - maxY: number; - boundingBoxes: BoundingBoxAttachment[]; - polygons: ArrayLike[]; - private polygonPool; - update(skeleton: Skeleton, updateAabb: boolean): void; - aabbCompute(): void; - aabbContainsPoint(x: number, y: number): boolean; - aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; - aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; - containsPoint(x: number, y: number): BoundingBoxAttachment; - containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; - intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; - intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; - getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; - getWidth(): number; - getHeight(): number; - } + class SkeletonBounds { + minX: number; + minY: number; + maxX: number; + maxY: number; + boundingBoxes: BoundingBoxAttachment[]; + polygons: ArrayLike[]; + private polygonPool; + update(skeleton: Skeleton, updateAabb: boolean): void; + aabbCompute(): void; + aabbContainsPoint(x: number, y: number): boolean; + aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; + aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; + containsPoint(x: number, y: number): BoundingBoxAttachment; + containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; + intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; + intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; + getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; + getWidth(): number; + getHeight(): number; + } } declare module spine { - class SkeletonClipping { - private triangulator; - private clippingPolygon; - private clipOutput; - clippedVertices: number[]; - clippedTriangles: number[]; - private scratch; - private clipAttachment; - private clippingPolygons; - clipStart(slot: Slot, clip: ClippingAttachment): number; - clipEndWithSlot(slot: Slot): void; - clipEnd(): void; - isClipping(): boolean; - clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; - clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; - static makeClockwise(polygon: ArrayLike): void; - } + class SkeletonClipping { + private triangulator; + private clippingPolygon; + private clipOutput; + clippedVertices: number[]; + clippedTriangles: number[]; + private scratch; + private clipAttachment; + private clippingPolygons; + clipStart(slot: Slot, clip: ClippingAttachment): number; + clipEndWithSlot(slot: Slot): void; + clipEnd(): void; + isClipping(): boolean; + clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; + clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; + static makeClockwise(polygon: ArrayLike): void; + } } declare module spine { - class SkeletonData { - name: string; - bones: BoneData[]; - slots: SlotData[]; - skins: Skin[]; - defaultSkin: Skin; - events: EventData[]; - animations: Animation[]; - ikConstraints: IkConstraintData[]; - transformConstraints: TransformConstraintData[]; - pathConstraints: PathConstraintData[]; - x: number; - y: number; - width: number; - height: number; - version: string; - hash: string; - fps: number; - imagesPath: string; - audioPath: string; - findBone(boneName: string): BoneData; - findBoneIndex(boneName: string): number; - findSlot(slotName: string): SlotData; - findSlotIndex(slotName: string): number; - findSkin(skinName: string): Skin; - findEvent(eventDataName: string): EventData; - findAnimation(animationName: string): Animation; - findIkConstraint(constraintName: string): IkConstraintData; - findTransformConstraint(constraintName: string): TransformConstraintData; - findPathConstraint(constraintName: string): PathConstraintData; - findPathConstraintIndex(pathConstraintName: string): number; - } + class SkeletonData { + name: string; + bones: BoneData[]; + slots: SlotData[]; + skins: Skin[]; + defaultSkin: Skin; + events: EventData[]; + animations: Animation[]; + ikConstraints: IkConstraintData[]; + transformConstraints: TransformConstraintData[]; + pathConstraints: PathConstraintData[]; + x: number; + y: number; + width: number; + height: number; + version: string; + hash: string; + fps: number; + imagesPath: string; + audioPath: string; + findBone(boneName: string): BoneData; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): SlotData; + findSlotIndex(slotName: string): number; + findSkin(skinName: string): Skin; + findEvent(eventDataName: string): EventData; + findAnimation(animationName: string): Animation; + findIkConstraint(constraintName: string): IkConstraintData; + findTransformConstraint(constraintName: string): TransformConstraintData; + findPathConstraint(constraintName: string): PathConstraintData; + findPathConstraintIndex(pathConstraintName: string): number; + } } declare module spine { - class SkeletonJson { - attachmentLoader: AttachmentLoader; - scale: number; - private linkedMeshes; - constructor(attachmentLoader: AttachmentLoader); - readSkeletonData(json: string | any): SkeletonData; - readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; - readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; - readAnimation(map: any, name: string, skeletonData: SkeletonData): void; - readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; - getValue(map: any, prop: string, defaultValue: any): any; - static blendModeFromString(str: string): BlendMode; - static positionModeFromString(str: string): PositionMode; - static spacingModeFromString(str: string): SpacingMode; - static rotateModeFromString(str: string): RotateMode; - static transformModeFromString(str: string): TransformMode; - } + class SkeletonJson { + attachmentLoader: AttachmentLoader; + scale: number; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(json: string | any): SkeletonData; + readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; + readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; + readAnimation(map: any, name: string, skeletonData: SkeletonData): void; + private readTimeline; + private readTimeline2; + private readCurve; + setBezier(timeline: CurveTimeline, frame: number, value: number, bezier: number, time1: number, value1: number, cx1: number, cy1: number, cx2: number, cy2: number, time2: number, value2: number): void; + getValue(map: any, prop: string, defaultValue: any): any; + static blendModeFromString(str: string): BlendMode; + static positionModeFromString(str: string): PositionMode; + static spacingModeFromString(str: string): SpacingMode; + static rotateModeFromString(str: string): RotateMode; + static transformModeFromString(str: string): TransformMode; + } } declare module spine { - class SkinEntry { - slotIndex: number; - name: string; - attachment: Attachment; - constructor(slotIndex: number, name: string, attachment: Attachment); - } - class Skin { - name: string; - attachments: Map[]; - bones: BoneData[]; - constraints: ConstraintData[]; - constructor(name: string); - setAttachment(slotIndex: number, name: string, attachment: Attachment): void; - addSkin(skin: Skin): void; - copySkin(skin: Skin): void; - getAttachment(slotIndex: number, name: string): Attachment; - removeAttachment(slotIndex: number, name: string): void; - getAttachments(): Array; - getAttachmentsForSlot(slotIndex: number, attachments: Array): void; - clear(): void; - attachAll(skeleton: Skeleton, oldSkin: Skin): void; - } + class SkinEntry { + slotIndex: number; + name: string; + attachment: Attachment; + constructor(slotIndex: number, name: string, attachment: Attachment); + } + class Skin { + name: string; + attachments: Map[]; + bones: BoneData[]; + constraints: ConstraintData[]; + constructor(name: string); + setAttachment(slotIndex: number, name: string, attachment: Attachment): void; + addSkin(skin: Skin): void; + copySkin(skin: Skin): void; + getAttachment(slotIndex: number, name: string): Attachment; + removeAttachment(slotIndex: number, name: string): void; + getAttachments(): Array; + getAttachmentsForSlot(slotIndex: number, attachments: Array): void; + clear(): void; + attachAll(skeleton: Skeleton, oldSkin: Skin): void; + } } declare module spine { - class Slot { - data: SlotData; - bone: Bone; - color: Color; - darkColor: Color; - attachment: Attachment; - private attachmentTime; - attachmentState: number; - deform: number[]; - constructor(data: SlotData, bone: Bone); - getSkeleton(): Skeleton; - getAttachment(): Attachment; - setAttachment(attachment: Attachment): void; - setAttachmentTime(time: number): void; - getAttachmentTime(): number; - setToSetupPose(): void; - } + class Slot { + data: SlotData; + bone: Bone; + color: Color; + darkColor: Color; + attachment: Attachment; + private attachmentTime; + attachmentState: number; + deform: number[]; + constructor(data: SlotData, bone: Bone); + getSkeleton(): Skeleton; + getAttachment(): Attachment; + setAttachment(attachment: Attachment): void; + setAttachmentTime(time: number): void; + getAttachmentTime(): number; + setToSetupPose(): void; + } } declare module spine { - class SlotData { - index: number; - name: string; - boneData: BoneData; - color: Color; - darkColor: Color; - attachmentName: string; - blendMode: BlendMode; - constructor(index: number, name: string, boneData: BoneData); - } + class SlotData { + index: number; + name: string; + boneData: BoneData; + color: Color; + darkColor: Color; + attachmentName: string; + blendMode: BlendMode; + constructor(index: number, name: string, boneData: BoneData); + } } declare module spine { - abstract class Texture { - protected _image: HTMLImageElement | ImageBitmap; - constructor(image: HTMLImageElement | ImageBitmap); - getImage(): HTMLImageElement | ImageBitmap; - abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - abstract dispose(): void; - static filterFromString(text: string): TextureFilter; - static wrapFromString(text: string): TextureWrap; - } - enum TextureFilter { - Nearest = 9728, - Linear = 9729, - MipMap = 9987, - MipMapNearestNearest = 9984, - MipMapLinearNearest = 9985, - MipMapNearestLinear = 9986, - MipMapLinearLinear = 9987 - } - enum TextureWrap { - MirroredRepeat = 33648, - ClampToEdge = 33071, - Repeat = 10497 - } - class TextureRegion { - renderObject: any; - u: number; - v: number; - u2: number; - v2: number; - width: number; - height: number; - rotate: boolean; - offsetX: number; - offsetY: number; - originalWidth: number; - originalHeight: number; - } - class FakeTexture extends Texture { - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - dispose(): void; - } + abstract class Texture { + protected _image: HTMLImageElement | ImageBitmap; + constructor(image: HTMLImageElement | ImageBitmap); + getImage(): HTMLImageElement | ImageBitmap; + abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + abstract dispose(): void; + static filterFromString(text: string): TextureFilter; + static wrapFromString(text: string): TextureWrap; + } + enum TextureFilter { + Nearest = 9728, + Linear = 9729, + MipMap = 9987, + MipMapNearestNearest = 9984, + MipMapLinearNearest = 9985, + MipMapNearestLinear = 9986, + MipMapLinearLinear = 9987 + } + enum TextureWrap { + MirroredRepeat = 33648, + ClampToEdge = 33071, + Repeat = 10497 + } + class TextureRegion { + renderObject: any; + u: number; + v: number; + u2: number; + v2: number; + width: number; + height: number; + rotate: boolean; + offsetX: number; + offsetY: number; + originalWidth: number; + originalHeight: number; + } + class FakeTexture extends Texture { + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + dispose(): void; + } } declare module spine { - class TextureAtlas implements Disposable { - pages: TextureAtlasPage[]; - regions: TextureAtlasRegion[]; - constructor(atlasText: string, textureLoader: (path: string) => any); - private load; - findRegion(name: string): TextureAtlasRegion; - dispose(): void; - } - class TextureAtlasPage { - name: string; - minFilter: TextureFilter; - magFilter: TextureFilter; - uWrap: TextureWrap; - vWrap: TextureWrap; - texture: Texture; - width: number; - height: number; - } - class TextureAtlasRegion extends TextureRegion { - page: TextureAtlasPage; - name: string; - x: number; - y: number; - index: number; - rotate: boolean; - degrees: number; - texture: Texture; - } + class TextureAtlas implements Disposable { + pages: TextureAtlasPage[]; + regions: TextureAtlasRegion[]; + constructor(atlasText: string, textureLoader: (path: string) => any); + private load; + findRegion(name: string): TextureAtlasRegion; + dispose(): void; + } + class TextureAtlasPage { + name: string; + minFilter: TextureFilter; + magFilter: TextureFilter; + uWrap: TextureWrap; + vWrap: TextureWrap; + texture: Texture; + width: number; + height: number; + } + class TextureAtlasRegion extends TextureRegion { + page: TextureAtlasPage; + name: string; + x: number; + y: number; + index: number; + rotate: boolean; + degrees: number; + texture: Texture; + } } declare module spine { - class TransformConstraint implements Updatable { - data: TransformConstraintData; - bones: Array; - target: Bone; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - temp: Vector2; - active: boolean; - constructor(data: TransformConstraintData, skeleton: Skeleton); - isActive(): boolean; - apply(): void; - update(): void; - applyAbsoluteWorld(): void; - applyRelativeWorld(): void; - applyAbsoluteLocal(): void; - applyRelativeLocal(): void; - } + class TransformConstraint implements Updatable { + data: TransformConstraintData; + bones: Array; + target: Bone; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + temp: Vector2; + active: boolean; + constructor(data: TransformConstraintData, skeleton: Skeleton); + isActive(): boolean; + update(): void; + applyAbsoluteWorld(): void; + applyRelativeWorld(): void; + applyAbsoluteLocal(): void; + applyRelativeLocal(): void; + } } declare module spine { - class TransformConstraintData extends ConstraintData { - bones: BoneData[]; - target: BoneData; - rotateMix: number; - translateMix: number; - scaleMix: number; - shearMix: number; - offsetRotation: number; - offsetX: number; - offsetY: number; - offsetScaleX: number; - offsetScaleY: number; - offsetShearY: number; - relative: boolean; - local: boolean; - constructor(name: string); - } + class TransformConstraintData extends ConstraintData { + bones: BoneData[]; + target: BoneData; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + offsetRotation: number; + offsetX: number; + offsetY: number; + offsetScaleX: number; + offsetScaleY: number; + offsetShearY: number; + relative: boolean; + local: boolean; + constructor(name: string); + } } declare module spine { - class Triangulator { - private convexPolygons; - private convexPolygonsIndices; - private indicesArray; - private isConcaveArray; - private triangles; - private polygonPool; - private polygonIndicesPool; - triangulate(verticesArray: ArrayLike): Array; - decompose(verticesArray: Array, triangles: Array): Array>; - private static isConcave; - private static positiveArea; - private static winding; - } + class Triangulator { + private convexPolygons; + private convexPolygonsIndices; + private indicesArray; + private isConcaveArray; + private triangles; + private polygonPool; + private polygonIndicesPool; + triangulate(verticesArray: ArrayLike): Array; + decompose(verticesArray: Array, triangles: Array): Array>; + private static isConcave; + private static positiveArea; + private static winding; + } } declare module spine { - interface Updatable { - update(): void; - isActive(): boolean; - } + interface Updatable { + update(): void; + isActive(): boolean; + } } declare module spine { - interface Map { - [key: string]: T; - } - class IntSet { - array: number[]; - add(value: number): boolean; - contains(value: number): boolean; - remove(value: number): void; - clear(): void; - } - interface Disposable { - dispose(): void; - } - interface Restorable { - restore(): void; - } - class Color { - r: number; - g: number; - b: number; - a: number; - static WHITE: Color; - static RED: Color; - static GREEN: Color; - static BLUE: Color; - static MAGENTA: Color; - constructor(r?: number, g?: number, b?: number, a?: number); - set(r: number, g: number, b: number, a: number): this; - setFromColor(c: Color): this; - setFromString(hex: string): this; - add(r: number, g: number, b: number, a: number): this; - clamp(): this; - static rgba8888ToColor(color: Color, value: number): void; - static rgb888ToColor(color: Color, value: number): void; - } - class MathUtils { - static PI: number; - static PI2: number; - static radiansToDegrees: number; - static radDeg: number; - static degreesToRadians: number; - static degRad: number; - static clamp(value: number, min: number, max: number): number; - static cosDeg(degrees: number): number; - static sinDeg(degrees: number): number; - static signum(value: number): number; - static toInt(x: number): number; - static cbrt(x: number): number; - static randomTriangular(min: number, max: number): number; - static randomTriangularWith(min: number, max: number, mode: number): number; - } - abstract class Interpolation { - protected abstract applyInternal(a: number): number; - apply(start: number, end: number, a: number): number; - } - class Pow extends Interpolation { - protected power: number; - constructor(power: number); - applyInternal(a: number): number; - } - class PowOut extends Pow { - constructor(power: number); - applyInternal(a: number): number; - } - class Utils { - static SUPPORTS_TYPED_ARRAYS: boolean; - static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; - static setArraySize(array: Array, size: number, value?: any): Array; - static ensureArrayCapacity(array: Array, size: number, value?: any): Array; - static newArray(size: number, defaultValue: T): Array; - static newFloatArray(size: number): ArrayLike; - static newShortArray(size: number): ArrayLike; - static toFloatArray(array: Array): number[] | Float32Array; - static toSinglePrecision(value: number): number; - static webkit602BugfixHelper(alpha: number, blend: MixBlend): void; - static contains(array: Array, element: T, identity?: boolean): boolean; - } - class DebugUtils { - static logBones(skeleton: Skeleton): void; - } - class Pool { - private items; - private instantiator; - constructor(instantiator: () => T); - obtain(): T; - free(item: T): void; - freeAll(items: ArrayLike): void; - clear(): void; - } - class Vector2 { - x: number; - y: number; - constructor(x?: number, y?: number); - set(x: number, y: number): Vector2; - length(): number; - normalize(): this; - } - class TimeKeeper { - maxDelta: number; - framesPerSecond: number; - delta: number; - totalTime: number; - private lastTime; - private frameCount; - private frameTime; - update(): void; - } - interface ArrayLike { - length: number; - [n: number]: T; - } - class WindowedMean { - values: Array; - addedValues: number; - lastValue: number; - mean: number; - dirty: boolean; - constructor(windowSize?: number); - hasEnoughData(): boolean; - addValue(value: number): void; - getMean(): number; - } + interface Map { + [key: string]: T; + } + class IntSet { + array: number[]; + add(value: number): boolean; + contains(value: number): boolean; + remove(value: number): void; + clear(): void; + } + class StringSet { + entries: Map; + size: number; + add(value: string): boolean; + addAll(values: string[]): boolean; + contains(value: string): boolean; + clear(): void; + } + interface Disposable { + dispose(): void; + } + interface Restorable { + restore(): void; + } + class Color { + r: number; + g: number; + b: number; + a: number; + static WHITE: Color; + static RED: Color; + static GREEN: Color; + static BLUE: Color; + static MAGENTA: Color; + constructor(r?: number, g?: number, b?: number, a?: number); + set(r: number, g: number, b: number, a: number): this; + setFromColor(c: Color): this; + setFromString(hex: string): this; + add(r: number, g: number, b: number, a: number): this; + clamp(): this; + static rgba8888ToColor(color: Color, value: number): void; + static rgb888ToColor(color: Color, value: number): void; + } + class MathUtils { + static PI: number; + static PI2: number; + static radiansToDegrees: number; + static radDeg: number; + static degreesToRadians: number; + static degRad: number; + static clamp(value: number, min: number, max: number): number; + static cosDeg(degrees: number): number; + static sinDeg(degrees: number): number; + static signum(value: number): number; + static toInt(x: number): number; + static cbrt(x: number): number; + static randomTriangular(min: number, max: number): number; + static randomTriangularWith(min: number, max: number, mode: number): number; + } + abstract class Interpolation { + protected abstract applyInternal(a: number): number; + apply(start: number, end: number, a: number): number; + } + class Pow extends Interpolation { + protected power: number; + constructor(power: number); + applyInternal(a: number): number; + } + class PowOut extends Pow { + constructor(power: number); + applyInternal(a: number): number; + } + class Utils { + static SUPPORTS_TYPED_ARRAYS: boolean; + static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; + static setArraySize(array: Array, size: number, value?: any): Array; + static ensureArrayCapacity(array: Array, size: number, value?: any): Array; + static newArray(size: number, defaultValue: T): Array; + static newFloatArray(size: number): ArrayLike; + static newShortArray(size: number): ArrayLike; + static toFloatArray(array: Array): number[] | Float32Array; + static toSinglePrecision(value: number): number; + static webkit602BugfixHelper(alpha: number, blend: MixBlend): void; + static contains(array: Array, element: T, identity?: boolean): boolean; + } + class DebugUtils { + static logBones(skeleton: Skeleton): void; + } + class Pool { + private items; + private instantiator; + constructor(instantiator: () => T); + obtain(): T; + free(item: T): void; + freeAll(items: ArrayLike): void; + clear(): void; + } + class Vector2 { + x: number; + y: number; + constructor(x?: number, y?: number); + set(x: number, y: number): Vector2; + length(): number; + normalize(): this; + } + class TimeKeeper { + maxDelta: number; + framesPerSecond: number; + delta: number; + totalTime: number; + private lastTime; + private frameCount; + private frameTime; + update(): void; + } + interface ArrayLike { + length: number; + [n: number]: T; + } + class WindowedMean { + values: Array; + addedValues: number; + lastValue: number; + mean: number; + dirty: boolean; + constructor(windowSize?: number); + hasEnoughData(): boolean; + addValue(value: number): void; + getMean(): number; + } } declare module spine { - interface VertexEffect { - begin(skeleton: Skeleton): void; - transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void; - end(): void; - } + interface VertexEffect { + begin(skeleton: Skeleton): void; + transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void; + end(): void; + } } interface Math { - fround(n: number): number; + fround(n: number): number; } declare module spine { - abstract class Attachment { - name: string; - constructor(name: string); - abstract copy(): Attachment; - } - abstract class VertexAttachment extends Attachment { - private static nextID; - id: number; - bones: Array; - vertices: ArrayLike; - worldVerticesLength: number; - deformAttachment: VertexAttachment; - constructor(name: string); - computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; - copyTo(attachment: VertexAttachment): void; - } + abstract class Attachment { + name: string; + constructor(name: string); + abstract copy(): Attachment; + } + abstract class VertexAttachment extends Attachment { + private static nextID; + id: number; + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + deformAttachment: VertexAttachment; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + copyTo(attachment: VertexAttachment): void; + } } declare module spine { - interface AttachmentLoader { - newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; - newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; - newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; - newPathAttachment(skin: Skin, name: string): PathAttachment; - newPointAttachment(skin: Skin, name: string): PointAttachment; - newClippingAttachment(skin: Skin, name: string): ClippingAttachment; - } + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } } declare module spine { - enum AttachmentType { - Region = 0, - BoundingBox = 1, - Mesh = 2, - LinkedMesh = 3, - Path = 4, - Point = 5, - Clipping = 6 - } + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + Clipping = 6 + } } declare module spine { - class BoundingBoxAttachment extends VertexAttachment { - color: Color; - constructor(name: string); - copy(): Attachment; - } + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + copy(): Attachment; + } } declare module spine { - class ClippingAttachment extends VertexAttachment { - endSlot: SlotData; - color: Color; - constructor(name: string); - copy(): Attachment; - } + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + copy(): Attachment; + } } declare module spine { - class MeshAttachment extends VertexAttachment { - region: TextureRegion; - path: string; - regionUVs: ArrayLike; - uvs: ArrayLike; - triangles: Array; - color: Color; - width: number; - height: number; - hullLength: number; - edges: Array; - private parentMesh; - tempColor: Color; - constructor(name: string); - updateUVs(): void; - getParentMesh(): MeshAttachment; - setParentMesh(parentMesh: MeshAttachment): void; - copy(): Attachment; - newLinkedMesh(): MeshAttachment; - } + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + width: number; + height: number; + hullLength: number; + edges: Array; + private parentMesh; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + copy(): Attachment; + newLinkedMesh(): MeshAttachment; + } } declare module spine { - class PathAttachment extends VertexAttachment { - lengths: Array; - closed: boolean; - constantSpeed: boolean; - color: Color; - constructor(name: string); - copy(): Attachment; - } + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + copy(): Attachment; + } } declare module spine { - class PointAttachment extends VertexAttachment { - x: number; - y: number; - rotation: number; - color: Color; - constructor(name: string); - computeWorldPosition(bone: Bone, point: Vector2): Vector2; - computeWorldRotation(bone: Bone): number; - copy(): Attachment; - } + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + copy(): Attachment; + } } declare module spine { - class RegionAttachment extends Attachment { - static OX1: number; - static OY1: number; - static OX2: number; - static OY2: number; - static OX3: number; - static OY3: number; - static OX4: number; - static OY4: number; - static X1: number; - static Y1: number; - static C1R: number; - static C1G: number; - static C1B: number; - static C1A: number; - static U1: number; - static V1: number; - static X2: number; - static Y2: number; - static C2R: number; - static C2G: number; - static C2B: number; - static C2A: number; - static U2: number; - static V2: number; - static X3: number; - static Y3: number; - static C3R: number; - static C3G: number; - static C3B: number; - static C3A: number; - static U3: number; - static V3: number; - static X4: number; - static Y4: number; - static C4R: number; - static C4G: number; - static C4B: number; - static C4A: number; - static U4: number; - static V4: number; - x: number; - y: number; - scaleX: number; - scaleY: number; - rotation: number; - width: number; - height: number; - color: Color; - path: string; - rendererObject: any; - region: TextureRegion; - offset: ArrayLike; - uvs: ArrayLike; - tempColor: Color; - constructor(name: string); - updateOffset(): void; - setRegion(region: TextureRegion): void; - computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; - copy(): Attachment; - } + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + copy(): Attachment; + } } declare module spine { - class JitterEffect implements VertexEffect { - jitterX: number; - jitterY: number; - constructor(jitterX: number, jitterY: number); - begin(skeleton: Skeleton): void; - transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void; - end(): void; - } + class JitterEffect implements VertexEffect { + jitterX: number; + jitterY: number; + constructor(jitterX: number, jitterY: number); + begin(skeleton: Skeleton): void; + transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void; + end(): void; + } } declare module spine { - class SwirlEffect implements VertexEffect { - static interpolation: PowOut; - centerX: number; - centerY: number; - radius: number; - angle: number; - private worldX; - private worldY; - constructor(radius: number); - begin(skeleton: Skeleton): void; - transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void; - end(): void; - } + class SwirlEffect implements VertexEffect { + static interpolation: PowOut; + centerX: number; + centerY: number; + radius: number; + angle: number; + private worldX; + private worldY; + constructor(radius: number); + begin(skeleton: Skeleton): void; + transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void; + end(): void; + } } declare module spine.webgl { - class AssetManager extends spine.AssetManager { - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, pathPrefix?: string); - } + class AssetManager extends spine.AssetManager { + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, pathPrefix?: string); + } } declare module spine.webgl { - class OrthoCamera { - position: Vector3; - direction: Vector3; - up: Vector3; - near: number; - far: number; - zoom: number; - viewportWidth: number; - viewportHeight: number; - projectionView: Matrix4; - inverseProjectionView: Matrix4; - projection: Matrix4; - view: Matrix4; - private tmp; - constructor(viewportWidth: number, viewportHeight: number); - update(): void; - screenToWorld(screenCoords: Vector3, screenWidth: number, screenHeight: number): Vector3; - setViewport(viewportWidth: number, viewportHeight: number): void; - } + class OrthoCamera { + position: Vector3; + direction: Vector3; + up: Vector3; + near: number; + far: number; + zoom: number; + viewportWidth: number; + viewportHeight: number; + projectionView: Matrix4; + inverseProjectionView: Matrix4; + projection: Matrix4; + view: Matrix4; + private tmp; + constructor(viewportWidth: number, viewportHeight: number); + update(): void; + screenToWorld(screenCoords: Vector3, screenWidth: number, screenHeight: number): Vector3; + setViewport(viewportWidth: number, viewportHeight: number): void; + } } declare module spine.webgl { - class GLTexture extends Texture implements Disposable, Restorable { - private context; - private texture; - private boundUnit; - private useMipMaps; - static DISABLE_UNPACK_PREMULTIPLIED_ALPHA_WEBGL: boolean; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement | ImageBitmap, useMipMaps?: boolean); - setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; - static validateMagFilter(magFilter: TextureFilter): TextureFilter.Nearest | TextureFilter.Linear | TextureFilter.Linear; - setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; - update(useMipMaps: boolean): void; - restore(): void; - bind(unit?: number): void; - unbind(): void; - dispose(): void; - } + class GLTexture extends Texture implements Disposable, Restorable { + private context; + private texture; + private boundUnit; + private useMipMaps; + static DISABLE_UNPACK_PREMULTIPLIED_ALPHA_WEBGL: boolean; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, image: HTMLImageElement | ImageBitmap, useMipMaps?: boolean); + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + static validateMagFilter(magFilter: TextureFilter): TextureFilter.Nearest | TextureFilter.Linear | TextureFilter.Linear; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + update(useMipMaps: boolean): void; + restore(): void; + bind(unit?: number): void; + unbind(): void; + dispose(): void; + } } declare module spine.webgl { - class Input { - element: HTMLElement; - lastX: number; - lastY: number; - buttonDown: boolean; - currTouch: Touch; - touchesPool: Pool; - private listeners; - constructor(element: HTMLElement); - private setupCallbacks; - addListener(listener: InputListener): void; - removeListener(listener: InputListener): void; - } - class Touch { - identifier: number; - x: number; - y: number; - constructor(identifier: number, x: number, y: number); - } - interface InputListener { - down(x: number, y: number): void; - up(x: number, y: number): void; - moved(x: number, y: number): void; - dragged(x: number, y: number): void; - } + class Input { + element: HTMLElement; + lastX: number; + lastY: number; + buttonDown: boolean; + currTouch: Touch; + touchesPool: Pool; + private listeners; + constructor(element: HTMLElement); + private setupCallbacks; + addListener(listener: InputListener): void; + removeListener(listener: InputListener): void; + } + class Touch { + identifier: number; + x: number; + y: number; + constructor(identifier: number, x: number, y: number); + } + interface InputListener { + down(x: number, y: number): void; + up(x: number, y: number): void; + moved(x: number, y: number): void; + dragged(x: number, y: number): void; + } } declare module spine.webgl { - class LoadingScreen { - static FADE_SECONDS: number; - private static loaded; - private static spinnerImg; - private static logoImg; - private renderer; - private logo; - private spinner; - private angle; - private fadeOut; - private timeKeeper; - backgroundColor: Color; - private tempColor; - private firstDraw; - private static SPINNER_DATA; - private static SPINE_LOGO_DATA; - constructor(renderer: SceneRenderer); - draw(complete?: boolean): void; - } + class LoadingScreen { + static FADE_SECONDS: number; + private static loaded; + private static spinnerImg; + private static logoImg; + private renderer; + private logo; + private spinner; + private angle; + private fadeOut; + private timeKeeper; + backgroundColor: Color; + private tempColor; + private firstDraw; + private static SPINNER_DATA; + private static SPINE_LOGO_DATA; + constructor(renderer: SceneRenderer); + draw(complete?: boolean): void; + } } declare module spine.webgl { - const M00 = 0; - const M01 = 4; - const M02 = 8; - const M03 = 12; - const M10 = 1; - const M11 = 5; - const M12 = 9; - const M13 = 13; - const M20 = 2; - const M21 = 6; - const M22 = 10; - const M23 = 14; - const M30 = 3; - const M31 = 7; - const M32 = 11; - const M33 = 15; - class Matrix4 { - temp: Float32Array; - values: Float32Array; - private static xAxis; - private static yAxis; - private static zAxis; - private static tmpMatrix; - constructor(); - set(values: ArrayLike): Matrix4; - transpose(): Matrix4; - identity(): Matrix4; - invert(): Matrix4; - determinant(): number; - translate(x: number, y: number, z: number): Matrix4; - copy(): Matrix4; - projection(near: number, far: number, fovy: number, aspectRatio: number): Matrix4; - ortho2d(x: number, y: number, width: number, height: number): Matrix4; - ortho(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4; - multiply(matrix: Matrix4): Matrix4; - multiplyLeft(matrix: Matrix4): Matrix4; - lookAt(position: Vector3, direction: Vector3, up: Vector3): this; - static initTemps(): void; - } + const M00 = 0; + const M01 = 4; + const M02 = 8; + const M03 = 12; + const M10 = 1; + const M11 = 5; + const M12 = 9; + const M13 = 13; + const M20 = 2; + const M21 = 6; + const M22 = 10; + const M23 = 14; + const M30 = 3; + const M31 = 7; + const M32 = 11; + const M33 = 15; + class Matrix4 { + temp: Float32Array; + values: Float32Array; + private static xAxis; + private static yAxis; + private static zAxis; + private static tmpMatrix; + constructor(); + set(values: ArrayLike): Matrix4; + transpose(): Matrix4; + identity(): Matrix4; + invert(): Matrix4; + determinant(): number; + translate(x: number, y: number, z: number): Matrix4; + copy(): Matrix4; + projection(near: number, far: number, fovy: number, aspectRatio: number): Matrix4; + ortho2d(x: number, y: number, width: number, height: number): Matrix4; + ortho(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4; + multiply(matrix: Matrix4): Matrix4; + multiplyLeft(matrix: Matrix4): Matrix4; + lookAt(position: Vector3, direction: Vector3, up: Vector3): this; + static initTemps(): void; + } } declare module spine.webgl { - class Mesh implements Disposable, Restorable { - private attributes; - private context; - private vertices; - private verticesBuffer; - private verticesLength; - private dirtyVertices; - private indices; - private indicesBuffer; - private indicesLength; - private dirtyIndices; - private elementsPerVertex; - getAttributes(): VertexAttribute[]; - maxVertices(): number; - numVertices(): number; - setVerticesLength(length: number): void; - getVertices(): Float32Array; - maxIndices(): number; - numIndices(): number; - setIndicesLength(length: number): void; - getIndices(): Uint16Array; - getVertexSizeInFloats(): number; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, attributes: VertexAttribute[], maxVertices: number, maxIndices: number); - setVertices(vertices: Array): void; - setIndices(indices: Array): void; - draw(shader: Shader, primitiveType: number): void; - drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void; - bind(shader: Shader): void; - unbind(shader: Shader): void; - private update; - restore(): void; - dispose(): void; - } - class VertexAttribute { - name: string; - type: VertexAttributeType; - numElements: number; - constructor(name: string, type: VertexAttributeType, numElements: number); - } - class Position2Attribute extends VertexAttribute { - constructor(); - } - class Position3Attribute extends VertexAttribute { - constructor(); - } - class TexCoordAttribute extends VertexAttribute { - constructor(unit?: number); - } - class ColorAttribute extends VertexAttribute { - constructor(); - } - class Color2Attribute extends VertexAttribute { - constructor(); - } - enum VertexAttributeType { - Float = 0 - } + class Mesh implements Disposable, Restorable { + private attributes; + private context; + private vertices; + private verticesBuffer; + private verticesLength; + private dirtyVertices; + private indices; + private indicesBuffer; + private indicesLength; + private dirtyIndices; + private elementsPerVertex; + getAttributes(): VertexAttribute[]; + maxVertices(): number; + numVertices(): number; + setVerticesLength(length: number): void; + getVertices(): Float32Array; + maxIndices(): number; + numIndices(): number; + setIndicesLength(length: number): void; + getIndices(): Uint16Array; + getVertexSizeInFloats(): number; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, attributes: VertexAttribute[], maxVertices: number, maxIndices: number); + setVertices(vertices: Array): void; + setIndices(indices: Array): void; + draw(shader: Shader, primitiveType: number): void; + drawWithOffset(shader: Shader, primitiveType: number, offset: number, count: number): void; + bind(shader: Shader): void; + unbind(shader: Shader): void; + private update; + restore(): void; + dispose(): void; + } + class VertexAttribute { + name: string; + type: VertexAttributeType; + numElements: number; + constructor(name: string, type: VertexAttributeType, numElements: number); + } + class Position2Attribute extends VertexAttribute { + constructor(); + } + class Position3Attribute extends VertexAttribute { + constructor(); + } + class TexCoordAttribute extends VertexAttribute { + constructor(unit?: number); + } + class ColorAttribute extends VertexAttribute { + constructor(); + } + class Color2Attribute extends VertexAttribute { + constructor(); + } + enum VertexAttributeType { + Float = 0 + } } declare module spine.webgl { - class PolygonBatcher implements Disposable { - private context; - private drawCalls; - private isDrawing; - private mesh; - private shader; - private lastTexture; - private verticesLength; - private indicesLength; - private srcBlend; - private dstBlend; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean, maxVertices?: number); - begin(shader: Shader): void; - setBlendMode(srcBlend: number, dstBlend: number): void; - draw(texture: GLTexture, vertices: ArrayLike, indices: Array): void; - private flush; - end(): void; - getDrawCalls(): number; - dispose(): void; - } + class PolygonBatcher implements Disposable { + private context; + private drawCalls; + private isDrawing; + private mesh; + private shader; + private lastTexture; + private verticesLength; + private indicesLength; + private srcBlend; + private dstBlend; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean, maxVertices?: number); + begin(shader: Shader): void; + setBlendMode(srcBlend: number, dstBlend: number): void; + draw(texture: GLTexture, vertices: ArrayLike, indices: Array): void; + private flush; + end(): void; + getDrawCalls(): number; + dispose(): void; + } } declare module spine.webgl { - class SceneRenderer implements Disposable { - context: ManagedWebGLRenderingContext; - canvas: HTMLCanvasElement; - camera: OrthoCamera; - batcher: PolygonBatcher; - private twoColorTint; - private batcherShader; - private shapes; - private shapesShader; - private activeRenderer; - skeletonRenderer: SkeletonRenderer; - skeletonDebugRenderer: SkeletonDebugRenderer; - private QUAD; - private QUAD_TRIANGLES; - private WHITE; - constructor(canvas: HTMLCanvasElement, context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean); - begin(): void; - drawSkeleton(skeleton: Skeleton, premultipliedAlpha?: boolean, slotRangeStart?: number, slotRangeEnd?: number): void; - drawSkeletonDebug(skeleton: Skeleton, premultipliedAlpha?: boolean, ignoredBones?: Array): void; - drawTexture(texture: GLTexture, x: number, y: number, width: number, height: number, color?: Color): void; - drawTextureUV(texture: GLTexture, x: number, y: number, width: number, height: number, u: number, v: number, u2: number, v2: number, color?: Color): void; - drawTextureRotated(texture: GLTexture, x: number, y: number, width: number, height: number, pivotX: number, pivotY: number, angle: number, color?: Color, premultipliedAlpha?: boolean): void; - drawRegion(region: TextureAtlasRegion, x: number, y: number, width: number, height: number, color?: Color, premultipliedAlpha?: boolean): 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; - rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; - rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; - polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; - 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(resizeMode: ResizeMode): void; - private enableRenderer; - dispose(): void; - } - enum ResizeMode { - Stretch = 0, - Expand = 1, - Fit = 2 - } + class SceneRenderer implements Disposable { + context: ManagedWebGLRenderingContext; + canvas: HTMLCanvasElement; + camera: OrthoCamera; + batcher: PolygonBatcher; + private twoColorTint; + private batcherShader; + private shapes; + private shapesShader; + private activeRenderer; + skeletonRenderer: SkeletonRenderer; + skeletonDebugRenderer: SkeletonDebugRenderer; + private QUAD; + private QUAD_TRIANGLES; + private WHITE; + constructor(canvas: HTMLCanvasElement, context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean); + begin(): void; + drawSkeleton(skeleton: Skeleton, premultipliedAlpha?: boolean, slotRangeStart?: number, slotRangeEnd?: number): void; + drawSkeletonDebug(skeleton: Skeleton, premultipliedAlpha?: boolean, ignoredBones?: Array): void; + drawTexture(texture: GLTexture, x: number, y: number, width: number, height: number, color?: Color): void; + drawTextureUV(texture: GLTexture, x: number, y: number, width: number, height: number, u: number, v: number, u2: number, v2: number, color?: Color): void; + drawTextureRotated(texture: GLTexture, x: number, y: number, width: number, height: number, pivotX: number, pivotY: number, angle: number, color?: Color, premultipliedAlpha?: boolean): void; + drawRegion(region: TextureAtlasRegion, x: number, y: number, width: number, height: number, color?: Color, premultipliedAlpha?: boolean): 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; + rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; + rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; + polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; + 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(resizeMode: ResizeMode): void; + private enableRenderer; + dispose(): void; + } + enum ResizeMode { + Stretch = 0, + Expand = 1, + Fit = 2 + } } declare module spine.webgl { - class Shader implements Disposable, Restorable { - private vertexShader; - private fragmentShader; - static MVP_MATRIX: string; - static POSITION: string; - static COLOR: string; - static COLOR2: string; - static TEXCOORDS: string; - static SAMPLER: string; - private context; - private vs; - private vsSource; - private fs; - private fsSource; - private program; - private tmp2x2; - private tmp3x3; - private tmp4x4; - getProgram(): WebGLProgram; - getVertexShader(): string; - getFragmentShader(): string; - getVertexShaderSource(): string; - getFragmentSource(): string; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string); - private compile; - private compileShader; - private compileProgram; - restore(): void; - bind(): void; - unbind(): void; - setUniformi(uniform: string, value: number): void; - setUniformf(uniform: string, value: number): void; - setUniform2f(uniform: string, value: number, value2: number): void; - setUniform3f(uniform: string, value: number, value2: number, value3: number): void; - setUniform4f(uniform: string, value: number, value2: number, value3: number, value4: number): void; - setUniform2x2f(uniform: string, value: ArrayLike): void; - setUniform3x3f(uniform: string, value: ArrayLike): void; - setUniform4x4f(uniform: string, value: ArrayLike): void; - getUniformLocation(uniform: string): WebGLUniformLocation; - getAttributeLocation(attribute: string): number; - dispose(): void; - static newColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - static newTwoColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - static newColored(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; - } + class Shader implements Disposable, Restorable { + private vertexShader; + private fragmentShader; + static MVP_MATRIX: string; + static POSITION: string; + static COLOR: string; + static COLOR2: string; + static TEXCOORDS: string; + static SAMPLER: string; + private context; + private vs; + private vsSource; + private fs; + private fsSource; + private program; + private tmp2x2; + private tmp3x3; + private tmp4x4; + getProgram(): WebGLProgram; + getVertexShader(): string; + getFragmentShader(): string; + getVertexShaderSource(): string; + getFragmentSource(): string; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, vertexShader: string, fragmentShader: string); + private compile; + private compileShader; + private compileProgram; + restore(): void; + bind(): void; + unbind(): void; + setUniformi(uniform: string, value: number): void; + setUniformf(uniform: string, value: number): void; + setUniform2f(uniform: string, value: number, value2: number): void; + setUniform3f(uniform: string, value: number, value2: number, value3: number): void; + setUniform4f(uniform: string, value: number, value2: number, value3: number, value4: number): void; + setUniform2x2f(uniform: string, value: ArrayLike): void; + setUniform3x3f(uniform: string, value: ArrayLike): void; + setUniform4x4f(uniform: string, value: ArrayLike): void; + getUniformLocation(uniform: string): WebGLUniformLocation; + getAttributeLocation(attribute: string): number; + dispose(): void; + static newColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + static newTwoColoredTextured(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + static newColored(context: ManagedWebGLRenderingContext | WebGLRenderingContext): Shader; + } } declare module spine.webgl { - class ShapeRenderer implements Disposable { - private context; - private isDrawing; - private mesh; - private shapeType; - private color; - private shader; - private vertexIndex; - private tmp; - private srcBlend; - private dstBlend; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, maxVertices?: number); - begin(shader: Shader): void; - setBlendMode(srcBlend: number, dstBlend: number): void; - setColor(color: Color): void; - setColorWith(r: number, g: number, b: number, a: number): void; - point(x: number, y: number, color?: Color): void; - line(x: number, y: number, x2: number, y2: number, color?: 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; - rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; - rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; - x(x: number, y: number, size: number): void; - polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; - 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; - private vertex; - end(): void; - private flush; - private check; - dispose(): void; - } - enum ShapeType { - Point = 0, - Line = 1, - Filled = 4 - } + class ShapeRenderer implements Disposable { + private context; + private isDrawing; + private mesh; + private shapeType; + private color; + private shader; + private vertexIndex; + private tmp; + private srcBlend; + private dstBlend; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, maxVertices?: number); + begin(shader: Shader): void; + setBlendMode(srcBlend: number, dstBlend: number): void; + setColor(color: Color): void; + setColorWith(r: number, g: number, b: number, a: number): void; + point(x: number, y: number, color?: Color): void; + line(x: number, y: number, x2: number, y2: number, color?: 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; + rect(filled: boolean, x: number, y: number, width: number, height: number, color?: Color): void; + rectLine(filled: boolean, x1: number, y1: number, x2: number, y2: number, width: number, color?: Color): void; + x(x: number, y: number, size: number): void; + polygon(polygonVertices: ArrayLike, offset: number, count: number, color?: Color): void; + 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; + private vertex; + end(): void; + private flush; + private check; + dispose(): void; + } + enum ShapeType { + Point = 0, + Line = 1, + Filled = 4 + } } declare module spine.webgl { - class SkeletonDebugRenderer implements Disposable { - boneLineColor: Color; - boneOriginColor: Color; - attachmentLineColor: Color; - triangleLineColor: Color; - pathColor: Color; - clipColor: Color; - aabbColor: Color; - drawBones: boolean; - drawRegionAttachments: boolean; - drawBoundingBoxes: boolean; - drawMeshHull: boolean; - drawMeshTriangles: boolean; - drawPaths: boolean; - drawSkeletonXY: boolean; - drawClipping: boolean; - premultipliedAlpha: boolean; - scale: number; - boneWidth: number; - private context; - private bounds; - private temp; - private vertices; - private static LIGHT_GRAY; - private static GREEN; - constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext); - draw(shapes: ShapeRenderer, skeleton: Skeleton, ignoredBones?: Array): void; - dispose(): void; - } + class SkeletonDebugRenderer implements Disposable { + boneLineColor: Color; + boneOriginColor: Color; + attachmentLineColor: Color; + triangleLineColor: Color; + pathColor: Color; + clipColor: Color; + aabbColor: Color; + drawBones: boolean; + drawRegionAttachments: boolean; + drawBoundingBoxes: boolean; + drawMeshHull: boolean; + drawMeshTriangles: boolean; + drawPaths: boolean; + drawSkeletonXY: boolean; + drawClipping: boolean; + premultipliedAlpha: boolean; + scale: number; + boneWidth: number; + private context; + private bounds; + private temp; + private vertices; + private static LIGHT_GRAY; + private static GREEN; + constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext); + draw(shapes: ShapeRenderer, skeleton: Skeleton, ignoredBones?: Array): void; + dispose(): void; + } } declare module spine.webgl { - class SkeletonRenderer { - static QUAD_TRIANGLES: number[]; - premultipliedAlpha: boolean; - vertexEffect: VertexEffect; - private tempColor; - private tempColor2; - private vertices; - private vertexSize; - private twoColorTint; - private renderable; - private clipper; - private temp; - private temp2; - private temp3; - private temp4; - constructor(context: ManagedWebGLRenderingContext, twoColorTint?: boolean); - draw(batcher: PolygonBatcher, skeleton: Skeleton, slotRangeStart?: number, slotRangeEnd?: number): void; - } + class SkeletonRenderer { + static QUAD_TRIANGLES: number[]; + premultipliedAlpha: boolean; + vertexEffect: VertexEffect; + private tempColor; + private tempColor2; + private vertices; + private vertexSize; + private twoColorTint; + private renderable; + private clipper; + private temp; + private temp2; + private temp3; + private temp4; + constructor(context: ManagedWebGLRenderingContext, twoColorTint?: boolean); + draw(batcher: PolygonBatcher, skeleton: Skeleton, slotRangeStart?: number, slotRangeEnd?: number): void; + } } declare module spine.webgl { - class Vector3 { - x: number; - y: number; - z: number; - constructor(x?: number, y?: number, z?: number); - setFrom(v: Vector3): Vector3; - set(x: number, y: number, z: number): Vector3; - add(v: Vector3): Vector3; - sub(v: Vector3): Vector3; - scale(s: number): Vector3; - normalize(): Vector3; - cross(v: Vector3): Vector3; - multiply(matrix: Matrix4): Vector3; - project(matrix: Matrix4): Vector3; - dot(v: Vector3): number; - length(): number; - distance(v: Vector3): number; - } + class Vector3 { + x: number; + y: number; + z: number; + constructor(x?: number, y?: number, z?: number); + setFrom(v: Vector3): Vector3; + set(x: number, y: number, z: number): Vector3; + add(v: Vector3): Vector3; + sub(v: Vector3): Vector3; + scale(s: number): Vector3; + normalize(): Vector3; + cross(v: Vector3): Vector3; + multiply(matrix: Matrix4): Vector3; + project(matrix: Matrix4): Vector3; + dot(v: Vector3): number; + length(): number; + distance(v: Vector3): number; + } } declare module spine.webgl { - class ManagedWebGLRenderingContext { - canvas: HTMLCanvasElement | OffscreenCanvas; - gl: WebGLRenderingContext; - private restorables; - constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext | OffscreenCanvas | WebGL2RenderingContext, contextConfig?: any); - addRestorable(restorable: Restorable): void; - removeRestorable(restorable: Restorable): void; - } - class WebGLBlendModeConverter { - static ZERO: number; - static ONE: number; - static SRC_COLOR: number; - static ONE_MINUS_SRC_COLOR: number; - static SRC_ALPHA: number; - static ONE_MINUS_SRC_ALPHA: number; - static DST_ALPHA: number; - static ONE_MINUS_DST_ALPHA: number; - static DST_COLOR: number; - static getDestGLBlendMode(blendMode: BlendMode): number; - static getSourceGLBlendMode(blendMode: BlendMode, premultipliedAlpha?: boolean): number; - } + class ManagedWebGLRenderingContext { + canvas: HTMLCanvasElement | OffscreenCanvas; + gl: WebGLRenderingContext; + private restorables; + constructor(canvasOrContext: HTMLCanvasElement | WebGLRenderingContext | OffscreenCanvas | WebGL2RenderingContext, contextConfig?: any); + addRestorable(restorable: Restorable): void; + removeRestorable(restorable: Restorable): void; + } + class WebGLBlendModeConverter { + static ZERO: number; + static ONE: number; + static SRC_COLOR: number; + static ONE_MINUS_SRC_COLOR: number; + static SRC_ALPHA: number; + static ONE_MINUS_SRC_ALPHA: number; + static DST_ALPHA: number; + static ONE_MINUS_DST_ALPHA: number; + static DST_COLOR: number; + static getDestGLBlendMode(blendMode: BlendMode): number; + static getSourceGLBlendMode(blendMode: BlendMode, premultipliedAlpha?: boolean): number; + } } diff --git a/spine-ts/build/spine-webgl.js b/spine-ts/build/spine-webgl.js index 50cc08330..0661a9aaa 100644 --- a/spine-ts/build/spine-webgl.js +++ b/spine-ts/build/spine-webgl.js @@ -1,10835 +1,11103 @@ var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; })(); var spine; (function (spine) { - var Animation = (function () { - function Animation(name, timelines, duration) { - if (name == null) - throw new Error("name cannot be null."); - if (timelines == null) - throw new Error("timelines cannot be null."); - this.name = name; - this.timelines = timelines; - this.timelineIds = []; - for (var i = 0; i < timelines.length; i++) - this.timelineIds[timelines[i].getPropertyId()] = true; - this.duration = duration; - } - Animation.prototype.hasTimeline = function (id) { - return this.timelineIds[id] == true; - }; - Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, blend, direction) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (loop && this.duration != 0) { - time %= this.duration; - if (lastTime > 0) - lastTime %= this.duration; - } - var timelines = this.timelines; - for (var i = 0, n = timelines.length; i < n; i++) - timelines[i].apply(skeleton, lastTime, time, events, alpha, blend, direction); - }; - Animation.binarySearch = function (values, target, step) { - if (step === void 0) { step = 1; } - var low = 0; - var high = values.length / step - 2; - if (high == 0) - return step; - var current = high >>> 1; - while (true) { - if (values[(current + 1) * step] <= target) - low = current + 1; - else - high = current; - if (low == high) - return (low + 1) * step; - current = (low + high) >>> 1; - } - }; - Animation.linearSearch = function (values, target, step) { - for (var i = 0, last = values.length - step; i <= last; i += step) - if (values[i] > target) - return i; - return -1; - }; - return Animation; - }()); - spine.Animation = Animation; - var MixBlend; - (function (MixBlend) { - MixBlend[MixBlend["setup"] = 0] = "setup"; - MixBlend[MixBlend["first"] = 1] = "first"; - MixBlend[MixBlend["replace"] = 2] = "replace"; - MixBlend[MixBlend["add"] = 3] = "add"; - })(MixBlend = spine.MixBlend || (spine.MixBlend = {})); - var MixDirection; - (function (MixDirection) { - MixDirection[MixDirection["mixIn"] = 0] = "mixIn"; - MixDirection[MixDirection["mixOut"] = 1] = "mixOut"; - })(MixDirection = spine.MixDirection || (spine.MixDirection = {})); - var TimelineType; - (function (TimelineType) { - TimelineType[TimelineType["rotate"] = 0] = "rotate"; - TimelineType[TimelineType["translate"] = 1] = "translate"; - TimelineType[TimelineType["scale"] = 2] = "scale"; - TimelineType[TimelineType["shear"] = 3] = "shear"; - TimelineType[TimelineType["attachment"] = 4] = "attachment"; - TimelineType[TimelineType["color"] = 5] = "color"; - TimelineType[TimelineType["deform"] = 6] = "deform"; - TimelineType[TimelineType["event"] = 7] = "event"; - TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder"; - TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint"; - TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint"; - TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition"; - TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing"; - TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix"; - TimelineType[TimelineType["twoColor"] = 14] = "twoColor"; - })(TimelineType = spine.TimelineType || (spine.TimelineType = {})); - var CurveTimeline = (function () { - function CurveTimeline(frameCount) { - if (frameCount <= 0) - throw new Error("frameCount must be > 0: " + frameCount); - this.curves = spine.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); - } - CurveTimeline.prototype.getFrameCount = function () { - return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; - }; - CurveTimeline.prototype.setLinear = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; - }; - CurveTimeline.prototype.setStepped = function (frameIndex) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; - }; - CurveTimeline.prototype.getCurveType = function (frameIndex) { - var index = frameIndex * CurveTimeline.BEZIER_SIZE; - if (index == this.curves.length) - return CurveTimeline.LINEAR; - var type = this.curves[index]; - if (type == CurveTimeline.LINEAR) - return CurveTimeline.LINEAR; - if (type == CurveTimeline.STEPPED) - return CurveTimeline.STEPPED; - return CurveTimeline.BEZIER; - }; - CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) { - var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; - var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; - var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; - var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var curves = this.curves; - curves[i++] = CurveTimeline.BEZIER; - var x = dfx, y = dfy; - for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - curves[i] = x; - curves[i + 1] = y; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - x += dfx; - y += dfy; - } - }; - CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) { - percent = spine.MathUtils.clamp(percent, 0, 1); - var curves = this.curves; - var i = frameIndex * CurveTimeline.BEZIER_SIZE; - var type = curves[i]; - if (type == CurveTimeline.LINEAR) - return percent; - if (type == CurveTimeline.STEPPED) - return 0; - i++; - var x = 0; - for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - x = curves[i]; - if (x >= percent) { - var prevX = void 0, prevY = void 0; - if (i == start) { - prevX = 0; - prevY = 0; - } - else { - prevX = curves[i - 2]; - prevY = curves[i - 1]; - } - return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); - } - } - var y = curves[i - 1]; - return y + (1 - y) * (percent - x) / (1 - x); - }; - CurveTimeline.LINEAR = 0; - CurveTimeline.STEPPED = 1; - CurveTimeline.BEZIER = 2; - CurveTimeline.BEZIER_SIZE = 10 * 2 - 1; - return CurveTimeline; - }()); - spine.CurveTimeline = CurveTimeline; - var RotateTimeline = (function (_super) { - __extends(RotateTimeline, _super); - function RotateTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount << 1); - return _this; - } - RotateTimeline.prototype.getPropertyId = function () { - return (TimelineType.rotate << 24) + this.boneIndex; - }; - RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) { - frameIndex <<= 1; - this.frames[frameIndex] = time; - this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; - }; - RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (!bone.active) - return; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - bone.rotation = bone.data.rotation; - return; - case MixBlend.first: - var r_1 = bone.data.rotation - bone.rotation; - bone.rotation += (r_1 - (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360) * alpha; - } - return; - } - if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { - var r_2 = frames[frames.length + RotateTimeline.PREV_ROTATION]; - switch (blend) { - case MixBlend.setup: - bone.rotation = bone.data.rotation + r_2 * alpha; - break; - case MixBlend.first: - case MixBlend.replace: - r_2 += bone.data.rotation - bone.rotation; - r_2 -= (16384 - ((16384.499999999996 - r_2 / 360) | 0)) * 360; - case MixBlend.add: - bone.rotation += r_2 * alpha; - } - return; - } - var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); - var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); - var r = frames[frame + RotateTimeline.ROTATION] - prevRotation; - r = prevRotation + (r - (16384 - ((16384.499999999996 - r / 360) | 0)) * 360) * percent; - switch (blend) { - case MixBlend.setup: - bone.rotation = bone.data.rotation + (r - (16384 - ((16384.499999999996 - r / 360) | 0)) * 360) * alpha; - break; - case MixBlend.first: - case MixBlend.replace: - r += bone.data.rotation - bone.rotation; - case MixBlend.add: - bone.rotation += (r - (16384 - ((16384.499999999996 - r / 360) | 0)) * 360) * alpha; - } - }; - RotateTimeline.ENTRIES = 2; - RotateTimeline.PREV_TIME = -2; - RotateTimeline.PREV_ROTATION = -1; - RotateTimeline.ROTATION = 1; - return RotateTimeline; - }(CurveTimeline)); - spine.RotateTimeline = RotateTimeline; - var TranslateTimeline = (function (_super) { - __extends(TranslateTimeline, _super); - function TranslateTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - return _this; - } - TranslateTimeline.prototype.getPropertyId = function () { - return (TimelineType.translate << 24) + this.boneIndex; - }; - TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) { - frameIndex *= TranslateTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TranslateTimeline.X] = x; - this.frames[frameIndex + TranslateTimeline.Y] = y; - }; - TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (!bone.active) - return; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - bone.x = bone.data.x; - bone.y = bone.data.y; - return; - case MixBlend.first: - bone.x += (bone.data.x - bone.x) * alpha; - bone.y += (bone.data.y - bone.y) * alpha; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { - x = frames[frames.length + TranslateTimeline.PREV_X]; - y = frames[frames.length + TranslateTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - x = frames[frame + TranslateTimeline.PREV_X]; - y = frames[frame + TranslateTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); - x += (frames[frame + TranslateTimeline.X] - x) * percent; - y += (frames[frame + TranslateTimeline.Y] - y) * percent; - } - switch (blend) { - case MixBlend.setup: - bone.x = bone.data.x + x * alpha; - bone.y = bone.data.y + y * alpha; - break; - case MixBlend.first: - case MixBlend.replace: - bone.x += (bone.data.x + x - bone.x) * alpha; - bone.y += (bone.data.y + y - bone.y) * alpha; - break; - case MixBlend.add: - bone.x += x * alpha; - bone.y += y * alpha; - } - }; - TranslateTimeline.ENTRIES = 3; - TranslateTimeline.PREV_TIME = -3; - TranslateTimeline.PREV_X = -2; - TranslateTimeline.PREV_Y = -1; - TranslateTimeline.X = 1; - TranslateTimeline.Y = 2; - return TranslateTimeline; - }(CurveTimeline)); - spine.TranslateTimeline = TranslateTimeline; - var ScaleTimeline = (function (_super) { - __extends(ScaleTimeline, _super); - function ScaleTimeline(frameCount) { - return _super.call(this, frameCount) || this; - } - ScaleTimeline.prototype.getPropertyId = function () { - return (TimelineType.scale << 24) + this.boneIndex; - }; - ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (!bone.active) - return; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - bone.scaleX = bone.data.scaleX; - bone.scaleY = bone.data.scaleY; - return; - case MixBlend.first: - bone.scaleX += (bone.data.scaleX - bone.scaleX) * alpha; - bone.scaleY += (bone.data.scaleY - bone.scaleY) * alpha; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { - x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; - y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; - } - else { - var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - x = frames[frame + ScaleTimeline.PREV_X]; - y = frames[frame + ScaleTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); - x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; - y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; - } - if (alpha == 1) { - if (blend == MixBlend.add) { - bone.scaleX += x - bone.data.scaleX; - bone.scaleY += y - bone.data.scaleY; - } - else { - bone.scaleX = x; - bone.scaleY = y; - } - } - else { - var bx = 0, by = 0; - if (direction == MixDirection.mixOut) { - switch (blend) { - case MixBlend.setup: - bx = bone.data.scaleX; - by = bone.data.scaleY; - bone.scaleX = bx + (Math.abs(x) * spine.MathUtils.signum(bx) - bx) * alpha; - bone.scaleY = by + (Math.abs(y) * spine.MathUtils.signum(by) - by) * alpha; - break; - case MixBlend.first: - case MixBlend.replace: - bx = bone.scaleX; - by = bone.scaleY; - bone.scaleX = bx + (Math.abs(x) * spine.MathUtils.signum(bx) - bx) * alpha; - bone.scaleY = by + (Math.abs(y) * spine.MathUtils.signum(by) - by) * alpha; - break; - case MixBlend.add: - bx = bone.scaleX; - by = bone.scaleY; - bone.scaleX = bx + (Math.abs(x) * spine.MathUtils.signum(bx) - bone.data.scaleX) * alpha; - bone.scaleY = by + (Math.abs(y) * spine.MathUtils.signum(by) - bone.data.scaleY) * alpha; - } - } - else { - switch (blend) { - case MixBlend.setup: - bx = Math.abs(bone.data.scaleX) * spine.MathUtils.signum(x); - by = Math.abs(bone.data.scaleY) * spine.MathUtils.signum(y); - bone.scaleX = bx + (x - bx) * alpha; - bone.scaleY = by + (y - by) * alpha; - break; - case MixBlend.first: - case MixBlend.replace: - bx = Math.abs(bone.scaleX) * spine.MathUtils.signum(x); - by = Math.abs(bone.scaleY) * spine.MathUtils.signum(y); - bone.scaleX = bx + (x - bx) * alpha; - bone.scaleY = by + (y - by) * alpha; - break; - case MixBlend.add: - bx = spine.MathUtils.signum(x); - by = spine.MathUtils.signum(y); - bone.scaleX = Math.abs(bone.scaleX) * bx + (x - Math.abs(bone.data.scaleX) * bx) * alpha; - bone.scaleY = Math.abs(bone.scaleY) * by + (y - Math.abs(bone.data.scaleY) * by) * alpha; - } - } - } - }; - return ScaleTimeline; - }(TranslateTimeline)); - spine.ScaleTimeline = ScaleTimeline; - var ShearTimeline = (function (_super) { - __extends(ShearTimeline, _super); - function ShearTimeline(frameCount) { - return _super.call(this, frameCount) || this; - } - ShearTimeline.prototype.getPropertyId = function () { - return (TimelineType.shear << 24) + this.boneIndex; - }; - ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { - var frames = this.frames; - var bone = skeleton.bones[this.boneIndex]; - if (!bone.active) - return; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - bone.shearX = bone.data.shearX; - bone.shearY = bone.data.shearY; - return; - case MixBlend.first: - bone.shearX += (bone.data.shearX - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY - bone.shearY) * alpha; - } - return; - } - var x = 0, y = 0; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { - x = frames[frames.length + ShearTimeline.PREV_X]; - y = frames[frames.length + ShearTimeline.PREV_Y]; - } - else { - var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - x = frames[frame + ShearTimeline.PREV_X]; - y = frames[frame + ShearTimeline.PREV_Y]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); - x = x + (frames[frame + ShearTimeline.X] - x) * percent; - y = y + (frames[frame + ShearTimeline.Y] - y) * percent; - } - switch (blend) { - case MixBlend.setup: - bone.shearX = bone.data.shearX + x * alpha; - bone.shearY = bone.data.shearY + y * alpha; - break; - case MixBlend.first: - case MixBlend.replace: - bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; - bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; - break; - case MixBlend.add: - bone.shearX += x * alpha; - bone.shearY += y * alpha; - } - }; - return ShearTimeline; - }(TranslateTimeline)); - spine.ShearTimeline = ShearTimeline; - var ColorTimeline = (function (_super) { - __extends(ColorTimeline, _super); - function ColorTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); - return _this; - } - ColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.color << 24) + this.slotIndex; - }; - ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { - frameIndex *= ColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + ColorTimeline.R] = r; - this.frames[frameIndex + ColorTimeline.G] = g; - this.frames[frameIndex + ColorTimeline.B] = b; - this.frames[frameIndex + ColorTimeline.A] = a; - }; - ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { - var slot = skeleton.slots[this.slotIndex]; - if (!slot.bone.active) - return; - var frames = this.frames; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - slot.color.setFromColor(slot.data.color); - return; - case MixBlend.first: - var color = slot.color, setup = slot.data.color; - color.add((setup.r - color.r) * alpha, (setup.g - color.g) * alpha, (setup.b - color.b) * alpha, (setup.a - color.a) * alpha); - } - return; - } - var r = 0, g = 0, b = 0, a = 0; - if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + ColorTimeline.PREV_R]; - g = frames[i + ColorTimeline.PREV_G]; - b = frames[i + ColorTimeline.PREV_B]; - a = frames[i + ColorTimeline.PREV_A]; - } - else { - var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); - r = frames[frame + ColorTimeline.PREV_R]; - g = frames[frame + ColorTimeline.PREV_G]; - b = frames[frame + ColorTimeline.PREV_B]; - a = frames[frame + ColorTimeline.PREV_A]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + ColorTimeline.R] - r) * percent; - g += (frames[frame + ColorTimeline.G] - g) * percent; - b += (frames[frame + ColorTimeline.B] - b) * percent; - a += (frames[frame + ColorTimeline.A] - a) * percent; - } - if (alpha == 1) - slot.color.set(r, g, b, a); - else { - var color = slot.color; - if (blend == MixBlend.setup) - color.setFromColor(slot.data.color); - color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); - } - }; - ColorTimeline.ENTRIES = 5; - ColorTimeline.PREV_TIME = -5; - ColorTimeline.PREV_R = -4; - ColorTimeline.PREV_G = -3; - ColorTimeline.PREV_B = -2; - ColorTimeline.PREV_A = -1; - ColorTimeline.R = 1; - ColorTimeline.G = 2; - ColorTimeline.B = 3; - ColorTimeline.A = 4; - return ColorTimeline; - }(CurveTimeline)); - spine.ColorTimeline = ColorTimeline; - var TwoColorTimeline = (function (_super) { - __extends(TwoColorTimeline, _super); - function TwoColorTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); - return _this; - } - TwoColorTimeline.prototype.getPropertyId = function () { - return (TimelineType.twoColor << 24) + this.slotIndex; - }; - TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { - frameIndex *= TwoColorTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TwoColorTimeline.R] = r; - this.frames[frameIndex + TwoColorTimeline.G] = g; - this.frames[frameIndex + TwoColorTimeline.B] = b; - this.frames[frameIndex + TwoColorTimeline.A] = a; - this.frames[frameIndex + TwoColorTimeline.R2] = r2; - this.frames[frameIndex + TwoColorTimeline.G2] = g2; - this.frames[frameIndex + TwoColorTimeline.B2] = b2; - }; - TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { - var slot = skeleton.slots[this.slotIndex]; - if (!slot.bone.active) - return; - var frames = this.frames; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - slot.color.setFromColor(slot.data.color); - slot.darkColor.setFromColor(slot.data.darkColor); - return; - case MixBlend.first: - var light = slot.color, dark = slot.darkColor, setupLight = slot.data.color, setupDark = slot.data.darkColor; - light.add((setupLight.r - light.r) * alpha, (setupLight.g - light.g) * alpha, (setupLight.b - light.b) * alpha, (setupLight.a - light.a) * alpha); - dark.add((setupDark.r - dark.r) * alpha, (setupDark.g - dark.g) * alpha, (setupDark.b - dark.b) * alpha, 0); - } - return; - } - var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; - if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { - var i = frames.length; - r = frames[i + TwoColorTimeline.PREV_R]; - g = frames[i + TwoColorTimeline.PREV_G]; - b = frames[i + TwoColorTimeline.PREV_B]; - a = frames[i + TwoColorTimeline.PREV_A]; - r2 = frames[i + TwoColorTimeline.PREV_R2]; - g2 = frames[i + TwoColorTimeline.PREV_G2]; - b2 = frames[i + TwoColorTimeline.PREV_B2]; - } - else { - var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); - r = frames[frame + TwoColorTimeline.PREV_R]; - g = frames[frame + TwoColorTimeline.PREV_G]; - b = frames[frame + TwoColorTimeline.PREV_B]; - a = frames[frame + TwoColorTimeline.PREV_A]; - r2 = frames[frame + TwoColorTimeline.PREV_R2]; - g2 = frames[frame + TwoColorTimeline.PREV_G2]; - b2 = frames[frame + TwoColorTimeline.PREV_B2]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); - r += (frames[frame + TwoColorTimeline.R] - r) * percent; - g += (frames[frame + TwoColorTimeline.G] - g) * percent; - b += (frames[frame + TwoColorTimeline.B] - b) * percent; - a += (frames[frame + TwoColorTimeline.A] - a) * percent; - r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; - g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; - b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; - } - if (alpha == 1) { - slot.color.set(r, g, b, a); - slot.darkColor.set(r2, g2, b2, 1); - } - else { - var light = slot.color, dark = slot.darkColor; - if (blend == MixBlend.setup) { - light.setFromColor(slot.data.color); - dark.setFromColor(slot.data.darkColor); - } - light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); - dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); - } - }; - TwoColorTimeline.ENTRIES = 8; - TwoColorTimeline.PREV_TIME = -8; - TwoColorTimeline.PREV_R = -7; - TwoColorTimeline.PREV_G = -6; - TwoColorTimeline.PREV_B = -5; - TwoColorTimeline.PREV_A = -4; - TwoColorTimeline.PREV_R2 = -3; - TwoColorTimeline.PREV_G2 = -2; - TwoColorTimeline.PREV_B2 = -1; - TwoColorTimeline.R = 1; - TwoColorTimeline.G = 2; - TwoColorTimeline.B = 3; - TwoColorTimeline.A = 4; - TwoColorTimeline.R2 = 5; - TwoColorTimeline.G2 = 6; - TwoColorTimeline.B2 = 7; - return TwoColorTimeline; - }(CurveTimeline)); - spine.TwoColorTimeline = TwoColorTimeline; - var AttachmentTimeline = (function () { - function AttachmentTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.attachmentNames = new Array(frameCount); - } - AttachmentTimeline.prototype.getPropertyId = function () { - return (TimelineType.attachment << 24) + this.slotIndex; - }; - AttachmentTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { - this.frames[frameIndex] = time; - this.attachmentNames[frameIndex] = attachmentName; - }; - AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { - var slot = skeleton.slots[this.slotIndex]; - if (!slot.bone.active) - return; - if (direction == MixDirection.mixOut) { - if (blend == MixBlend.setup) - this.setAttachment(skeleton, slot, slot.data.attachmentName); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (blend == MixBlend.setup || blend == MixBlend.first) - this.setAttachment(skeleton, slot, slot.data.attachmentName); - return; - } - var frameIndex = 0; - if (time >= frames[frames.length - 1]) - frameIndex = frames.length - 1; - else - frameIndex = Animation.binarySearch(frames, time, 1) - 1; - var attachmentName = this.attachmentNames[frameIndex]; - skeleton.slots[this.slotIndex] - .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); - }; - AttachmentTimeline.prototype.setAttachment = function (skeleton, slot, attachmentName) { - slot.attachment = attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName); - }; - return AttachmentTimeline; - }()); - spine.AttachmentTimeline = AttachmentTimeline; - var zeros = null; - var DeformTimeline = (function (_super) { - __extends(DeformTimeline, _super); - function DeformTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount); - _this.frameVertices = new Array(frameCount); - if (zeros == null) - zeros = spine.Utils.newFloatArray(64); - return _this; - } - DeformTimeline.prototype.getPropertyId = function () { - return (TimelineType.deform << 27) + +this.attachment.id + this.slotIndex; - }; - DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { - this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; - }; - DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { - var slot = skeleton.slots[this.slotIndex]; - if (!slot.bone.active) - return; - var slotAttachment = slot.getAttachment(); - if (!(slotAttachment instanceof spine.VertexAttachment) || !(slotAttachment.deformAttachment == this.attachment)) - return; - var deformArray = slot.deform; - if (deformArray.length == 0) - blend = MixBlend.setup; - var frameVertices = this.frameVertices; - var vertexCount = frameVertices[0].length; - var frames = this.frames; - if (time < frames[0]) { - var vertexAttachment = slotAttachment; - switch (blend) { - case MixBlend.setup: - deformArray.length = 0; - return; - case MixBlend.first: - if (alpha == 1) { - deformArray.length = 0; - break; - } - var deform_1 = spine.Utils.setArraySize(deformArray, vertexCount); - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i = 0; i < vertexCount; i++) - deform_1[i] += (setupVertices[i] - deform_1[i]) * alpha; - } - else { - alpha = 1 - alpha; - for (var i = 0; i < vertexCount; i++) - deform_1[i] *= alpha; - } - } - return; - } - var deform = spine.Utils.setArraySize(deformArray, vertexCount); - if (time >= frames[frames.length - 1]) { - var lastVertices = frameVertices[frames.length - 1]; - if (alpha == 1) { - if (blend == MixBlend.add) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i_1 = 0; i_1 < vertexCount; i_1++) { - deform[i_1] += lastVertices[i_1] - setupVertices[i_1]; - } - } - else { - for (var i_2 = 0; i_2 < vertexCount; i_2++) - deform[i_2] += lastVertices[i_2]; - } - } - else { - spine.Utils.arrayCopy(lastVertices, 0, deform, 0, vertexCount); - } - } - else { - switch (blend) { - case MixBlend.setup: { - var vertexAttachment_1 = slotAttachment; - if (vertexAttachment_1.bones == null) { - var setupVertices = vertexAttachment_1.vertices; - for (var i_3 = 0; i_3 < vertexCount; i_3++) { - var setup = setupVertices[i_3]; - deform[i_3] = setup + (lastVertices[i_3] - setup) * alpha; - } - } - else { - for (var i_4 = 0; i_4 < vertexCount; i_4++) - deform[i_4] = lastVertices[i_4] * alpha; - } - break; - } - case MixBlend.first: - case MixBlend.replace: - for (var i_5 = 0; i_5 < vertexCount; i_5++) - deform[i_5] += (lastVertices[i_5] - deform[i_5]) * alpha; - break; - case MixBlend.add: - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i_6 = 0; i_6 < vertexCount; i_6++) { - deform[i_6] += (lastVertices[i_6] - setupVertices[i_6]) * alpha; - } - } - else { - for (var i_7 = 0; i_7 < vertexCount; i_7++) - deform[i_7] += lastVertices[i_7] * alpha; - } - } - } - return; - } - var frame = Animation.binarySearch(frames, time); - var prevVertices = frameVertices[frame - 1]; - var nextVertices = frameVertices[frame]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); - if (alpha == 1) { - if (blend == MixBlend.add) { - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i_8 = 0; i_8 < vertexCount; i_8++) { - var prev = prevVertices[i_8]; - deform[i_8] += prev + (nextVertices[i_8] - prev) * percent - setupVertices[i_8]; - } - } - else { - for (var i_9 = 0; i_9 < vertexCount; i_9++) { - var prev = prevVertices[i_9]; - deform[i_9] += prev + (nextVertices[i_9] - prev) * percent; - } - } - } - else { - for (var i_10 = 0; i_10 < vertexCount; i_10++) { - var prev = prevVertices[i_10]; - deform[i_10] = prev + (nextVertices[i_10] - prev) * percent; - } - } - } - else { - switch (blend) { - case MixBlend.setup: { - var vertexAttachment_2 = slotAttachment; - if (vertexAttachment_2.bones == null) { - var setupVertices = vertexAttachment_2.vertices; - for (var i_11 = 0; i_11 < vertexCount; i_11++) { - var prev = prevVertices[i_11], setup = setupVertices[i_11]; - deform[i_11] = setup + (prev + (nextVertices[i_11] - prev) * percent - setup) * alpha; - } - } - else { - for (var i_12 = 0; i_12 < vertexCount; i_12++) { - var prev = prevVertices[i_12]; - deform[i_12] = (prev + (nextVertices[i_12] - prev) * percent) * alpha; - } - } - break; - } - case MixBlend.first: - case MixBlend.replace: - for (var i_13 = 0; i_13 < vertexCount; i_13++) { - var prev = prevVertices[i_13]; - deform[i_13] += (prev + (nextVertices[i_13] - prev) * percent - deform[i_13]) * alpha; - } - break; - case MixBlend.add: - var vertexAttachment = slotAttachment; - if (vertexAttachment.bones == null) { - var setupVertices = vertexAttachment.vertices; - for (var i_14 = 0; i_14 < vertexCount; i_14++) { - var prev = prevVertices[i_14]; - deform[i_14] += (prev + (nextVertices[i_14] - prev) * percent - setupVertices[i_14]) * alpha; - } - } - else { - for (var i_15 = 0; i_15 < vertexCount; i_15++) { - var prev = prevVertices[i_15]; - deform[i_15] += (prev + (nextVertices[i_15] - prev) * percent) * alpha; - } - } - } - } - }; - return DeformTimeline; - }(CurveTimeline)); - spine.DeformTimeline = DeformTimeline; - var EventTimeline = (function () { - function EventTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.events = new Array(frameCount); - } - EventTimeline.prototype.getPropertyId = function () { - return TimelineType.event << 24; - }; - EventTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - EventTimeline.prototype.setFrame = function (frameIndex, event) { - this.frames[frameIndex] = event.time; - this.events[frameIndex] = event; - }; - EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { - if (firedEvents == null) - return; - var frames = this.frames; - var frameCount = this.frames.length; - if (lastTime > time) { - this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, blend, direction); - lastTime = -1; - } - else if (lastTime >= frames[frameCount - 1]) - return; - if (time < frames[0]) - return; - var frame = 0; - if (lastTime < frames[0]) - frame = 0; - else { - frame = Animation.binarySearch(frames, lastTime); - var frameTime = frames[frame]; - while (frame > 0) { - if (frames[frame - 1] != frameTime) - break; - frame--; - } - } - for (; frame < frameCount && time >= frames[frame]; frame++) - firedEvents.push(this.events[frame]); - }; - return EventTimeline; - }()); - spine.EventTimeline = EventTimeline; - var DrawOrderTimeline = (function () { - function DrawOrderTimeline(frameCount) { - this.frames = spine.Utils.newFloatArray(frameCount); - this.drawOrders = new Array(frameCount); - } - DrawOrderTimeline.prototype.getPropertyId = function () { - return TimelineType.drawOrder << 24; - }; - DrawOrderTimeline.prototype.getFrameCount = function () { - return this.frames.length; - }; - DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { - this.frames[frameIndex] = time; - this.drawOrders[frameIndex] = drawOrder; - }; - DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { - var drawOrder = skeleton.drawOrder; - var slots = skeleton.slots; - if (direction == MixDirection.mixOut) { - if (blend == MixBlend.setup) - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frames = this.frames; - if (time < frames[0]) { - if (blend == MixBlend.setup || blend == MixBlend.first) - spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); - return; - } - var frame = 0; - if (time >= frames[frames.length - 1]) - frame = frames.length - 1; - else - frame = Animation.binarySearch(frames, time) - 1; - var drawOrderToSetupIndex = this.drawOrders[frame]; - if (drawOrderToSetupIndex == null) - spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); - else { - for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) - drawOrder[i] = slots[drawOrderToSetupIndex[i]]; - } - }; - return DrawOrderTimeline; - }()); - spine.DrawOrderTimeline = DrawOrderTimeline; - var IkConstraintTimeline = (function (_super) { - __extends(IkConstraintTimeline, _super); - function IkConstraintTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); - return _this; - } - IkConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; - }; - IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, softness, bendDirection, compress, stretch) { - frameIndex *= IkConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; - this.frames[frameIndex + IkConstraintTimeline.SOFTNESS] = softness; - this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; - this.frames[frameIndex + IkConstraintTimeline.COMPRESS] = compress ? 1 : 0; - this.frames[frameIndex + IkConstraintTimeline.STRETCH] = stretch ? 1 : 0; - }; - IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { - var frames = this.frames; - var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; - if (!constraint.active) - return; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - constraint.mix = constraint.data.mix; - constraint.softness = constraint.data.softness; - constraint.bendDirection = constraint.data.bendDirection; - constraint.compress = constraint.data.compress; - constraint.stretch = constraint.data.stretch; - return; - case MixBlend.first: - constraint.mix += (constraint.data.mix - constraint.mix) * alpha; - constraint.softness += (constraint.data.softness - constraint.softness) * alpha; - constraint.bendDirection = constraint.data.bendDirection; - constraint.compress = constraint.data.compress; - constraint.stretch = constraint.data.stretch; - } - return; - } - if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { - if (blend == MixBlend.setup) { - constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; - constraint.softness = constraint.data.softness - + (frames[frames.length + IkConstraintTimeline.PREV_SOFTNESS] - constraint.data.softness) * alpha; - if (direction == MixDirection.mixOut) { - constraint.bendDirection = constraint.data.bendDirection; - constraint.compress = constraint.data.compress; - constraint.stretch = constraint.data.stretch; - } - else { - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - constraint.compress = frames[frames.length + IkConstraintTimeline.PREV_COMPRESS] != 0; - constraint.stretch = frames[frames.length + IkConstraintTimeline.PREV_STRETCH] != 0; - } - } - else { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - constraint.softness += (frames[frames.length + IkConstraintTimeline.PREV_SOFTNESS] - constraint.softness) * alpha; - if (direction == MixDirection.mixIn) { - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - constraint.compress = frames[frames.length + IkConstraintTimeline.PREV_COMPRESS] != 0; - constraint.stretch = frames[frames.length + IkConstraintTimeline.PREV_STRETCH] != 0; - } - } - return; - } - var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); - var mix = frames[frame + IkConstraintTimeline.PREV_MIX]; - var softness = frames[frame + IkConstraintTimeline.PREV_SOFTNESS]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); - if (blend == MixBlend.setup) { - constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; - constraint.softness = constraint.data.softness - + (softness + (frames[frame + IkConstraintTimeline.SOFTNESS] - softness) * percent - constraint.data.softness) * alpha; - if (direction == MixDirection.mixOut) { - constraint.bendDirection = constraint.data.bendDirection; - constraint.compress = constraint.data.compress; - constraint.stretch = constraint.data.stretch; - } - else { - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - constraint.compress = frames[frame + IkConstraintTimeline.PREV_COMPRESS] != 0; - constraint.stretch = frames[frame + IkConstraintTimeline.PREV_STRETCH] != 0; - } - } - else { - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - constraint.softness += (softness + (frames[frame + IkConstraintTimeline.SOFTNESS] - softness) * percent - constraint.softness) * alpha; - if (direction == MixDirection.mixIn) { - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - constraint.compress = frames[frame + IkConstraintTimeline.PREV_COMPRESS] != 0; - constraint.stretch = frames[frame + IkConstraintTimeline.PREV_STRETCH] != 0; - } - } - }; - IkConstraintTimeline.ENTRIES = 6; - IkConstraintTimeline.PREV_TIME = -6; - IkConstraintTimeline.PREV_MIX = -5; - IkConstraintTimeline.PREV_SOFTNESS = -4; - IkConstraintTimeline.PREV_BEND_DIRECTION = -3; - IkConstraintTimeline.PREV_COMPRESS = -2; - IkConstraintTimeline.PREV_STRETCH = -1; - IkConstraintTimeline.MIX = 1; - IkConstraintTimeline.SOFTNESS = 2; - IkConstraintTimeline.BEND_DIRECTION = 3; - IkConstraintTimeline.COMPRESS = 4; - IkConstraintTimeline.STRETCH = 5; - return IkConstraintTimeline; - }(CurveTimeline)); - spine.IkConstraintTimeline = IkConstraintTimeline; - var TransformConstraintTimeline = (function (_super) { - __extends(TransformConstraintTimeline, _super); - function TransformConstraintTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); - return _this; - } - TransformConstraintTimeline.prototype.getPropertyId = function () { - return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; - }; - TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) { - frameIndex *= TransformConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; - this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; - this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; - }; - TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { - var frames = this.frames; - var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; - if (!constraint.active) - return; - if (time < frames[0]) { - var data = constraint.data; - switch (blend) { - case MixBlend.setup: - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - return; - case MixBlend.first: - constraint.rotateMix += (data.rotateMix - constraint.rotateMix) * alpha; - constraint.translateMix += (data.translateMix - constraint.translateMix) * alpha; - constraint.scaleMix += (data.scaleMix - constraint.scaleMix) * alpha; - constraint.shearMix += (data.shearMix - constraint.shearMix) * alpha; - } - return; - } - var rotate = 0, translate = 0, scale = 0, shear = 0; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { - var i = frames.length; - rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; - } - else { - var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; - scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; - shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; - } - if (blend == MixBlend.setup) { - var data = constraint.data; - constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; - constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; - constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; - constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - constraint.scaleMix += (scale - constraint.scaleMix) * alpha; - constraint.shearMix += (shear - constraint.shearMix) * alpha; - } - }; - TransformConstraintTimeline.ENTRIES = 5; - TransformConstraintTimeline.PREV_TIME = -5; - TransformConstraintTimeline.PREV_ROTATE = -4; - TransformConstraintTimeline.PREV_TRANSLATE = -3; - TransformConstraintTimeline.PREV_SCALE = -2; - TransformConstraintTimeline.PREV_SHEAR = -1; - TransformConstraintTimeline.ROTATE = 1; - TransformConstraintTimeline.TRANSLATE = 2; - TransformConstraintTimeline.SCALE = 3; - TransformConstraintTimeline.SHEAR = 4; - return TransformConstraintTimeline; - }(CurveTimeline)); - spine.TransformConstraintTimeline = TransformConstraintTimeline; - var PathConstraintPositionTimeline = (function (_super) { - __extends(PathConstraintPositionTimeline, _super); - function PathConstraintPositionTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - return _this; - } - PathConstraintPositionTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; - }; - PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { - frameIndex *= PathConstraintPositionTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; - }; - PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (!constraint.active) - return; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - constraint.position = constraint.data.position; - return; - case MixBlend.first: - constraint.position += (constraint.data.position - constraint.position) * alpha; - } - return; - } - var position = 0; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) - position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); - position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; - } - if (blend == MixBlend.setup) - constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; - else - constraint.position += (position - constraint.position) * alpha; - }; - PathConstraintPositionTimeline.ENTRIES = 2; - PathConstraintPositionTimeline.PREV_TIME = -2; - PathConstraintPositionTimeline.PREV_VALUE = -1; - PathConstraintPositionTimeline.VALUE = 1; - return PathConstraintPositionTimeline; - }(CurveTimeline)); - spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; - var PathConstraintSpacingTimeline = (function (_super) { - __extends(PathConstraintSpacingTimeline, _super); - function PathConstraintSpacingTimeline(frameCount) { - return _super.call(this, frameCount) || this; - } - PathConstraintSpacingTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; - }; - PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (!constraint.active) - return; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - constraint.spacing = constraint.data.spacing; - return; - case MixBlend.first: - constraint.spacing += (constraint.data.spacing - constraint.spacing) * alpha; - } - return; - } - var spacing = 0; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) - spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; - else { - var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); - spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; - } - if (blend == MixBlend.setup) - constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; - else - constraint.spacing += (spacing - constraint.spacing) * alpha; - }; - return PathConstraintSpacingTimeline; - }(PathConstraintPositionTimeline)); - spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; - var PathConstraintMixTimeline = (function (_super) { - __extends(PathConstraintMixTimeline, _super); - function PathConstraintMixTimeline(frameCount) { - var _this = _super.call(this, frameCount) || this; - _this.frames = spine.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - return _this; - } - PathConstraintMixTimeline.prototype.getPropertyId = function () { - return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; - }; - PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) { - frameIndex *= PathConstraintMixTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; - }; - PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { - var frames = this.frames; - var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; - if (!constraint.active) - return; - if (time < frames[0]) { - switch (blend) { - case MixBlend.setup: - constraint.rotateMix = constraint.data.rotateMix; - constraint.translateMix = constraint.data.translateMix; - return; - case MixBlend.first: - constraint.rotateMix += (constraint.data.rotateMix - constraint.rotateMix) * alpha; - constraint.translateMix += (constraint.data.translateMix - constraint.translateMix) * alpha; - } - return; - } - var rotate = 0, translate = 0; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { - rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; - } - else { - var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; - var frameTime = frames[frame]; - var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); - rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; - } - if (blend == MixBlend.setup) { - constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; - constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; - } - else { - constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; - constraint.translateMix += (translate - constraint.translateMix) * alpha; - } - }; - PathConstraintMixTimeline.ENTRIES = 3; - PathConstraintMixTimeline.PREV_TIME = -3; - PathConstraintMixTimeline.PREV_ROTATE = -2; - PathConstraintMixTimeline.PREV_TRANSLATE = -1; - PathConstraintMixTimeline.ROTATE = 1; - PathConstraintMixTimeline.TRANSLATE = 2; - return PathConstraintMixTimeline; - }(CurveTimeline)); - spine.PathConstraintMixTimeline = PathConstraintMixTimeline; + var Animation = (function () { + function Animation(name, timelines, duration) { + if (name == null) + throw new Error("name cannot be null."); + if (timelines == null) + throw new Error("timelines cannot be null."); + this.name = name; + this.timelines = timelines; + this.timelineIds = new spine.StringSet(); + for (var i = 0; i < timelines.length; i++) + this.timelineIds.addAll(timelines[i].getPropertyIds()); + this.duration = duration; + } + Animation.prototype.hasTimeline = function (ids) { + for (var i = 0; i < ids.length; i++) { + if (this.timelineIds.contains(ids[i])) + return true; + } + return false; + }; + Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, blend, direction) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (loop && this.duration != 0) { + time %= this.duration; + if (lastTime > 0) + lastTime %= this.duration; + } + var timelines = this.timelines; + for (var i = 0, n = timelines.length; i < n; i++) + timelines[i].apply(skeleton, lastTime, time, events, alpha, blend, direction); + }; + Animation.search = function (frames, time) { + var n = frames.length; + for (var i = 1; i < n; i++) + if (frames[i] > time) + return i - 1; + return n - 1; + }; + Animation.search2 = function (values, target, step) { + for (var i = 0, last = values.length - step; i <= last; i += step) + if (values[i] > target) + return i; + return -1; + }; + return Animation; + }()); + spine.Animation = Animation; + var MixBlend; + (function (MixBlend) { + MixBlend[MixBlend["setup"] = 0] = "setup"; + MixBlend[MixBlend["first"] = 1] = "first"; + MixBlend[MixBlend["replace"] = 2] = "replace"; + MixBlend[MixBlend["add"] = 3] = "add"; + })(MixBlend = spine.MixBlend || (spine.MixBlend = {})); + var MixDirection; + (function (MixDirection) { + MixDirection[MixDirection["mixIn"] = 0] = "mixIn"; + MixDirection[MixDirection["mixOut"] = 1] = "mixOut"; + })(MixDirection = spine.MixDirection || (spine.MixDirection = {})); + var Property; + (function (Property) { + Property[Property["rotate"] = 0] = "rotate"; + Property[Property["translateX"] = 1] = "translateX"; + Property[Property["translateY"] = 2] = "translateY"; + Property[Property["scaleX"] = 3] = "scaleX"; + Property[Property["scaleY"] = 4] = "scaleY"; + Property[Property["shearX"] = 5] = "shearX"; + Property[Property["shearY"] = 6] = "shearY"; + Property[Property["rgba"] = 7] = "rgba"; + Property[Property["rgb2"] = 8] = "rgb2"; + Property[Property["attachment"] = 9] = "attachment"; + Property[Property["deform"] = 10] = "deform"; + Property[Property["event"] = 11] = "event"; + Property[Property["drawOrder"] = 12] = "drawOrder"; + Property[Property["ikConstraint"] = 13] = "ikConstraint"; + Property[Property["transformConstraint"] = 14] = "transformConstraint"; + Property[Property["pathConstraintPosition"] = 15] = "pathConstraintPosition"; + Property[Property["pathConstraintSpacing"] = 16] = "pathConstraintSpacing"; + Property[Property["pathConstraintMix"] = 17] = "pathConstraintMix"; + })(Property = spine.Property || (spine.Property = {})); + var Timeline = (function () { + function Timeline(frameCount, propertyIds) { + this.propertyIds = propertyIds; + this.frames = spine.Utils.newFloatArray(frameCount * this.getFrameEntries()); + } + Timeline.prototype.getFrameCount = function () { + return this.frames.length / this.getFrameEntries(); + }; + Timeline.prototype.getDuration = function () { + return this.frames[this.frames.length - this.getFrameEntries()]; + }; + Timeline.prototype.getPropertyIds = function () { + return this.propertyIds; + }; + return Timeline; + }()); + spine.Timeline = Timeline; + var CurveTimeline = (function (_super) { + __extends(CurveTimeline, _super); + function CurveTimeline(frameCount, bezierCount, propertyIds) { + var _this = _super.call(this, frameCount, propertyIds) || this; + _this.curves = spine.Utils.newFloatArray(frameCount + bezierCount * CurveTimeline.BEZIER_SIZE); + _this.curves[frameCount - 1] = CurveTimeline.STEPPED; + return _this; + } + CurveTimeline.prototype.setLinear = function (frame) { + this.curves[frame] = CurveTimeline.LINEAR; + }; + CurveTimeline.prototype.setStepped = function (frame) { + this.curves[frame] = CurveTimeline.STEPPED; + }; + CurveTimeline.prototype.shrink = function (bezierCount) { + var size = this.getFrameCount() + bezierCount * CurveTimeline.BEZIER_SIZE; + if (this.curves.length > size) { + var newCurves = spine.Utils.newFloatArray(size); + spine.Utils.arrayCopy(this.curves, 0, newCurves, 0, size); + this.curves = newCurves; + } + }; + CurveTimeline.prototype.setBezier = function (bezier, frame, value, time1, value1, cx1, cy1, cx2, cy2, time2, value2) { + var curves = this.curves; + var i = this.getFrameCount() + bezier * CurveTimeline.BEZIER_SIZE; + if (value == 0) + curves[frame] = CurveTimeline.BEZIER + i; + var tmpx = (time1 - cx1 * 2 + cx2) * 0.03, tmpy = (value1 - cy1 * 2 + cy2) * 0.03; + var dddx = ((cx1 - cx2) * 3 - time1 + time2) * 0.006, dddy = ((cy1 - cy2) * 3 - value1 + value2) * 0.006; + var ddx = tmpx * 2 + dddx, ddy = tmpy * 2 + dddy; + var dx = (cx1 - time1) * 0.3 + tmpx + dddx * 0.16666667, dy = (cy1 - value1) * 0.3 + tmpy + dddy * 0.16666667; + var x = time1 + dx, y = value1 + dy; + for (var n = i + CurveTimeline.BEZIER_SIZE; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dx += ddx; + dy += ddy; + ddx += dddx; + ddy += dddy; + x += dx; + y += dy; + } + }; + CurveTimeline.prototype.getBezierValue = function (time, frameIndex, valueOffset, i) { + var curves = this.curves; + var frames = this.frames; + if (curves[i] > time) { + var x_1 = frames[frameIndex], y_1 = frames[frameIndex + valueOffset]; + return y_1 + (time - x_1) / (curves[i] - x_1) * (curves[i + 1] - y_1); + } + var n = i + CurveTimeline.BEZIER_SIZE; + for (i += 2; i < n; i += 2) { + if (curves[i] >= time) { + var x_2 = curves[i - 2], y_2 = curves[i - 1]; + return y_2 + (time - x_2) / (curves[i] - x_2) * (curves[i + 1] - y_2); + } + } + frameIndex += this.getFrameEntries(); + var x = curves[n - 2], y = curves[n - 1]; + return y + (time - x) / (frames[frameIndex] - x) * (frames[frameIndex + valueOffset] - y); + }; + CurveTimeline.LINEAR = 0; + CurveTimeline.STEPPED = 1; + CurveTimeline.BEZIER = 2; + CurveTimeline.BEZIER_SIZE = 18; + return CurveTimeline; + }(Timeline)); + spine.CurveTimeline = CurveTimeline; + var CurveTimeline1 = (function (_super) { + __extends(CurveTimeline1, _super); + function CurveTimeline1(frameCount, bezierCount, propertyIds) { + return _super.call(this, frameCount, bezierCount, propertyIds) || this; + } + CurveTimeline1.prototype.getFrameEntries = function () { + return CurveTimeline1.ENTRIES; + }; + CurveTimeline1.prototype.setFrame = function (frame, time, value) { + frame <<= 1; + this.frames[frame] = time; + this.frames[frame + CurveTimeline1.VALUE] = value; + }; + CurveTimeline1.prototype.getCurveValue = function (time) { + var frames = this.frames; + var i = frames.length - 2; + for (var ii = 2; ii <= i; ii += 2) { + if (frames[ii] > time) { + i = ii - 2; + break; + } + } + var curveType = this.curves[i >> 1]; + switch (curveType) { + case CurveTimeline.LINEAR: + var before = frames[i], value = frames[i + CurveTimeline1.VALUE]; + return value + (time - before) / (frames[i + CurveTimeline1.ENTRIES] - before) * (frames[i + CurveTimeline1.ENTRIES + CurveTimeline1.VALUE] - value); + case CurveTimeline.STEPPED: + return frames[i + CurveTimeline1.VALUE]; + } + return this.getBezierValue(time, i, CurveTimeline1.VALUE, curveType - CurveTimeline1.BEZIER); + }; + CurveTimeline1.ENTRIES = 2; + CurveTimeline1.VALUE = 1; + return CurveTimeline1; + }(CurveTimeline)); + spine.CurveTimeline1 = CurveTimeline1; + var CurveTimeline2 = (function (_super) { + __extends(CurveTimeline2, _super); + function CurveTimeline2(frameCount, bezierCount, propertyIds) { + return _super.call(this, frameCount, bezierCount, propertyIds) || this; + } + CurveTimeline2.prototype.getFrameEntries = function () { + return CurveTimeline2.ENTRIES; + }; + CurveTimeline2.prototype.setFrame = function (frame, time, value1, value2) { + frame *= CurveTimeline2.ENTRIES; + var frames = this.frames; + frames[frame] = time; + frames[frame + CurveTimeline2.VALUE1] = value1; + frames[frame + CurveTimeline2.VALUE2] = value2; + }; + CurveTimeline2.ENTRIES = 3; + CurveTimeline2.VALUE1 = 1; + CurveTimeline2.VALUE2 = 2; + return CurveTimeline2; + }(CurveTimeline)); + spine.CurveTimeline2 = CurveTimeline2; + var RotateTimeline = (function (_super) { + __extends(RotateTimeline, _super); + function RotateTimeline(frameCount, bezierCount, boneIndex) { + var _this = _super.call(this, frameCount, bezierCount, [ + Property.rotate + "|" + boneIndex + ]) || this; + _this.boneIndex = 0; + _this.boneIndex = boneIndex; + return _this; + } + RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (!bone.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.rotation = bone.data.rotation; + return; + case MixBlend.first: + bone.rotation += (bone.data.rotation - bone.rotation) * alpha; + } + return; + } + var r = this.getCurveValue(time); + switch (blend) { + case MixBlend.setup: + bone.rotation = bone.data.rotation + r * alpha; + break; + case MixBlend.first: + case MixBlend.replace: + r += bone.data.rotation - bone.rotation; + case MixBlend.add: + bone.rotation += r * alpha; + } + }; + return RotateTimeline; + }(CurveTimeline1)); + spine.RotateTimeline = RotateTimeline; + var TranslateTimeline = (function (_super) { + __extends(TranslateTimeline, _super); + function TranslateTimeline(frameCount, bezierCount, boneIndex) { + var _this = _super.call(this, frameCount, bezierCount, [ + Property.translateX + "|" + boneIndex, + Property.translateY + "|" + boneIndex, + ]) || this; + _this.boneIndex = 0; + _this.boneIndex = boneIndex; + return _this; + } + TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (!bone.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.x = bone.data.x; + bone.y = bone.data.y; + return; + case MixBlend.first: + bone.x += (bone.data.x - bone.x) * alpha; + bone.y += (bone.data.y - bone.y) * alpha; + } + return; + } + var x = 0, y = 0; + var i = Animation.search2(frames, time, CurveTimeline2.ENTRIES); + var curveType = this.curves[i / CurveTimeline2.ENTRIES]; + switch (curveType) { + case CurveTimeline.LINEAR: + var before = frames[i]; + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + var t = (time - before) / (frames[i + CurveTimeline2.ENTRIES] - before); + x += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE1] - x) * t; + y += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE2] - y) * t; + break; + case CurveTimeline.STEPPED: + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + break; + default: + x = this.getBezierValue(time, i, CurveTimeline2.VALUE1, curveType - CurveTimeline.BEZIER); + y = this.getBezierValue(time, i, CurveTimeline2.VALUE2, curveType + CurveTimeline.BEZIER_SIZE - CurveTimeline.BEZIER); + } + switch (blend) { + case MixBlend.setup: + bone.x = bone.data.x + x * alpha; + bone.y = bone.data.y + y * alpha; + break; + case MixBlend.first: + case MixBlend.replace: + bone.x += (bone.data.x + x - bone.x) * alpha; + bone.y += (bone.data.y + y - bone.y) * alpha; + break; + case MixBlend.add: + bone.x += x * alpha; + bone.y += y * alpha; + } + }; + return TranslateTimeline; + }(CurveTimeline2)); + spine.TranslateTimeline = TranslateTimeline; + var ScaleTimeline = (function (_super) { + __extends(ScaleTimeline, _super); + function ScaleTimeline(frameCount, bezierCount, boneIndex) { + var _this = _super.call(this, frameCount, bezierCount, [ + Property.scaleX + "|" + boneIndex, + Property.scaleY + "|" + boneIndex + ]) || this; + _this.boneIndex = 0; + _this.boneIndex = boneIndex; + return _this; + } + ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (!bone.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + return; + case MixBlend.first: + bone.scaleX += (bone.data.scaleX - bone.scaleX) * alpha; + bone.scaleY += (bone.data.scaleY - bone.scaleY) * alpha; + } + return; + } + var x = 0, y = 0; + var i = Animation.search2(frames, time, CurveTimeline2.ENTRIES); + var curveType = this.curves[i / CurveTimeline2.ENTRIES]; + switch (curveType) { + case CurveTimeline.LINEAR: + var before = frames[i]; + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + var t = (time - before) / (frames[i + CurveTimeline2.ENTRIES] - before); + x += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE1] - x) * t; + y += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE2] - y) * t; + break; + case CurveTimeline.STEPPED: + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + break; + default: + x = this.getBezierValue(time, i, CurveTimeline2.VALUE1, curveType - CurveTimeline2.BEZIER); + y = this.getBezierValue(time, i, CurveTimeline2.VALUE2, curveType + CurveTimeline2.BEZIER_SIZE - CurveTimeline2.BEZIER); + } + x *= bone.data.scaleX; + y *= bone.data.scaleY; + if (alpha == 1) { + if (blend == MixBlend.add) { + bone.scaleX += x - bone.data.scaleX; + bone.scaleY += y - bone.data.scaleY; + } + else { + bone.scaleX = x; + bone.scaleY = y; + } + } + else { + var bx = 0, by = 0; + if (direction == MixDirection.mixOut) { + switch (blend) { + case MixBlend.setup: + bx = bone.data.scaleX; + by = bone.data.scaleY; + bone.scaleX = bx + (Math.abs(x) * spine.MathUtils.signum(bx) - bx) * alpha; + bone.scaleY = by + (Math.abs(y) * spine.MathUtils.signum(by) - by) * alpha; + break; + case MixBlend.first: + case MixBlend.replace: + bx = bone.scaleX; + by = bone.scaleY; + bone.scaleX = bx + (Math.abs(x) * spine.MathUtils.signum(bx) - bx) * alpha; + bone.scaleY = by + (Math.abs(y) * spine.MathUtils.signum(by) - by) * alpha; + break; + case MixBlend.add: + bx = bone.scaleX; + by = bone.scaleY; + bone.scaleX = bx + (Math.abs(x) * spine.MathUtils.signum(bx) - bone.data.scaleX) * alpha; + bone.scaleY = by + (Math.abs(y) * spine.MathUtils.signum(by) - bone.data.scaleY) * alpha; + } + } + else { + switch (blend) { + case MixBlend.setup: + bx = Math.abs(bone.data.scaleX) * spine.MathUtils.signum(x); + by = Math.abs(bone.data.scaleY) * spine.MathUtils.signum(y); + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + break; + case MixBlend.first: + case MixBlend.replace: + bx = Math.abs(bone.scaleX) * spine.MathUtils.signum(x); + by = Math.abs(bone.scaleY) * spine.MathUtils.signum(y); + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + break; + case MixBlend.add: + bx = spine.MathUtils.signum(x); + by = spine.MathUtils.signum(y); + bone.scaleX = Math.abs(bone.scaleX) * bx + (x - Math.abs(bone.data.scaleX) * bx) * alpha; + bone.scaleY = Math.abs(bone.scaleY) * by + (y - Math.abs(bone.data.scaleY) * by) * alpha; + } + } + } + }; + return ScaleTimeline; + }(CurveTimeline2)); + spine.ScaleTimeline = ScaleTimeline; + var ShearTimeline = (function (_super) { + __extends(ShearTimeline, _super); + function ShearTimeline(frameCount, bezierCount, boneIndex) { + var _this = _super.call(this, frameCount, bezierCount, [ + Property.shearX + "|" + boneIndex, + Property.shearY + "|" + boneIndex + ]) || this; + _this.boneIndex = 0; + _this.boneIndex = boneIndex; + return _this; + } + ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { + var frames = this.frames; + var bone = skeleton.bones[this.boneIndex]; + if (!bone.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + return; + case MixBlend.first: + bone.shearX += (bone.data.shearX - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY - bone.shearY) * alpha; + } + return; + } + var x = 0, y = 0; + var i = Animation.search2(frames, time, CurveTimeline2.ENTRIES); + var curveType = this.curves[i / CurveTimeline2.ENTRIES]; + switch (curveType) { + case CurveTimeline2.LINEAR: + var before = frames[i]; + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + var t = (time - before) / (frames[i + CurveTimeline2.ENTRIES] - before); + x += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE1] - x) * t; + y += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE2] - y) * t; + break; + case CurveTimeline2.STEPPED: + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + break; + default: + x = this.getBezierValue(time, i, CurveTimeline2.VALUE1, curveType - CurveTimeline2.BEZIER); + y = this.getBezierValue(time, i, CurveTimeline2.VALUE2, curveType + CurveTimeline2.BEZIER_SIZE - CurveTimeline2.BEZIER); + } + switch (blend) { + case MixBlend.setup: + bone.shearX = bone.data.shearX + x * alpha; + bone.shearY = bone.data.shearY + y * alpha; + break; + case MixBlend.first: + case MixBlend.replace: + bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; + break; + case MixBlend.add: + bone.shearX += x * alpha; + bone.shearY += y * alpha; + } + }; + return ShearTimeline; + }(CurveTimeline2)); + spine.ShearTimeline = ShearTimeline; + var ColorTimeline = (function (_super) { + __extends(ColorTimeline, _super); + function ColorTimeline(frameCount, bezierCount, slotIndex) { + var _this = _super.call(this, frameCount, bezierCount, [ + Property.rgba + "|" + slotIndex + ]) || this; + _this.slotIndex = 0; + _this.slotIndex = slotIndex; + return _this; + } + ColorTimeline.prototype.getFrameEntries = function () { + return ColorTimeline.ENTRIES; + }; + ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) { + frameIndex *= ColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + ColorTimeline.R] = r; + this.frames[frameIndex + ColorTimeline.G] = g; + this.frames[frameIndex + ColorTimeline.B] = b; + this.frames[frameIndex + ColorTimeline.A] = a; + }; + ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { + var slot = skeleton.slots[this.slotIndex]; + if (!slot.bone.active) + return; + var frames = this.frames; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + slot.color.setFromColor(slot.data.color); + return; + case MixBlend.first: + var color = slot.color, setup = slot.data.color; + color.add((setup.r - color.r) * alpha, (setup.g - color.g) * alpha, (setup.b - color.b) * alpha, (setup.a - color.a) * alpha); + } + return; + } + var r = 0, g = 0, b = 0, a = 0; + var i = Animation.search2(frames, time, ColorTimeline.ENTRIES); + var curveType = this.curves[i / ColorTimeline.ENTRIES]; + switch (curveType) { + case ColorTimeline.LINEAR: + var before = frames[i]; + r = frames[i + ColorTimeline.R]; + g = frames[i + ColorTimeline.G]; + b = frames[i + ColorTimeline.B]; + a = frames[i + ColorTimeline.A]; + var t = (time - before) / (frames[i + ColorTimeline.ENTRIES] - before); + r += (frames[i + ColorTimeline.ENTRIES + ColorTimeline.R] - r) * t; + g += (frames[i + ColorTimeline.ENTRIES + ColorTimeline.G] - g) * t; + b += (frames[i + ColorTimeline.ENTRIES + ColorTimeline.B] - b) * t; + a += (frames[i + ColorTimeline.ENTRIES + ColorTimeline.A] - a) * t; + break; + case ColorTimeline.STEPPED: + r = frames[i + ColorTimeline.R]; + g = frames[i + ColorTimeline.G]; + b = frames[i + ColorTimeline.B]; + a = frames[i + ColorTimeline.A]; + break; + default: + r = this.getBezierValue(time, i, ColorTimeline.R, curveType - ColorTimeline.BEZIER); + g = this.getBezierValue(time, i, ColorTimeline.G, curveType + ColorTimeline.BEZIER_SIZE - ColorTimeline.BEZIER); + b = this.getBezierValue(time, i, ColorTimeline.B, curveType + ColorTimeline.BEZIER_SIZE * 2 - ColorTimeline.BEZIER); + a = this.getBezierValue(time, i, ColorTimeline.A, curveType + ColorTimeline.BEZIER_SIZE * 3 - ColorTimeline.BEZIER); + } + if (alpha == 1) + slot.color.set(r, g, b, a); + else { + var color = slot.color; + if (blend == MixBlend.setup) + color.setFromColor(slot.data.color); + color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); + } + }; + ColorTimeline.ENTRIES = 5; + ColorTimeline.R = 1; + ColorTimeline.G = 2; + ColorTimeline.B = 3; + ColorTimeline.A = 4; + return ColorTimeline; + }(CurveTimeline)); + spine.ColorTimeline = ColorTimeline; + var TwoColorTimeline = (function (_super) { + __extends(TwoColorTimeline, _super); + function TwoColorTimeline(frameCount, bezierCount, slotIndex) { + var _this = _super.call(this, frameCount, bezierCount, [ + Property.rgba + "|" + slotIndex, + Property.rgb2 + "|" + slotIndex + ]) || this; + _this.slotIndex = 0; + _this.slotIndex = slotIndex; + return _this; + } + TwoColorTimeline.prototype.getFrameEntries = function () { + return TwoColorTimeline.ENTRIES; + }; + TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) { + frameIndex *= TwoColorTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + TwoColorTimeline.R] = r; + this.frames[frameIndex + TwoColorTimeline.G] = g; + this.frames[frameIndex + TwoColorTimeline.B] = b; + this.frames[frameIndex + TwoColorTimeline.A] = a; + this.frames[frameIndex + TwoColorTimeline.R2] = r2; + this.frames[frameIndex + TwoColorTimeline.G2] = g2; + this.frames[frameIndex + TwoColorTimeline.B2] = b2; + }; + TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { + var slot = skeleton.slots[this.slotIndex]; + if (!slot.bone.active) + return; + var frames = this.frames; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + slot.color.setFromColor(slot.data.color); + slot.darkColor.setFromColor(slot.data.darkColor); + return; + case MixBlend.first: + var light = slot.color, dark = slot.darkColor, setupLight = slot.data.color, setupDark = slot.data.darkColor; + light.add((setupLight.r - light.r) * alpha, (setupLight.g - light.g) * alpha, (setupLight.b - light.b) * alpha, (setupLight.a - light.a) * alpha); + dark.add((setupDark.r - dark.r) * alpha, (setupDark.g - dark.g) * alpha, (setupDark.b - dark.b) * alpha, 0); + } + return; + } + var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; + var i = Animation.search2(frames, time, TwoColorTimeline.ENTRIES); + var curveType = this.curves[i >> 3]; + switch (curveType) { + case TwoColorTimeline.LINEAR: + var before = frames[i]; + r = frames[i + TwoColorTimeline.R]; + g = frames[i + TwoColorTimeline.G]; + b = frames[i + TwoColorTimeline.B]; + a = frames[i + TwoColorTimeline.A]; + r2 = frames[i + TwoColorTimeline.R2]; + g2 = frames[i + TwoColorTimeline.G2]; + b2 = frames[i + TwoColorTimeline.B2]; + var t = (time - before) / (frames[i + TwoColorTimeline.ENTRIES] - before); + r += (frames[i + TwoColorTimeline.ENTRIES + TwoColorTimeline.R] - r) * t; + g += (frames[i + TwoColorTimeline.ENTRIES + TwoColorTimeline.G] - g) * t; + b += (frames[i + TwoColorTimeline.ENTRIES + TwoColorTimeline.B] - b) * t; + a += (frames[i + TwoColorTimeline.ENTRIES + TwoColorTimeline.A] - a) * t; + r2 += (frames[i + TwoColorTimeline.ENTRIES + TwoColorTimeline.R2] - r2) * t; + g2 += (frames[i + TwoColorTimeline.ENTRIES + TwoColorTimeline.G2] - g2) * t; + b2 += (frames[i + TwoColorTimeline.ENTRIES + TwoColorTimeline.B2] - b2) * t; + break; + case TwoColorTimeline.STEPPED: + r = frames[i + TwoColorTimeline.R]; + g = frames[i + TwoColorTimeline.G]; + b = frames[i + TwoColorTimeline.B]; + a = frames[i + TwoColorTimeline.A]; + r2 = frames[i + TwoColorTimeline.R2]; + g2 = frames[i + TwoColorTimeline.G2]; + b2 = frames[i + TwoColorTimeline.B2]; + break; + default: + r = this.getBezierValue(time, i, TwoColorTimeline.R, curveType - TwoColorTimeline.BEZIER); + g = this.getBezierValue(time, i, TwoColorTimeline.G, curveType + TwoColorTimeline.BEZIER_SIZE - TwoColorTimeline.BEZIER); + b = this.getBezierValue(time, i, TwoColorTimeline.B, curveType + TwoColorTimeline.BEZIER_SIZE * 2 - TwoColorTimeline.BEZIER); + a = this.getBezierValue(time, i, TwoColorTimeline.A, curveType + TwoColorTimeline.BEZIER_SIZE * 3 - TwoColorTimeline.BEZIER); + r2 = this.getBezierValue(time, i, TwoColorTimeline.R2, curveType + TwoColorTimeline.BEZIER_SIZE * 4 - TwoColorTimeline.BEZIER); + g2 = this.getBezierValue(time, i, TwoColorTimeline.G2, curveType + TwoColorTimeline.BEZIER_SIZE * 5 - TwoColorTimeline.BEZIER); + b2 = this.getBezierValue(time, i, TwoColorTimeline.B2, curveType + TwoColorTimeline.BEZIER_SIZE * 6 - TwoColorTimeline.BEZIER); + } + if (alpha == 1) { + slot.color.set(r, g, b, a); + slot.darkColor.set(r2, g2, b2, 1); + } + else { + var light = slot.color, dark = slot.darkColor; + if (blend == MixBlend.setup) { + light.setFromColor(slot.data.color); + dark.setFromColor(slot.data.darkColor); + } + light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); + dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0); + } + }; + TwoColorTimeline.ENTRIES = 8; + TwoColorTimeline.R = 1; + TwoColorTimeline.G = 2; + TwoColorTimeline.B = 3; + TwoColorTimeline.A = 4; + TwoColorTimeline.R2 = 5; + TwoColorTimeline.G2 = 6; + TwoColorTimeline.B2 = 7; + return TwoColorTimeline; + }(CurveTimeline)); + spine.TwoColorTimeline = TwoColorTimeline; + var AttachmentTimeline = (function (_super) { + __extends(AttachmentTimeline, _super); + function AttachmentTimeline(frameCount, slotIndex) { + var _this = _super.call(this, frameCount, [ + Property.attachment + "|" + slotIndex + ]) || this; + _this.slotIndex = 0; + _this.slotIndex = slotIndex; + _this.attachmentNames = new Array(frameCount); + return _this; + } + AttachmentTimeline.prototype.getFrameEntries = function () { + return 1; + }; + AttachmentTimeline.prototype.getFrameCount = function () { + return this.frames.length; + }; + AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) { + this.frames[frameIndex] = time; + this.attachmentNames[frameIndex] = attachmentName; + }; + AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) { + var slot = skeleton.slots[this.slotIndex]; + if (!slot.bone.active) + return; + if (direction == MixDirection.mixOut) { + if (blend == MixBlend.setup) + this.setAttachment(skeleton, slot, slot.data.attachmentName); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (blend == MixBlend.setup || blend == MixBlend.first) + this.setAttachment(skeleton, slot, slot.data.attachmentName); + return; + } + this.setAttachment(skeleton, slot, this.attachmentNames[Animation.search(frames, time)]); + }; + AttachmentTimeline.prototype.setAttachment = function (skeleton, slot, attachmentName) { + slot.attachment = attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName); + }; + return AttachmentTimeline; + }(Timeline)); + spine.AttachmentTimeline = AttachmentTimeline; + var zeros = null; + var DeformTimeline = (function (_super) { + __extends(DeformTimeline, _super); + function DeformTimeline(frameCount, bezierCount, slotIndex, attachment) { + var _this = _super.call(this, frameCount, bezierCount, [ + Property.deform + "|" + slotIndex + "|" + attachment.id + ]) || this; + _this.slotIndex = 0; + _this.slotIndex = slotIndex; + _this.attachment = attachment; + _this.vertices = new Array(frameCount); + if (zeros == null) + zeros = spine.Utils.newFloatArray(64); + return _this; + } + DeformTimeline.prototype.getFrameEntries = function () { + return 1; + }; + DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) { + this.frames[frameIndex] = time; + this.vertices[frameIndex] = vertices; + }; + DeformTimeline.prototype.setBezier = function (bezier, frame, value, time1, value1, cx1, cy1, cx2, cy2, time2, value2) { + var curves = this.curves; + var i = this.getFrameCount() + bezier * DeformTimeline.BEZIER_SIZE; + if (value == 0) + curves[frame] = DeformTimeline.BEZIER + i; + var tmpx = (time1 - cx1 * 2 + cx2) * 0.03, tmpy = cy2 * 0.03 - cy1 * 0.06; + var dddx = ((cx1 - cx2) * 3 - time1 + time2) * 0.006, dddy = (cy1 - cy2 + 0.33333333) * 0.018; + var ddx = tmpx * 2 + dddx, ddy = tmpy * 2 + dddy; + var dx = (cx1 - time1) * 0.3 + tmpx + dddx * 0.16666667, dy = cy1 * 0.3 + tmpy + dddy * 0.16666667; + var x = time1 + dx, y = dy; + for (var n = i + DeformTimeline.BEZIER_SIZE; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dx += ddx; + dy += ddy; + ddx += dddx; + ddy += dddy; + x += dx; + y += dy; + } + }; + DeformTimeline.prototype.getCurvePercent = function (time, frame) { + var curves = this.curves; + var frames = this.frames; + var i = curves[frame]; + switch (i) { + case DeformTimeline.LINEAR: + var x_3 = frames[frame]; + return (time - x_3) / (frames[frame + this.getFrameEntries()] - x_3); + case DeformTimeline.STEPPED: + return 0; + } + i -= DeformTimeline.BEZIER; + if (curves[i] > time) { + var x_4 = frames[frame]; + return curves[i + 1] * (time - x_4) / (curves[i] - x_4); + } + var n = i + DeformTimeline.BEZIER_SIZE; + for (i += 2; i < n; i += 2) { + if (curves[i] >= time) { + var x_5 = curves[i - 2], y_3 = curves[i - 1]; + return y_3 + (time - x_5) / (curves[i] - x_5) * (curves[i + 1] - y_3); + } + } + var x = curves[n - 2], y = curves[n - 1]; + return y + (1 - y) * (time - x) / (frames[frame + this.getFrameEntries()] - x); + }; + DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + var slot = skeleton.slots[this.slotIndex]; + if (!slot.bone.active) + return; + var slotAttachment = slot.getAttachment(); + if (!(slotAttachment instanceof spine.VertexAttachment) || !(slotAttachment.deformAttachment == this.attachment)) + return; + var deformArray = slot.deform; + if (deformArray.length == 0) + blend = MixBlend.setup; + var vertices = this.vertices; + var vertexCount = vertices[0].length; + var frames = this.frames; + if (time < frames[0]) { + var vertexAttachment = slotAttachment; + switch (blend) { + case MixBlend.setup: + deformArray.length = 0; + return; + case MixBlend.first: + if (alpha == 1) { + deformArray.length = 0; + break; + } + var deform_1 = spine.Utils.setArraySize(deformArray, vertexCount); + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) + deform_1[i] += (setupVertices[i] - deform_1[i]) * alpha; + } + else { + alpha = 1 - alpha; + for (var i = 0; i < vertexCount; i++) + deform_1[i] *= alpha; + } + } + return; + } + var deform = spine.Utils.setArraySize(deformArray, vertexCount); + if (time >= frames[frames.length - 1]) { + var lastVertices = vertices[frames.length - 1]; + if (alpha == 1) { + if (blend == MixBlend.add) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i_1 = 0; i_1 < vertexCount; i_1++) { + deform[i_1] += lastVertices[i_1] - setupVertices[i_1]; + } + } + else { + for (var i_2 = 0; i_2 < vertexCount; i_2++) + deform[i_2] += lastVertices[i_2]; + } + } + else { + spine.Utils.arrayCopy(lastVertices, 0, deform, 0, vertexCount); + } + } + else { + switch (blend) { + case MixBlend.setup: { + var vertexAttachment_1 = slotAttachment; + if (vertexAttachment_1.bones == null) { + var setupVertices = vertexAttachment_1.vertices; + for (var i_3 = 0; i_3 < vertexCount; i_3++) { + var setup = setupVertices[i_3]; + deform[i_3] = setup + (lastVertices[i_3] - setup) * alpha; + } + } + else { + for (var i_4 = 0; i_4 < vertexCount; i_4++) + deform[i_4] = lastVertices[i_4] * alpha; + } + break; + } + case MixBlend.first: + case MixBlend.replace: + for (var i_5 = 0; i_5 < vertexCount; i_5++) + deform[i_5] += (lastVertices[i_5] - deform[i_5]) * alpha; + break; + case MixBlend.add: + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i_6 = 0; i_6 < vertexCount; i_6++) { + deform[i_6] += (lastVertices[i_6] - setupVertices[i_6]) * alpha; + } + } + else { + for (var i_7 = 0; i_7 < vertexCount; i_7++) + deform[i_7] += lastVertices[i_7] * alpha; + } + } + } + return; + } + var frame = Animation.search(frames, time); + var percent = this.getCurvePercent(time, frame); + var prevVertices = vertices[frame]; + var nextVertices = vertices[frame + 1]; + if (alpha == 1) { + if (blend == MixBlend.add) { + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i_8 = 0; i_8 < vertexCount; i_8++) { + var prev = prevVertices[i_8]; + deform[i_8] += prev + (nextVertices[i_8] - prev) * percent - setupVertices[i_8]; + } + } + else { + for (var i_9 = 0; i_9 < vertexCount; i_9++) { + var prev = prevVertices[i_9]; + deform[i_9] += prev + (nextVertices[i_9] - prev) * percent; + } + } + } + else { + for (var i_10 = 0; i_10 < vertexCount; i_10++) { + var prev = prevVertices[i_10]; + deform[i_10] = prev + (nextVertices[i_10] - prev) * percent; + } + } + } + else { + switch (blend) { + case MixBlend.setup: { + var vertexAttachment_2 = slotAttachment; + if (vertexAttachment_2.bones == null) { + var setupVertices = vertexAttachment_2.vertices; + for (var i_11 = 0; i_11 < vertexCount; i_11++) { + var prev = prevVertices[i_11], setup = setupVertices[i_11]; + deform[i_11] = setup + (prev + (nextVertices[i_11] - prev) * percent - setup) * alpha; + } + } + else { + for (var i_12 = 0; i_12 < vertexCount; i_12++) { + var prev = prevVertices[i_12]; + deform[i_12] = (prev + (nextVertices[i_12] - prev) * percent) * alpha; + } + } + break; + } + case MixBlend.first: + case MixBlend.replace: + for (var i_13 = 0; i_13 < vertexCount; i_13++) { + var prev = prevVertices[i_13]; + deform[i_13] += (prev + (nextVertices[i_13] - prev) * percent - deform[i_13]) * alpha; + } + break; + case MixBlend.add: + var vertexAttachment = slotAttachment; + if (vertexAttachment.bones == null) { + var setupVertices = vertexAttachment.vertices; + for (var i_14 = 0; i_14 < vertexCount; i_14++) { + var prev = prevVertices[i_14]; + deform[i_14] += (prev + (nextVertices[i_14] - prev) * percent - setupVertices[i_14]) * alpha; + } + } + else { + for (var i_15 = 0; i_15 < vertexCount; i_15++) { + var prev = prevVertices[i_15]; + deform[i_15] += (prev + (nextVertices[i_15] - prev) * percent) * alpha; + } + } + } + } + }; + return DeformTimeline; + }(CurveTimeline)); + spine.DeformTimeline = DeformTimeline; + var EventTimeline = (function (_super) { + __extends(EventTimeline, _super); + function EventTimeline(frameCount) { + var _this = _super.call(this, frameCount, EventTimeline.propertyIds) || this; + _this.events = new Array(frameCount); + return _this; + } + EventTimeline.prototype.getFrameEntries = function () { + return 1; + }; + EventTimeline.prototype.setFrame = function (frameIndex, event) { + this.frames[frameIndex] = event.time; + this.events[frameIndex] = event; + }; + EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + if (firedEvents == null) + return; + var frames = this.frames; + var frameCount = this.frames.length; + if (lastTime > time) { + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, blend, direction); + lastTime = -1; + } + else if (lastTime >= frames[frameCount - 1]) + return; + if (time < frames[0]) + return; + var i = 0; + if (lastTime < frames[0]) + i = 0; + else { + i = Animation.search(frames, lastTime); + var frameTime = frames[i]; + while (i > 0) { + if (frames[i - 1] != frameTime) + break; + i--; + } + } + for (; i < frameCount && time >= frames[i]; i++) + firedEvents.push(this.events[i]); + }; + EventTimeline.propertyIds = ["" + Property.event]; + return EventTimeline; + }(Timeline)); + spine.EventTimeline = EventTimeline; + var DrawOrderTimeline = (function (_super) { + __extends(DrawOrderTimeline, _super); + function DrawOrderTimeline(frameCount) { + var _this = _super.call(this, frameCount, DrawOrderTimeline.propertyIds) || this; + _this.drawOrders = new Array(frameCount); + return _this; + } + DrawOrderTimeline.prototype.getFrameEntries = function () { + return 1; + }; + DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) { + this.frames[frameIndex] = time; + this.drawOrders[frameIndex] = drawOrder; + }; + DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + var drawOrder = skeleton.drawOrder; + var slots = skeleton.slots; + if (direction == MixDirection.mixOut) { + if (blend == MixBlend.setup) + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var frames = this.frames; + if (time < frames[0]) { + if (blend == MixBlend.setup || blend == MixBlend.first) + spine.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + var drawOrderToSetupIndex = this.drawOrders[Animation.search(frames, time)]; + if (drawOrderToSetupIndex == null) + spine.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); + else { + for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) + drawOrder[i] = slots[drawOrderToSetupIndex[i]]; + } + }; + DrawOrderTimeline.propertyIds = ["" + Property.drawOrder]; + return DrawOrderTimeline; + }(Timeline)); + spine.DrawOrderTimeline = DrawOrderTimeline; + var IkConstraintTimeline = (function (_super) { + __extends(IkConstraintTimeline, _super); + function IkConstraintTimeline(frameCount, bezierCount, ikConstraintIndex) { + var _this = _super.call(this, frameCount, bezierCount, [ + Property.ikConstraint + "|" + ikConstraintIndex + ]) || this; + _this.ikConstraintIndex = ikConstraintIndex; + return _this; + } + IkConstraintTimeline.prototype.getFrameEntries = function () { + return IkConstraintTimeline.ENTRIES; + }; + IkConstraintTimeline.prototype.setFrame = function (frame, time, mix, softness, bendDirection, compress, stretch) { + frame *= IkConstraintTimeline.ENTRIES; + this.frames[frame] = time; + this.frames[frame + IkConstraintTimeline.MIX] = mix; + this.frames[frame + IkConstraintTimeline.SOFTNESS] = softness; + this.frames[frame + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; + this.frames[frame + IkConstraintTimeline.COMPRESS] = compress ? 1 : 0; + this.frames[frame + IkConstraintTimeline.STRETCH] = stretch ? 1 : 0; + }; + IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + var frames = this.frames; + var constraint = skeleton.ikConstraints[this.ikConstraintIndex]; + if (!constraint.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + constraint.mix = constraint.data.mix; + constraint.softness = constraint.data.softness; + constraint.bendDirection = constraint.data.bendDirection; + constraint.compress = constraint.data.compress; + constraint.stretch = constraint.data.stretch; + return; + case MixBlend.first: + constraint.mix += (constraint.data.mix - constraint.mix) * alpha; + constraint.softness += (constraint.data.softness - constraint.softness) * alpha; + constraint.bendDirection = constraint.data.bendDirection; + constraint.compress = constraint.data.compress; + constraint.stretch = constraint.data.stretch; + } + return; + } + var mix = 0, softness = 0; + var i = Animation.search2(frames, time, IkConstraintTimeline.ENTRIES); + var curveType = this.curves[i / IkConstraintTimeline.ENTRIES]; + switch (curveType) { + case IkConstraintTimeline.LINEAR: + var before = frames[i]; + mix = frames[i + IkConstraintTimeline.MIX]; + softness = frames[i + IkConstraintTimeline.SOFTNESS]; + var t = (time - before) / (frames[i + IkConstraintTimeline.ENTRIES] - before); + mix += (frames[i + IkConstraintTimeline.ENTRIES + IkConstraintTimeline.MIX] - mix) * t; + softness += (frames[i + IkConstraintTimeline.ENTRIES + IkConstraintTimeline.SOFTNESS] - softness) * t; + break; + case IkConstraintTimeline.STEPPED: + mix = frames[i + IkConstraintTimeline.MIX]; + softness = frames[i + IkConstraintTimeline.SOFTNESS]; + break; + default: + mix = this.getBezierValue(time, i, IkConstraintTimeline.MIX, curveType - IkConstraintTimeline.BEZIER); + softness = this.getBezierValue(time, i, IkConstraintTimeline.SOFTNESS, curveType + IkConstraintTimeline.BEZIER_SIZE - IkConstraintTimeline.BEZIER); + } + if (blend == MixBlend.setup) { + constraint.mix = constraint.data.mix + (mix - constraint.data.mix) * alpha; + constraint.softness = constraint.data.softness + (softness - constraint.data.softness) * alpha; + if (direction == MixDirection.mixOut) { + constraint.bendDirection = constraint.data.bendDirection; + constraint.compress = constraint.data.compress; + constraint.stretch = constraint.data.stretch; + } + else { + constraint.bendDirection = frames[i + IkConstraintTimeline.BEND_DIRECTION]; + constraint.compress = frames[i + IkConstraintTimeline.COMPRESS] != 0; + constraint.stretch = frames[i + IkConstraintTimeline.STRETCH] != 0; + } + } + else { + constraint.mix += (mix - constraint.mix) * alpha; + constraint.softness += (softness - constraint.softness) * alpha; + if (direction == MixDirection.mixIn) { + constraint.bendDirection = frames[i + IkConstraintTimeline.BEND_DIRECTION]; + constraint.compress = frames[i + IkConstraintTimeline.COMPRESS] != 0; + constraint.stretch = frames[i + IkConstraintTimeline.STRETCH] != 0; + } + } + }; + IkConstraintTimeline.ENTRIES = 6; + IkConstraintTimeline.MIX = 1; + IkConstraintTimeline.SOFTNESS = 2; + IkConstraintTimeline.BEND_DIRECTION = 3; + IkConstraintTimeline.COMPRESS = 4; + IkConstraintTimeline.STRETCH = 5; + return IkConstraintTimeline; + }(CurveTimeline)); + spine.IkConstraintTimeline = IkConstraintTimeline; + var TransformConstraintTimeline = (function (_super) { + __extends(TransformConstraintTimeline, _super); + function TransformConstraintTimeline(frameCount, bezierCount, transformConstraintIndex) { + var _this = _super.call(this, frameCount, bezierCount, [ + Property.transformConstraint + "|" + transformConstraintIndex + ]) || this; + _this.transformConstraintIndex = transformConstraintIndex; + return _this; + } + TransformConstraintTimeline.prototype.getFrameEntries = function () { + return TransformConstraintTimeline.ENTRIES; + }; + TransformConstraintTimeline.prototype.setFrame = function (frame, time, rotateMix, translateMix, scaleMix, shearMix) { + frame *= TransformConstraintTimeline.ENTRIES; + this.frames[frame] = time; + this.frames[frame + TransformConstraintTimeline.ROTATE] = rotateMix; + this.frames[frame + TransformConstraintTimeline.TRANSLATE] = translateMix; + this.frames[frame + TransformConstraintTimeline.SCALE] = scaleMix; + this.frames[frame + TransformConstraintTimeline.SHEAR] = shearMix; + }; + TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + var frames = this.frames; + var constraint = skeleton.transformConstraints[this.transformConstraintIndex]; + if (!constraint.active) + return; + if (time < frames[0]) { + var data = constraint.data; + switch (blend) { + case MixBlend.setup: + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + return; + case MixBlend.first: + constraint.rotateMix += (data.rotateMix - constraint.rotateMix) * alpha; + constraint.translateMix += (data.translateMix - constraint.translateMix) * alpha; + constraint.scaleMix += (data.scaleMix - constraint.scaleMix) * alpha; + constraint.shearMix += (data.shearMix - constraint.shearMix) * alpha; + } + return; + } + var rotate = 0, translate = 0, scale = 0, shear = 0; + var i = Animation.search2(frames, time, TransformConstraintTimeline.ENTRIES); + var curveType = this.curves[i / TransformConstraintTimeline.ENTRIES]; + switch (curveType) { + case TransformConstraintTimeline.LINEAR: + var before = frames[i]; + rotate = frames[i + TransformConstraintTimeline.ROTATE]; + translate = frames[i + TransformConstraintTimeline.TRANSLATE]; + scale = frames[i + TransformConstraintTimeline.SCALE]; + shear = frames[i + TransformConstraintTimeline.SHEAR]; + var t = (time - before) / (frames[i + TransformConstraintTimeline.ENTRIES] - before); + rotate += (frames[i + TransformConstraintTimeline.ENTRIES + TransformConstraintTimeline.ROTATE] - rotate) * t; + translate += (frames[i + TransformConstraintTimeline.ENTRIES + TransformConstraintTimeline.TRANSLATE] - translate) * t; + scale += (frames[i + TransformConstraintTimeline.ENTRIES + TransformConstraintTimeline.SCALE] - scale) * t; + shear += (frames[i + TransformConstraintTimeline.ENTRIES + TransformConstraintTimeline.SHEAR] - shear) * t; + break; + case TransformConstraintTimeline.STEPPED: + rotate = frames[i + TransformConstraintTimeline.ROTATE]; + translate = frames[i + TransformConstraintTimeline.TRANSLATE]; + scale = frames[i + TransformConstraintTimeline.SCALE]; + shear = frames[i + TransformConstraintTimeline.SHEAR]; + break; + default: + rotate = this.getBezierValue(time, i, TransformConstraintTimeline.ROTATE, curveType - TransformConstraintTimeline.BEZIER); + translate = this.getBezierValue(time, i, TransformConstraintTimeline.TRANSLATE, curveType + TransformConstraintTimeline.BEZIER_SIZE - TransformConstraintTimeline.BEZIER); + scale = this.getBezierValue(time, i, TransformConstraintTimeline.TRANSLATE, curveType + TransformConstraintTimeline.BEZIER_SIZE * 2 - TransformConstraintTimeline.BEZIER); + shear = this.getBezierValue(time, i, TransformConstraintTimeline.TRANSLATE, curveType + TransformConstraintTimeline.BEZIER_SIZE * 3 - TransformConstraintTimeline.BEZIER); + } + if (blend == MixBlend.setup) { + var data = constraint.data; + constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; + constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha; + constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha; + constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + constraint.scaleMix += (scale - constraint.scaleMix) * alpha; + constraint.shearMix += (shear - constraint.shearMix) * alpha; + } + }; + TransformConstraintTimeline.ENTRIES = 5; + TransformConstraintTimeline.ROTATE = 1; + TransformConstraintTimeline.TRANSLATE = 2; + TransformConstraintTimeline.SCALE = 3; + TransformConstraintTimeline.SHEAR = 4; + return TransformConstraintTimeline; + }(CurveTimeline)); + spine.TransformConstraintTimeline = TransformConstraintTimeline; + var PathConstraintPositionTimeline = (function (_super) { + __extends(PathConstraintPositionTimeline, _super); + function PathConstraintPositionTimeline(frameCount, bezierCount, pathConstraintIndex) { + var _this = _super.call(this, frameCount, bezierCount, [ + Property.pathConstraintPosition + "|" + pathConstraintIndex + ]) || this; + _this.pathConstraintIndex = pathConstraintIndex; + return _this; + } + PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) { + frameIndex *= PathConstraintPositionTimeline.ENTRIES; + this.frames[frameIndex] = time; + this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value; + }; + PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (!constraint.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + constraint.position = constraint.data.position; + return; + case MixBlend.first: + constraint.position += (constraint.data.position - constraint.position) * alpha; + } + return; + } + var position = this.getCurveValue(time); + if (blend == MixBlend.setup) + constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; + else + constraint.position += (position - constraint.position) * alpha; + }; + return PathConstraintPositionTimeline; + }(CurveTimeline1)); + spine.PathConstraintPositionTimeline = PathConstraintPositionTimeline; + var PathConstraintSpacingTimeline = (function (_super) { + __extends(PathConstraintSpacingTimeline, _super); + function PathConstraintSpacingTimeline(frameCount, bezierCount, pathConstraintIndex) { + var _this = _super.call(this, frameCount, bezierCount, [ + Property.pathConstraintSpacing + "|" + pathConstraintIndex + ]) || this; + _this.pathConstraintIndex = 0; + _this.pathConstraintIndex = pathConstraintIndex; + return _this; + } + PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (!constraint.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + constraint.spacing = constraint.data.spacing; + return; + case MixBlend.first: + constraint.spacing += (constraint.data.spacing - constraint.spacing) * alpha; + } + return; + } + var spacing = this.getCurveValue(time); + if (blend == MixBlend.setup) + constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; + else + constraint.spacing += (spacing - constraint.spacing) * alpha; + }; + return PathConstraintSpacingTimeline; + }(CurveTimeline1)); + spine.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline; + var PathConstraintMixTimeline = (function (_super) { + __extends(PathConstraintMixTimeline, _super); + function PathConstraintMixTimeline(frameCount, bezierCount, pathConstraintIndex) { + var _this = _super.call(this, frameCount, bezierCount, [ + Property.pathConstraintMix + "|" + pathConstraintIndex + ]) || this; + _this.pathConstraintIndex = 0; + _this.pathConstraintIndex = pathConstraintIndex; + return _this; + } + PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + var frames = this.frames; + var constraint = skeleton.pathConstraints[this.pathConstraintIndex]; + if (!constraint.active) + return; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + constraint.rotateMix = constraint.data.rotateMix; + constraint.translateMix = constraint.data.translateMix; + return; + case MixBlend.first: + constraint.rotateMix += (constraint.data.rotateMix - constraint.rotateMix) * alpha; + constraint.translateMix += (constraint.data.translateMix - constraint.translateMix) * alpha; + } + return; + } + var rotate = 0, translate = 0; + var i = Animation.search2(frames, time, PathConstraintMixTimeline.ENTRIES); + var curveType = this.curves[i / PathConstraintMixTimeline.ENTRIES]; + switch (curveType) { + case PathConstraintMixTimeline.LINEAR: + var before = frames[i]; + rotate = frames[i + PathConstraintMixTimeline.VALUE1]; + translate = frames[i + PathConstraintMixTimeline.VALUE2]; + var t = (time - before) / (frames[i + PathConstraintMixTimeline.ENTRIES] - before); + rotate += (frames[i + PathConstraintMixTimeline.ENTRIES + PathConstraintMixTimeline.VALUE1] - rotate) * t; + translate += (frames[i + PathConstraintMixTimeline.ENTRIES + PathConstraintMixTimeline.VALUE2] - translate) * t; + break; + case PathConstraintMixTimeline.STEPPED: + rotate = frames[i + PathConstraintMixTimeline.VALUE1]; + translate = frames[i + PathConstraintMixTimeline.VALUE2]; + break; + default: + rotate = this.getBezierValue(time, i, PathConstraintMixTimeline.VALUE1, curveType - PathConstraintMixTimeline.BEZIER); + translate = this.getBezierValue(time, i, PathConstraintMixTimeline.VALUE2, curveType + PathConstraintMixTimeline.BEZIER_SIZE - PathConstraintMixTimeline.BEZIER); + } + if (blend == MixBlend.setup) { + constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha; + constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha; + } + else { + constraint.rotateMix += (rotate - constraint.rotateMix) * alpha; + constraint.translateMix += (translate - constraint.translateMix) * alpha; + } + }; + return PathConstraintMixTimeline; + }(CurveTimeline2)); + spine.PathConstraintMixTimeline = PathConstraintMixTimeline; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationState = (function () { - function AnimationState(data) { - this.tracks = new Array(); - this.timeScale = 1; - this.unkeyedState = 0; - this.events = new Array(); - this.listeners = new Array(); - this.queue = new EventQueue(this); - this.propertyIDs = new spine.IntSet(); - this.animationsChanged = false; - this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); - this.data = data; - } - AnimationState.prototype.update = function (delta) { - delta *= this.timeScale; - var tracks = this.tracks; - for (var i = 0, n = tracks.length; i < n; i++) { - var current = tracks[i]; - if (current == null) - continue; - current.animationLast = current.nextAnimationLast; - current.trackLast = current.nextTrackLast; - var currentDelta = delta * current.timeScale; - if (current.delay > 0) { - current.delay -= currentDelta; - if (current.delay > 0) - continue; - currentDelta = -current.delay; - current.delay = 0; - } - var next = current.next; - if (next != null) { - var nextTime = current.trackLast - next.delay; - if (nextTime >= 0) { - next.delay = 0; - next.trackTime += current.timeScale == 0 ? 0 : (nextTime / current.timeScale + delta) * next.timeScale; - current.trackTime += currentDelta; - this.setCurrent(i, next, true); - while (next.mixingFrom != null) { - next.mixTime += delta; - next = next.mixingFrom; - } - continue; - } - } - else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { - tracks[i] = null; - this.queue.end(current); - this.disposeNext(current); - continue; - } - if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { - var from = current.mixingFrom; - current.mixingFrom = null; - if (from != null) - from.mixingTo = null; - while (from != null) { - this.queue.end(from); - from = from.mixingFrom; - } - } - current.trackTime += currentDelta; - } - this.queue.drain(); - }; - AnimationState.prototype.updateMixingFrom = function (to, delta) { - var from = to.mixingFrom; - if (from == null) - return true; - var finished = this.updateMixingFrom(from, delta); - from.animationLast = from.nextAnimationLast; - from.trackLast = from.nextTrackLast; - if (to.mixTime > 0 && to.mixTime >= to.mixDuration) { - if (from.totalAlpha == 0 || to.mixDuration == 0) { - to.mixingFrom = from.mixingFrom; - if (from.mixingFrom != null) - from.mixingFrom.mixingTo = to; - to.interruptAlpha = from.interruptAlpha; - this.queue.end(from); - } - return finished; - } - from.trackTime += delta * from.timeScale; - to.mixTime += delta; - return false; - }; - AnimationState.prototype.apply = function (skeleton) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - if (this.animationsChanged) - this._animationsChanged(); - var events = this.events; - var tracks = this.tracks; - var applied = false; - for (var i_16 = 0, n_1 = tracks.length; i_16 < n_1; i_16++) { - var current = tracks[i_16]; - if (current == null || current.delay > 0) - continue; - applied = true; - var blend = i_16 == 0 ? spine.MixBlend.first : current.mixBlend; - var mix = current.alpha; - if (current.mixingFrom != null) - mix *= this.applyMixingFrom(current, skeleton, blend); - else if (current.trackTime >= current.trackEnd && current.next == null) - mix = 0; - var animationLast = current.animationLast, animationTime = current.getAnimationTime(); - var timelineCount = current.animation.timelines.length; - var timelines = current.animation.timelines; - if ((i_16 == 0 && mix == 1) || blend == spine.MixBlend.add) { - for (var ii = 0; ii < timelineCount; ii++) { - spine.Utils.webkit602BugfixHelper(mix, blend); - var timeline = timelines[ii]; - if (timeline instanceof spine.AttachmentTimeline) - this.applyAttachmentTimeline(timeline, skeleton, animationTime, blend, true); - else - timeline.apply(skeleton, animationLast, animationTime, events, mix, blend, spine.MixDirection.mixIn); - } - } - else { - var timelineMode = current.timelineMode; - var firstFrame = current.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = current.timelinesRotation; - for (var ii = 0; ii < timelineCount; ii++) { - var timeline_1 = timelines[ii]; - var timelineBlend = timelineMode[ii] == AnimationState.SUBSEQUENT ? blend : spine.MixBlend.setup; - if (timeline_1 instanceof spine.RotateTimeline) { - this.applyRotateTimeline(timeline_1, skeleton, animationTime, mix, timelineBlend, timelinesRotation, ii << 1, firstFrame); - } - else if (timeline_1 instanceof spine.AttachmentTimeline) { - this.applyAttachmentTimeline(timeline_1, skeleton, animationTime, blend, true); - } - else { - spine.Utils.webkit602BugfixHelper(mix, blend); - timeline_1.apply(skeleton, animationLast, animationTime, events, mix, timelineBlend, spine.MixDirection.mixIn); - } - } - } - this.queueEvents(current, animationTime); - events.length = 0; - current.nextAnimationLast = animationTime; - current.nextTrackLast = current.trackTime; - } - var setupState = this.unkeyedState + AnimationState.SETUP; - var slots = skeleton.slots; - for (var i = 0, n = skeleton.slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.attachmentState == setupState) { - var attachmentName = slot.data.attachmentName; - slot.attachment = (attachmentName == null ? null : skeleton.getAttachment(slot.data.index, attachmentName)); - } - } - this.unkeyedState += 2; - this.queue.drain(); - return applied; - }; - AnimationState.prototype.applyMixingFrom = function (to, skeleton, blend) { - var from = to.mixingFrom; - if (from.mixingFrom != null) - this.applyMixingFrom(from, skeleton, blend); - var mix = 0; - if (to.mixDuration == 0) { - mix = 1; - if (blend == spine.MixBlend.first) - blend = spine.MixBlend.setup; - } - else { - mix = to.mixTime / to.mixDuration; - if (mix > 1) - mix = 1; - if (blend != spine.MixBlend.first) - blend = from.mixBlend; - } - var events = mix < from.eventThreshold ? this.events : null; - var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; - var animationLast = from.animationLast, animationTime = from.getAnimationTime(); - var timelineCount = from.animation.timelines.length; - var timelines = from.animation.timelines; - var alphaHold = from.alpha * to.interruptAlpha, alphaMix = alphaHold * (1 - mix); - if (blend == spine.MixBlend.add) { - for (var i = 0; i < timelineCount; i++) - timelines[i].apply(skeleton, animationLast, animationTime, events, alphaMix, blend, spine.MixDirection.mixOut); - } - else { - var timelineMode = from.timelineMode; - var timelineHoldMix = from.timelineHoldMix; - var firstFrame = from.timelinesRotation.length == 0; - if (firstFrame) - spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); - var timelinesRotation = from.timelinesRotation; - from.totalAlpha = 0; - for (var i = 0; i < timelineCount; i++) { - var timeline = timelines[i]; - var direction = spine.MixDirection.mixOut; - var timelineBlend = void 0; - var alpha = 0; - switch (timelineMode[i]) { - case AnimationState.SUBSEQUENT: - if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) - continue; - timelineBlend = blend; - alpha = alphaMix; - break; - case AnimationState.FIRST: - timelineBlend = spine.MixBlend.setup; - alpha = alphaMix; - break; - case AnimationState.HOLD_SUBSEQUENT: - timelineBlend = blend; - alpha = alphaHold; - break; - case AnimationState.HOLD_FIRST: - timelineBlend = spine.MixBlend.setup; - alpha = alphaHold; - break; - default: - timelineBlend = spine.MixBlend.setup; - var holdMix = timelineHoldMix[i]; - alpha = alphaHold * Math.max(0, 1 - holdMix.mixTime / holdMix.mixDuration); - break; - } - from.totalAlpha += alpha; - if (timeline instanceof spine.RotateTimeline) - this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, timelineBlend, timelinesRotation, i << 1, firstFrame); - else if (timeline instanceof spine.AttachmentTimeline) - this.applyAttachmentTimeline(timeline, skeleton, animationTime, timelineBlend, attachments); - else { - spine.Utils.webkit602BugfixHelper(alpha, blend); - if (drawOrder && timeline instanceof spine.DrawOrderTimeline && timelineBlend == spine.MixBlend.setup) - direction = spine.MixDirection.mixIn; - timeline.apply(skeleton, animationLast, animationTime, events, alpha, timelineBlend, direction); - } - } - } - if (to.mixDuration > 0) - this.queueEvents(from, animationTime); - this.events.length = 0; - from.nextAnimationLast = animationTime; - from.nextTrackLast = from.trackTime; - return mix; - }; - AnimationState.prototype.applyAttachmentTimeline = function (timeline, skeleton, time, blend, attachments) { - var slot = skeleton.slots[timeline.slotIndex]; - if (!slot.bone.active) - return; - var frames = timeline.frames; - if (time < frames[0]) { - if (blend == spine.MixBlend.setup || blend == spine.MixBlend.first) - this.setAttachment(skeleton, slot, slot.data.attachmentName, attachments); - } - else { - var frameIndex; - if (time >= frames[frames.length - 1]) - frameIndex = frames.length - 1; - else - frameIndex = spine.Animation.binarySearch(frames, time) - 1; - this.setAttachment(skeleton, slot, timeline.attachmentNames[frameIndex], attachments); - } - if (slot.attachmentState <= this.unkeyedState) - slot.attachmentState = this.unkeyedState + AnimationState.SETUP; - }; - AnimationState.prototype.setAttachment = function (skeleton, slot, attachmentName, attachments) { - slot.attachment = attachmentName == null ? null : skeleton.getAttachment(slot.data.index, attachmentName); - if (attachments) - slot.attachmentState = this.unkeyedState + AnimationState.CURRENT; - }; - AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, blend, timelinesRotation, i, firstFrame) { - if (firstFrame) - timelinesRotation[i] = 0; - if (alpha == 1) { - timeline.apply(skeleton, 0, time, null, 1, blend, spine.MixDirection.mixIn); - return; - } - var rotateTimeline = timeline; - var frames = rotateTimeline.frames; - var bone = skeleton.bones[rotateTimeline.boneIndex]; - if (!bone.active) - return; - var r1 = 0, r2 = 0; - if (time < frames[0]) { - switch (blend) { - case spine.MixBlend.setup: - bone.rotation = bone.data.rotation; - default: - return; - case spine.MixBlend.first: - r1 = bone.rotation; - r2 = bone.data.rotation; - } - } - else { - r1 = blend == spine.MixBlend.setup ? bone.data.rotation : bone.rotation; - if (time >= frames[frames.length - spine.RotateTimeline.ENTRIES]) - r2 = bone.data.rotation + frames[frames.length + spine.RotateTimeline.PREV_ROTATION]; - else { - var frame = spine.Animation.binarySearch(frames, time, spine.RotateTimeline.ENTRIES); - var prevRotation = frames[frame + spine.RotateTimeline.PREV_ROTATION]; - var frameTime = frames[frame]; - var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + spine.RotateTimeline.PREV_TIME] - frameTime)); - r2 = frames[frame + spine.RotateTimeline.ROTATION] - prevRotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - r2 = prevRotation + r2 * percent + bone.data.rotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - } - } - var total = 0, diff = r2 - r1; - diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; - if (diff == 0) { - total = timelinesRotation[i]; - } - else { - var lastTotal = 0, lastDiff = 0; - if (firstFrame) { - lastTotal = 0; - lastDiff = diff; - } - else { - lastTotal = timelinesRotation[i]; - lastDiff = timelinesRotation[i + 1]; - } - var current = diff > 0, dir = lastTotal >= 0; - if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { - if (Math.abs(lastTotal) > 180) - lastTotal += 360 * spine.MathUtils.signum(lastTotal); - dir = current; - } - total = diff + lastTotal - lastTotal % 360; - if (dir != current) - total += 360 * spine.MathUtils.signum(lastTotal); - timelinesRotation[i] = total; - } - timelinesRotation[i + 1] = diff; - r1 += total * alpha; - bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; - }; - AnimationState.prototype.queueEvents = function (entry, animationTime) { - var animationStart = entry.animationStart, animationEnd = entry.animationEnd; - var duration = animationEnd - animationStart; - var trackLastWrapped = entry.trackLast % duration; - var events = this.events; - var i = 0, n = events.length; - for (; i < n; i++) { - var event_1 = events[i]; - if (event_1.time < trackLastWrapped) - break; - if (event_1.time > animationEnd) - continue; - this.queue.event(entry, event_1); - } - var complete = false; - if (entry.loop) - complete = duration == 0 || trackLastWrapped > entry.trackTime % duration; - else - complete = animationTime >= animationEnd && entry.animationLast < animationEnd; - if (complete) - this.queue.complete(entry); - for (; i < n; i++) { - var event_2 = events[i]; - if (event_2.time < animationStart) - continue; - this.queue.event(entry, events[i]); - } - }; - AnimationState.prototype.clearTracks = function () { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) - this.clearTrack(i); - this.tracks.length = 0; - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.clearTrack = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return; - var current = this.tracks[trackIndex]; - if (current == null) - return; - this.queue.end(current); - this.disposeNext(current); - var entry = current; - while (true) { - var from = entry.mixingFrom; - if (from == null) - break; - this.queue.end(from); - entry.mixingFrom = null; - entry.mixingTo = null; - entry = from; - } - this.tracks[current.trackIndex] = null; - this.queue.drain(); - }; - AnimationState.prototype.setCurrent = function (index, current, interrupt) { - var from = this.expandToIndex(index); - this.tracks[index] = current; - if (from != null) { - if (interrupt) - this.queue.interrupt(from); - current.mixingFrom = from; - from.mixingTo = current; - current.mixTime = 0; - if (from.mixingFrom != null && from.mixDuration > 0) - current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); - from.timelinesRotation.length = 0; - } - this.queue.start(current); - }; - AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.setAnimationWith(trackIndex, animation, loop); - }; - AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { - if (animation == null) - throw new Error("animation cannot be null."); - var interrupt = true; - var current = this.expandToIndex(trackIndex); - if (current != null) { - if (current.nextTrackLast == -1) { - this.tracks[trackIndex] = current.mixingFrom; - this.queue.interrupt(current); - this.queue.end(current); - this.disposeNext(current); - current = current.mixingFrom; - interrupt = false; - } - else - this.disposeNext(current); - } - var entry = this.trackEntry(trackIndex, animation, loop, current); - this.setCurrent(trackIndex, entry, interrupt); - this.queue.drain(); - return entry; - }; - AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { - var animation = this.data.skeletonData.findAnimation(animationName); - if (animation == null) - throw new Error("Animation not found: " + animationName); - return this.addAnimationWith(trackIndex, animation, loop, delay); - }; - AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { - if (animation == null) - throw new Error("animation cannot be null."); - var last = this.expandToIndex(trackIndex); - if (last != null) { - while (last.next != null) - last = last.next; - } - var entry = this.trackEntry(trackIndex, animation, loop, last); - if (last == null) { - this.setCurrent(trackIndex, entry, true); - this.queue.drain(); - } - else { - last.next = entry; - if (delay <= 0) { - var duration = last.animationEnd - last.animationStart; - if (duration != 0) { - if (last.loop) - delay += duration * (1 + ((last.trackTime / duration) | 0)); - else - delay += Math.max(duration, last.trackTime); - delay -= this.data.getMix(last.animation, animation); - } - else - delay = last.trackTime; - } - } - entry.delay = delay; - return entry; - }; - AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { - var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { - if (delay <= 0) - delay -= mixDuration; - var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); - entry.mixDuration = mixDuration; - entry.trackEnd = mixDuration; - return entry; - }; - AnimationState.prototype.setEmptyAnimations = function (mixDuration) { - var oldDrainDisabled = this.queue.drainDisabled; - this.queue.drainDisabled = true; - for (var i = 0, n = this.tracks.length; i < n; i++) { - var current = this.tracks[i]; - if (current != null) - this.setEmptyAnimation(current.trackIndex, mixDuration); - } - this.queue.drainDisabled = oldDrainDisabled; - this.queue.drain(); - }; - AnimationState.prototype.expandToIndex = function (index) { - if (index < this.tracks.length) - return this.tracks[index]; - spine.Utils.ensureArrayCapacity(this.tracks, index + 1, null); - this.tracks.length = index + 1; - return null; - }; - AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { - var entry = this.trackEntryPool.obtain(); - entry.trackIndex = trackIndex; - entry.animation = animation; - entry.loop = loop; - entry.holdPrevious = false; - entry.eventThreshold = 0; - entry.attachmentThreshold = 0; - entry.drawOrderThreshold = 0; - entry.animationStart = 0; - entry.animationEnd = animation.duration; - entry.animationLast = -1; - entry.nextAnimationLast = -1; - entry.delay = 0; - entry.trackTime = 0; - entry.trackLast = -1; - entry.nextTrackLast = -1; - entry.trackEnd = Number.MAX_VALUE; - entry.timeScale = 1; - entry.alpha = 1; - entry.interruptAlpha = 1; - entry.mixTime = 0; - entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); - entry.mixBlend = spine.MixBlend.replace; - return entry; - }; - AnimationState.prototype.disposeNext = function (entry) { - var next = entry.next; - while (next != null) { - this.queue.dispose(next); - next = next.next; - } - entry.next = null; - }; - AnimationState.prototype._animationsChanged = function () { - this.animationsChanged = false; - this.propertyIDs.clear(); - for (var i = 0, n = this.tracks.length; i < n; i++) { - var entry = this.tracks[i]; - if (entry == null) - continue; - while (entry.mixingFrom != null) - entry = entry.mixingFrom; - do { - if (entry.mixingFrom == null || entry.mixBlend != spine.MixBlend.add) - this.computeHold(entry); - entry = entry.mixingTo; - } while (entry != null); - } - }; - AnimationState.prototype.computeHold = function (entry) { - var to = entry.mixingTo; - var timelines = entry.animation.timelines; - var timelinesCount = entry.animation.timelines.length; - var timelineMode = spine.Utils.setArraySize(entry.timelineMode, timelinesCount); - entry.timelineHoldMix.length = 0; - var timelineDipMix = spine.Utils.setArraySize(entry.timelineHoldMix, timelinesCount); - var propertyIDs = this.propertyIDs; - if (to != null && to.holdPrevious) { - for (var i = 0; i < timelinesCount; i++) { - timelineMode[i] = propertyIDs.add(timelines[i].getPropertyId()) ? AnimationState.HOLD_FIRST : AnimationState.HOLD_SUBSEQUENT; - } - return; - } - outer: for (var i = 0; i < timelinesCount; i++) { - var timeline = timelines[i]; - var id = timeline.getPropertyId(); - if (!propertyIDs.add(id)) - timelineMode[i] = AnimationState.SUBSEQUENT; - else if (to == null || timeline instanceof spine.AttachmentTimeline || timeline instanceof spine.DrawOrderTimeline - || timeline instanceof spine.EventTimeline || !to.animation.hasTimeline(id)) { - timelineMode[i] = AnimationState.FIRST; - } - else { - for (var next = to.mixingTo; next != null; next = next.mixingTo) { - if (next.animation.hasTimeline(id)) - continue; - if (entry.mixDuration > 0) { - timelineMode[i] = AnimationState.HOLD_MIX; - timelineDipMix[i] = next; - continue outer; - } - break; - } - timelineMode[i] = AnimationState.HOLD_FIRST; - } - } - }; - AnimationState.prototype.getCurrent = function (trackIndex) { - if (trackIndex >= this.tracks.length) - return null; - return this.tracks[trackIndex]; - }; - AnimationState.prototype.addListener = function (listener) { - if (listener == null) - throw new Error("listener cannot be null."); - this.listeners.push(listener); - }; - AnimationState.prototype.removeListener = function (listener) { - var index = this.listeners.indexOf(listener); - if (index >= 0) - this.listeners.splice(index, 1); - }; - AnimationState.prototype.clearListeners = function () { - this.listeners.length = 0; - }; - AnimationState.prototype.clearListenerNotifications = function () { - this.queue.clear(); - }; - AnimationState.emptyAnimation = new spine.Animation("", [], 0); - AnimationState.SUBSEQUENT = 0; - AnimationState.FIRST = 1; - AnimationState.HOLD_SUBSEQUENT = 2; - AnimationState.HOLD_FIRST = 3; - AnimationState.HOLD_MIX = 4; - AnimationState.SETUP = 1; - AnimationState.CURRENT = 2; - return AnimationState; - }()); - spine.AnimationState = AnimationState; - var TrackEntry = (function () { - function TrackEntry() { - this.mixBlend = spine.MixBlend.replace; - this.timelineMode = new Array(); - this.timelineHoldMix = new Array(); - this.timelinesRotation = new Array(); - } - TrackEntry.prototype.reset = function () { - this.next = null; - this.mixingFrom = null; - this.mixingTo = null; - this.animation = null; - this.listener = null; - this.timelineMode.length = 0; - this.timelineHoldMix.length = 0; - this.timelinesRotation.length = 0; - }; - TrackEntry.prototype.getAnimationTime = function () { - if (this.loop) { - var duration = this.animationEnd - this.animationStart; - if (duration == 0) - return this.animationStart; - return (this.trackTime % duration) + this.animationStart; - } - return Math.min(this.trackTime + this.animationStart, this.animationEnd); - }; - TrackEntry.prototype.setAnimationLast = function (animationLast) { - this.animationLast = animationLast; - this.nextAnimationLast = animationLast; - }; - TrackEntry.prototype.isComplete = function () { - return this.trackTime >= this.animationEnd - this.animationStart; - }; - TrackEntry.prototype.resetRotationDirections = function () { - this.timelinesRotation.length = 0; - }; - return TrackEntry; - }()); - spine.TrackEntry = TrackEntry; - var EventQueue = (function () { - function EventQueue(animState) { - this.objects = []; - this.drainDisabled = false; - this.animState = animState; - } - EventQueue.prototype.start = function (entry) { - this.objects.push(EventType.start); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.interrupt = function (entry) { - this.objects.push(EventType.interrupt); - this.objects.push(entry); - }; - EventQueue.prototype.end = function (entry) { - this.objects.push(EventType.end); - this.objects.push(entry); - this.animState.animationsChanged = true; - }; - EventQueue.prototype.dispose = function (entry) { - this.objects.push(EventType.dispose); - this.objects.push(entry); - }; - EventQueue.prototype.complete = function (entry) { - this.objects.push(EventType.complete); - this.objects.push(entry); - }; - EventQueue.prototype.event = function (entry, event) { - this.objects.push(EventType.event); - this.objects.push(entry); - this.objects.push(event); - }; - EventQueue.prototype.drain = function () { - if (this.drainDisabled) - return; - this.drainDisabled = true; - var objects = this.objects; - var listeners = this.animState.listeners; - for (var i = 0; i < objects.length; i += 2) { - var type = objects[i]; - var entry = objects[i + 1]; - switch (type) { - case EventType.start: - if (entry.listener != null && entry.listener.start) - entry.listener.start(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].start) - listeners[ii].start(entry); - break; - case EventType.interrupt: - if (entry.listener != null && entry.listener.interrupt) - entry.listener.interrupt(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].interrupt) - listeners[ii].interrupt(entry); - break; - case EventType.end: - if (entry.listener != null && entry.listener.end) - entry.listener.end(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].end) - listeners[ii].end(entry); - case EventType.dispose: - if (entry.listener != null && entry.listener.dispose) - entry.listener.dispose(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].dispose) - listeners[ii].dispose(entry); - this.animState.trackEntryPool.free(entry); - break; - case EventType.complete: - if (entry.listener != null && entry.listener.complete) - entry.listener.complete(entry); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].complete) - listeners[ii].complete(entry); - break; - case EventType.event: - var event_3 = objects[i++ + 2]; - if (entry.listener != null && entry.listener.event) - entry.listener.event(entry, event_3); - for (var ii = 0; ii < listeners.length; ii++) - if (listeners[ii].event) - listeners[ii].event(entry, event_3); - break; - } - } - this.clear(); - this.drainDisabled = false; - }; - EventQueue.prototype.clear = function () { - this.objects.length = 0; - }; - return EventQueue; - }()); - spine.EventQueue = EventQueue; - var EventType; - (function (EventType) { - EventType[EventType["start"] = 0] = "start"; - EventType[EventType["interrupt"] = 1] = "interrupt"; - EventType[EventType["end"] = 2] = "end"; - EventType[EventType["dispose"] = 3] = "dispose"; - EventType[EventType["complete"] = 4] = "complete"; - EventType[EventType["event"] = 5] = "event"; - })(EventType = spine.EventType || (spine.EventType = {})); - var AnimationStateAdapter = (function () { - function AnimationStateAdapter() { - } - AnimationStateAdapter.prototype.start = function (entry) { - }; - AnimationStateAdapter.prototype.interrupt = function (entry) { - }; - AnimationStateAdapter.prototype.end = function (entry) { - }; - AnimationStateAdapter.prototype.dispose = function (entry) { - }; - AnimationStateAdapter.prototype.complete = function (entry) { - }; - AnimationStateAdapter.prototype.event = function (entry, event) { - }; - return AnimationStateAdapter; - }()); - spine.AnimationStateAdapter = AnimationStateAdapter; + var AnimationState = (function () { + function AnimationState(data) { + this.tracks = new Array(); + this.timeScale = 1; + this.unkeyedState = 0; + this.events = new Array(); + this.listeners = new Array(); + this.queue = new EventQueue(this); + this.propertyIDs = new spine.StringSet(); + this.animationsChanged = false; + this.trackEntryPool = new spine.Pool(function () { return new TrackEntry(); }); + this.data = data; + } + AnimationState.emptyAnimation = function () { + if (AnimationState._emptyAnimation == null) + AnimationState._emptyAnimation = new spine.Animation("", [], 0); + return AnimationState._emptyAnimation; + }; + AnimationState.prototype.update = function (delta) { + delta *= this.timeScale; + var tracks = this.tracks; + for (var i = 0, n = tracks.length; i < n; i++) { + var current = tracks[i]; + if (current == null) + continue; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + var currentDelta = delta * current.timeScale; + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) + continue; + currentDelta = -current.delay; + current.delay = 0; + } + var next = current.next; + if (next != null) { + var nextTime = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime += current.timeScale == 0 ? 0 : (nextTime / current.timeScale + delta) * next.timeScale; + current.trackTime += currentDelta; + this.setCurrent(i, next, true); + while (next.mixingFrom != null) { + next.mixTime += delta; + next = next.mixingFrom; + } + continue; + } + } + else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { + tracks[i] = null; + this.queue.end(current); + this.disposeNext(current); + continue; + } + if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) { + var from = current.mixingFrom; + current.mixingFrom = null; + if (from != null) + from.mixingTo = null; + while (from != null) { + this.queue.end(from); + from = from.mixingFrom; + } + } + current.trackTime += currentDelta; + } + this.queue.drain(); + }; + AnimationState.prototype.updateMixingFrom = function (to, delta) { + var from = to.mixingFrom; + if (from == null) + return true; + var finished = this.updateMixingFrom(from, delta); + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + if (to.mixTime > 0 && to.mixTime >= to.mixDuration) { + if (from.totalAlpha == 0 || to.mixDuration == 0) { + to.mixingFrom = from.mixingFrom; + if (from.mixingFrom != null) + from.mixingFrom.mixingTo = to; + to.interruptAlpha = from.interruptAlpha; + this.queue.end(from); + } + return finished; + } + from.trackTime += delta * from.timeScale; + to.mixTime += delta; + return false; + }; + AnimationState.prototype.apply = function (skeleton) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + if (this.animationsChanged) + this._animationsChanged(); + var events = this.events; + var tracks = this.tracks; + var applied = false; + for (var i_16 = 0, n_1 = tracks.length; i_16 < n_1; i_16++) { + var current = tracks[i_16]; + if (current == null || current.delay > 0) + continue; + applied = true; + var blend = i_16 == 0 ? spine.MixBlend.first : current.mixBlend; + var mix = current.alpha; + if (current.mixingFrom != null) + mix *= this.applyMixingFrom(current, skeleton, blend); + else if (current.trackTime >= current.trackEnd && current.next == null) + mix = 0; + var animationLast = current.animationLast, animationTime = current.getAnimationTime(), applyTime = animationTime; + var applyEvents = events; + if (current.reverse) { + applyTime = current.animation.duration - applyTime; + applyEvents = null; + } + var timelineCount = current.animation.timelines.length; + var timelines = current.animation.timelines; + if ((i_16 == 0 && mix == 1) || blend == spine.MixBlend.add) { + for (var ii = 0; ii < timelineCount; ii++) { + spine.Utils.webkit602BugfixHelper(mix, blend); + var timeline = timelines[ii]; + if (timeline instanceof spine.AttachmentTimeline) + this.applyAttachmentTimeline(timeline, skeleton, applyTime, blend, true); + else + timeline.apply(skeleton, animationLast, applyTime, applyEvents, mix, blend, spine.MixDirection.mixIn); + } + } + else { + var timelineMode = current.timelineMode; + var firstFrame = current.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = current.timelinesRotation; + for (var ii = 0; ii < timelineCount; ii++) { + var timeline_1 = timelines[ii]; + var timelineBlend = timelineMode[ii] == AnimationState.SUBSEQUENT ? blend : spine.MixBlend.setup; + if (timeline_1 instanceof spine.RotateTimeline) { + this.applyRotateTimeline(timeline_1, skeleton, applyTime, mix, timelineBlend, timelinesRotation, ii << 1, firstFrame); + } + else if (timeline_1 instanceof spine.AttachmentTimeline) { + this.applyAttachmentTimeline(timeline_1, skeleton, applyTime, blend, true); + } + else { + spine.Utils.webkit602BugfixHelper(mix, blend); + timeline_1.apply(skeleton, animationLast, applyTime, applyEvents, mix, timelineBlend, spine.MixDirection.mixIn); + } + } + } + this.queueEvents(current, animationTime); + events.length = 0; + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + var setupState = this.unkeyedState + AnimationState.SETUP; + var slots = skeleton.slots; + for (var i = 0, n = skeleton.slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.attachmentState == setupState) { + var attachmentName = slot.data.attachmentName; + slot.attachment = (attachmentName == null ? null : skeleton.getAttachment(slot.data.index, attachmentName)); + } + } + this.unkeyedState += 2; + this.queue.drain(); + return applied; + }; + AnimationState.prototype.applyMixingFrom = function (to, skeleton, blend) { + var from = to.mixingFrom; + if (from.mixingFrom != null) + this.applyMixingFrom(from, skeleton, blend); + var mix = 0; + if (to.mixDuration == 0) { + mix = 1; + if (blend == spine.MixBlend.first) + blend = spine.MixBlend.setup; + } + else { + mix = to.mixTime / to.mixDuration; + if (mix > 1) + mix = 1; + if (blend != spine.MixBlend.first) + blend = from.mixBlend; + } + var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; + var timelineCount = from.animation.timelines.length; + var timelines = from.animation.timelines; + var alphaHold = from.alpha * to.interruptAlpha, alphaMix = alphaHold * (1 - mix); + var animationLast = from.animationLast, animationTime = from.getAnimationTime(), applyTime = animationTime; + var events = null; + if (from.reverse) { + applyTime = from.animation.duration - applyTime; + } + else { + if (mix < from.eventThreshold) + events = this.events; + } + if (blend == spine.MixBlend.add) { + for (var i = 0; i < timelineCount; i++) + timelines[i].apply(skeleton, animationLast, applyTime, events, alphaMix, blend, spine.MixDirection.mixOut); + } + else { + var timelineMode = from.timelineMode; + var timelineHoldMix = from.timelineHoldMix; + var firstFrame = from.timelinesRotation.length == 0; + if (firstFrame) + spine.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null); + var timelinesRotation = from.timelinesRotation; + from.totalAlpha = 0; + for (var i = 0; i < timelineCount; i++) { + var timeline = timelines[i]; + var direction = spine.MixDirection.mixOut; + var timelineBlend = void 0; + var alpha = 0; + switch (timelineMode[i]) { + case AnimationState.SUBSEQUENT: + if (!drawOrder && timeline instanceof spine.DrawOrderTimeline) + continue; + timelineBlend = blend; + alpha = alphaMix; + break; + case AnimationState.FIRST: + timelineBlend = spine.MixBlend.setup; + alpha = alphaMix; + break; + case AnimationState.HOLD_SUBSEQUENT: + timelineBlend = blend; + alpha = alphaHold; + break; + case AnimationState.HOLD_FIRST: + timelineBlend = spine.MixBlend.setup; + alpha = alphaHold; + break; + default: + timelineBlend = spine.MixBlend.setup; + var holdMix = timelineHoldMix[i]; + alpha = alphaHold * Math.max(0, 1 - holdMix.mixTime / holdMix.mixDuration); + break; + } + from.totalAlpha += alpha; + if (timeline instanceof spine.RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, applyTime, alpha, timelineBlend, timelinesRotation, i << 1, firstFrame); + else if (timeline instanceof spine.AttachmentTimeline) + this.applyAttachmentTimeline(timeline, skeleton, applyTime, timelineBlend, attachments); + else { + spine.Utils.webkit602BugfixHelper(alpha, blend); + if (drawOrder && timeline instanceof spine.DrawOrderTimeline && timelineBlend == spine.MixBlend.setup) + direction = spine.MixDirection.mixIn; + timeline.apply(skeleton, animationLast, applyTime, events, alpha, timelineBlend, direction); + } + } + } + if (to.mixDuration > 0) + this.queueEvents(from, animationTime); + this.events.length = 0; + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + }; + AnimationState.prototype.applyAttachmentTimeline = function (timeline, skeleton, time, blend, attachments) { + var slot = skeleton.slots[timeline.slotIndex]; + if (!slot.bone.active) + return; + var frames = timeline.frames; + if (time < frames[0]) { + if (blend == spine.MixBlend.setup || blend == spine.MixBlend.first) + this.setAttachment(skeleton, slot, slot.data.attachmentName, attachments); + } + else + this.setAttachment(skeleton, slot, timeline.attachmentNames[spine.Animation.search(frames, time)], attachments); + if (slot.attachmentState <= this.unkeyedState) + slot.attachmentState = this.unkeyedState + AnimationState.SETUP; + }; + AnimationState.prototype.setAttachment = function (skeleton, slot, attachmentName, attachments) { + slot.attachment = attachmentName == null ? null : skeleton.getAttachment(slot.data.index, attachmentName); + if (attachments) + slot.attachmentState = this.unkeyedState + AnimationState.CURRENT; + }; + AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, blend, timelinesRotation, i, firstFrame) { + if (firstFrame) + timelinesRotation[i] = 0; + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, blend, spine.MixDirection.mixIn); + return; + } + var rotateTimeline = timeline; + var frames = rotateTimeline.frames; + var bone = skeleton.bones[rotateTimeline.boneIndex]; + if (!bone.active) + return; + var r1 = 0, r2 = 0; + if (time < frames[0]) { + switch (blend) { + case spine.MixBlend.setup: + bone.rotation = bone.data.rotation; + default: + return; + case spine.MixBlend.first: + r1 = bone.rotation; + r2 = bone.data.rotation; + } + } + else { + r1 = blend == spine.MixBlend.setup ? bone.data.rotation : bone.rotation; + r2 = bone.data.rotation + rotateTimeline.getCurveValue(time); + } + var total = 0, diff = r2 - r1; + diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360; + if (diff == 0) { + total = timelinesRotation[i]; + } + else { + var lastTotal = 0, lastDiff = 0; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } + else { + lastTotal = timelinesRotation[i]; + lastDiff = timelinesRotation[i + 1]; + } + var current = diff > 0, dir = lastTotal >= 0; + if (spine.MathUtils.signum(lastDiff) != spine.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) { + if (Math.abs(lastTotal) > 180) + lastTotal += 360 * spine.MathUtils.signum(lastTotal); + dir = current; + } + total = diff + lastTotal - lastTotal % 360; + if (dir != current) + total += 360 * spine.MathUtils.signum(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + bone.rotation = r1 + total * alpha; + }; + AnimationState.prototype.queueEvents = function (entry, animationTime) { + var animationStart = entry.animationStart, animationEnd = entry.animationEnd; + var duration = animationEnd - animationStart; + var trackLastWrapped = entry.trackLast % duration; + var events = this.events; + var i = 0, n = events.length; + for (; i < n; i++) { + var event_1 = events[i]; + if (event_1.time < trackLastWrapped) + break; + if (event_1.time > animationEnd) + continue; + this.queue.event(entry, event_1); + } + var complete = false; + if (entry.loop) + complete = duration == 0 || trackLastWrapped > entry.trackTime % duration; + else + complete = animationTime >= animationEnd && entry.animationLast < animationEnd; + if (complete) + this.queue.complete(entry); + for (; i < n; i++) { + var event_2 = events[i]; + if (event_2.time < animationStart) + continue; + this.queue.event(entry, events[i]); + } + }; + AnimationState.prototype.clearTracks = function () { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) + this.clearTrack(i); + this.tracks.length = 0; + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.clearTrack = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return; + var current = this.tracks[trackIndex]; + if (current == null) + return; + this.queue.end(current); + this.disposeNext(current); + var entry = current; + while (true) { + var from = entry.mixingFrom; + if (from == null) + break; + this.queue.end(from); + entry.mixingFrom = null; + entry.mixingTo = null; + entry = from; + } + this.tracks[current.trackIndex] = null; + this.queue.drain(); + }; + AnimationState.prototype.clearNext = function (entry) { + this.disposeNext(entry.next); + }; + AnimationState.prototype.setCurrent = function (index, current, interrupt) { + var from = this.expandToIndex(index); + this.tracks[index] = current; + current.previous = null; + if (from != null) { + if (interrupt) + this.queue.interrupt(from); + current.mixingFrom = from; + from.mixingTo = current; + current.mixTime = 0; + if (from.mixingFrom != null && from.mixDuration > 0) + current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); + from.timelinesRotation.length = 0; + } + this.queue.start(current); + }; + AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.setAnimationWith(trackIndex, animation, loop); + }; + AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) { + if (animation == null) + throw new Error("animation cannot be null."); + var interrupt = true; + var current = this.expandToIndex(trackIndex); + if (current != null) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = current.mixingFrom; + this.queue.interrupt(current); + this.queue.end(current); + this.disposeNext(current); + current = current.mixingFrom; + interrupt = false; + } + else + this.disposeNext(current); + } + var entry = this.trackEntry(trackIndex, animation, loop, current); + this.setCurrent(trackIndex, entry, interrupt); + this.queue.drain(); + return entry; + }; + AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) { + var animation = this.data.skeletonData.findAnimation(animationName); + if (animation == null) + throw new Error("Animation not found: " + animationName); + return this.addAnimationWith(trackIndex, animation, loop, delay); + }; + AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) { + if (animation == null) + throw new Error("animation cannot be null."); + var last = this.expandToIndex(trackIndex); + if (last != null) { + while (last.next != null) + last = last.next; + } + var entry = this.trackEntry(trackIndex, animation, loop, last); + if (last == null) { + this.setCurrent(trackIndex, entry, true); + this.queue.drain(); + } + else { + last.next = entry; + entry.previous = last; + if (delay <= 0) + delay += last.getTrackComplete() - entry.mixDuration; + } + entry.delay = delay; + return entry; + }; + AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) { + var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation(), false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + }; + AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) { + var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation(), false, delay <= 0 ? 1 : delay); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + if (delay <= 0 && entry.previous != null) + entry.delay = entry.previous.getTrackComplete() - entry.mixDuration; + return entry; + }; + AnimationState.prototype.setEmptyAnimations = function (mixDuration) { + var oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (var i = 0, n = this.tracks.length; i < n; i++) { + var current = this.tracks[i]; + if (current != null) + this.setEmptyAnimation(current.trackIndex, mixDuration); + } + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + }; + AnimationState.prototype.expandToIndex = function (index) { + if (index < this.tracks.length) + return this.tracks[index]; + spine.Utils.ensureArrayCapacity(this.tracks, index + 1, null); + this.tracks.length = index + 1; + return null; + }; + AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) { + var entry = this.trackEntryPool.obtain(); + entry.trackIndex = trackIndex; + entry.animation = animation; + entry.loop = loop; + entry.holdPrevious = false; + entry.eventThreshold = 0; + entry.attachmentThreshold = 0; + entry.drawOrderThreshold = 0; + entry.animationStart = 0; + entry.animationEnd = animation.duration; + entry.animationLast = -1; + entry.nextAnimationLast = -1; + entry.delay = 0; + entry.trackTime = 0; + entry.trackLast = -1; + entry.nextTrackLast = -1; + entry.trackEnd = Number.MAX_VALUE; + entry.timeScale = 1; + entry.alpha = 1; + entry.interruptAlpha = 1; + entry.mixTime = 0; + entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation); + entry.mixBlend = spine.MixBlend.replace; + return entry; + }; + AnimationState.prototype.disposeNext = function (entry) { + var next = entry.next; + while (next != null) { + this.queue.dispose(next); + next = next.next; + } + entry.next = null; + }; + AnimationState.prototype._animationsChanged = function () { + this.animationsChanged = false; + this.propertyIDs.clear(); + for (var i = 0, n = this.tracks.length; i < n; i++) { + var entry = this.tracks[i]; + if (entry == null) + continue; + while (entry.mixingFrom != null) + entry = entry.mixingFrom; + do { + if (entry.mixingFrom == null || entry.mixBlend != spine.MixBlend.add) + this.computeHold(entry); + entry = entry.mixingTo; + } while (entry != null); + } + }; + AnimationState.prototype.computeHold = function (entry) { + var to = entry.mixingTo; + var timelines = entry.animation.timelines; + var timelinesCount = entry.animation.timelines.length; + var timelineMode = spine.Utils.setArraySize(entry.timelineMode, timelinesCount); + entry.timelineHoldMix.length = 0; + var timelineDipMix = spine.Utils.setArraySize(entry.timelineHoldMix, timelinesCount); + var propertyIDs = this.propertyIDs; + if (to != null && to.holdPrevious) { + for (var i = 0; i < timelinesCount; i++) { + timelineMode[i] = propertyIDs.addAll(timelines[i].getPropertyIds()) ? AnimationState.HOLD_FIRST : AnimationState.HOLD_SUBSEQUENT; + } + return; + } + outer: for (var i = 0; i < timelinesCount; i++) { + var timeline = timelines[i]; + var ids = timeline.getPropertyIds(); + if (!propertyIDs.addAll(ids)) + timelineMode[i] = AnimationState.SUBSEQUENT; + else if (to == null || timeline instanceof spine.AttachmentTimeline || timeline instanceof spine.DrawOrderTimeline + || timeline instanceof spine.EventTimeline || !to.animation.hasTimeline(ids)) { + timelineMode[i] = AnimationState.FIRST; + } + else { + for (var next = to.mixingTo; next != null; next = next.mixingTo) { + if (next.animation.hasTimeline(ids)) + continue; + if (entry.mixDuration > 0) { + timelineMode[i] = AnimationState.HOLD_MIX; + timelineDipMix[i] = next; + continue outer; + } + break; + } + timelineMode[i] = AnimationState.HOLD_FIRST; + } + } + }; + AnimationState.prototype.getCurrent = function (trackIndex) { + if (trackIndex >= this.tracks.length) + return null; + return this.tracks[trackIndex]; + }; + AnimationState.prototype.addListener = function (listener) { + if (listener == null) + throw new Error("listener cannot be null."); + this.listeners.push(listener); + }; + AnimationState.prototype.removeListener = function (listener) { + var index = this.listeners.indexOf(listener); + if (index >= 0) + this.listeners.splice(index, 1); + }; + AnimationState.prototype.clearListeners = function () { + this.listeners.length = 0; + }; + AnimationState.prototype.clearListenerNotifications = function () { + this.queue.clear(); + }; + AnimationState._emptyAnimation = null; + AnimationState.SUBSEQUENT = 0; + AnimationState.FIRST = 1; + AnimationState.HOLD_SUBSEQUENT = 2; + AnimationState.HOLD_FIRST = 3; + AnimationState.HOLD_MIX = 4; + AnimationState.SETUP = 1; + AnimationState.CURRENT = 2; + return AnimationState; + }()); + spine.AnimationState = AnimationState; + var TrackEntry = (function () { + function TrackEntry() { + this.mixBlend = spine.MixBlend.replace; + this.timelineMode = new Array(); + this.timelineHoldMix = new Array(); + this.timelinesRotation = new Array(); + } + TrackEntry.prototype.reset = function () { + this.previous = null; + this.next = null; + this.mixingFrom = null; + this.mixingTo = null; + this.animation = null; + this.listener = null; + this.timelineMode.length = 0; + this.timelineHoldMix.length = 0; + this.timelinesRotation.length = 0; + }; + TrackEntry.prototype.getAnimationTime = function () { + if (this.loop) { + var duration = this.animationEnd - this.animationStart; + if (duration == 0) + return this.animationStart; + return (this.trackTime % duration) + this.animationStart; + } + return Math.min(this.trackTime + this.animationStart, this.animationEnd); + }; + TrackEntry.prototype.setAnimationLast = function (animationLast) { + this.animationLast = animationLast; + this.nextAnimationLast = animationLast; + }; + TrackEntry.prototype.isComplete = function () { + return this.trackTime >= this.animationEnd - this.animationStart; + }; + TrackEntry.prototype.resetRotationDirections = function () { + this.timelinesRotation.length = 0; + }; + TrackEntry.prototype.getTrackComplete = function () { + var duration = this.animationEnd - this.animationStart; + if (duration != 0) { + if (this.loop) + return duration * (1 + Math.floor(this.trackTime / duration)); + if (this.trackTime < duration) + return duration; + } + return this.trackTime; + }; + return TrackEntry; + }()); + spine.TrackEntry = TrackEntry; + var EventQueue = (function () { + function EventQueue(animState) { + this.objects = []; + this.drainDisabled = false; + this.animState = animState; + } + EventQueue.prototype.start = function (entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.interrupt = function (entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); + }; + EventQueue.prototype.end = function (entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; + }; + EventQueue.prototype.dispose = function (entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); + }; + EventQueue.prototype.complete = function (entry) { + this.objects.push(EventType.complete); + this.objects.push(entry); + }; + EventQueue.prototype.event = function (entry, event) { + this.objects.push(EventType.event); + this.objects.push(entry); + this.objects.push(event); + }; + EventQueue.prototype.drain = function () { + if (this.drainDisabled) + return; + this.drainDisabled = true; + var objects = this.objects; + var listeners = this.animState.listeners; + for (var i = 0; i < objects.length; i += 2) { + var type = objects[i]; + var entry = objects[i + 1]; + switch (type) { + case EventType.start: + if (entry.listener != null && entry.listener.start) + entry.listener.start(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].start) + listeners[ii].start(entry); + break; + case EventType.interrupt: + if (entry.listener != null && entry.listener.interrupt) + entry.listener.interrupt(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].interrupt) + listeners[ii].interrupt(entry); + break; + case EventType.end: + if (entry.listener != null && entry.listener.end) + entry.listener.end(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].end) + listeners[ii].end(entry); + case EventType.dispose: + if (entry.listener != null && entry.listener.dispose) + entry.listener.dispose(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].dispose) + listeners[ii].dispose(entry); + this.animState.trackEntryPool.free(entry); + break; + case EventType.complete: + if (entry.listener != null && entry.listener.complete) + entry.listener.complete(entry); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].complete) + listeners[ii].complete(entry); + break; + case EventType.event: + var event_3 = objects[i++ + 2]; + if (entry.listener != null && entry.listener.event) + entry.listener.event(entry, event_3); + for (var ii = 0; ii < listeners.length; ii++) + if (listeners[ii].event) + listeners[ii].event(entry, event_3); + break; + } + } + this.clear(); + this.drainDisabled = false; + }; + EventQueue.prototype.clear = function () { + this.objects.length = 0; + }; + return EventQueue; + }()); + spine.EventQueue = EventQueue; + var EventType; + (function (EventType) { + EventType[EventType["start"] = 0] = "start"; + EventType[EventType["interrupt"] = 1] = "interrupt"; + EventType[EventType["end"] = 2] = "end"; + EventType[EventType["dispose"] = 3] = "dispose"; + EventType[EventType["complete"] = 4] = "complete"; + EventType[EventType["event"] = 5] = "event"; + })(EventType = spine.EventType || (spine.EventType = {})); + var AnimationStateAdapter = (function () { + function AnimationStateAdapter() { + } + AnimationStateAdapter.prototype.start = function (entry) { + }; + AnimationStateAdapter.prototype.interrupt = function (entry) { + }; + AnimationStateAdapter.prototype.end = function (entry) { + }; + AnimationStateAdapter.prototype.dispose = function (entry) { + }; + AnimationStateAdapter.prototype.complete = function (entry) { + }; + AnimationStateAdapter.prototype.event = function (entry, event) { + }; + return AnimationStateAdapter; + }()); + spine.AnimationStateAdapter = AnimationStateAdapter; })(spine || (spine = {})); var spine; (function (spine) { - var AnimationStateData = (function () { - function AnimationStateData(skeletonData) { - this.animationToMixTime = {}; - this.defaultMix = 0; - if (skeletonData == null) - throw new Error("skeletonData cannot be null."); - this.skeletonData = skeletonData; - } - AnimationStateData.prototype.setMix = function (fromName, toName, duration) { - var from = this.skeletonData.findAnimation(fromName); - if (from == null) - throw new Error("Animation not found: " + fromName); - var to = this.skeletonData.findAnimation(toName); - if (to == null) - throw new Error("Animation not found: " + toName); - this.setMixWith(from, to, duration); - }; - AnimationStateData.prototype.setMixWith = function (from, to, duration) { - if (from == null) - throw new Error("from cannot be null."); - if (to == null) - throw new Error("to cannot be null."); - var key = from.name + "." + to.name; - this.animationToMixTime[key] = duration; - }; - AnimationStateData.prototype.getMix = function (from, to) { - var key = from.name + "." + to.name; - var value = this.animationToMixTime[key]; - return value === undefined ? this.defaultMix : value; - }; - return AnimationStateData; - }()); - spine.AnimationStateData = AnimationStateData; + var AnimationStateData = (function () { + function AnimationStateData(skeletonData) { + this.animationToMixTime = {}; + this.defaultMix = 0; + if (skeletonData == null) + throw new Error("skeletonData cannot be null."); + this.skeletonData = skeletonData; + } + AnimationStateData.prototype.setMix = function (fromName, toName, duration) { + var from = this.skeletonData.findAnimation(fromName); + if (from == null) + throw new Error("Animation not found: " + fromName); + var to = this.skeletonData.findAnimation(toName); + if (to == null) + throw new Error("Animation not found: " + toName); + this.setMixWith(from, to, duration); + }; + AnimationStateData.prototype.setMixWith = function (from, to, duration) { + if (from == null) + throw new Error("from cannot be null."); + if (to == null) + throw new Error("to cannot be null."); + var key = from.name + "." + to.name; + this.animationToMixTime[key] = duration; + }; + AnimationStateData.prototype.getMix = function (from, to) { + var key = from.name + "." + to.name; + var value = this.animationToMixTime[key]; + return value === undefined ? this.defaultMix : value; + }; + return AnimationStateData; + }()); + spine.AnimationStateData = AnimationStateData; })(spine || (spine = {})); var spine; (function (spine) { - var AssetManager = (function () { - function AssetManager(textureLoader, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.assets = {}; - this.errors = {}; - this.toLoad = 0; - this.loaded = 0; - this.rawDataUris = {}; - this.textureLoader = textureLoader; - this.pathPrefix = pathPrefix; - } - AssetManager.prototype.downloadText = function (url, success, error) { - var request = new XMLHttpRequest(); - request.overrideMimeType("text/html"); - if (this.rawDataUris[url]) - url = this.rawDataUris[url]; - request.open("GET", url, true); - request.onload = function () { - if (request.status == 200) { - success(request.responseText); - } - else { - error(request.status, request.responseText); - } - }; - request.onerror = function () { - error(request.status, request.responseText); - }; - request.send(); - }; - AssetManager.prototype.downloadBinary = function (url, success, error) { - var request = new XMLHttpRequest(); - if (this.rawDataUris[url]) - url = this.rawDataUris[url]; - request.open("GET", url, true); - request.responseType = "arraybuffer"; - request.onload = function () { - if (request.status == 200) { - success(new Uint8Array(request.response)); - } - else { - error(request.status, request.responseText); - } - }; - request.onerror = function () { - error(request.status, request.responseText); - }; - request.send(); - }; - AssetManager.prototype.setRawDataURI = function (path, data) { - this.rawDataUris[this.pathPrefix + path] = data; - }; - AssetManager.prototype.loadBinary = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - this.downloadBinary(path, function (data) { - _this.assets[path] = data; - if (success) - success(path, data); - _this.toLoad--; - _this.loaded++; - }, function (state, responseText) { - _this.errors[path] = "Couldn't load binary " + path + ": status " + status + ", " + responseText; - if (error) - error(path, "Couldn't load binary " + path + ": status " + status + ", " + responseText); - _this.toLoad--; - _this.loaded++; - }); - }; - AssetManager.prototype.loadText = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - this.toLoad++; - this.downloadText(path, function (data) { - _this.assets[path] = data; - if (success) - success(path, data); - _this.toLoad--; - _this.loaded++; - }, function (state, responseText) { - _this.errors[path] = "Couldn't load text " + path + ": status " + status + ", " + responseText; - if (error) - error(path, "Couldn't load text " + path + ": status " + status + ", " + responseText); - _this.toLoad--; - _this.loaded++; - }); - }; - AssetManager.prototype.loadTexture = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - path = this.pathPrefix + path; - var storagePath = path; - this.toLoad++; - var img = new Image(); - img.crossOrigin = "anonymous"; - img.onload = function (ev) { - var texture = _this.textureLoader(img); - _this.assets[storagePath] = texture; - _this.toLoad--; - _this.loaded++; - if (success) - success(path, img); - }; - img.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - _this.toLoad--; - _this.loaded++; - if (error) - error(path, "Couldn't load image " + path); - }; - if (this.rawDataUris[path]) - path = this.rawDataUris[path]; - img.src = path; - }; - AssetManager.prototype.loadTextureAtlas = function (path, success, error) { - var _this = this; - if (success === void 0) { success = null; } - if (error === void 0) { error = null; } - var parent = path.lastIndexOf("/") >= 0 ? path.substring(0, path.lastIndexOf("/")) : ""; - path = this.pathPrefix + path; - this.toLoad++; - this.downloadText(path, function (atlasData) { - var pagesLoaded = { count: 0 }; - var atlasPages = new Array(); - try { - var atlas = new spine.TextureAtlas(atlasData, function (path) { - atlasPages.push(parent == "" ? path : parent + "/" + path); - var image = document.createElement("img"); - image.width = 16; - image.height = 16; - return new spine.FakeTexture(image); - }); - } - catch (e) { - var ex = e; - _this.errors[path] = "Couldn't load texture atlas " + path + ": " + ex.message; - if (error) - error(path, "Couldn't load texture atlas " + path + ": " + ex.message); - _this.toLoad--; - _this.loaded++; - return; - } - var _loop_1 = function (atlasPage) { - var pageLoadError = false; - _this.loadTexture(atlasPage, function (imagePath, image) { - pagesLoaded.count++; - if (pagesLoaded.count == atlasPages.length) { - if (!pageLoadError) { - try { - var atlas = new spine.TextureAtlas(atlasData, function (path) { - return _this.get(parent == "" ? path : parent + "/" + path); - }); - _this.assets[path] = atlas; - if (success) - success(path, atlas); - _this.toLoad--; - _this.loaded++; - } - catch (e) { - var ex = e; - _this.errors[path] = "Couldn't load texture atlas " + path + ": " + ex.message; - if (error) - error(path, "Couldn't load texture atlas " + path + ": " + ex.message); - _this.toLoad--; - _this.loaded++; - } - } - else { - _this.errors[path] = "Couldn't load texture atlas page " + imagePath + "} of atlas " + path; - if (error) - error(path, "Couldn't load texture atlas page " + imagePath + " of atlas " + path); - _this.toLoad--; - _this.loaded++; - } - } - }, function (imagePath, errorMessage) { - pageLoadError = true; - pagesLoaded.count++; - if (pagesLoaded.count == atlasPages.length) { - _this.errors[path] = "Couldn't load texture atlas page " + imagePath + "} of atlas " + path; - if (error) - error(path, "Couldn't load texture atlas page " + imagePath + " of atlas " + path); - _this.toLoad--; - _this.loaded++; - } - }); - }; - for (var _i = 0, atlasPages_1 = atlasPages; _i < atlasPages_1.length; _i++) { - var atlasPage = atlasPages_1[_i]; - _loop_1(atlasPage); - } - }, function (state, responseText) { - _this.errors[path] = "Couldn't load texture atlas " + path + ": status " + status + ", " + responseText; - if (error) - error(path, "Couldn't load texture atlas " + path + ": status " + status + ", " + responseText); - _this.toLoad--; - _this.loaded++; - }); - }; - AssetManager.prototype.get = function (path) { - path = this.pathPrefix + path; - return this.assets[path]; - }; - AssetManager.prototype.remove = function (path) { - path = this.pathPrefix + path; - var asset = this.assets[path]; - if (asset.dispose) - asset.dispose(); - this.assets[path] = null; - }; - AssetManager.prototype.removeAll = function () { - for (var key in this.assets) { - var asset = this.assets[key]; - if (asset.dispose) - asset.dispose(); - } - this.assets = {}; - }; - AssetManager.prototype.isLoadingComplete = function () { - return this.toLoad == 0; - }; - AssetManager.prototype.getToLoad = function () { - return this.toLoad; - }; - AssetManager.prototype.getLoaded = function () { - return this.loaded; - }; - AssetManager.prototype.dispose = function () { - this.removeAll(); - }; - AssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - AssetManager.prototype.getErrors = function () { - return this.errors; - }; - return AssetManager; - }()); - spine.AssetManager = AssetManager; + var AssetManager = (function () { + function AssetManager(textureLoader, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.assets = {}; + this.errors = {}; + this.toLoad = 0; + this.loaded = 0; + this.rawDataUris = {}; + this.textureLoader = textureLoader; + this.pathPrefix = pathPrefix; + } + AssetManager.prototype.downloadText = function (url, success, error) { + var request = new XMLHttpRequest(); + request.overrideMimeType("text/html"); + if (this.rawDataUris[url]) + url = this.rawDataUris[url]; + request.open("GET", url, true); + request.onload = function () { + if (request.status == 200) { + success(request.responseText); + } + else { + error(request.status, request.responseText); + } + }; + request.onerror = function () { + error(request.status, request.responseText); + }; + request.send(); + }; + AssetManager.prototype.downloadBinary = function (url, success, error) { + var request = new XMLHttpRequest(); + if (this.rawDataUris[url]) + url = this.rawDataUris[url]; + request.open("GET", url, true); + request.responseType = "arraybuffer"; + request.onload = function () { + if (request.status == 200) { + success(new Uint8Array(request.response)); + } + else { + error(request.status, request.responseText); + } + }; + request.onerror = function () { + error(request.status, request.responseText); + }; + request.send(); + }; + AssetManager.prototype.setRawDataURI = function (path, data) { + this.rawDataUris[this.pathPrefix + path] = data; + }; + AssetManager.prototype.loadBinary = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + this.downloadBinary(path, function (data) { + _this.assets[path] = data; + if (success) + success(path, data); + _this.toLoad--; + _this.loaded++; + }, function (state, responseText) { + _this.errors[path] = "Couldn't load binary " + path + ": status " + status + ", " + responseText; + if (error) + error(path, "Couldn't load binary " + path + ": status " + status + ", " + responseText); + _this.toLoad--; + _this.loaded++; + }); + }; + AssetManager.prototype.loadText = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + this.toLoad++; + this.downloadText(path, function (data) { + _this.assets[path] = data; + if (success) + success(path, data); + _this.toLoad--; + _this.loaded++; + }, function (state, responseText) { + _this.errors[path] = "Couldn't load text " + path + ": status " + status + ", " + responseText; + if (error) + error(path, "Couldn't load text " + path + ": status " + status + ", " + responseText); + _this.toLoad--; + _this.loaded++; + }); + }; + AssetManager.prototype.loadTexture = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + path = this.pathPrefix + path; + var storagePath = path; + this.toLoad++; + var img = new Image(); + img.crossOrigin = "anonymous"; + img.onload = function (ev) { + var texture = _this.textureLoader(img); + _this.assets[storagePath] = texture; + _this.toLoad--; + _this.loaded++; + if (success) + success(path, img); + }; + img.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + _this.toLoad--; + _this.loaded++; + if (error) + error(path, "Couldn't load image " + path); + }; + if (this.rawDataUris[path]) + path = this.rawDataUris[path]; + img.src = path; + }; + AssetManager.prototype.loadTextureAtlas = function (path, success, error) { + var _this = this; + if (success === void 0) { success = null; } + if (error === void 0) { error = null; } + var parent = path.lastIndexOf("/") >= 0 ? path.substring(0, path.lastIndexOf("/")) : ""; + path = this.pathPrefix + path; + this.toLoad++; + this.downloadText(path, function (atlasData) { + var pagesLoaded = { count: 0 }; + var atlasPages = new Array(); + try { + var atlas = new spine.TextureAtlas(atlasData, function (path) { + atlasPages.push(parent == "" ? path : parent + "/" + path); + var image = document.createElement("img"); + image.width = 16; + image.height = 16; + return new spine.FakeTexture(image); + }); + } + catch (e) { + var ex = e; + _this.errors[path] = "Couldn't load texture atlas " + path + ": " + ex.message; + if (error) + error(path, "Couldn't load texture atlas " + path + ": " + ex.message); + _this.toLoad--; + _this.loaded++; + return; + } + var _loop_1 = function (atlasPage) { + var pageLoadError = false; + _this.loadTexture(atlasPage, function (imagePath, image) { + pagesLoaded.count++; + if (pagesLoaded.count == atlasPages.length) { + if (!pageLoadError) { + try { + var atlas = new spine.TextureAtlas(atlasData, function (path) { + return _this.get(parent == "" ? path : parent + "/" + path); + }); + _this.assets[path] = atlas; + if (success) + success(path, atlas); + _this.toLoad--; + _this.loaded++; + } + catch (e) { + var ex = e; + _this.errors[path] = "Couldn't load texture atlas " + path + ": " + ex.message; + if (error) + error(path, "Couldn't load texture atlas " + path + ": " + ex.message); + _this.toLoad--; + _this.loaded++; + } + } + else { + _this.errors[path] = "Couldn't load texture atlas page " + imagePath + "} of atlas " + path; + if (error) + error(path, "Couldn't load texture atlas page " + imagePath + " of atlas " + path); + _this.toLoad--; + _this.loaded++; + } + } + }, function (imagePath, errorMessage) { + pageLoadError = true; + pagesLoaded.count++; + if (pagesLoaded.count == atlasPages.length) { + _this.errors[path] = "Couldn't load texture atlas page " + imagePath + "} of atlas " + path; + if (error) + error(path, "Couldn't load texture atlas page " + imagePath + " of atlas " + path); + _this.toLoad--; + _this.loaded++; + } + }); + }; + for (var _i = 0, atlasPages_1 = atlasPages; _i < atlasPages_1.length; _i++) { + var atlasPage = atlasPages_1[_i]; + _loop_1(atlasPage); + } + }, function (state, responseText) { + _this.errors[path] = "Couldn't load texture atlas " + path + ": status " + status + ", " + responseText; + if (error) + error(path, "Couldn't load texture atlas " + path + ": status " + status + ", " + responseText); + _this.toLoad--; + _this.loaded++; + }); + }; + AssetManager.prototype.get = function (path) { + path = this.pathPrefix + path; + return this.assets[path]; + }; + AssetManager.prototype.remove = function (path) { + path = this.pathPrefix + path; + var asset = this.assets[path]; + if (asset.dispose) + asset.dispose(); + this.assets[path] = null; + }; + AssetManager.prototype.removeAll = function () { + for (var key in this.assets) { + var asset = this.assets[key]; + if (asset.dispose) + asset.dispose(); + } + this.assets = {}; + }; + AssetManager.prototype.isLoadingComplete = function () { + return this.toLoad == 0; + }; + AssetManager.prototype.getToLoad = function () { + return this.toLoad; + }; + AssetManager.prototype.getLoaded = function () { + return this.loaded; + }; + AssetManager.prototype.dispose = function () { + this.removeAll(); + }; + AssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + AssetManager.prototype.getErrors = function () { + return this.errors; + }; + return AssetManager; + }()); + spine.AssetManager = AssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var AtlasAttachmentLoader = (function () { - function AtlasAttachmentLoader(atlas) { - this.atlas = atlas; - } - AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.RegionAttachment(name); - attachment.setRegion(region); - return attachment; - }; - AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { - var region = this.atlas.findRegion(path); - if (region == null) - throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); - region.renderObject = region; - var attachment = new spine.MeshAttachment(name); - attachment.region = region; - return attachment; - }; - AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { - return new spine.BoundingBoxAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { - return new spine.PathAttachment(name); - }; - AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { - return new spine.PointAttachment(name); - }; - AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { - return new spine.ClippingAttachment(name); - }; - return AtlasAttachmentLoader; - }()); - spine.AtlasAttachmentLoader = AtlasAttachmentLoader; + var AtlasAttachmentLoader = (function () { + function AtlasAttachmentLoader(atlas) { + this.atlas = atlas; + } + AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.RegionAttachment(name); + attachment.setRegion(region); + return attachment; + }; + AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) { + var region = this.atlas.findRegion(path); + if (region == null) + throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); + region.renderObject = region; + var attachment = new spine.MeshAttachment(name); + attachment.region = region; + return attachment; + }; + AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) { + return new spine.BoundingBoxAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) { + return new spine.PathAttachment(name); + }; + AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) { + return new spine.PointAttachment(name); + }; + AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) { + return new spine.ClippingAttachment(name); + }; + return AtlasAttachmentLoader; + }()); + spine.AtlasAttachmentLoader = AtlasAttachmentLoader; })(spine || (spine = {})); var spine; (function (spine) { - var BlendMode; - (function (BlendMode) { - BlendMode[BlendMode["Normal"] = 0] = "Normal"; - BlendMode[BlendMode["Additive"] = 1] = "Additive"; - BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; - BlendMode[BlendMode["Screen"] = 3] = "Screen"; - })(BlendMode = spine.BlendMode || (spine.BlendMode = {})); + var BlendMode; + (function (BlendMode) { + BlendMode[BlendMode["Normal"] = 0] = "Normal"; + BlendMode[BlendMode["Additive"] = 1] = "Additive"; + BlendMode[BlendMode["Multiply"] = 2] = "Multiply"; + BlendMode[BlendMode["Screen"] = 3] = "Screen"; + })(BlendMode = spine.BlendMode || (spine.BlendMode = {})); })(spine || (spine = {})); var spine; (function (spine) { - var Bone = (function () { - function Bone(data, skeleton, parent) { - this.children = new Array(); - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 0; - this.scaleY = 0; - this.shearX = 0; - this.shearY = 0; - this.ax = 0; - this.ay = 0; - this.arotation = 0; - this.ascaleX = 0; - this.ascaleY = 0; - this.ashearX = 0; - this.ashearY = 0; - this.appliedValid = false; - this.a = 0; - this.b = 0; - this.c = 0; - this.d = 0; - this.worldY = 0; - this.worldX = 0; - this.sorted = false; - this.active = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.skeleton = skeleton; - this.parent = parent; - this.setToSetupPose(); - } - Bone.prototype.isActive = function () { - return this.active; - }; - Bone.prototype.update = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransform = function () { - this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); - }; - Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { - this.ax = x; - this.ay = y; - this.arotation = rotation; - this.ascaleX = scaleX; - this.ascaleY = scaleY; - this.ashearX = shearX; - this.ashearY = shearY; - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - var skeleton = this.skeleton; - var rotationY = rotation + 90 + shearY; - var sx = skeleton.scaleX; - var sy = skeleton.scaleY; - this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX * sx; - this.b = spine.MathUtils.cosDeg(rotationY) * scaleY * sx; - this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX * sy; - this.d = spine.MathUtils.sinDeg(rotationY) * scaleY * sy; - this.worldX = x * sx + skeleton.x; - this.worldY = y * sy + skeleton.y; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - this.worldX = pa * x + pb * y + parent.worldX; - this.worldY = pc * x + pd * y + parent.worldY; - switch (this.data.transformMode) { - case spine.TransformMode.Normal: { - var rotationY = rotation + 90 + shearY; - var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; - var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; - this.a = pa * la + pb * lc; - this.b = pa * lb + pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - return; - } - case spine.TransformMode.OnlyTranslation: { - var rotationY = rotation + 90 + shearY; - this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; - this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; - this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; - this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; - break; - } - case spine.TransformMode.NoRotationOrReflection: { - var s = pa * pa + pc * pc; - var prx = 0; - if (s > 0.0001) { - s = Math.abs(pa * pd - pb * pc) / s; - pa /= this.skeleton.scaleX; - pc /= this.skeleton.scaleY; - pb = pc * s; - pd = pa * s; - prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; - } - else { - pa = 0; - pc = 0; - prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; - } - var rx = rotation + shearX - prx; - var ry = rotation + shearY - prx + 90; - var la = spine.MathUtils.cosDeg(rx) * scaleX; - var lb = spine.MathUtils.cosDeg(ry) * scaleY; - var lc = spine.MathUtils.sinDeg(rx) * scaleX; - var ld = spine.MathUtils.sinDeg(ry) * scaleY; - this.a = pa * la - pb * lc; - this.b = pa * lb - pb * ld; - this.c = pc * la + pd * lc; - this.d = pc * lb + pd * ld; - break; - } - case spine.TransformMode.NoScale: - case spine.TransformMode.NoScaleOrReflection: { - var cos = spine.MathUtils.cosDeg(rotation); - var sin = spine.MathUtils.sinDeg(rotation); - var za = (pa * cos + pb * sin) / this.skeleton.scaleX; - var zc = (pc * cos + pd * sin) / this.skeleton.scaleY; - var s = Math.sqrt(za * za + zc * zc); - if (s > 0.00001) - s = 1 / s; - za *= s; - zc *= s; - s = Math.sqrt(za * za + zc * zc); - if (this.data.transformMode == spine.TransformMode.NoScale - && (pa * pd - pb * pc < 0) != (this.skeleton.scaleX < 0 != this.skeleton.scaleY < 0)) - s = -s; - var r = Math.PI / 2 + Math.atan2(zc, za); - var zb = Math.cos(r) * s; - var zd = Math.sin(r) * s; - var la = spine.MathUtils.cosDeg(shearX) * scaleX; - var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; - var lc = spine.MathUtils.sinDeg(shearX) * scaleX; - var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; - this.a = za * la + zb * lc; - this.b = za * lb + zb * ld; - this.c = zc * la + zd * lc; - this.d = zc * lb + zd * ld; - break; - } - } - this.a *= this.skeleton.scaleX; - this.b *= this.skeleton.scaleX; - this.c *= this.skeleton.scaleY; - this.d *= this.skeleton.scaleY; - }; - Bone.prototype.setToSetupPose = function () { - var data = this.data; - this.x = data.x; - this.y = data.y; - this.rotation = data.rotation; - this.scaleX = data.scaleX; - this.scaleY = data.scaleY; - this.shearX = data.shearX; - this.shearY = data.shearY; - }; - Bone.prototype.getWorldRotationX = function () { - return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldRotationY = function () { - return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.getWorldScaleX = function () { - return Math.sqrt(this.a * this.a + this.c * this.c); - }; - Bone.prototype.getWorldScaleY = function () { - return Math.sqrt(this.b * this.b + this.d * this.d); - }; - Bone.prototype.updateAppliedTransform = function () { - this.appliedValid = true; - var parent = this.parent; - if (parent == null) { - this.ax = this.worldX; - this.ay = this.worldY; - this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; - this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); - this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); - this.ashearX = 0; - this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; - return; - } - var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; - var pid = 1 / (pa * pd - pb * pc); - var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; - this.ax = (dx * pd * pid - dy * pb * pid); - this.ay = (dy * pa * pid - dx * pc * pid); - var ia = pid * pd; - var id = pid * pa; - var ib = pid * pb; - var ic = pid * pc; - var ra = ia * this.a - ib * this.c; - var rb = ia * this.b - ib * this.d; - var rc = id * this.c - ic * this.a; - var rd = id * this.d - ic * this.b; - this.ashearX = 0; - this.ascaleX = Math.sqrt(ra * ra + rc * rc); - if (this.ascaleX > 0.0001) { - var det = ra * rd - rb * rc; - this.ascaleY = det / this.ascaleX; - this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; - this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; - } - else { - this.ascaleX = 0; - this.ascaleY = Math.sqrt(rb * rb + rd * rd); - this.ashearY = 0; - this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; - } - }; - Bone.prototype.worldToLocal = function (world) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var invDet = 1 / (a * d - b * c); - var x = world.x - this.worldX, y = world.y - this.worldY; - world.x = (x * d * invDet - y * b * invDet); - world.y = (y * a * invDet - x * c * invDet); - return world; - }; - Bone.prototype.localToWorld = function (local) { - var x = local.x, y = local.y; - local.x = x * this.a + y * this.b + this.worldX; - local.y = x * this.c + y * this.d + this.worldY; - return local; - }; - Bone.prototype.worldToLocalRotation = function (worldRotation) { - var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); - return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg + this.rotation - this.shearX; - }; - Bone.prototype.localToWorldRotation = function (localRotation) { - localRotation -= this.rotation - this.shearX; - var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); - return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; - }; - Bone.prototype.rotateWorld = function (degrees) { - var a = this.a, b = this.b, c = this.c, d = this.d; - var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); - this.a = cos * a - sin * c; - this.b = cos * b - sin * d; - this.c = sin * a + cos * c; - this.d = sin * b + cos * d; - this.appliedValid = false; - }; - return Bone; - }()); - spine.Bone = Bone; + var Bone = (function () { + function Bone(data, skeleton, parent) { + this.children = new Array(); + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 0; + this.scaleY = 0; + this.shearX = 0; + this.shearY = 0; + this.ax = 0; + this.ay = 0; + this.arotation = 0; + this.ascaleX = 0; + this.ascaleY = 0; + this.ashearX = 0; + this.ashearY = 0; + this.appliedValid = false; + this.a = 0; + this.b = 0; + this.c = 0; + this.d = 0; + this.worldY = 0; + this.worldX = 0; + this.sorted = false; + this.active = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.skeleton = skeleton; + this.parent = parent; + this.setToSetupPose(); + } + Bone.prototype.isActive = function () { + return this.active; + }; + Bone.prototype.update = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransform = function () { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + }; + Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) { + this.ax = x; + this.ay = y; + this.arotation = rotation; + this.ascaleX = scaleX; + this.ascaleY = scaleY; + this.ashearX = shearX; + this.ashearY = shearY; + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + var skeleton = this.skeleton; + var rotationY = rotation + 90 + shearY; + var sx = skeleton.scaleX; + var sy = skeleton.scaleY; + this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX * sx; + this.b = spine.MathUtils.cosDeg(rotationY) * scaleY * sx; + this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX * sy; + this.d = spine.MathUtils.sinDeg(rotationY) * scaleY * sy; + this.worldX = x * sx + skeleton.x; + this.worldY = y * sy + skeleton.y; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + this.worldX = pa * x + pb * y + parent.worldX; + this.worldY = pc * x + pd * y + parent.worldY; + switch (this.data.transformMode) { + case spine.TransformMode.Normal: { + var rotationY = rotation + 90 + shearY; + var la = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * scaleY; + var lc = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * scaleY; + this.a = pa * la + pb * lc; + this.b = pa * lb + pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + return; + } + case spine.TransformMode.OnlyTranslation: { + var rotationY = rotation + 90 + shearY; + this.a = spine.MathUtils.cosDeg(rotation + shearX) * scaleX; + this.b = spine.MathUtils.cosDeg(rotationY) * scaleY; + this.c = spine.MathUtils.sinDeg(rotation + shearX) * scaleX; + this.d = spine.MathUtils.sinDeg(rotationY) * scaleY; + break; + } + case spine.TransformMode.NoRotationOrReflection: { + var s = pa * pa + pc * pc; + var prx = 0; + if (s > 0.0001) { + s = Math.abs(pa * pd - pb * pc) / s; + pa /= this.skeleton.scaleX; + pc /= this.skeleton.scaleY; + pb = pc * s; + pd = pa * s; + prx = Math.atan2(pc, pa) * spine.MathUtils.radDeg; + } + else { + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * spine.MathUtils.radDeg; + } + var rx = rotation + shearX - prx; + var ry = rotation + shearY - prx + 90; + var la = spine.MathUtils.cosDeg(rx) * scaleX; + var lb = spine.MathUtils.cosDeg(ry) * scaleY; + var lc = spine.MathUtils.sinDeg(rx) * scaleX; + var ld = spine.MathUtils.sinDeg(ry) * scaleY; + this.a = pa * la - pb * lc; + this.b = pa * lb - pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + break; + } + case spine.TransformMode.NoScale: + case spine.TransformMode.NoScaleOrReflection: { + var cos = spine.MathUtils.cosDeg(rotation); + var sin = spine.MathUtils.sinDeg(rotation); + var za = (pa * cos + pb * sin) / this.skeleton.scaleX; + var zc = (pc * cos + pd * sin) / this.skeleton.scaleY; + var s = Math.sqrt(za * za + zc * zc); + if (s > 0.00001) + s = 1 / s; + za *= s; + zc *= s; + s = Math.sqrt(za * za + zc * zc); + if (this.data.transformMode == spine.TransformMode.NoScale + && (pa * pd - pb * pc < 0) != (this.skeleton.scaleX < 0 != this.skeleton.scaleY < 0)) + s = -s; + var r = Math.PI / 2 + Math.atan2(zc, za); + var zb = Math.cos(r) * s; + var zd = Math.sin(r) * s; + var la = spine.MathUtils.cosDeg(shearX) * scaleX; + var lb = spine.MathUtils.cosDeg(90 + shearY) * scaleY; + var lc = spine.MathUtils.sinDeg(shearX) * scaleX; + var ld = spine.MathUtils.sinDeg(90 + shearY) * scaleY; + this.a = za * la + zb * lc; + this.b = za * lb + zb * ld; + this.c = zc * la + zd * lc; + this.d = zc * lb + zd * ld; + break; + } + } + this.a *= this.skeleton.scaleX; + this.b *= this.skeleton.scaleX; + this.c *= this.skeleton.scaleY; + this.d *= this.skeleton.scaleY; + }; + Bone.prototype.setToSetupPose = function () { + var data = this.data; + this.x = data.x; + this.y = data.y; + this.rotation = data.rotation; + this.scaleX = data.scaleX; + this.scaleY = data.scaleY; + this.shearX = data.shearX; + this.shearY = data.shearY; + }; + Bone.prototype.getWorldRotationX = function () { + return Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldRotationY = function () { + return Math.atan2(this.d, this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.getWorldScaleX = function () { + return Math.sqrt(this.a * this.a + this.c * this.c); + }; + Bone.prototype.getWorldScaleY = function () { + return Math.sqrt(this.b * this.b + this.d * this.d); + }; + Bone.prototype.updateAppliedTransform = function () { + this.appliedValid = true; + var parent = this.parent; + if (parent == null) { + this.ax = this.worldX; + this.ay = this.worldY; + this.arotation = Math.atan2(this.c, this.a) * spine.MathUtils.radDeg; + this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); + this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); + this.ashearX = 0; + this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * spine.MathUtils.radDeg; + return; + } + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + var pid = 1 / (pa * pd - pb * pc); + var dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; + this.ax = (dx * pd * pid - dy * pb * pid); + this.ay = (dy * pa * pid - dx * pc * pid); + var ia = pid * pd; + var id = pid * pa; + var ib = pid * pb; + var ic = pid * pc; + var ra = ia * this.a - ib * this.c; + var rb = ia * this.b - ib * this.d; + var rc = id * this.c - ic * this.a; + var rd = id * this.d - ic * this.b; + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 0.0001) { + var det = ra * rd - rb * rc; + this.ascaleY = det / this.ascaleX; + this.ashearY = Math.atan2(ra * rb + rc * rd, det) * spine.MathUtils.radDeg; + this.arotation = Math.atan2(rc, ra) * spine.MathUtils.radDeg; + } + else { + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * spine.MathUtils.radDeg; + } + }; + Bone.prototype.worldToLocal = function (world) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var det = a * d - b * c; + var x = world.x - this.worldX, y = world.y - this.worldY; + world.x = (x * d - y * b) / det; + world.y = (y * a - x * c) / det; + return world; + }; + Bone.prototype.localToWorld = function (local) { + var x = local.x, y = local.y; + local.x = x * this.a + y * this.b + this.worldX; + local.y = x * this.c + y * this.d + this.worldY; + return local; + }; + Bone.prototype.worldToLocalRotation = function (worldRotation) { + var sin = spine.MathUtils.sinDeg(worldRotation), cos = spine.MathUtils.cosDeg(worldRotation); + return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * spine.MathUtils.radDeg + this.rotation - this.shearX; + }; + Bone.prototype.localToWorldRotation = function (localRotation) { + localRotation -= this.rotation - this.shearX; + var sin = spine.MathUtils.sinDeg(localRotation), cos = spine.MathUtils.cosDeg(localRotation); + return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * spine.MathUtils.radDeg; + }; + Bone.prototype.rotateWorld = function (degrees) { + var a = this.a, b = this.b, c = this.c, d = this.d; + var cos = spine.MathUtils.cosDeg(degrees), sin = spine.MathUtils.sinDeg(degrees); + this.a = cos * a - sin * c; + this.b = cos * b - sin * d; + this.c = sin * a + cos * c; + this.d = sin * b + cos * d; + this.appliedValid = false; + }; + return Bone; + }()); + spine.Bone = Bone; })(spine || (spine = {})); var spine; (function (spine) { - var BoneData = (function () { - function BoneData(index, name, parent) { - this.x = 0; - this.y = 0; - this.rotation = 0; - this.scaleX = 1; - this.scaleY = 1; - this.shearX = 0; - this.shearY = 0; - this.transformMode = TransformMode.Normal; - this.skinRequired = false; - this.color = new spine.Color(); - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - this.index = index; - this.name = name; - this.parent = parent; - } - return BoneData; - }()); - spine.BoneData = BoneData; - var TransformMode; - (function (TransformMode) { - TransformMode[TransformMode["Normal"] = 0] = "Normal"; - TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; - TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; - TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; - TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; - })(TransformMode = spine.TransformMode || (spine.TransformMode = {})); + var BoneData = (function () { + function BoneData(index, name, parent) { + this.x = 0; + this.y = 0; + this.rotation = 0; + this.scaleX = 1; + this.scaleY = 1; + this.shearX = 0; + this.shearY = 0; + this.transformMode = TransformMode.Normal; + this.skinRequired = false; + this.color = new spine.Color(); + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + this.index = index; + this.name = name; + this.parent = parent; + } + return BoneData; + }()); + spine.BoneData = BoneData; + var TransformMode; + (function (TransformMode) { + TransformMode[TransformMode["Normal"] = 0] = "Normal"; + TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation"; + TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; + TransformMode[TransformMode["NoScale"] = 3] = "NoScale"; + TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; + })(TransformMode = spine.TransformMode || (spine.TransformMode = {})); })(spine || (spine = {})); var spine; (function (spine) { - var ConstraintData = (function () { - function ConstraintData(name, order, skinRequired) { - this.name = name; - this.order = order; - this.skinRequired = skinRequired; - } - return ConstraintData; - }()); - spine.ConstraintData = ConstraintData; + var ConstraintData = (function () { + function ConstraintData(name, order, skinRequired) { + this.name = name; + this.order = order; + this.skinRequired = skinRequired; + } + return ConstraintData; + }()); + spine.ConstraintData = ConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var Event = (function () { - function Event(time, data) { - if (data == null) - throw new Error("data cannot be null."); - this.time = time; - this.data = data; - } - return Event; - }()); - spine.Event = Event; + var Event = (function () { + function Event(time, data) { + if (data == null) + throw new Error("data cannot be null."); + this.time = time; + this.data = data; + } + return Event; + }()); + spine.Event = Event; })(spine || (spine = {})); var spine; (function (spine) { - var EventData = (function () { - function EventData(name) { - this.name = name; - } - return EventData; - }()); - spine.EventData = EventData; + var EventData = (function () { + function EventData(name) { + this.name = name; + } + return EventData; + }()); + spine.EventData = EventData; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraint = (function () { - function IkConstraint(data, skeleton) { - this.bendDirection = 0; - this.compress = false; - this.stretch = false; - this.mix = 1; - this.softness = 0; - this.active = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.mix = data.mix; - this.softness = data.softness; - this.bendDirection = data.bendDirection; - this.compress = data.compress; - this.stretch = data.stretch; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - IkConstraint.prototype.isActive = function () { - return this.active; - }; - IkConstraint.prototype.apply = function () { - this.update(); - }; - IkConstraint.prototype.update = function () { - var target = this.target; - var bones = this.bones; - switch (bones.length) { - case 1: - this.apply1(bones[0], target.worldX, target.worldY, this.compress, this.stretch, this.data.uniform, this.mix); - break; - case 2: - this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.stretch, this.softness, this.mix); - break; - } - }; - IkConstraint.prototype.apply1 = function (bone, targetX, targetY, compress, stretch, uniform, alpha) { - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var p = bone.parent; - var pa = p.a, pb = p.b, pc = p.c, pd = p.d; - var rotationIK = -bone.ashearX - bone.arotation, tx = 0, ty = 0; - switch (bone.data.transformMode) { - case spine.TransformMode.OnlyTranslation: - tx = targetX - bone.worldX; - ty = targetY - bone.worldY; - break; - case spine.TransformMode.NoRotationOrReflection: - var s = Math.abs(pa * pd - pb * pc) / (pa * pa + pc * pc); - var sa = pa / bone.skeleton.scaleX; - var sc = pc / bone.skeleton.scaleY; - pb = -sc * s * bone.skeleton.scaleX; - pd = sa * s * bone.skeleton.scaleY; - rotationIK += Math.atan2(sc, sa) * spine.MathUtils.radDeg; - default: - var x = targetX - p.worldX, y = targetY - p.worldY; - var d = pa * pd - pb * pc; - tx = (x * pd - y * pb) / d - bone.ax; - ty = (y * pa - x * pc) / d - bone.ay; - } - rotationIK += Math.atan2(ty, tx) * spine.MathUtils.radDeg; - if (bone.ascaleX < 0) - rotationIK += 180; - if (rotationIK > 180) - rotationIK -= 360; - else if (rotationIK < -180) - rotationIK += 360; - var sx = bone.ascaleX, sy = bone.ascaleY; - if (compress || stretch) { - switch (bone.data.transformMode) { - case spine.TransformMode.NoScale: - case spine.TransformMode.NoScaleOrReflection: - tx = targetX - bone.worldX; - ty = targetY - bone.worldY; - } - var b = bone.data.length * sx, dd = Math.sqrt(tx * tx + ty * ty); - if ((compress && dd < b) || (stretch && dd > b) && b > 0.0001) { - var s = (dd / b - 1) * alpha + 1; - sx *= s; - if (uniform) - sy *= s; - } - } - bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, sx, sy, bone.ashearX, bone.ashearY); - }; - IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, stretch, softness, alpha) { - if (alpha == 0) { - child.updateWorldTransform(); - return; - } - if (!parent.appliedValid) - parent.updateAppliedTransform(); - if (!child.appliedValid) - child.updateAppliedTransform(); - var px = parent.ax, py = parent.ay, psx = parent.ascaleX, sx = psx, psy = parent.ascaleY, csx = child.ascaleX; - var os1 = 0, os2 = 0, s2 = 0; - if (psx < 0) { - psx = -psx; - os1 = 180; - s2 = -1; - } - else { - os1 = 0; - s2 = 1; - } - if (psy < 0) { - psy = -psy; - s2 = -s2; - } - if (csx < 0) { - csx = -csx; - os2 = 180; - } - else - os2 = 0; - var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; - var u = Math.abs(psx - psy) <= 0.0001; - if (!u) { - cy = 0; - cwx = a * cx + parent.worldX; - cwy = c * cx + parent.worldY; - } - else { - cy = child.ay; - cwx = a * cx + b * cy + parent.worldX; - cwy = c * cx + d * cy + parent.worldY; - } - var pp = parent.parent; - a = pp.a; - b = pp.b; - c = pp.c; - d = pp.d; - var id = 1 / (a * d - b * c), x = cwx - pp.worldX, y = cwy - pp.worldY; - var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; - var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1, a2; - if (l1 < 0.0001) { - this.apply1(parent, targetX, targetY, false, stretch, false, alpha); - child.updateWorldTransformWith(cx, cy, 0, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); - return; - } - x = targetX - pp.worldX; - y = targetY - pp.worldY; - var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; - var dd = tx * tx + ty * ty; - if (softness != 0) { - softness *= psx * (csx + 1) / 2; - var td = Math.sqrt(dd), sd = td - l1 - l2 * psx + softness; - if (sd > 0) { - var p = Math.min(1, sd / (softness * 2)) - 1; - p = (sd - softness * (1 - p * p)) / td; - tx -= p * tx; - ty -= p * ty; - dd = tx * tx + ty * ty; - } - } - outer: if (u) { - l2 *= psx; - var cos = (dd - l1 * l1 - l2 * l2) / (2 * l1 * l2); - if (cos < -1) - cos = -1; - else if (cos > 1) { - cos = 1; - if (stretch) - sx *= (Math.sqrt(dd) / (l1 + l2) - 1) * alpha + 1; - } - a2 = Math.acos(cos) * bendDir; - a = l1 + l2 * cos; - b = l2 * Math.sin(a2); - a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); - } - else { - a = psx * l2; - b = psy * l2; - var aa = a * a, bb = b * b, ta = Math.atan2(ty, tx); - c = bb * l1 * l1 + aa * dd - aa * bb; - var c1 = -2 * bb * l1, c2 = bb - aa; - d = c1 * c1 - 4 * c2 * c; - if (d >= 0) { - var q = Math.sqrt(d); - if (c1 < 0) - q = -q; - q = -(c1 + q) / 2; - var r0 = q / c2, r1 = c / q; - var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; - if (r * r <= dd) { - y = Math.sqrt(dd - r * r) * bendDir; - a1 = ta - Math.atan2(y, r); - a2 = Math.atan2(y / psy, (r - l1) / psx); - break outer; - } - } - var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; - var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; - c = -a * l1 / (aa - bb); - if (c >= -1 && c <= 1) { - c = Math.acos(c); - x = a * Math.cos(c) + l1; - y = b * Math.sin(c); - d = x * x + y * y; - if (d < minDist) { - minAngle = c; - minDist = d; - minX = x; - minY = y; - } - if (d > maxDist) { - maxAngle = c; - maxDist = d; - maxX = x; - maxY = y; - } - } - if (dd <= (minDist + maxDist) / 2) { - a1 = ta - Math.atan2(minY * bendDir, minX); - a2 = minAngle * bendDir; - } - else { - a1 = ta - Math.atan2(maxY * bendDir, maxX); - a2 = maxAngle * bendDir; - } - } - var os = Math.atan2(cy, cx) * s2; - var rotation = parent.arotation; - a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; - if (a1 > 180) - a1 -= 360; - else if (a1 < -180) - a1 += 360; - parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, sx, parent.ascaleY, 0, 0); - rotation = child.arotation; - a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; - if (a2 > 180) - a2 -= 360; - else if (a2 < -180) - a2 += 360; - child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); - }; - return IkConstraint; - }()); - spine.IkConstraint = IkConstraint; + var IkConstraint = (function () { + function IkConstraint(data, skeleton) { + this.bendDirection = 0; + this.compress = false; + this.stretch = false; + this.mix = 1; + this.softness = 0; + this.active = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.mix = data.mix; + this.softness = data.softness; + this.bendDirection = data.bendDirection; + this.compress = data.compress; + this.stretch = data.stretch; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + IkConstraint.prototype.isActive = function () { + return this.active; + }; + IkConstraint.prototype.apply = function () { + this.update(); + }; + IkConstraint.prototype.update = function () { + if (this.mix == 0) + return; + var target = this.target; + var bones = this.bones; + switch (bones.length) { + case 1: + this.apply1(bones[0], target.worldX, target.worldY, this.compress, this.stretch, this.data.uniform, this.mix); + break; + case 2: + this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.stretch, this.softness, this.mix); + break; + } + }; + IkConstraint.prototype.apply1 = function (bone, targetX, targetY, compress, stretch, uniform, alpha) { + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var p = bone.parent; + var pa = p.a, pb = p.b, pc = p.c, pd = p.d; + var rotationIK = -bone.ashearX - bone.arotation, tx = 0, ty = 0; + switch (bone.data.transformMode) { + case spine.TransformMode.OnlyTranslation: + tx = targetX - bone.worldX; + ty = targetY - bone.worldY; + break; + case spine.TransformMode.NoRotationOrReflection: + var s = Math.abs(pa * pd - pb * pc) / (pa * pa + pc * pc); + var sa = pa / bone.skeleton.scaleX; + var sc = pc / bone.skeleton.scaleY; + pb = -sc * s * bone.skeleton.scaleX; + pd = sa * s * bone.skeleton.scaleY; + rotationIK += Math.atan2(sc, sa) * spine.MathUtils.radDeg; + default: + var x = targetX - p.worldX, y = targetY - p.worldY; + var d = pa * pd - pb * pc; + tx = (x * pd - y * pb) / d - bone.ax; + ty = (y * pa - x * pc) / d - bone.ay; + } + rotationIK += Math.atan2(ty, tx) * spine.MathUtils.radDeg; + if (bone.ascaleX < 0) + rotationIK += 180; + if (rotationIK > 180) + rotationIK -= 360; + else if (rotationIK < -180) + rotationIK += 360; + var sx = bone.ascaleX, sy = bone.ascaleY; + if (compress || stretch) { + switch (bone.data.transformMode) { + case spine.TransformMode.NoScale: + case spine.TransformMode.NoScaleOrReflection: + tx = targetX - bone.worldX; + ty = targetY - bone.worldY; + } + var b = bone.data.length * sx, dd = Math.sqrt(tx * tx + ty * ty); + if ((compress && dd < b) || (stretch && dd > b) && b > 0.0001) { + var s = (dd / b - 1) * alpha + 1; + sx *= s; + if (uniform) + sy *= s; + } + } + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, sx, sy, bone.ashearX, bone.ashearY); + }; + IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, stretch, softness, alpha) { + if (!parent.appliedValid) + parent.updateAppliedTransform(); + if (!child.appliedValid) + child.updateAppliedTransform(); + var px = parent.ax, py = parent.ay, psx = parent.ascaleX, sx = psx, psy = parent.ascaleY, csx = child.ascaleX; + var os1 = 0, os2 = 0, s2 = 0; + if (psx < 0) { + psx = -psx; + os1 = 180; + s2 = -1; + } + else { + os1 = 0; + s2 = 1; + } + if (psy < 0) { + psy = -psy; + s2 = -s2; + } + if (csx < 0) { + csx = -csx; + os2 = 180; + } + else + os2 = 0; + var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + var u = Math.abs(psx - psy) <= 0.0001; + if (!u) { + cy = 0; + cwx = a * cx + parent.worldX; + cwy = c * cx + parent.worldY; + } + else { + cy = child.ay; + cwx = a * cx + b * cy + parent.worldX; + cwy = c * cx + d * cy + parent.worldY; + } + var pp = parent.parent; + a = pp.a; + b = pp.b; + c = pp.c; + d = pp.d; + var id = 1 / (a * d - b * c), x = cwx - pp.worldX, y = cwy - pp.worldY; + var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; + var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1, a2; + if (l1 < 0.0001) { + this.apply1(parent, targetX, targetY, false, stretch, false, alpha); + child.updateWorldTransformWith(cx, cy, 0, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + return; + } + x = targetX - pp.worldX; + y = targetY - pp.worldY; + var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; + var dd = tx * tx + ty * ty; + if (softness != 0) { + softness *= psx * (csx + 1) / 2; + var td = Math.sqrt(dd), sd = td - l1 - l2 * psx + softness; + if (sd > 0) { + var p = Math.min(1, sd / (softness * 2)) - 1; + p = (sd - softness * (1 - p * p)) / td; + tx -= p * tx; + ty -= p * ty; + dd = tx * tx + ty * ty; + } + } + outer: if (u) { + l2 *= psx; + var cos = (dd - l1 * l1 - l2 * l2) / (2 * l1 * l2); + if (cos < -1) + cos = -1; + else if (cos > 1) { + cos = 1; + if (stretch) + sx *= (Math.sqrt(dd) / (l1 + l2) - 1) * alpha + 1; + } + a2 = Math.acos(cos) * bendDir; + a = l1 + l2 * cos; + b = l2 * Math.sin(a2); + a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); + } + else { + a = psx * l2; + b = psy * l2; + var aa = a * a, bb = b * b, ta = Math.atan2(ty, tx); + c = bb * l1 * l1 + aa * dd - aa * bb; + var c1 = -2 * bb * l1, c2 = bb - aa; + d = c1 * c1 - 4 * c2 * c; + if (d >= 0) { + var q = Math.sqrt(d); + if (c1 < 0) + q = -q; + q = -(c1 + q) / 2; + var r0 = q / c2, r1 = c / q; + var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; + if (r * r <= dd) { + y = Math.sqrt(dd - r * r) * bendDir; + a1 = ta - Math.atan2(y, r); + a2 = Math.atan2(y / psy, (r - l1) / psx); + break outer; + } + } + var minAngle = spine.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; + var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } + } + if (dd <= (minDist + maxDist) / 2) { + a1 = ta - Math.atan2(minY * bendDir, minX); + a2 = minAngle * bendDir; + } + else { + a1 = ta - Math.atan2(maxY * bendDir, maxX); + a2 = maxAngle * bendDir; + } + } + var os = Math.atan2(cy, cx) * s2; + var rotation = parent.arotation; + a1 = (a1 - os) * spine.MathUtils.radDeg + os1 - rotation; + if (a1 > 180) + a1 -= 360; + else if (a1 < -180) + a1 += 360; + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, sx, parent.ascaleY, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * spine.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; + if (a2 > 180) + a2 -= 360; + else if (a2 < -180) + a2 += 360; + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + }; + return IkConstraint; + }()); + spine.IkConstraint = IkConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var IkConstraintData = (function (_super) { - __extends(IkConstraintData, _super); - function IkConstraintData(name) { - var _this = _super.call(this, name, 0, false) || this; - _this.bones = new Array(); - _this.bendDirection = 1; - _this.compress = false; - _this.stretch = false; - _this.uniform = false; - _this.mix = 1; - _this.softness = 0; - return _this; - } - return IkConstraintData; - }(spine.ConstraintData)); - spine.IkConstraintData = IkConstraintData; + var IkConstraintData = (function (_super) { + __extends(IkConstraintData, _super); + function IkConstraintData(name) { + var _this = _super.call(this, name, 0, false) || this; + _this.bones = new Array(); + _this.bendDirection = 1; + _this.compress = false; + _this.stretch = false; + _this.uniform = false; + _this.mix = 1; + _this.softness = 0; + return _this; + } + return IkConstraintData; + }(spine.ConstraintData)); + spine.IkConstraintData = IkConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraint = (function () { - function PathConstraint(data, skeleton) { - this.position = 0; - this.spacing = 0; - this.rotateMix = 0; - this.translateMix = 0; - this.spaces = new Array(); - this.positions = new Array(); - this.world = new Array(); - this.curves = new Array(); - this.lengths = new Array(); - this.segments = new Array(); - this.active = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0, n = data.bones.length; i < n; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findSlot(data.target.name); - this.position = data.position; - this.spacing = data.spacing; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - } - PathConstraint.prototype.isActive = function () { - return this.active; - }; - PathConstraint.prototype.apply = function () { - this.update(); - }; - PathConstraint.prototype.update = function () { - var attachment = this.target.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - return; - var rotateMix = this.rotateMix, translateMix = this.translateMix; - var translate = translateMix > 0, rotate = rotateMix > 0; - if (!translate && !rotate) - return; - var data = this.data; - var percentSpacing = data.spacingMode == spine.SpacingMode.Percent; - var rotateMode = data.rotateMode; - var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; - var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; - var bones = this.bones; - var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; - var spacing = this.spacing; - if (scale || !percentSpacing) { - if (scale) - lengths = spine.Utils.setArraySize(this.lengths, boneCount); - var lengthSpacing = data.spacingMode == spine.SpacingMode.Length; - for (var i = 0, n = spacesCount - 1; i < n;) { - var bone = bones[i]; - var setupLength = bone.data.length; - if (setupLength < PathConstraint.epsilon) { - if (scale) - lengths[i] = 0; - spaces[++i] = 0; - } - else if (percentSpacing) { - if (scale) { - var x = setupLength * bone.a, y = setupLength * bone.c; - var length_1 = Math.sqrt(x * x + y * y); - lengths[i] = length_1; - } - spaces[++i] = spacing; - } - else { - var x = setupLength * bone.a, y = setupLength * bone.c; - var length_2 = Math.sqrt(x * x + y * y); - if (scale) - lengths[i] = length_2; - spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_2 / setupLength; - } - } - } - else { - for (var i = 1; i < spacesCount; i++) - spaces[i] = spacing; - } - var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, percentSpacing); - var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; - var tip = false; - if (offsetRotation == 0) - tip = rotateMode == spine.RotateMode.Chain; - else { - tip = false; - var p = this.target.bone; - offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - } - for (var i = 0, p = 3; i < boneCount; i++, p += 3) { - var bone = bones[i]; - bone.worldX += (boneX - bone.worldX) * translateMix; - bone.worldY += (boneY - bone.worldY) * translateMix; - var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; - if (scale) { - var length_3 = lengths[i]; - if (length_3 != 0) { - var s = (Math.sqrt(dx * dx + dy * dy) / length_3 - 1) * rotateMix + 1; - bone.a *= s; - bone.c *= s; - } - } - boneX = x; - boneY = y; - if (rotate) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; - if (tangents) - r = positions[p - 1]; - else if (spaces[i + 1] == 0) - r = positions[p + 2]; - else - r = Math.atan2(dy, dx); - r -= Math.atan2(c, a); - if (tip) { - cos = Math.cos(r); - sin = Math.sin(r); - var length_4 = bone.data.length; - boneX += (length_4 * (cos * a - sin * c) - dx) * rotateMix; - boneY += (length_4 * (sin * a + cos * c) - dy) * rotateMix; - } - else { - r += offsetRotation; - } - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - cos = Math.cos(r); - sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - } - bone.appliedValid = false; - } - }; - PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { - var target = this.target; - var position = this.position; - var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; - var closed = path.closed; - var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; - if (!path.constantSpeed) { - var lengths = path.lengths; - curveCount -= closed ? 1 : 2; - var pathLength_1 = lengths[curveCount]; - if (percentPosition) - position *= pathLength_1; - if (percentSpacing) { - for (var i = 1; i < spacesCount; i++) - spaces[i] *= pathLength_1; - } - world = spine.Utils.setArraySize(this.world, 8); - for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength_1; - if (p < 0) - p += pathLength_1; - curve = 0; - } - else if (p < 0) { - if (prevCurve != PathConstraint.BEFORE) { - prevCurve = PathConstraint.BEFORE; - path.computeWorldVertices(target, 2, 4, world, 0, 2); - } - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength_1) { - if (prevCurve != PathConstraint.AFTER) { - prevCurve = PathConstraint.AFTER; - path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); - } - this.addAfterPosition(p - pathLength_1, world, 0, out, o); - continue; - } - for (;; curve++) { - var length_5 = lengths[curve]; - if (p > length_5) - continue; - if (curve == 0) - p /= length_5; - else { - var prev = lengths[curve - 1]; - p = (p - prev) / (length_5 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - if (closed && curve == curveCount) { - path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); - path.computeWorldVertices(target, 0, 4, world, 4, 2); - } - else - path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); - } - this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); - } - return out; - } - if (closed) { - verticesLength += 2; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); - path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); - world[verticesLength - 2] = world[0]; - world[verticesLength - 1] = world[1]; - } - else { - curveCount--; - verticesLength -= 4; - world = spine.Utils.setArraySize(this.world, verticesLength); - path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); - } - var curves = spine.Utils.setArraySize(this.curves, curveCount); - var pathLength = 0; - var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; - var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; - for (var i = 0, w = 2; i < curveCount; i++, w += 6) { - cx1 = world[w]; - cy1 = world[w + 1]; - cx2 = world[w + 2]; - cy2 = world[w + 3]; - x2 = world[w + 4]; - y2 = world[w + 5]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; - tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx; - dfy += ddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - pathLength += Math.sqrt(dfx * dfx + dfy * dfy); - curves[i] = pathLength; - x1 = x2; - y1 = y2; - } - if (percentPosition) - position *= pathLength; - else - position *= pathLength / path.lengths[curveCount - 1]; - if (percentSpacing) { - for (var i = 1; i < spacesCount; i++) - spaces[i] *= pathLength; - } - var segments = this.segments; - var curveLength = 0; - for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { - var space = spaces[i]; - position += space; - var p = position; - if (closed) { - p %= pathLength; - if (p < 0) - p += pathLength; - curve = 0; - } - else if (p < 0) { - this.addBeforePosition(p, world, 0, out, o); - continue; - } - else if (p > pathLength) { - this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); - continue; - } - for (;; curve++) { - var length_6 = curves[curve]; - if (p > length_6) - continue; - if (curve == 0) - p /= length_6; - else { - var prev = curves[curve - 1]; - p = (p - prev) / (length_6 - prev); - } - break; - } - if (curve != prevCurve) { - prevCurve = curve; - var ii = curve * 6; - x1 = world[ii]; - y1 = world[ii + 1]; - cx1 = world[ii + 2]; - cy1 = world[ii + 3]; - cx2 = world[ii + 4]; - cy2 = world[ii + 5]; - x2 = world[ii + 6]; - y2 = world[ii + 7]; - tmpx = (x1 - cx1 * 2 + cx2) * 0.03; - tmpy = (y1 - cy1 * 2 + cy2) * 0.03; - dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; - dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; - ddfx = tmpx * 2 + dddfx; - ddfy = tmpy * 2 + dddfy; - dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; - dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; - curveLength = Math.sqrt(dfx * dfx + dfy * dfy); - segments[0] = curveLength; - for (ii = 1; ii < 8; ii++) { - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[ii] = curveLength; - } - dfx += ddfx; - dfy += ddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[8] = curveLength; - dfx += ddfx + dddfx; - dfy += ddfy + dddfy; - curveLength += Math.sqrt(dfx * dfx + dfy * dfy); - segments[9] = curveLength; - segment = 0; - } - p *= curveLength; - for (;; segment++) { - var length_7 = segments[segment]; - if (p > length_7) - continue; - if (segment == 0) - p /= length_7; - else { - var prev = segments[segment - 1]; - p = segment + (p - prev) / (length_7 - prev); - } - break; - } - this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); - } - return out; - }; - PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { - var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { - var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); - out[o] = x1 + p * Math.cos(r); - out[o + 1] = y1 + p * Math.sin(r); - out[o + 2] = r; - }; - PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { - if (p == 0 || isNaN(p)) { - out[o] = x1; - out[o + 1] = y1; - out[o + 2] = Math.atan2(cy1 - y1, cx1 - x1); - return; - } - var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; - var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; - var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; - out[o] = x; - out[o + 1] = y; - if (tangents) { - if (p < 0.001) - out[o + 2] = Math.atan2(cy1 - y1, cx1 - x1); - else - out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); - } - }; - PathConstraint.NONE = -1; - PathConstraint.BEFORE = -2; - PathConstraint.AFTER = -3; - PathConstraint.epsilon = 0.00001; - return PathConstraint; - }()); - spine.PathConstraint = PathConstraint; + var PathConstraint = (function () { + function PathConstraint(data, skeleton) { + this.position = 0; + this.spacing = 0; + this.rotateMix = 0; + this.translateMix = 0; + this.spaces = new Array(); + this.positions = new Array(); + this.world = new Array(); + this.curves = new Array(); + this.lengths = new Array(); + this.segments = new Array(); + this.active = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0, n = data.bones.length; i < n; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findSlot(data.target.name); + this.position = data.position; + this.spacing = data.spacing; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + } + PathConstraint.prototype.isActive = function () { + return this.active; + }; + PathConstraint.prototype.update = function () { + var attachment = this.target.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + return; + var rotateMix = this.rotateMix, translateMix = this.translateMix; + var translate = translateMix > 0, rotate = rotateMix > 0; + if (!translate && !rotate) + return; + var data = this.data; + var percentSpacing = data.spacingMode == spine.SpacingMode.Percent; + var rotateMode = data.rotateMode; + var tangents = rotateMode == spine.RotateMode.Tangent, scale = rotateMode == spine.RotateMode.ChainScale; + var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1; + var bones = this.bones; + var spaces = spine.Utils.setArraySize(this.spaces, spacesCount), lengths = null; + var spacing = this.spacing; + if (scale || !percentSpacing) { + if (scale) + lengths = spine.Utils.setArraySize(this.lengths, boneCount); + var lengthSpacing = data.spacingMode == spine.SpacingMode.Length; + for (var i = 0, n = spacesCount - 1; i < n;) { + var bone = bones[i]; + var setupLength = bone.data.length; + if (setupLength < PathConstraint.epsilon) { + if (scale) + lengths[i] = 0; + spaces[++i] = 0; + } + else if (percentSpacing) { + if (scale) { + var x = setupLength * bone.a, y = setupLength * bone.c; + var length_1 = Math.sqrt(x * x + y * y); + lengths[i] = length_1; + } + spaces[++i] = spacing; + } + else { + var x = setupLength * bone.a, y = setupLength * bone.c; + var length_2 = Math.sqrt(x * x + y * y); + if (scale) + lengths[i] = length_2; + spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_2 / setupLength; + } + } + } + else { + for (var i = 1; i < spacesCount; i++) + spaces[i] = spacing; + } + var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == spine.PositionMode.Percent, percentSpacing); + var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; + var tip = false; + if (offsetRotation == 0) + tip = rotateMode == spine.RotateMode.Chain; + else { + tip = false; + var p = this.target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + } + for (var i = 0, p = 3; i < boneCount; i++, p += 3) { + var bone = bones[i]; + bone.worldX += (boneX - bone.worldX) * translateMix; + bone.worldY += (boneY - bone.worldY) * translateMix; + var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; + if (scale) { + var length_3 = lengths[i]; + if (length_3 != 0) { + var s = (Math.sqrt(dx * dx + dy * dy) / length_3 - 1) * rotateMix + 1; + bone.a *= s; + bone.c *= s; + } + } + boneX = x; + boneY = y; + if (rotate) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; + if (tangents) + r = positions[p - 1]; + else if (spaces[i + 1] == 0) + r = positions[p + 2]; + else + r = Math.atan2(dy, dx); + r -= Math.atan2(c, a); + if (tip) { + cos = Math.cos(r); + sin = Math.sin(r); + var length_4 = bone.data.length; + boneX += (length_4 * (cos * a - sin * c) - dx) * rotateMix; + boneY += (length_4 * (sin * a + cos * c) - dy) * rotateMix; + } + else { + r += offsetRotation; + } + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + cos = Math.cos(r); + sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + bone.appliedValid = false; + } + }; + PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) { + var target = this.target; + var position = this.position; + var spaces = this.spaces, out = spine.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null; + var closed = path.closed; + var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE; + if (!path.constantSpeed) { + var lengths = path.lengths; + curveCount -= closed ? 1 : 2; + var pathLength_1 = lengths[curveCount]; + if (percentPosition) + position *= pathLength_1; + if (percentSpacing) { + for (var i = 1; i < spacesCount; i++) + spaces[i] *= pathLength_1; + } + world = spine.Utils.setArraySize(this.world, 8); + for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength_1; + if (p < 0) + p += pathLength_1; + curve = 0; + } + else if (p < 0) { + if (prevCurve != PathConstraint.BEFORE) { + prevCurve = PathConstraint.BEFORE; + path.computeWorldVertices(target, 2, 4, world, 0, 2); + } + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength_1) { + if (prevCurve != PathConstraint.AFTER) { + prevCurve = PathConstraint.AFTER; + path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); + } + this.addAfterPosition(p - pathLength_1, world, 0, out, o); + continue; + } + for (;; curve++) { + var length_5 = lengths[curve]; + if (p > length_5) + continue; + if (curve == 0) + p /= length_5; + else { + var prev = lengths[curve - 1]; + p = (p - prev) / (length_5 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + if (closed && curve == curveCount) { + path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); + path.computeWorldVertices(target, 0, 4, world, 4, 2); + } + else + path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); + } + this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0)); + } + return out; + } + if (closed) { + verticesLength += 2; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); + path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); + world[verticesLength - 2] = world[0]; + world[verticesLength - 1] = world[1]; + } + else { + curveCount--; + verticesLength -= 4; + world = spine.Utils.setArraySize(this.world, verticesLength); + path.computeWorldVertices(target, 2, verticesLength, world, 0, 2); + } + var curves = spine.Utils.setArraySize(this.curves, curveCount); + var pathLength = 0; + var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; + var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; + for (var i = 0, w = 2; i < curveCount; i++, w += 6) { + cx1 = world[w]; + cy1 = world[w + 1]; + cx2 = world[w + 2]; + cy2 = world[w + 3]; + x2 = world[w + 4]; + y2 = world[w + 5]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; + tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + curves[i] = pathLength; + x1 = x2; + y1 = y2; + } + if (percentPosition) + position *= pathLength; + else + position *= pathLength / path.lengths[curveCount - 1]; + if (percentSpacing) { + for (var i = 1; i < spacesCount; i++) + spaces[i] *= pathLength; + } + var segments = this.segments; + var curveLength = 0; + for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { + var space = spaces[i]; + position += space; + var p = position; + if (closed) { + p %= pathLength; + if (p < 0) + p += pathLength; + curve = 0; + } + else if (p < 0) { + this.addBeforePosition(p, world, 0, out, o); + continue; + } + else if (p > pathLength) { + this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); + continue; + } + for (;; curve++) { + var length_6 = curves[curve]; + if (p > length_6) + continue; + if (curve == 0) + p /= length_6; + else { + var prev = curves[curve - 1]; + p = (p - prev) / (length_6 - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + var ii = curve * 6; + x1 = world[ii]; + y1 = world[ii + 1]; + cx1 = world[ii + 2]; + cy1 = world[ii + 3]; + cx2 = world[ii + 4]; + cy2 = world[ii + 5]; + x2 = world[ii + 6]; + y2 = world[ii + 7]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.03; + tmpy = (y1 - cy1 * 2 + cy2) * 0.03; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; + curveLength = Math.sqrt(dfx * dfx + dfy * dfy); + segments[0] = curveLength; + for (ii = 1; ii < 8; ii++) { + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[ii] = curveLength; + } + dfx += ddfx; + dfy += ddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[8] = curveLength; + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[9] = curveLength; + segment = 0; + } + p *= curveLength; + for (;; segment++) { + var length_7 = segments[segment]; + if (p > length_7) + continue; + if (segment == 0) + p /= length_7; + else { + var prev = segments[segment - 1]; + p = segment + (p - prev) / (length_7 - prev); + } + break; + } + this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0)); + } + return out; + }; + PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) { + var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) { + var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + }; + PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { + if (p == 0 || isNaN(p)) { + out[o] = x1; + out[o + 1] = y1; + out[o + 2] = Math.atan2(cy1 - y1, cx1 - x1); + return; + } + var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; + var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; + var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; + out[o] = x; + out[o + 1] = y; + if (tangents) { + if (p < 0.001) + out[o + 2] = Math.atan2(cy1 - y1, cx1 - x1); + else + out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); + } + }; + PathConstraint.NONE = -1; + PathConstraint.BEFORE = -2; + PathConstraint.AFTER = -3; + PathConstraint.epsilon = 0.00001; + return PathConstraint; + }()); + spine.PathConstraint = PathConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var PathConstraintData = (function (_super) { - __extends(PathConstraintData, _super); - function PathConstraintData(name) { - var _this = _super.call(this, name, 0, false) || this; - _this.bones = new Array(); - return _this; - } - return PathConstraintData; - }(spine.ConstraintData)); - spine.PathConstraintData = PathConstraintData; - var PositionMode; - (function (PositionMode) { - PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; - PositionMode[PositionMode["Percent"] = 1] = "Percent"; - })(PositionMode = spine.PositionMode || (spine.PositionMode = {})); - var SpacingMode; - (function (SpacingMode) { - SpacingMode[SpacingMode["Length"] = 0] = "Length"; - SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; - SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; - })(SpacingMode = spine.SpacingMode || (spine.SpacingMode = {})); - var RotateMode; - (function (RotateMode) { - RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; - RotateMode[RotateMode["Chain"] = 1] = "Chain"; - RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; - })(RotateMode = spine.RotateMode || (spine.RotateMode = {})); + var PathConstraintData = (function (_super) { + __extends(PathConstraintData, _super); + function PathConstraintData(name) { + var _this = _super.call(this, name, 0, false) || this; + _this.bones = new Array(); + return _this; + } + return PathConstraintData; + }(spine.ConstraintData)); + spine.PathConstraintData = PathConstraintData; + var PositionMode; + (function (PositionMode) { + PositionMode[PositionMode["Fixed"] = 0] = "Fixed"; + PositionMode[PositionMode["Percent"] = 1] = "Percent"; + })(PositionMode = spine.PositionMode || (spine.PositionMode = {})); + var SpacingMode; + (function (SpacingMode) { + SpacingMode[SpacingMode["Length"] = 0] = "Length"; + SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed"; + SpacingMode[SpacingMode["Percent"] = 2] = "Percent"; + })(SpacingMode = spine.SpacingMode || (spine.SpacingMode = {})); + var RotateMode; + (function (RotateMode) { + RotateMode[RotateMode["Tangent"] = 0] = "Tangent"; + RotateMode[RotateMode["Chain"] = 1] = "Chain"; + RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale"; + })(RotateMode = spine.RotateMode || (spine.RotateMode = {})); })(spine || (spine = {})); var spine; (function (spine) { - var Assets = (function () { - function Assets(clientId) { - this.toLoad = new Array(); - this.assets = {}; - this.clientId = clientId; - } - Assets.prototype.loaded = function () { - var i = 0; - for (var v in this.assets) - i++; - return i; - }; - return Assets; - }()); - var SharedAssetManager = (function () { - function SharedAssetManager(pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - this.clientAssets = {}; - this.queuedAssets = {}; - this.rawAssets = {}; - this.errors = {}; - this.pathPrefix = pathPrefix; - } - SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) { - clientAssets = new Assets(clientId); - this.clientAssets[clientId] = clientAssets; - } - if (textureLoader !== null) - clientAssets.textureLoader = textureLoader; - clientAssets.toLoad.push(path); - if (this.queuedAssets[path] === path) { - return false; - } - else { - this.queuedAssets[path] = path; - return true; - } - }; - SharedAssetManager.prototype.loadText = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.overrideMimeType("text/html"); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = request.responseText; - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadJson = function (clientId, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, null, path)) - return; - var request = new XMLHttpRequest(); - request.overrideMimeType("text/html"); - request.onreadystatechange = function () { - if (request.readyState == XMLHttpRequest.DONE) { - if (request.status >= 200 && request.status < 300) { - _this.rawAssets[path] = JSON.parse(request.responseText); - } - else { - _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; - } - } - }; - request.open("GET", path, true); - request.send(); - }; - SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { - var _this = this; - path = this.pathPrefix + path; - if (!this.queueAsset(clientId, textureLoader, path)) - return; - var isBrowser = !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document); - var isWebWorker = !isBrowser && typeof importScripts !== 'undefined'; - if (isWebWorker) { - var options = { mode: "cors" }; - fetch(path, options).then(function (response) { - if (!response.ok) { - _this.errors[path] = "Couldn't load image " + path; - } - return response.blob(); - }).then(function (blob) { - return createImageBitmap(blob, { - premultiplyAlpha: 'none', - colorSpaceConversion: 'none' - }); - }).then(function (bitmap) { - _this.rawAssets[path] = bitmap; - }); - } - else { - var img_1 = new Image(); - img_1.crossOrigin = "anonymous"; - img_1.onload = function (ev) { - _this.rawAssets[path] = img_1; - }; - img_1.onerror = function (ev) { - _this.errors[path] = "Couldn't load image " + path; - }; - img_1.src = path; - } - }; - SharedAssetManager.prototype.get = function (clientId, path) { - path = this.pathPrefix + path; - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - return clientAssets.assets[path]; - }; - SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { - var isBrowser = !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document); - var isWebWorker = !isBrowser && typeof importScripts !== 'undefined'; - for (var i = 0; i < clientAssets.toLoad.length; i++) { - var path = clientAssets.toLoad[i]; - var asset = clientAssets.assets[path]; - if (asset === null || asset === undefined) { - var rawAsset = this.rawAssets[path]; - if (rawAsset === null || rawAsset === undefined) - continue; - if (isWebWorker) { - if (rawAsset instanceof ImageBitmap) { - clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); - } - else { - clientAssets.assets[path] = rawAsset; - } - } - else { - if (rawAsset instanceof HTMLImageElement) { - clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); - } - else { - clientAssets.assets[path] = rawAsset; - } - } - } - } - }; - SharedAssetManager.prototype.isLoadingComplete = function (clientId) { - var clientAssets = this.clientAssets[clientId]; - if (clientAssets === null || clientAssets === undefined) - return true; - this.updateClientAssets(clientAssets); - return clientAssets.toLoad.length == clientAssets.loaded(); - }; - SharedAssetManager.prototype.dispose = function () { - }; - SharedAssetManager.prototype.hasErrors = function () { - return Object.keys(this.errors).length > 0; - }; - SharedAssetManager.prototype.getErrors = function () { - return this.errors; - }; - return SharedAssetManager; - }()); - spine.SharedAssetManager = SharedAssetManager; + var Assets = (function () { + function Assets(clientId) { + this.toLoad = new Array(); + this.assets = {}; + this.clientId = clientId; + } + Assets.prototype.loaded = function () { + var i = 0; + for (var v in this.assets) + i++; + return i; + }; + return Assets; + }()); + var SharedAssetManager = (function () { + function SharedAssetManager(pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + this.clientAssets = {}; + this.queuedAssets = {}; + this.rawAssets = {}; + this.errors = {}; + this.pathPrefix = pathPrefix; + } + SharedAssetManager.prototype.queueAsset = function (clientId, textureLoader, path) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) { + clientAssets = new Assets(clientId); + this.clientAssets[clientId] = clientAssets; + } + if (textureLoader !== null) + clientAssets.textureLoader = textureLoader; + clientAssets.toLoad.push(path); + if (this.queuedAssets[path] === path) { + return false; + } + else { + this.queuedAssets[path] = path; + return true; + } + }; + SharedAssetManager.prototype.loadText = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.overrideMimeType("text/html"); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = request.responseText; + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadJson = function (clientId, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, null, path)) + return; + var request = new XMLHttpRequest(); + request.overrideMimeType("text/html"); + request.onreadystatechange = function () { + if (request.readyState == XMLHttpRequest.DONE) { + if (request.status >= 200 && request.status < 300) { + _this.rawAssets[path] = JSON.parse(request.responseText); + } + else { + _this.errors[path] = "Couldn't load text " + path + ": status " + request.status + ", " + request.responseText; + } + } + }; + request.open("GET", path, true); + request.send(); + }; + SharedAssetManager.prototype.loadTexture = function (clientId, textureLoader, path) { + var _this = this; + path = this.pathPrefix + path; + if (!this.queueAsset(clientId, textureLoader, path)) + return; + var isBrowser = !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document); + var isWebWorker = !isBrowser && typeof importScripts !== 'undefined'; + if (isWebWorker) { + var options = { mode: "cors" }; + fetch(path, options).then(function (response) { + if (!response.ok) { + _this.errors[path] = "Couldn't load image " + path; + } + return response.blob(); + }).then(function (blob) { + return createImageBitmap(blob, { + premultiplyAlpha: 'none', + colorSpaceConversion: 'none' + }); + }).then(function (bitmap) { + _this.rawAssets[path] = bitmap; + }); + } + else { + var img_1 = new Image(); + img_1.crossOrigin = "anonymous"; + img_1.onload = function (ev) { + _this.rawAssets[path] = img_1; + }; + img_1.onerror = function (ev) { + _this.errors[path] = "Couldn't load image " + path; + }; + img_1.src = path; + } + }; + SharedAssetManager.prototype.get = function (clientId, path) { + path = this.pathPrefix + path; + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + return clientAssets.assets[path]; + }; + SharedAssetManager.prototype.updateClientAssets = function (clientAssets) { + var isBrowser = !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document); + var isWebWorker = !isBrowser && typeof importScripts !== 'undefined'; + for (var i = 0; i < clientAssets.toLoad.length; i++) { + var path = clientAssets.toLoad[i]; + var asset = clientAssets.assets[path]; + if (asset === null || asset === undefined) { + var rawAsset = this.rawAssets[path]; + if (rawAsset === null || rawAsset === undefined) + continue; + if (isWebWorker) { + if (rawAsset instanceof ImageBitmap) { + clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); + } + else { + clientAssets.assets[path] = rawAsset; + } + } + else { + if (rawAsset instanceof HTMLImageElement) { + clientAssets.assets[path] = clientAssets.textureLoader(rawAsset); + } + else { + clientAssets.assets[path] = rawAsset; + } + } + } + } + }; + SharedAssetManager.prototype.isLoadingComplete = function (clientId) { + var clientAssets = this.clientAssets[clientId]; + if (clientAssets === null || clientAssets === undefined) + return true; + this.updateClientAssets(clientAssets); + return clientAssets.toLoad.length == clientAssets.loaded(); + }; + SharedAssetManager.prototype.dispose = function () { + }; + SharedAssetManager.prototype.hasErrors = function () { + return Object.keys(this.errors).length > 0; + }; + SharedAssetManager.prototype.getErrors = function () { + return this.errors; + }; + return SharedAssetManager; + }()); + spine.SharedAssetManager = SharedAssetManager; })(spine || (spine = {})); var spine; (function (spine) { - var Skeleton = (function () { - function Skeleton(data) { - this._updateCache = new Array(); - this.updateCacheReset = new Array(); - this.time = 0; - this.scaleX = 1; - this.scaleY = 1; - this.x = 0; - this.y = 0; - if (data == null) - throw new Error("data cannot be null."); - this.data = data; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) { - var boneData = data.bones[i]; - var bone = void 0; - if (boneData.parent == null) - bone = new spine.Bone(boneData, this, null); - else { - var parent_1 = this.bones[boneData.parent.index]; - bone = new spine.Bone(boneData, this, parent_1); - parent_1.children.push(bone); - } - this.bones.push(bone); - } - this.slots = new Array(); - this.drawOrder = new Array(); - for (var i = 0; i < data.slots.length; i++) { - var slotData = data.slots[i]; - var bone = this.bones[slotData.boneData.index]; - var slot = new spine.Slot(slotData, bone); - this.slots.push(slot); - this.drawOrder.push(slot); - } - this.ikConstraints = new Array(); - for (var i = 0; i < data.ikConstraints.length; i++) { - var ikConstraintData = data.ikConstraints[i]; - this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); - } - this.transformConstraints = new Array(); - for (var i = 0; i < data.transformConstraints.length; i++) { - var transformConstraintData = data.transformConstraints[i]; - this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); - } - this.pathConstraints = new Array(); - for (var i = 0; i < data.pathConstraints.length; i++) { - var pathConstraintData = data.pathConstraints[i]; - this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); - } - this.color = new spine.Color(1, 1, 1, 1); - this.updateCache(); - } - Skeleton.prototype.updateCache = function () { - var updateCache = this._updateCache; - updateCache.length = 0; - this.updateCacheReset.length = 0; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - bone.sorted = bone.data.skinRequired; - bone.active = !bone.sorted; - } - if (this.skin != null) { - var skinBones = this.skin.bones; - for (var i = 0, n = this.skin.bones.length; i < n; i++) { - var bone = this.bones[skinBones[i].index]; - do { - bone.sorted = false; - bone.active = true; - bone = bone.parent; - } while (bone != null); - } - } - var ikConstraints = this.ikConstraints; - var transformConstraints = this.transformConstraints; - var pathConstraints = this.pathConstraints; - var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; - var constraintCount = ikCount + transformCount + pathCount; - outer: for (var i = 0; i < constraintCount; i++) { - for (var ii = 0; ii < ikCount; ii++) { - var constraint = ikConstraints[ii]; - if (constraint.data.order == i) { - this.sortIkConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < transformCount; ii++) { - var constraint = transformConstraints[ii]; - if (constraint.data.order == i) { - this.sortTransformConstraint(constraint); - continue outer; - } - } - for (var ii = 0; ii < pathCount; ii++) { - var constraint = pathConstraints[ii]; - if (constraint.data.order == i) { - this.sortPathConstraint(constraint); - continue outer; - } - } - } - for (var i = 0, n = bones.length; i < n; i++) - this.sortBone(bones[i]); - }; - Skeleton.prototype.sortIkConstraint = function (constraint) { - constraint.active = constraint.target.isActive() && (!constraint.data.skinRequired || (this.skin != null && spine.Utils.contains(this.skin.constraints, constraint.data, true))); - if (!constraint.active) - return; - var target = constraint.target; - this.sortBone(target); - var constrained = constraint.bones; - var parent = constrained[0]; - this.sortBone(parent); - if (constrained.length > 1) { - var child = constrained[constrained.length - 1]; - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - this._updateCache.push(constraint); - this.sortReset(parent.children); - constrained[constrained.length - 1].sorted = true; - }; - Skeleton.prototype.sortPathConstraint = function (constraint) { - constraint.active = constraint.target.bone.isActive() && (!constraint.data.skinRequired || (this.skin != null && spine.Utils.contains(this.skin.constraints, constraint.data, true))); - if (!constraint.active) - return; - var slot = constraint.target; - var slotIndex = slot.data.index; - var slotBone = slot.bone; - if (this.skin != null) - this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); - if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) - this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); - for (var i = 0, n = this.data.skins.length; i < n; i++) - this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); - var attachment = slot.getAttachment(); - if (attachment instanceof spine.PathAttachment) - this.sortPathConstraintAttachmentWith(attachment, slotBone); - var constrained = constraint.bones; - var boneCount = constrained.length; - for (var i = 0; i < boneCount; i++) - this.sortBone(constrained[i]); - this._updateCache.push(constraint); - for (var i = 0; i < boneCount; i++) - this.sortReset(constrained[i].children); - for (var i = 0; i < boneCount; i++) - constrained[i].sorted = true; - }; - Skeleton.prototype.sortTransformConstraint = function (constraint) { - constraint.active = constraint.target.isActive() && (!constraint.data.skinRequired || (this.skin != null && spine.Utils.contains(this.skin.constraints, constraint.data, true))); - if (!constraint.active) - return; - this.sortBone(constraint.target); - var constrained = constraint.bones; - var boneCount = constrained.length; - if (constraint.data.local) { - for (var i = 0; i < boneCount; i++) { - var child = constrained[i]; - this.sortBone(child.parent); - if (!(this._updateCache.indexOf(child) > -1)) - this.updateCacheReset.push(child); - } - } - else { - for (var i = 0; i < boneCount; i++) { - this.sortBone(constrained[i]); - } - } - this._updateCache.push(constraint); - for (var ii = 0; ii < boneCount; ii++) - this.sortReset(constrained[ii].children); - for (var ii = 0; ii < boneCount; ii++) - constrained[ii].sorted = true; - }; - Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { - var attachments = skin.attachments[slotIndex]; - if (!attachments) - return; - for (var key in attachments) { - this.sortPathConstraintAttachmentWith(attachments[key], slotBone); - } - }; - Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { - if (!(attachment instanceof spine.PathAttachment)) - return; - var pathBones = attachment.bones; - if (pathBones == null) - this.sortBone(slotBone); - else { - var bones = this.bones; - var i = 0; - while (i < pathBones.length) { - var boneCount = pathBones[i++]; - for (var n = i + boneCount; i < n; i++) { - var boneIndex = pathBones[i]; - this.sortBone(bones[boneIndex]); - } - } - } - }; - Skeleton.prototype.sortBone = function (bone) { - if (bone.sorted) - return; - var parent = bone.parent; - if (parent != null) - this.sortBone(parent); - bone.sorted = true; - this._updateCache.push(bone); - }; - Skeleton.prototype.sortReset = function (bones) { - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.active) - continue; - if (bone.sorted) - this.sortReset(bone.children); - bone.sorted = false; - } - }; - Skeleton.prototype.updateWorldTransform = function () { - var updateCacheReset = this.updateCacheReset; - for (var i = 0, n = updateCacheReset.length; i < n; i++) { - var bone = updateCacheReset[i]; - bone.ax = bone.x; - bone.ay = bone.y; - bone.arotation = bone.rotation; - bone.ascaleX = bone.scaleX; - bone.ascaleY = bone.scaleY; - bone.ashearX = bone.shearX; - bone.ashearY = bone.shearY; - bone.appliedValid = true; - } - var updateCache = this._updateCache; - for (var i = 0, n = updateCache.length; i < n; i++) - updateCache[i].update(); - }; - Skeleton.prototype.setToSetupPose = function () { - this.setBonesToSetupPose(); - this.setSlotsToSetupPose(); - }; - Skeleton.prototype.setBonesToSetupPose = function () { - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - bones[i].setToSetupPose(); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - constraint.mix = constraint.data.mix; - constraint.softness = constraint.data.softness; - constraint.bendDirection = constraint.data.bendDirection; - constraint.compress = constraint.data.compress; - constraint.stretch = constraint.data.stretch; - } - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - var data = constraint.data; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - constraint.scaleMix = data.scaleMix; - constraint.shearMix = data.shearMix; - } - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - var data = constraint.data; - constraint.position = data.position; - constraint.spacing = data.spacing; - constraint.rotateMix = data.rotateMix; - constraint.translateMix = data.translateMix; - } - }; - Skeleton.prototype.setSlotsToSetupPose = function () { - var slots = this.slots; - spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); - for (var i = 0, n = slots.length; i < n; i++) - slots[i].setToSetupPose(); - }; - Skeleton.prototype.getRootBone = function () { - if (this.bones.length == 0) - return null; - return this.bones[0]; - }; - Skeleton.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.data.name == boneName) - return bone; - } - return null; - }; - Skeleton.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].data.name == boneName) - return i; - return -1; - }; - Skeleton.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) - return slot; - } - return null; - }; - Skeleton.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].data.name == slotName) - return i; - return -1; - }; - Skeleton.prototype.setSkinByName = function (skinName) { - var skin = this.data.findSkin(skinName); - if (skin == null) - throw new Error("Skin not found: " + skinName); - this.setSkin(skin); - }; - Skeleton.prototype.setSkin = function (newSkin) { - if (newSkin == this.skin) - return; - if (newSkin != null) { - if (this.skin != null) - newSkin.attachAll(this, this.skin); - else { - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var name_1 = slot.data.attachmentName; - if (name_1 != null) { - var attachment = newSkin.getAttachment(i, name_1); - if (attachment != null) - slot.setAttachment(attachment); - } - } - } - } - this.skin = newSkin; - this.updateCache(); - }; - Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { - return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); - }; - Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { - if (attachmentName == null) - throw new Error("attachmentName cannot be null."); - if (this.skin != null) { - var attachment = this.skin.getAttachment(slotIndex, attachmentName); - if (attachment != null) - return attachment; - } - if (this.data.defaultSkin != null) - return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); - return null; - }; - Skeleton.prototype.setAttachment = function (slotName, attachmentName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.data.name == slotName) { - var attachment = null; - if (attachmentName != null) { - attachment = this.getAttachment(i, attachmentName); - if (attachment == null) - throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); - } - slot.setAttachment(attachment); - return; - } - } - throw new Error("Slot not found: " + slotName); - }; - Skeleton.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var ikConstraint = ikConstraints[i]; - if (ikConstraint.data.name == constraintName) - return ikConstraint; - } - return null; - }; - Skeleton.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.data.name == constraintName) - return constraint; - } - return null; - }; - Skeleton.prototype.getBounds = function (offset, size, temp) { - if (temp === void 0) { temp = new Array(2); } - if (offset == null) - throw new Error("offset cannot be null."); - if (size == null) - throw new Error("size cannot be null."); - var drawOrder = this.drawOrder; - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; - if (!slot.bone.active) - continue; - var verticesLength = 0; - var vertices = null; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - verticesLength = 8; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - attachment.computeWorldVertices(slot.bone, vertices, 0, 2); - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - verticesLength = mesh.worldVerticesLength; - vertices = spine.Utils.setArraySize(temp, verticesLength, 0); - mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); - } - if (vertices != null) { - for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - } - offset.set(minX, minY); - size.set(maxX - minX, maxY - minY); - }; - Skeleton.prototype.update = function (delta) { - this.time += delta; - }; - return Skeleton; - }()); - spine.Skeleton = Skeleton; + var Skeleton = (function () { + function Skeleton(data) { + this._updateCache = new Array(); + this.time = 0; + this.scaleX = 1; + this.scaleY = 1; + this.x = 0; + this.y = 0; + if (data == null) + throw new Error("data cannot be null."); + this.data = data; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) { + var boneData = data.bones[i]; + var bone = void 0; + if (boneData.parent == null) + bone = new spine.Bone(boneData, this, null); + else { + var parent_1 = this.bones[boneData.parent.index]; + bone = new spine.Bone(boneData, this, parent_1); + parent_1.children.push(bone); + } + this.bones.push(bone); + } + this.slots = new Array(); + this.drawOrder = new Array(); + for (var i = 0; i < data.slots.length; i++) { + var slotData = data.slots[i]; + var bone = this.bones[slotData.boneData.index]; + var slot = new spine.Slot(slotData, bone); + this.slots.push(slot); + this.drawOrder.push(slot); + } + this.ikConstraints = new Array(); + for (var i = 0; i < data.ikConstraints.length; i++) { + var ikConstraintData = data.ikConstraints[i]; + this.ikConstraints.push(new spine.IkConstraint(ikConstraintData, this)); + } + this.transformConstraints = new Array(); + for (var i = 0; i < data.transformConstraints.length; i++) { + var transformConstraintData = data.transformConstraints[i]; + this.transformConstraints.push(new spine.TransformConstraint(transformConstraintData, this)); + } + this.pathConstraints = new Array(); + for (var i = 0; i < data.pathConstraints.length; i++) { + var pathConstraintData = data.pathConstraints[i]; + this.pathConstraints.push(new spine.PathConstraint(pathConstraintData, this)); + } + this.color = new spine.Color(1, 1, 1, 1); + this.updateCache(); + } + Skeleton.prototype.updateCache = function () { + var updateCache = this._updateCache; + updateCache.length = 0; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + bone.sorted = bone.data.skinRequired; + bone.active = !bone.sorted; + } + if (this.skin != null) { + var skinBones = this.skin.bones; + for (var i = 0, n = this.skin.bones.length; i < n; i++) { + var bone = this.bones[skinBones[i].index]; + do { + bone.sorted = false; + bone.active = true; + bone = bone.parent; + } while (bone != null); + } + } + var ikConstraints = this.ikConstraints; + var transformConstraints = this.transformConstraints; + var pathConstraints = this.pathConstraints; + var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length; + var constraintCount = ikCount + transformCount + pathCount; + outer: for (var i = 0; i < constraintCount; i++) { + for (var ii = 0; ii < ikCount; ii++) { + var constraint = ikConstraints[ii]; + if (constraint.data.order == i) { + this.sortIkConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < transformCount; ii++) { + var constraint = transformConstraints[ii]; + if (constraint.data.order == i) { + this.sortTransformConstraint(constraint); + continue outer; + } + } + for (var ii = 0; ii < pathCount; ii++) { + var constraint = pathConstraints[ii]; + if (constraint.data.order == i) { + this.sortPathConstraint(constraint); + continue outer; + } + } + } + for (var i = 0, n = bones.length; i < n; i++) + this.sortBone(bones[i]); + }; + Skeleton.prototype.sortIkConstraint = function (constraint) { + constraint.active = constraint.target.isActive() && (!constraint.data.skinRequired || (this.skin != null && spine.Utils.contains(this.skin.constraints, constraint.data, true))); + if (!constraint.active) + return; + var target = constraint.target; + this.sortBone(target); + var constrained = constraint.bones; + var parent = constrained[0]; + this.sortBone(parent); + if (constrained.length == 1) { + this._updateCache.push(constraint); + this.sortReset(parent.children); + } + else { + var child = constrained[constrained.length - 1]; + this.sortBone(child); + this._updateCache.push(constraint); + this.sortReset(parent.children); + child.sorted = true; + } + }; + Skeleton.prototype.sortPathConstraint = function (constraint) { + constraint.active = constraint.target.bone.isActive() && (!constraint.data.skinRequired || (this.skin != null && spine.Utils.contains(this.skin.constraints, constraint.data, true))); + if (!constraint.active) + return; + var slot = constraint.target; + var slotIndex = slot.data.index; + var slotBone = slot.bone; + if (this.skin != null) + this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); + if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin) + this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); + for (var i = 0, n = this.data.skins.length; i < n; i++) + this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); + var attachment = slot.getAttachment(); + if (attachment instanceof spine.PathAttachment) + this.sortPathConstraintAttachmentWith(attachment, slotBone); + var constrained = constraint.bones; + var boneCount = constrained.length; + for (var i = 0; i < boneCount; i++) + this.sortBone(constrained[i]); + this._updateCache.push(constraint); + for (var i = 0; i < boneCount; i++) + this.sortReset(constrained[i].children); + for (var i = 0; i < boneCount; i++) + constrained[i].sorted = true; + }; + Skeleton.prototype.sortTransformConstraint = function (constraint) { + constraint.active = constraint.target.isActive() && (!constraint.data.skinRequired || (this.skin != null && spine.Utils.contains(this.skin.constraints, constraint.data, true))); + if (!constraint.active) + return; + this.sortBone(constraint.target); + var constrained = constraint.bones; + var boneCount = constrained.length; + if (constraint.data.local) { + for (var i = 0; i < boneCount; i++) { + var child = constrained[i]; + this.sortBone(child.parent); + this.sortBone(child); + } + } + else { + for (var i = 0; i < boneCount; i++) { + this.sortBone(constrained[i]); + } + } + this._updateCache.push(constraint); + for (var ii = 0; ii < boneCount; ii++) + this.sortReset(constrained[ii].children); + for (var ii = 0; ii < boneCount; ii++) + constrained[ii].sorted = true; + }; + Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) { + var attachments = skin.attachments[slotIndex]; + if (!attachments) + return; + for (var key in attachments) { + this.sortPathConstraintAttachmentWith(attachments[key], slotBone); + } + }; + Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) { + if (!(attachment instanceof spine.PathAttachment)) + return; + var pathBones = attachment.bones; + if (pathBones == null) + this.sortBone(slotBone); + else { + var bones = this.bones; + var i = 0; + while (i < pathBones.length) { + var boneCount = pathBones[i++]; + for (var n = i + boneCount; i < n; i++) { + var boneIndex = pathBones[i]; + this.sortBone(bones[boneIndex]); + } + } + } + }; + Skeleton.prototype.sortBone = function (bone) { + if (bone.sorted) + return; + var parent = bone.parent; + if (parent != null) + this.sortBone(parent); + bone.sorted = true; + this._updateCache.push(bone); + }; + Skeleton.prototype.sortReset = function (bones) { + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.active) + continue; + if (bone.sorted) + this.sortReset(bone.children); + bone.sorted = false; + } + }; + Skeleton.prototype.updateWorldTransform = function () { + var updateCache = this._updateCache; + for (var i = 0, n = updateCache.length; i < n; i++) + updateCache[i].update(); + }; + Skeleton.prototype.updateWorldTransformWith = function (parent) { + var rootBone = this.getRootBone(); + var pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + rootBone.worldX = pa * this.x + pb * this.y + parent.worldX; + rootBone.worldY = pc * this.x + pd * this.y + parent.worldY; + var rotationY = rootBone.rotation + 90 + rootBone.shearY; + var la = spine.MathUtils.cosDeg(rootBone.rotation + rootBone.shearX) * rootBone.scaleX; + var lb = spine.MathUtils.cosDeg(rotationY) * rootBone.scaleY; + var lc = spine.MathUtils.sinDeg(rootBone.rotation + rootBone.shearX) * rootBone.scaleX; + var ld = spine.MathUtils.sinDeg(rotationY) * rootBone.scaleY; + rootBone.a = (pa * la + pb * lc) * this.scaleX; + rootBone.b = (pa * lb + pb * ld) * this.scaleX; + rootBone.c = (pc * la + pd * lc) * this.scaleY; + rootBone.d = (pc * lb + pd * ld) * this.scaleY; + var updateCache = this._updateCache; + for (var i = 0, n = updateCache.length; i < n; i++) { + var updatable = updateCache[i]; + if (updatable != rootBone) + updatable.update(); + } + }; + Skeleton.prototype.setToSetupPose = function () { + this.setBonesToSetupPose(); + this.setSlotsToSetupPose(); + }; + Skeleton.prototype.setBonesToSetupPose = function () { + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + bones[i].setToSetupPose(); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + constraint.mix = constraint.data.mix; + constraint.softness = constraint.data.softness; + constraint.bendDirection = constraint.data.bendDirection; + constraint.compress = constraint.data.compress; + constraint.stretch = constraint.data.stretch; + } + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + var data = constraint.data; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + constraint.scaleMix = data.scaleMix; + constraint.shearMix = data.shearMix; + } + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + var data = constraint.data; + constraint.position = data.position; + constraint.spacing = data.spacing; + constraint.rotateMix = data.rotateMix; + constraint.translateMix = data.translateMix; + } + }; + Skeleton.prototype.setSlotsToSetupPose = function () { + var slots = this.slots; + spine.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); + for (var i = 0, n = slots.length; i < n; i++) + slots[i].setToSetupPose(); + }; + Skeleton.prototype.getRootBone = function () { + if (this.bones.length == 0) + return null; + return this.bones[0]; + }; + Skeleton.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.data.name == boneName) + return bone; + } + return null; + }; + Skeleton.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].data.name == boneName) + return i; + return -1; + }; + Skeleton.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) + return slot; + } + return null; + }; + Skeleton.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].data.name == slotName) + return i; + return -1; + }; + Skeleton.prototype.setSkinByName = function (skinName) { + var skin = this.data.findSkin(skinName); + if (skin == null) + throw new Error("Skin not found: " + skinName); + this.setSkin(skin); + }; + Skeleton.prototype.setSkin = function (newSkin) { + if (newSkin == this.skin) + return; + if (newSkin != null) { + if (this.skin != null) + newSkin.attachAll(this, this.skin); + else { + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var name_1 = slot.data.attachmentName; + if (name_1 != null) { + var attachment = newSkin.getAttachment(i, name_1); + if (attachment != null) + slot.setAttachment(attachment); + } + } + } + } + this.skin = newSkin; + this.updateCache(); + }; + Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) { + return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName); + }; + Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) { + if (attachmentName == null) + throw new Error("attachmentName cannot be null."); + if (this.skin != null) { + var attachment = this.skin.getAttachment(slotIndex, attachmentName); + if (attachment != null) + return attachment; + } + if (this.data.defaultSkin != null) + return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); + return null; + }; + Skeleton.prototype.setAttachment = function (slotName, attachmentName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.data.name == slotName) { + var attachment = null; + if (attachmentName != null) { + attachment = this.getAttachment(i, attachmentName); + if (attachment == null) + throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); + } + slot.setAttachment(attachment); + return; + } + } + throw new Error("Slot not found: " + slotName); + }; + Skeleton.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var ikConstraint = ikConstraints[i]; + if (ikConstraint.data.name == constraintName) + return ikConstraint; + } + return null; + }; + Skeleton.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.data.name == constraintName) + return constraint; + } + return null; + }; + Skeleton.prototype.getBounds = function (offset, size, temp) { + if (temp === void 0) { temp = new Array(2); } + if (offset == null) + throw new Error("offset cannot be null."); + if (size == null) + throw new Error("size cannot be null."); + var drawOrder = this.drawOrder; + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var slot = drawOrder[i]; + if (!slot.bone.active) + continue; + var verticesLength = 0; + var vertices = null; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + verticesLength = 8; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + attachment.computeWorldVertices(slot.bone, vertices, 0, 2); + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + verticesLength = mesh.worldVerticesLength; + vertices = spine.Utils.setArraySize(temp, verticesLength, 0); + mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); + } + if (vertices != null) { + for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + } + offset.set(minX, minY); + size.set(maxX - minX, maxY - minY); + }; + Skeleton.prototype.update = function (delta) { + this.time += delta; + }; + return Skeleton; + }()); + spine.Skeleton = Skeleton; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonBinary = (function () { - function SkeletonBinary(attachmentLoader) { - this.scale = 1; - this.linkedMeshes = new Array(); - this.attachmentLoader = attachmentLoader; - } - SkeletonBinary.prototype.readSkeletonData = function (binary) { - var scale = this.scale; - var skeletonData = new spine.SkeletonData(); - skeletonData.name = ""; - var input = new BinaryInput(binary); - skeletonData.hash = input.readString(); - skeletonData.version = input.readString(); - if ("3.8.75" == skeletonData.version) - throw new Error("Unsupported skeleton data, please export with a newer version of Spine."); - skeletonData.x = input.readFloat(); - skeletonData.y = input.readFloat(); - skeletonData.width = input.readFloat(); - skeletonData.height = input.readFloat(); - var nonessential = input.readBoolean(); - if (nonessential) { - skeletonData.fps = input.readFloat(); - skeletonData.imagesPath = input.readString(); - skeletonData.audioPath = input.readString(); - } - var n = 0; - n = input.readInt(true); - for (var i = 0; i < n; i++) - input.strings.push(input.readString()); - n = input.readInt(true); - for (var i = 0; i < n; i++) { - var name_2 = input.readString(); - var parent_2 = i == 0 ? null : skeletonData.bones[input.readInt(true)]; - var data = new spine.BoneData(i, name_2, parent_2); - data.rotation = input.readFloat(); - data.x = input.readFloat() * scale; - data.y = input.readFloat() * scale; - data.scaleX = input.readFloat(); - data.scaleY = input.readFloat(); - data.shearX = input.readFloat(); - data.shearY = input.readFloat(); - data.length = input.readFloat() * scale; - data.transformMode = SkeletonBinary.TransformModeValues[input.readInt(true)]; - data.skinRequired = input.readBoolean(); - if (nonessential) - spine.Color.rgba8888ToColor(data.color, input.readInt32()); - skeletonData.bones.push(data); - } - n = input.readInt(true); - for (var i = 0; i < n; i++) { - var slotName = input.readString(); - var boneData = skeletonData.bones[input.readInt(true)]; - var data = new spine.SlotData(i, slotName, boneData); - spine.Color.rgba8888ToColor(data.color, input.readInt32()); - var darkColor = input.readInt32(); - if (darkColor != -1) - spine.Color.rgb888ToColor(data.darkColor = new spine.Color(), darkColor); - data.attachmentName = input.readStringRef(); - data.blendMode = SkeletonBinary.BlendModeValues[input.readInt(true)]; - skeletonData.slots.push(data); - } - n = input.readInt(true); - for (var i = 0, nn = void 0; i < n; i++) { - var data = new spine.IkConstraintData(input.readString()); - data.order = input.readInt(true); - data.skinRequired = input.readBoolean(); - nn = input.readInt(true); - for (var ii = 0; ii < nn; ii++) - data.bones.push(skeletonData.bones[input.readInt(true)]); - data.target = skeletonData.bones[input.readInt(true)]; - data.mix = input.readFloat(); - data.softness = input.readFloat() * scale; - data.bendDirection = input.readByte(); - data.compress = input.readBoolean(); - data.stretch = input.readBoolean(); - data.uniform = input.readBoolean(); - skeletonData.ikConstraints.push(data); - } - n = input.readInt(true); - for (var i = 0, nn = void 0; i < n; i++) { - var data = new spine.TransformConstraintData(input.readString()); - data.order = input.readInt(true); - data.skinRequired = input.readBoolean(); - nn = input.readInt(true); - for (var ii = 0; ii < nn; ii++) - data.bones.push(skeletonData.bones[input.readInt(true)]); - data.target = skeletonData.bones[input.readInt(true)]; - data.local = input.readBoolean(); - data.relative = input.readBoolean(); - data.offsetRotation = input.readFloat(); - data.offsetX = input.readFloat() * scale; - data.offsetY = input.readFloat() * scale; - data.offsetScaleX = input.readFloat(); - data.offsetScaleY = input.readFloat(); - data.offsetShearY = input.readFloat(); - data.rotateMix = input.readFloat(); - data.translateMix = input.readFloat(); - data.scaleMix = input.readFloat(); - data.shearMix = input.readFloat(); - skeletonData.transformConstraints.push(data); - } - n = input.readInt(true); - for (var i = 0, nn = void 0; i < n; i++) { - var data = new spine.PathConstraintData(input.readString()); - data.order = input.readInt(true); - data.skinRequired = input.readBoolean(); - nn = input.readInt(true); - for (var ii = 0; ii < nn; ii++) - data.bones.push(skeletonData.bones[input.readInt(true)]); - data.target = skeletonData.slots[input.readInt(true)]; - data.positionMode = SkeletonBinary.PositionModeValues[input.readInt(true)]; - data.spacingMode = SkeletonBinary.SpacingModeValues[input.readInt(true)]; - data.rotateMode = SkeletonBinary.RotateModeValues[input.readInt(true)]; - data.offsetRotation = input.readFloat(); - data.position = input.readFloat(); - if (data.positionMode == spine.PositionMode.Fixed) - data.position *= scale; - data.spacing = input.readFloat(); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - data.spacing *= scale; - data.rotateMix = input.readFloat(); - data.translateMix = input.readFloat(); - skeletonData.pathConstraints.push(data); - } - var defaultSkin = this.readSkin(input, skeletonData, true, nonessential); - if (defaultSkin != null) { - skeletonData.defaultSkin = defaultSkin; - skeletonData.skins.push(defaultSkin); - } - { - var i = skeletonData.skins.length; - spine.Utils.setArraySize(skeletonData.skins, n = i + input.readInt(true)); - for (; i < n; i++) - skeletonData.skins[i] = this.readSkin(input, skeletonData, false, nonessential); - } - n = this.linkedMeshes.length; - for (var i = 0; i < n; i++) { - var linkedMesh = this.linkedMeshes[i]; - var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); - if (skin == null) - throw new Error("Skin not found: " + linkedMesh.skin); - var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_3 == null) - throw new Error("Parent mesh not found: " + linkedMesh.parent); - linkedMesh.mesh.deformAttachment = linkedMesh.inheritDeform ? parent_3 : linkedMesh.mesh; - linkedMesh.mesh.setParentMesh(parent_3); - linkedMesh.mesh.updateUVs(); - } - this.linkedMeshes.length = 0; - n = input.readInt(true); - for (var i = 0; i < n; i++) { - var data = new spine.EventData(input.readStringRef()); - data.intValue = input.readInt(false); - data.floatValue = input.readFloat(); - data.stringValue = input.readString(); - data.audioPath = input.readString(); - if (data.audioPath != null) { - data.volume = input.readFloat(); - data.balance = input.readFloat(); - } - skeletonData.events.push(data); - } - n = input.readInt(true); - for (var i = 0; i < n; i++) - skeletonData.animations.push(this.readAnimation(input, input.readString(), skeletonData)); - return skeletonData; - }; - SkeletonBinary.prototype.readSkin = function (input, skeletonData, defaultSkin, nonessential) { - var skin = null; - var slotCount = 0; - if (defaultSkin) { - slotCount = input.readInt(true); - if (slotCount == 0) - return null; - skin = new spine.Skin("default"); - } - else { - skin = new spine.Skin(input.readStringRef()); - skin.bones.length = input.readInt(true); - for (var i = 0, n = skin.bones.length; i < n; i++) - skin.bones[i] = skeletonData.bones[input.readInt(true)]; - for (var i = 0, n = input.readInt(true); i < n; i++) - skin.constraints.push(skeletonData.ikConstraints[input.readInt(true)]); - for (var i = 0, n = input.readInt(true); i < n; i++) - skin.constraints.push(skeletonData.transformConstraints[input.readInt(true)]); - for (var i = 0, n = input.readInt(true); i < n; i++) - skin.constraints.push(skeletonData.pathConstraints[input.readInt(true)]); - slotCount = input.readInt(true); - } - for (var i = 0; i < slotCount; i++) { - var slotIndex = input.readInt(true); - for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { - var name_3 = input.readStringRef(); - var attachment = this.readAttachment(input, skeletonData, skin, slotIndex, name_3, nonessential); - if (attachment != null) - skin.setAttachment(slotIndex, name_3, attachment); - } - } - return skin; - }; - SkeletonBinary.prototype.readAttachment = function (input, skeletonData, skin, slotIndex, attachmentName, nonessential) { - var scale = this.scale; - var name = input.readStringRef(); - if (name == null) - name = attachmentName; - var typeIndex = input.readByte(); - var type = SkeletonBinary.AttachmentTypeValues[typeIndex]; - switch (type) { - case spine.AttachmentType.Region: { - var path = input.readStringRef(); - var rotation = input.readFloat(); - var x = input.readFloat(); - var y = input.readFloat(); - var scaleX = input.readFloat(); - var scaleY = input.readFloat(); - var width = input.readFloat(); - var height = input.readFloat(); - var color = input.readInt32(); - if (path == null) - path = name; - var region = this.attachmentLoader.newRegionAttachment(skin, name, path); - if (region == null) - return null; - region.path = path; - region.x = x * scale; - region.y = y * scale; - region.scaleX = scaleX; - region.scaleY = scaleY; - region.rotation = rotation; - region.width = width * scale; - region.height = height * scale; - spine.Color.rgba8888ToColor(region.color, color); - region.updateOffset(); - return region; - } - case spine.AttachmentType.BoundingBox: { - var vertexCount = input.readInt(true); - var vertices = this.readVertices(input, vertexCount); - var color = nonessential ? input.readInt32() : 0; - var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); - if (box == null) - return null; - box.worldVerticesLength = vertexCount << 1; - box.vertices = vertices.vertices; - box.bones = vertices.bones; - if (nonessential) - spine.Color.rgba8888ToColor(box.color, color); - return box; - } - case spine.AttachmentType.Mesh: { - var path = input.readStringRef(); - var color = input.readInt32(); - var vertexCount = input.readInt(true); - var uvs = this.readFloatArray(input, vertexCount << 1, 1); - var triangles = this.readShortArray(input); - var vertices = this.readVertices(input, vertexCount); - var hullLength = input.readInt(true); - var edges = null; - var width = 0, height = 0; - if (nonessential) { - edges = this.readShortArray(input); - width = input.readFloat(); - height = input.readFloat(); - } - if (path == null) - path = name; - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - spine.Color.rgba8888ToColor(mesh.color, color); - mesh.bones = vertices.bones; - mesh.vertices = vertices.vertices; - mesh.worldVerticesLength = vertexCount << 1; - mesh.triangles = triangles; - mesh.regionUVs = uvs; - mesh.updateUVs(); - mesh.hullLength = hullLength << 1; - if (nonessential) { - mesh.edges = edges; - mesh.width = width * scale; - mesh.height = height * scale; - } - return mesh; - } - case spine.AttachmentType.LinkedMesh: { - var path = input.readStringRef(); - var color = input.readInt32(); - var skinName = input.readStringRef(); - var parent_4 = input.readStringRef(); - var inheritDeform = input.readBoolean(); - var width = 0, height = 0; - if (nonessential) { - width = input.readFloat(); - height = input.readFloat(); - } - if (path == null) - path = name; - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - spine.Color.rgba8888ToColor(mesh.color, color); - if (nonessential) { - mesh.width = width * scale; - mesh.height = height * scale; - } - this.linkedMeshes.push(new LinkedMesh(mesh, skinName, slotIndex, parent_4, inheritDeform)); - return mesh; - } - case spine.AttachmentType.Path: { - var closed_1 = input.readBoolean(); - var constantSpeed = input.readBoolean(); - var vertexCount = input.readInt(true); - var vertices = this.readVertices(input, vertexCount); - var lengths = spine.Utils.newArray(vertexCount / 3, 0); - for (var i = 0, n = lengths.length; i < n; i++) - lengths[i] = input.readFloat() * scale; - var color = nonessential ? input.readInt32() : 0; - var path = this.attachmentLoader.newPathAttachment(skin, name); - if (path == null) - return null; - path.closed = closed_1; - path.constantSpeed = constantSpeed; - path.worldVerticesLength = vertexCount << 1; - path.vertices = vertices.vertices; - path.bones = vertices.bones; - path.lengths = lengths; - if (nonessential) - spine.Color.rgba8888ToColor(path.color, color); - return path; - } - case spine.AttachmentType.Point: { - var rotation = input.readFloat(); - var x = input.readFloat(); - var y = input.readFloat(); - var color = nonessential ? input.readInt32() : 0; - var point = this.attachmentLoader.newPointAttachment(skin, name); - if (point == null) - return null; - point.x = x * scale; - point.y = y * scale; - point.rotation = rotation; - if (nonessential) - spine.Color.rgba8888ToColor(point.color, color); - return point; - } - case spine.AttachmentType.Clipping: { - var endSlotIndex = input.readInt(true); - var vertexCount = input.readInt(true); - var vertices = this.readVertices(input, vertexCount); - var color = nonessential ? input.readInt32() : 0; - var clip = this.attachmentLoader.newClippingAttachment(skin, name); - if (clip == null) - return null; - clip.endSlot = skeletonData.slots[endSlotIndex]; - clip.worldVerticesLength = vertexCount << 1; - clip.vertices = vertices.vertices; - clip.bones = vertices.bones; - if (nonessential) - spine.Color.rgba8888ToColor(clip.color, color); - return clip; - } - } - return null; - }; - SkeletonBinary.prototype.readVertices = function (input, vertexCount) { - var verticesLength = vertexCount << 1; - var vertices = new Vertices(); - var scale = this.scale; - if (!input.readBoolean()) { - vertices.vertices = this.readFloatArray(input, verticesLength, scale); - return vertices; - } - var weights = new Array(); - var bonesArray = new Array(); - for (var i = 0; i < vertexCount; i++) { - var boneCount = input.readInt(true); - bonesArray.push(boneCount); - for (var ii = 0; ii < boneCount; ii++) { - bonesArray.push(input.readInt(true)); - weights.push(input.readFloat() * scale); - weights.push(input.readFloat() * scale); - weights.push(input.readFloat()); - } - } - vertices.vertices = spine.Utils.toFloatArray(weights); - vertices.bones = bonesArray; - return vertices; - }; - SkeletonBinary.prototype.readFloatArray = function (input, n, scale) { - var array = new Array(n); - if (scale == 1) { - for (var i = 0; i < n; i++) - array[i] = input.readFloat(); - } - else { - for (var i = 0; i < n; i++) - array[i] = input.readFloat() * scale; - } - return array; - }; - SkeletonBinary.prototype.readShortArray = function (input) { - var n = input.readInt(true); - var array = new Array(n); - for (var i = 0; i < n; i++) - array[i] = input.readShort(); - return array; - }; - SkeletonBinary.prototype.readAnimation = function (input, name, skeletonData) { - var timelines = new Array(); - var scale = this.scale; - var duration = 0; - var tempColor1 = new spine.Color(); - var tempColor2 = new spine.Color(); - for (var i = 0, n = input.readInt(true); i < n; i++) { - var slotIndex = input.readInt(true); - for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { - var timelineType = input.readByte(); - var frameCount = input.readInt(true); - switch (timelineType) { - case SkeletonBinary.SLOT_ATTACHMENT: { - var timeline = new spine.AttachmentTimeline(frameCount); - timeline.slotIndex = slotIndex; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) - timeline.setFrame(frameIndex, input.readFloat(), input.readStringRef()); - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[frameCount - 1]); - break; - } - case SkeletonBinary.SLOT_COLOR: { - var timeline = new spine.ColorTimeline(frameCount); - timeline.slotIndex = slotIndex; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - var time = input.readFloat(); - spine.Color.rgba8888ToColor(tempColor1, input.readInt32()); - timeline.setFrame(frameIndex, time, tempColor1.r, tempColor1.g, tempColor1.b, tempColor1.a); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.ColorTimeline.ENTRIES]); - break; - } - case SkeletonBinary.SLOT_TWO_COLOR: { - var timeline = new spine.TwoColorTimeline(frameCount); - timeline.slotIndex = slotIndex; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - var time = input.readFloat(); - spine.Color.rgba8888ToColor(tempColor1, input.readInt32()); - spine.Color.rgb888ToColor(tempColor2, input.readInt32()); - timeline.setFrame(frameIndex, time, tempColor1.r, tempColor1.g, tempColor1.b, tempColor1.a, tempColor2.r, tempColor2.g, tempColor2.b); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.TwoColorTimeline.ENTRIES]); - break; - } - } - } - } - for (var i = 0, n = input.readInt(true); i < n; i++) { - var boneIndex = input.readInt(true); - for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { - var timelineType = input.readByte(); - var frameCount = input.readInt(true); - switch (timelineType) { - case SkeletonBinary.BONE_ROTATE: { - var timeline = new spine.RotateTimeline(frameCount); - timeline.boneIndex = boneIndex; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat()); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.RotateTimeline.ENTRIES]); - break; - } - case SkeletonBinary.BONE_TRANSLATE: - case SkeletonBinary.BONE_SCALE: - case SkeletonBinary.BONE_SHEAR: { - var timeline = void 0; - var timelineScale = 1; - if (timelineType == SkeletonBinary.BONE_SCALE) - timeline = new spine.ScaleTimeline(frameCount); - else if (timelineType == SkeletonBinary.BONE_SHEAR) - timeline = new spine.ShearTimeline(frameCount); - else { - timeline = new spine.TranslateTimeline(frameCount); - timelineScale = scale; - } - timeline.boneIndex = boneIndex; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat() * timelineScale, input.readFloat() * timelineScale); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.TranslateTimeline.ENTRIES]); - break; - } - } - } - } - for (var i = 0, n = input.readInt(true); i < n; i++) { - var index = input.readInt(true); - var frameCount = input.readInt(true); - var timeline = new spine.IkConstraintTimeline(frameCount); - timeline.ikConstraintIndex = index; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat(), input.readFloat() * scale, input.readByte(), input.readBoolean(), input.readBoolean()); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.IkConstraintTimeline.ENTRIES]); - } - for (var i = 0, n = input.readInt(true); i < n; i++) { - var index = input.readInt(true); - var frameCount = input.readInt(true); - var timeline = new spine.TransformConstraintTimeline(frameCount); - timeline.transformConstraintIndex = index; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat(), input.readFloat(), input.readFloat(), input.readFloat()); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.TransformConstraintTimeline.ENTRIES]); - } - for (var i = 0, n = input.readInt(true); i < n; i++) { - var index = input.readInt(true); - var data = skeletonData.pathConstraints[index]; - for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { - var timelineType = input.readByte(); - var frameCount = input.readInt(true); - switch (timelineType) { - case SkeletonBinary.PATH_POSITION: - case SkeletonBinary.PATH_SPACING: { - var timeline = void 0; - var timelineScale = 1; - if (timelineType == SkeletonBinary.PATH_SPACING) { - timeline = new spine.PathConstraintSpacingTimeline(frameCount); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - timelineScale = scale; - } - else { - timeline = new spine.PathConstraintPositionTimeline(frameCount); - if (data.positionMode == spine.PositionMode.Fixed) - timelineScale = scale; - } - timeline.pathConstraintIndex = index; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat() * timelineScale); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); - break; - } - case SkeletonBinary.PATH_MIX: { - var timeline = new spine.PathConstraintMixTimeline(frameCount); - timeline.pathConstraintIndex = index; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat(), input.readFloat()); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * spine.PathConstraintMixTimeline.ENTRIES]); - break; - } - } - } - } - for (var i = 0, n = input.readInt(true); i < n; i++) { - var skin = skeletonData.skins[input.readInt(true)]; - for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { - var slotIndex = input.readInt(true); - for (var iii = 0, nnn = input.readInt(true); iii < nnn; iii++) { - var attachment = skin.getAttachment(slotIndex, input.readStringRef()); - var weighted = attachment.bones != null; - var vertices = attachment.vertices; - var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; - var frameCount = input.readInt(true); - var timeline = new spine.DeformTimeline(frameCount); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; - for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) { - var time = input.readFloat(); - var deform = void 0; - var end = input.readInt(true); - if (end == 0) - deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; - else { - deform = spine.Utils.newFloatArray(deformLength); - var start = input.readInt(true); - end += start; - if (scale == 1) { - for (var v = start; v < end; v++) - deform[v] = input.readFloat(); - } - else { - for (var v = start; v < end; v++) - deform[v] = input.readFloat() * scale; - } - if (!weighted) { - for (var v = 0, vn = deform.length; v < vn; v++) - deform[v] += vertices[v]; - } - } - timeline.setFrame(frameIndex, time, deform); - if (frameIndex < frameCount - 1) - this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[frameCount - 1]); - } - } - } - var drawOrderCount = input.readInt(true); - if (drawOrderCount > 0) { - var timeline = new spine.DrawOrderTimeline(drawOrderCount); - var slotCount = skeletonData.slots.length; - for (var i = 0; i < drawOrderCount; i++) { - var time = input.readFloat(); - var offsetCount = input.readInt(true); - var drawOrder = spine.Utils.newArray(slotCount, 0); - for (var ii = slotCount - 1; ii >= 0; ii--) - drawOrder[ii] = -1; - var unchanged = spine.Utils.newArray(slotCount - offsetCount, 0); - var originalIndex = 0, unchangedIndex = 0; - for (var ii = 0; ii < offsetCount; ii++) { - var slotIndex = input.readInt(true); - while (originalIndex != slotIndex) - unchanged[unchangedIndex++] = originalIndex++; - drawOrder[originalIndex + input.readInt(true)] = originalIndex++; - } - while (originalIndex < slotCount) - unchanged[unchangedIndex++] = originalIndex++; - for (var ii = slotCount - 1; ii >= 0; ii--) - if (drawOrder[ii] == -1) - drawOrder[ii] = unchanged[--unchangedIndex]; - timeline.setFrame(i, time, drawOrder); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[drawOrderCount - 1]); - } - var eventCount = input.readInt(true); - if (eventCount > 0) { - var timeline = new spine.EventTimeline(eventCount); - for (var i = 0; i < eventCount; i++) { - var time = input.readFloat(); - var eventData = skeletonData.events[input.readInt(true)]; - var event_4 = new spine.Event(time, eventData); - event_4.intValue = input.readInt(false); - event_4.floatValue = input.readFloat(); - event_4.stringValue = input.readBoolean() ? input.readString() : eventData.stringValue; - if (event_4.data.audioPath != null) { - event_4.volume = input.readFloat(); - event_4.balance = input.readFloat(); - } - timeline.setFrame(i, event_4); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[eventCount - 1]); - } - return new spine.Animation(name, timelines, duration); - }; - SkeletonBinary.prototype.readCurve = function (input, frameIndex, timeline) { - switch (input.readByte()) { - case SkeletonBinary.CURVE_STEPPED: - timeline.setStepped(frameIndex); - break; - case SkeletonBinary.CURVE_BEZIER: - this.setCurve(timeline, frameIndex, input.readFloat(), input.readFloat(), input.readFloat(), input.readFloat()); - break; - } - }; - SkeletonBinary.prototype.setCurve = function (timeline, frameIndex, cx1, cy1, cx2, cy2) { - timeline.setCurve(frameIndex, cx1, cy1, cx2, cy2); - }; - SkeletonBinary.AttachmentTypeValues = [0, 1, 2, 3, 4, 5, 6]; - SkeletonBinary.TransformModeValues = [spine.TransformMode.Normal, spine.TransformMode.OnlyTranslation, spine.TransformMode.NoRotationOrReflection, spine.TransformMode.NoScale, spine.TransformMode.NoScaleOrReflection]; - SkeletonBinary.PositionModeValues = [spine.PositionMode.Fixed, spine.PositionMode.Percent]; - SkeletonBinary.SpacingModeValues = [spine.SpacingMode.Length, spine.SpacingMode.Fixed, spine.SpacingMode.Percent]; - SkeletonBinary.RotateModeValues = [spine.RotateMode.Tangent, spine.RotateMode.Chain, spine.RotateMode.ChainScale]; - SkeletonBinary.BlendModeValues = [spine.BlendMode.Normal, spine.BlendMode.Additive, spine.BlendMode.Multiply, spine.BlendMode.Screen]; - SkeletonBinary.BONE_ROTATE = 0; - SkeletonBinary.BONE_TRANSLATE = 1; - SkeletonBinary.BONE_SCALE = 2; - SkeletonBinary.BONE_SHEAR = 3; - SkeletonBinary.SLOT_ATTACHMENT = 0; - SkeletonBinary.SLOT_COLOR = 1; - SkeletonBinary.SLOT_TWO_COLOR = 2; - SkeletonBinary.PATH_POSITION = 0; - SkeletonBinary.PATH_SPACING = 1; - SkeletonBinary.PATH_MIX = 2; - SkeletonBinary.CURVE_LINEAR = 0; - SkeletonBinary.CURVE_STEPPED = 1; - SkeletonBinary.CURVE_BEZIER = 2; - return SkeletonBinary; - }()); - spine.SkeletonBinary = SkeletonBinary; - var BinaryInput = (function () { - function BinaryInput(data, strings, index, buffer) { - if (strings === void 0) { strings = new Array(); } - if (index === void 0) { index = 0; } - if (buffer === void 0) { buffer = new DataView(data.buffer); } - this.strings = strings; - this.index = index; - this.buffer = buffer; - } - BinaryInput.prototype.readByte = function () { - return this.buffer.getInt8(this.index++); - }; - BinaryInput.prototype.readShort = function () { - var value = this.buffer.getInt16(this.index); - this.index += 2; - return value; - }; - BinaryInput.prototype.readInt32 = function () { - var value = this.buffer.getInt32(this.index); - this.index += 4; - return value; - }; - BinaryInput.prototype.readInt = function (optimizePositive) { - var b = this.readByte(); - var result = b & 0x7F; - if ((b & 0x80) != 0) { - b = this.readByte(); - result |= (b & 0x7F) << 7; - if ((b & 0x80) != 0) { - b = this.readByte(); - result |= (b & 0x7F) << 14; - if ((b & 0x80) != 0) { - b = this.readByte(); - result |= (b & 0x7F) << 21; - if ((b & 0x80) != 0) { - b = this.readByte(); - result |= (b & 0x7F) << 28; - } - } - } - } - return optimizePositive ? result : ((result >>> 1) ^ -(result & 1)); - }; - BinaryInput.prototype.readStringRef = function () { - var index = this.readInt(true); - return index == 0 ? null : this.strings[index - 1]; - }; - BinaryInput.prototype.readString = function () { - var byteCount = this.readInt(true); - switch (byteCount) { - case 0: - return null; - case 1: - return ""; - } - byteCount--; - var chars = ""; - var charCount = 0; - for (var i = 0; i < byteCount;) { - var b = this.readByte(); - switch (b >> 4) { - case 12: - case 13: - chars += String.fromCharCode(((b & 0x1F) << 6 | this.readByte() & 0x3F)); - i += 2; - break; - case 14: - chars += String.fromCharCode(((b & 0x0F) << 12 | (this.readByte() & 0x3F) << 6 | this.readByte() & 0x3F)); - i += 3; - break; - default: - chars += String.fromCharCode(b); - i++; - } - } - return chars; - }; - BinaryInput.prototype.readFloat = function () { - var value = this.buffer.getFloat32(this.index); - this.index += 4; - return value; - }; - BinaryInput.prototype.readBoolean = function () { - return this.readByte() != 0; - }; - return BinaryInput; - }()); - var LinkedMesh = (function () { - function LinkedMesh(mesh, skin, slotIndex, parent, inheritDeform) { - this.mesh = mesh; - this.skin = skin; - this.slotIndex = slotIndex; - this.parent = parent; - this.inheritDeform = inheritDeform; - } - return LinkedMesh; - }()); - var Vertices = (function () { - function Vertices(bones, vertices) { - if (bones === void 0) { bones = null; } - if (vertices === void 0) { vertices = null; } - this.bones = bones; - this.vertices = vertices; - } - return Vertices; - }()); + var SkeletonBinary = (function () { + function SkeletonBinary(attachmentLoader) { + this.scale = 1; + this.linkedMeshes = new Array(); + this.attachmentLoader = attachmentLoader; + } + SkeletonBinary.prototype.readSkeletonData = function (binary) { + var scale = this.scale; + var skeletonData = new spine.SkeletonData(); + skeletonData.name = ""; + var input = new BinaryInput(binary); + var lowHash = input.readInt(false); + var highHash = input.readInt(false); + skeletonData.hash = highHash == 0 && lowHash == 0 ? null : highHash.toString(16) + lowHash.toString(16); + skeletonData.version = input.readString(); + skeletonData.x = input.readFloat(); + skeletonData.y = input.readFloat(); + skeletonData.width = input.readFloat(); + skeletonData.height = input.readFloat(); + var nonessential = input.readBoolean(); + if (nonessential) { + skeletonData.fps = input.readFloat(); + skeletonData.imagesPath = input.readString(); + skeletonData.audioPath = input.readString(); + } + var n = 0; + n = input.readInt(true); + for (var i = 0; i < n; i++) + input.strings.push(input.readString()); + n = input.readInt(true); + for (var i = 0; i < n; i++) { + var name_2 = input.readString(); + var parent_2 = i == 0 ? null : skeletonData.bones[input.readInt(true)]; + var data = new spine.BoneData(i, name_2, parent_2); + data.rotation = input.readFloat(); + data.x = input.readFloat() * scale; + data.y = input.readFloat() * scale; + data.scaleX = input.readFloat(); + data.scaleY = input.readFloat(); + data.shearX = input.readFloat(); + data.shearY = input.readFloat(); + data.length = input.readFloat() * scale; + data.transformMode = SkeletonBinary.TransformModeValues[input.readInt(true)]; + data.skinRequired = input.readBoolean(); + if (nonessential) + spine.Color.rgba8888ToColor(data.color, input.readInt32()); + skeletonData.bones.push(data); + } + n = input.readInt(true); + for (var i = 0; i < n; i++) { + var slotName = input.readString(); + var boneData = skeletonData.bones[input.readInt(true)]; + var data = new spine.SlotData(i, slotName, boneData); + spine.Color.rgba8888ToColor(data.color, input.readInt32()); + var darkColor = input.readInt32(); + if (darkColor != -1) + spine.Color.rgb888ToColor(data.darkColor = new spine.Color(), darkColor); + data.attachmentName = input.readStringRef(); + data.blendMode = SkeletonBinary.BlendModeValues[input.readInt(true)]; + skeletonData.slots.push(data); + } + n = input.readInt(true); + for (var i = 0, nn = void 0; i < n; i++) { + var data = new spine.IkConstraintData(input.readString()); + data.order = input.readInt(true); + data.skinRequired = input.readBoolean(); + nn = input.readInt(true); + for (var ii = 0; ii < nn; ii++) + data.bones.push(skeletonData.bones[input.readInt(true)]); + data.target = skeletonData.bones[input.readInt(true)]; + data.mix = input.readFloat(); + data.softness = input.readFloat() * scale; + data.bendDirection = input.readByte(); + data.compress = input.readBoolean(); + data.stretch = input.readBoolean(); + data.uniform = input.readBoolean(); + skeletonData.ikConstraints.push(data); + } + n = input.readInt(true); + for (var i = 0, nn = void 0; i < n; i++) { + var data = new spine.TransformConstraintData(input.readString()); + data.order = input.readInt(true); + data.skinRequired = input.readBoolean(); + nn = input.readInt(true); + for (var ii = 0; ii < nn; ii++) + data.bones.push(skeletonData.bones[input.readInt(true)]); + data.target = skeletonData.bones[input.readInt(true)]; + data.local = input.readBoolean(); + data.relative = input.readBoolean(); + data.offsetRotation = input.readFloat(); + data.offsetX = input.readFloat() * scale; + data.offsetY = input.readFloat() * scale; + data.offsetScaleX = input.readFloat(); + data.offsetScaleY = input.readFloat(); + data.offsetShearY = input.readFloat(); + data.rotateMix = input.readFloat(); + data.translateMix = input.readFloat(); + data.scaleMix = input.readFloat(); + data.shearMix = input.readFloat(); + skeletonData.transformConstraints.push(data); + } + n = input.readInt(true); + for (var i = 0, nn = void 0; i < n; i++) { + var data = new spine.PathConstraintData(input.readString()); + data.order = input.readInt(true); + data.skinRequired = input.readBoolean(); + nn = input.readInt(true); + for (var ii = 0; ii < nn; ii++) + data.bones.push(skeletonData.bones[input.readInt(true)]); + data.target = skeletonData.slots[input.readInt(true)]; + data.positionMode = SkeletonBinary.PositionModeValues[input.readInt(true)]; + data.spacingMode = SkeletonBinary.SpacingModeValues[input.readInt(true)]; + data.rotateMode = SkeletonBinary.RotateModeValues[input.readInt(true)]; + data.offsetRotation = input.readFloat(); + data.position = input.readFloat(); + if (data.positionMode == spine.PositionMode.Fixed) + data.position *= scale; + data.spacing = input.readFloat(); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + data.spacing *= scale; + data.rotateMix = input.readFloat(); + data.translateMix = input.readFloat(); + skeletonData.pathConstraints.push(data); + } + var defaultSkin = this.readSkin(input, skeletonData, true, nonessential); + if (defaultSkin != null) { + skeletonData.defaultSkin = defaultSkin; + skeletonData.skins.push(defaultSkin); + } + { + var i = skeletonData.skins.length; + spine.Utils.setArraySize(skeletonData.skins, n = i + input.readInt(true)); + for (; i < n; i++) + skeletonData.skins[i] = this.readSkin(input, skeletonData, false, nonessential); + } + n = this.linkedMeshes.length; + for (var i = 0; i < n; i++) { + var linkedMesh = this.linkedMeshes[i]; + var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (skin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parent_3 == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.deformAttachment = linkedMesh.inheritDeform ? parent_3 : linkedMesh.mesh; + linkedMesh.mesh.setParentMesh(parent_3); + linkedMesh.mesh.updateUVs(); + } + this.linkedMeshes.length = 0; + n = input.readInt(true); + for (var i = 0; i < n; i++) { + var data = new spine.EventData(input.readStringRef()); + data.intValue = input.readInt(false); + data.floatValue = input.readFloat(); + data.stringValue = input.readString(); + data.audioPath = input.readString(); + if (data.audioPath != null) { + data.volume = input.readFloat(); + data.balance = input.readFloat(); + } + skeletonData.events.push(data); + } + n = input.readInt(true); + for (var i = 0; i < n; i++) + skeletonData.animations.push(this.readAnimation(input, input.readString(), skeletonData)); + return skeletonData; + }; + SkeletonBinary.prototype.readSkin = function (input, skeletonData, defaultSkin, nonessential) { + var skin = null; + var slotCount = 0; + if (defaultSkin) { + slotCount = input.readInt(true); + if (slotCount == 0) + return null; + skin = new spine.Skin("default"); + } + else { + skin = new spine.Skin(input.readStringRef()); + skin.bones.length = input.readInt(true); + for (var i = 0, n = skin.bones.length; i < n; i++) + skin.bones[i] = skeletonData.bones[input.readInt(true)]; + for (var i = 0, n = input.readInt(true); i < n; i++) + skin.constraints.push(skeletonData.ikConstraints[input.readInt(true)]); + for (var i = 0, n = input.readInt(true); i < n; i++) + skin.constraints.push(skeletonData.transformConstraints[input.readInt(true)]); + for (var i = 0, n = input.readInt(true); i < n; i++) + skin.constraints.push(skeletonData.pathConstraints[input.readInt(true)]); + slotCount = input.readInt(true); + } + for (var i = 0; i < slotCount; i++) { + var slotIndex = input.readInt(true); + for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { + var name_3 = input.readStringRef(); + var attachment = this.readAttachment(input, skeletonData, skin, slotIndex, name_3, nonessential); + if (attachment != null) + skin.setAttachment(slotIndex, name_3, attachment); + } + } + return skin; + }; + SkeletonBinary.prototype.readAttachment = function (input, skeletonData, skin, slotIndex, attachmentName, nonessential) { + var scale = this.scale; + var name = input.readStringRef(); + if (name == null) + name = attachmentName; + var typeIndex = input.readByte(); + switch (SkeletonBinary.AttachmentTypeValues[typeIndex]) { + case spine.AttachmentType.Region: { + var path = input.readStringRef(); + var rotation = input.readFloat(); + var x = input.readFloat(); + var y = input.readFloat(); + var scaleX = input.readFloat(); + var scaleY = input.readFloat(); + var width = input.readFloat(); + var height = input.readFloat(); + var color = input.readInt32(); + if (path == null) + path = name; + var region = this.attachmentLoader.newRegionAttachment(skin, name, path); + if (region == null) + return null; + region.path = path; + region.x = x * scale; + region.y = y * scale; + region.scaleX = scaleX; + region.scaleY = scaleY; + region.rotation = rotation; + region.width = width * scale; + region.height = height * scale; + spine.Color.rgba8888ToColor(region.color, color); + region.updateOffset(); + return region; + } + case spine.AttachmentType.BoundingBox: { + var vertexCount = input.readInt(true); + var vertices = this.readVertices(input, vertexCount); + var color = nonessential ? input.readInt32() : 0; + var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + box.worldVerticesLength = vertexCount << 1; + box.vertices = vertices.vertices; + box.bones = vertices.bones; + if (nonessential) + spine.Color.rgba8888ToColor(box.color, color); + return box; + } + case spine.AttachmentType.Mesh: { + var path = input.readStringRef(); + var color = input.readInt32(); + var vertexCount = input.readInt(true); + var uvs = this.readFloatArray(input, vertexCount << 1, 1); + var triangles = this.readShortArray(input); + var vertices = this.readVertices(input, vertexCount); + var hullLength = input.readInt(true); + var edges = null; + var width = 0, height = 0; + if (nonessential) { + edges = this.readShortArray(input); + width = input.readFloat(); + height = input.readFloat(); + } + if (path == null) + path = name; + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + spine.Color.rgba8888ToColor(mesh.color, color); + mesh.bones = vertices.bones; + mesh.vertices = vertices.vertices; + mesh.worldVerticesLength = vertexCount << 1; + mesh.triangles = triangles; + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.hullLength = hullLength << 1; + if (nonessential) { + mesh.edges = edges; + mesh.width = width * scale; + mesh.height = height * scale; + } + return mesh; + } + case spine.AttachmentType.LinkedMesh: { + var path = input.readStringRef(); + var color = input.readInt32(); + var skinName = input.readStringRef(); + var parent_4 = input.readStringRef(); + var inheritDeform = input.readBoolean(); + var width = 0, height = 0; + if (nonessential) { + width = input.readFloat(); + height = input.readFloat(); + } + if (path == null) + path = name; + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + spine.Color.rgba8888ToColor(mesh.color, color); + if (nonessential) { + mesh.width = width * scale; + mesh.height = height * scale; + } + this.linkedMeshes.push(new LinkedMesh(mesh, skinName, slotIndex, parent_4, inheritDeform)); + return mesh; + } + case spine.AttachmentType.Path: { + var closed_1 = input.readBoolean(); + var constantSpeed = input.readBoolean(); + var vertexCount = input.readInt(true); + var vertices = this.readVertices(input, vertexCount); + var lengths = spine.Utils.newArray(vertexCount / 3, 0); + for (var i = 0, n = lengths.length; i < n; i++) + lengths[i] = input.readFloat() * scale; + var color = nonessential ? input.readInt32() : 0; + var path = this.attachmentLoader.newPathAttachment(skin, name); + if (path == null) + return null; + path.closed = closed_1; + path.constantSpeed = constantSpeed; + path.worldVerticesLength = vertexCount << 1; + path.vertices = vertices.vertices; + path.bones = vertices.bones; + path.lengths = lengths; + if (nonessential) + spine.Color.rgba8888ToColor(path.color, color); + return path; + } + case spine.AttachmentType.Point: { + var rotation = input.readFloat(); + var x = input.readFloat(); + var y = input.readFloat(); + var color = nonessential ? input.readInt32() : 0; + var point = this.attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = x * scale; + point.y = y * scale; + point.rotation = rotation; + if (nonessential) + spine.Color.rgba8888ToColor(point.color, color); + return point; + } + case spine.AttachmentType.Clipping: { + var endSlotIndex = input.readInt(true); + var vertexCount = input.readInt(true); + var vertices = this.readVertices(input, vertexCount); + var color = nonessential ? input.readInt32() : 0; + var clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + clip.endSlot = skeletonData.slots[endSlotIndex]; + clip.worldVerticesLength = vertexCount << 1; + clip.vertices = vertices.vertices; + clip.bones = vertices.bones; + if (nonessential) + spine.Color.rgba8888ToColor(clip.color, color); + return clip; + } + } + return null; + }; + SkeletonBinary.prototype.readVertices = function (input, vertexCount) { + var scale = this.scale; + var verticesLength = vertexCount << 1; + var vertices = new Vertices(); + if (!input.readBoolean()) { + vertices.vertices = this.readFloatArray(input, verticesLength, scale); + return vertices; + } + var weights = new Array(); + var bonesArray = new Array(); + for (var i = 0; i < vertexCount; i++) { + var boneCount = input.readInt(true); + bonesArray.push(boneCount); + for (var ii = 0; ii < boneCount; ii++) { + bonesArray.push(input.readInt(true)); + weights.push(input.readFloat() * scale); + weights.push(input.readFloat() * scale); + weights.push(input.readFloat()); + } + } + vertices.vertices = spine.Utils.toFloatArray(weights); + vertices.bones = bonesArray; + return vertices; + }; + SkeletonBinary.prototype.readFloatArray = function (input, n, scale) { + var array = new Array(n); + if (scale == 1) { + for (var i = 0; i < n; i++) + array[i] = input.readFloat(); + } + else { + for (var i = 0; i < n; i++) + array[i] = input.readFloat() * scale; + } + return array; + }; + SkeletonBinary.prototype.readShortArray = function (input) { + var n = input.readInt(true); + var array = new Array(n); + for (var i = 0; i < n; i++) + array[i] = input.readShort(); + return array; + }; + SkeletonBinary.prototype.readAnimation = function (input, name, skeletonData) { + var numTimelines = input.readInt(true); + var timelines = new Array(); + var scale = this.scale; + var tempColor1 = new spine.Color(); + var tempColor2 = new spine.Color(); + for (var i = 0, n = input.readInt(true); i < n; i++) { + var slotIndex = input.readInt(true); + for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { + var timelineType = input.readByte(); + var frameCount = input.readInt(true); + var frameLast = frameCount - 1; + switch (timelineType) { + case SkeletonBinary.SLOT_ATTACHMENT: { + var timeline = new spine.AttachmentTimeline(frameCount, slotIndex); + for (var frameIndex = 0; frameIndex < frameCount; frameIndex++) + timeline.setFrame(frameIndex, input.readFloat(), input.readStringRef()); + timelines.push(timeline); + break; + } + case SkeletonBinary.SLOT_COLOR: { + var bezierCount = input.readInt(true); + var timeline = new spine.ColorTimeline(frameCount, bezierCount, slotIndex); + var time = input.readFloat(); + var r = input.readUnsignedByte() / 255.0; + var g = input.readUnsignedByte() / 255.0; + var b = input.readUnsignedByte() / 255.0; + var a = input.readUnsignedByte() / 255.0; + for (var frame = 0, bezier = 0;; frame++) { + timeline.setFrame(frame, time, r, g, b, a); + if (frame == frameLast) + break; + var time2 = input.readFloat(); + var r2 = input.readUnsignedByte() / 255.0; + var g2 = input.readUnsignedByte() / 255.0; + var b2 = input.readUnsignedByte() / 255.0; + var a2 = input.readUnsignedByte() / 255.0; + switch (input.readByte()) { + case SkeletonBinary.CURVE_STEPPED: + timeline.setStepped(frame); + break; + case SkeletonBinary.CURVE_BEZIER: + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 0, time, time2, r, r2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 1, time, time2, g, g2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 2, time, time2, b, b2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 3, time, time2, a, a2, 1); + } + time = time2; + r = r2; + g = g2; + b = b2; + a = a2; + } + timelines.push(timeline); + break; + } + case SkeletonBinary.SLOT_TWO_COLOR: { + var bezierCount = input.readInt(true); + var timeline = new spine.TwoColorTimeline(frameCount, bezierCount, slotIndex); + var time = input.readFloat(); + var r = input.readUnsignedByte() / 255.0; + var g = input.readUnsignedByte() / 255.0; + var b = input.readUnsignedByte() / 255.0; + var a = input.readUnsignedByte() / 255.0; + var r2 = input.readUnsignedByte() / 255.0; + var g2 = input.readUnsignedByte() / 255.0; + var b2 = input.readUnsignedByte() / 255.0; + for (var frame = 0, bezier = 0;; frame++) { + timeline.setFrame(frame, time, r, g, b, a, r2, g2, b2); + if (frame == frameLast) + break; + var time2 = input.readFloat(); + var nr = input.readUnsignedByte() / 255.0; + var ng = input.readUnsignedByte() / 255.0; + var nb = input.readUnsignedByte() / 255.0; + var na = input.readUnsignedByte() / 255.0; + var nr2 = input.readUnsignedByte() / 255.0; + var ng2 = input.readUnsignedByte() / 255.0; + var nb2 = input.readUnsignedByte() / 255.0; + switch (input.readByte()) { + case SkeletonBinary.CURVE_STEPPED: + timeline.setStepped(frame); + break; + case SkeletonBinary.CURVE_BEZIER: + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 0, time, time2, r, nr, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 1, time, time2, g, ng, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 2, time, time2, b, nb, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 3, time, time2, a, na, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 4, time, time2, r2, nr2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 5, time, time2, g2, ng2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 6, time, time2, b2, nb2, 1); + } + time = time2; + r = nr; + g = ng; + b = nb; + a = na; + r2 = nr2; + g2 = ng2; + b2 = nb2; + } + timelines.push(timeline); + break; + } + } + } + } + for (var i = 0, n = input.readInt(true); i < n; i++) { + var boneIndex = input.readInt(true); + for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { + var timelineType = input.readByte(); + var frameCount = input.readInt(true); + var bezierCount = input.readInt(true); + switch (timelineType) { + case SkeletonBinary.BONE_ROTATE: { + timelines.push(SkeletonBinary.readTimeline(input, new spine.RotateTimeline(frameCount, bezierCount, boneIndex), 1)); + break; + } + case SkeletonBinary.BONE_TRANSLATE: { + timelines.push(SkeletonBinary.readTimeline2(input, new spine.TranslateTimeline(frameCount, bezierCount, boneIndex), scale)); + break; + } + case SkeletonBinary.BONE_SCALE: { + timelines.push(SkeletonBinary.readTimeline2(input, new spine.ScaleTimeline(frameCount, bezierCount, boneIndex), 1)); + break; + } + case SkeletonBinary.BONE_SHEAR: { + timelines.push(SkeletonBinary.readTimeline2(input, new spine.ShearTimeline(frameCount, bezierCount, boneIndex), 1)); + } + } + } + } + for (var i = 0, n = input.readInt(true); i < n; i++) { + var index = input.readInt(true); + var frameCount = input.readInt(true); + var bezierCount = input.readInt(true); + var frameLast = frameCount - 1; + var timeline = new spine.IkConstraintTimeline(frameCount, bezierCount, index); + var time = input.readFloat(); + var mix = input.readFloat(); + var softness = input.readFloat() * scale; + for (var frame = 0, bezier = 0;; frame++) { + timeline.setFrame(frame, time, mix, softness, input.readByte(), input.readBoolean(), input.readBoolean()); + if (frame == frameLast) + break; + var time2 = input.readFloat(); + var mix2 = input.readFloat(); + var softness2 = input.readFloat() * scale; + switch (input.readByte()) { + case SkeletonBinary.CURVE_STEPPED: + timeline.setStepped(frame); + break; + case SkeletonBinary.CURVE_BEZIER: + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 0, time, time2, mix, mix2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 1, time, time2, softness, softness2, scale); + } + time = time2; + mix = mix2; + softness = softness2; + } + timelines.push(timeline); + } + for (var i = 0, n = input.readInt(true); i < n; i++) { + var index = input.readInt(true); + var frameCount = input.readInt(true); + var bezierCount = input.readInt(true); + var frameLast = frameCount - 1; + var timeline = new spine.TransformConstraintTimeline(frameCount, bezierCount, index); + var time = input.readFloat(); + var rotateMix = input.readFloat(); + var translateMix = input.readFloat(); + var scaleMix = input.readFloat(); + var shearMix = input.readFloat(); + for (var frame = 0, bezier = 0;; frame++) { + timeline.setFrame(frame, time, rotateMix, translateMix, scaleMix, shearMix); + if (frame == frameLast) + break; + var time2 = input.readFloat(); + var rotateMix2 = input.readFloat(); + var translateMix2 = input.readFloat(); + var scaleMix2 = input.readFloat(); + var shearMix2 = input.readFloat(); + switch (input.readByte()) { + case SkeletonBinary.CURVE_STEPPED: + timeline.setStepped(frame); + break; + case SkeletonBinary.CURVE_BEZIER: + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 0, time, time2, rotateMix, rotateMix2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 1, time, time2, translateMix, translateMix2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 2, time, time2, scaleMix, scaleMix2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 3, time, time2, shearMix, shearMix2, 1); + } + time = time2; + rotateMix = rotateMix2; + translateMix = translateMix2; + scaleMix = scaleMix2; + shearMix = shearMix2; + } + timelines.push(timeline); + } + for (var i = 0, n = input.readInt(true); i < n; i++) { + var index = input.readInt(true); + var data = skeletonData.pathConstraints[index]; + for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { + switch (input.readByte()) { + case SkeletonBinary.PATH_POSITION: + timelines + .push(SkeletonBinary.readTimeline(input, new spine.PathConstraintPositionTimeline(input.readInt(true), input.readInt(true), index), data.positionMode == spine.PositionMode.Fixed ? scale : 1)); + break; + case SkeletonBinary.PATH_SPACING: + timelines + .push(SkeletonBinary.readTimeline(input, new spine.PathConstraintSpacingTimeline(input.readInt(true), input.readInt(true), index), data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed ? scale : 1)); + break; + case SkeletonBinary.PATH_MIX: + timelines + .push(SkeletonBinary.readTimeline2(input, new spine.PathConstraintMixTimeline(input.readInt(true), input.readInt(true), index), 1)); + } + } + } + for (var i = 0, n = input.readInt(true); i < n; i++) { + var skin = skeletonData.skins[input.readInt(true)]; + for (var ii = 0, nn = input.readInt(true); ii < nn; ii++) { + var slotIndex = input.readInt(true); + for (var iii = 0, nnn = input.readInt(true); iii < nnn; iii++) { + var attachmentName = input.readStringRef(); + var attachment = skin.getAttachment(slotIndex, attachmentName); + if (attachment == null) + throw Error("Vertex attachment not found: " + attachmentName); + var weighted = attachment.bones != null; + var vertices = attachment.vertices; + var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + var frameCount = input.readInt(true); + var frameLast = frameCount - 1; + var bezierCount = input.readInt(true); + var timeline = new spine.DeformTimeline(frameCount, bezierCount, slotIndex, attachment); + var time = input.readFloat(); + for (var frame = 0, bezier = 0;; frame++) { + var deform = void 0; + var end = input.readInt(true); + if (end == 0) + deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; + else { + deform = spine.Utils.newFloatArray(deformLength); + var start = input.readInt(true); + end += start; + if (scale == 1) { + for (var v = start; v < end; v++) + deform[v] = input.readFloat(); + } + else { + for (var v = start; v < end; v++) + deform[v] = input.readFloat() * scale; + } + if (!weighted) { + for (var v = 0, vn = deform.length; v < vn; v++) + deform[v] += vertices[v]; + } + } + timeline.setFrame(frame, time, deform); + if (frame == frameLast) + break; + var time2 = input.readFloat(); + switch (input.readByte()) { + case SkeletonBinary.CURVE_STEPPED: + timeline.setStepped(frame); + break; + case SkeletonBinary.CURVE_BEZIER: + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 0, time, time2, 0, 1, 1); + } + time = time2; + } + timelines.push(timeline); + } + } + } + var drawOrderCount = input.readInt(true); + if (drawOrderCount > 0) { + var timeline = new spine.DrawOrderTimeline(drawOrderCount); + var slotCount = skeletonData.slots.length; + for (var i = 0; i < drawOrderCount; i++) { + var time = input.readFloat(); + var offsetCount = input.readInt(true); + var drawOrder = spine.Utils.newArray(slotCount, 0); + for (var ii = slotCount - 1; ii >= 0; ii--) + drawOrder[ii] = -1; + var unchanged = spine.Utils.newArray(slotCount - offsetCount, 0); + var originalIndex = 0, unchangedIndex = 0; + for (var ii = 0; ii < offsetCount; ii++) { + var slotIndex = input.readInt(true); + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + input.readInt(true)] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (var ii = slotCount - 1; ii >= 0; ii--) + if (drawOrder[ii] == -1) + drawOrder[ii] = unchanged[--unchangedIndex]; + timeline.setFrame(i, time, drawOrder); + } + timelines.push(timeline); + } + var eventCount = input.readInt(true); + if (eventCount > 0) { + var timeline = new spine.EventTimeline(eventCount); + for (var i = 0; i < eventCount; i++) { + var time = input.readFloat(); + var eventData = skeletonData.events[input.readInt(true)]; + var event_4 = new spine.Event(time, eventData); + event_4.intValue = input.readInt(false); + event_4.floatValue = input.readFloat(); + event_4.stringValue = input.readBoolean() ? input.readString() : eventData.stringValue; + if (event_4.data.audioPath != null) { + event_4.volume = input.readFloat(); + event_4.balance = input.readFloat(); + } + timeline.setFrame(i, event_4); + } + timelines.push(timeline); + } + var duration = 0; + for (var i = 0, n = timelines.length; i < n; i++) + duration = Math.max(duration, (timelines[i]).getDuration()); + return new spine.Animation(name, timelines, duration); + }; + SkeletonBinary.readTimeline = function (input, timeline, scale) { + var time = input.readFloat(), value = input.readFloat() * scale; + for (var frame = 0, bezier = 0, frameLast = timeline.getFrameCount() - 1;; frame++) { + timeline.setFrame(frame, time, value); + if (frame == frameLast) + break; + var time2 = input.readFloat(), value2 = input.readFloat() * scale; + switch (input.readByte()) { + case SkeletonBinary.CURVE_STEPPED: + timeline.setStepped(frame); + break; + case SkeletonBinary.CURVE_BEZIER: + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 0, time, time2, value, value2, 1); + } + time = time2; + value = value2; + } + return timeline; + }; + SkeletonBinary.readTimeline2 = function (input, timeline, scale) { + var time = input.readFloat(), value1 = input.readFloat() * scale, value2 = input.readFloat() * scale; + for (var frame = 0, bezier = 0, frameLast = timeline.getFrameCount() - 1;; frame++) { + timeline.setFrame(frame, time, value1, value2); + if (frame == frameLast) + break; + var time2 = input.readFloat(), nvalue1 = input.readFloat() * scale, nvalue2 = input.readFloat() * scale; + switch (input.readByte()) { + case SkeletonBinary.CURVE_STEPPED: + timeline.setStepped(frame); + break; + case SkeletonBinary.CURVE_BEZIER: + this.setBezier(input, timeline, bezier++, frame, 0, time, time2, value1, nvalue1, scale); + this.setBezier(input, timeline, bezier++, frame, 1, time, time2, value2, nvalue2, scale); + } + time = time2; + value1 = nvalue1; + value2 = nvalue2; + } + return timeline; + }; + SkeletonBinary.setBezier = function (input, timeline, bezier, frame, value, time1, time2, value1, value2, scale) { + timeline.setBezier(bezier, frame, value, time1, value1, input.readFloat(), input.readFloat() * scale, input.readFloat(), input.readFloat() * scale, time2, value2); + }; + SkeletonBinary.AttachmentTypeValues = [0, 1, 2, 3, 4, 5, 6]; + SkeletonBinary.TransformModeValues = [spine.TransformMode.Normal, spine.TransformMode.OnlyTranslation, spine.TransformMode.NoRotationOrReflection, spine.TransformMode.NoScale, spine.TransformMode.NoScaleOrReflection]; + SkeletonBinary.PositionModeValues = [spine.PositionMode.Fixed, spine.PositionMode.Percent]; + SkeletonBinary.SpacingModeValues = [spine.SpacingMode.Length, spine.SpacingMode.Fixed, spine.SpacingMode.Percent]; + SkeletonBinary.RotateModeValues = [spine.RotateMode.Tangent, spine.RotateMode.Chain, spine.RotateMode.ChainScale]; + SkeletonBinary.BlendModeValues = [spine.BlendMode.Normal, spine.BlendMode.Additive, spine.BlendMode.Multiply, spine.BlendMode.Screen]; + SkeletonBinary.BONE_ROTATE = 0; + SkeletonBinary.BONE_TRANSLATE = 1; + SkeletonBinary.BONE_SCALE = 2; + SkeletonBinary.BONE_SHEAR = 3; + SkeletonBinary.SLOT_ATTACHMENT = 0; + SkeletonBinary.SLOT_COLOR = 1; + SkeletonBinary.SLOT_TWO_COLOR = 2; + SkeletonBinary.PATH_POSITION = 0; + SkeletonBinary.PATH_SPACING = 1; + SkeletonBinary.PATH_MIX = 2; + SkeletonBinary.CURVE_LINEAR = 0; + SkeletonBinary.CURVE_STEPPED = 1; + SkeletonBinary.CURVE_BEZIER = 2; + return SkeletonBinary; + }()); + spine.SkeletonBinary = SkeletonBinary; + var BinaryInput = (function () { + function BinaryInput(data, strings, index, buffer) { + if (strings === void 0) { strings = new Array(); } + if (index === void 0) { index = 0; } + if (buffer === void 0) { buffer = new DataView(data.buffer); } + this.strings = strings; + this.index = index; + this.buffer = buffer; + } + BinaryInput.prototype.readByte = function () { + return this.buffer.getInt8(this.index++); + }; + BinaryInput.prototype.readUnsignedByte = function () { + return this.buffer.getUint8(this.index++); + }; + BinaryInput.prototype.readShort = function () { + var value = this.buffer.getInt16(this.index); + this.index += 2; + return value; + }; + BinaryInput.prototype.readInt32 = function () { + var value = this.buffer.getInt32(this.index); + this.index += 4; + return value; + }; + BinaryInput.prototype.readInt = function (optimizePositive) { + var b = this.readByte(); + var result = b & 0x7F; + if ((b & 0x80) != 0) { + b = this.readByte(); + result |= (b & 0x7F) << 7; + if ((b & 0x80) != 0) { + b = this.readByte(); + result |= (b & 0x7F) << 14; + if ((b & 0x80) != 0) { + b = this.readByte(); + result |= (b & 0x7F) << 21; + if ((b & 0x80) != 0) { + b = this.readByte(); + result |= (b & 0x7F) << 28; + } + } + } + } + return optimizePositive ? result : ((result >>> 1) ^ -(result & 1)); + }; + BinaryInput.prototype.readStringRef = function () { + var index = this.readInt(true); + return index == 0 ? null : this.strings[index - 1]; + }; + BinaryInput.prototype.readString = function () { + var byteCount = this.readInt(true); + switch (byteCount) { + case 0: + return null; + case 1: + return ""; + } + byteCount--; + var chars = ""; + var charCount = 0; + for (var i = 0; i < byteCount;) { + var b = this.readByte(); + switch (b >> 4) { + case 12: + case 13: + chars += String.fromCharCode(((b & 0x1F) << 6 | this.readByte() & 0x3F)); + i += 2; + break; + case 14: + chars += String.fromCharCode(((b & 0x0F) << 12 | (this.readByte() & 0x3F) << 6 | this.readByte() & 0x3F)); + i += 3; + break; + default: + chars += String.fromCharCode(b); + i++; + } + } + return chars; + }; + BinaryInput.prototype.readFloat = function () { + var value = this.buffer.getFloat32(this.index); + this.index += 4; + return value; + }; + BinaryInput.prototype.readBoolean = function () { + return this.readByte() != 0; + }; + return BinaryInput; + }()); + var LinkedMesh = (function () { + function LinkedMesh(mesh, skin, slotIndex, parent, inheritDeform) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + this.inheritDeform = inheritDeform; + } + return LinkedMesh; + }()); + var Vertices = (function () { + function Vertices(bones, vertices) { + if (bones === void 0) { bones = null; } + if (vertices === void 0) { vertices = null; } + this.bones = bones; + this.vertices = vertices; + } + return Vertices; + }()); })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonBounds = (function () { - function SkeletonBounds() { - this.minX = 0; - this.minY = 0; - this.maxX = 0; - this.maxY = 0; - this.boundingBoxes = new Array(); - this.polygons = new Array(); - this.polygonPool = new spine.Pool(function () { - return spine.Utils.newFloatArray(16); - }); - } - SkeletonBounds.prototype.update = function (skeleton, updateAabb) { - if (skeleton == null) - throw new Error("skeleton cannot be null."); - var boundingBoxes = this.boundingBoxes; - var polygons = this.polygons; - var polygonPool = this.polygonPool; - var slots = skeleton.slots; - var slotCount = slots.length; - boundingBoxes.length = 0; - polygonPool.freeAll(polygons); - polygons.length = 0; - for (var i = 0; i < slotCount; i++) { - var slot = slots[i]; - if (!slot.bone.active) - continue; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.BoundingBoxAttachment) { - var boundingBox = attachment; - boundingBoxes.push(boundingBox); - var polygon = polygonPool.obtain(); - if (polygon.length != boundingBox.worldVerticesLength) { - polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); - } - polygons.push(polygon); - boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); - } - } - if (updateAabb) { - this.aabbCompute(); - } - else { - this.minX = Number.POSITIVE_INFINITY; - this.minY = Number.POSITIVE_INFINITY; - this.maxX = Number.NEGATIVE_INFINITY; - this.maxY = Number.NEGATIVE_INFINITY; - } - }; - SkeletonBounds.prototype.aabbCompute = function () { - var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - var vertices = polygon; - for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { - var x = vertices[ii]; - var y = vertices[ii + 1]; - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - } - } - this.minX = minX; - this.minY = minY; - this.maxX = maxX; - this.maxY = maxY; - }; - SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { - return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; - }; - SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { - var minX = this.minX; - var minY = this.minY; - var maxX = this.maxX; - var maxY = this.maxY; - if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) - return false; - var m = (y2 - y1) / (x2 - x1); - var y = m * (minX - x1) + y1; - if (y > minY && y < maxY) - return true; - y = m * (maxX - x1) + y1; - if (y > minY && y < maxY) - return true; - var x = (minY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - x = (maxY - y1) / m + x1; - if (x > minX && x < maxX) - return true; - return false; - }; - SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { - return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; - }; - SkeletonBounds.prototype.containsPoint = function (x, y) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.containsPointPolygon(polygons[i], x, y)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { - var vertices = polygon; - var nn = polygon.length; - var prevIndex = nn - 2; - var inside = false; - for (var ii = 0; ii < nn; ii += 2) { - var vertexY = vertices[ii + 1]; - var prevY = vertices[prevIndex + 1]; - if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { - var vertexX = vertices[ii]; - if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) - inside = !inside; - } - prevIndex = ii; - } - return inside; - }; - SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { - var polygons = this.polygons; - for (var i = 0, n = polygons.length; i < n; i++) - if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) - return this.boundingBoxes[i]; - return null; - }; - SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { - var vertices = polygon; - var nn = polygon.length; - var width12 = x1 - x2, height12 = y1 - y2; - var det1 = x1 * y2 - y1 * x2; - var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; - for (var ii = 0; ii < nn; ii += 2) { - var x4 = vertices[ii], y4 = vertices[ii + 1]; - var det2 = x3 * y4 - y3 * x4; - var width34 = x3 - x4, height34 = y3 - y4; - var det3 = width12 * height34 - height12 * width34; - var x = (det1 * width34 - width12 * det2) / det3; - if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { - var y = (det1 * height34 - height12 * det2) / det3; - if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) - return true; - } - x3 = x4; - y3 = y4; - } - return false; - }; - SkeletonBounds.prototype.getPolygon = function (boundingBox) { - if (boundingBox == null) - throw new Error("boundingBox cannot be null."); - var index = this.boundingBoxes.indexOf(boundingBox); - return index == -1 ? null : this.polygons[index]; - }; - SkeletonBounds.prototype.getWidth = function () { - return this.maxX - this.minX; - }; - SkeletonBounds.prototype.getHeight = function () { - return this.maxY - this.minY; - }; - return SkeletonBounds; - }()); - spine.SkeletonBounds = SkeletonBounds; + var SkeletonBounds = (function () { + function SkeletonBounds() { + this.minX = 0; + this.minY = 0; + this.maxX = 0; + this.maxY = 0; + this.boundingBoxes = new Array(); + this.polygons = new Array(); + this.polygonPool = new spine.Pool(function () { + return spine.Utils.newFloatArray(16); + }); + } + SkeletonBounds.prototype.update = function (skeleton, updateAabb) { + if (skeleton == null) + throw new Error("skeleton cannot be null."); + var boundingBoxes = this.boundingBoxes; + var polygons = this.polygons; + var polygonPool = this.polygonPool; + var slots = skeleton.slots; + var slotCount = slots.length; + boundingBoxes.length = 0; + polygonPool.freeAll(polygons); + polygons.length = 0; + for (var i = 0; i < slotCount; i++) { + var slot = slots[i]; + if (!slot.bone.active) + continue; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.BoundingBoxAttachment) { + var boundingBox = attachment; + boundingBoxes.push(boundingBox); + var polygon = polygonPool.obtain(); + if (polygon.length != boundingBox.worldVerticesLength) { + polygon = spine.Utils.newFloatArray(boundingBox.worldVerticesLength); + } + polygons.push(polygon); + boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); + } + } + if (updateAabb) { + this.aabbCompute(); + } + else { + this.minX = Number.POSITIVE_INFINITY; + this.minY = Number.POSITIVE_INFINITY; + this.maxX = Number.NEGATIVE_INFINITY; + this.maxY = Number.NEGATIVE_INFINITY; + } + }; + SkeletonBounds.prototype.aabbCompute = function () { + var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + var vertices = polygon; + for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) { + var x = vertices[ii]; + var y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + this.minX = minX; + this.minY = minY; + this.maxX = maxX; + this.maxY = maxY; + }; + SkeletonBounds.prototype.aabbContainsPoint = function (x, y) { + return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; + }; + SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) { + var minX = this.minX; + var minY = this.minY; + var maxX = this.maxX; + var maxY = this.maxY; + if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY)) + return false; + var m = (y2 - y1) / (x2 - x1); + var y = m * (minX - x1) + y1; + if (y > minY && y < maxY) + return true; + y = m * (maxX - x1) + y1; + if (y > minY && y < maxY) + return true; + var x = (minY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + x = (maxY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + return false; + }; + SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) { + return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; + }; + SkeletonBounds.prototype.containsPoint = function (x, y) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.containsPointPolygon(polygons[i], x, y)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) { + var vertices = polygon; + var nn = polygon.length; + var prevIndex = nn - 2; + var inside = false; + for (var ii = 0; ii < nn; ii += 2) { + var vertexY = vertices[ii + 1]; + var prevY = vertices[prevIndex + 1]; + if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) { + var vertexX = vertices[ii]; + if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) + inside = !inside; + } + prevIndex = ii; + } + return inside; + }; + SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) { + var polygons = this.polygons; + for (var i = 0, n = polygons.length; i < n; i++) + if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) + return this.boundingBoxes[i]; + return null; + }; + SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) { + var vertices = polygon; + var nn = polygon.length; + var width12 = x1 - x2, height12 = y1 - y2; + var det1 = x1 * y2 - y1 * x2; + var x3 = vertices[nn - 2], y3 = vertices[nn - 1]; + for (var ii = 0; ii < nn; ii += 2) { + var x4 = vertices[ii], y4 = vertices[ii + 1]; + var det2 = x3 * y4 - y3 * x4; + var width34 = x3 - x4, height34 = y3 - y4; + var det3 = width12 * height34 - height12 * width34; + var x = (det1 * width34 - width12 * det2) / det3; + if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) { + var y = (det1 * height34 - height12 * det2) / det3; + if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1))) + return true; + } + x3 = x4; + y3 = y4; + } + return false; + }; + SkeletonBounds.prototype.getPolygon = function (boundingBox) { + if (boundingBox == null) + throw new Error("boundingBox cannot be null."); + var index = this.boundingBoxes.indexOf(boundingBox); + return index == -1 ? null : this.polygons[index]; + }; + SkeletonBounds.prototype.getWidth = function () { + return this.maxX - this.minX; + }; + SkeletonBounds.prototype.getHeight = function () { + return this.maxY - this.minY; + }; + return SkeletonBounds; + }()); + spine.SkeletonBounds = SkeletonBounds; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonClipping = (function () { - function SkeletonClipping() { - this.triangulator = new spine.Triangulator(); - this.clippingPolygon = new Array(); - this.clipOutput = new Array(); - this.clippedVertices = new Array(); - this.clippedTriangles = new Array(); - this.scratch = new Array(); - } - SkeletonClipping.prototype.clipStart = function (slot, clip) { - if (this.clipAttachment != null) - return 0; - this.clipAttachment = clip; - var n = clip.worldVerticesLength; - var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); - clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); - var clippingPolygon = this.clippingPolygon; - SkeletonClipping.makeClockwise(clippingPolygon); - var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); - for (var i = 0, n_2 = clippingPolygons.length; i < n_2; i++) { - var polygon = clippingPolygons[i]; - SkeletonClipping.makeClockwise(polygon); - polygon.push(polygon[0]); - polygon.push(polygon[1]); - } - return clippingPolygons.length; - }; - SkeletonClipping.prototype.clipEndWithSlot = function (slot) { - if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) - this.clipEnd(); - }; - SkeletonClipping.prototype.clipEnd = function () { - if (this.clipAttachment == null) - return; - this.clipAttachment = null; - this.clippingPolygons = null; - this.clippedVertices.length = 0; - this.clippedTriangles.length = 0; - this.clippingPolygon.length = 0; - }; - SkeletonClipping.prototype.isClipping = function () { - return this.clipAttachment != null; - }; - SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { - var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; - var clippedTriangles = this.clippedTriangles; - var polygons = this.clippingPolygons; - var polygonsCount = this.clippingPolygons.length; - var vertexSize = twoColor ? 12 : 8; - var index = 0; - clippedVertices.length = 0; - clippedTriangles.length = 0; - outer: for (var i = 0; i < trianglesLength; i += 3) { - var vertexOffset = triangles[i] << 1; - var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; - var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 1] << 1; - var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; - var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; - vertexOffset = triangles[i + 2] << 1; - var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; - var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; - for (var p = 0; p < polygonsCount; p++) { - var s = clippedVertices.length; - if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { - var clipOutputLength = clipOutput.length; - if (clipOutputLength == 0) - continue; - var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; - var d = 1 / (d0 * d2 + d1 * (y1 - y3)); - var clipOutputCount = clipOutputLength >> 1; - var clipOutputItems = this.clipOutput; - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); - for (var ii = 0; ii < clipOutputLength; ii += 2) { - var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; - clippedVerticesItems[s] = x; - clippedVerticesItems[s + 1] = y; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - var c0 = x - x3, c1 = y - y3; - var a = (d0 * c0 + d1 * c1) * d; - var b = (d4 * c0 + d2 * c1) * d; - var c = 1 - a - b; - clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; - clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; - if (twoColor) { - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 9] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - } - s += vertexSize; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); - clipOutputCount--; - for (var ii = 1; ii < clipOutputCount; ii++) { - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + ii); - clippedTrianglesItems[s + 2] = (index + ii + 1); - s += 3; - } - index += clipOutputCount + 1; - } - else { - var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); - clippedVerticesItems[s] = x1; - clippedVerticesItems[s + 1] = y1; - clippedVerticesItems[s + 2] = light.r; - clippedVerticesItems[s + 3] = light.g; - clippedVerticesItems[s + 4] = light.b; - clippedVerticesItems[s + 5] = light.a; - if (!twoColor) { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = x2; - clippedVerticesItems[s + 9] = y2; - clippedVerticesItems[s + 10] = light.r; - clippedVerticesItems[s + 11] = light.g; - clippedVerticesItems[s + 12] = light.b; - clippedVerticesItems[s + 13] = light.a; - clippedVerticesItems[s + 14] = u2; - clippedVerticesItems[s + 15] = v2; - clippedVerticesItems[s + 16] = x3; - clippedVerticesItems[s + 17] = y3; - clippedVerticesItems[s + 18] = light.r; - clippedVerticesItems[s + 19] = light.g; - clippedVerticesItems[s + 20] = light.b; - clippedVerticesItems[s + 21] = light.a; - clippedVerticesItems[s + 22] = u3; - clippedVerticesItems[s + 23] = v3; - } - else { - clippedVerticesItems[s + 6] = u1; - clippedVerticesItems[s + 7] = v1; - clippedVerticesItems[s + 8] = dark.r; - clippedVerticesItems[s + 9] = dark.g; - clippedVerticesItems[s + 10] = dark.b; - clippedVerticesItems[s + 11] = dark.a; - clippedVerticesItems[s + 12] = x2; - clippedVerticesItems[s + 13] = y2; - clippedVerticesItems[s + 14] = light.r; - clippedVerticesItems[s + 15] = light.g; - clippedVerticesItems[s + 16] = light.b; - clippedVerticesItems[s + 17] = light.a; - clippedVerticesItems[s + 18] = u2; - clippedVerticesItems[s + 19] = v2; - clippedVerticesItems[s + 20] = dark.r; - clippedVerticesItems[s + 21] = dark.g; - clippedVerticesItems[s + 22] = dark.b; - clippedVerticesItems[s + 23] = dark.a; - clippedVerticesItems[s + 24] = x3; - clippedVerticesItems[s + 25] = y3; - clippedVerticesItems[s + 26] = light.r; - clippedVerticesItems[s + 27] = light.g; - clippedVerticesItems[s + 28] = light.b; - clippedVerticesItems[s + 29] = light.a; - clippedVerticesItems[s + 30] = u3; - clippedVerticesItems[s + 31] = v3; - clippedVerticesItems[s + 32] = dark.r; - clippedVerticesItems[s + 33] = dark.g; - clippedVerticesItems[s + 34] = dark.b; - clippedVerticesItems[s + 35] = dark.a; - } - s = clippedTriangles.length; - var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); - clippedTrianglesItems[s] = index; - clippedTrianglesItems[s + 1] = (index + 1); - clippedTrianglesItems[s + 2] = (index + 2); - index += 3; - continue outer; - } - } - } - }; - SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { - var originalOutput = output; - var clipped = false; - var input = null; - if (clippingArea.length % 4 >= 2) { - input = output; - output = this.scratch; - } - else - input = this.scratch; - input.length = 0; - input.push(x1); - input.push(y1); - input.push(x2); - input.push(y2); - input.push(x3); - input.push(y3); - input.push(x1); - input.push(y1); - output.length = 0; - var clippingVertices = clippingArea; - var clippingVerticesLast = clippingArea.length - 4; - for (var i = 0;; i += 2) { - var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; - var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; - var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; - var inputVertices = input; - var inputVerticesLength = input.length - 2, outputStart = output.length; - for (var ii = 0; ii < inputVerticesLength; ii += 2) { - var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; - var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; - var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; - if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { - if (side2) { - output.push(inputX2); - output.push(inputY2); - continue; - } - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var s = c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY); - if (Math.abs(s) > 0.000001) { - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / s; - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - } - else { - output.push(edgeX); - output.push(edgeY); - } - } - else if (side2) { - var c0 = inputY2 - inputY, c2 = inputX2 - inputX; - var s = c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY); - if (Math.abs(s) > 0.000001) { - var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / s; - output.push(edgeX + (edgeX2 - edgeX) * ua); - output.push(edgeY + (edgeY2 - edgeY) * ua); - } - else { - output.push(edgeX); - output.push(edgeY); - } - output.push(inputX2); - output.push(inputY2); - } - clipped = true; - } - if (outputStart == output.length) { - originalOutput.length = 0; - return true; - } - output.push(output[0]); - output.push(output[1]); - if (i == clippingVerticesLast) - break; - var temp = output; - output = input; - output.length = 0; - input = temp; - } - if (originalOutput != output) { - originalOutput.length = 0; - for (var i = 0, n = output.length - 2; i < n; i++) - originalOutput[i] = output[i]; - } - else - originalOutput.length = originalOutput.length - 2; - return clipped; - }; - SkeletonClipping.makeClockwise = function (polygon) { - var vertices = polygon; - var verticeslength = polygon.length; - var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; - for (var i = 0, n = verticeslength - 3; i < n; i += 2) { - p1x = vertices[i]; - p1y = vertices[i + 1]; - p2x = vertices[i + 2]; - p2y = vertices[i + 3]; - area += p1x * p2y - p2x * p1y; - } - if (area < 0) - return; - for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { - var x = vertices[i], y = vertices[i + 1]; - var other = lastX - i; - vertices[i] = vertices[other]; - vertices[i + 1] = vertices[other + 1]; - vertices[other] = x; - vertices[other + 1] = y; - } - }; - return SkeletonClipping; - }()); - spine.SkeletonClipping = SkeletonClipping; + var SkeletonClipping = (function () { + function SkeletonClipping() { + this.triangulator = new spine.Triangulator(); + this.clippingPolygon = new Array(); + this.clipOutput = new Array(); + this.clippedVertices = new Array(); + this.clippedTriangles = new Array(); + this.scratch = new Array(); + } + SkeletonClipping.prototype.clipStart = function (slot, clip) { + if (this.clipAttachment != null) + return 0; + this.clipAttachment = clip; + var n = clip.worldVerticesLength; + var vertices = spine.Utils.setArraySize(this.clippingPolygon, n); + clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); + var clippingPolygon = this.clippingPolygon; + SkeletonClipping.makeClockwise(clippingPolygon); + var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); + for (var i = 0, n_2 = clippingPolygons.length; i < n_2; i++) { + var polygon = clippingPolygons[i]; + SkeletonClipping.makeClockwise(polygon); + polygon.push(polygon[0]); + polygon.push(polygon[1]); + } + return clippingPolygons.length; + }; + SkeletonClipping.prototype.clipEndWithSlot = function (slot) { + if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) + this.clipEnd(); + }; + SkeletonClipping.prototype.clipEnd = function () { + if (this.clipAttachment == null) + return; + this.clipAttachment = null; + this.clippingPolygons = null; + this.clippedVertices.length = 0; + this.clippedTriangles.length = 0; + this.clippingPolygon.length = 0; + }; + SkeletonClipping.prototype.isClipping = function () { + return this.clipAttachment != null; + }; + SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { + var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; + var clippedTriangles = this.clippedTriangles; + var polygons = this.clippingPolygons; + var polygonsCount = this.clippingPolygons.length; + var vertexSize = twoColor ? 12 : 8; + var index = 0; + clippedVertices.length = 0; + clippedTriangles.length = 0; + outer: for (var i = 0; i < trianglesLength; i += 3) { + var vertexOffset = triangles[i] << 1; + var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; + var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 1] << 1; + var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; + var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 2] << 1; + var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; + var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; + for (var p = 0; p < polygonsCount; p++) { + var s = clippedVertices.length; + if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { + var clipOutputLength = clipOutput.length; + if (clipOutputLength == 0) + continue; + var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; + var d = 1 / (d0 * d2 + d1 * (y1 - y3)); + var clipOutputCount = clipOutputLength >> 1; + var clipOutputItems = this.clipOutput; + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); + for (var ii = 0; ii < clipOutputLength; ii += 2) { + var x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; + clippedVerticesItems[s] = x; + clippedVerticesItems[s + 1] = y; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + var c0 = x - x3, c1 = y - y3; + var a = (d0 * c0 + d1 * c1) * d; + var b = (d4 * c0 + d2 * c1) * d; + var c = 1 - a - b; + clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; + clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; + if (twoColor) { + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + } + s += vertexSize; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); + clipOutputCount--; + for (var ii = 1; ii < clipOutputCount; ii++) { + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + ii); + clippedTrianglesItems[s + 2] = (index + ii + 1); + s += 3; + } + index += clipOutputCount + 1; + } + else { + var clippedVerticesItems = spine.Utils.setArraySize(clippedVertices, s + 3 * vertexSize); + clippedVerticesItems[s] = x1; + clippedVerticesItems[s + 1] = y1; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + if (!twoColor) { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = x2; + clippedVerticesItems[s + 9] = y2; + clippedVerticesItems[s + 10] = light.r; + clippedVerticesItems[s + 11] = light.g; + clippedVerticesItems[s + 12] = light.b; + clippedVerticesItems[s + 13] = light.a; + clippedVerticesItems[s + 14] = u2; + clippedVerticesItems[s + 15] = v2; + clippedVerticesItems[s + 16] = x3; + clippedVerticesItems[s + 17] = y3; + clippedVerticesItems[s + 18] = light.r; + clippedVerticesItems[s + 19] = light.g; + clippedVerticesItems[s + 20] = light.b; + clippedVerticesItems[s + 21] = light.a; + clippedVerticesItems[s + 22] = u3; + clippedVerticesItems[s + 23] = v3; + } + else { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + clippedVerticesItems[s + 12] = x2; + clippedVerticesItems[s + 13] = y2; + clippedVerticesItems[s + 14] = light.r; + clippedVerticesItems[s + 15] = light.g; + clippedVerticesItems[s + 16] = light.b; + clippedVerticesItems[s + 17] = light.a; + clippedVerticesItems[s + 18] = u2; + clippedVerticesItems[s + 19] = v2; + clippedVerticesItems[s + 20] = dark.r; + clippedVerticesItems[s + 21] = dark.g; + clippedVerticesItems[s + 22] = dark.b; + clippedVerticesItems[s + 23] = dark.a; + clippedVerticesItems[s + 24] = x3; + clippedVerticesItems[s + 25] = y3; + clippedVerticesItems[s + 26] = light.r; + clippedVerticesItems[s + 27] = light.g; + clippedVerticesItems[s + 28] = light.b; + clippedVerticesItems[s + 29] = light.a; + clippedVerticesItems[s + 30] = u3; + clippedVerticesItems[s + 31] = v3; + clippedVerticesItems[s + 32] = dark.r; + clippedVerticesItems[s + 33] = dark.g; + clippedVerticesItems[s + 34] = dark.b; + clippedVerticesItems[s + 35] = dark.a; + } + s = clippedTriangles.length; + var clippedTrianglesItems = spine.Utils.setArraySize(clippedTriangles, s + 3); + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = (index + 1); + clippedTrianglesItems[s + 2] = (index + 2); + index += 3; + continue outer; + } + } + } + }; + SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) { + var originalOutput = output; + var clipped = false; + var input = null; + if (clippingArea.length % 4 >= 2) { + input = output; + output = this.scratch; + } + else + input = this.scratch; + input.length = 0; + input.push(x1); + input.push(y1); + input.push(x2); + input.push(y2); + input.push(x3); + input.push(y3); + input.push(x1); + input.push(y1); + output.length = 0; + var clippingVertices = clippingArea; + var clippingVerticesLast = clippingArea.length - 4; + for (var i = 0;; i += 2) { + var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; + var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; + var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; + var inputVertices = input; + var inputVerticesLength = input.length - 2, outputStart = output.length; + for (var ii = 0; ii < inputVerticesLength; ii += 2) { + var inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; + var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; + var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; + if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { + if (side2) { + output.push(inputX2); + output.push(inputY2); + continue; + } + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var s = c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY); + if (Math.abs(s) > 0.000001) { + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / s; + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } + else { + output.push(edgeX); + output.push(edgeY); + } + } + else if (side2) { + var c0 = inputY2 - inputY, c2 = inputX2 - inputX; + var s = c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY); + if (Math.abs(s) > 0.000001) { + var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / s; + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } + else { + output.push(edgeX); + output.push(edgeY); + } + output.push(inputX2); + output.push(inputY2); + } + clipped = true; + } + if (outputStart == output.length) { + originalOutput.length = 0; + return true; + } + output.push(output[0]); + output.push(output[1]); + if (i == clippingVerticesLast) + break; + var temp = output; + output = input; + output.length = 0; + input = temp; + } + if (originalOutput != output) { + originalOutput.length = 0; + for (var i = 0, n = output.length - 2; i < n; i++) + originalOutput[i] = output[i]; + } + else + originalOutput.length = originalOutput.length - 2; + return clipped; + }; + SkeletonClipping.makeClockwise = function (polygon) { + var vertices = polygon; + var verticeslength = polygon.length; + var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; + for (var i = 0, n = verticeslength - 3; i < n; i += 2) { + p1x = vertices[i]; + p1y = vertices[i + 1]; + p2x = vertices[i + 2]; + p2y = vertices[i + 3]; + area += p1x * p2y - p2x * p1y; + } + if (area < 0) + return; + for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { + var x = vertices[i], y = vertices[i + 1]; + var other = lastX - i; + vertices[i] = vertices[other]; + vertices[i + 1] = vertices[other + 1]; + vertices[other] = x; + vertices[other + 1] = y; + } + }; + return SkeletonClipping; + }()); + spine.SkeletonClipping = SkeletonClipping; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonData = (function () { - function SkeletonData() { - this.bones = new Array(); - this.slots = new Array(); - this.skins = new Array(); - this.events = new Array(); - this.animations = new Array(); - this.ikConstraints = new Array(); - this.transformConstraints = new Array(); - this.pathConstraints = new Array(); - this.fps = 0; - } - SkeletonData.prototype.findBone = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (bone.name == boneName) - return bone; - } - return null; - }; - SkeletonData.prototype.findBoneIndex = function (boneName) { - if (boneName == null) - throw new Error("boneName cannot be null."); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) - if (bones[i].name == boneName) - return i; - return -1; - }; - SkeletonData.prototype.findSlot = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (slot.name == slotName) - return slot; - } - return null; - }; - SkeletonData.prototype.findSlotIndex = function (slotName) { - if (slotName == null) - throw new Error("slotName cannot be null."); - var slots = this.slots; - for (var i = 0, n = slots.length; i < n; i++) - if (slots[i].name == slotName) - return i; - return -1; - }; - SkeletonData.prototype.findSkin = function (skinName) { - if (skinName == null) - throw new Error("skinName cannot be null."); - var skins = this.skins; - for (var i = 0, n = skins.length; i < n; i++) { - var skin = skins[i]; - if (skin.name == skinName) - return skin; - } - return null; - }; - SkeletonData.prototype.findEvent = function (eventDataName) { - if (eventDataName == null) - throw new Error("eventDataName cannot be null."); - var events = this.events; - for (var i = 0, n = events.length; i < n; i++) { - var event_5 = events[i]; - if (event_5.name == eventDataName) - return event_5; - } - return null; - }; - SkeletonData.prototype.findAnimation = function (animationName) { - if (animationName == null) - throw new Error("animationName cannot be null."); - var animations = this.animations; - for (var i = 0, n = animations.length; i < n; i++) { - var animation = animations[i]; - if (animation.name == animationName) - return animation; - } - return null; - }; - SkeletonData.prototype.findIkConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var ikConstraints = this.ikConstraints; - for (var i = 0, n = ikConstraints.length; i < n; i++) { - var constraint = ikConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findTransformConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var transformConstraints = this.transformConstraints; - for (var i = 0, n = transformConstraints.length; i < n; i++) { - var constraint = transformConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraint = function (constraintName) { - if (constraintName == null) - throw new Error("constraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) { - var constraint = pathConstraints[i]; - if (constraint.name == constraintName) - return constraint; - } - return null; - }; - SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { - if (pathConstraintName == null) - throw new Error("pathConstraintName cannot be null."); - var pathConstraints = this.pathConstraints; - for (var i = 0, n = pathConstraints.length; i < n; i++) - if (pathConstraints[i].name == pathConstraintName) - return i; - return -1; - }; - return SkeletonData; - }()); - spine.SkeletonData = SkeletonData; + var SkeletonData = (function () { + function SkeletonData() { + this.bones = new Array(); + this.slots = new Array(); + this.skins = new Array(); + this.events = new Array(); + this.animations = new Array(); + this.ikConstraints = new Array(); + this.transformConstraints = new Array(); + this.pathConstraints = new Array(); + this.fps = 0; + } + SkeletonData.prototype.findBone = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (bone.name == boneName) + return bone; + } + return null; + }; + SkeletonData.prototype.findBoneIndex = function (boneName) { + if (boneName == null) + throw new Error("boneName cannot be null."); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) + if (bones[i].name == boneName) + return i; + return -1; + }; + SkeletonData.prototype.findSlot = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.name == slotName) + return slot; + } + return null; + }; + SkeletonData.prototype.findSlotIndex = function (slotName) { + if (slotName == null) + throw new Error("slotName cannot be null."); + var slots = this.slots; + for (var i = 0, n = slots.length; i < n; i++) + if (slots[i].name == slotName) + return i; + return -1; + }; + SkeletonData.prototype.findSkin = function (skinName) { + if (skinName == null) + throw new Error("skinName cannot be null."); + var skins = this.skins; + for (var i = 0, n = skins.length; i < n; i++) { + var skin = skins[i]; + if (skin.name == skinName) + return skin; + } + return null; + }; + SkeletonData.prototype.findEvent = function (eventDataName) { + if (eventDataName == null) + throw new Error("eventDataName cannot be null."); + var events = this.events; + for (var i = 0, n = events.length; i < n; i++) { + var event_5 = events[i]; + if (event_5.name == eventDataName) + return event_5; + } + return null; + }; + SkeletonData.prototype.findAnimation = function (animationName) { + if (animationName == null) + throw new Error("animationName cannot be null."); + var animations = this.animations; + for (var i = 0, n = animations.length; i < n; i++) { + var animation = animations[i]; + if (animation.name == animationName) + return animation; + } + return null; + }; + SkeletonData.prototype.findIkConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var ikConstraints = this.ikConstraints; + for (var i = 0, n = ikConstraints.length; i < n; i++) { + var constraint = ikConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findTransformConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var transformConstraints = this.transformConstraints; + for (var i = 0, n = transformConstraints.length; i < n; i++) { + var constraint = transformConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraint = function (constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) { + var constraint = pathConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + }; + SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) { + if (pathConstraintName == null) + throw new Error("pathConstraintName cannot be null."); + var pathConstraints = this.pathConstraints; + for (var i = 0, n = pathConstraints.length; i < n; i++) + if (pathConstraints[i].name == pathConstraintName) + return i; + return -1; + }; + return SkeletonData; + }()); + spine.SkeletonData = SkeletonData; })(spine || (spine = {})); var spine; (function (spine) { - var SkeletonJson = (function () { - function SkeletonJson(attachmentLoader) { - this.scale = 1; - this.linkedMeshes = new Array(); - this.attachmentLoader = attachmentLoader; - } - SkeletonJson.prototype.readSkeletonData = function (json) { - var scale = this.scale; - var skeletonData = new spine.SkeletonData(); - var root = typeof (json) === "string" ? JSON.parse(json) : json; - var skeletonMap = root.skeleton; - if (skeletonMap != null) { - skeletonData.hash = skeletonMap.hash; - skeletonData.version = skeletonMap.spine; - if ("3.8.75" == skeletonData.version) - throw new Error("Unsupported skeleton data, please export with a newer version of Spine."); - skeletonData.x = skeletonMap.x; - skeletonData.y = skeletonMap.y; - skeletonData.width = skeletonMap.width; - skeletonData.height = skeletonMap.height; - skeletonData.fps = skeletonMap.fps; - skeletonData.imagesPath = skeletonMap.images; - } - if (root.bones) { - for (var i = 0; i < root.bones.length; i++) { - var boneMap = root.bones[i]; - var parent_5 = null; - var parentName = this.getValue(boneMap, "parent", null); - if (parentName != null) { - parent_5 = skeletonData.findBone(parentName); - if (parent_5 == null) - throw new Error("Parent bone not found: " + parentName); - } - var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_5); - data.length = this.getValue(boneMap, "length", 0) * scale; - data.x = this.getValue(boneMap, "x", 0) * scale; - data.y = this.getValue(boneMap, "y", 0) * scale; - data.rotation = this.getValue(boneMap, "rotation", 0); - data.scaleX = this.getValue(boneMap, "scaleX", 1); - data.scaleY = this.getValue(boneMap, "scaleY", 1); - data.shearX = this.getValue(boneMap, "shearX", 0); - data.shearY = this.getValue(boneMap, "shearY", 0); - data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); - data.skinRequired = this.getValue(boneMap, "skin", false); - skeletonData.bones.push(data); - } - } - if (root.slots) { - for (var i = 0; i < root.slots.length; i++) { - var slotMap = root.slots[i]; - var slotName = slotMap.name; - var boneName = slotMap.bone; - var boneData = skeletonData.findBone(boneName); - if (boneData == null) - throw new Error("Slot bone not found: " + boneName); - var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); - var color = this.getValue(slotMap, "color", null); - if (color != null) - data.color.setFromString(color); - var dark = this.getValue(slotMap, "dark", null); - if (dark != null) { - data.darkColor = new spine.Color(1, 1, 1, 1); - data.darkColor.setFromString(dark); - } - data.attachmentName = this.getValue(slotMap, "attachment", null); - data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); - skeletonData.slots.push(data); - } - } - if (root.ik) { - for (var i = 0; i < root.ik.length; i++) { - var constraintMap = root.ik[i]; - var data = new spine.IkConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - data.skinRequired = this.getValue(constraintMap, "skin", false); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("IK bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("IK target bone not found: " + targetName); - data.mix = this.getValue(constraintMap, "mix", 1); - data.softness = this.getValue(constraintMap, "softness", 0) * scale; - data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; - data.compress = this.getValue(constraintMap, "compress", false); - data.stretch = this.getValue(constraintMap, "stretch", false); - data.uniform = this.getValue(constraintMap, "uniform", false); - skeletonData.ikConstraints.push(data); - } - } - if (root.transform) { - for (var i = 0; i < root.transform.length; i++) { - var constraintMap = root.transform[i]; - var data = new spine.TransformConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - data.skinRequired = this.getValue(constraintMap, "skin", false); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findBone(targetName); - if (data.target == null) - throw new Error("Transform constraint target bone not found: " + targetName); - data.local = this.getValue(constraintMap, "local", false); - data.relative = this.getValue(constraintMap, "relative", false); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.offsetX = this.getValue(constraintMap, "x", 0) * scale; - data.offsetY = this.getValue(constraintMap, "y", 0) * scale; - data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); - data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); - data.offsetShearY = this.getValue(constraintMap, "shearY", 0); - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); - data.shearMix = this.getValue(constraintMap, "shearMix", 1); - skeletonData.transformConstraints.push(data); - } - } - if (root.path) { - for (var i = 0; i < root.path.length; i++) { - var constraintMap = root.path[i]; - var data = new spine.PathConstraintData(constraintMap.name); - data.order = this.getValue(constraintMap, "order", 0); - data.skinRequired = this.getValue(constraintMap, "skin", false); - for (var j = 0; j < constraintMap.bones.length; j++) { - var boneName = constraintMap.bones[j]; - var bone = skeletonData.findBone(boneName); - if (bone == null) - throw new Error("Transform constraint bone not found: " + boneName); - data.bones.push(bone); - } - var targetName = constraintMap.target; - data.target = skeletonData.findSlot(targetName); - if (data.target == null) - throw new Error("Path target slot not found: " + targetName); - data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); - data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); - data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); - data.offsetRotation = this.getValue(constraintMap, "rotation", 0); - data.position = this.getValue(constraintMap, "position", 0); - if (data.positionMode == spine.PositionMode.Fixed) - data.position *= scale; - data.spacing = this.getValue(constraintMap, "spacing", 0); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - data.spacing *= scale; - data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); - data.translateMix = this.getValue(constraintMap, "translateMix", 1); - skeletonData.pathConstraints.push(data); - } - } - if (root.skins) { - for (var i = 0; i < root.skins.length; i++) { - var skinMap = root.skins[i]; - var skin = new spine.Skin(skinMap.name); - if (skinMap.bones) { - for (var ii = 0; ii < skinMap.bones.length; ii++) { - var bone = skeletonData.findBone(skinMap.bones[ii]); - if (bone == null) - throw new Error("Skin bone not found: " + skinMap.bones[i]); - skin.bones.push(bone); - } - } - if (skinMap.ik) { - for (var ii = 0; ii < skinMap.ik.length; ii++) { - var constraint = skeletonData.findIkConstraint(skinMap.ik[ii]); - if (constraint == null) - throw new Error("Skin IK constraint not found: " + skinMap.ik[i]); - skin.constraints.push(constraint); - } - } - if (skinMap.transform) { - for (var ii = 0; ii < skinMap.transform.length; ii++) { - var constraint = skeletonData.findTransformConstraint(skinMap.transform[ii]); - if (constraint == null) - throw new Error("Skin transform constraint not found: " + skinMap.transform[i]); - skin.constraints.push(constraint); - } - } - if (skinMap.path) { - for (var ii = 0; ii < skinMap.path.length; ii++) { - var constraint = skeletonData.findPathConstraint(skinMap.path[ii]); - if (constraint == null) - throw new Error("Skin path constraint not found: " + skinMap.path[i]); - skin.constraints.push(constraint); - } - } - for (var slotName in skinMap.attachments) { - var slot = skeletonData.findSlot(slotName); - if (slot == null) - throw new Error("Slot not found: " + slotName); - var slotMap = skinMap.attachments[slotName]; - for (var entryName in slotMap) { - var attachment = this.readAttachment(slotMap[entryName], skin, slot.index, entryName, skeletonData); - if (attachment != null) - skin.setAttachment(slot.index, entryName, attachment); - } - } - skeletonData.skins.push(skin); - if (skin.name == "default") - skeletonData.defaultSkin = skin; - } - } - for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { - var linkedMesh = this.linkedMeshes[i]; - var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); - if (skin == null) - throw new Error("Skin not found: " + linkedMesh.skin); - var parent_6 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); - if (parent_6 == null) - throw new Error("Parent mesh not found: " + linkedMesh.parent); - linkedMesh.mesh.deformAttachment = linkedMesh.inheritDeform ? parent_6 : linkedMesh.mesh; - linkedMesh.mesh.setParentMesh(parent_6); - linkedMesh.mesh.updateUVs(); - } - this.linkedMeshes.length = 0; - if (root.events) { - for (var eventName in root.events) { - var eventMap = root.events[eventName]; - var data = new spine.EventData(eventName); - data.intValue = this.getValue(eventMap, "int", 0); - data.floatValue = this.getValue(eventMap, "float", 0); - data.stringValue = this.getValue(eventMap, "string", ""); - data.audioPath = this.getValue(eventMap, "audio", null); - if (data.audioPath != null) { - data.volume = this.getValue(eventMap, "volume", 1); - data.balance = this.getValue(eventMap, "balance", 0); - } - skeletonData.events.push(data); - } - } - if (root.animations) { - for (var animationName in root.animations) { - var animationMap = root.animations[animationName]; - this.readAnimation(animationMap, animationName, skeletonData); - } - } - return skeletonData; - }; - SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { - var scale = this.scale; - name = this.getValue(map, "name", name); - var type = this.getValue(map, "type", "region"); - switch (type) { - case "region": { - var path = this.getValue(map, "path", name); - var region = this.attachmentLoader.newRegionAttachment(skin, name, path); - if (region == null) - return null; - region.path = path; - region.x = this.getValue(map, "x", 0) * scale; - region.y = this.getValue(map, "y", 0) * scale; - region.scaleX = this.getValue(map, "scaleX", 1); - region.scaleY = this.getValue(map, "scaleY", 1); - region.rotation = this.getValue(map, "rotation", 0); - region.width = map.width * scale; - region.height = map.height * scale; - var color = this.getValue(map, "color", null); - if (color != null) - region.color.setFromString(color); - region.updateOffset(); - return region; - } - case "boundingbox": { - var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); - if (box == null) - return null; - this.readVertices(map, box, map.vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - box.color.setFromString(color); - return box; - } - case "mesh": - case "linkedmesh": { - var path = this.getValue(map, "path", name); - var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); - if (mesh == null) - return null; - mesh.path = path; - var color = this.getValue(map, "color", null); - if (color != null) - mesh.color.setFromString(color); - mesh.width = this.getValue(map, "width", 0) * scale; - mesh.height = this.getValue(map, "height", 0) * scale; - var parent_7 = this.getValue(map, "parent", null); - if (parent_7 != null) { - this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_7, this.getValue(map, "deform", true))); - return mesh; - } - var uvs = map.uvs; - this.readVertices(map, mesh, uvs.length); - mesh.triangles = map.triangles; - mesh.regionUVs = uvs; - mesh.updateUVs(); - mesh.edges = this.getValue(map, "edges", null); - mesh.hullLength = this.getValue(map, "hull", 0) * 2; - return mesh; - } - case "path": { - var path = this.attachmentLoader.newPathAttachment(skin, name); - if (path == null) - return null; - path.closed = this.getValue(map, "closed", false); - path.constantSpeed = this.getValue(map, "constantSpeed", true); - var vertexCount = map.vertexCount; - this.readVertices(map, path, vertexCount << 1); - var lengths = spine.Utils.newArray(vertexCount / 3, 0); - for (var i = 0; i < map.lengths.length; i++) - lengths[i] = map.lengths[i] * scale; - path.lengths = lengths; - var color = this.getValue(map, "color", null); - if (color != null) - path.color.setFromString(color); - return path; - } - case "point": { - var point = this.attachmentLoader.newPointAttachment(skin, name); - if (point == null) - return null; - point.x = this.getValue(map, "x", 0) * scale; - point.y = this.getValue(map, "y", 0) * scale; - point.rotation = this.getValue(map, "rotation", 0); - var color = this.getValue(map, "color", null); - if (color != null) - point.color.setFromString(color); - return point; - } - case "clipping": { - var clip = this.attachmentLoader.newClippingAttachment(skin, name); - if (clip == null) - return null; - var end = this.getValue(map, "end", null); - if (end != null) { - var slot = skeletonData.findSlot(end); - if (slot == null) - throw new Error("Clipping end slot not found: " + end); - clip.endSlot = slot; - } - var vertexCount = map.vertexCount; - this.readVertices(map, clip, vertexCount << 1); - var color = this.getValue(map, "color", null); - if (color != null) - clip.color.setFromString(color); - return clip; - } - } - return null; - }; - SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { - var scale = this.scale; - attachment.worldVerticesLength = verticesLength; - var vertices = map.vertices; - if (verticesLength == vertices.length) { - var scaledVertices = spine.Utils.toFloatArray(vertices); - if (scale != 1) { - for (var i = 0, n = vertices.length; i < n; i++) - scaledVertices[i] *= scale; - } - attachment.vertices = scaledVertices; - return; - } - var weights = new Array(); - var bones = new Array(); - for (var i = 0, n = vertices.length; i < n;) { - var boneCount = vertices[i++]; - bones.push(boneCount); - for (var nn = i + boneCount * 4; i < nn; i += 4) { - bones.push(vertices[i]); - weights.push(vertices[i + 1] * scale); - weights.push(vertices[i + 2] * scale); - weights.push(vertices[i + 3]); - } - } - attachment.bones = bones; - attachment.vertices = spine.Utils.toFloatArray(weights); - }; - SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { - var scale = this.scale; - var timelines = new Array(); - var duration = 0; - if (map.slots) { - for (var slotName in map.slots) { - var slotMap = map.slots[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotName); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - if (timelineName == "attachment") { - var timeline = new spine.AttachmentTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex++, this.getValue(valueMap, "time", 0), valueMap.name); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - else if (timelineName == "color") { - var timeline = new spine.ColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var color = new spine.Color(); - color.setFromString(valueMap.color); - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), color.r, color.g, color.b, color.a); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.ColorTimeline.ENTRIES]); - } - else if (timelineName == "twoColor") { - var timeline = new spine.TwoColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var light = new spine.Color(); - var dark = new spine.Color(); - light.setFromString(valueMap.light); - dark.setFromString(valueMap.dark); - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TwoColorTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); - } - } - } - if (map.bones) { - for (var boneName in map.bones) { - var boneMap = map.bones[boneName]; - var boneIndex = skeletonData.findBoneIndex(boneName); - if (boneIndex == -1) - throw new Error("Bone not found: " + boneName); - for (var timelineName in boneMap) { - var timelineMap = boneMap[timelineName]; - if (timelineName === "rotate") { - var timeline = new spine.RotateTimeline(timelineMap.length); - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, "angle", 0)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.RotateTimeline.ENTRIES]); - } - else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { - var timeline = null; - var timelineScale = 1, defaultValue = 0; - if (timelineName === "scale") { - timeline = new spine.ScaleTimeline(timelineMap.length); - defaultValue = 1; - } - else if (timelineName === "shear") - timeline = new spine.ShearTimeline(timelineMap.length); - else { - timeline = new spine.TranslateTimeline(timelineMap.length); - timelineScale = scale; - } - timeline.boneIndex = boneIndex; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - var x = this.getValue(valueMap, "x", defaultValue), y = this.getValue(valueMap, "y", defaultValue); - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), x * timelineScale, y * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TranslateTimeline.ENTRIES]); - } - else - throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); - } - } - } - if (map.ik) { - for (var constraintName in map.ik) { - var constraintMap = map.ik[constraintName]; - var constraint = skeletonData.findIkConstraint(constraintName); - var timeline = new spine.IkConstraintTimeline(constraintMap.length); - timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "softness", 0) * scale, this.getValue(valueMap, "bendPositive", true) ? 1 : -1, this.getValue(valueMap, "compress", false), this.getValue(valueMap, "stretch", false)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.IkConstraintTimeline.ENTRIES]); - } - } - if (map.transform) { - for (var constraintName in map.transform) { - var constraintMap = map.transform[constraintName]; - var constraint = skeletonData.findTransformConstraint(constraintName); - var timeline = new spine.TransformConstraintTimeline(constraintMap.length); - timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); - var frameIndex = 0; - for (var i = 0; i < constraintMap.length; i++) { - var valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.TransformConstraintTimeline.ENTRIES]); - } - } - if (map.path) { - for (var constraintName in map.path) { - var constraintMap = map.path[constraintName]; - var index = skeletonData.findPathConstraintIndex(constraintName); - if (index == -1) - throw new Error("Path constraint not found: " + constraintName); - var data = skeletonData.pathConstraints[index]; - for (var timelineName in constraintMap) { - var timelineMap = constraintMap[timelineName]; - if (timelineName === "position" || timelineName === "spacing") { - var timeline = null; - var timelineScale = 1; - if (timelineName === "spacing") { - timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length); - if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) - timelineScale = scale; - } - else { - timeline = new spine.PathConstraintPositionTimeline(timelineMap.length); - if (data.positionMode == spine.PositionMode.Fixed) - timelineScale = scale; - } - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, timelineName, 0) * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintPositionTimeline.ENTRIES]); - } - else if (timelineName === "mix") { - var timeline = new spine.PathConstraintMixTimeline(timelineMap.length); - timeline.pathConstraintIndex = index; - var frameIndex = 0; - for (var i = 0; i < timelineMap.length; i++) { - var valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * spine.PathConstraintMixTimeline.ENTRIES]); - } - } - } - } - if (map.deform) { - for (var deformName in map.deform) { - var deformMap = map.deform[deformName]; - var skin = skeletonData.findSkin(deformName); - if (skin == null) - throw new Error("Skin not found: " + deformName); - for (var slotName in deformMap) { - var slotMap = deformMap[slotName]; - var slotIndex = skeletonData.findSlotIndex(slotName); - if (slotIndex == -1) - throw new Error("Slot not found: " + slotMap.name); - for (var timelineName in slotMap) { - var timelineMap = slotMap[timelineName]; - var attachment = skin.getAttachment(slotIndex, timelineName); - if (attachment == null) - throw new Error("Deform attachment not found: " + timelineMap.name); - var weighted = attachment.bones != null; - var vertices = attachment.vertices; - var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; - var timeline = new spine.DeformTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; - var frameIndex = 0; - for (var j = 0; j < timelineMap.length; j++) { - var valueMap = timelineMap[j]; - var deform = void 0; - var verticesValue = this.getValue(valueMap, "vertices", null); - if (verticesValue == null) - deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; - else { - deform = spine.Utils.newFloatArray(deformLength); - var start = this.getValue(valueMap, "offset", 0); - spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); - if (scale != 1) { - for (var i = start, n = i + verticesValue.length; i < n; i++) - deform[i] *= scale; - } - if (!weighted) { - for (var i = 0; i < deformLength; i++) - deform[i] += vertices[i]; - } - } - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), deform); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - } - } - } - var drawOrderNode = map.drawOrder; - if (drawOrderNode == null) - drawOrderNode = map.draworder; - if (drawOrderNode != null) { - var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); - var slotCount = skeletonData.slots.length; - var frameIndex = 0; - for (var j = 0; j < drawOrderNode.length; j++) { - var drawOrderMap = drawOrderNode[j]; - var drawOrder = null; - var offsets = this.getValue(drawOrderMap, "offsets", null); - if (offsets != null) { - drawOrder = spine.Utils.newArray(slotCount, -1); - var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); - var originalIndex = 0, unchangedIndex = 0; - for (var i = 0; i < offsets.length; i++) { - var offsetMap = offsets[i]; - var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); - if (slotIndex == -1) - throw new Error("Slot not found: " + offsetMap.slot); - while (originalIndex != slotIndex) - unchanged[unchangedIndex++] = originalIndex++; - drawOrder[originalIndex + offsetMap.offset] = originalIndex++; - } - while (originalIndex < slotCount) - unchanged[unchangedIndex++] = originalIndex++; - for (var i = slotCount - 1; i >= 0; i--) - if (drawOrder[i] == -1) - drawOrder[i] = unchanged[--unchangedIndex]; - } - timeline.setFrame(frameIndex++, this.getValue(drawOrderMap, "time", 0), drawOrder); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (map.events) { - var timeline = new spine.EventTimeline(map.events.length); - var frameIndex = 0; - for (var i = 0; i < map.events.length; i++) { - var eventMap = map.events[i]; - var eventData = skeletonData.findEvent(eventMap.name); - if (eventData == null) - throw new Error("Event not found: " + eventMap.name); - var event_6 = new spine.Event(spine.Utils.toSinglePrecision(this.getValue(eventMap, "time", 0)), eventData); - event_6.intValue = this.getValue(eventMap, "int", eventData.intValue); - event_6.floatValue = this.getValue(eventMap, "float", eventData.floatValue); - event_6.stringValue = this.getValue(eventMap, "string", eventData.stringValue); - if (event_6.data.audioPath != null) { - event_6.volume = this.getValue(eventMap, "volume", 1); - event_6.balance = this.getValue(eventMap, "balance", 0); - } - timeline.setFrame(frameIndex++, event_6); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); - } - if (isNaN(duration)) { - throw new Error("Error while parsing animation, duration is NaN"); - } - skeletonData.animations.push(new spine.Animation(name, timelines, duration)); - }; - SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) { - if (!map.hasOwnProperty("curve")) - return; - if (map.curve == "stepped") - timeline.setStepped(frameIndex); - else { - var curve = map.curve; - timeline.setCurve(frameIndex, curve, this.getValue(map, "c2", 0), this.getValue(map, "c3", 1), this.getValue(map, "c4", 1)); - } - }; - SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { - return map[prop] !== undefined ? map[prop] : defaultValue; - }; - SkeletonJson.blendModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.BlendMode.Normal; - if (str == "additive") - return spine.BlendMode.Additive; - if (str == "multiply") - return spine.BlendMode.Multiply; - if (str == "screen") - return spine.BlendMode.Screen; - throw new Error("Unknown blend mode: " + str); - }; - SkeletonJson.positionModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "fixed") - return spine.PositionMode.Fixed; - if (str == "percent") - return spine.PositionMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.spacingModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "length") - return spine.SpacingMode.Length; - if (str == "fixed") - return spine.SpacingMode.Fixed; - if (str == "percent") - return spine.SpacingMode.Percent; - throw new Error("Unknown position mode: " + str); - }; - SkeletonJson.rotateModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "tangent") - return spine.RotateMode.Tangent; - if (str == "chain") - return spine.RotateMode.Chain; - if (str == "chainscale") - return spine.RotateMode.ChainScale; - throw new Error("Unknown rotate mode: " + str); - }; - SkeletonJson.transformModeFromString = function (str) { - str = str.toLowerCase(); - if (str == "normal") - return spine.TransformMode.Normal; - if (str == "onlytranslation") - return spine.TransformMode.OnlyTranslation; - if (str == "norotationorreflection") - return spine.TransformMode.NoRotationOrReflection; - if (str == "noscale") - return spine.TransformMode.NoScale; - if (str == "noscaleorreflection") - return spine.TransformMode.NoScaleOrReflection; - throw new Error("Unknown transform mode: " + str); - }; - return SkeletonJson; - }()); - spine.SkeletonJson = SkeletonJson; - var LinkedMesh = (function () { - function LinkedMesh(mesh, skin, slotIndex, parent, inheritDeform) { - this.mesh = mesh; - this.skin = skin; - this.slotIndex = slotIndex; - this.parent = parent; - this.inheritDeform = inheritDeform; - } - return LinkedMesh; - }()); + var SkeletonJson = (function () { + function SkeletonJson(attachmentLoader) { + this.scale = 1; + this.linkedMeshes = new Array(); + this.attachmentLoader = attachmentLoader; + } + SkeletonJson.prototype.readSkeletonData = function (json) { + var scale = this.scale; + var skeletonData = new spine.SkeletonData(); + var root = typeof (json) === "string" ? JSON.parse(json) : json; + var skeletonMap = root.skeleton; + if (skeletonMap != null) { + skeletonData.hash = skeletonMap.hash; + skeletonData.version = skeletonMap.spine; + skeletonData.x = skeletonMap.x; + skeletonData.y = skeletonMap.y; + skeletonData.width = skeletonMap.width; + skeletonData.height = skeletonMap.height; + skeletonData.fps = skeletonMap.fps; + skeletonData.imagesPath = skeletonMap.images; + } + if (root.bones) { + for (var i = 0; i < root.bones.length; i++) { + var boneMap = root.bones[i]; + var parent_5 = null; + var parentName = this.getValue(boneMap, "parent", null); + if (parentName != null) { + parent_5 = skeletonData.findBone(parentName); + if (parent_5 == null) + throw new Error("Parent bone not found: " + parentName); + } + var data = new spine.BoneData(skeletonData.bones.length, boneMap.name, parent_5); + data.length = this.getValue(boneMap, "length", 0) * scale; + data.x = this.getValue(boneMap, "x", 0) * scale; + data.y = this.getValue(boneMap, "y", 0) * scale; + data.rotation = this.getValue(boneMap, "rotation", 0); + data.scaleX = this.getValue(boneMap, "scaleX", 1); + data.scaleY = this.getValue(boneMap, "scaleY", 1); + data.shearX = this.getValue(boneMap, "shearX", 0); + data.shearY = this.getValue(boneMap, "shearY", 0); + data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal")); + data.skinRequired = this.getValue(boneMap, "skin", false); + skeletonData.bones.push(data); + } + } + if (root.slots) { + for (var i = 0; i < root.slots.length; i++) { + var slotMap = root.slots[i]; + var slotName = slotMap.name; + var boneName = slotMap.bone; + var boneData = skeletonData.findBone(boneName); + if (boneData == null) + throw new Error("Slot bone not found: " + boneName); + var data = new spine.SlotData(skeletonData.slots.length, slotName, boneData); + var color = this.getValue(slotMap, "color", null); + if (color != null) + data.color.setFromString(color); + var dark = this.getValue(slotMap, "dark", null); + if (dark != null) { + data.darkColor = new spine.Color(1, 1, 1, 1); + data.darkColor.setFromString(dark); + } + data.attachmentName = this.getValue(slotMap, "attachment", null); + data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal")); + skeletonData.slots.push(data); + } + } + if (root.ik) { + for (var i = 0; i < root.ik.length; i++) { + var constraintMap = root.ik[i]; + var data = new spine.IkConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + data.skinRequired = this.getValue(constraintMap, "skin", false); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("IK bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("IK target bone not found: " + targetName); + data.mix = this.getValue(constraintMap, "mix", 1); + data.softness = this.getValue(constraintMap, "softness", 0) * scale; + data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1; + data.compress = this.getValue(constraintMap, "compress", false); + data.stretch = this.getValue(constraintMap, "stretch", false); + data.uniform = this.getValue(constraintMap, "uniform", false); + skeletonData.ikConstraints.push(data); + } + } + if (root.transform) { + for (var i = 0; i < root.transform.length; i++) { + var constraintMap = root.transform[i]; + var data = new spine.TransformConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + data.skinRequired = this.getValue(constraintMap, "skin", false); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findBone(targetName); + if (data.target == null) + throw new Error("Transform constraint target bone not found: " + targetName); + data.local = this.getValue(constraintMap, "local", false); + data.relative = this.getValue(constraintMap, "relative", false); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.offsetX = this.getValue(constraintMap, "x", 0) * scale; + data.offsetY = this.getValue(constraintMap, "y", 0) * scale; + data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0); + data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0); + data.offsetShearY = this.getValue(constraintMap, "shearY", 0); + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + data.scaleMix = this.getValue(constraintMap, "scaleMix", 1); + data.shearMix = this.getValue(constraintMap, "shearMix", 1); + skeletonData.transformConstraints.push(data); + } + } + if (root.path) { + for (var i = 0; i < root.path.length; i++) { + var constraintMap = root.path[i]; + var data = new spine.PathConstraintData(constraintMap.name); + data.order = this.getValue(constraintMap, "order", 0); + data.skinRequired = this.getValue(constraintMap, "skin", false); + for (var j = 0; j < constraintMap.bones.length; j++) { + var boneName = constraintMap.bones[j]; + var bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Transform constraint bone not found: " + boneName); + data.bones.push(bone); + } + var targetName = constraintMap.target; + data.target = skeletonData.findSlot(targetName); + if (data.target == null) + throw new Error("Path target slot not found: " + targetName); + data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent")); + data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length")); + data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent")); + data.offsetRotation = this.getValue(constraintMap, "rotation", 0); + data.position = this.getValue(constraintMap, "position", 0); + if (data.positionMode == spine.PositionMode.Fixed) + data.position *= scale; + data.spacing = this.getValue(constraintMap, "spacing", 0); + if (data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed) + data.spacing *= scale; + data.rotateMix = this.getValue(constraintMap, "rotateMix", 1); + data.translateMix = this.getValue(constraintMap, "translateMix", 1); + skeletonData.pathConstraints.push(data); + } + } + if (root.skins) { + for (var i = 0; i < root.skins.length; i++) { + var skinMap = root.skins[i]; + var skin = new spine.Skin(skinMap.name); + if (skinMap.bones) { + for (var ii = 0; ii < skinMap.bones.length; ii++) { + var bone = skeletonData.findBone(skinMap.bones[ii]); + if (bone == null) + throw new Error("Skin bone not found: " + skinMap.bones[i]); + skin.bones.push(bone); + } + } + if (skinMap.ik) { + for (var ii = 0; ii < skinMap.ik.length; ii++) { + var constraint = skeletonData.findIkConstraint(skinMap.ik[ii]); + if (constraint == null) + throw new Error("Skin IK constraint not found: " + skinMap.ik[i]); + skin.constraints.push(constraint); + } + } + if (skinMap.transform) { + for (var ii = 0; ii < skinMap.transform.length; ii++) { + var constraint = skeletonData.findTransformConstraint(skinMap.transform[ii]); + if (constraint == null) + throw new Error("Skin transform constraint not found: " + skinMap.transform[i]); + skin.constraints.push(constraint); + } + } + if (skinMap.path) { + for (var ii = 0; ii < skinMap.path.length; ii++) { + var constraint = skeletonData.findPathConstraint(skinMap.path[ii]); + if (constraint == null) + throw new Error("Skin path constraint not found: " + skinMap.path[i]); + skin.constraints.push(constraint); + } + } + for (var slotName in skinMap.attachments) { + var slot = skeletonData.findSlot(slotName); + if (slot == null) + throw new Error("Slot not found: " + slotName); + var slotMap = skinMap.attachments[slotName]; + for (var entryName in slotMap) { + var attachment = this.readAttachment(slotMap[entryName], skin, slot.index, entryName, skeletonData); + if (attachment != null) + skin.setAttachment(slot.index, entryName, attachment); + } + } + skeletonData.skins.push(skin); + if (skin.name == "default") + skeletonData.defaultSkin = skin; + } + } + for (var i = 0, n = this.linkedMeshes.length; i < n; i++) { + var linkedMesh = this.linkedMeshes[i]; + var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (skin == null) + throw new Error("Skin not found: " + linkedMesh.skin); + var parent_6 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (parent_6 == null) + throw new Error("Parent mesh not found: " + linkedMesh.parent); + linkedMesh.mesh.deformAttachment = linkedMesh.inheritDeform ? parent_6 : linkedMesh.mesh; + linkedMesh.mesh.setParentMesh(parent_6); + linkedMesh.mesh.updateUVs(); + } + this.linkedMeshes.length = 0; + if (root.events) { + for (var eventName in root.events) { + var eventMap = root.events[eventName]; + var data = new spine.EventData(eventName); + data.intValue = this.getValue(eventMap, "int", 0); + data.floatValue = this.getValue(eventMap, "float", 0); + data.stringValue = this.getValue(eventMap, "string", ""); + data.audioPath = this.getValue(eventMap, "audio", null); + if (data.audioPath != null) { + data.volume = this.getValue(eventMap, "volume", 1); + data.balance = this.getValue(eventMap, "balance", 0); + } + skeletonData.events.push(data); + } + } + if (root.animations) { + for (var animationName in root.animations) { + var animationMap = root.animations[animationName]; + this.readAnimation(animationMap, animationName, skeletonData); + } + } + return skeletonData; + }; + SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) { + var scale = this.scale; + name = this.getValue(map, "name", name); + var type = this.getValue(map, "type", "region"); + switch (type) { + case "region": { + var path = this.getValue(map, "path", name); + var region = this.attachmentLoader.newRegionAttachment(skin, name, path); + if (region == null) + return null; + region.path = path; + region.x = this.getValue(map, "x", 0) * scale; + region.y = this.getValue(map, "y", 0) * scale; + region.scaleX = this.getValue(map, "scaleX", 1); + region.scaleY = this.getValue(map, "scaleY", 1); + region.rotation = this.getValue(map, "rotation", 0); + region.width = map.width * scale; + region.height = map.height * scale; + var color = this.getValue(map, "color", null); + if (color != null) + region.color.setFromString(color); + region.updateOffset(); + return region; + } + case "boundingbox": { + var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (box == null) + return null; + this.readVertices(map, box, map.vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + box.color.setFromString(color); + return box; + } + case "mesh": + case "linkedmesh": { + var path = this.getValue(map, "path", name); + var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path); + if (mesh == null) + return null; + mesh.path = path; + var color = this.getValue(map, "color", null); + if (color != null) + mesh.color.setFromString(color); + mesh.width = this.getValue(map, "width", 0) * scale; + mesh.height = this.getValue(map, "height", 0) * scale; + var parent_7 = this.getValue(map, "parent", null); + if (parent_7 != null) { + this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_7, this.getValue(map, "deform", true))); + return mesh; + } + var uvs = map.uvs; + this.readVertices(map, mesh, uvs.length); + mesh.triangles = map.triangles; + mesh.regionUVs = uvs; + mesh.updateUVs(); + mesh.edges = this.getValue(map, "edges", null); + mesh.hullLength = this.getValue(map, "hull", 0) * 2; + return mesh; + } + case "path": { + var path = this.attachmentLoader.newPathAttachment(skin, name); + if (path == null) + return null; + path.closed = this.getValue(map, "closed", false); + path.constantSpeed = this.getValue(map, "constantSpeed", true); + var vertexCount = map.vertexCount; + this.readVertices(map, path, vertexCount << 1); + var lengths = spine.Utils.newArray(vertexCount / 3, 0); + for (var i = 0; i < map.lengths.length; i++) + lengths[i] = map.lengths[i] * scale; + path.lengths = lengths; + var color = this.getValue(map, "color", null); + if (color != null) + path.color.setFromString(color); + return path; + } + case "point": { + var point = this.attachmentLoader.newPointAttachment(skin, name); + if (point == null) + return null; + point.x = this.getValue(map, "x", 0) * scale; + point.y = this.getValue(map, "y", 0) * scale; + point.rotation = this.getValue(map, "rotation", 0); + var color = this.getValue(map, "color", null); + if (color != null) + point.color.setFromString(color); + return point; + } + case "clipping": { + var clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (clip == null) + return null; + var end = this.getValue(map, "end", null); + if (end != null) { + var slot = skeletonData.findSlot(end); + if (slot == null) + throw new Error("Clipping end slot not found: " + end); + clip.endSlot = slot; + } + var vertexCount = map.vertexCount; + this.readVertices(map, clip, vertexCount << 1); + var color = this.getValue(map, "color", null); + if (color != null) + clip.color.setFromString(color); + return clip; + } + } + return null; + }; + SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) { + var scale = this.scale; + attachment.worldVerticesLength = verticesLength; + var vertices = map.vertices; + if (verticesLength == vertices.length) { + var scaledVertices = spine.Utils.toFloatArray(vertices); + if (scale != 1) { + for (var i = 0, n = vertices.length; i < n; i++) + scaledVertices[i] *= scale; + } + attachment.vertices = scaledVertices; + return; + } + var weights = new Array(); + var bones = new Array(); + for (var i = 0, n = vertices.length; i < n;) { + var boneCount = vertices[i++]; + bones.push(boneCount); + for (var nn = i + boneCount * 4; i < nn; i += 4) { + bones.push(vertices[i]); + weights.push(vertices[i + 1] * scale); + weights.push(vertices[i + 2] * scale); + weights.push(vertices[i + 3]); + } + } + attachment.bones = bones; + attachment.vertices = spine.Utils.toFloatArray(weights); + }; + SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) { + var scale = this.scale; + var timelines = new Array(); + if (map.slots) { + for (var slotName in map.slots) { + var slotMap = map.slots[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotName); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + if (!timelineMap) + continue; + if (timelineName == "attachment") { + var timeline = new spine.AttachmentTimeline(timelineMap.length, slotIndex); + var frame = 0; + for (var i = 0; i < timelineMap.length; i++) { + var keyMap = timelineMap[i]; + timeline.setFrame(frame++, this.getValue(keyMap, "time", 0), keyMap.name); + } + timelines.push(timeline); + } + else if (timelineName == "color") { + var timeline = new spine.ColorTimeline(timelineMap.length, timelineMap.length << 2, slotIndex); + var keyMap = timelineMap[0]; + var time = this.getValue(keyMap, "time", 0); + var color = new spine.Color().setFromString(keyMap.color); + for (var frame = 0, bezier = 0;; frame++) { + timeline.setFrame(frame, time, color.r, color.g, color.b, color.a); + if (timelineMap.length == frame + 1) { + break; + } + var nextMap = timelineMap[frame + 1]; + var time2 = this.getValue(nextMap, "time", 0); + var newColor = new spine.Color().setFromString(nextMap.color); + var curve = keyMap.curve; + if (curve) { + bezier = this.readCurve(curve, timeline, bezier, frame, 0, time, time2, color.r, newColor.r, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 1, time, time2, color.g, newColor.g, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 2, time, time2, color.b, newColor.b, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 3, time, time2, color.a, newColor.a, 1); + } + time = time2; + color = newColor; + keyMap = nextMap; + } + timelines.push(timeline); + } + else if (timelineName == "twoColor") { + var timeline = new spine.TwoColorTimeline(timelineMap.length, timelineMap.length * 7, slotIndex); + var keyMap = timelineMap[0]; + var time = this.getValue(keyMap, "time", 0); + var color = new spine.Color().setFromString(keyMap.light); + var color2 = new spine.Color().setFromString(keyMap.dark); + for (var frame = 0, bezier = 0;; frame++) { + timeline.setFrame(frame, time, color.r, color.g, color.b, color.a, color2.r, color2.g, color2.b); + if (timelineMap.length == frame + 1) { + break; + } + var nextMap = timelineMap[frame + 1]; + var time2 = this.getValue(nextMap, "time", 0); + var newColor = new spine.Color().setFromString(nextMap.light); + var newColor2 = new spine.Color().setFromString(nextMap.dark); + var curve = keyMap.curve; + if (curve) { + bezier = this.readCurve(curve, timeline, bezier, frame, 0, time, time2, color.r, newColor.r, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 1, time, time2, color.g, newColor.g, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 2, time, time2, color.b, newColor.b, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 3, time, time2, color.a, newColor.a, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 4, time, time2, color2.r, newColor2.r, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 5, time, time2, color2.g, newColor2.g, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 6, time, time2, color2.b, newColor2.b, 1); + } + time = time2; + color = newColor; + color2 = newColor2; + keyMap = nextMap; + } + timelines.push(timeline); + } + else + throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); + } + } + } + if (map.bones) { + for (var boneName in map.bones) { + var boneMap = map.bones[boneName]; + var boneIndex = skeletonData.findBoneIndex(boneName); + if (boneIndex == -1) + throw new Error("Bone not found: " + boneName); + for (var timelineName in boneMap) { + var timelineMap = boneMap[timelineName]; + var keyMap = timelineMap[0]; + if (!keyMap) + continue; + if (timelineName === "rotate") { + timelines.push(this.readTimeline(timelineMap, new spine.RotateTimeline(timelineMap.length, timelineMap.length, boneIndex), 0, 1)); + } + else if (timelineName === "translate") { + var timeline = new spine.TranslateTimeline(timelineMap.length, timelineMap.length << 1, boneIndex); + timelines.push(this.readTimeline2(timelineMap, timeline, "x", "y", 0, scale)); + } + else if (timelineName === "scale") { + var timeline = new spine.ScaleTimeline(timelineMap.length, timelineMap.length << 1, boneIndex); + timelines.push(this.readTimeline2(timelineMap, timeline, "x", "y", 1, 1)); + } + else if (timelineName === "shear") { + var timeline = new spine.ShearTimeline(timelineMap.length, timelineMap.length << 1, boneIndex); + timelines.push(this.readTimeline2(timelineMap, timeline, "x", "y", 0, 1)); + } + else { + throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); + } + } + } + } + if (map.ik) { + for (var constraintName in map.ik) { + var constraintMap = map.ik[constraintName]; + var keyMap = constraintMap[0]; + if (!keyMap) + continue; + var constraint = skeletonData.findIkConstraint(constraintName); + var constraintIndex = skeletonData.ikConstraints.indexOf(constraint); + var timeline = new spine.IkConstraintTimeline(constraintMap.length, constraintMap.length << 1, constraintIndex); + var time = this.getValue(keyMap, "time", 0); + var mix = this.getValue(keyMap, "mix", 1); + var softness = this.getValue(keyMap, "softness", 0) * scale; + for (var frame = 0, bezier = 0;; frame++) { + timeline.setFrame(frame, time, mix, softness, this.getValue(keyMap, "bendPositive", true) ? 1 : -1, this.getValue(keyMap, "compress", false), this.getValue(keyMap, "stretch", false)); + var nextMap = constraintMap[frame + 1]; + if (!nextMap) { + break; + } + var time2 = this.getValue(nextMap, "time", 0); + var mix2 = this.getValue(nextMap, "mix", 1); + var softness2 = this.getValue(nextMap, "softness", 0) * scale; + var curve = keyMap.curve; + if (curve) { + bezier = this.readCurve(curve, timeline, bezier, frame, 0, time, time2, mix, mix2, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 1, time, time2, softness, softness2, scale); + } + time = time2; + mix = mix2; + softness = softness2; + keyMap = nextMap; + } + timelines.push(timeline); + } + } + if (map.transform) { + for (var constraintName in map.transform) { + var constraintMap = map.transform[constraintName]; + var keyMap = constraintMap[0]; + if (!keyMap) + continue; + var constraint = skeletonData.findTransformConstraint(constraintName); + var constraintIndex = skeletonData.transformConstraints.indexOf(constraint); + var timeline = new spine.TransformConstraintTimeline(constraintMap.length, constraintMap.length << 2, constraintIndex); + var time = this.getValue(keyMap, "time", 0); + var rotateMix = this.getValue(keyMap, "rotateMix", 1); + var translateMix = this.getValue(keyMap, "translateMix", 1); + var scaleMix = this.getValue(keyMap, "scaleMix", 1); + var shearMix = this.getValue(keyMap, "shearMix", 1); + for (var frame = 0, bezier = 0;; frame++) { + timeline.setFrame(frame, time, rotateMix, translateMix, scaleMix, shearMix); + var nextMap = constraintMap[frame + 1]; + if (!nextMap) { + break; + } + var time2 = this.getValue(nextMap, "time", 0); + var rotateMix2 = this.getValue(nextMap, "rotateMix", 1); + var translateMix2 = this.getValue(nextMap, "translateMix", 1); + var scaleMix2 = this.getValue(nextMap, "scaleMix", 1); + var shearMix2 = this.getValue(nextMap, "shearMix", 1); + var curve = keyMap.curve; + if (curve) { + bezier = this.readCurve(curve, timeline, bezier, frame, 0, time, time2, rotateMix, rotateMix2, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 1, time, time2, translateMix, translateMix2, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 2, time, time2, scaleMix, scaleMix2, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 3, time, time2, shearMix, shearMix2, 1); + } + time = time2; + rotateMix = rotateMix2; + translateMix = translateMix2; + scaleMix = scaleMix2; + shearMix = shearMix2; + keyMap = nextMap; + } + timelines.push(timeline); + } + } + if (map.path) { + for (var constraintName in map.path) { + var constraintMap = map.path[constraintName]; + var index = skeletonData.findPathConstraintIndex(constraintName); + if (index == -1) + throw new Error("Path constraint not found: " + constraintName); + var data = skeletonData.pathConstraints[index]; + for (var timelineName in constraintMap) { + var timelineMap = constraintMap[timelineName]; + var keyMap = constraintMap[0]; + if (!keyMap) + continue; + if (timelineName === "position") { + var timeline = new spine.PathConstraintPositionTimeline(timelineMap.length, timelineMap.length, index); + timelines.push(this.readTimeline(timelineMap, timeline, 0, data.positionMode == spine.PositionMode.Fixed ? scale : 1)); + } + else if (timelineName === "spacing") { + var timeline = new spine.PathConstraintSpacingTimeline(timelineMap.length, timelineMap.length, index); + timelines.push(this.readTimeline(timelineMap, timeline, 0, data.spacingMode == spine.SpacingMode.Length || data.spacingMode == spine.SpacingMode.Fixed ? scale : 1)); + } + else if (timelineName === "mix") { + var timeline = new spine.PathConstraintMixTimeline(timelineMap.size, timelineMap.size << 1, index); + timelines.push(this.readTimeline2(timelineMap, timeline, "rotateMix", "translateMix", 1, 1)); + } + } + } + } + if (map.deform) { + for (var deformName in map.deform) { + var deformMap = map.deform[deformName]; + var skin = skeletonData.findSkin(deformName); + if (skin == null) + throw new Error("Skin not found: " + deformName); + for (var slotName in deformMap) { + var slotMap = deformMap[slotName]; + var slotIndex = skeletonData.findSlotIndex(slotName); + if (slotIndex == -1) + throw new Error("Slot not found: " + slotMap.name); + for (var timelineName in slotMap) { + var timelineMap = slotMap[timelineName]; + var keyMap = timelineMap[0]; + if (!keyMap) + continue; + var attachment = skin.getAttachment(slotIndex, timelineName); + if (attachment == null) + throw new Error("Deform attachment not found: " + timelineMap.name); + var weighted = attachment.bones != null; + var vertices = attachment.vertices; + var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + var timeline = new spine.DeformTimeline(timelineMap.length, timelineMap.length, slotIndex, attachment); + var time = this.getValue(keyMap, "time", 0); + for (var frame = 0, bezier = 0;; frame++) { + var deform = void 0; + var verticesValue = this.getValue(keyMap, "vertices", null); + if (verticesValue == null) + deform = weighted ? spine.Utils.newFloatArray(deformLength) : vertices; + else { + deform = spine.Utils.newFloatArray(deformLength); + var start = this.getValue(keyMap, "offset", 0); + spine.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); + if (scale != 1) { + for (var i = start, n = i + verticesValue.length; i < n; i++) + deform[i] *= scale; + } + if (!weighted) { + for (var i = 0; i < deformLength; i++) + deform[i] += vertices[i]; + } + } + timeline.setFrame(frame, time, deform); + var nextMap = timelineMap[frame + 1]; + if (!nextMap) { + break; + } + var time2 = this.getValue(nextMap, "time", 0); + var curve = keyMap.curve; + if (curve) { + bezier = this.readCurve(curve, timeline, bezier, frame, 0, time, time2, 0, 1, 1); + } + time = time2; + keyMap = nextMap; + } + timelines.push(timeline); + } + } + } + } + var drawOrderNode = map.drawOrder; + if (drawOrderNode == null) + drawOrderNode = map.draworder; + if (drawOrderNode != null) { + var timeline = new spine.DrawOrderTimeline(drawOrderNode.length); + var slotCount = skeletonData.slots.length; + var frame = 0; + for (var j = 0; j < drawOrderNode.length; j++, frame++) { + var drawOrderMap = drawOrderNode[j]; + var drawOrder = null; + var offsets = this.getValue(drawOrderMap, "offsets", null); + if (offsets != null) { + drawOrder = spine.Utils.newArray(slotCount, -1); + var unchanged = spine.Utils.newArray(slotCount - offsets.length, 0); + var originalIndex = 0, unchangedIndex = 0; + for (var i = 0; i < offsets.length; i++) { + var offsetMap = offsets[i]; + var slotIndex = skeletonData.findSlotIndex(offsetMap.slot); + if (slotIndex == -1) + throw new Error("Slot not found: " + offsetMap.slot); + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + offsetMap.offset] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (var i = slotCount - 1; i >= 0; i--) + if (drawOrder[i] == -1) + drawOrder[i] = unchanged[--unchangedIndex]; + } + timeline.setFrame(frame, this.getValue(drawOrderMap, "time", 0), drawOrder); + } + timelines.push(timeline); + } + if (map.events) { + var timeline = new spine.EventTimeline(map.events.length); + var frame = 0; + for (var i = 0; i < map.events.length; i++, frame++) { + var eventMap = map.events[i]; + var eventData = skeletonData.findEvent(eventMap.name); + if (eventData == null) + throw new Error("Event not found: " + eventMap.name); + var event_6 = new spine.Event(spine.Utils.toSinglePrecision(this.getValue(eventMap, "time", 0)), eventData); + event_6.intValue = this.getValue(eventMap, "int", eventData.intValue); + event_6.floatValue = this.getValue(eventMap, "float", eventData.floatValue); + event_6.stringValue = this.getValue(eventMap, "string", eventData.stringValue); + if (event_6.data.audioPath != null) { + event_6.volume = this.getValue(eventMap, "volume", 1); + event_6.balance = this.getValue(eventMap, "balance", 0); + } + timeline.setFrame(frame, event_6); + } + timelines.push(timeline); + } + var duration = 0; + for (var i = 0, n = timelines.length; i < n; i++) { + duration = Math.max(duration, timelines[i].getDuration()); + } + if (isNaN(duration)) { + throw new Error("Error while parsing animation, duration is NaN"); + } + skeletonData.animations.push(new spine.Animation(name, timelines, duration)); + }; + SkeletonJson.prototype.readTimeline = function (keys, timeline, defaultValue, scale) { + var keyMap = keys[0]; + var time = this.getValue(keyMap, "time", 0); + var value = this.getValue(keyMap, "value", defaultValue) * scale; + var bezier = 0; + for (var frame = 0;; frame++) { + timeline.setFrame(frame, time, value); + var nextMap = keys[frame + 1]; + if (!nextMap) + break; + var time2 = this.getValue(nextMap, "time", 0); + var value2 = this.getValue(nextMap, "value", defaultValue) * scale; + var curve = keyMap.curve; + if (curve) + bezier = this.readCurve(curve, timeline, bezier, frame, 0, time, time2, value, value2, scale); + time = time2; + value = value2; + keyMap = nextMap; + } + return timeline; + }; + SkeletonJson.prototype.readTimeline2 = function (keys, timeline, name1, name2, defaultValue, scale) { + var keyMap = keys[0]; + var time = this.getValue(keyMap, "time", 0); + var value1 = this.getValue(keyMap, name1, defaultValue) * scale; + var value2 = this.getValue(keyMap, name2, defaultValue) * scale; + var bezier = 0; + for (var frame = 0;; frame++) { + timeline.setFrame(frame, time, value1, value2); + var nextMap = keys[frame + 1]; + if (!nextMap) + break; + var time2 = this.getValue(nextMap, "time", 0); + var nvalue1 = this.getValue(nextMap, name1, defaultValue) * scale; + var nvalue2 = this.getValue(nextMap, name2, defaultValue) * scale; + var curve = keyMap.curve; + if (curve != null) { + bezier = this.readCurve(curve, timeline, bezier, frame, 0, time, time2, value1, nvalue1, scale); + bezier = this.readCurve(curve, timeline, bezier, frame, 1, time, time2, value2, nvalue2, scale); + } + time = time2; + value1 = nvalue1; + value2 = nvalue2; + keyMap = nextMap; + } + timeline.shrink(bezier); + return timeline; + }; + SkeletonJson.prototype.readCurve = function (curve, timeline, bezier, frame, value, time1, time2, value1, value2, scale) { + if (curve == "stepped") { + if (value != 0) + timeline.setStepped(frame); + } + else { + var i = value << 2; + var cx1 = curve[i++]; + var cy1 = curve[i++] * scale; + var cx2 = curve[i++]; + var cy2 = curve[i++] * scale; + this.setBezier(timeline, frame, value, bezier++, time1, value1, cx1, cy1, cx2, cy2, time2, value2); + } + return bezier; + }; + SkeletonJson.prototype.setBezier = function (timeline, frame, value, bezier, time1, value1, cx1, cy1, cx2, cy2, time2, value2) { + timeline.setBezier(bezier, frame, value, time1, value1, cx1, cy1, cx2, cy2, time2, value2); + }; + SkeletonJson.prototype.getValue = function (map, prop, defaultValue) { + return map[prop] !== undefined ? map[prop] : defaultValue; + }; + SkeletonJson.blendModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.BlendMode.Normal; + if (str == "additive") + return spine.BlendMode.Additive; + if (str == "multiply") + return spine.BlendMode.Multiply; + if (str == "screen") + return spine.BlendMode.Screen; + throw new Error("Unknown blend mode: " + str); + }; + SkeletonJson.positionModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "fixed") + return spine.PositionMode.Fixed; + if (str == "percent") + return spine.PositionMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.spacingModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "length") + return spine.SpacingMode.Length; + if (str == "fixed") + return spine.SpacingMode.Fixed; + if (str == "percent") + return spine.SpacingMode.Percent; + throw new Error("Unknown position mode: " + str); + }; + SkeletonJson.rotateModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "tangent") + return spine.RotateMode.Tangent; + if (str == "chain") + return spine.RotateMode.Chain; + if (str == "chainscale") + return spine.RotateMode.ChainScale; + throw new Error("Unknown rotate mode: " + str); + }; + SkeletonJson.transformModeFromString = function (str) { + str = str.toLowerCase(); + if (str == "normal") + return spine.TransformMode.Normal; + if (str == "onlytranslation") + return spine.TransformMode.OnlyTranslation; + if (str == "norotationorreflection") + return spine.TransformMode.NoRotationOrReflection; + if (str == "noscale") + return spine.TransformMode.NoScale; + if (str == "noscaleorreflection") + return spine.TransformMode.NoScaleOrReflection; + throw new Error("Unknown transform mode: " + str); + }; + return SkeletonJson; + }()); + spine.SkeletonJson = SkeletonJson; + var LinkedMesh = (function () { + function LinkedMesh(mesh, skin, slotIndex, parent, inheritDeform) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + this.inheritDeform = inheritDeform; + } + return LinkedMesh; + }()); })(spine || (spine = {})); var spine; (function (spine) { - var SkinEntry = (function () { - function SkinEntry(slotIndex, name, attachment) { - this.slotIndex = slotIndex; - this.name = name; - this.attachment = attachment; - } - return SkinEntry; - }()); - spine.SkinEntry = SkinEntry; - var Skin = (function () { - function Skin(name) { - this.attachments = new Array(); - this.bones = Array(); - this.constraints = new Array(); - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - Skin.prototype.setAttachment = function (slotIndex, name, attachment) { - if (attachment == null) - throw new Error("attachment cannot be null."); - var attachments = this.attachments; - if (slotIndex >= attachments.length) - attachments.length = slotIndex + 1; - if (!attachments[slotIndex]) - attachments[slotIndex] = {}; - attachments[slotIndex][name] = attachment; - }; - Skin.prototype.addSkin = function (skin) { - for (var i = 0; i < skin.bones.length; i++) { - var bone = skin.bones[i]; - var contained = false; - for (var j = 0; j < this.bones.length; j++) { - if (this.bones[j] == bone) { - contained = true; - break; - } - } - if (!contained) - this.bones.push(bone); - } - for (var i = 0; i < skin.constraints.length; i++) { - var constraint = skin.constraints[i]; - var contained = false; - for (var j = 0; j < this.constraints.length; j++) { - if (this.constraints[j] == constraint) { - contained = true; - break; - } - } - if (!contained) - this.constraints.push(constraint); - } - var attachments = skin.getAttachments(); - for (var i = 0; i < attachments.length; i++) { - var attachment = attachments[i]; - this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); - } - }; - Skin.prototype.copySkin = function (skin) { - for (var i = 0; i < skin.bones.length; i++) { - var bone = skin.bones[i]; - var contained = false; - for (var j = 0; j < this.bones.length; j++) { - if (this.bones[j] == bone) { - contained = true; - break; - } - } - if (!contained) - this.bones.push(bone); - } - for (var i = 0; i < skin.constraints.length; i++) { - var constraint = skin.constraints[i]; - var contained = false; - for (var j = 0; j < this.constraints.length; j++) { - if (this.constraints[j] == constraint) { - contained = true; - break; - } - } - if (!contained) - this.constraints.push(constraint); - } - var attachments = skin.getAttachments(); - for (var i = 0; i < attachments.length; i++) { - var attachment = attachments[i]; - if (attachment.attachment == null) - continue; - if (attachment.attachment instanceof spine.MeshAttachment) { - attachment.attachment = attachment.attachment.newLinkedMesh(); - this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); - } - else { - attachment.attachment = attachment.attachment.copy(); - this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); - } - } - }; - Skin.prototype.getAttachment = function (slotIndex, name) { - var dictionary = this.attachments[slotIndex]; - return dictionary ? dictionary[name] : null; - }; - Skin.prototype.removeAttachment = function (slotIndex, name) { - var dictionary = this.attachments[slotIndex]; - if (dictionary) - dictionary[name] = null; - }; - Skin.prototype.getAttachments = function () { - var entries = new Array(); - for (var i = 0; i < this.attachments.length; i++) { - var slotAttachments = this.attachments[i]; - if (slotAttachments) { - for (var name_4 in slotAttachments) { - var attachment = slotAttachments[name_4]; - if (attachment) - entries.push(new SkinEntry(i, name_4, attachment)); - } - } - } - return entries; - }; - Skin.prototype.getAttachmentsForSlot = function (slotIndex, attachments) { - var slotAttachments = this.attachments[slotIndex]; - if (slotAttachments) { - for (var name_5 in slotAttachments) { - var attachment = slotAttachments[name_5]; - if (attachment) - attachments.push(new SkinEntry(slotIndex, name_5, attachment)); - } - } - }; - Skin.prototype.clear = function () { - this.attachments.length = 0; - this.bones.length = 0; - this.constraints.length = 0; - }; - Skin.prototype.attachAll = function (skeleton, oldSkin) { - var slotIndex = 0; - for (var i = 0; i < skeleton.slots.length; i++) { - var slot = skeleton.slots[i]; - var slotAttachment = slot.getAttachment(); - if (slotAttachment && slotIndex < oldSkin.attachments.length) { - var dictionary = oldSkin.attachments[slotIndex]; - for (var key in dictionary) { - var skinAttachment = dictionary[key]; - if (slotAttachment == skinAttachment) { - var attachment = this.getAttachment(slotIndex, key); - if (attachment != null) - slot.setAttachment(attachment); - break; - } - } - } - slotIndex++; - } - }; - return Skin; - }()); - spine.Skin = Skin; + var SkinEntry = (function () { + function SkinEntry(slotIndex, name, attachment) { + this.slotIndex = slotIndex; + this.name = name; + this.attachment = attachment; + } + return SkinEntry; + }()); + spine.SkinEntry = SkinEntry; + var Skin = (function () { + function Skin(name) { + this.attachments = new Array(); + this.bones = Array(); + this.constraints = new Array(); + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + Skin.prototype.setAttachment = function (slotIndex, name, attachment) { + if (attachment == null) + throw new Error("attachment cannot be null."); + var attachments = this.attachments; + if (slotIndex >= attachments.length) + attachments.length = slotIndex + 1; + if (!attachments[slotIndex]) + attachments[slotIndex] = {}; + attachments[slotIndex][name] = attachment; + }; + Skin.prototype.addSkin = function (skin) { + for (var i = 0; i < skin.bones.length; i++) { + var bone = skin.bones[i]; + var contained = false; + for (var j = 0; j < this.bones.length; j++) { + if (this.bones[j] == bone) { + contained = true; + break; + } + } + if (!contained) + this.bones.push(bone); + } + for (var i = 0; i < skin.constraints.length; i++) { + var constraint = skin.constraints[i]; + var contained = false; + for (var j = 0; j < this.constraints.length; j++) { + if (this.constraints[j] == constraint) { + contained = true; + break; + } + } + if (!contained) + this.constraints.push(constraint); + } + var attachments = skin.getAttachments(); + for (var i = 0; i < attachments.length; i++) { + var attachment = attachments[i]; + this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); + } + }; + Skin.prototype.copySkin = function (skin) { + for (var i = 0; i < skin.bones.length; i++) { + var bone = skin.bones[i]; + var contained = false; + for (var j = 0; j < this.bones.length; j++) { + if (this.bones[j] == bone) { + contained = true; + break; + } + } + if (!contained) + this.bones.push(bone); + } + for (var i = 0; i < skin.constraints.length; i++) { + var constraint = skin.constraints[i]; + var contained = false; + for (var j = 0; j < this.constraints.length; j++) { + if (this.constraints[j] == constraint) { + contained = true; + break; + } + } + if (!contained) + this.constraints.push(constraint); + } + var attachments = skin.getAttachments(); + for (var i = 0; i < attachments.length; i++) { + var attachment = attachments[i]; + if (attachment.attachment == null) + continue; + if (attachment.attachment instanceof spine.MeshAttachment) { + attachment.attachment = attachment.attachment.newLinkedMesh(); + this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); + } + else { + attachment.attachment = attachment.attachment.copy(); + this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); + } + } + }; + Skin.prototype.getAttachment = function (slotIndex, name) { + var dictionary = this.attachments[slotIndex]; + return dictionary ? dictionary[name] : null; + }; + Skin.prototype.removeAttachment = function (slotIndex, name) { + var dictionary = this.attachments[slotIndex]; + if (dictionary) + dictionary[name] = null; + }; + Skin.prototype.getAttachments = function () { + var entries = new Array(); + for (var i = 0; i < this.attachments.length; i++) { + var slotAttachments = this.attachments[i]; + if (slotAttachments) { + for (var name_4 in slotAttachments) { + var attachment = slotAttachments[name_4]; + if (attachment) + entries.push(new SkinEntry(i, name_4, attachment)); + } + } + } + return entries; + }; + Skin.prototype.getAttachmentsForSlot = function (slotIndex, attachments) { + var slotAttachments = this.attachments[slotIndex]; + if (slotAttachments) { + for (var name_5 in slotAttachments) { + var attachment = slotAttachments[name_5]; + if (attachment) + attachments.push(new SkinEntry(slotIndex, name_5, attachment)); + } + } + }; + Skin.prototype.clear = function () { + this.attachments.length = 0; + this.bones.length = 0; + this.constraints.length = 0; + }; + Skin.prototype.attachAll = function (skeleton, oldSkin) { + var slotIndex = 0; + for (var i = 0; i < skeleton.slots.length; i++) { + var slot = skeleton.slots[i]; + var slotAttachment = slot.getAttachment(); + if (slotAttachment && slotIndex < oldSkin.attachments.length) { + var dictionary = oldSkin.attachments[slotIndex]; + for (var key in dictionary) { + var skinAttachment = dictionary[key]; + if (slotAttachment == skinAttachment) { + var attachment = this.getAttachment(slotIndex, key); + if (attachment != null) + slot.setAttachment(attachment); + break; + } + } + } + slotIndex++; + } + }; + return Skin; + }()); + spine.Skin = Skin; })(spine || (spine = {})); var spine; (function (spine) { - var Slot = (function () { - function Slot(data, bone) { - this.deform = new Array(); - if (data == null) - throw new Error("data cannot be null."); - if (bone == null) - throw new Error("bone cannot be null."); - this.data = data; - this.bone = bone; - this.color = new spine.Color(); - this.darkColor = data.darkColor == null ? null : new spine.Color(); - this.setToSetupPose(); - } - Slot.prototype.getSkeleton = function () { - return this.bone.skeleton; - }; - Slot.prototype.getAttachment = function () { - return this.attachment; - }; - Slot.prototype.setAttachment = function (attachment) { - if (this.attachment == attachment) - return; - this.attachment = attachment; - this.attachmentTime = this.bone.skeleton.time; - this.deform.length = 0; - }; - Slot.prototype.setAttachmentTime = function (time) { - this.attachmentTime = this.bone.skeleton.time - time; - }; - Slot.prototype.getAttachmentTime = function () { - return this.bone.skeleton.time - this.attachmentTime; - }; - Slot.prototype.setToSetupPose = function () { - this.color.setFromColor(this.data.color); - if (this.darkColor != null) - this.darkColor.setFromColor(this.data.darkColor); - if (this.data.attachmentName == null) - this.attachment = null; - else { - this.attachment = null; - this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); - } - }; - return Slot; - }()); - spine.Slot = Slot; + var Slot = (function () { + function Slot(data, bone) { + this.deform = new Array(); + if (data == null) + throw new Error("data cannot be null."); + if (bone == null) + throw new Error("bone cannot be null."); + this.data = data; + this.bone = bone; + this.color = new spine.Color(); + this.darkColor = data.darkColor == null ? null : new spine.Color(); + this.setToSetupPose(); + } + Slot.prototype.getSkeleton = function () { + return this.bone.skeleton; + }; + Slot.prototype.getAttachment = function () { + return this.attachment; + }; + Slot.prototype.setAttachment = function (attachment) { + if (this.attachment == attachment) + return; + this.attachment = attachment; + this.attachmentTime = this.bone.skeleton.time; + this.deform.length = 0; + }; + Slot.prototype.setAttachmentTime = function (time) { + this.attachmentTime = this.bone.skeleton.time - time; + }; + Slot.prototype.getAttachmentTime = function () { + return this.bone.skeleton.time - this.attachmentTime; + }; + Slot.prototype.setToSetupPose = function () { + this.color.setFromColor(this.data.color); + if (this.darkColor != null) + this.darkColor.setFromColor(this.data.darkColor); + if (this.data.attachmentName == null) + this.attachment = null; + else { + this.attachment = null; + this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); + } + }; + return Slot; + }()); + spine.Slot = Slot; })(spine || (spine = {})); var spine; (function (spine) { - var SlotData = (function () { - function SlotData(index, name, boneData) { - this.color = new spine.Color(1, 1, 1, 1); - if (index < 0) - throw new Error("index must be >= 0."); - if (name == null) - throw new Error("name cannot be null."); - if (boneData == null) - throw new Error("boneData cannot be null."); - this.index = index; - this.name = name; - this.boneData = boneData; - } - return SlotData; - }()); - spine.SlotData = SlotData; + var SlotData = (function () { + function SlotData(index, name, boneData) { + this.color = new spine.Color(1, 1, 1, 1); + if (index < 0) + throw new Error("index must be >= 0."); + if (name == null) + throw new Error("name cannot be null."); + if (boneData == null) + throw new Error("boneData cannot be null."); + this.index = index; + this.name = name; + this.boneData = boneData; + } + return SlotData; + }()); + spine.SlotData = SlotData; })(spine || (spine = {})); var spine; (function (spine) { - var Texture = (function () { - function Texture(image) { - this._image = image; - } - Texture.prototype.getImage = function () { - return this._image; - }; - Texture.filterFromString = function (text) { - switch (text.toLowerCase()) { - case "nearest": return TextureFilter.Nearest; - case "linear": return TextureFilter.Linear; - case "mipmap": return TextureFilter.MipMap; - case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; - case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; - case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; - case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; - default: throw new Error("Unknown texture filter " + text); - } - }; - Texture.wrapFromString = function (text) { - switch (text.toLowerCase()) { - case "mirroredtepeat": return TextureWrap.MirroredRepeat; - case "clamptoedge": return TextureWrap.ClampToEdge; - case "repeat": return TextureWrap.Repeat; - default: throw new Error("Unknown texture wrap " + text); - } - }; - return Texture; - }()); - spine.Texture = Texture; - var TextureFilter; - (function (TextureFilter) { - TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; - TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; - TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; - TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; - TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; - TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; - TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; - })(TextureFilter = spine.TextureFilter || (spine.TextureFilter = {})); - var TextureWrap; - (function (TextureWrap) { - TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; - TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; - TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; - })(TextureWrap = spine.TextureWrap || (spine.TextureWrap = {})); - var TextureRegion = (function () { - function TextureRegion() { - this.u = 0; - this.v = 0; - this.u2 = 0; - this.v2 = 0; - this.width = 0; - this.height = 0; - this.rotate = false; - this.offsetX = 0; - this.offsetY = 0; - this.originalWidth = 0; - this.originalHeight = 0; - } - return TextureRegion; - }()); - spine.TextureRegion = TextureRegion; - var FakeTexture = (function (_super) { - __extends(FakeTexture, _super); - function FakeTexture() { - return _super !== null && _super.apply(this, arguments) || this; - } - FakeTexture.prototype.setFilters = function (minFilter, magFilter) { }; - FakeTexture.prototype.setWraps = function (uWrap, vWrap) { }; - FakeTexture.prototype.dispose = function () { }; - return FakeTexture; - }(Texture)); - spine.FakeTexture = FakeTexture; + var Texture = (function () { + function Texture(image) { + this._image = image; + } + Texture.prototype.getImage = function () { + return this._image; + }; + Texture.filterFromString = function (text) { + switch (text.toLowerCase()) { + case "nearest": return TextureFilter.Nearest; + case "linear": return TextureFilter.Linear; + case "mipmap": return TextureFilter.MipMap; + case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; + case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; + case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; + case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; + default: throw new Error("Unknown texture filter " + text); + } + }; + Texture.wrapFromString = function (text) { + switch (text.toLowerCase()) { + case "mirroredtepeat": return TextureWrap.MirroredRepeat; + case "clamptoedge": return TextureWrap.ClampToEdge; + case "repeat": return TextureWrap.Repeat; + default: throw new Error("Unknown texture wrap " + text); + } + }; + return Texture; + }()); + spine.Texture = Texture; + var TextureFilter; + (function (TextureFilter) { + TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest"; + TextureFilter[TextureFilter["Linear"] = 9729] = "Linear"; + TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap"; + TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; + TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; + TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; + TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; + })(TextureFilter = spine.TextureFilter || (spine.TextureFilter = {})); + var TextureWrap; + (function (TextureWrap) { + TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat"; + TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge"; + TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat"; + })(TextureWrap = spine.TextureWrap || (spine.TextureWrap = {})); + var TextureRegion = (function () { + function TextureRegion() { + this.u = 0; + this.v = 0; + this.u2 = 0; + this.v2 = 0; + this.width = 0; + this.height = 0; + this.rotate = false; + this.offsetX = 0; + this.offsetY = 0; + this.originalWidth = 0; + this.originalHeight = 0; + } + return TextureRegion; + }()); + spine.TextureRegion = TextureRegion; + var FakeTexture = (function (_super) { + __extends(FakeTexture, _super); + function FakeTexture() { + return _super !== null && _super.apply(this, arguments) || this; + } + FakeTexture.prototype.setFilters = function (minFilter, magFilter) { }; + FakeTexture.prototype.setWraps = function (uWrap, vWrap) { }; + FakeTexture.prototype.dispose = function () { }; + return FakeTexture; + }(Texture)); + spine.FakeTexture = FakeTexture; })(spine || (spine = {})); var spine; (function (spine) { - var TextureAtlas = (function () { - function TextureAtlas(atlasText, textureLoader) { - this.pages = new Array(); - this.regions = new Array(); - this.load(atlasText, textureLoader); - } - TextureAtlas.prototype.load = function (atlasText, textureLoader) { - if (textureLoader == null) - throw new Error("textureLoader cannot be null."); - var reader = new TextureAtlasReader(atlasText); - var tuple = new Array(4); - var page = null; - while (true) { - var line = reader.readLine(); - if (line == null) - break; - line = line.trim(); - if (line.length == 0) - page = null; - else if (!page) { - page = new TextureAtlasPage(); - page.name = line; - if (reader.readTuple(tuple) == 2) { - page.width = parseInt(tuple[0]); - page.height = parseInt(tuple[1]); - reader.readTuple(tuple); - } - reader.readTuple(tuple); - page.minFilter = spine.Texture.filterFromString(tuple[0]); - page.magFilter = spine.Texture.filterFromString(tuple[1]); - var direction = reader.readValue(); - page.uWrap = spine.TextureWrap.ClampToEdge; - page.vWrap = spine.TextureWrap.ClampToEdge; - if (direction == "x") - page.uWrap = spine.TextureWrap.Repeat; - else if (direction == "y") - page.vWrap = spine.TextureWrap.Repeat; - else if (direction == "xy") - page.uWrap = page.vWrap = spine.TextureWrap.Repeat; - page.texture = textureLoader(line); - page.texture.setFilters(page.minFilter, page.magFilter); - page.texture.setWraps(page.uWrap, page.vWrap); - page.width = page.texture.getImage().width; - page.height = page.texture.getImage().height; - this.pages.push(page); - } - else { - var region = new TextureAtlasRegion(); - region.name = line; - region.page = page; - var rotateValue = reader.readValue(); - if (rotateValue.toLocaleLowerCase() == "true") { - region.degrees = 90; - } - else if (rotateValue.toLocaleLowerCase() == "false") { - region.degrees = 0; - } - else { - region.degrees = parseFloat(rotateValue); - } - region.rotate = region.degrees == 90; - reader.readTuple(tuple); - var x = parseInt(tuple[0]); - var y = parseInt(tuple[1]); - reader.readTuple(tuple); - var width = parseInt(tuple[0]); - var height = parseInt(tuple[1]); - region.u = x / page.width; - region.v = y / page.height; - if (region.rotate) { - region.u2 = (x + height) / page.width; - region.v2 = (y + width) / page.height; - } - else { - region.u2 = (x + width) / page.width; - region.v2 = (y + height) / page.height; - } - region.x = x; - region.y = y; - region.width = Math.abs(width); - region.height = Math.abs(height); - if (reader.readTuple(tuple) == 4) { - if (reader.readTuple(tuple) == 4) { - reader.readTuple(tuple); - } - } - region.originalWidth = parseInt(tuple[0]); - region.originalHeight = parseInt(tuple[1]); - reader.readTuple(tuple); - region.offsetX = parseInt(tuple[0]); - region.offsetY = parseInt(tuple[1]); - region.index = parseInt(reader.readValue()); - region.texture = page.texture; - this.regions.push(region); - } - } - }; - TextureAtlas.prototype.findRegion = function (name) { - for (var i = 0; i < this.regions.length; i++) { - if (this.regions[i].name == name) { - return this.regions[i]; - } - } - return null; - }; - TextureAtlas.prototype.dispose = function () { - for (var i = 0; i < this.pages.length; i++) { - this.pages[i].texture.dispose(); - } - }; - return TextureAtlas; - }()); - spine.TextureAtlas = TextureAtlas; - var TextureAtlasReader = (function () { - function TextureAtlasReader(text) { - this.index = 0; - this.lines = text.split(/\r\n|\r|\n/); - } - TextureAtlasReader.prototype.readLine = function () { - if (this.index >= this.lines.length) - return null; - return this.lines[this.index++]; - }; - TextureAtlasReader.prototype.readValue = function () { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - return line.substring(colon + 1).trim(); - }; - TextureAtlasReader.prototype.readTuple = function (tuple) { - var line = this.readLine(); - var colon = line.indexOf(":"); - if (colon == -1) - throw new Error("Invalid line: " + line); - var i = 0, lastMatch = colon + 1; - for (; i < 3; i++) { - var comma = line.indexOf(",", lastMatch); - if (comma == -1) - break; - tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); - lastMatch = comma + 1; - } - tuple[i] = line.substring(lastMatch).trim(); - return i + 1; - }; - return TextureAtlasReader; - }()); - var TextureAtlasPage = (function () { - function TextureAtlasPage() { - } - return TextureAtlasPage; - }()); - spine.TextureAtlasPage = TextureAtlasPage; - var TextureAtlasRegion = (function (_super) { - __extends(TextureAtlasRegion, _super); - function TextureAtlasRegion() { - return _super !== null && _super.apply(this, arguments) || this; - } - return TextureAtlasRegion; - }(spine.TextureRegion)); - spine.TextureAtlasRegion = TextureAtlasRegion; + var TextureAtlas = (function () { + function TextureAtlas(atlasText, textureLoader) { + this.pages = new Array(); + this.regions = new Array(); + this.load(atlasText, textureLoader); + } + TextureAtlas.prototype.load = function (atlasText, textureLoader) { + if (textureLoader == null) + throw new Error("textureLoader cannot be null."); + var reader = new TextureAtlasReader(atlasText); + var tuple = new Array(4); + var page = null; + while (true) { + var line = reader.readLine(); + if (line == null) + break; + line = line.trim(); + if (line.length == 0) + page = null; + else if (!page) { + page = new TextureAtlasPage(); + page.name = line; + if (reader.readTuple(tuple) == 2) { + page.width = parseInt(tuple[0]); + page.height = parseInt(tuple[1]); + reader.readTuple(tuple); + } + reader.readTuple(tuple); + page.minFilter = spine.Texture.filterFromString(tuple[0]); + page.magFilter = spine.Texture.filterFromString(tuple[1]); + var direction = reader.readValue(); + page.uWrap = spine.TextureWrap.ClampToEdge; + page.vWrap = spine.TextureWrap.ClampToEdge; + if (direction == "x") + page.uWrap = spine.TextureWrap.Repeat; + else if (direction == "y") + page.vWrap = spine.TextureWrap.Repeat; + else if (direction == "xy") + page.uWrap = page.vWrap = spine.TextureWrap.Repeat; + page.texture = textureLoader(line); + page.texture.setFilters(page.minFilter, page.magFilter); + page.texture.setWraps(page.uWrap, page.vWrap); + page.width = page.texture.getImage().width; + page.height = page.texture.getImage().height; + this.pages.push(page); + } + else { + var region = new TextureAtlasRegion(); + region.name = line; + region.page = page; + var rotateValue = reader.readValue(); + if (rotateValue.toLocaleLowerCase() == "true") { + region.degrees = 90; + } + else if (rotateValue.toLocaleLowerCase() == "false") { + region.degrees = 0; + } + else { + region.degrees = parseFloat(rotateValue); + } + region.rotate = region.degrees == 90; + reader.readTuple(tuple); + var x = parseInt(tuple[0]); + var y = parseInt(tuple[1]); + reader.readTuple(tuple); + var width = parseInt(tuple[0]); + var height = parseInt(tuple[1]); + region.u = x / page.width; + region.v = y / page.height; + if (region.rotate) { + region.u2 = (x + height) / page.width; + region.v2 = (y + width) / page.height; + } + else { + region.u2 = (x + width) / page.width; + region.v2 = (y + height) / page.height; + } + region.x = x; + region.y = y; + region.width = Math.abs(width); + region.height = Math.abs(height); + if (reader.readTuple(tuple) == 4) { + if (reader.readTuple(tuple) == 4) { + reader.readTuple(tuple); + } + } + region.originalWidth = parseInt(tuple[0]); + region.originalHeight = parseInt(tuple[1]); + reader.readTuple(tuple); + region.offsetX = parseInt(tuple[0]); + region.offsetY = parseInt(tuple[1]); + region.index = parseInt(reader.readValue()); + region.texture = page.texture; + this.regions.push(region); + } + } + }; + TextureAtlas.prototype.findRegion = function (name) { + for (var i = 0; i < this.regions.length; i++) { + if (this.regions[i].name == name) { + return this.regions[i]; + } + } + return null; + }; + TextureAtlas.prototype.dispose = function () { + for (var i = 0; i < this.pages.length; i++) { + this.pages[i].texture.dispose(); + } + }; + return TextureAtlas; + }()); + spine.TextureAtlas = TextureAtlas; + var TextureAtlasReader = (function () { + function TextureAtlasReader(text) { + this.index = 0; + this.lines = text.split(/\r\n|\r|\n/); + } + TextureAtlasReader.prototype.readLine = function () { + if (this.index >= this.lines.length) + return null; + return this.lines[this.index++]; + }; + TextureAtlasReader.prototype.readValue = function () { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + return line.substring(colon + 1).trim(); + }; + TextureAtlasReader.prototype.readTuple = function (tuple) { + var line = this.readLine(); + var colon = line.indexOf(":"); + if (colon == -1) + throw new Error("Invalid line: " + line); + var i = 0, lastMatch = colon + 1; + for (; i < 3; i++) { + var comma = line.indexOf(",", lastMatch); + if (comma == -1) + break; + tuple[i] = line.substr(lastMatch, comma - lastMatch).trim(); + lastMatch = comma + 1; + } + tuple[i] = line.substring(lastMatch).trim(); + return i + 1; + }; + return TextureAtlasReader; + }()); + var TextureAtlasPage = (function () { + function TextureAtlasPage() { + } + return TextureAtlasPage; + }()); + spine.TextureAtlasPage = TextureAtlasPage; + var TextureAtlasRegion = (function (_super) { + __extends(TextureAtlasRegion, _super); + function TextureAtlasRegion() { + return _super !== null && _super.apply(this, arguments) || this; + } + return TextureAtlasRegion; + }(spine.TextureRegion)); + spine.TextureAtlasRegion = TextureAtlasRegion; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraint = (function () { - function TransformConstraint(data, skeleton) { - this.rotateMix = 0; - this.translateMix = 0; - this.scaleMix = 0; - this.shearMix = 0; - this.temp = new spine.Vector2(); - this.active = false; - if (data == null) - throw new Error("data cannot be null."); - if (skeleton == null) - throw new Error("skeleton cannot be null."); - this.data = data; - this.rotateMix = data.rotateMix; - this.translateMix = data.translateMix; - this.scaleMix = data.scaleMix; - this.shearMix = data.shearMix; - this.bones = new Array(); - for (var i = 0; i < data.bones.length; i++) - this.bones.push(skeleton.findBone(data.bones[i].name)); - this.target = skeleton.findBone(data.target.name); - } - TransformConstraint.prototype.isActive = function () { - return this.active; - }; - TransformConstraint.prototype.apply = function () { - this.update(); - }; - TransformConstraint.prototype.update = function () { - if (this.data.local) { - if (this.data.relative) - this.applyRelativeLocal(); - else - this.applyAbsoluteLocal(); - } - else { - if (this.data.relative) - this.applyRelativeWorld(); - else - this.applyAbsoluteWorld(); - } - }; - TransformConstraint.prototype.applyAbsoluteWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect; - var offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += (temp.x - bone.worldX) * translateMix; - bone.worldY += (temp.y - bone.worldY) * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); - var ts = Math.sqrt(ta * ta + tc * tc); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; - bone.a *= s; - bone.c *= s; - s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); - ts = Math.sqrt(tb * tb + td * td); - if (s > 0.00001) - s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var b = bone.b, d = bone.d; - var by = Math.atan2(d, b); - var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r = by + (r + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyRelativeWorld = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - var ta = target.a, tb = target.b, tc = target.c, td = target.d; - var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; - var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - var modified = false; - if (rotateMix != 0) { - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var r = Math.atan2(tc, ta) + offsetRotation; - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - r *= rotateMix; - var cos = Math.cos(r), sin = Math.sin(r); - bone.a = cos * a - sin * c; - bone.b = cos * b - sin * d; - bone.c = sin * a + cos * c; - bone.d = sin * b + cos * d; - modified = true; - } - if (translateMix != 0) { - var temp = this.temp; - target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); - bone.worldX += temp.x * translateMix; - bone.worldY += temp.y * translateMix; - modified = true; - } - if (scaleMix > 0) { - var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; - bone.a *= s; - bone.c *= s; - s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; - bone.b *= s; - bone.d *= s; - modified = true; - } - if (shearMix > 0) { - var r = Math.atan2(td, tb) - Math.atan2(tc, ta); - if (r > spine.MathUtils.PI) - r -= spine.MathUtils.PI2; - else if (r < -spine.MathUtils.PI) - r += spine.MathUtils.PI2; - var b = bone.b, d = bone.d; - r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; - var s = Math.sqrt(b * b + d * d); - bone.b = Math.cos(r) * s; - bone.d = Math.sin(r) * s; - modified = true; - } - if (modified) - bone.appliedValid = false; - } - }; - TransformConstraint.prototype.applyAbsoluteLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) { - var r = target.arotation - rotation + this.data.offsetRotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - rotation += r * rotateMix; - } - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax - x + this.data.offsetX) * translateMix; - y += (target.ay - y + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix != 0) { - if (scaleX > 0.00001) - scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; - if (scaleY > 0.00001) - scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; - } - var shearY = bone.ashearY; - if (shearMix != 0) { - var r = target.ashearY - shearY + this.data.offsetShearY; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; - bone.shearY += r * shearMix; - } - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - TransformConstraint.prototype.applyRelativeLocal = function () { - var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; - var target = this.target; - if (!target.appliedValid) - target.updateAppliedTransform(); - var bones = this.bones; - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (!bone.appliedValid) - bone.updateAppliedTransform(); - var rotation = bone.arotation; - if (rotateMix != 0) - rotation += (target.arotation + this.data.offsetRotation) * rotateMix; - var x = bone.ax, y = bone.ay; - if (translateMix != 0) { - x += (target.ax + this.data.offsetX) * translateMix; - y += (target.ay + this.data.offsetY) * translateMix; - } - var scaleX = bone.ascaleX, scaleY = bone.ascaleY; - if (scaleMix != 0) { - if (scaleX > 0.00001) - scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; - if (scaleY > 0.00001) - scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; - } - var shearY = bone.ashearY; - if (shearMix != 0) - shearY += (target.ashearY + this.data.offsetShearY) * shearMix; - bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); - } - }; - return TransformConstraint; - }()); - spine.TransformConstraint = TransformConstraint; + var TransformConstraint = (function () { + function TransformConstraint(data, skeleton) { + this.rotateMix = 0; + this.translateMix = 0; + this.scaleMix = 0; + this.shearMix = 0; + this.temp = new spine.Vector2(); + this.active = false; + if (data == null) + throw new Error("data cannot be null."); + if (skeleton == null) + throw new Error("skeleton cannot be null."); + this.data = data; + this.rotateMix = data.rotateMix; + this.translateMix = data.translateMix; + this.scaleMix = data.scaleMix; + this.shearMix = data.shearMix; + this.bones = new Array(); + for (var i = 0; i < data.bones.length; i++) + this.bones.push(skeleton.findBone(data.bones[i].name)); + this.target = skeleton.findBone(data.target.name); + } + TransformConstraint.prototype.isActive = function () { + return this.active; + }; + TransformConstraint.prototype.update = function () { + if (this.rotateMix == 0 && this.translateMix == 0 && this.scaleMix == 0 && this.shearMix == 0) + return; + if (this.data.local) { + if (this.data.relative) + this.applyRelativeLocal(); + else + this.applyAbsoluteLocal(); + } + else { + if (this.data.relative) + this.applyRelativeWorld(); + else + this.applyAbsoluteWorld(); + } + }; + TransformConstraint.prototype.applyAbsoluteWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect; + var offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += (temp.x - bone.worldX) * translateMix; + bone.worldY += (temp.y - bone.worldY) * translateMix; + } + if (scaleMix > 0) { + var s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + var ts = Math.sqrt(ta * ta + tc * tc); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s; + bone.a *= s; + bone.c *= s; + s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + ts = Math.sqrt(tb * tb + td * td); + if (s > 0.00001) + s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; + bone.b *= s; + bone.d *= s; + } + if (shearMix > 0) { + var b = bone.b, d = bone.d; + var by = Math.atan2(d, b); + var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r = by + (r + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + } + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyRelativeWorld = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + var ta = target.a, tb = target.b, tc = target.c, td = target.d; + var degRadReflect = ta * td - tb * tc > 0 ? spine.MathUtils.degRad : -spine.MathUtils.degRad; + var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (rotateMix != 0) { + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var r = Math.atan2(tc, ta) + offsetRotation; + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + r *= rotateMix; + var cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + if (translateMix != 0) { + var temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += temp.x * translateMix; + bone.worldY += temp.y * translateMix; + } + if (scaleMix > 0) { + var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1; + bone.a *= s; + bone.c *= s; + s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; + bone.b *= s; + bone.d *= s; + } + if (shearMix > 0) { + var r = Math.atan2(td, tb) - Math.atan2(tc, ta); + if (r > spine.MathUtils.PI) + r -= spine.MathUtils.PI2; + else if (r < -spine.MathUtils.PI) + r += spine.MathUtils.PI2; + var b = bone.b, d = bone.d; + r = Math.atan2(d, b) + (r - spine.MathUtils.PI / 2 + offsetShearY) * shearMix; + var s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + } + bone.appliedValid = false; + } + }; + TransformConstraint.prototype.applyAbsoluteLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) { + var r = target.arotation - rotation + this.data.offsetRotation; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + rotation += r * rotateMix; + } + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax - x + this.data.offsetX) * translateMix; + y += (target.ay - y + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix != 0) { + if (scaleX > 0.00001) + scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX; + if (scaleY > 0.00001) + scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY; + } + var shearY = bone.ashearY; + if (shearMix != 0) { + var r = target.ashearY - shearY + this.data.offsetShearY; + r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; + bone.shearY += r * shearMix; + } + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + TransformConstraint.prototype.applyRelativeLocal = function () { + var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix; + var target = this.target; + if (!target.appliedValid) + target.updateAppliedTransform(); + var bones = this.bones; + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (!bone.appliedValid) + bone.updateAppliedTransform(); + var rotation = bone.arotation; + if (rotateMix != 0) + rotation += (target.arotation + this.data.offsetRotation) * rotateMix; + var x = bone.ax, y = bone.ay; + if (translateMix != 0) { + x += (target.ax + this.data.offsetX) * translateMix; + y += (target.ay + this.data.offsetY) * translateMix; + } + var scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (scaleMix != 0) { + if (scaleX > 0.00001) + scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1; + if (scaleY > 0.00001) + scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1; + } + var shearY = bone.ashearY; + if (shearMix != 0) + shearY += (target.ashearY + this.data.offsetShearY) * shearMix; + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + }; + return TransformConstraint; + }()); + spine.TransformConstraint = TransformConstraint; })(spine || (spine = {})); var spine; (function (spine) { - var TransformConstraintData = (function (_super) { - __extends(TransformConstraintData, _super); - function TransformConstraintData(name) { - var _this = _super.call(this, name, 0, false) || this; - _this.bones = new Array(); - _this.rotateMix = 0; - _this.translateMix = 0; - _this.scaleMix = 0; - _this.shearMix = 0; - _this.offsetRotation = 0; - _this.offsetX = 0; - _this.offsetY = 0; - _this.offsetScaleX = 0; - _this.offsetScaleY = 0; - _this.offsetShearY = 0; - _this.relative = false; - _this.local = false; - return _this; - } - return TransformConstraintData; - }(spine.ConstraintData)); - spine.TransformConstraintData = TransformConstraintData; + var TransformConstraintData = (function (_super) { + __extends(TransformConstraintData, _super); + function TransformConstraintData(name) { + var _this = _super.call(this, name, 0, false) || this; + _this.bones = new Array(); + _this.rotateMix = 0; + _this.translateMix = 0; + _this.scaleMix = 0; + _this.shearMix = 0; + _this.offsetRotation = 0; + _this.offsetX = 0; + _this.offsetY = 0; + _this.offsetScaleX = 0; + _this.offsetScaleY = 0; + _this.offsetShearY = 0; + _this.relative = false; + _this.local = false; + return _this; + } + return TransformConstraintData; + }(spine.ConstraintData)); + spine.TransformConstraintData = TransformConstraintData; })(spine || (spine = {})); var spine; (function (spine) { - var Triangulator = (function () { - function Triangulator() { - this.convexPolygons = new Array(); - this.convexPolygonsIndices = new Array(); - this.indicesArray = new Array(); - this.isConcaveArray = new Array(); - this.triangles = new Array(); - this.polygonPool = new spine.Pool(function () { - return new Array(); - }); - this.polygonIndicesPool = new spine.Pool(function () { - return new Array(); - }); - } - Triangulator.prototype.triangulate = function (verticesArray) { - var vertices = verticesArray; - var vertexCount = verticesArray.length >> 1; - var indices = this.indicesArray; - indices.length = 0; - for (var i = 0; i < vertexCount; i++) - indices[i] = i; - var isConcave = this.isConcaveArray; - isConcave.length = 0; - for (var i = 0, n = vertexCount; i < n; ++i) - isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); - var triangles = this.triangles; - triangles.length = 0; - while (vertexCount > 3) { - var previous = vertexCount - 1, i = 0, next = 1; - while (true) { - outer: if (!isConcave[i]) { - var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; - var p1x = vertices[p1], p1y = vertices[p1 + 1]; - var p2x = vertices[p2], p2y = vertices[p2 + 1]; - var p3x = vertices[p3], p3y = vertices[p3 + 1]; - for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { - if (!isConcave[ii]) - continue; - var v = indices[ii] << 1; - var vx = vertices[v], vy = vertices[v + 1]; - if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { - if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { - if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) - break outer; - } - } - } - break; - } - if (next == 0) { - do { - if (!isConcave[i]) - break; - i--; - } while (i > 0); - break; - } - previous = i; - i = next; - next = (next + 1) % vertexCount; - } - triangles.push(indices[(vertexCount + i - 1) % vertexCount]); - triangles.push(indices[i]); - triangles.push(indices[(i + 1) % vertexCount]); - indices.splice(i, 1); - isConcave.splice(i, 1); - vertexCount--; - var previousIndex = (vertexCount + i - 1) % vertexCount; - var nextIndex = i == vertexCount ? 0 : i; - isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); - isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); - } - if (vertexCount == 3) { - triangles.push(indices[2]); - triangles.push(indices[0]); - triangles.push(indices[1]); - } - return triangles; - }; - Triangulator.prototype.decompose = function (verticesArray, triangles) { - var vertices = verticesArray; - var convexPolygons = this.convexPolygons; - this.polygonPool.freeAll(convexPolygons); - convexPolygons.length = 0; - var convexPolygonsIndices = this.convexPolygonsIndices; - this.polygonIndicesPool.freeAll(convexPolygonsIndices); - convexPolygonsIndices.length = 0; - var polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - var polygon = this.polygonPool.obtain(); - polygon.length = 0; - var fanBaseIndex = -1, lastWinding = 0; - for (var i = 0, n = triangles.length; i < n; i += 3) { - var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; - var x1 = vertices[t1], y1 = vertices[t1 + 1]; - var x2 = vertices[t2], y2 = vertices[t2 + 1]; - var x3 = vertices[t3], y3 = vertices[t3 + 1]; - var merged = false; - if (fanBaseIndex == t1) { - var o = polygon.length - 4; - var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); - var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); - if (winding1 == lastWinding && winding2 == lastWinding) { - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(t3); - merged = true; - } - } - if (!merged) { - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - else { - this.polygonPool.free(polygon); - this.polygonIndicesPool.free(polygonIndices); - } - polygon = this.polygonPool.obtain(); - polygon.length = 0; - polygon.push(x1); - polygon.push(y1); - polygon.push(x2); - polygon.push(y2); - polygon.push(x3); - polygon.push(y3); - polygonIndices = this.polygonIndicesPool.obtain(); - polygonIndices.length = 0; - polygonIndices.push(t1); - polygonIndices.push(t2); - polygonIndices.push(t3); - lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); - fanBaseIndex = t1; - } - } - if (polygon.length > 0) { - convexPolygons.push(polygon); - convexPolygonsIndices.push(polygonIndices); - } - for (var i = 0, n = convexPolygons.length; i < n; i++) { - polygonIndices = convexPolygonsIndices[i]; - if (polygonIndices.length == 0) - continue; - var firstIndex = polygonIndices[0]; - var lastIndex = polygonIndices[polygonIndices.length - 1]; - polygon = convexPolygons[i]; - var o = polygon.length - 4; - var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; - var prevX = polygon[o + 2], prevY = polygon[o + 3]; - var firstX = polygon[0], firstY = polygon[1]; - var secondX = polygon[2], secondY = polygon[3]; - var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); - for (var ii = 0; ii < n; ii++) { - if (ii == i) - continue; - var otherIndices = convexPolygonsIndices[ii]; - if (otherIndices.length != 3) - continue; - var otherFirstIndex = otherIndices[0]; - var otherSecondIndex = otherIndices[1]; - var otherLastIndex = otherIndices[2]; - var otherPoly = convexPolygons[ii]; - var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; - if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) - continue; - var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); - var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); - if (winding1 == winding && winding2 == winding) { - otherPoly.length = 0; - otherIndices.length = 0; - polygon.push(x3); - polygon.push(y3); - polygonIndices.push(otherLastIndex); - prevPrevX = prevX; - prevPrevY = prevY; - prevX = x3; - prevY = y3; - ii = 0; - } - } - } - for (var i = convexPolygons.length - 1; i >= 0; i--) { - polygon = convexPolygons[i]; - if (polygon.length == 0) { - convexPolygons.splice(i, 1); - this.polygonPool.free(polygon); - polygonIndices = convexPolygonsIndices[i]; - convexPolygonsIndices.splice(i, 1); - this.polygonIndicesPool.free(polygonIndices); - } - } - return convexPolygons; - }; - Triangulator.isConcave = function (index, vertexCount, vertices, indices) { - var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; - var current = indices[index] << 1; - var next = indices[(index + 1) % vertexCount] << 1; - return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); - }; - Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { - return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; - }; - Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { - var px = p2x - p1x, py = p2y - p1y; - return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; - }; - return Triangulator; - }()); - spine.Triangulator = Triangulator; + var Triangulator = (function () { + function Triangulator() { + this.convexPolygons = new Array(); + this.convexPolygonsIndices = new Array(); + this.indicesArray = new Array(); + this.isConcaveArray = new Array(); + this.triangles = new Array(); + this.polygonPool = new spine.Pool(function () { + return new Array(); + }); + this.polygonIndicesPool = new spine.Pool(function () { + return new Array(); + }); + } + Triangulator.prototype.triangulate = function (verticesArray) { + var vertices = verticesArray; + var vertexCount = verticesArray.length >> 1; + var indices = this.indicesArray; + indices.length = 0; + for (var i = 0; i < vertexCount; i++) + indices[i] = i; + var isConcave = this.isConcaveArray; + isConcave.length = 0; + for (var i = 0, n = vertexCount; i < n; ++i) + isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices); + var triangles = this.triangles; + triangles.length = 0; + while (vertexCount > 3) { + var previous = vertexCount - 1, i = 0, next = 1; + while (true) { + outer: if (!isConcave[i]) { + var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; + var p1x = vertices[p1], p1y = vertices[p1 + 1]; + var p2x = vertices[p2], p2y = vertices[p2 + 1]; + var p3x = vertices[p3], p3y = vertices[p3 + 1]; + for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { + if (!isConcave[ii]) + continue; + var v = indices[ii] << 1; + var vx = vertices[v], vy = vertices[v + 1]; + if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { + if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { + if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) + break outer; + } + } + } + break; + } + if (next == 0) { + do { + if (!isConcave[i]) + break; + i--; + } while (i > 0); + break; + } + previous = i; + i = next; + next = (next + 1) % vertexCount; + } + triangles.push(indices[(vertexCount + i - 1) % vertexCount]); + triangles.push(indices[i]); + triangles.push(indices[(i + 1) % vertexCount]); + indices.splice(i, 1); + isConcave.splice(i, 1); + vertexCount--; + var previousIndex = (vertexCount + i - 1) % vertexCount; + var nextIndex = i == vertexCount ? 0 : i; + isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); + isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); + } + if (vertexCount == 3) { + triangles.push(indices[2]); + triangles.push(indices[0]); + triangles.push(indices[1]); + } + return triangles; + }; + Triangulator.prototype.decompose = function (verticesArray, triangles) { + var vertices = verticesArray; + var convexPolygons = this.convexPolygons; + this.polygonPool.freeAll(convexPolygons); + convexPolygons.length = 0; + var convexPolygonsIndices = this.convexPolygonsIndices; + this.polygonIndicesPool.freeAll(convexPolygonsIndices); + convexPolygonsIndices.length = 0; + var polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + var polygon = this.polygonPool.obtain(); + polygon.length = 0; + var fanBaseIndex = -1, lastWinding = 0; + for (var i = 0, n = triangles.length; i < n; i += 3) { + var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; + var x1 = vertices[t1], y1 = vertices[t1 + 1]; + var x2 = vertices[t2], y2 = vertices[t2 + 1]; + var x3 = vertices[t3], y3 = vertices[t3 + 1]; + var merged = false; + if (fanBaseIndex == t1) { + var o = polygon.length - 4; + var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); + var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); + if (winding1 == lastWinding && winding2 == lastWinding) { + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(t3); + merged = true; + } + } + if (!merged) { + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + else { + this.polygonPool.free(polygon); + this.polygonIndicesPool.free(polygonIndices); + } + polygon = this.polygonPool.obtain(); + polygon.length = 0; + polygon.push(x1); + polygon.push(y1); + polygon.push(x2); + polygon.push(y2); + polygon.push(x3); + polygon.push(y3); + polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + polygonIndices.push(t1); + polygonIndices.push(t2); + polygonIndices.push(t3); + lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3); + fanBaseIndex = t1; + } + } + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + for (var i = 0, n = convexPolygons.length; i < n; i++) { + polygonIndices = convexPolygonsIndices[i]; + if (polygonIndices.length == 0) + continue; + var firstIndex = polygonIndices[0]; + var lastIndex = polygonIndices[polygonIndices.length - 1]; + polygon = convexPolygons[i]; + var o = polygon.length - 4; + var prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; + var prevX = polygon[o + 2], prevY = polygon[o + 3]; + var firstX = polygon[0], firstY = polygon[1]; + var secondX = polygon[2], secondY = polygon[3]; + var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); + for (var ii = 0; ii < n; ii++) { + if (ii == i) + continue; + var otherIndices = convexPolygonsIndices[ii]; + if (otherIndices.length != 3) + continue; + var otherFirstIndex = otherIndices[0]; + var otherSecondIndex = otherIndices[1]; + var otherLastIndex = otherIndices[2]; + var otherPoly = convexPolygons[ii]; + var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; + if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) + continue; + var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); + var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); + if (winding1 == winding && winding2 == winding) { + otherPoly.length = 0; + otherIndices.length = 0; + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(otherLastIndex); + prevPrevX = prevX; + prevPrevY = prevY; + prevX = x3; + prevY = y3; + ii = 0; + } + } + } + for (var i = convexPolygons.length - 1; i >= 0; i--) { + polygon = convexPolygons[i]; + if (polygon.length == 0) { + convexPolygons.splice(i, 1); + this.polygonPool.free(polygon); + polygonIndices = convexPolygonsIndices[i]; + convexPolygonsIndices.splice(i, 1); + this.polygonIndicesPool.free(polygonIndices); + } + } + return convexPolygons; + }; + Triangulator.isConcave = function (index, vertexCount, vertices, indices) { + var previous = indices[(vertexCount + index - 1) % vertexCount] << 1; + var current = indices[index] << 1; + var next = indices[(index + 1) % vertexCount] << 1; + return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); + }; + Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) { + return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; + }; + Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) { + var px = p2x - p1x, py = p2y - p1y; + return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; + }; + return Triangulator; + }()); + spine.Triangulator = Triangulator; })(spine || (spine = {})); var spine; (function (spine) { - var IntSet = (function () { - function IntSet() { - this.array = new Array(); - } - IntSet.prototype.add = function (value) { - var contains = this.contains(value); - this.array[value | 0] = value | 0; - return !contains; - }; - IntSet.prototype.contains = function (value) { - return this.array[value | 0] != undefined; - }; - IntSet.prototype.remove = function (value) { - this.array[value | 0] = undefined; - }; - IntSet.prototype.clear = function () { - this.array.length = 0; - }; - return IntSet; - }()); - spine.IntSet = IntSet; - var Color = (function () { - function Color(r, g, b, a) { - if (r === void 0) { r = 0; } - if (g === void 0) { g = 0; } - if (b === void 0) { b = 0; } - if (a === void 0) { a = 0; } - this.r = r; - this.g = g; - this.b = b; - this.a = a; - } - Color.prototype.set = function (r, g, b, a) { - this.r = r; - this.g = g; - this.b = b; - this.a = a; - this.clamp(); - return this; - }; - Color.prototype.setFromColor = function (c) { - this.r = c.r; - this.g = c.g; - this.b = c.b; - this.a = c.a; - return this; - }; - Color.prototype.setFromString = function (hex) { - hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; - this.r = parseInt(hex.substr(0, 2), 16) / 255.0; - this.g = parseInt(hex.substr(2, 2), 16) / 255.0; - this.b = parseInt(hex.substr(4, 2), 16) / 255.0; - this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; - return this; - }; - Color.prototype.add = function (r, g, b, a) { - this.r += r; - this.g += g; - this.b += b; - this.a += a; - this.clamp(); - return this; - }; - Color.prototype.clamp = function () { - if (this.r < 0) - this.r = 0; - else if (this.r > 1) - this.r = 1; - if (this.g < 0) - this.g = 0; - else if (this.g > 1) - this.g = 1; - if (this.b < 0) - this.b = 0; - else if (this.b > 1) - this.b = 1; - if (this.a < 0) - this.a = 0; - else if (this.a > 1) - this.a = 1; - return this; - }; - Color.rgba8888ToColor = function (color, value) { - color.r = ((value & 0xff000000) >>> 24) / 255; - color.g = ((value & 0x00ff0000) >>> 16) / 255; - color.b = ((value & 0x0000ff00) >>> 8) / 255; - color.a = ((value & 0x000000ff)) / 255; - }; - Color.rgb888ToColor = function (color, value) { - color.r = ((value & 0x00ff0000) >>> 16) / 255; - color.g = ((value & 0x0000ff00) >>> 8) / 255; - color.b = ((value & 0x000000ff)) / 255; - }; - Color.WHITE = new Color(1, 1, 1, 1); - Color.RED = new Color(1, 0, 0, 1); - Color.GREEN = new Color(0, 1, 0, 1); - Color.BLUE = new Color(0, 0, 1, 1); - Color.MAGENTA = new Color(1, 0, 1, 1); - return Color; - }()); - spine.Color = Color; - var MathUtils = (function () { - function MathUtils() { - } - MathUtils.clamp = function (value, min, max) { - if (value < min) - return min; - if (value > max) - return max; - return value; - }; - MathUtils.cosDeg = function (degrees) { - return Math.cos(degrees * MathUtils.degRad); - }; - MathUtils.sinDeg = function (degrees) { - return Math.sin(degrees * MathUtils.degRad); - }; - MathUtils.signum = function (value) { - return value > 0 ? 1 : value < 0 ? -1 : 0; - }; - MathUtils.toInt = function (x) { - return x > 0 ? Math.floor(x) : Math.ceil(x); - }; - MathUtils.cbrt = function (x) { - var y = Math.pow(Math.abs(x), 1 / 3); - return x < 0 ? -y : y; - }; - MathUtils.randomTriangular = function (min, max) { - return MathUtils.randomTriangularWith(min, max, (min + max) * 0.5); - }; - MathUtils.randomTriangularWith = function (min, max, mode) { - var u = Math.random(); - var d = max - min; - if (u <= (mode - min) / d) - return min + Math.sqrt(u * d * (mode - min)); - return max - Math.sqrt((1 - u) * d * (max - mode)); - }; - MathUtils.PI = 3.1415927; - MathUtils.PI2 = MathUtils.PI * 2; - MathUtils.radiansToDegrees = 180 / MathUtils.PI; - MathUtils.radDeg = MathUtils.radiansToDegrees; - MathUtils.degreesToRadians = MathUtils.PI / 180; - MathUtils.degRad = MathUtils.degreesToRadians; - return MathUtils; - }()); - spine.MathUtils = MathUtils; - var Interpolation = (function () { - function Interpolation() { - } - Interpolation.prototype.apply = function (start, end, a) { - return start + (end - start) * this.applyInternal(a); - }; - return Interpolation; - }()); - spine.Interpolation = Interpolation; - var Pow = (function (_super) { - __extends(Pow, _super); - function Pow(power) { - var _this = _super.call(this) || this; - _this.power = 2; - _this.power = power; - return _this; - } - Pow.prototype.applyInternal = function (a) { - if (a <= 0.5) - return Math.pow(a * 2, this.power) / 2; - return Math.pow((a - 1) * 2, this.power) / (this.power % 2 == 0 ? -2 : 2) + 1; - }; - return Pow; - }(Interpolation)); - spine.Pow = Pow; - var PowOut = (function (_super) { - __extends(PowOut, _super); - function PowOut(power) { - return _super.call(this, power) || this; - } - PowOut.prototype.applyInternal = function (a) { - return Math.pow(a - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1; - }; - return PowOut; - }(Pow)); - spine.PowOut = PowOut; - var Utils = (function () { - function Utils() { - } - Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { - for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { - dest[j] = source[i]; - } - }; - Utils.setArraySize = function (array, size, value) { - if (value === void 0) { value = 0; } - var oldSize = array.length; - if (oldSize == size) - return array; - array.length = size; - if (oldSize < size) { - for (var i = oldSize; i < size; i++) - array[i] = value; - } - return array; - }; - Utils.ensureArrayCapacity = function (array, size, value) { - if (value === void 0) { value = 0; } - if (array.length >= size) - return array; - return Utils.setArraySize(array, size, value); - }; - Utils.newArray = function (size, defaultValue) { - var array = new Array(size); - for (var i = 0; i < size; i++) - array[i] = defaultValue; - return array; - }; - Utils.newFloatArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Float32Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.newShortArray = function (size) { - if (Utils.SUPPORTS_TYPED_ARRAYS) { - return new Int16Array(size); - } - else { - var array = new Array(size); - for (var i = 0; i < array.length; i++) - array[i] = 0; - return array; - } - }; - Utils.toFloatArray = function (array) { - return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; - }; - Utils.toSinglePrecision = function (value) { - return Utils.SUPPORTS_TYPED_ARRAYS ? Math.fround(value) : value; - }; - Utils.webkit602BugfixHelper = function (alpha, blend) { - }; - Utils.contains = function (array, element, identity) { - if (identity === void 0) { identity = true; } - for (var i = 0; i < array.length; i++) { - if (array[i] == element) - return true; - } - return false; - }; - Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; - return Utils; - }()); - spine.Utils = Utils; - var DebugUtils = (function () { - function DebugUtils() { - } - DebugUtils.logBones = function (skeleton) { - for (var i = 0; i < skeleton.bones.length; i++) { - var bone = skeleton.bones[i]; - console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); - } - }; - return DebugUtils; - }()); - spine.DebugUtils = DebugUtils; - var Pool = (function () { - function Pool(instantiator) { - this.items = new Array(); - this.instantiator = instantiator; - } - Pool.prototype.obtain = function () { - return this.items.length > 0 ? this.items.pop() : this.instantiator(); - }; - Pool.prototype.free = function (item) { - if (item.reset) - item.reset(); - this.items.push(item); - }; - Pool.prototype.freeAll = function (items) { - for (var i = 0; i < items.length; i++) { - this.free(items[i]); - } - }; - Pool.prototype.clear = function () { - this.items.length = 0; - }; - return Pool; - }()); - spine.Pool = Pool; - var Vector2 = (function () { - function Vector2(x, y) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - this.x = x; - this.y = y; - } - Vector2.prototype.set = function (x, y) { - this.x = x; - this.y = y; - return this; - }; - Vector2.prototype.length = function () { - var x = this.x; - var y = this.y; - return Math.sqrt(x * x + y * y); - }; - Vector2.prototype.normalize = function () { - var len = this.length(); - if (len != 0) { - this.x /= len; - this.y /= len; - } - return this; - }; - return Vector2; - }()); - spine.Vector2 = Vector2; - var TimeKeeper = (function () { - function TimeKeeper() { - this.maxDelta = 0.064; - this.framesPerSecond = 0; - this.delta = 0; - this.totalTime = 0; - this.lastTime = Date.now() / 1000; - this.frameCount = 0; - this.frameTime = 0; - } - TimeKeeper.prototype.update = function () { - var now = Date.now() / 1000; - this.delta = now - this.lastTime; - this.frameTime += this.delta; - this.totalTime += this.delta; - if (this.delta > this.maxDelta) - this.delta = this.maxDelta; - this.lastTime = now; - this.frameCount++; - if (this.frameTime > 1) { - this.framesPerSecond = this.frameCount / this.frameTime; - this.frameTime = 0; - this.frameCount = 0; - } - }; - return TimeKeeper; - }()); - spine.TimeKeeper = TimeKeeper; - var WindowedMean = (function () { - function WindowedMean(windowSize) { - if (windowSize === void 0) { windowSize = 32; } - this.addedValues = 0; - this.lastValue = 0; - this.mean = 0; - this.dirty = true; - this.values = new Array(windowSize); - } - WindowedMean.prototype.hasEnoughData = function () { - return this.addedValues >= this.values.length; - }; - WindowedMean.prototype.addValue = function (value) { - if (this.addedValues < this.values.length) - this.addedValues++; - this.values[this.lastValue++] = value; - if (this.lastValue > this.values.length - 1) - this.lastValue = 0; - this.dirty = true; - }; - WindowedMean.prototype.getMean = function () { - if (this.hasEnoughData()) { - if (this.dirty) { - var mean = 0; - for (var i = 0; i < this.values.length; i++) { - mean += this.values[i]; - } - this.mean = mean / this.values.length; - this.dirty = false; - } - return this.mean; - } - else { - return 0; - } - }; - return WindowedMean; - }()); - spine.WindowedMean = WindowedMean; + var IntSet = (function () { + function IntSet() { + this.array = new Array(); + } + IntSet.prototype.add = function (value) { + var contains = this.contains(value); + this.array[value | 0] = value | 0; + return !contains; + }; + IntSet.prototype.contains = function (value) { + return this.array[value | 0] != undefined; + }; + IntSet.prototype.remove = function (value) { + this.array[value | 0] = undefined; + }; + IntSet.prototype.clear = function () { + this.array.length = 0; + }; + return IntSet; + }()); + spine.IntSet = IntSet; + var StringSet = (function () { + function StringSet() { + this.entries = {}; + this.size = 0; + } + StringSet.prototype.add = function (value) { + var contains = this.entries[value]; + this.entries[value] = true; + if (!contains) + this.size++; + return contains != true; + }; + StringSet.prototype.addAll = function (values) { + var oldSize = this.size; + for (var i = 0, n = values.length; i < n; i++) { + this.add(values[i]); + } + return oldSize != this.size; + }; + StringSet.prototype.contains = function (value) { + var contains = this.entries[value]; + return contains == true; + }; + StringSet.prototype.clear = function () { + this.entries = {}; + this.size = 0; + }; + return StringSet; + }()); + spine.StringSet = StringSet; + var Color = (function () { + function Color(r, g, b, a) { + if (r === void 0) { r = 0; } + if (g === void 0) { g = 0; } + if (b === void 0) { b = 0; } + if (a === void 0) { a = 0; } + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + Color.prototype.set = function (r, g, b, a) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + this.clamp(); + return this; + }; + Color.prototype.setFromColor = function (c) { + this.r = c.r; + this.g = c.g; + this.b = c.b; + this.a = c.a; + return this; + }; + Color.prototype.setFromString = function (hex) { + hex = hex.charAt(0) == '#' ? hex.substr(1) : hex; + this.r = parseInt(hex.substr(0, 2), 16) / 255.0; + this.g = parseInt(hex.substr(2, 2), 16) / 255.0; + this.b = parseInt(hex.substr(4, 2), 16) / 255.0; + this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0; + return this; + }; + Color.prototype.add = function (r, g, b, a) { + this.r += r; + this.g += g; + this.b += b; + this.a += a; + this.clamp(); + return this; + }; + Color.prototype.clamp = function () { + if (this.r < 0) + this.r = 0; + else if (this.r > 1) + this.r = 1; + if (this.g < 0) + this.g = 0; + else if (this.g > 1) + this.g = 1; + if (this.b < 0) + this.b = 0; + else if (this.b > 1) + this.b = 1; + if (this.a < 0) + this.a = 0; + else if (this.a > 1) + this.a = 1; + return this; + }; + Color.rgba8888ToColor = function (color, value) { + color.r = ((value & 0xff000000) >>> 24) / 255; + color.g = ((value & 0x00ff0000) >>> 16) / 255; + color.b = ((value & 0x0000ff00) >>> 8) / 255; + color.a = ((value & 0x000000ff)) / 255; + }; + Color.rgb888ToColor = function (color, value) { + color.r = ((value & 0x00ff0000) >>> 16) / 255; + color.g = ((value & 0x0000ff00) >>> 8) / 255; + color.b = ((value & 0x000000ff)) / 255; + }; + Color.WHITE = new Color(1, 1, 1, 1); + Color.RED = new Color(1, 0, 0, 1); + Color.GREEN = new Color(0, 1, 0, 1); + Color.BLUE = new Color(0, 0, 1, 1); + Color.MAGENTA = new Color(1, 0, 1, 1); + return Color; + }()); + spine.Color = Color; + var MathUtils = (function () { + function MathUtils() { + } + MathUtils.clamp = function (value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + }; + MathUtils.cosDeg = function (degrees) { + return Math.cos(degrees * MathUtils.degRad); + }; + MathUtils.sinDeg = function (degrees) { + return Math.sin(degrees * MathUtils.degRad); + }; + MathUtils.signum = function (value) { + return value > 0 ? 1 : value < 0 ? -1 : 0; + }; + MathUtils.toInt = function (x) { + return x > 0 ? Math.floor(x) : Math.ceil(x); + }; + MathUtils.cbrt = function (x) { + var y = Math.pow(Math.abs(x), 1 / 3); + return x < 0 ? -y : y; + }; + MathUtils.randomTriangular = function (min, max) { + return MathUtils.randomTriangularWith(min, max, (min + max) * 0.5); + }; + MathUtils.randomTriangularWith = function (min, max, mode) { + var u = Math.random(); + var d = max - min; + if (u <= (mode - min) / d) + return min + Math.sqrt(u * d * (mode - min)); + return max - Math.sqrt((1 - u) * d * (max - mode)); + }; + MathUtils.PI = 3.1415927; + MathUtils.PI2 = MathUtils.PI * 2; + MathUtils.radiansToDegrees = 180 / MathUtils.PI; + MathUtils.radDeg = MathUtils.radiansToDegrees; + MathUtils.degreesToRadians = MathUtils.PI / 180; + MathUtils.degRad = MathUtils.degreesToRadians; + return MathUtils; + }()); + spine.MathUtils = MathUtils; + var Interpolation = (function () { + function Interpolation() { + } + Interpolation.prototype.apply = function (start, end, a) { + return start + (end - start) * this.applyInternal(a); + }; + return Interpolation; + }()); + spine.Interpolation = Interpolation; + var Pow = (function (_super) { + __extends(Pow, _super); + function Pow(power) { + var _this = _super.call(this) || this; + _this.power = 2; + _this.power = power; + return _this; + } + Pow.prototype.applyInternal = function (a) { + if (a <= 0.5) + return Math.pow(a * 2, this.power) / 2; + return Math.pow((a - 1) * 2, this.power) / (this.power % 2 == 0 ? -2 : 2) + 1; + }; + return Pow; + }(Interpolation)); + spine.Pow = Pow; + var PowOut = (function (_super) { + __extends(PowOut, _super); + function PowOut(power) { + return _super.call(this, power) || this; + } + PowOut.prototype.applyInternal = function (a) { + return Math.pow(a - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1; + }; + return PowOut; + }(Pow)); + spine.PowOut = PowOut; + var Utils = (function () { + function Utils() { + } + Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) { + for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { + dest[j] = source[i]; + } + }; + Utils.setArraySize = function (array, size, value) { + if (value === void 0) { value = 0; } + var oldSize = array.length; + if (oldSize == size) + return array; + array.length = size; + if (oldSize < size) { + for (var i = oldSize; i < size; i++) + array[i] = value; + } + return array; + }; + Utils.ensureArrayCapacity = function (array, size, value) { + if (value === void 0) { value = 0; } + if (array.length >= size) + return array; + return Utils.setArraySize(array, size, value); + }; + Utils.newArray = function (size, defaultValue) { + var array = new Array(size); + for (var i = 0; i < size; i++) + array[i] = defaultValue; + return array; + }; + Utils.newFloatArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Float32Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.newShortArray = function (size) { + if (Utils.SUPPORTS_TYPED_ARRAYS) { + return new Int16Array(size); + } + else { + var array = new Array(size); + for (var i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + }; + Utils.toFloatArray = function (array) { + return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; + }; + Utils.toSinglePrecision = function (value) { + return Utils.SUPPORTS_TYPED_ARRAYS ? Math.fround(value) : value; + }; + Utils.webkit602BugfixHelper = function (alpha, blend) { + }; + Utils.contains = function (array, element, identity) { + if (identity === void 0) { identity = true; } + for (var i = 0; i < array.length; i++) { + if (array[i] == element) + return true; + } + return false; + }; + Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined"; + return Utils; + }()); + spine.Utils = Utils; + var DebugUtils = (function () { + function DebugUtils() { + } + DebugUtils.logBones = function (skeleton) { + for (var i = 0; i < skeleton.bones.length; i++) { + var bone = skeleton.bones[i]; + console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); + } + }; + return DebugUtils; + }()); + spine.DebugUtils = DebugUtils; + var Pool = (function () { + function Pool(instantiator) { + this.items = new Array(); + this.instantiator = instantiator; + } + Pool.prototype.obtain = function () { + return this.items.length > 0 ? this.items.pop() : this.instantiator(); + }; + Pool.prototype.free = function (item) { + if (item.reset) + item.reset(); + this.items.push(item); + }; + Pool.prototype.freeAll = function (items) { + for (var i = 0; i < items.length; i++) { + this.free(items[i]); + } + }; + Pool.prototype.clear = function () { + this.items.length = 0; + }; + return Pool; + }()); + spine.Pool = Pool; + var Vector2 = (function () { + function Vector2(x, y) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + this.x = x; + this.y = y; + } + Vector2.prototype.set = function (x, y) { + this.x = x; + this.y = y; + return this; + }; + Vector2.prototype.length = function () { + var x = this.x; + var y = this.y; + return Math.sqrt(x * x + y * y); + }; + Vector2.prototype.normalize = function () { + var len = this.length(); + if (len != 0) { + this.x /= len; + this.y /= len; + } + return this; + }; + return Vector2; + }()); + spine.Vector2 = Vector2; + var TimeKeeper = (function () { + function TimeKeeper() { + this.maxDelta = 0.064; + this.framesPerSecond = 0; + this.delta = 0; + this.totalTime = 0; + this.lastTime = Date.now() / 1000; + this.frameCount = 0; + this.frameTime = 0; + } + TimeKeeper.prototype.update = function () { + var now = Date.now() / 1000; + this.delta = now - this.lastTime; + this.frameTime += this.delta; + this.totalTime += this.delta; + if (this.delta > this.maxDelta) + this.delta = this.maxDelta; + this.lastTime = now; + this.frameCount++; + if (this.frameTime > 1) { + this.framesPerSecond = this.frameCount / this.frameTime; + this.frameTime = 0; + this.frameCount = 0; + } + }; + return TimeKeeper; + }()); + spine.TimeKeeper = TimeKeeper; + var WindowedMean = (function () { + function WindowedMean(windowSize) { + if (windowSize === void 0) { windowSize = 32; } + this.addedValues = 0; + this.lastValue = 0; + this.mean = 0; + this.dirty = true; + this.values = new Array(windowSize); + } + WindowedMean.prototype.hasEnoughData = function () { + return this.addedValues >= this.values.length; + }; + WindowedMean.prototype.addValue = function (value) { + if (this.addedValues < this.values.length) + this.addedValues++; + this.values[this.lastValue++] = value; + if (this.lastValue > this.values.length - 1) + this.lastValue = 0; + this.dirty = true; + }; + WindowedMean.prototype.getMean = function () { + if (this.hasEnoughData()) { + if (this.dirty) { + var mean = 0; + for (var i = 0; i < this.values.length; i++) { + mean += this.values[i]; + } + this.mean = mean / this.values.length; + this.dirty = false; + } + return this.mean; + } + else { + return 0; + } + }; + return WindowedMean; + }()); + spine.WindowedMean = WindowedMean; })(spine || (spine = {})); (function () { - if (!Math.fround) { - Math.fround = (function (array) { - return function (x) { - return array[0] = x, array[0]; - }; - })(new Float32Array(1)); - } + if (!Math.fround) { + Math.fround = (function (array) { + return function (x) { + return array[0] = x, array[0]; + }; + })(new Float32Array(1)); + } })(); var spine; (function (spine) { - var Attachment = (function () { - function Attachment(name) { - if (name == null) - throw new Error("name cannot be null."); - this.name = name; - } - return Attachment; - }()); - spine.Attachment = Attachment; - var VertexAttachment = (function (_super) { - __extends(VertexAttachment, _super); - function VertexAttachment(name) { - var _this = _super.call(this, name) || this; - _this.id = (VertexAttachment.nextID++ & 65535) << 11; - _this.worldVerticesLength = 0; - _this.deformAttachment = _this; - return _this; - } - VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { - count = offset + (count >> 1) * stride; - var skeleton = slot.bone.skeleton; - var deformArray = slot.deform; - var vertices = this.vertices; - var bones = this.bones; - if (bones == null) { - if (deformArray.length > 0) - vertices = deformArray; - var bone = slot.bone; - var x = bone.worldX; - var y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { - var vx = vertices[v_1], vy = vertices[v_1 + 1]; - worldVertices[w] = vx * a + vy * b + x; - worldVertices[w + 1] = vx * c + vy * d + y; - } - return; - } - var v = 0, skip = 0; - for (var i = 0; i < start; i += 2) { - var n = bones[v]; - v += n + 1; - skip += n; - } - var skeletonBones = skeleton.bones; - if (deformArray.length == 0) { - for (var w = offset, b = skip * 3; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - else { - var deform = deformArray; - for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { - var wx = 0, wy = 0; - var n = bones[v++]; - n += v; - for (; v < n; v++, b += 3, f += 2) { - var bone = skeletonBones[bones[v]]; - var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; - wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; - wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; - } - worldVertices[w] = wx; - worldVertices[w + 1] = wy; - } - } - }; - VertexAttachment.prototype.copyTo = function (attachment) { - if (this.bones != null) { - attachment.bones = new Array(this.bones.length); - spine.Utils.arrayCopy(this.bones, 0, attachment.bones, 0, this.bones.length); - } - else - attachment.bones = null; - if (this.vertices != null) { - attachment.vertices = spine.Utils.newFloatArray(this.vertices.length); - spine.Utils.arrayCopy(this.vertices, 0, attachment.vertices, 0, this.vertices.length); - } - else - attachment.vertices = null; - attachment.worldVerticesLength = this.worldVerticesLength; - attachment.deformAttachment = this.deformAttachment; - }; - VertexAttachment.nextID = 0; - return VertexAttachment; - }(Attachment)); - spine.VertexAttachment = VertexAttachment; + var Attachment = (function () { + function Attachment(name) { + if (name == null) + throw new Error("name cannot be null."); + this.name = name; + } + return Attachment; + }()); + spine.Attachment = Attachment; + var VertexAttachment = (function (_super) { + __extends(VertexAttachment, _super); + function VertexAttachment(name) { + var _this = _super.call(this, name) || this; + _this.id = VertexAttachment.nextID++; + _this.worldVerticesLength = 0; + _this.deformAttachment = _this; + return _this; + } + VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + var skeleton = slot.bone.skeleton; + var deformArray = slot.deform; + var vertices = this.vertices; + var bones = this.bones; + if (bones == null) { + if (deformArray.length > 0) + vertices = deformArray; + var bone = slot.bone; + var x = bone.worldX; + var y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) { + var vx = vertices[v_1], vy = vertices[v_1 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + var v = 0, skip = 0; + for (var i = 0; i < start; i += 2) { + var n = bones[v]; + v += n + 1; + skip += n; + } + var skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (var w = offset, b = skip * 3; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + else { + var deform = deformArray; + for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + var wx = 0, wy = 0; + var n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + var bone = skeletonBones[bones[v]]; + var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + }; + VertexAttachment.prototype.copyTo = function (attachment) { + if (this.bones != null) { + attachment.bones = new Array(this.bones.length); + spine.Utils.arrayCopy(this.bones, 0, attachment.bones, 0, this.bones.length); + } + else + attachment.bones = null; + if (this.vertices != null) { + attachment.vertices = spine.Utils.newFloatArray(this.vertices.length); + spine.Utils.arrayCopy(this.vertices, 0, attachment.vertices, 0, this.vertices.length); + } + else + attachment.vertices = null; + attachment.worldVerticesLength = this.worldVerticesLength; + attachment.deformAttachment = this.deformAttachment; + }; + VertexAttachment.nextID = 0; + return VertexAttachment; + }(Attachment)); + spine.VertexAttachment = VertexAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var AttachmentType; - (function (AttachmentType) { - AttachmentType[AttachmentType["Region"] = 0] = "Region"; - AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; - AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; - AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; - AttachmentType[AttachmentType["Path"] = 4] = "Path"; - AttachmentType[AttachmentType["Point"] = 5] = "Point"; - AttachmentType[AttachmentType["Clipping"] = 6] = "Clipping"; - })(AttachmentType = spine.AttachmentType || (spine.AttachmentType = {})); + var AttachmentType; + (function (AttachmentType) { + AttachmentType[AttachmentType["Region"] = 0] = "Region"; + AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh"; + AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType[AttachmentType["Path"] = 4] = "Path"; + AttachmentType[AttachmentType["Point"] = 5] = "Point"; + AttachmentType[AttachmentType["Clipping"] = 6] = "Clipping"; + })(AttachmentType = spine.AttachmentType || (spine.AttachmentType = {})); })(spine || (spine = {})); var spine; (function (spine) { - var BoundingBoxAttachment = (function (_super) { - __extends(BoundingBoxAttachment, _super); - function BoundingBoxAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(1, 1, 1, 1); - return _this; - } - BoundingBoxAttachment.prototype.copy = function () { - var copy = new BoundingBoxAttachment(name); - this.copyTo(copy); - copy.color.setFromColor(this.color); - return copy; - }; - return BoundingBoxAttachment; - }(spine.VertexAttachment)); - spine.BoundingBoxAttachment = BoundingBoxAttachment; + var BoundingBoxAttachment = (function (_super) { + __extends(BoundingBoxAttachment, _super); + function BoundingBoxAttachment(name) { + var _this = _super.call(this, name) || this; + _this.color = new spine.Color(1, 1, 1, 1); + return _this; + } + BoundingBoxAttachment.prototype.copy = function () { + var copy = new BoundingBoxAttachment(name); + this.copyTo(copy); + copy.color.setFromColor(this.color); + return copy; + }; + return BoundingBoxAttachment; + }(spine.VertexAttachment)); + spine.BoundingBoxAttachment = BoundingBoxAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var ClippingAttachment = (function (_super) { - __extends(ClippingAttachment, _super); - function ClippingAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); - return _this; - } - ClippingAttachment.prototype.copy = function () { - var copy = new ClippingAttachment(name); - this.copyTo(copy); - copy.endSlot = this.endSlot; - copy.color.setFromColor(this.color); - return copy; - }; - return ClippingAttachment; - }(spine.VertexAttachment)); - spine.ClippingAttachment = ClippingAttachment; + var ClippingAttachment = (function (_super) { + __extends(ClippingAttachment, _super); + function ClippingAttachment(name) { + var _this = _super.call(this, name) || this; + _this.color = new spine.Color(0.2275, 0.2275, 0.8078, 1); + return _this; + } + ClippingAttachment.prototype.copy = function () { + var copy = new ClippingAttachment(name); + this.copyTo(copy); + copy.endSlot = this.endSlot; + copy.color.setFromColor(this.color); + return copy; + }; + return ClippingAttachment; + }(spine.VertexAttachment)); + spine.ClippingAttachment = ClippingAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var MeshAttachment = (function (_super) { - __extends(MeshAttachment, _super); - function MeshAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(1, 1, 1, 1); - _this.tempColor = new spine.Color(0, 0, 0, 0); - return _this; - } - MeshAttachment.prototype.updateUVs = function () { - var regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) - this.uvs = spine.Utils.newFloatArray(regionUVs.length); - var uvs = this.uvs; - var n = this.uvs.length; - var u = this.region.u, v = this.region.v, width = 0, height = 0; - if (this.region instanceof spine.TextureAtlasRegion) { - var region = this.region; - var textureWidth = region.texture.getImage().width, textureHeight = region.texture.getImage().height; - switch (region.degrees) { - case 90: - u -= (region.originalHeight - region.offsetY - region.height) / textureWidth; - v -= (region.originalWidth - region.offsetX - region.width) / textureHeight; - width = region.originalHeight / textureWidth; - height = region.originalWidth / textureHeight; - for (var i = 0; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + (1 - regionUVs[i]) * height; - } - return; - case 180: - u -= (region.originalWidth - region.offsetX - region.width) / textureWidth; - v -= region.offsetY / textureHeight; - width = region.originalWidth / textureWidth; - height = region.originalHeight / textureHeight; - for (var i = 0; i < n; i += 2) { - uvs[i] = u + (1 - regionUVs[i]) * width; - uvs[i + 1] = v + (1 - regionUVs[i + 1]) * height; - } - return; - case 270: - u -= region.offsetY / textureWidth; - v -= region.offsetX / textureHeight; - width = region.originalHeight / textureWidth; - height = region.originalWidth / textureHeight; - for (var i = 0; i < n; i += 2) { - uvs[i] = u + (1 - regionUVs[i + 1]) * width; - uvs[i + 1] = v + regionUVs[i] * height; - } - return; - } - u -= region.offsetX / textureWidth; - v -= (region.originalHeight - region.offsetY - region.height) / textureHeight; - width = region.originalWidth / textureWidth; - height = region.originalHeight / textureHeight; - } - else if (this.region == null) { - u = v = 0; - width = height = 1; - } - else { - width = this.region.u2 - u; - height = this.region.v2 - v; - } - for (var i = 0; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } - }; - MeshAttachment.prototype.getParentMesh = function () { - return this.parentMesh; - }; - MeshAttachment.prototype.setParentMesh = function (parentMesh) { - this.parentMesh = parentMesh; - if (parentMesh != null) { - this.bones = parentMesh.bones; - this.vertices = parentMesh.vertices; - this.worldVerticesLength = parentMesh.worldVerticesLength; - this.regionUVs = parentMesh.regionUVs; - this.triangles = parentMesh.triangles; - this.hullLength = parentMesh.hullLength; - this.worldVerticesLength = parentMesh.worldVerticesLength; - } - }; - MeshAttachment.prototype.copy = function () { - if (this.parentMesh != null) - return this.newLinkedMesh(); - var copy = new MeshAttachment(this.name); - copy.region = this.region; - copy.path = this.path; - copy.color.setFromColor(this.color); - this.copyTo(copy); - copy.regionUVs = new Array(this.regionUVs.length); - spine.Utils.arrayCopy(this.regionUVs, 0, copy.regionUVs, 0, this.regionUVs.length); - copy.uvs = new Array(this.uvs.length); - spine.Utils.arrayCopy(this.uvs, 0, copy.uvs, 0, this.uvs.length); - copy.triangles = new Array(this.triangles.length); - spine.Utils.arrayCopy(this.triangles, 0, copy.triangles, 0, this.triangles.length); - copy.hullLength = this.hullLength; - if (this.edges != null) { - copy.edges = new Array(this.edges.length); - spine.Utils.arrayCopy(this.edges, 0, copy.edges, 0, this.edges.length); - } - copy.width = this.width; - copy.height = this.height; - return copy; - }; - MeshAttachment.prototype.newLinkedMesh = function () { - var copy = new MeshAttachment(this.name); - copy.region = this.region; - copy.path = this.path; - copy.color.setFromColor(this.color); - copy.deformAttachment = this.deformAttachment; - copy.setParentMesh(this.parentMesh != null ? this.parentMesh : this); - copy.updateUVs(); - return copy; - }; - return MeshAttachment; - }(spine.VertexAttachment)); - spine.MeshAttachment = MeshAttachment; + var MeshAttachment = (function (_super) { + __extends(MeshAttachment, _super); + function MeshAttachment(name) { + var _this = _super.call(this, name) || this; + _this.color = new spine.Color(1, 1, 1, 1); + _this.tempColor = new spine.Color(0, 0, 0, 0); + return _this; + } + MeshAttachment.prototype.updateUVs = function () { + var regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) + this.uvs = spine.Utils.newFloatArray(regionUVs.length); + var uvs = this.uvs; + var n = this.uvs.length; + var u = this.region.u, v = this.region.v, width = 0, height = 0; + if (this.region instanceof spine.TextureAtlasRegion) { + var region = this.region; + var textureWidth = region.texture.getImage().width, textureHeight = region.texture.getImage().height; + switch (region.degrees) { + case 90: + u -= (region.originalHeight - region.offsetY - region.height) / textureWidth; + v -= (region.originalWidth - region.offsetX - region.width) / textureHeight; + width = region.originalHeight / textureWidth; + height = region.originalWidth / textureHeight; + for (var i = 0; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + (1 - regionUVs[i]) * height; + } + return; + case 180: + u -= (region.originalWidth - region.offsetX - region.width) / textureWidth; + v -= region.offsetY / textureHeight; + width = region.originalWidth / textureWidth; + height = region.originalHeight / textureHeight; + for (var i = 0; i < n; i += 2) { + uvs[i] = u + (1 - regionUVs[i]) * width; + uvs[i + 1] = v + (1 - regionUVs[i + 1]) * height; + } + return; + case 270: + u -= region.offsetY / textureWidth; + v -= region.offsetX / textureHeight; + width = region.originalHeight / textureWidth; + height = region.originalWidth / textureHeight; + for (var i = 0; i < n; i += 2) { + uvs[i] = u + (1 - regionUVs[i + 1]) * width; + uvs[i + 1] = v + regionUVs[i] * height; + } + return; + } + u -= region.offsetX / textureWidth; + v -= (region.originalHeight - region.offsetY - region.height) / textureHeight; + width = region.originalWidth / textureWidth; + height = region.originalHeight / textureHeight; + } + else if (this.region == null) { + u = v = 0; + width = height = 1; + } + else { + width = this.region.u2 - u; + height = this.region.v2 - v; + } + for (var i = 0; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + }; + MeshAttachment.prototype.getParentMesh = function () { + return this.parentMesh; + }; + MeshAttachment.prototype.setParentMesh = function (parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh != null) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + }; + MeshAttachment.prototype.copy = function () { + if (this.parentMesh != null) + return this.newLinkedMesh(); + var copy = new MeshAttachment(this.name); + copy.region = this.region; + copy.path = this.path; + copy.color.setFromColor(this.color); + this.copyTo(copy); + copy.regionUVs = new Array(this.regionUVs.length); + spine.Utils.arrayCopy(this.regionUVs, 0, copy.regionUVs, 0, this.regionUVs.length); + copy.uvs = new Array(this.uvs.length); + spine.Utils.arrayCopy(this.uvs, 0, copy.uvs, 0, this.uvs.length); + copy.triangles = new Array(this.triangles.length); + spine.Utils.arrayCopy(this.triangles, 0, copy.triangles, 0, this.triangles.length); + copy.hullLength = this.hullLength; + if (this.edges != null) { + copy.edges = new Array(this.edges.length); + spine.Utils.arrayCopy(this.edges, 0, copy.edges, 0, this.edges.length); + } + copy.width = this.width; + copy.height = this.height; + return copy; + }; + MeshAttachment.prototype.newLinkedMesh = function () { + var copy = new MeshAttachment(this.name); + copy.region = this.region; + copy.path = this.path; + copy.color.setFromColor(this.color); + copy.deformAttachment = this.deformAttachment; + copy.setParentMesh(this.parentMesh != null ? this.parentMesh : this); + copy.updateUVs(); + return copy; + }; + return MeshAttachment; + }(spine.VertexAttachment)); + spine.MeshAttachment = MeshAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PathAttachment = (function (_super) { - __extends(PathAttachment, _super); - function PathAttachment(name) { - var _this = _super.call(this, name) || this; - _this.closed = false; - _this.constantSpeed = false; - _this.color = new spine.Color(1, 1, 1, 1); - return _this; - } - PathAttachment.prototype.copy = function () { - var copy = new PathAttachment(name); - this.copyTo(copy); - copy.lengths = new Array(this.lengths.length); - spine.Utils.arrayCopy(this.lengths, 0, copy.lengths, 0, this.lengths.length); - copy.closed = closed; - copy.constantSpeed = this.constantSpeed; - copy.color.setFromColor(this.color); - return copy; - }; - return PathAttachment; - }(spine.VertexAttachment)); - spine.PathAttachment = PathAttachment; + var PathAttachment = (function (_super) { + __extends(PathAttachment, _super); + function PathAttachment(name) { + var _this = _super.call(this, name) || this; + _this.closed = false; + _this.constantSpeed = false; + _this.color = new spine.Color(1, 1, 1, 1); + return _this; + } + PathAttachment.prototype.copy = function () { + var copy = new PathAttachment(name); + this.copyTo(copy); + copy.lengths = new Array(this.lengths.length); + spine.Utils.arrayCopy(this.lengths, 0, copy.lengths, 0, this.lengths.length); + copy.closed = closed; + copy.constantSpeed = this.constantSpeed; + copy.color.setFromColor(this.color); + return copy; + }; + return PathAttachment; + }(spine.VertexAttachment)); + spine.PathAttachment = PathAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var PointAttachment = (function (_super) { - __extends(PointAttachment, _super); - function PointAttachment(name) { - var _this = _super.call(this, name) || this; - _this.color = new spine.Color(0.38, 0.94, 0, 1); - return _this; - } - PointAttachment.prototype.computeWorldPosition = function (bone, point) { - point.x = this.x * bone.a + this.y * bone.b + bone.worldX; - point.y = this.x * bone.c + this.y * bone.d + bone.worldY; - return point; - }; - PointAttachment.prototype.computeWorldRotation = function (bone) { - var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); - var x = cos * bone.a + sin * bone.b; - var y = cos * bone.c + sin * bone.d; - return Math.atan2(y, x) * spine.MathUtils.radDeg; - }; - PointAttachment.prototype.copy = function () { - var copy = new PointAttachment(name); - copy.x = this.x; - copy.y = this.y; - copy.rotation = this.rotation; - copy.color.setFromColor(this.color); - return copy; - }; - return PointAttachment; - }(spine.VertexAttachment)); - spine.PointAttachment = PointAttachment; + var PointAttachment = (function (_super) { + __extends(PointAttachment, _super); + function PointAttachment(name) { + var _this = _super.call(this, name) || this; + _this.color = new spine.Color(0.38, 0.94, 0, 1); + return _this; + } + PointAttachment.prototype.computeWorldPosition = function (bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + }; + PointAttachment.prototype.computeWorldRotation = function (bone) { + var cos = spine.MathUtils.cosDeg(this.rotation), sin = spine.MathUtils.sinDeg(this.rotation); + var x = cos * bone.a + sin * bone.b; + var y = cos * bone.c + sin * bone.d; + return Math.atan2(y, x) * spine.MathUtils.radDeg; + }; + PointAttachment.prototype.copy = function () { + var copy = new PointAttachment(name); + copy.x = this.x; + copy.y = this.y; + copy.rotation = this.rotation; + copy.color.setFromColor(this.color); + return copy; + }; + return PointAttachment; + }(spine.VertexAttachment)); + spine.PointAttachment = PointAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var RegionAttachment = (function (_super) { - __extends(RegionAttachment, _super); - function RegionAttachment(name) { - var _this = _super.call(this, name) || this; - _this.x = 0; - _this.y = 0; - _this.scaleX = 1; - _this.scaleY = 1; - _this.rotation = 0; - _this.width = 0; - _this.height = 0; - _this.color = new spine.Color(1, 1, 1, 1); - _this.offset = spine.Utils.newFloatArray(8); - _this.uvs = spine.Utils.newFloatArray(8); - _this.tempColor = new spine.Color(1, 1, 1, 1); - return _this; - } - RegionAttachment.prototype.updateOffset = function () { - var regionScaleX = this.width / this.region.originalWidth * this.scaleX; - var regionScaleY = this.height / this.region.originalHeight * this.scaleY; - var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; - var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; - var localX2 = localX + this.region.width * regionScaleX; - var localY2 = localY + this.region.height * regionScaleY; - var radians = this.rotation * Math.PI / 180; - var cos = Math.cos(radians); - var sin = Math.sin(radians); - var localXCos = localX * cos + this.x; - var localXSin = localX * sin; - var localYCos = localY * cos + this.y; - var localYSin = localY * sin; - var localX2Cos = localX2 * cos + this.x; - var localX2Sin = localX2 * sin; - var localY2Cos = localY2 * cos + this.y; - var localY2Sin = localY2 * sin; - var offset = this.offset; - offset[RegionAttachment.OX1] = localXCos - localYSin; - offset[RegionAttachment.OY1] = localYCos + localXSin; - offset[RegionAttachment.OX2] = localXCos - localY2Sin; - offset[RegionAttachment.OY2] = localY2Cos + localXSin; - offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; - offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; - offset[RegionAttachment.OX4] = localX2Cos - localYSin; - offset[RegionAttachment.OY4] = localYCos + localX2Sin; - }; - RegionAttachment.prototype.setRegion = function (region) { - this.region = region; - var uvs = this.uvs; - if (region.rotate) { - uvs[2] = region.u; - uvs[3] = region.v2; - uvs[4] = region.u; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v; - uvs[0] = region.u2; - uvs[1] = region.v2; - } - else { - uvs[0] = region.u; - uvs[1] = region.v2; - uvs[2] = region.u; - uvs[3] = region.v; - uvs[4] = region.u2; - uvs[5] = region.v; - uvs[6] = region.u2; - uvs[7] = region.v2; - } - }; - RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { - var vertexOffset = this.offset; - var x = bone.worldX, y = bone.worldY; - var a = bone.a, b = bone.b, c = bone.c, d = bone.d; - var offsetX = 0, offsetY = 0; - offsetX = vertexOffset[RegionAttachment.OX1]; - offsetY = vertexOffset[RegionAttachment.OY1]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX2]; - offsetY = vertexOffset[RegionAttachment.OY2]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX3]; - offsetY = vertexOffset[RegionAttachment.OY3]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - offset += stride; - offsetX = vertexOffset[RegionAttachment.OX4]; - offsetY = vertexOffset[RegionAttachment.OY4]; - worldVertices[offset] = offsetX * a + offsetY * b + x; - worldVertices[offset + 1] = offsetX * c + offsetY * d + y; - }; - RegionAttachment.prototype.copy = function () { - var copy = new RegionAttachment(this.name); - copy.region = this.region; - copy.rendererObject = this.rendererObject; - copy.path = this.path; - copy.x = this.x; - copy.y = this.y; - copy.scaleX = this.scaleX; - copy.scaleY = this.scaleY; - copy.rotation = this.rotation; - copy.width = this.width; - copy.height = this.height; - spine.Utils.arrayCopy(this.uvs, 0, copy.uvs, 0, 8); - spine.Utils.arrayCopy(this.offset, 0, copy.offset, 0, 8); - copy.color.setFromColor(this.color); - return copy; - }; - RegionAttachment.OX1 = 0; - RegionAttachment.OY1 = 1; - RegionAttachment.OX2 = 2; - RegionAttachment.OY2 = 3; - RegionAttachment.OX3 = 4; - RegionAttachment.OY3 = 5; - RegionAttachment.OX4 = 6; - RegionAttachment.OY4 = 7; - RegionAttachment.X1 = 0; - RegionAttachment.Y1 = 1; - RegionAttachment.C1R = 2; - RegionAttachment.C1G = 3; - RegionAttachment.C1B = 4; - RegionAttachment.C1A = 5; - RegionAttachment.U1 = 6; - RegionAttachment.V1 = 7; - RegionAttachment.X2 = 8; - RegionAttachment.Y2 = 9; - RegionAttachment.C2R = 10; - RegionAttachment.C2G = 11; - RegionAttachment.C2B = 12; - RegionAttachment.C2A = 13; - RegionAttachment.U2 = 14; - RegionAttachment.V2 = 15; - RegionAttachment.X3 = 16; - RegionAttachment.Y3 = 17; - RegionAttachment.C3R = 18; - RegionAttachment.C3G = 19; - RegionAttachment.C3B = 20; - RegionAttachment.C3A = 21; - RegionAttachment.U3 = 22; - RegionAttachment.V3 = 23; - RegionAttachment.X4 = 24; - RegionAttachment.Y4 = 25; - RegionAttachment.C4R = 26; - RegionAttachment.C4G = 27; - RegionAttachment.C4B = 28; - RegionAttachment.C4A = 29; - RegionAttachment.U4 = 30; - RegionAttachment.V4 = 31; - return RegionAttachment; - }(spine.Attachment)); - spine.RegionAttachment = RegionAttachment; + var RegionAttachment = (function (_super) { + __extends(RegionAttachment, _super); + function RegionAttachment(name) { + var _this = _super.call(this, name) || this; + _this.x = 0; + _this.y = 0; + _this.scaleX = 1; + _this.scaleY = 1; + _this.rotation = 0; + _this.width = 0; + _this.height = 0; + _this.color = new spine.Color(1, 1, 1, 1); + _this.offset = spine.Utils.newFloatArray(8); + _this.uvs = spine.Utils.newFloatArray(8); + _this.tempColor = new spine.Color(1, 1, 1, 1); + return _this; + } + RegionAttachment.prototype.updateOffset = function () { + var regionScaleX = this.width / this.region.originalWidth * this.scaleX; + var regionScaleY = this.height / this.region.originalHeight * this.scaleY; + var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + var localX2 = localX + this.region.width * regionScaleX; + var localY2 = localY + this.region.height * regionScaleY; + var radians = this.rotation * Math.PI / 180; + var cos = Math.cos(radians); + var sin = Math.sin(radians); + var localXCos = localX * cos + this.x; + var localXSin = localX * sin; + var localYCos = localY * cos + this.y; + var localYSin = localY * sin; + var localX2Cos = localX2 * cos + this.x; + var localX2Sin = localX2 * sin; + var localY2Cos = localY2 * cos + this.y; + var localY2Sin = localY2 * sin; + var offset = this.offset; + offset[RegionAttachment.OX1] = localXCos - localYSin; + offset[RegionAttachment.OY1] = localYCos + localXSin; + offset[RegionAttachment.OX2] = localXCos - localY2Sin; + offset[RegionAttachment.OY2] = localY2Cos + localXSin; + offset[RegionAttachment.OX3] = localX2Cos - localY2Sin; + offset[RegionAttachment.OY3] = localY2Cos + localX2Sin; + offset[RegionAttachment.OX4] = localX2Cos - localYSin; + offset[RegionAttachment.OY4] = localYCos + localX2Sin; + }; + RegionAttachment.prototype.setRegion = function (region) { + this.region = region; + var uvs = this.uvs; + if (region.rotate) { + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + uvs[0] = region.u2; + uvs[1] = region.v2; + } + else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + }; + RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) { + var vertexOffset = this.offset; + var x = bone.worldX, y = bone.worldY; + var a = bone.a, b = bone.b, c = bone.c, d = bone.d; + var offsetX = 0, offsetY = 0; + offsetX = vertexOffset[RegionAttachment.OX1]; + offsetY = vertexOffset[RegionAttachment.OY1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX2]; + offsetY = vertexOffset[RegionAttachment.OY2]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX3]; + offsetY = vertexOffset[RegionAttachment.OY3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[RegionAttachment.OX4]; + offsetY = vertexOffset[RegionAttachment.OY4]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + }; + RegionAttachment.prototype.copy = function () { + var copy = new RegionAttachment(this.name); + copy.region = this.region; + copy.rendererObject = this.rendererObject; + copy.path = this.path; + copy.x = this.x; + copy.y = this.y; + copy.scaleX = this.scaleX; + copy.scaleY = this.scaleY; + copy.rotation = this.rotation; + copy.width = this.width; + copy.height = this.height; + spine.Utils.arrayCopy(this.uvs, 0, copy.uvs, 0, 8); + spine.Utils.arrayCopy(this.offset, 0, copy.offset, 0, 8); + copy.color.setFromColor(this.color); + return copy; + }; + RegionAttachment.OX1 = 0; + RegionAttachment.OY1 = 1; + RegionAttachment.OX2 = 2; + RegionAttachment.OY2 = 3; + RegionAttachment.OX3 = 4; + RegionAttachment.OY3 = 5; + RegionAttachment.OX4 = 6; + RegionAttachment.OY4 = 7; + RegionAttachment.X1 = 0; + RegionAttachment.Y1 = 1; + RegionAttachment.C1R = 2; + RegionAttachment.C1G = 3; + RegionAttachment.C1B = 4; + RegionAttachment.C1A = 5; + RegionAttachment.U1 = 6; + RegionAttachment.V1 = 7; + RegionAttachment.X2 = 8; + RegionAttachment.Y2 = 9; + RegionAttachment.C2R = 10; + RegionAttachment.C2G = 11; + RegionAttachment.C2B = 12; + RegionAttachment.C2A = 13; + RegionAttachment.U2 = 14; + RegionAttachment.V2 = 15; + RegionAttachment.X3 = 16; + RegionAttachment.Y3 = 17; + RegionAttachment.C3R = 18; + RegionAttachment.C3G = 19; + RegionAttachment.C3B = 20; + RegionAttachment.C3A = 21; + RegionAttachment.U3 = 22; + RegionAttachment.V3 = 23; + RegionAttachment.X4 = 24; + RegionAttachment.Y4 = 25; + RegionAttachment.C4R = 26; + RegionAttachment.C4G = 27; + RegionAttachment.C4B = 28; + RegionAttachment.C4A = 29; + RegionAttachment.U4 = 30; + RegionAttachment.V4 = 31; + return RegionAttachment; + }(spine.Attachment)); + spine.RegionAttachment = RegionAttachment; })(spine || (spine = {})); var spine; (function (spine) { - var JitterEffect = (function () { - function JitterEffect(jitterX, jitterY) { - this.jitterX = 0; - this.jitterY = 0; - this.jitterX = jitterX; - this.jitterY = jitterY; - } - JitterEffect.prototype.begin = function (skeleton) { - }; - JitterEffect.prototype.transform = function (position, uv, light, dark) { - position.x += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY); - position.y += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY); - }; - JitterEffect.prototype.end = function () { - }; - return JitterEffect; - }()); - spine.JitterEffect = JitterEffect; + var JitterEffect = (function () { + function JitterEffect(jitterX, jitterY) { + this.jitterX = 0; + this.jitterY = 0; + this.jitterX = jitterX; + this.jitterY = jitterY; + } + JitterEffect.prototype.begin = function (skeleton) { + }; + JitterEffect.prototype.transform = function (position, uv, light, dark) { + position.x += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY); + position.y += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY); + }; + JitterEffect.prototype.end = function () { + }; + return JitterEffect; + }()); + spine.JitterEffect = JitterEffect; })(spine || (spine = {})); var spine; (function (spine) { - var SwirlEffect = (function () { - function SwirlEffect(radius) { - this.centerX = 0; - this.centerY = 0; - this.radius = 0; - this.angle = 0; - this.worldX = 0; - this.worldY = 0; - this.radius = radius; - } - SwirlEffect.prototype.begin = function (skeleton) { - this.worldX = skeleton.x + this.centerX; - this.worldY = skeleton.y + this.centerY; - }; - SwirlEffect.prototype.transform = function (position, uv, light, dark) { - var radAngle = this.angle * spine.MathUtils.degreesToRadians; - var x = position.x - this.worldX; - var y = position.y - this.worldY; - var dist = Math.sqrt(x * x + y * y); - if (dist < this.radius) { - var theta = SwirlEffect.interpolation.apply(0, radAngle, (this.radius - dist) / this.radius); - var cos = Math.cos(theta); - var sin = Math.sin(theta); - position.x = cos * x - sin * y + this.worldX; - position.y = sin * x + cos * y + this.worldY; - } - }; - SwirlEffect.prototype.end = function () { - }; - SwirlEffect.interpolation = new spine.PowOut(2); - return SwirlEffect; - }()); - spine.SwirlEffect = SwirlEffect; + var SwirlEffect = (function () { + function SwirlEffect(radius) { + this.centerX = 0; + this.centerY = 0; + this.radius = 0; + this.angle = 0; + this.worldX = 0; + this.worldY = 0; + this.radius = radius; + } + SwirlEffect.prototype.begin = function (skeleton) { + this.worldX = skeleton.x + this.centerX; + this.worldY = skeleton.y + this.centerY; + }; + SwirlEffect.prototype.transform = function (position, uv, light, dark) { + var radAngle = this.angle * spine.MathUtils.degreesToRadians; + var x = position.x - this.worldX; + var y = position.y - this.worldY; + var dist = Math.sqrt(x * x + y * y); + if (dist < this.radius) { + var theta = SwirlEffect.interpolation.apply(0, radAngle, (this.radius - dist) / this.radius); + var cos = Math.cos(theta); + var sin = Math.sin(theta); + position.x = cos * x - sin * y + this.worldX; + position.y = sin * x + cos * y + this.worldY; + } + }; + SwirlEffect.prototype.end = function () { + }; + SwirlEffect.interpolation = new spine.PowOut(2); + return SwirlEffect; + }()); + spine.SwirlEffect = SwirlEffect; })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var AssetManager = (function (_super) { - __extends(AssetManager, _super); - function AssetManager(context, pathPrefix) { - if (pathPrefix === void 0) { pathPrefix = ""; } - return _super.call(this, function (image) { - return new spine.webgl.GLTexture(context, image); - }, pathPrefix) || this; - } - return AssetManager; - }(spine.AssetManager)); - webgl.AssetManager = AssetManager; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var AssetManager = (function (_super) { + __extends(AssetManager, _super); + function AssetManager(context, pathPrefix) { + if (pathPrefix === void 0) { pathPrefix = ""; } + return _super.call(this, function (image) { + return new spine.webgl.GLTexture(context, image); + }, pathPrefix) || this; + } + return AssetManager; + }(spine.AssetManager)); + webgl.AssetManager = AssetManager; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var OrthoCamera = (function () { - function OrthoCamera(viewportWidth, viewportHeight) { - this.position = new webgl.Vector3(0, 0, 0); - this.direction = new webgl.Vector3(0, 0, -1); - this.up = new webgl.Vector3(0, 1, 0); - this.near = 0; - this.far = 100; - this.zoom = 1; - this.viewportWidth = 0; - this.viewportHeight = 0; - this.projectionView = new webgl.Matrix4(); - this.inverseProjectionView = new webgl.Matrix4(); - this.projection = new webgl.Matrix4(); - this.view = new webgl.Matrix4(); - this.tmp = new webgl.Vector3(); - this.viewportWidth = viewportWidth; - this.viewportHeight = viewportHeight; - this.update(); - } - OrthoCamera.prototype.update = function () { - var projection = this.projection; - var view = this.view; - var projectionView = this.projectionView; - var inverseProjectionView = this.inverseProjectionView; - var zoom = this.zoom, viewportWidth = this.viewportWidth, viewportHeight = this.viewportHeight; - projection.ortho(zoom * (-viewportWidth / 2), zoom * (viewportWidth / 2), zoom * (-viewportHeight / 2), zoom * (viewportHeight / 2), this.near, this.far); - view.lookAt(this.position, this.direction, this.up); - projectionView.set(projection.values); - projectionView.multiply(view); - inverseProjectionView.set(projectionView.values).invert(); - }; - OrthoCamera.prototype.screenToWorld = function (screenCoords, screenWidth, screenHeight) { - var x = screenCoords.x, y = screenHeight - screenCoords.y - 1; - var tmp = this.tmp; - 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); - return screenCoords; - }; - OrthoCamera.prototype.setViewport = function (viewportWidth, viewportHeight) { - this.viewportWidth = viewportWidth; - this.viewportHeight = viewportHeight; - }; - return OrthoCamera; - }()); - webgl.OrthoCamera = OrthoCamera; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var OrthoCamera = (function () { + function OrthoCamera(viewportWidth, viewportHeight) { + this.position = new webgl.Vector3(0, 0, 0); + this.direction = new webgl.Vector3(0, 0, -1); + this.up = new webgl.Vector3(0, 1, 0); + this.near = 0; + this.far = 100; + this.zoom = 1; + this.viewportWidth = 0; + this.viewportHeight = 0; + this.projectionView = new webgl.Matrix4(); + this.inverseProjectionView = new webgl.Matrix4(); + this.projection = new webgl.Matrix4(); + this.view = new webgl.Matrix4(); + this.tmp = new webgl.Vector3(); + this.viewportWidth = viewportWidth; + this.viewportHeight = viewportHeight; + this.update(); + } + OrthoCamera.prototype.update = function () { + var projection = this.projection; + var view = this.view; + var projectionView = this.projectionView; + var inverseProjectionView = this.inverseProjectionView; + var zoom = this.zoom, viewportWidth = this.viewportWidth, viewportHeight = this.viewportHeight; + projection.ortho(zoom * (-viewportWidth / 2), zoom * (viewportWidth / 2), zoom * (-viewportHeight / 2), zoom * (viewportHeight / 2), this.near, this.far); + view.lookAt(this.position, this.direction, this.up); + projectionView.set(projection.values); + projectionView.multiply(view); + inverseProjectionView.set(projectionView.values).invert(); + }; + OrthoCamera.prototype.screenToWorld = function (screenCoords, screenWidth, screenHeight) { + var x = screenCoords.x, y = screenHeight - screenCoords.y - 1; + var tmp = this.tmp; + 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); + return screenCoords; + }; + OrthoCamera.prototype.setViewport = function (viewportWidth, viewportHeight) { + this.viewportWidth = viewportWidth; + this.viewportHeight = viewportHeight; + }; + return OrthoCamera; + }()); + webgl.OrthoCamera = OrthoCamera; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var GLTexture = (function (_super) { - __extends(GLTexture, _super); - function GLTexture(context, image, useMipMaps) { - if (useMipMaps === void 0) { useMipMaps = false; } - var _this = _super.call(this, image) || this; - _this.texture = null; - _this.boundUnit = 0; - _this.useMipMaps = false; - _this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - _this.useMipMaps = useMipMaps; - _this.restore(); - _this.context.addRestorable(_this); - return _this; - } - GLTexture.prototype.setFilters = function (minFilter, magFilter) { - var gl = this.context.gl; - this.bind(); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, GLTexture.validateMagFilter(magFilter)); - }; - GLTexture.validateMagFilter = function (magFilter) { - switch (magFilter) { - case spine.TextureFilter.MipMap: - case spine.TextureFilter.MipMapLinearLinear: - case spine.TextureFilter.MipMapLinearNearest: - case spine.TextureFilter.MipMapNearestLinear: - case spine.TextureFilter.MipMapNearestNearest: - return spine.TextureFilter.Linear; - default: - return magFilter; - } - }; - GLTexture.prototype.setWraps = function (uWrap, vWrap) { - var gl = this.context.gl; - this.bind(); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, uWrap); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, vWrap); - }; - GLTexture.prototype.update = function (useMipMaps) { - var gl = this.context.gl; - if (!this.texture) { - this.texture = this.context.gl.createTexture(); - } - this.bind(); - if (GLTexture.DISABLE_UNPACK_PREMULTIPLIED_ALPHA_WEBGL) - gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false); - gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._image); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, useMipMaps ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); - if (useMipMaps) - gl.generateMipmap(gl.TEXTURE_2D); - }; - GLTexture.prototype.restore = function () { - this.texture = null; - this.update(this.useMipMaps); - }; - GLTexture.prototype.bind = function (unit) { - if (unit === void 0) { unit = 0; } - var gl = this.context.gl; - this.boundUnit = unit; - gl.activeTexture(gl.TEXTURE0 + unit); - gl.bindTexture(gl.TEXTURE_2D, this.texture); - }; - GLTexture.prototype.unbind = function () { - var gl = this.context.gl; - gl.activeTexture(gl.TEXTURE0 + this.boundUnit); - gl.bindTexture(gl.TEXTURE_2D, null); - }; - GLTexture.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - gl.deleteTexture(this.texture); - }; - GLTexture.DISABLE_UNPACK_PREMULTIPLIED_ALPHA_WEBGL = false; - return GLTexture; - }(spine.Texture)); - webgl.GLTexture = GLTexture; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var GLTexture = (function (_super) { + __extends(GLTexture, _super); + function GLTexture(context, image, useMipMaps) { + if (useMipMaps === void 0) { useMipMaps = false; } + var _this = _super.call(this, image) || this; + _this.texture = null; + _this.boundUnit = 0; + _this.useMipMaps = false; + _this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + _this.useMipMaps = useMipMaps; + _this.restore(); + _this.context.addRestorable(_this); + return _this; + } + GLTexture.prototype.setFilters = function (minFilter, magFilter) { + var gl = this.context.gl; + this.bind(); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, GLTexture.validateMagFilter(magFilter)); + }; + GLTexture.validateMagFilter = function (magFilter) { + switch (magFilter) { + case spine.TextureFilter.MipMap: + case spine.TextureFilter.MipMapLinearLinear: + case spine.TextureFilter.MipMapLinearNearest: + case spine.TextureFilter.MipMapNearestLinear: + case spine.TextureFilter.MipMapNearestNearest: + return spine.TextureFilter.Linear; + default: + return magFilter; + } + }; + GLTexture.prototype.setWraps = function (uWrap, vWrap) { + var gl = this.context.gl; + this.bind(); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, uWrap); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, vWrap); + }; + GLTexture.prototype.update = function (useMipMaps) { + var gl = this.context.gl; + if (!this.texture) { + this.texture = this.context.gl.createTexture(); + } + this.bind(); + if (GLTexture.DISABLE_UNPACK_PREMULTIPLIED_ALPHA_WEBGL) + gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false); + gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._image); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, useMipMaps ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); + if (useMipMaps) + gl.generateMipmap(gl.TEXTURE_2D); + }; + GLTexture.prototype.restore = function () { + this.texture = null; + this.update(this.useMipMaps); + }; + GLTexture.prototype.bind = function (unit) { + if (unit === void 0) { unit = 0; } + var gl = this.context.gl; + this.boundUnit = unit; + gl.activeTexture(gl.TEXTURE0 + unit); + gl.bindTexture(gl.TEXTURE_2D, this.texture); + }; + GLTexture.prototype.unbind = function () { + var gl = this.context.gl; + gl.activeTexture(gl.TEXTURE0 + this.boundUnit); + gl.bindTexture(gl.TEXTURE_2D, null); + }; + GLTexture.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + gl.deleteTexture(this.texture); + }; + GLTexture.DISABLE_UNPACK_PREMULTIPLIED_ALPHA_WEBGL = false; + return GLTexture; + }(spine.Texture)); + webgl.GLTexture = GLTexture; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Input = (function () { - function Input(element) { - this.lastX = 0; - this.lastY = 0; - this.buttonDown = false; - this.currTouch = null; - this.touchesPool = new spine.Pool(function () { - return new spine.webgl.Touch(0, 0, 0); - }); - this.listeners = new Array(); - this.element = element; - this.setupCallbacks(element); - } - Input.prototype.setupCallbacks = function (element) { - var _this = this; - var mouseDown = function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - if (listeners[i].down) - listeners[i].down(x, y); - } - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = true; - document.addEventListener("mousemove", mouseMove); - document.addEventListener("mouseup", mouseUp); - } - }; - var mouseMove = function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - if (_this.buttonDown) { - if (listeners[i].dragged) - listeners[i].dragged(x, y); - } - else { - if (listeners[i].moved) - listeners[i].moved(x, y); - } - } - _this.lastX = x; - _this.lastY = y; - } - }; - var mouseUp = function (ev) { - if (ev instanceof MouseEvent) { - var rect = element.getBoundingClientRect(); - var x = ev.clientX - rect.left; - var y = ev.clientY - rect.top; - var listeners = _this.listeners; - for (var i = 0; i < listeners.length; i++) { - if (listeners[i].up) - listeners[i].up(x, y); - } - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - document.removeEventListener("mousemove", mouseMove); - document.removeEventListener("mouseup", mouseUp); - } - }; - element.addEventListener("mousedown", mouseDown, true); - element.addEventListener("mousemove", mouseMove, true); - element.addEventListener("mouseup", mouseUp, true); - element.addEventListener("touchstart", function (ev) { - if (_this.currTouch != null) - return; - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - var rect = element.getBoundingClientRect(); - var x = touch.clientX - rect.left; - var y = touch.clientY - rect.top; - _this.currTouch = _this.touchesPool.obtain(); - _this.currTouch.identifier = touch.identifier; - _this.currTouch.x = x; - _this.currTouch.y = y; - break; - } - var listeners = _this.listeners; - for (var i_17 = 0; i_17 < listeners.length; i_17++) { - if (listeners[i_17].down) - listeners[i_17].down(_this.currTouch.x, _this.currTouch.y); - } - _this.lastX = _this.currTouch.x; - _this.lastY = _this.currTouch.y; - _this.buttonDown = true; - ev.preventDefault(); - }, false); - element.addEventListener("touchend", function (ev) { - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = _this.currTouch.x = touch.clientX - rect.left; - var y = _this.currTouch.y = touch.clientY - rect.top; - _this.touchesPool.free(_this.currTouch); - var listeners = _this.listeners; - for (var i_18 = 0; i_18 < listeners.length; i_18++) { - if (listeners[i_18].up) - listeners[i_18].up(x, y); - } - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - _this.currTouch = null; - break; - } - } - ev.preventDefault(); - }, false); - element.addEventListener("touchcancel", function (ev) { - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = _this.currTouch.x = touch.clientX - rect.left; - var y = _this.currTouch.y = touch.clientY - rect.top; - _this.touchesPool.free(_this.currTouch); - var listeners = _this.listeners; - for (var i_19 = 0; i_19 < listeners.length; i_19++) { - if (listeners[i_19].up) - listeners[i_19].up(x, y); - } - _this.lastX = x; - _this.lastY = y; - _this.buttonDown = false; - _this.currTouch = null; - break; - } - } - ev.preventDefault(); - }, false); - element.addEventListener("touchmove", function (ev) { - if (_this.currTouch == null) - return; - var touches = ev.changedTouches; - for (var i = 0; i < touches.length; i++) { - var touch = touches[i]; - if (_this.currTouch.identifier === touch.identifier) { - var rect = element.getBoundingClientRect(); - var x = touch.clientX - rect.left; - var y = touch.clientY - rect.top; - var listeners = _this.listeners; - for (var i_20 = 0; i_20 < listeners.length; i_20++) { - if (listeners[i_20].dragged) - listeners[i_20].dragged(x, y); - } - _this.lastX = _this.currTouch.x = x; - _this.lastY = _this.currTouch.y = y; - break; - } - } - ev.preventDefault(); - }, false); - }; - Input.prototype.addListener = function (listener) { - this.listeners.push(listener); - }; - Input.prototype.removeListener = function (listener) { - var idx = this.listeners.indexOf(listener); - if (idx > -1) { - this.listeners.splice(idx, 1); - } - }; - return Input; - }()); - webgl.Input = Input; - var Touch = (function () { - function Touch(identifier, x, y) { - this.identifier = identifier; - this.x = x; - this.y = y; - } - return Touch; - }()); - webgl.Touch = Touch; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Input = (function () { + function Input(element) { + this.lastX = 0; + this.lastY = 0; + this.buttonDown = false; + this.currTouch = null; + this.touchesPool = new spine.Pool(function () { + return new spine.webgl.Touch(0, 0, 0); + }); + this.listeners = new Array(); + this.element = element; + this.setupCallbacks(element); + } + Input.prototype.setupCallbacks = function (element) { + var _this = this; + var mouseDown = function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + if (listeners[i].down) + listeners[i].down(x, y); + } + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = true; + document.addEventListener("mousemove", mouseMove); + document.addEventListener("mouseup", mouseUp); + } + }; + var mouseMove = function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + if (_this.buttonDown) { + if (listeners[i].dragged) + listeners[i].dragged(x, y); + } + else { + if (listeners[i].moved) + listeners[i].moved(x, y); + } + } + _this.lastX = x; + _this.lastY = y; + } + }; + var mouseUp = function (ev) { + if (ev instanceof MouseEvent) { + var rect = element.getBoundingClientRect(); + var x = ev.clientX - rect.left; + var y = ev.clientY - rect.top; + var listeners = _this.listeners; + for (var i = 0; i < listeners.length; i++) { + if (listeners[i].up) + listeners[i].up(x, y); + } + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + document.removeEventListener("mousemove", mouseMove); + document.removeEventListener("mouseup", mouseUp); + } + }; + element.addEventListener("mousedown", mouseDown, true); + element.addEventListener("mousemove", mouseMove, true); + element.addEventListener("mouseup", mouseUp, true); + element.addEventListener("touchstart", function (ev) { + if (_this.currTouch != null) + return; + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + var rect = element.getBoundingClientRect(); + var x = touch.clientX - rect.left; + var y = touch.clientY - rect.top; + _this.currTouch = _this.touchesPool.obtain(); + _this.currTouch.identifier = touch.identifier; + _this.currTouch.x = x; + _this.currTouch.y = y; + break; + } + var listeners = _this.listeners; + for (var i_17 = 0; i_17 < listeners.length; i_17++) { + if (listeners[i_17].down) + listeners[i_17].down(_this.currTouch.x, _this.currTouch.y); + } + _this.lastX = _this.currTouch.x; + _this.lastY = _this.currTouch.y; + _this.buttonDown = true; + ev.preventDefault(); + }, false); + element.addEventListener("touchend", function (ev) { + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = _this.currTouch.x = touch.clientX - rect.left; + var y = _this.currTouch.y = touch.clientY - rect.top; + _this.touchesPool.free(_this.currTouch); + var listeners = _this.listeners; + for (var i_18 = 0; i_18 < listeners.length; i_18++) { + if (listeners[i_18].up) + listeners[i_18].up(x, y); + } + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + _this.currTouch = null; + break; + } + } + ev.preventDefault(); + }, false); + element.addEventListener("touchcancel", function (ev) { + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = _this.currTouch.x = touch.clientX - rect.left; + var y = _this.currTouch.y = touch.clientY - rect.top; + _this.touchesPool.free(_this.currTouch); + var listeners = _this.listeners; + for (var i_19 = 0; i_19 < listeners.length; i_19++) { + if (listeners[i_19].up) + listeners[i_19].up(x, y); + } + _this.lastX = x; + _this.lastY = y; + _this.buttonDown = false; + _this.currTouch = null; + break; + } + } + ev.preventDefault(); + }, false); + element.addEventListener("touchmove", function (ev) { + if (_this.currTouch == null) + return; + var touches = ev.changedTouches; + for (var i = 0; i < touches.length; i++) { + var touch = touches[i]; + if (_this.currTouch.identifier === touch.identifier) { + var rect = element.getBoundingClientRect(); + var x = touch.clientX - rect.left; + var y = touch.clientY - rect.top; + var listeners = _this.listeners; + for (var i_20 = 0; i_20 < listeners.length; i_20++) { + if (listeners[i_20].dragged) + listeners[i_20].dragged(x, y); + } + _this.lastX = _this.currTouch.x = x; + _this.lastY = _this.currTouch.y = y; + break; + } + } + ev.preventDefault(); + }, false); + }; + Input.prototype.addListener = function (listener) { + this.listeners.push(listener); + }; + Input.prototype.removeListener = function (listener) { + var idx = this.listeners.indexOf(listener); + if (idx > -1) { + this.listeners.splice(idx, 1); + } + }; + return Input; + }()); + webgl.Input = Input; + var Touch = (function () { + function Touch(identifier, x, y) { + this.identifier = identifier; + this.x = x; + this.y = y; + } + return Touch; + }()); + webgl.Touch = Touch; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var LoadingScreen = (function () { - function LoadingScreen(renderer) { - this.logo = null; - this.spinner = null; - this.angle = 0; - this.fadeOut = 0; - this.timeKeeper = new spine.TimeKeeper(); - this.backgroundColor = new spine.Color(0.135, 0.135, 0.135, 1); - this.tempColor = new spine.Color(); - this.firstDraw = 0; - this.renderer = renderer; - this.timeKeeper.maxDelta = 9; - if (LoadingScreen.logoImg === null) { - var isSafari = navigator.userAgent.indexOf("Safari") > -1; - LoadingScreen.logoImg = new Image(); - LoadingScreen.logoImg.src = LoadingScreen.SPINE_LOGO_DATA; - if (!isSafari) - LoadingScreen.logoImg.crossOrigin = "anonymous"; - LoadingScreen.logoImg.onload = function (ev) { - LoadingScreen.loaded++; - }; - LoadingScreen.spinnerImg = new Image(); - LoadingScreen.spinnerImg.src = LoadingScreen.SPINNER_DATA; - if (!isSafari) - LoadingScreen.spinnerImg.crossOrigin = "anonymous"; - LoadingScreen.spinnerImg.onload = function (ev) { - LoadingScreen.loaded++; - }; - } - } - LoadingScreen.prototype.draw = function (complete) { - if (complete === void 0) { complete = false; } - if (complete && this.fadeOut > LoadingScreen.FADE_SECONDS) - return; - this.timeKeeper.update(); - var a = Math.abs(Math.sin(this.timeKeeper.totalTime + 0.75)); - this.angle -= this.timeKeeper.delta / 1.4 * 360 * (1 + 1.5 * Math.pow(a, 5)); - var renderer = this.renderer; - var canvas = renderer.canvas; - var gl = renderer.context.gl; - renderer.resize(webgl.ResizeMode.Stretch); - var oldX = renderer.camera.position.x, oldY = renderer.camera.position.y; - renderer.camera.position.set(canvas.width / 2, canvas.height / 2, 0); - renderer.camera.viewportWidth = canvas.width; - renderer.camera.viewportHeight = canvas.height; - if (!complete) { - gl.clearColor(this.backgroundColor.r, this.backgroundColor.g, this.backgroundColor.b, this.backgroundColor.a); - gl.clear(gl.COLOR_BUFFER_BIT); - this.tempColor.a = 1; - } - else { - this.fadeOut += this.timeKeeper.delta * (this.timeKeeper.totalTime < 1 ? 2 : 1); - if (this.fadeOut > LoadingScreen.FADE_SECONDS) { - renderer.camera.position.set(oldX, oldY, 0); - return; - } - a = 1 - this.fadeOut / LoadingScreen.FADE_SECONDS; - this.tempColor.setFromColor(this.backgroundColor); - this.tempColor.a = 1 - (a - 1) * (a - 1); - renderer.begin(); - renderer.quad(true, 0, 0, canvas.width, 0, canvas.width, canvas.height, 0, canvas.height, this.tempColor, this.tempColor, this.tempColor, this.tempColor); - renderer.end(); - } - this.tempColor.set(1, 1, 1, this.tempColor.a); - if (LoadingScreen.loaded != 2) - return; - if (this.logo === null) { - this.logo = new webgl.GLTexture(renderer.context, LoadingScreen.logoImg); - this.spinner = new webgl.GLTexture(renderer.context, LoadingScreen.spinnerImg); - } - this.logo.update(false); - this.spinner.update(false); - var logoWidth = this.logo.getImage().width; - var logoHeight = this.logo.getImage().height; - var spinnerWidth = this.spinner.getImage().width; - var spinnerHeight = this.spinner.getImage().height; - renderer.batcher.setBlendMode(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); - renderer.begin(); - renderer.drawTexture(this.logo, (canvas.width - logoWidth) / 2, (canvas.height - logoHeight) / 2, logoWidth, logoHeight, this.tempColor); - renderer.drawTextureRotated(this.spinner, (canvas.width - spinnerWidth) / 2, (canvas.height - spinnerHeight) / 2, spinnerWidth, spinnerHeight, spinnerWidth / 2, spinnerHeight / 2, this.angle, this.tempColor); - renderer.end(); - renderer.camera.position.set(oldX, oldY, 0); - }; - LoadingScreen.FADE_SECONDS = 1; - LoadingScreen.loaded = 0; - LoadingScreen.spinnerImg = null; - LoadingScreen.logoImg = null; - LoadingScreen.SPINNER_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKMAAACjCAYAAADmbK6AAAAACXBIWXMAAAsTAAALEwEAmpwYAAALB2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTYtMDktMDhUMTQ6MjU6MTIrMDI6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTgtMTEtMTVUMTY6NDA6NTkrMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE4LTExLTE1VDE2OjQwOjU5KzAxOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpmZDhlNTljMC02NGJjLTIxNGQtODAyZi1jZDlhODJjM2ZjMGMiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpmYmNmZWJlYS03MjY2LWE0NGQtOTI4NS0wOTJmNGNhYzk4ZWEiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowODMzNWIyYy04NzYyLWQzNGMtOTBhOS02ODJjYjJmYTQ2M2UiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiBleGlmOkNvbG9yU3BhY2U9IjY1NTM1IiBleGlmOlBpeGVsWERpbWVuc2lvbj0iMjk3IiBleGlmOlBpeGVsWURpbWVuc2lvbj0iMjQyIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowODMzNWIyYy04NzYyLWQzNGMtOTBhOS02ODJjYjJmYTQ2M2UiIHN0RXZ0OndoZW49IjIwMTYtMDktMDhUMTQ6MjU6MTIrMDI6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiNThlMTlkNi0xYTRjLTQyNDEtODU0ZC01MDVlZjYxMjRhODQiIHN0RXZ0OndoZW49IjIwMTgtMTEtMTVUMTY6NDA6MjMrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ3YzYzYzIwLWJkYjgtYzM0YS1hYzMyLWQ5MDdjOWEyOTA0MCIgc3RFdnQ6d2hlbj0iMjAxOC0xMS0xNVQxNjo0MDo1OSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQgZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZmQ4ZTU5YzAtNjRiYy0yMTRkLTgwMmYtY2Q5YTgyYzNmYzBjIiBzdEV2dDp3aGVuPSIyMDE4LTExLTE1VDE2OjQwOjU5KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0N2M2M2MyMC1iZGI4LWMzNGEtYWMzMi1kOTA3YzlhMjkwNDAiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo2OWRmZjljYy01YzFiLWE5NDctOTc3OS03ODgxZjM0ODk3MDMiIHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowODMzNWIyYy04NzYyLWQzNGMtOTBhOS02ODJjYjJmYTQ2M2UiLz4gPHBob3Rvc2hvcDpEb2N1bWVudEFu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"; - LoadingScreen.SPINE_LOGO_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKUAAABsCAYAAAALzHKmAAAACXBIWXMAAAsTAAALEwEAmpwYAAALB2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTYtMDktMDhUMTQ6MjU6MTIrMDI6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTgtMTEtMTVUMTY6NDA6NTkrMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE4LTExLTE1VDE2OjQwOjU5KzAxOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMTdhZGQ3Ni04OTZlLThlNGUtYmM5MS00ZjEyNjI1YjA3MjgiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDplMTViNGE2ZS1hMDg3LWEzNDktODdhOS1mNDYzYjE2MzQ0Y2MiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowODMzNWIyYy04NzYyLWQzNGMtOTBhOS02ODJjYjJmYTQ2M2UiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiBleGlmOkNvbG9yU3BhY2U9IjY1NTM1IiBleGlmOlBpeGVsWERpbWVuc2lvbj0iMjk3IiBleGlmOlBpeGVsWURpbWVuc2lvbj0iMjQyIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowODMzNWIyYy04NzYyLWQzNGMtOTBhOS02ODJjYjJmYTQ2M2UiIHN0RXZ0OndoZW49IjIwMTYtMDktMDhUMTQ6MjU6MTIrMDI6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiNThlMTlkNi0xYTRjLTQyNDEtODU0ZC01MDVlZjYxMjRhODQiIHN0RXZ0OndoZW49IjIwMTgtMTEtMTVUMTY6NDA6MjMrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjJlNjJiMWM2LWIxYzQtNDk0MC04MDMxLWU4ZDkyNTBmODJjNSIgc3RFdnQ6d2hlbj0iMjAxOC0xMS0xNVQxNjo0MDo1OSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQgZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDE3YWRkNzYtODk2ZS04ZTRlLWJjOTEtNGYxMjYyNWIwNzI4IiBzdEV2dDp3aGVuPSIyMDE4LTExLTE1VDE2OjQwOjU5KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyZTYyYjFjNi1iMWM0LTQ5NDAtODAzMS1lOGQ5MjUwZjgyYzUiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo2OWRmZjljYy01YzFiLWE5NDctOTc3OS03ODgxZjM0ODk3MDMiIHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowODMzNWIyYy04NzYyLWQzNGMtOTBhOS02ODJjYjJmYTQ2M2UiLz4gPHBob3Rvc2hvcDpEb2N1bWVudEFu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"; - return LoadingScreen; - }()); - webgl.LoadingScreen = LoadingScreen; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var LoadingScreen = (function () { + function LoadingScreen(renderer) { + this.logo = null; + this.spinner = null; + this.angle = 0; + this.fadeOut = 0; + this.timeKeeper = new spine.TimeKeeper(); + this.backgroundColor = new spine.Color(0.135, 0.135, 0.135, 1); + this.tempColor = new spine.Color(); + this.firstDraw = 0; + this.renderer = renderer; + this.timeKeeper.maxDelta = 9; + if (LoadingScreen.logoImg === null) { + var isSafari = navigator.userAgent.indexOf("Safari") > -1; + LoadingScreen.logoImg = new Image(); + LoadingScreen.logoImg.src = LoadingScreen.SPINE_LOGO_DATA; + if (!isSafari) + LoadingScreen.logoImg.crossOrigin = "anonymous"; + LoadingScreen.logoImg.onload = function (ev) { + LoadingScreen.loaded++; + }; + LoadingScreen.spinnerImg = new Image(); + LoadingScreen.spinnerImg.src = LoadingScreen.SPINNER_DATA; + if (!isSafari) + LoadingScreen.spinnerImg.crossOrigin = "anonymous"; + LoadingScreen.spinnerImg.onload = function (ev) { + LoadingScreen.loaded++; + }; + } + } + LoadingScreen.prototype.draw = function (complete) { + if (complete === void 0) { complete = false; } + if (complete && this.fadeOut > LoadingScreen.FADE_SECONDS) + return; + this.timeKeeper.update(); + var a = Math.abs(Math.sin(this.timeKeeper.totalTime + 0.75)); + this.angle -= this.timeKeeper.delta / 1.4 * 360 * (1 + 1.5 * Math.pow(a, 5)); + var renderer = this.renderer; + var canvas = renderer.canvas; + var gl = renderer.context.gl; + renderer.resize(webgl.ResizeMode.Stretch); + var oldX = renderer.camera.position.x, oldY = renderer.camera.position.y; + renderer.camera.position.set(canvas.width / 2, canvas.height / 2, 0); + renderer.camera.viewportWidth = canvas.width; + renderer.camera.viewportHeight = canvas.height; + if (!complete) { + gl.clearColor(this.backgroundColor.r, this.backgroundColor.g, this.backgroundColor.b, this.backgroundColor.a); + gl.clear(gl.COLOR_BUFFER_BIT); + this.tempColor.a = 1; + } + else { + this.fadeOut += this.timeKeeper.delta * (this.timeKeeper.totalTime < 1 ? 2 : 1); + if (this.fadeOut > LoadingScreen.FADE_SECONDS) { + renderer.camera.position.set(oldX, oldY, 0); + return; + } + a = 1 - this.fadeOut / LoadingScreen.FADE_SECONDS; + this.tempColor.setFromColor(this.backgroundColor); + this.tempColor.a = 1 - (a - 1) * (a - 1); + renderer.begin(); + renderer.quad(true, 0, 0, canvas.width, 0, canvas.width, canvas.height, 0, canvas.height, this.tempColor, this.tempColor, this.tempColor, this.tempColor); + renderer.end(); + } + this.tempColor.set(1, 1, 1, this.tempColor.a); + if (LoadingScreen.loaded != 2) + return; + if (this.logo === null) { + this.logo = new webgl.GLTexture(renderer.context, LoadingScreen.logoImg); + this.spinner = new webgl.GLTexture(renderer.context, LoadingScreen.spinnerImg); + } + this.logo.update(false); + this.spinner.update(false); + var logoWidth = this.logo.getImage().width; + var logoHeight = this.logo.getImage().height; + var spinnerWidth = this.spinner.getImage().width; + var spinnerHeight = this.spinner.getImage().height; + renderer.batcher.setBlendMode(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); + renderer.begin(); + renderer.drawTexture(this.logo, (canvas.width - logoWidth) / 2, (canvas.height - logoHeight) / 2, logoWidth, logoHeight, this.tempColor); + renderer.drawTextureRotated(this.spinner, (canvas.width - spinnerWidth) / 2, (canvas.height - spinnerHeight) / 2, spinnerWidth, spinnerHeight, spinnerWidth / 2, spinnerHeight / 2, this.angle, this.tempColor); + renderer.end(); + renderer.camera.position.set(oldX, oldY, 0); + }; + LoadingScreen.FADE_SECONDS = 1; + LoadingScreen.loaded = 0; + LoadingScreen.spinnerImg = null; + LoadingScreen.logoImg = null; + LoadingScreen.SPINNER_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKMAAACjCAYAAADmbK6AAAAACXBIWXMAAAsTAAALEwEAmpwYAAALB2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTYtMDktMDhUMTQ6MjU6MTIrMDI6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTgtMTEtMTVUMTY6NDA6NTkrMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE4LTExLTE1VDE2OjQwOjU5KzAxOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpmZDhlNTljMC02NGJjLTIxNGQtODAyZi1jZDlhODJjM2ZjMGMiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpmYmNmZWJlYS03MjY2LWE0NGQtOTI4NS0wOTJmNGNhYzk4ZWEiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowODMzNWIyYy04NzYyLWQzNGMtOTBhOS02ODJjYjJmYTQ2M2UiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiBleGlmOkNvbG9yU3BhY2U9IjY1NTM1IiBleGlmOlBpeGVsWERpbWVuc2lvbj0iMjk3IiBleGlmOlBpeGVsWURpbWVuc2lvbj0iMjQyIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowODMzNWIyYy04NzYyLWQzNGMtOTBhOS02ODJjYjJmYTQ2M2UiIHN0RXZ0OndoZW49IjIwMTYtMDktMDhUMTQ6MjU6MTIrMDI6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiNThlMTlkNi0xYTRjLTQyNDEtODU0ZC01MDVlZjYxMjRhODQiIHN0RXZ0OndoZW49IjIwMTgtMTEtMTVUMTY6NDA6MjMrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ3YzYzYzIwLWJkYjgtYzM0YS1hYzMyLWQ5MDdjOWEyOTA0MCIgc3RFdnQ6d2hlbj0iMjAxOC0xMS0xNVQxNjo0MDo1OSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQgZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZmQ4ZTU5YzAtNjRiYy0yMTRkLTgwMmYtY2Q5YTgyYzNmYzBjIiBzdEV2dDp3aGVuPSIyMDE4LTExLTE1VDE2OjQwOjU5KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0N2M2M2MyMC1iZGI4LWMzNGEtYWMzMi1kOTA3YzlhMjkwNDAiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo2OWRmZjljYy01YzFiLWE5NDctOTc3OS03ODgxZjM0ODk3MDMiIHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowODMzNWIyYy04NzYyLWQzNGMtOTBhOS02ODJjYjJmYTQ2M2UiLz4gPHBob3Rvc2hvcDpEb2N1bWVudEFu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"; + LoadingScreen.SPINE_LOGO_DATA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKUAAABsCAYAAAALzHKmAAAACXBIWXMAAAsTAAALEwEAmpwYAAALB2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTYtMDktMDhUMTQ6MjU6MTIrMDI6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTgtMTEtMTVUMTY6NDA6NTkrMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE4LTExLTE1VDE2OjQwOjU5KzAxOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMTdhZGQ3Ni04OTZlLThlNGUtYmM5MS00ZjEyNjI1YjA3MjgiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDplMTViNGE2ZS1hMDg3LWEzNDktODdhOS1mNDYzYjE2MzQ0Y2MiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowODMzNWIyYy04NzYyLWQzNGMtOTBhOS02ODJjYjJmYTQ2M2UiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiBleGlmOkNvbG9yU3BhY2U9IjY1NTM1IiBleGlmOlBpeGVsWERpbWVuc2lvbj0iMjk3IiBleGlmOlBpeGVsWURpbWVuc2lvbj0iMjQyIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowODMzNWIyYy04NzYyLWQzNGMtOTBhOS02ODJjYjJmYTQ2M2UiIHN0RXZ0OndoZW49IjIwMTYtMDktMDhUMTQ6MjU6MTIrMDI6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiNThlMTlkNi0xYTRjLTQyNDEtODU0ZC01MDVlZjYxMjRhODQiIHN0RXZ0OndoZW49IjIwMTgtMTEtMTVUMTY6NDA6MjMrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjJlNjJiMWM2LWIxYzQtNDk0MC04MDMxLWU4ZDkyNTBmODJjNSIgc3RFdnQ6d2hlbj0iMjAxOC0xMS0xNVQxNjo0MDo1OSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQgZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDE3YWRkNzYtODk2ZS04ZTRlLWJjOTEtNGYxMjYyNWIwNzI4IiBzdEV2dDp3aGVuPSIyMDE4LTExLTE1VDE2OjQwOjU5KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyZTYyYjFjNi1iMWM0LTQ5NDAtODAzMS1lOGQ5MjUwZjgyYzUiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo2OWRmZjljYy01YzFiLWE5NDctOTc3OS03ODgxZjM0ODk3MDMiIHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowODMzNWIyYy04NzYyLWQzNGMtOTBhOS02ODJjYjJmYTQ2M2UiLz4gPHBob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4gPHJkZjpCYWc+IDxyZGY6bGk+eG1wLmRpZDowODMzNWIyYy04NzYyLWQzNGMtOTBhOS02ODJjYjJmYTQ2M2U8L3JkZjpsaT4gPC9yZGY6QmFnPiA8L3Bob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5ayrctAAATYUlEQVR42u2dfVQV553Hv88AXq5uAAlJ0CBem912jQh60kZ8y0tdC5soJnoaXzC4Tdz4cjya1GN206Zqsu3Jpm6yeM5uTG3iaYGoJNFdEY3GaFGD0p4mqS9AXpoV0OZFUOHS3usFuc/+Idde8M7M8zr3gsw5HOCZZ2aemecz39/LPPMMMLAMLDG2kIFzjqmFDiDZP6AkN3gf0gEob8x2kj4MCx2AMnbb1BcVld6IwJJ+0oYb2YTT/gYq6WPHJP3gmtA+Biztr1CSKLevLytprCkh7ctQkj4KsK590hiGlsbSOcVCR5I+BC7pA6BEAzQaq1DqhFFH3Vg16TSG4KHRgNPpyFd1XdIHAyrdCkhjADgaTSiJw/VIP1BSp6GhUQSOOgmlkzASxSqq2zpQB+ClGiGlUb65tAUZOmDUAa5u5XRSgajibVRCR3VCSRyoQwSBE/EvYy3YkYGESuwrpuAkDgPJCg4RhFVUNUkMw6hK6agDcFInoSQxAqNqWHVdD6fUhQqUsfiaVCN41IlOUBEx88JIJCCU8T+tttOR6pEFUgRQXoCVrydRAJJw/G+2jig6llN+p0wnsZpYXsAoxzGognYzryeagBRRR8L5t4iCRsvflDHnIopINcCpGkzlUOoCkqWcKABdlznXZa5lTK7Z/6zlvMeXXqdTCVWoI696ygZN0YZSp/KxQCijmiJgUp3gyQBpVy4Kq4gPqhpWlQrCCxgPeLz70wqmyqcksgELS5kKQEWCIBn1FEn7qFBKKgmnajCloZQtlwWSZR0PoCJBkJMDMnT4iSxlsQCmFJQidVUASQS3ZSlXadqhWDVkTCoLiDKw8t40XOU6oFQBJMtvkSBJ1ITLqKaOgIbVF+y9jd3/omAqVUtViigTTfMAyKqqKnxOlWZcFEzVZjrSb11gaodSRiVVAikCo4hKyjzpkh3No8tf1AUmrxnXCmW0gSSCcIqki4hipbTqGNU+IwuMqsAUfSLVoywezi46gGSFU8Sk86bBKOd1oJzrwuuEQLIbBU8sfiPC37DYhuW8pEfex3NcQBUqyVrO+7edeZdNIfFCSi22oZwdSkzUk1jAaQcrGMA0O34kUJXAaAYl0aSMkRQMjODxAArGct6onPf68CgLbGCkNv4r4axrp4wwUUc7CAnDdkzXJ14SNFHVEQFNRjHtbg7ZoMfuOlHGDiG9/DPCCDgLjDBROFgon50ZV6mQ1/YVzwmgSniJhFryAMpybB4TLjJLRqTOZPUbZYIrwmiqZYC02lboXOIV0C3qm5nVZQGSSCiuaETOe5PygEg4AbXyM1lhJIxqqiWYUQklUaiShMGc2gFpBbDdcXl9StHXka38KVZ/i8V35DXzZibcClIWtRS90ZQpJa/ysZhtHiBV+pk8imm2TjTFwxsQWIHL42PaRd4iroW0ksZLKAFv5MoKbyQQVZl1mShc5LxYOo4Fxt4KyZPysXMhrOrwqKWyHGa8wiCHVSXtzDaxgYSA36xDEk4V5lvGpxRVIZb8pZ0Z571x7My6Up9S17SBhMGvjASfocCUi0TkvOaZMJh11vSPGVSEcT0s1JYyKKnu1BABQOMloeJ9ssMCg53phoKUkVDQs2MMcvNSsZICwfYufPZVB+o/86HxbAAXP/ah9Z2LuPSnAK5wqB1PLlIkmGEBkzVbwKuWolkE6ddXeYeb2akfEfwRTRnZRf89/r84Bf81NB73WtDQ+VUHKocfw1ob35J3QAXrYApq8X94edBmvVUZS9si/Qbr/wacWXgeN/LCCAHAQ+sNhvqhOiQOcNucZMKwQXh42XCkM95AELjZRFNjRCAPSxSmAbXlKXlNOlF0wj2WoqKi5Hnz5mdTGiQA8OCDDx4T6aiNGzeOufnmm5MBoKysrHbfvn3tVhf40hX8MSked1u1LUhx+e1mXGBIz1znC77xxtaJhmFQwzDo3LmPHBdJ6ezZs2cqIVf3UVt7unH16tWNsB4gwpItsPKdlSfTZd4EZH1MKKJkEX8WLfqnlPXr1/8oNTV1QQ8QgsG2pqamX+TkZG+OtP/y8jcn5efnb+nq6vKmpg7NfeONrZOmT5++3uVyZYTvp76+vjg3d8IWs2vy2DDcsunvUDrIQLrZBT3fgXduO4ZnrEx1aWlpbkHBrM0AkJyclFVZWZl3990TngpvT1dXl7e29vRLU6dOLTcxmT3+P3Hi5NLMzMwlhmEkh7fH7/cfraqqemHevLknTMy10yZci/mO2rR5GzZs2JaamrogGAy2Xbx4cWtTU9OLXq93r2EYyR6P52kLdQQAxMXFJR05cvSRGTNmvOZyuTJ8Pl+d1+utCa0fPXr0kydOnHzSzFRu+RLNM09j7qc+vHY5iIbe7Wu7gt8t+wwbGG9YAEBV1eHvT516z0uh9vj9/tpQW7Ozc54rL39zkt1Dh6+/Pl/h8XieNgwjORAInGpqanqxvb19TzAYbHO73VPz8vK2vfXW29kKUnuOLIZitYWFryjlq1RXV890uVxjAWD37oqFo0Z5fjR2bNYvRozIWLFx48b7zpw5s8EmqgYA5OTkrA8EAud2767452HD0ueOGJHxxLp16x7w+Xx1AODxeB5buXLlCDOf9d2L8H7rd3jFfQSzv/MBpjx7BrP/4yzmP1qP76W8j6U7m3HJzpoEg8Fr5ePHj1/n8/nqtmx5fe6wYemPpKffNreysnJxaP2999672sqi/eEPJ5YkJiZmAcDhw1WP3nrrLQVjx2Ztysi4ffmqVSunBAKBU4ZhJE+bNu1VDj81qosRZfVjyU0CABk6dGgmAHR2djYVFRWdCl+3du1Pzo0bl7PZDPxwCHw+X11R0aOPLFy4sCa0vrj4P8+9++7+jaE6P/jBY3NYgrTft8P3s0Y0rPkcn5R9jRaGtNR159zdnieeeuqpulBZYeGCmsbGxtcBwO12jzFT3Iceejh55MiRTwBAQ0PDzwsKCqrDj1NSUuL98MMPX+hW3pHvvXdwqoK+1jELs3KlVGHmbZPVgUBHGwAkJCRklpSUjBW9MB988PvXwwKaa3UWLVpUEwgEzgFAamrqnWYppZ+Owt8eHoeCfdmY/vYYTH43B9/76Nt4tP5uLHlrDCbyntd77x0oPnDggLd3nbNnz9aG/i4vf3NipG1XrFgxKeRD7tq1a2+k4+Tn570fDAbbAOD222/P5uwTJ9/41BJ9izaOKXVQXFxcWVxc/IxhGMmzZj20+5NPPn21vLx8+9q1Pzlrd/xwpWxtbfWawev3+//kcrkyUlJSJpi1618z8cs4guRIx/mmG34Aky2i0+si1bC29VgX1s4e7Q+vl5aWNiJUmJ2dnVlRUTGiWxUpAISi8M7OzqaQ66O4r7UM4HDyxTEpn+XXv/5V2/Tp/1CYn/+PryQkJGSmp6cvXbVq1dLFixdX19TUbJ49++Fjsvm1L774oqYbSMtcpOk6YrqOuwND6S7W/dx///0l6CdLfBQVkntZuHDhqfnz58/84Q9XP5iZmbkgMTExa8iQIZOnTZs2+fPP/2/7HXd8Y63uNrR04vitgzAt0rqvOnAADgyCjbScOXNmAyGEAoBhGNd+E4Jrqrl//77KGwlK6hSY27Zta922bdtWANsrKiomT5iQ+y+JiYlZaWlp83bs2LlvzpzZx0X3PXz48Nyr/utV3zLS8vgn+Onr3wK9ZRDuI93X7wpFW9Nl7J51GpsQpY+4jxuX8yqsHy9SxMAH5p1KCfGAq3R/BQUF1cuXLy8KOfKjRo3KipDQ7bGkpKQkmbXrpptuGg0AXq+33uyglRfQdtsxPJ15HJOL6pE/4xS+m3AY373jt3j59F/gtzn369oUUrXedQn5a3lYnR7n5fP5rvmdW7ZsyXKYHW1fVjMcbqjyLyjs2PF2W0dHx1nWHdx117cfz8vLS+q9r4MHD82Ji4tLAoDm5uY6WM/6gHMBdJZ+jfN7LqAVzn0cqceyb9871X/NZ9433+6GjCXwoqWUvJ1hCUFjY9O/19XVLSssLOwR+R469JsHQsnjy5cvtyHSY6swNRo8ePCdpaVl5WVlZbmhstLS0gnjx49fBVx9vPfssz/eEaFN17VrrQee34zDA59OwIrWKdjsvwf/uysL90TYhjKCyzPvOH3++efPtrS0bO+OxOedOHFyaaR9VldXz2hsbHpRQf9R8E05I8RFvNM+oY1Pavpik8vlykxJSSl85ZVNz7z00svvB4NBEhcXlxwG5OlJkyZuh/mLUSGTVzd48OA7Z84s+OX5883nuvd97Znz0aNH/u3gwYPeCBexRwDzq7/HXYvS8VrvE5mSjO8DOGzRCT0nc+oOTnp3bASzHrFD16xZs2HTpk1ZiYmJWR6P5+lLl1qXBAKBU6H1brd7Snh1sD2rjqqJNxw6sOzkobSqquoFv99/NHShhwwZMjkEZEtLy/Zly5YtMrubwzv40KFDL3/00UfPdXV1eV0uV0YIyEAgcK6iYtcTs2bN2m+iCD3KvuyAN1LDr1D8xSSwuFYW3p7m5mavHRQXLlxoM1FdunPnjtbly5cXNTQ0/DwYDLYZhpHsdrunhH6Aq4MyPv744yWM6kwZ1VFr7tDub7P/HR8lBIAUFRWlRBi2Fn6DXXec0CghAKisrFxcWLjgOABSVlY2MQRG92M+rhfHGnKxZmQiFgAgXRTeLzuwf+Vn+O//aUErg2ljnemMdZQOBUBLSkrGpqXdkhQCPz8/7wjYBveKjBLinenN1nIAoCpHnvNOEGD2zo0RATKrdbZvPJaXvzk5BOXevXsfnz9/Xg3jednlYsnEJAz5hhvuPRdwsfUKuhhUHzYdZjWvJAuwlBE8ltHoVnDa3UDCUKp8omM3QwPrdlb7sVuHSD5luLns/ttquhIzGCP6eMe9aD/uRTtnMAfoeSXCDkie9rGabuX+qFOPGSMFHdREgVjA6w0N7xt2PLNWUCur8ZwHnu8kYWTbFfiS4zHY3wX/nFr8llEZRGG0U1Fq4xebKR+PD6kN1mg80bEC1Awyq1dCbUG0UEpWv9sUrCcz8OOkePR4Xp79N7jr5J8RsIFSdo5yW//SQkV5VZIKmmKhaDxeEkKr90/AYM5Z1NIOFtuX4ktLS08TQhZRSklpaWkt+N+tNl28XfhjOJS+LtSf/DMuC4Aoo5i8QFKbDIFTSfbIT7M4Ah2WYEck+FH9Zh/AN+EVU6RtBuo3B2PQ1tGYlZYAT3sXvljXgMqdzWiTMN0qfEuegEVHlC38eq1IR7BOJgAOIKEATqt9mKWw7CJuFZPx83x+xA5Klq8+iAIJsL8kZrdOGso4zo5gnQhV9qsOVuMheYbYs3yvmmc9lagn+iUGarMPVsW0y5FSAUXXYuLjBXZMBLdhmU02UtBjFQzx+ps850EtoLfzpbnVgUN5VOQxWdVR9MtmUiki1Skhq3wiTIBkgRMCKR/CWM6bV+W581kHL7DkMXk+1sQKJK9VcWQEEq/5FjXhIsGF7Ddt7MDhufAqTBYFlHzuWORLYpRBSXnNtowvKaWULDN42W3D+hkNMOQhAfNEN8/stay5U5nv3/AGPLI5TFa/kgrUlb05uW7gOEF1UqWWdhOk8kS9Ks0uT3BDGbbn8Sl54VTla1qZZ542Sy9xnGkgcAAkOoMukQBT1L+TMfci7gGvOecxsSzmXTaYYTk/nuvODSVLmchH5cH5t+hMuyyjuFmdedFXGyij/waoiXhlHlOyHgsMbY5q9G3le/LOu83ywSHRNBXLY1GRtA9vwMPaqU59wVZFG6DoWkkppajS8XyHW8V3t4lEekP09VS7kTp2Ebmsvyli0kWyBSqsyHVlcYIAyviWsmASThhVBjY84wtZ9suaK5RJy4iaaNa8pVKVNINSRi11gSkSheu4o82UkAVmnhymKIgi0TnA/8hRNPKmqqHkVUsnwBR91Meqjiocd5ZASgQKFT4nT1DDA6TUdSOaymXAFEkniZp7FSOBdAU9LOkVqgBQp4BkLieKgLUqkzXvVuDx7EMEQl35URHoIAmODMAqFJIZyjjNKqriE8a8yXynAxsIdgRrp/KabxkYow6kjFKIqqjKZDnhvAFELYNO8w3Jjuc15yLmmjWoUQZlnIT5UgGmjGqyjLtUrXy6oGRRTl2QivqwrJaJG2KZ5DQvsKwmmccHZVVD2fSSLmXk6XxRSHgVU5U6iqqnFJSyYKqAU+QGiJVAh2oClUdhqeLjSgOpSjFkTbwOVRXNGEDB9aCSwFIFHa3DFZBRfi1Q6gBTFk4Rs63zGijrFIg/ylRt7lW3m6kOUagQqiJ5orFONKJtHR0ok/vUAaPKOrbRt2owZZVTJmhRDaKOYW26I1st06yoBFKmk4jD61UCShSfq1OdpTLgUDW6R8t87rqcfZ1BlMr6uq6Vjhf2owGvozDKmG9dyiQCeTSAiwXVdNIP1A2uls7QkYhW/fgzVgIeXVOe6ISFOnSOjjn+uuHsK5F2NM1hLG/jSGfpjoSdjLSJg7Cp7FjaR7ZzXEGcinBJDF8DnZ1Ho7wPrYNadHdINGCLdVMdrU6nMdimqHYgiaF2kn4IXJ8FMJY6iPRxsPqTksbc55ZJP2vHgOnuYwD2tU4k/eycaT891g0F5YDZ7qfQ3SidTAZgG4By4FwHgBtYBpYbZ/l/2EJnC9N0gaQAAAAASUVORK5CYII="; + return LoadingScreen; + }()); + webgl.LoadingScreen = LoadingScreen; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - webgl.M00 = 0; - webgl.M01 = 4; - webgl.M02 = 8; - webgl.M03 = 12; - webgl.M10 = 1; - webgl.M11 = 5; - webgl.M12 = 9; - webgl.M13 = 13; - webgl.M20 = 2; - webgl.M21 = 6; - webgl.M22 = 10; - webgl.M23 = 14; - webgl.M30 = 3; - webgl.M31 = 7; - webgl.M32 = 11; - webgl.M33 = 15; - var Matrix4 = (function () { - function Matrix4() { - this.temp = new Float32Array(16); - this.values = new Float32Array(16); - var v = this.values; - v[webgl.M00] = 1; - v[webgl.M11] = 1; - v[webgl.M22] = 1; - v[webgl.M33] = 1; - } - Matrix4.prototype.set = function (values) { - this.values.set(values); - return this; - }; - Matrix4.prototype.transpose = function () { - var t = this.temp; - var v = this.values; - t[webgl.M00] = v[webgl.M00]; - t[webgl.M01] = v[webgl.M10]; - t[webgl.M02] = v[webgl.M20]; - t[webgl.M03] = v[webgl.M30]; - t[webgl.M10] = v[webgl.M01]; - t[webgl.M11] = v[webgl.M11]; - t[webgl.M12] = v[webgl.M21]; - t[webgl.M13] = v[webgl.M31]; - t[webgl.M20] = v[webgl.M02]; - t[webgl.M21] = v[webgl.M12]; - t[webgl.M22] = v[webgl.M22]; - t[webgl.M23] = v[webgl.M32]; - t[webgl.M30] = v[webgl.M03]; - t[webgl.M31] = v[webgl.M13]; - t[webgl.M32] = v[webgl.M23]; - t[webgl.M33] = v[webgl.M33]; - return this.set(t); - }; - Matrix4.prototype.identity = function () { - var v = this.values; - v[webgl.M00] = 1; - v[webgl.M01] = 0; - v[webgl.M02] = 0; - v[webgl.M03] = 0; - v[webgl.M10] = 0; - v[webgl.M11] = 1; - v[webgl.M12] = 0; - v[webgl.M13] = 0; - v[webgl.M20] = 0; - v[webgl.M21] = 0; - v[webgl.M22] = 1; - v[webgl.M23] = 0; - v[webgl.M30] = 0; - v[webgl.M31] = 0; - v[webgl.M32] = 0; - v[webgl.M33] = 1; - return this; - }; - Matrix4.prototype.invert = function () { - var v = this.values; - var t = this.temp; - var l_det = v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] - + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] - - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] - - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] - + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] - + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] - - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] - - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - if (l_det == 0) - throw new Error("non-invertible matrix"); - var inv_det = 1.0 / l_det; - t[webgl.M00] = v[webgl.M12] * v[webgl.M23] * v[webgl.M31] - v[webgl.M13] * v[webgl.M22] * v[webgl.M31] + v[webgl.M13] * v[webgl.M21] * v[webgl.M32] - - v[webgl.M11] * v[webgl.M23] * v[webgl.M32] - v[webgl.M12] * v[webgl.M21] * v[webgl.M33] + v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M01] = v[webgl.M03] * v[webgl.M22] * v[webgl.M31] - v[webgl.M02] * v[webgl.M23] * v[webgl.M31] - v[webgl.M03] * v[webgl.M21] * v[webgl.M32] - + v[webgl.M01] * v[webgl.M23] * v[webgl.M32] + v[webgl.M02] * v[webgl.M21] * v[webgl.M33] - v[webgl.M01] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M02] = v[webgl.M02] * v[webgl.M13] * v[webgl.M31] - v[webgl.M03] * v[webgl.M12] * v[webgl.M31] + v[webgl.M03] * v[webgl.M11] * v[webgl.M32] - - v[webgl.M01] * v[webgl.M13] * v[webgl.M32] - v[webgl.M02] * v[webgl.M11] * v[webgl.M33] + v[webgl.M01] * v[webgl.M12] * v[webgl.M33]; - t[webgl.M03] = v[webgl.M03] * v[webgl.M12] * v[webgl.M21] - v[webgl.M02] * v[webgl.M13] * v[webgl.M21] - v[webgl.M03] * v[webgl.M11] * v[webgl.M22] - + v[webgl.M01] * v[webgl.M13] * v[webgl.M22] + v[webgl.M02] * v[webgl.M11] * v[webgl.M23] - v[webgl.M01] * v[webgl.M12] * v[webgl.M23]; - t[webgl.M10] = v[webgl.M13] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M20] * v[webgl.M32] - + v[webgl.M10] * v[webgl.M23] * v[webgl.M32] + v[webgl.M12] * v[webgl.M20] * v[webgl.M33] - v[webgl.M10] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M11] = v[webgl.M02] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M22] * v[webgl.M30] + v[webgl.M03] * v[webgl.M20] * v[webgl.M32] - - v[webgl.M00] * v[webgl.M23] * v[webgl.M32] - v[webgl.M02] * v[webgl.M20] * v[webgl.M33] + v[webgl.M00] * v[webgl.M22] * v[webgl.M33]; - t[webgl.M12] = v[webgl.M03] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M10] * v[webgl.M32] - + v[webgl.M00] * v[webgl.M13] * v[webgl.M32] + v[webgl.M02] * v[webgl.M10] * v[webgl.M33] - v[webgl.M00] * v[webgl.M12] * v[webgl.M33]; - t[webgl.M13] = v[webgl.M02] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M12] * v[webgl.M20] + v[webgl.M03] * v[webgl.M10] * v[webgl.M22] - - v[webgl.M00] * v[webgl.M13] * v[webgl.M22] - v[webgl.M02] * v[webgl.M10] * v[webgl.M23] + v[webgl.M00] * v[webgl.M12] * v[webgl.M23]; - t[webgl.M20] = v[webgl.M11] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M21] * v[webgl.M30] + v[webgl.M13] * v[webgl.M20] * v[webgl.M31] - - v[webgl.M10] * v[webgl.M23] * v[webgl.M31] - v[webgl.M11] * v[webgl.M20] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M33]; - t[webgl.M21] = v[webgl.M03] * v[webgl.M21] * v[webgl.M30] - v[webgl.M01] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M20] * v[webgl.M31] - + v[webgl.M00] * v[webgl.M23] * v[webgl.M31] + v[webgl.M01] * v[webgl.M20] * v[webgl.M33] - v[webgl.M00] * v[webgl.M21] * v[webgl.M33]; - t[webgl.M22] = v[webgl.M01] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M11] * v[webgl.M30] + v[webgl.M03] * v[webgl.M10] * v[webgl.M31] - - v[webgl.M00] * v[webgl.M13] * v[webgl.M31] - v[webgl.M01] * v[webgl.M10] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M33]; - t[webgl.M23] = v[webgl.M03] * v[webgl.M11] * v[webgl.M20] - v[webgl.M01] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M10] * v[webgl.M21] - + v[webgl.M00] * v[webgl.M13] * v[webgl.M21] + v[webgl.M01] * v[webgl.M10] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M23]; - t[webgl.M30] = v[webgl.M12] * v[webgl.M21] * v[webgl.M30] - v[webgl.M11] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M20] * v[webgl.M31] - + v[webgl.M10] * v[webgl.M22] * v[webgl.M31] + v[webgl.M11] * v[webgl.M20] * v[webgl.M32] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32]; - t[webgl.M31] = v[webgl.M01] * v[webgl.M22] * v[webgl.M30] - v[webgl.M02] * v[webgl.M21] * v[webgl.M30] + v[webgl.M02] * v[webgl.M20] * v[webgl.M31] - - v[webgl.M00] * v[webgl.M22] * v[webgl.M31] - v[webgl.M01] * v[webgl.M20] * v[webgl.M32] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32]; - t[webgl.M32] = v[webgl.M02] * v[webgl.M11] * v[webgl.M30] - v[webgl.M01] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M10] * v[webgl.M31] - + v[webgl.M00] * v[webgl.M12] * v[webgl.M31] + v[webgl.M01] * v[webgl.M10] * v[webgl.M32] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32]; - t[webgl.M33] = v[webgl.M01] * v[webgl.M12] * v[webgl.M20] - v[webgl.M02] * v[webgl.M11] * v[webgl.M20] + v[webgl.M02] * v[webgl.M10] * v[webgl.M21] - - v[webgl.M00] * v[webgl.M12] * v[webgl.M21] - v[webgl.M01] * v[webgl.M10] * v[webgl.M22] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22]; - v[webgl.M00] = t[webgl.M00] * inv_det; - v[webgl.M01] = t[webgl.M01] * inv_det; - v[webgl.M02] = t[webgl.M02] * inv_det; - v[webgl.M03] = t[webgl.M03] * inv_det; - v[webgl.M10] = t[webgl.M10] * inv_det; - v[webgl.M11] = t[webgl.M11] * inv_det; - v[webgl.M12] = t[webgl.M12] * inv_det; - v[webgl.M13] = t[webgl.M13] * inv_det; - v[webgl.M20] = t[webgl.M20] * inv_det; - v[webgl.M21] = t[webgl.M21] * inv_det; - v[webgl.M22] = t[webgl.M22] * inv_det; - v[webgl.M23] = t[webgl.M23] * inv_det; - v[webgl.M30] = t[webgl.M30] * inv_det; - v[webgl.M31] = t[webgl.M31] * inv_det; - v[webgl.M32] = t[webgl.M32] * inv_det; - v[webgl.M33] = t[webgl.M33] * inv_det; - return this; - }; - Matrix4.prototype.determinant = function () { - var v = this.values; - return v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] - + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] - - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] - - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] - + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] - + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] - - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] - - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; - }; - Matrix4.prototype.translate = function (x, y, z) { - var v = this.values; - v[webgl.M03] += x; - v[webgl.M13] += y; - v[webgl.M23] += z; - return this; - }; - Matrix4.prototype.copy = function () { - return new Matrix4().set(this.values); - }; - Matrix4.prototype.projection = function (near, far, fovy, aspectRatio) { - this.identity(); - var l_fd = (1.0 / Math.tan((fovy * (Math.PI / 180)) / 2.0)); - var l_a1 = (far + near) / (near - far); - var l_a2 = (2 * far * near) / (near - far); - var v = this.values; - v[webgl.M00] = l_fd / aspectRatio; - v[webgl.M10] = 0; - v[webgl.M20] = 0; - v[webgl.M30] = 0; - v[webgl.M01] = 0; - v[webgl.M11] = l_fd; - v[webgl.M21] = 0; - v[webgl.M31] = 0; - v[webgl.M02] = 0; - v[webgl.M12] = 0; - v[webgl.M22] = l_a1; - v[webgl.M32] = -1; - v[webgl.M03] = 0; - v[webgl.M13] = 0; - v[webgl.M23] = l_a2; - v[webgl.M33] = 0; - return this; - }; - Matrix4.prototype.ortho2d = function (x, y, width, height) { - return this.ortho(x, x + width, y, y + height, 0, 1); - }; - Matrix4.prototype.ortho = function (left, right, bottom, top, near, far) { - this.identity(); - var x_orth = 2 / (right - left); - var y_orth = 2 / (top - bottom); - var z_orth = -2 / (far - near); - var tx = -(right + left) / (right - left); - var ty = -(top + bottom) / (top - bottom); - var tz = -(far + near) / (far - near); - var v = this.values; - v[webgl.M00] = x_orth; - v[webgl.M10] = 0; - v[webgl.M20] = 0; - v[webgl.M30] = 0; - v[webgl.M01] = 0; - v[webgl.M11] = y_orth; - v[webgl.M21] = 0; - v[webgl.M31] = 0; - v[webgl.M02] = 0; - v[webgl.M12] = 0; - v[webgl.M22] = z_orth; - v[webgl.M32] = 0; - v[webgl.M03] = tx; - v[webgl.M13] = ty; - v[webgl.M23] = tz; - v[webgl.M33] = 1; - return this; - }; - Matrix4.prototype.multiply = function (matrix) { - var t = this.temp; - var v = this.values; - var m = matrix.values; - t[webgl.M00] = v[webgl.M00] * m[webgl.M00] + v[webgl.M01] * m[webgl.M10] + v[webgl.M02] * m[webgl.M20] + v[webgl.M03] * m[webgl.M30]; - t[webgl.M01] = v[webgl.M00] * m[webgl.M01] + v[webgl.M01] * m[webgl.M11] + v[webgl.M02] * m[webgl.M21] + v[webgl.M03] * m[webgl.M31]; - t[webgl.M02] = v[webgl.M00] * m[webgl.M02] + v[webgl.M01] * m[webgl.M12] + v[webgl.M02] * m[webgl.M22] + v[webgl.M03] * m[webgl.M32]; - t[webgl.M03] = v[webgl.M00] * m[webgl.M03] + v[webgl.M01] * m[webgl.M13] + v[webgl.M02] * m[webgl.M23] + v[webgl.M03] * m[webgl.M33]; - t[webgl.M10] = v[webgl.M10] * m[webgl.M00] + v[webgl.M11] * m[webgl.M10] + v[webgl.M12] * m[webgl.M20] + v[webgl.M13] * m[webgl.M30]; - t[webgl.M11] = v[webgl.M10] * m[webgl.M01] + v[webgl.M11] * m[webgl.M11] + v[webgl.M12] * m[webgl.M21] + v[webgl.M13] * m[webgl.M31]; - t[webgl.M12] = v[webgl.M10] * m[webgl.M02] + v[webgl.M11] * m[webgl.M12] + v[webgl.M12] * m[webgl.M22] + v[webgl.M13] * m[webgl.M32]; - t[webgl.M13] = v[webgl.M10] * m[webgl.M03] + v[webgl.M11] * m[webgl.M13] + v[webgl.M12] * m[webgl.M23] + v[webgl.M13] * m[webgl.M33]; - t[webgl.M20] = v[webgl.M20] * m[webgl.M00] + v[webgl.M21] * m[webgl.M10] + v[webgl.M22] * m[webgl.M20] + v[webgl.M23] * m[webgl.M30]; - t[webgl.M21] = v[webgl.M20] * m[webgl.M01] + v[webgl.M21] * m[webgl.M11] + v[webgl.M22] * m[webgl.M21] + v[webgl.M23] * m[webgl.M31]; - t[webgl.M22] = v[webgl.M20] * m[webgl.M02] + v[webgl.M21] * m[webgl.M12] + v[webgl.M22] * m[webgl.M22] + v[webgl.M23] * m[webgl.M32]; - t[webgl.M23] = v[webgl.M20] * m[webgl.M03] + v[webgl.M21] * m[webgl.M13] + v[webgl.M22] * m[webgl.M23] + v[webgl.M23] * m[webgl.M33]; - t[webgl.M30] = v[webgl.M30] * m[webgl.M00] + v[webgl.M31] * m[webgl.M10] + v[webgl.M32] * m[webgl.M20] + v[webgl.M33] * m[webgl.M30]; - t[webgl.M31] = v[webgl.M30] * m[webgl.M01] + v[webgl.M31] * m[webgl.M11] + v[webgl.M32] * m[webgl.M21] + v[webgl.M33] * m[webgl.M31]; - t[webgl.M32] = v[webgl.M30] * m[webgl.M02] + v[webgl.M31] * m[webgl.M12] + v[webgl.M32] * m[webgl.M22] + v[webgl.M33] * m[webgl.M32]; - t[webgl.M33] = v[webgl.M30] * m[webgl.M03] + v[webgl.M31] * m[webgl.M13] + v[webgl.M32] * m[webgl.M23] + v[webgl.M33] * m[webgl.M33]; - return this.set(this.temp); - }; - Matrix4.prototype.multiplyLeft = function (matrix) { - var t = this.temp; - var v = this.values; - var m = matrix.values; - t[webgl.M00] = m[webgl.M00] * v[webgl.M00] + m[webgl.M01] * v[webgl.M10] + m[webgl.M02] * v[webgl.M20] + m[webgl.M03] * v[webgl.M30]; - t[webgl.M01] = m[webgl.M00] * v[webgl.M01] + m[webgl.M01] * v[webgl.M11] + m[webgl.M02] * v[webgl.M21] + m[webgl.M03] * v[webgl.M31]; - t[webgl.M02] = m[webgl.M00] * v[webgl.M02] + m[webgl.M01] * v[webgl.M12] + m[webgl.M02] * v[webgl.M22] + m[webgl.M03] * v[webgl.M32]; - t[webgl.M03] = m[webgl.M00] * v[webgl.M03] + m[webgl.M01] * v[webgl.M13] + m[webgl.M02] * v[webgl.M23] + m[webgl.M03] * v[webgl.M33]; - t[webgl.M10] = m[webgl.M10] * v[webgl.M00] + m[webgl.M11] * v[webgl.M10] + m[webgl.M12] * v[webgl.M20] + m[webgl.M13] * v[webgl.M30]; - t[webgl.M11] = m[webgl.M10] * v[webgl.M01] + m[webgl.M11] * v[webgl.M11] + m[webgl.M12] * v[webgl.M21] + m[webgl.M13] * v[webgl.M31]; - t[webgl.M12] = m[webgl.M10] * v[webgl.M02] + m[webgl.M11] * v[webgl.M12] + m[webgl.M12] * v[webgl.M22] + m[webgl.M13] * v[webgl.M32]; - t[webgl.M13] = m[webgl.M10] * v[webgl.M03] + m[webgl.M11] * v[webgl.M13] + m[webgl.M12] * v[webgl.M23] + m[webgl.M13] * v[webgl.M33]; - t[webgl.M20] = m[webgl.M20] * v[webgl.M00] + m[webgl.M21] * v[webgl.M10] + m[webgl.M22] * v[webgl.M20] + m[webgl.M23] * v[webgl.M30]; - t[webgl.M21] = m[webgl.M20] * v[webgl.M01] + m[webgl.M21] * v[webgl.M11] + m[webgl.M22] * v[webgl.M21] + m[webgl.M23] * v[webgl.M31]; - t[webgl.M22] = m[webgl.M20] * v[webgl.M02] + m[webgl.M21] * v[webgl.M12] + m[webgl.M22] * v[webgl.M22] + m[webgl.M23] * v[webgl.M32]; - t[webgl.M23] = m[webgl.M20] * v[webgl.M03] + m[webgl.M21] * v[webgl.M13] + m[webgl.M22] * v[webgl.M23] + m[webgl.M23] * v[webgl.M33]; - t[webgl.M30] = m[webgl.M30] * v[webgl.M00] + m[webgl.M31] * v[webgl.M10] + m[webgl.M32] * v[webgl.M20] + m[webgl.M33] * v[webgl.M30]; - t[webgl.M31] = m[webgl.M30] * v[webgl.M01] + m[webgl.M31] * v[webgl.M11] + m[webgl.M32] * v[webgl.M21] + m[webgl.M33] * v[webgl.M31]; - t[webgl.M32] = m[webgl.M30] * v[webgl.M02] + m[webgl.M31] * v[webgl.M12] + m[webgl.M32] * v[webgl.M22] + m[webgl.M33] * v[webgl.M32]; - t[webgl.M33] = m[webgl.M30] * v[webgl.M03] + m[webgl.M31] * v[webgl.M13] + m[webgl.M32] * v[webgl.M23] + m[webgl.M33] * v[webgl.M33]; - return this.set(this.temp); - }; - Matrix4.prototype.lookAt = function (position, direction, up) { - Matrix4.initTemps(); - var xAxis = Matrix4.xAxis, yAxis = Matrix4.yAxis, zAxis = Matrix4.zAxis; - zAxis.setFrom(direction).normalize(); - xAxis.setFrom(direction).normalize(); - xAxis.cross(up).normalize(); - yAxis.setFrom(xAxis).cross(zAxis).normalize(); - this.identity(); - var val = this.values; - val[webgl.M00] = xAxis.x; - val[webgl.M01] = xAxis.y; - val[webgl.M02] = xAxis.z; - val[webgl.M10] = yAxis.x; - val[webgl.M11] = yAxis.y; - val[webgl.M12] = yAxis.z; - val[webgl.M20] = -zAxis.x; - val[webgl.M21] = -zAxis.y; - val[webgl.M22] = -zAxis.z; - Matrix4.tmpMatrix.identity(); - Matrix4.tmpMatrix.values[webgl.M03] = -position.x; - Matrix4.tmpMatrix.values[webgl.M13] = -position.y; - Matrix4.tmpMatrix.values[webgl.M23] = -position.z; - this.multiply(Matrix4.tmpMatrix); - return this; - }; - Matrix4.initTemps = function () { - if (Matrix4.xAxis === null) - Matrix4.xAxis = new webgl.Vector3(); - if (Matrix4.yAxis === null) - Matrix4.yAxis = new webgl.Vector3(); - if (Matrix4.zAxis === null) - Matrix4.zAxis = new webgl.Vector3(); - }; - Matrix4.xAxis = null; - Matrix4.yAxis = null; - Matrix4.zAxis = null; - Matrix4.tmpMatrix = new Matrix4(); - return Matrix4; - }()); - webgl.Matrix4 = Matrix4; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + webgl.M00 = 0; + webgl.M01 = 4; + webgl.M02 = 8; + webgl.M03 = 12; + webgl.M10 = 1; + webgl.M11 = 5; + webgl.M12 = 9; + webgl.M13 = 13; + webgl.M20 = 2; + webgl.M21 = 6; + webgl.M22 = 10; + webgl.M23 = 14; + webgl.M30 = 3; + webgl.M31 = 7; + webgl.M32 = 11; + webgl.M33 = 15; + var Matrix4 = (function () { + function Matrix4() { + this.temp = new Float32Array(16); + this.values = new Float32Array(16); + var v = this.values; + v[webgl.M00] = 1; + v[webgl.M11] = 1; + v[webgl.M22] = 1; + v[webgl.M33] = 1; + } + Matrix4.prototype.set = function (values) { + this.values.set(values); + return this; + }; + Matrix4.prototype.transpose = function () { + var t = this.temp; + var v = this.values; + t[webgl.M00] = v[webgl.M00]; + t[webgl.M01] = v[webgl.M10]; + t[webgl.M02] = v[webgl.M20]; + t[webgl.M03] = v[webgl.M30]; + t[webgl.M10] = v[webgl.M01]; + t[webgl.M11] = v[webgl.M11]; + t[webgl.M12] = v[webgl.M21]; + t[webgl.M13] = v[webgl.M31]; + t[webgl.M20] = v[webgl.M02]; + t[webgl.M21] = v[webgl.M12]; + t[webgl.M22] = v[webgl.M22]; + t[webgl.M23] = v[webgl.M32]; + t[webgl.M30] = v[webgl.M03]; + t[webgl.M31] = v[webgl.M13]; + t[webgl.M32] = v[webgl.M23]; + t[webgl.M33] = v[webgl.M33]; + return this.set(t); + }; + Matrix4.prototype.identity = function () { + var v = this.values; + v[webgl.M00] = 1; + v[webgl.M01] = 0; + v[webgl.M02] = 0; + v[webgl.M03] = 0; + v[webgl.M10] = 0; + v[webgl.M11] = 1; + v[webgl.M12] = 0; + v[webgl.M13] = 0; + v[webgl.M20] = 0; + v[webgl.M21] = 0; + v[webgl.M22] = 1; + v[webgl.M23] = 0; + v[webgl.M30] = 0; + v[webgl.M31] = 0; + v[webgl.M32] = 0; + v[webgl.M33] = 1; + return this; + }; + Matrix4.prototype.invert = function () { + var v = this.values; + var t = this.temp; + var l_det = v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] + + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] + - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] + - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] + + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] + + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] + - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] + - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + if (l_det == 0) + throw new Error("non-invertible matrix"); + var inv_det = 1.0 / l_det; + t[webgl.M00] = v[webgl.M12] * v[webgl.M23] * v[webgl.M31] - v[webgl.M13] * v[webgl.M22] * v[webgl.M31] + v[webgl.M13] * v[webgl.M21] * v[webgl.M32] + - v[webgl.M11] * v[webgl.M23] * v[webgl.M32] - v[webgl.M12] * v[webgl.M21] * v[webgl.M33] + v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M01] = v[webgl.M03] * v[webgl.M22] * v[webgl.M31] - v[webgl.M02] * v[webgl.M23] * v[webgl.M31] - v[webgl.M03] * v[webgl.M21] * v[webgl.M32] + + v[webgl.M01] * v[webgl.M23] * v[webgl.M32] + v[webgl.M02] * v[webgl.M21] * v[webgl.M33] - v[webgl.M01] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M02] = v[webgl.M02] * v[webgl.M13] * v[webgl.M31] - v[webgl.M03] * v[webgl.M12] * v[webgl.M31] + v[webgl.M03] * v[webgl.M11] * v[webgl.M32] + - v[webgl.M01] * v[webgl.M13] * v[webgl.M32] - v[webgl.M02] * v[webgl.M11] * v[webgl.M33] + v[webgl.M01] * v[webgl.M12] * v[webgl.M33]; + t[webgl.M03] = v[webgl.M03] * v[webgl.M12] * v[webgl.M21] - v[webgl.M02] * v[webgl.M13] * v[webgl.M21] - v[webgl.M03] * v[webgl.M11] * v[webgl.M22] + + v[webgl.M01] * v[webgl.M13] * v[webgl.M22] + v[webgl.M02] * v[webgl.M11] * v[webgl.M23] - v[webgl.M01] * v[webgl.M12] * v[webgl.M23]; + t[webgl.M10] = v[webgl.M13] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M20] * v[webgl.M32] + + v[webgl.M10] * v[webgl.M23] * v[webgl.M32] + v[webgl.M12] * v[webgl.M20] * v[webgl.M33] - v[webgl.M10] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M11] = v[webgl.M02] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M22] * v[webgl.M30] + v[webgl.M03] * v[webgl.M20] * v[webgl.M32] + - v[webgl.M00] * v[webgl.M23] * v[webgl.M32] - v[webgl.M02] * v[webgl.M20] * v[webgl.M33] + v[webgl.M00] * v[webgl.M22] * v[webgl.M33]; + t[webgl.M12] = v[webgl.M03] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M10] * v[webgl.M32] + + v[webgl.M00] * v[webgl.M13] * v[webgl.M32] + v[webgl.M02] * v[webgl.M10] * v[webgl.M33] - v[webgl.M00] * v[webgl.M12] * v[webgl.M33]; + t[webgl.M13] = v[webgl.M02] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M12] * v[webgl.M20] + v[webgl.M03] * v[webgl.M10] * v[webgl.M22] + - v[webgl.M00] * v[webgl.M13] * v[webgl.M22] - v[webgl.M02] * v[webgl.M10] * v[webgl.M23] + v[webgl.M00] * v[webgl.M12] * v[webgl.M23]; + t[webgl.M20] = v[webgl.M11] * v[webgl.M23] * v[webgl.M30] - v[webgl.M13] * v[webgl.M21] * v[webgl.M30] + v[webgl.M13] * v[webgl.M20] * v[webgl.M31] + - v[webgl.M10] * v[webgl.M23] * v[webgl.M31] - v[webgl.M11] * v[webgl.M20] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M33]; + t[webgl.M21] = v[webgl.M03] * v[webgl.M21] * v[webgl.M30] - v[webgl.M01] * v[webgl.M23] * v[webgl.M30] - v[webgl.M03] * v[webgl.M20] * v[webgl.M31] + + v[webgl.M00] * v[webgl.M23] * v[webgl.M31] + v[webgl.M01] * v[webgl.M20] * v[webgl.M33] - v[webgl.M00] * v[webgl.M21] * v[webgl.M33]; + t[webgl.M22] = v[webgl.M01] * v[webgl.M13] * v[webgl.M30] - v[webgl.M03] * v[webgl.M11] * v[webgl.M30] + v[webgl.M03] * v[webgl.M10] * v[webgl.M31] + - v[webgl.M00] * v[webgl.M13] * v[webgl.M31] - v[webgl.M01] * v[webgl.M10] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M33]; + t[webgl.M23] = v[webgl.M03] * v[webgl.M11] * v[webgl.M20] - v[webgl.M01] * v[webgl.M13] * v[webgl.M20] - v[webgl.M03] * v[webgl.M10] * v[webgl.M21] + + v[webgl.M00] * v[webgl.M13] * v[webgl.M21] + v[webgl.M01] * v[webgl.M10] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M23]; + t[webgl.M30] = v[webgl.M12] * v[webgl.M21] * v[webgl.M30] - v[webgl.M11] * v[webgl.M22] * v[webgl.M30] - v[webgl.M12] * v[webgl.M20] * v[webgl.M31] + + v[webgl.M10] * v[webgl.M22] * v[webgl.M31] + v[webgl.M11] * v[webgl.M20] * v[webgl.M32] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32]; + t[webgl.M31] = v[webgl.M01] * v[webgl.M22] * v[webgl.M30] - v[webgl.M02] * v[webgl.M21] * v[webgl.M30] + v[webgl.M02] * v[webgl.M20] * v[webgl.M31] + - v[webgl.M00] * v[webgl.M22] * v[webgl.M31] - v[webgl.M01] * v[webgl.M20] * v[webgl.M32] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32]; + t[webgl.M32] = v[webgl.M02] * v[webgl.M11] * v[webgl.M30] - v[webgl.M01] * v[webgl.M12] * v[webgl.M30] - v[webgl.M02] * v[webgl.M10] * v[webgl.M31] + + v[webgl.M00] * v[webgl.M12] * v[webgl.M31] + v[webgl.M01] * v[webgl.M10] * v[webgl.M32] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32]; + t[webgl.M33] = v[webgl.M01] * v[webgl.M12] * v[webgl.M20] - v[webgl.M02] * v[webgl.M11] * v[webgl.M20] + v[webgl.M02] * v[webgl.M10] * v[webgl.M21] + - v[webgl.M00] * v[webgl.M12] * v[webgl.M21] - v[webgl.M01] * v[webgl.M10] * v[webgl.M22] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22]; + v[webgl.M00] = t[webgl.M00] * inv_det; + v[webgl.M01] = t[webgl.M01] * inv_det; + v[webgl.M02] = t[webgl.M02] * inv_det; + v[webgl.M03] = t[webgl.M03] * inv_det; + v[webgl.M10] = t[webgl.M10] * inv_det; + v[webgl.M11] = t[webgl.M11] * inv_det; + v[webgl.M12] = t[webgl.M12] * inv_det; + v[webgl.M13] = t[webgl.M13] * inv_det; + v[webgl.M20] = t[webgl.M20] * inv_det; + v[webgl.M21] = t[webgl.M21] * inv_det; + v[webgl.M22] = t[webgl.M22] * inv_det; + v[webgl.M23] = t[webgl.M23] * inv_det; + v[webgl.M30] = t[webgl.M30] * inv_det; + v[webgl.M31] = t[webgl.M31] * inv_det; + v[webgl.M32] = t[webgl.M32] * inv_det; + v[webgl.M33] = t[webgl.M33] * inv_det; + return this; + }; + Matrix4.prototype.determinant = function () { + var v = this.values; + return v[webgl.M30] * v[webgl.M21] * v[webgl.M12] * v[webgl.M03] - v[webgl.M20] * v[webgl.M31] * v[webgl.M12] * v[webgl.M03] - v[webgl.M30] * v[webgl.M11] * v[webgl.M22] * v[webgl.M03] + + v[webgl.M10] * v[webgl.M31] * v[webgl.M22] * v[webgl.M03] + v[webgl.M20] * v[webgl.M11] * v[webgl.M32] * v[webgl.M03] - v[webgl.M10] * v[webgl.M21] * v[webgl.M32] * v[webgl.M03] + - v[webgl.M30] * v[webgl.M21] * v[webgl.M02] * v[webgl.M13] + v[webgl.M20] * v[webgl.M31] * v[webgl.M02] * v[webgl.M13] + v[webgl.M30] * v[webgl.M01] * v[webgl.M22] * v[webgl.M13] + - v[webgl.M00] * v[webgl.M31] * v[webgl.M22] * v[webgl.M13] - v[webgl.M20] * v[webgl.M01] * v[webgl.M32] * v[webgl.M13] + v[webgl.M00] * v[webgl.M21] * v[webgl.M32] * v[webgl.M13] + + v[webgl.M30] * v[webgl.M11] * v[webgl.M02] * v[webgl.M23] - v[webgl.M10] * v[webgl.M31] * v[webgl.M02] * v[webgl.M23] - v[webgl.M30] * v[webgl.M01] * v[webgl.M12] * v[webgl.M23] + + v[webgl.M00] * v[webgl.M31] * v[webgl.M12] * v[webgl.M23] + v[webgl.M10] * v[webgl.M01] * v[webgl.M32] * v[webgl.M23] - v[webgl.M00] * v[webgl.M11] * v[webgl.M32] * v[webgl.M23] + - v[webgl.M20] * v[webgl.M11] * v[webgl.M02] * v[webgl.M33] + v[webgl.M10] * v[webgl.M21] * v[webgl.M02] * v[webgl.M33] + v[webgl.M20] * v[webgl.M01] * v[webgl.M12] * v[webgl.M33] + - v[webgl.M00] * v[webgl.M21] * v[webgl.M12] * v[webgl.M33] - v[webgl.M10] * v[webgl.M01] * v[webgl.M22] * v[webgl.M33] + v[webgl.M00] * v[webgl.M11] * v[webgl.M22] * v[webgl.M33]; + }; + Matrix4.prototype.translate = function (x, y, z) { + var v = this.values; + v[webgl.M03] += x; + v[webgl.M13] += y; + v[webgl.M23] += z; + return this; + }; + Matrix4.prototype.copy = function () { + return new Matrix4().set(this.values); + }; + Matrix4.prototype.projection = function (near, far, fovy, aspectRatio) { + this.identity(); + var l_fd = (1.0 / Math.tan((fovy * (Math.PI / 180)) / 2.0)); + var l_a1 = (far + near) / (near - far); + var l_a2 = (2 * far * near) / (near - far); + var v = this.values; + v[webgl.M00] = l_fd / aspectRatio; + v[webgl.M10] = 0; + v[webgl.M20] = 0; + v[webgl.M30] = 0; + v[webgl.M01] = 0; + v[webgl.M11] = l_fd; + v[webgl.M21] = 0; + v[webgl.M31] = 0; + v[webgl.M02] = 0; + v[webgl.M12] = 0; + v[webgl.M22] = l_a1; + v[webgl.M32] = -1; + v[webgl.M03] = 0; + v[webgl.M13] = 0; + v[webgl.M23] = l_a2; + v[webgl.M33] = 0; + return this; + }; + Matrix4.prototype.ortho2d = function (x, y, width, height) { + return this.ortho(x, x + width, y, y + height, 0, 1); + }; + Matrix4.prototype.ortho = function (left, right, bottom, top, near, far) { + this.identity(); + var x_orth = 2 / (right - left); + var y_orth = 2 / (top - bottom); + var z_orth = -2 / (far - near); + var tx = -(right + left) / (right - left); + var ty = -(top + bottom) / (top - bottom); + var tz = -(far + near) / (far - near); + var v = this.values; + v[webgl.M00] = x_orth; + v[webgl.M10] = 0; + v[webgl.M20] = 0; + v[webgl.M30] = 0; + v[webgl.M01] = 0; + v[webgl.M11] = y_orth; + v[webgl.M21] = 0; + v[webgl.M31] = 0; + v[webgl.M02] = 0; + v[webgl.M12] = 0; + v[webgl.M22] = z_orth; + v[webgl.M32] = 0; + v[webgl.M03] = tx; + v[webgl.M13] = ty; + v[webgl.M23] = tz; + v[webgl.M33] = 1; + return this; + }; + Matrix4.prototype.multiply = function (matrix) { + var t = this.temp; + var v = this.values; + var m = matrix.values; + t[webgl.M00] = v[webgl.M00] * m[webgl.M00] + v[webgl.M01] * m[webgl.M10] + v[webgl.M02] * m[webgl.M20] + v[webgl.M03] * m[webgl.M30]; + t[webgl.M01] = v[webgl.M00] * m[webgl.M01] + v[webgl.M01] * m[webgl.M11] + v[webgl.M02] * m[webgl.M21] + v[webgl.M03] * m[webgl.M31]; + t[webgl.M02] = v[webgl.M00] * m[webgl.M02] + v[webgl.M01] * m[webgl.M12] + v[webgl.M02] * m[webgl.M22] + v[webgl.M03] * m[webgl.M32]; + t[webgl.M03] = v[webgl.M00] * m[webgl.M03] + v[webgl.M01] * m[webgl.M13] + v[webgl.M02] * m[webgl.M23] + v[webgl.M03] * m[webgl.M33]; + t[webgl.M10] = v[webgl.M10] * m[webgl.M00] + v[webgl.M11] * m[webgl.M10] + v[webgl.M12] * m[webgl.M20] + v[webgl.M13] * m[webgl.M30]; + t[webgl.M11] = v[webgl.M10] * m[webgl.M01] + v[webgl.M11] * m[webgl.M11] + v[webgl.M12] * m[webgl.M21] + v[webgl.M13] * m[webgl.M31]; + t[webgl.M12] = v[webgl.M10] * m[webgl.M02] + v[webgl.M11] * m[webgl.M12] + v[webgl.M12] * m[webgl.M22] + v[webgl.M13] * m[webgl.M32]; + t[webgl.M13] = v[webgl.M10] * m[webgl.M03] + v[webgl.M11] * m[webgl.M13] + v[webgl.M12] * m[webgl.M23] + v[webgl.M13] * m[webgl.M33]; + t[webgl.M20] = v[webgl.M20] * m[webgl.M00] + v[webgl.M21] * m[webgl.M10] + v[webgl.M22] * m[webgl.M20] + v[webgl.M23] * m[webgl.M30]; + t[webgl.M21] = v[webgl.M20] * m[webgl.M01] + v[webgl.M21] * m[webgl.M11] + v[webgl.M22] * m[webgl.M21] + v[webgl.M23] * m[webgl.M31]; + t[webgl.M22] = v[webgl.M20] * m[webgl.M02] + v[webgl.M21] * m[webgl.M12] + v[webgl.M22] * m[webgl.M22] + v[webgl.M23] * m[webgl.M32]; + t[webgl.M23] = v[webgl.M20] * m[webgl.M03] + v[webgl.M21] * m[webgl.M13] + v[webgl.M22] * m[webgl.M23] + v[webgl.M23] * m[webgl.M33]; + t[webgl.M30] = v[webgl.M30] * m[webgl.M00] + v[webgl.M31] * m[webgl.M10] + v[webgl.M32] * m[webgl.M20] + v[webgl.M33] * m[webgl.M30]; + t[webgl.M31] = v[webgl.M30] * m[webgl.M01] + v[webgl.M31] * m[webgl.M11] + v[webgl.M32] * m[webgl.M21] + v[webgl.M33] * m[webgl.M31]; + t[webgl.M32] = v[webgl.M30] * m[webgl.M02] + v[webgl.M31] * m[webgl.M12] + v[webgl.M32] * m[webgl.M22] + v[webgl.M33] * m[webgl.M32]; + t[webgl.M33] = v[webgl.M30] * m[webgl.M03] + v[webgl.M31] * m[webgl.M13] + v[webgl.M32] * m[webgl.M23] + v[webgl.M33] * m[webgl.M33]; + return this.set(this.temp); + }; + Matrix4.prototype.multiplyLeft = function (matrix) { + var t = this.temp; + var v = this.values; + var m = matrix.values; + t[webgl.M00] = m[webgl.M00] * v[webgl.M00] + m[webgl.M01] * v[webgl.M10] + m[webgl.M02] * v[webgl.M20] + m[webgl.M03] * v[webgl.M30]; + t[webgl.M01] = m[webgl.M00] * v[webgl.M01] + m[webgl.M01] * v[webgl.M11] + m[webgl.M02] * v[webgl.M21] + m[webgl.M03] * v[webgl.M31]; + t[webgl.M02] = m[webgl.M00] * v[webgl.M02] + m[webgl.M01] * v[webgl.M12] + m[webgl.M02] * v[webgl.M22] + m[webgl.M03] * v[webgl.M32]; + t[webgl.M03] = m[webgl.M00] * v[webgl.M03] + m[webgl.M01] * v[webgl.M13] + m[webgl.M02] * v[webgl.M23] + m[webgl.M03] * v[webgl.M33]; + t[webgl.M10] = m[webgl.M10] * v[webgl.M00] + m[webgl.M11] * v[webgl.M10] + m[webgl.M12] * v[webgl.M20] + m[webgl.M13] * v[webgl.M30]; + t[webgl.M11] = m[webgl.M10] * v[webgl.M01] + m[webgl.M11] * v[webgl.M11] + m[webgl.M12] * v[webgl.M21] + m[webgl.M13] * v[webgl.M31]; + t[webgl.M12] = m[webgl.M10] * v[webgl.M02] + m[webgl.M11] * v[webgl.M12] + m[webgl.M12] * v[webgl.M22] + m[webgl.M13] * v[webgl.M32]; + t[webgl.M13] = m[webgl.M10] * v[webgl.M03] + m[webgl.M11] * v[webgl.M13] + m[webgl.M12] * v[webgl.M23] + m[webgl.M13] * v[webgl.M33]; + t[webgl.M20] = m[webgl.M20] * v[webgl.M00] + m[webgl.M21] * v[webgl.M10] + m[webgl.M22] * v[webgl.M20] + m[webgl.M23] * v[webgl.M30]; + t[webgl.M21] = m[webgl.M20] * v[webgl.M01] + m[webgl.M21] * v[webgl.M11] + m[webgl.M22] * v[webgl.M21] + m[webgl.M23] * v[webgl.M31]; + t[webgl.M22] = m[webgl.M20] * v[webgl.M02] + m[webgl.M21] * v[webgl.M12] + m[webgl.M22] * v[webgl.M22] + m[webgl.M23] * v[webgl.M32]; + t[webgl.M23] = m[webgl.M20] * v[webgl.M03] + m[webgl.M21] * v[webgl.M13] + m[webgl.M22] * v[webgl.M23] + m[webgl.M23] * v[webgl.M33]; + t[webgl.M30] = m[webgl.M30] * v[webgl.M00] + m[webgl.M31] * v[webgl.M10] + m[webgl.M32] * v[webgl.M20] + m[webgl.M33] * v[webgl.M30]; + t[webgl.M31] = m[webgl.M30] * v[webgl.M01] + m[webgl.M31] * v[webgl.M11] + m[webgl.M32] * v[webgl.M21] + m[webgl.M33] * v[webgl.M31]; + t[webgl.M32] = m[webgl.M30] * v[webgl.M02] + m[webgl.M31] * v[webgl.M12] + m[webgl.M32] * v[webgl.M22] + m[webgl.M33] * v[webgl.M32]; + t[webgl.M33] = m[webgl.M30] * v[webgl.M03] + m[webgl.M31] * v[webgl.M13] + m[webgl.M32] * v[webgl.M23] + m[webgl.M33] * v[webgl.M33]; + return this.set(this.temp); + }; + Matrix4.prototype.lookAt = function (position, direction, up) { + Matrix4.initTemps(); + var xAxis = Matrix4.xAxis, yAxis = Matrix4.yAxis, zAxis = Matrix4.zAxis; + zAxis.setFrom(direction).normalize(); + xAxis.setFrom(direction).normalize(); + xAxis.cross(up).normalize(); + yAxis.setFrom(xAxis).cross(zAxis).normalize(); + this.identity(); + var val = this.values; + val[webgl.M00] = xAxis.x; + val[webgl.M01] = xAxis.y; + val[webgl.M02] = xAxis.z; + val[webgl.M10] = yAxis.x; + val[webgl.M11] = yAxis.y; + val[webgl.M12] = yAxis.z; + val[webgl.M20] = -zAxis.x; + val[webgl.M21] = -zAxis.y; + val[webgl.M22] = -zAxis.z; + Matrix4.tmpMatrix.identity(); + Matrix4.tmpMatrix.values[webgl.M03] = -position.x; + Matrix4.tmpMatrix.values[webgl.M13] = -position.y; + Matrix4.tmpMatrix.values[webgl.M23] = -position.z; + this.multiply(Matrix4.tmpMatrix); + return this; + }; + Matrix4.initTemps = function () { + if (Matrix4.xAxis === null) + Matrix4.xAxis = new webgl.Vector3(); + if (Matrix4.yAxis === null) + Matrix4.yAxis = new webgl.Vector3(); + if (Matrix4.zAxis === null) + Matrix4.zAxis = new webgl.Vector3(); + }; + Matrix4.xAxis = null; + Matrix4.yAxis = null; + Matrix4.zAxis = null; + Matrix4.tmpMatrix = new Matrix4(); + return Matrix4; + }()); + webgl.Matrix4 = Matrix4; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Mesh = (function () { - function Mesh(context, attributes, maxVertices, maxIndices) { - this.attributes = attributes; - this.verticesLength = 0; - this.dirtyVertices = false; - this.indicesLength = 0; - this.dirtyIndices = false; - this.elementsPerVertex = 0; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.elementsPerVertex = 0; - for (var i = 0; i < attributes.length; i++) { - this.elementsPerVertex += attributes[i].numElements; - } - this.vertices = new Float32Array(maxVertices * this.elementsPerVertex); - this.indices = new Uint16Array(maxIndices); - this.context.addRestorable(this); - } - Mesh.prototype.getAttributes = function () { return this.attributes; }; - Mesh.prototype.maxVertices = function () { return this.vertices.length / this.elementsPerVertex; }; - Mesh.prototype.numVertices = function () { return this.verticesLength / this.elementsPerVertex; }; - Mesh.prototype.setVerticesLength = function (length) { - this.dirtyVertices = true; - this.verticesLength = length; - }; - Mesh.prototype.getVertices = function () { return this.vertices; }; - Mesh.prototype.maxIndices = function () { return this.indices.length; }; - Mesh.prototype.numIndices = function () { return this.indicesLength; }; - Mesh.prototype.setIndicesLength = function (length) { - this.dirtyIndices = true; - this.indicesLength = length; - }; - Mesh.prototype.getIndices = function () { return this.indices; }; - ; - Mesh.prototype.getVertexSizeInFloats = function () { - var size = 0; - for (var i = 0; i < this.attributes.length; i++) { - var attribute = this.attributes[i]; - size += attribute.numElements; - } - return size; - }; - Mesh.prototype.setVertices = function (vertices) { - this.dirtyVertices = true; - if (vertices.length > this.vertices.length) - throw Error("Mesh can't store more than " + this.maxVertices() + " vertices"); - this.vertices.set(vertices, 0); - this.verticesLength = vertices.length; - }; - Mesh.prototype.setIndices = function (indices) { - this.dirtyIndices = true; - if (indices.length > this.indices.length) - throw Error("Mesh can't store more than " + this.maxIndices() + " indices"); - this.indices.set(indices, 0); - this.indicesLength = indices.length; - }; - Mesh.prototype.draw = function (shader, primitiveType) { - this.drawWithOffset(shader, primitiveType, 0, this.indicesLength > 0 ? this.indicesLength : this.verticesLength / this.elementsPerVertex); - }; - Mesh.prototype.drawWithOffset = function (shader, primitiveType, offset, count) { - var gl = this.context.gl; - if (this.dirtyVertices || this.dirtyIndices) - this.update(); - this.bind(shader); - if (this.indicesLength > 0) { - gl.drawElements(primitiveType, count, gl.UNSIGNED_SHORT, offset * 2); - } - else { - gl.drawArrays(primitiveType, offset, count); - } - this.unbind(shader); - }; - Mesh.prototype.bind = function (shader) { - var gl = this.context.gl; - gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); - var offset = 0; - for (var i = 0; i < this.attributes.length; i++) { - var attrib = this.attributes[i]; - var location_1 = shader.getAttributeLocation(attrib.name); - gl.enableVertexAttribArray(location_1); - gl.vertexAttribPointer(location_1, attrib.numElements, gl.FLOAT, false, this.elementsPerVertex * 4, offset * 4); - offset += attrib.numElements; - } - if (this.indicesLength > 0) - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); - }; - Mesh.prototype.unbind = function (shader) { - var gl = this.context.gl; - for (var i = 0; i < this.attributes.length; i++) { - var attrib = this.attributes[i]; - var location_2 = shader.getAttributeLocation(attrib.name); - gl.disableVertexAttribArray(location_2); - } - gl.bindBuffer(gl.ARRAY_BUFFER, null); - if (this.indicesLength > 0) - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); - }; - Mesh.prototype.update = function () { - var gl = this.context.gl; - if (this.dirtyVertices) { - if (!this.verticesBuffer) { - this.verticesBuffer = gl.createBuffer(); - } - gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.vertices.subarray(0, this.verticesLength), gl.DYNAMIC_DRAW); - this.dirtyVertices = false; - } - if (this.dirtyIndices) { - if (!this.indicesBuffer) { - this.indicesBuffer = gl.createBuffer(); - } - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); - gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices.subarray(0, this.indicesLength), gl.DYNAMIC_DRAW); - this.dirtyIndices = false; - } - }; - Mesh.prototype.restore = function () { - this.verticesBuffer = null; - this.indicesBuffer = null; - this.update(); - }; - Mesh.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - gl.deleteBuffer(this.verticesBuffer); - gl.deleteBuffer(this.indicesBuffer); - }; - return Mesh; - }()); - webgl.Mesh = Mesh; - var VertexAttribute = (function () { - function VertexAttribute(name, type, numElements) { - this.name = name; - this.type = type; - this.numElements = numElements; - } - return VertexAttribute; - }()); - webgl.VertexAttribute = VertexAttribute; - var Position2Attribute = (function (_super) { - __extends(Position2Attribute, _super); - function Position2Attribute() { - return _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 2) || this; - } - return Position2Attribute; - }(VertexAttribute)); - webgl.Position2Attribute = Position2Attribute; - var Position3Attribute = (function (_super) { - __extends(Position3Attribute, _super); - function Position3Attribute() { - return _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 3) || this; - } - return Position3Attribute; - }(VertexAttribute)); - webgl.Position3Attribute = Position3Attribute; - var TexCoordAttribute = (function (_super) { - __extends(TexCoordAttribute, _super); - function TexCoordAttribute(unit) { - if (unit === void 0) { unit = 0; } - return _super.call(this, webgl.Shader.TEXCOORDS + (unit == 0 ? "" : unit), VertexAttributeType.Float, 2) || this; - } - return TexCoordAttribute; - }(VertexAttribute)); - webgl.TexCoordAttribute = TexCoordAttribute; - var ColorAttribute = (function (_super) { - __extends(ColorAttribute, _super); - function ColorAttribute() { - return _super.call(this, webgl.Shader.COLOR, VertexAttributeType.Float, 4) || this; - } - return ColorAttribute; - }(VertexAttribute)); - webgl.ColorAttribute = ColorAttribute; - var Color2Attribute = (function (_super) { - __extends(Color2Attribute, _super); - function Color2Attribute() { - return _super.call(this, webgl.Shader.COLOR2, VertexAttributeType.Float, 4) || this; - } - return Color2Attribute; - }(VertexAttribute)); - webgl.Color2Attribute = Color2Attribute; - var VertexAttributeType; - (function (VertexAttributeType) { - VertexAttributeType[VertexAttributeType["Float"] = 0] = "Float"; - })(VertexAttributeType = webgl.VertexAttributeType || (webgl.VertexAttributeType = {})); - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Mesh = (function () { + function Mesh(context, attributes, maxVertices, maxIndices) { + this.attributes = attributes; + this.verticesLength = 0; + this.dirtyVertices = false; + this.indicesLength = 0; + this.dirtyIndices = false; + this.elementsPerVertex = 0; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.elementsPerVertex = 0; + for (var i = 0; i < attributes.length; i++) { + this.elementsPerVertex += attributes[i].numElements; + } + this.vertices = new Float32Array(maxVertices * this.elementsPerVertex); + this.indices = new Uint16Array(maxIndices); + this.context.addRestorable(this); + } + Mesh.prototype.getAttributes = function () { return this.attributes; }; + Mesh.prototype.maxVertices = function () { return this.vertices.length / this.elementsPerVertex; }; + Mesh.prototype.numVertices = function () { return this.verticesLength / this.elementsPerVertex; }; + Mesh.prototype.setVerticesLength = function (length) { + this.dirtyVertices = true; + this.verticesLength = length; + }; + Mesh.prototype.getVertices = function () { return this.vertices; }; + Mesh.prototype.maxIndices = function () { return this.indices.length; }; + Mesh.prototype.numIndices = function () { return this.indicesLength; }; + Mesh.prototype.setIndicesLength = function (length) { + this.dirtyIndices = true; + this.indicesLength = length; + }; + Mesh.prototype.getIndices = function () { return this.indices; }; + ; + Mesh.prototype.getVertexSizeInFloats = function () { + var size = 0; + for (var i = 0; i < this.attributes.length; i++) { + var attribute = this.attributes[i]; + size += attribute.numElements; + } + return size; + }; + Mesh.prototype.setVertices = function (vertices) { + this.dirtyVertices = true; + if (vertices.length > this.vertices.length) + throw Error("Mesh can't store more than " + this.maxVertices() + " vertices"); + this.vertices.set(vertices, 0); + this.verticesLength = vertices.length; + }; + Mesh.prototype.setIndices = function (indices) { + this.dirtyIndices = true; + if (indices.length > this.indices.length) + throw Error("Mesh can't store more than " + this.maxIndices() + " indices"); + this.indices.set(indices, 0); + this.indicesLength = indices.length; + }; + Mesh.prototype.draw = function (shader, primitiveType) { + this.drawWithOffset(shader, primitiveType, 0, this.indicesLength > 0 ? this.indicesLength : this.verticesLength / this.elementsPerVertex); + }; + Mesh.prototype.drawWithOffset = function (shader, primitiveType, offset, count) { + var gl = this.context.gl; + if (this.dirtyVertices || this.dirtyIndices) + this.update(); + this.bind(shader); + if (this.indicesLength > 0) { + gl.drawElements(primitiveType, count, gl.UNSIGNED_SHORT, offset * 2); + } + else { + gl.drawArrays(primitiveType, offset, count); + } + this.unbind(shader); + }; + Mesh.prototype.bind = function (shader) { + var gl = this.context.gl; + gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); + var offset = 0; + for (var i = 0; i < this.attributes.length; i++) { + var attrib = this.attributes[i]; + var location_1 = shader.getAttributeLocation(attrib.name); + gl.enableVertexAttribArray(location_1); + gl.vertexAttribPointer(location_1, attrib.numElements, gl.FLOAT, false, this.elementsPerVertex * 4, offset * 4); + offset += attrib.numElements; + } + if (this.indicesLength > 0) + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); + }; + Mesh.prototype.unbind = function (shader) { + var gl = this.context.gl; + for (var i = 0; i < this.attributes.length; i++) { + var attrib = this.attributes[i]; + var location_2 = shader.getAttributeLocation(attrib.name); + gl.disableVertexAttribArray(location_2); + } + gl.bindBuffer(gl.ARRAY_BUFFER, null); + if (this.indicesLength > 0) + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); + }; + Mesh.prototype.update = function () { + var gl = this.context.gl; + if (this.dirtyVertices) { + if (!this.verticesBuffer) { + this.verticesBuffer = gl.createBuffer(); + } + gl.bindBuffer(gl.ARRAY_BUFFER, this.verticesBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.vertices.subarray(0, this.verticesLength), gl.DYNAMIC_DRAW); + this.dirtyVertices = false; + } + if (this.dirtyIndices) { + if (!this.indicesBuffer) { + this.indicesBuffer = gl.createBuffer(); + } + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indicesBuffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices.subarray(0, this.indicesLength), gl.DYNAMIC_DRAW); + this.dirtyIndices = false; + } + }; + Mesh.prototype.restore = function () { + this.verticesBuffer = null; + this.indicesBuffer = null; + this.update(); + }; + Mesh.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + gl.deleteBuffer(this.verticesBuffer); + gl.deleteBuffer(this.indicesBuffer); + }; + return Mesh; + }()); + webgl.Mesh = Mesh; + var VertexAttribute = (function () { + function VertexAttribute(name, type, numElements) { + this.name = name; + this.type = type; + this.numElements = numElements; + } + return VertexAttribute; + }()); + webgl.VertexAttribute = VertexAttribute; + var Position2Attribute = (function (_super) { + __extends(Position2Attribute, _super); + function Position2Attribute() { + return _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 2) || this; + } + return Position2Attribute; + }(VertexAttribute)); + webgl.Position2Attribute = Position2Attribute; + var Position3Attribute = (function (_super) { + __extends(Position3Attribute, _super); + function Position3Attribute() { + return _super.call(this, webgl.Shader.POSITION, VertexAttributeType.Float, 3) || this; + } + return Position3Attribute; + }(VertexAttribute)); + webgl.Position3Attribute = Position3Attribute; + var TexCoordAttribute = (function (_super) { + __extends(TexCoordAttribute, _super); + function TexCoordAttribute(unit) { + if (unit === void 0) { unit = 0; } + return _super.call(this, webgl.Shader.TEXCOORDS + (unit == 0 ? "" : unit), VertexAttributeType.Float, 2) || this; + } + return TexCoordAttribute; + }(VertexAttribute)); + webgl.TexCoordAttribute = TexCoordAttribute; + var ColorAttribute = (function (_super) { + __extends(ColorAttribute, _super); + function ColorAttribute() { + return _super.call(this, webgl.Shader.COLOR, VertexAttributeType.Float, 4) || this; + } + return ColorAttribute; + }(VertexAttribute)); + webgl.ColorAttribute = ColorAttribute; + var Color2Attribute = (function (_super) { + __extends(Color2Attribute, _super); + function Color2Attribute() { + return _super.call(this, webgl.Shader.COLOR2, VertexAttributeType.Float, 4) || this; + } + return Color2Attribute; + }(VertexAttribute)); + webgl.Color2Attribute = Color2Attribute; + var VertexAttributeType; + (function (VertexAttributeType) { + VertexAttributeType[VertexAttributeType["Float"] = 0] = "Float"; + })(VertexAttributeType = webgl.VertexAttributeType || (webgl.VertexAttributeType = {})); + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var PolygonBatcher = (function () { - function PolygonBatcher(context, twoColorTint, maxVertices) { - if (twoColorTint === void 0) { twoColorTint = true; } - if (maxVertices === void 0) { maxVertices = 10920; } - this.isDrawing = false; - this.shader = null; - this.lastTexture = null; - this.verticesLength = 0; - this.indicesLength = 0; - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - var attributes = twoColorTint ? - [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute(), new webgl.Color2Attribute()] : - [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute()]; - this.mesh = new webgl.Mesh(context, attributes, maxVertices, maxVertices * 3); - this.srcBlend = this.context.gl.SRC_ALPHA; - this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; - } - PolygonBatcher.prototype.begin = function (shader) { - var gl = this.context.gl; - if (this.isDrawing) - throw new Error("PolygonBatch is already drawing. Call PolygonBatch.end() before calling PolygonBatch.begin()"); - this.drawCalls = 0; - this.shader = shader; - this.lastTexture = null; - this.isDrawing = true; - gl.enable(gl.BLEND); - gl.blendFunc(this.srcBlend, this.dstBlend); - }; - PolygonBatcher.prototype.setBlendMode = function (srcBlend, dstBlend) { - var gl = this.context.gl; - this.srcBlend = srcBlend; - this.dstBlend = dstBlend; - if (this.isDrawing) { - this.flush(); - gl.blendFunc(this.srcBlend, this.dstBlend); - } - }; - PolygonBatcher.prototype.draw = function (texture, vertices, indices) { - if (texture != this.lastTexture) { - this.flush(); - this.lastTexture = texture; - } - else if (this.verticesLength + vertices.length > this.mesh.getVertices().length || - this.indicesLength + indices.length > this.mesh.getIndices().length) { - this.flush(); - } - var indexStart = this.mesh.numVertices(); - this.mesh.getVertices().set(vertices, this.verticesLength); - this.verticesLength += vertices.length; - this.mesh.setVerticesLength(this.verticesLength); - var indicesArray = this.mesh.getIndices(); - for (var i = this.indicesLength, j = 0; j < indices.length; i++, j++) - indicesArray[i] = indices[j] + indexStart; - this.indicesLength += indices.length; - this.mesh.setIndicesLength(this.indicesLength); - }; - PolygonBatcher.prototype.flush = function () { - var gl = this.context.gl; - if (this.verticesLength == 0) - return; - this.lastTexture.bind(); - this.mesh.draw(this.shader, gl.TRIANGLES); - this.verticesLength = 0; - this.indicesLength = 0; - this.mesh.setVerticesLength(0); - this.mesh.setIndicesLength(0); - this.drawCalls++; - }; - PolygonBatcher.prototype.end = function () { - var gl = this.context.gl; - if (!this.isDrawing) - throw new Error("PolygonBatch is not drawing. Call PolygonBatch.begin() before calling PolygonBatch.end()"); - if (this.verticesLength > 0 || this.indicesLength > 0) - this.flush(); - this.shader = null; - this.lastTexture = null; - this.isDrawing = false; - gl.disable(gl.BLEND); - }; - PolygonBatcher.prototype.getDrawCalls = function () { return this.drawCalls; }; - PolygonBatcher.prototype.dispose = function () { - this.mesh.dispose(); - }; - return PolygonBatcher; - }()); - webgl.PolygonBatcher = PolygonBatcher; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var PolygonBatcher = (function () { + function PolygonBatcher(context, twoColorTint, maxVertices) { + if (twoColorTint === void 0) { twoColorTint = true; } + if (maxVertices === void 0) { maxVertices = 10920; } + this.isDrawing = false; + this.shader = null; + this.lastTexture = null; + this.verticesLength = 0; + this.indicesLength = 0; + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + var attributes = twoColorTint ? + [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute(), new webgl.Color2Attribute()] : + [new webgl.Position2Attribute(), new webgl.ColorAttribute(), new webgl.TexCoordAttribute()]; + this.mesh = new webgl.Mesh(context, attributes, maxVertices, maxVertices * 3); + this.srcBlend = this.context.gl.SRC_ALPHA; + this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; + } + PolygonBatcher.prototype.begin = function (shader) { + var gl = this.context.gl; + if (this.isDrawing) + throw new Error("PolygonBatch is already drawing. Call PolygonBatch.end() before calling PolygonBatch.begin()"); + this.drawCalls = 0; + this.shader = shader; + this.lastTexture = null; + this.isDrawing = true; + gl.enable(gl.BLEND); + gl.blendFunc(this.srcBlend, this.dstBlend); + }; + PolygonBatcher.prototype.setBlendMode = function (srcBlend, dstBlend) { + var gl = this.context.gl; + this.srcBlend = srcBlend; + this.dstBlend = dstBlend; + if (this.isDrawing) { + this.flush(); + gl.blendFunc(this.srcBlend, this.dstBlend); + } + }; + PolygonBatcher.prototype.draw = function (texture, vertices, indices) { + if (texture != this.lastTexture) { + this.flush(); + this.lastTexture = texture; + } + else if (this.verticesLength + vertices.length > this.mesh.getVertices().length || + this.indicesLength + indices.length > this.mesh.getIndices().length) { + this.flush(); + } + var indexStart = this.mesh.numVertices(); + this.mesh.getVertices().set(vertices, this.verticesLength); + this.verticesLength += vertices.length; + this.mesh.setVerticesLength(this.verticesLength); + var indicesArray = this.mesh.getIndices(); + for (var i = this.indicesLength, j = 0; j < indices.length; i++, j++) + indicesArray[i] = indices[j] + indexStart; + this.indicesLength += indices.length; + this.mesh.setIndicesLength(this.indicesLength); + }; + PolygonBatcher.prototype.flush = function () { + var gl = this.context.gl; + if (this.verticesLength == 0) + return; + this.lastTexture.bind(); + this.mesh.draw(this.shader, gl.TRIANGLES); + this.verticesLength = 0; + this.indicesLength = 0; + this.mesh.setVerticesLength(0); + this.mesh.setIndicesLength(0); + this.drawCalls++; + }; + PolygonBatcher.prototype.end = function () { + var gl = this.context.gl; + if (!this.isDrawing) + throw new Error("PolygonBatch is not drawing. Call PolygonBatch.begin() before calling PolygonBatch.end()"); + if (this.verticesLength > 0 || this.indicesLength > 0) + this.flush(); + this.shader = null; + this.lastTexture = null; + this.isDrawing = false; + gl.disable(gl.BLEND); + }; + PolygonBatcher.prototype.getDrawCalls = function () { return this.drawCalls; }; + PolygonBatcher.prototype.dispose = function () { + this.mesh.dispose(); + }; + return PolygonBatcher; + }()); + webgl.PolygonBatcher = PolygonBatcher; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var SceneRenderer = (function () { - function SceneRenderer(canvas, context, twoColorTint) { - if (twoColorTint === void 0) { twoColorTint = true; } - this.twoColorTint = false; - this.activeRenderer = null; - this.QUAD = [ - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 0, 0, - ]; - this.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - this.WHITE = new spine.Color(1, 1, 1, 1); - this.canvas = canvas; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.twoColorTint = twoColorTint; - this.camera = new webgl.OrthoCamera(canvas.width, canvas.height); - this.batcherShader = twoColorTint ? webgl.Shader.newTwoColoredTextured(this.context) : webgl.Shader.newColoredTextured(this.context); - this.batcher = new webgl.PolygonBatcher(this.context, twoColorTint); - this.shapesShader = webgl.Shader.newColored(this.context); - this.shapes = new webgl.ShapeRenderer(this.context); - this.skeletonRenderer = new webgl.SkeletonRenderer(this.context, twoColorTint); - this.skeletonDebugRenderer = new webgl.SkeletonDebugRenderer(this.context); - } - SceneRenderer.prototype.begin = function () { - this.camera.update(); - this.enableRenderer(this.batcher); - }; - SceneRenderer.prototype.drawSkeleton = function (skeleton, premultipliedAlpha, slotRangeStart, slotRangeEnd) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - if (slotRangeStart === void 0) { slotRangeStart = -1; } - if (slotRangeEnd === void 0) { slotRangeEnd = -1; } - this.enableRenderer(this.batcher); - this.skeletonRenderer.premultipliedAlpha = premultipliedAlpha; - this.skeletonRenderer.draw(this.batcher, skeleton, slotRangeStart, slotRangeEnd); - }; - SceneRenderer.prototype.drawSkeletonDebug = function (skeleton, premultipliedAlpha, ignoredBones) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - if (ignoredBones === void 0) { ignoredBones = null; } - this.enableRenderer(this.shapes); - this.skeletonDebugRenderer.premultipliedAlpha = premultipliedAlpha; - this.skeletonDebugRenderer.draw(this.shapes, skeleton, ignoredBones); - }; - SceneRenderer.prototype.drawTexture = function (texture, 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; - var i = 0; - quad[i++] = x; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.drawTextureUV = function (texture, x, y, width, height, u, v, u2, v2, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var i = 0; - quad[i++] = x; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = u; - quad[i++] = v; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = u2; - quad[i++] = v; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = u2; - quad[i++] = v2; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = u; - quad[i++] = v2; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.drawTextureRotated = function (texture, x, y, width, height, pivotX, pivotY, angle, color, premultipliedAlpha) { - if (color === void 0) { color = null; } - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var worldOriginX = x + pivotX; - var worldOriginY = y + pivotY; - var fx = -pivotX; - var fy = -pivotY; - var fx2 = width - pivotX; - var fy2 = height - pivotY; - var p1x = fx; - var p1y = fy; - var p2x = fx; - var p2y = fy2; - var p3x = fx2; - var p3y = fy2; - var p4x = fx2; - var p4y = fy; - var x1 = 0; - var y1 = 0; - var x2 = 0; - var y2 = 0; - var x3 = 0; - var y3 = 0; - var x4 = 0; - var y4 = 0; - if (angle != 0) { - var cos = spine.MathUtils.cosDeg(angle); - var sin = spine.MathUtils.sinDeg(angle); - x1 = cos * p1x - sin * p1y; - y1 = sin * p1x + cos * p1y; - x4 = cos * p2x - sin * p2y; - y4 = sin * p2x + cos * p2y; - x3 = cos * p3x - sin * p3y; - y3 = sin * p3x + cos * p3y; - x2 = x3 + (x1 - x4); - y2 = y3 + (y1 - y4); - } - else { - x1 = p1x; - y1 = p1y; - x4 = p2x; - y4 = p2y; - x3 = p3x; - y3 = p3y; - x2 = p4x; - y2 = p4y; - } - x1 += worldOriginX; - y1 += worldOriginY; - x2 += worldOriginX; - y2 += worldOriginY; - x3 += worldOriginX; - y3 += worldOriginY; - x4 += worldOriginX; - y4 += worldOriginY; - var i = 0; - quad[i++] = x1; - quad[i++] = y1; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x2; - quad[i++] = y2; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 1; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x3; - quad[i++] = y3; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 1; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x4; - quad[i++] = y4; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = 0; - quad[i++] = 0; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); - }; - SceneRenderer.prototype.drawRegion = function (region, x, y, width, height, color, premultipliedAlpha) { - if (color === void 0) { color = null; } - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - this.enableRenderer(this.batcher); - if (color === null) - color = this.WHITE; - var quad = this.QUAD; - var i = 0; - quad[i++] = x; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u; - quad[i++] = region.v2; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u2; - quad[i++] = region.v2; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x + width; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u2; - quad[i++] = region.v; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - quad[i++] = x; - quad[i++] = y + height; - quad[i++] = color.r; - quad[i++] = color.g; - quad[i++] = color.b; - quad[i++] = color.a; - quad[i++] = region.u; - quad[i++] = region.v; - if (this.twoColorTint) { - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - quad[i++] = 0; - } - 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; } - this.enableRenderer(this.shapes); - this.shapes.line(x, y, x2, y2, color); - }; - SceneRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - this.enableRenderer(this.shapes); - this.shapes.triangle(filled, x, y, x2, y2, x3, y3, color, color2, color3); - }; - SceneRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - if (color4 === void 0) { color4 = null; } - this.enableRenderer(this.shapes); - this.shapes.quad(filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4); - }; - SceneRenderer.prototype.rect = function (filled, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.rect(filled, x, y, width, height, color); - }; - SceneRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.rectLine(filled, x1, y1, x2, y2, width, color); - }; - SceneRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.polygon(polygonVertices, offset, count, color); - }; - SceneRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { - if (color === void 0) { color = null; } - if (segments === void 0) { segments = 0; } - this.enableRenderer(this.shapes); - this.shapes.circle(filled, x, y, radius, color, segments); - }; - SceneRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { - if (color === void 0) { color = null; } - this.enableRenderer(this.shapes); - this.shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color); - }; - SceneRenderer.prototype.end = function () { - if (this.activeRenderer === this.batcher) - this.batcher.end(); - else if (this.activeRenderer === this.shapes) - this.shapes.end(); - this.activeRenderer = null; - }; - SceneRenderer.prototype.resize = function (resizeMode) { - var canvas = this.canvas; - var w = canvas.clientWidth; - var h = canvas.clientHeight; - if (canvas.width != w || canvas.height != h) { - canvas.width = w; - canvas.height = h; - } - this.context.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) - return; - this.end(); - if (renderer instanceof webgl.PolygonBatcher) { - this.batcherShader.bind(); - this.batcherShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); - this.batcherShader.setUniformi("u_texture", 0); - this.batcher.begin(this.batcherShader); - this.activeRenderer = this.batcher; - } - else if (renderer instanceof webgl.ShapeRenderer) { - this.shapesShader.bind(); - this.shapesShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); - this.shapes.begin(this.shapesShader); - this.activeRenderer = this.shapes; - } - else { - this.activeRenderer = this.skeletonDebugRenderer; - } - }; - SceneRenderer.prototype.dispose = function () { - this.batcher.dispose(); - this.batcherShader.dispose(); - this.shapes.dispose(); - this.shapesShader.dispose(); - this.skeletonDebugRenderer.dispose(); - }; - return SceneRenderer; - }()); - webgl.SceneRenderer = SceneRenderer; - var ResizeMode; - (function (ResizeMode) { - ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch"; - ResizeMode[ResizeMode["Expand"] = 1] = "Expand"; - ResizeMode[ResizeMode["Fit"] = 2] = "Fit"; - })(ResizeMode = webgl.ResizeMode || (webgl.ResizeMode = {})); - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var SceneRenderer = (function () { + function SceneRenderer(canvas, context, twoColorTint) { + if (twoColorTint === void 0) { twoColorTint = true; } + this.twoColorTint = false; + this.activeRenderer = null; + this.QUAD = [ + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, + ]; + this.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + this.WHITE = new spine.Color(1, 1, 1, 1); + this.canvas = canvas; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.twoColorTint = twoColorTint; + this.camera = new webgl.OrthoCamera(canvas.width, canvas.height); + this.batcherShader = twoColorTint ? webgl.Shader.newTwoColoredTextured(this.context) : webgl.Shader.newColoredTextured(this.context); + this.batcher = new webgl.PolygonBatcher(this.context, twoColorTint); + this.shapesShader = webgl.Shader.newColored(this.context); + this.shapes = new webgl.ShapeRenderer(this.context); + this.skeletonRenderer = new webgl.SkeletonRenderer(this.context, twoColorTint); + this.skeletonDebugRenderer = new webgl.SkeletonDebugRenderer(this.context); + } + SceneRenderer.prototype.begin = function () { + this.camera.update(); + this.enableRenderer(this.batcher); + }; + SceneRenderer.prototype.drawSkeleton = function (skeleton, premultipliedAlpha, slotRangeStart, slotRangeEnd) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + if (slotRangeStart === void 0) { slotRangeStart = -1; } + if (slotRangeEnd === void 0) { slotRangeEnd = -1; } + this.enableRenderer(this.batcher); + this.skeletonRenderer.premultipliedAlpha = premultipliedAlpha; + this.skeletonRenderer.draw(this.batcher, skeleton, slotRangeStart, slotRangeEnd); + }; + SceneRenderer.prototype.drawSkeletonDebug = function (skeleton, premultipliedAlpha, ignoredBones) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + if (ignoredBones === void 0) { ignoredBones = null; } + this.enableRenderer(this.shapes); + this.skeletonDebugRenderer.premultipliedAlpha = premultipliedAlpha; + this.skeletonDebugRenderer.draw(this.shapes, skeleton, ignoredBones); + }; + SceneRenderer.prototype.drawTexture = function (texture, 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; + var i = 0; + quad[i++] = x; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.drawTextureUV = function (texture, x, y, width, height, u, v, u2, v2, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var i = 0; + quad[i++] = x; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = u; + quad[i++] = v; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = u2; + quad[i++] = v; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = u2; + quad[i++] = v2; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = u; + quad[i++] = v2; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.drawTextureRotated = function (texture, x, y, width, height, pivotX, pivotY, angle, color, premultipliedAlpha) { + if (color === void 0) { color = null; } + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var worldOriginX = x + pivotX; + var worldOriginY = y + pivotY; + var fx = -pivotX; + var fy = -pivotY; + var fx2 = width - pivotX; + var fy2 = height - pivotY; + var p1x = fx; + var p1y = fy; + var p2x = fx; + var p2y = fy2; + var p3x = fx2; + var p3y = fy2; + var p4x = fx2; + var p4y = fy; + var x1 = 0; + var y1 = 0; + var x2 = 0; + var y2 = 0; + var x3 = 0; + var y3 = 0; + var x4 = 0; + var y4 = 0; + if (angle != 0) { + var cos = spine.MathUtils.cosDeg(angle); + var sin = spine.MathUtils.sinDeg(angle); + x1 = cos * p1x - sin * p1y; + y1 = sin * p1x + cos * p1y; + x4 = cos * p2x - sin * p2y; + y4 = sin * p2x + cos * p2y; + x3 = cos * p3x - sin * p3y; + y3 = sin * p3x + cos * p3y; + x2 = x3 + (x1 - x4); + y2 = y3 + (y1 - y4); + } + else { + x1 = p1x; + y1 = p1y; + x4 = p2x; + y4 = p2y; + x3 = p3x; + y3 = p3y; + x2 = p4x; + y2 = p4y; + } + x1 += worldOriginX; + y1 += worldOriginY; + x2 += worldOriginX; + y2 += worldOriginY; + x3 += worldOriginX; + y3 += worldOriginY; + x4 += worldOriginX; + y4 += worldOriginY; + var i = 0; + quad[i++] = x1; + quad[i++] = y1; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x2; + quad[i++] = y2; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 1; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x3; + quad[i++] = y3; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 1; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x4; + quad[i++] = y4; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = 0; + quad[i++] = 0; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + this.batcher.draw(texture, quad, this.QUAD_TRIANGLES); + }; + SceneRenderer.prototype.drawRegion = function (region, x, y, width, height, color, premultipliedAlpha) { + if (color === void 0) { color = null; } + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + this.enableRenderer(this.batcher); + if (color === null) + color = this.WHITE; + var quad = this.QUAD; + var i = 0; + quad[i++] = x; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u; + quad[i++] = region.v2; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u2; + quad[i++] = region.v2; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x + width; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u2; + quad[i++] = region.v; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + quad[i++] = x; + quad[i++] = y + height; + quad[i++] = color.r; + quad[i++] = color.g; + quad[i++] = color.b; + quad[i++] = color.a; + quad[i++] = region.u; + quad[i++] = region.v; + if (this.twoColorTint) { + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + quad[i++] = 0; + } + 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; } + this.enableRenderer(this.shapes); + this.shapes.line(x, y, x2, y2, color); + }; + SceneRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + this.enableRenderer(this.shapes); + this.shapes.triangle(filled, x, y, x2, y2, x3, y3, color, color2, color3); + }; + SceneRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + if (color4 === void 0) { color4 = null; } + this.enableRenderer(this.shapes); + this.shapes.quad(filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4); + }; + SceneRenderer.prototype.rect = function (filled, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.rect(filled, x, y, width, height, color); + }; + SceneRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.rectLine(filled, x1, y1, x2, y2, width, color); + }; + SceneRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.polygon(polygonVertices, offset, count, color); + }; + SceneRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { + if (color === void 0) { color = null; } + if (segments === void 0) { segments = 0; } + this.enableRenderer(this.shapes); + this.shapes.circle(filled, x, y, radius, color, segments); + }; + SceneRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { + if (color === void 0) { color = null; } + this.enableRenderer(this.shapes); + this.shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color); + }; + SceneRenderer.prototype.end = function () { + if (this.activeRenderer === this.batcher) + this.batcher.end(); + else if (this.activeRenderer === this.shapes) + this.shapes.end(); + this.activeRenderer = null; + }; + SceneRenderer.prototype.resize = function (resizeMode) { + var canvas = this.canvas; + var w = canvas.clientWidth; + var h = canvas.clientHeight; + if (canvas.width != w || canvas.height != h) { + canvas.width = w; + canvas.height = h; + } + this.context.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) + return; + this.end(); + if (renderer instanceof webgl.PolygonBatcher) { + this.batcherShader.bind(); + this.batcherShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); + this.batcherShader.setUniformi("u_texture", 0); + this.batcher.begin(this.batcherShader); + this.activeRenderer = this.batcher; + } + else if (renderer instanceof webgl.ShapeRenderer) { + this.shapesShader.bind(); + this.shapesShader.setUniform4x4f(webgl.Shader.MVP_MATRIX, this.camera.projectionView.values); + this.shapes.begin(this.shapesShader); + this.activeRenderer = this.shapes; + } + else { + this.activeRenderer = this.skeletonDebugRenderer; + } + }; + SceneRenderer.prototype.dispose = function () { + this.batcher.dispose(); + this.batcherShader.dispose(); + this.shapes.dispose(); + this.shapesShader.dispose(); + this.skeletonDebugRenderer.dispose(); + }; + return SceneRenderer; + }()); + webgl.SceneRenderer = SceneRenderer; + var ResizeMode; + (function (ResizeMode) { + ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch"; + ResizeMode[ResizeMode["Expand"] = 1] = "Expand"; + ResizeMode[ResizeMode["Fit"] = 2] = "Fit"; + })(ResizeMode = webgl.ResizeMode || (webgl.ResizeMode = {})); + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Shader = (function () { - function Shader(context, vertexShader, fragmentShader) { - this.vertexShader = vertexShader; - this.fragmentShader = fragmentShader; - this.vs = null; - this.fs = null; - this.program = null; - this.tmp2x2 = new Float32Array(2 * 2); - this.tmp3x3 = new Float32Array(3 * 3); - this.tmp4x4 = new Float32Array(4 * 4); - this.vsSource = vertexShader; - this.fsSource = fragmentShader; - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.context.addRestorable(this); - this.compile(); - } - Shader.prototype.getProgram = function () { return this.program; }; - Shader.prototype.getVertexShader = function () { return this.vertexShader; }; - Shader.prototype.getFragmentShader = function () { return this.fragmentShader; }; - Shader.prototype.getVertexShaderSource = function () { return this.vsSource; }; - Shader.prototype.getFragmentSource = function () { return this.fsSource; }; - Shader.prototype.compile = function () { - var gl = this.context.gl; - try { - this.vs = this.compileShader(gl.VERTEX_SHADER, this.vertexShader); - this.fs = this.compileShader(gl.FRAGMENT_SHADER, this.fragmentShader); - this.program = this.compileProgram(this.vs, this.fs); - } - catch (e) { - this.dispose(); - throw e; - } - }; - Shader.prototype.compileShader = function (type, source) { - var gl = this.context.gl; - var shader = gl.createShader(type); - gl.shaderSource(shader, source); - gl.compileShader(shader); - if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { - var error = "Couldn't compile shader: " + gl.getShaderInfoLog(shader); - gl.deleteShader(shader); - if (!gl.isContextLost()) - throw new Error(error); - } - return shader; - }; - Shader.prototype.compileProgram = function (vs, fs) { - var gl = this.context.gl; - var program = gl.createProgram(); - gl.attachShader(program, vs); - gl.attachShader(program, fs); - gl.linkProgram(program); - if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { - var error = "Couldn't compile shader program: " + gl.getProgramInfoLog(program); - gl.deleteProgram(program); - if (!gl.isContextLost()) - throw new Error(error); - } - return program; - }; - Shader.prototype.restore = function () { - this.compile(); - }; - Shader.prototype.bind = function () { - this.context.gl.useProgram(this.program); - }; - Shader.prototype.unbind = function () { - this.context.gl.useProgram(null); - }; - Shader.prototype.setUniformi = function (uniform, value) { - this.context.gl.uniform1i(this.getUniformLocation(uniform), value); - }; - Shader.prototype.setUniformf = function (uniform, value) { - this.context.gl.uniform1f(this.getUniformLocation(uniform), value); - }; - Shader.prototype.setUniform2f = function (uniform, value, value2) { - this.context.gl.uniform2f(this.getUniformLocation(uniform), value, value2); - }; - Shader.prototype.setUniform3f = function (uniform, value, value2, value3) { - this.context.gl.uniform3f(this.getUniformLocation(uniform), value, value2, value3); - }; - Shader.prototype.setUniform4f = function (uniform, value, value2, value3, value4) { - this.context.gl.uniform4f(this.getUniformLocation(uniform), value, value2, value3, value4); - }; - Shader.prototype.setUniform2x2f = function (uniform, value) { - var gl = this.context.gl; - this.tmp2x2.set(value); - gl.uniformMatrix2fv(this.getUniformLocation(uniform), false, this.tmp2x2); - }; - Shader.prototype.setUniform3x3f = function (uniform, value) { - var gl = this.context.gl; - this.tmp3x3.set(value); - gl.uniformMatrix3fv(this.getUniformLocation(uniform), false, this.tmp3x3); - }; - Shader.prototype.setUniform4x4f = function (uniform, value) { - var gl = this.context.gl; - this.tmp4x4.set(value); - gl.uniformMatrix4fv(this.getUniformLocation(uniform), false, this.tmp4x4); - }; - Shader.prototype.getUniformLocation = function (uniform) { - var gl = this.context.gl; - var location = gl.getUniformLocation(this.program, uniform); - if (!location && !gl.isContextLost()) - throw new Error("Couldn't find location for uniform " + uniform); - return location; - }; - Shader.prototype.getAttributeLocation = function (attribute) { - var gl = this.context.gl; - var location = gl.getAttribLocation(this.program, attribute); - if (location == -1 && !gl.isContextLost()) - throw new Error("Couldn't find location for attribute " + attribute); - return location; - }; - Shader.prototype.dispose = function () { - this.context.removeRestorable(this); - var gl = this.context.gl; - if (this.vs) { - gl.deleteShader(this.vs); - this.vs = null; - } - if (this.fs) { - gl.deleteShader(this.fs); - this.fs = null; - } - if (this.program) { - gl.deleteProgram(this.program); - this.program = null; - } - }; - Shader.newColoredTextured = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color * texture2D(u_texture, v_texCoords);\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.newTwoColoredTextured = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR2 + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_light;\n\t\t\t\tvarying vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_light = " + Shader.COLOR + ";\n\t\t\t\t\tv_dark = " + Shader.COLOR2 + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_light;\n\t\t\t\tvarying LOWP vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tvec4 texColor = texture2D(u_texture, v_texCoords);\n\t\t\t\t\tgl_FragColor.a = texColor.a * v_light.a;\n\t\t\t\t\tgl_FragColor.rgb = ((texColor.a - 1.0) * v_dark.a + 1.0 - texColor.rgb) * v_dark.rgb + texColor.rgb * v_light.rgb;\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.newColored = function (context) { - var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; - var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color;\n\t\t\t\t}\n\t\t\t"; - return new Shader(context, vs, fs); - }; - Shader.MVP_MATRIX = "u_projTrans"; - Shader.POSITION = "a_position"; - Shader.COLOR = "a_color"; - Shader.COLOR2 = "a_color2"; - Shader.TEXCOORDS = "a_texCoords"; - Shader.SAMPLER = "u_texture"; - return Shader; - }()); - webgl.Shader = Shader; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Shader = (function () { + function Shader(context, vertexShader, fragmentShader) { + this.vertexShader = vertexShader; + this.fragmentShader = fragmentShader; + this.vs = null; + this.fs = null; + this.program = null; + this.tmp2x2 = new Float32Array(2 * 2); + this.tmp3x3 = new Float32Array(3 * 3); + this.tmp4x4 = new Float32Array(4 * 4); + this.vsSource = vertexShader; + this.fsSource = fragmentShader; + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.context.addRestorable(this); + this.compile(); + } + Shader.prototype.getProgram = function () { return this.program; }; + Shader.prototype.getVertexShader = function () { return this.vertexShader; }; + Shader.prototype.getFragmentShader = function () { return this.fragmentShader; }; + Shader.prototype.getVertexShaderSource = function () { return this.vsSource; }; + Shader.prototype.getFragmentSource = function () { return this.fsSource; }; + Shader.prototype.compile = function () { + var gl = this.context.gl; + try { + this.vs = this.compileShader(gl.VERTEX_SHADER, this.vertexShader); + this.fs = this.compileShader(gl.FRAGMENT_SHADER, this.fragmentShader); + this.program = this.compileProgram(this.vs, this.fs); + } + catch (e) { + this.dispose(); + throw e; + } + }; + Shader.prototype.compileShader = function (type, source) { + var gl = this.context.gl; + var shader = gl.createShader(type); + gl.shaderSource(shader, source); + gl.compileShader(shader); + if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { + var error = "Couldn't compile shader: " + gl.getShaderInfoLog(shader); + gl.deleteShader(shader); + if (!gl.isContextLost()) + throw new Error(error); + } + return shader; + }; + Shader.prototype.compileProgram = function (vs, fs) { + var gl = this.context.gl; + var program = gl.createProgram(); + gl.attachShader(program, vs); + gl.attachShader(program, fs); + gl.linkProgram(program); + if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { + var error = "Couldn't compile shader program: " + gl.getProgramInfoLog(program); + gl.deleteProgram(program); + if (!gl.isContextLost()) + throw new Error(error); + } + return program; + }; + Shader.prototype.restore = function () { + this.compile(); + }; + Shader.prototype.bind = function () { + this.context.gl.useProgram(this.program); + }; + Shader.prototype.unbind = function () { + this.context.gl.useProgram(null); + }; + Shader.prototype.setUniformi = function (uniform, value) { + this.context.gl.uniform1i(this.getUniformLocation(uniform), value); + }; + Shader.prototype.setUniformf = function (uniform, value) { + this.context.gl.uniform1f(this.getUniformLocation(uniform), value); + }; + Shader.prototype.setUniform2f = function (uniform, value, value2) { + this.context.gl.uniform2f(this.getUniformLocation(uniform), value, value2); + }; + Shader.prototype.setUniform3f = function (uniform, value, value2, value3) { + this.context.gl.uniform3f(this.getUniformLocation(uniform), value, value2, value3); + }; + Shader.prototype.setUniform4f = function (uniform, value, value2, value3, value4) { + this.context.gl.uniform4f(this.getUniformLocation(uniform), value, value2, value3, value4); + }; + Shader.prototype.setUniform2x2f = function (uniform, value) { + var gl = this.context.gl; + this.tmp2x2.set(value); + gl.uniformMatrix2fv(this.getUniformLocation(uniform), false, this.tmp2x2); + }; + Shader.prototype.setUniform3x3f = function (uniform, value) { + var gl = this.context.gl; + this.tmp3x3.set(value); + gl.uniformMatrix3fv(this.getUniformLocation(uniform), false, this.tmp3x3); + }; + Shader.prototype.setUniform4x4f = function (uniform, value) { + var gl = this.context.gl; + this.tmp4x4.set(value); + gl.uniformMatrix4fv(this.getUniformLocation(uniform), false, this.tmp4x4); + }; + Shader.prototype.getUniformLocation = function (uniform) { + var gl = this.context.gl; + var location = gl.getUniformLocation(this.program, uniform); + if (!location && !gl.isContextLost()) + throw new Error("Couldn't find location for uniform " + uniform); + return location; + }; + Shader.prototype.getAttributeLocation = function (attribute) { + var gl = this.context.gl; + var location = gl.getAttribLocation(this.program, attribute); + if (location == -1 && !gl.isContextLost()) + throw new Error("Couldn't find location for attribute " + attribute); + return location; + }; + Shader.prototype.dispose = function () { + this.context.removeRestorable(this); + var gl = this.context.gl; + if (this.vs) { + gl.deleteShader(this.vs); + this.vs = null; + } + if (this.fs) { + gl.deleteShader(this.fs); + this.fs = null; + } + if (this.program) { + gl.deleteProgram(this.program); + this.program = null; + } + }; + Shader.newColoredTextured = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color * texture2D(u_texture, v_texCoords);\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.newTwoColoredTextured = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR2 + ";\n\t\t\t\tattribute vec2 " + Shader.TEXCOORDS + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_light;\n\t\t\t\tvarying vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_light = " + Shader.COLOR + ";\n\t\t\t\t\tv_dark = " + Shader.COLOR2 + ";\n\t\t\t\t\tv_texCoords = " + Shader.TEXCOORDS + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_light;\n\t\t\t\tvarying LOWP vec4 v_dark;\n\t\t\t\tvarying vec2 v_texCoords;\n\t\t\t\tuniform sampler2D u_texture;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tvec4 texColor = texture2D(u_texture, v_texCoords);\n\t\t\t\t\tgl_FragColor.a = texColor.a * v_light.a;\n\t\t\t\t\tgl_FragColor.rgb = ((texColor.a - 1.0) * v_dark.a + 1.0 - texColor.rgb) * v_dark.rgb + texColor.rgb * v_light.rgb;\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.newColored = function (context) { + var vs = "\n\t\t\t\tattribute vec4 " + Shader.POSITION + ";\n\t\t\t\tattribute vec4 " + Shader.COLOR + ";\n\t\t\t\tuniform mat4 " + Shader.MVP_MATRIX + ";\n\t\t\t\tvarying vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tv_color = " + Shader.COLOR + ";\n\t\t\t\t\tgl_Position = " + Shader.MVP_MATRIX + " * " + Shader.POSITION + ";\n\t\t\t\t}\n\t\t\t"; + var fs = "\n\t\t\t\t#ifdef GL_ES\n\t\t\t\t\t#define LOWP lowp\n\t\t\t\t\tprecision mediump float;\n\t\t\t\t#else\n\t\t\t\t\t#define LOWP\n\t\t\t\t#endif\n\t\t\t\tvarying LOWP vec4 v_color;\n\n\t\t\t\tvoid main () {\n\t\t\t\t\tgl_FragColor = v_color;\n\t\t\t\t}\n\t\t\t"; + return new Shader(context, vs, fs); + }; + Shader.MVP_MATRIX = "u_projTrans"; + Shader.POSITION = "a_position"; + Shader.COLOR = "a_color"; + Shader.COLOR2 = "a_color2"; + Shader.TEXCOORDS = "a_texCoords"; + Shader.SAMPLER = "u_texture"; + return Shader; + }()); + webgl.Shader = Shader; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var ShapeRenderer = (function () { - function ShapeRenderer(context, maxVertices) { - if (maxVertices === void 0) { maxVertices = 10920; } - this.isDrawing = false; - this.shapeType = ShapeType.Filled; - this.color = new spine.Color(1, 1, 1, 1); - this.vertexIndex = 0; - this.tmp = new spine.Vector2(); - if (maxVertices > 10920) - throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - this.mesh = new webgl.Mesh(context, [new webgl.Position2Attribute(), new webgl.ColorAttribute()], maxVertices, 0); - this.srcBlend = this.context.gl.SRC_ALPHA; - this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; - } - ShapeRenderer.prototype.begin = function (shader) { - if (this.isDrawing) - throw new Error("ShapeRenderer.begin() has already been called"); - this.shader = shader; - this.vertexIndex = 0; - this.isDrawing = true; - var gl = this.context.gl; - gl.enable(gl.BLEND); - gl.blendFunc(this.srcBlend, this.dstBlend); - }; - ShapeRenderer.prototype.setBlendMode = function (srcBlend, dstBlend) { - var gl = this.context.gl; - this.srcBlend = srcBlend; - this.dstBlend = dstBlend; - if (this.isDrawing) { - this.flush(); - gl.blendFunc(this.srcBlend, this.dstBlend); - } - }; - ShapeRenderer.prototype.setColor = function (color) { - this.color.setFromColor(color); - }; - ShapeRenderer.prototype.setColorWith = function (r, g, b, a) { - this.color.set(r, g, b, a); - }; - ShapeRenderer.prototype.point = function (x, y, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Point, 1); - if (color === null) - color = this.color; - this.vertex(x, y, color); - }; - ShapeRenderer.prototype.line = function (x, y, x2, y2, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Line, 2); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - this.vertex(x, y, color); - this.vertex(x2, y2, color); - }; - ShapeRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - if (color2 === null) - color2 = this.color; - if (color3 === null) - color3 = this.color; - if (filled) { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - } - else { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x2, y2, color); - this.vertex(x3, y3, color2); - this.vertex(x3, y3, color); - this.vertex(x, y, color2); - } - }; - ShapeRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { - if (color === void 0) { color = null; } - if (color2 === void 0) { color2 = null; } - if (color3 === void 0) { color3 = null; } - if (color4 === void 0) { color4 = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - if (color === null) - color = this.color; - if (color2 === null) - color2 = this.color; - if (color3 === null) - color3 = this.color; - if (color4 === null) - color4 = this.color; - if (filled) { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - this.vertex(x3, y3, color3); - this.vertex(x4, y4, color4); - this.vertex(x, y, color); - } - else { - this.vertex(x, y, color); - this.vertex(x2, y2, color2); - this.vertex(x2, y2, color2); - this.vertex(x3, y3, color3); - this.vertex(x3, y3, color3); - this.vertex(x4, y4, color4); - this.vertex(x4, y4, color4); - this.vertex(x, y, color); - } - }; - ShapeRenderer.prototype.rect = function (filled, x, y, width, height, color) { - if (color === void 0) { color = null; } - this.quad(filled, x, y, x + width, y, x + width, y + height, x, y + height, color, color, color, color); - }; - ShapeRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { - if (color === void 0) { color = null; } - this.check(filled ? ShapeType.Filled : ShapeType.Line, 8); - if (color === null) - color = this.color; - var t = this.tmp.set(y2 - y1, x1 - x2); - t.normalize(); - width *= 0.5; - var tx = t.x * width; - var ty = t.y * width; - if (!filled) { - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x1 - tx, y1 - ty, color); - } - else { - this.vertex(x1 + tx, y1 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x2 - tx, y2 - ty, color); - this.vertex(x2 + tx, y2 + ty, color); - this.vertex(x1 - tx, y1 - ty, color); - } - }; - ShapeRenderer.prototype.x = function (x, y, size) { - this.line(x - size, y - size, x + size, y + size); - this.line(x - size, y + size, x + size, y - size); - }; - ShapeRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { - if (color === void 0) { color = null; } - if (count < 3) - throw new Error("Polygon must contain at least 3 vertices"); - this.check(ShapeType.Line, count * 2); - if (color === null) - color = this.color; - var vertices = this.mesh.getVertices(); - var idx = this.vertexIndex; - offset <<= 1; - count <<= 1; - var firstX = polygonVertices[offset]; - var firstY = polygonVertices[offset + 1]; - var last = offset + count; - for (var i = offset, n = offset + count - 2; i < n; i += 2) { - var x1 = polygonVertices[i]; - var y1 = polygonVertices[i + 1]; - var x2 = 0; - var y2 = 0; - if (i + 2 >= last) { - x2 = firstX; - y2 = firstY; - } - else { - x2 = polygonVertices[i + 2]; - y2 = polygonVertices[i + 3]; - } - this.vertex(x1, y1, color); - this.vertex(x2, y2, color); - } - }; - ShapeRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { - if (color === void 0) { color = null; } - if (segments === void 0) { segments = 0; } - if (segments === 0) - segments = Math.max(1, (6 * spine.MathUtils.cbrt(radius)) | 0); - if (segments <= 0) - throw new Error("segments must be > 0."); - if (color === null) - color = this.color; - var angle = 2 * spine.MathUtils.PI / segments; - var cos = Math.cos(angle); - var sin = Math.sin(angle); - var cx = radius, cy = 0; - if (!filled) { - this.check(ShapeType.Line, segments * 2 + 2); - for (var i = 0; i < segments; i++) { - this.vertex(x + cx, y + cy, color); - var temp_1 = cx; - cx = cos * cx - sin * cy; - cy = sin * temp_1 + cos * cy; - this.vertex(x + cx, y + cy, color); - } - this.vertex(x + cx, y + cy, color); - } - else { - this.check(ShapeType.Filled, segments * 3 + 3); - segments--; - for (var i = 0; i < segments; i++) { - this.vertex(x, y, color); - this.vertex(x + cx, y + cy, color); - var temp_2 = cx; - cx = cos * cx - sin * cy; - cy = sin * temp_2 + cos * cy; - this.vertex(x + cx, y + cy, color); - } - this.vertex(x, y, color); - this.vertex(x + cx, y + cy, color); - } - var temp = cx; - cx = radius; - cy = 0; - this.vertex(x + cx, y + cy, color); - }; - ShapeRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { - if (color === void 0) { color = null; } - this.check(ShapeType.Line, segments * 2 + 2); - if (color === null) - color = this.color; - var subdiv_step = 1 / segments; - var subdiv_step2 = subdiv_step * subdiv_step; - var subdiv_step3 = subdiv_step * subdiv_step * subdiv_step; - var pre1 = 3 * subdiv_step; - var pre2 = 3 * subdiv_step2; - var pre4 = 6 * subdiv_step2; - var pre5 = 6 * subdiv_step3; - var tmp1x = x1 - cx1 * 2 + cx2; - var tmp1y = y1 - cy1 * 2 + cy2; - var tmp2x = (cx1 - cx2) * 3 - x1 + x2; - var tmp2y = (cy1 - cy2) * 3 - y1 + y2; - var fx = x1; - var fy = y1; - var dfx = (cx1 - x1) * pre1 + tmp1x * pre2 + tmp2x * subdiv_step3; - var dfy = (cy1 - y1) * pre1 + tmp1y * pre2 + tmp2y * subdiv_step3; - var ddfx = tmp1x * pre4 + tmp2x * pre5; - var ddfy = tmp1y * pre4 + tmp2y * pre5; - var dddfx = tmp2x * pre5; - var dddfy = tmp2y * pre5; - while (segments-- > 0) { - this.vertex(fx, fy, color); - fx += dfx; - fy += dfy; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - this.vertex(fx, fy, color); - } - this.vertex(fx, fy, color); - this.vertex(x2, y2, color); - }; - ShapeRenderer.prototype.vertex = function (x, y, color) { - var idx = this.vertexIndex; - var vertices = this.mesh.getVertices(); - vertices[idx++] = x; - vertices[idx++] = y; - vertices[idx++] = color.r; - vertices[idx++] = color.g; - vertices[idx++] = color.b; - vertices[idx++] = color.a; - this.vertexIndex = idx; - }; - ShapeRenderer.prototype.end = function () { - if (!this.isDrawing) - throw new Error("ShapeRenderer.begin() has not been called"); - this.flush(); - this.context.gl.disable(this.context.gl.BLEND); - this.isDrawing = false; - }; - ShapeRenderer.prototype.flush = function () { - if (this.vertexIndex == 0) - return; - this.mesh.setVerticesLength(this.vertexIndex); - this.mesh.draw(this.shader, this.shapeType); - this.vertexIndex = 0; - }; - ShapeRenderer.prototype.check = function (shapeType, numVertices) { - if (!this.isDrawing) - throw new Error("ShapeRenderer.begin() has not been called"); - if (this.shapeType == shapeType) { - if (this.mesh.maxVertices() - this.mesh.numVertices() < numVertices) - this.flush(); - else - return; - } - else { - this.flush(); - this.shapeType = shapeType; - } - }; - ShapeRenderer.prototype.dispose = function () { - this.mesh.dispose(); - }; - return ShapeRenderer; - }()); - webgl.ShapeRenderer = ShapeRenderer; - var ShapeType; - (function (ShapeType) { - ShapeType[ShapeType["Point"] = 0] = "Point"; - ShapeType[ShapeType["Line"] = 1] = "Line"; - ShapeType[ShapeType["Filled"] = 4] = "Filled"; - })(ShapeType = webgl.ShapeType || (webgl.ShapeType = {})); - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var ShapeRenderer = (function () { + function ShapeRenderer(context, maxVertices) { + if (maxVertices === void 0) { maxVertices = 10920; } + this.isDrawing = false; + this.shapeType = ShapeType.Filled; + this.color = new spine.Color(1, 1, 1, 1); + this.vertexIndex = 0; + this.tmp = new spine.Vector2(); + if (maxVertices > 10920) + throw new Error("Can't have more than 10920 triangles per batch: " + maxVertices); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + this.mesh = new webgl.Mesh(context, [new webgl.Position2Attribute(), new webgl.ColorAttribute()], maxVertices, 0); + this.srcBlend = this.context.gl.SRC_ALPHA; + this.dstBlend = this.context.gl.ONE_MINUS_SRC_ALPHA; + } + ShapeRenderer.prototype.begin = function (shader) { + if (this.isDrawing) + throw new Error("ShapeRenderer.begin() has already been called"); + this.shader = shader; + this.vertexIndex = 0; + this.isDrawing = true; + var gl = this.context.gl; + gl.enable(gl.BLEND); + gl.blendFunc(this.srcBlend, this.dstBlend); + }; + ShapeRenderer.prototype.setBlendMode = function (srcBlend, dstBlend) { + var gl = this.context.gl; + this.srcBlend = srcBlend; + this.dstBlend = dstBlend; + if (this.isDrawing) { + this.flush(); + gl.blendFunc(this.srcBlend, this.dstBlend); + } + }; + ShapeRenderer.prototype.setColor = function (color) { + this.color.setFromColor(color); + }; + ShapeRenderer.prototype.setColorWith = function (r, g, b, a) { + this.color.set(r, g, b, a); + }; + ShapeRenderer.prototype.point = function (x, y, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Point, 1); + if (color === null) + color = this.color; + this.vertex(x, y, color); + }; + ShapeRenderer.prototype.line = function (x, y, x2, y2, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Line, 2); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + this.vertex(x, y, color); + this.vertex(x2, y2, color); + }; + ShapeRenderer.prototype.triangle = function (filled, x, y, x2, y2, x3, y3, color, color2, color3) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + if (color2 === null) + color2 = this.color; + if (color3 === null) + color3 = this.color; + if (filled) { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + } + else { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x2, y2, color); + this.vertex(x3, y3, color2); + this.vertex(x3, y3, color); + this.vertex(x, y, color2); + } + }; + ShapeRenderer.prototype.quad = function (filled, x, y, x2, y2, x3, y3, x4, y4, color, color2, color3, color4) { + if (color === void 0) { color = null; } + if (color2 === void 0) { color2 = null; } + if (color3 === void 0) { color3 = null; } + if (color4 === void 0) { color4 = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 3); + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + if (color === null) + color = this.color; + if (color2 === null) + color2 = this.color; + if (color3 === null) + color3 = this.color; + if (color4 === null) + color4 = this.color; + if (filled) { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + this.vertex(x3, y3, color3); + this.vertex(x4, y4, color4); + this.vertex(x, y, color); + } + else { + this.vertex(x, y, color); + this.vertex(x2, y2, color2); + this.vertex(x2, y2, color2); + this.vertex(x3, y3, color3); + this.vertex(x3, y3, color3); + this.vertex(x4, y4, color4); + this.vertex(x4, y4, color4); + this.vertex(x, y, color); + } + }; + ShapeRenderer.prototype.rect = function (filled, x, y, width, height, color) { + if (color === void 0) { color = null; } + this.quad(filled, x, y, x + width, y, x + width, y + height, x, y + height, color, color, color, color); + }; + ShapeRenderer.prototype.rectLine = function (filled, x1, y1, x2, y2, width, color) { + if (color === void 0) { color = null; } + this.check(filled ? ShapeType.Filled : ShapeType.Line, 8); + if (color === null) + color = this.color; + var t = this.tmp.set(y2 - y1, x1 - x2); + t.normalize(); + width *= 0.5; + var tx = t.x * width; + var ty = t.y * width; + if (!filled) { + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x1 - tx, y1 - ty, color); + } + else { + this.vertex(x1 + tx, y1 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x2 - tx, y2 - ty, color); + this.vertex(x2 + tx, y2 + ty, color); + this.vertex(x1 - tx, y1 - ty, color); + } + }; + ShapeRenderer.prototype.x = function (x, y, size) { + this.line(x - size, y - size, x + size, y + size); + this.line(x - size, y + size, x + size, y - size); + }; + ShapeRenderer.prototype.polygon = function (polygonVertices, offset, count, color) { + if (color === void 0) { color = null; } + if (count < 3) + throw new Error("Polygon must contain at least 3 vertices"); + this.check(ShapeType.Line, count * 2); + if (color === null) + color = this.color; + var vertices = this.mesh.getVertices(); + var idx = this.vertexIndex; + offset <<= 1; + count <<= 1; + var firstX = polygonVertices[offset]; + var firstY = polygonVertices[offset + 1]; + var last = offset + count; + for (var i = offset, n = offset + count - 2; i < n; i += 2) { + var x1 = polygonVertices[i]; + var y1 = polygonVertices[i + 1]; + var x2 = 0; + var y2 = 0; + if (i + 2 >= last) { + x2 = firstX; + y2 = firstY; + } + else { + x2 = polygonVertices[i + 2]; + y2 = polygonVertices[i + 3]; + } + this.vertex(x1, y1, color); + this.vertex(x2, y2, color); + } + }; + ShapeRenderer.prototype.circle = function (filled, x, y, radius, color, segments) { + if (color === void 0) { color = null; } + if (segments === void 0) { segments = 0; } + if (segments === 0) + segments = Math.max(1, (6 * spine.MathUtils.cbrt(radius)) | 0); + if (segments <= 0) + throw new Error("segments must be > 0."); + if (color === null) + color = this.color; + var angle = 2 * spine.MathUtils.PI / segments; + var cos = Math.cos(angle); + var sin = Math.sin(angle); + var cx = radius, cy = 0; + if (!filled) { + this.check(ShapeType.Line, segments * 2 + 2); + for (var i = 0; i < segments; i++) { + this.vertex(x + cx, y + cy, color); + var temp_1 = cx; + cx = cos * cx - sin * cy; + cy = sin * temp_1 + cos * cy; + this.vertex(x + cx, y + cy, color); + } + this.vertex(x + cx, y + cy, color); + } + else { + this.check(ShapeType.Filled, segments * 3 + 3); + segments--; + for (var i = 0; i < segments; i++) { + this.vertex(x, y, color); + this.vertex(x + cx, y + cy, color); + var temp_2 = cx; + cx = cos * cx - sin * cy; + cy = sin * temp_2 + cos * cy; + this.vertex(x + cx, y + cy, color); + } + this.vertex(x, y, color); + this.vertex(x + cx, y + cy, color); + } + var temp = cx; + cx = radius; + cy = 0; + this.vertex(x + cx, y + cy, color); + }; + ShapeRenderer.prototype.curve = function (x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments, color) { + if (color === void 0) { color = null; } + this.check(ShapeType.Line, segments * 2 + 2); + if (color === null) + color = this.color; + var subdiv_step = 1 / segments; + var subdiv_step2 = subdiv_step * subdiv_step; + var subdiv_step3 = subdiv_step * subdiv_step * subdiv_step; + var pre1 = 3 * subdiv_step; + var pre2 = 3 * subdiv_step2; + var pre4 = 6 * subdiv_step2; + var pre5 = 6 * subdiv_step3; + var tmp1x = x1 - cx1 * 2 + cx2; + var tmp1y = y1 - cy1 * 2 + cy2; + var tmp2x = (cx1 - cx2) * 3 - x1 + x2; + var tmp2y = (cy1 - cy2) * 3 - y1 + y2; + var fx = x1; + var fy = y1; + var dfx = (cx1 - x1) * pre1 + tmp1x * pre2 + tmp2x * subdiv_step3; + var dfy = (cy1 - y1) * pre1 + tmp1y * pre2 + tmp2y * subdiv_step3; + var ddfx = tmp1x * pre4 + tmp2x * pre5; + var ddfy = tmp1y * pre4 + tmp2y * pre5; + var dddfx = tmp2x * pre5; + var dddfy = tmp2y * pre5; + while (segments-- > 0) { + this.vertex(fx, fy, color); + fx += dfx; + fy += dfy; + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + this.vertex(fx, fy, color); + } + this.vertex(fx, fy, color); + this.vertex(x2, y2, color); + }; + ShapeRenderer.prototype.vertex = function (x, y, color) { + var idx = this.vertexIndex; + var vertices = this.mesh.getVertices(); + vertices[idx++] = x; + vertices[idx++] = y; + vertices[idx++] = color.r; + vertices[idx++] = color.g; + vertices[idx++] = color.b; + vertices[idx++] = color.a; + this.vertexIndex = idx; + }; + ShapeRenderer.prototype.end = function () { + if (!this.isDrawing) + throw new Error("ShapeRenderer.begin() has not been called"); + this.flush(); + this.context.gl.disable(this.context.gl.BLEND); + this.isDrawing = false; + }; + ShapeRenderer.prototype.flush = function () { + if (this.vertexIndex == 0) + return; + this.mesh.setVerticesLength(this.vertexIndex); + this.mesh.draw(this.shader, this.shapeType); + this.vertexIndex = 0; + }; + ShapeRenderer.prototype.check = function (shapeType, numVertices) { + if (!this.isDrawing) + throw new Error("ShapeRenderer.begin() has not been called"); + if (this.shapeType == shapeType) { + if (this.mesh.maxVertices() - this.mesh.numVertices() < numVertices) + this.flush(); + else + return; + } + else { + this.flush(); + this.shapeType = shapeType; + } + }; + ShapeRenderer.prototype.dispose = function () { + this.mesh.dispose(); + }; + return ShapeRenderer; + }()); + webgl.ShapeRenderer = ShapeRenderer; + var ShapeType; + (function (ShapeType) { + ShapeType[ShapeType["Point"] = 0] = "Point"; + ShapeType[ShapeType["Line"] = 1] = "Line"; + ShapeType[ShapeType["Filled"] = 4] = "Filled"; + })(ShapeType = webgl.ShapeType || (webgl.ShapeType = {})); + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var SkeletonDebugRenderer = (function () { - function SkeletonDebugRenderer(context) { - this.boneLineColor = new spine.Color(1, 0, 0, 1); - this.boneOriginColor = new spine.Color(0, 1, 0, 1); - this.attachmentLineColor = new spine.Color(0, 0, 1, 0.5); - this.triangleLineColor = new spine.Color(1, 0.64, 0, 0.5); - this.pathColor = new spine.Color().setFromString("FF7F00"); - this.clipColor = new spine.Color(0.8, 0, 0, 2); - this.aabbColor = new spine.Color(0, 1, 0, 0.5); - this.drawBones = true; - this.drawRegionAttachments = true; - this.drawBoundingBoxes = true; - this.drawMeshHull = true; - this.drawMeshTriangles = true; - this.drawPaths = true; - this.drawSkeletonXY = false; - this.drawClipping = true; - this.premultipliedAlpha = false; - this.scale = 1; - this.boneWidth = 2; - this.bounds = new spine.SkeletonBounds(); - this.temp = new Array(); - this.vertices = spine.Utils.newFloatArray(2 * 1024); - this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); - } - SkeletonDebugRenderer.prototype.draw = function (shapes, skeleton, ignoredBones) { - if (ignoredBones === void 0) { ignoredBones = null; } - var skeletonX = skeleton.x; - var skeletonY = skeleton.y; - var gl = this.context.gl; - var srcFunc = this.premultipliedAlpha ? gl.ONE : gl.SRC_ALPHA; - shapes.setBlendMode(srcFunc, gl.ONE_MINUS_SRC_ALPHA); - var bones = skeleton.bones; - if (this.drawBones) { - shapes.setColor(this.boneLineColor); - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) - continue; - if (bone.parent == null) - continue; - var x = skeletonX + bone.data.length * bone.a + bone.worldX; - var y = skeletonY + bone.data.length * bone.c + bone.worldY; - shapes.rectLine(true, skeletonX + bone.worldX, skeletonY + bone.worldY, x, y, this.boneWidth * this.scale); - } - if (this.drawSkeletonXY) - shapes.x(skeletonX, skeletonY, 4 * this.scale); - } - if (this.drawRegionAttachments) { - shapes.setColor(this.attachmentLineColor); - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - var attachment = slot.getAttachment(); - if (attachment instanceof spine.RegionAttachment) { - var regionAttachment = attachment; - var vertices = this.vertices; - regionAttachment.computeWorldVertices(slot.bone, vertices, 0, 2); - shapes.line(vertices[0], vertices[1], vertices[2], vertices[3]); - shapes.line(vertices[2], vertices[3], vertices[4], vertices[5]); - shapes.line(vertices[4], vertices[5], vertices[6], vertices[7]); - shapes.line(vertices[6], vertices[7], vertices[0], vertices[1]); - } - } - } - if (this.drawMeshHull || this.drawMeshTriangles) { - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (!slot.bone.active) - continue; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.MeshAttachment)) - continue; - var mesh = attachment; - var vertices = this.vertices; - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, 2); - var triangles = mesh.triangles; - var hullLength = mesh.hullLength; - if (this.drawMeshTriangles) { - shapes.setColor(this.triangleLineColor); - for (var ii = 0, nn = triangles.length; ii < nn; ii += 3) { - var v1 = triangles[ii] * 2, v2 = triangles[ii + 1] * 2, v3 = triangles[ii + 2] * 2; - shapes.triangle(false, vertices[v1], vertices[v1 + 1], vertices[v2], vertices[v2 + 1], vertices[v3], vertices[v3 + 1]); - } - } - if (this.drawMeshHull && hullLength > 0) { - shapes.setColor(this.attachmentLineColor); - hullLength = (hullLength >> 1) * 2; - var lastX = vertices[hullLength - 2], lastY = vertices[hullLength - 1]; - for (var ii = 0, nn = hullLength; ii < nn; ii += 2) { - var x = vertices[ii], y = vertices[ii + 1]; - shapes.line(x, y, lastX, lastY); - lastX = x; - lastY = y; - } - } - } - } - if (this.drawBoundingBoxes) { - var bounds = this.bounds; - bounds.update(skeleton, true); - shapes.setColor(this.aabbColor); - shapes.rect(false, bounds.minX, bounds.minY, bounds.getWidth(), bounds.getHeight()); - var polygons = bounds.polygons; - var boxes = bounds.boundingBoxes; - for (var i = 0, n = polygons.length; i < n; i++) { - var polygon = polygons[i]; - shapes.setColor(boxes[i].color); - shapes.polygon(polygon, 0, polygon.length); - } - } - if (this.drawPaths) { - var slots = skeleton.slots; - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (!slot.bone.active) - continue; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.PathAttachment)) - continue; - var path = attachment; - var nn = path.worldVerticesLength; - var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); - path.computeWorldVertices(slot, 0, nn, world, 0, 2); - var color = this.pathColor; - var x1 = world[2], y1 = world[3], x2 = 0, y2 = 0; - if (path.closed) { - shapes.setColor(color); - var cx1 = world[0], cy1 = world[1], cx2 = world[nn - 2], cy2 = world[nn - 1]; - x2 = world[nn - 4]; - y2 = world[nn - 3]; - shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); - shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); - shapes.line(x1, y1, cx1, cy1); - shapes.line(x2, y2, cx2, cy2); - } - nn -= 4; - for (var ii = 4; ii < nn; ii += 6) { - var cx1 = world[ii], cy1 = world[ii + 1], cx2 = world[ii + 2], cy2 = world[ii + 3]; - x2 = world[ii + 4]; - y2 = world[ii + 5]; - shapes.setColor(color); - shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); - shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); - shapes.line(x1, y1, cx1, cy1); - shapes.line(x2, y2, cx2, cy2); - x1 = x2; - y1 = y2; - } - } - } - if (this.drawBones) { - shapes.setColor(this.boneOriginColor); - for (var i = 0, n = bones.length; i < n; i++) { - var bone = bones[i]; - if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) - continue; - shapes.circle(true, skeletonX + bone.worldX, skeletonY + bone.worldY, 3 * this.scale, SkeletonDebugRenderer.GREEN, 8); - } - } - if (this.drawClipping) { - var slots = skeleton.slots; - shapes.setColor(this.clipColor); - for (var i = 0, n = slots.length; i < n; i++) { - var slot = slots[i]; - if (!slot.bone.active) - continue; - var attachment = slot.getAttachment(); - if (!(attachment instanceof spine.ClippingAttachment)) - continue; - var clip = attachment; - var nn = clip.worldVerticesLength; - var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); - clip.computeWorldVertices(slot, 0, nn, world, 0, 2); - for (var i_21 = 0, n_3 = world.length; i_21 < n_3; i_21 += 2) { - var x = world[i_21]; - var y = world[i_21 + 1]; - var x2 = world[(i_21 + 2) % world.length]; - var y2 = world[(i_21 + 3) % world.length]; - shapes.line(x, y, x2, y2); - } - } - } - }; - SkeletonDebugRenderer.prototype.dispose = function () { - }; - SkeletonDebugRenderer.LIGHT_GRAY = new spine.Color(192 / 255, 192 / 255, 192 / 255, 1); - SkeletonDebugRenderer.GREEN = new spine.Color(0, 1, 0, 1); - return SkeletonDebugRenderer; - }()); - webgl.SkeletonDebugRenderer = SkeletonDebugRenderer; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var SkeletonDebugRenderer = (function () { + function SkeletonDebugRenderer(context) { + this.boneLineColor = new spine.Color(1, 0, 0, 1); + this.boneOriginColor = new spine.Color(0, 1, 0, 1); + this.attachmentLineColor = new spine.Color(0, 0, 1, 0.5); + this.triangleLineColor = new spine.Color(1, 0.64, 0, 0.5); + this.pathColor = new spine.Color().setFromString("FF7F00"); + this.clipColor = new spine.Color(0.8, 0, 0, 2); + this.aabbColor = new spine.Color(0, 1, 0, 0.5); + this.drawBones = true; + this.drawRegionAttachments = true; + this.drawBoundingBoxes = true; + this.drawMeshHull = true; + this.drawMeshTriangles = true; + this.drawPaths = true; + this.drawSkeletonXY = false; + this.drawClipping = true; + this.premultipliedAlpha = false; + this.scale = 1; + this.boneWidth = 2; + this.bounds = new spine.SkeletonBounds(); + this.temp = new Array(); + this.vertices = spine.Utils.newFloatArray(2 * 1024); + this.context = context instanceof webgl.ManagedWebGLRenderingContext ? context : new webgl.ManagedWebGLRenderingContext(context); + } + SkeletonDebugRenderer.prototype.draw = function (shapes, skeleton, ignoredBones) { + if (ignoredBones === void 0) { ignoredBones = null; } + var skeletonX = skeleton.x; + var skeletonY = skeleton.y; + var gl = this.context.gl; + var srcFunc = this.premultipliedAlpha ? gl.ONE : gl.SRC_ALPHA; + shapes.setBlendMode(srcFunc, gl.ONE_MINUS_SRC_ALPHA); + var bones = skeleton.bones; + if (this.drawBones) { + shapes.setColor(this.boneLineColor); + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) + continue; + if (bone.parent == null) + continue; + var x = skeletonX + bone.data.length * bone.a + bone.worldX; + var y = skeletonY + bone.data.length * bone.c + bone.worldY; + shapes.rectLine(true, skeletonX + bone.worldX, skeletonY + bone.worldY, x, y, this.boneWidth * this.scale); + } + if (this.drawSkeletonXY) + shapes.x(skeletonX, skeletonY, 4 * this.scale); + } + if (this.drawRegionAttachments) { + shapes.setColor(this.attachmentLineColor); + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + var attachment = slot.getAttachment(); + if (attachment instanceof spine.RegionAttachment) { + var regionAttachment = attachment; + var vertices = this.vertices; + regionAttachment.computeWorldVertices(slot.bone, vertices, 0, 2); + shapes.line(vertices[0], vertices[1], vertices[2], vertices[3]); + shapes.line(vertices[2], vertices[3], vertices[4], vertices[5]); + shapes.line(vertices[4], vertices[5], vertices[6], vertices[7]); + shapes.line(vertices[6], vertices[7], vertices[0], vertices[1]); + } + } + } + if (this.drawMeshHull || this.drawMeshTriangles) { + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (!slot.bone.active) + continue; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.MeshAttachment)) + continue; + var mesh = attachment; + var vertices = this.vertices; + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, 2); + var triangles = mesh.triangles; + var hullLength = mesh.hullLength; + if (this.drawMeshTriangles) { + shapes.setColor(this.triangleLineColor); + for (var ii = 0, nn = triangles.length; ii < nn; ii += 3) { + var v1 = triangles[ii] * 2, v2 = triangles[ii + 1] * 2, v3 = triangles[ii + 2] * 2; + shapes.triangle(false, vertices[v1], vertices[v1 + 1], vertices[v2], vertices[v2 + 1], vertices[v3], vertices[v3 + 1]); + } + } + if (this.drawMeshHull && hullLength > 0) { + shapes.setColor(this.attachmentLineColor); + hullLength = (hullLength >> 1) * 2; + var lastX = vertices[hullLength - 2], lastY = vertices[hullLength - 1]; + for (var ii = 0, nn = hullLength; ii < nn; ii += 2) { + var x = vertices[ii], y = vertices[ii + 1]; + shapes.line(x, y, lastX, lastY); + lastX = x; + lastY = y; + } + } + } + } + if (this.drawBoundingBoxes) { + var bounds = this.bounds; + bounds.update(skeleton, true); + shapes.setColor(this.aabbColor); + shapes.rect(false, bounds.minX, bounds.minY, bounds.getWidth(), bounds.getHeight()); + var polygons = bounds.polygons; + var boxes = bounds.boundingBoxes; + for (var i = 0, n = polygons.length; i < n; i++) { + var polygon = polygons[i]; + shapes.setColor(boxes[i].color); + shapes.polygon(polygon, 0, polygon.length); + } + } + if (this.drawPaths) { + var slots = skeleton.slots; + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (!slot.bone.active) + continue; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.PathAttachment)) + continue; + var path = attachment; + var nn = path.worldVerticesLength; + var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); + path.computeWorldVertices(slot, 0, nn, world, 0, 2); + var color = this.pathColor; + var x1 = world[2], y1 = world[3], x2 = 0, y2 = 0; + if (path.closed) { + shapes.setColor(color); + var cx1 = world[0], cy1 = world[1], cx2 = world[nn - 2], cy2 = world[nn - 1]; + x2 = world[nn - 4]; + y2 = world[nn - 3]; + shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); + shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); + shapes.line(x1, y1, cx1, cy1); + shapes.line(x2, y2, cx2, cy2); + } + nn -= 4; + for (var ii = 4; ii < nn; ii += 6) { + var cx1 = world[ii], cy1 = world[ii + 1], cx2 = world[ii + 2], cy2 = world[ii + 3]; + x2 = world[ii + 4]; + y2 = world[ii + 5]; + shapes.setColor(color); + shapes.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, 32); + shapes.setColor(SkeletonDebugRenderer.LIGHT_GRAY); + shapes.line(x1, y1, cx1, cy1); + shapes.line(x2, y2, cx2, cy2); + x1 = x2; + y1 = y2; + } + } + } + if (this.drawBones) { + shapes.setColor(this.boneOriginColor); + for (var i = 0, n = bones.length; i < n; i++) { + var bone = bones[i]; + if (ignoredBones && ignoredBones.indexOf(bone.data.name) > -1) + continue; + shapes.circle(true, skeletonX + bone.worldX, skeletonY + bone.worldY, 3 * this.scale, SkeletonDebugRenderer.GREEN, 8); + } + } + if (this.drawClipping) { + var slots = skeleton.slots; + shapes.setColor(this.clipColor); + for (var i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; + if (!slot.bone.active) + continue; + var attachment = slot.getAttachment(); + if (!(attachment instanceof spine.ClippingAttachment)) + continue; + var clip = attachment; + var nn = clip.worldVerticesLength; + var world = this.temp = spine.Utils.setArraySize(this.temp, nn, 0); + clip.computeWorldVertices(slot, 0, nn, world, 0, 2); + for (var i_21 = 0, n_3 = world.length; i_21 < n_3; i_21 += 2) { + var x = world[i_21]; + var y = world[i_21 + 1]; + var x2 = world[(i_21 + 2) % world.length]; + var y2 = world[(i_21 + 3) % world.length]; + shapes.line(x, y, x2, y2); + } + } + } + }; + SkeletonDebugRenderer.prototype.dispose = function () { + }; + SkeletonDebugRenderer.LIGHT_GRAY = new spine.Color(192 / 255, 192 / 255, 192 / 255, 1); + SkeletonDebugRenderer.GREEN = new spine.Color(0, 1, 0, 1); + return SkeletonDebugRenderer; + }()); + webgl.SkeletonDebugRenderer = SkeletonDebugRenderer; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Renderable = (function () { - function Renderable(vertices, numVertices, numFloats) { - this.vertices = vertices; - this.numVertices = numVertices; - this.numFloats = numFloats; - } - return Renderable; - }()); - ; - var SkeletonRenderer = (function () { - function SkeletonRenderer(context, twoColorTint) { - if (twoColorTint === void 0) { twoColorTint = true; } - this.premultipliedAlpha = false; - this.vertexEffect = null; - this.tempColor = new spine.Color(); - this.tempColor2 = new spine.Color(); - this.vertexSize = 2 + 2 + 4; - this.twoColorTint = false; - this.renderable = new Renderable(null, 0, 0); - this.clipper = new spine.SkeletonClipping(); - this.temp = new spine.Vector2(); - this.temp2 = new spine.Vector2(); - this.temp3 = new spine.Color(); - this.temp4 = new spine.Color(); - this.twoColorTint = twoColorTint; - if (twoColorTint) - this.vertexSize += 4; - this.vertices = spine.Utils.newFloatArray(this.vertexSize * 1024); - } - SkeletonRenderer.prototype.draw = function (batcher, skeleton, slotRangeStart, slotRangeEnd) { - if (slotRangeStart === void 0) { slotRangeStart = -1; } - if (slotRangeEnd === void 0) { slotRangeEnd = -1; } - var clipper = this.clipper; - var premultipliedAlpha = this.premultipliedAlpha; - var twoColorTint = this.twoColorTint; - var blendMode = null; - var tempPos = this.temp; - var tempUv = this.temp2; - var tempLight = this.temp3; - var tempDark = this.temp4; - var renderable = this.renderable; - var uvs = null; - var triangles = null; - var drawOrder = skeleton.drawOrder; - var attachmentColor = null; - var skeletonColor = skeleton.color; - var vertexSize = twoColorTint ? 12 : 8; - var inRange = false; - if (slotRangeStart == -1) - inRange = true; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var clippedVertexSize = clipper.isClipping() ? 2 : vertexSize; - var slot = drawOrder[i]; - if (!slot.bone.active) { - clipper.clipEndWithSlot(slot); - continue; - } - if (slotRangeStart >= 0 && slotRangeStart == slot.data.index) { - inRange = true; - } - if (!inRange) { - clipper.clipEndWithSlot(slot); - continue; - } - if (slotRangeEnd >= 0 && slotRangeEnd == slot.data.index) { - inRange = false; - } - var attachment = slot.getAttachment(); - var texture = null; - if (attachment instanceof spine.RegionAttachment) { - var region = attachment; - renderable.vertices = this.vertices; - renderable.numVertices = 4; - renderable.numFloats = clippedVertexSize << 2; - region.computeWorldVertices(slot.bone, renderable.vertices, 0, clippedVertexSize); - triangles = SkeletonRenderer.QUAD_TRIANGLES; - uvs = region.uvs; - texture = region.region.renderObject.texture; - attachmentColor = region.color; - } - else if (attachment instanceof spine.MeshAttachment) { - var mesh = attachment; - renderable.vertices = this.vertices; - renderable.numVertices = (mesh.worldVerticesLength >> 1); - renderable.numFloats = renderable.numVertices * clippedVertexSize; - if (renderable.numFloats > renderable.vertices.length) { - renderable.vertices = this.vertices = spine.Utils.newFloatArray(renderable.numFloats); - } - mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, renderable.vertices, 0, clippedVertexSize); - triangles = mesh.triangles; - texture = mesh.region.renderObject.texture; - uvs = mesh.uvs; - attachmentColor = mesh.color; - } - else if (attachment instanceof spine.ClippingAttachment) { - var clip = (attachment); - clipper.clipStart(slot, clip); - continue; - } - else { - clipper.clipEndWithSlot(slot); - continue; - } - if (texture != null) { - var slotColor = slot.color; - var finalColor = this.tempColor; - finalColor.r = skeletonColor.r * slotColor.r * attachmentColor.r; - finalColor.g = skeletonColor.g * slotColor.g * attachmentColor.g; - finalColor.b = skeletonColor.b * slotColor.b * attachmentColor.b; - finalColor.a = skeletonColor.a * slotColor.a * attachmentColor.a; - if (premultipliedAlpha) { - finalColor.r *= finalColor.a; - finalColor.g *= finalColor.a; - finalColor.b *= finalColor.a; - } - var darkColor = this.tempColor2; - if (slot.darkColor == null) - darkColor.set(0, 0, 0, 1.0); - else { - if (premultipliedAlpha) { - darkColor.r = slot.darkColor.r * finalColor.a; - darkColor.g = slot.darkColor.g * finalColor.a; - darkColor.b = slot.darkColor.b * finalColor.a; - } - else { - darkColor.setFromColor(slot.darkColor); - } - darkColor.a = premultipliedAlpha ? 1.0 : 0.0; - } - var slotBlendMode = slot.data.blendMode; - if (slotBlendMode != blendMode) { - blendMode = slotBlendMode; - batcher.setBlendMode(webgl.WebGLBlendModeConverter.getSourceGLBlendMode(blendMode, premultipliedAlpha), webgl.WebGLBlendModeConverter.getDestGLBlendMode(blendMode)); - } - if (clipper.isClipping()) { - clipper.clipTriangles(renderable.vertices, renderable.numFloats, triangles, triangles.length, uvs, finalColor, darkColor, twoColorTint); - var clippedVertices = new Float32Array(clipper.clippedVertices); - var clippedTriangles = clipper.clippedTriangles; - if (this.vertexEffect != null) { - var vertexEffect = this.vertexEffect; - var verts = clippedVertices; - if (!twoColorTint) { - for (var v = 0, n_4 = clippedVertices.length; v < n_4; v += vertexSize) { - tempPos.x = verts[v]; - tempPos.y = verts[v + 1]; - tempLight.set(verts[v + 2], verts[v + 3], verts[v + 4], verts[v + 5]); - tempUv.x = verts[v + 6]; - tempUv.y = verts[v + 7]; - tempDark.set(0, 0, 0, 0); - vertexEffect.transform(tempPos, tempUv, tempLight, tempDark); - verts[v] = tempPos.x; - verts[v + 1] = tempPos.y; - verts[v + 2] = tempLight.r; - verts[v + 3] = tempLight.g; - verts[v + 4] = tempLight.b; - verts[v + 5] = tempLight.a; - verts[v + 6] = tempUv.x; - verts[v + 7] = tempUv.y; - } - } - else { - for (var v = 0, n_5 = clippedVertices.length; v < n_5; v += vertexSize) { - tempPos.x = verts[v]; - tempPos.y = verts[v + 1]; - tempLight.set(verts[v + 2], verts[v + 3], verts[v + 4], verts[v + 5]); - tempUv.x = verts[v + 6]; - tempUv.y = verts[v + 7]; - tempDark.set(verts[v + 8], verts[v + 9], verts[v + 10], verts[v + 11]); - vertexEffect.transform(tempPos, tempUv, tempLight, tempDark); - verts[v] = tempPos.x; - verts[v + 1] = tempPos.y; - verts[v + 2] = tempLight.r; - verts[v + 3] = tempLight.g; - verts[v + 4] = tempLight.b; - verts[v + 5] = tempLight.a; - verts[v + 6] = tempUv.x; - verts[v + 7] = tempUv.y; - verts[v + 8] = tempDark.r; - verts[v + 9] = tempDark.g; - verts[v + 10] = tempDark.b; - verts[v + 11] = tempDark.a; - } - } - } - batcher.draw(texture, clippedVertices, clippedTriangles); - } - else { - var verts = renderable.vertices; - if (this.vertexEffect != null) { - var vertexEffect = this.vertexEffect; - if (!twoColorTint) { - for (var v = 0, u = 0, n_6 = renderable.numFloats; v < n_6; v += vertexSize, u += 2) { - tempPos.x = verts[v]; - tempPos.y = verts[v + 1]; - tempUv.x = uvs[u]; - tempUv.y = uvs[u + 1]; - tempLight.setFromColor(finalColor); - tempDark.set(0, 0, 0, 0); - vertexEffect.transform(tempPos, tempUv, tempLight, tempDark); - verts[v] = tempPos.x; - verts[v + 1] = tempPos.y; - verts[v + 2] = tempLight.r; - verts[v + 3] = tempLight.g; - verts[v + 4] = tempLight.b; - verts[v + 5] = tempLight.a; - verts[v + 6] = tempUv.x; - verts[v + 7] = tempUv.y; - } - } - else { - for (var v = 0, u = 0, n_7 = renderable.numFloats; v < n_7; v += vertexSize, u += 2) { - tempPos.x = verts[v]; - tempPos.y = verts[v + 1]; - tempUv.x = uvs[u]; - tempUv.y = uvs[u + 1]; - tempLight.setFromColor(finalColor); - tempDark.setFromColor(darkColor); - vertexEffect.transform(tempPos, tempUv, tempLight, tempDark); - verts[v] = tempPos.x; - verts[v + 1] = tempPos.y; - verts[v + 2] = tempLight.r; - verts[v + 3] = tempLight.g; - verts[v + 4] = tempLight.b; - verts[v + 5] = tempLight.a; - verts[v + 6] = tempUv.x; - verts[v + 7] = tempUv.y; - verts[v + 8] = tempDark.r; - verts[v + 9] = tempDark.g; - verts[v + 10] = tempDark.b; - verts[v + 11] = tempDark.a; - } - } - } - else { - if (!twoColorTint) { - for (var v = 2, u = 0, n_8 = renderable.numFloats; v < n_8; v += vertexSize, u += 2) { - verts[v] = finalColor.r; - verts[v + 1] = finalColor.g; - verts[v + 2] = finalColor.b; - verts[v + 3] = finalColor.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - } - } - else { - for (var v = 2, u = 0, n_9 = renderable.numFloats; v < n_9; v += vertexSize, u += 2) { - verts[v] = finalColor.r; - verts[v + 1] = finalColor.g; - verts[v + 2] = finalColor.b; - verts[v + 3] = finalColor.a; - verts[v + 4] = uvs[u]; - verts[v + 5] = uvs[u + 1]; - verts[v + 6] = darkColor.r; - verts[v + 7] = darkColor.g; - verts[v + 8] = darkColor.b; - verts[v + 9] = darkColor.a; - } - } - } - var view = renderable.vertices.subarray(0, renderable.numFloats); - batcher.draw(texture, view, triangles); - } - } - clipper.clipEndWithSlot(slot); - } - clipper.clipEnd(); - }; - SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; - return SkeletonRenderer; - }()); - webgl.SkeletonRenderer = SkeletonRenderer; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Renderable = (function () { + function Renderable(vertices, numVertices, numFloats) { + this.vertices = vertices; + this.numVertices = numVertices; + this.numFloats = numFloats; + } + return Renderable; + }()); + ; + var SkeletonRenderer = (function () { + function SkeletonRenderer(context, twoColorTint) { + if (twoColorTint === void 0) { twoColorTint = true; } + this.premultipliedAlpha = false; + this.vertexEffect = null; + this.tempColor = new spine.Color(); + this.tempColor2 = new spine.Color(); + this.vertexSize = 2 + 2 + 4; + this.twoColorTint = false; + this.renderable = new Renderable(null, 0, 0); + this.clipper = new spine.SkeletonClipping(); + this.temp = new spine.Vector2(); + this.temp2 = new spine.Vector2(); + this.temp3 = new spine.Color(); + this.temp4 = new spine.Color(); + this.twoColorTint = twoColorTint; + if (twoColorTint) + this.vertexSize += 4; + this.vertices = spine.Utils.newFloatArray(this.vertexSize * 1024); + } + SkeletonRenderer.prototype.draw = function (batcher, skeleton, slotRangeStart, slotRangeEnd) { + if (slotRangeStart === void 0) { slotRangeStart = -1; } + if (slotRangeEnd === void 0) { slotRangeEnd = -1; } + var clipper = this.clipper; + var premultipliedAlpha = this.premultipliedAlpha; + var twoColorTint = this.twoColorTint; + var blendMode = null; + var tempPos = this.temp; + var tempUv = this.temp2; + var tempLight = this.temp3; + var tempDark = this.temp4; + var renderable = this.renderable; + var uvs = null; + var triangles = null; + var drawOrder = skeleton.drawOrder; + var attachmentColor = null; + var skeletonColor = skeleton.color; + var vertexSize = twoColorTint ? 12 : 8; + var inRange = false; + if (slotRangeStart == -1) + inRange = true; + for (var i = 0, n = drawOrder.length; i < n; i++) { + var clippedVertexSize = clipper.isClipping() ? 2 : vertexSize; + var slot = drawOrder[i]; + if (!slot.bone.active) { + clipper.clipEndWithSlot(slot); + continue; + } + if (slotRangeStart >= 0 && slotRangeStart == slot.data.index) { + inRange = true; + } + if (!inRange) { + clipper.clipEndWithSlot(slot); + continue; + } + if (slotRangeEnd >= 0 && slotRangeEnd == slot.data.index) { + inRange = false; + } + var attachment = slot.getAttachment(); + var texture = null; + if (attachment instanceof spine.RegionAttachment) { + var region = attachment; + renderable.vertices = this.vertices; + renderable.numVertices = 4; + renderable.numFloats = clippedVertexSize << 2; + region.computeWorldVertices(slot.bone, renderable.vertices, 0, clippedVertexSize); + triangles = SkeletonRenderer.QUAD_TRIANGLES; + uvs = region.uvs; + texture = region.region.renderObject.texture; + attachmentColor = region.color; + } + else if (attachment instanceof spine.MeshAttachment) { + var mesh = attachment; + renderable.vertices = this.vertices; + renderable.numVertices = (mesh.worldVerticesLength >> 1); + renderable.numFloats = renderable.numVertices * clippedVertexSize; + if (renderable.numFloats > renderable.vertices.length) { + renderable.vertices = this.vertices = spine.Utils.newFloatArray(renderable.numFloats); + } + mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, renderable.vertices, 0, clippedVertexSize); + triangles = mesh.triangles; + texture = mesh.region.renderObject.texture; + uvs = mesh.uvs; + attachmentColor = mesh.color; + } + else if (attachment instanceof spine.ClippingAttachment) { + var clip = (attachment); + clipper.clipStart(slot, clip); + continue; + } + else { + clipper.clipEndWithSlot(slot); + continue; + } + if (texture != null) { + var slotColor = slot.color; + var finalColor = this.tempColor; + finalColor.r = skeletonColor.r * slotColor.r * attachmentColor.r; + finalColor.g = skeletonColor.g * slotColor.g * attachmentColor.g; + finalColor.b = skeletonColor.b * slotColor.b * attachmentColor.b; + finalColor.a = skeletonColor.a * slotColor.a * attachmentColor.a; + if (premultipliedAlpha) { + finalColor.r *= finalColor.a; + finalColor.g *= finalColor.a; + finalColor.b *= finalColor.a; + } + var darkColor = this.tempColor2; + if (slot.darkColor == null) + darkColor.set(0, 0, 0, 1.0); + else { + if (premultipliedAlpha) { + darkColor.r = slot.darkColor.r * finalColor.a; + darkColor.g = slot.darkColor.g * finalColor.a; + darkColor.b = slot.darkColor.b * finalColor.a; + } + else { + darkColor.setFromColor(slot.darkColor); + } + darkColor.a = premultipliedAlpha ? 1.0 : 0.0; + } + var slotBlendMode = slot.data.blendMode; + if (slotBlendMode != blendMode) { + blendMode = slotBlendMode; + batcher.setBlendMode(webgl.WebGLBlendModeConverter.getSourceGLBlendMode(blendMode, premultipliedAlpha), webgl.WebGLBlendModeConverter.getDestGLBlendMode(blendMode)); + } + if (clipper.isClipping()) { + clipper.clipTriangles(renderable.vertices, renderable.numFloats, triangles, triangles.length, uvs, finalColor, darkColor, twoColorTint); + var clippedVertices = new Float32Array(clipper.clippedVertices); + var clippedTriangles = clipper.clippedTriangles; + if (this.vertexEffect != null) { + var vertexEffect = this.vertexEffect; + var verts = clippedVertices; + if (!twoColorTint) { + for (var v = 0, n_4 = clippedVertices.length; v < n_4; v += vertexSize) { + tempPos.x = verts[v]; + tempPos.y = verts[v + 1]; + tempLight.set(verts[v + 2], verts[v + 3], verts[v + 4], verts[v + 5]); + tempUv.x = verts[v + 6]; + tempUv.y = verts[v + 7]; + tempDark.set(0, 0, 0, 0); + vertexEffect.transform(tempPos, tempUv, tempLight, tempDark); + verts[v] = tempPos.x; + verts[v + 1] = tempPos.y; + verts[v + 2] = tempLight.r; + verts[v + 3] = tempLight.g; + verts[v + 4] = tempLight.b; + verts[v + 5] = tempLight.a; + verts[v + 6] = tempUv.x; + verts[v + 7] = tempUv.y; + } + } + else { + for (var v = 0, n_5 = clippedVertices.length; v < n_5; v += vertexSize) { + tempPos.x = verts[v]; + tempPos.y = verts[v + 1]; + tempLight.set(verts[v + 2], verts[v + 3], verts[v + 4], verts[v + 5]); + tempUv.x = verts[v + 6]; + tempUv.y = verts[v + 7]; + tempDark.set(verts[v + 8], verts[v + 9], verts[v + 10], verts[v + 11]); + vertexEffect.transform(tempPos, tempUv, tempLight, tempDark); + verts[v] = tempPos.x; + verts[v + 1] = tempPos.y; + verts[v + 2] = tempLight.r; + verts[v + 3] = tempLight.g; + verts[v + 4] = tempLight.b; + verts[v + 5] = tempLight.a; + verts[v + 6] = tempUv.x; + verts[v + 7] = tempUv.y; + verts[v + 8] = tempDark.r; + verts[v + 9] = tempDark.g; + verts[v + 10] = tempDark.b; + verts[v + 11] = tempDark.a; + } + } + } + batcher.draw(texture, clippedVertices, clippedTriangles); + } + else { + var verts = renderable.vertices; + if (this.vertexEffect != null) { + var vertexEffect = this.vertexEffect; + if (!twoColorTint) { + for (var v = 0, u = 0, n_6 = renderable.numFloats; v < n_6; v += vertexSize, u += 2) { + tempPos.x = verts[v]; + tempPos.y = verts[v + 1]; + tempUv.x = uvs[u]; + tempUv.y = uvs[u + 1]; + tempLight.setFromColor(finalColor); + tempDark.set(0, 0, 0, 0); + vertexEffect.transform(tempPos, tempUv, tempLight, tempDark); + verts[v] = tempPos.x; + verts[v + 1] = tempPos.y; + verts[v + 2] = tempLight.r; + verts[v + 3] = tempLight.g; + verts[v + 4] = tempLight.b; + verts[v + 5] = tempLight.a; + verts[v + 6] = tempUv.x; + verts[v + 7] = tempUv.y; + } + } + else { + for (var v = 0, u = 0, n_7 = renderable.numFloats; v < n_7; v += vertexSize, u += 2) { + tempPos.x = verts[v]; + tempPos.y = verts[v + 1]; + tempUv.x = uvs[u]; + tempUv.y = uvs[u + 1]; + tempLight.setFromColor(finalColor); + tempDark.setFromColor(darkColor); + vertexEffect.transform(tempPos, tempUv, tempLight, tempDark); + verts[v] = tempPos.x; + verts[v + 1] = tempPos.y; + verts[v + 2] = tempLight.r; + verts[v + 3] = tempLight.g; + verts[v + 4] = tempLight.b; + verts[v + 5] = tempLight.a; + verts[v + 6] = tempUv.x; + verts[v + 7] = tempUv.y; + verts[v + 8] = tempDark.r; + verts[v + 9] = tempDark.g; + verts[v + 10] = tempDark.b; + verts[v + 11] = tempDark.a; + } + } + } + else { + if (!twoColorTint) { + for (var v = 2, u = 0, n_8 = renderable.numFloats; v < n_8; v += vertexSize, u += 2) { + verts[v] = finalColor.r; + verts[v + 1] = finalColor.g; + verts[v + 2] = finalColor.b; + verts[v + 3] = finalColor.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + } + } + else { + for (var v = 2, u = 0, n_9 = renderable.numFloats; v < n_9; v += vertexSize, u += 2) { + verts[v] = finalColor.r; + verts[v + 1] = finalColor.g; + verts[v + 2] = finalColor.b; + verts[v + 3] = finalColor.a; + verts[v + 4] = uvs[u]; + verts[v + 5] = uvs[u + 1]; + verts[v + 6] = darkColor.r; + verts[v + 7] = darkColor.g; + verts[v + 8] = darkColor.b; + verts[v + 9] = darkColor.a; + } + } + } + var view = renderable.vertices.subarray(0, renderable.numFloats); + batcher.draw(texture, view, triangles); + } + } + clipper.clipEndWithSlot(slot); + } + clipper.clipEnd(); + }; + SkeletonRenderer.QUAD_TRIANGLES = [0, 1, 2, 2, 3, 0]; + return SkeletonRenderer; + }()); + webgl.SkeletonRenderer = SkeletonRenderer; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var Vector3 = (function () { - function Vector3(x, y, z) { - if (x === void 0) { x = 0; } - if (y === void 0) { y = 0; } - if (z === void 0) { z = 0; } - this.x = 0; - this.y = 0; - this.z = 0; - this.x = x; - this.y = y; - this.z = z; - } - Vector3.prototype.setFrom = function (v) { - this.x = v.x; - this.y = v.y; - this.z = v.z; - return this; - }; - Vector3.prototype.set = function (x, y, z) { - this.x = x; - this.y = y; - this.z = z; - return this; - }; - Vector3.prototype.add = function (v) { - this.x += v.x; - this.y += v.y; - this.z += v.z; - return this; - }; - Vector3.prototype.sub = function (v) { - this.x -= v.x; - this.y -= v.y; - this.z -= v.z; - return this; - }; - Vector3.prototype.scale = function (s) { - this.x *= s; - this.y *= s; - this.z *= s; - return this; - }; - Vector3.prototype.normalize = function () { - var len = this.length(); - if (len == 0) - return this; - len = 1 / len; - this.x *= len; - this.y *= len; - this.z *= len; - return this; - }; - Vector3.prototype.cross = function (v) { - return this.set(this.y * v.z - this.z * v.y, this.z * v.x - this.x * v.z, this.x * v.y - this.y * v.x); - }; - Vector3.prototype.multiply = function (matrix) { - var l_mat = matrix.values; - return this.set(this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03], this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13], this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]); - }; - Vector3.prototype.project = function (matrix) { - var l_mat = matrix.values; - var l_w = 1 / (this.x * l_mat[webgl.M30] + this.y * l_mat[webgl.M31] + this.z * l_mat[webgl.M32] + l_mat[webgl.M33]); - return this.set((this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03]) * l_w, (this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13]) * l_w, (this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]) * l_w); - }; - Vector3.prototype.dot = function (v) { - return this.x * v.x + this.y * v.y + this.z * v.z; - }; - Vector3.prototype.length = function () { - return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); - }; - Vector3.prototype.distance = function (v) { - var a = v.x - this.x; - var b = v.y - this.y; - var c = v.z - this.z; - return Math.sqrt(a * a + b * b + c * c); - }; - return Vector3; - }()); - webgl.Vector3 = Vector3; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var Vector3 = (function () { + function Vector3(x, y, z) { + if (x === void 0) { x = 0; } + if (y === void 0) { y = 0; } + if (z === void 0) { z = 0; } + this.x = 0; + this.y = 0; + this.z = 0; + this.x = x; + this.y = y; + this.z = z; + } + Vector3.prototype.setFrom = function (v) { + this.x = v.x; + this.y = v.y; + this.z = v.z; + return this; + }; + Vector3.prototype.set = function (x, y, z) { + this.x = x; + this.y = y; + this.z = z; + return this; + }; + Vector3.prototype.add = function (v) { + this.x += v.x; + this.y += v.y; + this.z += v.z; + return this; + }; + Vector3.prototype.sub = function (v) { + this.x -= v.x; + this.y -= v.y; + this.z -= v.z; + return this; + }; + Vector3.prototype.scale = function (s) { + this.x *= s; + this.y *= s; + this.z *= s; + return this; + }; + Vector3.prototype.normalize = function () { + var len = this.length(); + if (len == 0) + return this; + len = 1 / len; + this.x *= len; + this.y *= len; + this.z *= len; + return this; + }; + Vector3.prototype.cross = function (v) { + return this.set(this.y * v.z - this.z * v.y, this.z * v.x - this.x * v.z, this.x * v.y - this.y * v.x); + }; + Vector3.prototype.multiply = function (matrix) { + var l_mat = matrix.values; + return this.set(this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03], this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13], this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]); + }; + Vector3.prototype.project = function (matrix) { + var l_mat = matrix.values; + var l_w = 1 / (this.x * l_mat[webgl.M30] + this.y * l_mat[webgl.M31] + this.z * l_mat[webgl.M32] + l_mat[webgl.M33]); + return this.set((this.x * l_mat[webgl.M00] + this.y * l_mat[webgl.M01] + this.z * l_mat[webgl.M02] + l_mat[webgl.M03]) * l_w, (this.x * l_mat[webgl.M10] + this.y * l_mat[webgl.M11] + this.z * l_mat[webgl.M12] + l_mat[webgl.M13]) * l_w, (this.x * l_mat[webgl.M20] + this.y * l_mat[webgl.M21] + this.z * l_mat[webgl.M22] + l_mat[webgl.M23]) * l_w); + }; + Vector3.prototype.dot = function (v) { + return this.x * v.x + this.y * v.y + this.z * v.z; + }; + Vector3.prototype.length = function () { + return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); + }; + Vector3.prototype.distance = function (v) { + var a = v.x - this.x; + var b = v.y - this.y; + var c = v.z - this.z; + return Math.sqrt(a * a + b * b + c * c); + }; + return Vector3; + }()); + webgl.Vector3 = Vector3; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); var spine; (function (spine) { - var webgl; - (function (webgl) { - var ManagedWebGLRenderingContext = (function () { - function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) { - var _this = this; - if (contextConfig === void 0) { contextConfig = { alpha: "true" }; } - this.restorables = new Array(); - if (!((canvasOrContext instanceof WebGLRenderingContext) || (canvasOrContext instanceof WebGL2RenderingContext))) { - var canvas = canvasOrContext; - this.gl = (canvas.getContext("webgl2", contextConfig) || canvas.getContext("webgl", contextConfig)); - this.canvas = canvas; - canvas.addEventListener("webglcontextlost", function (e) { - var event = e; - if (e) { - e.preventDefault(); - } - }); - canvas.addEventListener("webglcontextrestored", function (e) { - for (var i = 0, n = _this.restorables.length; i < n; i++) { - _this.restorables[i].restore(); - } - }); - } - else { - this.gl = canvasOrContext; - this.canvas = this.gl.canvas; - } - } - ManagedWebGLRenderingContext.prototype.addRestorable = function (restorable) { - this.restorables.push(restorable); - }; - ManagedWebGLRenderingContext.prototype.removeRestorable = function (restorable) { - var index = this.restorables.indexOf(restorable); - if (index > -1) - this.restorables.splice(index, 1); - }; - return ManagedWebGLRenderingContext; - }()); - webgl.ManagedWebGLRenderingContext = ManagedWebGLRenderingContext; - var WebGLBlendModeConverter = (function () { - function WebGLBlendModeConverter() { - } - WebGLBlendModeConverter.getDestGLBlendMode = function (blendMode) { - switch (blendMode) { - case spine.BlendMode.Normal: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - case spine.BlendMode.Additive: return WebGLBlendModeConverter.ONE; - case spine.BlendMode.Multiply: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; - default: throw new Error("Unknown blend mode: " + blendMode); - } - }; - WebGLBlendModeConverter.getSourceGLBlendMode = function (blendMode, premultipliedAlpha) { - if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } - switch (blendMode) { - case spine.BlendMode.Normal: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; - case spine.BlendMode.Additive: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; - case spine.BlendMode.Multiply: return WebGLBlendModeConverter.DST_COLOR; - case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE; - default: throw new Error("Unknown blend mode: " + blendMode); - } - }; - WebGLBlendModeConverter.ZERO = 0; - WebGLBlendModeConverter.ONE = 1; - WebGLBlendModeConverter.SRC_COLOR = 0x0300; - WebGLBlendModeConverter.ONE_MINUS_SRC_COLOR = 0x0301; - WebGLBlendModeConverter.SRC_ALPHA = 0x0302; - WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA = 0x0303; - WebGLBlendModeConverter.DST_ALPHA = 0x0304; - WebGLBlendModeConverter.ONE_MINUS_DST_ALPHA = 0x0305; - WebGLBlendModeConverter.DST_COLOR = 0x0306; - return WebGLBlendModeConverter; - }()); - webgl.WebGLBlendModeConverter = WebGLBlendModeConverter; - })(webgl = spine.webgl || (spine.webgl = {})); + var webgl; + (function (webgl) { + var ManagedWebGLRenderingContext = (function () { + function ManagedWebGLRenderingContext(canvasOrContext, contextConfig) { + var _this = this; + if (contextConfig === void 0) { contextConfig = { alpha: "true" }; } + this.restorables = new Array(); + if (!((canvasOrContext instanceof WebGLRenderingContext) || (canvasOrContext instanceof WebGL2RenderingContext))) { + var canvas = canvasOrContext; + this.gl = (canvas.getContext("webgl2", contextConfig) || canvas.getContext("webgl", contextConfig)); + this.canvas = canvas; + canvas.addEventListener("webglcontextlost", function (e) { + var event = e; + if (e) { + e.preventDefault(); + } + }); + canvas.addEventListener("webglcontextrestored", function (e) { + for (var i = 0, n = _this.restorables.length; i < n; i++) { + _this.restorables[i].restore(); + } + }); + } + else { + this.gl = canvasOrContext; + this.canvas = this.gl.canvas; + } + } + ManagedWebGLRenderingContext.prototype.addRestorable = function (restorable) { + this.restorables.push(restorable); + }; + ManagedWebGLRenderingContext.prototype.removeRestorable = function (restorable) { + var index = this.restorables.indexOf(restorable); + if (index > -1) + this.restorables.splice(index, 1); + }; + return ManagedWebGLRenderingContext; + }()); + webgl.ManagedWebGLRenderingContext = ManagedWebGLRenderingContext; + var WebGLBlendModeConverter = (function () { + function WebGLBlendModeConverter() { + } + WebGLBlendModeConverter.getDestGLBlendMode = function (blendMode) { + switch (blendMode) { + case spine.BlendMode.Normal: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + case spine.BlendMode.Additive: return WebGLBlendModeConverter.ONE; + case spine.BlendMode.Multiply: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA; + default: throw new Error("Unknown blend mode: " + blendMode); + } + }; + WebGLBlendModeConverter.getSourceGLBlendMode = function (blendMode, premultipliedAlpha) { + if (premultipliedAlpha === void 0) { premultipliedAlpha = false; } + switch (blendMode) { + case spine.BlendMode.Normal: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; + case spine.BlendMode.Additive: return premultipliedAlpha ? WebGLBlendModeConverter.ONE : WebGLBlendModeConverter.SRC_ALPHA; + case spine.BlendMode.Multiply: return WebGLBlendModeConverter.DST_COLOR; + case spine.BlendMode.Screen: return WebGLBlendModeConverter.ONE; + default: throw new Error("Unknown blend mode: " + blendMode); + } + }; + WebGLBlendModeConverter.ZERO = 0; + WebGLBlendModeConverter.ONE = 1; + WebGLBlendModeConverter.SRC_COLOR = 0x0300; + WebGLBlendModeConverter.ONE_MINUS_SRC_COLOR = 0x0301; + WebGLBlendModeConverter.SRC_ALPHA = 0x0302; + WebGLBlendModeConverter.ONE_MINUS_SRC_ALPHA = 0x0303; + WebGLBlendModeConverter.DST_ALPHA = 0x0304; + WebGLBlendModeConverter.ONE_MINUS_DST_ALPHA = 0x0305; + WebGLBlendModeConverter.DST_COLOR = 0x0306; + return WebGLBlendModeConverter; + }()); + webgl.WebGLBlendModeConverter = WebGLBlendModeConverter; + })(webgl = spine.webgl || (spine.webgl = {})); })(spine || (spine = {})); //# sourceMappingURL=spine-webgl.js.map \ No newline at end of file diff --git a/spine-ts/build/spine-webgl.js.map b/spine-ts/build/spine-webgl.js.map index 2ac111f9f..ac90bda38 100644 --- a/spine-ts/build/spine-webgl.js.map +++ b/spine-ts/build/spine-webgl.js.map @@ -1 +1 @@ -{"version":3,"file":"spine-webgl.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/ConstraintData.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBinary.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../core/src/VertexEffect.ts","../core/src/polyfills.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/vertexeffects/JitterEffect.ts","../core/src/vertexeffects/SwirlEffect.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts"],"names":[],"mappings":"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AAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC7G,IAAI,KAAK,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,OAAO,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC7G,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;YAC9G,CAAC;YAED,2BAAS,GAAT,UAAW,CAAS,EAAE,CAAS,EAAE,CAAS;gBACzC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,CAAC,CAAC,MAAA,GAAG,CAAC,IAAI,CAAC,CAAC;gBACZ,CAAC,CAAC,MAAA,GAAG,CAAC,IAAI,CAAC,CAAC;gBACZ,CAAC,CAAC,MAAA,GAAG,CAAC,IAAI,CAAC,CAAC;gBACZ,OAAO,IAAI,CAAC;YACb,CAAC;YAED,sBAAI,GAAJ;gBACC,OAAO,IAAI,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;YAED,4BAAU,GAAV,UAAY,IAAY,EAAE,GAAW,EAAE,IAAY,EAAE,WAAmB;gBACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC5D,IAAI,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;gBACvC,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;gBAC3C,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,GAAG,WAAW,CAAC;gBAC5B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC;gBACd,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC;gBACd,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACZ,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,IAAI,CAAC;gBACd,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,OAAO,IAAI,CAAC;YACb,CAAC;YAED,yBAAO,GAAP,UAAS,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc;gBAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACtD,CAAC;YAED,uBAAK,GAAL,UAAO,IAAY,EAAE,KAAa,EAAE,MAAc,EAAE,GAAW,EAAE,IAAY,EAAE,GAAW;gBACzF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;gBAChC,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;gBAChC,IAAI,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;gBAE/B,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;gBAC1C,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;gBAC1C,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;gBAEtC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,MAAM,CAAC;gBAChB,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,MAAM,CAAC;gBAChB,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,MAAM,CAAC;gBAChB,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,EAAE,CAAC;gBACZ,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,EAAE,CAAC;gBACZ,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,EAAE,CAAC;gBACZ,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,OAAO,IAAI,CAAC;YACb,CAAC;YAED,0BAAQ,GAAR,UAAU,MAAe;gBACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC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"} \ No newline at end of file +{"version":3,"file":"spine-webgl.js","sourceRoot":"","sources":["../core/src/Animation.ts","../core/src/AnimationState.ts","../core/src/AnimationStateData.ts","../core/src/AssetManager.ts","../core/src/AtlasAttachmentLoader.ts","../core/src/BlendMode.ts","../core/src/Bone.ts","../core/src/BoneData.ts","../core/src/ConstraintData.ts","../core/src/Event.ts","../core/src/EventData.ts","../core/src/IkConstraint.ts","../core/src/IkConstraintData.ts","../core/src/PathConstraint.ts","../core/src/PathConstraintData.ts","../core/src/SharedAssetManager.ts","../core/src/Skeleton.ts","../core/src/SkeletonBinary.ts","../core/src/SkeletonBounds.ts","../core/src/SkeletonClipping.ts","../core/src/SkeletonData.ts","../core/src/SkeletonJson.ts","../core/src/Skin.ts","../core/src/Slot.ts","../core/src/SlotData.ts","../core/src/Texture.ts","../core/src/TextureAtlas.ts","../core/src/TransformConstraint.ts","../core/src/TransformConstraintData.ts","../core/src/Triangulator.ts","../core/src/Updatable.ts","../core/src/Utils.ts","../core/src/VertexEffect.ts","../core/src/polyfills.ts","../core/src/attachments/Attachment.ts","../core/src/attachments/AttachmentLoader.ts","../core/src/attachments/AttachmentType.ts","../core/src/attachments/BoundingBoxAttachment.ts","../core/src/attachments/ClippingAttachment.ts","../core/src/attachments/MeshAttachment.ts","../core/src/attachments/PathAttachment.ts","../core/src/attachments/PointAttachment.ts","../core/src/attachments/RegionAttachment.ts","../core/src/vertexeffects/JitterEffect.ts","../core/src/vertexeffects/SwirlEffect.ts","../webgl/src/AssetManager.ts","../webgl/src/Camera.ts","../webgl/src/GLTexture.ts","../webgl/src/Input.ts","../webgl/src/LoadingScreen.ts","../webgl/src/Matrix4.ts","../webgl/src/Mesh.ts","../webgl/src/PolygonBatcher.ts","../webgl/src/SceneRenderer.ts","../webgl/src/Shader.ts","../webgl/src/ShapeRenderer.ts","../webgl/src/SkeletonDebugRenderer.ts","../webgl/src/SkeletonRenderer.ts","../webgl/src/Vector3.ts","../webgl/src/WebGL.ts"],"names":[],"mappings":"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AC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC7G,IAAI,KAAK,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACpF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAClF,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,OAAO,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACb,CAAC;YAED,6BAAW,GAAX;gBACC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,OAAO,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBAC7G,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC;sBACzG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG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AC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAED,8BAAY,GAAZ,UAAc,MAAe;gBAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CAAC;gBAC/E,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,GAAG,CAAC,CAAC,MAAA,GAAG,CAAC,CA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"} \ No newline at end of file diff --git a/spine-ts/core/src/Animation.ts b/spine-ts/core/src/Animation.ts index c259e97b8..88a09eb3e 100644 --- a/spine-ts/core/src/Animation.ts +++ b/spine-ts/core/src/Animation.ts @@ -34,7 +34,7 @@ module spine { /** The animation's name, which is unique across all animations in the skeleton. */ name: string; timelines: Array; - timelineIds: Array; + timelineIds: StringSet; /** The duration of the animation in seconds, which is the highest time of all keys in the timeline. */ duration: number; @@ -44,14 +44,17 @@ module spine { if (timelines == null) throw new Error("timelines cannot be null."); this.name = name; this.timelines = timelines; - this.timelineIds = []; + this.timelineIds = new StringSet(); for (var i = 0; i < timelines.length; i++) - this.timelineIds[timelines[i].getPropertyId()] = true; + this.timelineIds.addAll(timelines[i].getPropertyIds()); this.duration = duration; } - hasTimeline (id: number) { - return this.timelineIds[id] == true; + hasTimeline(ids: string[]) { + for (let i = 0; i < ids.length; i++) { + if (this.timelineIds.contains(ids[i])) return true; + } + return false; } /** Applies all the animation's timelines to the specified skeleton. @@ -72,55 +75,20 @@ module spine { timelines[i].apply(skeleton, lastTime, time, events, alpha, blend, direction); } - /** @param target After the first and before the last value. - * @returns index of first value greater than the target. */ - static binarySearch (values: ArrayLike, target: number, step: number = 1) { - let low = 0; - let high = values.length / step - 2; - if (high == 0) return step; - let current = high >>> 1; - while (true) { - if (values[(current + 1) * step] <= target) - low = current + 1; - else - high = current; - if (low == high) return (low + 1) * step; - current = (low + high) >>> 1; - } + static search (frames: ArrayLike, time: number) { + let n = frames.length; + for (let i = 1; i < n; i++) + if (frames[i] > time) return i - 1; + return n - 1; } - static linearSearch (values: ArrayLike, target: number, step: number) { + static search2 (values: ArrayLike, target: number, step: number) { for (let i = 0, last = values.length - step; i <= last; i += step) if (values[i] > target) return i; return -1; } } - /** The interface for all timelines. */ - export interface Timeline { - /** Applies this timeline to the skeleton. - * @param skeleton The skeleton the timeline is being applied to. This provides access to the bones, slots, and other - * skeleton components the timeline may change. - * @param lastTime The time this timeline was last applied. Timelines such as {@link EventTimeline}} trigger only at specific - * times rather than every frame. In that case, the timeline triggers everything between `lastTime` - * (exclusive) and `time` (inclusive). - * @param time The time within the animation. Most timelines find the key before and the key after this time so they can - * interpolate between the keys. - * @param events If any events are fired, they are added to this list. Can be null to ignore fired events or if the timeline - * does not fire events. - * @param alpha 0 applies the current or setup value (depending on `blend`). 1 applies the timeline value. - * Between 0 and 1 applies a value between the current or setup value and the timeline value. By adjusting - * `alpha` over time, an animation can be mixed in or out. `alpha` can also be useful to - * apply animations on top of each other (layering). - * @param blend Controls how mixing is applied when `alpha` < 1. - * @param direction Indicates whether the timeline is mixing in or out. Used by timelines which perform instant transitions, - * such as {@link DrawOrderTimeline} or {@link AttachmentTimeline}. */ - apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; - - /** Uniquely encodes both the type of this timeline and the skeleton property that it affects. */ - getPropertyId (): number; - } - /** Controls how a timeline value is mixed with the setup pose value or current pose value when a timeline's `alpha` * < 1. * @@ -157,138 +125,231 @@ module spine { mixIn, mixOut } - export enum TimelineType { - rotate, translate, scale, shear, - attachment, color, deform, - event, drawOrder, - ikConstraint, transformConstraint, - pathConstraintPosition, pathConstraintSpacing, pathConstraintMix, - twoColor + export enum Property { + rotate, translateX, translateY, scaleX, scaleY, shearX, shearY, // + rgba, rgb2, // + attachment, deform, // + event, drawOrder, // + ikConstraint, transformConstraint, // + pathConstraintPosition, pathConstraintSpacing, pathConstraintMix + } - /** The base class for timelines that use interpolation between key frame values. */ - export abstract class CurveTimeline implements Timeline { - static LINEAR = 0; static STEPPED = 1; static BEZIER = 2; - static BEZIER_SIZE = 10 * 2 - 1; + /** The interface for all timelines. */ + export abstract class Timeline { + propertyIds: string[]; + frames: ArrayLike; - private curves: ArrayLike; // type, x, y, ... - - abstract getPropertyId(): number; - - constructor (frameCount: number) { - if (frameCount <= 0) throw new Error("frameCount must be > 0: " + frameCount); - this.curves = Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE); + constructor(frameCount: number, propertyIds: string[]) { + this.propertyIds = propertyIds; + this.frames = Utils.newFloatArray(frameCount * this.getFrameEntries()); } - /** The number of key frames for this timeline. */ + abstract getFrameEntries (): number; + getFrameCount () { - return this.curves.length / CurveTimeline.BEZIER_SIZE + 1; + return this.frames.length / this.getFrameEntries(); } - /** Sets the specified key frame to linear interpolation. */ - setLinear (frameIndex: number) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR; - } - - /** Sets the specified key frame to stepped interpolation. */ - setStepped (frameIndex: number) { - this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED; - } - - /** Returns the interpolation type for the specified key frame. - * @returns Linear is 0, stepped is 1, Bezier is 2. */ - getCurveType (frameIndex: number): number { - let index = frameIndex * CurveTimeline.BEZIER_SIZE; - if (index == this.curves.length) return CurveTimeline.LINEAR; - let type = this.curves[index]; - if (type == CurveTimeline.LINEAR) return CurveTimeline.LINEAR; - if (type == CurveTimeline.STEPPED) return CurveTimeline.STEPPED; - return CurveTimeline.BEZIER; - } - - /** Sets the specified key frame to Bezier interpolation. `cx1` and `cx2` are from 0 to 1, - * representing the percent of time between the two key frames. `cy1` and `cy2` are the percent of the - * difference between the key frame's values. */ - setCurve (frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number) { - let tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03; - let dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006; - let ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy; - let dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667; - - let i = frameIndex * CurveTimeline.BEZIER_SIZE; - let curves = this.curves; - curves[i++] = CurveTimeline.BEZIER; - - let x = dfx, y = dfy; - for (let n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - curves[i] = x; - curves[i + 1] = y; - dfx += ddfx; - dfy += ddfy; - ddfx += dddfx; - ddfy += dddfy; - x += dfx; - y += dfy; - } - } - - /** Returns the interpolated percentage for the specified key frame and linear percentage. */ - getCurvePercent (frameIndex: number, percent: number) { - percent = MathUtils.clamp(percent, 0, 1); - let curves = this.curves; - let i = frameIndex * CurveTimeline.BEZIER_SIZE; - let type = curves[i]; - if (type == CurveTimeline.LINEAR) return percent; - if (type == CurveTimeline.STEPPED) return 0; - i++; - let x = 0; - for (let start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) { - x = curves[i]; - if (x >= percent) { - let prevX: number, prevY: number; - if (i == start) { - prevX = 0; - prevY = 0; - } else { - prevX = curves[i - 2]; - prevY = curves[i - 1]; - } - return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX); - } - } - let y = curves[i - 1]; - return y + (1 - y) * (percent - x) / (1 - x); // Last point is 1,1. + getDuration (): number { + return this.frames[this.frames.length - this.getFrameEntries()]; } abstract apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + + getPropertyIds () { + return this.propertyIds; + } + } + + export interface BoneTimeline { + /** The index of the bone in {@link Skeleton#bones} that will be changed. */ + boneIndex: number; + } + + export interface SlotTimeline { + /** The index of the slot in {@link Skeleton#slots} that will be changed. */ + slotIndex: number; + } + + /** The base class for timelines that use interpolation between key frame values. */ + export abstract class CurveTimeline extends Timeline { + static LINEAR = 0; static STEPPED = 1; static BEZIER = 2; + static BEZIER_SIZE = 18; + + protected curves: ArrayLike; // type, x, y, ... + + constructor (frameCount: number, bezierCount: number, propertyIds: string[]) { + super(frameCount, propertyIds); + this.curves = Utils.newFloatArray(frameCount + bezierCount * CurveTimeline.BEZIER_SIZE); + this.curves[frameCount - 1] = CurveTimeline.STEPPED; + } + + /** Sets the specified key frame to linear interpolation. */ + setLinear (frame: number) { + this.curves[frame] = CurveTimeline.LINEAR; + } + + /** Sets the specified key frame to stepped interpolation. */ + setStepped (frame: number) { + this.curves[frame] = CurveTimeline.STEPPED; + } + + /** Shrinks the storage for Bezier curves, for use when bezierCount (specified in the constructor) was larger + * than the actual number of Bezier curves. */ + shrink (bezierCount: number) { + let size = this.getFrameCount() + bezierCount * CurveTimeline.BEZIER_SIZE; + if (this.curves.length > size) { + let newCurves = Utils.newFloatArray(size); + Utils.arrayCopy(this.curves, 0, newCurves, 0, size); + this.curves = newCurves; + } + } + + /** Stores the segments for the specified Bezier curve. For timelines that modify multiple values, there may be more than + * one curve per frame. + * @param bezier The ordinal of this Bezier curve for this timeline, between 0 and bezierCount - 1 (specified + * in the constructor), inclusive. + * @param frame Between 0 and frameCount - 1, inclusive. + * @param value The index of the value for this frame that this curve is used for. + * @param time1 The time for the first key. + * @param value1 The value for the first key. + * @param cx1 The time for the first Bezier handle. + * @param cy1 The value for the first Bezier handle. + * @param cx2 The time of the second Bezier handle. + * @param cy2 The value for the second Bezier handle. + * @param time2 The time for the second key. + * @param value2 The value for the second key. */ + setBezier (bezier: number, frame: number, value: number, time1: number, value1: number, cx1: number, cy1: number, cx2: number, + cy2: number, time2: number, value2: number) { + let curves = this.curves; + let i = this.getFrameCount() + bezier * CurveTimeline.BEZIER_SIZE; + if (value == 0) curves[frame] =CurveTimeline.BEZIER + i; + let tmpx = (time1 - cx1 * 2 + cx2) * 0.03, tmpy = (value1 - cy1 * 2 + cy2) * 0.03; + let dddx = ((cx1 - cx2) * 3 - time1 + time2) * 0.006, dddy = ((cy1 - cy2) * 3 - value1 + value2) * 0.006; + let ddx = tmpx * 2 + dddx, ddy = tmpy * 2 + dddy; + let dx = (cx1 - time1) * 0.3 + tmpx + dddx * 0.16666667, dy = (cy1 - value1) * 0.3 + tmpy + dddy * 0.16666667; + let x = time1 + dx, y = value1 + dy; + for (let n = i + CurveTimeline.BEZIER_SIZE; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dx += ddx; + dy += ddy; + ddx += dddx; + ddy += dddy; + x += dx; + y += dy; + } + } + + /** Returns the Bezier interpolated value for the specified time. + * @param frameIndex The index into {@link #getFrames()} for the values of the frame before time. + * @param valueOffset The offset from frameIndex to the value this curve is used for. + * @param i The index of the Bezier segments. See {@link #getCurveType(int)}. */ + getBezierValue (time: number, frameIndex: number, valueOffset: number, i: number) { + let curves = this.curves; + let frames = this.frames; + if (curves[i] > time) { + let x = frames[frameIndex], y = frames[frameIndex + valueOffset]; + return y + (time - x) / (curves[i] - x) * (curves[i + 1] - y); + } + let n = i + CurveTimeline.BEZIER_SIZE; + for (i += 2; i < n; i += 2) { + if (curves[i] >= time) { + let x = curves[i - 2], y = curves[i - 1]; + return y + (time - x) / (curves[i] - x) * (curves[i + 1] - y); + + + + } + } + frameIndex += this.getFrameEntries(); + let x = curves[n - 2], y = curves[n - 1]; + return y + (time - x) / (frames[frameIndex] - x) * (frames[frameIndex + valueOffset] - y); + } + } + + export abstract class CurveTimeline1 extends CurveTimeline { + static ENTRIES = 2; + static VALUE = 1; + + constructor(frameCount: number, bezierCount: number, propertyIds: string[]) { + super(frameCount, bezierCount, propertyIds); + } + + getFrameEntries() { + return CurveTimeline1.ENTRIES; + } + + /** Sets the time and value for the specified frame. + * @param frame Between 0 and frameCount, inclusive. + * @param time The frame time in seconds. */ + setFrame (frame: number, time: number, value: number) { + frame <<= 1; + this.frames[frame] = time; + this.frames[frame + CurveTimeline1.VALUE] = value; + } + + /** Returns the interpolated value for the specified time. */ + getCurveValue (time: number) { + let frames = this.frames; + let i = frames.length - 2; + for (let ii = 2; ii <= i; ii += 2) { + if (frames[ii] > time) { + i = ii - 2; + break; + } + } + + let curveType = this.curves[i >> 1]; + switch (curveType) { + case CurveTimeline.LINEAR: + let before = frames[i], value = frames[i + CurveTimeline1.VALUE]; + return value + (time - before) / (frames[i + CurveTimeline1.ENTRIES] - before) * (frames[i + CurveTimeline1.ENTRIES + CurveTimeline1.VALUE] - value); + case CurveTimeline.STEPPED: + return frames[i + CurveTimeline1.VALUE]; + } + return this.getBezierValue(time, i, CurveTimeline1.VALUE, curveType - CurveTimeline1.BEZIER); + } + } + + /** The base class for a {@link CurveTimeline} which sets two properties. */ + export abstract class CurveTimeline2 extends CurveTimeline { + static ENTRIES = 3; + static VALUE1 = 1; + static VALUE2 = 2; + + /** @param bezierCount The maximum number of Bezier curves. See {@link #shrink(int)}. + * @param propertyIds Unique identifiers for the properties the timeline modifies. */ + constructor (frameCount: number, bezierCount: number, propertyIds: string[]) { + super(frameCount, bezierCount, propertyIds); + } + + getFrameEntries () { + return CurveTimeline2.ENTRIES; + } + + /** Sets the time and values for the specified frame. + * @param frame Between 0 and frameCount, inclusive. + * @param time The frame time in seconds. */ + setFrame (frame: number, time: number, value1: number, value2: number) { + frame *= CurveTimeline2.ENTRIES; + let frames = this.frames; + frames[frame] = time; + frames[frame + CurveTimeline2.VALUE1] = value1; + frames[frame + CurveTimeline2.VALUE2] = value2; + } } /** Changes a bone's local {@link Bone#rotation}. */ - export class RotateTimeline extends CurveTimeline { - static ENTRIES = 2; - static PREV_TIME = -2; static PREV_ROTATION = -1; - static ROTATION = 1; + export class RotateTimeline extends CurveTimeline1 implements BoneTimeline { + boneIndex = 0; - /** The index of the bone in {@link Skeleton#bones} that will be changed. */ - boneIndex: number; - - /** The time in seconds and rotation in degrees for each key frame. */ - frames: ArrayLike; // time, degrees, ... - - constructor (frameCount: number) { - super(frameCount); - this.frames = Utils.newFloatArray(frameCount << 1); - } - - getPropertyId () { - return (TimelineType.rotate << 24) + this.boneIndex; - } - - /** Sets the time and angle of the specified keyframe. */ - setFrame (frameIndex: number, time: number, degrees: number) { - frameIndex <<= 1; - this.frames[frameIndex] = time; - this.frames[frameIndex + RotateTimeline.ROTATION] = degrees; + constructor (frameCount: number, bezierCount: number, boneIndex: number) { + super(frameCount, bezierCount, [ + Property.rotate + "|" + boneIndex + ]); + this.boneIndex = boneIndex; } apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection) { @@ -296,83 +357,42 @@ module spine { let bone = skeleton.bones[this.boneIndex]; if (!bone.active) return; + if (time < frames[0]) { switch (blend) { case MixBlend.setup: bone.rotation = bone.data.rotation; return; case MixBlend.first: - let r = bone.data.rotation - bone.rotation; - bone.rotation += (r - (16384 - ((16384.499999999996 - r / 360) | 0)) * 360) * alpha; + bone.rotation += (bone.data.rotation - bone.rotation) * alpha; } return; } - if (time >= frames[frames.length - RotateTimeline.ENTRIES]) { // Time is after last frame. - let r = frames[frames.length + RotateTimeline.PREV_ROTATION]; - switch (blend) { - case MixBlend.setup: - bone.rotation = bone.data.rotation + r * alpha; - break; - case MixBlend.first: - case MixBlend.replace: - r += bone.data.rotation - bone.rotation; - r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360; // Wrap within -180 and 180. - case MixBlend.add: - bone.rotation += r * alpha; - } - return; - } - - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); - let prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent((frame >> 1) - 1, - 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); - - let r = frames[frame + RotateTimeline.ROTATION] - prevRotation; - r = prevRotation + (r - (16384 - ((16384.499999999996 - r / 360) | 0)) * 360) * percent; + let r = this.getCurveValue(time); switch (blend) { case MixBlend.setup: - bone.rotation = bone.data.rotation + (r - (16384 - ((16384.499999999996 - r / 360) | 0)) * 360) * alpha; + bone.rotation = bone.data.rotation + r * alpha; break; case MixBlend.first: case MixBlend.replace: r += bone.data.rotation - bone.rotation; case MixBlend.add: - bone.rotation += (r - (16384 - ((16384.499999999996 - r / 360) | 0)) * 360) * alpha; + bone.rotation += r * alpha; } } } /** Changes a bone's local {@link Bone#x} and {@link Bone#y}. */ - export class TranslateTimeline extends CurveTimeline { - static ENTRIES = 3; - static PREV_TIME = -3; static PREV_X = -2; static PREV_Y = -1; - static X = 1; static Y = 2; + export class TranslateTimeline extends CurveTimeline2 implements BoneTimeline { + boneIndex = 0; - /** The index of the bone in {@link Skeleton#bones} that will be changed. */ - boneIndex: number; - - /** The time in seconds, x, and y values for each key frame. */ - frames: ArrayLike; // time, x, y, ... - - constructor (frameCount: number) { - super(frameCount); - this.frames = Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES); - } - - getPropertyId () { - return (TimelineType.translate << 24) + this.boneIndex; - } - - /** Sets the time in seconds, x, and y values for the specified key frame. */ - setFrame (frameIndex: number, time: number, x: number, y: number) { - frameIndex *= TranslateTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TranslateTimeline.X] = x; - this.frames[frameIndex + TranslateTimeline.Y] = y; + constructor (frameCount: number, bezierCount: number, boneIndex: number) { + super(frameCount, bezierCount, [ + Property.translateX + "|" + boneIndex, + Property.translateY + "|" + boneIndex, + ]); + this.boneIndex = boneIndex; } apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection) { @@ -380,6 +400,7 @@ module spine { let bone = skeleton.bones[this.boneIndex]; if (!bone.active) return; + if (time < frames[0]) { switch (blend) { case MixBlend.setup: @@ -394,21 +415,26 @@ module spine { } let x = 0, y = 0; - if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) { // Time is after last frame. - x = frames[frames.length + TranslateTimeline.PREV_X]; - y = frames[frames.length + TranslateTimeline.PREV_Y]; - } else { - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES); - x = frames[frame + TranslateTimeline.PREV_X]; - y = frames[frame + TranslateTimeline.PREV_Y]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime)); - - x += (frames[frame + TranslateTimeline.X] - x) * percent; - y += (frames[frame + TranslateTimeline.Y] - y) * percent; + let i = Animation.search2(frames, time, CurveTimeline2.ENTRIES); + let curveType = this.curves[i / CurveTimeline2.ENTRIES]; + switch (curveType) { + case CurveTimeline.LINEAR: + let before = frames[i]; + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + let t = (time - before) / (frames[i + CurveTimeline2.ENTRIES] - before); + x += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE1] - x) * t; + y += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE2] - y) * t; + break; + case CurveTimeline.STEPPED: + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + break; + default: + x = this.getBezierValue(time, i, CurveTimeline2.VALUE1, curveType - CurveTimeline.BEZIER); + y = this.getBezierValue(time, i, CurveTimeline2.VALUE2, curveType + CurveTimeline.BEZIER_SIZE - CurveTimeline.BEZIER); } + switch (blend) { case MixBlend.setup: bone.x = bone.data.x + x * alpha; @@ -427,13 +453,15 @@ module spine { } /** Changes a bone's local {@link Bone#scaleX)} and {@link Bone#scaleY}. */ - export class ScaleTimeline extends TranslateTimeline { - constructor (frameCount: number) { - super(frameCount); - } + export class ScaleTimeline extends CurveTimeline2 implements BoneTimeline { + boneIndex = 0; - getPropertyId () { - return (TimelineType.scale << 24) + this.boneIndex; + constructor (frameCount: number, bezierCount: number, boneIndex: number) { + super(frameCount, bezierCount, [ + Property.scaleX + "|" + boneIndex, + Property.scaleY + "|" + boneIndex + ]); + this.boneIndex = boneIndex; } apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection) { @@ -441,6 +469,7 @@ module spine { let bone = skeleton.bones[this.boneIndex]; if (!bone.active) return; + if (time < frames[0]) { switch (blend) { case MixBlend.setup: @@ -455,21 +484,28 @@ module spine { } let x = 0, y = 0; - if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) { // Time is after last frame. - x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX; - y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY; - } else { - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES); - x = frames[frame + ScaleTimeline.PREV_X]; - y = frames[frame + ScaleTimeline.PREV_Y]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime)); - - x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX; - y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY; + let i = Animation.search2(frames, time, CurveTimeline2.ENTRIES); + let curveType = this.curves[i / CurveTimeline2.ENTRIES]; + switch (curveType) { + case CurveTimeline.LINEAR: + let before = frames[i]; + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + let t = (time - before) / (frames[i + CurveTimeline2.ENTRIES] - before); + x += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE1] - x) * t; + y += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE2] - y) * t; + break; + case CurveTimeline.STEPPED: + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + break; + default: + x = this.getBezierValue(time, i,CurveTimeline2.VALUE1, curveType - CurveTimeline2.BEZIER); + y = this.getBezierValue(time, i, CurveTimeline2.VALUE2, curveType + CurveTimeline2.BEZIER_SIZE - CurveTimeline2.BEZIER); } + x *= bone.data.scaleX; + y *= bone.data.scaleY; + if (alpha == 1) { if (blend == MixBlend.add) { bone.scaleX += x - bone.data.scaleX; @@ -528,13 +564,15 @@ module spine { } /** Changes a bone's local {@link Bone#shearX} and {@link Bone#shearY}. */ - export class ShearTimeline extends TranslateTimeline { - constructor (frameCount: number) { - super(frameCount); - } + export class ShearTimeline extends CurveTimeline2 implements BoneTimeline { + boneIndex = 0; - getPropertyId () { - return (TimelineType.shear << 24) + this.boneIndex; + constructor (frameCount: number, bezierCount: number, boneIndex: number) { + super(frameCount, bezierCount, [ + Property.shearX + "|" + boneIndex, + Property.shearY + "|" + boneIndex + ]); + this.boneIndex = boneIndex; } apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection) { @@ -542,6 +580,7 @@ module spine { let bone = skeleton.bones[this.boneIndex]; if (!bone.active) return; + if (time < frames[0]) { switch (blend) { case MixBlend.setup: @@ -556,21 +595,26 @@ module spine { } let x = 0, y = 0; - if (time >= frames[frames.length - ShearTimeline.ENTRIES]) { // Time is after last frame. - x = frames[frames.length + ShearTimeline.PREV_X]; - y = frames[frames.length + ShearTimeline.PREV_Y]; - } else { - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES); - x = frames[frame + ShearTimeline.PREV_X]; - y = frames[frame + ShearTimeline.PREV_Y]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime)); - - x = x + (frames[frame + ShearTimeline.X] - x) * percent; - y = y + (frames[frame + ShearTimeline.Y] - y) * percent; + let i = Animation.search2(frames, time, CurveTimeline2.ENTRIES); + let curveType = this.curves[i / CurveTimeline2.ENTRIES]; + switch (curveType) { + case CurveTimeline2.LINEAR: + let before = frames[i]; + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + let t = (time - before) / (frames[i + CurveTimeline2.ENTRIES] - before); + x += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE1] - x) * t; + y += (frames[i + CurveTimeline2.ENTRIES + CurveTimeline2.VALUE2] - y) * t; + break; + case CurveTimeline2.STEPPED: + x = frames[i + CurveTimeline2.VALUE1]; + y = frames[i + CurveTimeline2.VALUE2]; + break; + default: + x = this.getBezierValue(time, i, CurveTimeline2.VALUE1, curveType - CurveTimeline2.BEZIER); + y = this.getBezierValue(time, i, CurveTimeline2.VALUE2, curveType + CurveTimeline2.BEZIER_SIZE - CurveTimeline2.BEZIER); } + switch (blend) { case MixBlend.setup: bone.shearX = bone.data.shearX + x * alpha; @@ -589,24 +633,22 @@ module spine { } /** Changes a slot's {@link Slot#color}. */ - export class ColorTimeline extends CurveTimeline { + export class ColorTimeline extends CurveTimeline implements SlotTimeline { static ENTRIES = 5; - static PREV_TIME = -5; static PREV_R = -4; static PREV_G = -3; static PREV_B = -2; static PREV_A = -1; + static R = 1; static G = 2; static B = 3; static A = 4; - /** The index of the slot in {@link Skeleton#slots} that will be changed. */ - slotIndex: number; + slotIndex = 0; - /** The time in seconds, red, green, blue, and alpha values for each key frame. */ - frames: ArrayLike; // time, r, g, b, a, ... - - constructor (frameCount: number) { - super(frameCount); - this.frames = Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES); + constructor (frameCount: number, bezierCount: number, slotIndex: number) { + super(frameCount, bezierCount, [ + Property.rgba + "|" + slotIndex + ]); + this.slotIndex = slotIndex; } - getPropertyId () { - return (TimelineType.color << 24) + this.slotIndex; + getFrameEntries () { + return ColorTimeline.ENTRIES; } /** Sets the time in seconds, red, green, blue, and alpha for the specified key frame. */ @@ -622,6 +664,7 @@ module spine { apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection) { let slot = skeleton.slots[this.slotIndex]; if (!slot.bone.active) return; + let frames = this.frames; if (time < frames[0]) { switch (blend) { @@ -637,27 +680,32 @@ module spine { } let r = 0, g = 0, b = 0, a = 0; - if (time >= frames[frames.length - ColorTimeline.ENTRIES]) { // Time is after last frame. - let i = frames.length; - r = frames[i + ColorTimeline.PREV_R]; - g = frames[i + ColorTimeline.PREV_G]; - b = frames[i + ColorTimeline.PREV_B]; - a = frames[i + ColorTimeline.PREV_A]; - } else { - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES); - r = frames[frame + ColorTimeline.PREV_R]; - g = frames[frame + ColorTimeline.PREV_G]; - b = frames[frame + ColorTimeline.PREV_B]; - a = frames[frame + ColorTimeline.PREV_A]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime)); - - r += (frames[frame + ColorTimeline.R] - r) * percent; - g += (frames[frame + ColorTimeline.G] - g) * percent; - b += (frames[frame + ColorTimeline.B] - b) * percent; - a += (frames[frame + ColorTimeline.A] - a) * percent; + let i = Animation.search2(frames, time, ColorTimeline.ENTRIES); + let curveType = this.curves[i / ColorTimeline.ENTRIES]; + switch (curveType) { + case ColorTimeline.LINEAR: + let before = frames[i]; + r = frames[i + ColorTimeline.R]; + g = frames[i + ColorTimeline.G]; + b = frames[i + ColorTimeline.B]; + a = frames[i + ColorTimeline.A]; + let t = (time - before) / (frames[i + ColorTimeline.ENTRIES] - before); + r += (frames[i + ColorTimeline.ENTRIES + ColorTimeline.R] - r) * t; + g += (frames[i + ColorTimeline.ENTRIES + ColorTimeline.G] - g) * t; + b += (frames[i + ColorTimeline.ENTRIES + ColorTimeline.B] - b) * t; + a += (frames[i + ColorTimeline.ENTRIES + ColorTimeline.A] - a) * t; + break; + case ColorTimeline.STEPPED: + r = frames[i + ColorTimeline.R]; + g = frames[i + ColorTimeline.G]; + b = frames[i + ColorTimeline.B]; + a = frames[i + ColorTimeline.A]; + break; + default: + r = this.getBezierValue(time, i, ColorTimeline.R, curveType - ColorTimeline.BEZIER); + g = this.getBezierValue(time, i, ColorTimeline.G, curveType + ColorTimeline.BEZIER_SIZE - ColorTimeline.BEZIER); + b = this.getBezierValue(time, i, ColorTimeline.B, curveType + ColorTimeline.BEZIER_SIZE * 2 - ColorTimeline.BEZIER); + a = this.getBezierValue(time, i, ColorTimeline.A, curveType + ColorTimeline.BEZIER_SIZE * 3 - ColorTimeline.BEZIER); } if (alpha == 1) slot.color.set(r, g, b, a); @@ -670,26 +718,23 @@ module spine { } /** Changes a slot's {@link Slot#color} and {@link Slot#darkColor} for two color tinting. */ - export class TwoColorTimeline extends CurveTimeline { + export class TwoColorTimeline extends CurveTimeline implements SlotTimeline{ static ENTRIES = 8; - static PREV_TIME = -8; static PREV_R = -7; static PREV_G = -6; static PREV_B = -5; static PREV_A = -4; - static PREV_R2 = -3; static PREV_G2 = -2; static PREV_B2 = -1; + static R = 1; static G = 2; static B = 3; static A = 4; static R2 = 5; static G2 = 6; static B2 = 7; - /** The index of the slot in {@link Skeleton#slots()} that will be changed. The {@link Slot#darkColor()} must not be - * null. */ - slotIndex: number; + slotIndex = 0; - /** The time in seconds, red, green, blue, and alpha values of the color, red, green, blue of the dark color, for each key frame. */ - frames: ArrayLike; // time, r, g, b, a, r2, g2, b2, ... - - constructor (frameCount: number) { - super(frameCount); - this.frames = Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES); + constructor (frameCount: number, bezierCount: number, slotIndex: number) { + super(frameCount, bezierCount, [ + Property.rgba + "|" + slotIndex, + Property.rgb2 + "|" + slotIndex + ]); + this.slotIndex = slotIndex; } - getPropertyId () { - return (TimelineType.twoColor << 24) + this.slotIndex; + getFrameEntries () { + return TwoColorTimeline.ENTRIES; } /** Sets the time in seconds, light, and dark colors for the specified key frame. */ @@ -708,6 +753,7 @@ module spine { apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection) { let slot = skeleton.slots[this.slotIndex]; if (!slot.bone.active) return; + let frames = this.frames; if (time < frames[0]) { switch (blend) { @@ -725,37 +771,46 @@ module spine { } let r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; - if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) { // Time is after last frame. - let i = frames.length; - r = frames[i + TwoColorTimeline.PREV_R]; - g = frames[i + TwoColorTimeline.PREV_G]; - b = frames[i + TwoColorTimeline.PREV_B]; - a = frames[i + TwoColorTimeline.PREV_A]; - r2 = frames[i + TwoColorTimeline.PREV_R2]; - g2 = frames[i + TwoColorTimeline.PREV_G2]; - b2 = frames[i + TwoColorTimeline.PREV_B2]; - } else { - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES); - r = frames[frame + TwoColorTimeline.PREV_R]; - g = frames[frame + TwoColorTimeline.PREV_G]; - b = frames[frame + TwoColorTimeline.PREV_B]; - a = frames[frame + TwoColorTimeline.PREV_A]; - r2 = frames[frame + TwoColorTimeline.PREV_R2]; - g2 = frames[frame + TwoColorTimeline.PREV_G2]; - b2 = frames[frame + TwoColorTimeline.PREV_B2]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime)); - - r += (frames[frame + TwoColorTimeline.R] - r) * percent; - g += (frames[frame + TwoColorTimeline.G] - g) * percent; - b += (frames[frame + TwoColorTimeline.B] - b) * percent; - a += (frames[frame + TwoColorTimeline.A] - a) * percent; - r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent; - g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent; - b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent; + let i = Animation.search2(frames, time, TwoColorTimeline.ENTRIES); + let curveType = this.curves[i >> 3]; + switch (curveType) { + case TwoColorTimeline.LINEAR: + let before = frames[i]; + r = frames[i + TwoColorTimeline.R]; + g = frames[i + TwoColorTimeline.G]; + b = frames[i + TwoColorTimeline.B]; + a = frames[i + TwoColorTimeline.A]; + r2 = frames[i + TwoColorTimeline.R2]; + g2 = frames[i + TwoColorTimeline.G2]; + b2 = frames[i + TwoColorTimeline.B2]; + let t = (time - before) / (frames[i + TwoColorTimeline.ENTRIES] - before); + r += (frames[i + TwoColorTimeline.ENTRIES + TwoColorTimeline.R] - r) * t; + g += (frames[i + TwoColorTimeline.ENTRIES + TwoColorTimeline.G] - g) * t; + b += (frames[i + TwoColorTimeline.ENTRIES + TwoColorTimeline.B] - b) * t; + a += (frames[i + TwoColorTimeline.ENTRIES + TwoColorTimeline.A] - a) * t; + r2 += (frames[i + TwoColorTimeline.ENTRIES + TwoColorTimeline.R2] - r2) * t; + g2 += (frames[i + TwoColorTimeline.ENTRIES + TwoColorTimeline.G2] - g2) * t; + b2 += (frames[i + TwoColorTimeline.ENTRIES + TwoColorTimeline.B2] - b2) * t; + break; + case TwoColorTimeline.STEPPED: + r = frames[i + TwoColorTimeline.R]; + g = frames[i + TwoColorTimeline.G]; + b = frames[i + TwoColorTimeline.B]; + a = frames[i + TwoColorTimeline.A]; + r2 = frames[i + TwoColorTimeline.R2]; + g2 = frames[i + TwoColorTimeline.G2]; + b2 = frames[i + TwoColorTimeline.B2]; + break; + default: + r = this.getBezierValue(time, i, TwoColorTimeline.R, curveType - TwoColorTimeline.BEZIER); + g = this.getBezierValue(time, i, TwoColorTimeline.G, curveType + TwoColorTimeline.BEZIER_SIZE - TwoColorTimeline.BEZIER); + b = this.getBezierValue(time, i, TwoColorTimeline.B, curveType + TwoColorTimeline.BEZIER_SIZE * 2 - TwoColorTimeline.BEZIER); + a = this.getBezierValue(time, i, TwoColorTimeline.A, curveType + TwoColorTimeline.BEZIER_SIZE * 3 - TwoColorTimeline.BEZIER); + r2 = this.getBezierValue(time, i, TwoColorTimeline.R2, curveType + TwoColorTimeline.BEZIER_SIZE * 4 - TwoColorTimeline.BEZIER); + g2 = this.getBezierValue(time, i, TwoColorTimeline.G2, curveType + TwoColorTimeline.BEZIER_SIZE * 5 - TwoColorTimeline.BEZIER); + b2 = this.getBezierValue(time, i, TwoColorTimeline.B2, curveType + TwoColorTimeline.BEZIER_SIZE * 6 - TwoColorTimeline.BEZIER); } + if (alpha == 1) { slot.color.set(r, g, b, a); slot.darkColor.set(r2, g2, b2, 1); @@ -772,23 +827,22 @@ module spine { } /** Changes a slot's {@link Slot#attachment}. */ - export class AttachmentTimeline implements Timeline { - /** The index of the slot in {@link Skeleton#slots} that will be changed. */ - slotIndex: number; - - /** The time in seconds for each key frame. */ - frames: ArrayLike // time, ... + export class AttachmentTimeline extends Timeline implements SlotTimeline { + slotIndex = 0; /** The attachment name for each key frame. May contain null values to clear the attachment. */ attachmentNames: Array; - constructor (frameCount: number) { - this.frames = Utils.newFloatArray(frameCount); + constructor (frameCount: number, slotIndex: number) { + super(frameCount, [ + Property.attachment + "|" + slotIndex + ]); + this.slotIndex = slotIndex; this.attachmentNames = new Array(frameCount); } - getPropertyId () { - return (TimelineType.attachment << 24) + this.slotIndex; + getFrameEntries () { + return 1; } /** The number of key frames for this timeline. */ @@ -805,6 +859,7 @@ module spine { apply (skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection) { let slot = skeleton.slots[this.slotIndex]; if (!slot.bone.active) return; + if (direction == MixDirection.mixOut) { if (blend == MixBlend.setup) this.setAttachment(skeleton, slot, slot.data.attachmentName); @@ -817,15 +872,7 @@ module spine { return; } - let frameIndex = 0; - if (time >= frames[frames.length - 1]) // Time is after last frame. - frameIndex = frames.length - 1; - else - frameIndex = Animation.binarySearch(frames, time, 1) - 1; - - let attachmentName = this.attachmentNames[frameIndex]; - skeleton.slots[this.slotIndex] - .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); + this.setAttachment(skeleton, slot, this.attachmentNames[Animation.search(frames, time)]); } setAttachment(skeleton: Skeleton, slot: Slot, attachmentName: string) { @@ -836,35 +883,85 @@ module spine { let zeros : ArrayLike = null; /** Changes a slot's {@link Slot#deform} to deform a {@link VertexAttachment}. */ - export class DeformTimeline extends CurveTimeline { - /** The index of the slot in {@link Skeleton#getSlots()} that will be changed. */ - slotIndex: number; + export class DeformTimeline extends CurveTimeline implements SlotTimeline { + slotIndex = 0; /** The attachment that will be deformed. */ attachment: VertexAttachment; - /** The time in seconds for each key frame. */ - frames: ArrayLike; // time, ... - /** The vertices for each key frame. */ - frameVertices: Array>; + vertices: Array>; - constructor (frameCount: number) { - super(frameCount); - this.frames = Utils.newFloatArray(frameCount); - this.frameVertices = new Array>(frameCount); + constructor (frameCount: number, bezierCount: number, slotIndex: number, attachment: VertexAttachment) { + super(frameCount, bezierCount, [ + Property.deform + "|" + slotIndex + "|" + attachment.id + ]); + this.slotIndex = slotIndex; + this.attachment = attachment; + this.vertices = new Array>(frameCount); if (zeros == null) zeros = Utils.newFloatArray(64); } - getPropertyId () { - return (TimelineType.deform << 27) + + this.attachment.id + this.slotIndex; + getFrameEntries () { + return 1; } /** Sets the time in seconds and the vertices for the specified key frame. * @param vertices Vertex positions for an unweighted VertexAttachment, or deform offsets if it has weights. */ setFrame (frameIndex: number, time: number, vertices: ArrayLike) { this.frames[frameIndex] = time; - this.frameVertices[frameIndex] = vertices; + this.vertices[frameIndex] = vertices; + } + + /** @param value1 Ignored (0 is used for a deform timeline). + * @param value2 Ignored (1 is used for a deform timeline). */ + setBezier (bezier: number, frame: number, value: number, time1: number, value1: number, cx1: number, cy1: number, cx2: number, + cy2: number, time2: number, value2: number) { + let curves = this.curves; + let i = this.getFrameCount() + bezier * DeformTimeline.BEZIER_SIZE; + if (value == 0) curves[frame] = DeformTimeline.BEZIER + i; + let tmpx = (time1 - cx1 * 2 + cx2) * 0.03, tmpy = cy2 * 0.03 - cy1 * 0.06; + let dddx = ((cx1 - cx2) * 3 - time1 + time2) * 0.006, dddy = (cy1 - cy2 + 0.33333333) * 0.018; + let ddx = tmpx * 2 + dddx, ddy = tmpy * 2 + dddy; + let dx = (cx1 - time1) * 0.3 + tmpx + dddx * 0.16666667, dy = cy1 * 0.3 + tmpy + dddy * 0.16666667; + let x = time1 + dx, y = dy; + for (let n = i + DeformTimeline.BEZIER_SIZE; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dx += ddx; + dy += ddy; + ddx += dddx; + ddy += dddy; + x += dx; + y += dy; + } + } + + getCurvePercent (time: number, frame: number) { + let curves = this.curves; + let frames = this.frames; + let i = curves[frame]; + switch (i) { + case DeformTimeline.LINEAR: + let x = frames[frame]; + return (time - x) / (frames[frame + this.getFrameEntries()] - x); + case DeformTimeline.STEPPED: + return 0; + } + i -= DeformTimeline.BEZIER; + if (curves[i] > time) { + let x = frames[frame]; + return curves[i + 1] * (time - x) / (curves[i] - x); + } + let n = i + DeformTimeline.BEZIER_SIZE; + for (i += 2; i < n; i += 2) { + if (curves[i] >= time) { + let x = curves[i - 2], y = curves[i - 1]; + return y + (time - x) / (curves[i] - x) * (curves[i + 1] - y); + } + } + let x = curves[n - 2], y = curves[n - 1]; + return y + (1 - y) * (time - x) / (frames[frame + this.getFrameEntries()] - x); } apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection) { @@ -876,8 +973,8 @@ module spine { let deformArray: Array = slot.deform; if (deformArray.length == 0) blend = MixBlend.setup; - let frameVertices = this.frameVertices; - let vertexCount = frameVertices[0].length; + let vertices = this.vertices; + let vertexCount = vertices[0].length; let frames = this.frames; if (time < frames[0]) { @@ -909,7 +1006,7 @@ module spine { let deform: Array = Utils.setArraySize(deformArray, vertexCount); if (time >= frames[frames.length - 1]) { // Time is after last frame. - let lastVertices = frameVertices[frames.length - 1]; + let lastVertices = vertices[frames.length - 1]; if (alpha == 1) { if (blend == MixBlend.add) { let vertexAttachment = slotAttachment as VertexAttachment; @@ -969,11 +1066,10 @@ module spine { } // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time); - let prevVertices = frameVertices[frame - 1]; - let nextVertices = frameVertices[frame]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime)); + let frame = Animation.search(frames, time); + let percent = this.getCurvePercent(time, frame); + let prevVertices = vertices[frame]; + let nextVertices = vertices[frame + 1]; if (alpha == 1) { if (blend == MixBlend.add) { @@ -1047,25 +1143,20 @@ module spine { } /** Fires an {@link Event} when specific animation times are reached. */ - export class EventTimeline implements Timeline { - /** The time in seconds for each key frame. */ - frames: ArrayLike; // time, ... + export class EventTimeline extends Timeline { + static propertyIds = [ "" + Property.event ]; /** The event for each key frame. */ events: Array; constructor (frameCount: number) { - this.frames = Utils.newFloatArray(frameCount); + super(frameCount, EventTimeline.propertyIds); + this.events = new Array(frameCount); } - getPropertyId () { - return TimelineType.event << 24; - } - - /** The number of key frames for this timeline. */ - getFrameCount () { - return this.frames.length; + getFrameEntries () { + return 1; } /** Sets the time in seconds and the event for the specified key frame. */ @@ -1077,6 +1168,7 @@ module spine { /** Fires events for frames > `lastTime` and <= `time`. */ apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection) { if (firedEvents == null) return; + let frames = this.frames; let frameCount = this.frames.length; @@ -1087,42 +1179,36 @@ module spine { return; if (time < frames[0]) return; // Time is before first frame. - let frame = 0; + let i = 0; if (lastTime < frames[0]) - frame = 0; + i = 0; else { - frame = Animation.binarySearch(frames, lastTime); - let frameTime = frames[frame]; - while (frame > 0) { // Fire multiple events with the same frame. - if (frames[frame - 1] != frameTime) break; - frame--; + i = Animation.search(frames, lastTime); + let frameTime = frames[i]; + while (i > 0) { // Fire multiple events with the same frame. + if (frames[i - 1] != frameTime) break; + i--; } } - for (; frame < frameCount && time >= frames[frame]; frame++) - firedEvents.push(this.events[frame]); + for (; i < frameCount && time >= frames[i]; i++) + firedEvents.push(this.events[i]); } } /** Changes a skeleton's {@link Skeleton#drawOrder}. */ - export class DrawOrderTimeline implements Timeline { - /** The time in seconds for each key frame. */ - frames: ArrayLike; // time, ... + export class DrawOrderTimeline extends Timeline { + static propertyIds = [ "" + Property.drawOrder ]; /** The draw order for each key frame. See {@link #setFrame(int, float, int[])}. */ drawOrders: Array>; constructor (frameCount: number) { - this.frames = Utils.newFloatArray(frameCount); + super(frameCount, DrawOrderTimeline.propertyIds); this.drawOrders = new Array>(frameCount); } - getPropertyId () { - return TimelineType.drawOrder << 24; - } - - /** The number of key frames for this timeline. */ - getFrameCount () { - return this.frames.length; + getFrameEntries () { + return 1; } /** Sets the time in seconds and the draw order for the specified key frame. @@ -1147,13 +1233,7 @@ module spine { return; } - let frame = 0; - if (time >= frames[frames.length - 1]) // Time is after last frame. - frame = frames.length - 1; - else - frame = Animation.binarySearch(frames, time) - 1; - - let drawOrderToSetupIndex = this.drawOrders[frame]; + let drawOrderToSetupIndex = this.drawOrders[Animation.search(frames, time)]; if (drawOrderToSetupIndex == null) Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length); else { @@ -1167,39 +1247,39 @@ module spine { * {@link IkConstraint#bendDirection}, {@link IkConstraint#stretch}, and {@link IkConstraint#compress}. */ export class IkConstraintTimeline extends CurveTimeline { static ENTRIES = 6; - static PREV_TIME = -6; static PREV_MIX = -5; static PREV_SOFTNESS = -4; static PREV_BEND_DIRECTION = -3; static PREV_COMPRESS = -2; static PREV_STRETCH = -1; + static MIX = 1; static SOFTNESS = 2; static BEND_DIRECTION = 3; static COMPRESS = 4; static STRETCH = 5; /** The index of the IK constraint slot in {@link Skeleton#ikConstraints} that will be changed. */ ikConstraintIndex: number; - /** The time in seconds, mix, softness, bend direction, compress, and stretch for each key frame. */ - frames: ArrayLike; // time, mix, softness, bendDirection, compress, stretch, ... - - constructor (frameCount: number) { - super(frameCount); - this.frames = Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES); + constructor (frameCount: number, bezierCount: number, ikConstraintIndex: number) { + super(frameCount, bezierCount, [ + Property.ikConstraint + "|" + ikConstraintIndex + ]); + this.ikConstraintIndex = ikConstraintIndex; } - getPropertyId () { - return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex; + getFrameEntries () { + return IkConstraintTimeline.ENTRIES; } /** Sets the time in seconds, mix, softness, bend direction, compress, and stretch for the specified key frame. */ - setFrame (frameIndex: number, time: number, mix: number, softness: number, bendDirection: number, compress: boolean, stretch: boolean) { - frameIndex *= IkConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + IkConstraintTimeline.MIX] = mix; - this.frames[frameIndex + IkConstraintTimeline.SOFTNESS] = softness; - this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; - this.frames[frameIndex + IkConstraintTimeline.COMPRESS] = compress ? 1 : 0; - this.frames[frameIndex + IkConstraintTimeline.STRETCH] = stretch ? 1 : 0; + setFrame (frame: number, time: number, mix: number, softness: number, bendDirection: number, compress: boolean, stretch: boolean) { + frame *= IkConstraintTimeline.ENTRIES; + this.frames[frame] = time; + this.frames[frame + IkConstraintTimeline.MIX] = mix; + this.frames[frame + IkConstraintTimeline.SOFTNESS] = softness; + this.frames[frame + IkConstraintTimeline.BEND_DIRECTION] = bendDirection; + this.frames[frame + IkConstraintTimeline.COMPRESS] = compress ? 1 : 0; + this.frames[frame + IkConstraintTimeline.STRETCH] = stretch ? 1 : 0; } apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection) { let frames = this.frames; let constraint: IkConstraint = skeleton.ikConstraints[this.ikConstraintIndex]; if (!constraint.active) return; + if (time < frames[0]) { switch (blend) { case MixBlend.setup: @@ -1219,60 +1299,47 @@ module spine { return; } - if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) { // Time is after last frame. - if (blend == MixBlend.setup) { - constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha; - constraint.softness = constraint.data.softness - + (frames[frames.length + IkConstraintTimeline.PREV_SOFTNESS] - constraint.data.softness) * alpha; - if (direction == MixDirection.mixOut) { - constraint.bendDirection = constraint.data.bendDirection; - constraint.compress = constraint.data.compress; - constraint.stretch = constraint.data.stretch; - } else { - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION] - constraint.compress = frames[frames.length + IkConstraintTimeline.PREV_COMPRESS] != 0; - constraint.stretch = frames[frames.length + IkConstraintTimeline.PREV_STRETCH] != 0; - } - } else { - constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha; - constraint.softness += (frames[frames.length + IkConstraintTimeline.PREV_SOFTNESS] - constraint.softness) * alpha; - if (direction == MixDirection.mixIn) { - constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION]; - constraint.compress = frames[frames.length + IkConstraintTimeline.PREV_COMPRESS] != 0; - constraint.stretch = frames[frames.length + IkConstraintTimeline.PREV_STRETCH] != 0; - } - } - return; + let mix = 0, softness = 0; + let i = Animation.search2(frames, time, IkConstraintTimeline.ENTRIES) + let curveType = this.curves[i / IkConstraintTimeline.ENTRIES]; + switch (curveType) { + case IkConstraintTimeline.LINEAR: + let before = frames[i]; + mix = frames[i + IkConstraintTimeline.MIX]; + softness = frames[i + IkConstraintTimeline.SOFTNESS]; + let t = (time - before) / (frames[i + IkConstraintTimeline.ENTRIES] - before); + mix += (frames[i + IkConstraintTimeline.ENTRIES + IkConstraintTimeline.MIX] - mix) * t; + softness += (frames[i + IkConstraintTimeline.ENTRIES + IkConstraintTimeline.SOFTNESS] - softness) * t; + break; + case IkConstraintTimeline.STEPPED: + mix = frames[i + IkConstraintTimeline.MIX]; + softness = frames[i + IkConstraintTimeline.SOFTNESS]; + break; + default: + mix = this.getBezierValue(time, i, IkConstraintTimeline.MIX, curveType - IkConstraintTimeline.BEZIER); + softness = this.getBezierValue(time, i, IkConstraintTimeline.SOFTNESS, curveType + IkConstraintTimeline.BEZIER_SIZE - IkConstraintTimeline.BEZIER); } - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES); - let mix = frames[frame + IkConstraintTimeline.PREV_MIX]; - let softness = frames[frame + IkConstraintTimeline.PREV_SOFTNESS]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime)); - if (blend == MixBlend.setup) { - constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha; - constraint.softness = constraint.data.softness - + (softness + (frames[frame + IkConstraintTimeline.SOFTNESS] - softness) * percent - constraint.data.softness) * alpha; + constraint.mix = constraint.data.mix + (mix - constraint.data.mix) * alpha; + constraint.softness = constraint.data.softness + (softness - constraint.data.softness) * alpha; + if (direction == MixDirection.mixOut) { constraint.bendDirection = constraint.data.bendDirection; constraint.compress = constraint.data.compress; constraint.stretch = constraint.data.stretch; } else { - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - constraint.compress = frames[frame + IkConstraintTimeline.PREV_COMPRESS] != 0; - constraint.stretch = frames[frame + IkConstraintTimeline.PREV_STRETCH] != 0; + constraint.bendDirection = frames[i + IkConstraintTimeline.BEND_DIRECTION]; + constraint.compress = frames[i + IkConstraintTimeline.COMPRESS] != 0; + constraint.stretch = frames[i + IkConstraintTimeline.STRETCH] != 0; } } else { - constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha; - constraint.softness += (softness + (frames[frame + IkConstraintTimeline.SOFTNESS] - softness) * percent - constraint.softness) * alpha; + constraint.mix += (mix - constraint.mix) * alpha; + constraint.softness += (softness - constraint.softness) * alpha; if (direction == MixDirection.mixIn) { - constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION]; - constraint.compress = frames[frame + IkConstraintTimeline.PREV_COMPRESS] != 0; - constraint.stretch = frames[frame + IkConstraintTimeline.PREV_STRETCH] != 0; + constraint.bendDirection = frames[i + IkConstraintTimeline.BEND_DIRECTION]; + constraint.compress = frames[i + IkConstraintTimeline.COMPRESS] != 0; + constraint.stretch = frames[i + IkConstraintTimeline.STRETCH] != 0; } } } @@ -1282,32 +1349,31 @@ module spine { * {@link TransformConstraint#scaleMix}, and {@link TransformConstraint#shearMix}. */ export class TransformConstraintTimeline extends CurveTimeline { static ENTRIES = 5; - static PREV_TIME = -5; static PREV_ROTATE = -4; static PREV_TRANSLATE = -3; static PREV_SCALE = -2; static PREV_SHEAR = -1; + static ROTATE = 1; static TRANSLATE = 2; static SCALE = 3; static SHEAR = 4; /** The index of the transform constraint slot in {@link Skeleton#transformConstraints} that will be changed. */ transformConstraintIndex: number; - /** The time in seconds, rotate mix, translate mix, scale mix, and shear mix for each key frame. */ - frames: ArrayLike; // time, rotate mix, translate mix, scale mix, shear mix, ... - - constructor (frameCount: number) { - super(frameCount); - this.frames = Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES); + constructor (frameCount: number, bezierCount: number, transformConstraintIndex: number) { + super(frameCount, bezierCount, [ + Property.transformConstraint + "|" + transformConstraintIndex + ]); + this.transformConstraintIndex = transformConstraintIndex; } - getPropertyId () { - return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex; + getFrameEntries () { + return TransformConstraintTimeline.ENTRIES; } /** The time in seconds, rotate mix, translate mix, scale mix, and shear mix for the specified key frame. */ - setFrame (frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number) { - frameIndex *= TransformConstraintTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix; - this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix; - this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix; + setFrame (frame: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number) { + frame *= TransformConstraintTimeline.ENTRIES; + this.frames[frame] = time; + this.frames[frame + TransformConstraintTimeline.ROTATE] = rotateMix; + this.frames[frame + TransformConstraintTimeline.TRANSLATE] = translateMix; + this.frames[frame + TransformConstraintTimeline.SCALE] = scaleMix; + this.frames[frame + TransformConstraintTimeline.SHEAR] = shearMix; } apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection) { @@ -1315,6 +1381,7 @@ module spine { let constraint: TransformConstraint = skeleton.transformConstraints[this.transformConstraintIndex]; if (!constraint.active) return; + if (time < frames[0]) { let data = constraint.data; switch (blend) { @@ -1334,28 +1401,34 @@ module spine { } let rotate = 0, translate = 0, scale = 0, shear = 0; - if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) { // Time is after last frame. - let i = frames.length; - rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[i + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[i + TransformConstraintTimeline.PREV_SHEAR]; - } else { - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES); - rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE]; - translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE]; - scale = frames[frame + TransformConstraintTimeline.PREV_SCALE]; - shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime)); - - rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent; - scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent; - shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent; + let i = Animation.search2(frames, time, TransformConstraintTimeline.ENTRIES); + let curveType = this.curves[i / TransformConstraintTimeline.ENTRIES]; + switch (curveType) { + case TransformConstraintTimeline.LINEAR: + let before = frames[i]; + rotate = frames[i + TransformConstraintTimeline.ROTATE]; + translate = frames[i + TransformConstraintTimeline.TRANSLATE]; + scale = frames[i + TransformConstraintTimeline.SCALE]; + shear = frames[i + TransformConstraintTimeline.SHEAR]; + let t = (time - before) / (frames[i + TransformConstraintTimeline.ENTRIES] - before); + rotate += (frames[i + TransformConstraintTimeline.ENTRIES + TransformConstraintTimeline.ROTATE] - rotate) * t; + translate += (frames[i + TransformConstraintTimeline.ENTRIES + TransformConstraintTimeline.TRANSLATE] - translate) * t; + scale += (frames[i + TransformConstraintTimeline.ENTRIES + TransformConstraintTimeline.SCALE] - scale) * t; + shear += (frames[i + TransformConstraintTimeline.ENTRIES + TransformConstraintTimeline.SHEAR] - shear) * t; + break; + case TransformConstraintTimeline.STEPPED: + rotate = frames[i + TransformConstraintTimeline.ROTATE]; + translate = frames[i + TransformConstraintTimeline.TRANSLATE]; + scale = frames[i + TransformConstraintTimeline.SCALE]; + shear = frames[i + TransformConstraintTimeline.SHEAR]; + break; + default: + rotate = this.getBezierValue(time, i, TransformConstraintTimeline.ROTATE, curveType - TransformConstraintTimeline.BEZIER); + translate = this.getBezierValue(time, i, TransformConstraintTimeline.TRANSLATE, curveType + TransformConstraintTimeline.BEZIER_SIZE - TransformConstraintTimeline.BEZIER); + scale = this.getBezierValue(time, i, TransformConstraintTimeline.TRANSLATE, curveType + TransformConstraintTimeline.BEZIER_SIZE * 2 - TransformConstraintTimeline.BEZIER); + shear = this.getBezierValue(time, i, TransformConstraintTimeline.TRANSLATE, curveType + TransformConstraintTimeline.BEZIER_SIZE * 3 - TransformConstraintTimeline.BEZIER); } + if (blend == MixBlend.setup) { let data = constraint.data; constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha; @@ -1372,24 +1445,16 @@ module spine { } /** Changes a path constraint's {@link PathConstraint#position}. */ - export class PathConstraintPositionTimeline extends CurveTimeline { - static ENTRIES = 2; - static PREV_TIME = -2; static PREV_VALUE = -1; - static VALUE = 1; + export class PathConstraintPositionTimeline extends CurveTimeline1 { /** The index of the path constraint slot in {@link Skeleton#pathConstraints} that will be changed. */ pathConstraintIndex: number; - /** The time in seconds and path constraint position for each key frame. */ - frames: ArrayLike; // time, position, ... - - constructor (frameCount: number) { - super(frameCount); - this.frames = Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES); - } - - getPropertyId () { - return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex; + constructor (frameCount: number, bezierCount: number, pathConstraintIndex: number) { + super(frameCount, bezierCount, [ + Property.pathConstraintPosition + "|" + pathConstraintIndex + ]); + this.pathConstraintIndex = pathConstraintIndex; } /** Sets the time in seconds and path constraint position for the specified key frame. */ @@ -1403,6 +1468,7 @@ module spine { let frames = this.frames; let constraint: PathConstraint = skeleton.pathConstraints[this.pathConstraintIndex]; if (!constraint.active) return; + if (time < frames[0]) { switch (blend) { case MixBlend.setup: @@ -1414,19 +1480,8 @@ module spine { return; } - let position = 0; - if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES]) // Time is after last frame. - position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE]; - else { - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES); - position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime)); + let position = this.getCurveValue(time); - position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent; - } if (blend == MixBlend.setup) constraint.position = constraint.data.position + (position - constraint.data.position) * alpha; else @@ -1435,19 +1490,22 @@ module spine { } /** Changes a path constraint's {@link PathConstraint#spacing}. */ - export class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { - constructor (frameCount: number) { - super(frameCount); - } + export class PathConstraintSpacingTimeline extends CurveTimeline1 { + /** The index of the path constraint slot in {@link Skeleton#getPathConstraints()} that will be changed. */ + pathConstraintIndex = 0; - getPropertyId () { - return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex; + constructor (frameCount: number, bezierCount: number, pathConstraintIndex: number) { + super(frameCount, bezierCount, [ + Property.pathConstraintSpacing + "|" + pathConstraintIndex + ]); + this.pathConstraintIndex = pathConstraintIndex; } apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection) { let frames = this.frames; let constraint: PathConstraint = skeleton.pathConstraints[this.pathConstraintIndex]; if (!constraint.active) return; + if (time < frames[0]) { switch (blend) { case MixBlend.setup: @@ -1459,19 +1517,7 @@ module spine { return; } - let spacing = 0; - if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES]) // Time is after last frame. - spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE]; - else { - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES); - spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime)); - - spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent; - } + let spacing = this.getCurveValue(time); if (blend == MixBlend.setup) constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha; @@ -1482,38 +1528,22 @@ module spine { /** Changes a transform constraint's {@link PathConstraint#rotateMix} and * {@link TransformConstraint#translateMix}. */ - export class PathConstraintMixTimeline extends CurveTimeline { - static ENTRIES = 3; - static PREV_TIME = -3; static PREV_ROTATE = -2; static PREV_TRANSLATE = -1; - static ROTATE = 1; static TRANSLATE = 2; - + export class PathConstraintMixTimeline extends CurveTimeline2 { /** The index of the path constraint slot in {@link Skeleton#getPathConstraints()} that will be changed. */ - pathConstraintIndex: number; + pathConstraintIndex = 0; - /** The time in seconds, rotate mix, and translate mix for each key frame. */ - frames: ArrayLike; // time, rotate mix, translate mix, ... - - constructor (frameCount: number) { - super(frameCount); - this.frames = Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES); - } - - getPropertyId () { - return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex; - } - - /** The time in seconds, rotate mix, and translate mix for the specified key frame. */ - setFrame (frameIndex: number, time: number, rotateMix: number, translateMix: number) { - frameIndex *= PathConstraintMixTimeline.ENTRIES; - this.frames[frameIndex] = time; - this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix; - this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix; + constructor (frameCount: number, bezierCount: number, pathConstraintIndex: number) { + super(frameCount, bezierCount, [ + Property.pathConstraintMix + "|" + pathConstraintIndex + ]); + this.pathConstraintIndex = pathConstraintIndex; } apply (skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection) { let frames = this.frames; let constraint: PathConstraint = skeleton.pathConstraints[this.pathConstraintIndex]; if (!constraint.active) return; + if (time < frames[0]) { switch (blend) { case MixBlend.setup: @@ -1528,20 +1558,24 @@ module spine { } let rotate = 0, translate = 0; - if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) { // Time is after last frame. - rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE]; - } else { - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES); - rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE]; - translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE]; - let frameTime = frames[frame]; - let percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, - 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime)); - - rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent; - translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent; + let i = Animation.search2(frames, time, PathConstraintMixTimeline.ENTRIES); + let curveType = this.curves[i / PathConstraintMixTimeline.ENTRIES]; + switch (curveType) { + case PathConstraintMixTimeline.LINEAR: + let before = frames[i]; + rotate = frames[i + PathConstraintMixTimeline.VALUE1]; + translate = frames[i + PathConstraintMixTimeline.VALUE2]; + let t = (time - before) / (frames[i + PathConstraintMixTimeline.ENTRIES] - before); + rotate += (frames[i + PathConstraintMixTimeline.ENTRIES + PathConstraintMixTimeline.VALUE1] - rotate) * t; + translate += (frames[i + PathConstraintMixTimeline.ENTRIES + PathConstraintMixTimeline.VALUE2] - translate) * t; + break; + case PathConstraintMixTimeline.STEPPED: + rotate = frames[i + PathConstraintMixTimeline.VALUE1]; + translate = frames[i + PathConstraintMixTimeline.VALUE2]; + break; + default: + rotate = this.getBezierValue(time, i, PathConstraintMixTimeline.VALUE1, curveType - PathConstraintMixTimeline.BEZIER); + translate = this.getBezierValue(time, i, PathConstraintMixTimeline.VALUE2, curveType + PathConstraintMixTimeline.BEZIER_SIZE - PathConstraintMixTimeline.BEZIER); } if (blend == MixBlend.setup) { diff --git a/spine-ts/core/src/AnimationState.ts b/spine-ts/core/src/AnimationState.ts index 612e33963..fb75a3b1d 100644 --- a/spine-ts/core/src/AnimationState.ts +++ b/spine-ts/core/src/AnimationState.ts @@ -34,7 +34,12 @@ module spine { * * See [Applying Animations](http://esotericsoftware.com/spine-applying-animations/) in the Spine Runtimes Guide. */ export class AnimationState { - static emptyAnimation = new Animation("", [], 0); + private static _emptyAnimation: Animation = null; + + private static emptyAnimation(): Animation { + if (AnimationState._emptyAnimation == null) AnimationState._emptyAnimation = new Animation("", [], 0); + return AnimationState._emptyAnimation; + } /** 1. A previously applied timeline has set this property. * @@ -90,7 +95,7 @@ module spine { events = new Array(); listeners = new Array(); queue = new EventQueue(this); - propertyIDs = new IntSet(); + propertyIDs = new StringSet(); animationsChanged = false; trackEntryPool = new Pool(() => new TrackEntry()); @@ -209,7 +214,12 @@ module spine { mix = 0; // Apply current entry. - let animationLast = current.animationLast, animationTime = current.getAnimationTime(); + let animationLast = current.animationLast, animationTime = current.getAnimationTime(), applyTime = animationTime; + let applyEvents = events; + if (current.reverse) { + applyTime = current.animation.duration - applyTime; + applyEvents = null; + } let timelineCount = current.animation.timelines.length; let timelines = current.animation.timelines; if ((i == 0 && mix == 1) || blend == MixBlend.add) { @@ -220,9 +230,9 @@ module spine { Utils.webkit602BugfixHelper(mix, blend); var timeline = timelines[ii]; if (timeline instanceof AttachmentTimeline) - this.applyAttachmentTimeline(timeline, skeleton, animationTime, blend, true); + this.applyAttachmentTimeline(timeline, skeleton, applyTime, blend, true); else - timeline.apply(skeleton, animationLast, animationTime, events, mix, blend, MixDirection.mixIn); + timeline.apply(skeleton, animationLast, applyTime, applyEvents, mix, blend, MixDirection.mixIn); } } else { let timelineMode = current.timelineMode; @@ -235,13 +245,13 @@ module spine { let timeline = timelines[ii]; let timelineBlend = timelineMode[ii] == AnimationState.SUBSEQUENT ? blend : MixBlend.setup; if (timeline instanceof RotateTimeline) { - this.applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineBlend, timelinesRotation, ii << 1, firstFrame); + this.applyRotateTimeline(timeline, skeleton, applyTime, mix, timelineBlend, timelinesRotation, ii << 1, firstFrame); } else if (timeline instanceof AttachmentTimeline) { - this.applyAttachmentTimeline(timeline, skeleton, animationTime, blend, true); + this.applyAttachmentTimeline(timeline, skeleton, applyTime, blend, true); } else { // This fixes the WebKit 602 specific issue described at http://esotericsoftware.com/forum/iOS-10-disappearing-graphics-10109 Utils.webkit602BugfixHelper(mix, blend); - timeline.apply(skeleton, animationLast, animationTime, events, mix, timelineBlend, MixDirection.mixIn); + timeline.apply(skeleton, animationLast, applyTime, applyEvents, mix, timelineBlend, MixDirection.mixIn); } } } @@ -283,15 +293,23 @@ module spine { if (blend != MixBlend.first) blend = from.mixBlend; } - let events = mix < from.eventThreshold ? this.events : null; + let attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold; - let animationLast = from.animationLast, animationTime = from.getAnimationTime(); let timelineCount = from.animation.timelines.length; let timelines = from.animation.timelines; let alphaHold = from.alpha * to.interruptAlpha, alphaMix = alphaHold * (1 - mix); + let animationLast = from.animationLast, animationTime = from.getAnimationTime(), applyTime = animationTime; + let events = null; + // let events = mix < from.eventThreshold ? this.events : null; + if (from.reverse) { + applyTime = from.animation.duration - applyTime; + } else { + if (mix < from.eventThreshold) events = this.events; + } + if (blend == MixBlend.add) { for (let i = 0; i < timelineCount; i++) - timelines[i].apply(skeleton, animationLast, animationTime, events, alphaMix, blend, MixDirection.mixOut); + timelines[i].apply(skeleton, animationLast, applyTime, events, alphaMix, blend, MixDirection.mixOut); } else { let timelineMode = from.timelineMode; let timelineHoldMix = from.timelineHoldMix; @@ -333,15 +351,15 @@ module spine { from.totalAlpha += alpha; if (timeline instanceof RotateTimeline) - this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, timelineBlend, timelinesRotation, i << 1, firstFrame); + this.applyRotateTimeline(timeline, skeleton, applyTime, alpha, timelineBlend, timelinesRotation, i << 1, firstFrame); else if (timeline instanceof AttachmentTimeline) - this.applyAttachmentTimeline(timeline, skeleton, animationTime, timelineBlend, attachments); + this.applyAttachmentTimeline(timeline, skeleton, applyTime, timelineBlend, attachments); else { // This fixes the WebKit 602 specific issue described at http://esotericsoftware.com/forum/iOS-10-disappearing-graphics-10109 Utils.webkit602BugfixHelper(alpha, blend); if (drawOrder && timeline instanceof DrawOrderTimeline && timelineBlend == MixBlend.setup) direction = MixDirection.mixIn; - timeline.apply(skeleton, animationLast, animationTime, events, alpha, timelineBlend, direction); + timeline.apply(skeleton, animationLast, applyTime, events, alpha, timelineBlend, direction); } } } @@ -364,14 +382,8 @@ module spine { if (blend == MixBlend.setup || blend == MixBlend.first) this.setAttachment(skeleton, slot, slot.data.attachmentName, attachments); } - else { - var frameIndex; - if (time >= frames[frames.length - 1]) // Time is after last frame. - frameIndex = frames.length - 1; - else - frameIndex = Animation.binarySearch(frames, time) - 1; - this.setAttachment(skeleton, slot, timeline.attachmentNames[frameIndex], attachments); - } + else + this.setAttachment(skeleton, slot, timeline.attachmentNames[Animation.search(frames, time)], attachments); // If an attachment wasn't set (ie before the first frame or attachments is false), set the setup attachment later. if (slot.attachmentState <= this.unkeyedState) slot.attachmentState = this.unkeyedState + AnimationState.SETUP; @@ -410,21 +422,7 @@ module spine { } } else { r1 = blend == MixBlend.setup ? bone.data.rotation : bone.rotation; - if (time >= frames[frames.length - RotateTimeline.ENTRIES]) // Time is after last frame. - r2 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION]; - else { - // Interpolate between the previous frame and the current frame. - let frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES); - let prevRotation = frames[frame + RotateTimeline.PREV_ROTATION]; - let frameTime = frames[frame]; - let percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, - 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime)); - - r2 = frames[frame + RotateTimeline.ROTATION] - prevRotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - r2 = prevRotation + r2 * percent + bone.data.rotation; - r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360; - } + r2 = bone.data.rotation + rotateTimeline.getCurveValue(time); } // Mix between rotations using the direction of the shortest route on the first frame while detecting crosses. @@ -453,8 +451,7 @@ module spine { timelinesRotation[i] = total; } timelinesRotation[i + 1] = diff; - r1 += total * alpha; - bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360; + bone.rotation = r1 + total * alpha; } queueEvents (entry: TrackEntry, animationTime: number) { @@ -530,9 +527,15 @@ module spine { this.queue.drain(); } + /** Removes the {@link TrackEntry#getNext() next entry} and all entries after it for the specified entry. */ + clearNext(entry: TrackEntry) { + this.disposeNext(entry.next); + } + setCurrent (index: number, current: TrackEntry, interrupt: boolean) { let from = this.expandToIndex(index); this.tracks[index] = current; + current.previous = null; if (from != null) { if (interrupt) this.queue.interrupt(from); @@ -620,17 +623,8 @@ module spine { this.queue.drain(); } else { last.next = entry; - if (delay <= 0) { - let duration = last.animationEnd - last.animationStart; - if (duration != 0) { - if (last.loop) - delay += duration * (1 + ((last.trackTime / duration) | 0)); - else - delay += Math.max(duration, last.trackTime); - delay -= this.data.getMix(last.animation, animation); - } else - delay = last.trackTime; - } + entry.previous = last; + if (delay <= 0) delay += last.getTrackComplete() - entry.mixDuration; } entry.delay = delay; @@ -652,7 +646,7 @@ module spine { * more over the mix duration. Properties keyed in the new animation transition from the value from lower tracks or from the * setup pose value if no lower tracks key the property to the value keyed in the new animation. */ setEmptyAnimation (trackIndex: number, mixDuration: number) { - let entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false); + let entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation(), false); entry.mixDuration = mixDuration; entry.trackEnd = mixDuration; return entry; @@ -670,10 +664,10 @@ module spine { * @return A track entry to allow further customization of animation playback. References to the track entry must not be kept * after the {@link AnimationStateListener#dispose()} event occurs. */ addEmptyAnimation (trackIndex: number, mixDuration: number, delay: number) { - if (delay <= 0) delay -= mixDuration; - let entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay); + let entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation(), false, delay <= 0 ? 1 : delay); entry.mixDuration = mixDuration; entry.trackEnd = mixDuration; + if (delay <= 0 && entry.previous != null) entry.delay = entry.previous.getTrackComplete() - entry.mixDuration; return entry; } @@ -767,7 +761,7 @@ module spine { if (to != null && to.holdPrevious) { for (let i = 0; i < timelinesCount; i++) { - timelineMode[i] = propertyIDs.add(timelines[i].getPropertyId()) ? AnimationState.HOLD_FIRST : AnimationState.HOLD_SUBSEQUENT; + timelineMode[i] = propertyIDs.addAll(timelines[i].getPropertyIds()) ? AnimationState.HOLD_FIRST : AnimationState.HOLD_SUBSEQUENT; } return; } @@ -775,15 +769,15 @@ module spine { outer: for (let i = 0; i < timelinesCount; i++) { let timeline = timelines[i]; - let id = timeline.getPropertyId(); - if (!propertyIDs.add(id)) + let ids = timeline.getPropertyIds(); + if (!propertyIDs.addAll(ids)) timelineMode[i] = AnimationState.SUBSEQUENT; else if (to == null || timeline instanceof AttachmentTimeline || timeline instanceof DrawOrderTimeline - || timeline instanceof EventTimeline || !to.animation.hasTimeline(id)) { + || timeline instanceof EventTimeline || !to.animation.hasTimeline(ids)) { timelineMode[i] = AnimationState.FIRST; } else { for (let next = to.mixingTo; next != null; next = next.mixingTo) { - if (next.animation.hasTimeline(id)) continue; + if (next.animation.hasTimeline(ids)) continue; if (entry.mixDuration > 0) { timelineMode[i] = AnimationState.HOLD_MIX; timelineDipMix[i] = next; @@ -834,6 +828,8 @@ module spine { /** The animation to apply for this track entry. */ animation: Animation; + previous: TrackEntry; + /** The animation queued to start after this animation, or null. `next` makes up a linked list. */ next: TrackEntry; @@ -873,6 +869,8 @@ module spine { * previous animation. */ holdPrevious: boolean; + reverse: boolean; + /** When the mix percentage ({@link #mixTime} / {@link #mixDuration}) is less than the * `eventThreshold`, event timelines are applied while this animation is being mixed out. Defaults to 0, so event * timelines are not applied while this animation is being mixed out. */ @@ -982,6 +980,7 @@ module spine { timelinesRotation = new Array(); reset () { + this.previous = null; this.next = null; this.mixingFrom = null; this.mixingTo = null; @@ -1026,6 +1025,15 @@ module spine { resetRotationDirections () { this.timelinesRotation.length = 0; } + + getTrackComplete() { + let duration = this.animationEnd - this.animationStart; + if (duration != 0) { + if (this.loop) return duration * (1 + Math.floor(this.trackTime / duration)); // Completion of next loop. + if (this.trackTime < duration) return duration; // Before duration. + } + return this.trackTime; // Next update. + } } export class EventQueue { diff --git a/spine-ts/core/src/Bone.ts b/spine-ts/core/src/Bone.ts index 013820813..3e023a8a7 100644 --- a/spine-ts/core/src/Bone.ts +++ b/spine-ts/core/src/Bone.ts @@ -340,10 +340,10 @@ module spine { /** Transforms a point from world coordinates to the bone's local coordinates. */ worldToLocal (world: Vector2) { let a = this.a, b = this.b, c = this.c, d = this.d; - let invDet = 1 / (a * d - b * c); + let det = a * d - b * c; let x = world.x - this.worldX, y = world.y - this.worldY; - world.x = (x * d * invDet - y * b * invDet); - world.y = (y * a * invDet - x * c * invDet); + world.x = (x * d - y * b) / det; + world.y = (y * a - x * c) / det; return world; } diff --git a/spine-ts/core/src/IkConstraint.ts b/spine-ts/core/src/IkConstraint.ts index 79fd43f14..08043b362 100644 --- a/spine-ts/core/src/IkConstraint.ts +++ b/spine-ts/core/src/IkConstraint.ts @@ -86,6 +86,7 @@ module spine { } update () { + if (this.mix == 0) return; let target = this.target; let bones = this.bones; switch (bones.length) { @@ -152,10 +153,6 @@ module spine { /** Applies 2 bone IK. The target is specified in the world coordinate system. * @param child A direct descendant of the parent bone. */ apply2 (parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, stretch: boolean, softness: number, alpha: number) { - if (alpha == 0) { - child.updateWorldTransform(); - return; - } if (!parent.appliedValid) parent.updateAppliedTransform(); if (!child.appliedValid) child.updateAppliedTransform(); let px = parent.ax, py = parent.ay, psx = parent.ascaleX, sx = psx, psy = parent.ascaleY, csx = child.ascaleX; diff --git a/spine-ts/core/src/PathConstraint.ts b/spine-ts/core/src/PathConstraint.ts index 2247da22b..bc3a19ed7 100644 --- a/spine-ts/core/src/PathConstraint.ts +++ b/spine-ts/core/src/PathConstraint.ts @@ -82,11 +82,6 @@ module spine { return this.active; } - /** Applies the constraint to the constrained bones. */ - apply () { - this.update(); - } - update () { let attachment = this.target.getAttachment(); if (!(attachment instanceof PathAttachment)) return; diff --git a/spine-ts/core/src/Skeleton.ts b/spine-ts/core/src/Skeleton.ts index 5922f373d..97460d737 100644 --- a/spine-ts/core/src/Skeleton.ts +++ b/spine-ts/core/src/Skeleton.ts @@ -56,7 +56,6 @@ module spine { /** The list of bones and constraints, sorted in the order they should be updated, as computed by {@link #updateCache()}. */ _updateCache = new Array(); - updateCacheReset = new Array(); /** The skeleton's current skin. May be null. */ skin: Skin; @@ -138,7 +137,6 @@ module spine { updateCache () { let updateCache = this._updateCache; updateCache.length = 0; - this.updateCacheReset.length = 0; let bones = this.bones; for (let i = 0, n = bones.length; i < n; i++) { @@ -206,15 +204,18 @@ module spine { let parent = constrained[0]; this.sortBone(parent); - if (constrained.length > 1) { + if (constrained.length == 1) { + this._updateCache.push(constraint); + this.sortReset(parent.children); + } else { let child = constrained[constrained.length - 1]; - if (!(this._updateCache.indexOf(child) > -1)) this.updateCacheReset.push(child); + this.sortBone(child); + + this._updateCache.push(constraint); + + this.sortReset(parent.children); + child.sorted = true; } - - this._updateCache.push(constraint); - - this.sortReset(parent.children); - constrained[constrained.length - 1].sorted = true; } sortPathConstraint (constraint: PathConstraint) { @@ -258,7 +259,7 @@ module spine { for (let i = 0; i < boneCount; i++) { let child = constrained[i]; this.sortBone(child.parent); - if (!(this._updateCache.indexOf(child) > -1)) this.updateCacheReset.push(child); + this.sortBone(child); } } else { for (let i = 0; i < boneCount; i++) { @@ -322,23 +323,36 @@ module spine { * See [World transforms](http://esotericsoftware.com/spine-runtime-skeletons#World-transforms) in the Spine * Runtimes Guide. */ updateWorldTransform () { - let updateCacheReset = this.updateCacheReset; - for (let i = 0, n = updateCacheReset.length; i < n; i++) { - let bone = updateCacheReset[i] as Bone; - bone.ax = bone.x; - bone.ay = bone.y; - bone.arotation = bone.rotation; - bone.ascaleX = bone.scaleX; - bone.ascaleY = bone.scaleY; - bone.ashearX = bone.shearX; - bone.ashearY = bone.shearY; - bone.appliedValid = true; - } let updateCache = this._updateCache; for (let i = 0, n = updateCache.length; i < n; i++) updateCache[i].update(); } + updateWorldTransformWith (parent: Bone) { + // Apply the parent bone transform to the root bone. The root bone always inherits scale, rotation and reflection. + let rootBone = this.getRootBone(); + let pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + rootBone.worldX = pa * this.x + pb * this.y + parent.worldX; + rootBone.worldY = pc * this.x + pd * this.y + parent.worldY; + + let rotationY = rootBone.rotation + 90 + rootBone.shearY; + let la = MathUtils.cosDeg(rootBone.rotation + rootBone.shearX) * rootBone.scaleX; + let lb = MathUtils.cosDeg(rotationY) * rootBone.scaleY; + let lc = MathUtils.sinDeg(rootBone.rotation + rootBone.shearX) * rootBone.scaleX; + let ld = MathUtils.sinDeg(rotationY) * rootBone.scaleY; + rootBone.a = (pa * la + pb * lc) * this.scaleX; + rootBone.b = (pa * lb + pb * ld) * this.scaleX; + rootBone.c = (pc * la + pd * lc) * this.scaleY; + rootBone.d = (pc * lb + pd * ld) * this.scaleY; + + // Update everything except root bone. + let updateCache = this._updateCache; + for (let i = 0, n = updateCache.length; i < n; i++) { + let updatable = updateCache[i]; + if (updatable != rootBone) updatable.update(); + } + } + /** Sets the bones, constraints, and slots to their setup pose values. */ setToSetupPose () { this.setBonesToSetupPose(); diff --git a/spine-ts/core/src/SkeletonBinary.ts b/spine-ts/core/src/SkeletonBinary.ts index 1308ac747..835d115c1 100644 --- a/spine-ts/core/src/SkeletonBinary.ts +++ b/spine-ts/core/src/SkeletonBinary.ts @@ -79,10 +79,10 @@ module spine { let input = new BinaryInput(binary); - skeletonData.hash = input.readString(); + let lowHash = input.readInt(false); + let highHash = input.readInt(false); + skeletonData.hash = highHash == 0 && lowHash == 0 ? null : highHash.toString(16) + lowHash.toString(16); skeletonData.version = input.readString(); - if ("3.8.75" == skeletonData.version) - throw new Error("Unsupported skeleton data, please export with a newer version of Spine."); skeletonData.x = input.readFloat(); skeletonData.y = input.readFloat(); skeletonData.width = input.readFloat(); @@ -298,8 +298,7 @@ module spine { if (name == null) name = attachmentName; let typeIndex = input.readByte(); - let type = SkeletonBinary.AttachmentTypeValues[typeIndex]; - switch (type) { + switch (SkeletonBinary.AttachmentTypeValues[typeIndex]) { case AttachmentType.Region: { let path = input.readStringRef(); let rotation = input.readFloat(); @@ -453,9 +452,9 @@ module spine { } private readVertices (input: BinaryInput, vertexCount: number): Vertices { + let scale = this.scale; let verticesLength = vertexCount << 1; let vertices = new Vertices(); - let scale = this.scale; if (!input.readBoolean()) { vertices.vertices = this.readFloatArray(input, verticesLength, scale); return vertices; @@ -498,9 +497,9 @@ module spine { } private readAnimation (input: BinaryInput, name: string, skeletonData: SkeletonData): Animation { + let numTimelines = input.readInt(true); let timelines = new Array(); let scale = this.scale; - let duration = 0; let tempColor1 = new Color(); let tempColor2 = new Color(); @@ -510,44 +509,104 @@ module spine { for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) { let timelineType = input.readByte(); let frameCount = input.readInt(true); + let frameLast = frameCount - 1; switch (timelineType) { - case SkeletonBinary.SLOT_ATTACHMENT: { - let timeline = new AttachmentTimeline(frameCount); - timeline.slotIndex = slotIndex; - for (let frameIndex = 0; frameIndex < frameCount; frameIndex++) - timeline.setFrame(frameIndex, input.readFloat(), input.readStringRef()); - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[frameCount - 1]); - break; - } - case SkeletonBinary.SLOT_COLOR: { - let timeline = new ColorTimeline(frameCount); - timeline.slotIndex = slotIndex; - for (let frameIndex = 0; frameIndex < frameCount; frameIndex++) { - let time = input.readFloat(); - Color.rgba8888ToColor(tempColor1, input.readInt32()); - timeline.setFrame(frameIndex, time, tempColor1.r, tempColor1.g, tempColor1.b, tempColor1.a); - if (frameIndex < frameCount - 1) this.readCurve(input, frameIndex, timeline); + case SkeletonBinary.SLOT_ATTACHMENT: { + let timeline = new AttachmentTimeline(frameCount, slotIndex); + for (let frameIndex = 0; frameIndex < frameCount; frameIndex++) + timeline.setFrame(frameIndex, input.readFloat(), input.readStringRef()); + timelines.push(timeline); + break; } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * ColorTimeline.ENTRIES]); - break; - } - case SkeletonBinary.SLOT_TWO_COLOR: { - let timeline = new TwoColorTimeline(frameCount); - timeline.slotIndex = slotIndex; - for (let frameIndex = 0; frameIndex < frameCount; frameIndex++) { + case SkeletonBinary.SLOT_COLOR: { + let bezierCount = input.readInt(true); + let timeline = new ColorTimeline(frameCount, bezierCount, slotIndex); + let time = input.readFloat(); - Color.rgba8888ToColor(tempColor1, input.readInt32()); - Color.rgb888ToColor(tempColor2, input.readInt32()); - timeline.setFrame(frameIndex, time, tempColor1.r, tempColor1.g, tempColor1.b, tempColor1.a, tempColor2.r, - tempColor2.g, tempColor2.b); - if (frameIndex < frameCount - 1) this.readCurve(input, frameIndex, timeline); + let r = input.readUnsignedByte() / 255.0; + let g = input.readUnsignedByte() / 255.0; + let b = input.readUnsignedByte() / 255.0; + let a = input.readUnsignedByte() / 255.0; + + for (let frame = 0, bezier = 0;; frame++) { + timeline.setFrame(frame, time, r, g, b, a); + if (frame == frameLast) break; + + let time2 = input.readFloat(); + let r2 = input.readUnsignedByte() / 255.0; + let g2 = input.readUnsignedByte() / 255.0; + let b2 = input.readUnsignedByte() / 255.0; + let a2 = input.readUnsignedByte() / 255.0; + + switch (input.readByte()) { + case SkeletonBinary.CURVE_STEPPED: + timeline.setStepped(frame); + break; + case SkeletonBinary.CURVE_BEZIER: + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 0, time, time2, r, r2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 1, time, time2, g, g2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 2, time, time2, b, b2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 3, time, time2, a, a2, 1); + } + time = time2; + r = r2; + g = g2; + b = b2; + a = a2; + } + timelines.push(timeline); + break; + } + case SkeletonBinary.SLOT_TWO_COLOR: { + let bezierCount = input.readInt(true); + let timeline = new TwoColorTimeline(frameCount, bezierCount, slotIndex); + + let time = input.readFloat(); + let r = input.readUnsignedByte() / 255.0; + let g = input.readUnsignedByte() / 255.0; + let b = input.readUnsignedByte() / 255.0; + let a = input.readUnsignedByte() / 255.0; + let r2 = input.readUnsignedByte() / 255.0; + let g2 = input.readUnsignedByte() / 255.0; + let b2 = input.readUnsignedByte() / 255.0; + + for (let frame = 0, bezier = 0;; frame++) { + timeline.setFrame(frame, time, r, g, b, a, r2, g2, b2); + if (frame == frameLast) break; + let time2 = input.readFloat(); + let nr = input.readUnsignedByte() / 255.0; + let ng = input.readUnsignedByte() / 255.0; + let nb = input.readUnsignedByte() / 255.0; + let na = input.readUnsignedByte() / 255.0; + let nr2 = input.readUnsignedByte() / 255.0; + let ng2 = input.readUnsignedByte() / 255.0; + let nb2 = input.readUnsignedByte() / 255.0; + + switch (input.readByte()) { + case SkeletonBinary.CURVE_STEPPED: + timeline.setStepped(frame); + break; + case SkeletonBinary.CURVE_BEZIER: + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 0, time, time2, r, nr, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 1, time, time2, g, ng, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 2, time, time2, b, nb, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 3, time, time2, a, na, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 4, time, time2, r2, nr2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 5, time, time2, g2, ng2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 6, time, time2, b2, nb2, 1); + } + time = time2; + r = nr; + g = ng; + b = nb; + a = na; + r2 = nr2; + g2 = ng2; + b2 = nb2; + } + timelines.push(timeline); + break; } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * TwoColorTimeline.ENTRIES]); - break; - } } } } @@ -558,41 +617,23 @@ module spine { for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) { let timelineType = input.readByte(); let frameCount = input.readInt(true); + let bezierCount = input.readInt(true); switch (timelineType) { - case SkeletonBinary.BONE_ROTATE: { - let timeline = new RotateTimeline(frameCount); - timeline.boneIndex = boneIndex; - for (let frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat()); - if (frameIndex < frameCount - 1) this.readCurve(input, frameIndex, timeline); + case SkeletonBinary.BONE_ROTATE: { + timelines.push(SkeletonBinary.readTimeline(input, new RotateTimeline(frameCount, bezierCount, boneIndex), 1)); + break; } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * RotateTimeline.ENTRIES]); - break; - } - case SkeletonBinary.BONE_TRANSLATE: - case SkeletonBinary.BONE_SCALE: - case SkeletonBinary.BONE_SHEAR: { - let timeline; - let timelineScale = 1; - if (timelineType == SkeletonBinary.BONE_SCALE) - timeline = new ScaleTimeline(frameCount); - else if (timelineType == SkeletonBinary.BONE_SHEAR) - timeline = new ShearTimeline(frameCount); - else { - timeline = new TranslateTimeline(frameCount); - timelineScale = scale; + case SkeletonBinary.BONE_TRANSLATE: { + timelines.push(SkeletonBinary.readTimeline2(input, new TranslateTimeline(frameCount, bezierCount, boneIndex), scale)); + break; } - timeline.boneIndex = boneIndex; - for (let frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat() * timelineScale, - input.readFloat() * timelineScale); - if (frameIndex < frameCount - 1) this.readCurve(input, frameIndex, timeline); + case SkeletonBinary.BONE_SCALE: { + timelines.push(SkeletonBinary.readTimeline2(input, new ScaleTimeline(frameCount, bezierCount, boneIndex), 1)); + break; + } + case SkeletonBinary.BONE_SHEAR: { + timelines.push(SkeletonBinary.readTimeline2(input, new ShearTimeline(frameCount, bezierCount, boneIndex), 1)); } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * TranslateTimeline.ENTRIES]); - break; - } } } } @@ -601,30 +642,73 @@ module spine { for (let i = 0, n = input.readInt(true); i < n; i++) { let index = input.readInt(true); let frameCount = input.readInt(true); - let timeline = new IkConstraintTimeline(frameCount); - timeline.ikConstraintIndex = index; - for (let frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat(), input.readFloat() * scale, input.readByte(), input.readBoolean(), - input.readBoolean()); - if (frameIndex < frameCount - 1) this.readCurve(input, frameIndex, timeline); + let bezierCount = input.readInt(true); + let frameLast = frameCount - 1; + let timeline = new IkConstraintTimeline(frameCount, bezierCount, index); + + let time = input.readFloat(); + let mix = input.readFloat(); + let softness = input.readFloat() * scale; + + for (let frame = 0, bezier = 0;; frame++) { + timeline.setFrame(frame, time, mix, softness, input.readByte(), input.readBoolean(), input.readBoolean()); + if (frame == frameLast) break; + let time2 = input.readFloat(); + let mix2 = input.readFloat(); + let softness2 = input.readFloat() * scale; + switch (input.readByte()) { + case SkeletonBinary.CURVE_STEPPED: + timeline.setStepped(frame); + break; + case SkeletonBinary.CURVE_BEZIER: + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 0, time, time2, mix, mix2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 1, time, time2, softness, softness2, scale); + } + time = time2; + mix = mix2; + softness = softness2; } timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * IkConstraintTimeline.ENTRIES]); } // Transform constraint timelines. for (let i = 0, n = input.readInt(true); i < n; i++) { let index = input.readInt(true); let frameCount = input.readInt(true); - let timeline = new TransformConstraintTimeline(frameCount); - timeline.transformConstraintIndex = index; - for (let frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat(), input.readFloat(), input.readFloat(), - input.readFloat()); - if (frameIndex < frameCount - 1) this.readCurve(input, frameIndex, timeline); + let bezierCount = input.readInt(true); + let frameLast = frameCount - 1; + let timeline = new TransformConstraintTimeline(frameCount, bezierCount, index); + + let time = input.readFloat(); + let rotateMix = input.readFloat(); + let translateMix = input.readFloat(); + let scaleMix = input.readFloat(); + let shearMix = input.readFloat(); + for (let frame = 0, bezier = 0;; frame++) { + timeline.setFrame(frame, time, rotateMix, translateMix, scaleMix, shearMix); + if (frame == frameLast) break; + let time2 = input.readFloat(); + let rotateMix2 = input.readFloat(); + let translateMix2 = input.readFloat(); + let scaleMix2 = input.readFloat(); + let shearMix2 = input.readFloat(); + switch (input.readByte()) { + case SkeletonBinary.CURVE_STEPPED: + timeline.setStepped(frame); + break; + case SkeletonBinary.CURVE_BEZIER: + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 0, time, time2, rotateMix, rotateMix2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 1, time, time2, translateMix, translateMix2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 2, time, time2, scaleMix, scaleMix2, 1); + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 3, time, time2, shearMix, shearMix2, 1); + } + time = time2; + rotateMix = rotateMix2; + translateMix = translateMix2; + scaleMix = scaleMix2; + shearMix = shearMix2; } timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * TransformConstraintTimeline.ENTRIES]); } // Path constraint timelines. @@ -632,41 +716,21 @@ module spine { let index = input.readInt(true); let data = skeletonData.pathConstraints[index]; for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) { - let timelineType = input.readByte(); - let frameCount = input.readInt(true); - switch (timelineType) { - case SkeletonBinary.PATH_POSITION: - case SkeletonBinary.PATH_SPACING: { - let timeline; - let timelineScale = 1; - if (timelineType == SkeletonBinary.PATH_SPACING) { - timeline = new PathConstraintSpacingTimeline(frameCount); - if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) timelineScale = scale; - } else { - timeline = new PathConstraintPositionTimeline(frameCount); - if (data.positionMode == PositionMode.Fixed) timelineScale = scale; + switch (input.readByte()) { + case SkeletonBinary.PATH_POSITION: + timelines + .push(SkeletonBinary.readTimeline(input, new PathConstraintPositionTimeline(input.readInt(true), input.readInt(true), index), + data.positionMode == PositionMode.Fixed ? scale : 1)); + break; + case SkeletonBinary.PATH_SPACING: + timelines + .push(SkeletonBinary.readTimeline(input, new PathConstraintSpacingTimeline(input.readInt(true), input.readInt(true), index), + data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed ? scale : 1)); + break; + case SkeletonBinary.PATH_MIX: + timelines + .push(SkeletonBinary.readTimeline2(input, new PathConstraintMixTimeline(input.readInt(true), input.readInt(true), index), 1)); } - timeline.pathConstraintIndex = index; - for (let frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat() * timelineScale); - if (frameIndex < frameCount - 1) this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * PathConstraintPositionTimeline.ENTRIES]); - break; - } - case SkeletonBinary.PATH_MIX: { - let timeline = new PathConstraintMixTimeline(frameCount); - timeline.pathConstraintIndex = index; - for (let frameIndex = 0; frameIndex < frameCount; frameIndex++) { - timeline.setFrame(frameIndex, input.readFloat(), input.readFloat(), input.readFloat()); - if (frameIndex < frameCount - 1) this.readCurve(input, frameIndex, timeline); - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(frameCount - 1) * PathConstraintMixTimeline.ENTRIES]); - break; - } - } } } @@ -676,18 +740,20 @@ module spine { for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) { let slotIndex = input.readInt(true); for (let iii = 0, nnn = input.readInt(true); iii < nnn; iii++) { - let attachment = skin.getAttachment(slotIndex, input.readStringRef()) as VertexAttachment; + let attachmentName = input.readStringRef(); + let attachment = skin.getAttachment(slotIndex, attachmentName) as VertexAttachment; + if (attachment == null) throw Error("Vertex attachment not found: " + attachmentName); let weighted = attachment.bones != null; let vertices = attachment.vertices; let deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; let frameCount = input.readInt(true); - let timeline = new DeformTimeline(frameCount); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; + let frameLast = frameCount - 1; + let bezierCount = input.readInt(true); + let timeline = new DeformTimeline(frameCount, bezierCount, slotIndex, attachment); - for (let frameIndex = 0; frameIndex < frameCount; frameIndex++) { - let time = input.readFloat(); + let time = input.readFloat(); + for (let frame = 0, bezier = 0;; frame++) { let deform; let end = input.readInt(true); if (end == 0) @@ -709,11 +775,19 @@ module spine { } } - timeline.setFrame(frameIndex, time, deform); - if (frameIndex < frameCount - 1) this.readCurve(input, frameIndex, timeline); + timeline.setFrame(frame, time, deform); + if (frame == frameLast) break; + let time2 = input.readFloat(); + switch(input.readByte()) { + case SkeletonBinary.CURVE_STEPPED: + timeline.setStepped(frame); + break; + case SkeletonBinary.CURVE_BEZIER: + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 0, time, time2, 0, 1, 1); + } + time = time2; } timelines.push(timeline); - duration = Math.max(duration, timeline.frames[frameCount - 1]); } } } @@ -748,7 +822,6 @@ module spine { timeline.setFrame(i, time, drawOrder); } timelines.push(timeline); - duration = Math.max(duration, timeline.frames[drawOrderCount - 1]); } // Event timeline. @@ -769,25 +842,56 @@ module spine { timeline.setFrame(i, event); } timelines.push(timeline); - duration = Math.max(duration, timeline.frames[eventCount - 1]); } + let duration = 0; + for (let i = 0, n = timelines.length; i < n; i++) + duration = Math.max(duration, (timelines[i]).getDuration()); return new Animation(name, timelines, duration); } - private readCurve (input: BinaryInput, frameIndex: number, timeline: CurveTimeline) { - switch (input.readByte()) { - case SkeletonBinary.CURVE_STEPPED: - timeline.setStepped(frameIndex); - break; - case SkeletonBinary.CURVE_BEZIER: - this.setCurve(timeline, frameIndex, input.readFloat(), input.readFloat(), input.readFloat(), input.readFloat()); - break; + static readTimeline (input: BinaryInput, timeline: CurveTimeline1, scale: number): Timeline { + let time = input.readFloat(), value = input.readFloat() * scale; + for (let frame = 0, bezier = 0, frameLast = timeline.getFrameCount() - 1;; frame++) { + timeline.setFrame(frame, time, value); + if (frame == frameLast) break; + let time2 = input.readFloat(), value2 = input.readFloat() * scale; + switch (input.readByte()) { + case SkeletonBinary.CURVE_STEPPED: + timeline.setStepped(frame); + break; + case SkeletonBinary.CURVE_BEZIER: + SkeletonBinary.setBezier(input, timeline, bezier++, frame, 0, time, time2, value, value2, 1); + } + time = time2; + value = value2; } + return timeline; } - setCurve (timeline: CurveTimeline, frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number) { - timeline.setCurve(frameIndex, cx1, cy1, cx2, cy2); + static readTimeline2 (input: BinaryInput, timeline: CurveTimeline2, scale: number): Timeline { + let time = input.readFloat(), value1 = input.readFloat() * scale, value2 = input.readFloat() * scale; + for (let frame = 0, bezier = 0, frameLast = timeline.getFrameCount() - 1;; frame++) { + timeline.setFrame(frame, time, value1, value2); + if (frame == frameLast) break; + let time2 = input.readFloat(), nvalue1 = input.readFloat() * scale, nvalue2 = input.readFloat() * scale; + switch (input.readByte()) { + case SkeletonBinary.CURVE_STEPPED: + timeline.setStepped(frame); + break; + case SkeletonBinary.CURVE_BEZIER: + this.setBezier(input, timeline, bezier++, frame, 0, time, time2, value1, nvalue1, scale); + this.setBezier(input, timeline, bezier++, frame, 1, time, time2, value2, nvalue2, scale); + } + time = time2; + value1 = nvalue1; + value2 = nvalue2; + } + return timeline; + } + + static setBezier (input: BinaryInput, timeline: CurveTimeline, bezier: number, frame: number, value: number, time1: number, time2: number, value1: number, value2: number, scale: number) { + timeline.setBezier(bezier, frame, value, time1, value1, input.readFloat(), input.readFloat() * scale, input.readFloat(), input.readFloat() * scale, time2, value2); } } @@ -800,6 +904,10 @@ module spine { return this.buffer.getInt8(this.index++); } + readUnsignedByte(): number { + return this.buffer.getUint8(this.index++); + } + readShort(): number { let value = this.buffer.getInt16(this.index); this.index += 2; diff --git a/spine-ts/core/src/SkeletonJson.ts b/spine-ts/core/src/SkeletonJson.ts index 1f4ae3018..fed37a43a 100644 --- a/spine-ts/core/src/SkeletonJson.ts +++ b/spine-ts/core/src/SkeletonJson.ts @@ -58,8 +58,6 @@ module spine { if (skeletonMap != null) { skeletonData.hash = skeletonMap.hash; skeletonData.version = skeletonMap.spine; - if ("3.8.75" == skeletonData.version) - throw new Error("Unsupported skeleton data, please export with a newer version of Spine."); skeletonData.x = skeletonMap.x; skeletonData.y = skeletonMap.y; skeletonData.width = skeletonMap.width; @@ -460,7 +458,6 @@ module spine { readAnimation (map: any, name: string, skeletonData: SkeletonData) { let scale = this.scale; let timelines = new Array(); - let duration = 0; // Slot timelines. if (map.slots) { @@ -470,50 +467,78 @@ module spine { if (slotIndex == -1) throw new Error("Slot not found: " + slotName); for (let timelineName in slotMap) { let timelineMap = slotMap[timelineName]; + if (!timelineMap) continue; if (timelineName == "attachment") { - let timeline = new AttachmentTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; + let timeline = new AttachmentTimeline(timelineMap.length, slotIndex); - let frameIndex = 0; + let frame = 0; for (let i = 0; i < timelineMap.length; i++) { - let valueMap = timelineMap[i]; - timeline.setFrame(frameIndex++, this.getValue(valueMap, "time", 0), valueMap.name); + let keyMap = timelineMap[i]; + timeline.setFrame(frame++, this.getValue(keyMap, "time", 0), keyMap.name); } timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); } else if (timelineName == "color") { - let timeline = new ColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; + let timeline = new ColorTimeline(timelineMap.length, timelineMap.length << 2, slotIndex); + let keyMap = timelineMap[0]; + let time = this.getValue(keyMap, "time", 0); + let color = new Color().setFromString(keyMap.color); - let frameIndex = 0; - for (let i = 0; i < timelineMap.length; i++) { - let valueMap = timelineMap[i]; - let color = new Color(); - color.setFromString(valueMap.color); - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), color.r, color.g, color.b, color.a); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; + for (let frame = 0, bezier = 0;; frame++) { + timeline.setFrame(frame, time, color.r, color.g, color.b, color.a); + if (timelineMap.length == frame + 1) { + break; + } + let nextMap = timelineMap[frame + 1]; + let time2 = this.getValue(nextMap, "time", 0); + let newColor = new Color().setFromString(nextMap.color); + let curve = keyMap.curve; + if (curve) { + bezier = this.readCurve(curve, timeline, bezier, frame, 0, time, time2, color.r, newColor.r, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 1, time, time2, color.g, newColor.g, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 2, time, time2, color.b, newColor.b, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 3, time, time2, color.a, newColor.a, 1); + } + time = time2; + color = newColor; + keyMap = nextMap; } + timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * ColorTimeline.ENTRIES]); } else if (timelineName == "twoColor") { - let timeline = new TwoColorTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; + let timeline = new TwoColorTimeline(timelineMap.length, timelineMap.length * 7, slotIndex); - let frameIndex = 0; - for (let i = 0; i < timelineMap.length; i++) { - let valueMap = timelineMap[i]; - let light = new Color(); - let dark = new Color(); - light.setFromString(valueMap.light); - dark.setFromString(valueMap.dark); - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; + let keyMap = timelineMap[0]; + let time = this.getValue(keyMap, "time", 0); + let color = new Color().setFromString(keyMap.light); + let color2 = new Color().setFromString(keyMap.dark); + + for (let frame = 0, bezier = 0;; frame++) { + timeline.setFrame(frame, time, color.r, color.g, color.b, color.a, color2.r, color2.g, color2.b); + if (timelineMap.length == frame + 1) { + break; + } + let nextMap = timelineMap[frame + 1]; + let time2 = this.getValue(nextMap, "time", 0); + let newColor = new Color().setFromString(nextMap.light); + let newColor2 = new Color().setFromString(nextMap.dark); + let curve = keyMap.curve; + if (curve) { + bezier = this.readCurve(curve, timeline, bezier, frame, 0, time, time2, color.r, newColor.r, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 1, time, time2, color.g, newColor.g, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 2, time, time2, color.b, newColor.b, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 3, time, time2, color.a, newColor.a, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 4, time, time2, color2.r, newColor2.r, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 5, time, time2, color2.g, newColor2.g, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 6, time, time2, color2.b, newColor2.b, 1); + } + time = time2; + color = newColor; + color2 = newColor2; + keyMap = nextMap; } + timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * TwoColorTimeline.ENTRIES]); } else throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")"); @@ -529,47 +554,23 @@ module spine { if (boneIndex == -1) throw new Error("Bone not found: " + boneName); for (let timelineName in boneMap) { let timelineMap = boneMap[timelineName]; + let keyMap = timelineMap[0]; + if (!keyMap) continue; + if (timelineName === "rotate") { - let timeline = new RotateTimeline(timelineMap.length); - timeline.boneIndex = boneIndex; - - let frameIndex = 0; - for (let i = 0; i < timelineMap.length; i++) { - let valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, "angle", 0)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * RotateTimeline.ENTRIES]); - - } else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") { - let timeline: TranslateTimeline = null; - let timelineScale = 1, defaultValue = 0; - if (timelineName === "scale") { - timeline = new ScaleTimeline(timelineMap.length); - defaultValue = 1; - } else if (timelineName === "shear") - timeline = new ShearTimeline(timelineMap.length); - else { - timeline = new TranslateTimeline(timelineMap.length); - timelineScale = scale; - } - timeline.boneIndex = boneIndex; - - let frameIndex = 0; - for (let i = 0; i < timelineMap.length; i++) { - let valueMap = timelineMap[i]; - let x = this.getValue(valueMap, "x", defaultValue), y = this.getValue(valueMap, "y", defaultValue); - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), x * timelineScale, y * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * TranslateTimeline.ENTRIES]); - - } else + timelines.push(this.readTimeline(timelineMap, new RotateTimeline(timelineMap.length, timelineMap.length, boneIndex), 0, 1)); + } else if (timelineName === "translate") { + let timeline = new TranslateTimeline(timelineMap.length, timelineMap.length << 1, boneIndex); + timelines.push(this.readTimeline2(timelineMap, timeline, "x", "y", 0, scale)); + } else if (timelineName === "scale") { + let timeline = new ScaleTimeline(timelineMap.length, timelineMap.length << 1, boneIndex); + timelines.push(this.readTimeline2(timelineMap, timeline, "x", "y", 1, 1)); + } else if (timelineName === "shear") { + let timeline = new ShearTimeline(timelineMap.length, timelineMap.length << 1, boneIndex); + timelines.push(this.readTimeline2(timelineMap, timeline, "x", "y", 0, 1)); + } else { throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")"); + } } } } @@ -578,19 +579,40 @@ module spine { if (map.ik) { for (let constraintName in map.ik) { let constraintMap = map.ik[constraintName]; + let keyMap = constraintMap[0]; + if (!keyMap) continue; + let constraint = skeletonData.findIkConstraint(constraintName); - let timeline = new IkConstraintTimeline(constraintMap.length); - timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint); - let frameIndex = 0; - for (let i = 0; i < constraintMap.length; i++) { - let valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "softness", 0) * scale, - this.getValue(valueMap, "bendPositive", true) ? 1 : -1, this.getValue(valueMap, "compress", false), this.getValue(valueMap, "stretch", false)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; + let constraintIndex = skeletonData.ikConstraints.indexOf(constraint); + let timeline = new IkConstraintTimeline(constraintMap.length, constraintMap.length << 1, constraintIndex); + + let time = this.getValue(keyMap, "time", 0); + let mix = this.getValue(keyMap, "mix", 1); + let softness = this.getValue(keyMap, "softness", 0) * scale; + + for (let frame = 0, bezier = 0;; frame++) { + timeline.setFrame(frame, time, mix, softness, this.getValue(keyMap, "bendPositive", true) ? 1 : -1, this.getValue(keyMap, "compress", false), this.getValue(keyMap, "stretch", false)) + let nextMap = constraintMap[frame + 1]; + if (!nextMap) { + break; + } + + let time2 = this.getValue(nextMap, "time", 0); + let mix2 = this.getValue(nextMap, "mix", 1); + let softness2 = this.getValue(nextMap, "softness", 0) * scale; + + let curve = keyMap.curve; + if (curve) { + bezier = this.readCurve(curve, timeline, bezier, frame, 0, time, time2, mix, mix2, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 1, time, time2, softness, softness2, scale); + } + + time = time2; + mix = mix2; + softness = softness2; + keyMap = nextMap; } timelines.push(timeline); - duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * IkConstraintTimeline.ENTRIES]); } } @@ -598,20 +620,48 @@ module spine { if (map.transform) { for (let constraintName in map.transform) { let constraintMap = map.transform[constraintName]; + let keyMap = constraintMap[0]; + if (!keyMap) continue; + let constraint = skeletonData.findTransformConstraint(constraintName); - let timeline = new TransformConstraintTimeline(constraintMap.length); - timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint); - let frameIndex = 0; - for (let i = 0; i < constraintMap.length; i++) { - let valueMap = constraintMap[i]; - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, "rotateMix", 1), - this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; + let constraintIndex = skeletonData.transformConstraints.indexOf(constraint); + let timeline = new TransformConstraintTimeline(constraintMap.length, constraintMap.length << 2, constraintIndex); + + let time = this.getValue(keyMap, "time", 0); + let rotateMix = this.getValue(keyMap, "rotateMix", 1); + let translateMix = this.getValue(keyMap, "translateMix", 1); + let scaleMix = this.getValue(keyMap, "scaleMix", 1); + let shearMix = this.getValue(keyMap, "shearMix", 1); + + for (let frame = 0, bezier = 0;; frame++) { + timeline.setFrame(frame, time, rotateMix, translateMix, scaleMix, shearMix); + let nextMap = constraintMap[frame + 1]; + if (!nextMap) { + break; + } + + let time2 = this.getValue(nextMap, "time", 0); + let rotateMix2 = this.getValue(nextMap, "rotateMix", 1); + let translateMix2 = this.getValue(nextMap, "translateMix", 1); + let scaleMix2 = this.getValue(nextMap, "scaleMix", 1); + let shearMix2 = this.getValue(nextMap, "shearMix", 1); + + let curve = keyMap.curve; + if (curve) { + bezier = this.readCurve(curve, timeline, bezier, frame, 0, time, time2, rotateMix, rotateMix2, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 1, time, time2, translateMix, translateMix2, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 2, time, time2, scaleMix, scaleMix2, 1); + bezier = this.readCurve(curve, timeline, bezier, frame, 3, time, time2, shearMix, shearMix2, 1); + } + + time = time2; + rotateMix = rotateMix2; + translateMix = translateMix2; + scaleMix = scaleMix2; + shearMix = shearMix2; + keyMap = nextMap; } timelines.push(timeline); - duration = Math.max(duration, - timeline.frames[(timeline.getFrameCount() - 1) * TransformConstraintTimeline.ENTRIES]); } } @@ -624,41 +674,18 @@ module spine { let data = skeletonData.pathConstraints[index]; for (let timelineName in constraintMap) { let timelineMap = constraintMap[timelineName]; - if (timelineName === "position" || timelineName === "spacing") { - let timeline: PathConstraintPositionTimeline = null; - let timelineScale = 1; - if (timelineName === "spacing") { - timeline = new PathConstraintSpacingTimeline(timelineMap.length); - if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) timelineScale = scale; - } else { - timeline = new PathConstraintPositionTimeline(timelineMap.length); - if (data.positionMode == PositionMode.Fixed) timelineScale = scale; - } - timeline.pathConstraintIndex = index; - let frameIndex = 0; - for (let i = 0; i < timelineMap.length; i++) { - let valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, timelineName, 0) * timelineScale); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, - timeline.frames[(timeline.getFrameCount() - 1) * PathConstraintPositionTimeline.ENTRIES]); + let keyMap = constraintMap[0]; + if (!keyMap) continue; + + if (timelineName === "position") { + let timeline = new PathConstraintPositionTimeline(timelineMap.length, timelineMap.length, index); + timelines.push(this.readTimeline(timelineMap, timeline, 0, data.positionMode == PositionMode.Fixed ? scale : 1)); + } else if (timelineName === "spacing") { + let timeline = new PathConstraintSpacingTimeline(timelineMap.length, timelineMap.length, index); + timelines.push(this.readTimeline(timelineMap, timeline, 0, data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed ? scale : 1)); } else if (timelineName === "mix") { - let timeline = new PathConstraintMixTimeline(timelineMap.length); - timeline.pathConstraintIndex = index; - let frameIndex = 0; - for (let i = 0; i < timelineMap.length; i++) { - let valueMap = timelineMap[i]; - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), this.getValue(valueMap, "rotateMix", 1), - this.getValue(valueMap, "translateMix", 1)); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; - } - timelines.push(timeline); - duration = Math.max(duration, - timeline.frames[(timeline.getFrameCount() - 1) * PathConstraintMixTimeline.ENTRIES]); + let timeline = new PathConstraintMixTimeline(timelineMap.size, timelineMap.size << 1, index); + timelines.push(this.readTimeline2(timelineMap, timeline, "rotateMix", "translateMix", 1, 1)); } } } @@ -676,26 +703,25 @@ module spine { if (slotIndex == -1) throw new Error("Slot not found: " + slotMap.name); for (let timelineName in slotMap) { let timelineMap = slotMap[timelineName]; + let keyMap = timelineMap[0]; + if (!keyMap) continue; + let attachment = skin.getAttachment(slotIndex, timelineName); if (attachment == null) throw new Error("Deform attachment not found: " + timelineMap.name); let weighted = attachment.bones != null; let vertices = attachment.vertices; let deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; - let timeline = new DeformTimeline(timelineMap.length); - timeline.slotIndex = slotIndex; - timeline.attachment = attachment; - - let frameIndex = 0; - for (let j = 0; j < timelineMap.length; j++) { - let valueMap = timelineMap[j]; + let timeline = new DeformTimeline(timelineMap.length, timelineMap.length, slotIndex, attachment); + let time = this.getValue(keyMap, "time", 0); + for (let frame = 0, bezier = 0;; frame++) { let deform: ArrayLike; - let verticesValue: Array = this.getValue(valueMap, "vertices", null); + let verticesValue: Array = this.getValue(keyMap, "vertices", null); if (verticesValue == null) deform = weighted ? Utils.newFloatArray(deformLength) : vertices; else { deform = Utils.newFloatArray(deformLength); - let start = this.getValue(valueMap, "offset", 0); + let start = this.getValue(keyMap, "offset", 0); Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); if (scale != 1) { for (let i = start, n = i + verticesValue.length; i < n; i++) @@ -707,12 +733,20 @@ module spine { } } - timeline.setFrame(frameIndex, this.getValue(valueMap, "time", 0), deform); - this.readCurve(valueMap, timeline, frameIndex); - frameIndex++; + timeline.setFrame(frame, time, deform); + let nextMap = timelineMap[frame + 1]; + if (!nextMap) { + break; + } + let time2 = this.getValue(nextMap, "time", 0); + let curve = keyMap.curve; + if (curve) { + bezier = this.readCurve(curve, timeline, bezier, frame, 0, time, time2, 0, 1, 1); + } + time = time2; + keyMap = nextMap; } timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); } } } @@ -724,8 +758,8 @@ module spine { if (drawOrderNode != null) { let timeline = new DrawOrderTimeline(drawOrderNode.length); let slotCount = skeletonData.slots.length; - let frameIndex = 0; - for (let j = 0; j < drawOrderNode.length; j++) { + let frame = 0; + for (let j = 0; j < drawOrderNode.length; j++, frame++) { let drawOrderMap = drawOrderNode[j]; let drawOrder: Array = null; let offsets = this.getValue(drawOrderMap, "offsets", null); @@ -750,17 +784,16 @@ module spine { for (let i = slotCount - 1; i >= 0; i--) if (drawOrder[i] == -1) drawOrder[i] = unchanged[--unchangedIndex]; } - timeline.setFrame(frameIndex++, this.getValue(drawOrderMap, "time", 0), drawOrder); + timeline.setFrame(frame, this.getValue(drawOrderMap, "time", 0), drawOrder); } timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); } // Event timeline. if (map.events) { let timeline = new EventTimeline(map.events.length); - let frameIndex = 0; - for (let i = 0; i < map.events.length; i++) { + let frame = 0; + for (let i = 0; i < map.events.length; i++, frame++) { let eventMap = map.events[i]; let eventData = skeletonData.findEvent(eventMap.name); if (eventData == null) throw new Error("Event not found: " + eventMap.name); @@ -772,10 +805,14 @@ module spine { event.volume = this.getValue(eventMap, "volume", 1); event.balance = this.getValue(eventMap, "balance", 0); } - timeline.setFrame(frameIndex++, event); + timeline.setFrame(frame, event); } timelines.push(timeline); - duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]); + } + + let duration = 0; + for (let i = 0, n = timelines.length; i < n; i++) { + duration = Math.max(duration, timelines[i].getDuration()); } if (isNaN(duration)) { @@ -785,14 +822,71 @@ module spine { skeletonData.animations.push(new Animation(name, timelines, duration)); } - readCurve (map: any, timeline: CurveTimeline, frameIndex: number) { - if (!map.hasOwnProperty("curve")) return; - if (map.curve == "stepped") - timeline.setStepped(frameIndex); - else { - let curve: number = map.curve; - timeline.setCurve(frameIndex, curve, this.getValue(map, "c2", 0), this.getValue(map, "c3", 1), this.getValue(map, "c4", 1)); + private readTimeline (keys: any[], timeline: CurveTimeline1, defaultValue: number, scale: number) { + let keyMap = keys[0]; + let time = this.getValue(keyMap, "time", 0); + let value = this.getValue(keyMap, "value", defaultValue) * scale; + let bezier = 0; + for (let frame = 0;; frame++) { + timeline.setFrame(frame, time, value); + let nextMap = keys[frame + 1]; + if (!nextMap) break; + let time2 = this.getValue(nextMap, "time", 0); + let value2 = this.getValue(nextMap, "value", defaultValue) * scale; + let curve = keyMap.curve; + if (curve) bezier = this.readCurve(curve, timeline, bezier, frame, 0, time, time2, value, value2, scale); + time = time2; + value = value2; + keyMap = nextMap; } + return timeline; + } + + private readTimeline2 (keys: any[], timeline: CurveTimeline2, name1: string, name2: string, defaultValue: number, scale: number) { + let keyMap = keys[0]; + let time = this.getValue(keyMap, "time", 0); + let value1 = this.getValue(keyMap, name1, defaultValue) * scale; + let value2 = this.getValue(keyMap, name2, defaultValue) * scale; + let bezier = 0; + for (let frame = 0;; frame++) { + timeline.setFrame(frame, time, value1, value2); + let nextMap = keys[frame + 1]; + if (!nextMap) break; + let time2 = this.getValue(nextMap, "time", 0); + let nvalue1 = this.getValue(nextMap, name1, defaultValue) * scale; + let nvalue2 = this.getValue(nextMap, name2, defaultValue) * scale; + let curve = keyMap.curve; + if (curve != null) { + bezier = this.readCurve(curve, timeline, bezier, frame, 0, time, time2, value1, nvalue1, scale); + bezier = this.readCurve(curve, timeline, bezier, frame, 1, time, time2, value2, nvalue2, scale); + } + time = time2; + value1 = nvalue1; + value2 = nvalue2; + keyMap = nextMap; + } + timeline.shrink(bezier); + return timeline; + } + + private readCurve (curve: any, timeline: CurveTimeline, bezier: number, frame: number, value: number, time1: number, time2: number, + value1: number, value2: number, scale: number) { + if (curve == "stepped") { + if (value != 0) timeline.setStepped(frame); + } else { + let i = value << 2; + let cx1 = curve[i++]; + let cy1 = curve[i++] * scale; + let cx2 = curve[i++]; + let cy2 = curve[i++] * scale; + this.setBezier(timeline, frame, value, bezier++, time1, value1, cx1, cy1, cx2, cy2, time2, value2); + } + return bezier; + } + + setBezier (timeline: CurveTimeline, frame: number, value: number, bezier: number, time1: number, value1: number, cx1: number, cy1: number, + cx2: number, cy2: number, time2: number, value2: number) { + timeline.setBezier(bezier, frame, value, time1, value1, cx1, cy1, cx2, cy2, time2, value2); } getValue (map: any, prop: string, defaultValue: any) { diff --git a/spine-ts/core/src/TransformConstraint.ts b/spine-ts/core/src/TransformConstraint.ts index 313d4bec5..d8ecefa14 100644 --- a/spine-ts/core/src/TransformConstraint.ts +++ b/spine-ts/core/src/TransformConstraint.ts @@ -77,12 +77,9 @@ module spine { return this.active; } - /** Applies the constraint to the constrained bones. */ - apply () { - this.update(); - } - update () { + if (this.rotateMix == 0 && this.translateMix == 0 && this.scaleMix == 0 && this.shearMix == 0) return; + if (this.data.local) { if (this.data.relative) this.applyRelativeLocal(); @@ -107,7 +104,6 @@ module spine { let bones = this.bones; for (let i = 0, n = bones.length; i < n; i++) { let bone = bones[i]; - let modified = false; if (rotateMix != 0) { let a = bone.a, b = bone.b, c = bone.c, d = bone.d; @@ -122,7 +118,6 @@ module spine { bone.b = cos * b - sin * d; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; - modified = true; } if (translateMix != 0) { @@ -130,7 +125,6 @@ module spine { target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); bone.worldX += (temp.x - bone.worldX) * translateMix; bone.worldY += (temp.y - bone.worldY) * translateMix; - modified = true; } if (scaleMix > 0) { @@ -144,7 +138,6 @@ module spine { if (s > 0.00001) s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s; bone.b *= s; bone.d *= s; - modified = true; } if (shearMix > 0) { @@ -159,10 +152,9 @@ module spine { let s = Math.sqrt(b * b + d * d); bone.b = Math.cos(r) * s; bone.d = Math.sin(r) * s; - modified = true; } - if (modified) bone.appliedValid = false; + bone.appliedValid = false; } } @@ -175,7 +167,6 @@ module spine { let bones = this.bones; for (let i = 0, n = bones.length; i < n; i++) { let bone = bones[i]; - let modified = false; if (rotateMix != 0) { let a = bone.a, b = bone.b, c = bone.c, d = bone.d; @@ -189,7 +180,6 @@ module spine { bone.b = cos * b - sin * d; bone.c = sin * a + cos * c; bone.d = sin * b + cos * d; - modified = true; } if (translateMix != 0) { @@ -197,7 +187,6 @@ module spine { target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); bone.worldX += temp.x * translateMix; bone.worldY += temp.y * translateMix; - modified = true; } if (scaleMix > 0) { @@ -207,7 +196,6 @@ module spine { s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1; bone.b *= s; bone.d *= s; - modified = true; } if (shearMix > 0) { @@ -220,10 +208,9 @@ module spine { let s = Math.sqrt(b * b + d * d); bone.b = Math.cos(r) * s; bone.d = Math.sin(r) * s; - modified = true; } - if (modified) bone.appliedValid = false; + bone.appliedValid = false; } } diff --git a/spine-ts/core/src/Utils.ts b/spine-ts/core/src/Utils.ts index 15954f638..68a0eea76 100644 --- a/spine-ts/core/src/Utils.ts +++ b/spine-ts/core/src/Utils.ts @@ -54,6 +54,36 @@ module spine { } } + export class StringSet { + entries: Map = {}; + size = 0; + + add (value: string): boolean { + let contains = this.entries[value]; + this.entries[value] = true; + if (!contains) this.size++; + return contains != true; + } + + addAll (values: string[]): boolean { + let oldSize = this.size; + for (var i = 0, n = values.length; i < n; i++) { + this.add(values[i]); + } + return oldSize != this.size; + } + + contains (value: string) { + let contains = this.entries[value]; + return contains == true; + } + + clear () { + this.entries = {}; + this.size = 0; + } + } + export interface Disposable { dispose (): void; } diff --git a/spine-ts/core/src/attachments/Attachment.ts b/spine-ts/core/src/attachments/Attachment.ts index f01b2b07c..0eb3db9be 100644 --- a/spine-ts/core/src/attachments/Attachment.ts +++ b/spine-ts/core/src/attachments/Attachment.ts @@ -46,7 +46,7 @@ module spine { private static nextID = 0; /** The unique ID for this attachment. */ - id = (VertexAttachment.nextID++ & 65535) << 11; + id = VertexAttachment.nextID++; /** The bones which affect the {@link #getVertices()}. The array entries are, for each vertex, the number of bones affecting * the vertex followed by that many bone indices, which is the index of the bone in {@link Skeleton#bones}. Will be null diff --git a/spine-ts/webgl/example/assets/coin-pro.json b/spine-ts/webgl/example/assets/coin-pro.json new file mode 100644 index 000000000..b9367045f --- /dev/null +++ b/spine-ts/webgl/example/assets/coin-pro.json @@ -0,0 +1,259 @@ +{ +"skeleton": { + "hash": "upF+oMt2JRY", + "spine": "4.0.05-beta", + "x": -152.5, + "y": -151, + "width": 305, + "height": 302, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { "name": "coin-front", "parent": "root" }, + { "name": "clipping", "parent": "coin-front" }, + { "name": "coin-sides", "parent": "root" }, + { "name": "coin-side-round", "parent": "coin-sides" }, + { "name": "coin-side-straight", "parent": "coin-sides" }, + { "name": "shine", "parent": "root", "x": 243.14 } +], +"slots": [ + { "name": "coin-side", "bone": "coin-side-straight", "color": "ffdb2fff", "attachment": "coin-side-straight" }, + { "name": "coin-side-round", "bone": "coin-side-round", "color": "ffdb2fff", "attachment": "coin-side-round" }, + { "name": "coin-front-texture", "bone": "coin-front", "color": "868686ff", "attachment": "coin-front-logo" }, + { "name": "coin-front-shine", "bone": "coin-front", "color": "888888ff", "dark": "000000", "attachment": "coin-front-shine-logo", "blend": "additive" }, + { "name": "clipping", "bone": "clipping", "attachment": "clipping" }, + { "name": "shine", "bone": "shine", "color": "ffffff60", "attachment": "shine", "blend": "additive" } +], +"skins": [ + { + "name": "default", + "attachments": { + "clipping": { + "clipping": { + "type": "clipping", + "end": "clipping", + "vertexCount": 39, + "vertices": [ 0.1, 140.26, -26.4, 138.14, -50.51, 131.25, -75.42, 119.06, -98.21, 101.04, -115.44, 82.22, -127.63, 62.08, -136.11, 39.03, -140.08, 19.68, -141.41, -0.19, -140.08, -22.98, -134.78, -45.5, -125.24, -66.44, -113.32, -84.19, -98.21, -101.95, -80.46, -116.52, -61.38, -127.39, -38.92, -134.81, -18.22, -139.27, -0.14, -140.58, 24.23, -138.48, 45.45, -132.46, 67.98, -122.5, 86.58, -110.19, 102.56, -95.25, 115.4, -78.75, 125.36, -61.72, 134, -42.33, 138.46, -22.15, 139.24, -0.15, 138.46, 20.29, 133.48, 39.94, 127.19, 58.54, 117.5, 76.1, 104.4, 92.86, 88.42, 108.32, 69.03, 121.42, 50.43, 130.85, 26.32, 137.4 ], + "color": "ce3a3aff" + } + }, + "coin-front-shine": { + "coin-front-shine-logo": { "width": 282, "height": 282 }, + "coin-front-shine-spineboy": { "width": 282, "height": 282 } + }, + "coin-front-texture": { + "coin-front-logo": { "width": 305, "height": 302 }, + "coin-front-spineboy": { "width": 305, "height": 302 } + }, + "coin-side": { + "coin-side-straight": { "x": 0.5, "width": 17, "height": 282 } + }, + "coin-side-round": { + "coin-side-round": { "x": -69.43, "width": 144, "height": 282 } + }, + "shine": { + "shine": { "y": 0.5, "scaleX": 1.6004, "scaleY": 1.6004, "width": 72, "height": 245 } + } + } + } +], +"animations": { + "animation": { + "slots": { + "coin-front-shine": { + "twoColor": [ + { "light": "7d7d7dff", "dark": "000000" }, + { "time": 0.2667, "light": "000000ff", "dark": "7e7e7e" }, + { "time": 0.664, "light": "000000ff", "dark": "000000" }, + { "time": 1.0333, "light": "7f7f7fff", "dark": "000000" }, + { "time": 1.3333, "light": "404040ff", "dark": "000000" }, + { "time": 1.6, "light": "000000ff", "dark": "7e7e7e" }, + { "time": 2.0022, "light": "000000ff", "dark": "000000" }, + { "time": 2.4, "light": "7f7f7fff", "dark": "000000" }, + { "time": 2.6667, "light": "7d7d7dff", "dark": "000000" } + ], + "attachment": [ + { "time": 0.6667, "name": "coin-front-shine-spineboy" }, + { "time": 2, "name": "coin-front-shine-logo" } + ] + }, + "coin-front-texture": { + "color": [ + { "color": "858585ff" }, + { "time": 0.4, "color": "ffffffff" }, + { + "time": 0.6696, + "color": "858585ff", + "curve": [ 0.725, 0.59, 0.892, 1, 0.725, 0.59, 0.892, 1, 0.725, 0.59, 0.892, 1, 0.725, 1, 0.892, 1 ] + }, + { "time": 0.9667, "color": "ffffffff" }, + { "time": 1.3318, "color": "858585ff", "curve": "stepped" }, + { "time": 1.3333, "color": "858585ff" }, + { "time": 1.7333, "color": "ffffffff" }, + { "time": 1.9982, "color": "858585ff", "curve": "stepped" }, + { "time": 2.0022, "color": "858585ff" }, + { "time": 2.3, "color": "ffffffff" }, + { "time": 2.6667, "color": "858585ff" } + ], + "attachment": [ + { "time": 0.6667, "name": "coin-front-spineboy" }, + { "time": 2, "name": "coin-front-logo" } + ] + } + }, + "bones": { + "coin-front": { + "translate": [ + {}, + { "time": 0.664, "x": 8.3, "curve": "stepped" }, + { + "time": 0.6696, + "x": -8.3, + "curve": [ 0.794, -7.08, 1.167, 0, 0.794, 0, 1.167, 0 ] + }, + { "time": 1.3333 }, + { "time": 1.9982, "x": 8.3, "curve": "stepped" }, + { "time": 2.0022, "x": -8.3 }, + { "time": 2.6667 } + ], + "scale": [ + { + "curve": [ 0.164, 1, 0.484, 0.09, 0.164, 1, 0.484, 1 ] + }, + { "time": 0.664, "x": 0, "curve": "stepped" }, + { + "time": 0.6696, + "x": 0.003, + "curve": [ 0.786, 0.15, 1.167, 1, 0.786, 1, 1.167, 1 ] + }, + { + "time": 1.3333, + "curve": [ 1.442, 0.99, 1.858, 0.1, 1.442, 1, 1.858, 1 ] + }, + { "time": 1.9982, "x": 0.003, "curve": "stepped" }, + { + "time": 2.0022, + "x": 0.003, + "curve": [ 2.123, 0.15, 2.501, 1, 2.123, 1, 2.501, 1 ] + }, + { "time": 2.6667 } + ] + }, + "coin-side-round": { + "translate": [ + {}, + { "time": 0.664, "x": -6.75, "curve": "stepped" }, + { + "time": 0.6696, + "x": 7.03, + "curve": [ 0.794, 5.99, 1.167, 0, 0.794, 0, 1.167, 0 ] + }, + { "time": 1.3333 }, + { "time": 1.9982, "x": -6.75, "curve": "stepped" }, + { "time": 2.0022, "x": 7.03 }, + { "time": 2.6667 } + ], + "scale": [ + { + "curve": [ 0.085, 1, 0.207, 0.79, 0.085, 1, 0.207, 1 ] + }, + { + "time": 0.3333, + "x": 0.555, + "curve": [ 0.449, 0.35, 0.567, 0.12, 0.449, 1, 0.567, 1 ] + }, + { "time": 0.664, "x": 0.014, "curve": "stepped" }, + { + "time": 0.6696, + "x": -0.028, + "curve": [ 0.723, -0.13, 0.865, -0.37, 0.723, 1, 0.865, 1 ] + }, + { + "time": 1, + "x": -0.609, + "curve": [ 1.053, -0.78, 1.29, -1, 1.053, 1, 1.29, 1 ] + }, + { "time": 1.3318, "x": -1, "curve": "stepped" }, + { + "time": 1.3333, + "curve": [ 1.384, 1, 1.439, 0.94, 1.384, 1, 1.439, 1 ] + }, + { + "time": 1.5, + "x": 0.852, + "curve": [ 1.564, 0.75, 1.703, 0.51, 1.564, 1, 1.703, 1 ] + }, + { + "time": 1.8, + "x": 0.315, + "curve": [ 1.873, 0.13, 1.987, 0.01, 1.873, 1, 1.987, 1 ] + }, + { "time": 1.9982, "x": 0.014, "curve": "stepped" }, + { + "time": 2.0022, + "x": -0.028, + "curve": [ 2.039, -0.07, 2.123, -0.24, 2.039, 1, 2.123, 1 ] + }, + { + "time": 2.2018, + "x": -0.365, + "curve": [ 2.269, -0.51, 2.337, -0.63, 2.269, 1, 2.337, 1 ] + }, + { + "time": 2.4, + "x": -0.731, + "curve": [ 2.503, -0.87, 2.596, -0.96, 2.503, 1, 2.596, 1 ] + }, + { + "time": 2.6592, + "x": -1, + "curve": [ 2.661, -1, 2.665, 1, 2.661, 1, 2.665, 1 ] + }, + { "time": 2.6667 } + ] + }, + "shine": { + "translate": [ + { + "curve": [ 0.167, 0, 0.5, -473.39, 0.167, 0, 0.5, 0 ] + }, + { + "time": 0.6667, + "x": -473.39, + "curve": [ 0.833, -473.39, 1.167, -33.16, 0.833, 0, 1.167, 0 ] + }, + { + "time": 1.3333, + "x": -33.16, + "curve": [ 1.5, -33.16, 1.833, -473.39, 1.5, 0, 1.833, 0 ] + }, + { + "time": 2, + "x": -473.39, + "curve": [ 2.167, -473.39, 2.5, 0, 2.167, 0, 2.5, 0 ] + }, + { "time": 2.6667 } + ] + } + }, + "drawOrder": [ + { + "time": 0.6667, + "offsets": [ + { "slot": "coin-side", "offset": 2 } + ] + }, + { "time": 0.6696 }, + { + "time": 1.9982, + "offsets": [ + { "slot": "coin-side", "offset": 2 } + ] + }, + { "time": 2.0022 } + ] + } +} +} \ No newline at end of file diff --git a/spine-ts/webgl/example/assets/goblins-pro.json b/spine-ts/webgl/example/assets/goblins-pro.json new file mode 100644 index 000000000..a94522786 --- /dev/null +++ b/spine-ts/webgl/example/assets/goblins-pro.json @@ -0,0 +1,1210 @@ +{ +"skeleton": { + "hash": "PtTAK+zF95I", + "spine": "4.0.05-beta", + "x": -134.12, + "y": -3.28, + "width": 266.94, + "height": 349.61, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { "name": "hip", "parent": "root", "x": 0.65, "y": 114.41, "color": "ffcf00ff" }, + { + "name": "torso", + "parent": "hip", + "length": 85.83, + "rotation": 93.93, + "x": -6.42, + "y": 1.98, + "color": "ffcf00ff" + }, + { + "name": "neck", + "parent": "torso", + "length": 18.38, + "rotation": -1.52, + "x": 81.68, + "y": -6.35, + "color": "ffcf00ff" + }, + { + "name": "head", + "parent": "neck", + "length": 68.29, + "rotation": -13.92, + "x": 20.94, + "y": 11.59, + "color": "ffcf00ff" + }, + { + "name": "left-shoulder", + "parent": "torso", + "length": 35.43, + "rotation": -156.96, + "x": 74.05, + "y": -20.39, + "color": "ff0000ff" + }, + { + "name": "left-arm", + "parent": "left-shoulder", + "length": 35.62, + "rotation": 28.17, + "x": 37.86, + "y": -2.35, + "color": "ff0000ff" + }, + { + "name": "left-upper-leg", + "parent": "hip", + "length": 50.4, + "rotation": -89.1, + "x": 14.45, + "y": 2.81, + "color": "ff0000ff" + }, + { + "name": "left-lower-leg", + "parent": "left-upper-leg", + "length": 49.9, + "rotation": -16.66, + "x": 56.34, + "y": 0.99, + "color": "ff0000ff" + }, + { + "name": "left-foot", + "parent": "left-lower-leg", + "length": 46.5, + "rotation": 102.43, + "x": 58.94, + "y": -7.61, + "color": "ff0000ff" + }, + { + "name": "left-hand", + "parent": "left-arm", + "length": 11.52, + "rotation": 2.7, + "x": 35.62, + "y": 0.08, + "color": "ff0000ff" + }, + { "name": "pelvis", "parent": "hip", "x": 1.41, "y": -6.58, "color": "ffcf00ff" }, + { + "name": "right-shoulder", + "parent": "torso", + "length": 37.25, + "rotation": 133.89, + "x": 76.02, + "y": 18.15, + "color": "62ff00ff" + }, + { + "name": "right-arm", + "parent": "right-shoulder", + "length": 36.75, + "rotation": 36.33, + "x": 37.61, + "y": 0.31, + "color": "62ff00ff" + }, + { + "name": "right-upper-leg", + "parent": "hip", + "length": 42.46, + "rotation": -97.5, + "x": -20.08, + "y": -6.84, + "color": "62ff00ff" + }, + { + "name": "right-lower-leg", + "parent": "right-upper-leg", + "length": 58.53, + "rotation": -14.34, + "x": 43, + "y": -0.62, + "color": "62ff00ff" + }, + { + "name": "right-foot", + "parent": "right-lower-leg", + "length": 45.46, + "rotation": 110.31, + "x": 64.89, + "y": 0.04, + "color": "62ff00ff" + }, + { + "name": "right-hand", + "parent": "right-arm", + "length": 15.32, + "rotation": 2.36, + "x": 36.9, + "y": 0.35, + "color": "62ff00ff" + }, + { + "name": "spear1", + "parent": "left-hand", + "length": 65.07, + "rotation": 102.43, + "x": 0.48, + "y": 17.03, + "color": "ffcf00ff" + }, + { + "name": "spear2", + "parent": "spear1", + "length": 61.42, + "rotation": 0.9, + "x": 65.06, + "y": 0.04, + "color": "ffcf00ff" + }, + { + "name": "spear3", + "parent": "spear2", + "length": 76.8, + "rotation": -0.9, + "x": 61.89, + "y": 0.57, + "color": "ffcf00ff" + } +], +"slots": [ + { "name": "left-shoulder", "bone": "left-shoulder", "attachment": "left-shoulder" }, + { "name": "left-arm", "bone": "left-arm", "attachment": "left-arm" }, + { "name": "left-hand-item", "bone": "left-hand", "attachment": "spear" }, + { "name": "left-hand", "bone": "left-hand", "attachment": "left-hand" }, + { "name": "left-foot", "bone": "left-foot", "attachment": "left-foot" }, + { "name": "left-lower-leg", "bone": "left-lower-leg", "attachment": "left-lower-leg" }, + { "name": "left-upper-leg", "bone": "left-upper-leg", "attachment": "left-upper-leg" }, + { "name": "neck", "bone": "neck", "attachment": "neck" }, + { "name": "torso", "bone": "torso", "attachment": "torso" }, + { "name": "pelvis", "bone": "pelvis", "attachment": "pelvis" }, + { "name": "right-foot", "bone": "right-foot", "attachment": "right-foot" }, + { "name": "right-lower-leg", "bone": "right-lower-leg", "attachment": "right-lower-leg" }, + { "name": "undie-straps", "bone": "pelvis", "attachment": "undie-straps" }, + { "name": "undies", "bone": "pelvis", "attachment": "undies" }, + { "name": "right-upper-leg", "bone": "right-upper-leg", "attachment": "right-upper-leg" }, + { "name": "head", "bone": "head", "attachment": "head" }, + { "name": "eyes", "bone": "head" }, + { "name": "right-shoulder", "bone": "right-shoulder", "attachment": "right-shoulder" }, + { "name": "right-arm", "bone": "right-arm", "attachment": "right-arm" }, + { "name": "right-hand-thumb", "bone": "right-hand", "attachment": "right-hand-thumb" }, + { "name": "right-hand-item", "bone": "right-hand", "attachment": "dagger" }, + { "name": "right-hand", "bone": "right-hand", "attachment": "right-hand" }, + { "name": "right-hand-item2", "bone": "right-hand", "attachment": "shield" } +], +"skins": [ + { + "name": "default", + "attachments": { + "left-hand-item": { + "dagger": { "x": 7.88, "y": -23.46, "rotation": 10.48, "width": 26, "height": 108 }, + "spear": { + "type": "mesh", + "uvs": [ 1, 0.11236, 0.77096, 0.13278, 0.76608, 0.21781, 0.75642, 0.386, 0.74723, 0.54607, 0.72117, 1, 0.28838, 1, 0.24208, 0.54328, 0.2259, 0.38362, 0.20891, 0.21605, 0.20043, 0.13243, 0, 0.1152, 0.4527, 0, 0.58399, 0 ], + "triangles": [ 4, 7, 3, 6, 7, 4, 5, 6, 4, 10, 11, 12, 1, 13, 0, 12, 13, 1, 10, 12, 1, 9, 10, 1, 2, 9, 1, 8, 9, 2, 3, 8, 2, 7, 8, 3 ], + "vertices": [ 1, 20, 38.54, -10.89, 1, 1, 20, 30.97, -5.93, 1, 2, 19, 61.48, -5.59, 0.5116, 20, -0.31, -6.16, 0.4884, 2, 18, 64.73, -5.03, 0.50272, 19, -0.4, -5.07, 0.49728, 1, 10, 4.57, 23.91, 1, 1, 10, 41.7, -138.95, 1, 1, 10, 32.43, -141.1, 1, 1, 10, -6.49, 22.41, 1, 2, 18, 65.48, 6.65, 0.50272, 19, 0.53, 6.6, 0.49728, 2, 19, 62.19, 6.67, 0.5116, 20, 0.2, 6.1, 0.4884, 1, 20, 30.97, 6.62, 1, 1, 20, 37.26, 11.09, 1, 1, 20, 79.75, 1.6, 1, 1, 20, 79.78, -1.29, 1 ], + "hull": 14, + "edges": [ 24, 22, 22, 20, 10, 12, 2, 0, 24, 26, 0, 26, 8, 10, 12, 14, 6, 8, 14, 16, 2, 4, 4, 6, 16, 18, 18, 20, 20, 2 ], + "width": 22, + "height": 368 + } + }, + "right-hand-item": { + "dagger": { + "type": "mesh", + "uvs": [ 0.78092, 0.38453, 1, 0.38406, 1, 0.44882, 0.73954, 0.4687, 0.74642, 0.81344, 0.34023, 1, 0.15434, 1, 0.11304, 0.78858, 0.23007, 0.47368, 0, 0.45047, 0, 0.38622, 0.22368, 0.38573, 0.24384, 0, 1, 0 ], + "triangles": [ 0, 12, 13, 11, 12, 0, 0, 1, 2, 9, 10, 11, 3, 11, 0, 3, 0, 2, 8, 11, 3, 9, 11, 8, 5, 6, 7, 4, 5, 8, 4, 8, 3, 5, 7, 8 ], + "vertices": [ 15.49, -12.83, 21.14, -13.57, 20.16, -20.5, 13.16, -21.68, 8.13, -58.57, -5.14, -77.04, -9.92, -76.37, -7.8, -53.61, -0.03, -20.36, -5.61, -17.04, -4.64, -10.17, 1.13, -10.93, 7.47, 30.24, 26.93, 27.5 ], + "hull": 14, + "edges": [ 22, 20, 24, 26, 22, 24, 2, 0, 0, 22, 0, 26, 12, 14, 14, 16, 18, 20, 16, 18, 2, 4, 4, 6, 6, 8, 10, 12, 8, 10 ], + "width": 26, + "height": 108 + } + }, + "right-hand-item2": { + "shield": { "rotation": 93.5, "width": 70, "height": 72 } + } + } + }, + { + "name": "goblin", + "attachments": { + "eyes": { + "eyes-closed": { "name": "goblin/eyes-closed", "x": 29.19, "y": -24.9, "rotation": -88.93, "width": 34, "height": 12 } + }, + "head": { + "head": { + "name": "goblin/head", + "type": "mesh", + "uvs": [ 0, 0.60495, 0.14172, 0.51451, 0.24218, 0.55229, 0.32668, 0.67807, 0.37969, 0.79352, 0.53505, 0.93015, 0.86057, 1, 0.94071, 0.94169, 0.92099, 0.69924, 0.9888, 0.65498, 0.99003, 0.51643, 0.89633, 0.43562, 0.94487, 0.41917, 1, 0.39713, 1, 0.2836, 0.94017, 0.27027, 0.87906, 0.25666, 0.80755, 0.16045, 0.66699, 0.01998, 0.4734, 0.01806, 0.29215, 0.19893, 0.25393, 0.31824, 0.09117, 0.32401, 0, 0.44331, 0.43271, 0.69154, 0.46601, 0.47795, 0.35997, 0.31246, 0.73474, 0.68594, 0.72216, 0.57426, 0.8818, 0.5583, 0.80268, 0.51016 ], + "triangles": [ 5, 27, 6, 7, 27, 8, 7, 6, 27, 4, 24, 5, 5, 24, 27, 4, 3, 24, 27, 29, 8, 8, 29, 9, 24, 28, 27, 24, 25, 28, 24, 3, 25, 29, 28, 30, 29, 27, 28, 25, 2, 26, 25, 3, 2, 9, 29, 10, 0, 23, 1, 28, 25, 30, 29, 11, 10, 29, 30, 11, 2, 21, 26, 2, 1, 21, 23, 22, 1, 1, 22, 21, 30, 16, 11, 30, 17, 16, 30, 25, 17, 17, 26, 18, 18, 26, 19, 26, 17, 25, 11, 15, 12, 11, 16, 15, 12, 15, 13, 15, 14, 13, 21, 20, 26, 26, 20, 19 ], + "vertices": [ 14.56, 50.42, 23.12, 35.48, 17.47, 26.36, 11.58, 16.87, 3.75, 11.71, -5.9, -3.92, -11.83, -37.24, -8.32, -45.64, 7.75, -44.24, 10.4, -51.34, 19.53, -51.83, 25.21, -43.16, 26.13, -47.43, 27.36, -53.16, 34.84, -53.46, 35.97, -47.34, 37.11, -41.09, 43.75, -33.98, 53.59, -19.88, 54.51, 0.04, 43.32, 19.17, 35.61, 23.41, 35.89, 40.18, 28.4, 49.87, 10.26, 5.99, 24.21, 2, 35.55, 12.48, 9.39, -25.11, 16.8, -24.31, 17.21, -40.66, 20.69, -33.02 ], + "hull": 24, + "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 26, 28, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 0, 46, 6, 48, 48, 50, 50, 52, 52, 42, 2, 4, 4, 6, 4, 52, 2, 44, 22, 32, 22, 24, 24, 26, 28, 30, 30, 32, 24, 30, 16, 54, 54, 56, 20, 58, 58, 54, 16, 58, 22, 60, 60, 56, 58, 60 ], + "width": 103, + "height": 66 + } + }, + "left-arm": { + "left-arm": { + "name": "goblin/left-arm", + "type": "mesh", + "uvs": [ 0.68993, 0.29284, 1, 0.46364, 1, 0.74644, 0.8409, 1, 0.66344, 1, 0.33766, 0.64284, 0, 0.44124, 0, 0, 0.34296, 0 ], + "triangles": [ 3, 4, 2, 4, 5, 2, 5, 0, 2, 0, 1, 2, 0, 5, 8, 5, 6, 8, 6, 7, 8 ], + "vertices": [ 18.6, 8.81, 32.2, 10.32, 38.02, 1.63, 38.08, -9.63, 32.32, -13.5, 14.37, -9.62, -0.76, -10.78, -9.85, 2.78, 1.29, 10.25 ], + "hull": 9, + "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 6, 4, 6, 8, 8, 10, 12, 14, 10, 12 ], + "width": 37, + "height": 35 + } + }, + "left-foot": { + "left-foot": { + "name": "goblin/left-foot", + "type": "mesh", + "uvs": [ 0.15734, 0.31874, 0.08195, 0.78503, 0.15884, 0.99367, 0.41633, 0.96805, 0.68823, 0.97637, 1, 0.96388, 0.99386, 0.73501, 0.85295, 0.51863, 0.61479, 0.31056, 0.46992, 0, 0.48033, 0.75604, 0.75995, 0.77706 ], + "triangles": [ 0, 9, 8, 10, 0, 8, 10, 8, 7, 11, 10, 7, 11, 7, 6, 1, 0, 10, 11, 6, 5, 3, 1, 10, 4, 10, 11, 4, 11, 5, 3, 10, 4, 2, 1, 3 ], + "vertices": [ 2.28, 13.07, -1.77, -1.64, 3.6, -7.81, 20.26, -6.04, 37.92, -5.28, 58.13, -3.71, 57.32, 3.35, 47.78, 9.51, 31.95, 15.05, 21.99, 24.12, 24.03, 0.76, 42.21, 1.16 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 6, 20, 20, 16, 2, 20, 8, 22, 22, 14, 20, 22, 22, 10 ], + "width": 65, + "height": 31 + } + }, + "left-hand": { + "left-hand": { + "name": "goblin/left-hand", + "type": "mesh", + "uvs": [ 0.51801, 0.12578, 1, 0.16286, 0.99789, 0.50578, 0.69745, 1, 0.37445, 1, 0, 0.80051, 0, 0.42793, 0.17601, 0, 0.43568, 0 ], + "triangles": [ 2, 0, 1, 0, 5, 6, 6, 7, 0, 0, 7, 8, 3, 4, 0, 4, 5, 0, 2, 3, 0 ], + "vertices": [ -3.11, 15.43, 10.84, 22.27, 15.5, 14.56, 18.36, -8.96, 9.48, -14.33, -4.59, -14.3, -11.64, -2.64, -14.89, 13.68, -7.76, 18 ], + "hull": 9, + "edges": [ 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 14, 16, 12, 14 ], + "width": 36, + "height": 41 + } + }, + "left-lower-leg": { + "left-lower-leg": { + "name": "goblin/left-lower-leg", + "type": "mesh", + "uvs": [ 0.95509, 0.2075, 0.81927, 0.65214, 0.94754, 0.77308, 0.67842, 0.97347, 0.46464, 1, 0.26845, 1, 0.04964, 0.90707, 0.21061, 0.60115, 0.07479, 0.40195, 0.18545, 0, 0.28858, 0 ], + "triangles": [ 10, 8, 9, 1, 7, 10, 7, 8, 10, 0, 1, 10, 1, 4, 7, 3, 1, 2, 5, 6, 7, 7, 4, 5, 1, 3, 4 ], + "vertices": [ -0.2, 6.82, 30.97, 10.96, 37.97, 17.34, 53.88, 12.6, 57.59, 6.32, 59.35, 0.09, 55.05, -8.63, 33, -9.34, 20.8, -17.44, -7.28, -21.57, -8.2, -18.29 ], + "hull": 11, + "edges": [ 20, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 18, 20, 16, 18 ], + "width": 33, + "height": 70 + } + }, + "left-shoulder": { + "left-shoulder": { + "name": "goblin/left-shoulder", + "type": "mesh", + "uvs": [ 0.7377, 0.40692, 1, 0.75238, 1, 1, 0.62046, 1, 0.26184, 0.56602, 0, 0.29783, 0, 0, 0.44115, 0 ], + "triangles": [ 3, 1, 2, 3, 0, 1, 3, 4, 0, 4, 7, 0, 4, 5, 7, 5, 6, 7 ], + "vertices": [ 15.18, 5.74, 32.17, 5.33, 41.79, 0.22, 36.63, -9.5, 14.89, -9.73, 0.9, -10.9, -10.67, -4.75, -4.67, 6.55 ], + "hull": 8, + "edges": [ 12, 14, 14, 0, 4, 2, 0, 2, 4, 6, 6, 8, 10, 12, 8, 10 ], + "width": 29, + "height": 44 + } + }, + "left-upper-leg": { + "left-upper-leg": { + "name": "goblin/left-upper-leg", + "type": "mesh", + "uvs": [ 1, 0.12168, 1, 0.54873, 0.91067, 0.78907, 0.76568, 1, 0.30871, 0.95791, 0, 0.68777, 0, 0.21901, 0.51962, 0, 0.87552, 0 ], + "triangles": [ 7, 8, 0, 5, 6, 7, 0, 1, 7, 4, 5, 7, 1, 4, 7, 2, 4, 1, 3, 4, 2 ], + "vertices": [ 2.34, 13.07, 33.51, 12.57, 51, 9.34, 66.32, 4.31, 63.01, -10.71, 43.13, -20.59, 8.91, -20.04, -6.8, -2.64, -6.61, 9.1 ], + "hull": 9, + "edges": [ 10, 8, 8, 6, 6, 4, 4, 2, 10, 12, 12, 14, 14, 16, 2, 0, 16, 0 ], + "width": 33, + "height": 73 + } + }, + "neck": { + "neck": { + "name": "goblin/neck", + "type": "mesh", + "uvs": [ 0.81968, 0.27365, 0.92101, 0.82048, 0.47135, 1, 0.15679, 0.93541, 0, 0.7556, 0.19268, 0.51834, 0.15468, 0.35707, 0, 0.2199, 0.13568, 0, 0.68879, 0, 0.70146, 0.53873 ], + "triangles": [ 3, 5, 2, 2, 10, 1, 2, 5, 10, 3, 4, 5, 10, 0, 1, 0, 10, 6, 10, 5, 6, 7, 8, 6, 6, 9, 0, 6, 8, 9 ], + "vertices": [ 18.63, -11.66, -3.98, -13.86, -10.29, 2.77, -6.92, 13.9, 0.8, 19.06, 10.06, 11.51, 16.75, 12.45, 22.72, 17.65, 31.4, 12.2, 30.12, -7.68, 8.05, -6.71 ], + "hull": 10, + "edges": [ 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 20, 20, 0, 0, 18, 16, 18, 14, 16, 0, 2 ], + "width": 36, + "height": 41 + } + }, + "pelvis": { + "pelvis": { + "name": "goblin/pelvis", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 25.38, -20.73, -36.62, -20.73, -36.62, 22.27, 25.38, 22.27 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 62, + "height": 43 + } + }, + "right-arm": { + "right-arm": { + "name": "goblin/right-arm", + "type": "mesh", + "uvs": [ 1, 0.09223, 1, 0.8501, 0.72058, 1, 0.24385, 1, 0, 0.86559, 0.20823, 0.1092, 0.50903, 0, 0.85342, 0 ], + "triangles": [ 1, 2, 6, 6, 2, 5, 1, 6, 0, 4, 5, 3, 2, 3, 5, 6, 7, 0 ], + "vertices": [ -4.75, 8.89, 33.03, 11.74, 40.99, 5.9, 41.82, -5.03, 35.54, -11.13, -2.54, -9.2, -8.5, -2.72, -9.1, 5.18 ], + "hull": 8, + "edges": [ 8, 6, 4, 6, 4, 2, 12, 14, 2, 0, 14, 0, 10, 12, 8, 10 ], + "width": 23, + "height": 50 + } + }, + "right-foot": { + "right-foot": { + "name": "goblin/right-foot", + "type": "mesh", + "uvs": [ 0.40851, 0.00471, 0.59088, 0.33404, 0.75959, 0.48311, 0.88907, 0.59751, 0.97533, 0.89392, 0.90386, 1, 0.6722, 1, 0.38633, 1, 0.08074, 1, 0, 0.88921, 0, 0.65985, 0, 0.46578, 0.0906, 0.0988, 0.305, 0, 0.47461, 0.71258, 0.71501, 0.74681 ], + "triangles": [ 1, 10, 11, 1, 13, 0, 14, 1, 2, 1, 12, 13, 12, 1, 11, 14, 10, 1, 15, 14, 2, 15, 2, 3, 9, 10, 14, 15, 3, 4, 7, 8, 9, 14, 7, 9, 6, 14, 15, 5, 6, 15, 7, 14, 6, 4, 5, 15 ], + "vertices": [ 17.36, 26, 29.14, 15.44, 39.89, 10.81, 48.15, 7.25, 53.84, -2.38, 49.43, -6, 34.85, -6.39, 16.84, -6.87, -2.4, -7.38, -7.59, -3.87, -7.79, 3.7, -7.96, 10.1, -2.57, 22.36, 10.84, 25.98, 22.15, 2.76, 37.32, 2.03 ], + "hull": 14, + "edges": [ 0, 2, 6, 8, 8, 10, 16, 18, 22, 24, 24, 26, 0, 26, 10, 12, 2, 4, 4, 6, 12, 14, 14, 16, 18, 20, 20, 22, 2, 28, 28, 14, 20, 28, 4, 30, 30, 12, 28, 30, 30, 8 ], + "width": 63, + "height": 33 + } + }, + "right-hand": { + "right-hand": { + "name": "goblin/right-hand", + "type": "mesh", + "uvs": [ 0.17957, 0, 0, 0.44772, 0, 0.79734, 0.20057, 0.94264, 0.55057, 1, 0.8539, 1, 0.89824, 0.82005, 0.8259, 0.74286, 0.84224, 0.49994, 0.96357, 0.34102, 0.66024, 0 ], + "triangles": [ 8, 10, 9, 0, 10, 1, 8, 2, 1, 8, 1, 10, 7, 3, 8, 3, 2, 8, 4, 3, 7, 5, 7, 6, 4, 7, 5 ], + "vertices": [ -10.83, -9.45, 5.95, -15.35, 18.88, -14.9, 24.01, -7.5, 25.69, 5.16, 25.32, 16.08, 18.61, 17.44, 15.85, 14.74, 6.84, 15.02, 0.82, 19.19, -11.42, 7.84 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 36, + "height": 37 + } + }, + "right-hand-thumb": { + "right-hand-thumb": { + "name": "goblin/right-hand", + "type": "mesh", + "uvs": [ 0.88538, 0.22263, 0.76168, 0.3594, 0.75089, 0.78308, 0.95326, 0.84981, 1, 0.60303 ], + "triangles": [ 1, 0, 4, 2, 1, 4, 3, 2, 4 ], + "vertices": [ -2.82, 15.98, 2.4, 11.72, 18.08, 11.91, 20.28, 19.28, 11.09, 20.62 ], + "hull": 5, + "edges": [ 2, 4, 4, 6, 6, 8, 2, 0, 0, 8 ], + "width": 36, + "height": 37 + } + }, + "right-lower-leg": { + "right-lower-leg": { + "name": "goblin/right-lower-leg", + "type": "mesh", + "uvs": [ 1, 0.27261, 0.81312, 0.52593, 0.79587, 0.71796, 0.95544, 0.80989, 0.85194, 0.95493, 0.47242, 1, 0.14034, 1, 0, 0.8773, 0.14896, 0.67914, 0.1619, 0.30326, 0.60611, 0 ], + "triangles": [ 1, 10, 0, 9, 10, 1, 8, 9, 1, 2, 8, 1, 4, 2, 3, 6, 7, 8, 5, 6, 8, 2, 5, 8, 4, 5, 2 ], + "vertices": [ 6.27, 8.46, 23.32, 8.05, 37.1, 12.9, 41.45, 20.83, 53.07, 21.47, 61.33, 10.06, 65.78, -1.04, 59, -9.19, 43.02, -9.82, 16.33, -20.01, -12.8, -9.26 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 20, 18, 20 ], + "width": 36, + "height": 76 + } + }, + "right-shoulder": { + "right-shoulder": { + "name": "goblin/right-shoulder", + "type": "mesh", + "uvs": [ 0.62008, 0.03709, 0.92131, 0.09049, 1, 0.3832, 0.72049, 0.69371, 0.31657, 1, 0, 1, 0, 0.75106, 0.28234, 0.49989 ], + "triangles": [ 4, 6, 7, 4, 7, 3, 4, 5, 6, 7, 0, 3, 2, 0, 1, 2, 3, 0 ], + "vertices": [ -3.17, -11.05, -9, -0.58, -1.01, 10.34, 16.69, 11.17, 37.41, 8.2, 45.46, -1.16, 36.96, -8.46, 21.21, -7.48 ], + "hull": 8, + "edges": [ 10, 12, 12, 14, 14, 0, 0, 2, 2, 4, 4, 6, 8, 10, 6, 8 ], + "width": 39, + "height": 45 + } + }, + "right-upper-leg": { + "right-upper-leg": { + "name": "goblin/right-upper-leg", + "type": "mesh", + "uvs": [ 0.27019, 0, 0.11619, 0.18177, 0, 0.70688, 0, 0.89577, 0.26669, 1, 0.48719, 1, 0.67619, 0.83533, 1, 0.5161, 1, 0.25544, 0.74619, 0.0571 ], + "triangles": [ 9, 8, 7, 9, 1, 0, 6, 9, 7, 6, 1, 9, 2, 1, 6, 4, 3, 2, 6, 4, 2, 5, 4, 6 ], + "vertices": [ -9.86, -10.37, 2.18, -14.07, 35.49, -13.67, 47.29, -12.11, 52.62, -2.27, 51.64, 5.17, 40.51, 10.18, 19.14, 18.47, 2.85, 16.33, -8.41, 6.14 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 34, + "height": 63 + } + }, + "torso": { + "torso": { + "name": "goblin/torso", + "type": "mesh", + "uvs": [ 0, 0.33288, 0.15946, 0.46489, 0.15762, 0.60314, 0.15502, 0.79806, 0.32808, 0.93479, 0.68751, 1, 0.80732, 1, 1, 0.77763, 1, 0.66148, 1, 0.56704, 0.93208, 0.4771, 0.86944, 0.39417, 0.83838, 0.22601, 0.68085, 0, 0.14836, 0, 0, 0.07199, 0.78735, 0.8625, 0.43679, 0.79649, 0.76738, 0.61733, 0.44345, 0.58747, 0.54329, 0.38317, 0.77692, 0.73447, 0.66479, 0.51012 ], + "triangles": [ 5, 16, 6, 6, 16, 7, 4, 17, 5, 5, 17, 16, 4, 3, 17, 17, 21, 16, 16, 21, 7, 3, 2, 17, 21, 19, 18, 21, 17, 19, 17, 2, 19, 21, 8, 7, 21, 18, 8, 18, 9, 8, 19, 22, 18, 18, 10, 9, 18, 22, 10, 2, 1, 19, 19, 20, 22, 19, 1, 20, 22, 11, 10, 22, 20, 11, 20, 1, 14, 20, 12, 11, 1, 0, 14, 20, 13, 12, 20, 14, 13, 0, 15, 14 ], + "vertices": [ 56.93, 27.95, 43.37, 18.24, 30.16, 19.5, 11.53, 21.29, -2.55, 10.69, -10.89, -13.12, -11.59, -21.24, 8.55, -36.13, 19.66, -37.09, 28.69, -37.86, 37.69, -34.01, 45.99, -30.45, 56.4, -29.07, 84.79, -20.92, 87.9, 15.15, 81.89, 25.8, 1.67, -21.02, 10.04, 2.19, 25.23, -18.25, 29.99, 0.01, 48.54, -8.4, 13.98, -21.37, 35.91, -15.6 ], + "hull": 16, + "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30, 14, 32, 32, 34, 34, 6, 18, 36, 36, 38, 2, 4, 4, 6, 38, 4, 2, 40, 40, 22, 40, 38, 38, 34, 32, 10, 34, 8, 40, 28, 14, 16, 16, 18, 32, 42, 42, 36, 16, 42, 42, 34, 18, 20, 20, 22, 36, 44, 44, 40, 20, 44 ], + "width": 68, + "height": 96 + } + }, + "undie-straps": { + "undie-straps": { + "name": "goblin/undie-straps", + "type": "mesh", + "uvs": [ 0.36098, 0.4496, 0.66298, 0.60591, 1, 0.19486, 1, 0.57118, 0.75898, 1, 0.38698, 1, 0, 0.26433, 0, 0, 0.12498, 0 ], + "triangles": [ 6, 7, 8, 6, 8, 0, 3, 1, 2, 5, 0, 1, 6, 0, 5, 4, 1, 3, 5, 1, 4 ], + "vertices": [ -10.56, 12.88, 6.54, 9.91, 25.62, 17.72, 25.62, 10.57, 11.97, 2.42, -9.09, 2.42, -31, 16.4, -31, 21.42, -23.93, 21.42 ], + "hull": 9, + "edges": [ 14, 16, 16, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 12, 14, 10, 12, 0, 10, 2, 8 ], + "width": 55, + "height": 19 + } + }, + "undies": { + "undies": { + "name": "goblin/undies", + "type": "mesh", + "uvs": [ 0, 0.3203, 0.14893, 0.59457, 0.22438, 1, 0.3591, 1, 0.50999, 1, 0.7956, 0.58454, 0.98421, 0.28016, 1, 0.00588, 0.46957, 0.17647, 0, 0.03933, 0.48843, 0.59123, 0.48115, 0.431 ], + "triangles": [ 6, 8, 7, 0, 9, 8, 11, 8, 6, 0, 8, 11, 5, 11, 6, 10, 11, 5, 1, 0, 11, 1, 11, 10, 3, 2, 1, 10, 3, 1, 4, 10, 5, 3, 10, 4 ], + "vertices": [ -13.22, 5.57, -8, -2.48, -5.49, -14.28, -0.64, -14.36, 4.79, -14.46, 15.28, -2.59, 22.22, 6.12, 22.93, 14.06, 3.75, 9.45, -13.08, 13.72, 4.22, -2.59, 4.04, 2.06 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 4, 6, 6, 8, 6, 20, 16, 22, 22, 20, 0, 22, 22, 12, 2, 20, 20, 10 ], + "width": 36, + "height": 29 + } + } + } + }, + { + "name": "goblingirl", + "attachments": { + "eyes": { + "eyes-closed": { "name": "goblingirl/eyes-closed", "x": 28, "y": -25.55, "rotation": -87.05, "width": 37, "height": 21 } + }, + "head": { + "head": { "name": "goblingirl/head", "x": 27.72, "y": -4.32, "rotation": -85.58, "width": 103, "height": 81 } + }, + "left-arm": { + "left-arm": { "name": "goblingirl/left-arm", "x": 19.64, "y": -2.43, "rotation": 33.05, "width": 37, "height": 35 } + }, + "left-foot": { + "left-foot": { "name": "goblingirl/left-foot", "type": "linkedmesh", "skin": "goblin", "parent": "left-foot", "width": 65, "height": 31 } + }, + "left-hand": { + "left-hand": { + "name": "goblingirl/left-hand", + "x": 4.34, + "y": 2.39, + "scaleX": 0.8965, + "scaleY": 0.8965, + "rotation": 30.35, + "width": 35, + "height": 40 + } + }, + "left-lower-leg": { + "left-lower-leg": { "name": "goblingirl/left-lower-leg", "x": 25.02, "y": -0.61, "rotation": 105.76, "width": 33, "height": 70 } + }, + "left-shoulder": { + "left-shoulder": { "name": "goblingirl/left-shoulder", "x": 19.81, "y": -0.43, "rotation": 61.22, "width": 28, "height": 46 } + }, + "left-upper-leg": { + "left-upper-leg": { "name": "goblingirl/left-upper-leg", "x": 30.22, "y": -2.95, "rotation": 89.1, "width": 33, "height": 70 } + }, + "neck": { + "neck": { "name": "goblingirl/neck", "x": 6.16, "y": -3.15, "rotation": -98.86, "width": 35, "height": 41 } + }, + "pelvis": { + "pelvis": { "name": "goblingirl/pelvis", "x": -3.88, "y": 3.19, "width": 62, "height": 43 } + }, + "right-arm": { + "right-arm": { "name": "goblingirl/right-arm", "x": 16.85, "y": -0.66, "rotation": 93.53, "width": 28, "height": 50 } + }, + "right-foot": { + "right-foot": { "name": "goblingirl/right-foot", "type": "linkedmesh", "skin": "goblin", "parent": "right-foot", "width": 63, "height": 33 } + }, + "right-hand": { + "right-hand": { "name": "goblingirl/right-hand", "x": 7.22, "y": 3.44, "rotation": 91.17, "width": 36, "height": 37 } + }, + "right-hand-thumb": { + "right-hand-thumb": { "name": "goblingirl/right-hand", "x": 7.22, "y": 3.44, "rotation": 91.17, "width": 36, "height": 37 } + }, + "right-lower-leg": { + "right-lower-leg": { "name": "goblingirl/right-lower-leg", "x": 26.15, "y": -3.28, "rotation": 111.84, "width": 36, "height": 76 } + }, + "right-shoulder": { + "right-shoulder": { "name": "goblingirl/right-shoulder", "x": 14.46, "y": 0.46, "rotation": 129.85, "width": 39, "height": 45 } + }, + "right-upper-leg": { + "right-upper-leg": { "name": "goblingirl/right-upper-leg", "x": 19.7, "y": 2.13, "rotation": 97.5, "width": 34, "height": 63 } + }, + "torso": { + "torso": { "name": "goblingirl/torso", "x": 36.28, "y": -5.14, "rotation": -95.75, "width": 68, "height": 96 } + }, + "undie-straps": { + "undie-straps": { "name": "goblingirl/undie-straps", "x": -1.52, "y": 14.19, "width": 55, "height": 19 } + }, + "undies": { + "undies": { "name": "goblingirl/undies", "x": 5.4, "y": 1.71, "width": 36, "height": 29 } + } + } + } +], +"animations": { + "walk": { + "slots": { + "eyes": { + "attachment": [ + { "time": 0.7, "name": "eyes-closed" }, + { "time": 0.8, "name": null } + ] + } + }, + "bones": { + "left-upper-leg": { + "rotate": [ + { "value": -26.56 }, + { "time": 0.1333, "value": -8.79 }, + { "time": 0.2333, "value": 9.51 }, + { "time": 0.3667, "value": 30.74 }, + { "time": 0.5, "value": 25.34 }, + { "time": 0.6333, "value": 26.12 }, + { "time": 0.7333, "value": 7.45 }, + { "time": 0.8667, "value": -21.19 }, + { "time": 1, "value": -26.56 } + ], + "translate": [ + { "x": -1.32, "y": 1.71 }, + { "time": 0.3667, "x": -0.06, "y": 2.43 }, + { "time": 1, "x": -1.32, "y": 1.71 } + ] + }, + "right-upper-leg": { + "rotate": [ + { "value": 42.45 }, + { + "time": 0.1333, + "value": 49.86, + "curve": [ 0.175, 49.86, 0.204, 22.69 ] + }, + { "time": 0.2333, "value": 22.51 }, + { "time": 0.5, "value": -16.94 }, + { "time": 0.6333, "value": 1.9 }, + { + "time": 0.7333, + "value": 34.87, + "curve": [ 0.795, 37.71, 0.867, 58.69 ] + }, + { + "time": 0.8667, + "value": 58.69, + "curve": [ 0.933, 58.35, 1, 42.45 ] + }, + { "time": 1, "value": 42.45 } + ], + "translate": [ + { "x": 6.24 }, + { "time": 0.2333, "x": 2.14, "y": 2.4 }, + { "time": 0.5, "x": 2.44, "y": 4.8 }, + { "time": 1, "x": 6.24 } + ] + }, + "left-lower-leg": { + "rotate": [ + { "value": -18.05 }, + { "time": 0.1333, "value": -63.51 }, + { "time": 0.2333, "value": -83.02 }, + { "time": 0.5, "value": 5.12 }, + { "time": 0.6333, "value": -28.3 }, + { "time": 0.7333, "value": -27.52 }, + { "time": 0.8667, "value": 3.53 }, + { "time": 1, "value": -18.05 } + ], + "translate": [ + {}, + { "time": 0.2333, "x": 2.56, "y": -0.47 }, + { "time": 0.5 } + ] + }, + "left-foot": { + "rotate": [ + { "value": -14.57 }, + { "time": 0.1333, "value": -10.42 }, + { "time": 0.2333, "value": -5.01 }, + { "time": 0.3, "value": 6.67 }, + { "time": 0.3667, "value": 3.87 }, + { "time": 0.5, "value": -3.88 }, + { "time": 0.6333, "value": 2.78 }, + { "time": 0.7333, "value": -12 }, + { "time": 0.8667, "value": -12.45 }, + { "time": 1, "value": -14.57 } + ] + }, + "right-shoulder": { + "rotate": [ + { + "value": 5.29, + "curve": [ 0.167, 5.29, 0.475, 6.65 ] + }, + { "time": 0.6333, "value": 6.65 }, + { "time": 1, "value": 5.29 } + ] + }, + "right-arm": { + "rotate": [ + { + "value": -4.03, + "curve": [ 0.169, -3.91, 0.51, 19.66 ] + }, + { + "time": 0.6333, + "value": 19.79, + "curve": [ 0.746, 19.75, 0.922, -3.91 ] + }, + { "time": 1, "value": -4.03 } + ] + }, + "right-hand": { + "rotate": [ + { "value": 8.99 }, + { "time": 0.6333, "value": 0.51 }, + { "time": 1, "value": 8.99 } + ] + }, + "left-shoulder": { + "rotate": [ + { + "value": 6.26, + "curve": [ 0.17, 6.26, 0.342, -11.79 ] + }, + { + "time": 0.5, + "value": -11.79, + "curve": [ 0.641, -11.79, 0.843, 6.16 ] + }, + { "time": 1, "value": 6.26 } + ], + "translate": [ + { "x": 1.15, "y": 0.24 } + ] + }, + "left-hand": { + "rotate": [ + { + "value": -21.24, + "curve": [ 0.148, -21.24, 0.378, -27.21 ] + }, + { + "time": 0.5, + "value": -27.28, + "curve": [ 0.621, -27.28, 0.875, -21.4 ] + }, + { "time": 1, "value": -21.24 } + ] + }, + "left-arm": { + "rotate": [ + { + "value": 28.38, + "curve": [ 0.17, 28.38, 0.342, 60.09 ] + }, + { + "time": 0.5, + "value": 60.09, + "curve": [ 0.641, 60.09, 0.843, 28.54 ] + }, + { "time": 1, "value": 28.38 } + ] + }, + "torso": { + "rotate": [ + { "value": -10.28 }, + { + "time": 0.1333, + "value": -15.39, + "curve": [ 0.261, -15.36, 0.324, -9.78 ] + }, + { + "time": 0.3667, + "value": -9.78, + "curve": [ 0.521, -10.8, 0.545, -15.72 ] + }, + { + "time": 0.6333, + "value": -15.75, + "curve": [ 0.688, -15.66, 0.819, -7.07 ] + }, + { + "time": 0.8667, + "value": -7.07, + "curve": [ 0.895, -7.07, 0.975, -10.25 ] + }, + { "time": 1, "value": -10.28 } + ] + }, + "right-foot": { + "rotate": [ + { "value": -5.25 }, + { "time": 0.2333, "value": -17.77 }, + { "time": 0.3667, "value": -20.1 }, + { "time": 0.5, "value": -19.74 }, + { "time": 0.7333, "value": -11.69 }, + { "time": 0.8, "value": 4.47 }, + { "time": 0.8667, "value": 0.46 }, + { "time": 1, "value": -5.25 } + ] + }, + "right-lower-leg": { + "rotate": [ + { + "value": -3.39, + "curve": [ 0.042, -4.01, 0.099, -42.81 ] + }, + { + "time": 0.1333, + "value": -43.22, + "curve": [ 0.175, -43.22, 0.204, -26.09 ] + }, + { "time": 0.2333, "value": -25.98 }, + { "time": 0.5, "value": -19.53 }, + { "time": 0.6333, "value": -64.8 }, + { + "time": 0.7333, + "value": -89.54, + "curve": [ 0.882, -74, 1, -3.39 ] + }, + { "time": 1, "value": -3.39 } + ], + "translate": [ + { "time": 0.5 }, + { "time": 0.6333, "x": 2.19, "y": 0.21 }, + { "time": 1 } + ] + }, + "hip": { + "translate": [ + { "y": -8.4 }, + { + "time": 0.1333, + "y": -9.35, + "curve": [ 0.166, 0, 0.201, 0, 0.166, -8.91, 0.201, -1.14 ] + }, + { + "time": 0.2333, + "y": -0.59, + "curve": [ 0.277, 0, 0.319, 0, 0.277, -1.92, 0.319, -2.96 ] + }, + { "time": 0.3667, "y": -3.97 }, + { "time": 0.5, "y": -8.4 }, + { + "time": 0.6333, + "y": -10.01, + "curve": [ 0.669, 0, 0.698, 0, 0.669, -7.79, 0.698, -6.49 ] + }, + { + "time": 0.7333, + "y": -5.3, + "curve": [ 0.756, 0, 0.778, 0, 0.756, -4.27, 0.778, -3.35 ] + }, + { + "time": 0.8, + "y": -2.5, + "curve": [ 0.821, 0, 0.843, 0, 0.821, -3.02, 0.843, -3.5 ] + }, + { "time": 0.8667, "y": -3.97 }, + { "time": 1, "y": -8.4 } + ] + }, + "neck": { + "rotate": [ + { "value": 3.6 }, + { "time": 0.1333, "value": 17.5 }, + { "time": 0.2333, "value": 6.11 }, + { "time": 0.3667, "value": 3.46 }, + { "time": 0.5, "value": 5.18 }, + { "time": 0.6333, "value": 18.36 }, + { "time": 0.7333, "value": 6.09 }, + { "time": 0.8667, "value": 2.29 }, + { "time": 1, "value": 3.6 } + ] + }, + "head": { + "rotate": [ + { + "value": 3.6, + "curve": [ 0, 3.6, 0.094, -0.89 ] + }, + { "time": 0.1333, "value": -0.21 }, + { "time": 0.2333, "value": 6.11 }, + { "time": 0.3667, "value": 3.46 }, + { + "time": 0.5, + "value": 5.18, + "curve": [ 0.5, 5.18, 0.617, -1.4 ] + }, + { "time": 0.6667, "value": 1.11 }, + { "time": 0.7333, "value": 6.09 }, + { "time": 0.8667, "value": 2.29 }, + { "time": 1, "value": 3.6 } + ] + }, + "pelvis": { + "rotate": [ + { "value": -1.34 } + ], + "translate": [ + { "x": 0.39, "y": -0.78 } + ] + }, + "spear1": { + "rotate": [ + { "value": 1.85 }, + { "time": 0.2, "value": -5.39 }, + { "time": 0.5, "value": 2.95 }, + { "time": 0.7333, "value": -3.67 }, + { "time": 1, "value": 1.85 } + ] + }, + "spear2": { + "rotate": [ + { "value": 1.85 }, + { "time": 0.2, "value": -5.39 }, + { "time": 0.5, "value": 2.95 }, + { "time": 0.7333, "value": -3.67 }, + { "time": 1, "value": 1.85 } + ] + }, + "spear3": { + "rotate": [ + { "value": 3.64 }, + { "time": 0.2, "value": -3.6 }, + { "time": 0.5, "value": 4.74 }, + { "time": 0.7333, "value": -1.88 }, + { "time": 1, "value": 3.64 } + ] + } + }, + "deform": { + "default": { + "right-hand-item": { + "dagger": [ + { + "offset": 26, + "vertices": [ 2.34755, 0.1447 ], + "curve": [ 0.125, 0, 0.375, 1 ] + }, + { + "time": 0.5, + "offset": 8, + "vertices": [ -1.19415, 4.31532, 0.07279, 6.41351, 1.66048, 6.18883, 1.75233, 3.59555 ], + "curve": [ 0.625, 0, 0.875, 1 ] + }, + { + "time": 1, + "offset": 26, + "vertices": [ 2.34755, 0.1447 ] + } + ] + } + }, + "goblin": { + "head": { + "head": [ + { + "curve": [ 0.127, 0, 0.15, 1 ] + }, + { + "time": 0.2, + "vertices": [ -10.97827, -6.68962, -4.68015, -2.46175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.08534, 0.08392, -1.08534, 0.08392, -1.08534, 0.08392, 0, 0, -2.22325, 2.66465, -4.83295, 2.70085, -5.70553, -0.51941, -3.15962, -1.61502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.64742, 0.81612, -11.82286, -1.34955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.08534, 0.08392 ], + "curve": [ 0.242, 0, 0.325, 1 ] + }, + { + "time": 0.3667, + "vertices": [ 10.69276, 4.05949, 3.66373, 1.85427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.47305, 0.09018, 1.47305, 0.09018, 1.47305, 0.09018, 0, 0, 2.69653, -0.22738, 3.77135, 0.11418, 3.6893, 1.55352, 2.49595, 1.65501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.45881, -3.9113, 9.19594, -1.66854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.47305, 0.09018 ], + "curve": [ 0.574, 0, 0.617, 1 ] + }, + { + "time": 0.7, + "vertices": [ -10.97827, -6.68962, -4.68015, -2.46175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.17551, -0.17183, -1.17551, -0.17183, -1.17551, -0.17183, 0, 0, -2.22325, 2.66465, -4.83295, 2.70085, -5.70553, -0.51941, -3.15962, -1.61502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.64742, 0.81612, -11.82286, -1.34955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.17551, -0.17183 ], + "curve": [ 0.742, 0, 0.825, 1 ] + }, + { + "time": 0.8667, + "vertices": [ 10.69276, 4.05949, 3.66373, 1.85427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.38687, 0.08446, 0.38687, 0.08446, 0.38687, 0.08446, 0, 0, 2.69653, -0.22738, 3.77135, 0.11418, 3.6893, 1.55352, 2.49595, 1.65501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.45881, -3.9113, 9.19594, -1.66854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.38687, 0.08446 ], + "curve": [ 0.9, 0, 0.967, 1 ] + }, + { "time": 1 } + ] + }, + "left-foot": { + "left-foot": [ + { + "offset": 8, + "vertices": [ 3.69298, 2.37573, -7.16969, 18.79733, -12.78162, 14.7778, -12.75776, 6.50514, -3.13476, 1.98906, -0.44402, 0.36629, 0, 0, -3.80085, 2.98474 ] + }, + { "time": 0.1333 }, + { + "time": 0.2333, + "offset": 8, + "vertices": [ -3.96073, -2.34594, -5.80446, -12.47629, -2.2313, -12.99038, 2.02942, -9.1036, 0, 0, 0, 0, 0, 0, -1.35254, -5.2883 ] + }, + { + "time": 0.3667, + "offset": 8, + "vertices": [ 0.66505, 0.33548, 0.33902, 2.69014, -0.48171, 2.54524, -1.13593, 1.38562, 0, 0, 0, 0, 0, 0, -0.11908, 0.79273 ] + }, + { "time": 0.5, "curve": "stepped" }, + { "time": 0.6333 }, + { + "time": 0.7333, + "offset": 8, + "vertices": [ -2.97738, 9.40254, -6.91661, 19.92794, -10.55287, 18.41085, -12.37161, 12.38473, -4.72607, 6.30799, 0, 0, -1.48902, 4.88944, -7.06773, 10.70102 ] + }, + { + "time": 0.8333, + "offset": 6, + "vertices": [ 1.05319, 1.56362, -2.52723, 7.9974, -5.52031, 17.14137, -8.93317, 15.79635, -10.73748, 10.22056, -4.23801, 5.36992, 0, 0, 0, 0, -5.83148, 8.55532 ] + }, + { + "time": 1, + "offset": 8, + "vertices": [ 3.69298, 2.37573, -7.16969, 18.79733, -12.78162, 14.7778, -12.75776, 6.50514, -3.13476, 1.98906, -0.44402, 0.36629, 0, 0, -3.80085, 2.98474 ] + } + ] + }, + "pelvis": { + "pelvis": [ + {}, + { + "time": 0.1333, + "offset": 6, + "vertices": [ -0.6899, -4.13284 ] + }, + { + "time": 0.3333, + "offset": 6, + "vertices": [ -1.04945, -3.10477 ] + }, + { + "time": 0.7, + "offset": 6, + "vertices": [ -1.4245, -6.30617 ] + }, + { + "time": 0.8667, + "offset": 6, + "vertices": [ -1.13542, -1.79036 ] + }, + { "time": 1 } + ] + }, + "right-foot": { + "right-foot": [ + {}, + { + "time": 0.1333, + "offset": 2, + "vertices": [ -2.81259, 2.63115, -2.35238, 3.89441, -1.99921, 4.8639, -0.93273, 5.57982, -0.48886, 5.09855, -0.34813, 3.42912, -0.17446, 1.36899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.31305, 1.91372, -1.32986, 3.65703 ] + }, + { + "time": 0.2333, + "offset": 2, + "vertices": [ -6.39088, 6.41246, -7.74575, 8.27192, -7.02471, 11.35894, -4.03471, 13.93454, -2.50399, 12.62963, -1.46125, 7.58915, -0.17446, 1.36899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.84766, 2.61216, -4.53956, 7.92358 ] + }, + { + "time": 0.3, + "offset": 2, + "vertices": [ -8.27185, 6.68822, -9.29764, 10.13797, -8.62231, 14.7134, -4.5863, 18.81939, -2.20304, 17.10709, -0.07795, 9.9046, 2.54452, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.94625, 2.38008, -4.59399, 10.01888 ] + }, + { + "time": 0.3667, + "offset": 2, + "vertices": [ -10.47684, 9.44176, -13.36883, 12.40983, -14.32569, 16.94392, -9.24463, 23.55674, -5.51712, 21.51378, -1.19582, 11.53193, 2.54452, 1.01642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4.14848, 2.29389, -6.63419, 11.37127 ] + }, + { + "time": 0.5, + "offset": 2, + "vertices": [ -5.42474, 4.36854, -10.59004, 7.04468, -11.64251, 11.55845, -6.19665, 20.12806, -1.45498, 18.05411, 4.8662, 6.41679, 2.81463, 0.27601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.96412, 4.9483 ] + }, + { "time": 0.6333 }, + { + "time": 0.7333, + "offset": 4, + "vertices": [ 1.31462, -6.84099, -0.87905, -12.54479, -5.9851, -14.08368, -7.15892, -11.63194, -5.6792, -4.83545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.06164, -6.93844 ] + }, + { + "time": 0.8, + "offset": 4, + "vertices": [ 0.65731, -3.4205, -0.43953, -6.2724, -2.99255, -7.04184, -3.57946, -5.81597, -2.8396, -2.41772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.79688, -1.28021, 0, 0, 0, 0, -1.03082, -3.46922 ] + }, + { "time": 0.8667 } + ] + }, + "right-hand": { + "right-hand": [ + { + "offset": 4, + "vertices": [ -1.48417, 0.34736, 0, 0, 1.31152, 0.08085, 1.60296, 0.09882, 0.13673, 0.15471, 0, 0, 0, 0, -0.72862, -0.0449 ] + }, + { "time": 0.5 }, + { + "time": 1, + "offset": 4, + "vertices": [ -1.48417, 0.34736, 0, 0, 1.31152, 0.08085, 1.60296, 0.09882, 0.13673, 0.15471, 0, 0, 0, 0, -0.72862, -0.0449 ] + } + ] + }, + "right-lower-leg": { + "right-lower-leg": [ + {}, + { + "time": 0.6, + "offset": 6, + "vertices": [ 1.80396, -1.56553 ] + }, + { "time": 1 } + ] + }, + "right-upper-leg": { + "right-upper-leg": [ + { + "vertices": [ -6.03857, -1.46325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.34685, -1.93102, -1.86047, -5.05266, -2.5014, -3.09985 ] + }, + { "time": 0.3333 }, + { + "time": 0.8667, + "offset": 14, + "vertices": [ 0.13425, -2.35378, -1.33318, -5.99573, -1.35862, -4.43324 ] + }, + { + "time": 1, + "vertices": [ -6.03857, -1.46325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.34685, -1.93102, -1.86047, -5.05266, -2.5014, -3.09985 ] + } + ] + }, + "torso": { + "torso": [ + { + "offset": 2, + "vertices": [ 0.24821, 2.86673, 0.24821, 2.86673, 0.24821, 2.86673, 0.24821, 2.86673, 0.24821, 2.86673, 0.24821, 2.86673, -1.24131, 2.62652, -2.47492, 0.71183, -0.26363, -0.5308, 0.24821, 2.86673, 0.24821, 2.86673, 0, 0, 0, 0, 0, 0, 0, 0, 1.34461, 0.25215, 0.24821, 2.86673, 0.82507, 1.61798, 0.24821, 2.86673, 0, 0, -1.86431, -0.4326, 0.24821, 2.86673 ] + }, + { + "time": 0.1333, + "offset": 2, + "vertices": [ 0.35589, 4.10914, 0.35589, 4.10914, 0.35589, 4.10914, 0.35589, 4.10914, 0.35589, 4.10914, 0.35589, 4.10914, 1.66908, 3.51187, -0.62355, 2.47979, 1.1045, 3.49684, -1.09009, 6.08429, 0.35589, 4.10914, 0, 0, 0, 0, 0, 0, 0, 0, 3.01291, 0.15693, 0.35589, 4.10914, -1.11398, 3.7954, 0.35589, 4.10914, 0, 0, -2.96167, 0.55563, -2.20741, 4.40587 ] + }, + { + "time": 0.3, + "offset": 2, + "vertices": [ 0.2884, 3.32948, 0.2884, 3.32948, 0.2884, 3.32948, 0.2884, 3.32948, 0.2884, 3.32948, 0.2884, 3.32948, 6.32601, 0.19387, 7.84315, 1.94837, 7.08587, 3.64119, 4.52343, 4.46961, 0.2884, 3.32948, 0, 0, 0, 0, 0, 0, 0, 0, 4.36416, -1.83876, 0.2884, 3.32948, 4.2925, 3.60194, 0.2884, 3.32948, 0, 0, 3.72601, -0.19338, 0.2884, 3.32948 ] + }, + { + "time": 0.5, + "offset": 2, + "vertices": [ 0.3133, 3.61659, 0.3133, 3.61659, 0.3133, 3.61659, 0.3133, 3.61659, 0.3133, 3.61659, 0.3133, 3.61659, 2.57273, 2.74457, 2.88831, 3.04797, 3.48442, 3.04655, 1.80035, 4.609, 0.3133, 3.61659, 0, 0, 0, 0, 0, 0, 0, 0, 3.53782, -0.82203, 0.3133, 3.61659, 1.80022, 3.63246, 0.3133, 3.61659, 0, 0, 0.62718, 0.33564, -1.22467, 3.79463 ] + }, + { + "time": 0.6333, + "offset": 2, + "vertices": [ 0.44398, 5.125, 0.44398, 5.125, 0.44398, 5.125, 0.44398, 5.125, 0.44398, 5.125, 0.44398, 5.125, 1.19401, 3.60798, -0.53546, 3.49565, 1.1926, 4.5127, -1.002, 7.10015, 0.44398, 5.125, 0, 0, 0, 0, 0, 0, 0, 0, 3.101, 1.17278, 0.44398, 5.125, -1.02589, 4.81126, 0.44398, 5.125, 0, 0, -2.87358, 1.57149, -2.11931, 5.42173 ] + }, + { + "time": 0.8667, + "offset": 2, + "vertices": [ 0.30385, 3.50647, 0.30385, 3.50647, 0.30385, 3.50647, 0.30385, 3.50647, 0.30385, 3.50647, 0.30385, 3.50647, 0.92587, 2.24385, 0.68874, 1.29945, 3.55433, 3.00604, 2.71494, 5.89962, 0.30385, 3.50647, 0, 0, 0, 0, 0, 0, 0, 0, 1.96775, 0.40548, 0.30385, 3.50647, 2.6104, 2.3545, 0.30385, 3.50647, 0, 0, 0.22709, -0.12851, -0.62826, 3.61437 ] + }, + { + "time": 1, + "offset": 2, + "vertices": [ 0.32802, 3.78826, 0.32802, 3.78826, 0.32802, 3.78826, 0.32802, 3.78826, 0.32802, 3.78826, 0.32802, 3.78826, -1.1615, 3.54805, -2.39511, 1.63336, -0.18382, 0.39073, 0.32802, 3.78826, 0.32802, 3.78826, 0, 0, 0, 0, 0, 0, 0, 0, 1.42442, 1.17368, 0.32802, 3.78826, 0.90488, 2.53951, 0.32802, 3.78826, 0, 0, -1.7845, 0.48894, 0.32802, 3.78826 ] + } + ] + }, + "undie-straps": { + "undie-straps": [ + { + "offset": 2, + "vertices": [ -1.77697, 0.5476, -0.96145, -1.03793, -0.39148, -0.24072, -1.77697, 0.5476 ] + }, + { + "time": 0.1333, + "offset": 2, + "vertices": [ -2.25684, -1.03177, -1.49719, -4.23862, -0.7447, -2.84907, -1.90072, 0.54478 ] + }, + { + "time": 0.3333, + "offset": 2, + "vertices": [ -2.37974, -0.05432, -0.49433, 0.19437, -0.90861, 1.16519, -1.60956, 2.70799, 0.96186, 0.80615 ] + }, + { + "time": 0.7, + "offset": 2, + "vertices": [ -0.91715, -2.76567, -0.62215, -3.63489, -0.84941, -2.26772, -2.56077, 0.52971 ] + }, + { + "time": 0.8667, + "offset": 2, + "vertices": [ -2.56077, 0.52971, -1.58065, 0.32031, -1.3847, 0.32476, -2.56077, 0.52971 ] + }, + { + "time": 1, + "offset": 2, + "vertices": [ -1.77697, 0.5476, -0.80128, 0.53413, -0.80128, 0.53413, -1.77697, 0.5476 ] + } + ] + }, + "undies": { + "undies": [ + { + "vertices": [ 0.43099, 0.722, 10.60295, -0.117, 2.29599, 0, 2.29599, 0, 2.29599, 0, 0.58799, 0.244, -2.40018, -0.65335, -2.2782, -0.77534, 2.29599, 0, 0.58799, -0.488, 4.98698, -0.117, 6.50797, -0.23399 ] + }, + { + "time": 0.1333, + "vertices": [ 0.72659, 0.4332, 7.20417, -0.1638, 1.37759, 0, 1.37759, 0, 1.37759, 0, 1.25279, 0.0464, -0.99862, -2.95085, -1.37543, -3.07404, 1.37759, 0, 0.35279, -0.2928, 2.99219, -0.0702, 3.90478, -0.1404 ] + }, + { + "time": 0.3333, + "vertices": [ 1.16999, 0, 2.10599, -0.23401, 0, 0, 0, 0, 0, 0, 2.24999, -0.24999, -0.4344, 0.60551, -1.55939, 0.48051 ] + }, + { + "time": 0.5333, + "vertices": [ 1.16999, 0, -0.234, -0.936, -2.92499, 0.351, 0, 0, 0, 0, 0.5, -0.24999, -0.64079, -2.07915, -0.64079, -2.07915 ] + }, + { + "time": 0.7, + "vertices": [ 1.86271, -0.11514, 4.66327, -0.091, -1.76428, 0.21171, 0, 0, -0.56833, 0.32833, -1.13833, -1.15111, -2.19996, -3.47068, -1.29719, -3.47068, 0, 0, 0, 0, 1.58785, -0.04643, 2.65942, 0.16715 ] + }, + { + "time": 0.8333, + "vertices": [ 2.41688, -0.20726, 8.58108, 0.585, -0.83571, 0.10029, 0, 0, -1.02299, 0.59099, -2.449, -1.872, -1.625, 0, 0, 0, 0, 0, 0, 0, 2.85813, -0.08357, 4.78695, 0.30086 ] + }, + { + "time": 0.8667, + "vertices": [ 2.0197, -0.02141, 8.98546, 0.4446, -0.20937, 0.08023, 0.4592, 0, -0.3592, 0.47279, -1.8416, -1.4488, -0.79153, 1.26421, 0.53286, 1.23981, 0.4592, 0, 0.1176, -0.0976, 3.2839, -0.09025, 5.13116, 0.19389 ] + }, + { + "time": 1, + "vertices": [ 0.43099, 0.722, 10.60295, -0.117, 2.29599, 0, 2.29599, 0, 2.29599, 0, 0.58799, 0.244, -2.40018, -0.65335, -2.2782, -0.77534, 2.29599, 0, 0.58799, -0.488, 4.98698, -0.117, 6.50797, -0.23399 ] + } + ] + } + } + } + } +} +} \ No newline at end of file diff --git a/spine-ts/webgl/example/assets/mix-and-match-pro.json b/spine-ts/webgl/example/assets/mix-and-match-pro.json new file mode 100644 index 000000000..7d577f693 --- /dev/null +++ b/spine-ts/webgl/example/assets/mix-and-match-pro.json @@ -0,0 +1,8001 @@ +{ +"skeleton": { + "hash": "nE4g85mprlE", + "spine": "4.0.05-beta", + "x": -240.58, + "y": -3.38, + "width": 410.36, + "height": 806.78, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { "name": "skeleton-control", "parent": "root", "x": -0.43, "y": 257.36, "color": "ff1111ff" }, + { "name": "hips", "parent": "skeleton-control", "x": 3.06, "y": 29.29, "color": "ffce12ff" }, + { + "name": "body-down", + "parent": "hips", + "length": 68.46, + "rotation": 92.39, + "x": -3.13, + "y": -1.59, + "color": "ffce12ff" + }, + { + "name": "body-up", + "parent": "body-down", + "length": 113.37, + "rotation": 1.94, + "x": 66.64, + "y": 1.98, + "color": "ffce12ff" + }, + { + "name": "neck", + "parent": "body-up", + "length": 43.86, + "rotation": -2.99, + "x": 98.36, + "y": 3.04, + "color": "ffce12ff" + }, + { + "name": "head", + "parent": "neck", + "length": 156.89, + "rotation": -3.77, + "x": 31.54, + "y": 7.82, + "color": "ffce12ff" + }, + { "name": "arm-front-control", "parent": "body-up", "rotation": -94.33, "x": 82.42, "y": 46.82, "color": "ff3636ff" }, + { + "name": "arm-front-up", + "parent": "arm-front-control", + "length": 102.6, + "rotation": -90, + "x": 0.28, + "y": -0.01, + "color": "ff3636ff" + }, + { "name": "arm-front-down", "parent": "arm-front-up", "length": 102.6, "x": 102.6, "color": "ff3636ff" }, + { "name": "hand-front", "parent": "arm-front-down", "length": 30.54, "x": 97.35, "y": -2, "color": "ff1c1cff" }, + { + "name": "arm-front-up-2", + "parent": "arm-front-control", + "length": 33.49, + "rotation": -90, + "x": 0.28, + "y": -0.01, + "color": "9a1c1cff" + }, + { + "name": "arm-front-up-3", + "parent": "arm-front-up-2", + "length": 33.49, + "rotation": -0.88, + "x": 132.36, + "y": -0.3, + "color": "9a1c1cff" + }, + { "name": "arm-front-up-4", "parent": "arm-front-up-3", "length": 33.49, "x": 33.49, "color": "9a1c1cff" }, + { "name": "arm-front-up-5", "parent": "arm-front-up-4", "length": 33.49, "x": 33.49, "color": "9a1c1cff" }, + { "name": "arm-front-up-6", "parent": "arm-front-up-5", "length": 33.49, "x": 33.49, "color": "9a1c1cff" }, + { + "name": "arm-front-up-7", + "parent": "arm-front-up-6", + "length": 33.49, + "rotation": -0.01, + "x": 133.92, + "y": -0.76, + "color": "9a1c1cff" + }, + { "name": "leg-control-front", "parent": "hips", "x": -29.98, "y": -1.61, "color": "d130ffff" }, + { + "name": "foot-front-IK", + "parent": "skeleton-control", + "rotation": -90.56, + "x": -51.95, + "y": -259.13, + "transform": "noRotationOrReflection", + "color": "d130ffff" + }, + { "name": "leg-up", "parent": "leg-control-front", "length": 144.38, "rotation": -99.42, "y": 0.45, "color": "d130ffff" }, + { "name": "leg-down", "parent": "leg-up", "length": 144.38, "rotation": 8.86, "x": 144.38, "color": "d130ffff" }, + { "name": "leg-front-1", "parent": "leg-control-front", "length": 35.95, "rotation": -90, "y": 0.45, "color": "65127cff" }, + { "name": "leg-front-2", "parent": "leg-front-1", "length": 35.95, "x": 35.95, "color": "65127cff" }, + { "name": "leg-front-3", "parent": "leg-front-2", "length": 35.95, "x": 35.95, "color": "65127cff" }, + { "name": "leg-front-4", "parent": "leg-front-3", "length": 35.95, "x": 35.95, "color": "65127cff" }, + { "name": "leg-front-5", "parent": "leg-front-4", "length": 35.95, "x": 35.95, "color": "65127cff" }, + { "name": "leg-front-6", "parent": "leg-front-5", "length": 35.95, "x": 35.95, "color": "65127cff" }, + { "name": "leg-front-7", "parent": "leg-front-6", "length": 35.95, "x": 35.95, "color": "65127cff" }, + { "name": "leg-front-8", "parent": "leg-front-7", "length": 35.95, "x": 35.95, "color": "65127cff" }, + { "name": "head-control", "parent": "head", "rotation": -87.57, "x": 71.99, "y": -39.68, "color": "ffce12ff" }, + { "name": "head-back-control", "parent": "head", "rotation": -87.57, "x": 68.52, "y": 49.17, "color": "ffce12ff" }, + { "name": "features-control", "parent": "head", "rotation": -87.57, "x": 88.9, "y": -37.83, "color": "ff5826ff" }, + { "name": "eye-front", "parent": "features-control", "x": -52.2, "y": -35.32, "color": "ff2e2eff" }, + { "name": "eye-front-iris", "parent": "eye-front", "x": -2.45, "y": 18.5, "color": "ff2e2eff" }, + { "name": "eye-front-up-eyelid-holder", "parent": "eye-front", "x": -23.12, "y": 25.84, "color": "ff2e2eff" }, + { "name": "eye-front-up-eyelid", "parent": "eye-front-up-eyelid-holder", "length": 24.39, "rotation": 12.94, "color": "ff2e2eff" }, + { "name": "eye-front-low-eyelid-holder", "parent": "eye-front", "x": -14.14, "y": 5.98, "color": "ff2e2eff" }, + { "name": "eye-front-low-eyelid", "parent": "eye-front-low-eyelid-holder", "length": 17.4, "rotation": -9.9, "color": "ff2e2eff" }, + { + "name": "eye-front-eyebrow", + "parent": "eye-front", + "length": 29.37, + "rotation": 3.58, + "x": -14.96, + "y": 46.78, + "color": "ff2e2eff" + }, + { "name": "eye-back", "parent": "features-control", "x": 35.89, "y": -33.38, "color": "f64379ff" }, + { "name": "eye-back-up-eyelid-holder", "parent": "eye-back", "x": 13.06, "y": 27.2, "color": "f64379ff" }, + { "name": "eye-back-up-eyelid", "parent": "eye-back-up-eyelid-holder", "length": 20.8, "rotation": 168.69, "color": "f64379ff" }, + { "name": "eye-back-low-eyelid-holder", "parent": "eye-back", "x": 12.51, "y": 5.71, "color": "f64379ff" }, + { "name": "eye-back-low-eyelid", "parent": "eye-back-low-eyelid-holder", "length": 16.37, "rotation": -164.58, "color": "f64379ff" }, + { "name": "eye-back-iris", "parent": "eye-back", "x": -4.9, "y": 17.41, "color": "f64379ff" }, + { + "name": "eye-back-eyebrow", + "parent": "eye-back", + "length": 22.32, + "rotation": 177.9, + "x": 6.26, + "y": 45.7, + "color": "f64379ff" + }, + { + "name": "hair-side-front", + "parent": "head", + "length": 117.55, + "rotation": -168.46, + "x": 97.12, + "y": 56.27, + "color": "ffce12ff" + }, + { + "name": "hair-side-back", + "parent": "head", + "length": 130.16, + "rotation": -145.86, + "x": 118.76, + "y": -73.3, + "color": "ffce12ff" + }, + { + "name": "hair-bangs-front", + "parent": "head", + "length": 77.62, + "rotation": 147.72, + "x": 141.51, + "y": 5.35, + "color": "ffce12ff" + }, + { + "name": "hair-bangs-back", + "parent": "head", + "length": 113.25, + "rotation": -108.68, + "x": 144.28, + "y": -7.09, + "color": "ffce12ff" + }, + { "name": "hat-base", "parent": "head", "x": 136.74, "y": 38.65, "skin": true, "color": "b131ffff" }, + { + "name": "hat", + "parent": "hat-base", + "length": 150.37, + "rotation": 8.06, + "x": -8.47, + "y": -4.44, + "skin": true, + "color": "b131ffff" + }, + { "name": "hat-control", "parent": "hat", "x": 65.29, "y": -6.95, "skin": true, "color": "b131ffff" }, + { "name": "pompom-control", "parent": "hat", "x": 150.97, "y": 0.35, "skin": true, "color": "b131ffff" }, + { "name": "end-arm-control", "parent": "arm-front-down", "length": 26.6, "x": 74.55, "y": 0.24, "color": "ff3636ff" }, + { + "name": "backpack", + "parent": "body-up", + "length": 120.69, + "rotation": -178.76, + "x": 114.16, + "y": 90.94, + "skin": true, + "color": "b57dd9ff" + }, + { "name": "backpack-control", "parent": "backpack", "x": 53.83, "y": -119.3, "skin": true, "color": "b57dd9ff" }, + { + "name": "bag", + "parent": "body-up", + "length": 68.52, + "rotation": 79.16, + "x": -62.49, + "y": 69.37, + "skin": true, + "color": "e8afe7ff" + }, + { "name": "bag-control", "parent": "bag", "x": 84.37, "y": 53.1, "skin": true, "color": "e8afe7ff" }, + { + "name": "bag-flap", + "parent": "bag", + "length": 64.04, + "rotation": -1.51, + "x": 23, + "y": 89.94, + "skin": true, + "color": "e8afe7ff" + }, + { + "name": "scarf-back", + "parent": "neck", + "length": 115.61, + "rotation": 90.68, + "x": 28.76, + "y": 92.8, + "skin": true, + "color": "69ff53ff" + }, + { "name": "bag-strap-back", "parent": "arm-front-control", "x": -0.31, "y": 10.97, "skin": true, "color": "e8afe7ff" }, + { + "name": "bag-back-down", + "parent": "bag-control", + "rotation": -173.48, + "x": -31.08, + "y": -10.86, + "skin": true, + "color": "e8afe7ff" + }, + { "name": "bag-strap-front", "parent": "arm-front-control", "x": 2.82, "y": -11.88, "skin": true, "color": "e8afe7ff" }, + { + "name": "bag-back-front", + "parent": "bag", + "rotation": -173.48, + "x": -18.37, + "y": 34.05, + "skin": true, + "color": "e8afe7ff" + }, + { + "name": "zip-girl", + "parent": "body-up", + "length": 40.75, + "rotation": -174.98, + "x": 79.28, + "y": -23.28, + "skin": true, + "color": "75f057ff" + }, + { + "name": "zip-boy", + "parent": "neck", + "length": 33.9, + "rotation": -173.57, + "x": 31.78, + "y": -23.85, + "skin": true, + "color": "ff4cf5ff" + }, + { "name": "hair-holder-front", "parent": "body-up", "x": 100.57, "y": 80.62, "skin": true, "color": "06b8d8ff" }, + { + "name": "hair-strand-front-1", + "parent": "hair-holder-front", + "length": 155.7, + "rotation": 174.65, + "x": -6.72, + "y": -5.97, + "skin": true, + "color": "06b7d875" + }, + { + "name": "hair-strand-front-3", + "parent": "hair-holder-front", + "length": 142.3, + "rotation": 136.62, + "x": 6.14, + "y": 25.81, + "skin": true, + "color": "06b7d875" + }, + { "name": "hair-holder-back", "parent": "body-up", "x": 105.21, "y": -48.86, "skin": true, "color": "2a96c6ff" }, + { + "name": "hair-strand-back-1", + "parent": "hair-holder-back", + "length": 136.84, + "rotation": -155.81, + "x": -1.27, + "y": -10.38, + "skin": true, + "color": "06b7d875" + }, + { + "name": "hair-strand-back-2", + "parent": "hair-holder-back", + "length": 125.26, + "rotation": -121.03, + "x": -10.45, + "y": -2.72, + "skin": true, + "color": "06b7d875" + }, + { + "name": "hair-strand-back-3", + "parent": "hair-holder-back", + "length": 162.33, + "rotation": -149.61, + "x": -5.97, + "y": -7.94, + "skin": true, + "color": "06b7d875" + }, + { + "name": "hair-strand-front-2", + "parent": "hair-holder-front", + "length": 133.58, + "rotation": 163.66, + "x": -0.73, + "y": 17.97, + "skin": true, + "color": "06b7d875" + }, + { + "name": "hair-strand-front-4", + "parent": "hair-holder-front", + "length": 110.33, + "rotation": 103.65, + "x": -2.97, + "y": 25.11, + "skin": true, + "color": "06b7d875" + }, + { "name": "eye-front-pupil", "parent": "eye-front", "x": -3.44, "y": 17.51, "color": "ff2e2eff" }, + { "name": "eye-back-pupil", "parent": "eye-back", "x": -5.89, "y": 16.42, "color": "f64379ff" }, + { "name": "eyelid-skin", "parent": "eye-front", "x": 1.06, "y": 41.21, "color": "ff2e2eff" }, + { "name": "arm-back-control", "parent": "body-up", "rotation": -94.33, "x": 73.75, "y": -67.88, "color": "321c9aff" }, + { + "name": "arm-back-up", + "parent": "arm-back-control", + "length": 102.6, + "rotation": -90, + "x": 0.28, + "y": -0.01, + "color": "321c9aff" + }, + { "name": "arm-back-down", "parent": "arm-back-up", "length": 102.6, "x": 102.6, "color": "321c9aff" }, + { "name": "hand-back", "parent": "arm-back-down", "length": 30.54, "x": 97.35, "y": -2, "color": "321c9aff" }, + { "name": "end-arm-control-back", "parent": "arm-back-down", "length": 26.6, "x": 74.55, "y": 0.24, "color": "321c9aff" }, + { "name": "arm-back-up-2", "parent": "arm-back-control", "length": 33.49, "rotation": -90, "x": 0.33, "color": "321c9aff" }, + { + "name": "arm-back-up-3", + "parent": "arm-back-up-2", + "length": 33.49, + "rotation": 0.17, + "x": 166.24, + "y": -0.24, + "color": "321c9aff" + }, + { + "name": "arm-back-up-4", + "parent": "arm-back-up-3", + "length": 33.49, + "rotation": -0.88, + "x": -32.9, + "y": 0.42, + "color": "321c9aff" + }, + { + "name": "arm-back-up-5", + "parent": "arm-back-up-4", + "length": 33.49, + "rotation": 0.14, + "x": -33.3, + "y": -0.25, + "color": "321c9aff" + }, + { + "name": "arm-back-up-6", + "parent": "arm-back-up-5", + "length": 33.49, + "rotation": 0.3, + "x": -33.16, + "y": -0.37, + "color": "321c9aff" + }, + { + "name": "arm-back-up-7", + "parent": "arm-back-up-6", + "length": 33.49, + "rotation": 0.34, + "x": -33.13, + "y": -0.26, + "color": "321c9aff" + }, + { "name": "leg-control-back", "parent": "hips", "x": 41.56, "y": -0.92, "color": "8f0c5bff" }, + { + "name": "foot-back-IK", + "parent": "skeleton-control", + "rotation": -90.56, + "x": 38.54, + "y": -259.75, + "transform": "noRotationOrReflection", + "color": "d130ffff" + }, + { "name": "leg-up-back", "parent": "leg-control-back", "length": 144.38, "rotation": -92.95, "y": 0.45, "color": "8f0c5bff" }, + { "name": "leg-down-back", "parent": "leg-up-back", "length": 144.38, "rotation": 3.48, "x": 144.38, "color": "8f0c5bff" }, + { + "name": "leg-back-1", + "parent": "leg-control-back", + "length": 35.95, + "rotation": -90, + "x": 0.56, + "y": -0.12, + "color": "8f0c5bff" + }, + { + "name": "leg-back-2", + "parent": "leg-back-1", + "length": 35.95, + "rotation": -0.31, + "x": 36.23, + "y": -0.19, + "color": "8f0c5bff" + }, + { + "name": "leg-back-3", + "parent": "leg-back-2", + "length": 35.95, + "rotation": -0.01, + "x": 35.71, + "y": -0.01, + "color": "8f0c5bff" + }, + { + "name": "leg-back-4", + "parent": "leg-back-3", + "length": 35.95, + "rotation": 0.03, + "x": 36.23, + "y": 0.02, + "color": "8f0c5bff" + }, + { + "name": "leg-back-5", + "parent": "leg-back-4", + "length": 35.95, + "rotation": 0.12, + "x": 35.63, + "y": 0.08, + "color": "8f0c5bff" + }, + { + "name": "leg-back-6", + "parent": "leg-back-5", + "length": 35.95, + "rotation": 0.22, + "x": 35.64, + "y": 0.14, + "color": "8f0c5bff" + }, + { + "name": "leg-back-7", + "parent": "leg-back-6", + "length": 35.95, + "rotation": 0.2, + "x": 36.22, + "y": 0.13, + "color": "65127cff" + }, + { + "name": "leg-back-8", + "parent": "leg-back-7", + "length": 35.95, + "rotation": 0.11, + "x": 35.68, + "y": 0.07, + "color": "65127cff" + }, + { + "name": "foot-front", + "parent": "foot-front-IK", + "length": 34.32, + "rotation": 90.56, + "x": -1.86, + "y": -0.32, + "color": "d130ffff" + }, + { + "name": "foot-back", + "parent": "foot-back-IK", + "length": 34.32, + "rotation": 90.56, + "x": -2.9, + "y": -1.91, + "color": "d130ffff" + }, + { + "name": "skirt-control", + "parent": "skeleton-control", + "rotation": 90, + "x": 4.35, + "y": -26.24, + "skin": true, + "color": "8dff00ff" + }, + { "name": "skirt-control-up", "parent": "skirt-control", "x": -15.87, "y": -0.12, "skin": true, "color": "09d627ff" }, + { + "name": "skirt-rotation-back", + "parent": "body-up", + "length": 150.48, + "rotation": -119.15, + "x": 3.77, + "y": -67.52, + "skin": true, + "color": "09d627ff" + }, + { + "name": "skirt-rotation-front", + "parent": "body-up", + "length": 140.39, + "rotation": 113.07, + "x": 8.14, + "y": 30.47, + "skin": true, + "color": "09d627ff" + }, + { "name": "skirt-control-middle", "parent": "skirt-control-up", "x": -19.76, "skin": true, "color": "09d627ff" }, + { + "name": "skirt-control-back", + "parent": "skirt-rotation-back", + "rotation": 114.82, + "x": 148.43, + "y": -0.72, + "skin": true, + "color": "09d627ff" + }, + { + "name": "skirt-control-front", + "parent": "skirt-rotation-front", + "rotation": -117.4, + "x": 141.99, + "y": 2.23, + "skin": true, + "color": "09d627ff" + }, + { "name": "skirt-control-front-down", "parent": "skirt-control-front", "x": -45.51, "y": -13.62, "skin": true, "color": "09d627ff" }, + { "name": "skirt-control-back-down", "parent": "skirt-control-back", "x": -47.46, "y": 29.56, "skin": true, "color": "09d627ff" }, + { "name": "cape-red-front-inside", "parent": "body-up", "x": 32.8, "y": -12.11, "skin": true, "color": "ff539eff" }, + { + "name": "cape-front-rotator", + "parent": "arm-front-up", + "length": 47.18, + "rotation": -20.19, + "x": 4.09, + "y": -7.54, + "skin": true, + "color": "ff3eafff" + }, + { + "name": "cape-red-front-outside", + "parent": "cape-front-rotator", + "rotation": 20.19, + "x": 47.43, + "y": -0.24, + "skin": true, + "color": "ff539eff" + }, + { "name": "shouder-front-transform", "parent": "body-up", "rotation": -94.33, "x": 93.23, "y": 0.49, "color": "ffce12ff" }, + { "name": "shoulder-front", "parent": "shouder-front-transform", "x": -43.57, "y": -0.76, "color": "ffce12ff" }, + { + "name": "cape-back-rotator", + "parent": "arm-back-up", + "length": 47.3, + "rotation": 33.51, + "x": 1.09, + "y": 4.74, + "skin": true, + "color": "93006dff" + }, + { + "name": "cape-red-back-outside", + "parent": "cape-back-rotator", + "rotation": 56.49, + "x": 45.94, + "y": 0.9, + "skin": true, + "color": "93006dff" + }, + { "name": "cape-red-back-inside", "parent": "body-up", "x": 37.71, "y": -42.92, "skin": true, "color": "93006dff" }, + { "name": "shoulder-back-transform", "parent": "body-up", "rotation": -4.33, "x": 84.44, "y": -34.31, "color": "ffce12ff" }, + { "name": "shoulder-back", "parent": "shoulder-back-transform", "x": 1.09, "y": -39.44, "color": "ffce12ff" }, + { + "name": "dress-control-leg-up-back", + "parent": "skeleton-control", + "rotation": -89.47, + "x": 86.24, + "y": -100.16, + "skin": true, + "color": "ff7a45ff" + }, + { + "name": "dress-control-leg-down-back", + "parent": "skeleton-control", + "rotation": -92.95, + "x": 86.81, + "y": -134.93, + "skin": true, + "color": "ff7a45ff" + }, + { + "name": "dress-control-leg-up-front", + "parent": "skeleton-control", + "rotation": -91.9, + "x": -81.34, + "y": -100.16, + "skin": true, + "color": "ff7a45ff" + }, + { + "name": "dress-control-leg-down-front", + "parent": "skeleton-control", + "rotation": -98.06, + "x": -83.05, + "y": -132.65, + "skin": true, + "color": "ff7a45ff" + }, + { + "name": "dress-control-foot-front", + "parent": "skeleton-control", + "rotation": -98.06, + "x": -112.69, + "y": -254.06, + "skin": true, + "color": "ff7a45ff" + }, + { + "name": "dress-control-foot-back", + "parent": "skeleton-control", + "rotation": -92.95, + "x": 97.07, + "y": -251.21, + "skin": true, + "color": "ff7a45ff" + }, + { "name": "dress-control-middle", "parent": "skeleton-control", "x": -5.53, "y": -254.06, "skin": true, "color": "ff7a45ff" }, + { + "name": "sleeve-control-front", + "parent": "arm-front-up-7", + "length": 97.31, + "rotation": 90.71, + "x": 37.64, + "y": -41.32, + "skin": true, + "color": "5e0202ff" + }, + { + "name": "sleeve-control-back", + "parent": "end-arm-control-back", + "length": 97.31, + "rotation": -90, + "x": 25.63, + "y": 55.1, + "skin": true, + "color": "02045eff" + }, + { + "name": "cape-blue-up", + "parent": "body-up", + "length": 175.73, + "rotation": 177.83, + "x": 92.56, + "y": 4.87, + "skin": true, + "color": "1130ff78" + }, + { + "name": "cape-blue-down", + "parent": "cape-blue-up", + "length": 116.65, + "rotation": 0.09, + "x": 175.73, + "skin": true, + "color": "1130ff78" + }, + { "name": "cape-blue-down-middle", "parent": "cape-blue-down", "x": 168.33, "y": -1.52, "skin": true, "color": "1130ff78" }, + { "name": "cape-blue-down-front", "parent": "cape-blue-down-middle", "x": -19.01, "y": -133.73, "skin": true, "color": "1130ff78" }, + { "name": "cape-blue-down-back", "parent": "cape-blue-down-middle", "x": -10.01, "y": 121.12, "skin": true, "color": "1130ff78" }, + { "name": "cape-blue-middle-front", "parent": "cape-blue-down", "x": 41.13, "y": -101.46, "skin": true, "color": "1130ff78" }, + { "name": "cape-blue-middle-back", "parent": "cape-blue-down", "x": 33.12, "y": 96.5, "skin": true, "color": "1130ff78" }, + { + "name": "cape-blue-up-front", + "parent": "cape-front-rotator", + "rotation": 22.44, + "x": 98.31, + "y": 4.67, + "skin": true, + "color": "1130ff78" + }, + { + "name": "cape-blue-up-back", + "parent": "cape-back-rotator", + "rotation": -31.35, + "x": 69.6, + "y": -16.89, + "skin": true, + "color": "1130ff78" + }, + { + "name": "cape-blue-control", + "parent": "head", + "rotation": 2.43, + "x": 179.82, + "y": -1.71, + "skin": true, + "color": "ff11b6ff" + }, + { "name": "mouth", "parent": "features-control", "x": -0.72, "y": -41.96, "color": "258effff" } +], +"slots": [ + { "name": "sleeve-inner-back", "bone": "arm-back-down", "attachment": "sleeve-inner-back" }, + { "name": "cape-back", "bone": "body-up", "attachment": "cape-back" }, + { "name": "hand-back", "bone": "hand-back", "color": "e8d5ebff", "attachment": "hand-back-fingers" }, + { "name": "arm-back", "bone": "arm-back-up", "color": "e8d5ebff", "attachment": "arm-back" }, + { "name": "cape-up-back", "bone": "head", "attachment": "cape-up-back" }, + { "name": "leg-back", "bone": "leg-control-back", "attachment": "leg-back" }, + { "name": "backpack-up", "bone": "backpack", "attachment": "backpack-up" }, + { "name": "backpack", "bone": "backpack", "attachment": "backpack" }, + { "name": "boot-ribbon-back", "bone": "leg-back-5", "attachment": "boot-ribbon-back" }, + { "name": "leg-back-path", "bone": "leg-control-back", "attachment": "leg-back-path" }, + { "name": "hair-back", "bone": "head", "attachment": "hair-back" }, + { "name": "arm-back-path", "bone": "arm-back-control", "attachment": "arm-back-path" }, + { "name": "scarf-back", "bone": "scarf-back", "attachment": "scarf-back" }, + { "name": "backpack-pocket", "bone": "backpack", "attachment": "backpack-pocket" }, + { "name": "hair-strand-back-3", "bone": "hair-strand-back-3", "attachment": "hair-strand-back-3" }, + { "name": "hair-strand-back-2", "bone": "hair-strand-back-2", "attachment": "hair-strand-back-2" }, + { "name": "hair-strand-front-2", "bone": "hair-strand-front-2", "attachment": "hair-strand-front-2" }, + { "name": "hair-strand-front-4", "bone": "hair-strand-front-4", "attachment": "hair-strand-front-4" }, + { "name": "backpack-strap-back", "bone": "backpack", "attachment": "backpack-strap-back" }, + { "name": "neck", "bone": "neck", "attachment": "neck" }, + { "name": "leg-front", "bone": "leg-control-front", "attachment": "leg-front" }, + { "name": "boot-ribbon-front", "bone": "leg-front-5", "attachment": "boot-ribbon-front" }, + { "name": "hair-strand-front-3", "bone": "hair-strand-front-3", "attachment": "hair-strand-front-3" }, + { "name": "bag-strap-back", "bone": "bag", "attachment": "bag-strap-back" }, + { "name": "body", "bone": "body-down", "attachment": "body" }, + { "name": "hair-side-back", "bone": "hair-side-back", "attachment": "hair-side-back" }, + { "name": "base-head", "bone": "head", "attachment": "base-head" }, + { "name": "hair-patch", "bone": "head", "attachment": "hair-patch" }, + { "name": "body-dress", "bone": "hips", "attachment": "body-dress" }, + { "name": "collar", "bone": "body-up", "attachment": "collar" }, + { "name": "mouth", "bone": "mouth", "attachment": "mouth-smile" }, + { "name": "ear", "bone": "head", "attachment": "ear" }, + { "name": "eye-back-white", "bone": "eye-back", "attachment": "eye-back-white" }, + { "name": "eye-back-iris", "bone": "eye-back-iris", "attachment": "eye-back-iris" }, + { "name": "eye-back-up-eyelid-back", "bone": "eye-back-up-eyelid", "attachment": "eye-back-up-eyelid-back" }, + { "name": "underskirt", "bone": "body-up", "attachment": "underskirt" }, + { "name": "skirt", "bone": "body-up", "attachment": "skirt" }, + { "name": "bag-base", "bone": "bag", "attachment": "bag-base" }, + { "name": "eye-back-pupil", "bone": "eye-back-pupil", "attachment": "eye-back-pupil" }, + { "name": "bag-top", "bone": "bag", "attachment": "bag-top" }, + { "name": "eye-front-white", "bone": "eye-front", "attachment": "eye-front-white" }, + { "name": "eye-front-iris", "bone": "eye-front-iris", "attachment": "eye-front-iris" }, + { "name": "eye-front-pupil", "bone": "eye-front-pupil", "attachment": "eye-front-pupil" }, + { "name": "backpack-strap-front", "bone": "backpack", "attachment": "backpack-strap-front" }, + { "name": "bag-strap-front", "bone": "bag", "attachment": "bag-strap-front" }, + { "name": "body-up", "bone": "body-up", "attachment": "body-up" }, + { "name": "hand-front", "bone": "hand-front", "attachment": "hand-front-fingers" }, + { "name": "ribbon-body", "bone": "body-up", "attachment": "ribbon-body" }, + { "name": "arm-front", "bone": "arm-front-control", "attachment": "arm-front" }, + { "name": "sleeve-inner-front", "bone": "arm-front-control", "attachment": "sleeve-inner-front" }, + { "name": "sleeve-front", "bone": "arm-front-up", "attachment": "sleeve-front" }, + { "name": "cape-red-down", "bone": "body-up", "attachment": "cape-red-down" }, + { "name": "cape-red-up", "bone": "body-up", "attachment": "cape-red-up" }, + { "name": "hair-strand-back-1", "bone": "hair-strand-back-1", "attachment": "hair-strand-back-1" }, + { "name": "zip-girl", "bone": "zip-girl", "attachment": "zip-girl" }, + { "name": "hair-strand-front-1", "bone": "hair-strand-front-1", "attachment": "hair-strand-front-1" }, + { "name": "ribbon-shoulder", "bone": "body-up", "attachment": "ribbon-shoulder" }, + { "name": "zip-boy", "bone": "zip-boy", "attachment": "zip-boy" }, + { "name": "scarf", "bone": "neck", "attachment": "scarf" }, + { "name": "eye-front-up-eyelid-back", "bone": "eye-front-up-eyelid", "attachment": "eye-front-up-eyelid-back" }, + { "name": "hair-side-front", "bone": "head", "attachment": "hair-side-front" }, + { "name": "hair-side-transparent", "bone": "hair-side-front", "color": "ffffff81", "attachment": "hair-side" }, + { "name": "hair-side", "bone": "hair-side-front", "attachment": "hair-side" }, + { "name": "hair-bangs", "bone": "hair-bangs-front", "attachment": "hair-bangs" }, + { "name": "eye-back-eyebrow", "bone": "eye-back-eyebrow", "attachment": "eye-back-eyebrow" }, + { "name": "eye-front-eyebrow", "bone": "eye-front-eyebrow", "attachment": "eye-front-eyebrow" }, + { "name": "eye-back-low-eyelid", "bone": "eye-back-low-eyelid", "attachment": "eye-back-low-eyelid" }, + { "name": "nose", "bone": "head-control", "attachment": "nose" }, + { "name": "eye-back-up-eyelid", "bone": "eye-back-up-eyelid", "attachment": "eye-back-up-eyelid" }, + { "name": "eye-front-low-eyelid", "bone": "eye-front-low-eyelid", "attachment": "eye-front-low-eyelid" }, + { "name": "eye-front-up-eyelid", "bone": "eye-front-up-eyelid", "attachment": "eye-front-up-eyelid" }, + { "name": "hair-bangs-transparent", "bone": "hair-bangs-front", "color": "ffffff81", "attachment": "hair-bangs-transparent" }, + { "name": "hat", "bone": "hat-base", "attachment": "hat" }, + { "name": "pompom", "bone": "pompom-control", "attachment": "pompom" }, + { "name": "arm-front-path", "bone": "arm-front-control", "attachment": "arm-front-path" }, + { "name": "leg-front-path", "bone": "leg-control-front", "attachment": "leg-front-path" }, + { "name": "cape-blue-shoulder-back", "bone": "body-up", "attachment": "cape-blue-shoulder-back" }, + { "name": "cape-blue-shoulder-front", "bone": "body-up", "attachment": "cape-blue-shoulder-front" }, + { "name": "cape-blue-up-front", "bone": "head", "attachment": "cape-blue-up-front" }, + { "name": "cape-ribbon", "bone": "body-up", "attachment": "cape-ribbon" } +], +"ik": [ + { + "name": "foot-back", + "order": 1, + "bones": [ "leg-up-back", "leg-down-back" ], + "target": "foot-back-IK", + "bendPositive": false + }, + { + "name": "foot-front", + "bones": [ "leg-up", "leg-down" ], + "target": "foot-front-IK", + "bendPositive": false + } +], +"transform": [ + { + "name": "eye-back-pupil", + "order": 12, + "bones": [ "eye-back-iris" ], + "target": "eye-back-pupil", + "rotateMix": 0, + "translateMix": 0.4, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "eye-front-pupil", + "order": 11, + "bones": [ "eye-front-iris" ], + "target": "eye-front-pupil", + "rotateMix": 0, + "translateMix": 0.4, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "eye-transform", + "order": 7, + "bones": [ "features-control" ], + "target": "head-control", + "rotateMix": 0, + "translateMix": 0.2, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "hair-side-back", + "order": 9, + "bones": [ "hair-side-back" ], + "target": "head-back-control", + "rotation": -62.21, + "x": 132.47, + "y": 46.72, + "rotateMix": 0, + "translateMix": 0.05, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "hair-side-front-control", + "order": 8, + "bones": [ "hair-side-front" ], + "target": "head-control", + "rotation": -80.89, + "x": -102.78, + "y": 27.17, + "rotateMix": 0, + "translateMix": 0.15, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "hat-control", + "order": 10, + "skin": true, + "bones": [ "hat-control" ], + "target": "head-control", + "rotation": 95.63, + "x": -78.91, + "y": 123.01, + "shearY": -36, + "rotateMix": 0, + "translateMix": 0.6, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "head-control", + "order": 6, + "bones": [ "head-back-control" ], + "target": "head-control", + "x": -88.92, + "rotateMix": 0, + "translateMix": -1, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "leg-down-back", + "order": 18, + "skin": true, + "bones": [ "dress-control-foot-back" ], + "target": "leg-down-back", + "x": 132.85, + "y": 58.02, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "leg-down-back-up", + "order": 19, + "skin": true, + "bones": [ "dress-control-leg-down-back" ], + "target": "leg-down-back", + "x": 17.25, + "y": 41.79, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "leg-down-down", + "order": 17, + "skin": true, + "bones": [ "dress-control-foot-front" ], + "target": "leg-down", + "x": 147.87, + "y": -60.85, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "leg-down-front", + "order": 16, + "skin": true, + "bones": [ "dress-control-leg-down-front" ], + "target": "leg-down", + "x": 23.51, + "y": -48.52, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "leg-up", + "order": 15, + "skin": true, + "bones": [ "dress-control-leg-up-front" ], + "target": "leg-up", + "x": 130.03, + "y": -50.13, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "leg-up-back", + "order": 14, + "skin": true, + "bones": [ "dress-control-leg-up-back" ], + "target": "leg-up-back", + "x": 129.36, + "y": 40.42, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "shoulder-back", + "order": 22, + "bones": [ "shoulder-back-transform" ], + "target": "arm-back-up", + "rotation": 180, + "x": -14.41, + "y": -46.12, + "rotateMix": 0.18, + "translateMix": 0, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "shoulder-front", + "order": 21, + "bones": [ "shouder-front-transform" ], + "target": "arm-front-up", + "rotation": 90, + "x": -24.78, + "y": 29.54, + "rotateMix": 0.186, + "translateMix": 0, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "skirt-rotation-back", + "order": 20, + "skin": true, + "bones": [ "skirt-control-back" ], + "target": "skirt-rotation-back", + "rotation": 114.82, + "x": 148.43, + "y": -0.72, + "shearY": -36, + "translateMix": 0.7, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "skirt-rotation-front", + "order": 13, + "skin": true, + "bones": [ "skirt-control-front" ], + "target": "skirt-rotation-front", + "rotation": 242.6, + "x": 141.99, + "y": 2.23, + "shearY": -36, + "translateMix": 0.7, + "scaleMix": 0, + "shearMix": 0 + } +], +"path": [ + { + "name": "arm-back", + "order": 4, + "bones": [ "arm-back-up-2", "arm-back-up-3", "arm-back-up-4", "arm-back-up-5", "arm-back-up-6", "arm-back-up-7" ], + "target": "arm-back-path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.1667 + }, + { + "name": "arm-front", + "order": 2, + "bones": [ "arm-front-up-2", "arm-front-up-6", "arm-front-up-5", "arm-front-up-4", "arm-front-up-3", "arm-front-up-7" ], + "target": "arm-front-path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.1667 + }, + { + "name": "leg-back", + "order": 5, + "bones": [ "leg-back-8", "leg-back-7", "leg-back-6", "leg-back-5", "leg-back-4", "leg-back-3", "leg-back-2", "leg-back-1" ], + "target": "leg-back-path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.125 + }, + { + "name": "leg-front", + "order": 3, + "bones": [ "leg-front-1", "leg-front-2", "leg-front-3", "leg-front-4", "leg-front-5", "leg-front-6", "leg-front-7", "leg-front-8" ], + "target": "leg-front-path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.125 + } +], +"skins": [ + { + "name": "default", + "attachments": { + "arm-back-path": { + "arm-back-path": { + "type": "path", + "lengths": [ 199.98, 399.97 ], + "vertexCount": 6, + "vertices": [ 1, 80, -60.01, -0.11, 1, 1, 80, -0.01, 0.05, 1, 1, 80, 101.83, 0.31, 1, 1, 80, 103.15, 0.64, 1, 1, 81, 97.37, -0.61, 1, 1, 80, 259.96, -1.39, 1 ] + } + }, + "arm-front-path": { + "arm-front-path": { + "type": "path", + "lengths": [ 199.98, 399.97 ], + "vertexCount": 6, + "vertices": [ 1, 8, -60.01, -0.11, 1, 1, 8, -0.01, 0.05, 1, 1, 8, 101.83, 0.31, 1, 1, 8, 103.15, 0.64, 1, 1, 9, 97.37, -0.61, 1, 1, 8, 259.96, -1.39, 1 ] + } + }, + "leg-back-path": { + "leg-back-path": { + "type": "path", + "lengths": [ 286.77, 574.08 ], + "vertexCount": 6, + "vertices": [ 1, 92, -85.48, 1, 1, 1, 92, 0.57, 0.56, 1, 1, 92, 144.45, -0.19, 1, 1, 92, 145.16, -0.52, 1, 1, 93, 143, 0.56, 1, 1, 92, 373.43, 1.21, 1 ] + } + }, + "leg-front-path": { + "leg-front-path": { + "type": "path", + "lengths": [ 286.67, 574.82 ], + "vertexCount": 6, + "vertices": [ 1, 19, -85.48, 1, 1, 1, 19, 0.57, 0.56, 1, 1, 19, 144.45, -0.19, 1, 1, 19, 145.16, -0.52, 1, 1, 20, 143, 0.56, 1, 1, 19, 373.43, 1.21, 1 ] + } + } + } + }, + { + "name": "accessories/backpack", + "bones": [ "backpack", "backpack-control" ], + "attachments": { + "backpack": { + "backpack": { + "name": "boy/backpack", + "type": "mesh", + "uvs": [ 0.56777, 0.99667, 1, 0.92022, 0.98943, 0.32667, 0.91222, 0.0979, 0.87918, 0, 0.78253, 0, 0.24991, 0.03363, 0.11246, 0.09517, 0.03085, 0.20163, 0.02226, 0.32638, 0.04803, 0.66073, 0, 0.74057, 0, 0.8803, 0.09742, 0.96347, 0.18118, 0.96513, 0.33582, 1, 0.54199, 0.39791, 0.50334, 0.16504, 0.57206, 0.93685, 0.13608, 0.44449, 0.52372, 0.28781, 0.0781, 0.37629, 0.11031, 0.6391, 0.39913, 0.04858, 0.7798, 0.01708 ], + "triangles": [ 24, 23, 5, 5, 23, 6, 17, 23, 24, 17, 24, 3, 17, 8, 7, 6, 17, 7, 17, 6, 23, 20, 17, 3, 20, 9, 8, 20, 8, 17, 21, 9, 20, 16, 20, 2, 19, 21, 20, 16, 19, 20, 18, 16, 1, 22, 19, 16, 18, 22, 16, 18, 14, 22, 18, 15, 14, 0, 18, 1, 0, 15, 18, 24, 5, 4, 24, 4, 3, 20, 3, 2, 22, 21, 19, 10, 9, 21, 10, 21, 22, 22, 12, 11, 16, 2, 1, 10, 22, 11, 22, 14, 12, 14, 13, 12 ], + "vertices": [ 2, 56, 176.31, 109.14, 0.42, 55, 230.15, -10.16, 0.58, 1, 56, 161.95, 213.46, 1, 2, 56, -19.06, 228.58, 0.82644, 55, 34.78, 109.29, 0.17356, 2, 56, -90.51, 217.16, 0.76, 55, -36.67, 97.87, 0.24, 2, 56, -121.08, 212.27, 0.80924, 55, -67.25, 92.98, 0.19076, 2, 56, -123.31, 189.48, 0.76, 55, -69.47, 70.19, 0.24, 2, 56, -125.31, 62.84, 0.27, 55, -71.47, -56.45, 0.73, 2, 56, -109.72, 28.59, 0.6115, 55, -55.89, -90.7, 0.3885, 2, 56, -79.18, 6.18, 0.7, 55, -25.34, -113.11, 0.3, 2, 56, -41.38, 0.45, 0.69983, 55, 12.45, -118.84, 0.30017, 2, 56, 61.04, -3.39, 0.7, 55, 114.87, -122.68, 0.3, 2, 56, 84.25, -17.09, 0.7, 55, 138.09, -136.38, 0.3, 2, 56, 126.81, -21.24, 0.7, 55, 180.64, -140.53, 0.3, 2, 56, 154.38, -0.73, 0.7, 55, 208.21, -120.02, 0.3, 2, 56, 156.81, 18.98, 0.7, 55, 210.64, -100.31, 0.3, 2, 56, 170.98, 54.42, 0.63, 55, 224.82, -64.87, 0.37, 1, 55, 46.19, 1.64, 1, 1, 55, -25.63, -0.57, 1, 1, 55, 211.91, -7.36, 1, 2, 56, -2.79, 23.8, 0.64851, 55, 51.04, -95.49, 0.35149, 1, 55, 12.23, 0.59, 1, 2, 56, -24.9, 12.14, 0.7, 55, 28.94, -107.15, 0.3, 2, 56, 55.9, 11.94, 0.7, 55, 109.74, -107.35, 0.3, 1, 55, -63.49, -21.7, 1, 2, 56, -118.16, 188.33, 0.7, 55, -64.33, 69.03, 0.3 ], + "hull": 16, + "edges": [ 0, 2, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30, 34, 6, 4, 6, 32, 4, 2, 4, 36, 28, 36, 2, 38, 32, 16, 34, 32, 40, 40, 34, 18, 40, 42, 44, 46, 48, 6, 8 ], + "width": 237, + "height": 306 + } + }, + "backpack-pocket": { + "backpack-pocket": { + "name": "boy/backpack-pocket", + "type": "mesh", + "uvs": [ 0.86114, 0.35068, 1, 0.88458, 0.68875, 1, 0.18636, 1, 0, 0.70482, 0.0163, 0.4457, 0.09191, 0.41902, 0, 0.17629, 0.14203, 0, 0.57054, 0, 0.74293, 0.14141, 0.55084, 0.66994, 0.52128, 0.39897, 0.41292, 0.24068, 0.4549, 0.43438 ], + "triangles": [ 3, 11, 2, 2, 11, 1, 3, 4, 11, 14, 4, 5, 4, 14, 11, 11, 0, 1, 11, 14, 0, 5, 6, 14, 14, 12, 0, 14, 6, 12, 6, 13, 12, 6, 7, 13, 12, 10, 0, 12, 13, 10, 7, 8, 13, 13, 9, 10, 13, 8, 9 ], + "vertices": [ 2, 55, 125.55, -28.25, 0.86973, 56, 71.72, 91.05, 0.13027, 2, 55, 191.82, -25.36, 0.79774, 56, 137.99, 93.94, 0.20226, 2, 55, 203.92, -47.5, 0.88, 56, 150.09, 71.8, 0.12, 2, 55, 200.66, -81, 0.65, 56, 146.83, 38.3, 0.35, 2, 55, 163.31, -89.9, 0.65, 56, 109.48, 29.4, 0.35, 2, 55, 131.7, -85.72, 0.65, 56, 77.87, 33.58, 0.35, 2, 55, 128.92, -80.36, 0.65, 56, 75.09, 38.94, 0.35, 2, 55, 98.61, -83.6, 0.69, 56, 44.78, 35.7, 0.31, 2, 55, 77.95, -72.02, 0.65, 56, 24.12, 47.28, 0.35, 2, 55, 80.74, -43.45, 0.81, 56, 26.91, 75.85, 0.19, 2, 55, 99.17, -33.64, 0.83791, 56, 45.34, 85.66, 0.16209, 2, 55, 162.62, -52.75, 0.88, 56, 108.79, 66.55, 0.12, 2, 55, 129.26, -51.49, 0.83, 56, 75.43, 67.81, 0.17, 2, 55, 109.18, -56.83, 0.83, 56, 55.35, 62.47, 0.17, 2, 55, 133.16, -56.34, 0.88, 56, 79.33, 62.96, 0.12 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20, 24, 12, 28, 10, 28, 0 ], + "width": 67, + "height": 123 + } + }, + "backpack-strap-back": { + "backpack-strap-back": { + "name": "boy/backpack-strap-front", + "type": "mesh", + "uvs": [ 0.15746, 0.22195, 0.30944, 0.21252, 0.41799, 0.2408, 0.49615, 0.30303, 0.52654, 0.38223, 0.47878, 0.49349, 0.31812, 0.63303, 0, 0.81218, 0, 1, 0.16615, 1, 0.74365, 0.70846, 0.91733, 0.54818, 1, 0.40675, 1, 0.25401, 0.86523, 0.12201, 0.61338, 0.02395, 0.32246, 0, 0.05759, 0.02018, 0.04457, 0.17292 ], + "triangles": [ 2, 1, 16, 10, 9, 6, 6, 9, 7, 15, 2, 16, 16, 0, 17, 0, 18, 17, 16, 1, 0, 9, 8, 7, 3, 2, 15, 4, 13, 12, 3, 14, 13, 3, 15, 14, 4, 3, 13, 5, 4, 11, 11, 4, 12, 10, 5, 11, 10, 6, 5 ], + "vertices": [ 2, 55, 44.79, 75.8, 0.174, 56, -9.04, 195.1, 0.826, 2, 55, 49.06, 136.63, 0.56071, 56, -4.77, 255.93, 0.43929, 2, 55, 57.59, 153.08, 0.37, 79, -3.48, -14.15, 0.63, 1, 79, 4.79, -23.1, 1, 1, 79, 7.1, -36.96, 1, 2, 55, 100.34, 155.9, 0.19, 79, 3.47, -56.43, 0.81, 3, 55, 128.1, 112.78, 0.27, 79, -36.75, -88.24, 0.46366, 56, 74.27, 232.08, 0.26634, 2, 55, 144.33, 78.25, 0.1, 56, 90.51, 197.55, 0.9, 2, 55, 177.04, 75.06, 0.1, 56, 123.22, 194.36, 0.9, 2, 55, 178.27, 87.63, 0.1, 56, 124.44, 206.93, 0.9, 3, 55, 151.86, 136.31, 0.27, 79, -11.02, -109.61, 0.48185, 56, 98.04, 255.61, 0.24815, 2, 55, 113.1, 188.14, 0.15, 79, 36.8, -66, 0.85, 2, 55, 89.07, 196.79, 0.04, 79, 43.08, -41.25, 0.96, 1, 79, 43.08, -14.52, 1, 1, 79, 32.84, 8.58, 1, 3, 55, 18.46, 162.82, 0.5, 79, 2.42, 25.74, 0.00271, 56, -35.37, 282.12, 0.49729, 2, 55, 7.35, 92.05, 0.174, 56, -46.48, 211.35, 0.826, 2, 55, 8.91, 71.67, 0.174, 56, -44.92, 190.97, 0.826, 2, 55, 35.42, 68.1, 0.174, 56, -18.41, 187.39, 0.826 ], + "hull": 19, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 0, 36, 6, 26, 10, 22 ], + "width": 76, + "height": 175 + } + }, + "backpack-strap-front": { + "backpack-strap-front": { + "name": "boy/backpack-strap-front", + "type": "mesh", + "uvs": [ 0.15746, 0.22195, 0.30944, 0.21252, 0.41799, 0.2408, 0.49615, 0.30303, 0.52654, 0.38223, 0.47878, 0.49349, 0.31812, 0.63303, 0, 0.81218, 0, 1, 0.16615, 1, 0.74365, 0.70846, 0.91733, 0.54818, 1, 0.40675, 1, 0.25401, 0.86523, 0.12201, 0.61338, 0.02395, 0.32246, 0, 0.05759, 0.02018, 0.04457, 0.17292 ], + "triangles": [ 10, 6, 5, 10, 5, 11, 5, 4, 11, 11, 4, 12, 4, 13, 12, 4, 3, 13, 3, 14, 13, 3, 15, 14, 3, 2, 15, 15, 2, 16, 10, 9, 6, 9, 8, 7, 16, 1, 0, 0, 18, 17, 16, 0, 17, 6, 9, 7, 2, 1, 16 ], + "vertices": [ 1, 55, 36.1, 23.68, 1, 2, 55, 35.58, 35.33, 0.91, 7, -7.77, -3.67, 0.09, 2, 55, 41.31, 43.06, 0.37, 7, 0.48, -8.62, 0.63, 1, 7, 6.42, -19.51, 1, 2, 55, 66.74, 48.87, 0.04, 7, 8.73, -33.37, 0.96, 2, 55, 85.77, 43.37, 0.19, 7, 5.1, -52.84, 0.81, 2, 55, 108.89, 28.85, 0.48, 7, -7.11, -77.26, 0.52, 1, 55, 137.75, 1.75, 1, 1, 55, 170.46, -1.44, 1, 1, 55, 171.69, 11.13, 1, 2, 55, 125.16, 59.76, 0.42, 7, 25.23, -90.46, 0.58, 2, 55, 98.53, 75.62, 0.15, 7, 38.43, -62.41, 0.85, 2, 55, 74.5, 84.27, 0.04, 7, 44.71, -37.66, 0.96, 1, 7, 44.71, -10.93, 1, 1, 7, 34.47, 12.17, 1, 2, 55, 4.98, 61.52, 0.09, 7, 15.33, 29.33, 0.91, 2, 55, -1.34, 39.92, 0.96, 7, -6.78, 33.52, 0.04, 1, 55, 0.22, 19.55, 1, 1, 55, 26.73, 15.97, 1 ], + "hull": 19, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 0, 36, 6, 26, 10, 22 ], + "width": 76, + "height": 175 + } + }, + "backpack-up": { + "backpack-up": { + "name": "boy/backpack-up", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 56, -112.01, 144.15, 0.96, 55, -137.28, 27.99, 0.04, 2, 56, -103.52, 189.83, 0.81, 55, -128.79, 73.67, 0.19, 2, 56, -49.76, 82.9, 0.17, 55, -75.03, -33.27, 0.83, 2, 56, -74.02, 32.48, 0.58, 55, -99.3, -83.68, 0.42 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 42, + "height": 139 + } + }, + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "accessories/bag", + "bones": [ "bag", "bag-back-down", "bag-back-front", "bag-control", "bag-flap", "bag-strap-back", "bag-strap-front" ], + "attachments": { + "bag-base": { + "bag-base": { + "name": "girl/bag-base", + "type": "mesh", + "uvs": [ 0.83893, 0.8993, 0.6302, 1, 0.16529, 0.94665, 0.01981, 0.72002, 0, 0.45956, 0.05144, 0.21601, 0.15581, 0, 0.8073, 0.02997, 0.95278, 0.23969, 1, 0.45956, 1, 0.68619, 0.61122, 0.80458, 0.56694, 0.49338, 0.67131, 0.22616 ], + "triangles": [ 13, 5, 6, 13, 6, 7, 2, 11, 1, 8, 9, 13, 10, 11, 9, 12, 5, 13, 12, 9, 11, 3, 12, 11, 13, 9, 12, 0, 11, 10, 1, 11, 0, 13, 7, 8, 4, 5, 12, 3, 4, 12, 2, 3, 11 ], + "vertices": [ 2, 57, -24.02, 97.1, 0.4359, 58, -108.39, 43.99, 0.5641, 2, 57, 0.18, 111.52, 0.48095, 58, -84.2, 58.41, 0.51905, 2, 57, 57.69, 111.91, 0.16986, 58, -26.69, 58.81, 0.83014, 2, 57, 78.42, 88.05, 0.54, 58, -5.95, 34.95, 0.46, 2, 57, 84.25, 58.57, 0.53182, 58, -0.13, 5.47, 0.46818, 2, 57, 81.14, 30.02, 0.39, 58, -3.24, -23.08, 0.61, 1, 58, -13.17, -49.22, 1, 2, 57, -8.8, -1.79, 0.37, 58, -93.18, -54.89, 0.63, 2, 57, -29.32, 20.14, 0.51747, 58, -113.69, -32.96, 0.48253, 2, 57, -37.96, 44.6, 0.46, 58, -122.33, -8.5, 0.54, 2, 57, -40.92, 70.5, 0.46, 58, -125.29, 17.39, 0.54, 2, 57, 5.05, 89.45, 0.96, 58, -79.33, 36.35, 0.04, 1, 57, 14.52, 54.52, 1, 2, 57, 5.26, 22.53, 0.92, 58, -79.12, -30.58, 0.08 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20, 24, 26, 22, 6 ], + "width": 123, + "height": 115 + } + }, + "bag-strap-back": { + "bag-strap-back": { + "name": "girl/bag-strap-front", + "type": "mesh", + "uvs": [ 0.10329, 0.09701, 0.09625, 0.16933, 0.0882, 0.24002, 0.07824, 0.30385, 0.06981, 0.37343, 0.06125, 0.44416, 0.05318, 0.51073, 0.04445, 0.58281, 0.03622, 0.65075, 0.02694, 0.72743, 0.01818, 0.7997, 0.00877, 0.87745, 0, 0.94985, 0.49463, 0.9881, 1, 0.94985, 0.9924, 0.87902, 0.98374, 0.79824, 0.97585, 0.72459, 0.96826, 0.65383, 0.96097, 0.58591, 0.95321, 0.51354, 0.94607, 0.44688, 0.93834, 0.37479, 0.93057, 0.30235, 0.92162, 0.23729, 0.91478, 0.1693, 0.90826, 0.09429, 0.90262, 0.04177, 0.68729, 0.00493, 0.50446, 0.00754, 0.29063, 0.0106, 0.10929, 0.04743, 0.49571, 0.88043, 0.49652, 0.79968, 0.49725, 0.72601, 0.49799, 0.65234, 0.49866, 0.58577, 0.49938, 0.51352, 0.50005, 0.44693, 0.50078, 0.3747, 0.50147, 0.30525, 0.50233, 0.23869, 0.50296, 0.17069, 0.50358, 0.09559 ], + "triangles": [ 36, 6, 37, 7, 6, 36, 36, 37, 20, 19, 36, 20, 35, 7, 36, 8, 7, 35, 35, 36, 19, 18, 35, 19, 34, 8, 35, 34, 35, 18, 34, 18, 17, 9, 8, 34, 33, 9, 34, 33, 34, 17, 33, 17, 16, 10, 9, 33, 32, 10, 33, 11, 10, 32, 32, 33, 16, 32, 16, 15, 13, 11, 32, 12, 11, 13, 13, 32, 15, 13, 15, 14, 43, 30, 29, 43, 29, 28, 26, 43, 28, 26, 28, 27, 0, 31, 30, 0, 30, 43, 42, 0, 43, 1, 0, 42, 42, 43, 26, 42, 26, 25, 41, 1, 42, 41, 42, 25, 41, 25, 24, 2, 1, 41, 40, 2, 41, 3, 2, 40, 40, 41, 24, 40, 24, 23, 39, 3, 40, 4, 3, 39, 39, 40, 23, 22, 39, 23, 38, 4, 39, 5, 4, 38, 38, 39, 22, 38, 22, 21, 37, 5, 38, 6, 5, 37, 37, 38, 21, 20, 37, 21 ], + "vertices": [ 2, 61, -9.66, -6.38, 0.99238, 62, -9.66, 163.86, 0.00762, 2, 61, -9.83, -20.27, 0.95187, 62, -9.83, 149.97, 0.04813, 2, 61, -10.03, -33.84, 0.88337, 62, -10.03, 136.4, 0.11663, 2, 61, -10.27, -46.1, 0.80311, 62, -10.27, 124.14, 0.19689, 2, 61, -10.47, -59.46, 0.70151, 62, -10.47, 110.78, 0.29849, 2, 61, -10.67, -73.04, 0.58865, 62, -10.67, 97.2, 0.41135, 2, 61, -10.87, -85.82, 0.47894, 62, -10.87, 84.42, 0.52106, 2, 61, -11.08, -99.66, 0.36197, 62, -11.08, 70.58, 0.63803, 2, 61, -11.27, -112.7, 0.25859, 62, -11.27, 57.54, 0.74141, 2, 61, -11.5, -127.42, 0.15597, 62, -11.5, 42.82, 0.84403, 2, 61, -11.71, -141.3, 0.07856, 62, -11.71, 28.94, 0.92144, 2, 61, -11.93, -156.23, 0.02246, 62, -11.93, 14.01, 0.97754, 2, 61, -12.14, -170.13, 0.00178, 62, -12.14, 0.11, 0.99822, 1, 62, -0.27, -7.23, 1, 2, 61, 11.86, -170.13, 0.00175, 62, 11.86, 0.11, 0.99825, 2, 61, 11.67, -156.53, 0.0217, 62, 11.67, 13.71, 0.9783, 2, 61, 11.47, -141.02, 0.07999, 62, 11.47, 29.22, 0.92001, 2, 61, 11.28, -126.88, 0.15955, 62, 11.28, 43.36, 0.84045, 2, 61, 11.1, -113.29, 0.25429, 62, 11.1, 56.95, 0.74571, 2, 61, 10.92, -100.25, 0.35721, 62, 10.92, 69.99, 0.64279, 2, 61, 10.73, -86.36, 0.47445, 62, 10.73, 83.88, 0.52555, 2, 61, 10.56, -73.56, 0.58435, 62, 10.56, 96.68, 0.41565, 2, 61, 10.38, -59.72, 0.69956, 62, 10.38, 110.52, 0.30044, 2, 61, 10.19, -45.81, 0.80529, 62, 10.19, 124.43, 0.19471, 2, 61, 9.98, -33.32, 0.88656, 62, 9.98, 136.92, 0.11344, 2, 61, 9.81, -20.26, 0.95193, 62, 9.81, 149.98, 0.04807, 2, 61, 9.66, -5.86, 0.99321, 62, 9.66, 164.38, 0.00679, 2, 61, 9.52, 4.22, 0.99996, 62, 9.52, 174.46, 4.0E-5, 1, 61, 4.35, 11.3, 1, 1, 61, -0.04, 10.79, 1, 1, 61, -5.17, 10.21, 1, 2, 61, -9.52, 3.14, 0.99986, 62, -9.52, 173.38, 1.4E-4, 2, 61, -0.25, -156.8, 0.02105, 62, -0.25, 13.44, 0.97895, 2, 61, -0.23, -141.3, 0.07899, 62, -0.23, 28.94, 0.92101, 2, 61, -0.21, -127.15, 0.15826, 62, -0.21, 43.09, 0.84174, 2, 61, -0.19, -113.01, 0.25696, 62, -0.19, 57.23, 0.74304, 2, 61, -0.18, -100.22, 0.35801, 62, -0.18, 70.02, 0.64199, 2, 61, -0.16, -86.35, 0.47508, 62, -0.16, 83.89, 0.52492, 2, 61, -0.14, -73.57, 0.58483, 62, -0.14, 96.67, 0.41517, 2, 61, -0.12, -59.7, 0.70022, 62, -0.12, 110.54, 0.29978, 2, 61, -0.11, -46.37, 0.80185, 62, -0.11, 123.87, 0.19815, 2, 61, -0.09, -33.59, 0.88541, 62, -0.09, 136.65, 0.11459, 2, 61, -0.07, -20.53, 0.95108, 62, -0.07, 149.71, 0.04892, 2, 61, -0.06, -6.11, 0.9934, 62, -0.06, 164.13, 0.0066 ], + "hull": 32, + "edges": [ 24, 26, 26, 28, 54, 56, 60, 62, 56, 58, 58, 60, 24, 22, 26, 64, 22, 64, 28, 30, 64, 30, 22, 20, 66, 64, 20, 66, 30, 32, 66, 32, 20, 18, 68, 66, 18, 68, 32, 34, 68, 34, 18, 16, 70, 68, 16, 70, 34, 36, 70, 36, 16, 14, 72, 70, 14, 72, 36, 38, 72, 38, 38, 40, 74, 72, 40, 74, 14, 12, 74, 12, 12, 10, 76, 74, 10, 76, 40, 42, 76, 42, 10, 8, 78, 76, 8, 78, 42, 44, 78, 44, 8, 6, 80, 78, 6, 80, 44, 46, 80, 46, 6, 4, 82, 80, 4, 82, 46, 48, 82, 48, 4, 2, 84, 82, 2, 84, 48, 50, 84, 50, 2, 0, 0, 62, 58, 86, 86, 84, 0, 86, 50, 52, 52, 54, 86, 52 ], + "width": 24, + "height": 192 + } + }, + "bag-strap-front": { + "bag-strap-front": { + "name": "girl/bag-strap-front", + "type": "mesh", + "uvs": [ 0.10329, 0.09701, 0.09625, 0.16933, 0.0882, 0.24002, 0.07824, 0.30385, 0.06981, 0.37343, 0.06125, 0.44416, 0.05318, 0.51073, 0.04445, 0.58281, 0.03622, 0.65075, 0.02694, 0.72743, 0.01818, 0.7997, 0.00877, 0.87745, 0, 0.94985, 0.49463, 0.9881, 1, 0.94985, 0.9924, 0.87902, 0.98374, 0.79824, 0.97585, 0.72459, 0.96826, 0.65383, 0.96097, 0.58591, 0.95321, 0.51354, 0.94607, 0.44688, 0.93834, 0.37479, 0.93057, 0.30235, 0.92162, 0.23729, 0.91478, 0.1693, 0.90826, 0.09429, 0.90262, 0.04177, 0.68729, 0.00493, 0.50446, 0.00754, 0.29063, 0.0106, 0.10929, 0.04743, 0.49571, 0.88043, 0.49652, 0.79968, 0.49725, 0.72601, 0.49799, 0.65234, 0.49866, 0.58577, 0.49938, 0.51352, 0.50005, 0.44693, 0.50078, 0.3747, 0.50147, 0.30525, 0.50233, 0.23869, 0.50296, 0.17069, 0.50358, 0.09559 ], + "triangles": [ 36, 6, 37, 7, 6, 36, 36, 37, 20, 19, 36, 20, 35, 7, 36, 8, 7, 35, 35, 36, 19, 18, 35, 19, 34, 8, 35, 34, 35, 18, 34, 18, 17, 9, 8, 34, 33, 9, 34, 33, 34, 17, 33, 17, 16, 10, 9, 33, 32, 10, 33, 11, 10, 32, 32, 33, 16, 32, 16, 15, 13, 11, 32, 12, 11, 13, 13, 32, 15, 13, 15, 14, 43, 30, 29, 43, 29, 28, 26, 43, 28, 26, 28, 27, 0, 31, 30, 0, 30, 43, 42, 0, 43, 1, 0, 42, 42, 43, 26, 42, 26, 25, 41, 1, 42, 41, 42, 25, 41, 25, 24, 2, 1, 41, 40, 2, 41, 3, 2, 40, 40, 41, 24, 40, 24, 23, 39, 3, 40, 4, 3, 39, 39, 40, 23, 22, 39, 23, 38, 4, 39, 5, 4, 38, 38, 39, 22, 38, 22, 21, 37, 5, 38, 6, 5, 37, 37, 38, 21, 20, 37, 21 ], + "vertices": [ 2, 63, -8.77, -6.38, 0.99173, 64, -8.77, 163.86, 0.00827, 2, 63, -8.94, -20.27, 0.94988, 64, -8.94, 149.97, 0.05012, 2, 63, -9.13, -33.84, 0.8807, 64, -9.13, 136.4, 0.1193, 2, 63, -9.37, -46.1, 0.8002, 64, -9.37, 124.14, 0.1998, 2, 63, -9.57, -59.46, 0.69863, 64, -9.57, 110.78, 0.30137, 2, 63, -9.78, -73.04, 0.58605, 64, -9.78, 97.2, 0.41395, 2, 63, -9.97, -85.82, 0.47675, 64, -9.97, 84.42, 0.52325, 2, 63, -10.18, -99.66, 0.36031, 64, -10.18, 70.58, 0.63969, 2, 63, -10.38, -112.7, 0.25746, 64, -10.38, 57.54, 0.74254, 2, 63, -10.6, -127.42, 0.1554, 64, -10.6, 42.82, 0.8446, 2, 63, -10.81, -141.3, 0.07837, 64, -10.81, 28.94, 0.92163, 2, 63, -11.04, -156.23, 0.02242, 64, -11.04, 14.01, 0.97758, 2, 63, -11.25, -170.13, 0.00161, 64, -11.25, 0.11, 0.99839, 1, 64, 0.62, -7.23, 1, 2, 63, 12.75, -170.13, 0.00201, 64, 12.75, 0.11, 0.99799, 2, 63, 12.57, -156.53, 0.02191, 64, 12.57, 13.71, 0.97809, 2, 63, 12.36, -141.02, 0.07986, 64, 12.36, 29.22, 0.92014, 2, 63, 12.17, -126.88, 0.15897, 64, 12.17, 43.36, 0.84103, 2, 63, 11.99, -113.29, 0.25319, 64, 11.99, 56.95, 0.74681, 2, 63, 11.82, -100.25, 0.35558, 64, 11.82, 69.99, 0.64442, 2, 63, 11.63, -86.36, 0.47228, 64, 11.63, 83.88, 0.52772, 2, 63, 11.46, -73.56, 0.58177, 64, 11.46, 96.68, 0.41823, 2, 63, 11.27, -59.72, 0.69669, 64, 11.27, 110.52, 0.30331, 2, 63, 11.09, -45.81, 0.80238, 64, 11.09, 124.43, 0.19762, 2, 63, 10.87, -33.32, 0.88388, 64, 10.87, 136.92, 0.11612, 2, 63, 10.71, -20.26, 0.94981, 64, 10.71, 149.98, 0.05019, 2, 63, 10.55, -5.86, 0.9921, 64, 10.55, 164.38, 0.0079, 2, 63, 10.42, 4.22, 0.99987, 64, 10.42, 174.46, 1.3E-4, 1, 63, 5.25, 11.3, 1, 1, 63, 0.86, 10.79, 1, 1, 63, -4.27, 10.21, 1, 2, 63, -8.62, 3.14, 0.99986, 64, -8.62, 173.38, 1.4E-4, 2, 63, 0.65, -156.8, 0.02114, 64, 0.65, 13.44, 0.97886, 2, 63, 0.67, -141.3, 0.07883, 64, 0.67, 28.94, 0.92117, 2, 63, 0.69, -127.15, 0.15769, 64, 0.69, 43.09, 0.84231, 2, 63, 0.71, -113.01, 0.25584, 64, 0.71, 57.23, 0.74416, 2, 63, 0.72, -100.22, 0.35637, 64, 0.72, 70.02, 0.64363, 2, 63, 0.74, -86.35, 0.4729, 64, 0.74, 83.89, 0.5271, 2, 63, 0.75, -73.57, 0.58224, 64, 0.75, 96.67, 0.41776, 2, 63, 0.77, -59.7, 0.69735, 64, 0.77, 110.54, 0.30265, 2, 63, 0.79, -46.37, 0.79894, 64, 0.79, 123.87, 0.20106, 2, 63, 0.81, -33.59, 0.88274, 64, 0.81, 136.65, 0.11726, 2, 63, 0.82, -20.53, 0.94901, 64, 0.82, 149.71, 0.05099, 2, 63, 0.84, -6.11, 0.99248, 64, 0.84, 164.13, 0.00752 ], + "hull": 32, + "edges": [ 24, 26, 26, 28, 54, 56, 60, 62, 56, 58, 58, 60, 24, 22, 26, 64, 22, 64, 28, 30, 64, 30, 22, 20, 66, 64, 20, 66, 30, 32, 66, 32, 20, 18, 68, 66, 18, 68, 32, 34, 68, 34, 18, 16, 70, 68, 16, 70, 34, 36, 70, 36, 16, 14, 72, 70, 14, 72, 36, 38, 72, 38, 38, 40, 74, 72, 40, 74, 14, 12, 74, 12, 12, 10, 76, 74, 10, 76, 40, 42, 76, 42, 10, 8, 78, 76, 8, 78, 42, 44, 78, 44, 8, 6, 80, 78, 6, 80, 44, 46, 80, 46, 6, 4, 82, 80, 4, 82, 46, 48, 82, 48, 4, 2, 84, 82, 2, 84, 48, 50, 84, 50, 2, 0, 0, 62, 58, 86, 86, 84, 0, 86, 50, 52, 52, 54, 86, 52 ], + "width": 24, + "height": 192 + } + }, + "bag-top": { + "bag-top": { + "name": "girl/bag-top", + "type": "mesh", + "uvs": [ 1, 0.14894, 0.84966, 0.28898, 0.7266, 0.46792, 0.65912, 0.72077, 0.65516, 0.89193, 0.50829, 1, 0.17883, 0.94639, 0.03593, 0.81802, 0.01211, 0.59629, 0, 0.33955, 0.11532, 0.13338, 0.28203, 0, 1, 0.07114 ], + "triangles": [ 10, 11, 1, 1, 11, 12, 3, 8, 2, 2, 9, 10, 2, 8, 9, 2, 10, 1, 0, 1, 12, 5, 6, 4, 6, 7, 4, 4, 7, 3, 7, 8, 3 ], + "vertices": [ 2, 57, -5.42, 3.3, 0.41, 58, -89.79, -49.81, 0.59, 3, 59, -13.49, -71.44, 0.03398, 57, 7.63, 18.88, 0.85009, 58, -76.74, -34.22, 0.11592, 3, 59, -4.05, -52.04, 0.16652, 57, 17.58, 38.03, 0.80014, 58, -66.8, -15.07, 0.03334, 3, 59, -1.04, -26.07, 0.43064, 57, 21.28, 63.9, 0.54658, 58, -63.1, 10.8, 0.02277, 3, 59, -3.04, -9.07, 0.70704, 57, 19.72, 80.95, 0.28124, 58, -64.65, 27.85, 0.01172, 1, 59, 9.7, 3.64, 1, 3, 59, 42.42, 2.84, 0.93871, 57, 65.48, 91.66, 0.04781, 58, -18.89, 38.56, 0.01348, 3, 59, 58.08, -7.91, 0.78056, 57, 80.85, 80.5, 0.08, 58, -3.52, 27.4, 0.13944, 3, 59, 63.49, -29.54, 0.29048, 57, 85.69, 58.73, 0.39733, 58, 1.31, 5.63, 0.31219, 3, 59, 68.25, -54.8, 0.05104, 57, 89.78, 33.36, 0.53142, 58, 5.41, -19.74, 0.41754, 2, 57, 80.9, 11.59, 0.38, 58, -3.48, -41.51, 0.62, 1, 58, -18.2, -56.62, 1, 2, 57, -4.53, -4.43, 0.41, 58, -88.91, -57.54, 0.59 ], + "hull": 13, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24, 2, 20, 8, 14 ], + "width": 98, + "height": 100 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "hair/blue", + "attachments": { + "ear": { + "ear": { "name": "girl/ear", "x": 56.58, "y": 85.63, "rotation": -87.57, "width": 38, "height": 45 } + }, + "eye-back-eyebrow": { + "eye-back-eyebrow": { "name": "girl/back-eyebrow", "x": 15.6, "y": -9.48, "rotation": -177.9, "width": 36, "height": 23 } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { "name": "girl/front-eyebrow", "x": 10.82, "y": 8.92, "rotation": -3.58, "width": 36, "height": 23 } + }, + "hair-back": { + "hair-back": { + "name": "girl/hair-back", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 6, -3.46, -135.36, 0.71, 30, 189.29, -78.03, 0.29, 2, 6, -15.93, 158.38, 0.71, 30, -104.71, -78.03, 0.29, 2, 6, 168.91, 166.22, 0.71, 30, -104.71, 106.97, 0.29, 2, 6, 181.37, -127.51, 0.71, 30, 189.29, 106.97, 0.29 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 294, + "height": 185 + } + }, + "hair-bangs": { + "hair-bangs": { + "name": "girl/hair-bangs", + "type": "mesh", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "girl/hair-bangs", + "type": "mesh", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch", + "type": "mesh", + "color": "71ffe7ff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-side-back": { + "hair-side-back": { + "name": "girl/hair-head-side-back", + "type": "mesh", + "uvs": [ 0.17374, 0.1545, 0.22967, 0.37557, 0.21289, 0.61586, 0, 0.86256, 0, 1, 0.25205, 1, 0.45899, 0.87537, 0.69391, 0.87858, 0.80577, 0.69916, 0.82815, 0.52615, 1, 0.46528, 0.99594, 0.21858, 0.73306, 0.04236, 0.53171, 0, 0.27442, 0.04877, 0.51493, 0.5678, 0.59323, 0.17692, 0.73306, 0.35954, 0.46459, 0.76964 ], + "triangles": [ 17, 11, 10, 15, 1, 16, 16, 14, 13, 14, 16, 1, 1, 0, 14, 16, 12, 17, 17, 12, 11, 16, 13, 12, 15, 16, 17, 2, 1, 15, 5, 18, 6, 5, 4, 3, 6, 18, 7, 7, 18, 8, 5, 3, 2, 18, 5, 2, 18, 15, 8, 18, 2, 15, 8, 15, 9, 9, 17, 10, 15, 17, 9 ], + "vertices": [ 2, 47, 44.16, -9.72, 0.072, 6, 75.71, -87.13, 0.928, 2, 47, 65.84, -17.42, 0.21564, 6, 53.1, -91.39, 0.78436, 2, 47, 87.28, -29.83, 0.5439, 6, 28.33, -91.45, 0.4561, 3, 47, 103.9, -52.79, 0.8752, 6, 2.41, -79.98, 0.09988, 30, 134.21, -69.81, 0.02493, 3, 47, 116.42, -59.39, 0.89423, 6, -11.73, -80.58, 0.014, 30, 134.21, -83.97, 0.09177, 3, 47, 123.36, -46.24, 0.87011, 6, -11.1, -95.43, 0.00989, 30, 149.08, -83.97, 0.12, 3, 47, 117.69, -29.45, 0.77082, 6, 2.24, -107.09, 0.0941, 30, 161.29, -71.13, 0.13508, 3, 47, 124.45, -17.35, 0.86922, 6, 2.5, -120.95, 0.00701, 30, 175.15, -71.46, 0.12377, 3, 47, 111.18, -2.89, 0.73582, 6, 21.24, -126.76, 0.12392, 30, 181.75, -52.98, 0.14026, 3, 47, 96.03, 6.59, 0.55463, 6, 39.1, -127.33, 0.32878, 30, 183.07, -35.16, 0.11659, 3, 47, 95.21, 18.48, 0.54495, 6, 45.79, -137.19, 0.37264, 30, 193.21, -28.89, 0.08241, 2, 47, 72.62, 30.12, 0.39164, 6, 71.17, -135.87, 0.60836, 2, 47, 49.33, 24.86, 0.13442, 6, 88.65, -119.61, 0.86558, 2, 47, 39.93, 16.38, 0.03367, 6, 92.5, -107.55, 0.96633, 2, 47, 37.3, 0.61, 0.176, 6, 86.84, -92.6, 0.824, 3, 47, 91.21, -11.76, 0.52, 6, 34.03, -109.04, 0.39641, 30, 164.59, -39.45, 0.08358, 2, 47, 57.74, 11.1, 0.24029, 6, 74.45, -111.95, 0.75971, 3, 47, 78.23, 9.62, 0.39663, 6, 56.01, -120.99, 0.565, 30, 177.46, -18, 0.03837, 3, 47, 108.21, -24.08, 0.64328, 6, 13.13, -106.96, 0.22492, 30, 161.62, -60.24, 0.1318 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 59, + "height": 103 + } + }, + "hair-side-front": { + "hair-side-front": { + "name": "girl/hair-head-side-front", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 6, 5.69, 38.25, 1, 1, 6, 2.21, 120.17, 1, 1, 6, 85.14, 123.69, 1, 1, 6, 88.61, 41.77, 1 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 82, + "height": 83 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "legs/boots-pink", + "attachments": { + "leg-back": { + "leg-back": { + "name": "girl/leg-front", + "type": "mesh", + "path": "girl-blue-cape/leg-front", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 0, 48, 42, 42, 48, 31, 42, 31, 33, 34, 0, 42, 34, 42, 33, 31, 32, 33, 31, 48, 30, 41, 12, 13, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48 ], + "vertices": [ 3, 94, 22.95, -22.02, 0.22728, 95, 59.29, -22, 0.00272, 103, -19.33, 11.79, 0.77, 3, 94, 5.73, -22.61, 0.49142, 95, 41.79, -22.61, 0.23858, 103, -19.74, 29.07, 0.27, 4, 94, -10.55, -23.17, 0.11127, 95, 25.25, -23.18, 0.76279, 96, 60.87, -23.13, 0.00594, 103, -20.15, 45.45, 0.12, 2, 95, 5.13, -23.87, 0.69465, 96, 41.05, -23.86, 0.30535, 3, 95, -15.89, -24.56, 0.09408, 96, 20.35, -24.59, 0.86299, 97, 56.72, -24.52, 0.04292, 2, 96, 1.98, -25.21, 0.55425, 97, 38.06, -25.21, 0.44575, 3, 96, -19.09, -25.88, 0.05256, 97, 16.64, -25.95, 0.87891, 98, 52.7, -25.89, 0.06853, 3, 96, -33.74, -26.34, 3.3E-4, 97, 1.76, -26.46, 0.67227, 98, 37.81, -26.45, 0.32739, 2, 97, -3.17, -22.02, 0.47188, 98, 32.86, -22.03, 0.52812, 3, 97, -22.68, -22.46, 0.0172, 98, 13.36, -22.55, 0.87617, 99, 49.14, -22.52, 0.10662, 3, 98, -7.93, -23.09, 0.23789, 99, 28.2, -23.11, 0.75909, 100, 64.58, -23.1, 0.00302, 3, 98, -27.79, -23.57, 0.00312, 99, 8.67, -23.62, 0.75495, 100, 44.76, -23.62, 0.24193, 3, 99, -12.93, -24.2, 0.09944, 100, 22.84, -24.2, 0.87238, 101, 58.46, -24.21, 0.02818, 2, 100, 0.77, -24.79, 0.47358, 101, 36.71, -24.79, 0.52642, 1, 101, 1.72, -25.72, 1, 1, 101, -25.98, -26.46, 1, 1, 101, -26.33, 25.98, 1, 1, 101, -0.53, 25.24, 1, 2, 100, -3.13, 24.27, 0.37555, 101, 32.87, 24.27, 0.62445, 3, 99, -15.75, 23.6, 0.0536, 100, 19.96, 23.6, 0.92085, 101, 55.62, 23.59, 0.02556, 2, 99, 5.77, 22.96, 0.65378, 100, 41.79, 22.97, 0.34622, 3, 98, -11.12, 22.43, 0.12254, 99, 24.96, 22.4, 0.86248, 100, 61.27, 22.42, 0.01499, 3, 97, -26.03, 21.9, 0.00839, 98, 9.83, 21.8, 0.78745, 99, 45.58, 21.82, 0.20415, 3, 97, -7.13, 21.27, 0.362, 98, 28.73, 21.24, 0.63637, 99, 64.17, 21.3, 0.00163, 2, 97, -6.17, 28.11, 0.5025, 98, 29.67, 28.08, 0.4975, 3, 96, -21.38, 27.22, 0.03848, 97, 14.13, 27.14, 0.83871, 98, 49.97, 27.2, 0.12281, 3, 96, -2.33, 26.26, 0.40865, 97, 33.49, 26.25, 0.59016, 98, 69.34, 26.38, 0.00119, 3, 95, -20.14, 25.43, 0.05003, 96, 16.06, 25.39, 0.84798, 97, 52.19, 25.45, 0.10198, 2, 95, 1.24, 24.42, 0.56331, 96, 37.12, 24.42, 0.43669, 4, 94, -15.67, 23.56, 0.04308, 95, 20, 23.55, 0.81142, 96, 55.61, 23.58, 0.0255, 103, 26.63, 50.22, 0.12, 3, 94, 0.26, 22.8, 0.33337, 95, 36.2, 22.8, 0.39663, 103, 25.72, 34.13, 0.27, 3, 94, 18.48, 21.95, 0.22212, 95, 54.71, 21.97, 0.00788, 103, 24.69, 15.83, 0.77, 1, 103, 36.21, 8.95, 1, 1, 103, 36.08, -3.91, 1, 1, 103, -18.97, -3.34, 1, 1, 101, 0.45, 0, 1, 1, 98, 31.4, 0, 1, 1, 98, 11.41, 0, 1, 1, 99, 26.57, 0, 1, 1, 99, 7.43, 0, 1, 1, 100, 20.94, 0, 1, 1, 101, 34.45, 0, 1, 2, 94, 23.32, 0.24, 0.23, 103, 2.93, 11.2, 0.77, 1, 97, 15.67, 0.04, 1, 2, 96, -0.81, 0.07, 0.36735, 97, 35.13, 0.07, 0.63265, 1, 96, 18, 0.1, 1, 2, 95, 2.51, 0.14, 0.90776, 96, 38.42, 0.14, 0.09224, 2, 95, 22.3, 0.17, 0.88, 103, 3.23, 48.15, 0.12, 3, 94, 2.19, 0.2, 0.62933, 95, 38.18, 0.2, 0.10067, 103, 3.11, 32.41, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "leg-front": { + "leg-front": { + "name": "girl/leg-front", + "type": "mesh", + "path": "girl-blue-cape/leg-front", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 31, 48, 30, 0, 48, 42, 42, 48, 31, 34, 42, 33, 31, 32, 33, 42, 31, 33, 34, 0, 42, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 41, 12, 13, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15 ], + "vertices": [ 3, 28, 22.96, -22.02, 0.22658, 27, 58.91, -22.02, 0.00342, 102, -21, 12.47, 0.77, 3, 28, 5.76, -22.61, 0.49273, 27, 41.71, -22.61, 0.23727, 102, -21.71, 29.73, 0.27, 4, 28, -10.68, -23.18, 0.11707, 27, 25.27, -23.18, 0.76681, 26, 61.22, -23.18, 0.00612, 102, -22.41, 46.07, 0.11, 2, 27, 5.13, -23.87, 0.6994, 26, 41.08, -23.87, 0.3006, 3, 27, -15.62, -24.58, 0.10595, 26, 20.33, -24.58, 0.85365, 25, 56.28, -24.58, 0.0404, 3, 27, -33.92, -25.21, 7.9E-4, 26, 2.03, -25.21, 0.57156, 25, 37.98, -25.21, 0.42765, 3, 26, -19.29, -25.94, 0.05654, 25, 16.66, -25.94, 0.87764, 24, 52.61, -25.94, 0.06582, 3, 26, -34.16, -26.46, 4.4E-4, 25, 1.79, -26.46, 0.67282, 24, 37.74, -26.46, 0.32674, 2, 25, -3.13, -22.03, 0.47104, 24, 32.82, -22.03, 0.52896, 3, 25, -22.61, -22.55, 0.01665, 24, 13.34, -22.55, 0.87142, 23, 49.29, -22.55, 0.11193, 3, 24, -7.79, -23.11, 0.22064, 23, 28.17, -23.11, 0.77569, 22, 64.12, -23.11, 0.00367, 3, 24, -27.25, -23.62, 0.00219, 23, 8.7, -23.62, 0.77556, 22, 44.65, -23.62, 0.22225, 3, 21, 58.81, -24.2, 0.0114, 23, -13.09, -24.2, 0.12046, 22, 22.86, -24.2, 0.86813, 2, 21, 36.72, -24.79, 0.42237, 22, 0.77, -24.79, 0.57763, 2, 21, 1.72, -25.72, 0.99849, 22, -34.23, -25.72, 0.00151, 1, 21, -25.98, -26.46, 1, 1, 21, -26.33, 25.98, 1, 2, 21, -0.53, 25.24, 0.99997, 22, -36.48, 25.24, 3.0E-5, 2, 21, 32.85, 24.27, 0.56274, 22, -3.1, 24.27, 0.43726, 3, 21, 55.91, 23.6, 0.02334, 23, -15.99, 23.6, 0.05774, 22, 19.96, 23.6, 0.91892, 3, 24, -30.16, 22.96, 3.0E-4, 23, 5.79, 22.96, 0.6752, 22, 41.74, 22.96, 0.3245, 3, 24, -11, 22.41, 0.14886, 23, 24.95, 22.41, 0.84172, 22, 60.9, 22.41, 0.00941, 3, 25, -26.16, 21.8, 0.00663, 24, 9.79, 21.8, 0.80794, 23, 45.74, 21.8, 0.18543, 3, 25, -7.19, 21.25, 0.35697, 24, 28.76, 21.25, 0.64235, 23, 64.72, 21.25, 6.7E-4, 2, 25, -6.22, 28.1, 0.49898, 24, 29.73, 28.1, 0.50102, 3, 26, -21.82, 27.15, 0.04097, 25, 14.13, 27.15, 0.83939, 24, 50.08, 27.15, 0.11963, 3, 26, -2.4, 26.25, 0.4338, 25, 33.55, 26.25, 0.56533, 24, 69.5, 26.25, 8.7E-4, 3, 27, -19.88, 25.4, 0.04332, 26, 16.07, 25.4, 0.87101, 25, 52.02, 25.4, 0.08567, 2, 27, 1.21, 24.42, 0.5677, 26, 37.16, 24.42, 0.4323, 4, 28, -15.94, 23.55, 0.03449, 27, 20.01, 23.55, 0.83346, 26, 55.96, 23.55, 0.02204, 102, 24.27, 51.7, 0.11, 3, 28, 0.25, 22.8, 0.31657, 27, 36.2, 22.8, 0.41343, 102, 23.66, 35.6, 0.27, 3, 28, 18.49, 21.95, 0.22027, 27, 54.44, 21.95, 0.00973, 102, 22.94, 17.27, 0.77, 1, 102, 34.58, 10.59, 1, 1, 102, 34.67, -2.26, 1, 1, 102, -20.38, -2.65, 1, 1, 21, 0.45, 0, 1, 1, 24, 31.4, 0, 1, 1, 24, 11.41, 0, 1, 1, 23, 26.57, 0, 1, 1, 23, 7.43, 0, 1, 1, 22, 20.94, 0, 1, 1, 21, 34.45, 0, 1, 2, 28, 23.32, 0.24, 0.23, 102, 1.26, 12.26, 0.77, 1, 25, 15.67, 0.04, 1, 2, 26, -0.81, 0.07, 0.37007, 25, 35.14, 0.07, 0.62993, 1, 26, 18, 0.1, 1, 2, 27, 2.5, 0.14, 0.92465, 26, 38.45, 0.14, 0.07535, 2, 27, 22.3, 0.17, 0.89, 102, 0.91, 49.21, 0.11, 3, 28, 2.2, 0.2, 0.65329, 27, 38.15, 0.2, 0.07671, 102, 1.08, 33.46, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-blue-cape/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "legs/boots-red", + "attachments": { + "leg-back": { + "leg-back": { + "name": "girl/leg-front", + "type": "mesh", + "path": "girl-spring-dress/leg-front", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 0, 48, 42, 42, 48, 31, 42, 31, 33, 34, 0, 42, 34, 42, 33, 31, 32, 33, 31, 48, 30, 41, 12, 13, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48 ], + "vertices": [ 3, 94, 22.95, -22.02, 0.22728, 95, 59.29, -22, 0.00272, 103, -19.33, 11.79, 0.77, 3, 94, 5.73, -22.61, 0.49142, 95, 41.79, -22.61, 0.23858, 103, -19.74, 29.07, 0.27, 4, 94, -10.55, -23.17, 0.11127, 95, 25.25, -23.18, 0.76279, 96, 60.87, -23.13, 0.00594, 103, -20.15, 45.45, 0.12, 2, 95, 5.13, -23.87, 0.69465, 96, 41.05, -23.86, 0.30535, 3, 95, -15.89, -24.56, 0.09408, 96, 20.35, -24.59, 0.86299, 97, 56.72, -24.52, 0.04292, 2, 96, 1.98, -25.21, 0.55425, 97, 38.06, -25.21, 0.44575, 3, 96, -19.09, -25.88, 0.05256, 97, 16.64, -25.95, 0.87891, 98, 52.7, -25.89, 0.06853, 3, 96, -33.74, -26.34, 3.3E-4, 97, 1.76, -26.46, 0.67227, 98, 37.81, -26.45, 0.32739, 2, 97, -3.17, -22.02, 0.47188, 98, 32.86, -22.03, 0.52812, 3, 97, -22.68, -22.46, 0.0172, 98, 13.36, -22.55, 0.87617, 99, 49.14, -22.52, 0.10662, 3, 98, -7.93, -23.09, 0.23789, 99, 28.2, -23.11, 0.75909, 100, 64.58, -23.1, 0.00302, 3, 98, -27.79, -23.57, 0.00312, 99, 8.67, -23.62, 0.75495, 100, 44.76, -23.62, 0.24193, 3, 99, -12.93, -24.2, 0.09944, 100, 22.84, -24.2, 0.87238, 101, 58.46, -24.21, 0.02818, 2, 100, 0.77, -24.79, 0.47358, 101, 36.71, -24.79, 0.52642, 1, 101, 1.72, -25.72, 1, 1, 101, -25.98, -26.46, 1, 1, 101, -26.33, 25.98, 1, 1, 101, -0.53, 25.24, 1, 2, 100, -3.13, 24.27, 0.37555, 101, 32.87, 24.27, 0.62445, 3, 99, -15.75, 23.6, 0.0536, 100, 19.96, 23.6, 0.92085, 101, 55.62, 23.59, 0.02556, 2, 99, 5.77, 22.96, 0.65378, 100, 41.79, 22.97, 0.34622, 3, 98, -11.12, 22.43, 0.12254, 99, 24.96, 22.4, 0.86248, 100, 61.27, 22.42, 0.01499, 3, 97, -26.03, 21.9, 0.00839, 98, 9.83, 21.8, 0.78745, 99, 45.58, 21.82, 0.20415, 3, 97, -7.13, 21.27, 0.362, 98, 28.73, 21.24, 0.63637, 99, 64.17, 21.3, 0.00163, 2, 97, -6.17, 28.11, 0.5025, 98, 29.67, 28.08, 0.4975, 3, 96, -21.38, 27.22, 0.03848, 97, 14.13, 27.14, 0.83871, 98, 49.97, 27.2, 0.12281, 3, 96, -2.33, 26.26, 0.40865, 97, 33.49, 26.25, 0.59016, 98, 69.34, 26.38, 0.00119, 3, 95, -20.14, 25.43, 0.05003, 96, 16.06, 25.39, 0.84798, 97, 52.19, 25.45, 0.10198, 2, 95, 1.24, 24.42, 0.56331, 96, 37.12, 24.42, 0.43669, 4, 94, -15.67, 23.56, 0.04308, 95, 20, 23.55, 0.81142, 96, 55.61, 23.58, 0.0255, 103, 26.63, 50.22, 0.12, 3, 94, 0.26, 22.8, 0.33337, 95, 36.2, 22.8, 0.39663, 103, 25.72, 34.13, 0.27, 3, 94, 18.48, 21.95, 0.22212, 95, 54.71, 21.97, 0.00788, 103, 24.69, 15.83, 0.77, 1, 103, 36.21, 8.95, 1, 1, 103, 36.08, -3.91, 1, 1, 103, -18.97, -3.34, 1, 1, 101, 0.45, 0, 1, 1, 98, 31.4, 0, 1, 1, 98, 11.41, 0, 1, 1, 99, 26.57, 0, 1, 1, 99, 7.43, 0, 1, 1, 100, 20.94, 0, 1, 1, 101, 34.45, 0, 1, 2, 94, 23.32, 0.24, 0.23, 103, 2.93, 11.2, 0.77, 1, 97, 15.67, 0.04, 1, 2, 96, -0.81, 0.07, 0.36735, 97, 35.13, 0.07, 0.63265, 1, 96, 18, 0.1, 1, 2, 95, 2.51, 0.14, 0.90776, 96, 38.42, 0.14, 0.09224, 2, 95, 22.3, 0.17, 0.88, 103, 3.23, 48.15, 0.12, 3, 94, 2.19, 0.2, 0.62933, 95, 38.18, 0.2, 0.10067, 103, 3.11, 32.41, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "leg-front": { + "leg-front": { + "name": "girl/leg-front", + "type": "mesh", + "path": "girl-spring-dress/leg-front", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 31, 48, 30, 0, 48, 42, 42, 48, 31, 34, 42, 33, 31, 32, 33, 42, 31, 33, 34, 0, 42, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 41, 12, 13, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15 ], + "vertices": [ 3, 28, 22.96, -22.02, 0.22658, 27, 58.91, -22.02, 0.00342, 102, -21, 12.47, 0.77, 3, 28, 5.76, -22.61, 0.49273, 27, 41.71, -22.61, 0.23727, 102, -21.71, 29.73, 0.27, 4, 28, -10.68, -23.18, 0.11707, 27, 25.27, -23.18, 0.76681, 26, 61.22, -23.18, 0.00612, 102, -22.41, 46.07, 0.11, 2, 27, 5.13, -23.87, 0.6994, 26, 41.08, -23.87, 0.3006, 3, 27, -15.62, -24.58, 0.10595, 26, 20.33, -24.58, 0.85365, 25, 56.28, -24.58, 0.0404, 3, 27, -33.92, -25.21, 7.9E-4, 26, 2.03, -25.21, 0.57156, 25, 37.98, -25.21, 0.42765, 3, 26, -19.29, -25.94, 0.05654, 25, 16.66, -25.94, 0.87764, 24, 52.61, -25.94, 0.06582, 3, 26, -34.16, -26.46, 4.4E-4, 25, 1.79, -26.46, 0.67282, 24, 37.74, -26.46, 0.32674, 2, 25, -3.13, -22.03, 0.47104, 24, 32.82, -22.03, 0.52896, 3, 25, -22.61, -22.55, 0.01665, 24, 13.34, -22.55, 0.87142, 23, 49.29, -22.55, 0.11193, 3, 24, -7.79, -23.11, 0.22064, 23, 28.17, -23.11, 0.77569, 22, 64.12, -23.11, 0.00367, 3, 24, -27.25, -23.62, 0.00219, 23, 8.7, -23.62, 0.77556, 22, 44.65, -23.62, 0.22225, 3, 21, 58.81, -24.2, 0.0114, 23, -13.09, -24.2, 0.12046, 22, 22.86, -24.2, 0.86813, 2, 21, 36.72, -24.79, 0.42237, 22, 0.77, -24.79, 0.57763, 2, 21, 1.72, -25.72, 0.99849, 22, -34.23, -25.72, 0.00151, 1, 21, -25.98, -26.46, 1, 1, 21, -26.33, 25.98, 1, 2, 21, -0.53, 25.24, 0.99997, 22, -36.48, 25.24, 3.0E-5, 2, 21, 32.85, 24.27, 0.56274, 22, -3.1, 24.27, 0.43726, 3, 21, 55.91, 23.6, 0.02334, 23, -15.99, 23.6, 0.05774, 22, 19.96, 23.6, 0.91892, 3, 24, -30.16, 22.96, 3.0E-4, 23, 5.79, 22.96, 0.6752, 22, 41.74, 22.96, 0.3245, 3, 24, -11, 22.41, 0.14886, 23, 24.95, 22.41, 0.84172, 22, 60.9, 22.41, 0.00941, 3, 25, -26.16, 21.8, 0.00663, 24, 9.79, 21.8, 0.80794, 23, 45.74, 21.8, 0.18543, 3, 25, -7.19, 21.25, 0.35697, 24, 28.76, 21.25, 0.64235, 23, 64.72, 21.25, 6.7E-4, 2, 25, -6.22, 28.1, 0.49898, 24, 29.73, 28.1, 0.50102, 3, 26, -21.82, 27.15, 0.04097, 25, 14.13, 27.15, 0.83939, 24, 50.08, 27.15, 0.11963, 3, 26, -2.4, 26.25, 0.4338, 25, 33.55, 26.25, 0.56533, 24, 69.5, 26.25, 8.7E-4, 3, 27, -19.88, 25.4, 0.04332, 26, 16.07, 25.4, 0.87101, 25, 52.02, 25.4, 0.08567, 2, 27, 1.21, 24.42, 0.5677, 26, 37.16, 24.42, 0.4323, 4, 28, -15.94, 23.55, 0.03449, 27, 20.01, 23.55, 0.83346, 26, 55.96, 23.55, 0.02204, 102, 24.27, 51.7, 0.11, 3, 28, 0.25, 22.8, 0.31657, 27, 36.2, 22.8, 0.41343, 102, 23.66, 35.6, 0.27, 3, 28, 18.49, 21.95, 0.22027, 27, 54.44, 21.95, 0.00973, 102, 22.94, 17.27, 0.77, 1, 102, 34.58, 10.59, 1, 1, 102, 34.67, -2.26, 1, 1, 102, -20.38, -2.65, 1, 1, 21, 0.45, 0, 1, 1, 24, 31.4, 0, 1, 1, 24, 11.41, 0, 1, 1, 23, 26.57, 0, 1, 1, 23, 7.43, 0, 1, 1, 22, 20.94, 0, 1, 1, 21, 34.45, 0, 1, 2, 28, 23.32, 0.24, 0.23, 102, 1.26, 12.26, 0.77, 1, 25, 15.67, 0.04, 1, 2, 26, -0.81, 0.07, 0.37007, 25, 35.14, 0.07, 0.62993, 1, 26, 18, 0.1, 1, 2, 27, 2.5, 0.14, 0.92465, 26, 38.45, 0.14, 0.07535, 2, 27, 22.3, 0.17, 0.89, 102, 0.91, 49.21, 0.11, 3, 28, 2.2, 0.2, 0.65329, 27, 38.15, 0.2, 0.07671, 102, 1.08, 33.46, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-spring-dress/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "full-skins/boy", + "bones": [ "backpack", "backpack-control", "hat", "hat-base", "hat-control", "pompom-control", "zip-boy" ], + "transform": [ "hat-control" ], + "attachments": { + "arm-back": { + "arm-back": { + "name": "boy/arm-front", + "type": "mesh", + "uvs": [ 0, 0.9983, 1, 1, 1, 0.86682, 0.93575, 0.85962, 0.92543, 0.81301, 0.91517, 0.75475, 0.90967, 0.69766, 0.90374, 0.64195, 0.89852, 0.59071, 0.89321, 0.53993, 0.88593, 0.48173, 0.87995, 0.43392, 0.87387, 0.38539, 0.86778, 0.33662, 0.86019, 0.276, 0.85262, 0.21542, 0.84443, 0.15001, 0.83706, 0.09104, 0.82567, 0, 0.20656, 4.9E-4, 0.19476, 0.09288, 0.18669, 0.15618, 0.17892, 0.21703, 0.17122, 0.27738, 0.16365, 0.33672, 0.15684, 0.39004, 0.15032, 0.44113, 0.14396, 0.49098, 0.13775, 0.53965, 0.13226, 0.59099, 0.12603, 0.6493, 0.11997, 0.7051, 0.11515, 0.75592, 0.10543, 0.80835, 0.09698, 0.85907, 0.00989, 0.86774, 0.51288, 0.08992, 0.5068, 0.53843, 0.50952, 0.33772, 0.50435, 0.75817, 0.50554, 0.64894, 0.50328, 0.81283, 0.50817, 0.43751, 0.51115, 0.2178, 0.51199, 0.156, 0.51033, 0.27832, 0.50881, 0.38996, 0.50751, 0.48617, 0.50614, 0.59548, 0.5049, 0.70471, 0.50929, 0.85256 ], + "triangles": [ 34, 33, 50, 50, 4, 3, 0, 50, 1, 50, 0, 34, 0, 35, 34, 50, 3, 1, 3, 2, 1, 20, 19, 36, 36, 18, 17, 36, 19, 18, 44, 36, 17, 44, 20, 36, 46, 38, 13, 46, 24, 38, 38, 14, 13, 38, 45, 14, 24, 23, 38, 38, 23, 45, 45, 15, 14, 23, 22, 45, 37, 47, 10, 37, 27, 47, 27, 26, 47, 47, 11, 10, 47, 42, 11, 47, 26, 42, 26, 25, 42, 42, 12, 11, 42, 46, 12, 42, 25, 46, 25, 24, 46, 46, 13, 12, 49, 40, 7, 49, 30, 40, 30, 29, 40, 40, 8, 7, 40, 48, 8, 40, 29, 48, 48, 9, 8, 48, 37, 9, 29, 28, 48, 48, 28, 37, 9, 37, 10, 28, 27, 37, 33, 41, 50, 50, 41, 4, 4, 41, 5, 41, 39, 5, 33, 32, 41, 41, 32, 39, 39, 6, 5, 39, 49, 6, 32, 31, 39, 39, 31, 49, 31, 30, 49, 49, 7, 6, 45, 43, 15, 45, 22, 43, 43, 16, 15, 43, 44, 16, 22, 21, 43, 43, 21, 44, 21, 20, 44, 44, 17, 16 ], + "vertices": [ 1, 83, 30.3, -36.41, 1, 1, 83, 30.3, 34.59, 1, 1, 83, -0.09, 34.58, 1, 1, 83, -1.73, 30.02, 1, 3, 89, -1.79, 29.7, 0.51485, 88, 31.72, 29.7, 0.47152, 87, 64.98, 29.54, 0.01363, 3, 89, -14.92, 28.81, 0.16761, 88, 18.24, 28.84, 0.7202, 87, 51.66, 28.75, 0.11219, 3, 89, -27.79, 28.25, 0.02494, 88, 5.03, 28.32, 0.58139, 87, 38.61, 28.29, 0.39367, 4, 89, -40.37, 27.67, 3.1E-4, 88, -7.89, 27.77, 0.24325, 87, 25.85, 27.81, 0.73664, 86, 59.61, 27.66, 0.0198, 3, 88, -19.79, 27.28, 0.05132, 87, 14.09, 27.38, 0.81519, 86, 47.8, 27.3, 0.1335, 4, 88, -31.58, 26.79, 0.00265, 87, 2.43, 26.95, 0.57933, 86, 36.09, 26.94, 0.41791, 85, 69.67, 26.87, 1.1E-4, 3, 87, -10.9, 26.37, 0.1986, 86, 22.7, 26.43, 0.77283, 85, 56.26, 26.39, 0.02857, 3, 87, -21.85, 25.89, 0.03954, 86, 11.7, 26.02, 0.79423, 85, 45.25, 26, 0.16624, 4, 84, 66.95, 25.61, 2.5E-4, 87, -32.97, 25.41, 0.0015, 86, 0.53, 25.6, 0.51564, 85, 34.07, 25.6, 0.48261, 3, 84, 55.91, 25.21, 0.02493, 86, -10.7, 25.18, 0.18302, 85, 22.83, 25.2, 0.79205, 3, 84, 42.17, 24.71, 0.22892, 86, -24.67, 24.66, 0.01383, 85, 8.85, 24.71, 0.75725, 2, 84, 28.46, 24.21, 0.68211, 85, -5.12, 24.22, 0.31789, 2, 84, 13.66, 23.68, 0.96794, 85, -20.18, 23.68, 0.03206, 1, 79, 23.52, -0.26, 1, 1, 79, 22.72, 20.49, 1, 1, 79, -21.24, 20.38, 1, 1, 79, -22.08, -0.68, 1, 2, 84, 14.92, -23.03, 0.96207, 85, -18.91, -23.02, 0.03793, 2, 84, 28.69, -23.62, 0.67642, 85, -4.9, -23.62, 0.32358, 3, 84, 42.34, -24.21, 0.2106, 86, -24.41, -24.26, 0.01717, 85, 9.01, -24.21, 0.77223, 3, 84, 55.78, -24.78, 0.0197, 86, -10.74, -24.81, 0.18482, 85, 22.69, -24.79, 0.79548, 3, 87, -31.67, -25.49, 0.00253, 86, 1.54, -25.31, 0.54183, 85, 34.98, -25.31, 0.45564, 3, 87, -19.96, -25.9, 0.05261, 86, 13.3, -25.78, 0.80433, 85, 46.75, -25.81, 0.14306, 3, 87, -8.53, -26.3, 0.24883, 86, 24.77, -26.25, 0.73011, 85, 58.23, -26.3, 0.02106, 4, 88, -31.1, -26.85, 0.00529, 87, 2.63, -26.69, 0.57957, 86, 35.97, -26.7, 0.41477, 85, 69.44, -26.77, 3.7E-4, 3, 88, -19.17, -27.12, 0.06823, 87, 14.41, -27.02, 0.80427, 86, 47.8, -27.1, 0.1275, 4, 89, -38.03, -27.52, 0, 88, -5.62, -27.43, 0.32888, 87, 27.8, -27.4, 0.65921, 86, 61.24, -27.56, 0.01191, 3, 89, -25.42, -27.79, 0.02186, 88, 7.33, -27.73, 0.68409, 87, 40.58, -27.77, 0.29405, 3, 89, -13.96, -27.99, 0.14597, 88, 19.09, -27.95, 0.77839, 87, 52.2, -28.05, 0.07563, 3, 89, -2.13, -28.53, 0.457, 88, 31.23, -28.52, 0.53645, 87, 64.19, -28.69, 0.00655, 1, 83, -1.86, -29.53, 1, 1, 83, 0.13, -35.71, 1, 1, 79, 0.51, 0, 1, 2, 87, 2.22, -0.49, 0.93037, 86, 35.72, -0.5, 0.06963, 2, 86, -10.48, -0.25, 2.1E-4, 85, 23, -0.23, 0.99979, 1, 88, 19.33, -0.32, 1, 1, 87, 27.58, -0.45, 1, 2, 89, -1.47, -0.27, 0.18486, 88, 31.98, -0.27, 0.81514, 2, 86, 12.49, -0.38, 0.99961, 85, 45.99, -0.4, 3.9E-4, 2, 84, 28.93, -0.03, 0.99759, 85, -4.64, -0.03, 0.00241, 1, 84, 14.95, 0.07, 1, 2, 84, 42.63, -0.13, 2.9E-4, 85, 9.31, -0.13, 0.99971, 2, 86, 1.55, -0.32, 0.82986, 85, 35.04, -0.32, 0.17014, 1, 86, 23.69, -0.43, 1, 1, 87, 15.31, -0.47, 1, 1, 88, 6.95, -0.4, 1, 1, 83, -3.3, -0.26, 1 ], + "hull": 36, + "edges": [ 0, 2, 2, 4, 36, 38, 0, 70, 68, 70, 4, 6, 34, 36, 72, 34, 38, 40, 72, 40, 74, 56, 74, 18, 76, 48, 76, 26, 78, 64, 78, 10, 80, 60, 80, 14, 82, 78, 64, 66, 82, 66, 8, 10, 82, 8, 84, 52, 84, 22, 86, 44, 86, 30, 72, 88, 88, 86, 40, 42, 42, 44, 88, 42, 30, 32, 32, 34, 88, 32, 76, 90, 90, 86, 44, 46, 46, 48, 90, 46, 26, 28, 28, 30, 90, 28, 76, 92, 92, 84, 48, 50, 50, 52, 92, 50, 22, 24, 24, 26, 92, 24, 74, 94, 94, 84, 52, 54, 54, 56, 94, 54, 18, 20, 20, 22, 94, 20, 74, 96, 96, 80, 56, 58, 58, 60, 96, 58, 14, 16, 16, 18, 96, 16, 78, 98, 98, 80, 60, 62, 62, 64, 98, 62, 10, 12, 12, 14, 98, 12, 66, 68, 6, 8 ], + "width": 71, + "height": 229 + } + }, + "backpack": { + "backpack": { + "name": "boy/backpack", + "type": "mesh", + "uvs": [ 0.56777, 0.99667, 1, 0.92022, 0.98943, 0.32667, 0.91222, 0.0979, 0.87918, 0, 0.78253, 0, 0.24991, 0.03363, 0.11246, 0.09517, 0.03085, 0.20163, 0.02226, 0.32638, 0.04803, 0.66073, 0, 0.74057, 0, 0.8803, 0.09742, 0.96347, 0.18118, 0.96513, 0.33582, 1, 0.54199, 0.39791, 0.50334, 0.16504, 0.57206, 0.93685, 0.13608, 0.44449, 0.52372, 0.28781, 0.0781, 0.37629, 0.11031, 0.6391, 0.39913, 0.04858, 0.7798, 0.01708 ], + "triangles": [ 24, 23, 5, 5, 23, 6, 17, 23, 24, 17, 24, 3, 17, 8, 7, 6, 17, 7, 17, 6, 23, 20, 17, 3, 20, 9, 8, 20, 8, 17, 21, 9, 20, 16, 20, 2, 19, 21, 20, 16, 19, 20, 18, 16, 1, 22, 19, 16, 18, 22, 16, 18, 14, 22, 18, 15, 14, 0, 18, 1, 0, 15, 18, 24, 5, 4, 24, 4, 3, 20, 3, 2, 22, 21, 19, 10, 9, 21, 10, 21, 22, 22, 12, 11, 16, 2, 1, 10, 22, 11, 22, 14, 12, 14, 13, 12 ], + "vertices": [ 2, 56, 176.31, 109.14, 0.42, 55, 230.15, -10.16, 0.58, 1, 56, 161.95, 213.46, 1, 2, 56, -19.06, 228.58, 0.82644, 55, 34.78, 109.29, 0.17356, 2, 56, -90.51, 217.16, 0.76, 55, -36.67, 97.87, 0.24, 2, 56, -121.08, 212.27, 0.80924, 55, -67.25, 92.98, 0.19076, 2, 56, -123.31, 189.48, 0.76, 55, -69.47, 70.19, 0.24, 2, 56, -125.31, 62.84, 0.27, 55, -71.47, -56.45, 0.73, 2, 56, -109.72, 28.59, 0.6115, 55, -55.89, -90.7, 0.3885, 2, 56, -79.18, 6.18, 0.7, 55, -25.34, -113.11, 0.3, 2, 56, -41.38, 0.45, 0.69983, 55, 12.45, -118.84, 0.30017, 2, 56, 61.04, -3.39, 0.7, 55, 114.87, -122.68, 0.3, 2, 56, 84.25, -17.09, 0.7, 55, 138.09, -136.38, 0.3, 2, 56, 126.81, -21.24, 0.7, 55, 180.64, -140.53, 0.3, 2, 56, 154.38, -0.73, 0.7, 55, 208.21, -120.02, 0.3, 2, 56, 156.81, 18.98, 0.7, 55, 210.64, -100.31, 0.3, 2, 56, 170.98, 54.42, 0.63, 55, 224.82, -64.87, 0.37, 1, 55, 46.19, 1.64, 1, 1, 55, -25.63, -0.57, 1, 1, 55, 211.91, -7.36, 1, 2, 56, -2.79, 23.8, 0.64851, 55, 51.04, -95.49, 0.35149, 1, 55, 12.23, 0.59, 1, 2, 56, -24.9, 12.14, 0.7, 55, 28.94, -107.15, 0.3, 2, 56, 55.9, 11.94, 0.7, 55, 109.74, -107.35, 0.3, 1, 55, -63.49, -21.7, 1, 2, 56, -118.16, 188.33, 0.7, 55, -64.33, 69.03, 0.3 ], + "hull": 16, + "edges": [ 0, 2, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30, 34, 6, 4, 6, 32, 4, 2, 4, 36, 28, 36, 2, 38, 32, 16, 34, 32, 40, 40, 34, 18, 40, 42, 44, 46, 48, 6, 8 ], + "width": 237, + "height": 306 + } + }, + "backpack-pocket": { + "backpack-pocket": { + "name": "boy/backpack-pocket", + "type": "mesh", + "uvs": [ 0.86114, 0.35068, 1, 0.88458, 0.68875, 1, 0.18636, 1, 0, 0.70482, 0.0163, 0.4457, 0.09191, 0.41902, 0, 0.17629, 0.14203, 0, 0.57054, 0, 0.74293, 0.14141, 0.55084, 0.66994, 0.52128, 0.39897, 0.41292, 0.24068, 0.4549, 0.43438 ], + "triangles": [ 3, 11, 2, 2, 11, 1, 3, 4, 11, 14, 4, 5, 4, 14, 11, 11, 0, 1, 11, 14, 0, 5, 6, 14, 14, 12, 0, 14, 6, 12, 6, 13, 12, 6, 7, 13, 12, 10, 0, 12, 13, 10, 7, 8, 13, 13, 9, 10, 13, 8, 9 ], + "vertices": [ 2, 55, 125.55, -28.25, 0.86973, 56, 71.72, 91.05, 0.13027, 2, 55, 191.82, -25.36, 0.79774, 56, 137.99, 93.94, 0.20226, 2, 55, 203.92, -47.5, 0.88, 56, 150.09, 71.8, 0.12, 2, 55, 200.66, -81, 0.65, 56, 146.83, 38.3, 0.35, 2, 55, 163.31, -89.9, 0.65, 56, 109.48, 29.4, 0.35, 2, 55, 131.7, -85.72, 0.65, 56, 77.87, 33.58, 0.35, 2, 55, 128.92, -80.36, 0.65, 56, 75.09, 38.94, 0.35, 2, 55, 98.61, -83.6, 0.69, 56, 44.78, 35.7, 0.31, 2, 55, 77.95, -72.02, 0.65, 56, 24.12, 47.28, 0.35, 2, 55, 80.74, -43.45, 0.81, 56, 26.91, 75.85, 0.19, 2, 55, 99.17, -33.64, 0.83791, 56, 45.34, 85.66, 0.16209, 2, 55, 162.62, -52.75, 0.88, 56, 108.79, 66.55, 0.12, 2, 55, 129.26, -51.49, 0.83, 56, 75.43, 67.81, 0.17, 2, 55, 109.18, -56.83, 0.83, 56, 55.35, 62.47, 0.17, 2, 55, 133.16, -56.34, 0.88, 56, 79.33, 62.96, 0.12 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20, 24, 12, 28, 10, 28, 0 ], + "width": 67, + "height": 123 + } + }, + "backpack-strap-back": { + "backpack-strap-back": { + "name": "boy/backpack-strap-front", + "type": "mesh", + "uvs": [ 0.15746, 0.22195, 0.30944, 0.21252, 0.41799, 0.2408, 0.49615, 0.30303, 0.52654, 0.38223, 0.47878, 0.49349, 0.31812, 0.63303, 0, 0.81218, 0, 1, 0.16615, 1, 0.74365, 0.70846, 0.91733, 0.54818, 1, 0.40675, 1, 0.25401, 0.86523, 0.12201, 0.61338, 0.02395, 0.32246, 0, 0.05759, 0.02018, 0.04457, 0.17292 ], + "triangles": [ 2, 1, 16, 15, 2, 16, 9, 8, 7, 16, 1, 0, 0, 18, 17, 16, 0, 17, 6, 9, 7, 10, 9, 6, 10, 6, 5, 10, 5, 11, 11, 4, 12, 5, 4, 11, 4, 3, 13, 3, 15, 14, 3, 14, 13, 4, 13, 12, 3, 2, 15 ], + "vertices": [ 2, 55, 44.79, 75.8, 0.174, 56, -9.04, 195.1, 0.826, 2, 55, 49.06, 136.63, 0.56071, 56, -4.77, 255.93, 0.43929, 3, 55, 57.59, 153.08, 0.2997, 79, -3.48, -14.15, 0.5103, 56, 3.76, 272.38, 0.19, 1, 79, 4.79, -23.1, 1, 1, 79, 7.1, -36.96, 1, 2, 55, 100.34, 155.9, 0.19, 79, 3.47, -56.43, 0.81, 3, 55, 128.1, 112.78, 0.27, 79, -36.75, -88.24, 0.46366, 56, 74.27, 232.08, 0.26634, 2, 55, 144.33, 78.25, 0.1, 56, 90.51, 197.55, 0.9, 2, 55, 177.04, 75.06, 0.1, 56, 123.22, 194.36, 0.9, 2, 55, 178.27, 87.63, 0.1, 56, 124.44, 206.93, 0.9, 3, 55, 151.86, 136.31, 0.27, 79, -11.02, -109.61, 0.48185, 56, 98.04, 255.61, 0.24815, 2, 55, 113.1, 188.14, 0.15, 79, 36.8, -66, 0.85, 2, 55, 89.07, 196.79, 0.04, 79, 43.08, -41.25, 0.96, 1, 79, 43.08, -14.52, 1, 2, 79, 32.84, 8.58, 0.87, 56, -15.34, 310.73, 0.13, 3, 55, 18.46, 162.82, 0.5, 79, 2.42, 25.74, 0.00271, 56, -35.37, 282.12, 0.49729, 2, 55, 7.35, 92.05, 0.174, 56, -46.48, 211.35, 0.826, 2, 55, 8.91, 71.67, 0.174, 56, -44.92, 190.97, 0.826, 2, 55, 35.42, 68.1, 0.174, 56, -18.41, 187.39, 0.826 ], + "hull": 19, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 0, 36, 6, 26, 10, 22 ], + "width": 76, + "height": 175 + } + }, + "backpack-strap-front": { + "backpack-strap-front": { + "name": "boy/backpack-strap-front", + "type": "mesh", + "uvs": [ 0.15746, 0.22195, 0.30944, 0.21252, 0.41799, 0.2408, 0.49615, 0.30303, 0.52654, 0.38223, 0.47878, 0.49349, 0.31812, 0.63303, 0, 0.81218, 0, 1, 0.16615, 1, 0.74365, 0.70846, 0.91733, 0.54818, 1, 0.40675, 1, 0.25401, 0.86523, 0.12201, 0.61338, 0.02395, 0.32246, 0, 0.05759, 0.02018, 0.04457, 0.17292 ], + "triangles": [ 10, 6, 5, 10, 5, 11, 5, 4, 11, 11, 4, 12, 4, 13, 12, 4, 3, 13, 3, 14, 13, 3, 15, 14, 3, 2, 15, 15, 2, 16, 10, 9, 6, 9, 8, 7, 16, 1, 0, 0, 18, 17, 16, 0, 17, 6, 9, 7, 2, 1, 16 ], + "vertices": [ 1, 55, 36.1, 23.68, 1, 2, 55, 35.58, 35.33, 0.91, 7, -7.77, -3.67, 0.09, 2, 55, 41.31, 43.06, 0.37, 7, 0.48, -8.62, 0.63, 1, 7, 6.42, -19.51, 1, 2, 55, 66.74, 48.87, 0.04, 7, 8.73, -33.37, 0.96, 2, 55, 85.77, 43.37, 0.19, 7, 5.1, -52.84, 0.81, 2, 55, 108.89, 28.85, 0.48, 7, -7.11, -77.26, 0.52, 1, 55, 137.75, 1.75, 1, 1, 55, 170.46, -1.44, 1, 1, 55, 171.69, 11.13, 1, 2, 55, 125.16, 59.76, 0.42, 7, 25.23, -90.46, 0.58, 2, 55, 98.53, 75.62, 0.15, 7, 38.43, -62.41, 0.85, 2, 55, 74.5, 84.27, 0.04, 7, 44.71, -37.66, 0.96, 1, 7, 44.71, -10.93, 1, 1, 7, 34.47, 12.17, 1, 2, 55, 4.98, 61.52, 0.09, 7, 15.33, 29.33, 0.91, 2, 55, -1.34, 39.92, 0.96, 7, -6.78, 33.52, 0.04, 1, 55, 0.22, 19.55, 1, 1, 55, 26.73, 15.97, 1 ], + "hull": 19, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 0, 36, 6, 26, 10, 22 ], + "width": 76, + "height": 175 + } + }, + "backpack-up": { + "backpack-up": { + "name": "boy/backpack-up", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 56, -112.01, 144.15, 0.96, 55, -137.28, 27.99, 0.04, 2, 56, -103.52, 189.83, 0.81, 55, -128.79, 73.67, 0.19, 2, 56, -49.76, 82.9, 0.17, 55, -75.03, -33.27, 0.83, 2, 56, -74.02, 32.48, 0.58, 55, -99.3, -83.68, 0.42 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 42, + "height": 139 + } + }, + "base-head": { + "base-head": { "x": 74.74, "y": -10.09, "rotation": -87.57, "width": 189, "height": 145 } + }, + "body": { + "body": { "name": "boy/body", "type": "linkedmesh", "skin": "full-skins/girl", "parent": "body", "width": 194, "height": 263 } + }, + "boot-ribbon-back": { + "boot-ribbon-back": { + "name": "boy/boot-ribbon-front", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 95, 28.05, 31.91, 0.76, 103, 36.32, 40.94, 0.24, 2, 95, 28.6, 14.92, 0.76, 103, 19.33, 41.13, 0.24, 2, 95, 6.7, 14.22, 0.76, 103, 19.57, 62.88, 0.24, 2, 95, 6.15, 31.21, 0.76, 103, 36.57, 62.69, 0.24 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 17, + "height": 22 + } + }, + "boot-ribbon-front": { + "boot-ribbon-front": { + "name": "boy/boot-ribbon-front", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 102, 37.35, 36.26, 0.24, 27, 30.73, 31.09, 0.76, 2, 102, 20.65, 39.43, 0.24, 27, 29.77, 14.12, 0.76, 2, 102, 24.74, 60.87, 0.24, 27, 7.8, 15.36, 0.76, 2, 102, 41.44, 57.7, 0.24, 27, 8.76, 32.34, 0.76 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 17, + "height": 22 + } + }, + "collar": { + "collar": { + "name": "boy/collar", + "type": "mesh", + "uvs": [ 0.01507, 0.35374, 0.04243, 0.85436, 0.34348, 0.9329, 0.60063, 1, 0.7225, 0.99194, 0.8843, 0.75701, 1, 0.58901, 0.9885, 0.2137, 0.98194, 0, 0.82711, 0.02581, 0.63208, 0.05832, 0.54167, 0.04849, 0.29801, 0.06176, 0, 0.07798, 0.31391, 0.36632, 0.55976, 0.34041, 0.66022, 0.3489, 0.84942, 0.31117 ], + "triangles": [ 0, 12, 14, 15, 12, 11, 15, 14, 12, 0, 13, 12, 17, 16, 10, 16, 15, 10, 15, 11, 10, 10, 9, 17, 17, 9, 7, 9, 8, 7, 16, 4, 3, 16, 5, 4, 15, 16, 3, 2, 15, 3, 1, 14, 2, 2, 14, 15, 1, 0, 14, 6, 5, 17, 17, 5, 16, 17, 7, 6 ], + "vertices": [ 2, 4, 130.93, 66.36, 0.35519, 5, 33.21, 62.82, 0.64481, 1, 4, 103.81, 63.13, 1, 1, 4, 96.28, 19.92, 1, 1, 4, 89.85, -16.98, 1, 1, 4, 88.98, -34.64, 1, 1, 4, 100.8, -59.06, 1, 1, 4, 109.25, -76.52, 1, 2, 4, 134.32, -75.26, 0.36282, 5, 35.01, -78.53, 0.63718, 1, 5, 49.23, -77.07, 1, 1, 5, 48.26, -54.59, 1, 1, 5, 47.04, -26.28, 1, 1, 5, 47.91, -13.18, 1, 1, 5, 47.97, 22.16, 1, 1, 5, 48.04, 65.38, 1, 2, 4, 128.8, 23.01, 0.34961, 5, 30.6, 19.59, 0.65039, 2, 4, 129.22, -12.66, 0.3068, 5, 30.61, -16, 0.6932, 2, 4, 128.25, -27.24, 0.31124, 5, 29.49, -30.54, 0.68876, 2, 4, 129.27, -54.92, 0.39025, 5, 30.2, -58.19, 0.60975 ], + "hull": 14, + "edges": [ 6, 8, 20, 22, 2, 4, 4, 6, 22, 24, 24, 26, 8, 10, 10, 12, 16, 18, 18, 20, 4, 28, 28, 24, 6, 30, 30, 22, 8, 32, 32, 20, 10, 34, 34, 18, 2, 0, 0, 26, 28, 0, 12, 14, 14, 16, 34, 14 ], + "width": 145, + "height": 58 + } + }, + "ear": { + "ear": { + "name": "boy/ear", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 5, 74.1, 67.48, 0.22, 6, 33.88, 66.64, 0.78, 2, 5, 76.86, 105.37, 0.22, 6, 31.74, 104.6, 0.78, 2, 5, 121.73, 102.1, 0.22, 6, 76.69, 107.13, 0.78, 2, 5, 118.97, 64.2, 0.22, 6, 78.83, 69.17, 0.78 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 38, + "height": 45 + } + }, + "eye-back-eyebrow": { + "eye-back-eyebrow": { "name": "boy/eyebrow-back", "x": 13.08, "y": -0.6, "rotation": -177.9, "width": 40, "height": 22 } + }, + "eye-back-iris": { + "eye-back-iris": { "name": "boy/eye-iris-back", "x": 0.85, "y": -0.75, "width": 33, "height": 34 } + }, + "eye-back-low-eyelid": { + "eye-back-low-eyelid": { + "name": "boy/eye-back-low-eyelid", + "type": "mesh", + "uvs": [ 0, 0.4084, 0.23683, 0.78185, 0.55761, 1, 0.86883, 0.83931, 1, 0.43712, 0.93586, 0, 0.79222, 0.23603, 0.55283, 0.37967, 0.30864, 0.27912, 0.11713, 0, 0.02616, 0.10676 ], + "triangles": [ 10, 9, 8, 0, 10, 8, 6, 5, 4, 1, 0, 8, 1, 8, 7, 4, 7, 6, 3, 7, 4, 2, 1, 7, 3, 2, 7 ], + "vertices": [ 1, 42, -29.75, -0.2, 1, 1, 42, -21.94, -4.31, 1, 1, 42, -11.35, -6.71, 1, 1, 42, -1.08, -4.94, 1, 1, 42, 3.25, -0.52, 1, 1, 42, 1.13, 4.29, 1, 1, 42, -3.61, 1.69, 1, 1, 42, -11.51, 0.11, 1, 1, 42, -19.57, 1.22, 1, 1, 42, -25.89, 4.29, 1, 1, 42, -28.89, 3.12, 1 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 33, + "height": 11 + } + }, + "eye-back-pupil": { + "eye-back-pupil": { "name": "boy/eye-back-pupil", "x": 0.43, "y": -0.67, "width": 15, "height": 17 } + }, + "eye-back-up-eyelid": { + "eye-back-up-eyelid": { + "name": "boy/eye-back-up-eyelid", + "type": "mesh", + "uvs": [ 0, 1, 0, 0.49905, 0.19376, 0.24625, 0.47885, 0.02505, 0.78455, 0.00925, 1, 0.08826, 0.99407, 0.70446, 0.79485, 0.78345, 0.48229, 0.92565, 0.20407, 0.92565 ], + "triangles": [ 3, 7, 8, 3, 4, 7, 2, 8, 9, 0, 1, 9, 9, 1, 2, 7, 4, 6, 6, 4, 5, 8, 2, 3 ], + "vertices": [ 1, 40, -37.56, -7.74, 1, 1, 40, -37.56, -2.73, 1, 2, 40, -28.64, -0.2, 0.75, 41, 28.05, 5.81, 0.25, 2, 40, -15.53, 2.01, 0.47, 41, 15.62, 1.07, 0.53, 2, 40, -1.47, 2.17, 0.57, 41, 1.87, -1.84, 0.43, 2, 40, 8.44, 1.38, 0.57, 41, -8.01, -3.01, 0.43, 2, 40, 8.17, -4.78, 0.57, 41, -8.95, 3.09, 0.43, 2, 40, -0.99, -5.57, 0.57, 41, -0.12, 5.66, 0.43, 2, 40, -15.37, -6.99, 0.47, 41, 13.7, 9.87, 0.53, 2, 40, -28.17, -6.99, 0.75, 41, 26.25, 12.38, 0.25 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 16, 6, 18, 4 ], + "width": 46, + "height": 10 + } + }, + "eye-back-up-eyelid-back": { + "eye-back-up-eyelid-back": { + "name": "boy/eye-back-up-eyelid-back", + "type": "mesh", + "uvs": [ 0.01882, 1, 0.2683, 0.88243, 0.57182, 0.81923, 0.80051, 0.81133, 1, 0.79553, 0.99593, 0.50323, 0.72151, 0.03713, 0.44709, 0, 0.11861, 0.35313, 0, 0.82713 ], + "triangles": [ 8, 7, 2, 2, 7, 6, 5, 2, 6, 1, 9, 8, 0, 9, 1, 2, 1, 8, 3, 2, 5, 3, 5, 4 ], + "vertices": [ 1, 40, -33.54, -8.4, 1, 2, 40, -24.06, -6.05, 0.83, 41, 22.41, 10.65, 0.17, 2, 40, -12.53, -4.78, 0.65, 41, 11.35, 7.15, 0.35, 1, 40, -3.84, -4.62, 1, 1, 40, 3.74, -4.31, 1, 2, 40, 3.59, 1.54, 0.58, 39, 16.64, 28.74, 0.42, 1, 39, 6.22, 38.06, 1, 1, 39, -4.21, 38.8, 1, 1, 39, -16.69, 31.74, 1, 2, 40, -34.26, -4.94, 0.58, 39, -21.2, 22.26, 0.42 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 38, + "height": 20 + } + }, + "eye-back-white": { + "eye-back-white": { + "name": "boy/eye-white-back", + "type": "mesh", + "uvs": [ 0.0386, 0.1421, 0, 0.46469, 0.15608, 0.80702, 0.39916, 0.96502, 0.68275, 0.96502, 0.91773, 0.87285, 0.99065, 0.51077, 0.9866, 0, 0.69491, 0.06968, 0.43967, 0.08944, 0.23306, 0.1026, 0.53286, 0.5108 ], + "triangles": [ 5, 4, 11, 4, 3, 11, 3, 2, 11, 5, 11, 6, 11, 1, 10, 10, 9, 11, 11, 2, 1, 10, 1, 0, 11, 8, 6, 11, 9, 8, 8, 7, 6 ], + "vertices": [ 1, 40, -32.75, -4.31, 1, 1, 40, -34.26, -12.05, 1, 2, 40, -28.17, -20.27, 0.83, 43, 26.31, -8.53, 0.17, 2, 40, -18.69, -24.06, 0.73, 43, 18.18, -2.35, 0.27, 2, 40, -7.63, -24.06, 0.76, 43, 7.51, 0.59, 0.24, 1, 40, 1.53, -21.85, 1, 1, 40, 4.38, -13.16, 1, 1, 40, 4.22, -0.9, 1, 2, 40, -7.16, -2.57, 0.59, 41, 6.51, 3.92, 0.41, 2, 40, -17.11, -3.04, 0.53, 41, 16.18, 6.34, 0.47, 2, 40, -25.17, -3.36, 0.76, 41, 24.02, 8.23, 0.24, 1, 40, -13.48, -13.16, 1 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 39, + "height": 24 + } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { "name": "boy/eyebrow-front", "x": 21.26, "y": 0.14, "rotation": -3.58, "width": 49, "height": 22 } + }, + "eye-front-iris": { + "eye-front-iris": { "name": "boy/eye-iris-front", "x": 0.22, "y": -0.71, "width": 36, "height": 35 } + }, + "eye-front-low-eyelid": { + "eye-front-low-eyelid": { + "name": "boy/eye-front-low-eyelid", + "type": "mesh", + "uvs": [ 0.00359, 0.67744, 0.23059, 1, 0.48195, 1, 0.80154, 0.72606, 1, 0.28852, 1, 0, 0.86259, 0, 0.72254, 0.19128, 0.47477, 0.42221, 0.27009, 0.43436, 0.069, 0.30067, 0, 0.42221 ], + "triangles": [ 1, 0, 9, 1, 9, 2, 2, 9, 8, 3, 2, 8, 8, 7, 3, 6, 5, 4, 7, 6, 4, 11, 10, 9, 0, 11, 9, 3, 7, 4 ], + "vertices": [ 1, 36, -3.95, -1.5, 1, 2, 36, 6.2, -5.54, 0.17, 37, 7.06, -4.39, 0.83, 2, 36, 17.26, -5.54, 0.56, 37, 17.95, -2.49, 0.44, 2, 36, 31.32, -1.98, 0.83, 37, 31.19, 3.44, 0.17, 1, 36, 40.05, 3.71, 1, 1, 36, 40.05, 7.46, 1, 1, 36, 34, 7.46, 1, 2, 36, 27.84, 4.97, 0.83, 37, 26.57, 9.69, 0.17, 2, 36, 16.94, 1.97, 0.56, 37, 16.35, 4.86, 0.44, 2, 36, 7.93, 1.81, 0.17, 37, 7.5, 3.15, 0.83, 1, 36, -0.91, 3.55, 1, 1, 36, -3.95, 1.97, 1 ], + "hull": 12, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 0, 22 ], + "width": 44, + "height": 13 + } + }, + "eye-front-pupil": { + "eye-front-pupil": { "name": "boy/eye-front-pupil", "x": -0.04, "y": -0.47, "width": 17, "height": 17 } + }, + "eye-front-up-eyelid": { + "eye-front-up-eyelid": { + "name": "boy/eye-front-up-eyelid", + "type": "mesh", + "uvs": [ 0.99382, 0.82748, 0.77725, 0.86546, 0.51988, 0.9106, 0.24969, 0.95799, 0.01014, 1, 0, 0.48275, 0.24339, 0.2556, 0.51727, 0, 0.77229, 0.0198, 1, 0.03748 ], + "triangles": [ 1, 2, 8, 4, 5, 3, 1, 8, 0, 0, 8, 9, 8, 2, 7, 7, 2, 6, 2, 3, 6, 3, 5, 6 ], + "vertices": [ 1, 34, 54.61, -3.86, 1, 2, 35, 39.18, -13.38, 0.22, 34, 41.18, -4.27, 0.78, 2, 35, 23.51, -10.3, 0.48, 34, 25.22, -4.77, 0.52, 2, 35, 7.07, -7.05, 0.94, 34, 8.47, -5.29, 0.06, 1, 34, -6.38, -5.75, 1, 1, 34, -7.01, -0.06, 1, 2, 35, 8.42, 0.56, 0.94, 34, 8.08, 2.43, 0.06, 2, 35, 25.6, -0.5, 0.48, 34, 25.06, 5.25, 0.52, 2, 35, 40.96, -4.25, 0.22, 34, 40.87, 5.03, 0.78, 1, 34, 54.99, 4.83, 1 ], + "hull": 10, + "edges": [ 8, 10, 0, 18, 10, 12, 12, 14, 4, 6, 6, 8, 6, 12, 4, 14, 0, 2, 2, 4, 14, 16, 16, 18 ], + "width": 62, + "height": 11 + } + }, + "eye-front-up-eyelid-back": { + "eye-front-up-eyelid-back": { + "name": "boy/eye-front-up-eyelid-back", + "type": "mesh", + "uvs": [ 0, 0.93436, 0.15772, 0.9219, 0.48014, 0.89643, 0.78654, 0.87222, 1, 0.85536, 1, 0.58325, 0.60474, 0, 0.45276, 0.00159, 0.23101, 0.00391, 0, 0.63591 ], + "triangles": [ 7, 2, 1, 3, 6, 5, 1, 9, 8, 4, 3, 5, 0, 9, 1, 2, 6, 3, 2, 7, 6, 1, 8, 7 ], + "vertices": [ 1, 34, 0.25, -2.59, 1, 2, 34, 8.45, -2.37, 0.1, 35, 7.71, -4.2, 0.9, 2, 34, 25.22, -1.91, 0.56, 35, 24.15, -7.51, 0.44, 2, 34, 41.15, -1.47, 0.85, 35, 39.77, -10.65, 0.15, 1, 34, 52.25, -1.17, 1, 1, 34, 52.25, 3.73, 1, 1, 32, 8.58, 40.07, 1, 1, 32, 0.67, 40.04, 1, 1, 32, -10.86, 40, 1, 1, 34, 0.25, 2.78, 1 ], + "hull": 10, + "edges": [ 8, 10, 16, 18, 0, 18, 0, 2, 2, 4, 4, 6, 6, 8, 12, 14, 14, 16, 14, 4, 2, 16, 6, 12, 10, 12 ], + "width": 52, + "height": 18 + } + }, + "eye-front-white": { + "eye-front-white": { + "name": "boy/eye-white-front", + "type": "mesh", + "uvs": [ 0.1783, 0.99386, 0.01136, 0.67178, 0.02924, 0.05194, 0.26177, 0.07624, 0.50324, 0.03978, 0.75962, 0.02763, 1, 0, 0.99215, 0.38009, 0.9057, 0.73863, 0.71192, 0.86624, 0.50622, 0.93309, 0.32438, 0.96348, 0.47343, 0.50162 ], + "triangles": [ 12, 5, 7, 4, 5, 12, 1, 3, 12, 1, 2, 3, 12, 3, 4, 7, 5, 6, 9, 12, 7, 0, 1, 11, 8, 9, 7, 10, 11, 12, 10, 12, 9, 11, 1, 12 ], + "vertices": [ 2, 37, 0.02, -3.61, 0.1401, 36, -0.6, -3.56, 0.8599, 2, 36, -9.45, 4.82, 0.34964, 34, -0.47, -15.04, 0.65036, 1, 34, 0.48, 1.08, 1, 2, 35, 12.58, -2.43, 0.42, 34, 12.8, 0.44, 0.58, 2, 35, 25.26, -4.37, 0.39, 34, 25.6, 1.39, 0.61, 2, 35, 38.58, -7.11, 0.19, 34, 39.19, 1.71, 0.81, 1, 34, 51.93, 2.43, 1, 2, 36, 42.54, 12.4, 0.14016, 34, 51.51, -7.46, 0.85984, 1, 36, 37.95, 3.08, 1, 2, 37, 27.31, 4.53, 0.42667, 36, 27.68, -0.24, 0.57333, 2, 37, 16.87, 0.94, 0.84, 36, 16.78, -1.98, 0.16, 1, 37, 7.51, -1.5, 1, 2, 37, 13.23, 11.69, 0.52, 34, 24.02, -10.62, 0.48 ], + "hull": 12, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 0, 22 ], + "width": 53, + "height": 26 + } + }, + "hair-back": { + "hair-back": { + "name": "boy/hair-back", + "type": "mesh", + "uvs": [ 0.72377, 0.13142, 0.82972, 0.05228, 0.85484, 0.14394, 0.9241, 0.10728, 0.99848, 0.11545, 0.99884, 0.27436, 0.99943, 0.531, 1, 0.78235, 0.83167, 0.64513, 0.71204, 1, 0, 1, 0, 0, 0.59007, 0, 0.71673, 0.30031, 0.80118, 0.34254, 0.91866, 0.31098, 0.91187, 0.51672 ], + "triangles": [ 0, 1, 2, 13, 12, 0, 13, 0, 2, 5, 15, 2, 3, 5, 2, 5, 3, 4, 14, 13, 2, 15, 14, 2, 16, 14, 15, 15, 5, 6, 16, 15, 6, 8, 14, 16, 8, 16, 6, 7, 8, 6, 13, 10, 11, 13, 11, 12, 8, 9, 10, 13, 8, 10, 8, 13, 14 ], + "vertices": [ 2, 6, 156.98, -52.6, 0.91, 30, 105.42, 83.77, 0.09, 3, 6, 170.88, -77.77, 0.586, 30, 131.16, 96.59, 0.23935, 49, 58.44, 47.85, 0.17464, 3, 6, 156.31, -84.5, 0.61272, 30, 137.27, 81.74, 0.25026, 49, 69.48, 36.2, 0.13702, 3, 6, 162.95, -101.07, 0.57311, 30, 154.1, 87.68, 0.23409, 49, 83.04, 47.8, 0.1928, 3, 6, 162.4, -119.18, 0.5041, 30, 172.17, 86.36, 0.2059, 49, 100.38, 53.08, 0.29, 3, 6, 136.68, -120.36, 0.5041, 30, 172.26, 60.62, 0.2059, 49, 109.74, 29.09, 0.29, 3, 6, 95.15, -122.26, 0.5041, 30, 172.4, 19.04, 0.2059, 49, 124.85, -9.64, 0.29, 3, 6, 54.47, -124.13, 0.5041, 30, 172.54, -21.68, 0.2059, 49, 139.65, -47.58, 0.29, 2, 6, 74.95, -82.32, 0.91, 30, 131.64, 0.55, 0.09, 2, 6, 16.28, -55.71, 0.91, 30, 102.57, -56.94, 0.09, 2, 6, 8.94, 117.16, 0.91, 30, -70.46, -56.94, 0.09, 2, 6, 170.8, 124.02, 0.91, 30, -70.46, 105.06, 0.09, 2, 6, 176.88, -19.23, 0.91, 30, 72.93, 105.06, 0.09, 2, 6, 129.57, -52.05, 0.91, 30, 103.71, 56.41, 0.09, 2, 6, 123.61, -72.84, 0.71, 30, 124.23, 49.57, 0.29, 3, 6, 129.93, -101.15, 0.58764, 30, 152.78, 54.68, 0.24002, 49, 93.7, 16.54, 0.17234, 3, 6, 96.56, -100.91, 0.61135, 30, 151.13, 21.35, 0.24971, 49, 104.17, -15.15, 0.13894 ], + "hull": 13, + "edges": [ 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24, 0, 2, 8, 10, 30, 10, 10, 12, 12, 14, 32, 12, 8, 6, 6, 4, 4, 2 ], + "width": 243, + "height": 162 + } + }, + "hair-bangs": { + "hair-bangs": { + "name": "boy/hair-bangs", + "type": "mesh", + "uvs": [ 0.21816, 0.2794, 0.12151, 0.44214, 0.03901, 0.65009, 0, 0.84447, 0, 1, 0.11916, 0.99365, 0.21344, 0.83543, 0.29594, 0.65009, 0.36194, 0.39242, 0.4303, 0.5416, 0.53166, 0.65913, 0.67308, 0.74954, 0.7603, 0.61393, 0.69901, 0.51447, 0.81923, 0.55516, 0.93473, 0.51447, 1, 0.41954, 1, 0.27036, 0.9253, 0.16187, 0.8098, 0.06694, 0.68016, 0.00817, 0.38787, 0.00365, 0.57307, 0.38232 ], + "triangles": [ 4, 3, 5, 5, 3, 6, 3, 2, 6, 6, 2, 7, 11, 10, 12, 10, 13, 12, 10, 9, 13, 2, 1, 7, 7, 1, 8, 14, 13, 15, 9, 22, 13, 9, 8, 22, 15, 13, 16, 16, 13, 17, 1, 0, 8, 18, 17, 13, 13, 22, 18, 22, 8, 21, 8, 0, 21, 22, 19, 18, 22, 20, 19, 22, 21, 20 ], + "vertices": [ 3, 6, 125.65, 24.16, 0.819, 29, -61.51, 56.32, 0.09, 48, 23.45, -7.43, 0.091, 3, 6, 113.21, 37.17, 0.64201, 29, -75.04, 44.44, 0.09, 48, 40.92, -11.79, 0.26799, 3, 6, 97.55, 48.07, 0.54508, 29, -86.59, 29.26, 0.06169, 48, 59.97, -12.64, 0.39323, 3, 6, 83.15, 52.92, 0.4171, 29, -92.05, 15.07, 0.07361, 48, 74.75, -9.05, 0.5093, 3, 6, 71.8, 52.44, 0.37688, 29, -92.05, 3.72, 0.06651, 48, 84.08, -2.59, 0.55661, 3, 6, 72.97, 35.8, 0.39111, 29, -75.37, 4.18, 0.06902, 48, 74.2, 10.86, 0.53987, 3, 6, 85.07, 23.1, 0.53235, 29, -62.17, 15.73, 0.09394, 48, 57.19, 15.14, 0.37371, 3, 6, 99.08, 12.13, 0.64178, 29, -50.62, 29.26, 0.12, 48, 39.49, 16.93, 0.23822, 2, 6, 118.26, 3.7, 0.86, 29, -41.38, 48.07, 0.14, 3, 6, 107.79, -6.33, 0.89872, 29, -31.81, 37.18, 0.05965, 49, 10.97, -34.81, 0.04163, 3, 6, 99.82, -20.87, 0.76196, 29, -17.62, 28.6, 0.10658, 49, 27.3, -37.7, 0.13146, 3, 6, 94.06, -40.93, 0.59399, 29, 2.18, 22, 0.10482, 49, 48.15, -36.72, 0.30119, 3, 6, 104.47, -52.71, 0.60482, 29, 14.39, 31.9, 0.10673, 49, 55.97, -23.09, 0.28845, 3, 6, 111.36, -43.83, 0.69544, 29, 5.81, 39.16, 0.08561, 49, 45.35, -19.41, 0.21895, 3, 6, 109.11, -60.77, 0.59573, 29, 22.64, 36.19, 0.09904, 49, 62.12, -16.12, 0.30524, 3, 6, 112.76, -76.8, 0.52077, 29, 38.81, 39.16, 0.0919, 49, 76.14, -7.52, 0.38732, 3, 6, 120.07, -85.63, 0.5084, 29, 47.95, 46.09, 0.08972, 49, 82.16, 2.24, 0.40188, 3, 6, 130.95, -85.17, 0.57569, 29, 47.95, 56.98, 0.08663, 49, 78.24, 12.4, 0.33769, 3, 6, 138.42, -74.39, 0.71063, 29, 37.49, 64.9, 0.04692, 49, 65.63, 16.02, 0.24246, 2, 6, 144.66, -57.94, 0.86805, 49, 48.05, 16.66, 0.13195, 2, 6, 148.18, -39.62, 0.96256, 49, 29.57, 14.12, 0.03744, 2, 6, 146.77, 1.27, 0.86, 29, -37.75, 76.45, 0.14, 3, 6, 120.25, -25.8, 0.89676, 29, -11.82, 48.81, 0.02582, 49, 25.43, -16.76, 0.07742 ], + "hull": 22, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 42 ], + "width": 140, + "height": 73 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "boy/hair-bangs", + "type": "mesh", + "uvs": [ 0.21816, 0.2794, 0.12151, 0.44214, 0.03901, 0.65009, 0, 0.84447, 0, 1, 0.11916, 0.99365, 0.21344, 0.83543, 0.29594, 0.65009, 0.36194, 0.39242, 0.4303, 0.5416, 0.53166, 0.65913, 0.67308, 0.74954, 0.7603, 0.61393, 0.69901, 0.51447, 0.81923, 0.55516, 0.93473, 0.51447, 1, 0.41954, 1, 0.27036, 0.9253, 0.16187, 0.8098, 0.06694, 0.68016, 0.00817, 0.38787, 0.00365, 0.57307, 0.38232 ], + "triangles": [ 4, 3, 5, 5, 3, 6, 3, 2, 6, 6, 2, 7, 11, 10, 12, 10, 13, 12, 10, 9, 13, 2, 1, 7, 7, 1, 8, 14, 13, 15, 9, 22, 13, 9, 8, 22, 15, 13, 16, 16, 13, 17, 1, 0, 8, 18, 17, 13, 13, 22, 18, 22, 8, 21, 8, 0, 21, 22, 19, 18, 22, 20, 19, 22, 21, 20 ], + "vertices": [ 3, 6, 125.65, 24.16, 0.819, 29, -61.51, 56.32, 0.09, 48, 23.45, -7.43, 0.091, 3, 6, 113.21, 37.17, 0.64201, 29, -75.04, 44.44, 0.09, 48, 40.92, -11.79, 0.26799, 3, 6, 97.55, 48.07, 0.54508, 29, -86.59, 29.26, 0.06169, 48, 59.97, -12.64, 0.39323, 3, 6, 83.15, 52.92, 0.4171, 29, -92.05, 15.07, 0.07361, 48, 74.75, -9.05, 0.5093, 3, 6, 71.8, 52.44, 0.37688, 29, -92.05, 3.72, 0.06651, 48, 84.08, -2.59, 0.55661, 3, 6, 72.97, 35.8, 0.39111, 29, -75.37, 4.18, 0.06902, 48, 74.2, 10.86, 0.53987, 3, 6, 85.07, 23.1, 0.53235, 29, -62.17, 15.73, 0.09394, 48, 57.19, 15.14, 0.37371, 3, 6, 99.08, 12.13, 0.64178, 29, -50.62, 29.26, 0.12, 48, 39.49, 16.93, 0.23822, 2, 6, 118.26, 3.7, 0.86, 29, -41.38, 48.07, 0.14, 3, 6, 107.79, -6.33, 0.89872, 29, -31.81, 37.18, 0.05965, 49, 10.97, -34.81, 0.04163, 3, 6, 99.82, -20.87, 0.76196, 29, -17.62, 28.6, 0.10658, 49, 27.3, -37.7, 0.13146, 3, 6, 94.06, -40.93, 0.59399, 29, 2.18, 22, 0.10482, 49, 48.15, -36.72, 0.30119, 3, 6, 104.47, -52.71, 0.60482, 29, 14.39, 31.9, 0.10673, 49, 55.97, -23.09, 0.28845, 3, 6, 111.36, -43.83, 0.69544, 29, 5.81, 39.16, 0.08561, 49, 45.35, -19.41, 0.21895, 3, 6, 109.11, -60.77, 0.59573, 29, 22.64, 36.19, 0.09904, 49, 62.12, -16.12, 0.30524, 3, 6, 112.76, -76.8, 0.52077, 29, 38.81, 39.16, 0.0919, 49, 76.14, -7.52, 0.38732, 3, 6, 120.07, -85.63, 0.5084, 29, 47.95, 46.09, 0.08972, 49, 82.16, 2.24, 0.40188, 3, 6, 130.95, -85.17, 0.57569, 29, 47.95, 56.98, 0.08663, 49, 78.24, 12.4, 0.33769, 3, 6, 138.42, -74.39, 0.71063, 29, 37.49, 64.9, 0.04692, 49, 65.63, 16.02, 0.24246, 2, 6, 144.66, -57.94, 0.86805, 49, 48.05, 16.66, 0.13195, 2, 6, 148.18, -39.62, 0.96256, 49, 29.57, 14.12, 0.03744, 2, 6, 146.77, 1.27, 0.86, 29, -37.75, 76.45, 0.14, 3, 6, 120.25, -25.8, 0.89676, 29, -11.82, 48.81, 0.02582, 49, 25.43, -16.76, 0.07742 ], + "hull": 22, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 42 ], + "width": 140, + "height": 73 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch", + "type": "mesh", + "color": "ff4b45ff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "boy/hair-side", + "type": "mesh", + "uvs": [ 0.76395, 0.00237, 0.91575, 0.43213, 1, 0.68539, 0.95348, 0.8591, 0.91575, 1, 0.36135, 1, 0.33144, 0.88524, 0.29536, 0.74678, 0, 0.73911, 0, 0.49737, 0.59236, 0, 0.42735, 0.46668 ], + "triangles": [ 6, 7, 3, 4, 5, 6, 3, 4, 6, 11, 9, 10, 7, 8, 9, 1, 11, 10, 1, 10, 0, 11, 7, 9, 2, 7, 11, 2, 11, 1, 3, 7, 2 ], + "vertices": [ 1, 6, 119.95, 47.18, 1, 2, 6, 83.34, 38.03, 0.86, 29, -77.16, 14.64, 0.14, 3, 6, 61.76, 32.9, 0.61654, 46, 39.22, 17.05, 0.21346, 29, -72.95, -7.14, 0.17, 3, 6, 46.73, 34.59, 0.41184, 46, 53.6, 12.39, 0.41816, 29, -75.27, -22.08, 0.17, 3, 6, 34.55, 35.96, 0.24581, 46, 65.26, 8.61, 0.58419, 29, -77.16, -34.2, 0.17, 3, 6, 33.37, 63.65, 0.2605, 46, 60.87, -18.76, 0.6395, 29, -104.88, -34.2, 0.1, 3, 6, 43.17, 65.57, 0.35187, 46, 50.89, -18.68, 0.54813, 29, -106.38, -24.33, 0.1, 3, 6, 54.99, 67.87, 0.46211, 46, 38.85, -18.57, 0.43789, 29, -108.18, -12.42, 0.1, 2, 6, 55.02, 82.66, 0.55402, 46, 35.86, -33.05, 0.44598, 2, 6, 75.79, 83.54, 0.96, 29, -122.95, 9.03, 0.04, 1, 6, 119.79, 55.76, 1, 2, 6, 79.34, 62.3, 0.76, 29, -101.58, 11.67, 0.24 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 8, 10, 14, 16, 16, 18, 18, 20, 0, 20, 4, 6, 6, 8, 10, 12, 12, 14, 4, 14 ], + "width": 50, + "height": 86 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "boy/hair-side", + "type": "mesh", + "uvs": [ 0.76395, 0.00237, 0.91575, 0.43213, 1, 0.68539, 0.95348, 0.8591, 0.91575, 1, 0.36135, 1, 0.33144, 0.88524, 0.29536, 0.74678, 0, 0.73911, 0, 0.49737, 0.59236, 0, 0.42735, 0.46668 ], + "triangles": [ 6, 7, 3, 4, 5, 6, 3, 4, 6, 11, 9, 10, 7, 8, 9, 1, 11, 10, 1, 10, 0, 11, 7, 9, 2, 7, 11, 2, 11, 1, 3, 7, 2 ], + "vertices": [ 1, 6, 119.95, 47.18, 1, 2, 6, 83.34, 38.03, 0.86, 29, -77.16, 14.64, 0.14, 3, 6, 61.76, 32.9, 0.61654, 46, 39.22, 17.05, 0.21346, 29, -72.95, -7.14, 0.17, 3, 6, 46.73, 34.59, 0.41184, 46, 53.6, 12.39, 0.41816, 29, -75.27, -22.08, 0.17, 3, 6, 34.55, 35.96, 0.24581, 46, 65.26, 8.61, 0.58419, 29, -77.16, -34.2, 0.17, 3, 6, 33.37, 63.65, 0.2605, 46, 60.87, -18.76, 0.6395, 29, -104.88, -34.2, 0.1, 3, 6, 43.17, 65.57, 0.35187, 46, 50.89, -18.68, 0.54813, 29, -106.38, -24.33, 0.1, 3, 6, 54.99, 67.87, 0.46211, 46, 38.85, -18.57, 0.43789, 29, -108.18, -12.42, 0.1, 2, 6, 55.02, 82.66, 0.55402, 46, 35.86, -33.05, 0.44598, 2, 6, 75.79, 83.54, 0.96, 29, -122.95, 9.03, 0.04, 1, 6, 119.79, 55.76, 1, 2, 6, 79.34, 62.3, 0.76, 29, -101.58, 11.67, 0.24 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 8, 10, 14, 16, 16, 18, 18, 20, 0, 20, 4, 6, 6, 8, 10, 12, 12, 14, 4, 14 ], + "width": 50, + "height": 86 + } + }, + "hand-back": { + "hand-back-fingers": { "name": "boy/hand-backfingers", "x": 11.59, "y": -2.84, "rotation": 90, "width": 38, "height": 42 } + }, + "hand-front": { + "hand-front-fingers": { "name": "boy/hand-front-fingers", "x": 11.59, "y": 1.97, "rotation": 90, "width": 38, "height": 42 } + }, + "hat": { + "hat": { + "name": "boy/hat", + "type": "mesh", + "uvs": [ 1, 0.67762, 0.84575, 0.80843, 0.65489, 0.90654, 0.43192, 0.966, 0.225, 0.99573, 0.03592, 0.98978, 0, 0.85303, 0.027, 0.47546, 0.07694, 0.46357, 0.10013, 0.306, 0.18575, 0.11573, 0.31954, 0.01465, 0.49257, 0, 0.64775, 0.03249, 0.7637, 0.14546, 0.83327, 0.31492, 0.9064, 0.32384, 1, 0.53789, 0.22857, 0.48438, 0.39089, 0.45168, 0.59424, 0.40708, 0.74765, 0.3506, 0.24819, 0.2733, 0.38197, 0.25843, 0.57997, 0.21384 ], + "triangles": [ 20, 24, 21, 23, 24, 20, 19, 23, 20, 22, 10, 11, 22, 23, 19, 23, 22, 11, 23, 11, 12, 23, 12, 24, 24, 12, 13, 24, 13, 14, 21, 24, 14, 19, 20, 2, 8, 9, 18, 18, 19, 3, 15, 17, 21, 17, 15, 16, 0, 1, 17, 1, 21, 17, 6, 7, 8, 18, 6, 8, 2, 20, 1, 3, 19, 2, 4, 6, 18, 4, 5, 6, 18, 3, 4, 20, 21, 1, 18, 9, 22, 9, 10, 22, 18, 22, 19, 21, 14, 15 ], + "vertices": [ 1, 50, 13.89, -96.68, 1, 2, 50, -1.83, -68.79, 0.82, 52, -67.01, -62.58, 0.18, 2, 50, -14.21, -33.97, 0.72, 52, -74.39, -26.37, 0.28, 2, 50, -22.55, 6.96, 0.72, 52, -76.91, 15.33, 0.28, 2, 50, -27.47, 45.07, 0.82, 52, -76.43, 53.75, 0.18, 1, 50, -28.29, 80.05, 1, 1, 50, -13.41, 87.33, 1, 2, 50, 28.67, 84.11, 0.94502, 51, 49.2, 82.46, 0.05498, 3, 50, 30.39, 74.94, 0.90664, 51, 49.61, 73.14, 0.07509, 52, -14.96, 75.21, 0.01827, 2, 50, 48.04, 71.39, 0.83494, 51, 66.59, 67.15, 0.16506, 2, 50, 69.81, 56.46, 0.75704, 51, 86.05, 49.32, 0.24296, 2, 50, 82.07, 32.21, 0.73015, 51, 94.79, 23.58, 0.26985, 3, 50, 85.05, 0.3, 0.71911, 51, 93.27, -8.43, 0.27957, 52, 28.7, -6.36, 0.00132, 2, 50, 82.67, -28.54, 0.71902, 51, 86.86, -36.65, 0.28098, 2, 50, 71.05, -50.5, 0.7727, 51, 72.27, -56.76, 0.2273, 2, 50, 52.8, -64.16, 0.9302, 51, 52.29, -67.73, 0.0698, 2, 50, 52.39, -77.72, 0.97146, 51, 49.98, -81.09, 0.02854, 1, 50, 29.38, -96.02, 1, 3, 50, 29.27, 46.82, 0.76552, 51, 44.55, 45.45, 0.08448, 52, -20.01, 47.52, 0.15, 3, 50, 34.17, 16.97, 0.75083, 51, 45.22, 15.21, 0.07917, 52, -19.35, 17.28, 0.17, 3, 50, 40.71, -20.41, 0.75063, 51, 46.45, -22.71, 0.07937, 52, -18.11, -20.65, 0.17, 3, 50, 48.17, -48.5, 0.83648, 51, 49.91, -51.57, 0.09352, 52, -14.66, -49.51, 0.07, 3, 50, 52.83, 44.18, 0.71547, 51, 67.51, 39.54, 0.16811, 52, 2.95, 41.61, 0.11643, 3, 50, 55.53, 19.52, 0.68597, 51, 66.73, 14.75, 0.16403, 52, 2.16, 16.81, 0.15, 3, 50, 62.02, -16.86, 0.70061, 51, 68.06, -22.19, 0.18939, 52, 3.49, -20.13, 0.11 ], + "hull": 18, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 0, 34, 44, 22 ], + "width": 185, + "height": 111 + } + }, + "leg-back": { + "leg-back": { + "name": "boy/leg-front", + "type": "mesh", + "uvs": [ 0.07635, 0.9541, 0.06673, 0.89806, 0.05329, 0.83742, 0.06846, 0.78076, 0.1147, 0.71609, 0.09104, 0.65737, 0.07898, 0.59167, 0.08077, 0.52912, 0.07229, 0.46755, 0.06309, 0.4008, 0.05461, 0.3393, 0.04512, 0.27044, 0.0355, 0.20062, 0.02026, 0.09003, 0.0082, 0.0025, 0.86785, 0, 0.85558, 0.08164, 0.83969, 0.18726, 0.82872, 0.26024, 0.81835, 0.32916, 0.80924, 0.38977, 0.79934, 0.45558, 0.79031, 0.51561, 0.77996, 0.58393, 0.76519, 0.64798, 0.75106, 0.708, 0.81982, 0.77305, 0.82792, 0.82913, 0.81561, 0.88039, 0.82497, 0.91422, 1, 0.93396, 0.9918, 1, 0.08936, 1, 0.44189, 0.0854, 0.44189, 0.52429, 0.44189, 0.46108, 0.44189, 0.39534, 0.44189, 0.33482, 0.44189, 0.26387, 0.44189, 0.19291, 0.44582, 0.95343, 0.44247, 0.58821, 0.44304, 0.64978, 0.44358, 0.70926, 0.44851, 0.77908, 0.44475, 0.83655, 0.44521, 0.88665 ], + "triangles": [ 39, 11, 12, 18, 39, 17, 39, 12, 33, 39, 33, 17, 33, 12, 13, 17, 33, 16, 13, 14, 33, 16, 33, 15, 15, 33, 14, 38, 10, 11, 19, 38, 18, 38, 11, 39, 38, 39, 18, 36, 8, 9, 21, 36, 20, 36, 9, 37, 36, 37, 20, 37, 9, 10, 20, 37, 19, 37, 10, 38, 37, 38, 19, 7, 34, 41, 23, 34, 22, 34, 7, 35, 34, 35, 22, 35, 7, 8, 22, 35, 21, 35, 8, 36, 35, 36, 21, 42, 5, 41, 5, 6, 41, 42, 41, 24, 24, 41, 23, 6, 7, 41, 41, 34, 23, 2, 3, 45, 28, 45, 27, 44, 4, 43, 44, 43, 25, 43, 4, 42, 4, 5, 42, 43, 42, 25, 25, 42, 24, 1, 2, 45, 45, 26, 27, 45, 44, 26, 45, 3, 44, 44, 25, 26, 44, 3, 4, 40, 46, 28, 40, 28, 29, 0, 1, 46, 40, 0, 46, 32, 0, 40, 40, 29, 30, 32, 40, 31, 31, 40, 30, 1, 45, 46, 46, 45, 28 ], + "vertices": [ 3, 103, -20.08, 10.6, 0.75, 94, 23.49, -22.3, 0.24676, 95, 59.84, -22.28, 0.00324, 2, 103, -20.97, 28.44, 0.51, 94, 5.72, -22.89, 0.49, 2, 103, -22.07, 47.56, 0.31, 96, 58.17, -23.66, 0.69, 3, 103, -21.4, 65.39, 0.1116, 95, 4.59, -22.78, 0.8184, 96, 40.52, -22.77, 0.07, 4, 103, -18.75, 86.02, 0.01, 95, -16.13, -19.93, 0.10405, 96, 20.1, -19.96, 0.87254, 97, 56.45, -19.89, 0.01341, 3, 95, -35.05, -21.34, 1.0E-4, 96, 1.46, -21.4, 0.56453, 97, 37.51, -21.4, 0.43537, 3, 96, -19.07, -22.08, 0.03286, 97, 16.65, -22.14, 0.91428, 98, 52.69, -22.08, 0.05286, 3, 97, -3.17, -22.02, 0.36522, 98, 32.86, -22.03, 0.63379, 99, 68.32, -21.96, 9.9E-4, 3, 97, -22.68, -22.46, 0.00771, 98, 13.36, -22.55, 0.84445, 99, 49.14, -22.52, 0.14784, 3, 98, -7.93, -23.09, 0.1958, 99, 28.2, -23.11, 0.80288, 100, 64.58, -23.1, 0.00132, 3, 98, -27.79, -23.57, 4.7E-4, 99, 8.67, -23.62, 0.7924, 100, 44.76, -23.62, 0.20713, 3, 99, -12.93, -24.2, 0.11943, 100, 22.84, -24.2, 0.86721, 101, 58.46, -24.21, 0.01336, 2, 100, 0.77, -24.79, 0.53411, 101, 36.71, -24.79, 0.46589, 1, 101, 1.72, -25.72, 1, 1, 101, -25.98, -26.46, 1, 1, 101, -26.33, 25.98, 1, 1, 101, -0.53, 25.24, 1, 2, 100, -3.13, 24.27, 0.4095, 101, 32.87, 24.27, 0.5905, 3, 99, -15.75, 23.6, 0.08894, 100, 19.96, 23.6, 0.87813, 101, 55.62, 23.59, 0.03292, 3, 98, -30.64, 23.03, 8.5E-4, 99, 5.77, 22.96, 0.71828, 100, 41.79, 22.97, 0.28088, 3, 98, -11.12, 22.43, 0.16727, 99, 24.96, 22.4, 0.82705, 100, 61.27, 22.42, 0.00568, 3, 97, -26.03, 21.9, 0.00115, 98, 9.83, 21.8, 0.86047, 99, 45.58, 21.82, 0.13838, 2, 97, -7.13, 21.27, 0.21266, 98, 28.73, 21.24, 0.78734, 3, 96, -21.14, 20.69, 0.01057, 97, 14.4, 20.61, 0.90163, 98, 50.27, 20.67, 0.0878, 2, 96, -1.28, 19.72, 0.4417, 97, 34.58, 19.72, 0.5583, 4, 103, 20.06, 88.71, 0.01, 95, -18.54, 18.89, 0.02159, 96, 17.65, 18.86, 0.95034, 97, 53.83, 18.92, 0.01808, 3, 103, 24.4, 68.19, 0.1116, 95, 2.32, 23.05, 0.8184, 96, 38.19, 23.06, 0.07, 2, 103, 25.14, 50.7, 0.31, 96, 55.61, 23.58, 0.69, 2, 103, 24.62, 34.65, 0.51, 94, 0.26, 22.8, 0.49, 3, 103, 25.37, 23.95, 0.52462, 94, 10.94, 23.37, 0.22, 95, 47.04, 23.38, 0.25538, 1, 103, 36.15, 17.9, 1, 1, 103, 36, -3.06, 1, 1, 103, -19.04, -3.97, 1, 1, 101, 0.45, 0, 1, 1, 98, 31.4, 0, 1, 1, 98, 11.41, 0, 1, 1, 99, 26.57, 0, 1, 1, 99, 7.43, 0, 1, 1, 100, 20.94, 0, 1, 1, 101, 34.45, 0, 1, 2, 103, 2.45, 11.15, 0.83, 94, 23.32, 0.24, 0.17, 2, 97, 15.67, 0.04, 0.99997, 98, 51.62, 0.1, 3.0E-5, 2, 96, -0.81, 0.07, 0.37159, 97, 35.13, 0.07, 0.62841, 2, 103, 1.32, 88.25, 0.01, 96, 18, 0.1, 0.99, 3, 103, 1.78, 66.12, 0.1116, 95, 4.15, 0.4, 0.8184, 96, 40.04, 0.41, 0.07, 2, 103, 1.81, 48.1, 0.31, 96, 57.92, 0.22, 0.69, 3, 103, 2.06, 32.36, 0.38323, 94, 2.19, 0.2, 0.57, 95, 38.18, 0.2, 0.04677 ], + "hull": 33, + "edges": [ 28, 30, 58, 60, 60, 62, 62, 64, 42, 44, 26, 28, 66, 26, 30, 32, 66, 32, 70, 68, 42, 70, 14, 16, 70, 16, 40, 42, 72, 70, 40, 72, 16, 18, 72, 18, 38, 40, 74, 72, 38, 74, 18, 20, 74, 20, 36, 38, 76, 74, 36, 76, 20, 22, 76, 22, 32, 34, 34, 36, 66, 78, 78, 76, 34, 78, 22, 24, 24, 26, 78, 24, 68, 82, 46, 82, 82, 12, 46, 48, 84, 82, 48, 84, 12, 10, 84, 10, 48, 50, 86, 84, 50, 86, 10, 8, 86, 8, 50, 52, 88, 86, 52, 88, 8, 6, 88, 6, 52, 54, 90, 88, 54, 90, 6, 4, 90, 4, 54, 56, 56, 58, 80, 92, 92, 90, 56, 92, 4, 2, 92, 2, 58, 80, 2, 0, 0, 64, 80, 0, 12, 14, 44, 46, 60, 80 ], + "width": 61, + "height": 316 + } + }, + "leg-front": { + "leg-front": { + "name": "boy/leg-front", + "type": "mesh", + "uvs": [ 0.07635, 0.9541, 0.06673, 0.89806, 0.05329, 0.83742, 0.06846, 0.78076, 0.1147, 0.71609, 0.09104, 0.65737, 0.07898, 0.59167, 0.08077, 0.52912, 0.07229, 0.46755, 0.06309, 0.4008, 0.05461, 0.3393, 0.04512, 0.27044, 0.0355, 0.20062, 0.02026, 0.09003, 0.0082, 0.0025, 0.86785, 0, 0.85558, 0.08164, 0.83969, 0.18726, 0.82872, 0.26024, 0.81835, 0.32916, 0.80924, 0.38977, 0.79934, 0.45558, 0.79031, 0.51561, 0.77996, 0.58393, 0.76519, 0.64798, 0.75106, 0.708, 0.81982, 0.77305, 0.82792, 0.82913, 0.81561, 0.88039, 0.82497, 0.91422, 1, 0.93396, 0.9918, 1, 0.08936, 1, 0.44189, 0.0854, 0.44189, 0.52429, 0.44189, 0.46108, 0.44189, 0.39534, 0.44189, 0.33482, 0.44189, 0.26387, 0.44189, 0.19291, 0.44582, 0.95343, 0.44247, 0.58821, 0.44304, 0.64978, 0.44358, 0.70926, 0.44851, 0.77908, 0.44475, 0.83655, 0.44521, 0.88665 ], + "triangles": [ 38, 10, 11, 19, 38, 18, 38, 11, 39, 38, 39, 18, 39, 11, 12, 36, 8, 9, 21, 36, 20, 36, 9, 37, 36, 37, 20, 37, 9, 10, 20, 37, 19, 37, 10, 38, 37, 38, 19, 7, 34, 41, 23, 34, 22, 34, 7, 35, 34, 35, 22, 35, 7, 8, 22, 35, 21, 35, 8, 36, 35, 36, 21, 42, 5, 41, 5, 6, 41, 42, 41, 24, 24, 41, 23, 6, 7, 41, 41, 34, 23, 43, 4, 42, 43, 42, 25, 4, 5, 42, 44, 4, 43, 44, 43, 25, 25, 42, 24, 1, 2, 45, 28, 45, 27, 2, 3, 45, 45, 26, 27, 45, 44, 26, 45, 3, 44, 44, 3, 4, 46, 45, 28, 44, 25, 26, 18, 39, 17, 39, 12, 33, 39, 33, 17, 33, 12, 13, 17, 33, 16, 13, 14, 33, 16, 33, 15, 15, 33, 14, 32, 40, 31, 31, 40, 30, 32, 0, 40, 40, 29, 30, 40, 28, 29, 0, 1, 46, 1, 45, 46, 40, 0, 46, 40, 46, 28 ], + "vertices": [ 3, 102, -21.4, 12.07, 0.65, 28, 23.5, -22.3, 0.3448, 27, 59.45, -22.3, 0.00521, 3, 102, -21.96, 29.92, 0.51, 28, 5.76, -22.88, 0.33074, 27, 41.71, -22.88, 0.15926, 3, 102, -22.66, 49.08, 0.31148, 28, -13.39, -23.7, 0.0912, 27, 22.52, -23.7, 0.59732, 3, 102, -21.61, 66.95, 0.17, 27, 4.58, -22.78, 0.5805, 26, 40.54, -22.78, 0.2495, 4, 102, -18.4, 87.61, 0.03, 27, -15.86, -19.96, 0.10277, 26, 20.08, -19.96, 0.82804, 25, 56.01, -19.96, 0.03919, 3, 27, -34.44, -21.4, 7.9E-4, 26, 1.51, -21.4, 0.57156, 25, 37.44, -21.4, 0.42765, 3, 26, -19.27, -22.14, 0.05654, 25, 16.67, -22.14, 0.87764, 24, 52.6, -22.14, 0.06582, 2, 25, -3.13, -22.03, 0.47104, 24, 32.82, -22.03, 0.52896, 3, 25, -22.61, -22.55, 0.01665, 24, 13.34, -22.55, 0.87142, 23, 49.29, -22.55, 0.11193, 3, 24, -7.79, -23.11, 0.22064, 23, 28.17, -23.11, 0.77569, 22, 64.12, -23.11, 0.00367, 3, 24, -27.25, -23.62, 0.00219, 23, 8.7, -23.62, 0.77556, 22, 44.65, -23.62, 0.22225, 3, 21, 58.81, -24.2, 0.0114, 23, -13.09, -24.2, 0.12046, 22, 22.86, -24.2, 0.86813, 2, 21, 36.72, -24.79, 0.42237, 22, 0.77, -24.79, 0.57763, 2, 21, 1.72, -25.72, 0.99849, 22, -34.23, -25.72, 0.00151, 1, 21, -25.98, -26.46, 1, 1, 21, -26.33, 25.98, 1, 2, 21, -0.53, 25.24, 0.99997, 22, -36.48, 25.24, 3.0E-5, 2, 21, 32.85, 24.27, 0.56274, 22, -3.1, 24.27, 0.43726, 3, 21, 55.91, 23.6, 0.02334, 23, -15.99, 23.6, 0.05774, 22, 19.96, 23.6, 0.91892, 3, 24, -30.16, 22.96, 3.0E-4, 23, 5.79, 22.96, 0.6752, 22, 41.74, 22.96, 0.3245, 3, 24, -11, 22.41, 0.14886, 23, 24.95, 22.41, 0.84172, 22, 60.9, 22.41, 0.00941, 3, 25, -26.16, 21.8, 0.00663, 24, 9.79, 21.8, 0.80794, 23, 45.74, 21.8, 0.18543, 3, 25, -7.19, 21.25, 0.35697, 24, 28.76, 21.25, 0.64235, 23, 64.72, 21.25, 6.7E-4, 3, 26, -21.58, 20.62, 0.04097, 25, 14.4, 20.62, 0.83939, 24, 50.38, 20.63, 0.11963, 3, 26, -1.35, 19.72, 0.4338, 25, 34.64, 19.72, 0.56533, 24, 70.61, 19.73, 8.7E-4, 4, 102, 20.45, 89.06, 0.03, 27, -18.28, 18.86, 0.04202, 26, 17.66, 18.86, 0.84488, 25, 53.66, 18.87, 0.0831, 3, 102, 24.24, 68.6, 0.17, 27, 2.29, 23.05, 0.47119, 26, 38.23, 23.05, 0.35881, 2, 102, 24.6, 51.21, 0.32421, 27, 20.01, 23.55, 0.67579, 3, 102, 23.74, 35.21, 0.51, 28, 0.25, 22.8, 0.21249, 27, 36.2, 22.8, 0.27751, 3, 102, 24.29, 24.55, 0.73, 28, 10.95, 23.37, 0.25858, 27, 46.78, 23.36, 0.01142, 1, 102, 34.96, 18.3, 1, 1, 102, 34.41, -2.64, 1, 1, 102, -20.64, -2.52, 1, 1, 21, 0.45, 0, 1, 1, 24, 31.4, 0, 1, 1, 24, 11.41, 0, 1, 1, 23, 26.57, 0, 1, 1, 23, 7.43, 0, 1, 1, 22, 20.94, 0, 1, 1, 21, 34.45, 0, 1, 2, 102, 1.14, 12.19, 0.83, 28, 23.32, 0.24, 0.17, 1, 25, 15.67, 0.04, 1, 2, 26, -0.81, 0.07, 0.37007, 25, 35.14, 0.07, 0.62993, 2, 102, 1.77, 89.22, 0.03, 26, 18, 0.1, 0.97, 3, 102, 1.58, 67.1, 0.17, 27, 4.15, 0.4, 0.76746, 26, 40.07, 0.4, 0.06254, 2, 102, 1.23, 49.11, 0.22, 27, 22.3, 0.17, 0.78, 3, 102, 1.15, 33.38, 0.37, 28, 2.2, 0.2, 0.5638, 27, 38.15, 0.2, 0.0662 ], + "hull": 33, + "edges": [ 28, 30, 58, 60, 60, 62, 62, 64, 42, 44, 26, 28, 66, 26, 30, 32, 66, 32, 70, 68, 42, 70, 14, 16, 70, 16, 40, 42, 72, 70, 40, 72, 16, 18, 72, 18, 38, 40, 74, 72, 38, 74, 18, 20, 74, 20, 36, 38, 76, 74, 36, 76, 20, 22, 76, 22, 32, 34, 34, 36, 66, 78, 78, 76, 34, 78, 22, 24, 24, 26, 78, 24, 68, 82, 46, 82, 82, 12, 46, 48, 84, 82, 48, 84, 12, 10, 84, 10, 48, 50, 86, 84, 50, 86, 10, 8, 86, 8, 50, 52, 88, 86, 52, 88, 8, 6, 88, 6, 52, 54, 90, 88, 54, 90, 6, 4, 90, 4, 54, 56, 56, 58, 80, 92, 92, 90, 56, 92, 4, 2, 92, 2, 58, 80, 2, 0, 0, 64, 80, 0, 12, 14, 44, 46, 60, 80 ], + "width": 61, + "height": 316 + } + }, + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 }, + "mouth-smile": { "name": "boy/mouth-smile", "x": -4.12, "y": 2.56, "width": 57, "height": 13 } + }, + "nose": { + "nose": { + "name": "boy/nose", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 6, 51.55, -68.98, 0.63, 29, 28.41, -21.66, 0.37, 2, 6, 50.11, -35.01, 0.72, 29, -5.59, -21.66, 0.28, 2, 6, 69.09, -34.21, 0.72, 29, -5.59, -2.66, 0.28, 2, 6, 70.54, -68.18, 0.63, 29, 28.41, -2.66, 0.37 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 34, + "height": 19 + } + }, + "pompom": { + "pompom": { "name": "boy/pompom", "x": -48.24, "y": 11.74, "rotation": -95.63, "width": 96, "height": 85 } + }, + "sleeve-front": { + "sleeve-front": { + "name": "boy/arm-front", + "type": "mesh", + "uvs": [ 0, 0.9983, 1, 1, 1, 0.86682, 0.93575, 0.85962, 0.92543, 0.81301, 0.91517, 0.75475, 0.90967, 0.69766, 0.90374, 0.64195, 0.89852, 0.59071, 0.89321, 0.53993, 0.88593, 0.48173, 0.87995, 0.43392, 0.87387, 0.38539, 0.86778, 0.33662, 0.86019, 0.276, 0.85262, 0.21542, 0.84443, 0.15001, 0.83706, 0.09104, 0.82567, 0, 0.20656, 4.9E-4, 0.19476, 0.09288, 0.18669, 0.15618, 0.17892, 0.21703, 0.17122, 0.27738, 0.16365, 0.33672, 0.15684, 0.39004, 0.15032, 0.44113, 0.14396, 0.49098, 0.13775, 0.53965, 0.13226, 0.59099, 0.12603, 0.6493, 0.11997, 0.7051, 0.11515, 0.75592, 0.10543, 0.80835, 0.09698, 0.85907, 0.00989, 0.86774, 0.51288, 0.08992, 0.5068, 0.53843, 0.50952, 0.33772, 0.50435, 0.75817, 0.50554, 0.64894, 0.50328, 0.81283, 0.50817, 0.43751, 0.51115, 0.2178, 0.51199, 0.156, 0.51033, 0.27832, 0.50881, 0.38996, 0.50751, 0.48617, 0.50614, 0.59548, 0.5049, 0.70471, 0.50929, 0.85256 ], + "triangles": [ 0, 50, 1, 50, 0, 34, 0, 35, 34, 34, 33, 50, 50, 3, 1, 50, 4, 3, 3, 2, 1, 44, 36, 17, 44, 20, 36, 20, 19, 36, 36, 18, 17, 36, 19, 18, 33, 41, 50, 50, 41, 4, 4, 41, 5, 41, 39, 5, 33, 32, 41, 41, 32, 39, 39, 6, 5, 39, 49, 6, 32, 31, 39, 39, 31, 49, 31, 30, 49, 49, 7, 6, 49, 40, 7, 49, 30, 40, 30, 29, 40, 40, 8, 7, 40, 48, 8, 40, 29, 48, 48, 9, 8, 48, 37, 9, 29, 28, 48, 48, 28, 37, 9, 37, 10, 28, 27, 37, 37, 47, 10, 37, 27, 47, 27, 26, 47, 47, 11, 10, 47, 42, 11, 47, 26, 42, 26, 25, 42, 42, 12, 11, 42, 46, 12, 42, 25, 46, 25, 24, 46, 46, 13, 12, 46, 38, 13, 46, 24, 38, 38, 14, 13, 38, 45, 14, 24, 23, 38, 38, 23, 45, 45, 15, 14, 23, 22, 45, 45, 43, 15, 45, 22, 43, 43, 16, 15, 43, 44, 16, 22, 21, 43, 43, 21, 44, 21, 20, 44, 44, 17, 16 ], + "vertices": [ 1, 54, 30.3, -36.41, 1, 1, 54, 30.3, 34.59, 1, 1, 54, -0.09, 34.58, 1, 1, 54, -1.73, 30.02, 1, 3, 13, 65.08, 29.54, 0.00868, 12, 31.72, 29.7, 0.54327, 16, -1.8, 29.7, 0.44805, 3, 13, 51.72, 28.75, 0.09476, 12, 18.24, 28.84, 0.78295, 16, -14.97, 28.81, 0.12229, 4, 14, 72.39, 28.06, 1.0E-5, 13, 38.62, 28.29, 0.36416, 12, 5.03, 28.32, 0.62452, 16, -27.87, 28.25, 0.01131, 3, 14, 59.57, 27.66, 0.01697, 13, 25.84, 27.81, 0.71378, 12, -7.87, 27.77, 0.26925, 3, 14, 47.78, 27.3, 0.12736, 13, 14.09, 27.38, 0.81039, 12, -19.73, 27.28, 0.06225, 4, 15, 69.71, 26.86, 1.9E-4, 14, 36.09, 26.94, 0.41186, 13, 2.44, 26.95, 0.58392, 12, -31.48, 26.79, 0.00403, 3, 15, 56.29, 26.39, 0.03436, 14, 22.7, 26.43, 0.7688, 13, -10.92, 26.37, 0.19684, 3, 15, 45.26, 26, 0.17991, 14, 11.7, 26.02, 0.78189, 13, -21.89, 25.89, 0.03821, 4, 11, 66.92, 25.61, 4.0E-5, 15, 34.07, 25.6, 0.49682, 14, 0.53, 25.6, 0.5018, 13, -33.02, 25.41, 0.00134, 3, 11, 55.89, 25.21, 0.02124, 15, 22.83, 25.2, 0.80075, 14, -10.69, 25.18, 0.17801, 3, 11, 42.17, 24.71, 0.21905, 15, 8.85, 24.71, 0.76696, 14, -24.64, 24.66, 0.01399, 2, 11, 28.46, 24.21, 0.67585, 15, -5.12, 24.22, 0.32415, 2, 11, 13.66, 23.68, 0.96846, 15, -20.2, 23.68, 0.03154, 1, 8, 0.24, 23.24, 1, 1, 8, -20.51, 22.43, 1, 1, 8, -20.4, -21.52, 1, 1, 8, 0.66, -22.36, 1, 2, 11, 14.92, -23.03, 0.9591, 15, -18.93, -23.02, 0.0409, 2, 11, 28.69, -23.62, 0.67055, 15, -4.9, -23.62, 0.32945, 3, 11, 42.34, -24.21, 0.20785, 15, 9.01, -24.21, 0.77749, 14, -24.38, -24.26, 0.01467, 3, 11, 55.76, -24.78, 0.01896, 15, 22.69, -24.79, 0.80223, 14, -10.73, -24.81, 0.17882, 3, 15, 34.98, -25.31, 0.45683, 14, 1.54, -25.31, 0.5408, 13, -31.71, -25.5, 0.00238, 3, 15, 46.76, -25.81, 0.14032, 14, 13.3, -25.78, 0.80693, 13, -19.98, -25.9, 0.05275, 3, 15, 58.25, -26.3, 0.01945, 14, 24.77, -26.25, 0.7308, 13, -8.54, -26.3, 0.24975, 4, 15, 69.47, -26.77, 2.7E-4, 14, 35.97, -26.7, 0.41316, 13, 2.63, -26.69, 0.58179, 12, -31, -26.85, 0.00478, 3, 14, 47.78, -27.1, 0.12648, 13, 14.41, -27.02, 0.80795, 12, -19.11, -27.12, 0.06558, 3, 14, 61.2, -27.56, 0.01164, 13, 27.79, -27.4, 0.6672, 12, -5.6, -27.43, 0.32116, 3, 13, 40.6, -27.77, 0.30828, 12, 7.32, -27.73, 0.67545, 16, -25.51, -27.79, 0.01627, 3, 13, 52.26, -28.05, 0.08696, 12, 19.09, -27.95, 0.78468, 16, -14, -27.99, 0.12837, 3, 13, 64.29, -28.69, 0.00978, 12, 31.24, -28.52, 0.56264, 16, -2.14, -28.53, 0.42759, 1, 54, -1.86, -29.53, 1, 1, 54, 0.13, -35.71, 1, 1, 8, -0.01, 0.23, 1, 2, 14, 35.72, -0.5, 0.06656, 13, 2.22, -0.49, 0.93344, 1, 15, 23, -0.23, 1, 2, 13, 52.64, -0.42, 0, 12, 19.33, -0.32, 1, 1, 13, 27.58, -0.45, 1, 2, 12, 31.99, -0.27, 0.81958, 16, -1.47, -0.27, 0.18042, 2, 14, 12.49, -0.38, 1, 13, -20.94, -0.5, 0, 1, 11, 28.93, -0.03, 1, 1, 11, 14.95, 0.07, 1, 1, 15, 9.31, -0.13, 1, 2, 15, 35.04, -0.32, 0.18244, 14, 1.55, -0.32, 0.81756, 1, 14, 23.69, -0.44, 1, 1, 13, 15.31, -0.47, 1, 2, 13, 40.38, -0.44, 7.7E-4, 12, 6.95, -0.4, 0.99923, 1, 54, -3.3, -0.26, 1 ], + "hull": 36, + "edges": [ 0, 2, 2, 4, 36, 38, 0, 70, 68, 70, 4, 6, 34, 36, 72, 34, 38, 40, 72, 40, 74, 56, 74, 18, 76, 48, 76, 26, 78, 64, 78, 10, 80, 60, 80, 14, 82, 78, 64, 66, 82, 66, 8, 10, 82, 8, 84, 52, 84, 22, 86, 44, 86, 30, 72, 88, 88, 86, 40, 42, 42, 44, 88, 42, 30, 32, 32, 34, 88, 32, 76, 90, 90, 86, 44, 46, 46, 48, 90, 46, 26, 28, 28, 30, 90, 28, 76, 92, 92, 84, 48, 50, 50, 52, 92, 50, 22, 24, 24, 26, 92, 24, 74, 94, 94, 84, 52, 54, 54, 56, 94, 54, 18, 20, 20, 22, 94, 20, 74, 96, 96, 80, 56, 58, 58, 60, 96, 58, 14, 16, 16, 18, 96, 16, 78, 98, 98, 80, 60, 62, 62, 64, 98, 62, 10, 12, 12, 14, 98, 12, 66, 68, 6, 8 ], + "width": 71, + "height": 229 + } + }, + "zip-boy": { + "zip-boy": { "name": "boy/zip", "x": 14.35, "y": -0.15, "rotation": 82.23, "width": 27, "height": 46 } + } + } + }, + { + "name": "hair/brown", + "attachments": { + "ear": { + "ear": { + "name": "girl/ear", + "path": "girl-spring-dress/ear", + "x": 56.58, + "y": 85.63, + "rotation": -87.57, + "width": 38, + "height": 45 + } + }, + "eye-back-eyebrow": { + "eye-back-eyebrow": { + "name": "girl/back-eyebrow", + "path": "girl-spring-dress/back-eyebrow", + "x": 15.6, + "y": -9.48, + "rotation": -177.9, + "width": 36, + "height": 23 + } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { + "name": "girl/front-eyebrow", + "path": "girl-spring-dress/front-eyebrow", + "x": 10.82, + "y": 8.92, + "rotation": -3.58, + "width": 36, + "height": 23 + } + }, + "hair-back": { + "hair-back": { + "name": "girl/hair-back", + "type": "mesh", + "path": "girl-spring-dress/hair-back", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 0, 2, 3, 0 ], + "vertices": [ 2, 6, -3.46, -135.36, 0.71, 30, 189.29, -78.03, 0.29, 2, 6, -15.93, 158.38, 0.71, 30, -104.71, -78.03, 0.29, 2, 6, 168.91, 166.22, 0.71, 30, -104.71, 106.97, 0.29, 2, 6, 181.37, -127.51, 0.71, 30, 189.29, 106.97, 0.29 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 294, + "height": 185 + } + }, + "hair-bangs": { + "hair-bangs": { + "name": "girl/hair-bangs", + "type": "mesh", + "path": "girl-spring-dress/hair-bangs", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "girl/hair-bangs", + "type": "mesh", + "path": "girl-spring-dress/hair-bangs", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch2", + "type": "mesh", + "path": "girl/hair-patch", + "color": "94453fff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "path": "girl-spring-dress/hair-side", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-side-back": { + "hair-side-back": { + "name": "girl/hair-head-side-back", + "type": "mesh", + "path": "girl-spring-dress/hair-head-side-back", + "uvs": [ 0.17374, 0.1545, 0.22967, 0.37557, 0.21289, 0.61586, 0, 0.86256, 0, 1, 0.25205, 1, 0.45899, 0.87537, 0.69391, 0.87858, 0.80577, 0.69916, 0.82815, 0.52615, 1, 0.46528, 0.99594, 0.21858, 0.73306, 0.04236, 0.53171, 0, 0.27442, 0.04877, 0.51493, 0.5678, 0.59323, 0.17692, 0.73306, 0.35954, 0.46459, 0.76964 ], + "triangles": [ 17, 11, 10, 15, 1, 16, 16, 14, 13, 14, 16, 1, 1, 0, 14, 16, 12, 17, 17, 12, 11, 16, 13, 12, 15, 16, 17, 2, 1, 15, 5, 18, 6, 5, 4, 3, 6, 18, 7, 7, 18, 8, 5, 3, 2, 18, 5, 2, 18, 15, 8, 18, 2, 15, 8, 15, 9, 9, 17, 10, 15, 17, 9 ], + "vertices": [ 2, 47, 44.16, -9.72, 0.072, 6, 75.71, -87.13, 0.928, 2, 47, 65.84, -17.42, 0.21564, 6, 53.1, -91.39, 0.78436, 2, 47, 87.28, -29.83, 0.5439, 6, 28.33, -91.45, 0.4561, 3, 47, 103.9, -52.79, 0.8752, 6, 2.41, -79.98, 0.09988, 30, 134.21, -69.81, 0.02493, 3, 47, 116.42, -59.39, 0.89423, 6, -11.73, -80.58, 0.014, 30, 134.21, -83.97, 0.09177, 3, 47, 123.36, -46.24, 0.87011, 6, -11.1, -95.43, 0.00989, 30, 149.08, -83.97, 0.12, 3, 47, 117.69, -29.45, 0.77082, 6, 2.24, -107.09, 0.0941, 30, 161.29, -71.13, 0.13508, 3, 47, 124.45, -17.35, 0.86922, 6, 2.5, -120.95, 0.00701, 30, 175.15, -71.46, 0.12377, 3, 47, 111.18, -2.89, 0.73582, 6, 21.24, -126.76, 0.12392, 30, 181.75, -52.98, 0.14026, 3, 47, 96.03, 6.59, 0.55463, 6, 39.1, -127.33, 0.32878, 30, 183.07, -35.16, 0.11659, 3, 47, 95.21, 18.48, 0.54495, 6, 45.79, -137.19, 0.37264, 30, 193.21, -28.89, 0.08241, 2, 47, 72.62, 30.12, 0.39164, 6, 71.17, -135.87, 0.60836, 2, 47, 49.33, 24.86, 0.13442, 6, 88.65, -119.61, 0.86558, 2, 47, 39.93, 16.38, 0.03367, 6, 92.5, -107.55, 0.96633, 2, 47, 37.3, 0.61, 0.176, 6, 86.84, -92.6, 0.824, 3, 47, 91.21, -11.76, 0.52, 6, 34.03, -109.04, 0.39641, 30, 164.59, -39.45, 0.08358, 2, 47, 57.74, 11.1, 0.24029, 6, 74.45, -111.95, 0.75971, 3, 47, 78.23, 9.62, 0.39663, 6, 56.01, -120.99, 0.565, 30, 177.46, -18, 0.03837, 3, 47, 108.21, -24.08, 0.64328, 6, 13.13, -106.96, 0.22492, 30, 161.62, -60.24, 0.1318 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 59, + "height": 103 + } + }, + "hair-side-front": { + "hair-side-front": { + "name": "girl/hair-head-side-front", + "type": "mesh", + "path": "girl-spring-dress/hair-head-side-front", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 6, 5.69, 38.25, 1, 1, 6, 2.21, 120.17, 1, 1, 6, 85.14, 123.69, 1, 1, 6, 88.61, 41.77, 1 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 82, + "height": 83 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "path": "girl-spring-dress/hair-side", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-spring-dress/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "accessories/cape-blue", + "bones": [ "cape-blue-control", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-back", "cape-blue-middle-front", "cape-blue-up", "cape-blue-up-back", "cape-blue-up-front", "cape-back-rotator", "cape-front-rotator" ], + "attachments": { + "cape-back": { + "cape-back": { + "name": "girl-blue-cape/cape-back", + "type": "mesh", + "uvs": [ 0.16774, 0.18106, 0.16774, 0.29678, 0.15536, 0.37836, 0.1492, 0.41892, 0.13066, 0.53249, 0.10285, 0.63749, 0.06886, 0.74892, 0.03178, 0.84106, 0, 0.91392, 0, 0.96321, 0.12139, 0.97606, 0.26661, 0.98035, 0.36858, 0.99535, 0.49836, 1, 0.64667, 0.99106, 0.77645, 0.96535, 0.9124, 0.96535, 1, 0.94392, 1, 0.83678, 0.94639, 0.75535, 0.90313, 0.64606, 0.8815, 0.52821, 0.88459, 0.40392, 0.89409, 0.29849, 0.8803, 0.21766, 0.87223, 0.17035, 0.74864, 0, 0.23572, 0, 0.49006, 0.88368, 0.38711, 0.87971, 0.2632, 0.86913, 0.13357, 0.8612, 0.64257, 0.87178, 0.78173, 0.85062, 0.89421, 0.84798, 0.11069, 0.76072, 0.14882, 0.6457, 0.17551, 0.53994, 0.19457, 0.42227, 0.22507, 0.30196, 0.22507, 0.18165, 0.81605, 0.1724, 0.8332, 0.3998, 0.82939, 0.53465, 0.85227, 0.65628, 0.89611, 0.76998, 0.49768, 0.53861, 0.51865, 0.28874, 0.5034, 0.07324, 0.84979, 0.31308, 0.81597, 0.2321, 0.19995, 0.37876 ], + "triangles": [ 40, 27, 48, 46, 28, 29, 32, 28, 46, 11, 30, 29, 14, 32, 15, 28, 32, 14, 12, 11, 29, 13, 28, 14, 29, 28, 13, 12, 29, 13, 34, 33, 45, 34, 45, 19, 19, 18, 34, 17, 34, 18, 15, 32, 33, 16, 34, 17, 15, 33, 34, 16, 15, 34, 30, 31, 35, 7, 35, 31, 10, 9, 8, 31, 8, 7, 31, 10, 8, 10, 31, 30, 11, 10, 30, 21, 42, 22, 43, 42, 21, 43, 46, 42, 44, 43, 21, 44, 21, 20, 45, 44, 20, 45, 20, 19, 45, 33, 44, 46, 44, 32, 44, 46, 43, 44, 33, 32, 37, 4, 3, 36, 5, 4, 37, 36, 4, 35, 6, 5, 36, 35, 5, 7, 6, 35, 46, 36, 37, 36, 46, 29, 29, 30, 36, 30, 35, 36, 37, 38, 46, 48, 27, 26, 41, 48, 26, 41, 47, 48, 40, 48, 47, 49, 24, 23, 42, 50, 49, 47, 50, 42, 22, 49, 23, 42, 49, 22, 42, 46, 47, 41, 26, 25, 50, 47, 41, 49, 50, 24, 41, 24, 50, 24, 41, 25, 51, 2, 1, 38, 2, 51, 38, 51, 46, 40, 0, 27, 1, 0, 40, 39, 40, 47, 1, 40, 39, 39, 51, 1, 3, 2, 38, 47, 51, 39, 38, 37, 3, 46, 51, 47 ], + "vertices": [ 2, 139, -67.32, -1.83, 0.83, 4, 54.84, 90.31, 0.17, 2, 139, -22.81, -3.58, 0.9, 4, 10.42, 93.67, 0.1, 1, 139, 8.45, -8.12, 1, 2, 139, 23.99, -10.37, 0.84479, 137, -84.76, 9.18, 0.15521, 2, 139, 67.49, -17.04, 0.23, 137, -41.26, 2.52, 0.77, 3, 139, 107.59, -26.04, 0.00129, 137, -1.16, -6.49, 0.9964, 135, -109.35, 27.31, 0.00231, 3, 137, 41.35, -17.24, 0.64884, 135, -66.84, 16.56, 0.34223, 134, -85.85, -117.18, 0.00892, 4, 139, 185.16, -48.08, 0.02, 137, 76.41, -28.53, 0.21385, 135, -31.78, 5.27, 0.75071, 134, -50.79, -128.46, 0.01544, 2, 137, 104.1, -38.11, 0.00727, 135, -4.09, -4.31, 0.99273, 2, 135, 14.87, -5.06, 0.99722, 134, -4.14, -138.79, 0.00278, 3, 137, 129.28, -6.66, 0.02507, 135, 21.09, 27.14, 0.86628, 134, 2.08, -106.6, 0.10865, 3, 137, 132.45, 32.02, 0.04886, 135, 24.26, 65.82, 0.49631, 134, 5.25, -67.92, 0.45484, 3, 137, 139.29, 59, 0.0214, 135, 31.1, 92.79, 0.21036, 134, 12.09, -40.94, 0.76824, 4, 137, 142.44, 93.55, 6.5E-4, 135, 34.25, 127.35, 0.01537, 136, 25.25, -127.51, 3.3E-4, 134, 15.24, -6.39, 0.98365, 3, 138, 148.57, -64.7, 0.00449, 136, 23.37, -87.8, 0.17701, 134, 13.36, 33.32, 0.81851, 3, 138, 140.04, -29.69, 0.02334, 136, 14.84, -52.79, 0.60404, 134, 4.83, 68.33, 0.37262, 3, 138, 141.46, 6.58, 0.00358, 136, 16.27, -16.52, 0.93615, 134, 6.25, 104.6, 0.06026, 1, 136, 8.94, 7.18, 1, 3, 138, 92.92, 31.89, 0.14408, 136, -32.28, 8.8, 0.85584, 134, -42.29, 129.92, 8.0E-5, 3, 138, 61.03, 18.82, 0.46239, 136, -64.17, -4.27, 0.53552, 134, -74.18, 116.85, 0.00209, 2, 138, 18.54, 8.93, 0.91574, 136, -106.66, -14.16, 0.08426, 2, 140, 96.09, 1.28, 0.09, 138, -27.03, 4.94, 0.91, 2, 140, 48.31, 3.91, 0.53, 138, -74.81, 7.65, 0.47, 1, 140, 7.84, 7.97, 1, 2, 140, -23.4, 5.46, 0.81, 4, 26.44, -98.34, 0.19, 2, 140, -41.68, 3.99, 0.7, 4, 44.77, -97.57, 0.3, 2, 140, -108.46, -26.51, 0.93, 4, 112.65, -69.61, 0.07, 1, 4, 122.98, 66.95, 1, 4, 137, 97.61, 93.09, 0.01667, 135, -10.59, 126.89, 0.05862, 136, -19.58, -127.96, 0.00801, 134, -29.6, -6.84, 0.91669, 3, 137, 95, 65.69, 0.102, 135, -13.19, 99.49, 0.26627, 134, -32.2, -34.25, 0.63173, 3, 137, 89.63, 32.79, 0.20581, 135, -18.56, 66.59, 0.51806, 134, -37.57, -67.15, 0.27614, 3, 137, 85.22, -1.68, 0.21275, 135, -22.97, 32.12, 0.71605, 134, -41.98, -101.61, 0.0712, 3, 138, 102.64, -64, 0.07818, 136, -22.56, -87.09, 0.32621, 134, -32.57, 34.03, 0.59561, 3, 138, 95.96, -26.55, 0.18346, 136, -29.24, -49.64, 0.6387, 134, -39.25, 71.48, 0.17784, 3, 138, 96.12, 3.5, 0.16303, 136, -29.08, -19.6, 0.79715, 134, -39.09, 101.52, 0.03982, 3, 137, 46.33, -6.26, 0.62329, 135, -61.86, 27.54, 0.36315, 134, -80.87, -106.2, 0.01356, 4, 139, 111.23, -13.9, 6.6E-4, 137, 2.48, 5.65, 0.99342, 135, -105.71, 39.45, 0.0059, 134, -124.72, -94.28, 3.0E-5, 2, 139, 70.82, -5.18, 0.23, 137, -37.93, 14.37, 0.77, 2, 139, 25.75, 1.68, 0.84188, 137, -83, 21.24, 0.15812, 2, 139, -20.21, 11.64, 0.9, 4, 7.27, 78.55, 0.1, 2, 139, -66.49, 13.46, 0.83, 4, 53.46, 75.06, 0.17, 2, 140, -41.46, -11.03, 0.7, 4, 45.11, -82.55, 0.3, 2, 140, 46.2, -9.75, 0.53, 138, -76.94, -6, 0.47, 2, 140, 98.05, -12.72, 0.09, 138, -25.1, -9.06, 0.91, 2, 138, 21.93, -4.79, 0.90321, 136, -103.27, -27.89, 0.09679, 3, 138, 66.13, 5.19, 0.44464, 136, -59.07, -17.91, 0.54629, 134, -69.08, 103.21, 0.00907, 2, 139, 73.69, 80.79, 0.36969, 137, -35.06, 100.35, 0.63031, 2, 140, 0.31, -92.06, 0.96279, 138, -122.96, -88.24, 0.03721, 1, 140, -82.75, -93.01, 1, 1, 140, 13.01, -4.06, 1, 2, 140, -18.49, -11.91, 0.81, 4, 22.19, -80.8, 0.19, 1, 139, 9.07, 3.77, 1 ], + "hull": 28, + "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 50, 52, 52, 54, 0, 54, 44, 46, 46, 48, 48, 50, 2, 4, 4, 6 ], + "width": 267, + "height": 385 + } + }, + "cape-blue-shoulder-back": { + "cape-blue-shoulder-back": { + "name": "girl-blue-cape/cape-shoulder-back", + "type": "mesh", + "uvs": [ 0, 0.07849, 0.35461, 0.35256, 0.61389, 0.5707, 0.8193, 0.78883, 0.95063, 1, 1, 1, 1, 0.74409, 0.93379, 0.484, 0.79236, 0.20994, 0.59032, 0.01977, 0, 0 ], + "triangles": [ 6, 3, 7, 4, 3, 6, 4, 6, 5, 3, 2, 7, 2, 8, 7, 2, 1, 8, 0, 10, 9, 1, 0, 9, 1, 9, 8 ], + "vertices": [ 1, 4, 112.34, -7.46, 1, 2, 4, 77.47, -39.67, 0.89, 140, -72.17, -55.09, 0.11, 2, 4, 49.88, -63.07, 0.47, 140, -45.49, -30.67, 0.53, 2, 4, 22.7, -81.2, 0.2, 140, -19.01, -11.52, 0.8, 1, 140, 6.38, 0.4, 1, 1, 140, 6.56, 5.23, 1, 2, 4, 26.63, -99.26, 0.03, 140, -23.62, 6.37, 0.97, 2, 4, 57.72, -95.1, 0.19, 140, -54.53, 1.04, 0.81, 2, 4, 91.01, -83.72, 0.5, 140, -87.37, -11.59, 0.5, 2, 4, 114.88, -65.67, 0.71, 140, -110.54, -30.53, 0.29, 1, 4, 121.57, -8.16, 1 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 98, + "height": 118 + } + }, + "cape-blue-shoulder-front": { + "cape-blue-shoulder-front": { + "name": "girl-blue-cape/cape-shoulder-front", + "type": "mesh", + "uvs": [ 1, 0.26291, 0.82448, 0.42574, 0.58034, 0.61028, 0.30936, 0.80567, 0.09204, 1, 0.03839, 1, 0, 0.62982, 0, 0.31936, 0.21009, 0.09357, 0.51595, 0, 0.98546, 0.00238, 0.35765, 0.36929, 0.59912, 0.21298, 0.16717, 0.51258 ], + "triangles": [ 2, 11, 12, 2, 12, 1, 7, 8, 11, 1, 12, 0, 12, 10, 0, 12, 11, 8, 12, 8, 9, 12, 9, 10, 2, 13, 11, 13, 7, 11, 3, 4, 6, 4, 5, 6, 6, 13, 3, 2, 3, 13, 6, 7, 13 ], + "vertices": [ 1, 4, 82.18, -29.91, 1, 1, 4, 58.8, -6.49, 1, 2, 139, -47.93, 63.65, 0.33, 4, 33.09, 25.57, 0.67, 2, 139, -19.56, 29.18, 0.88, 4, 5.99, 61.04, 0.12, 1, 139, 8.9, 1.31, 1, 1, 139, 8.64, -5.28, 1, 2, 139, -47.77, -7.79, 0.73, 4, 35.51, 96.97, 0.27, 2, 139, -94.92, -5.94, 0.44, 4, 82.57, 93.41, 0.56, 2, 139, -128.2, 21.23, 0.21, 4, 114.84, 65.06, 0.79, 1, 4, 126.19, 26.47, 1, 1, 4, 121.47, -31.09, 1, 2, 139, -85.61, 37.72, 0.5, 4, 71.68, 50.12, 0.5, 1, 4, 93.14, 18.71, 1, 2, 139, -64.77, 13.46, 0.65, 4, 51.73, 75.12, 0.35 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 123, + "height": 152 + } + }, + "cape-blue-up-front": { + "cape-blue-up-front": { + "name": "girl-blue-cape/cape-up-front", + "type": "mesh", + "uvs": [ 1, 1, 0.7644, 1, 0.60402, 0.93701, 0.40799, 0.93403, 0.20484, 0.87139, 0.04445, 0.75804, 0, 0.57908, 0.00168, 0.39712, 0.16563, 0.2271, 0.39373, 0.07199, 0.60402, 0, 0.83568, 0, 1, 0.04515, 0.9034, 0.10182, 0.75727, 0.14955, 0.66461, 0.25991, 0.5862, 0.40905, 0.56481, 0.57013, 0.60045, 0.72225, 0.75371, 0.79682, 0.92835, 0.82665, 1, 0.90122, 0.32245, 0.38817, 0.29038, 0.58802, 0.40443, 0.76401, 0.43294, 0.16744, 0.13543, 0.58128, 0.19958, 0.34266, 0.23879, 0.78113, 0.4098, 0.13281, 0.61528, 0.04432 ], + "triangles": [ 2, 3, 24, 4, 28, 3, 2, 18, 19, 2, 24, 18, 1, 19, 20, 1, 20, 21, 2, 19, 1, 1, 21, 0, 28, 24, 3, 4, 5, 28, 5, 26, 28, 28, 26, 23, 28, 23, 24, 24, 23, 17, 24, 17, 18, 5, 6, 26, 8, 9, 29, 7, 8, 27, 6, 7, 26, 9, 10, 30, 30, 10, 11, 13, 11, 12, 14, 30, 11, 14, 11, 13, 25, 29, 30, 15, 30, 14, 25, 30, 15, 22, 27, 25, 16, 25, 15, 22, 25, 16, 23, 22, 17, 17, 22, 16, 29, 9, 30, 22, 23, 27, 29, 25, 27, 23, 26, 27, 26, 7, 27, 29, 27, 8 ], + "vertices": [ 1, 4, 85.07, -28.86, 1, 1, 4, 88.53, 16.95, 1, 2, 29, -78.55, -97.76, 0.12904, 4, 105.52, 47.03, 0.87096, 2, 29, -116.77, -97.07, 0.22, 4, 109.1, 85.09, 0.78, 4, 141, -191.82, 123.01, 0.23269, 29, -156.39, -82.47, 0.22918, 30, -67.47, -83.07, 0.13813, 4, 126.64, 123.49, 0.4, 4, 141, -165.41, 154.29, 0.28, 29, -187.66, -56.06, 0.40019, 30, -98.75, -56.66, 0.16114, 4, 155.33, 152.68, 0.15867, 4, 141, -123.71, 162.96, 0.17927, 6, 49.32, 155.86, 0.59755, 29, -196.33, -14.36, 0.06318, 30, -107.42, -14.96, 0.16, 3, 141, -81.31, 162.63, 0.07633, 6, 91.69, 157.33, 0.72367, 30, -107.09, 27.43, 0.2, 3, 141, -41.7, 130.66, 0.06, 6, 132.62, 127.07, 0.7, 30, -75.12, 67.05, 0.24, 4, 141, -5.56, 86.18, 0.08877, 6, 170.61, 84.16, 0.71399, 29, -119.55, 103.79, 0.01724, 30, -30.64, 103.19, 0.18, 4, 141, 11.21, 45.17, 0.51, 6, 189.11, 43.9, 0.19156, 29, -78.55, 120.56, 0.15, 30, 10.37, 119.96, 0.14844, 2, 141, 11.21, 0, 0.72, 29, -33.37, 120.56, 0.28, 2, 141, 0.7, -32.04, 0.72, 29, -1.33, 110.04, 0.28, 2, 141, -12.51, -13.21, 0.79, 29, -20.17, 96.84, 0.21, 2, 141, -23.63, 15.29, 0.71, 29, -48.66, 85.72, 0.29, 2, 141, -49.34, 33.36, 0.54, 29, -66.73, 60, 0.46, 2, 141, -84.09, 48.65, 0.45, 29, -82.02, 25.25, 0.55, 3, 141, -121.62, 52.82, 0.37571, 29, -86.19, -12.28, 0.55, 4, 191.34, 48.2, 0.07429, 3, 141, -157.07, 45.87, 0.27096, 29, -79.24, -47.72, 0.5, 4, 155.47, 43.94, 0.22904, 2, 29, -49.36, -65.1, 0.27899, 4, 135.89, 15.45, 0.72101, 2, 29, -15.3, -72.05, 0.11247, 4, 126.4, -17.98, 0.88753, 1, 4, 108.02, -30.6, 1, 2, 141, -79.23, 100.08, 0.64, 29, -133.45, 30.12, 0.36, 3, 141, -125.79, 106.33, 0.48, 29, -139.71, -16.45, 0.37805, 4, 191.22, 101.88, 0.14195, 3, 141, -166.8, 84.09, 0.27, 29, -117.47, -57.45, 0.423, 4, 148.65, 82.79, 0.307, 3, 141, -27.8, 78.53, 0.69314, 29, -111.91, 81.55, 0.28, 30, -22.99, 80.95, 0.02686, 4, 141, -124.22, 136.55, 0.35527, 29, -169.92, -14.88, 0.41, 30, -81.01, -15.48, 0.15867, 4, 195.06, 131.89, 0.07605, 3, 141, -68.62, 124.04, 0.86, 29, -157.41, 40.72, 0.10943, 30, -68.5, 40.12, 0.03057, 4, 141, -170.79, 116.39, 0.27213, 29, -149.77, -61.44, 0.35294, 30, -60.85, -62.04, 0.03493, 4, 147.11, 115.3, 0.34, 3, 141, -19.73, 83.05, 0.24, 29, -116.42, 89.62, 0.39163, 30, -27.5, 89.02, 0.36837, 3, 141, 0.89, 42.98, 0.64, 29, -76.35, 110.23, 0.27769, 30, 12.56, 109.64, 0.08231 ], + "hull": 22, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 42, 54, 50, 52, 56, 58, 54, 58, 60 ], + "width": 195, + "height": 233 + } + }, + "cape-ribbon": { + "cape-ribbon": { "name": "girl-blue-cape/cape-ribbon", "x": 105.78, "y": -28.65, "rotation": -94.33, "width": 100, "height": 36 } + }, + "cape-up-back": { + "cape-up-back": { + "name": "girl-blue-cape/cape-back-up", + "type": "mesh", + "uvs": [ 0.52406, 0.00329, 0.62554, 0.04269, 0.7529, 0.09213, 0.90546, 0.25682, 1, 0.47751, 1, 0.7509, 0.89981, 0.91888, 0.75572, 1, 0.39127, 1, 0, 0.79372, 0, 0.22718, 0.29804, 0, 0.79245, 0.82336, 0.85743, 0.53021, 0.79245, 0.3227, 0.66532, 0.19753, 0.42518, 0.10531, 0.37997, 0.56974, 0.55552, 0.10358 ], + "triangles": [ 12, 13, 5, 7, 12, 6, 7, 8, 12, 13, 4, 5, 12, 17, 13, 13, 14, 4, 6, 12, 5, 16, 10, 11, 8, 17, 12, 17, 10, 16, 9, 17, 8, 9, 10, 17, 3, 14, 2, 14, 15, 2, 17, 16, 15, 16, 18, 15, 18, 1, 15, 16, 0, 18, 16, 11, 0, 18, 0, 1, 15, 1, 2, 14, 17, 15, 14, 3, 4, 17, 14, 13 ], + "vertices": [ 2, 141, 8.32, -5.56, 0.76, 29, -27.81, 117.67, 0.24, 2, 141, -0.3, -30.52, 0.76, 29, -2.85, 109.04, 0.24, 2, 141, -11.12, -61.85, 0.81, 29, 28.48, 98.23, 0.19, 3, 141, -45.87, -99.38, 0.51456, 29, 66.01, 63.48, 0.21, 4, 255.4, -109.28, 0.27544, 3, 141, -92.43, -122.64, 0.26657, 29, 89.27, 16.91, 0.13343, 4, 207.22, -128.96, 0.6, 3, 141, -150.12, -122.64, 0.00304, 29, 89.27, -40.77, 0.16, 4, 149.7, -124.61, 0.83696, 3, 29, 64.62, -76.22, 0.12, 30, 153.54, -76.82, 5.0E-4, 4, 116.21, -97.36, 0.8795, 1, 4, 101.82, -60.73, 1, 2, 29, -60.48, -93.33, 0.44568, 30, 28.44, -93.93, 0.55432, 3, 141, -159.15, 123.36, 0.72, 29, -156.73, -49.81, 0.00104, 30, -67.82, -50.41, 0.27896, 2, 30, -67.82, 69.13, 0.31, 6, 135.01, 119.86, 0.69, 4, 141, 8.32, 50.04, 0.28019, 29, -83.41, 117.67, 0.24, 30, 5.5, 117.07, 0.0456, 6, 186.01, 48.64, 0.43421, 2, 29, 38.21, -56.06, 0.16, 4, 138.3, -72.55, 0.84, 3, 141, -103.55, -87.57, 0.29987, 29, 54.2, 5.79, 0.15013, 4, 198.77, -93.15, 0.55, 3, 141, -59.72, -71.58, 0.5125, 29, 38.21, 49.63, 0.21, 4, 243.69, -80.52, 0.2775, 2, 141, -33.12, -40.31, 0.81, 29, 6.94, 76.22, 0.19, 2, 141, -13.8, 18.77, 0.76, 29, -52.14, 95.55, 0.24, 3, 141, -111.85, 29.89, 0.02898, 29, -63.26, -2.5, 0.24273, 30, 25.66, -3.1, 0.72829, 2, 141, -13.3, -13.3, 0.76, 29, -20.07, 96.05, 0.24 ], + "hull": 12, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 0, 22, 0, 2, 2, 4 ], + "width": 246, + "height": 211 + } + }, + "ear": { + "ear": { + "name": "girl/ear", + "path": "girl-blue-cape/ear", + "x": 56.58, + "y": 85.63, + "rotation": -87.57, + "width": 38, + "height": 45 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-blue-cape/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "accessories/cape-red", + "bones": [ "cape-red-back-inside", "cape-red-back-outside", "cape-back-rotator", "cape-red-front-inside", "cape-red-front-outside", "cape-front-rotator" ], + "attachments": { + "cape-red-down": { + "cape-red-down": { + "name": "girl-spring-dress/cloak-down", + "type": "mesh", + "uvs": [ 0.14417, 0, 0.36304, 0.02025, 0.57682, 0.0966, 0.7397, 0.23912, 0.85168, 0.4529, 0.92294, 0.66668, 1, 0.82447, 1, 1, 0.70916, 1, 0.44448, 0.98735, 0.28669, 0.83974, 0.06273, 0.5038, 0, 0.26966, 0, 0.07624, 0.67674, 0.71028, 0.43738, 0.58788, 0.3008, 0.31931, 0.57552, 0.43898 ], + "triangles": [ 17, 2, 3, 17, 3, 4, 11, 16, 15, 11, 12, 16, 2, 17, 1, 17, 16, 1, 12, 13, 0, 16, 0, 1, 12, 0, 16, 15, 16, 17, 9, 14, 8, 14, 4, 5, 6, 8, 14, 6, 14, 5, 8, 6, 7, 14, 17, 4, 10, 11, 15, 10, 15, 9, 9, 15, 14, 15, 17, 14 ], + "vertices": [ 1, 4, 125.16, -19.58, 1, 1, 4, 121.49, -41.25, 1, 3, 120, 74.56, -19.08, 0.15867, 4, 112.27, -61.99, 0.14879, 122, 28.75, 13.93, 0.69254, 1, 122, 14.5, -2.36, 1, 2, 119, -12.43, 41.24, 0.46, 122, -6.88, -13.55, 0.54, 2, 119, -5.3, 19.86, 0.76, 122, -28.26, -20.68, 0.24, 2, 119, 2.41, 4.09, 0.86, 122, -44.04, -28.39, 0.14, 2, 120, -18.72, -54.46, 0.19, 119, 2.41, -13.47, 0.81, 2, 120, -16.52, -25.46, 0.36, 119, -26.68, -13.47, 0.64, 2, 120, -13.27, 0.84, 0.55, 119, -53.15, -12.2, 0.45, 2, 120, 2.64, 15.46, 0.83, 119, -68.93, 2.56, 0.17, 2, 120, 37.83, 35.26, 0.22, 4, 75.54, -7.66, 0.78, 1, 4, 99.36, -3.17, 1, 1, 4, 118.65, -4.63, 1, 3, 120, 12.61, -24.41, 0.36, 119, -29.92, 15.5, 0.59041, 122, -32.62, 3.94, 0.04959, 3, 120, 26.62, -1.47, 0.83, 119, -53.86, 27.74, 0.15527, 4, 64.33, -44.38, 0.01473, 1, 4, 92.14, -32.79, 1, 1, 4, 78.13, -59.28, 1 ], + "hull": 14, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 22, 24, 24, 26, 0, 26, 34, 2, 20, 22 ], + "width": 100, + "height": 100 + } + }, + "cape-red-up": { + "cape-red-up": { + "name": "girl-spring-dress/cloak-up", + "type": "mesh", + "uvs": [ 0.37962, 0, 0.24791, 0.0725, 0.15296, 0.15299, 0.06413, 0.27371, 0.01206, 0.6057, 0, 0.7499, 0, 0.9008, 0.07332, 1, 0.25097, 1, 0.43475, 1, 0.53889, 0.93434, 0.70123, 0.88404, 0.82988, 0.75325, 0.9187, 0.55875, 0.94933, 0.42461, 0.93402, 0.15969, 0.66448, 0, 0.26629, 0.82703, 0.48376, 0.7499, 0.64916, 0.6057, 0.72267, 0.38102, 0.63078, 0.14963, 0.3643, 0.34078, 0.29998, 0.60905 ], + "triangles": [ 3, 2, 22, 22, 23, 3, 18, 19, 11, 11, 19, 12, 12, 19, 13, 18, 23, 19, 17, 23, 18, 18, 10, 9, 9, 8, 17, 8, 7, 17, 7, 6, 17, 9, 17, 18, 10, 18, 11, 6, 5, 17, 17, 5, 23, 23, 5, 4, 23, 4, 3, 23, 22, 19, 19, 20, 13, 19, 22, 20, 13, 20, 14, 20, 15, 14, 22, 21, 20, 20, 21, 15, 2, 1, 22, 22, 0, 21, 22, 1, 0, 21, 16, 15, 21, 0, 16 ], + "vertices": [ 1, 4, 128.5, 22.39, 1, 1, 4, 121.37, 39.71, 1, 2, 4, 112.97, 52.44, 0.27, 117, -9.72, 16.53, 0.73, 1, 117, -21, 2.53, 1, 2, 115, -26.06, -1.94, 0.83, 117, -27.61, -35.98, 0.17, 1, 115, -9.34, -3.48, 1, 2, 115, 8.17, -3.48, 0.99, 117, -29.14, -70.21, 0.01, 2, 4, 15.76, 69.93, 0.07049, 115, 19.68, 5.84, 0.92951, 2, 115, 19.68, 28.4, 0.88, 113, -18.74, 59.54, 0.12, 2, 115, 19.68, 51.74, 0.73, 113, -20.5, 36.27, 0.27, 2, 115, 12.06, 64.96, 0.6, 113, -13.9, 22.51, 0.4, 2, 115, 6.22, 85.58, 0.4, 113, -9.64, 1.51, 0.6, 3, 4, 37.05, -28.04, 0.05405, 115, -8.95, 101.92, 0.27, 113, 4.26, -15.93, 0.67595, 3, 4, 58.7, -40.99, 0.42765, 115, -31.51, 113.2, 0.22, 113, 25.9, -28.88, 0.35235, 3, 4, 73.92, -46.04, 0.6319, 115, -47.07, 117.09, 0.11, 113, 41.13, -33.93, 0.2581, 2, 4, 104.71, -46.42, 0.91761, 113, 71.92, -34.31, 0.08239, 1, 4, 125.77, -13.68, 1, 2, 115, -0.39, 30.34, 0.88, 113, 1.12, 56.09, 0.12, 2, 115, -9.34, 57.96, 0.6, 113, 7.96, 27.88, 0.4, 3, 4, 55.85, -6.44, 0.3066, 115, -26.06, 78.97, 0.27, 113, 23.06, 5.67, 0.4234, 3, 4, 81.14, -17.72, 0.6764, 115, -52.13, 88.3, 0.11, 113, 48.34, -5.61, 0.2136, 1, 4, 108.78, -8.1, 1, 2, 4, 89.23, 27.31, 0.9433, 115, -56.79, 42.79, 0.0567, 2, 115, -25.67, 34.62, 0.91, 113, 26.01, 49.92, 0.09 ], + "hull": 17, + "edges": [ 0, 2, 2, 4, 4, 6, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 0, 32, 8, 46, 6, 8 ], + "width": 127, + "height": 116 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-spring-dress/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "ribbon-shoulder": { + "ribbon-shoulder": { "name": "girl-spring-dress/shoulder-ribbon", "x": 100.69, "y": -35.56, "rotation": -94.33, "width": 71, "height": 48 } + } + } + }, + { + "name": "clothes/dress-blue", + "bones": [ "dress-control-foot-front", "dress-control-foot-back", "dress-control-leg-down-back", "dress-control-leg-down-front", "dress-control-leg-up-back", "dress-control-leg-up-front", "dress-control-middle", "sleeve-control-back", "sleeve-control-front" ], + "transform": [ "leg-down-front", "leg-down-back", "leg-down-back-up", "leg-down-down", "leg-up", "leg-up-back" ], + "attachments": { + "arm-back": { + "arm-back": { + "name": "girl-blue-cape/sleeve-front", + "type": "mesh", + "uvs": [ 0.39189, 0, 0.14439, 0.01666, 0.15901, 0.10249, 0.17598, 0.19757, 0.191, 0.28175, 0.205, 0.3602, 0.22028, 0.44586, 0.23432, 0.52454, 0.2491, 0.60734, 0.22371, 0.71965, 0.1539, 0.82364, 0, 0.92776, 0, 0.99154, 0.23074, 0.95687, 0.37352, 1, 0.45602, 1, 0.6591, 0.94994, 1, 0.96658, 1, 0.91944, 0.88122, 0.81129, 0.81141, 0.71284, 0.76064, 0.59498, 0.73905, 0.50606, 0.71901, 0.4235, 0.7003, 0.34643, 0.68005, 0.26299, 0.65973, 0.17927, 0.63519, 0.07818, 0.61151, 0, 0.43698, 0.82821, 0.25612, 0.89754, 0.6242, 0.89754, 0.43118, 0.08805, 0.44237, 0.51902, 0.4401, 0.43175, 0.43805, 0.35262, 0.436, 0.27359, 0.43377, 0.18768, 0.44092, 0.60224, 0.43884, 0.72139 ], + "triangles": [ 4, 3, 37, 36, 37, 26, 37, 3, 32, 3, 2, 32, 37, 32, 26, 32, 27, 26, 2, 0, 32, 2, 1, 0, 32, 0, 27, 0, 28, 27, 6, 5, 35, 34, 35, 24, 35, 5, 36, 5, 4, 36, 35, 25, 24, 35, 36, 25, 36, 4, 37, 36, 26, 25, 7, 6, 34, 33, 34, 23, 34, 6, 35, 34, 24, 23, 39, 38, 21, 39, 8, 38, 38, 8, 33, 38, 22, 21, 38, 33, 22, 33, 8, 7, 33, 7, 34, 33, 23, 22, 29, 39, 20, 29, 9, 39, 39, 21, 20, 9, 8, 39, 30, 10, 29, 10, 9, 29, 15, 31, 16, 31, 15, 29, 13, 30, 14, 15, 14, 29, 14, 30, 29, 12, 11, 13, 16, 18, 17, 13, 11, 30, 16, 31, 18, 11, 10, 30, 31, 19, 18, 31, 29, 19, 29, 20, 19 ], + "vertices": [ 1, 84, -16.93, -3.67, 1, 1, 84, -16.62, -29.86, 1, 2, 85, -30.38, -28.39, 0.00675, 84, 3.66, -28.4, 0.99325, 2, 85, -7.5, -26.7, 0.28271, 84, 26.13, -26.7, 0.71729, 3, 86, -20.67, -25.24, 0.0369, 85, 12.75, -25.2, 0.82623, 84, 46.02, -25.2, 0.13687, 3, 86, -1.82, -23.81, 0.46001, 85, 31.62, -23.8, 0.53932, 84, 64.55, -23.8, 6.7E-4, 3, 87, -14.53, -22.33, 0.07429, 86, 18.77, -22.24, 0.89721, 85, 52.23, -22.28, 0.0285, 2, 87, 4.3, -20.78, 0.66292, 86, 37.68, -20.8, 0.33708, 3, 88, -9.4, -19.2, 0.39191, 87, 24.1, -19.15, 0.48809, 86, 57.58, -19.29, 0.12, 3, 131, 76.95, -52.14, 0.2, 88, 17.84, -21.57, 0.472, 87, 50.99, -21.67, 0.328, 3, 131, 84.21, -27.39, 0.33, 89, 9.43, -28.56, 0.5213, 88, 43.1, -28.59, 0.1487, 2, 131, 100.22, -2.61, 0.99748, 89, 34.19, -44.26, 0.00252, 1, 131, 100.22, 12.57, 1, 1, 131, 76.22, 4.32, 1, 1, 131, 61.37, 14.58, 1, 1, 131, 52.79, 14.58, 1, 1, 131, 31.67, 2.67, 1, 1, 131, -3.78, 6.63, 1, 3, 131, -3.78, -4.59, 0.99378, 89, 30.96, 59.71, 0.00244, 88, 65.41, 59.63, 0.00378, 4, 131, 8.57, -30.33, 0.60383, 89, 5.59, 47.04, 0.13666, 88, 39.34, 47.02, 0.2413, 87, 72.6, 46.82, 0.01821, 3, 131, 15.83, -53.76, 0.2, 88, 15.57, 39.53, 0.472, 87, 49.08, 39.45, 0.328, 5, 131, 21.11, -81.81, 0.0171, 89, -45.3, 33.86, 2.3E-4, 88, -12.93, 33.97, 0.32025, 87, 20.9, 34.04, 0.54241, 86, 54.67, 33.91, 0.12, 5, 131, 23.36, -102.97, 3.0E-5, 88, -34.45, 31.51, 0.01472, 87, -0.37, 31.69, 0.51834, 86, 33.3, 31.69, 0.46518, 85, 66.89, 31.63, 0.00174, 3, 87, -20.12, 29.51, 0.10716, 86, 13.46, 29.63, 0.77625, 85, 47.02, 29.61, 0.11659, 4, 87, -38.56, 27.48, 0.0033, 86, -5.07, 27.71, 0.43059, 85, 28.47, 27.72, 0.56203, 84, 61.45, 27.72, 0.00408, 3, 86, -25.12, 25.62, 0.05143, 85, 8.4, 25.67, 0.74366, 84, 41.73, 25.68, 0.20491, 2, 85, -11.75, 23.62, 0.18749, 84, 21.95, 23.62, 0.81251, 1, 84, 1.16, 17.55, 1, 1, 84, -11.55, 9.3, 1, 2, 131, 54.77, -26.3, 0.43, 89, 10.15, 0.89, 0.57, 3, 131, 73.58, -9.8, 0.43, 89, 26.74, -17.72, 0.56433, 88, 60.89, -17.78, 0.00567, 3, 131, 35.3, -9.8, 0.59, 89, 26.27, 20.56, 0.38171, 88, 60.51, 20.5, 0.02829, 1, 84, 0.33, -0.08, 1, 2, 87, 2.87, 0.85, 0.98548, 86, 36.38, 0.83, 0.01452, 2, 87, -18.01, 0.52, 2.8E-4, 86, 15.41, 0.62, 0.99972, 1, 85, 29.88, 0.44, 1, 2, 86, -22.6, 0.24, 1.2E-4, 85, 10.87, 0.28, 0.99988, 1, 84, 23.87, 0.12, 1, 4, 131, 54.37, -80.08, 0.04086, 88, -10.84, 0.74, 0.35514, 87, 22.79, 0.79, 0.484, 86, 56.38, 0.66, 0.12, 3, 131, 54.58, -51.73, 0.2, 88, 18.03, 0.8, 0.472, 87, 51.31, 0.71, 0.328 ], + "hull": 29, + "edges": [ 0, 2, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 56, 36, 62, 60, 22, 0, 64, 2, 4, 64, 4, 54, 56, 64, 54, 14, 16, 14, 66, 42, 44, 66, 44, 12, 14, 68, 66, 12, 68, 44, 46, 68, 46, 46, 48, 70, 68, 48, 70, 10, 12, 70, 10, 8, 10, 72, 70, 8, 72, 48, 50, 72, 50, 50, 52, 52, 54, 64, 74, 74, 72, 52, 74, 4, 6, 6, 8, 74, 6, 76, 66, 76, 42, 76, 16, 58, 78, 78, 76, 40, 78, 38, 58, 58, 20, 0, 54, 64, 52 ], + "width": 104, + "height": 238 + } + }, + "body-dress": { + "body-dress": { + "name": "girl-blue-cape/body-dress", + "type": "mesh", + "uvs": [ 0.37147, 0.03655, 0.19753, 0.06738, 0.15404, 0.12133, 0.32219, 0.19841, 0.33378, 0.22538, 0.2874, 0.28704, 0.23812, 0.34613, 0.20623, 0.41935, 0.18013, 0.49642, 0.14534, 0.60818, 0.11925, 0.7148, 0.09896, 0.82527, 0.08156, 0.87665, 0.02358, 0.92546, 0, 0.9614, 0, 0.98709, 0.11635, 0.9948, 0.2874, 1, 0.51933, 1, 0.72516, 0.99865, 0.97448, 0.99351, 1, 0.96782, 0.97738, 0.92286, 0.95999, 0.86891, 0.96578, 0.80597, 0.97738, 0.71091, 0.98028, 0.60301, 0.96578, 0.49382, 0.93679, 0.40776, 0.9049, 0.33325, 0.85852, 0.26517, 0.80344, 0.21251, 0.80634, 0.15984, 0.78024, 0.05858, 0.6121, 0.02646, 0.68457, 0.23071, 0.49613, 0.23199, 0.62261, 0.17757, 0.46316, 0.1917, 0.6719, 0.33814, 0.78206, 0.33428, 0.62551, 0.41393, 0.84584, 0.41136, 0.58202, 0.33557, 0.52404, 0.4165, 0.52114, 0.33557, 0.37619, 0.41264, 0.46026, 0.49228, 0.56463, 0.49614, 0.73857, 0.28162, 0.68059, 0.28419, 0.59652, 0.2829, 0.48635, 0.28676, 0.3443, 0.60918, 0.46026, 0.60661, 0.88643, 0.491, 0.32111, 0.7235, 0.19935, 0.71965, 0.52114, 0.72993, 0.80525, 0.72479, 0.55303, 0.60661, 0.79946, 0.60789, 0.51535, 0.88536, 0.83424, 0.88022, 0.30081, 0.88664, 0.30371, 0.81984, 0.52114, 0.81856, 0.81975, 0.81214, 0.82472, 0.94059, 0.61889, 0.94316, 0.39856, 0.94702, 0.23041, 0.95087, 0.09126, 0.94059, 0.35471, 0.49384, 0.13171, 0.87893, 0.15316, 0.82452, 0.93153, 0.92896, 0.91674, 0.87433, 0.92068, 0.80791, 0.05964, 0.93806 ], + "triangles": [ 49, 31, 30, 50, 51, 35, 50, 35, 49, 52, 36, 51, 5, 4, 52, 40, 49, 30, 40, 30, 29, 45, 52, 51, 43, 45, 51, 39, 51, 50, 43, 51, 39, 42, 40, 29, 46, 5, 52, 46, 52, 45, 41, 43, 39, 44, 45, 43, 39, 50, 49, 39, 49, 40, 41, 39, 40, 42, 41, 40, 37, 34, 33, 37, 33, 32, 38, 0, 34, 38, 34, 37, 3, 1, 0, 3, 0, 38, 2, 1, 3, 32, 35, 37, 4, 3, 38, 31, 35, 32, 36, 38, 37, 4, 38, 36, 36, 37, 35, 49, 35, 31, 51, 36, 35, 52, 4, 36, 6, 5, 46, 44, 43, 41, 46, 45, 44, 7, 6, 46, 76, 23, 22, 20, 76, 22, 20, 22, 21, 76, 68, 63, 76, 63, 77, 68, 76, 20, 19, 68, 20, 68, 19, 63, 79, 15, 14, 79, 14, 13, 15, 79, 72, 16, 72, 71, 15, 72, 16, 16, 71, 17, 63, 19, 69, 70, 64, 62, 17, 71, 64, 17, 64, 70, 18, 62, 69, 70, 62, 18, 17, 70, 18, 18, 69, 19, 63, 69, 62, 64, 65, 62, 25, 78, 59, 24, 78, 25, 67, 59, 78, 66, 59, 67, 23, 78, 24, 78, 63, 67, 77, 78, 23, 77, 63, 78, 62, 67, 63, 76, 77, 23, 62, 66, 67, 42, 29, 28, 55, 42, 28, 55, 28, 27, 55, 41, 42, 61, 48, 55, 55, 27, 26, 61, 26, 59, 55, 26, 61, 25, 59, 26, 59, 60, 61, 56, 58, 66, 62, 65, 66, 10, 9, 57, 56, 11, 57, 65, 56, 66, 57, 11, 10, 11, 56, 75, 56, 65, 75, 74, 11, 75, 12, 11, 74, 64, 75, 65, 74, 75, 64, 79, 13, 12, 72, 12, 74, 79, 12, 72, 71, 74, 64, 72, 74, 71, 66, 58, 59, 58, 56, 54, 59, 58, 60, 48, 44, 41, 47, 46, 44, 73, 46, 47, 47, 44, 48, 8, 7, 73, 60, 54, 47, 73, 47, 54, 48, 60, 47, 53, 8, 73, 53, 73, 54, 9, 8, 53, 57, 9, 53, 56, 53, 54, 48, 41, 55, 60, 48, 61, 56, 57, 53, 58, 54, 60, 73, 7, 46 ], + "vertices": [ 1, 4, 115.55, 22.28, 1, 1, 4, 103.28, 61.24, 1, 1, 4, 77.53, 72.69, 1, 1, 4, 36.95, 39, 1, 2, 4, 23.53, 37.48, 0.57, 3, 88.89, 40.23, 0.43, 2, 4, -5.96, 49.85, 0.4, 3, 59, 51.6, 0.6, 1, 2, -67.89, 26.14, 1, 2, 125, -119.82, 5.59, 0.41, 2, -74.84, -9.88, 0.59, 2, 125, -81.73, 1.16, 0.88, 126, -113.79, -10.46, 0.12, 2, 125, -26.52, -4.59, 0.75, 126, -58.29, -10.27, 0.25, 2, 125, 26.09, -8.53, 0.15, 126, -5.55, -8.55, 0.85, 2, 125, 80.56, -11.15, 0.12, 126, 48.88, -5.31, 0.88, 2, 125, 105.95, -14.1, 0.05, 126, 74.44, -5.52, 0.95, 2, 126, 100, -14.67, 0.49, 127, -24.37, -2.34, 0.51, 1, 127, -6.14, -4.95, 1, 1, 127, 6.37, -3.18, 1, 2, 129, -85.84, -9.66, 0.31, 127, 6.57, 22.47, 0.69, 2, 129, -48.55, -12.21, 0.52, 127, 3.88, 59.74, 0.48, 1, 129, 2.01, -12.21, 1, 2, 129, 46.88, -11.55, 0.53, 128, 17.25, -54.9, 0.47, 1, 128, 11.93, -0.75, 1, 1, 128, -0.98, 4.15, 1, 2, 124, 92.78, 14.32, 0.47, 128, -22.82, -1.91, 0.53, 3, 123, 101.67, 5.36, 0.29, 124, 66.47, 9.17, 0.4686, 128, -49.13, -7.06, 0.2414, 2, 123, 70.72, 6.91, 0.41, 124, 35.47, 8.84, 0.59, 2, 123, 23.98, 9.88, 0.76, 124, -11.36, 8.95, 0.24, 1, 123, -29.1, 11, 1, 2, 123, -82.85, 8.34, 0.89, 2, 90.75, -46.53, 0.11, 2, 123, -125.25, 2.41, 0.69, 2, 84.43, -4.18, 0.31, 1, 3, 30.67, -81.95, 1, 2, 4, -4.62, -75.11, 0.4, 3, 64.56, -73.25, 0.6, 2, 4, 22.12, -65.09, 0.57, 3, 90.95, -62.33, 0.43, 1, 4, 47.91, -67.67, 1, 1, 4, 98.02, -65.76, 1, 1, 4, 116.54, -30.4, 1, 2, 4, 15.15, -38.58, 0.57, 3, 83.08, -36.06, 0.43, 2, 4, 17.61, 2.43, 0.57, 3, 84.16, 5.01, 0.43, 1, 4, 42.24, -27.08, 1, 1, 4, 37.92, 8.11, 1, 1, 3, 30.39, -31.1, 1, 1, 3, 31.28, -55.18, 1, 2, 125, -125.52, 96.85, 0.32, 2, 16.57, -7.22, 0.68, 2, 123, -123.66, -17.43, 0.69, 2, 64.6, -5.95, 0.31, 1, 3, 32.47, -11.58, 1, 2, 125, -123.52, 74.78, 0.32, 2, -5.55, -8.48, 0.68, 1, 3, 33.02, 1.68, 1, 2, 125, -124.35, 42.51, 0.32, 2, -37.79, -6.58, 0.68, 2, 125, -85.79, 62.13, 0.97, 126, -124.37, 49.71, 0.03, 2, 125, -84.66, 84.93, 0.92, 2, 3.29, -47.66, 0.08, 2, 4, -10.72, -48.43, 0.4, 3, 57.57, -46.78, 0.6, 2, 4, -11.02, -35.73, 0.4, 3, 56.83, -34.1, 0.6, 2, 4, -9.01, -17.5, 0.4, 3, 58.23, -15.82, 0.6, 2, 4, -9.09, 6.59, 0.4, 3, 57.33, 8.26, 0.6, 2, 125, -27.47, 38.77, 0.92, 126, -63.88, 32.75, 0.08, 3, 125, -29.58, 64, 0.6336, 126, -68.67, 57.6, 0.3264, 124, -56.81, -106.27, 0.04, 2, 123, -84.4, -8.95, 0.89, 2, 73.45, -45.14, 0.11, 2, 125, 28.91, 35.59, 0.37, 126, -7.48, 35.62, 0.63, 2, 125, 27.9, 9, 0.22, 126, -5.64, 9.08, 0.78, 3, 125, 30.62, 79.28, 0.43771, 126, -10.46, 79.24, 0.53, 129, 2.41, 120.66, 0.03229, 2, 123, 30.45, -27.71, 0.32, 124, -2.61, -28.17, 0.68, 3, 125, -30.25, 84.21, 0.5664, 126, -71.51, 77.62, 0.3936, 124, -57.85, -86.07, 0.04, 1, 123, -27.07, -28.44, 1, 4, 125, 107.09, 80.56, 0.108, 126, 65.43, 88.71, 0.25092, 129, 1.14, 44.19, 0.4, 128, -36.06, -103.45, 0.24108, 3, 124, 73.43, -17.92, 0.3431, 129, 70.66, 46.72, 0.27, 128, -42.17, -34.15, 0.3869, 2, 126, 72.61, 42.49, 0.39, 129, -45.62, 43.56, 0.61, 2, 126, 39.98, 38.51, 0.68, 129, -44.99, 76.42, 0.32, 4, 125, 74.2, 80.73, 0.13965, 126, 32.72, 85.36, 0.46, 129, 2.41, 77.05, 0.17126, 128, -68.95, -103.88, 0.22909, 1, 124, 40.14, -22.8, 1, 2, 129, 68.59, 17.01, 0.32, 128, -12.4, -34.7, 0.68, 2, 129, 23.72, 15.75, 0.74, 128, -8.82, -79.44, 0.26, 1, 129, -24.32, 13.85, 1, 3, 126, 106.05, 31.73, 0.2256, 129, -60.97, 11.96, 0.52, 127, -18.31, 44.06, 0.2544, 3, 126, 105.3, 0.98, 0.2268, 129, -91.31, 17.01, 0.16, 127, -19.07, 13.31, 0.6132, 2, 125, -84.26, 39.16, 0.92, 126, -120.38, 27.04, 0.08, 3, 125, 106.71, -3.13, 0.03989, 126, 74.03, 5.46, 0.85011, 129, -82.49, 47.35, 0.11, 3, 125, 79.8, 0.65, 0.08746, 126, 46.86, 6.34, 0.82673, 129, -77.81, 74.12, 0.08581, 3, 124, 96.29, 4.49, 0.34371, 129, 91.87, 22.74, 0.05, 128, -19.31, -11.74, 0.60629, 4, 123, 104.25, -4.09, 0.1912, 124, 69.61, -0.11, 0.4382, 129, 88.65, 49.61, 0.06, 128, -45.98, -16.34, 0.31061, 4, 123, 71.58, -2.93, 0.28332, 124, 36.93, -0.93, 0.71646, 129, 89.51, 82.29, 5.0E-5, 128, -78.66, -17.16, 1.7E-4, 3, 126, 105.03, -6.02, 0.29357, 129, -98.2, 18.26, 0.08, 127, -19.34, 6.31, 0.62643 ], + "hull": 35, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 64, 66, 66, 68, 0, 68, 104, 10, 72, 8, 72, 70, 110, 96, 124, 128, 22, 112, 124, 126, 112, 116, 116, 118, 16, 146, 146, 94, 106, 146, 24, 148, 148, 128, 144, 142, 148, 150, 144, 30 ], + "width": 218, + "height": 492 + } + }, + "hand-back": { + "hand-back-fingers": { + "name": "girl/hand-front-fingers", + "path": "girl-blue-cape/hand-front-fingers", + "x": 11.59, + "y": 1.97, + "rotation": 90, + "width": 38, + "height": 42 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-blue-cape/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "ribbon-body": { + "ribbon-body": { "name": "girl-blue-cape/body-ribbon", "x": 18.42, "y": -33.29, "rotation": -94.33, "width": 100, "height": 75 } + }, + "sleeve-front": { + "sleeve-front": { + "name": "girl-blue-cape/sleeve-front", + "type": "mesh", + "uvs": [ 0.39189, 0, 0.14439, 0.01666, 0.15901, 0.10249, 0.17598, 0.19757, 0.191, 0.28175, 0.205, 0.3602, 0.22028, 0.44586, 0.23432, 0.52454, 0.2491, 0.60734, 0.22371, 0.71965, 0.1539, 0.82364, 0, 0.92776, 0, 0.99154, 0.23074, 0.95687, 0.37352, 1, 0.45602, 1, 0.6591, 0.94994, 1, 0.96658, 1, 0.91944, 0.88122, 0.81129, 0.81141, 0.71284, 0.76064, 0.59498, 0.73905, 0.50606, 0.71901, 0.4235, 0.7003, 0.34643, 0.68005, 0.26299, 0.65973, 0.17927, 0.63519, 0.07818, 0.61151, 0, 0.43698, 0.82821, 0.25612, 0.89754, 0.6242, 0.89754, 0.43118, 0.08805, 0.44237, 0.51902, 0.4401, 0.43175, 0.43805, 0.35262, 0.436, 0.27359, 0.43377, 0.18768, 0.44092, 0.60224, 0.43884, 0.72139 ], + "triangles": [ 31, 29, 19, 30, 10, 29, 31, 19, 18, 11, 10, 30, 16, 31, 18, 13, 11, 30, 16, 18, 17, 14, 30, 29, 31, 15, 29, 15, 31, 16, 12, 11, 13, 15, 14, 29, 13, 30, 14, 36, 26, 25, 36, 4, 37, 35, 36, 25, 35, 25, 24, 5, 4, 36, 35, 5, 36, 34, 35, 24, 6, 5, 35, 34, 24, 23, 34, 6, 35, 33, 34, 23, 7, 6, 34, 33, 23, 22, 33, 7, 34, 33, 8, 7, 38, 33, 22, 38, 22, 21, 38, 8, 33, 39, 8, 38, 39, 38, 21, 9, 8, 39, 39, 21, 20, 29, 9, 39, 29, 39, 20, 29, 20, 19, 10, 9, 29, 32, 0, 28, 32, 28, 27, 2, 1, 0, 2, 0, 32, 37, 32, 27, 37, 27, 26, 3, 2, 32, 37, 3, 32, 36, 37, 26, 4, 3, 37 ], + "vertices": [ 1, 11, -20.49, -4.66, 1, 1, 11, -16.63, -30.41, 1, 2, 11, 3.65, -28.95, 0.98956, 15, -30.38, -28.94, 0.01044, 2, 11, 26.12, -27.25, 0.69654, 15, -7.51, -27.25, 0.30346, 3, 11, 46.01, -25.75, 0.12833, 14, -20.67, -25.79, 0.04417, 15, 12.75, -25.75, 0.8275, 3, 11, 64.55, -24.35, 5.4E-4, 14, -1.82, -24.36, 0.45092, 15, 31.62, -24.35, 0.54855, 3, 13, -14.52, -22.88, 0.09244, 14, 18.77, -22.79, 0.86912, 15, 52.23, -22.83, 0.03844, 2, 13, 4.3, -21.33, 0.67682, 14, 37.68, -21.35, 0.32318, 3, 12, -9.39, -19.75, 0.17407, 13, 24.11, -19.7, 0.82329, 14, 57.58, -19.84, 0.00265, 3, 12, 17.84, -22.12, 0.96018, 13, 51, -22.22, 0.02472, 130, 19.81, 52.59, 0.0151, 2, 12, 43.11, -29.14, 0.51751, 130, 12.55, 28.05, 0.48249, 2, 12, 68.49, -44.89, 0.00319, 130, -3.45, 3.48, 0.99681, 1, 130, -3.45, -11.57, 1, 1, 130, 20.54, -3.4, 1, 1, 130, 35.39, -13.58, 1, 1, 130, 43.97, -13.58, 1, 1, 130, 65.09, -1.77, 1, 1, 130, 100.55, -5.7, 1, 2, 12, 65.42, 59.08, 0.01006, 130, 100.55, 5.43, 0.98994, 3, 12, 39.35, 46.47, 0.40219, 13, 72.61, 46.27, 0.00826, 130, 88.19, 30.95, 0.58955, 3, 12, 15.57, 38.98, 0.70901, 13, 49.08, 38.9, 0.15192, 130, 80.93, 54.19, 0.13907, 4, 12, -12.93, 33.42, 0.25073, 13, 20.9, 33.49, 0.66465, 14, 54.67, 33.36, 0.08185, 130, 75.65, 82, 0.00277, 4, 12, -34.44, 30.96, 0.01846, 13, -0.37, 31.14, 0.48291, 14, 33.3, 31.14, 0.4903, 15, 66.88, 31.08, 0.00833, 3, 13, -20.12, 28.96, 0.08139, 14, 13.46, 29.08, 0.74583, 15, 47.02, 29.06, 0.17278, 4, 11, 61.45, 27.17, 0.00108, 13, -38.56, 26.93, 7.5E-4, 14, -5.07, 27.16, 0.33502, 15, 28.47, 27.17, 0.66314, 3, 11, 41.73, 25.13, 0.17136, 14, -25.12, 25.07, 0.01658, 15, 8.4, 25.12, 0.81206, 2, 11, 21.95, 23.07, 0.80027, 15, -11.75, 23.07, 0.19973, 1, 11, -1.94, 20.59, 1, 1, 11, -20.42, 18.18, 1, 2, 12, 43.91, 0.31, 0.7298, 130, 41.99, 26.96, 0.2702, 2, 12, 60.9, -18.33, 0.15731, 130, 23.18, 10.61, 0.84269, 2, 12, 60.51, 19.95, 0.14683, 130, 61.46, 10.6, 0.85317, 1, 11, 0.33, -0.63, 1, 1, 13, 2.87, 0.3, 1, 1, 14, 15.41, 0.07, 1, 1, 15, 29.88, -0.11, 1, 2, 14, -22.6, -0.31, 0, 15, 10.87, -0.27, 1, 1, 11, 23.87, -0.43, 1, 3, 12, -10.83, 0.19, 2.3E-4, 13, 22.79, 0.24, 0.99974, 14, 56.38, 0.11, 3.0E-5, 3, 12, 18.04, 0.25, 0.9998, 13, 51.31, 0.16, 5.0E-5, 130, 42.18, 52.17, 1.5E-4 ], + "hull": 29, + "edges": [ 0, 2, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 56, 36, 62, 60, 22, 0, 64, 2, 4, 64, 4, 54, 56, 64, 54, 14, 16, 14, 66, 42, 44, 66, 44, 12, 14, 68, 66, 12, 68, 44, 46, 68, 46, 46, 48, 70, 68, 48, 70, 10, 12, 70, 10, 8, 10, 72, 70, 8, 72, 48, 50, 72, 50, 50, 52, 52, 54, 64, 74, 74, 72, 52, 74, 4, 6, 6, 8, 74, 6, 76, 66, 76, 42, 76, 16, 58, 78, 78, 76, 40, 78, 38, 58, 58, 20 ], + "width": 104, + "height": 238 + } + }, + "sleeve-inner-back": { + "sleeve-inner-back": { + "name": "girl-blue-cape/sleeve-back", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 1, 131, 5.56, 15.9, 1, 2, 131, 88.56, 15.9, 0.93003, 83, 41.53, -33.45, 0.06997, 2, 131, 88.56, -41.1, 0.44316, 83, -15.47, -33.45, 0.55684, 2, 131, 5.56, -41.1, 0.60086, 83, -15.47, 49.55, 0.39914 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 83, + "height": 57 + } + }, + "sleeve-inner-front": { + "sleeve-inner-front": { + "name": "girl-blue-cape/sleeve-back", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 130, 91.43, -14.89, 1, 2, 130, 8.43, -14.88, 1, 12, 87.21, -32.83, 0, 2, 130, 8.42, 41.64, 0.34345, 12, 29.2, -33.4, 0.65655, 2, 130, 91.42, 41.63, 0.5791, 12, 28.35, 49.6, 0.4209 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 83, + "height": 57 + } + } + } + }, + { + "name": "clothes/dress-green", + "bones": [ "skirt-control", "skirt-control-back", "skirt-control-back-down", "skirt-control-front", "skirt-control-front-down", "skirt-control-middle", "skirt-control-up" ], + "attachments": { + "body-up": { + "body-up": { "name": "girl-spring-dress/body-up", "x": 59.16, "y": -14.67, "rotation": -94.33, "width": 128, "height": 131 } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-spring-dress/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "skirt": { + "skirt": { + "name": "girl-spring-dress/skirt", + "type": "mesh", + "uvs": [ 0.532, 0, 0.4709, 0, 0.41171, 0, 0.25323, 0.09671, 0.14058, 0.22113, 0.0623, 0.34554, 0, 0.45708, 6.0E-5, 0.78742, 0.1654, 0.88181, 0.31815, 1, 0.50526, 1, 0.68856, 1, 0.83749, 0.87752, 0.99236, 0.73165, 1, 0.41418, 0.9215, 0.29835, 0.84131, 0.18252, 0.72866, 0.06668, 0.6141, 0, 0.13103, 0.46995, 0.23796, 0.60724, 0.35252, 0.69733, 0.50336, 0.74023, 0.6561, 0.69733, 0.76875, 0.60724, 0.86613, 0.46137, 0.78212, 0.3198, 0.71338, 0.41418, 0.62555, 0.47424, 0.51672, 0.4914, 0.38498, 0.48711, 0.29906, 0.39702, 0.21695, 0.30264, 0.35443, 0.23399, 0.29524, 0.1868, 0.42507, 0.25973, 0.52818, 0.26832, 0.59309, 0.24257, 0.64083, 0.19967, 0.69429, 0.14819 ], + "triangles": [ 20, 31, 30, 30, 35, 29, 29, 36, 28, 29, 35, 36, 30, 31, 35, 36, 37, 28, 28, 37, 27, 38, 27, 37, 31, 33, 35, 31, 32, 33, 38, 39, 26, 32, 34, 33, 32, 4, 34, 0, 37, 36, 36, 35, 1, 36, 1, 0, 33, 2, 35, 35, 2, 1, 38, 0, 18, 38, 37, 0, 33, 34, 2, 4, 3, 34, 38, 18, 39, 34, 3, 2, 39, 18, 17, 12, 11, 23, 23, 24, 12, 12, 24, 13, 24, 25, 13, 13, 25, 14, 28, 27, 24, 24, 27, 25, 27, 26, 25, 25, 15, 14, 25, 26, 15, 26, 27, 38, 26, 16, 15, 26, 39, 16, 39, 17, 16, 23, 28, 24, 9, 22, 10, 23, 11, 22, 11, 10, 22, 9, 21, 22, 9, 8, 21, 23, 22, 29, 22, 21, 29, 29, 28, 23, 21, 30, 29, 21, 20, 30, 8, 20, 21, 8, 7, 20, 7, 19, 20, 7, 6, 19, 20, 19, 31, 6, 5, 19, 19, 32, 31, 19, 5, 32, 5, 4, 32 ], + "vertices": [ 1, 4, 17.29, -36.28, 1, 1, 4, 18.97, -14.1, 1, 1, 4, 20.6, 7.38, 1, 2, 110, 65.82, -89.43, 0.30593, 4, 9.32, 66.08, 0.69407, 2, 110, 45.66, -48.43, 0.65597, 4, -7.68, 108.49, 0.34403, 2, 110, 25.51, -19.93, 0.88973, 4, -25.63, 138.42, 0.11027, 1, 110, 7.44, 2.74, 1, 1, 110, -46.08, 2.72, 1, 3, 110, -61.37, -57.46, 0.25894, 105, 13.43, 107.85, 0.71, 4, -115.09, 107.55, 0.03106, 3, 110, -80.52, -113.06, 0.21204, 105, -5.71, 52.25, 0.72535, 4, -138.37, 53.55, 0.06261, 1, 105, -5.71, -15.86, 1, 3, 105, -5.71, -82.58, 0.58138, 109, -87.91, 109.6, 0.34368, 4, -148.54, -80.89, 0.07494, 3, 105, 14.13, -136.79, 0.26163, 109, -68.06, 55.39, 0.68053, 4, -132.84, -136.44, 0.05783, 2, 105, 37.76, -193.16, 0.24, 109, -44.43, -0.99, 0.76, 1, 109, 7, -3.77, 1, 2, 109, 25.76, 24.81, 0.90843, 4, -41.59, -174.01, 0.09157, 2, 109, 44.53, 54, 0.73242, 4, -20.68, -146.32, 0.26758, 2, 109, 63.29, 95, 0.45401, 4, 1.12, -106.85, 0.54599, 1, 4, 15.04, -66.08, 1, 3, 110, 5.35, -44.95, 0.6612, 105, 80.15, 120.36, 0.2, 4, -47.61, 114.99, 0.1388, 3, 110, -16.89, -83.87, 0.37019, 105, 57.91, 81.44, 0.45, 4, -72.73, 77.86, 0.17981, 3, 110, -31.48, -125.57, 0.18786, 105, 43.32, 39.74, 0.5858, 4, -90.42, 37.38, 0.22634, 3, 105, 36.37, -15.16, 0.75525, 109, -45.82, 177.01, 0.06474, 4, -101.5, -16.84, 0.18, 3, 105, 43.32, -70.76, 0.49637, 109, -38.87, 121.41, 0.31941, 4, -98.76, -72.81, 0.18423, 3, 105, 57.91, -111.77, 0.4, 109, -24.28, 80.41, 0.47496, 4, -87.3, -114.8, 0.12504, 3, 105, 81.54, -147.21, 0.16, 109, -0.65, 44.96, 0.74601, 4, -66.41, -151.92, 0.09399, 3, 105, 104.48, -116.63, 0.17, 109, 22.29, 75.54, 0.56301, 4, -41.23, -123.16, 0.26699, 3, 105, 89.19, -91.61, 0.24, 109, 7, 100.56, 0.43686, 4, -54.59, -97.06, 0.32314, 3, 105, 79.46, -59.64, 0.33142, 109, -2.73, 132.53, 0.26648, 4, -61.88, -64.45, 0.40211, 3, 105, 76.68, -20.03, 0.40588, 109, -5.51, 172.15, 0.09581, 4, -61.67, -24.73, 0.49831, 3, 110, 2.57, -137.39, 0.12845, 105, 77.37, 27.93, 0.35758, 4, -57.36, 23.03, 0.51397, 3, 110, 17.17, -106.11, 0.2437, 105, 91.97, 59.2, 0.31, 4, -40.45, 53.12, 0.4463, 3, 110, 32.46, -76.23, 0.46618, 105, 107.26, 89.09, 0.09047, 4, -22.95, 81.76, 0.44335, 3, 110, 43.58, -126.27, 0.11844, 105, 118.38, 39.05, 0.11, 4, -15.63, 31.03, 0.77156, 3, 110, 51.22, -104.72, 0.22926, 105, 126.02, 60.59, 0.0575, 4, -6.38, 51.94, 0.71324, 2, 105, 114.21, 13.33, 0.17, 4, -21.73, 5.7, 0.83, 3, 105, 112.82, -24.2, 0.14524, 109, 30.63, 167.98, 0.09502, 4, -25.94, -31.62, 0.75974, 3, 105, 116.99, -47.83, 0.14384, 109, 34.8, 144.35, 0.18939, 4, -23.57, -55.49, 0.66677, 3, 105, 123.94, -65.2, 0.09, 109, 41.75, 126.97, 0.28023, 4, -17.95, -73.34, 0.62977, 3, 105, 132.28, -84.66, 0.03, 109, 50.09, 107.51, 0.39568, 4, -11.1, -93.38, 0.57432 ], + "hull": 19, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 4, 2, 70, 2, 2, 0, 0, 36, 72, 0, 18, 20, 20, 22, 44, 20, 54, 76 ], + "width": 364, + "height": 162 + } + }, + "underskirt": { + "underskirt": { + "name": "girl-spring-dress/underskirt", + "type": "mesh", + "uvs": [ 0.13668, 0, 0, 0.11048, 0, 0.35349, 0, 0.5756, 0.07116, 0.76423, 0.25979, 0.94448, 0.46464, 1, 0.68672, 0.97656, 0.87735, 0.83221, 1, 0.55421, 1, 0.38798, 1, 0, 0.79052, 0.28923, 0.64716, 0.42987, 0.49934, 0.45979, 0.35819, 0.40892, 0.23815, 0.30419, 0.12923, 0.13064, 0.52712, 0.17253 ], + "triangles": [ 13, 14, 18, 15, 16, 18, 18, 0, 11, 17, 0, 18, 13, 18, 12, 14, 15, 18, 12, 18, 11, 9, 8, 12, 8, 13, 12, 12, 10, 9, 12, 11, 10, 7, 13, 8, 7, 6, 14, 6, 5, 14, 14, 13, 7, 5, 15, 14, 5, 4, 15, 16, 4, 3, 16, 15, 4, 3, 2, 16, 2, 17, 16, 2, 1, 17, 17, 1, 0, 16, 17, 18 ], + "vertices": [ 4, 111, 66.62, -34.12, 0.33917, 108, 115.67, 117.58, 0.06079, 112, 61.17, 280.19, 4.0E-5, 4, -32.12, 111.03, 0.6, 2, 111, 52.25, 13.72, 0.98771, 108, 101.3, 165.42, 0.01229, 2, 111, 20.66, 13.72, 0.99893, 108, 69.71, 165.42, 0.00107, 2, 111, -8.21, 13.72, 0.78, 108, 40.84, 165.42, 0.22, 2, 111, -37.4, -20.91, 0.53, 108, 11.65, 130.79, 0.47, 2, 111, -56.17, -77.21, 0.435, 108, -7.12, 74.49, 0.565, 3, 111, -63.38, -154.35, 0.00296, 108, -14.33, -2.65, 0.98871, 112, -68.83, 159.96, 0.00833, 2, 108, -11.29, -74.93, 0.61621, 112, -65.78, 87.68, 0.38379, 2, 108, 7.48, -141.65, 0.5, 112, -47.02, 20.96, 0.5, 2, 108, 43.62, -184.58, 0.24, 112, -10.88, -21.97, 0.76, 1, 112, 10.73, -21.97, 1, 3, 108, 115.67, -184.58, 7.6E-4, 112, 61.17, -21.97, 0.88924, 4, -54.9, -190.27, 0.11, 4, 111, 29.02, -262.96, 2.5E-4, 108, 78.07, -111.26, 0.4, 112, 23.57, 51.35, 0.49361, 4, -86.87, -114.32, 0.10614, 4, 111, 13.85, -221.73, 0.00648, 108, 62.89, -70.03, 0.45247, 112, 8.4, 92.58, 0.40105, 4, -98.89, -72.07, 0.14, 4, 111, 6.84, -166.5, 0.0591, 108, 55.89, -14.79, 0.67677, 112, 1.4, 147.82, 0.12413, 4, -101.7, -16.46, 0.14, 4, 111, 13.46, -111.65, 0.28006, 108, 62.51, 40.06, 0.56032, 112, 8.01, 202.67, 0.01962, 4, -90.97, 37.74, 0.14, 4, 111, 27.07, -69.63, 0.54438, 108, 76.12, 82.07, 0.31301, 112, 21.63, 244.68, 0.00262, 4, -74.23, 78.6, 0.14, 4, 111, 49.63, -31.51, 0.74734, 108, 98.68, 120.19, 0.11265, 112, 44.19, 282.8, 1.0E-5, 4, -48.86, 114.91, 0.14, 1, 4, -64.79, -23.54, 1 ], + "hull": 12, + "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 22, 16, 24, 18, 20, 20, 22, 12, 28, 10, 30, 8, 32, 14, 26, 2, 4, 4, 6, 32, 4 ], + "width": 350, + "height": 130 + } + } + } + }, + { + "name": "eyes/eyes-blue", + "attachments": { + "eye-back-iris": { + "eye-back-iris": { "name": "girl/eye-iris-back", "x": 0.85, "y": -0.75, "width": 33, "height": 34 } + }, + "eye-back-pupil": { + "eye-back-pupil": { + "name": "girl/eye-back-pupil", + "x": 0.43, + "y": -0.67, + "scaleX": 1.2, + "scaleY": 1.2062, + "width": 15, + "height": 17 + } + }, + "eye-front-iris": { + "eye-front-iris": { "name": "girl/eye-iris-front", "x": 0.22, "y": -0.71, "width": 36, "height": 35 } + }, + "eye-front-pupil": { + "eye-front-pupil": { + "name": "girl/eye-front-pupil", + "x": -0.04, + "y": -0.47, + "scaleX": 1.2, + "scaleY": 1.2, + "width": 17, + "height": 17 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "full-skins/girl", + "bones": [ "bag", "bag-back-down", "bag-back-front", "bag-control", "bag-flap", "bag-strap-back", "bag-strap-front", "hair-holder-back", "hair-holder-front", "hair-strand-back-1", "hair-strand-back-2", "hair-strand-back-3", "hair-strand-front-1", "hair-strand-front-2", "hair-strand-front-3", "hair-strand-front-4", "hat", "hat-base", "hat-control", "pompom-control", "scarf-back", "zip-girl" ], + "transform": [ "hat-control", "leg-down-back-up", "leg-up-back" ], + "attachments": { + "arm-back": { + "arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 } + }, + "bag-base": { + "bag-base": { + "name": "girl/bag-base", + "type": "mesh", + "uvs": [ 0.83893, 0.8993, 0.6302, 1, 0.16529, 0.94665, 0.01981, 0.72002, 0, 0.45956, 0.05144, 0.21601, 0.15581, 0, 0.8073, 0.02997, 0.95278, 0.23969, 1, 0.45956, 1, 0.68619, 0.61122, 0.80458, 0.56694, 0.49338, 0.67131, 0.22616 ], + "triangles": [ 13, 5, 6, 13, 6, 7, 2, 11, 1, 8, 9, 13, 10, 11, 9, 12, 5, 13, 12, 9, 11, 3, 12, 11, 13, 9, 12, 0, 11, 10, 1, 11, 0, 13, 7, 8, 4, 5, 12, 3, 4, 12, 2, 3, 11 ], + "vertices": [ 2, 57, -24.02, 97.1, 0.4359, 58, -108.39, 43.99, 0.5641, 2, 57, 0.18, 111.52, 0.48095, 58, -84.2, 58.41, 0.51905, 2, 57, 57.69, 111.91, 0.16986, 58, -26.69, 58.81, 0.83014, 2, 57, 78.42, 88.05, 0.54, 58, -5.95, 34.95, 0.46, 2, 57, 84.25, 58.57, 0.53182, 58, -0.13, 5.47, 0.46818, 2, 57, 81.14, 30.02, 0.39, 58, -3.24, -23.08, 0.61, 1, 58, -13.17, -49.22, 1, 2, 57, -8.8, -1.79, 0.37, 58, -93.18, -54.89, 0.63, 2, 57, -29.32, 20.14, 0.51747, 58, -113.69, -32.96, 0.48253, 2, 57, -37.96, 44.6, 0.46, 58, -122.33, -8.5, 0.54, 2, 57, -40.92, 70.5, 0.46, 58, -125.29, 17.39, 0.54, 2, 57, 5.05, 89.45, 0.96, 58, -79.33, 36.35, 0.04, 1, 57, 14.52, 54.52, 1, 2, 57, 5.26, 22.53, 0.92, 58, -79.12, -30.58, 0.08 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20, 24, 26, 22, 6 ], + "width": 123, + "height": 115 + } + }, + "bag-strap-back": { + "bag-strap-back": { + "name": "girl/bag-strap-front", + "type": "mesh", + "uvs": [ 0.10329, 0.09701, 0.09625, 0.16933, 0.0882, 0.24002, 0.07824, 0.30385, 0.06981, 0.37343, 0.06125, 0.44416, 0.05318, 0.51073, 0.04445, 0.58281, 0.03622, 0.65075, 0.02694, 0.72743, 0.01818, 0.7997, 0.00877, 0.87745, 0, 0.94985, 0.49463, 0.9881, 1, 0.94985, 0.9924, 0.87902, 0.98374, 0.79824, 0.97585, 0.72459, 0.96826, 0.65383, 0.96097, 0.58591, 0.95321, 0.51354, 0.94607, 0.44688, 0.93834, 0.37479, 0.93057, 0.30235, 0.92162, 0.23729, 0.91478, 0.1693, 0.90826, 0.09429, 0.90262, 0.04177, 0.68729, 0.00493, 0.50446, 0.00754, 0.29063, 0.0106, 0.10929, 0.04743, 0.49571, 0.88043, 0.49652, 0.79968, 0.49725, 0.72601, 0.49799, 0.65234, 0.49866, 0.58577, 0.49938, 0.51352, 0.50005, 0.44693, 0.50078, 0.3747, 0.50147, 0.30525, 0.50233, 0.23869, 0.50296, 0.17069, 0.50358, 0.09559 ], + "triangles": [ 36, 6, 37, 7, 6, 36, 36, 37, 20, 19, 36, 20, 35, 7, 36, 8, 7, 35, 35, 36, 19, 18, 35, 19, 34, 8, 35, 34, 35, 18, 34, 18, 17, 9, 8, 34, 33, 9, 34, 33, 34, 17, 33, 17, 16, 10, 9, 33, 32, 10, 33, 11, 10, 32, 32, 33, 16, 32, 16, 15, 13, 11, 32, 12, 11, 13, 13, 32, 15, 13, 15, 14, 43, 30, 29, 43, 29, 28, 26, 43, 28, 26, 28, 27, 0, 31, 30, 0, 30, 43, 42, 0, 43, 1, 0, 42, 42, 43, 26, 42, 26, 25, 41, 1, 42, 41, 42, 25, 41, 25, 24, 2, 1, 41, 40, 2, 41, 3, 2, 40, 40, 41, 24, 40, 24, 23, 39, 3, 40, 4, 3, 39, 39, 40, 23, 22, 39, 23, 38, 4, 39, 5, 4, 38, 38, 39, 22, 38, 22, 21, 37, 5, 38, 6, 5, 37, 37, 38, 21, 20, 37, 21 ], + "vertices": [ 2, 61, -9.66, -6.38, 0.99238, 62, -9.66, 163.86, 0.00762, 2, 61, -9.83, -20.27, 0.95187, 62, -9.83, 149.97, 0.04813, 2, 61, -10.03, -33.84, 0.88337, 62, -10.03, 136.4, 0.11663, 2, 61, -10.27, -46.1, 0.80311, 62, -10.27, 124.14, 0.19689, 2, 61, -10.47, -59.46, 0.70151, 62, -10.47, 110.78, 0.29849, 2, 61, -10.67, -73.04, 0.58865, 62, -10.67, 97.2, 0.41135, 2, 61, -10.87, -85.82, 0.47894, 62, -10.87, 84.42, 0.52106, 2, 61, -11.08, -99.66, 0.36197, 62, -11.08, 70.58, 0.63803, 2, 61, -11.27, -112.7, 0.25859, 62, -11.27, 57.54, 0.74141, 2, 61, -11.5, -127.42, 0.15597, 62, -11.5, 42.82, 0.84403, 2, 61, -11.71, -141.3, 0.07856, 62, -11.71, 28.94, 0.92144, 2, 61, -11.93, -156.23, 0.02246, 62, -11.93, 14.01, 0.97754, 2, 61, -12.14, -170.13, 0.00178, 62, -12.14, 0.11, 0.99822, 1, 62, -0.27, -7.23, 1, 2, 61, 11.86, -170.13, 0.00175, 62, 11.86, 0.11, 0.99825, 2, 61, 11.67, -156.53, 0.0217, 62, 11.67, 13.71, 0.9783, 2, 61, 11.47, -141.02, 0.07999, 62, 11.47, 29.22, 0.92001, 2, 61, 11.28, -126.88, 0.15955, 62, 11.28, 43.36, 0.84045, 2, 61, 11.1, -113.29, 0.25429, 62, 11.1, 56.95, 0.74571, 2, 61, 10.92, -100.25, 0.35721, 62, 10.92, 69.99, 0.64279, 2, 61, 10.73, -86.36, 0.47445, 62, 10.73, 83.88, 0.52555, 2, 61, 10.56, -73.56, 0.58435, 62, 10.56, 96.68, 0.41565, 2, 61, 10.38, -59.72, 0.69956, 62, 10.38, 110.52, 0.30044, 2, 61, 10.19, -45.81, 0.80529, 62, 10.19, 124.43, 0.19471, 2, 61, 9.98, -33.32, 0.88656, 62, 9.98, 136.92, 0.11344, 2, 61, 9.81, -20.26, 0.95193, 62, 9.81, 149.98, 0.04807, 2, 61, 9.66, -5.86, 0.99321, 62, 9.66, 164.38, 0.00679, 2, 61, 9.52, 4.22, 0.99996, 62, 9.52, 174.46, 4.0E-5, 1, 61, 4.35, 11.3, 1, 1, 61, -0.04, 10.79, 1, 1, 61, -5.17, 10.21, 1, 2, 61, -9.52, 3.14, 0.99986, 62, -9.52, 173.38, 1.4E-4, 2, 61, -0.25, -156.8, 0.02105, 62, -0.25, 13.44, 0.97895, 2, 61, -0.23, -141.3, 0.07899, 62, -0.23, 28.94, 0.92101, 2, 61, -0.21, -127.15, 0.15826, 62, -0.21, 43.09, 0.84174, 2, 61, -0.19, -113.01, 0.25696, 62, -0.19, 57.23, 0.74304, 2, 61, -0.18, -100.22, 0.35801, 62, -0.18, 70.02, 0.64199, 2, 61, -0.16, -86.35, 0.47508, 62, -0.16, 83.89, 0.52492, 2, 61, -0.14, -73.57, 0.58483, 62, -0.14, 96.67, 0.41517, 2, 61, -0.12, -59.7, 0.70022, 62, -0.12, 110.54, 0.29978, 2, 61, -0.11, -46.37, 0.80185, 62, -0.11, 123.87, 0.19815, 2, 61, -0.09, -33.59, 0.88541, 62, -0.09, 136.65, 0.11459, 2, 61, -0.07, -20.53, 0.95108, 62, -0.07, 149.71, 0.04892, 2, 61, -0.06, -6.11, 0.9934, 62, -0.06, 164.13, 0.0066 ], + "hull": 32, + "edges": [ 24, 26, 26, 28, 54, 56, 60, 62, 56, 58, 58, 60, 24, 22, 26, 64, 22, 64, 28, 30, 64, 30, 22, 20, 66, 64, 20, 66, 30, 32, 66, 32, 20, 18, 68, 66, 18, 68, 32, 34, 68, 34, 18, 16, 70, 68, 16, 70, 34, 36, 70, 36, 16, 14, 72, 70, 14, 72, 36, 38, 72, 38, 38, 40, 74, 72, 40, 74, 14, 12, 74, 12, 12, 10, 76, 74, 10, 76, 40, 42, 76, 42, 10, 8, 78, 76, 8, 78, 42, 44, 78, 44, 8, 6, 80, 78, 6, 80, 44, 46, 80, 46, 6, 4, 82, 80, 4, 82, 46, 48, 82, 48, 4, 2, 84, 82, 2, 84, 48, 50, 84, 50, 2, 0, 0, 62, 58, 86, 86, 84, 0, 86, 50, 52, 52, 54, 86, 52 ], + "width": 24, + "height": 192 + } + }, + "bag-strap-front": { + "bag-strap-front": { + "name": "girl/bag-strap-front", + "type": "mesh", + "uvs": [ 0.10329, 0.09701, 0.09625, 0.16933, 0.0882, 0.24002, 0.07824, 0.30385, 0.06981, 0.37343, 0.06125, 0.44416, 0.05318, 0.51073, 0.04445, 0.58281, 0.03622, 0.65075, 0.02694, 0.72743, 0.01818, 0.7997, 0.00877, 0.87745, 0, 0.94985, 0.49463, 0.9881, 1, 0.94985, 0.9924, 0.87902, 0.98374, 0.79824, 0.97585, 0.72459, 0.96826, 0.65383, 0.96097, 0.58591, 0.95321, 0.51354, 0.94607, 0.44688, 0.93834, 0.37479, 0.93057, 0.30235, 0.92162, 0.23729, 0.91478, 0.1693, 0.90826, 0.09429, 0.90262, 0.04177, 0.68729, 0.00493, 0.50446, 0.00754, 0.29063, 0.0106, 0.10929, 0.04743, 0.49571, 0.88043, 0.49652, 0.79968, 0.49725, 0.72601, 0.49799, 0.65234, 0.49866, 0.58577, 0.49938, 0.51352, 0.50005, 0.44693, 0.50078, 0.3747, 0.50147, 0.30525, 0.50233, 0.23869, 0.50296, 0.17069, 0.50358, 0.09559 ], + "triangles": [ 36, 6, 37, 7, 6, 36, 36, 37, 20, 19, 36, 20, 35, 7, 36, 8, 7, 35, 35, 36, 19, 18, 35, 19, 34, 8, 35, 34, 35, 18, 34, 18, 17, 9, 8, 34, 33, 9, 34, 33, 34, 17, 33, 17, 16, 10, 9, 33, 32, 10, 33, 11, 10, 32, 32, 33, 16, 32, 16, 15, 13, 11, 32, 12, 11, 13, 13, 32, 15, 13, 15, 14, 43, 30, 29, 43, 29, 28, 26, 43, 28, 26, 28, 27, 0, 31, 30, 0, 30, 43, 42, 0, 43, 1, 0, 42, 42, 43, 26, 42, 26, 25, 41, 1, 42, 41, 42, 25, 41, 25, 24, 2, 1, 41, 40, 2, 41, 3, 2, 40, 40, 41, 24, 40, 24, 23, 39, 3, 40, 4, 3, 39, 39, 40, 23, 22, 39, 23, 38, 4, 39, 5, 4, 38, 38, 39, 22, 38, 22, 21, 37, 5, 38, 6, 5, 37, 37, 38, 21, 20, 37, 21 ], + "vertices": [ 2, 63, -8.77, -6.38, 0.99173, 64, -8.77, 163.86, 0.00827, 2, 63, -8.94, -20.27, 0.94988, 64, -8.94, 149.97, 0.05012, 2, 63, -9.13, -33.84, 0.8807, 64, -9.13, 136.4, 0.1193, 2, 63, -9.37, -46.1, 0.8002, 64, -9.37, 124.14, 0.1998, 2, 63, -9.57, -59.46, 0.69863, 64, -9.57, 110.78, 0.30137, 2, 63, -9.78, -73.04, 0.58605, 64, -9.78, 97.2, 0.41395, 2, 63, -9.97, -85.82, 0.47675, 64, -9.97, 84.42, 0.52325, 2, 63, -10.18, -99.66, 0.36031, 64, -10.18, 70.58, 0.63969, 2, 63, -10.38, -112.7, 0.25746, 64, -10.38, 57.54, 0.74254, 2, 63, -10.6, -127.42, 0.1554, 64, -10.6, 42.82, 0.8446, 2, 63, -10.81, -141.3, 0.07837, 64, -10.81, 28.94, 0.92163, 2, 63, -11.04, -156.23, 0.02242, 64, -11.04, 14.01, 0.97758, 2, 63, -11.25, -170.13, 0.00161, 64, -11.25, 0.11, 0.99839, 1, 64, 0.62, -7.23, 1, 2, 63, 12.75, -170.13, 0.00201, 64, 12.75, 0.11, 0.99799, 2, 63, 12.57, -156.53, 0.02191, 64, 12.57, 13.71, 0.97809, 2, 63, 12.36, -141.02, 0.07986, 64, 12.36, 29.22, 0.92014, 2, 63, 12.17, -126.88, 0.15897, 64, 12.17, 43.36, 0.84103, 2, 63, 11.99, -113.29, 0.25319, 64, 11.99, 56.95, 0.74681, 2, 63, 11.82, -100.25, 0.35558, 64, 11.82, 69.99, 0.64442, 2, 63, 11.63, -86.36, 0.47228, 64, 11.63, 83.88, 0.52772, 2, 63, 11.46, -73.56, 0.58177, 64, 11.46, 96.68, 0.41823, 2, 63, 11.27, -59.72, 0.69669, 64, 11.27, 110.52, 0.30331, 2, 63, 11.09, -45.81, 0.80238, 64, 11.09, 124.43, 0.19762, 2, 63, 10.87, -33.32, 0.88388, 64, 10.87, 136.92, 0.11612, 2, 63, 10.71, -20.26, 0.94981, 64, 10.71, 149.98, 0.05019, 2, 63, 10.55, -5.86, 0.9921, 64, 10.55, 164.38, 0.0079, 2, 63, 10.42, 4.22, 0.99987, 64, 10.42, 174.46, 1.3E-4, 1, 63, 5.25, 11.3, 1, 1, 63, 0.86, 10.79, 1, 1, 63, -4.27, 10.21, 1, 2, 63, -8.62, 3.14, 0.99986, 64, -8.62, 173.38, 1.4E-4, 2, 63, 0.65, -156.8, 0.02114, 64, 0.65, 13.44, 0.97886, 2, 63, 0.67, -141.3, 0.07883, 64, 0.67, 28.94, 0.92117, 2, 63, 0.69, -127.15, 0.15769, 64, 0.69, 43.09, 0.84231, 2, 63, 0.71, -113.01, 0.25584, 64, 0.71, 57.23, 0.74416, 2, 63, 0.72, -100.22, 0.35637, 64, 0.72, 70.02, 0.64363, 2, 63, 0.74, -86.35, 0.4729, 64, 0.74, 83.89, 0.5271, 2, 63, 0.75, -73.57, 0.58224, 64, 0.75, 96.67, 0.41776, 2, 63, 0.77, -59.7, 0.69735, 64, 0.77, 110.54, 0.30265, 2, 63, 0.79, -46.37, 0.79894, 64, 0.79, 123.87, 0.20106, 2, 63, 0.81, -33.59, 0.88274, 64, 0.81, 136.65, 0.11726, 2, 63, 0.82, -20.53, 0.94901, 64, 0.82, 149.71, 0.05099, 2, 63, 0.84, -6.11, 0.99248, 64, 0.84, 164.13, 0.00752 ], + "hull": 32, + "edges": [ 24, 26, 26, 28, 54, 56, 60, 62, 56, 58, 58, 60, 24, 22, 26, 64, 22, 64, 28, 30, 64, 30, 22, 20, 66, 64, 20, 66, 30, 32, 66, 32, 20, 18, 68, 66, 18, 68, 32, 34, 68, 34, 18, 16, 70, 68, 16, 70, 34, 36, 70, 36, 16, 14, 72, 70, 14, 72, 36, 38, 72, 38, 38, 40, 74, 72, 40, 74, 14, 12, 74, 12, 12, 10, 76, 74, 10, 76, 40, 42, 76, 42, 10, 8, 78, 76, 8, 78, 42, 44, 78, 44, 8, 6, 80, 78, 6, 80, 44, 46, 80, 46, 6, 4, 82, 80, 4, 82, 46, 48, 82, 48, 4, 2, 84, 82, 2, 84, 48, 50, 84, 50, 2, 0, 0, 62, 58, 86, 86, 84, 0, 86, 50, 52, 52, 54, 86, 52 ], + "width": 24, + "height": 192 + } + }, + "bag-top": { + "bag-top": { + "name": "girl/bag-top", + "type": "mesh", + "uvs": [ 1, 0.14894, 0.84966, 0.28898, 0.7266, 0.46792, 0.65912, 0.72077, 0.65516, 0.89193, 0.50829, 1, 0.17883, 0.94639, 0.03593, 0.81802, 0.01211, 0.59629, 0, 0.33955, 0.11532, 0.13338, 0.28203, 0, 1, 0.07114 ], + "triangles": [ 10, 11, 1, 1, 11, 12, 3, 8, 2, 2, 9, 10, 2, 8, 9, 2, 10, 1, 0, 1, 12, 5, 6, 4, 6, 7, 4, 4, 7, 3, 7, 8, 3 ], + "vertices": [ 2, 57, -5.42, 3.3, 0.41, 58, -89.79, -49.81, 0.59, 3, 59, -13.49, -71.44, 0.03398, 57, 7.63, 18.88, 0.85009, 58, -76.74, -34.22, 0.11592, 3, 59, -4.05, -52.04, 0.16652, 57, 17.58, 38.03, 0.80014, 58, -66.8, -15.07, 0.03334, 3, 59, -1.04, -26.07, 0.43064, 57, 21.28, 63.9, 0.54658, 58, -63.1, 10.8, 0.02277, 3, 59, -3.04, -9.07, 0.70704, 57, 19.72, 80.95, 0.28124, 58, -64.65, 27.85, 0.01172, 1, 59, 9.7, 3.64, 1, 3, 59, 42.42, 2.84, 0.93871, 57, 65.48, 91.66, 0.04781, 58, -18.89, 38.56, 0.01348, 3, 59, 58.08, -7.91, 0.78056, 57, 80.85, 80.5, 0.08, 58, -3.52, 27.4, 0.13944, 3, 59, 63.49, -29.54, 0.29048, 57, 85.69, 58.73, 0.39733, 58, 1.31, 5.63, 0.31219, 3, 59, 68.25, -54.8, 0.05104, 57, 89.78, 33.36, 0.53142, 58, 5.41, -19.74, 0.41754, 2, 57, 80.9, 11.59, 0.38, 58, -3.48, -41.51, 0.62, 1, 58, -18.2, -56.62, 1, 2, 57, -4.53, -4.43, 0.41, 58, -88.91, -57.54, 0.59 ], + "hull": 13, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24, 2, 20, 8, 14 ], + "width": 98, + "height": 100 + } + }, + "base-head": { + "base-head": { "x": 74.74, "y": -10.09, "rotation": -87.57, "width": 189, "height": 145 } + }, + "body": { + "body": { + "name": "girl/body", + "type": "mesh", + "uvs": [ 0.59765, 0.99752, 0.42922, 1, 0.24876, 0.98569, 0.06428, 0.94872, 0.0322, 0.85553, 0.00613, 0.83483, 1.2E-4, 0.73129, 1.2E-4, 0.59965, 0.01215, 0.45174, 0.02217, 0.28165, 0.04624, 0.09676, 0.26881, 0, 0.59565, 0, 0.78012, 0.03908, 0.86835, 0.20473, 0.94053, 0.37187, 0.99066, 0.5257, 1, 0.64846, 1, 0.74608, 0.97663, 0.85405, 0.94455, 0.93392, 0.8102, 0.97682, 0.66583, 0.999, 0.27282, 0.87328, 0.44526, 0.88807, 0.58362, 0.88659, 0.66984, 0.88364, 0.81221, 0.8718, 0.94053, 0.8363, 0.61771, 0.76383, 0.71395, 0.75939, 0.26079, 0.7446, 0.95457, 0.70023, 0.96259, 0.76235, 0.61169, 0.64107, 0.58963, 0.51386, 0.54953, 0.37039, 0.64979, 0.35412, 0.6939, 0.50203, 0.71796, 0.63367, 0.26079, 0.53605, 0.2668, 0.3911, 0.85431, 0.31714, 0.93051, 0.4902, 0.42722, 0.12634, 0.54351, 0.11303, 0.49539, 0.24171, 0.59966, 0.221, 0.74202, 0.09676, 0.80218, 0.20473, 0.23071, 0.15001, 0.08634, 0.16924, 0.08233, 0.27721, 0.06428, 0.45174, 0.05225, 0.60409, 0.0703, 0.73425, 0.48183, 0.51247, 0.79828, 0.48323, 0.745, 0.43772 ], + "triangles": [ 17, 32, 43, 17, 43, 16, 32, 17, 18, 30, 34, 39, 33, 32, 18, 29, 34, 30, 32, 39, 57, 29, 31, 34, 5, 6, 55, 30, 32, 33, 32, 30, 39, 33, 27, 30, 19, 33, 18, 28, 33, 19, 4, 5, 55, 28, 27, 33, 31, 24, 23, 26, 29, 30, 26, 30, 27, 31, 29, 24, 25, 29, 26, 29, 25, 24, 20, 28, 19, 27, 28, 20, 4, 23, 3, 55, 23, 4, 31, 23, 55, 21, 26, 27, 21, 27, 20, 2, 3, 23, 0, 25, 26, 22, 0, 26, 21, 22, 26, 1, 23, 24, 2, 23, 1, 0, 1, 24, 0, 24, 25, 32, 57, 43, 42, 14, 15, 57, 42, 15, 31, 54, 40, 58, 37, 42, 57, 58, 42, 38, 37, 58, 38, 58, 57, 35, 36, 37, 35, 37, 38, 56, 36, 35, 43, 15, 16, 7, 8, 54, 39, 38, 57, 34, 35, 38, 34, 38, 39, 6, 7, 54, 31, 55, 54, 6, 54, 55, 56, 35, 34, 34, 31, 56, 43, 57, 15, 37, 49, 42, 48, 12, 13, 12, 44, 11, 45, 12, 48, 45, 44, 12, 50, 10, 11, 50, 11, 44, 51, 10, 50, 14, 49, 13, 48, 13, 49, 47, 45, 48, 47, 48, 49, 46, 44, 45, 46, 45, 47, 51, 9, 10, 52, 9, 51, 42, 49, 14, 37, 47, 49, 36, 46, 47, 36, 47, 37, 46, 41, 50, 46, 50, 44, 41, 46, 36, 52, 51, 50, 41, 52, 50, 53, 9, 52, 53, 52, 41, 8, 9, 53, 56, 41, 36, 40, 53, 41, 40, 41, 56, 54, 53, 40, 31, 40, 56, 54, 8, 53 ], + "vertices": [ 1, 2, 28.17, -64.12, 1, 1, 2, -4.5, -64.91, 1, 1, 2, -39.53, -61.29, 1, 1, 2, -75.35, -51.72, 1, 2, 3, -22.36, 79.55, 0.14323, 2, -81.68, -27.24, 0.85677, 2, 3, -16.73, 84.4, 0.19154, 2, -86.76, -21.81, 0.80846, 2, 3, 10.53, 84.54, 0.53301, 2, -88.04, 5.41, 0.46699, 2, 4, -18.75, 81.95, 0.21, 3, 45.12, 83.25, 0.79, 2, 4, 19.88, 76.85, 0.63, 3, 83.91, 79.46, 0.37, 1, 4, 64.36, 71.73, 1, 1, 4, 112.53, 63.61, 1, 1, 4, 134.84, 18.72, 1, 1, 4, 130.32, -44.52, 1, 2, 4, 117.52, -79.49, 0.86136, 3, 186.78, -73.49, 0.13864, 2, 4, 72.85, -93.46, 0.64743, 3, 142.61, -88.96, 0.35257, 3, 4, 28, -104.29, 0.26062, 3, 98.16, -101.31, 0.60938, 2, 94, 100.7, 0.13, 3, 4, -13.04, -111.11, 0.15, 3, 57.36, -109.51, 0.44607, 2, 103.9, 60.29, 0.40393, 3, 4, -45.38, -110.62, 0.11, 3, 25.03, -110.11, 0.28777, 2, 105.84, 28.01, 0.60223, 3, 4, -70.99, -108.79, 0.04, 3, -0.62, -109.15, 0.15795, 2, 105.95, 2.33, 0.80205, 1, 2, 101.54, -26.08, 1, 1, 2, 95.4, -47.11, 1, 1, 2, 69.38, -58.5, 1, 1, 2, 41.4, -64.45, 1, 1, 2, -34.98, -31.71, 1, 1, 2, -1.51, -35.46, 1, 1, 2, 25.33, -34.96, 1, 1, 2, 42.05, -34.11, 1, 1, 2, 69.66, -30.88, 1, 1, 2, 94.51, -21.44, 1, 1, 2, 31.81, -2.64, 1, 1, 2, 50.47, -1.4, 1, 2, 3, 5.13, 34.14, 0.47225, 2, -37.46, 2.12, 0.52775, 3, 4, -58.33, -100.86, 0.09, 3, 11.76, -100.8, 0.21274, 2, 97.09, 14.36, 0.69726, 3, 4, -74.74, -101.25, 0.05, 3, -4.63, -101.74, 0.13139, 2, 98.71, -1.97, 0.81861, 3, 4, -38.07, -35.62, 0.12, 3, 29.8, -34.91, 0.46014, 2, 30.5, 29.64, 0.41986, 3, 4, -4.4, -33.73, 0.32, 3, 63.39, -31.88, 0.5848, 2, 26.08, 63.07, 0.0952, 2, 4, 33.79, -28.66, 0.53, 3, 101.38, -25.52, 0.47, 2, 4, 36.68, -48.36, 0.50575, 3, 104.93, -45.12, 0.49425, 3, 4, -2.73, -54.13, 0.32, 3, 65.74, -52.21, 0.578, 2, 46.3, 66.27, 0.102, 3, 4, -37.6, -56.32, 0.12, 3, 30.97, -55.58, 0.4488, 2, 51.11, 31.67, 0.4312, 1, 4, -5.67, 30.32, 1, 1, 4, 32.27, 26.44, 1, 3, 4, 43.55, -88.63, 0.42337, 3, 113.17, -85.13, 0.53663, 2, 77.21, 115.03, 0.04, 3, 4, -2.9, -100.14, 0.24, 3, 67.13, -98.2, 0.4463, 2, 92.19, 69.57, 0.3137, 1, 4, 99.51, -9.56, 1, 1, 4, 101.39, -32.32, 1, 2, 4, 68.3, -20.59, 0.85, 3, 135.6, -16.29, 0.15, 2, 4, 72.29, -41.16, 0.83269, 3, 140.28, -36.71, 0.16731, 2, 4, 102.92, -71.03, 0.84329, 3, 171.9, -65.53, 0.15671, 2, 4, 73.76, -80.65, 0.68178, 3, 143.09, -76.13, 0.31822, 1, 4, 96.01, 28.91, 1, 1, 4, 92.97, 57.2, 1, 1, 4, 64.7, 60, 1, 2, 4, 19.16, 66.76, 0.69519, 3, 83.53, 69.35, 0.30481, 2, 4, -20.64, 71.95, 0.21, 3, 43.58, 73.18, 0.79, 2, 3, 9.24, 70.97, 0.46736, 2, -74.42, 4.69, 0.53264, 2, 4, -2.54, -12.9, 0.39471, 3, 64.54, -11, 0.60529, 3, 4, 0.76, -74.68, 0.37, 3, 69.92, -72.63, 0.47153, 2, 66.53, 71.3, 0.15847, 3, 4, 13.43, -65.22, 0.37172, 3, 82.27, -62.75, 0.51471, 2, 56.14, 83.22, 0.11357 ], + "hull": 23, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 0, 44, 58, 62 ], + "width": 194, + "height": 263 + } + }, + "boot-ribbon-back": { + "boot-ribbon-back": { "name": "girl/boot-ribbon-front", "x": 67.51, "y": 16.46, "rotation": 90.17, "width": 26, "height": 25 } + }, + "boot-ribbon-front": { + "boot-ribbon-front": { "name": "girl/boot-ribbon-front", "x": 31.67, "y": 16.34, "rotation": 89.95, "width": 26, "height": 25 } + }, + "ear": { + "ear": { "name": "girl/ear", "x": 56.58, "y": 85.63, "rotation": -87.57, "width": 38, "height": 45 } + }, + "eye-back-eyebrow": { + "eye-back-eyebrow": { "name": "girl/back-eyebrow", "x": 15.6, "y": -9.48, "rotation": -177.9, "width": 36, "height": 23 } + }, + "eye-back-iris": { + "eye-back-iris": { "name": "girl/eye-iris-back", "x": 0.85, "y": -0.75, "width": 33, "height": 34 } + }, + "eye-back-low-eyelid": { + "eye-back-low-eyelid": { + "name": "girl/eye-back-low-eyelid", + "type": "mesh", + "uvs": [ 0, 0.26476, 0.20331, 0.79621, 0.50495, 0.95421, 0.8401, 0.89676, 1, 0.33658, 0.88319, 0.07803, 0.75871, 0.25039, 0.5241, 0.35094, 0.31343, 0.19294, 0.09798, 0 ], + "triangles": [ 3, 2, 7, 2, 1, 7, 7, 6, 3, 3, 6, 4, 1, 8, 7, 1, 0, 8, 6, 5, 4, 0, 9, 8 ], + "vertices": [ 1, 42, -29.75, 1.38, 1, 2, 42, -23.04, -4.47, 0.63, 43, 23.4, -1.82, 0.37, 2, 42, -13.09, -6.21, 0.62, 43, 14.27, 2.5, 0.38, 2, 42, -2.03, -5.57, 0.76, 43, 3.44, 4.83, 0.24, 1, 42, 3.25, 0.59, 1, 1, 42, -0.61, 3.43, 1, 2, 42, -4.72, 1.54, 0.76, 43, 4.14, -2.74, 0.24, 2, 42, -12.46, 0.43, 0.62, 43, 11.9, -3.73, 0.38, 2, 42, -19.41, 2.17, 0.63, 43, 18.14, -7.25, 0.37, 1, 42, -26.52, 4.29, 1 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 33, + "height": 11 + } + }, + "eye-back-pupil": { + "eye-back-pupil": { + "name": "girl/eye-back-pupil", + "x": 0.43, + "y": -0.67, + "scaleX": 1.2, + "scaleY": 1.2062, + "width": 15, + "height": 17 + } + }, + "eye-back-up-eyelid": { + "eye-back-up-eyelid": { + "name": "girl/eye-back-up-eyelid", + "type": "mesh", + "uvs": [ 0.07861, 0.9592, 0.24977, 0.54703, 0.44727, 0.42338, 0.58882, 0.40964, 0.77315, 0.59512, 1, 0.16921, 1, 0, 0.76657, 0.13486, 0.61844, 0, 0.40119, 0.01807, 0.18065, 0.25164, 0, 0.73938, 0, 0.95234 ], + "triangles": [ 1, 10, 2, 3, 2, 9, 2, 10, 9, 3, 9, 8, 3, 8, 7, 1, 0, 11, 0, 12, 11, 11, 10, 1, 3, 7, 4, 4, 7, 5, 7, 6, 5 ], + "vertices": [ 1, 40, -31.8, -11.42, 1, 2, 40, -23.59, -1.94, 0.51, 41, 22.75, 6.53, 0.49, 2, 40, -14.11, 0.91, 0.15, 41, 14.01, 1.88, 0.85, 1, 41, 7.41, 0.24, 1, 1, 40, 1.53, -3.04, 1, 1, 40, 12.42, 6.75, 1, 1, 40, 12.42, 10.64, 1, 1, 40, 1.22, 7.54, 1, 1, 41, 7.87, -9.28, 1, 2, 40, -16.32, 10.23, 0.15, 41, 18.01, -6.83, 0.85, 2, 40, -26.91, 4.86, 0.52, 41, 27.34, 0.52, 0.48, 1, 40, -35.58, -6.36, 1, 1, 40, -35.58, -11.26, 1 ], + "hull": 13, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24 ], + "width": 48, + "height": 23 + } + }, + "eye-back-up-eyelid-back": { + "eye-back-up-eyelid-back": { + "name": "girl/eye-back-up-eyelid-back", + "type": "mesh", + "uvs": [ 0.12627, 1, 0, 0.99472, 0, 0.60349, 0.16345, 0.30253, 0.44692, 0.06177, 0.74898, 0.00911, 1, 0.1972, 1, 0.52073, 0.72574, 0.37025, 0.49339, 0.42292, 0.25639, 0.68625 ], + "triangles": [ 0, 1, 2, 10, 0, 2, 10, 3, 9, 9, 4, 8, 8, 6, 7, 2, 3, 10, 3, 4, 9, 8, 5, 6, 8, 4, 5 ], + "vertices": [ 1, 40, -28.64, -7.74, 1, 1, 40, -32.94, -7.63, 1, 1, 39, -19.88, 27.79, 1, 1, 39, -14.32, 34.11, 1, 1, 39, -4.69, 39.17, 1, 1, 39, 5.58, 40.27, 1, 1, 39, 14.12, 36.32, 1, 1, 40, 1.06, 2.33, 1, 1, 41, 9.18, -3.76, 1, 2, 41, 16.71, -1.13, 0.92, 40, -16.16, 4.38, 0.08, 2, 41, 23.53, 5.88, 0.33, 40, -24.22, -1.15, 0.67 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 34, + "height": 21 + } + }, + "eye-back-white": { + "eye-back-white": { + "name": "girl/eye-white-back", + "type": "mesh", + "uvs": [ 0, 0.39191, 0.07911, 0.7283, 0.26952, 0.95255, 0.56931, 0.98823, 0.90962, 0.92197, 1, 0.50404, 0.94608, 0.17784, 0.76378, 0.00455, 0.50855, 0, 0.20875, 0.12178, 0.56121, 0.48365 ], + "triangles": [ 3, 2, 10, 4, 3, 10, 2, 1, 10, 4, 10, 5, 10, 8, 7, 9, 8, 10, 1, 0, 10, 10, 6, 5, 0, 9, 10, 10, 7, 6 ], + "vertices": [ 1, 40, -34.26, -6.05, 1, 1, 42, -30.63, 5.01, 1, 2, 42, -23.2, -1.94, 0.5, 43, 22.88, -4.3, 0.5, 2, 42, -11.51, -3.04, 0.61, 43, 11.91, -0.13, 0.39, 1, 42, 1.76, -0.99, 1, 2, 40, 4.74, -9.52, 0.54, 42, 5.29, 11.97, 0.46, 1, 40, 2.64, 0.59, 1, 2, 40, -4.47, 5.96, 0.35, 41, 5.55, -4.97, 0.65, 2, 40, -14.42, 6.1, 0.22, 41, 15.34, -3.16, 0.78, 2, 40, -26.12, 2.33, 0.49, 41, 26.07, 2.84, 0.51, 2, 40, -12.37, -8.89, 0.71, 43, 8.05, -15.29, 0.29 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 39, + "height": 31 + } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { "name": "girl/front-eyebrow", "x": 10.82, "y": 8.92, "rotation": -3.58, "width": 36, "height": 23 } + }, + "eye-front-iris": { + "eye-front-iris": { "name": "girl/eye-iris-front", "x": 0.22, "y": -0.71, "width": 36, "height": 35 } + }, + "eye-front-low-eyelid": { + "eye-front-low-eyelid": { + "name": "girl/eye-front-low-eyelid", + "type": "mesh", + "uvs": [ 0.07038, 0, 0, 0.43773, 0.24154, 0.94046, 0.64093, 0.92609, 1, 0.39464, 1, 0.00682, 0.8516, 0, 0.61899, 0.36591, 0.30738, 0.39464 ], + "triangles": [ 8, 7, 3, 2, 8, 3, 2, 1, 8, 6, 5, 4, 7, 6, 4, 1, 0, 8, 3, 7, 4 ], + "vertices": [ 1, 36, -0.25, 5.3, 1, 1, 36, -2.79, 0.49, 1, 1, 37, 6.69, -3.95, 1, 2, 36, 20.29, -4.89, 0.61, 37, 20.82, -1.32, 0.39, 1, 36, 33.21, 0.96, 1, 1, 36, 33.21, 5.23, 1, 1, 36, 27.87, 5.3, 1, 2, 36, 19.5, 1.28, 0.61, 37, 18.99, 4.61, 0.39, 1, 37, 7.99, 2.37, 1 ], + "hull": 9, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 0, 16 ], + "width": 36, + "height": 11 + } + }, + "eye-front-pupil": { + "eye-front-pupil": { + "name": "girl/eye-front-pupil", + "x": -0.04, + "y": -0.47, + "scaleX": 1.2, + "scaleY": 1.2, + "width": 17, + "height": 17 + } + }, + "eye-front-up-eyelid": { + "eye-front-up-eyelid": { + "name": "girl/eye-front-up-eyelid", + "type": "mesh", + "uvs": [ 0.32251, 0.43387, 0.36464, 0.94737, 0.28564, 1, 0.16714, 0.73859, 0.15924, 0.42823, 0, 0.24201, 0, 0, 0.22771, 0.2138, 0.41731, 0, 0.66747, 0, 0.88604, 0.23637, 1, 0.54673, 1, 0.81194, 0.86497, 0.79501, 0.74121, 0.4903, 0.61217, 0.35487, 0.45417, 0.35487 ], + "triangles": [ 14, 15, 10, 2, 3, 1, 3, 0, 1, 13, 11, 12, 13, 14, 11, 3, 4, 0, 14, 10, 11, 0, 4, 7, 4, 5, 7, 5, 6, 7, 16, 0, 7, 7, 8, 16, 10, 15, 9, 9, 15, 8, 15, 16, 8 ], + "vertices": [ 2, 35, 6.87, 1.33, 0.47507, 34, 6.4, 2.84, 0.52493, 2, 35, 6.12, -13.25, 0.09298, 34, 8.93, -11.54, 0.90702, 1, 34, 4.19, -13.01, 1, 1, 34, -2.92, -5.69, 1, 2, 35, -2.64, 3.68, 0.0415, 34, -3.4, 3, 0.9585, 1, 34, -12.95, 8.21, 1, 1, 34, -12.95, 14.99, 1, 2, 35, 2.71, 8.61, 0.27883, 34, 0.71, 9, 0.72117, 1, 35, 15.14, 11.9, 1, 2, 35, 29.76, 8.54, 0.65, 34, 27.1, 14.99, 0.35, 2, 35, 41.06, -0.85, 0.28137, 34, 40.21, 8.37, 0.71863, 1, 34, 47.05, -0.32, 1, 1, 34, 47.05, -7.75, 1, 2, 35, 36.33, -15.81, 0.07124, 34, 38.95, -7.27, 0.92876, 2, 35, 31, -5.83, 0.45, 34, 31.52, 1.26, 0.55, 2, 35, 24.31, -0.4, 0.65, 34, 23.78, 5.05, 0.35, 2, 35, 15.07, 1.72, 0.76, 34, 14.3, 5.05, 0.24 ], + "hull": 17, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 0, 32 ], + "width": 60, + "height": 28 + } + }, + "eye-front-up-eyelid-back": { + "eye-front-up-eyelid-back": { + "name": "girl/eye-front-up-eyelid-back", + "type": "mesh", + "uvs": [ 0.05111, 0.59525, 0.31445, 0.34389, 0.48174, 0.29362, 0.69861, 0.43007, 0.81323, 0.65271, 0.90617, 1, 1, 1, 1, 0.74607, 0.93406, 0.48034, 0.78845, 0.18589, 0.62115, 0, 0.49104, 0, 0.26798, 0, 0, 0.28644, 0, 0.48752 ], + "triangles": [ 3, 2, 9, 2, 1, 12, 5, 7, 6, 5, 4, 7, 4, 8, 7, 4, 3, 8, 0, 14, 1, 14, 13, 1, 3, 9, 8, 10, 9, 2, 10, 2, 11, 1, 13, 12, 2, 12, 11 ], + "vertices": [ 1, 78, -25.28, -10.9, 1, 1, 35, 14.1, 7.02, 1, 1, 35, 22.66, 6.19, 1, 2, 78, 7.58, -7.27, 0.37, 35, 32.77, 0.79, 0.63, 2, 78, 13.43, -12.17, 0.71, 35, 37.37, -5.29, 0.29, 1, 78, 18.17, -19.81, 1, 1, 78, 22.96, -19.81, 1, 1, 78, 22.96, -14.22, 1, 1, 78, 19.59, -8.37, 1, 1, 78, 12.17, -1.9, 1, 1, 78, 3.63, 2.19, 1, 1, 78, -3, 2.19, 1, 1, 78, -14.38, 2.19, 1, 1, 78, -28.04, -4.11, 1, 1, 78, -28.04, -8.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 51, + "height": 22 + } + }, + "eye-front-white": { + "eye-front-white": { + "name": "girl/eye-white-front", + "type": "mesh", + "uvs": [ 0, 0.13677, 0.03631, 0.56139, 0.18641, 0.96133, 0.54191, 0.97121, 0.90531, 0.87739, 1, 0.54164, 1, 0.24046, 0.80425, 0.13009, 0.57351, 0, 0.25751, 0.00346, 0.47082, 0.52682 ], + "triangles": [ 3, 2, 10, 2, 1, 10, 4, 3, 10, 4, 10, 5, 7, 6, 5, 1, 0, 10, 10, 9, 8, 10, 8, 7, 10, 7, 5, 0, 9, 10 ], + "vertices": [ 1, 34, 3.55, 4.71, 1, 2, 34, 5, -8.88, 0.5, 36, -3.97, 10.98, 0.5, 2, 36, 2.03, -1.82, 0.36, 37, 2.31, -1.44, 0.64, 2, 36, 16.25, -2.14, 0.32, 37, 16.37, 0.69, 0.68, 1, 36, 30.79, 0.87, 1, 1, 36, 34.57, 11.61, 1, 1, 34, 43.55, 1.39, 1, 2, 35, 35.91, -3.2, 0.27, 34, 35.72, 4.92, 0.73, 2, 35, 27.85, 2.93, 0.54, 34, 26.49, 9.09, 0.46, 2, 35, 15.51, 5.65, 0.62, 34, 13.85, 8.98, 0.38, 2, 35, 20.07, -12.59, 0.81, 37, 11.13, 14.21, 0.19 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 16, 18, 0, 18, 12, 14, 14, 16 ], + "width": 40, + "height": 32 + } + }, + "hair-back": { + "hair-back": { + "name": "girl/hair-back", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 6, -3.46, -135.36, 0.71, 30, 189.29, -78.03, 0.29, 2, 6, -15.93, 158.38, 0.71, 30, -104.71, -78.03, 0.29, 2, 6, 168.91, 166.22, 0.71, 30, -104.71, 106.97, 0.29, 2, 6, 181.37, -127.51, 0.71, 30, 189.29, 106.97, 0.29 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 294, + "height": 185 + } + }, + "hair-bangs": { + "hair-bangs": { + "name": "girl/hair-bangs", + "type": "mesh", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "girl/hair-bangs", + "type": "mesh", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch", + "type": "mesh", + "color": "71ffe7ff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-side-back": { + "hair-side-back": { + "name": "girl/hair-head-side-back", + "type": "mesh", + "uvs": [ 0.17374, 0.1545, 0.22967, 0.37557, 0.21289, 0.61586, 0, 0.86256, 0, 1, 0.25205, 1, 0.45899, 0.87537, 0.69391, 0.87858, 0.80577, 0.69916, 0.82815, 0.52615, 1, 0.46528, 0.99594, 0.21858, 0.73306, 0.04236, 0.53171, 0, 0.27442, 0.04877, 0.51493, 0.5678, 0.59323, 0.17692, 0.73306, 0.35954, 0.46459, 0.76964 ], + "triangles": [ 17, 11, 10, 15, 1, 16, 16, 14, 13, 14, 16, 1, 1, 0, 14, 16, 12, 17, 17, 12, 11, 16, 13, 12, 15, 16, 17, 2, 1, 15, 5, 18, 6, 5, 4, 3, 6, 18, 7, 7, 18, 8, 5, 3, 2, 18, 5, 2, 18, 15, 8, 18, 2, 15, 8, 15, 9, 9, 17, 10, 15, 17, 9 ], + "vertices": [ 2, 47, 44.16, -9.72, 0.072, 6, 75.71, -87.13, 0.928, 2, 47, 65.84, -17.42, 0.21564, 6, 53.1, -91.39, 0.78436, 2, 47, 87.28, -29.83, 0.5439, 6, 28.33, -91.45, 0.4561, 3, 47, 103.9, -52.79, 0.8752, 6, 2.41, -79.98, 0.09988, 30, 134.21, -69.81, 0.02493, 3, 47, 116.42, -59.39, 0.89423, 6, -11.73, -80.58, 0.014, 30, 134.21, -83.97, 0.09177, 3, 47, 123.36, -46.24, 0.87011, 6, -11.1, -95.43, 0.00989, 30, 149.08, -83.97, 0.12, 3, 47, 117.69, -29.45, 0.77082, 6, 2.24, -107.09, 0.0941, 30, 161.29, -71.13, 0.13508, 3, 47, 124.45, -17.35, 0.86922, 6, 2.5, -120.95, 0.00701, 30, 175.15, -71.46, 0.12377, 3, 47, 111.18, -2.89, 0.73582, 6, 21.24, -126.76, 0.12392, 30, 181.75, -52.98, 0.14026, 3, 47, 96.03, 6.59, 0.55463, 6, 39.1, -127.33, 0.32878, 30, 183.07, -35.16, 0.11659, 3, 47, 95.21, 18.48, 0.54495, 6, 45.79, -137.19, 0.37264, 30, 193.21, -28.89, 0.08241, 2, 47, 72.62, 30.12, 0.39164, 6, 71.17, -135.87, 0.60836, 2, 47, 49.33, 24.86, 0.13442, 6, 88.65, -119.61, 0.86558, 2, 47, 39.93, 16.38, 0.03367, 6, 92.5, -107.55, 0.96633, 2, 47, 37.3, 0.61, 0.176, 6, 86.84, -92.6, 0.824, 3, 47, 91.21, -11.76, 0.52, 6, 34.03, -109.04, 0.39641, 30, 164.59, -39.45, 0.08358, 2, 47, 57.74, 11.1, 0.24029, 6, 74.45, -111.95, 0.75971, 3, 47, 78.23, 9.62, 0.39663, 6, 56.01, -120.99, 0.565, 30, 177.46, -18, 0.03837, 3, 47, 108.21, -24.08, 0.64328, 6, 13.13, -106.96, 0.22492, 30, 161.62, -60.24, 0.1318 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 59, + "height": 103 + } + }, + "hair-side-front": { + "hair-side-front": { + "name": "girl/hair-head-side-front", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 6, 5.69, 38.25, 1, 1, 6, 2.21, 120.17, 1, 1, 6, 85.14, 123.69, 1, 1, 6, 88.61, 41.77, 1 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 82, + "height": 83 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-strand-back-1": { + "hair-strand-back-1": { + "name": "girl/hair-strand-back-1", + "type": "mesh", + "uvs": [ 0.04701, 0.06856, 0.1845, 0.21146, 0.29181, 0.36494, 0.41253, 0.53695, 0.51314, 0.76717, 0.60368, 1, 0.80489, 0.9974, 1, 0.89948, 1, 0.64544, 0.93567, 0.4311, 0.81159, 0.31731, 0.6674, 0.20352, 0.48631, 0.08444, 0.28846, 0, 0.7244, 0.58458 ], + "triangles": [ 14, 9, 8, 14, 8, 7, 6, 14, 7, 4, 14, 6, 5, 4, 6, 14, 10, 9, 4, 3, 14, 2, 1, 12, 1, 0, 13, 12, 1, 13, 14, 3, 10, 3, 11, 10, 11, 2, 12, 11, 3, 2 ], + "vertices": [ 1, 70, 7.91, 19.32, 1, 2, 70, -14.24, 5, 0.86951, 71, 5.53, -19.35, 0.13049, 2, 70, -37.68, -5.71, 0.79, 71, 31.29, -19.18, 0.21, 2, 70, -63.95, -17.77, 0.63, 71, 60.2, -18.95, 0.37, 2, 70, -98.57, -26.85, 0.42, 71, 95.5, -24.85, 0.58, 2, 70, -133.49, -34.74, 0.24, 71, 130.59, -31.96, 0.76, 2, 70, -134.87, -58.05, 0.09, 71, 141.4, -11.27, 0.91, 2, 70, -122.23, -81.7, 0.09, 71, 139.56, 15.49, 0.91, 2, 70, -84.99, -84.52, 0.24, 71, 106.74, 33.32, 0.76, 2, 70, -53.01, -79.45, 0.42, 71, 75.5, 41.8, 0.58, 2, 70, -35.24, -66.36, 0.63, 71, 53.93, 37.14, 0.37, 2, 70, -17.3, -50.94, 0.79, 71, 31.24, 30.43, 0.21, 2, 70, 1.74, -31.32, 0.83374, 71, 5.83, 20.33, 0.16626, 2, 70, 15.84, -9.37, 0.97706, 71, -16.03, 6.09, 0.02294, 2, 70, -73.66, -53.31, 0.42, 71, 83.62, 9.5, 0.58 ], + "hull": 14, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 0, 26, 6, 20 ], + "width": 116, + "height": 147 + } + }, + "hair-strand-back-2": { + "hair-strand-back-2": { + "name": "girl/hair-strand-back-2", + "type": "mesh", + "uvs": [ 0.01457, 0.31586, 0.12358, 0.46132, 0.26678, 0.63383, 0.42922, 0.79619, 0.61731, 0.96871, 0.77975, 1, 0.92509, 0.83679, 1, 0.68795, 0.98066, 0.50191, 0.86311, 0.43087, 0.68571, 0.33616, 0.48479, 0.26174, 0.34159, 0.14673, 0.24113, 0.08923, 0.08938, 0.13997, 0.65683, 0.61285 ], + "triangles": [ 5, 4, 6, 4, 15, 6, 4, 3, 15, 6, 15, 7, 8, 15, 9, 15, 8, 7, 15, 10, 9, 3, 2, 15, 15, 11, 10, 15, 2, 11, 2, 1, 11, 0, 14, 1, 1, 12, 11, 12, 14, 13, 12, 1, 14 ], + "vertices": [ 1, 70, -9.44, 45.94, 1, 2, 70, -27.62, 27.42, 0.75, 72, -16.98, -30.25, 0.25, 2, 70, -49.36, 2.93, 0.61, 72, 15.22, -36.25, 0.39, 2, 70, -70.21, -25.14, 0.44, 72, 50.02, -39.65, 0.56, 2, 70, -92.58, -57.78, 0.25, 72, 89.52, -41.98, 0.75, 2, 70, -98.39, -86.99, 0.12, 72, 117.55, -31.91, 0.88, 2, 70, -81.67, -114.78, 0.06, 72, 132.74, -3.26, 0.94, 2, 70, -65.63, -129.67, 0.06, 72, 137.23, 18.16, 0.94, 2, 70, -44.03, -127.77, 0.17, 72, 124.47, 35.69, 0.83, 2, 70, -34.28, -107.05, 0.25, 72, 101.68, 33.37, 0.75, 2, 70, -20.98, -75.68, 0.44, 72, 67.94, 28.59, 0.56, 2, 70, -9.69, -39.86, 0.61, 72, 31.43, 19.8, 0.39, 1, 70, 5.47, -14.87, 1, 1, 70, 13.44, 2.86, 1, 1, 70, 9.7, 30.84, 1, 2, 70, -52.31, -68.04, 0.32, 72, 77.55, -2.19, 0.68 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 182, + "height": 115 + } + }, + "hair-strand-back-3": { + "hair-strand-back-3": { "name": "girl/hair-strand-back-3", "x": 56.8, "y": -25.4, "rotation": 55.29, "width": 184, "height": 157 } + }, + "hair-strand-front-1": { + "hair-strand-front-1": { + "name": "girl/hair-strand-front-1", + "type": "mesh", + "uvs": [ 0.27351, 0, 0.15941, 0.16999, 0.0453, 0.35929, 0, 0.56107, 0.02974, 0.77118, 0.16459, 0.90639, 0.41355, 1, 0.78181, 1, 1, 0.95007, 1, 0.76493, 0.9789, 0.55691, 0.93222, 0.36345, 0.95297, 0.16999, 0.95815, 0, 0.48617, 0.76077, 0.52766, 0.55483, 0.54841, 0.37177 ], + "triangles": [ 3, 2, 15, 10, 15, 11, 14, 3, 15, 4, 3, 14, 5, 4, 14, 9, 15, 10, 6, 5, 14, 15, 9, 14, 8, 7, 9, 7, 14, 9, 6, 14, 7, 15, 2, 16, 13, 12, 16, 16, 2, 1, 13, 16, 0, 1, 0, 16, 11, 16, 12, 15, 16, 11 ], + "vertices": [ 1, 67, 23.66, 11.57, 1, 1, 67, -7.39, 22.5, 1, 2, 67, -42.05, 33.7, 0.56777, 68, 38.87, -36.21, 0.43223, 2, 67, -79.42, 39.94, 0.27008, 68, 76.66, -38.93, 0.72992, 2, 67, -118.76, 40.68, 0.08712, 68, 115.9, -36, 0.91288, 2, 67, -144.74, 32.5, 0.04098, 68, 141, -25.44, 0.95902, 2, 67, -163.6, 15.2, 0.07679, 68, 158.17, -6.46, 0.92321, 2, 67, -165.68, -12.34, 0.10317, 68, 157.68, 21.16, 0.89683, 2, 67, -157.61, -29.36, 0.11136, 68, 148.05, 37.35, 0.88864, 2, 67, -123.09, -31.97, 0.26753, 68, 113.44, 36.73, 0.73247, 2, 67, -84.18, -33.33, 0.41647, 68, 74.57, 34.46, 0.58353, 2, 67, -47.84, -32.57, 0.58895, 68, 38.46, 30.31, 0.41105, 2, 67, -11.88, -36.85, 0.76035, 68, 2.26, 31.22, 0.23965, 1, 67, 19.79, -39.63, 1, 2, 67, -119.4, 6.4, 0.21442, 68, 113.35, -1.81, 0.78558, 2, 67, -81.24, 0.39, 0.42231, 68, 74.79, 0.61, 0.57769, 2, 67, -47.22, -3.74, 0.5861, 68, 40.53, 1.56, 0.4139 ], + "hull": 14, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 0, 26 ], + "width": 75, + "height": 187 + } + }, + "hair-strand-front-2": { + "hair-strand-front-2": { + "name": "girl/hair-strand-front-3", + "type": "mesh", + "uvs": [ 1, 0.04687, 0.9312, 0.23176, 0.86413, 0.43106, 0.82389, 0.63997, 0.79259, 0.84408, 0.75235, 1, 0.33205, 0.99055, 0, 0.93772, 0, 0.73362, 0.0593, 0.55113, 0.20685, 0.37103, 0.42595, 0.19094, 0.73893, 0, 0.95355, 0, 0.5422, 0.39985, 0.43936, 0.60395, 0.70316, 0.20295 ], + "triangles": [ 15, 8, 9, 9, 10, 15, 5, 6, 4, 15, 6, 8, 6, 15, 4, 6, 7, 8, 4, 15, 3, 15, 14, 3, 10, 11, 14, 14, 16, 2, 3, 14, 2, 15, 10, 14, 1, 13, 0, 1, 12, 13, 16, 11, 12, 16, 12, 1, 2, 16, 1, 14, 11, 16 ], + "vertices": [ 1, 67, 12.41, -11.23, 1, 2, 67, -17, -3.01, 0.95, 74, 9.72, 24.71, 0.05, 2, 67, -48.76, 5.25, 0.57, 74, 42.51, 25.72, 0.43, 2, 67, -82.24, 11.29, 0.38, 74, 76.34, 29.34, 0.62, 2, 67, -115.01, 16.5, 0.21, 74, 109.25, 33.55, 0.79, 1, 74, 134.69, 35.39, 1, 1, 74, 140.8, -0.7, 1, 1, 74, 138.44, -30.73, 1, 2, 67, -91.96, 83.91, 0.21, 74, 106.1, -37.62, 0.79, 2, 67, -62.87, 76.54, 0.38, 74, 76.11, -38.72, 0.62, 2, 67, -34.75, 61.53, 0.57, 74, 44.9, -32.24, 0.43, 2, 67, -7.09, 40.33, 0.95, 74, 12.4, -19.67, 0.05, 1, 67, 21.7, 10.84, 1, 1, 67, 20.29, -7.78, 1, 2, 67, -41.6, 32.79, 0.57, 74, 43.4, -2.73, 0.43, 2, 67, -73.9, 44.21, 0.38, 74, 77.6, -4.6, 0.62, 2, 67, -10.85, 16.43, 0.95, 74, 9.28, 4.33, 0.05 ], + "hull": 14, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 0, 26, 4, 28, 6, 30, 2, 32 ], + "width": 87, + "height": 162 + } + }, + "hair-strand-front-3": { + "hair-strand-front-3": { + "name": "girl/hair-flap-down-front", + "type": "mesh", + "uvs": [ 0.7113, 0.13231, 0.65533, 0.28192, 0.56017, 0.43154, 0.40905, 0.55721, 0.17677, 0.69187, 0, 0.80558, 0, 1, 0.25793, 1, 0.57976, 0.97015, 0.72529, 0.80258, 0.86242, 0.63501, 0.94078, 0.47044, 0.98835, 0.2909, 1, 0.12034, 0.95757, 0, 0.78406, 0, 0.46222, 0.70982, 0.68891, 0.54524, 0.82604, 0.30287 ], + "triangles": [ 12, 18, 13, 14, 13, 15, 15, 13, 0, 11, 18, 12, 1, 0, 18, 18, 0, 13, 17, 1, 18, 10, 17, 11, 7, 5, 4, 7, 16, 8, 7, 4, 16, 7, 6, 5, 8, 16, 9, 16, 17, 9, 9, 17, 10, 4, 3, 16, 17, 3, 2, 17, 16, 3, 2, 1, 17, 17, 18, 11 ], + "vertices": [ 2, 69, 10.11, -20.49, 0.51752, 67, 12.87, 47.65, 0.48248, 2, 69, 30.11, -14.28, 0.4, 67, -5.94, 56.87, 0.6, 2, 69, 53.55, -12.3, 0.61, 67, -24.34, 71.53, 0.39, 2, 69, 79.47, -18.32, 0.76137, 67, -39.04, 93.71, 0.23863, 2, 69, 113.41, -32.36, 0.92, 67, -54.06, 127.22, 0.08, 1, 69, 140.37, -42.13, 1, 1, 69, 160, -26.2, 1, 1, 69, 137.41, 1.64, 1, 2, 69, 106.21, 33.93, 0.98205, 67, -94.36, 74.1, 0.01795, 2, 69, 76.55, 35.92, 0.74286, 67, -74.17, 52.28, 0.25714, 2, 69, 47.62, 36.99, 0.61, 67, -53.88, 31.63, 0.39, 2, 69, 24.14, 31.97, 0.54, 67, -33.37, 19.16, 0.46, 2, 69, 1.85, 22.4, 0.50655, 67, -10.59, 10.8, 0.49345, 2, 69, -16.39, 9.69, 0.46244, 67, 11.39, 7.52, 0.53756, 2, 69, -24.82, -4.75, 0.46, 67, 27.44, 12.22, 0.54, 2, 69, -9.62, -23.48, 0.48913, 67, 29.26, 36.27, 0.51087, 2, 69, 90.22, -0.08, 0.81, 67, -59.38, 87.83, 0.19, 2, 69, 53.75, 10.91, 0.61, 67, -40.43, 54.8, 0.39, 2, 69, 17.28, 5.86, 0.4, 67, -10.44, 33.42, 0.6 ], + "hull": 16, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30 ], + "width": 139, + "height": 130 + } + }, + "hair-strand-front-4": { + "hair-strand-front-4": { + "name": "girl/hair-strand-front-2", + "type": "mesh", + "uvs": [ 0.77614, 0, 0.63901, 0.21786, 0.44871, 0.36957, 0.21083, 0.45904, 0, 0.5524, 0, 0.8247, 0.31438, 1, 0.60822, 0.99586, 0.75655, 0.80525, 0.88248, 0.59908, 0.96084, 0.37346, 1, 0.13228, 1, 0, 0.47949, 0.68466, 0.76494, 0.43181 ], + "triangles": [ 9, 14, 10, 14, 1, 10, 0, 12, 11, 11, 1, 0, 10, 1, 11, 8, 13, 14, 2, 1, 14, 13, 2, 14, 3, 2, 13, 5, 4, 3, 5, 3, 13, 7, 13, 8, 6, 5, 13, 6, 13, 7, 9, 8, 14 ], + "vertices": [ 2, 75, -8.6, -29.1, 0.20005, 67, 27.34, 23.62, 0.79995, 2, 75, 16.25, -14.26, 0.5448, 67, 7.05, 44.27, 0.4552, 2, 75, 46.09, -8, 0.62198, 67, -6.08, 71.79, 0.37802, 2, 75, 80.31, -9.69, 0.78836, 67, -12.51, 105.43, 0.21164, 2, 75, 111.06, -9.86, 0.97352, 67, -19.61, 135.36, 0.02648, 2, 75, 119.47, 16.04, 0.98274, 67, -46.76, 137.41, 0.01726, 2, 75, 83.31, 46.2, 0.80419, 67, -67.54, 95.16, 0.19581, 2, 75, 44.33, 58.42, 0.71, 67, -70.2, 54.4, 0.29, 2, 75, 18.84, 46.65, 0.69, 67, -52.75, 32.41, 0.31, 2, 75, -4.17, 32.44, 0.55, 67, -33.51, 13.4, 0.45, 2, 75, -21.5, 14.34, 0.00249, 67, -11.84, 0.83, 0.99751, 1, 67, 11.8, -6.41, 1, 1, 67, 24.99, -7.41, 1, 2, 75, 51.75, 23.29, 0.58329, 67, -37.82, 69.9, 0.41671, 2, 75, 6.2, 11.49, 0.58111, 67, -15.6, 28.43, 0.41889 ], + "hull": 13, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24 ], + "width": 139, + "height": 100 + } + }, + "hand-back": { + "hand-back-fingers": { "name": "girl/hand-front-fingers", "x": 11.59, "y": 1.97, "rotation": 90, "width": 38, "height": 42 } + }, + "hand-front": { + "hand-front-fingers": { "name": "girl/hand-front-fingers", "x": 11.59, "y": 1.97, "rotation": 90, "width": 38, "height": 42 } + }, + "hat": { + "hat": { + "name": "girl/hat", + "type": "mesh", + "uvs": [ 0.0927, 1, 0.3018, 1, 0.54117, 0.96286, 0.79429, 0.88837, 1, 0.78284, 1, 0.66491, 0.89885, 0.53766, 0.8163, 0.53766, 0.73848, 0.40186, 0.65555, 0.25718, 0.57433, 0.11546, 0.50815, 0, 0.34032, 7.2E-4, 0.28185, 0.15871, 0.21639, 0.33559, 0.15752, 0.49466, 0.1037, 0.64008, 0.01016, 0.65249, 0, 0.94734, 0.30731, 0.64939, 0.62096, 0.58421, 0.46964, 0.62146, 0.43112, 0.10625, 0.57911, 0.43657, 0.45775, 0.46247, 0.32733, 0.47774, 0.53642, 0.28599, 0.44504, 0.29245, 0.34714, 0.30794, 0.49454, 0.13823, 0.36433, 0.16053 ], + "triangles": [ 22, 27, 30, 29, 27, 22, 30, 13, 12, 10, 29, 11, 22, 12, 11, 29, 22, 11, 22, 30, 12, 28, 13, 30, 26, 10, 9, 23, 26, 9, 23, 9, 8, 24, 27, 26, 24, 26, 23, 28, 27, 24, 25, 14, 28, 25, 28, 24, 15, 14, 25, 20, 23, 8, 20, 8, 7, 20, 21, 24, 20, 24, 23, 25, 24, 21, 19, 15, 25, 19, 25, 21, 16, 15, 19, 7, 6, 5, 3, 20, 7, 5, 3, 7, 4, 3, 5, 2, 21, 20, 2, 20, 3, 16, 18, 17, 1, 0, 16, 0, 18, 16, 19, 1, 16, 19, 21, 2, 1, 19, 2, 14, 13, 28, 28, 30, 27, 26, 29, 10, 27, 29, 26 ], + "vertices": [ 2, 50, -28.98, 69.5, 0.88, 52, -75.23, 83.03, 0.12, 2, 50, -27.34, 30.85, 0.76, 52, -79.03, 44.54, 0.24, 3, 50, -19.38, -13.13, 0.7291, 51, -12.02, -7.08, 9.0E-4, 52, -77.31, -0.13, 0.27, 2, 50, -5.19, -59.4, 0.8, 52, -69.75, -47.93, 0.2, 2, 50, 13.71, -96.69, 0.99957, 51, 9.03, -94.45, 4.3E-4, 2, 50, 33.04, -95.87, 0.95114, 51, 28.28, -96.35, 0.04886, 2, 50, 53.1, -76.29, 0.88191, 51, 50.88, -79.78, 0.11809, 3, 50, 52.45, -61.03, 0.879, 51, 52.38, -64.58, 0.11986, 52, -12.91, -57.63, 0.00114, 2, 50, 74.09, -45.7, 0.87726, 51, 75.96, -52.44, 0.12274, 3, 50, 97.14, -29.37, 0.73206, 51, 101.08, -39.5, 0.26419, 52, 35.78, -32.55, 0.00375, 3, 50, 119.73, -13.37, 0.42555, 51, 125.68, -26.83, 0.5184, 52, 60.39, -19.88, 0.05605, 3, 50, 138.13, -0.34, 0.29174, 51, 145.73, -16.5, 0.61231, 52, 80.43, -9.55, 0.09595, 3, 50, 136.69, 30.68, 0.22303, 51, 148.66, 14.41, 0.65697, 52, 83.36, 21.36, 0.12, 3, 50, 110.35, 40.39, 0.31671, 51, 123.93, 27.72, 0.59996, 52, 58.64, 34.67, 0.08333, 3, 50, 80.85, 51.26, 0.62374, 51, 96.25, 42.61, 0.36063, 52, 30.96, 49.57, 0.01563, 2, 50, 54.33, 61.03, 0.82549, 51, 71.36, 56.01, 0.17451, 2, 50, 30.08, 69.97, 0.88, 51, 48.61, 68.26, 0.12, 2, 50, 27.31, 87.17, 0.88702, 51, 48.28, 85.68, 0.11298, 1, 50, -21.08, 87, 1, 3, 50, 30.15, 32.27, 0.59407, 51, 43.39, 30.93, 0.18593, 52, -21.91, 37.88, 0.22, 3, 50, 43.29, -25.25, 0.66536, 51, 48.33, -27.87, 0.09464, 52, -16.96, -20.91, 0.24, 3, 50, 36, 2.46, 0.5548, 51, 45, 0.59, 0.1752, 52, -20.29, 7.54, 0.27, 3, 50, 120.12, 13.16, 0.30606, 51, 129.79, -0.61, 0.55394, 52, 64.49, 6.34, 0.14, 3, 50, 67.15, -16.49, 0.68076, 51, 73.19, -22.54, 0.12924, 52, 7.89, -15.59, 0.19, 3, 50, 61.96, 5.77, 0.57797, 51, 71.16, 0.22, 0.21203, 52, 5.87, 7.17, 0.21, 3, 50, 58.43, 29.77, 0.62009, 51, 71.04, 24.48, 0.22991, 52, 5.75, 31.43, 0.15, 3, 50, 91.49, -7.55, 0.59613, 51, 98.54, -17.1, 0.26387, 52, 33.24, -10.15, 0.14, 3, 50, 89.71, 9.3, 0.49151, 51, 99.14, -0.18, 0.31849, 52, 33.85, 6.78, 0.19, 3, 50, 86.41, 27.28, 0.48715, 51, 98.39, 18.1, 0.34285, 52, 33.1, 25.05, 0.17, 3, 50, 115.37, 1.22, 0.38285, 51, 123.41, -11.77, 0.45715, 52, 58.12, -4.82, 0.16, 3, 50, 110.7, 25.13, 0.30156, 51, 122.14, 12.56, 0.52844, 52, 56.84, 19.51, 0.17 ], + "hull": 19, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 32, 34, 34, 36, 0, 36, 30, 32, 28, 30, 14, 16, 16, 18, 40, 46, 16, 46, 42, 48, 46, 48, 38, 50, 48, 50, 52, 46, 18, 52, 44, 54, 54, 48, 52, 54, 56, 50, 54, 56, 56, 28, 18, 20, 20, 22, 58, 52, 20, 58, 60, 56, 24, 26, 26, 28, 60, 26 ], + "width": 185, + "height": 164 + } + }, + "leg-back": { + "leg-back": { + "name": "girl/leg-front", + "type": "mesh", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 0, 48, 42, 42, 48, 31, 42, 31, 33, 34, 0, 42, 34, 42, 33, 31, 32, 33, 31, 48, 30, 41, 12, 13, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48 ], + "vertices": [ 3, 94, 22.95, -22.02, 0.22728, 95, 59.29, -22, 0.00272, 103, -19.33, 11.79, 0.77, 3, 94, 5.73, -22.61, 0.49142, 95, 41.79, -22.61, 0.23858, 103, -19.74, 29.07, 0.27, 4, 94, -10.55, -23.17, 0.11127, 95, 25.25, -23.18, 0.76279, 96, 60.87, -23.13, 0.00594, 103, -20.15, 45.45, 0.12, 2, 95, 5.13, -23.87, 0.69465, 96, 41.05, -23.86, 0.30535, 3, 95, -15.89, -24.56, 0.09408, 96, 20.35, -24.59, 0.86299, 97, 56.72, -24.52, 0.04292, 2, 96, 1.98, -25.21, 0.55425, 97, 38.06, -25.21, 0.44575, 3, 96, -19.09, -25.88, 0.05256, 97, 16.64, -25.95, 0.87891, 98, 52.7, -25.89, 0.06853, 3, 96, -33.74, -26.34, 3.3E-4, 97, 1.76, -26.46, 0.67227, 98, 37.81, -26.45, 0.32739, 2, 97, -3.17, -22.02, 0.47188, 98, 32.86, -22.03, 0.52812, 3, 97, -22.68, -22.46, 0.0172, 98, 13.36, -22.55, 0.87617, 99, 49.14, -22.52, 0.10662, 3, 98, -7.93, -23.09, 0.23789, 99, 28.2, -23.11, 0.75909, 100, 64.58, -23.1, 0.00302, 3, 98, -27.79, -23.57, 0.00312, 99, 8.67, -23.62, 0.75495, 100, 44.76, -23.62, 0.24193, 3, 99, -12.93, -24.2, 0.09944, 100, 22.84, -24.2, 0.87238, 101, 58.46, -24.21, 0.02818, 2, 100, 0.77, -24.79, 0.47358, 101, 36.71, -24.79, 0.52642, 1, 101, 1.72, -25.72, 1, 1, 101, -25.98, -26.46, 1, 1, 101, -26.33, 25.98, 1, 1, 101, -0.53, 25.24, 1, 2, 100, -3.13, 24.27, 0.37555, 101, 32.87, 24.27, 0.62445, 3, 99, -15.75, 23.6, 0.0536, 100, 19.96, 23.6, 0.92085, 101, 55.62, 23.59, 0.02556, 2, 99, 5.77, 22.96, 0.65378, 100, 41.79, 22.97, 0.34622, 3, 98, -11.12, 22.43, 0.12254, 99, 24.96, 22.4, 0.86248, 100, 61.27, 22.42, 0.01499, 3, 97, -26.03, 21.9, 0.00839, 98, 9.83, 21.8, 0.78745, 99, 45.58, 21.82, 0.20415, 3, 97, -7.13, 21.27, 0.362, 98, 28.73, 21.24, 0.63637, 99, 64.17, 21.3, 0.00163, 2, 97, -6.17, 28.11, 0.5025, 98, 29.67, 28.08, 0.4975, 3, 96, -21.38, 27.22, 0.03848, 97, 14.13, 27.14, 0.83871, 98, 49.97, 27.2, 0.12281, 3, 96, -2.33, 26.26, 0.40865, 97, 33.49, 26.25, 0.59016, 98, 69.34, 26.38, 0.00119, 3, 95, -20.14, 25.43, 0.05003, 96, 16.06, 25.39, 0.84798, 97, 52.19, 25.45, 0.10198, 2, 95, 1.24, 24.42, 0.56331, 96, 37.12, 24.42, 0.43669, 4, 94, -15.67, 23.56, 0.04308, 95, 20, 23.55, 0.81142, 96, 55.61, 23.58, 0.0255, 103, 26.63, 50.22, 0.12, 3, 94, 0.26, 22.8, 0.33337, 95, 36.2, 22.8, 0.39663, 103, 25.72, 34.13, 0.27, 3, 94, 18.48, 21.95, 0.22212, 95, 54.71, 21.97, 0.00788, 103, 24.69, 15.83, 0.77, 1, 103, 36.21, 8.95, 1, 1, 103, 36.08, -3.91, 1, 1, 103, -18.97, -3.34, 1, 1, 101, 0.45, 0, 1, 1, 98, 31.4, 0, 1, 1, 98, 11.41, 0, 1, 1, 99, 26.57, 0, 1, 1, 99, 7.43, 0, 1, 1, 100, 20.94, 0, 1, 1, 101, 34.45, 0, 1, 2, 94, 23.32, 0.24, 0.23, 103, 2.93, 11.2, 0.77, 1, 97, 15.67, 0.04, 1, 2, 96, -0.81, 0.07, 0.36735, 97, 35.13, 0.07, 0.63265, 1, 96, 18, 0.1, 1, 2, 95, 2.51, 0.14, 0.90776, 96, 38.42, 0.14, 0.09224, 2, 95, 22.3, 0.17, 0.88, 103, 3.23, 48.15, 0.12, 3, 94, 2.19, 0.2, 0.62933, 95, 38.18, 0.2, 0.10067, 103, 3.11, 32.41, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "leg-front": { + "leg-front": { + "name": "girl/leg-front", + "type": "mesh", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 31, 48, 30, 0, 48, 42, 42, 48, 31, 34, 42, 33, 31, 32, 33, 42, 31, 33, 34, 0, 42, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 41, 12, 13, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15 ], + "vertices": [ 3, 28, 22.96, -22.02, 0.22658, 27, 58.91, -22.02, 0.00342, 102, -21, 12.47, 0.77, 3, 28, 5.76, -22.61, 0.49273, 27, 41.71, -22.61, 0.23727, 102, -21.71, 29.73, 0.27, 4, 28, -10.68, -23.18, 0.11707, 27, 25.27, -23.18, 0.76681, 26, 61.22, -23.18, 0.00612, 102, -22.41, 46.07, 0.11, 2, 27, 5.13, -23.87, 0.6994, 26, 41.08, -23.87, 0.3006, 3, 27, -15.62, -24.58, 0.10595, 26, 20.33, -24.58, 0.85365, 25, 56.28, -24.58, 0.0404, 3, 27, -33.92, -25.21, 7.9E-4, 26, 2.03, -25.21, 0.57156, 25, 37.98, -25.21, 0.42765, 3, 26, -19.29, -25.94, 0.05654, 25, 16.66, -25.94, 0.87764, 24, 52.61, -25.94, 0.06582, 3, 26, -34.16, -26.46, 4.4E-4, 25, 1.79, -26.46, 0.67282, 24, 37.74, -26.46, 0.32674, 2, 25, -3.13, -22.03, 0.47104, 24, 32.82, -22.03, 0.52896, 3, 25, -22.61, -22.55, 0.01665, 24, 13.34, -22.55, 0.87142, 23, 49.29, -22.55, 0.11193, 3, 24, -7.79, -23.11, 0.22064, 23, 28.17, -23.11, 0.77569, 22, 64.12, -23.11, 0.00367, 3, 24, -27.25, -23.62, 0.00219, 23, 8.7, -23.62, 0.77556, 22, 44.65, -23.62, 0.22225, 3, 21, 58.81, -24.2, 0.0114, 23, -13.09, -24.2, 0.12046, 22, 22.86, -24.2, 0.86813, 2, 21, 36.72, -24.79, 0.42237, 22, 0.77, -24.79, 0.57763, 2, 21, 1.72, -25.72, 0.99849, 22, -34.23, -25.72, 0.00151, 1, 21, -25.98, -26.46, 1, 1, 21, -26.33, 25.98, 1, 2, 21, -0.53, 25.24, 0.99997, 22, -36.48, 25.24, 3.0E-5, 2, 21, 32.85, 24.27, 0.56274, 22, -3.1, 24.27, 0.43726, 3, 21, 55.91, 23.6, 0.02334, 23, -15.99, 23.6, 0.05774, 22, 19.96, 23.6, 0.91892, 3, 24, -30.16, 22.96, 3.0E-4, 23, 5.79, 22.96, 0.6752, 22, 41.74, 22.96, 0.3245, 3, 24, -11, 22.41, 0.14886, 23, 24.95, 22.41, 0.84172, 22, 60.9, 22.41, 0.00941, 3, 25, -26.16, 21.8, 0.00663, 24, 9.79, 21.8, 0.80794, 23, 45.74, 21.8, 0.18543, 3, 25, -7.19, 21.25, 0.35697, 24, 28.76, 21.25, 0.64235, 23, 64.72, 21.25, 6.7E-4, 2, 25, -6.22, 28.1, 0.49898, 24, 29.73, 28.1, 0.50102, 3, 26, -21.82, 27.15, 0.04097, 25, 14.13, 27.15, 0.83939, 24, 50.08, 27.15, 0.11963, 3, 26, -2.4, 26.25, 0.4338, 25, 33.55, 26.25, 0.56533, 24, 69.5, 26.25, 8.7E-4, 3, 27, -19.88, 25.4, 0.04332, 26, 16.07, 25.4, 0.87101, 25, 52.02, 25.4, 0.08567, 2, 27, 1.21, 24.42, 0.5677, 26, 37.16, 24.42, 0.4323, 4, 28, -15.94, 23.55, 0.03449, 27, 20.01, 23.55, 0.83346, 26, 55.96, 23.55, 0.02204, 102, 24.27, 51.7, 0.11, 3, 28, 0.25, 22.8, 0.31657, 27, 36.2, 22.8, 0.41343, 102, 23.66, 35.6, 0.27, 3, 28, 18.49, 21.95, 0.22027, 27, 54.44, 21.95, 0.00973, 102, 22.94, 17.27, 0.77, 1, 102, 34.58, 10.59, 1, 1, 102, 34.67, -2.26, 1, 1, 102, -20.38, -2.65, 1, 1, 21, 0.45, 0, 1, 1, 24, 31.4, 0, 1, 1, 24, 11.41, 0, 1, 1, 23, 26.57, 0, 1, 1, 23, 7.43, 0, 1, 1, 22, 20.94, 0, 1, 1, 21, 34.45, 0, 1, 2, 28, 23.32, 0.24, 0.23, 102, 1.26, 12.26, 0.77, 1, 25, 15.67, 0.04, 1, 2, 26, -0.81, 0.07, 0.37007, 25, 35.14, 0.07, 0.62993, 1, 26, 18, 0.1, 1, 2, 27, 2.5, 0.14, 0.92465, 26, 38.45, 0.14, 0.07535, 2, 27, 22.3, 0.17, 0.89, 102, 0.91, 49.21, 0.11, 3, 28, 2.2, 0.2, 0.65329, 27, 38.15, 0.2, 0.07671, 102, 1.08, 33.46, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 }, + "mouth-smile": { "name": "girl/mouth-smile", "x": -4.12, "y": 2.56, "width": 57, "height": 13 } + }, + "nose": { + "nose": { + "name": "girl/nose", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 6, 57.27, -63, 0.68, 29, 14.7, -17.7, 0.32, 2, 6, 56.34, -41.02, 0.73, 29, -7.3, -17.7, 0.27, 2, 6, 69.33, -40.47, 0.73, 29, -7.3, -4.7, 0.27, 2, 6, 70.26, -62.45, 0.68, 29, 14.7, -4.7, 0.32 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 22, + "height": 13 + } + }, + "pompom": { + "pompom": { "name": "girl/pompom", "x": 0.31, "y": -0.35, "rotation": -95.63, "width": 96, "height": 85 } + }, + "scarf": { + "scarf": { + "name": "girl/scarf", + "type": "mesh", + "uvs": [ 0, 0.69166, 0.08052, 0.80607, 0.18349, 0.90523, 0.29463, 0.96243, 0.44173, 1, 0.5921, 0.99676, 0.69655, 0.96098, 0.81649, 0.89046, 0.92984, 0.74335, 0.98437, 0.67259, 1, 0.62301, 1, 0.43614, 0.987, 0.34894, 0.95168, 0.11197, 0.8389, 0.11579, 0.75309, 0.14439, 0.66045, 0.15555, 0.57902, 0.16537, 0.46625, 0.11579, 0.37308, 0.07002, 0.28482, 0.02426, 0.20473, 0, 0.09849, 0.02044, 0.056, 0.3408, 0, 0.51623, 0.2505, 0.51241, 0.45971, 0.56199, 0.6444, 0.52385, 0.85198, 0.46283, 0.15733, 0.43995, 0.3453, 0.53148, 0.54797, 0.54292, 0.74737, 0.5086, 0.26684, 0.42851, 0.3506, 0.44336, 0.46122, 0.45875, 0.16878, 0.36367, 0.94187, 0.40181 ], + "triangles": [ 32, 15, 28, 28, 15, 37, 27, 31, 17, 31, 35, 17, 27, 16, 32, 32, 16, 15, 37, 15, 14, 18, 35, 34, 34, 33, 19, 12, 14, 13, 12, 37, 14, 23, 22, 36, 33, 36, 20, 27, 17, 16, 17, 35, 18, 18, 34, 19, 19, 33, 20, 36, 21, 20, 36, 22, 21, 28, 37, 11, 30, 25, 34, 30, 34, 35, 34, 25, 33, 24, 23, 29, 25, 29, 33, 29, 36, 33, 29, 23, 36, 37, 12, 11, 5, 4, 26, 4, 3, 26, 6, 5, 31, 5, 26, 31, 26, 3, 30, 31, 27, 6, 7, 27, 32, 7, 6, 27, 3, 2, 30, 30, 1, 25, 30, 2, 1, 7, 32, 8, 29, 25, 1, 9, 8, 28, 28, 8, 32, 24, 29, 0, 0, 29, 1, 9, 28, 10, 10, 28, 11, 26, 35, 31, 26, 30, 35 ], + "vertices": [ 1, 4, 101.59, 148.9, 1, 1, 4, 88.51, 130.67, 1, 1, 4, 76.57, 106.99, 1, 1, 4, 68.76, 81.06, 1, 1, 4, 62.3, 46.43, 1, 1, 4, 59.93, 10.72, 1, 1, 4, 61.69, -14.34, 1, 1, 4, 66.71, -43.35, 1, 1, 4, 79.64, -71.38, 1, 1, 4, 85.86, -84.86, 1, 1, 4, 90.62, -88.96, 1, 2, 4, 111.53, -90.22, 0.68, 5, 12.11, -93.3, 0.32, 2, 4, 120.59, -87.62, 0.68, 5, 21.19, -90.81, 0.32, 1, 5, 49.45, -81.99, 1, 1, 5, 49.69, -55.15, 1, 1, 5, 47.25, -34.67, 1, 1, 5, 46.62, -12.6, 1, 1, 5, 46.07, 6.8, 1, 1, 5, 51.76, 33.52, 1, 1, 5, 56.94, 55.57, 1, 1, 5, 62.1, 76.47, 1, 1, 5, 65.02, 95.46, 1, 1, 5, 63.52, 120.79, 1, 2, 4, 133.66, 133.75, 0.68, 5, 36.73, 130.17, 0.32, 2, 4, 118.16, 147.77, 0.86, 5, 21.41, 144.43, 0.14, 2, 4, 113.61, 88.46, 0.68, 5, 16.19, 85.15, 0.32, 2, 4, 105.87, 38.97, 0.71, 5, 7.91, 35.81, 0.29, 2, 4, 107.27, -5.15, 0.68, 5, 8.8, -8.29, 0.32, 2, 4, 110.76, -54.86, 0.68, 5, 11.73, -57.98, 0.32, 2, 4, 122.22, 110.21, 0.68, 5, 25.04, 106.78, 0.32, 2, 4, 110.42, 66.02, 0.68, 5, 12.75, 62.78, 0.32, 2, 4, 106.59, 17.89, 0.68, 5, 8.39, 14.74, 0.32, 2, 4, 107.47, -29.73, 0.68, 5, 8.73, -32.84, 0.32, 2, 4, 121.95, 84.1, 0.68, 5, 24.47, 80.7, 0.32, 2, 4, 119.33, 64.26, 0.68, 5, 21.64, 60.92, 0.32, 2, 4, 116.31, 38.04, 0.68, 5, 18.32, 34.76, 0.32, 2, 4, 129.85, 107.06, 0.68, 5, 32.62, 103.55, 0.32, 2, 4, 115.79, -76.59, 0.68, 5, 16.52, -79.73, 0.32 ], + "hull": 25, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 18, 20, 20, 22, 26, 28, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 0, 48, 2, 58, 6, 60, 14, 64, 10, 12, 12, 14, 14, 16, 16, 18, 16, 56, 28, 30, 64, 30, 30, 32, 32, 34, 54, 32, 50, 66, 38, 68, 68, 60, 36, 70, 70, 52, 66, 40, 22, 24, 24, 26, 74, 24, 62, 34 ], + "width": 238, + "height": 102 + } + }, + "scarf-back": { + "scarf-back": { "name": "girl/scarf-back", "x": 46.88, "y": 3.26, "rotation": 177.98, "width": 143, "height": 102 } + }, + "sleeve-front": { + "sleeve-front": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "sleeve-front", "width": 71, "height": 229 } + }, + "zip-girl": { + "zip-girl": { "name": "girl/zip", "x": 19.66, "y": 3.69, "rotation": 80.66, "width": 37, "height": 49 } + } + } + }, + { + "name": "full-skins/girl-blue-cape", + "bones": [ "cape-blue-control", "cape-blue-down", "cape-blue-down-back", "cape-blue-down-front", "cape-blue-down-middle", "cape-blue-middle-back", "cape-blue-middle-front", "cape-blue-up", "cape-blue-up-back", "cape-blue-up-front", "dress-control-foot-front", "dress-control-foot-back", "dress-control-leg-down-back", "dress-control-leg-down-front", "dress-control-leg-up-back", "dress-control-leg-up-front", "dress-control-middle", "cape-back-rotator", "cape-front-rotator", "sleeve-control-back", "sleeve-control-front" ], + "transform": [ "leg-down-front", "leg-down-back", "leg-down-back-up", "leg-down-down", "leg-up", "leg-up-back" ], + "attachments": { + "arm-back": { + "arm-back": { + "name": "girl-blue-cape/sleeve-front", + "type": "mesh", + "uvs": [ 0.39189, 0, 0.14439, 0.01666, 0.15901, 0.10249, 0.17598, 0.19757, 0.191, 0.28175, 0.205, 0.3602, 0.22028, 0.44586, 0.23432, 0.52454, 0.2491, 0.60734, 0.22371, 0.71965, 0.1539, 0.82364, 0, 0.92776, 0, 0.99154, 0.23074, 0.95687, 0.37352, 1, 0.45602, 1, 0.6591, 0.94994, 1, 0.96658, 1, 0.91944, 0.88122, 0.81129, 0.81141, 0.71284, 0.76064, 0.59498, 0.73905, 0.50606, 0.71901, 0.4235, 0.7003, 0.34643, 0.68005, 0.26299, 0.65973, 0.17927, 0.63519, 0.07818, 0.61151, 0, 0.43698, 0.82821, 0.25612, 0.89754, 0.6242, 0.89754, 0.43118, 0.08805, 0.44237, 0.51902, 0.4401, 0.43175, 0.43805, 0.35262, 0.436, 0.27359, 0.43377, 0.18768, 0.44092, 0.60224, 0.43884, 0.72139 ], + "triangles": [ 4, 3, 37, 36, 37, 26, 37, 3, 32, 3, 2, 32, 37, 27, 26, 37, 32, 27, 2, 0, 32, 2, 1, 0, 32, 28, 27, 32, 0, 28, 6, 5, 35, 34, 35, 24, 35, 5, 36, 5, 4, 36, 35, 25, 24, 35, 36, 25, 36, 4, 37, 36, 26, 25, 7, 6, 34, 33, 34, 23, 34, 6, 35, 34, 24, 23, 39, 8, 38, 39, 38, 21, 38, 33, 22, 33, 8, 7, 33, 7, 34, 33, 23, 22, 38, 8, 33, 38, 22, 21, 29, 39, 20, 29, 9, 39, 9, 8, 39, 39, 21, 20, 10, 9, 29, 30, 10, 29, 14, 30, 29, 13, 30, 14, 15, 14, 29, 12, 11, 13, 15, 31, 16, 31, 15, 29, 16, 18, 17, 13, 11, 30, 16, 31, 18, 31, 19, 18, 31, 29, 19, 11, 10, 30, 29, 20, 19 ], + "vertices": [ 1, 84, -16.93, -3.67, 1, 1, 84, -16.62, -29.86, 1, 2, 85, -30.38, -28.39, 0.00675, 84, 3.66, -28.4, 0.99325, 2, 85, -7.5, -26.7, 0.28271, 84, 26.13, -26.7, 0.71729, 3, 86, -20.67, -25.24, 0.0369, 85, 12.75, -25.2, 0.82623, 84, 46.02, -25.2, 0.13687, 3, 86, -1.82, -23.81, 0.46001, 85, 31.62, -23.8, 0.53932, 84, 64.55, -23.8, 6.7E-4, 3, 87, -14.53, -22.33, 0.07429, 86, 18.77, -22.24, 0.89721, 85, 52.23, -22.28, 0.0285, 2, 87, 4.3, -20.78, 0.66292, 86, 37.68, -20.8, 0.33708, 3, 88, -9.4, -19.2, 0.39191, 87, 24.1, -19.15, 0.48809, 86, 57.58, -19.29, 0.12, 3, 131, 76.95, -52.14, 0.2, 88, 17.84, -21.57, 0.472, 87, 50.99, -21.67, 0.328, 3, 131, 84.21, -27.39, 0.33, 89, 9.43, -28.56, 0.5213, 88, 43.1, -28.59, 0.1487, 2, 131, 100.22, -2.61, 0.99748, 89, 34.19, -44.26, 0.00252, 1, 131, 100.22, 12.57, 1, 1, 131, 76.22, 4.32, 1, 1, 131, 61.37, 14.58, 1, 1, 131, 52.79, 14.58, 1, 1, 131, 31.67, 2.67, 1, 1, 131, -3.78, 6.63, 1, 3, 131, -3.78, -4.59, 0.99378, 89, 30.96, 59.71, 0.00244, 88, 65.41, 59.63, 0.00378, 4, 131, 8.57, -30.33, 0.60383, 89, 5.59, 47.04, 0.13666, 88, 39.34, 47.02, 0.2413, 87, 72.6, 46.82, 0.01821, 3, 131, 15.83, -53.76, 0.2, 88, 15.57, 39.53, 0.472, 87, 49.08, 39.45, 0.328, 5, 131, 21.11, -81.81, 0.0171, 89, -45.3, 33.86, 2.3E-4, 88, -12.93, 33.97, 0.32025, 87, 20.9, 34.04, 0.54241, 86, 54.67, 33.91, 0.12, 5, 131, 23.36, -102.97, 3.0E-5, 88, -34.45, 31.51, 0.01472, 87, -0.37, 31.69, 0.51834, 86, 33.3, 31.69, 0.46518, 85, 66.89, 31.63, 0.00174, 3, 87, -20.12, 29.51, 0.10716, 86, 13.46, 29.63, 0.77625, 85, 47.02, 29.61, 0.11659, 4, 87, -38.56, 27.48, 0.0033, 86, -5.07, 27.71, 0.43059, 85, 28.47, 27.72, 0.56203, 84, 61.45, 27.72, 0.00408, 3, 86, -25.12, 25.62, 0.05143, 85, 8.4, 25.67, 0.74366, 84, 41.73, 25.68, 0.20491, 2, 85, -11.75, 23.62, 0.18749, 84, 21.95, 23.62, 0.81251, 1, 84, 1.16, 17.55, 1, 1, 84, -11.55, 9.3, 1, 2, 131, 54.77, -26.3, 0.43, 89, 10.15, 0.89, 0.57, 3, 131, 73.58, -9.8, 0.43, 89, 26.74, -17.72, 0.56433, 88, 60.89, -17.78, 0.00567, 3, 131, 35.3, -9.8, 0.59, 89, 26.27, 20.56, 0.38171, 88, 60.51, 20.5, 0.02829, 1, 84, 0.33, -0.08, 1, 2, 87, 2.87, 0.85, 0.98548, 86, 36.38, 0.83, 0.01452, 2, 87, -18.01, 0.52, 2.8E-4, 86, 15.41, 0.62, 0.99972, 1, 85, 29.88, 0.44, 1, 2, 86, -22.6, 0.24, 1.2E-4, 85, 10.87, 0.28, 0.99988, 1, 84, 23.87, 0.12, 1, 4, 131, 54.37, -80.08, 0.04086, 88, -10.84, 0.74, 0.35514, 87, 22.79, 0.79, 0.484, 86, 56.38, 0.66, 0.12, 3, 131, 54.58, -51.73, 0.2, 88, 18.03, 0.8, 0.472, 87, 51.31, 0.71, 0.328 ], + "hull": 29, + "edges": [ 0, 2, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 56, 36, 62, 60, 22, 0, 64, 2, 4, 64, 4, 54, 56, 64, 54, 14, 16, 14, 66, 42, 44, 66, 44, 12, 14, 68, 66, 12, 68, 44, 46, 68, 46, 46, 48, 70, 68, 48, 70, 10, 12, 70, 10, 8, 10, 72, 70, 8, 72, 48, 50, 72, 50, 50, 52, 52, 54, 64, 74, 74, 72, 52, 74, 4, 6, 6, 8, 74, 6, 76, 66, 76, 42, 76, 16, 58, 78, 78, 76, 40, 78, 38, 58, 58, 20 ], + "width": 104, + "height": 238 + } + }, + "base-head": { + "base-head": { "x": 74.74, "y": -10.09, "rotation": -87.57, "width": 189, "height": 145 } + }, + "body-dress": { + "body-dress": { + "name": "girl-blue-cape/body-dress", + "type": "mesh", + "uvs": [ 0.37147, 0.03655, 0.19753, 0.06738, 0.15404, 0.12133, 0.32219, 0.19841, 0.33378, 0.22538, 0.2874, 0.28704, 0.23812, 0.34613, 0.20623, 0.41935, 0.18013, 0.49642, 0.14534, 0.60818, 0.11925, 0.7148, 0.09896, 0.82527, 0.08156, 0.87665, 0.02358, 0.92546, 0, 0.9614, 0, 0.98709, 0.11635, 0.9948, 0.2874, 1, 0.51933, 1, 0.72516, 0.99865, 0.97448, 0.99351, 1, 0.96782, 0.97738, 0.92286, 0.95999, 0.86891, 0.96578, 0.80597, 0.97738, 0.71091, 0.98028, 0.60301, 0.96578, 0.49382, 0.93679, 0.40776, 0.9049, 0.33325, 0.85852, 0.26517, 0.80344, 0.21251, 0.80634, 0.15984, 0.78024, 0.05858, 0.6121, 0.02646, 0.68457, 0.23071, 0.49613, 0.23199, 0.62261, 0.17757, 0.46316, 0.1917, 0.6719, 0.33814, 0.78206, 0.33428, 0.62551, 0.41393, 0.84584, 0.41136, 0.58202, 0.33557, 0.52404, 0.4165, 0.52114, 0.33557, 0.37619, 0.41264, 0.46026, 0.49228, 0.56463, 0.49614, 0.73857, 0.28162, 0.68059, 0.28419, 0.59652, 0.2829, 0.48635, 0.28676, 0.3443, 0.60918, 0.46026, 0.60661, 0.88643, 0.491, 0.32111, 0.7235, 0.19935, 0.71965, 0.52114, 0.72993, 0.80525, 0.72479, 0.55303, 0.60661, 0.79946, 0.60789, 0.51535, 0.88536, 0.83424, 0.88022, 0.30081, 0.88664, 0.30371, 0.81984, 0.52114, 0.81856, 0.81975, 0.81214, 0.82472, 0.94059, 0.61889, 0.94316, 0.39856, 0.94702, 0.23041, 0.95087, 0.09126, 0.94059, 0.35471, 0.49384, 0.13171, 0.87893, 0.15316, 0.82452, 0.93153, 0.92896, 0.91674, 0.87433, 0.92068, 0.80791, 0.05964, 0.93806 ], + "triangles": [ 49, 31, 30, 50, 51, 35, 50, 35, 49, 52, 36, 51, 5, 4, 52, 40, 49, 30, 40, 30, 29, 45, 52, 51, 43, 45, 51, 39, 51, 50, 43, 51, 39, 42, 40, 29, 46, 5, 52, 46, 52, 45, 41, 43, 39, 44, 45, 43, 39, 50, 49, 39, 49, 40, 41, 39, 40, 42, 41, 40, 37, 34, 33, 37, 33, 32, 38, 0, 34, 38, 34, 37, 3, 1, 0, 3, 0, 38, 2, 1, 3, 32, 35, 37, 4, 3, 38, 31, 35, 32, 36, 38, 37, 4, 38, 36, 36, 37, 35, 49, 35, 31, 51, 36, 35, 52, 4, 36, 6, 5, 46, 44, 43, 41, 46, 45, 44, 7, 6, 46, 76, 23, 22, 20, 76, 22, 20, 22, 21, 76, 68, 63, 76, 63, 77, 68, 76, 20, 19, 68, 20, 68, 19, 63, 79, 15, 14, 79, 14, 13, 15, 79, 72, 16, 72, 71, 15, 72, 16, 16, 71, 17, 63, 19, 69, 70, 64, 62, 17, 71, 64, 17, 64, 70, 18, 62, 69, 70, 62, 18, 17, 70, 18, 18, 69, 19, 63, 69, 62, 64, 65, 62, 25, 78, 59, 24, 78, 25, 67, 59, 78, 66, 59, 67, 23, 78, 24, 78, 63, 67, 77, 78, 23, 77, 63, 78, 62, 67, 63, 76, 77, 23, 62, 66, 67, 42, 29, 28, 55, 42, 28, 55, 28, 27, 55, 41, 42, 61, 48, 55, 55, 27, 26, 61, 26, 59, 55, 26, 61, 25, 59, 26, 59, 60, 61, 56, 58, 66, 62, 65, 66, 10, 9, 57, 56, 11, 57, 65, 56, 66, 57, 11, 10, 11, 56, 75, 56, 65, 75, 74, 11, 75, 12, 11, 74, 64, 75, 65, 74, 75, 64, 79, 13, 12, 72, 12, 74, 79, 12, 72, 71, 74, 64, 72, 74, 71, 66, 58, 59, 58, 56, 54, 59, 58, 60, 48, 44, 41, 47, 46, 44, 73, 46, 47, 47, 44, 48, 8, 7, 73, 60, 54, 47, 73, 47, 54, 48, 60, 47, 53, 8, 73, 53, 73, 54, 9, 8, 53, 57, 9, 53, 56, 53, 54, 48, 41, 55, 60, 48, 61, 56, 57, 53, 58, 54, 60, 73, 7, 46 ], + "vertices": [ 1, 4, 115.55, 22.28, 1, 1, 4, 103.28, 61.24, 1, 1, 4, 77.53, 72.69, 1, 1, 4, 36.95, 39, 1, 2, 4, 23.53, 37.48, 0.57, 3, 88.89, 40.23, 0.43, 2, 4, -5.96, 49.85, 0.4, 3, 59, 51.6, 0.6, 1, 2, -67.89, 26.14, 1, 2, 125, -119.82, 5.59, 0.41, 2, -74.84, -9.88, 0.59, 2, 125, -81.73, 1.16, 0.88, 126, -113.79, -10.46, 0.12, 2, 125, -26.52, -4.59, 0.75, 126, -58.29, -10.27, 0.25, 2, 125, 26.09, -8.53, 0.15, 126, -5.55, -8.55, 0.85, 2, 125, 80.56, -11.15, 0.12, 126, 48.88, -5.31, 0.88, 2, 125, 105.95, -14.1, 0.05, 126, 74.44, -5.52, 0.95, 2, 126, 100, -14.67, 0.49, 127, -24.37, -2.34, 0.51, 1, 127, -6.14, -4.95, 1, 1, 127, 6.37, -3.18, 1, 2, 129, -85.84, -9.66, 0.31, 127, 6.57, 22.47, 0.69, 2, 129, -48.55, -12.21, 0.52, 127, 3.88, 59.74, 0.48, 1, 129, 2.01, -12.21, 1, 2, 129, 46.88, -11.55, 0.53, 128, 17.25, -54.9, 0.47, 1, 128, 11.93, -0.75, 1, 1, 128, -0.98, 4.15, 1, 2, 124, 92.78, 14.32, 0.47, 128, -22.82, -1.91, 0.53, 3, 123, 101.67, 5.36, 0.29, 124, 66.47, 9.17, 0.4686, 128, -49.13, -7.06, 0.2414, 2, 123, 70.72, 6.91, 0.41, 124, 35.47, 8.84, 0.59, 2, 123, 23.98, 9.88, 0.76, 124, -11.36, 8.95, 0.24, 1, 123, -29.1, 11, 1, 2, 123, -82.85, 8.34, 0.89, 2, 90.75, -46.53, 0.11, 2, 123, -125.25, 2.41, 0.69, 2, 84.43, -4.18, 0.31, 1, 3, 30.67, -81.95, 1, 2, 4, -4.62, -75.11, 0.4, 3, 64.56, -73.25, 0.6, 2, 4, 22.12, -65.09, 0.57, 3, 90.95, -62.33, 0.43, 1, 4, 47.91, -67.67, 1, 1, 4, 98.02, -65.76, 1, 1, 4, 116.54, -30.4, 1, 2, 4, 15.15, -38.58, 0.57, 3, 83.08, -36.06, 0.43, 2, 4, 17.61, 2.43, 0.57, 3, 84.16, 5.01, 0.43, 1, 4, 42.24, -27.08, 1, 1, 4, 37.92, 8.11, 1, 1, 3, 30.39, -31.1, 1, 1, 3, 31.28, -55.18, 1, 2, 125, -125.52, 96.85, 0.32, 2, 16.57, -7.22, 0.68, 2, 123, -123.66, -17.43, 0.69, 2, 64.6, -5.95, 0.31, 1, 3, 32.47, -11.58, 1, 2, 125, -123.52, 74.78, 0.32, 2, -5.55, -8.48, 0.68, 1, 3, 33.02, 1.68, 1, 2, 125, -124.35, 42.51, 0.32, 2, -37.79, -6.58, 0.68, 2, 125, -85.79, 62.13, 0.97, 126, -124.37, 49.71, 0.03, 2, 125, -84.66, 84.93, 0.92, 2, 3.29, -47.66, 0.08, 2, 4, -10.72, -48.43, 0.4, 3, 57.57, -46.78, 0.6, 2, 4, -11.02, -35.73, 0.4, 3, 56.83, -34.1, 0.6, 2, 4, -9.01, -17.5, 0.4, 3, 58.23, -15.82, 0.6, 2, 4, -9.09, 6.59, 0.4, 3, 57.33, 8.26, 0.6, 2, 125, -27.47, 38.77, 0.92, 126, -63.88, 32.75, 0.08, 3, 125, -29.58, 64, 0.6336, 126, -68.67, 57.6, 0.3264, 124, -56.81, -106.27, 0.04, 2, 123, -84.4, -8.95, 0.89, 2, 73.45, -45.14, 0.11, 2, 125, 28.91, 35.59, 0.37, 126, -7.48, 35.62, 0.63, 2, 125, 27.9, 9, 0.22, 126, -5.64, 9.08, 0.78, 3, 125, 30.62, 79.28, 0.43771, 126, -10.46, 79.24, 0.53, 129, 2.41, 120.66, 0.03229, 2, 123, 30.45, -27.71, 0.32, 124, -2.61, -28.17, 0.68, 3, 125, -30.25, 84.21, 0.5664, 126, -71.51, 77.62, 0.3936, 124, -57.85, -86.07, 0.04, 1, 123, -27.07, -28.44, 1, 4, 125, 107.09, 80.56, 0.108, 126, 65.43, 88.71, 0.25092, 129, 1.14, 44.19, 0.4, 128, -36.06, -103.45, 0.24108, 3, 124, 73.43, -17.92, 0.3431, 129, 70.66, 46.72, 0.27, 128, -42.17, -34.15, 0.3869, 2, 126, 72.61, 42.49, 0.39, 129, -45.62, 43.56, 0.61, 2, 126, 39.98, 38.51, 0.68, 129, -44.99, 76.42, 0.32, 4, 125, 74.2, 80.73, 0.13965, 126, 32.72, 85.36, 0.46, 129, 2.41, 77.05, 0.17126, 128, -68.95, -103.88, 0.22909, 1, 124, 40.14, -22.8, 1, 2, 129, 68.59, 17.01, 0.32, 128, -12.4, -34.7, 0.68, 2, 129, 23.72, 15.75, 0.74, 128, -8.82, -79.44, 0.26, 1, 129, -24.32, 13.85, 1, 3, 126, 106.05, 31.73, 0.2256, 129, -60.97, 11.96, 0.52, 127, -18.31, 44.06, 0.2544, 3, 126, 105.3, 0.98, 0.2268, 129, -91.31, 17.01, 0.16, 127, -19.07, 13.31, 0.6132, 2, 125, -84.26, 39.16, 0.92, 126, -120.38, 27.04, 0.08, 3, 125, 106.71, -3.13, 0.03989, 126, 74.03, 5.46, 0.85011, 129, -82.49, 47.35, 0.11, 3, 125, 79.8, 0.65, 0.08746, 126, 46.86, 6.34, 0.82673, 129, -77.81, 74.12, 0.08581, 3, 124, 96.29, 4.49, 0.34371, 129, 91.87, 22.74, 0.05, 128, -19.31, -11.74, 0.60629, 4, 123, 104.25, -4.09, 0.1912, 124, 69.61, -0.11, 0.4382, 129, 88.65, 49.61, 0.06, 128, -45.98, -16.34, 0.31061, 4, 123, 71.58, -2.93, 0.28332, 124, 36.93, -0.93, 0.71646, 129, 89.51, 82.29, 5.0E-5, 128, -78.66, -17.16, 1.7E-4, 3, 126, 105.03, -6.02, 0.29357, 129, -98.2, 18.26, 0.08, 127, -19.34, 6.31, 0.62643 ], + "hull": 35, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 64, 66, 66, 68, 0, 68, 104, 10, 72, 8, 72, 70, 110, 96, 124, 128, 22, 112, 124, 126, 112, 116, 116, 118, 16, 146, 146, 94, 106, 146, 24, 148, 148, 128, 144, 142, 148, 150, 144, 30 ], + "width": 218, + "height": 492 + } + }, + "cape-back": { + "cape-back": { + "name": "girl-blue-cape/cape-back", + "type": "mesh", + "uvs": [ 0.16774, 0.18106, 0.16774, 0.29678, 0.15536, 0.37836, 0.1492, 0.41892, 0.13066, 0.53249, 0.10285, 0.63749, 0.06886, 0.74892, 0.03178, 0.84106, 0, 0.91392, 0, 0.96321, 0.12139, 0.97606, 0.26661, 0.98035, 0.36858, 0.99535, 0.49836, 1, 0.64667, 0.99106, 0.77645, 0.96535, 0.9124, 0.96535, 1, 0.94392, 1, 0.83678, 0.94639, 0.75535, 0.90313, 0.64606, 0.8815, 0.52821, 0.88459, 0.40392, 0.89409, 0.29849, 0.8803, 0.21766, 0.87223, 0.17035, 0.74864, 0, 0.23572, 0, 0.49006, 0.88368, 0.38711, 0.87971, 0.2632, 0.86913, 0.13357, 0.8612, 0.64257, 0.87178, 0.78173, 0.85062, 0.89421, 0.84798, 0.11069, 0.76072, 0.14882, 0.6457, 0.17551, 0.53994, 0.19457, 0.42227, 0.22507, 0.30196, 0.22507, 0.18165, 0.81605, 0.1724, 0.8332, 0.3998, 0.82939, 0.53465, 0.85227, 0.65628, 0.89611, 0.76998, 0.49768, 0.53861, 0.51865, 0.28874, 0.5034, 0.07324, 0.84979, 0.31308, 0.81597, 0.2321, 0.19995, 0.37876 ], + "triangles": [ 40, 27, 48, 46, 28, 29, 32, 28, 46, 11, 30, 29, 14, 32, 15, 28, 32, 14, 12, 11, 29, 13, 28, 14, 29, 28, 13, 12, 29, 13, 34, 33, 45, 34, 45, 19, 19, 18, 34, 17, 34, 18, 15, 32, 33, 16, 34, 17, 15, 33, 34, 16, 15, 34, 30, 31, 35, 7, 35, 31, 10, 9, 8, 31, 8, 7, 31, 10, 8, 10, 31, 30, 11, 10, 30, 21, 42, 22, 43, 42, 21, 43, 46, 42, 44, 43, 21, 44, 21, 20, 45, 44, 20, 45, 20, 19, 45, 33, 44, 46, 44, 32, 44, 46, 43, 44, 33, 32, 37, 4, 3, 36, 5, 4, 37, 36, 4, 35, 6, 5, 36, 35, 5, 7, 6, 35, 46, 36, 37, 36, 46, 29, 29, 30, 36, 30, 35, 36, 37, 38, 46, 48, 27, 26, 41, 48, 26, 41, 47, 48, 40, 48, 47, 49, 24, 23, 42, 50, 49, 47, 50, 42, 22, 49, 23, 42, 49, 22, 42, 46, 47, 41, 26, 25, 50, 47, 41, 49, 50, 24, 41, 24, 50, 24, 41, 25, 51, 2, 1, 38, 2, 51, 38, 51, 46, 40, 0, 27, 1, 0, 40, 39, 40, 47, 1, 40, 39, 39, 51, 1, 3, 2, 38, 47, 51, 39, 38, 37, 3, 46, 51, 47 ], + "vertices": [ 2, 139, -67.32, -1.83, 0.83, 4, 54.84, 90.31, 0.17, 2, 139, -22.81, -3.58, 0.9, 4, 10.42, 93.67, 0.1, 1, 139, 8.45, -8.12, 1, 2, 139, 23.99, -10.37, 0.84479, 137, -84.76, 9.18, 0.15521, 2, 139, 67.49, -17.04, 0.23, 137, -41.26, 2.52, 0.77, 3, 139, 107.59, -26.04, 0.00129, 137, -1.16, -6.49, 0.9964, 135, -109.35, 27.31, 0.00231, 3, 137, 41.35, -17.24, 0.64884, 135, -66.84, 16.56, 0.34223, 134, -85.85, -117.18, 0.00892, 4, 139, 185.16, -48.08, 0.02, 137, 76.41, -28.53, 0.21385, 135, -31.78, 5.27, 0.75071, 134, -50.79, -128.46, 0.01544, 2, 137, 104.1, -38.11, 0.00727, 135, -4.09, -4.31, 0.99273, 2, 135, 14.87, -5.06, 0.99722, 134, -4.14, -138.79, 0.00278, 3, 137, 129.28, -6.66, 0.02507, 135, 21.09, 27.14, 0.86628, 134, 2.08, -106.6, 0.10865, 3, 137, 132.45, 32.02, 0.04886, 135, 24.26, 65.82, 0.49631, 134, 5.25, -67.92, 0.45484, 3, 137, 139.29, 59, 0.0214, 135, 31.1, 92.79, 0.21036, 134, 12.09, -40.94, 0.76824, 4, 137, 142.44, 93.55, 6.5E-4, 135, 34.25, 127.35, 0.01537, 136, 25.25, -127.51, 3.3E-4, 134, 15.24, -6.39, 0.98365, 3, 138, 148.57, -64.7, 0.00449, 136, 23.37, -87.8, 0.17701, 134, 13.36, 33.32, 0.81851, 3, 138, 140.04, -29.69, 0.02334, 136, 14.84, -52.79, 0.60404, 134, 4.83, 68.33, 0.37262, 3, 138, 141.46, 6.58, 0.00358, 136, 16.27, -16.52, 0.93615, 134, 6.25, 104.6, 0.06026, 1, 136, 8.94, 7.18, 1, 3, 138, 92.92, 31.89, 0.14408, 136, -32.28, 8.8, 0.85584, 134, -42.29, 129.92, 8.0E-5, 3, 138, 61.03, 18.82, 0.46239, 136, -64.17, -4.27, 0.53552, 134, -74.18, 116.85, 0.00209, 2, 138, 18.54, 8.93, 0.91574, 136, -106.66, -14.16, 0.08426, 2, 140, 96.09, 1.28, 0.09, 138, -27.03, 4.94, 0.91, 2, 140, 48.31, 3.91, 0.53, 138, -74.81, 7.65, 0.47, 1, 140, 7.84, 7.97, 1, 2, 140, -23.4, 5.46, 0.81, 4, 26.44, -98.34, 0.19, 2, 140, -41.68, 3.99, 0.7, 4, 44.77, -97.57, 0.3, 2, 140, -108.46, -26.51, 0.93, 4, 112.65, -69.61, 0.07, 1, 4, 122.98, 66.95, 1, 4, 137, 97.61, 93.09, 0.01667, 135, -10.59, 126.89, 0.05862, 136, -19.58, -127.96, 0.00801, 134, -29.6, -6.84, 0.91669, 3, 137, 95, 65.69, 0.102, 135, -13.19, 99.49, 0.26627, 134, -32.2, -34.25, 0.63173, 3, 137, 89.63, 32.79, 0.20581, 135, -18.56, 66.59, 0.51806, 134, -37.57, -67.15, 0.27614, 3, 137, 85.22, -1.68, 0.21275, 135, -22.97, 32.12, 0.71605, 134, -41.98, -101.61, 0.0712, 3, 138, 102.64, -64, 0.07818, 136, -22.56, -87.09, 0.32621, 134, -32.57, 34.03, 0.59561, 3, 138, 95.96, -26.55, 0.18346, 136, -29.24, -49.64, 0.6387, 134, -39.25, 71.48, 0.17784, 3, 138, 96.12, 3.5, 0.16303, 136, -29.08, -19.6, 0.79715, 134, -39.09, 101.52, 0.03982, 3, 137, 46.33, -6.26, 0.62329, 135, -61.86, 27.54, 0.36315, 134, -80.87, -106.2, 0.01356, 4, 139, 111.23, -13.9, 6.6E-4, 137, 2.48, 5.65, 0.99342, 135, -105.71, 39.45, 0.0059, 134, -124.72, -94.28, 3.0E-5, 2, 139, 70.82, -5.18, 0.23, 137, -37.93, 14.37, 0.77, 2, 139, 25.75, 1.68, 0.84188, 137, -83, 21.24, 0.15812, 2, 139, -20.21, 11.64, 0.9, 4, 7.27, 78.55, 0.1, 2, 139, -66.49, 13.46, 0.83, 4, 53.46, 75.06, 0.17, 2, 140, -41.46, -11.03, 0.7, 4, 45.11, -82.55, 0.3, 2, 140, 46.2, -9.75, 0.53, 138, -76.94, -6, 0.47, 2, 140, 98.05, -12.72, 0.09, 138, -25.1, -9.06, 0.91, 2, 138, 21.93, -4.79, 0.90321, 136, -103.27, -27.89, 0.09679, 3, 138, 66.13, 5.19, 0.44464, 136, -59.07, -17.91, 0.54629, 134, -69.08, 103.21, 0.00907, 2, 139, 73.69, 80.79, 0.36969, 137, -35.06, 100.35, 0.63031, 2, 140, 0.31, -92.06, 0.96279, 138, -122.96, -88.24, 0.03721, 1, 140, -82.75, -93.01, 1, 1, 140, 13.01, -4.06, 1, 2, 140, -18.49, -11.91, 0.81, 4, 22.19, -80.8, 0.19, 1, 139, 9.07, 3.77, 1 ], + "hull": 28, + "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 50, 52, 52, 54, 0, 54, 44, 46, 46, 48, 48, 50, 2, 4, 4, 6 ], + "width": 267, + "height": 385 + } + }, + "cape-blue-shoulder-back": { + "cape-blue-shoulder-back": { + "name": "girl-blue-cape/cape-shoulder-back", + "type": "mesh", + "uvs": [ 0, 0.07849, 0.35461, 0.35256, 0.61389, 0.5707, 0.8193, 0.78883, 0.95063, 1, 1, 1, 1, 0.74409, 0.93379, 0.484, 0.79236, 0.20994, 0.59032, 0.01977, 0, 0 ], + "triangles": [ 6, 3, 7, 4, 3, 6, 4, 6, 5, 3, 2, 7, 2, 8, 7, 2, 1, 8, 0, 10, 9, 1, 0, 9, 1, 9, 8 ], + "vertices": [ 1, 4, 112.34, -7.46, 1, 2, 4, 77.47, -39.67, 0.89, 140, -72.17, -55.09, 0.11, 2, 4, 49.88, -63.07, 0.47, 140, -45.49, -30.67, 0.53, 2, 4, 22.7, -81.2, 0.2, 140, -19.01, -11.52, 0.8, 1, 140, 6.38, 0.4, 1, 1, 140, 6.56, 5.23, 1, 2, 4, 26.63, -99.26, 0.03, 140, -23.62, 6.37, 0.97, 2, 4, 57.72, -95.1, 0.19, 140, -54.53, 1.04, 0.81, 2, 4, 91.01, -83.72, 0.5, 140, -87.37, -11.59, 0.5, 2, 4, 114.88, -65.67, 0.71, 140, -110.54, -30.53, 0.29, 1, 4, 121.57, -8.16, 1 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 98, + "height": 118 + } + }, + "cape-blue-shoulder-front": { + "cape-blue-shoulder-front": { + "name": "girl-blue-cape/cape-shoulder-front", + "type": "mesh", + "uvs": [ 1, 0.26291, 0.82448, 0.42574, 0.58034, 0.61028, 0.30936, 0.80567, 0.09204, 1, 0.03839, 1, 0, 0.62982, 0, 0.31936, 0.21009, 0.09357, 0.51595, 0, 0.98546, 0.00238, 0.35765, 0.36929, 0.59912, 0.21298, 0.16717, 0.51258 ], + "triangles": [ 2, 11, 12, 2, 12, 1, 7, 8, 11, 1, 12, 0, 12, 10, 0, 12, 11, 8, 12, 8, 9, 12, 9, 10, 2, 13, 11, 13, 7, 11, 3, 4, 6, 4, 5, 6, 6, 13, 3, 2, 3, 13, 6, 7, 13 ], + "vertices": [ 1, 4, 82.18, -29.91, 1, 1, 4, 58.8, -6.49, 1, 2, 139, -47.93, 63.65, 0.33, 4, 33.09, 25.57, 0.67, 2, 139, -19.56, 29.18, 0.88, 4, 5.99, 61.04, 0.12, 1, 139, 8.9, 1.31, 1, 1, 139, 8.64, -5.28, 1, 2, 139, -47.77, -7.79, 0.73, 4, 35.51, 96.97, 0.27, 2, 139, -94.92, -5.94, 0.44, 4, 82.57, 93.41, 0.56, 2, 139, -128.2, 21.23, 0.21, 4, 114.84, 65.06, 0.79, 1, 4, 126.19, 26.47, 1, 1, 4, 121.47, -31.09, 1, 2, 139, -85.61, 37.72, 0.5, 4, 71.68, 50.12, 0.5, 1, 4, 93.14, 18.71, 1, 2, 139, -64.77, 13.46, 0.65, 4, 51.73, 75.12, 0.35 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 123, + "height": 152 + } + }, + "cape-blue-up-front": { + "cape-blue-up-front": { + "name": "girl-blue-cape/cape-up-front", + "type": "mesh", + "uvs": [ 1, 1, 0.7644, 1, 0.60402, 0.93701, 0.40799, 0.93403, 0.20484, 0.87139, 0.04445, 0.75804, 0, 0.57908, 0.00168, 0.39712, 0.16563, 0.2271, 0.39373, 0.07199, 0.60402, 0, 0.83568, 0, 1, 0.04515, 0.9034, 0.10182, 0.75727, 0.14955, 0.66461, 0.25991, 0.5862, 0.40905, 0.56481, 0.57013, 0.60045, 0.72225, 0.75371, 0.79682, 0.92835, 0.82665, 1, 0.90122, 0.32245, 0.38817, 0.29038, 0.58802, 0.40443, 0.76401, 0.43294, 0.16744, 0.13543, 0.58128, 0.19958, 0.34266, 0.23879, 0.78113, 0.4098, 0.13281, 0.61528, 0.04432 ], + "triangles": [ 2, 3, 24, 4, 28, 3, 2, 18, 19, 2, 24, 18, 1, 19, 20, 1, 20, 21, 2, 19, 1, 1, 21, 0, 28, 24, 3, 4, 5, 28, 5, 26, 28, 28, 26, 23, 28, 23, 24, 24, 23, 17, 24, 17, 18, 5, 6, 26, 8, 9, 29, 7, 8, 27, 6, 7, 26, 9, 10, 30, 30, 10, 11, 13, 11, 12, 14, 30, 11, 14, 11, 13, 25, 29, 30, 15, 30, 14, 25, 30, 15, 22, 27, 25, 16, 25, 15, 22, 25, 16, 23, 22, 17, 17, 22, 16, 29, 9, 30, 22, 23, 27, 29, 25, 27, 23, 26, 27, 26, 7, 27, 29, 27, 8 ], + "vertices": [ 1, 4, 85.07, -28.86, 1, 1, 4, 88.53, 16.95, 1, 2, 29, -78.55, -97.76, 0.12904, 4, 105.52, 47.03, 0.87096, 2, 29, -116.77, -97.07, 0.22, 4, 109.1, 85.09, 0.78, 4, 141, -191.82, 123.01, 0.23269, 29, -156.39, -82.47, 0.22918, 30, -67.47, -83.07, 0.13813, 4, 126.64, 123.49, 0.4, 4, 141, -165.41, 154.29, 0.28, 29, -187.66, -56.06, 0.40019, 30, -98.75, -56.66, 0.16114, 4, 155.33, 152.68, 0.15867, 4, 141, -123.71, 162.96, 0.17927, 6, 49.32, 155.86, 0.59755, 29, -196.33, -14.36, 0.06318, 30, -107.42, -14.96, 0.16, 3, 141, -81.31, 162.63, 0.07633, 6, 91.69, 157.33, 0.72367, 30, -107.09, 27.43, 0.2, 3, 141, -41.7, 130.66, 0.06, 6, 132.62, 127.07, 0.7, 30, -75.12, 67.05, 0.24, 4, 141, -5.56, 86.18, 0.08877, 6, 170.61, 84.16, 0.71399, 29, -119.55, 103.79, 0.01724, 30, -30.64, 103.19, 0.18, 4, 141, 11.21, 45.17, 0.51, 6, 189.11, 43.9, 0.19156, 29, -78.55, 120.56, 0.15, 30, 10.37, 119.96, 0.14844, 2, 141, 11.21, 0, 0.72, 29, -33.37, 120.56, 0.28, 2, 141, 0.7, -32.04, 0.72, 29, -1.33, 110.04, 0.28, 2, 141, -12.51, -13.21, 0.79, 29, -20.17, 96.84, 0.21, 2, 141, -23.63, 15.29, 0.71, 29, -48.66, 85.72, 0.29, 2, 141, -49.34, 33.36, 0.54, 29, -66.73, 60, 0.46, 2, 141, -84.09, 48.65, 0.45, 29, -82.02, 25.25, 0.55, 3, 141, -121.62, 52.82, 0.37571, 29, -86.19, -12.28, 0.55, 4, 191.34, 48.2, 0.07429, 3, 141, -157.07, 45.87, 0.27096, 29, -79.24, -47.72, 0.5, 4, 155.47, 43.94, 0.22904, 2, 29, -49.36, -65.1, 0.27899, 4, 135.89, 15.45, 0.72101, 2, 29, -15.3, -72.05, 0.11247, 4, 126.4, -17.98, 0.88753, 1, 4, 108.02, -30.6, 1, 2, 141, -79.23, 100.08, 0.64, 29, -133.45, 30.12, 0.36, 3, 141, -125.79, 106.33, 0.48, 29, -139.71, -16.45, 0.37805, 4, 191.22, 101.88, 0.14195, 3, 141, -166.8, 84.09, 0.27, 29, -117.47, -57.45, 0.423, 4, 148.65, 82.79, 0.307, 3, 141, -27.8, 78.53, 0.69314, 29, -111.91, 81.55, 0.28, 30, -22.99, 80.95, 0.02686, 4, 141, -124.22, 136.55, 0.35527, 29, -169.92, -14.88, 0.41, 30, -81.01, -15.48, 0.15867, 4, 195.06, 131.89, 0.07605, 3, 141, -68.62, 124.04, 0.86, 29, -157.41, 40.72, 0.10943, 30, -68.5, 40.12, 0.03057, 4, 141, -170.79, 116.39, 0.27213, 29, -149.77, -61.44, 0.35294, 30, -60.85, -62.04, 0.03493, 4, 147.11, 115.3, 0.34, 3, 141, -19.73, 83.05, 0.24, 29, -116.42, 89.62, 0.39163, 30, -27.5, 89.02, 0.36837, 3, 141, 0.89, 42.98, 0.64, 29, -76.35, 110.23, 0.27769, 30, 12.56, 109.64, 0.08231 ], + "hull": 22, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 42, 54, 50, 52, 56, 58, 54, 58, 60 ], + "width": 195, + "height": 233 + } + }, + "cape-ribbon": { + "cape-ribbon": { "name": "girl-blue-cape/cape-ribbon", "x": 105.78, "y": -28.65, "rotation": -94.33, "width": 100, "height": 36 } + }, + "cape-up-back": { + "cape-up-back": { + "name": "girl-blue-cape/cape-back-up", + "type": "mesh", + "uvs": [ 0.52406, 0.00329, 0.62554, 0.04269, 0.7529, 0.09213, 0.90546, 0.25682, 1, 0.47751, 1, 0.7509, 0.89981, 0.91888, 0.75572, 1, 0.39127, 1, 0, 0.79372, 0, 0.22718, 0.29804, 0, 0.79245, 0.82336, 0.85743, 0.53021, 0.79245, 0.3227, 0.66532, 0.19753, 0.42518, 0.10531, 0.37997, 0.56974, 0.55552, 0.10358 ], + "triangles": [ 12, 13, 5, 7, 12, 6, 7, 8, 12, 13, 4, 5, 12, 17, 13, 13, 14, 4, 6, 12, 5, 16, 10, 11, 8, 17, 12, 17, 10, 16, 9, 17, 8, 9, 10, 17, 3, 14, 2, 14, 15, 2, 17, 16, 15, 16, 18, 15, 18, 1, 15, 16, 0, 18, 16, 11, 0, 18, 0, 1, 15, 1, 2, 14, 17, 15, 14, 3, 4, 17, 14, 13 ], + "vertices": [ 2, 141, 8.32, -5.56, 0.76, 29, -27.81, 117.67, 0.24, 2, 141, -0.3, -30.52, 0.76, 29, -2.85, 109.04, 0.24, 2, 141, -11.12, -61.85, 0.81, 29, 28.48, 98.23, 0.19, 3, 141, -45.87, -99.38, 0.51456, 29, 66.01, 63.48, 0.21, 4, 255.4, -109.28, 0.27544, 3, 141, -92.43, -122.64, 0.26657, 29, 89.27, 16.91, 0.13343, 4, 207.22, -128.96, 0.6, 3, 141, -150.12, -122.64, 0.00304, 29, 89.27, -40.77, 0.16, 4, 149.7, -124.61, 0.83696, 3, 29, 64.62, -76.22, 0.12, 30, 153.54, -76.82, 5.0E-4, 4, 116.21, -97.36, 0.8795, 1, 4, 101.82, -60.73, 1, 2, 29, -60.48, -93.33, 0.44568, 30, 28.44, -93.93, 0.55432, 3, 141, -159.15, 123.36, 0.72, 29, -156.73, -49.81, 0.00104, 30, -67.82, -50.41, 0.27896, 2, 30, -67.82, 69.13, 0.31, 6, 135.01, 119.86, 0.69, 4, 141, 8.32, 50.04, 0.28019, 29, -83.41, 117.67, 0.24, 30, 5.5, 117.07, 0.0456, 6, 186.01, 48.64, 0.43421, 2, 29, 38.21, -56.06, 0.16, 4, 138.3, -72.55, 0.84, 3, 141, -103.55, -87.57, 0.29987, 29, 54.2, 5.79, 0.15013, 4, 198.77, -93.15, 0.55, 3, 141, -59.72, -71.58, 0.5125, 29, 38.21, 49.63, 0.21, 4, 243.69, -80.52, 0.2775, 2, 141, -33.12, -40.31, 0.81, 29, 6.94, 76.22, 0.19, 2, 141, -13.8, 18.77, 0.76, 29, -52.14, 95.55, 0.24, 3, 141, -111.85, 29.89, 0.02898, 29, -63.26, -2.5, 0.24273, 30, 25.66, -3.1, 0.72829, 2, 141, -13.3, -13.3, 0.76, 29, -20.07, 96.05, 0.24 ], + "hull": 12, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 0, 22, 0, 2, 2, 4 ], + "width": 246, + "height": 211 + } + }, + "ear": { + "ear": { + "name": "girl/ear", + "path": "girl-blue-cape/ear", + "x": 56.58, + "y": 85.63, + "rotation": -87.57, + "width": 38, + "height": 45 + } + }, + "eye-back-eyebrow": { + "eye-back-eyebrow": { + "name": "girl/back-eyebrow", + "path": "girl-blue-cape/back-eyebrow", + "x": 15.6, + "y": -9.48, + "rotation": -177.9, + "width": 36, + "height": 23 + } + }, + "eye-back-iris": { + "eye-back-iris": { "name": "girl/eye-iris-back", "path": "girl-blue-cape/eye-iris-back", "x": 0.85, "y": -0.75, "width": 33, "height": 34 } + }, + "eye-back-low-eyelid": { + "eye-back-low-eyelid": { + "name": "girl/eye-back-low-eyelid", + "type": "mesh", + "path": "girl-blue-cape/eye-back-low-eyelid", + "uvs": [ 0, 0.26476, 0.20331, 0.79621, 0.50495, 0.95421, 0.8401, 0.89676, 1, 0.33658, 0.88319, 0.07803, 0.75871, 0.25039, 0.5241, 0.35094, 0.31343, 0.19294, 0.09798, 0 ], + "triangles": [ 3, 2, 7, 2, 1, 7, 7, 6, 3, 3, 6, 4, 1, 8, 7, 1, 0, 8, 6, 5, 4, 0, 9, 8 ], + "vertices": [ 1, 42, -29.75, 1.38, 1, 2, 42, -23.04, -4.47, 0.63, 43, 23.4, -1.82, 0.37, 2, 42, -13.09, -6.21, 0.62, 43, 14.27, 2.5, 0.38, 2, 42, -2.03, -5.57, 0.76, 43, 3.44, 4.83, 0.24, 1, 42, 3.25, 0.59, 1, 1, 42, -0.61, 3.43, 1, 2, 42, -4.72, 1.54, 0.76, 43, 4.14, -2.74, 0.24, 2, 42, -12.46, 0.43, 0.62, 43, 11.9, -3.73, 0.38, 2, 42, -19.41, 2.17, 0.63, 43, 18.14, -7.25, 0.37, 1, 42, -26.52, 4.29, 1 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 33, + "height": 11 + } + }, + "eye-back-pupil": { + "eye-back-pupil": { + "name": "girl/eye-back-pupil", + "path": "girl-blue-cape/eye-back-pupil", + "x": 0.43, + "y": -0.67, + "scaleX": 1.2, + "scaleY": 1.2062, + "width": 15, + "height": 17 + } + }, + "eye-back-up-eyelid": { + "eye-back-up-eyelid": { + "name": "girl/eye-back-up-eyelid", + "type": "mesh", + "path": "girl-blue-cape/eye-back-up-eyelid", + "uvs": [ 0.07861, 0.9592, 0.24977, 0.54703, 0.44727, 0.42338, 0.58882, 0.40964, 0.77315, 0.59512, 1, 0.16921, 1, 0, 0.76657, 0.13486, 0.61844, 0, 0.40119, 0.01807, 0.18065, 0.25164, 0, 0.73938, 0, 0.95234 ], + "triangles": [ 1, 10, 2, 3, 2, 9, 2, 10, 9, 3, 9, 8, 3, 8, 7, 1, 0, 11, 0, 12, 11, 11, 10, 1, 3, 7, 4, 4, 7, 5, 7, 6, 5 ], + "vertices": [ 1, 40, -31.8, -11.42, 1, 2, 40, -23.59, -1.94, 0.51, 41, 22.75, 6.53, 0.49, 2, 40, -14.11, 0.91, 0.15, 41, 14.01, 1.88, 0.85, 1, 41, 7.41, 0.24, 1, 1, 40, 1.53, -3.04, 1, 1, 40, 12.42, 6.75, 1, 1, 40, 12.42, 10.64, 1, 1, 40, 1.22, 7.54, 1, 1, 41, 7.87, -9.28, 1, 2, 40, -16.32, 10.23, 0.15, 41, 18.01, -6.83, 0.85, 2, 40, -26.91, 4.86, 0.52, 41, 27.34, 0.52, 0.48, 1, 40, -35.58, -6.36, 1, 1, 40, -35.58, -11.26, 1 ], + "hull": 13, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24 ], + "width": 48, + "height": 23 + } + }, + "eye-back-up-eyelid-back": { + "eye-back-up-eyelid-back": { + "name": "girl/eye-back-up-eyelid-back", + "type": "mesh", + "path": "girl-blue-cape/eye-back-up-eyelid-back", + "uvs": [ 0.12627, 1, 0, 0.99472, 0, 0.60349, 0.16345, 0.30253, 0.44692, 0.06177, 0.74898, 0.00911, 1, 0.1972, 1, 0.52073, 0.72574, 0.37025, 0.49339, 0.42292, 0.25639, 0.68625 ], + "triangles": [ 0, 1, 2, 10, 0, 2, 10, 3, 9, 9, 4, 8, 8, 6, 7, 2, 3, 10, 3, 4, 9, 8, 5, 6, 8, 4, 5 ], + "vertices": [ 1, 40, -28.64, -7.74, 1, 1, 40, -32.94, -7.63, 1, 1, 39, -19.88, 27.79, 1, 1, 39, -14.32, 34.11, 1, 1, 39, -4.69, 39.17, 1, 1, 39, 5.58, 40.27, 1, 1, 39, 14.12, 36.32, 1, 1, 40, 1.06, 2.33, 1, 1, 41, 9.18, -3.76, 1, 2, 41, 16.71, -1.13, 0.92, 40, -16.16, 4.38, 0.08, 2, 41, 23.53, 5.88, 0.33, 40, -24.22, -1.15, 0.67 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 34, + "height": 21 + } + }, + "eye-back-white": { + "eye-back-white": { + "name": "girl/eye-white-back", + "type": "mesh", + "path": "girl-blue-cape/eye-white-back", + "uvs": [ 0, 0.39191, 0.07911, 0.7283, 0.26952, 0.95255, 0.56931, 0.98823, 0.90962, 0.92197, 1, 0.50404, 0.94608, 0.17784, 0.76378, 0.00455, 0.50855, 0, 0.20875, 0.12178, 0.56121, 0.48365 ], + "triangles": [ 3, 2, 10, 4, 3, 10, 2, 1, 10, 4, 10, 5, 10, 8, 7, 9, 8, 10, 1, 0, 10, 10, 6, 5, 0, 9, 10, 10, 7, 6 ], + "vertices": [ 1, 40, -34.26, -6.05, 1, 1, 42, -30.63, 5.01, 1, 2, 42, -23.2, -1.94, 0.5, 43, 22.88, -4.3, 0.5, 2, 42, -11.51, -3.04, 0.61, 43, 11.91, -0.13, 0.39, 1, 42, 1.76, -0.99, 1, 2, 40, 4.74, -9.52, 0.54, 42, 5.29, 11.97, 0.46, 1, 40, 2.64, 0.59, 1, 2, 40, -4.47, 5.96, 0.35, 41, 5.55, -4.97, 0.65, 2, 40, -14.42, 6.1, 0.22, 41, 15.34, -3.16, 0.78, 2, 40, -26.12, 2.33, 0.49, 41, 26.07, 2.84, 0.51, 2, 40, -12.37, -8.89, 0.71, 43, 8.05, -15.29, 0.29 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 39, + "height": 31 + } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { + "name": "girl/front-eyebrow", + "path": "girl-blue-cape/front-eyebrow", + "x": 10.82, + "y": 8.92, + "rotation": -3.58, + "width": 36, + "height": 23 + } + }, + "eye-front-iris": { + "eye-front-iris": { "name": "girl/eye-iris-front", "path": "girl-blue-cape/eye-iris-front", "x": 0.22, "y": -0.71, "width": 36, "height": 35 } + }, + "eye-front-low-eyelid": { + "eye-front-low-eyelid": { + "name": "girl/eye-front-low-eyelid", + "type": "mesh", + "path": "girl-blue-cape/eye-front-low-eyelid", + "uvs": [ 0.07038, 0, 0, 0.43773, 0.24154, 0.94046, 0.64093, 0.92609, 1, 0.39464, 1, 0.00682, 0.8516, 0, 0.61899, 0.36591, 0.30738, 0.39464 ], + "triangles": [ 8, 7, 3, 2, 8, 3, 2, 1, 8, 6, 5, 4, 7, 6, 4, 1, 0, 8, 3, 7, 4 ], + "vertices": [ 1, 36, -0.25, 5.3, 1, 1, 36, -2.79, 0.49, 1, 1, 37, 6.69, -3.95, 1, 2, 36, 20.29, -4.89, 0.61, 37, 20.82, -1.32, 0.39, 1, 36, 33.21, 0.96, 1, 1, 36, 33.21, 5.23, 1, 1, 36, 27.87, 5.3, 1, 2, 36, 19.5, 1.28, 0.61, 37, 18.99, 4.61, 0.39, 1, 37, 7.99, 2.37, 1 ], + "hull": 9, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 0, 16 ], + "width": 36, + "height": 11 + } + }, + "eye-front-pupil": { + "eye-front-pupil": { + "name": "girl/eye-front-pupil", + "path": "girl-blue-cape/eye-front-pupil", + "x": -0.04, + "y": -0.47, + "scaleX": 1.2, + "scaleY": 1.2, + "width": 17, + "height": 17 + } + }, + "eye-front-up-eyelid": { + "eye-front-up-eyelid": { + "name": "girl/eye-front-up-eyelid", + "type": "mesh", + "path": "girl-blue-cape/eye-front-up-eyelid", + "uvs": [ 0.32251, 0.43387, 0.36464, 0.94737, 0.28564, 1, 0.16714, 0.73859, 0.15924, 0.42823, 0, 0.24201, 0, 0, 0.22771, 0.2138, 0.41731, 0, 0.66747, 0, 0.88604, 0.23637, 1, 0.54673, 1, 0.81194, 0.86497, 0.79501, 0.74121, 0.4903, 0.61217, 0.35487, 0.45417, 0.35487 ], + "triangles": [ 14, 15, 10, 2, 3, 1, 3, 0, 1, 13, 11, 12, 13, 14, 11, 3, 4, 0, 14, 10, 11, 0, 4, 7, 4, 5, 7, 5, 6, 7, 16, 0, 7, 7, 8, 16, 10, 15, 9, 9, 15, 8, 15, 16, 8 ], + "vertices": [ 2, 35, 6.87, 1.33, 0.47507, 34, 6.4, 2.84, 0.52493, 2, 35, 6.12, -13.25, 0.09298, 34, 8.93, -11.54, 0.90702, 1, 34, 4.19, -13.01, 1, 1, 34, -2.92, -5.69, 1, 2, 35, -2.64, 3.68, 0.0415, 34, -3.4, 3, 0.9585, 1, 34, -12.95, 8.21, 1, 1, 34, -12.95, 14.99, 1, 2, 35, 2.71, 8.61, 0.27883, 34, 0.71, 9, 0.72117, 1, 35, 15.14, 11.9, 1, 2, 35, 29.76, 8.54, 0.65, 34, 27.1, 14.99, 0.35, 2, 35, 41.06, -0.85, 0.28137, 34, 40.21, 8.37, 0.71863, 1, 34, 47.05, -0.32, 1, 1, 34, 47.05, -7.75, 1, 2, 35, 36.33, -15.81, 0.07124, 34, 38.95, -7.27, 0.92876, 2, 35, 31, -5.83, 0.45, 34, 31.52, 1.26, 0.55, 2, 35, 24.31, -0.4, 0.65, 34, 23.78, 5.05, 0.35, 2, 35, 15.07, 1.72, 0.76, 34, 14.3, 5.05, 0.24 ], + "hull": 17, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 0, 32 ], + "width": 60, + "height": 28 + } + }, + "eye-front-up-eyelid-back": { + "eye-front-up-eyelid-back": { + "name": "girl/eye-front-up-eyelid-back", + "type": "mesh", + "path": "girl-blue-cape/eye-front-up-eyelid-back", + "uvs": [ 0.05111, 0.59525, 0.31445, 0.34389, 0.48174, 0.29362, 0.69861, 0.43007, 0.81323, 0.65271, 0.90617, 1, 1, 1, 1, 0.74607, 0.93406, 0.48034, 0.78845, 0.18589, 0.62115, 0, 0.49104, 0, 0.26798, 0, 0, 0.28644, 0, 0.48752 ], + "triangles": [ 3, 2, 9, 2, 1, 12, 5, 7, 6, 5, 4, 7, 4, 8, 7, 4, 3, 8, 0, 14, 1, 14, 13, 1, 3, 9, 8, 10, 9, 2, 10, 2, 11, 1, 13, 12, 2, 12, 11 ], + "vertices": [ 1, 78, -25.28, -10.9, 1, 1, 35, 14.1, 7.02, 1, 1, 35, 22.66, 6.19, 1, 2, 78, 7.58, -7.27, 0.37, 35, 32.77, 0.79, 0.63, 2, 78, 13.43, -12.17, 0.71, 35, 37.37, -5.29, 0.29, 1, 78, 18.17, -19.81, 1, 1, 78, 22.96, -19.81, 1, 1, 78, 22.96, -14.22, 1, 1, 78, 19.59, -8.37, 1, 1, 78, 12.17, -1.9, 1, 1, 78, 3.63, 2.19, 1, 1, 78, -3, 2.19, 1, 1, 78, -14.38, 2.19, 1, 1, 78, -28.04, -4.11, 1, 1, 78, -28.04, -8.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 51, + "height": 22 + } + }, + "eye-front-white": { + "eye-front-white": { + "name": "girl/eye-white-front", + "type": "mesh", + "path": "girl-blue-cape/eye-white-front", + "uvs": [ 0, 0.13677, 0.03631, 0.56139, 0.18641, 0.96133, 0.54191, 0.97121, 0.90531, 0.87739, 1, 0.54164, 1, 0.24046, 0.80425, 0.13009, 0.57351, 0, 0.25751, 0.00346, 0.47082, 0.52682 ], + "triangles": [ 3, 2, 10, 2, 1, 10, 4, 3, 10, 4, 10, 5, 7, 6, 5, 1, 0, 10, 10, 9, 8, 10, 8, 7, 10, 7, 5, 0, 9, 10 ], + "vertices": [ 1, 34, 3.55, 4.71, 1, 2, 34, 5, -8.88, 0.5, 36, -3.97, 10.98, 0.5, 2, 36, 2.03, -1.82, 0.36, 37, 2.31, -1.44, 0.64, 2, 36, 16.25, -2.14, 0.32, 37, 16.37, 0.69, 0.68, 1, 36, 30.79, 0.87, 1, 1, 36, 34.57, 11.61, 1, 1, 34, 43.55, 1.39, 1, 2, 35, 35.91, -3.2, 0.27, 34, 35.72, 4.92, 0.73, 2, 35, 27.85, 2.93, 0.54, 34, 26.49, 9.09, 0.46, 2, 35, 15.51, 5.65, 0.62, 34, 13.85, 8.98, 0.38, 2, 35, 20.07, -12.59, 0.81, 37, 11.13, 14.21, 0.19 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 16, 18, 0, 18, 12, 14, 14, 16 ], + "width": 40, + "height": 32 + } + }, + "hair-back": { + "hair-back": { "name": "girl-blue-cape/hair-back", "x": 77.53, "y": 2.96, "rotation": -87.57, "width": 234, "height": 196 } + }, + "hair-bangs": { + "hair-bangs": { + "name": "girl/hair-bangs", + "type": "mesh", + "path": "girl-blue-cape/hair-bangs", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "girl/hair-bangs", + "type": "mesh", + "path": "girl-blue-cape/hair-bangs", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch2", + "type": "mesh", + "path": "girl/hair-patch", + "color": "ff6578ff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "path": "girl-blue-cape/hair-side", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-side-back": { + "hair-side-back": { + "name": "girl/hair-head-side-back", + "type": "mesh", + "path": "girl-blue-cape/hair-head-side-back", + "uvs": [ 0.17374, 0.1545, 0.22967, 0.37557, 0.21289, 0.61586, 0, 0.86256, 0, 1, 0.25205, 1, 0.45899, 0.87537, 0.69391, 0.87858, 0.80577, 0.69916, 0.82815, 0.52615, 1, 0.46528, 0.99594, 0.21858, 0.73306, 0.04236, 0.53171, 0, 0.27442, 0.04877, 0.51493, 0.5678, 0.59323, 0.17692, 0.73306, 0.35954, 0.46459, 0.76964 ], + "triangles": [ 17, 11, 10, 15, 1, 16, 16, 14, 13, 14, 16, 1, 1, 0, 14, 16, 12, 17, 17, 12, 11, 16, 13, 12, 15, 16, 17, 2, 1, 15, 5, 18, 6, 5, 4, 3, 6, 18, 7, 7, 18, 8, 5, 3, 2, 18, 5, 2, 18, 15, 8, 18, 2, 15, 8, 15, 9, 9, 17, 10, 15, 17, 9 ], + "vertices": [ 2, 47, 44.16, -9.72, 0.072, 6, 75.71, -87.13, 0.928, 2, 47, 65.84, -17.42, 0.21564, 6, 53.1, -91.39, 0.78436, 2, 47, 87.28, -29.83, 0.5439, 6, 28.33, -91.45, 0.4561, 3, 47, 103.9, -52.79, 0.8752, 6, 2.41, -79.98, 0.09988, 30, 134.21, -69.81, 0.02493, 3, 47, 116.42, -59.39, 0.89423, 6, -11.73, -80.58, 0.014, 30, 134.21, -83.97, 0.09177, 3, 47, 123.36, -46.24, 0.87011, 6, -11.1, -95.43, 0.00989, 30, 149.08, -83.97, 0.12, 3, 47, 117.69, -29.45, 0.77082, 6, 2.24, -107.09, 0.0941, 30, 161.29, -71.13, 0.13508, 3, 47, 124.45, -17.35, 0.86922, 6, 2.5, -120.95, 0.00701, 30, 175.15, -71.46, 0.12377, 3, 47, 111.18, -2.89, 0.73582, 6, 21.24, -126.76, 0.12392, 30, 181.75, -52.98, 0.14026, 3, 47, 96.03, 6.59, 0.55463, 6, 39.1, -127.33, 0.32878, 30, 183.07, -35.16, 0.11659, 3, 47, 95.21, 18.48, 0.54495, 6, 45.79, -137.19, 0.37264, 30, 193.21, -28.89, 0.08241, 2, 47, 72.62, 30.12, 0.39164, 6, 71.17, -135.87, 0.60836, 2, 47, 49.33, 24.86, 0.13442, 6, 88.65, -119.61, 0.86558, 2, 47, 39.93, 16.38, 0.03367, 6, 92.5, -107.55, 0.96633, 2, 47, 37.3, 0.61, 0.176, 6, 86.84, -92.6, 0.824, 3, 47, 91.21, -11.76, 0.52, 6, 34.03, -109.04, 0.39641, 30, 164.59, -39.45, 0.08358, 2, 47, 57.74, 11.1, 0.24029, 6, 74.45, -111.95, 0.75971, 3, 47, 78.23, 9.62, 0.39663, 6, 56.01, -120.99, 0.565, 30, 177.46, -18, 0.03837, 3, 47, 108.21, -24.08, 0.64328, 6, 13.13, -106.96, 0.22492, 30, 161.62, -60.24, 0.1318 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 59, + "height": 103 + } + }, + "hair-side-front": { + "hair-side-front": { + "name": "girl/hair-head-side-front", + "type": "mesh", + "path": "girl-blue-cape/hair-head-side-front", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 6, 5.69, 38.25, 1, 1, 6, 2.21, 120.17, 1, 1, 6, 85.14, 123.69, 1, 1, 6, 88.61, 41.77, 1 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 82, + "height": 83 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "path": "girl-blue-cape/hair-side", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hand-back": { + "hand-back-fingers": { + "name": "girl/hand-front-fingers", + "path": "girl-blue-cape/hand-front-fingers", + "x": 11.59, + "y": 1.97, + "rotation": 90, + "width": 38, + "height": 42 + } + }, + "hand-front": { + "hand-front-fingers": { + "name": "girl/hand-front-fingers", + "path": "girl-blue-cape/hand-front-fingers", + "x": 11.59, + "y": 1.97, + "rotation": 90, + "width": 38, + "height": 42 + } + }, + "leg-back": { + "leg-back": { + "name": "girl/leg-front", + "type": "mesh", + "path": "girl-blue-cape/leg-front", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 0, 48, 42, 42, 48, 31, 42, 31, 33, 34, 0, 42, 34, 42, 33, 31, 32, 33, 31, 48, 30, 41, 12, 13, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48 ], + "vertices": [ 3, 94, 22.95, -22.02, 0.22728, 95, 59.29, -22, 0.00272, 103, -19.33, 11.79, 0.77, 3, 94, 5.73, -22.61, 0.49142, 95, 41.79, -22.61, 0.23858, 103, -19.74, 29.07, 0.27, 4, 94, -10.55, -23.17, 0.11127, 95, 25.25, -23.18, 0.76279, 96, 60.87, -23.13, 0.00594, 103, -20.15, 45.45, 0.12, 2, 95, 5.13, -23.87, 0.69465, 96, 41.05, -23.86, 0.30535, 3, 95, -15.89, -24.56, 0.09408, 96, 20.35, -24.59, 0.86299, 97, 56.72, -24.52, 0.04292, 2, 96, 1.98, -25.21, 0.55425, 97, 38.06, -25.21, 0.44575, 3, 96, -19.09, -25.88, 0.05256, 97, 16.64, -25.95, 0.87891, 98, 52.7, -25.89, 0.06853, 3, 96, -33.74, -26.34, 3.3E-4, 97, 1.76, -26.46, 0.67227, 98, 37.81, -26.45, 0.32739, 2, 97, -3.17, -22.02, 0.47188, 98, 32.86, -22.03, 0.52812, 3, 97, -22.68, -22.46, 0.0172, 98, 13.36, -22.55, 0.87617, 99, 49.14, -22.52, 0.10662, 3, 98, -7.93, -23.09, 0.23789, 99, 28.2, -23.11, 0.75909, 100, 64.58, -23.1, 0.00302, 3, 98, -27.79, -23.57, 0.00312, 99, 8.67, -23.62, 0.75495, 100, 44.76, -23.62, 0.24193, 3, 99, -12.93, -24.2, 0.09944, 100, 22.84, -24.2, 0.87238, 101, 58.46, -24.21, 0.02818, 2, 100, 0.77, -24.79, 0.47358, 101, 36.71, -24.79, 0.52642, 1, 101, 1.72, -25.72, 1, 1, 101, -25.98, -26.46, 1, 1, 101, -26.33, 25.98, 1, 1, 101, -0.53, 25.24, 1, 2, 100, -3.13, 24.27, 0.37555, 101, 32.87, 24.27, 0.62445, 3, 99, -15.75, 23.6, 0.0536, 100, 19.96, 23.6, 0.92085, 101, 55.62, 23.59, 0.02556, 2, 99, 5.77, 22.96, 0.65378, 100, 41.79, 22.97, 0.34622, 3, 98, -11.12, 22.43, 0.12254, 99, 24.96, 22.4, 0.86248, 100, 61.27, 22.42, 0.01499, 3, 97, -26.03, 21.9, 0.00839, 98, 9.83, 21.8, 0.78745, 99, 45.58, 21.82, 0.20415, 3, 97, -7.13, 21.27, 0.362, 98, 28.73, 21.24, 0.63637, 99, 64.17, 21.3, 0.00163, 2, 97, -6.17, 28.11, 0.5025, 98, 29.67, 28.08, 0.4975, 3, 96, -21.38, 27.22, 0.03848, 97, 14.13, 27.14, 0.83871, 98, 49.97, 27.2, 0.12281, 3, 96, -2.33, 26.26, 0.40865, 97, 33.49, 26.25, 0.59016, 98, 69.34, 26.38, 0.00119, 3, 95, -20.14, 25.43, 0.05003, 96, 16.06, 25.39, 0.84798, 97, 52.19, 25.45, 0.10198, 2, 95, 1.24, 24.42, 0.56331, 96, 37.12, 24.42, 0.43669, 4, 94, -15.67, 23.56, 0.04308, 95, 20, 23.55, 0.81142, 96, 55.61, 23.58, 0.0255, 103, 26.63, 50.22, 0.12, 3, 94, 0.26, 22.8, 0.33337, 95, 36.2, 22.8, 0.39663, 103, 25.72, 34.13, 0.27, 3, 94, 18.48, 21.95, 0.22212, 95, 54.71, 21.97, 0.00788, 103, 24.69, 15.83, 0.77, 1, 103, 36.21, 8.95, 1, 1, 103, 36.08, -3.91, 1, 1, 103, -18.97, -3.34, 1, 1, 101, 0.45, 0, 1, 1, 98, 31.4, 0, 1, 1, 98, 11.41, 0, 1, 1, 99, 26.57, 0, 1, 1, 99, 7.43, 0, 1, 1, 100, 20.94, 0, 1, 1, 101, 34.45, 0, 1, 2, 94, 23.32, 0.24, 0.23, 103, 2.93, 11.2, 0.77, 1, 97, 15.67, 0.04, 1, 2, 96, -0.81, 0.07, 0.36735, 97, 35.13, 0.07, 0.63265, 1, 96, 18, 0.1, 1, 2, 95, 2.51, 0.14, 0.90776, 96, 38.42, 0.14, 0.09224, 2, 95, 22.3, 0.17, 0.88, 103, 3.23, 48.15, 0.12, 3, 94, 2.19, 0.2, 0.62933, 95, 38.18, 0.2, 0.10067, 103, 3.11, 32.41, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "leg-front": { + "leg-front": { + "name": "girl/leg-front", + "type": "mesh", + "path": "girl-blue-cape/leg-front", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 31, 48, 30, 0, 48, 42, 42, 48, 31, 34, 42, 33, 31, 32, 33, 42, 31, 33, 34, 0, 42, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 41, 12, 13, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15 ], + "vertices": [ 3, 28, 22.96, -22.02, 0.22658, 27, 58.91, -22.02, 0.00342, 102, -21, 12.47, 0.77, 3, 28, 5.76, -22.61, 0.49273, 27, 41.71, -22.61, 0.23727, 102, -21.71, 29.73, 0.27, 4, 28, -10.68, -23.18, 0.11707, 27, 25.27, -23.18, 0.76681, 26, 61.22, -23.18, 0.00612, 102, -22.41, 46.07, 0.11, 2, 27, 5.13, -23.87, 0.6994, 26, 41.08, -23.87, 0.3006, 3, 27, -15.62, -24.58, 0.10595, 26, 20.33, -24.58, 0.85365, 25, 56.28, -24.58, 0.0404, 3, 27, -33.92, -25.21, 7.9E-4, 26, 2.03, -25.21, 0.57156, 25, 37.98, -25.21, 0.42765, 3, 26, -19.29, -25.94, 0.05654, 25, 16.66, -25.94, 0.87764, 24, 52.61, -25.94, 0.06582, 3, 26, -34.16, -26.46, 4.4E-4, 25, 1.79, -26.46, 0.67282, 24, 37.74, -26.46, 0.32674, 2, 25, -3.13, -22.03, 0.47104, 24, 32.82, -22.03, 0.52896, 3, 25, -22.61, -22.55, 0.01665, 24, 13.34, -22.55, 0.87142, 23, 49.29, -22.55, 0.11193, 3, 24, -7.79, -23.11, 0.22064, 23, 28.17, -23.11, 0.77569, 22, 64.12, -23.11, 0.00367, 3, 24, -27.25, -23.62, 0.00219, 23, 8.7, -23.62, 0.77556, 22, 44.65, -23.62, 0.22225, 3, 21, 58.81, -24.2, 0.0114, 23, -13.09, -24.2, 0.12046, 22, 22.86, -24.2, 0.86813, 2, 21, 36.72, -24.79, 0.42237, 22, 0.77, -24.79, 0.57763, 2, 21, 1.72, -25.72, 0.99849, 22, -34.23, -25.72, 0.00151, 1, 21, -25.98, -26.46, 1, 1, 21, -26.33, 25.98, 1, 2, 21, -0.53, 25.24, 0.99997, 22, -36.48, 25.24, 3.0E-5, 2, 21, 32.85, 24.27, 0.56274, 22, -3.1, 24.27, 0.43726, 3, 21, 55.91, 23.6, 0.02334, 23, -15.99, 23.6, 0.05774, 22, 19.96, 23.6, 0.91892, 3, 24, -30.16, 22.96, 3.0E-4, 23, 5.79, 22.96, 0.6752, 22, 41.74, 22.96, 0.3245, 3, 24, -11, 22.41, 0.14886, 23, 24.95, 22.41, 0.84172, 22, 60.9, 22.41, 0.00941, 3, 25, -26.16, 21.8, 0.00663, 24, 9.79, 21.8, 0.80794, 23, 45.74, 21.8, 0.18543, 3, 25, -7.19, 21.25, 0.35697, 24, 28.76, 21.25, 0.64235, 23, 64.72, 21.25, 6.7E-4, 2, 25, -6.22, 28.1, 0.49898, 24, 29.73, 28.1, 0.50102, 3, 26, -21.82, 27.15, 0.04097, 25, 14.13, 27.15, 0.83939, 24, 50.08, 27.15, 0.11963, 3, 26, -2.4, 26.25, 0.4338, 25, 33.55, 26.25, 0.56533, 24, 69.5, 26.25, 8.7E-4, 3, 27, -19.88, 25.4, 0.04332, 26, 16.07, 25.4, 0.87101, 25, 52.02, 25.4, 0.08567, 2, 27, 1.21, 24.42, 0.5677, 26, 37.16, 24.42, 0.4323, 4, 28, -15.94, 23.55, 0.03449, 27, 20.01, 23.55, 0.83346, 26, 55.96, 23.55, 0.02204, 102, 24.27, 51.7, 0.11, 3, 28, 0.25, 22.8, 0.31657, 27, 36.2, 22.8, 0.41343, 102, 23.66, 35.6, 0.27, 3, 28, 18.49, 21.95, 0.22027, 27, 54.44, 21.95, 0.00973, 102, 22.94, 17.27, 0.77, 1, 102, 34.58, 10.59, 1, 1, 102, 34.67, -2.26, 1, 1, 102, -20.38, -2.65, 1, 1, 21, 0.45, 0, 1, 1, 24, 31.4, 0, 1, 1, 24, 11.41, 0, 1, 1, 23, 26.57, 0, 1, 1, 23, 7.43, 0, 1, 1, 22, 20.94, 0, 1, 1, 21, 34.45, 0, 1, 2, 28, 23.32, 0.24, 0.23, 102, 1.26, 12.26, 0.77, 1, 25, 15.67, 0.04, 1, 2, 26, -0.81, 0.07, 0.37007, 25, 35.14, 0.07, 0.62993, 1, 26, 18, 0.1, 1, 2, 27, 2.5, 0.14, 0.92465, 26, 38.45, 0.14, 0.07535, 2, 27, 22.3, 0.17, 0.89, 102, 0.91, 49.21, 0.11, 3, 28, 2.2, 0.2, 0.65329, 27, 38.15, 0.2, 0.07671, 102, 1.08, 33.46, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-blue-cape/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 }, + "mouth-smile": { "name": "girl/mouth-smile", "path": "girl-blue-cape/mouth-smile", "x": -4.12, "y": 2.56, "width": 57, "height": 13 } + }, + "neck": { + "neck": { "name": "girl-spring-dress/neck", "x": 27.19, "y": -3.15, "rotation": -91.34, "width": 39, "height": 63 } + }, + "nose": { + "nose": { + "name": "girl/nose", + "type": "mesh", + "path": "girl-blue-cape/nose", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 6, 57.27, -63, 0.68, 29, 14.7, -17.7, 0.32, 2, 6, 56.34, -41.02, 0.73, 29, -7.3, -17.7, 0.27, 2, 6, 69.33, -40.47, 0.73, 29, -7.3, -4.7, 0.27, 2, 6, 70.26, -62.45, 0.68, 29, 14.7, -4.7, 0.32 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 22, + "height": 13 + } + }, + "ribbon-body": { + "ribbon-body": { "name": "girl-blue-cape/body-ribbon", "x": 18.42, "y": -33.29, "rotation": -94.33, "width": 100, "height": 75 } + }, + "sleeve-front": { + "sleeve-front": { + "name": "girl-blue-cape/sleeve-front", + "type": "mesh", + "uvs": [ 0.39189, 0, 0.14439, 0.01666, 0.15901, 0.10249, 0.17598, 0.19757, 0.191, 0.28175, 0.205, 0.3602, 0.22028, 0.44586, 0.23432, 0.52454, 0.2491, 0.60734, 0.22371, 0.71965, 0.1539, 0.82364, 0, 0.92776, 0, 0.99154, 0.23074, 0.95687, 0.37352, 1, 0.45602, 1, 0.6591, 0.94994, 1, 0.96658, 1, 0.91944, 0.88122, 0.81129, 0.81141, 0.71284, 0.76064, 0.59498, 0.73905, 0.50606, 0.71901, 0.4235, 0.7003, 0.34643, 0.68005, 0.26299, 0.65973, 0.17927, 0.63519, 0.07818, 0.61151, 0, 0.43698, 0.82821, 0.25612, 0.89754, 0.6242, 0.89754, 0.43118, 0.08805, 0.44237, 0.51902, 0.4401, 0.43175, 0.43805, 0.35262, 0.436, 0.27359, 0.43377, 0.18768, 0.44092, 0.60224, 0.43884, 0.72139 ], + "triangles": [ 13, 30, 14, 15, 14, 29, 12, 11, 13, 15, 31, 16, 31, 15, 29, 14, 30, 29, 16, 18, 17, 13, 11, 30, 16, 31, 18, 11, 10, 30, 31, 19, 18, 30, 10, 29, 31, 29, 19, 6, 5, 35, 34, 35, 24, 35, 5, 36, 5, 4, 36, 35, 25, 24, 35, 36, 25, 36, 4, 37, 36, 26, 25, 7, 6, 34, 33, 34, 23, 34, 6, 35, 34, 24, 23, 39, 38, 21, 39, 8, 38, 38, 8, 33, 38, 22, 21, 38, 33, 22, 33, 8, 7, 33, 7, 34, 33, 23, 22, 10, 9, 29, 29, 20, 19, 29, 39, 20, 29, 9, 39, 39, 21, 20, 9, 8, 39, 4, 3, 37, 36, 37, 26, 37, 3, 32, 3, 2, 32, 37, 27, 26, 37, 32, 27, 2, 0, 32, 2, 1, 0, 32, 28, 27, 32, 0, 28 ], + "vertices": [ 1, 11, -20.49, -4.66, 1, 1, 11, -16.63, -30.41, 1, 2, 11, 3.65, -28.95, 0.98956, 15, -30.38, -28.94, 0.01044, 2, 11, 26.12, -27.25, 0.69654, 15, -7.51, -27.25, 0.30346, 3, 11, 46.01, -25.75, 0.12833, 14, -20.67, -25.79, 0.04417, 15, 12.75, -25.75, 0.8275, 3, 11, 64.55, -24.35, 5.4E-4, 14, -1.82, -24.36, 0.45092, 15, 31.62, -24.35, 0.54855, 3, 13, -14.52, -22.88, 0.09244, 14, 18.77, -22.79, 0.86912, 15, 52.23, -22.83, 0.03844, 2, 13, 4.3, -21.33, 0.67682, 14, 37.68, -21.35, 0.32318, 3, 12, -9.39, -19.75, 0.17407, 13, 24.11, -19.7, 0.82329, 14, 57.58, -19.84, 0.00265, 3, 12, 17.84, -22.12, 0.96018, 13, 51, -22.22, 0.02472, 130, 19.81, 52.59, 0.0151, 2, 12, 43.11, -29.14, 0.51751, 130, 12.55, 28.05, 0.48249, 2, 12, 68.49, -44.89, 0.00319, 130, -3.45, 3.48, 0.99681, 1, 130, -3.45, -11.57, 1, 1, 130, 20.54, -3.4, 1, 1, 130, 35.39, -13.58, 1, 1, 130, 43.97, -13.58, 1, 1, 130, 65.09, -1.77, 1, 1, 130, 100.55, -5.7, 1, 2, 12, 65.42, 59.08, 0.01006, 130, 100.55, 5.43, 0.98994, 3, 12, 39.35, 46.47, 0.40219, 13, 72.61, 46.27, 0.00826, 130, 88.19, 30.95, 0.58955, 3, 12, 15.57, 38.98, 0.70901, 13, 49.08, 38.9, 0.15192, 130, 80.93, 54.19, 0.13907, 4, 12, -12.93, 33.42, 0.25073, 13, 20.9, 33.49, 0.66465, 14, 54.67, 33.36, 0.08185, 130, 75.65, 82, 0.00277, 4, 12, -34.44, 30.96, 0.01846, 13, -0.37, 31.14, 0.48291, 14, 33.3, 31.14, 0.4903, 15, 66.88, 31.08, 0.00833, 3, 13, -20.12, 28.96, 0.08139, 14, 13.46, 29.08, 0.74583, 15, 47.02, 29.06, 0.17278, 4, 11, 61.45, 27.17, 0.00108, 13, -38.56, 26.93, 7.5E-4, 14, -5.07, 27.16, 0.33502, 15, 28.47, 27.17, 0.66314, 3, 11, 41.73, 25.13, 0.17136, 14, -25.12, 25.07, 0.01658, 15, 8.4, 25.12, 0.81206, 2, 11, 21.95, 23.07, 0.80027, 15, -11.75, 23.07, 0.19973, 1, 11, -1.94, 20.59, 1, 1, 11, -20.42, 18.18, 1, 2, 12, 43.91, 0.31, 0.7298, 130, 41.99, 26.96, 0.2702, 2, 12, 60.9, -18.33, 0.15731, 130, 23.18, 10.61, 0.84269, 2, 12, 60.51, 19.95, 0.14683, 130, 61.46, 10.6, 0.85317, 1, 11, 0.33, -0.63, 1, 1, 13, 2.87, 0.3, 1, 1, 14, 15.41, 0.07, 1, 1, 15, 29.88, -0.11, 1, 2, 14, -22.6, -0.31, 0, 15, 10.87, -0.27, 1, 1, 11, 23.87, -0.43, 1, 3, 12, -10.83, 0.19, 2.3E-4, 13, 22.79, 0.24, 0.99974, 14, 56.38, 0.11, 3.0E-5, 3, 12, 18.04, 0.25, 0.9998, 13, 51.31, 0.16, 5.0E-5, 130, 42.18, 52.17, 1.5E-4 ], + "hull": 29, + "edges": [ 0, 2, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 56, 36, 62, 60, 22, 0, 64, 2, 4, 64, 4, 54, 56, 64, 54, 14, 16, 14, 66, 42, 44, 66, 44, 12, 14, 68, 66, 12, 68, 44, 46, 68, 46, 46, 48, 70, 68, 48, 70, 10, 12, 70, 10, 8, 10, 72, 70, 8, 72, 48, 50, 72, 50, 50, 52, 52, 54, 64, 74, 74, 72, 52, 74, 4, 6, 6, 8, 74, 6, 76, 66, 76, 42, 76, 16, 58, 78, 78, 76, 40, 78, 38, 58, 58, 20 ], + "width": 104, + "height": 238 + } + }, + "sleeve-inner-back": { + "sleeve-inner-back": { + "name": "girl-blue-cape/sleeve-back", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 1, 131, 5.56, 15.9, 1, 2, 131, 88.56, 15.9, 0.93003, 83, 41.53, -33.45, 0.06997, 2, 131, 88.56, -41.1, 0.44316, 83, -15.47, -33.45, 0.55684, 2, 131, 5.56, -41.1, 0.60086, 83, -15.47, 49.55, 0.39914 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 83, + "height": 57 + } + }, + "sleeve-inner-front": { + "sleeve-inner-front": { + "name": "girl-blue-cape/sleeve-back", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 130, 91.43, -14.89, 1, 2, 130, 8.43, -14.88, 1, 12, 87.21, -32.83, 0, 2, 130, 8.42, 41.64, 0.34345, 12, 29.2, -33.4, 0.65655, 2, 130, 91.42, 41.63, 0.5791, 12, 28.35, 49.6, 0.4209 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 83, + "height": 57 + } + } + } + }, + { + "name": "full-skins/girl-spring-dress", + "bones": [ "cape-red-back-inside", "cape-red-back-outside", "cape-back-rotator", "cape-red-front-inside", "cape-red-front-outside", "cape-front-rotator", "skirt-control", "skirt-control-back", "skirt-control-back-down", "skirt-control-front", "skirt-control-front-down", "skirt-control-middle", "skirt-control-up", "skirt-rotation-back", "skirt-rotation-front" ], + "transform": [ "skirt-rotation-back", "skirt-rotation-front" ], + "attachments": { + "arm-back": { + "arm-back": { + "name": "girl-spring-dress/arm-front", + "type": "mesh", + "uvs": [ 1, 1, 0.51047, 1, 0, 1, 0, 0.90909, 0, 0.81818, 0, 0.72727, 0, 0.63636, 0, 0.54545, 0, 0.45455, 0, 0.36364, 0, 0.27273, 0, 0.18182, 0, 0.09091, 0, 0, 0.53, 0, 1, 0, 1, 0.09091, 1, 0.18182, 1, 0.27273, 1, 0.36364, 1, 0.45455, 1, 0.54545, 1, 0.63636, 1, 0.72727, 1, 0.81818, 1, 0.90909, 0.52825, 0.08961, 0.52645, 0.18177, 0.52476, 0.26801, 0.52291, 0.36314, 0.52111, 0.45529, 0.51928, 0.54893, 0.51759, 0.63514, 0.51585, 0.72434, 0.5139, 0.82396, 0.51219, 0.91165 ], + "triangles": [ 10, 11, 28, 28, 27, 18, 29, 10, 28, 9, 10, 29, 28, 18, 19, 29, 28, 19, 29, 19, 20, 29, 30, 9, 30, 8, 9, 30, 29, 20, 30, 20, 21, 30, 31, 8, 32, 22, 23, 6, 7, 32, 32, 31, 22, 32, 7, 31, 31, 21, 22, 31, 7, 8, 33, 6, 32, 31, 30, 21, 5, 6, 33, 34, 4, 5, 33, 23, 24, 33, 34, 5, 34, 33, 24, 33, 32, 23, 34, 24, 25, 34, 35, 4, 35, 3, 4, 35, 34, 25, 1, 2, 3, 35, 1, 3, 35, 25, 0, 1, 35, 0, 26, 13, 14, 12, 13, 26, 14, 15, 16, 26, 14, 16, 27, 12, 26, 11, 12, 27, 26, 16, 17, 27, 26, 17, 28, 11, 27, 27, 17, 18 ], + "vertices": [ 1, 89, 35.41, 16.56, 1, 1, 89, 35.61, -0.08, 1, 1, 89, 35.83, -17.44, 1, 2, 89, 15.82, -17.69, 0.97415, 88, 49.68, -17.72, 0.02585, 2, 89, -4.19, -17.94, 0.30335, 88, 29.15, -17.93, 0.69665, 3, 89, -24.19, -18.19, 3.5E-4, 88, 8.61, -18.13, 0.83036, 87, 41.9, -18.17, 0.16929, 2, 88, -11.93, -18.33, 0.24, 87, 21.61, -18.27, 0.76, 2, 87, 1.31, -18.36, 0.8, 86, 34.7, -18.37, 0.2, 3, 87, -18.99, -18.46, 0.01161, 86, 14.31, -18.35, 0.93999, 85, 47.78, -18.38, 0.0484, 2, 86, -6.06, -18.32, 0.22079, 85, 27.38, -18.31, 0.77921, 2, 84, 40.35, -18.25, 0.20487, 85, 6.98, -18.25, 0.79513, 2, 84, 20.32, -18.19, 0.9496, 85, -13.42, -18.19, 0.0504, 1, 84, 0.28, -18.13, 1, 1, 84, -19.75, -18.07, 1, 1, 84, -19.7, -0.05, 1, 1, 84, -19.65, 15.93, 1, 1, 84, 0.38, 15.87, 1, 2, 84, 20.42, 15.81, 0.9733, 85, -13.31, 15.81, 0.0267, 2, 84, 40.45, 15.75, 0.16827, 85, 7.09, 15.75, 0.83173, 2, 86, -6.02, 15.68, 0.16665, 85, 27.49, 15.69, 0.83335, 3, 87, -19.15, 15.54, 0.00166, 86, 14.35, 15.65, 0.96514, 85, 47.89, 15.62, 0.0332, 2, 87, 1.15, 15.63, 0.5617, 86, 34.74, 15.63, 0.4383, 2, 88, -12.27, 15.67, 0.04304, 87, 21.45, 15.73, 0.95696, 2, 88, 8.27, 15.87, 0.86585, 87, 41.74, 15.83, 0.13415, 2, 89, -4.6, 16.06, 0.21057, 88, 28.8, 16.07, 0.78943, 2, 89, 15.4, 16.31, 0.97298, 88, 49.34, 16.27, 0.02702, 1, 84, 0.05, -0.17, 1, 1, 84, 20.36, -0.29, 1, 2, 84, 39.37, -0.4, 0.00128, 85, 5.99, -0.4, 0.99872, 1, 85, 27.33, -0.53, 1, 1, 86, 14.5, -0.63, 1, 2, 87, 2, -0.71, 0.95682, 86, 35.5, -0.72, 0.04318, 2, 88, -12.38, -0.74, 3.4E-4, 87, 21.25, -0.67, 0.99966, 2, 88, 7.77, -0.6, 0.99759, 87, 41.17, -0.64, 0.00241, 1, 88, 30.28, -0.44, 1, 1, 89, 16.17, -0.27, 1 ], + "hull": 26, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 0, 26, 28, 28, 30, 0, 2, 2, 4, 52, 28, 24, 52, 54, 52, 22, 54, 56, 54, 20, 56, 58, 56, 18, 58, 60, 58, 16, 60, 62, 60, 14, 62, 64, 62, 12, 64, 66, 64, 10, 66, 68, 66, 8, 68, 2, 70, 70, 68, 6, 70 ], + "width": 34, + "height": 222 + } + }, + "arm-front": { + "arm-front": { + "name": "girl-spring-dress/arm-front", + "type": "mesh", + "uvs": [ 1, 1, 0.51047, 1, 0, 1, 0, 0.90909, 0, 0.81818, 0, 0.72727, 0, 0.63636, 0, 0.54545, 0, 0.45455, 0, 0.36364, 0, 0.27273, 0, 0.18182, 0, 0.09091, 0, 0, 0.53, 0, 1, 0, 1, 0.09091, 1, 0.18182, 1, 0.27273, 1, 0.36364, 1, 0.45455, 1, 0.54545, 1, 0.63636, 1, 0.72727, 1, 0.81818, 1, 0.90909, 0.52825, 0.08961, 0.52645, 0.18177, 0.52476, 0.26801, 0.52291, 0.36314, 0.52111, 0.45529, 0.51928, 0.54893, 0.51759, 0.63514, 0.51585, 0.72434, 0.5139, 0.82396, 0.51219, 0.91165 ], + "triangles": [ 35, 3, 4, 34, 24, 25, 34, 35, 4, 35, 34, 25, 1, 2, 3, 35, 1, 3, 35, 25, 0, 1, 35, 0, 5, 6, 33, 34, 4, 5, 33, 23, 24, 33, 34, 5, 34, 33, 24, 33, 32, 23, 32, 22, 23, 6, 7, 32, 32, 31, 22, 32, 7, 31, 31, 21, 22, 31, 30, 21, 31, 7, 8, 33, 6, 32, 29, 19, 20, 29, 30, 9, 30, 8, 9, 30, 29, 20, 30, 20, 21, 30, 31, 8, 29, 10, 28, 9, 10, 29, 28, 18, 19, 29, 28, 19, 10, 11, 28, 26, 13, 14, 12, 13, 26, 14, 15, 16, 26, 14, 16, 27, 12, 26, 11, 12, 27, 26, 16, 17, 27, 26, 17, 28, 11, 27, 27, 17, 18, 28, 27, 18 ], + "vertices": [ 1, 16, 38.32, 16.3, 1, 1, 16, 38.52, -0.34, 1, 1, 16, 38.73, -17.69, 1, 2, 12, 52.67, -17.99, 0.00808, 16, 18.72, -17.94, 0.99192, 2, 12, 32.13, -18.19, 0.55013, 16, -1.29, -18.19, 0.44987, 3, 13, 44.84, -18.45, 0.17, 12, 11.58, -18.39, 0.82609, 16, -21.3, -18.44, 0.00391, 3, 14, 58.02, -18.69, 0.00461, 13, 24.54, -18.55, 0.51, 12, -8.96, -18.59, 0.48539, 2, 14, 37.65, -18.67, 0.24, 13, 4.25, -18.64, 0.76, 3, 15, 50.74, -18.68, 0.01218, 14, 17.27, -18.64, 0.69782, 13, -16.04, -18.74, 0.29, 2, 15, 30.34, -18.61, 0.58, 14, -3.11, -18.62, 0.42, 3, 11, 43.26, -18.55, 0.66266, 15, 9.94, -18.55, 0.32, 14, -23.49, -18.6, 0.01734, 2, 11, 23.22, -18.49, 0.87756, 15, -10.46, -18.49, 0.12244, 1, 11, 3.19, -18.43, 1, 1, 11, -16.84, -18.37, 1, 1, 11, -16.79, -0.35, 1, 1, 11, -16.74, 15.63, 1, 1, 11, 3.29, 15.57, 1, 2, 11, 23.32, 15.51, 0.91061, 15, -10.35, 15.51, 0.08939, 2, 11, 43.36, 15.45, 0.68, 15, 10.05, 15.45, 0.32, 2, 15, 30.45, 15.39, 0.58, 14, -3.07, 15.38, 0.42, 3, 15, 50.84, 15.32, 0.00487, 14, 17.31, 15.36, 0.70513, 13, -16.21, 15.26, 0.29, 2, 14, 37.69, 15.33, 0.24, 13, 4.09, 15.36, 0.76, 2, 13, 24.38, 15.45, 0.51, 12, -9.3, 15.4, 0.49, 2, 13, 44.67, 15.55, 0.17, 12, 11.24, 15.61, 0.83, 2, 12, 31.78, 15.81, 0.59679, 16, -1.7, 15.8, 0.40321, 2, 12, 52.32, 16.01, 0.00481, 16, 18.31, 16.05, 0.99519, 1, 11, 2.96, -0.47, 1, 1, 11, 23.27, -0.59, 1, 1, 15, 8.94, -0.71, 1, 2, 15, 30.28, -0.83, 0.58, 14, -3.2, -0.84, 0.42, 2, 14, 17.46, -0.93, 0.71, 13, -15.96, -1.02, 0.29, 2, 14, 38.45, -1.01, 0.24, 13, 4.94, -0.98, 0.76, 1, 13, 24.19, -0.95, 1, 2, 13, 44.1, -0.92, 0.17, 12, 10.74, -0.86, 0.83, 2, 12, 33.25, -0.7, 0.55299, 16, -0.23, -0.71, 0.44701, 1, 16, 19.07, -0.52, 1 ], + "hull": 26, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 0, 26, 28, 28, 30, 0, 2, 2, 4, 52, 28, 24, 52, 54, 52, 22, 54, 56, 54, 20, 56, 58, 56, 18, 58, 60, 58, 16, 60, 62, 60, 14, 62, 64, 62, 12, 64, 66, 64, 10, 66, 68, 66, 8, 68, 2, 70, 70, 68, 6, 70 ], + "width": 34, + "height": 222 + } + }, + "base-head": { + "base-head": { "x": 74.74, "y": -10.09, "rotation": -87.57, "width": 189, "height": 145 } + }, + "body-up": { + "body-up": { "name": "girl-spring-dress/body-up", "x": 59.16, "y": -14.67, "rotation": -94.33, "width": 128, "height": 131 } + }, + "cape-red-down": { + "cape-red-down": { + "name": "girl-spring-dress/cloak-down", + "type": "mesh", + "uvs": [ 0.14417, 0, 0.36304, 0.02025, 0.57682, 0.0966, 0.7397, 0.23912, 0.85168, 0.4529, 0.92294, 0.66668, 1, 0.82447, 1, 1, 0.70916, 1, 0.44448, 0.98735, 0.28669, 0.83974, 0.06273, 0.5038, 0, 0.26966, 0, 0.07624, 0.67674, 0.71028, 0.43738, 0.58788, 0.3008, 0.31931, 0.57552, 0.43898 ], + "triangles": [ 17, 2, 3, 17, 3, 4, 11, 16, 15, 11, 12, 16, 2, 17, 1, 17, 16, 1, 12, 13, 0, 16, 0, 1, 12, 0, 16, 15, 16, 17, 9, 14, 8, 14, 4, 5, 6, 8, 14, 6, 14, 5, 8, 6, 7, 14, 17, 4, 10, 11, 15, 10, 15, 9, 9, 15, 14, 15, 17, 14 ], + "vertices": [ 1, 4, 125.16, -19.58, 1, 1, 4, 121.49, -41.25, 1, 3, 120, 74.56, -19.08, 0.15867, 4, 112.27, -61.99, 0.14879, 122, 28.75, 13.93, 0.69254, 1, 122, 14.5, -2.36, 1, 2, 119, -12.43, 41.24, 0.46, 122, -6.88, -13.55, 0.54, 2, 119, -5.3, 19.86, 0.76, 122, -28.26, -20.68, 0.24, 2, 119, 2.41, 4.09, 0.86, 122, -44.04, -28.39, 0.14, 2, 120, -18.72, -54.46, 0.19, 119, 2.41, -13.47, 0.81, 2, 120, -16.52, -25.46, 0.36, 119, -26.68, -13.47, 0.64, 2, 120, -13.27, 0.84, 0.55, 119, -53.15, -12.2, 0.45, 2, 120, 2.64, 15.46, 0.83, 119, -68.93, 2.56, 0.17, 2, 120, 37.83, 35.26, 0.22, 4, 75.54, -7.66, 0.78, 1, 4, 99.36, -3.17, 1, 1, 4, 118.65, -4.63, 1, 3, 120, 12.61, -24.41, 0.36, 119, -29.92, 15.5, 0.59041, 122, -32.62, 3.94, 0.04959, 3, 120, 26.62, -1.47, 0.83, 119, -53.86, 27.74, 0.15527, 4, 64.33, -44.38, 0.01473, 1, 4, 92.14, -32.79, 1, 1, 4, 78.13, -59.28, 1 ], + "hull": 14, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 22, 24, 24, 26, 0, 26, 34, 2, 20, 22 ], + "width": 100, + "height": 100 + } + }, + "cape-red-up": { + "cape-red-up": { + "name": "girl-spring-dress/cloak-up", + "type": "mesh", + "uvs": [ 0.37962, 0, 0.24791, 0.0725, 0.15296, 0.15299, 0.06413, 0.27371, 0.01206, 0.6057, 0, 0.7499, 0, 0.9008, 0.07332, 1, 0.25097, 1, 0.43475, 1, 0.53889, 0.93434, 0.70123, 0.88404, 0.82988, 0.75325, 0.9187, 0.55875, 0.94933, 0.42461, 0.93402, 0.15969, 0.66448, 0, 0.26629, 0.82703, 0.48376, 0.7499, 0.64916, 0.6057, 0.72267, 0.38102, 0.63078, 0.14963, 0.3643, 0.34078, 0.29998, 0.60905 ], + "triangles": [ 3, 2, 22, 22, 23, 3, 18, 19, 11, 11, 19, 12, 12, 19, 13, 18, 23, 19, 17, 23, 18, 18, 10, 9, 9, 8, 17, 8, 7, 17, 7, 6, 17, 9, 17, 18, 10, 18, 11, 6, 5, 17, 17, 5, 23, 23, 5, 4, 23, 4, 3, 23, 22, 19, 19, 20, 13, 19, 22, 20, 13, 20, 14, 20, 15, 14, 22, 21, 20, 20, 21, 15, 2, 1, 22, 22, 0, 21, 22, 1, 0, 21, 16, 15, 21, 0, 16 ], + "vertices": [ 1, 4, 128.5, 22.39, 1, 1, 4, 121.37, 39.71, 1, 2, 4, 112.97, 52.44, 0.27, 117, -9.72, 16.53, 0.73, 1, 117, -21, 2.53, 1, 2, 115, -26.06, -1.94, 0.83, 117, -27.61, -35.98, 0.17, 1, 115, -9.34, -3.48, 1, 2, 115, 8.17, -3.48, 0.99, 117, -29.14, -70.21, 0.01, 2, 4, 15.76, 69.93, 0.07049, 115, 19.68, 5.84, 0.92951, 2, 115, 19.68, 28.4, 0.88, 113, -18.74, 59.54, 0.12, 2, 115, 19.68, 51.74, 0.73, 113, -20.5, 36.27, 0.27, 2, 115, 12.06, 64.96, 0.6, 113, -13.9, 22.51, 0.4, 2, 115, 6.22, 85.58, 0.4, 113, -9.64, 1.51, 0.6, 3, 4, 37.05, -28.04, 0.05405, 115, -8.95, 101.92, 0.27, 113, 4.26, -15.93, 0.67595, 3, 4, 58.7, -40.99, 0.42765, 115, -31.51, 113.2, 0.22, 113, 25.9, -28.88, 0.35235, 3, 4, 73.92, -46.04, 0.6319, 115, -47.07, 117.09, 0.11, 113, 41.13, -33.93, 0.2581, 2, 4, 104.71, -46.42, 0.91761, 113, 71.92, -34.31, 0.08239, 1, 4, 125.77, -13.68, 1, 2, 115, -0.39, 30.34, 0.88, 113, 1.12, 56.09, 0.12, 2, 115, -9.34, 57.96, 0.6, 113, 7.96, 27.88, 0.4, 3, 4, 55.85, -6.44, 0.3066, 115, -26.06, 78.97, 0.27, 113, 23.06, 5.67, 0.4234, 3, 4, 81.14, -17.72, 0.6764, 115, -52.13, 88.3, 0.11, 113, 48.34, -5.61, 0.2136, 1, 4, 108.78, -8.1, 1, 2, 4, 89.23, 27.31, 0.9433, 115, -56.79, 42.79, 0.0567, 2, 115, -25.67, 34.62, 0.91, 113, 26.01, 49.92, 0.09 ], + "hull": 17, + "edges": [ 0, 2, 2, 4, 4, 6, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 0, 32, 8, 46, 6, 8 ], + "width": 127, + "height": 116 + } + }, + "ear": { + "ear": { + "name": "girl/ear", + "path": "girl-spring-dress/ear", + "x": 56.58, + "y": 85.63, + "rotation": -87.57, + "width": 38, + "height": 45 + } + }, + "eye-back-eyebrow": { + "eye-back-eyebrow": { + "name": "girl/back-eyebrow", + "path": "girl-spring-dress/back-eyebrow", + "x": 15.6, + "y": -9.48, + "rotation": -177.9, + "width": 36, + "height": 23 + } + }, + "eye-back-iris": { + "eye-back-iris": { "name": "girl/eye-iris-back", "path": "girl-spring-dress/eye-iris-back", "x": 0.85, "y": -0.75, "width": 33, "height": 34 } + }, + "eye-back-low-eyelid": { + "eye-back-low-eyelid": { + "name": "girl/eye-back-low-eyelid", + "type": "mesh", + "path": "girl-spring-dress/eye-back-low-eyelid", + "uvs": [ 0, 0.26476, 0.20331, 0.79621, 0.50495, 0.95421, 0.8401, 0.89676, 1, 0.33658, 0.88319, 0.07803, 0.75871, 0.25039, 0.5241, 0.35094, 0.31343, 0.19294, 0.09798, 0 ], + "triangles": [ 7, 6, 3, 2, 1, 7, 3, 2, 7, 1, 8, 7, 3, 6, 4, 1, 0, 8, 6, 5, 4, 0, 9, 8 ], + "vertices": [ 1, 42, -29.75, 1.38, 1, 2, 42, -23.04, -4.47, 0.63, 43, 23.4, -1.82, 0.37, 2, 42, -13.09, -6.21, 0.22, 43, 14.27, 2.5, 0.78, 2, 42, -2.03, -5.57, 0.2, 43, 3.44, 4.83, 0.8, 1, 42, 3.25, 0.59, 1, 1, 42, -0.61, 3.43, 1, 2, 42, -4.72, 1.54, 0.39, 43, 4.14, -2.74, 0.61, 2, 42, -12.46, 0.43, 0.22, 43, 11.9, -3.73, 0.78, 2, 42, -19.41, 2.17, 0.63, 43, 18.14, -7.25, 0.37, 1, 42, -26.52, 4.29, 1 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 33, + "height": 11 + } + }, + "eye-back-pupil": { + "eye-back-pupil": { + "name": "girl/eye-back-pupil", + "path": "girl-spring-dress/eye-back-pupil", + "x": 0.43, + "y": -0.67, + "scaleX": 1.2, + "scaleY": 1.2062, + "width": 15, + "height": 17 + } + }, + "eye-back-up-eyelid": { + "eye-back-up-eyelid": { + "name": "girl/eye-back-up-eyelid", + "type": "mesh", + "path": "girl-spring-dress/eye-back-up-eyelid", + "uvs": [ 0.07861, 0.9592, 0.24977, 0.54703, 0.44727, 0.42338, 0.58882, 0.40964, 0.77315, 0.59512, 1, 0.16921, 1, 0, 0.76657, 0.13486, 0.61844, 0, 0.40119, 0.01807, 0.18065, 0.25164, 0, 0.73938, 0, 0.95234 ], + "triangles": [ 1, 10, 2, 3, 2, 9, 2, 10, 9, 3, 9, 8, 3, 8, 7, 1, 0, 11, 0, 12, 11, 11, 10, 1, 3, 7, 4, 4, 7, 5, 7, 6, 5 ], + "vertices": [ 1, 40, -31.8, -11.42, 1, 2, 40, -23.59, -1.94, 0.51, 41, 22.75, 6.53, 0.49, 2, 40, -14.11, 0.91, 0.15, 41, 14.01, 1.88, 0.85, 1, 41, 7.41, 0.24, 1, 1, 40, 1.53, -3.04, 1, 1, 40, 12.42, 6.75, 1, 1, 40, 12.42, 10.64, 1, 1, 40, 1.22, 7.54, 1, 1, 41, 7.87, -9.28, 1, 2, 40, -16.32, 10.23, 0.15, 41, 18.01, -6.83, 0.85, 2, 40, -26.91, 4.86, 0.52, 41, 27.34, 0.52, 0.48, 1, 40, -35.58, -6.36, 1, 1, 40, -35.58, -11.26, 1 ], + "hull": 13, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24 ], + "width": 48, + "height": 23 + } + }, + "eye-back-up-eyelid-back": { + "eye-back-up-eyelid-back": { + "name": "girl/eye-back-up-eyelid-back", + "type": "mesh", + "path": "girl-spring-dress/eye-back-up-eyelid-back", + "uvs": [ 0.12627, 1, 0, 0.99472, 0, 0.60349, 0.16345, 0.30253, 0.44692, 0.06177, 0.74898, 0.00911, 1, 0.1972, 1, 0.52073, 0.72574, 0.37025, 0.49339, 0.42292, 0.25639, 0.68625 ], + "triangles": [ 0, 1, 2, 10, 0, 2, 10, 3, 9, 9, 4, 8, 8, 6, 7, 2, 3, 10, 3, 4, 9, 8, 5, 6, 8, 4, 5 ], + "vertices": [ 1, 40, -28.64, -7.74, 1, 1, 40, -32.94, -7.63, 1, 1, 39, -19.88, 27.79, 1, 1, 39, -14.32, 34.11, 1, 1, 39, -4.69, 39.17, 1, 1, 39, 5.58, 40.27, 1, 1, 39, 14.12, 36.32, 1, 1, 40, 1.06, 2.33, 1, 1, 41, 9.18, -3.76, 1, 2, 41, 16.71, -1.13, 0.92, 40, -16.16, 4.38, 0.08, 2, 41, 23.53, 5.88, 0.33, 40, -24.22, -1.15, 0.67 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 34, + "height": 21 + } + }, + "eye-back-white": { + "eye-back-white": { + "name": "girl/eye-white-back", + "type": "mesh", + "path": "girl-spring-dress/eye-white-back", + "uvs": [ 0, 0.39191, 0.07911, 0.7283, 0.26952, 0.95255, 0.56931, 0.98823, 0.90962, 0.92197, 1, 0.50404, 0.94608, 0.17784, 0.76378, 0.00455, 0.50855, 0, 0.20875, 0.12178, 0.56121, 0.48365 ], + "triangles": [ 3, 2, 10, 4, 3, 10, 2, 1, 10, 4, 10, 5, 10, 8, 7, 9, 8, 10, 1, 0, 10, 10, 6, 5, 0, 9, 10, 10, 7, 6 ], + "vertices": [ 1, 40, -34.26, -6.05, 1, 1, 42, -30.63, 5.01, 1, 2, 42, -23.2, -1.94, 0.5, 43, 22.88, -4.3, 0.5, 2, 42, -11.51, -3.04, 0.61, 43, 11.91, -0.13, 0.39, 1, 42, 1.76, -0.99, 1, 2, 40, 4.74, -9.52, 0.54, 42, 5.29, 11.97, 0.46, 1, 40, 2.64, 0.59, 1, 2, 40, -4.47, 5.96, 0.35, 41, 5.55, -4.97, 0.65, 2, 40, -14.42, 6.1, 0.22, 41, 15.34, -3.16, 0.78, 2, 40, -26.12, 2.33, 0.49, 41, 26.07, 2.84, 0.51, 2, 40, -12.37, -8.89, 0.71, 43, 8.05, -15.29, 0.29 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 39, + "height": 31 + } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { + "name": "girl/front-eyebrow", + "path": "girl-spring-dress/front-eyebrow", + "x": 10.82, + "y": 8.92, + "rotation": -3.58, + "width": 36, + "height": 23 + } + }, + "eye-front-iris": { + "eye-front-iris": { "name": "girl/eye-iris-front", "path": "girl-spring-dress/eye-iris-front", "x": 0.22, "y": -0.71, "width": 36, "height": 35 } + }, + "eye-front-low-eyelid": { + "eye-front-low-eyelid": { + "name": "girl/eye-front-low-eyelid", + "type": "mesh", + "path": "girl-spring-dress/eye-front-low-eyelid", + "uvs": [ 0.07038, 0, 0, 0.43773, 0.24154, 0.94046, 0.64093, 0.92609, 1, 0.39464, 1, 0.00682, 0.8516, 0, 0.61899, 0.36591, 0.30738, 0.39464 ], + "triangles": [ 8, 7, 3, 2, 8, 3, 2, 1, 8, 6, 5, 4, 7, 6, 4, 1, 0, 8, 3, 7, 4 ], + "vertices": [ 1, 36, -0.25, 5.3, 1, 1, 36, -2.79, 0.49, 1, 1, 37, 6.69, -3.95, 1, 2, 36, 20.29, -4.89, 0.61, 37, 20.82, -1.32, 0.39, 1, 36, 33.21, 0.96, 1, 1, 36, 33.21, 5.23, 1, 1, 36, 27.87, 5.3, 1, 2, 36, 19.5, 1.28, 0.61, 37, 18.99, 4.61, 0.39, 1, 37, 7.99, 2.37, 1 ], + "hull": 9, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 0, 16 ], + "width": 36, + "height": 11 + } + }, + "eye-front-pupil": { + "eye-front-pupil": { + "name": "girl/eye-front-pupil", + "path": "girl-spring-dress/eye-front-pupil", + "x": -0.04, + "y": -0.47, + "scaleX": 1.2, + "scaleY": 1.2, + "width": 17, + "height": 17 + } + }, + "eye-front-up-eyelid": { + "eye-front-up-eyelid": { + "name": "girl/eye-front-up-eyelid", + "type": "mesh", + "path": "girl-spring-dress/eye-front-up-eyelid", + "uvs": [ 0.32251, 0.43387, 0.36464, 0.94737, 0.28564, 1, 0.16714, 0.73859, 0.15924, 0.42823, 0, 0.24201, 0, 0, 0.22771, 0.2138, 0.41731, 0, 0.66747, 0, 0.88604, 0.23637, 1, 0.54673, 1, 0.81194, 0.86497, 0.79501, 0.74121, 0.4903, 0.61217, 0.35487, 0.45417, 0.35487 ], + "triangles": [ 14, 15, 10, 2, 3, 1, 3, 0, 1, 13, 11, 12, 13, 14, 11, 3, 4, 0, 14, 10, 11, 0, 4, 7, 4, 5, 7, 5, 6, 7, 16, 0, 7, 7, 8, 16, 10, 15, 9, 9, 15, 8, 15, 16, 8 ], + "vertices": [ 2, 35, 6.87, 1.33, 0.47507, 34, 6.4, 2.84, 0.52493, 2, 35, 6.12, -13.25, 0.09298, 34, 8.93, -11.54, 0.90702, 1, 34, 4.19, -13.01, 1, 1, 34, -2.92, -5.69, 1, 2, 35, -2.64, 3.68, 0.0415, 34, -3.4, 3, 0.9585, 1, 34, -12.95, 8.21, 1, 1, 34, -12.95, 14.99, 1, 2, 35, 2.71, 8.61, 0.27883, 34, 0.71, 9, 0.72117, 1, 35, 15.14, 11.9, 1, 2, 35, 29.76, 8.54, 0.65, 34, 27.1, 14.99, 0.35, 2, 35, 41.06, -0.85, 0.28137, 34, 40.21, 8.37, 0.71863, 1, 34, 47.05, -0.32, 1, 1, 34, 47.05, -7.75, 1, 2, 35, 36.33, -15.81, 0.07124, 34, 38.95, -7.27, 0.92876, 2, 35, 31, -5.83, 0.45, 34, 31.52, 1.26, 0.55, 2, 35, 24.31, -0.4, 0.65, 34, 23.78, 5.05, 0.35, 2, 35, 15.07, 1.72, 0.76, 34, 14.3, 5.05, 0.24 ], + "hull": 17, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 0, 32 ], + "width": 60, + "height": 28 + } + }, + "eye-front-up-eyelid-back": { + "eye-front-up-eyelid-back": { + "name": "girl/eye-front-up-eyelid-back", + "type": "mesh", + "path": "girl-spring-dress/eye-front-up-eyelid-back", + "uvs": [ 0.05111, 0.59525, 0.31445, 0.34389, 0.48174, 0.29362, 0.69861, 0.43007, 0.81323, 0.65271, 0.90617, 1, 1, 1, 1, 0.74607, 0.93406, 0.48034, 0.78845, 0.18589, 0.62115, 0, 0.49104, 0, 0.26798, 0, 0, 0.28644, 0, 0.48752 ], + "triangles": [ 2, 1, 12, 3, 2, 9, 5, 4, 7, 5, 7, 6, 0, 14, 1, 4, 3, 8, 4, 8, 7, 14, 13, 1, 3, 9, 8, 10, 9, 2, 10, 2, 11, 1, 13, 12, 2, 12, 11 ], + "vertices": [ 1, 34, -1.1, 4.47, 1, 1, 35, 14.1, 7.02, 1, 1, 35, 22.66, 6.19, 1, 2, 34, 31.76, 8.1, 0.42, 35, 32.77, 0.79, 0.58, 2, 34, 37.61, 3.21, 0.71, 35, 37.37, -5.29, 0.29, 1, 34, 42.35, -4.43, 1, 1, 34, 47.13, -4.43, 1, 1, 78, 22.96, -14.22, 1, 1, 78, 19.59, -8.37, 1, 1, 78, 12.17, -1.9, 1, 1, 78, 3.63, 2.19, 1, 1, 78, -3, 2.19, 1, 1, 78, -14.38, 2.19, 1, 1, 78, -28.04, -4.11, 1, 1, 34, -3.87, 6.84, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 51, + "height": 22 + } + }, + "eye-front-white": { + "eye-front-white": { + "name": "girl/eye-white-front", + "type": "mesh", + "path": "girl-spring-dress/eye-white-front", + "uvs": [ 0, 0.13677, 0.03631, 0.56139, 0.18641, 0.96133, 0.54191, 0.97121, 0.90531, 0.87739, 1, 0.54164, 1, 0.24046, 0.80425, 0.13009, 0.57351, 0, 0.25751, 0.00346, 0.47082, 0.52682 ], + "triangles": [ 3, 2, 10, 2, 1, 10, 4, 3, 10, 4, 10, 5, 7, 6, 5, 1, 0, 10, 10, 9, 8, 10, 8, 7, 10, 7, 5, 0, 9, 10 ], + "vertices": [ 1, 34, 3.55, 4.71, 1, 2, 34, 5, -8.88, 0.5, 36, -3.97, 10.98, 0.5, 2, 36, 2.03, -1.82, 0.36, 37, 2.31, -1.44, 0.64, 2, 36, 16.25, -2.14, 0.32, 37, 16.37, 0.69, 0.68, 1, 36, 30.79, 0.87, 1, 1, 36, 34.57, 11.61, 1, 1, 34, 43.55, 1.39, 1, 2, 35, 35.91, -3.2, 0.27, 34, 35.72, 4.92, 0.73, 2, 35, 27.85, 2.93, 0.54, 34, 26.49, 9.09, 0.46, 2, 35, 15.51, 5.65, 0.62, 34, 13.85, 8.98, 0.38, 2, 35, 20.07, -12.59, 0.81, 37, 11.13, 14.21, 0.19 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 16, 18, 0, 18, 12, 14, 14, 16 ], + "width": 40, + "height": 32 + } + }, + "hair-back": { + "hair-back": { + "name": "girl/hair-back", + "type": "mesh", + "path": "girl-spring-dress/hair-back", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 0, 2, 3, 0 ], + "vertices": [ 2, 6, -3.46, -135.36, 0.71, 30, 189.29, -78.03, 0.29, 2, 6, -15.93, 158.38, 0.71, 30, -104.71, -78.03, 0.29, 2, 6, 168.91, 166.22, 0.71, 30, -104.71, 106.97, 0.29, 2, 6, 181.37, -127.51, 0.71, 30, 189.29, 106.97, 0.29 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 294, + "height": 185 + } + }, + "hair-bangs": { + "hair-bangs": { + "name": "girl/hair-bangs", + "type": "mesh", + "path": "girl-spring-dress/hair-bangs", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "girl/hair-bangs", + "type": "mesh", + "path": "girl-spring-dress/hair-bangs", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch2", + "type": "mesh", + "path": "girl/hair-patch", + "color": "94453fff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "path": "girl-spring-dress/hair-side", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-side-back": { + "hair-side-back": { + "name": "girl/hair-head-side-back", + "type": "mesh", + "path": "girl-spring-dress/hair-head-side-back", + "uvs": [ 0.17374, 0.1545, 0.22967, 0.37557, 0.21289, 0.61586, 0, 0.86256, 0, 1, 0.25205, 1, 0.45899, 0.87537, 0.69391, 0.87858, 0.80577, 0.69916, 0.82815, 0.52615, 1, 0.46528, 0.99594, 0.21858, 0.73306, 0.04236, 0.53171, 0, 0.27442, 0.04877, 0.51493, 0.5678, 0.59323, 0.17692, 0.73306, 0.35954, 0.46459, 0.76964 ], + "triangles": [ 17, 11, 10, 15, 1, 16, 16, 14, 13, 14, 16, 1, 1, 0, 14, 16, 12, 17, 17, 12, 11, 16, 13, 12, 15, 16, 17, 2, 1, 15, 5, 18, 6, 5, 4, 3, 6, 18, 7, 7, 18, 8, 5, 3, 2, 18, 5, 2, 18, 15, 8, 18, 2, 15, 8, 15, 9, 9, 17, 10, 15, 17, 9 ], + "vertices": [ 2, 47, 44.16, -9.72, 0.072, 6, 75.71, -87.13, 0.928, 2, 47, 65.84, -17.42, 0.21564, 6, 53.1, -91.39, 0.78436, 2, 47, 87.28, -29.83, 0.5439, 6, 28.33, -91.45, 0.4561, 3, 47, 103.9, -52.79, 0.8752, 6, 2.41, -79.98, 0.09988, 30, 134.21, -69.81, 0.02493, 3, 47, 116.42, -59.39, 0.89423, 6, -11.73, -80.58, 0.014, 30, 134.21, -83.97, 0.09177, 3, 47, 123.36, -46.24, 0.87011, 6, -11.1, -95.43, 0.00989, 30, 149.08, -83.97, 0.12, 3, 47, 117.69, -29.45, 0.77082, 6, 2.24, -107.09, 0.0941, 30, 161.29, -71.13, 0.13508, 3, 47, 124.45, -17.35, 0.86922, 6, 2.5, -120.95, 0.00701, 30, 175.15, -71.46, 0.12377, 3, 47, 111.18, -2.89, 0.73582, 6, 21.24, -126.76, 0.12392, 30, 181.75, -52.98, 0.14026, 3, 47, 96.03, 6.59, 0.55463, 6, 39.1, -127.33, 0.32878, 30, 183.07, -35.16, 0.11659, 3, 47, 95.21, 18.48, 0.54495, 6, 45.79, -137.19, 0.37264, 30, 193.21, -28.89, 0.08241, 2, 47, 72.62, 30.12, 0.39164, 6, 71.17, -135.87, 0.60836, 2, 47, 49.33, 24.86, 0.13442, 6, 88.65, -119.61, 0.86558, 2, 47, 39.93, 16.38, 0.03367, 6, 92.5, -107.55, 0.96633, 2, 47, 37.3, 0.61, 0.176, 6, 86.84, -92.6, 0.824, 3, 47, 91.21, -11.76, 0.52, 6, 34.03, -109.04, 0.39641, 30, 164.59, -39.45, 0.08358, 2, 47, 57.74, 11.1, 0.24029, 6, 74.45, -111.95, 0.75971, 3, 47, 78.23, 9.62, 0.39663, 6, 56.01, -120.99, 0.565, 30, 177.46, -18, 0.03837, 3, 47, 108.21, -24.08, 0.64328, 6, 13.13, -106.96, 0.22492, 30, 161.62, -60.24, 0.1318 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 59, + "height": 103 + } + }, + "hair-side-front": { + "hair-side-front": { + "name": "girl/hair-head-side-front", + "type": "mesh", + "path": "girl-spring-dress/hair-head-side-front", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 6, 5.69, 38.25, 1, 1, 6, 2.21, 120.17, 1, 1, 6, 85.14, 123.69, 1, 1, 6, 88.61, 41.77, 1 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 82, + "height": 83 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "path": "girl-spring-dress/hair-side", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hand-back": { + "hand-back-fingers": { + "name": "girl/hand-front-fingers", + "path": "girl-spring-dress/hand-front-fingers", + "x": 11.59, + "y": 1.97, + "rotation": 90, + "width": 38, + "height": 42 + } + }, + "hand-front": { + "hand-front-fingers": { + "name": "girl/hand-front-fingers", + "path": "girl-spring-dress/hand-front-fingers", + "x": 11.59, + "y": 1.97, + "rotation": 90, + "width": 38, + "height": 42 + } + }, + "leg-back": { + "leg-back": { + "name": "girl/leg-front", + "type": "mesh", + "path": "girl-spring-dress/leg-front", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 0, 48, 42, 42, 48, 31, 42, 31, 33, 34, 0, 42, 34, 42, 33, 31, 32, 33, 31, 48, 30, 41, 12, 13, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48 ], + "vertices": [ 3, 94, 22.95, -22.02, 0.22728, 95, 59.29, -22, 0.00272, 103, -19.33, 11.79, 0.77, 3, 94, 5.73, -22.61, 0.49142, 95, 41.79, -22.61, 0.23858, 103, -19.74, 29.07, 0.27, 4, 94, -10.55, -23.17, 0.11127, 95, 25.25, -23.18, 0.76279, 96, 60.87, -23.13, 0.00594, 103, -20.15, 45.45, 0.12, 2, 95, 5.13, -23.87, 0.69465, 96, 41.05, -23.86, 0.30535, 3, 95, -15.89, -24.56, 0.09408, 96, 20.35, -24.59, 0.86299, 97, 56.72, -24.52, 0.04292, 2, 96, 1.98, -25.21, 0.55425, 97, 38.06, -25.21, 0.44575, 3, 96, -19.09, -25.88, 0.05256, 97, 16.64, -25.95, 0.87891, 98, 52.7, -25.89, 0.06853, 3, 96, -33.74, -26.34, 3.3E-4, 97, 1.76, -26.46, 0.67227, 98, 37.81, -26.45, 0.32739, 2, 97, -3.17, -22.02, 0.47188, 98, 32.86, -22.03, 0.52812, 3, 97, -22.68, -22.46, 0.0172, 98, 13.36, -22.55, 0.87617, 99, 49.14, -22.52, 0.10662, 3, 98, -7.93, -23.09, 0.23789, 99, 28.2, -23.11, 0.75909, 100, 64.58, -23.1, 0.00302, 3, 98, -27.79, -23.57, 0.00312, 99, 8.67, -23.62, 0.75495, 100, 44.76, -23.62, 0.24193, 3, 99, -12.93, -24.2, 0.09944, 100, 22.84, -24.2, 0.87238, 101, 58.46, -24.21, 0.02818, 2, 100, 0.77, -24.79, 0.47358, 101, 36.71, -24.79, 0.52642, 1, 101, 1.72, -25.72, 1, 1, 101, -25.98, -26.46, 1, 1, 101, -26.33, 25.98, 1, 1, 101, -0.53, 25.24, 1, 2, 100, -3.13, 24.27, 0.37555, 101, 32.87, 24.27, 0.62445, 3, 99, -15.75, 23.6, 0.0536, 100, 19.96, 23.6, 0.92085, 101, 55.62, 23.59, 0.02556, 2, 99, 5.77, 22.96, 0.65378, 100, 41.79, 22.97, 0.34622, 3, 98, -11.12, 22.43, 0.12254, 99, 24.96, 22.4, 0.86248, 100, 61.27, 22.42, 0.01499, 3, 97, -26.03, 21.9, 0.00839, 98, 9.83, 21.8, 0.78745, 99, 45.58, 21.82, 0.20415, 3, 97, -7.13, 21.27, 0.362, 98, 28.73, 21.24, 0.63637, 99, 64.17, 21.3, 0.00163, 2, 97, -6.17, 28.11, 0.5025, 98, 29.67, 28.08, 0.4975, 3, 96, -21.38, 27.22, 0.03848, 97, 14.13, 27.14, 0.83871, 98, 49.97, 27.2, 0.12281, 3, 96, -2.33, 26.26, 0.40865, 97, 33.49, 26.25, 0.59016, 98, 69.34, 26.38, 0.00119, 3, 95, -20.14, 25.43, 0.05003, 96, 16.06, 25.39, 0.84798, 97, 52.19, 25.45, 0.10198, 2, 95, 1.24, 24.42, 0.56331, 96, 37.12, 24.42, 0.43669, 4, 94, -15.67, 23.56, 0.04308, 95, 20, 23.55, 0.81142, 96, 55.61, 23.58, 0.0255, 103, 26.63, 50.22, 0.12, 3, 94, 0.26, 22.8, 0.33337, 95, 36.2, 22.8, 0.39663, 103, 25.72, 34.13, 0.27, 3, 94, 18.48, 21.95, 0.22212, 95, 54.71, 21.97, 0.00788, 103, 24.69, 15.83, 0.77, 1, 103, 36.21, 8.95, 1, 1, 103, 36.08, -3.91, 1, 1, 103, -18.97, -3.34, 1, 1, 101, 0.45, 0, 1, 1, 98, 31.4, 0, 1, 1, 98, 11.41, 0, 1, 1, 99, 26.57, 0, 1, 1, 99, 7.43, 0, 1, 1, 100, 20.94, 0, 1, 1, 101, 34.45, 0, 1, 2, 94, 23.32, 0.24, 0.23, 103, 2.93, 11.2, 0.77, 1, 97, 15.67, 0.04, 1, 2, 96, -0.81, 0.07, 0.36735, 97, 35.13, 0.07, 0.63265, 1, 96, 18, 0.1, 1, 2, 95, 2.51, 0.14, 0.90776, 96, 38.42, 0.14, 0.09224, 2, 95, 22.3, 0.17, 0.88, 103, 3.23, 48.15, 0.12, 3, 94, 2.19, 0.2, 0.62933, 95, 38.18, 0.2, 0.10067, 103, 3.11, 32.41, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "leg-front": { + "leg-front": { + "name": "girl/leg-front", + "type": "mesh", + "path": "girl-spring-dress/leg-front", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 31, 48, 30, 0, 48, 42, 42, 48, 31, 34, 42, 33, 31, 32, 33, 42, 31, 33, 34, 0, 42, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 41, 12, 13, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15 ], + "vertices": [ 3, 28, 22.96, -22.02, 0.22658, 27, 58.91, -22.02, 0.00342, 102, -21, 12.47, 0.77, 3, 28, 5.76, -22.61, 0.49273, 27, 41.71, -22.61, 0.23727, 102, -21.71, 29.73, 0.27, 4, 28, -10.68, -23.18, 0.11707, 27, 25.27, -23.18, 0.76681, 26, 61.22, -23.18, 0.00612, 102, -22.41, 46.07, 0.11, 2, 27, 5.13, -23.87, 0.6994, 26, 41.08, -23.87, 0.3006, 3, 27, -15.62, -24.58, 0.10595, 26, 20.33, -24.58, 0.85365, 25, 56.28, -24.58, 0.0404, 3, 27, -33.92, -25.21, 7.9E-4, 26, 2.03, -25.21, 0.57156, 25, 37.98, -25.21, 0.42765, 3, 26, -19.29, -25.94, 0.05654, 25, 16.66, -25.94, 0.87764, 24, 52.61, -25.94, 0.06582, 3, 26, -34.16, -26.46, 4.4E-4, 25, 1.79, -26.46, 0.67282, 24, 37.74, -26.46, 0.32674, 2, 25, -3.13, -22.03, 0.47104, 24, 32.82, -22.03, 0.52896, 3, 25, -22.61, -22.55, 0.01665, 24, 13.34, -22.55, 0.87142, 23, 49.29, -22.55, 0.11193, 3, 24, -7.79, -23.11, 0.22064, 23, 28.17, -23.11, 0.77569, 22, 64.12, -23.11, 0.00367, 3, 24, -27.25, -23.62, 0.00219, 23, 8.7, -23.62, 0.77556, 22, 44.65, -23.62, 0.22225, 3, 21, 58.81, -24.2, 0.0114, 23, -13.09, -24.2, 0.12046, 22, 22.86, -24.2, 0.86813, 2, 21, 36.72, -24.79, 0.42237, 22, 0.77, -24.79, 0.57763, 2, 21, 1.72, -25.72, 0.99849, 22, -34.23, -25.72, 0.00151, 1, 21, -25.98, -26.46, 1, 1, 21, -26.33, 25.98, 1, 2, 21, -0.53, 25.24, 0.99997, 22, -36.48, 25.24, 3.0E-5, 2, 21, 32.85, 24.27, 0.56274, 22, -3.1, 24.27, 0.43726, 3, 21, 55.91, 23.6, 0.02334, 23, -15.99, 23.6, 0.05774, 22, 19.96, 23.6, 0.91892, 3, 24, -30.16, 22.96, 3.0E-4, 23, 5.79, 22.96, 0.6752, 22, 41.74, 22.96, 0.3245, 3, 24, -11, 22.41, 0.14886, 23, 24.95, 22.41, 0.84172, 22, 60.9, 22.41, 0.00941, 3, 25, -26.16, 21.8, 0.00663, 24, 9.79, 21.8, 0.80794, 23, 45.74, 21.8, 0.18543, 3, 25, -7.19, 21.25, 0.35697, 24, 28.76, 21.25, 0.64235, 23, 64.72, 21.25, 6.7E-4, 2, 25, -6.22, 28.1, 0.49898, 24, 29.73, 28.1, 0.50102, 3, 26, -21.82, 27.15, 0.04097, 25, 14.13, 27.15, 0.83939, 24, 50.08, 27.15, 0.11963, 3, 26, -2.4, 26.25, 0.4338, 25, 33.55, 26.25, 0.56533, 24, 69.5, 26.25, 8.7E-4, 3, 27, -19.88, 25.4, 0.04332, 26, 16.07, 25.4, 0.87101, 25, 52.02, 25.4, 0.08567, 2, 27, 1.21, 24.42, 0.5677, 26, 37.16, 24.42, 0.4323, 4, 28, -15.94, 23.55, 0.03449, 27, 20.01, 23.55, 0.83346, 26, 55.96, 23.55, 0.02204, 102, 24.27, 51.7, 0.11, 3, 28, 0.25, 22.8, 0.31657, 27, 36.2, 22.8, 0.41343, 102, 23.66, 35.6, 0.27, 3, 28, 18.49, 21.95, 0.22027, 27, 54.44, 21.95, 0.00973, 102, 22.94, 17.27, 0.77, 1, 102, 34.58, 10.59, 1, 1, 102, 34.67, -2.26, 1, 1, 102, -20.38, -2.65, 1, 1, 21, 0.45, 0, 1, 1, 24, 31.4, 0, 1, 1, 24, 11.41, 0, 1, 1, 23, 26.57, 0, 1, 1, 23, 7.43, 0, 1, 1, 22, 20.94, 0, 1, 1, 21, 34.45, 0, 1, 2, 28, 23.32, 0.24, 0.23, 102, 1.26, 12.26, 0.77, 1, 25, 15.67, 0.04, 1, 2, 26, -0.81, 0.07, 0.37007, 25, 35.14, 0.07, 0.62993, 1, 26, 18, 0.1, 1, 2, 27, 2.5, 0.14, 0.92465, 26, 38.45, 0.14, 0.07535, 2, 27, 22.3, 0.17, 0.89, 102, 0.91, 49.21, 0.11, 3, 28, 2.2, 0.2, 0.65329, 27, 38.15, 0.2, 0.07671, 102, 1.08, 33.46, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-spring-dress/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 }, + "mouth-smile": { "name": "girl/mouth-smile", "path": "girl-spring-dress/mouth-smile", "x": -4.12, "y": 2.56, "width": 57, "height": 13 } + }, + "neck": { + "neck": { "name": "girl-spring-dress/neck", "x": 27.19, "y": -3.15, "rotation": -91.34, "width": 39, "height": 63 } + }, + "nose": { + "nose": { + "name": "girl/nose", + "type": "mesh", + "path": "girl-spring-dress/nose", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 6, 57.27, -63, 0.68, 29, 14.7, -17.7, 0.32, 2, 6, 56.34, -41.02, 0.73, 29, -7.3, -17.7, 0.27, 2, 6, 69.33, -40.47, 0.73, 29, -7.3, -4.7, 0.27, 2, 6, 70.26, -62.45, 0.68, 29, 14.7, -4.7, 0.32 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 22, + "height": 13 + } + }, + "ribbon-shoulder": { + "ribbon-shoulder": { "name": "girl-spring-dress/shoulder-ribbon", "x": 100.69, "y": -35.56, "rotation": -94.33, "width": 71, "height": 48 } + }, + "skirt": { + "skirt": { + "name": "girl-spring-dress/skirt", + "type": "mesh", + "uvs": [ 0.532, 0, 0.4709, 0, 0.41171, 0, 0.25323, 0.09671, 0.14058, 0.22113, 0.0623, 0.34554, 0, 0.45708, 6.0E-5, 0.78742, 0.1654, 0.88181, 0.31815, 1, 0.50526, 1, 0.68856, 1, 0.83749, 0.87752, 0.99236, 0.73165, 1, 0.41418, 0.9215, 0.29835, 0.84131, 0.18252, 0.72866, 0.06668, 0.6141, 0, 0.13103, 0.46995, 0.23796, 0.60724, 0.35252, 0.69733, 0.50336, 0.74023, 0.6561, 0.69733, 0.76875, 0.60724, 0.86613, 0.46137, 0.78212, 0.3198, 0.71338, 0.41418, 0.62555, 0.47424, 0.51672, 0.4914, 0.38498, 0.48711, 0.29906, 0.39702, 0.21695, 0.30264, 0.35443, 0.23399, 0.29524, 0.1868, 0.42507, 0.25973, 0.52818, 0.26832, 0.59309, 0.24257, 0.64083, 0.19967, 0.69429, 0.14819 ], + "triangles": [ 20, 31, 30, 30, 35, 29, 29, 36, 28, 29, 35, 36, 30, 31, 35, 36, 37, 28, 28, 37, 27, 38, 27, 37, 31, 33, 35, 31, 32, 33, 38, 39, 26, 32, 34, 33, 32, 4, 34, 0, 37, 36, 36, 35, 1, 36, 1, 0, 33, 2, 35, 35, 2, 1, 38, 0, 18, 38, 37, 0, 33, 34, 2, 4, 3, 34, 38, 18, 39, 34, 3, 2, 39, 18, 17, 12, 11, 23, 23, 24, 12, 12, 24, 13, 24, 25, 13, 13, 25, 14, 28, 27, 24, 24, 27, 25, 27, 26, 25, 25, 15, 14, 25, 26, 15, 26, 27, 38, 26, 16, 15, 26, 39, 16, 39, 17, 16, 23, 28, 24, 9, 22, 10, 23, 11, 22, 11, 10, 22, 9, 21, 22, 9, 8, 21, 23, 22, 29, 22, 21, 29, 29, 28, 23, 21, 30, 29, 21, 20, 30, 8, 20, 21, 8, 7, 20, 7, 19, 20, 7, 6, 19, 20, 19, 31, 6, 5, 19, 19, 32, 31, 19, 5, 32, 5, 4, 32 ], + "vertices": [ 1, 4, 17.29, -36.28, 1, 1, 4, 18.97, -14.1, 1, 1, 4, 20.6, 7.38, 1, 2, 110, 65.82, -89.43, 0.30593, 4, 9.32, 66.08, 0.69407, 2, 110, 45.66, -48.43, 0.65597, 4, -7.68, 108.49, 0.34403, 2, 110, 25.51, -19.93, 0.88973, 4, -25.63, 138.42, 0.11027, 1, 110, 7.44, 2.74, 1, 1, 110, -46.08, 2.72, 1, 3, 110, -61.37, -57.46, 0.25894, 105, 13.43, 107.85, 0.71, 4, -115.09, 107.55, 0.03106, 3, 110, -80.52, -113.06, 0.21204, 105, -5.71, 52.25, 0.72535, 4, -138.37, 53.55, 0.06261, 1, 105, -5.71, -15.86, 1, 3, 105, -5.71, -82.58, 0.58138, 109, -87.91, 109.6, 0.34368, 4, -148.54, -80.89, 0.07494, 3, 105, 14.13, -136.79, 0.26163, 109, -68.06, 55.39, 0.68053, 4, -132.84, -136.44, 0.05783, 2, 105, 37.76, -193.16, 0.24, 109, -44.43, -0.99, 0.76, 1, 109, 7, -3.77, 1, 2, 109, 25.76, 24.81, 0.90843, 4, -41.59, -174.01, 0.09157, 2, 109, 44.53, 54, 0.73242, 4, -20.68, -146.32, 0.26758, 2, 109, 63.29, 95, 0.45401, 4, 1.12, -106.85, 0.54599, 1, 4, 15.04, -66.08, 1, 3, 110, 5.35, -44.95, 0.6612, 105, 80.15, 120.36, 0.2, 4, -47.61, 114.99, 0.1388, 3, 110, -16.89, -83.87, 0.37019, 105, 57.91, 81.44, 0.45, 4, -72.73, 77.86, 0.17981, 3, 110, -31.48, -125.57, 0.18786, 105, 43.32, 39.74, 0.5858, 4, -90.42, 37.38, 0.22634, 3, 105, 36.37, -15.16, 0.75525, 109, -45.82, 177.01, 0.06474, 4, -101.5, -16.84, 0.18, 3, 105, 43.32, -70.76, 0.49637, 109, -38.87, 121.41, 0.31941, 4, -98.76, -72.81, 0.18423, 3, 105, 57.91, -111.77, 0.4, 109, -24.28, 80.41, 0.47496, 4, -87.3, -114.8, 0.12504, 3, 105, 81.54, -147.21, 0.16, 109, -0.65, 44.96, 0.74601, 4, -66.41, -151.92, 0.09399, 3, 105, 104.48, -116.63, 0.17, 109, 22.29, 75.54, 0.56301, 4, -41.23, -123.16, 0.26699, 3, 105, 89.19, -91.61, 0.24, 109, 7, 100.56, 0.43686, 4, -54.59, -97.06, 0.32314, 3, 105, 79.46, -59.64, 0.33142, 109, -2.73, 132.53, 0.26648, 4, -61.88, -64.45, 0.40211, 3, 105, 76.68, -20.03, 0.40588, 109, -5.51, 172.15, 0.09581, 4, -61.67, -24.73, 0.49831, 3, 110, 2.57, -137.39, 0.12845, 105, 77.37, 27.93, 0.35758, 4, -57.36, 23.03, 0.51397, 3, 110, 17.17, -106.11, 0.2437, 105, 91.97, 59.2, 0.31, 4, -40.45, 53.12, 0.4463, 3, 110, 32.46, -76.23, 0.46618, 105, 107.26, 89.09, 0.09047, 4, -22.95, 81.76, 0.44335, 3, 110, 43.58, -126.27, 0.11844, 105, 118.38, 39.05, 0.11, 4, -15.63, 31.03, 0.77156, 3, 110, 51.22, -104.72, 0.22926, 105, 126.02, 60.59, 0.0575, 4, -6.38, 51.94, 0.71324, 2, 105, 114.21, 13.33, 0.17, 4, -21.73, 5.7, 0.83, 3, 105, 112.82, -24.2, 0.14524, 109, 30.63, 167.98, 0.09502, 4, -25.94, -31.62, 0.75974, 3, 105, 116.99, -47.83, 0.14384, 109, 34.8, 144.35, 0.18939, 4, -23.57, -55.49, 0.66677, 3, 105, 123.94, -65.2, 0.09, 109, 41.75, 126.97, 0.28023, 4, -17.95, -73.34, 0.62977, 3, 105, 132.28, -84.66, 0.03, 109, 50.09, 107.51, 0.39568, 4, -11.1, -93.38, 0.57432 ], + "hull": 19, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 4, 2, 70, 2, 2, 0, 0, 36, 72, 0, 18, 20, 20, 22, 44, 20, 54, 76 ], + "width": 364, + "height": 162 + } + }, + "underskirt": { + "underskirt": { + "name": "girl-spring-dress/underskirt", + "type": "mesh", + "uvs": [ 0.13668, 0, 0, 0.11048, 0, 0.35349, 0, 0.5756, 0.07116, 0.76423, 0.25979, 0.94448, 0.46464, 1, 0.68672, 0.97656, 0.87735, 0.83221, 1, 0.55421, 1, 0.38798, 1, 0, 0.79052, 0.28923, 0.64716, 0.42987, 0.49934, 0.45979, 0.35819, 0.40892, 0.23815, 0.30419, 0.12923, 0.13064, 0.52712, 0.17253 ], + "triangles": [ 13, 14, 18, 15, 16, 18, 18, 0, 11, 17, 0, 18, 13, 18, 12, 14, 15, 18, 12, 18, 11, 9, 8, 12, 8, 13, 12, 12, 10, 9, 12, 11, 10, 7, 13, 8, 7, 6, 14, 6, 5, 14, 14, 13, 7, 5, 15, 14, 5, 4, 15, 16, 4, 3, 16, 15, 4, 3, 2, 16, 2, 17, 16, 2, 1, 17, 17, 1, 0, 16, 17, 18 ], + "vertices": [ 4, 111, 66.62, -34.12, 0.33917, 108, 115.67, 117.58, 0.06079, 112, 61.17, 280.19, 4.0E-5, 4, -32.12, 111.03, 0.6, 2, 111, 52.25, 13.72, 0.98771, 108, 101.3, 165.42, 0.01229, 2, 111, 20.66, 13.72, 0.99893, 108, 69.71, 165.42, 0.00107, 2, 111, -8.21, 13.72, 0.78, 108, 40.84, 165.42, 0.22, 2, 111, -37.4, -20.91, 0.53, 108, 11.65, 130.79, 0.47, 2, 111, -56.17, -77.21, 0.435, 108, -7.12, 74.49, 0.565, 3, 111, -63.38, -154.35, 0.00296, 108, -14.33, -2.65, 0.98871, 112, -68.83, 159.96, 0.00833, 2, 108, -11.29, -74.93, 0.61621, 112, -65.78, 87.68, 0.38379, 2, 108, 7.48, -141.65, 0.5, 112, -47.02, 20.96, 0.5, 2, 108, 43.62, -184.58, 0.24, 112, -10.88, -21.97, 0.76, 1, 112, 10.73, -21.97, 1, 3, 108, 115.67, -184.58, 7.6E-4, 112, 61.17, -21.97, 0.88924, 4, -54.9, -190.27, 0.11, 4, 111, 29.02, -262.96, 2.5E-4, 108, 78.07, -111.26, 0.4, 112, 23.57, 51.35, 0.49361, 4, -86.87, -114.32, 0.10614, 4, 111, 13.85, -221.73, 0.00648, 108, 62.89, -70.03, 0.45247, 112, 8.4, 92.58, 0.40105, 4, -98.89, -72.07, 0.14, 4, 111, 6.84, -166.5, 0.0591, 108, 55.89, -14.79, 0.67677, 112, 1.4, 147.82, 0.12413, 4, -101.7, -16.46, 0.14, 4, 111, 13.46, -111.65, 0.28006, 108, 62.51, 40.06, 0.56032, 112, 8.01, 202.67, 0.01962, 4, -90.97, 37.74, 0.14, 4, 111, 27.07, -69.63, 0.54438, 108, 76.12, 82.07, 0.31301, 112, 21.63, 244.68, 0.00262, 4, -74.23, 78.6, 0.14, 4, 111, 49.63, -31.51, 0.74734, 108, 98.68, 120.19, 0.11265, 112, 44.19, 282.8, 1.0E-5, 4, -48.86, 114.91, 0.14, 1, 4, -64.79, -23.54, 1 ], + "hull": 12, + "edges": [ 0, 2, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 22, 16, 24, 18, 20, 20, 22, 12, 28, 10, 30, 8, 32, 14, 26, 2, 4, 4, 6, 32, 4 ], + "width": 350, + "height": 130 + } + } + } + }, + { + "name": "eyelids/girly", + "attachments": { + "eye-back-low-eyelid": { + "eye-back-low-eyelid": { + "name": "girl/eye-back-low-eyelid", + "type": "mesh", + "uvs": [ 0, 0.26476, 0.20331, 0.79621, 0.50495, 0.95421, 0.8401, 0.89676, 1, 0.33658, 0.88319, 0.07803, 0.75871, 0.25039, 0.5241, 0.35094, 0.31343, 0.19294, 0.09798, 0 ], + "triangles": [ 3, 2, 7, 2, 1, 7, 7, 6, 3, 3, 6, 4, 1, 8, 7, 1, 0, 8, 6, 5, 4, 0, 9, 8 ], + "vertices": [ 1, 42, -29.75, 1.38, 1, 2, 42, -23.04, -4.47, 0.63, 43, 23.4, -1.82, 0.37, 2, 42, -13.09, -6.21, 0.62, 43, 14.27, 2.5, 0.38, 2, 42, -2.03, -5.57, 0.76, 43, 3.44, 4.83, 0.24, 1, 42, 3.25, 0.59, 1, 1, 42, -0.61, 3.43, 1, 2, 42, -4.72, 1.54, 0.76, 43, 4.14, -2.74, 0.24, 2, 42, -12.46, 0.43, 0.62, 43, 11.9, -3.73, 0.38, 2, 42, -19.41, 2.17, 0.63, 43, 18.14, -7.25, 0.37, 1, 42, -26.52, 4.29, 1 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 33, + "height": 11 + } + }, + "eye-back-up-eyelid": { + "eye-back-up-eyelid": { + "name": "girl/eye-back-up-eyelid", + "type": "mesh", + "uvs": [ 0.07861, 0.9592, 0.24977, 0.54703, 0.44727, 0.42338, 0.58882, 0.40964, 0.77315, 0.59512, 1, 0.16921, 1, 0, 0.76657, 0.13486, 0.61844, 0, 0.40119, 0.01807, 0.18065, 0.25164, 0, 0.73938, 0, 0.95234 ], + "triangles": [ 1, 10, 2, 3, 2, 9, 2, 10, 9, 3, 9, 8, 3, 8, 7, 1, 0, 11, 0, 12, 11, 11, 10, 1, 3, 7, 4, 4, 7, 5, 7, 6, 5 ], + "vertices": [ 1, 40, -31.8, -11.42, 1, 2, 40, -23.59, -1.94, 0.51, 41, 22.75, 6.53, 0.49, 2, 40, -14.11, 0.91, 0.15, 41, 14.01, 1.88, 0.85, 1, 41, 7.41, 0.24, 1, 1, 40, 1.53, -3.04, 1, 1, 40, 12.42, 6.75, 1, 1, 40, 12.42, 10.64, 1, 1, 40, 1.22, 7.54, 1, 1, 41, 7.87, -9.28, 1, 2, 40, -16.32, 10.23, 0.15, 41, 18.01, -6.83, 0.85, 2, 40, -26.91, 4.86, 0.52, 41, 27.34, 0.52, 0.48, 1, 40, -35.58, -6.36, 1, 1, 40, -35.58, -11.26, 1 ], + "hull": 13, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24 ], + "width": 48, + "height": 23 + } + }, + "eye-back-up-eyelid-back": { + "eye-back-up-eyelid-back": { + "name": "girl/eye-back-up-eyelid-back", + "type": "mesh", + "uvs": [ 0.12627, 1, 0, 0.99472, 0, 0.60349, 0.16345, 0.30253, 0.44692, 0.06177, 0.74898, 0.00911, 1, 0.1972, 1, 0.52073, 0.72574, 0.37025, 0.49339, 0.42292, 0.25639, 0.68625 ], + "triangles": [ 0, 1, 2, 10, 0, 2, 10, 3, 9, 9, 4, 8, 8, 6, 7, 2, 3, 10, 3, 4, 9, 8, 5, 6, 8, 4, 5 ], + "vertices": [ 1, 40, -28.64, -7.74, 1, 1, 40, -32.94, -7.63, 1, 1, 39, -19.88, 27.79, 1, 1, 39, -14.32, 34.11, 1, 1, 39, -4.69, 39.17, 1, 1, 39, 5.58, 40.27, 1, 1, 39, 14.12, 36.32, 1, 1, 40, 1.06, 2.33, 1, 1, 41, 9.18, -3.76, 1, 2, 41, 16.71, -1.13, 0.92, 40, -16.16, 4.38, 0.08, 2, 41, 23.53, 5.88, 0.33, 40, -24.22, -1.15, 0.67 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 34, + "height": 21 + } + }, + "eye-back-white": { + "eye-back-white": { + "name": "girl/eye-white-back", + "type": "mesh", + "uvs": [ 0, 0.39191, 0.07911, 0.7283, 0.26952, 0.95255, 0.56931, 0.98823, 0.90962, 0.92197, 1, 0.50404, 0.94608, 0.17784, 0.76378, 0.00455, 0.50855, 0, 0.20875, 0.12178, 0.56121, 0.48365 ], + "triangles": [ 3, 2, 10, 4, 3, 10, 2, 1, 10, 4, 10, 5, 10, 8, 7, 9, 8, 10, 1, 0, 10, 10, 6, 5, 0, 9, 10, 10, 7, 6 ], + "vertices": [ 1, 40, -34.26, -6.05, 1, 1, 42, -30.63, 5.01, 1, 2, 42, -23.2, -1.94, 0.5, 43, 22.88, -4.3, 0.5, 2, 42, -11.51, -3.04, 0.61, 43, 11.91, -0.13, 0.39, 1, 42, 1.76, -0.99, 1, 2, 40, 4.74, -9.52, 0.54, 42, 5.29, 11.97, 0.46, 1, 40, 2.64, 0.59, 1, 2, 40, -4.47, 5.96, 0.35, 41, 5.55, -4.97, 0.65, 2, 40, -14.42, 6.1, 0.22, 41, 15.34, -3.16, 0.78, 2, 40, -26.12, 2.33, 0.49, 41, 26.07, 2.84, 0.51, 2, 40, -12.37, -8.89, 0.71, 43, 8.05, -15.29, 0.29 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 39, + "height": 31 + } + }, + "eye-front-low-eyelid": { + "eye-front-low-eyelid": { + "name": "girl/eye-front-low-eyelid", + "type": "mesh", + "uvs": [ 0.07038, 0, 0, 0.43773, 0.24154, 0.94046, 0.64093, 0.92609, 1, 0.39464, 1, 0.00682, 0.8516, 0, 0.61899, 0.36591, 0.30738, 0.39464 ], + "triangles": [ 8, 7, 3, 2, 8, 3, 2, 1, 8, 6, 5, 4, 7, 6, 4, 1, 0, 8, 3, 7, 4 ], + "vertices": [ 1, 36, -0.25, 5.3, 1, 1, 36, -2.79, 0.49, 1, 1, 37, 6.69, -3.95, 1, 2, 36, 20.29, -4.89, 0.61, 37, 20.82, -1.32, 0.39, 1, 36, 33.21, 0.96, 1, 1, 36, 33.21, 5.23, 1, 1, 36, 27.87, 5.3, 1, 2, 36, 19.5, 1.28, 0.61, 37, 18.99, 4.61, 0.39, 1, 37, 7.99, 2.37, 1 ], + "hull": 9, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 0, 16 ], + "width": 36, + "height": 11 + } + }, + "eye-front-up-eyelid": { + "eye-front-up-eyelid": { + "name": "girl/eye-front-up-eyelid", + "type": "mesh", + "uvs": [ 0.32251, 0.43387, 0.36464, 0.94737, 0.28564, 1, 0.16714, 0.73859, 0.15924, 0.42823, 0, 0.24201, 0, 0, 0.22771, 0.2138, 0.41731, 0, 0.66747, 0, 0.88604, 0.23637, 1, 0.54673, 1, 0.81194, 0.86497, 0.79501, 0.74121, 0.4903, 0.61217, 0.35487, 0.45417, 0.35487 ], + "triangles": [ 14, 15, 10, 2, 3, 1, 3, 0, 1, 13, 11, 12, 13, 14, 11, 3, 4, 0, 14, 10, 11, 0, 4, 7, 4, 5, 7, 5, 6, 7, 16, 0, 7, 7, 8, 16, 10, 15, 9, 9, 15, 8, 15, 16, 8 ], + "vertices": [ 2, 35, 6.87, 1.33, 0.47507, 34, 6.4, 2.84, 0.52493, 2, 35, 6.12, -13.25, 0.09298, 34, 8.93, -11.54, 0.90702, 1, 34, 4.19, -13.01, 1, 1, 34, -2.92, -5.69, 1, 2, 35, -2.64, 3.68, 0.0415, 34, -3.4, 3, 0.9585, 1, 34, -12.95, 8.21, 1, 1, 34, -12.95, 14.99, 1, 2, 35, 2.71, 8.61, 0.27883, 34, 0.71, 9, 0.72117, 1, 35, 15.14, 11.9, 1, 2, 35, 29.76, 8.54, 0.65, 34, 27.1, 14.99, 0.35, 2, 35, 41.06, -0.85, 0.28137, 34, 40.21, 8.37, 0.71863, 1, 34, 47.05, -0.32, 1, 1, 34, 47.05, -7.75, 1, 2, 35, 36.33, -15.81, 0.07124, 34, 38.95, -7.27, 0.92876, 2, 35, 31, -5.83, 0.45, 34, 31.52, 1.26, 0.55, 2, 35, 24.31, -0.4, 0.65, 34, 23.78, 5.05, 0.35, 2, 35, 15.07, 1.72, 0.76, 34, 14.3, 5.05, 0.24 ], + "hull": 17, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 0, 32 ], + "width": 60, + "height": 28 + } + }, + "eye-front-up-eyelid-back": { + "eye-front-up-eyelid-back": { + "name": "girl/eye-front-up-eyelid-back", + "type": "mesh", + "uvs": [ 0.05111, 0.59525, 0.31445, 0.34389, 0.48174, 0.29362, 0.69861, 0.43007, 0.81323, 0.65271, 0.90617, 1, 1, 1, 1, 0.74607, 0.93406, 0.48034, 0.78845, 0.18589, 0.62115, 0, 0.49104, 0, 0.26798, 0, 0, 0.28644, 0, 0.48752 ], + "triangles": [ 3, 2, 9, 2, 1, 12, 5, 7, 6, 5, 4, 7, 4, 8, 7, 4, 3, 8, 0, 14, 1, 14, 13, 1, 3, 9, 8, 10, 9, 2, 10, 2, 11, 1, 13, 12, 2, 12, 11 ], + "vertices": [ 1, 78, -25.28, -10.9, 1, 1, 35, 14.1, 7.02, 1, 1, 35, 22.66, 6.19, 1, 2, 78, 7.58, -7.27, 0.37, 35, 32.77, 0.79, 0.63, 2, 78, 13.43, -12.17, 0.71, 35, 37.37, -5.29, 0.29, 1, 78, 18.17, -19.81, 1, 1, 78, 22.96, -19.81, 1, 1, 78, 22.96, -14.22, 1, 1, 78, 19.59, -8.37, 1, 1, 78, 12.17, -1.9, 1, 1, 78, 3.63, 2.19, 1, 1, 78, -3, 2.19, 1, 1, 78, -14.38, 2.19, 1, 1, 78, -28.04, -4.11, 1, 1, 78, -28.04, -8.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 51, + "height": 22 + } + }, + "eye-front-white": { + "eye-front-white": { + "name": "girl/eye-white-front", + "type": "mesh", + "uvs": [ 0, 0.13677, 0.03631, 0.56139, 0.18641, 0.96133, 0.54191, 0.97121, 0.90531, 0.87739, 1, 0.54164, 1, 0.24046, 0.80425, 0.13009, 0.57351, 0, 0.25751, 0.00346, 0.47082, 0.52682 ], + "triangles": [ 3, 2, 10, 2, 1, 10, 4, 3, 10, 4, 10, 5, 7, 6, 5, 1, 0, 10, 10, 9, 8, 10, 8, 7, 10, 7, 5, 0, 9, 10 ], + "vertices": [ 1, 34, 3.55, 4.71, 1, 2, 34, 5, -8.88, 0.5, 36, -3.97, 10.98, 0.5, 2, 36, 2.03, -1.82, 0.36, 37, 2.31, -1.44, 0.64, 2, 36, 16.25, -2.14, 0.32, 37, 16.37, 0.69, 0.68, 1, 36, 30.79, 0.87, 1, 1, 36, 34.57, 11.61, 1, 1, 34, 43.55, 1.39, 1, 2, 35, 35.91, -3.2, 0.27, 34, 35.72, 4.92, 0.73, 2, 35, 27.85, 2.93, 0.54, 34, 26.49, 9.09, 0.46, 2, 35, 15.51, 5.65, 0.62, 34, 13.85, 8.98, 0.38, 2, 35, 20.07, -12.59, 0.81, 37, 11.13, 14.21, 0.19 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 16, 18, 0, 18, 12, 14, 14, 16 ], + "width": 40, + "height": 32 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "eyes/green", + "attachments": { + "eye-back-iris": { + "eye-back-iris": { "name": "boy/eye-iris-back", "x": 0.85, "y": -0.75, "width": 33, "height": 34 } + }, + "eye-back-pupil": { + "eye-back-pupil": { "name": "boy/eye-back-pupil", "x": 0.43, "y": -0.67, "width": 15, "height": 17 } + }, + "eye-front-iris": { + "eye-front-iris": { "name": "boy/eye-iris-front", "x": 0.22, "y": -0.71, "width": 36, "height": 35 } + }, + "eye-front-pupil": { + "eye-front-pupil": { "name": "boy/eye-front-pupil", "x": -0.04, "y": -0.47, "width": 17, "height": 17 } + }, + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "accessories/hat-pointy-blue-yellow", + "bones": [ "hat", "hat-base", "hat-control", "pompom-control" ], + "transform": [ "hat-control" ], + "attachments": { + "hat": { + "hat": { + "name": "girl/hat", + "type": "mesh", + "uvs": [ 0.0927, 1, 0.3018, 1, 0.54117, 0.96286, 0.79429, 0.88837, 1, 0.78284, 1, 0.66491, 0.89885, 0.53766, 0.8163, 0.53766, 0.73848, 0.40186, 0.65555, 0.25718, 0.57433, 0.11546, 0.50815, 0, 0.34032, 7.2E-4, 0.28185, 0.15871, 0.21639, 0.33559, 0.15752, 0.49466, 0.1037, 0.64008, 0.01016, 0.65249, 0, 0.94734, 0.30731, 0.64939, 0.62096, 0.58421, 0.46964, 0.62146, 0.43112, 0.10625, 0.57911, 0.43657, 0.45775, 0.46247, 0.32733, 0.47774, 0.53642, 0.28599, 0.44504, 0.29245, 0.34714, 0.30794, 0.49454, 0.13823, 0.36433, 0.16053 ], + "triangles": [ 22, 27, 30, 29, 27, 22, 30, 13, 12, 10, 29, 11, 22, 12, 11, 29, 22, 11, 22, 30, 12, 28, 13, 30, 26, 10, 9, 23, 26, 9, 23, 9, 8, 24, 27, 26, 24, 26, 23, 28, 27, 24, 25, 14, 28, 25, 28, 24, 15, 14, 25, 20, 23, 8, 20, 8, 7, 20, 21, 24, 20, 24, 23, 25, 24, 21, 19, 15, 25, 19, 25, 21, 16, 15, 19, 7, 6, 5, 3, 20, 7, 5, 3, 7, 4, 3, 5, 2, 21, 20, 2, 20, 3, 16, 18, 17, 1, 0, 16, 0, 18, 16, 19, 1, 16, 19, 21, 2, 1, 19, 2, 14, 13, 28, 28, 30, 27, 26, 29, 10, 27, 29, 26 ], + "vertices": [ 2, 50, -28.98, 69.5, 0.88, 52, -75.23, 83.03, 0.12, 2, 50, -27.34, 30.85, 0.76, 52, -79.03, 44.54, 0.24, 3, 50, -19.38, -13.13, 0.7291, 51, -12.02, -7.08, 9.0E-4, 52, -77.31, -0.13, 0.27, 2, 50, -5.19, -59.4, 0.8, 52, -69.75, -47.93, 0.2, 2, 50, 13.71, -96.69, 0.99957, 51, 9.03, -94.45, 4.3E-4, 2, 50, 33.04, -95.87, 0.95114, 51, 28.28, -96.35, 0.04886, 2, 50, 53.1, -76.29, 0.88191, 51, 50.88, -79.78, 0.11809, 3, 50, 52.45, -61.03, 0.879, 51, 52.38, -64.58, 0.11986, 52, -12.91, -57.63, 0.00114, 2, 50, 74.09, -45.7, 0.87726, 51, 75.96, -52.44, 0.12274, 3, 50, 97.14, -29.37, 0.73206, 51, 101.08, -39.5, 0.26419, 52, 35.78, -32.55, 0.00375, 3, 50, 119.73, -13.37, 0.42555, 51, 125.68, -26.83, 0.5184, 52, 60.39, -19.88, 0.05605, 3, 50, 138.13, -0.34, 0.29174, 51, 145.73, -16.5, 0.61231, 52, 80.43, -9.55, 0.09595, 3, 50, 136.69, 30.68, 0.22303, 51, 148.66, 14.41, 0.65697, 52, 83.36, 21.36, 0.12, 3, 50, 110.35, 40.39, 0.31671, 51, 123.93, 27.72, 0.59996, 52, 58.64, 34.67, 0.08333, 3, 50, 80.85, 51.26, 0.62374, 51, 96.25, 42.61, 0.36063, 52, 30.96, 49.57, 0.01563, 2, 50, 54.33, 61.03, 0.82549, 51, 71.36, 56.01, 0.17451, 2, 50, 30.08, 69.97, 0.88, 51, 48.61, 68.26, 0.12, 2, 50, 27.31, 87.17, 0.88702, 51, 48.28, 85.68, 0.11298, 1, 50, -21.08, 87, 1, 3, 50, 30.15, 32.27, 0.59407, 51, 43.39, 30.93, 0.18593, 52, -21.91, 37.88, 0.22, 3, 50, 43.29, -25.25, 0.66536, 51, 48.33, -27.87, 0.09464, 52, -16.96, -20.91, 0.24, 3, 50, 36, 2.46, 0.5548, 51, 45, 0.59, 0.1752, 52, -20.29, 7.54, 0.27, 3, 50, 120.12, 13.16, 0.30606, 51, 129.79, -0.61, 0.55394, 52, 64.49, 6.34, 0.14, 3, 50, 67.15, -16.49, 0.68076, 51, 73.19, -22.54, 0.12924, 52, 7.89, -15.59, 0.19, 3, 50, 61.96, 5.77, 0.57797, 51, 71.16, 0.22, 0.21203, 52, 5.87, 7.17, 0.21, 3, 50, 58.43, 29.77, 0.62009, 51, 71.04, 24.48, 0.22991, 52, 5.75, 31.43, 0.15, 3, 50, 91.49, -7.55, 0.59613, 51, 98.54, -17.1, 0.26387, 52, 33.24, -10.15, 0.14, 3, 50, 89.71, 9.3, 0.49151, 51, 99.14, -0.18, 0.31849, 52, 33.85, 6.78, 0.19, 3, 50, 86.41, 27.28, 0.48715, 51, 98.39, 18.1, 0.34285, 52, 33.1, 25.05, 0.17, 3, 50, 115.37, 1.22, 0.38285, 51, 123.41, -11.77, 0.45715, 52, 58.12, -4.82, 0.16, 3, 50, 110.7, 25.13, 0.30156, 51, 122.14, 12.56, 0.52844, 52, 56.84, 19.51, 0.17 ], + "hull": 19, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 32, 34, 34, 36, 0, 36, 30, 32, 28, 30, 14, 16, 16, 18, 40, 46, 16, 46, 42, 48, 46, 48, 38, 50, 48, 50, 52, 46, 18, 52, 44, 54, 54, 48, 52, 54, 56, 50, 54, 56, 56, 28, 18, 20, 20, 22, 58, 52, 20, 58, 60, 56, 24, 26, 26, 28, 60, 26 ], + "width": 185, + "height": 164 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "pompom": { + "pompom": { "name": "girl/pompom", "x": 0.31, "y": -0.35, "rotation": -95.63, "width": 96, "height": 85 } + } + } + }, + { + "name": "accessories/hat-red-yellow", + "bones": [ "hat", "hat-base", "hat-control", "pompom-control" ], + "transform": [ "hat-control" ], + "attachments": { + "hat": { + "hat": { + "name": "boy/hat", + "type": "mesh", + "uvs": [ 1, 0.67762, 0.84575, 0.80843, 0.65489, 0.90654, 0.43192, 0.966, 0.225, 0.99573, 0.03592, 0.98978, 0, 0.85303, 0.027, 0.47546, 0.07694, 0.46357, 0.10013, 0.306, 0.18575, 0.11573, 0.31954, 0.01465, 0.49257, 0, 0.64775, 0.03249, 0.7637, 0.14546, 0.83327, 0.31492, 0.9064, 0.32384, 1, 0.53789, 0.22857, 0.48438, 0.39089, 0.45168, 0.59424, 0.40708, 0.74765, 0.3506, 0.24819, 0.2733, 0.38197, 0.25843, 0.57997, 0.21384 ], + "triangles": [ 20, 24, 21, 23, 24, 20, 19, 23, 20, 22, 10, 11, 22, 23, 19, 23, 22, 11, 23, 11, 12, 23, 12, 24, 24, 12, 13, 24, 13, 14, 21, 24, 14, 19, 20, 2, 8, 9, 18, 18, 19, 3, 15, 17, 21, 17, 15, 16, 0, 1, 17, 1, 21, 17, 6, 7, 8, 18, 6, 8, 2, 20, 1, 3, 19, 2, 4, 6, 18, 4, 5, 6, 18, 3, 4, 20, 21, 1, 18, 9, 22, 9, 10, 22, 18, 22, 19, 21, 14, 15 ], + "vertices": [ 1, 50, 13.89, -96.68, 1, 2, 50, -1.83, -68.79, 0.82, 52, -67.01, -62.58, 0.18, 2, 50, -14.21, -33.97, 0.72, 52, -74.39, -26.37, 0.28, 2, 50, -22.55, 6.96, 0.72, 52, -76.91, 15.33, 0.28, 2, 50, -27.47, 45.07, 0.82, 52, -76.43, 53.75, 0.18, 1, 50, -28.29, 80.05, 1, 1, 50, -13.41, 87.33, 1, 2, 50, 28.67, 84.11, 0.94502, 51, 49.2, 82.46, 0.05498, 3, 50, 30.39, 74.94, 0.90664, 51, 49.61, 73.14, 0.07509, 52, -14.96, 75.21, 0.01827, 2, 50, 48.04, 71.39, 0.83494, 51, 66.59, 67.15, 0.16506, 2, 50, 69.81, 56.46, 0.75704, 51, 86.05, 49.32, 0.24296, 2, 50, 82.07, 32.21, 0.73015, 51, 94.79, 23.58, 0.26985, 3, 50, 85.05, 0.3, 0.71911, 51, 93.27, -8.43, 0.27957, 52, 28.7, -6.36, 0.00132, 2, 50, 82.67, -28.54, 0.71902, 51, 86.86, -36.65, 0.28098, 2, 50, 71.05, -50.5, 0.7727, 51, 72.27, -56.76, 0.2273, 2, 50, 52.8, -64.16, 0.9302, 51, 52.29, -67.73, 0.0698, 2, 50, 52.39, -77.72, 0.97146, 51, 49.98, -81.09, 0.02854, 1, 50, 29.38, -96.02, 1, 3, 50, 29.27, 46.82, 0.76552, 51, 44.55, 45.45, 0.08448, 52, -20.01, 47.52, 0.15, 3, 50, 34.17, 16.97, 0.75083, 51, 45.22, 15.21, 0.07917, 52, -19.35, 17.28, 0.17, 3, 50, 40.71, -20.41, 0.75063, 51, 46.45, -22.71, 0.07937, 52, -18.11, -20.65, 0.17, 3, 50, 48.17, -48.5, 0.83648, 51, 49.91, -51.57, 0.09352, 52, -14.66, -49.51, 0.07, 3, 50, 52.83, 44.18, 0.71547, 51, 67.51, 39.54, 0.16811, 52, 2.95, 41.61, 0.11643, 3, 50, 55.53, 19.52, 0.68597, 51, 66.73, 14.75, 0.16403, 52, 2.16, 16.81, 0.15, 3, 50, 62.02, -16.86, 0.70061, 51, 68.06, -22.19, 0.18939, 52, 3.49, -20.13, 0.11 ], + "hull": 18, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 0, 34, 44, 22 ], + "width": 185, + "height": 111 + } + }, + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "pompom": { + "pompom": { "name": "boy/pompom", "x": -48.24, "y": 11.74, "rotation": -95.63, "width": 96, "height": 85 } + } + } + }, + { + "name": "clothes/hoodie-blue-and-scarf", + "bones": [ "scarf-back", "zip-girl" ], + "attachments": { + "arm-back": { + "arm-back": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "arm-back", "width": 71, "height": 229 } + }, + "body": { + "body": { + "name": "girl/body", + "type": "mesh", + "uvs": [ 0.59765, 0.99752, 0.42922, 1, 0.24876, 0.98569, 0.06428, 0.94872, 0.0322, 0.85553, 0.00613, 0.83483, 1.2E-4, 0.73129, 1.2E-4, 0.59965, 0.01215, 0.45174, 0.02217, 0.28165, 0.04624, 0.09676, 0.26881, 0, 0.59565, 0, 0.78012, 0.03908, 0.86835, 0.20473, 0.94053, 0.37187, 0.99066, 0.5257, 1, 0.64846, 1, 0.74608, 0.97663, 0.85405, 0.94455, 0.93392, 0.8102, 0.97682, 0.66583, 0.999, 0.27282, 0.87328, 0.44526, 0.88807, 0.58362, 0.88659, 0.66984, 0.88364, 0.81221, 0.8718, 0.94053, 0.8363, 0.61771, 0.76383, 0.71395, 0.75939, 0.26079, 0.7446, 0.95457, 0.70023, 0.96259, 0.76235, 0.61169, 0.64107, 0.58963, 0.51386, 0.54953, 0.37039, 0.64979, 0.35412, 0.6939, 0.50203, 0.71796, 0.63367, 0.26079, 0.53605, 0.2668, 0.3911, 0.85431, 0.31714, 0.93051, 0.4902, 0.42722, 0.12634, 0.54351, 0.11303, 0.49539, 0.24171, 0.59966, 0.221, 0.74202, 0.09676, 0.80218, 0.20473, 0.23071, 0.15001, 0.08634, 0.16924, 0.08233, 0.27721, 0.06428, 0.45174, 0.05225, 0.60409, 0.0703, 0.73425, 0.48183, 0.51247, 0.79828, 0.48323, 0.745, 0.43772 ], + "triangles": [ 17, 32, 43, 17, 43, 16, 32, 17, 18, 30, 34, 39, 33, 32, 18, 29, 34, 30, 32, 39, 57, 29, 31, 34, 5, 6, 55, 30, 32, 33, 32, 30, 39, 33, 27, 30, 19, 33, 18, 28, 33, 19, 4, 5, 55, 28, 27, 33, 31, 24, 23, 26, 29, 30, 26, 30, 27, 31, 29, 24, 25, 29, 26, 29, 25, 24, 20, 28, 19, 27, 28, 20, 4, 23, 3, 55, 23, 4, 31, 23, 55, 21, 26, 27, 21, 27, 20, 2, 3, 23, 0, 25, 26, 22, 0, 26, 21, 22, 26, 1, 23, 24, 2, 23, 1, 0, 1, 24, 0, 24, 25, 32, 57, 43, 42, 14, 15, 57, 42, 15, 31, 54, 40, 58, 37, 42, 57, 58, 42, 38, 37, 58, 38, 58, 57, 35, 36, 37, 35, 37, 38, 56, 36, 35, 43, 15, 16, 7, 8, 54, 39, 38, 57, 34, 35, 38, 34, 38, 39, 6, 7, 54, 31, 55, 54, 6, 54, 55, 56, 35, 34, 34, 31, 56, 43, 57, 15, 37, 49, 42, 48, 12, 13, 12, 44, 11, 45, 12, 48, 45, 44, 12, 50, 10, 11, 50, 11, 44, 51, 10, 50, 14, 49, 13, 48, 13, 49, 47, 45, 48, 47, 48, 49, 46, 44, 45, 46, 45, 47, 51, 9, 10, 52, 9, 51, 42, 49, 14, 37, 47, 49, 36, 46, 47, 36, 47, 37, 46, 41, 50, 46, 50, 44, 41, 46, 36, 52, 51, 50, 41, 52, 50, 53, 9, 52, 53, 52, 41, 8, 9, 53, 56, 41, 36, 40, 53, 41, 40, 41, 56, 54, 53, 40, 31, 40, 56, 54, 8, 53 ], + "vertices": [ 1, 2, 28.17, -64.12, 1, 1, 2, -4.5, -64.91, 1, 1, 2, -39.53, -61.29, 1, 1, 2, -75.35, -51.72, 1, 2, 3, -22.36, 79.55, 0.14323, 2, -81.68, -27.24, 0.85677, 2, 3, -16.73, 84.4, 0.19154, 2, -86.76, -21.81, 0.80846, 2, 3, 10.53, 84.54, 0.53301, 2, -88.04, 5.41, 0.46699, 2, 4, -18.75, 81.95, 0.21, 3, 45.12, 83.25, 0.79, 2, 4, 19.88, 76.85, 0.63, 3, 83.91, 79.46, 0.37, 1, 4, 64.36, 71.73, 1, 1, 4, 112.53, 63.61, 1, 1, 4, 134.84, 18.72, 1, 1, 4, 130.32, -44.52, 1, 2, 4, 117.52, -79.49, 0.86136, 3, 186.78, -73.49, 0.13864, 2, 4, 72.85, -93.46, 0.64743, 3, 142.61, -88.96, 0.35257, 3, 4, 28, -104.29, 0.26062, 3, 98.16, -101.31, 0.60938, 2, 94, 100.7, 0.13, 3, 4, -13.04, -111.11, 0.15, 3, 57.36, -109.51, 0.44607, 2, 103.9, 60.29, 0.40393, 3, 4, -45.38, -110.62, 0.11, 3, 25.03, -110.11, 0.28777, 2, 105.84, 28.01, 0.60223, 3, 4, -70.99, -108.79, 0.04, 3, -0.62, -109.15, 0.15795, 2, 105.95, 2.33, 0.80205, 1, 2, 101.54, -26.08, 1, 1, 2, 95.4, -47.11, 1, 1, 2, 69.38, -58.5, 1, 1, 2, 41.4, -64.45, 1, 1, 2, -34.98, -31.71, 1, 1, 2, -1.51, -35.46, 1, 1, 2, 25.33, -34.96, 1, 1, 2, 42.05, -34.11, 1, 1, 2, 69.66, -30.88, 1, 1, 2, 94.51, -21.44, 1, 1, 2, 31.81, -2.64, 1, 1, 2, 50.47, -1.4, 1, 2, 3, 5.13, 34.14, 0.47225, 2, -37.46, 2.12, 0.52775, 3, 4, -58.33, -100.86, 0.09, 3, 11.76, -100.8, 0.21274, 2, 97.09, 14.36, 0.69726, 3, 4, -74.74, -101.25, 0.05, 3, -4.63, -101.74, 0.13139, 2, 98.71, -1.97, 0.81861, 3, 4, -38.07, -35.62, 0.12, 3, 29.8, -34.91, 0.46014, 2, 30.5, 29.64, 0.41986, 3, 4, -4.4, -33.73, 0.32, 3, 63.39, -31.88, 0.5848, 2, 26.08, 63.07, 0.0952, 2, 4, 33.79, -28.66, 0.53, 3, 101.38, -25.52, 0.47, 2, 4, 36.68, -48.36, 0.50575, 3, 104.93, -45.12, 0.49425, 3, 4, -2.73, -54.13, 0.32, 3, 65.74, -52.21, 0.578, 2, 46.3, 66.27, 0.102, 3, 4, -37.6, -56.32, 0.12, 3, 30.97, -55.58, 0.4488, 2, 51.11, 31.67, 0.4312, 1, 4, -5.67, 30.32, 1, 1, 4, 32.27, 26.44, 1, 3, 4, 43.55, -88.63, 0.42337, 3, 113.17, -85.13, 0.53663, 2, 77.21, 115.03, 0.04, 3, 4, -2.9, -100.14, 0.24, 3, 67.13, -98.2, 0.4463, 2, 92.19, 69.57, 0.3137, 1, 4, 99.51, -9.56, 1, 1, 4, 101.39, -32.32, 1, 2, 4, 68.3, -20.59, 0.85, 3, 135.6, -16.29, 0.15, 2, 4, 72.29, -41.16, 0.83269, 3, 140.28, -36.71, 0.16731, 2, 4, 102.92, -71.03, 0.84329, 3, 171.9, -65.53, 0.15671, 2, 4, 73.76, -80.65, 0.68178, 3, 143.09, -76.13, 0.31822, 1, 4, 96.01, 28.91, 1, 1, 4, 92.97, 57.2, 1, 1, 4, 64.7, 60, 1, 2, 4, 19.16, 66.76, 0.69519, 3, 83.53, 69.35, 0.30481, 2, 4, -20.64, 71.95, 0.21, 3, 43.58, 73.18, 0.79, 2, 3, 9.24, 70.97, 0.46736, 2, -74.42, 4.69, 0.53264, 2, 4, -2.54, -12.9, 0.39471, 3, 64.54, -11, 0.60529, 3, 4, 0.76, -74.68, 0.37, 3, 69.92, -72.63, 0.47153, 2, 66.53, 71.3, 0.15847, 3, 4, 13.43, -65.22, 0.37172, 3, 82.27, -62.75, 0.51471, 2, 56.14, 83.22, 0.11357 ], + "hull": 23, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 0, 44, 58, 62 ], + "width": 194, + "height": 263 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "scarf": { + "scarf": { + "name": "girl/scarf", + "type": "mesh", + "uvs": [ 0, 0.69166, 0.08052, 0.80607, 0.18349, 0.90523, 0.29463, 0.96243, 0.44173, 1, 0.5921, 0.99676, 0.69655, 0.96098, 0.81649, 0.89046, 0.92984, 0.74335, 0.98437, 0.67259, 1, 0.62301, 1, 0.43614, 0.987, 0.34894, 0.95168, 0.11197, 0.8389, 0.11579, 0.75309, 0.14439, 0.66045, 0.15555, 0.57902, 0.16537, 0.46625, 0.11579, 0.37308, 0.07002, 0.28482, 0.02426, 0.20473, 0, 0.09849, 0.02044, 0.056, 0.3408, 0, 0.51623, 0.2505, 0.51241, 0.45971, 0.56199, 0.6444, 0.52385, 0.85198, 0.46283, 0.15733, 0.43995, 0.3453, 0.53148, 0.54797, 0.54292, 0.74737, 0.5086, 0.26684, 0.42851, 0.3506, 0.44336, 0.46122, 0.45875, 0.16878, 0.36367, 0.94187, 0.40181 ], + "triangles": [ 32, 15, 28, 28, 15, 37, 27, 31, 17, 31, 35, 17, 27, 16, 32, 32, 16, 15, 37, 15, 14, 18, 35, 34, 34, 33, 19, 12, 14, 13, 12, 37, 14, 23, 22, 36, 33, 36, 20, 27, 17, 16, 17, 35, 18, 18, 34, 19, 19, 33, 20, 36, 21, 20, 36, 22, 21, 28, 37, 11, 30, 25, 34, 30, 34, 35, 34, 25, 33, 24, 23, 29, 25, 29, 33, 29, 36, 33, 29, 23, 36, 37, 12, 11, 5, 4, 26, 4, 3, 26, 6, 5, 31, 5, 26, 31, 26, 3, 30, 31, 27, 6, 7, 27, 32, 7, 6, 27, 3, 2, 30, 30, 1, 25, 30, 2, 1, 7, 32, 8, 29, 25, 1, 9, 8, 28, 28, 8, 32, 24, 29, 0, 0, 29, 1, 9, 28, 10, 10, 28, 11, 26, 35, 31, 26, 30, 35 ], + "vertices": [ 1, 4, 101.59, 148.9, 1, 1, 4, 88.51, 130.67, 1, 1, 4, 76.57, 106.99, 1, 1, 4, 68.76, 81.06, 1, 1, 4, 62.3, 46.43, 1, 1, 4, 59.93, 10.72, 1, 1, 4, 61.69, -14.34, 1, 1, 4, 66.71, -43.35, 1, 1, 4, 79.64, -71.38, 1, 1, 4, 85.86, -84.86, 1, 1, 4, 90.62, -88.96, 1, 2, 4, 111.53, -90.22, 0.68, 5, 12.11, -93.3, 0.32, 2, 4, 120.59, -87.62, 0.68, 5, 21.19, -90.81, 0.32, 1, 5, 49.45, -81.99, 1, 1, 5, 49.69, -55.15, 1, 1, 5, 47.25, -34.67, 1, 1, 5, 46.62, -12.6, 1, 1, 5, 46.07, 6.8, 1, 1, 5, 51.76, 33.52, 1, 1, 5, 56.94, 55.57, 1, 1, 5, 62.1, 76.47, 1, 1, 5, 65.02, 95.46, 1, 1, 5, 63.52, 120.79, 1, 2, 4, 133.66, 133.75, 0.68, 5, 36.73, 130.17, 0.32, 2, 4, 118.16, 147.77, 0.86, 5, 21.41, 144.43, 0.14, 2, 4, 113.61, 88.46, 0.68, 5, 16.19, 85.15, 0.32, 2, 4, 105.87, 38.97, 0.71, 5, 7.91, 35.81, 0.29, 2, 4, 107.27, -5.15, 0.68, 5, 8.8, -8.29, 0.32, 2, 4, 110.76, -54.86, 0.68, 5, 11.73, -57.98, 0.32, 2, 4, 122.22, 110.21, 0.68, 5, 25.04, 106.78, 0.32, 2, 4, 110.42, 66.02, 0.68, 5, 12.75, 62.78, 0.32, 2, 4, 106.59, 17.89, 0.68, 5, 8.39, 14.74, 0.32, 2, 4, 107.47, -29.73, 0.68, 5, 8.73, -32.84, 0.32, 2, 4, 121.95, 84.1, 0.68, 5, 24.47, 80.7, 0.32, 2, 4, 119.33, 64.26, 0.68, 5, 21.64, 60.92, 0.32, 2, 4, 116.31, 38.04, 0.68, 5, 18.32, 34.76, 0.32, 2, 4, 129.85, 107.06, 0.68, 5, 32.62, 103.55, 0.32, 2, 4, 115.79, -76.59, 0.68, 5, 16.52, -79.73, 0.32 ], + "hull": 25, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 18, 20, 20, 22, 26, 28, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 0, 48, 2, 58, 6, 60, 14, 64, 10, 12, 12, 14, 14, 16, 16, 18, 16, 56, 28, 30, 64, 30, 30, 32, 32, 34, 54, 32, 50, 66, 38, 68, 68, 60, 36, 70, 70, 52, 66, 40, 22, 24, 24, 26, 74, 24, 62, 34 ], + "width": 238, + "height": 102 + } + }, + "scarf-back": { + "scarf-back": { "name": "girl/scarf-back", "x": 46.88, "y": 3.26, "rotation": 177.98, "width": 143, "height": 102 } + }, + "sleeve-front": { + "sleeve-front": { "name": "girl/arm-front", "type": "linkedmesh", "skin": "full-skins/boy", "parent": "sleeve-front", "width": 71, "height": 229 } + }, + "zip-girl": { + "zip-girl": { "name": "girl/zip", "x": 19.66, "y": 3.69, "rotation": 80.66, "width": 37, "height": 49 } + } + } + }, + { + "name": "clothes/hoodie-orange", + "bones": [ "zip-boy" ], + "attachments": { + "arm-back": { + "arm-back": { + "name": "boy/arm-front", + "type": "mesh", + "uvs": [ 0, 0.9983, 1, 1, 1, 0.86682, 0.93575, 0.85962, 0.92543, 0.81301, 0.91517, 0.75475, 0.90967, 0.69766, 0.90374, 0.64195, 0.89852, 0.59071, 0.89321, 0.53993, 0.88593, 0.48173, 0.87995, 0.43392, 0.87387, 0.38539, 0.86778, 0.33662, 0.86019, 0.276, 0.85262, 0.21542, 0.84443, 0.15001, 0.83706, 0.09104, 0.82567, 0, 0.20656, 4.9E-4, 0.19476, 0.09288, 0.18669, 0.15618, 0.17892, 0.21703, 0.17122, 0.27738, 0.16365, 0.33672, 0.15684, 0.39004, 0.15032, 0.44113, 0.14396, 0.49098, 0.13775, 0.53965, 0.13226, 0.59099, 0.12603, 0.6493, 0.11997, 0.7051, 0.11515, 0.75592, 0.10543, 0.80835, 0.09698, 0.85907, 0.00989, 0.86774, 0.51288, 0.08992, 0.5068, 0.53843, 0.50952, 0.33772, 0.50435, 0.75817, 0.50554, 0.64894, 0.50328, 0.81283, 0.50817, 0.43751, 0.51115, 0.2178, 0.51199, 0.156, 0.51033, 0.27832, 0.50881, 0.38996, 0.50751, 0.48617, 0.50614, 0.59548, 0.5049, 0.70471, 0.50929, 0.85256 ], + "triangles": [ 3, 2, 1, 50, 3, 1, 0, 35, 34, 50, 0, 34, 0, 50, 1, 50, 4, 3, 34, 33, 50, 23, 22, 45, 45, 15, 14, 38, 23, 45, 24, 23, 38, 38, 45, 14, 38, 14, 13, 46, 24, 38, 46, 38, 13, 46, 13, 12, 25, 24, 46, 42, 25, 46, 42, 46, 12, 42, 12, 11, 26, 25, 42, 47, 26, 42, 47, 42, 11, 47, 11, 10, 27, 26, 47, 37, 27, 47, 37, 47, 10, 28, 27, 37, 9, 37, 10, 48, 28, 37, 29, 28, 48, 48, 37, 9, 48, 9, 8, 40, 29, 48, 40, 48, 8, 40, 8, 7, 30, 29, 40, 49, 30, 40, 49, 40, 7, 49, 7, 6, 31, 30, 49, 39, 31, 49, 32, 31, 39, 39, 49, 6, 39, 6, 5, 41, 32, 39, 33, 32, 41, 41, 39, 5, 4, 41, 5, 50, 41, 4, 33, 41, 50, 44, 17, 16, 21, 20, 44, 43, 21, 44, 22, 21, 43, 43, 44, 16, 43, 16, 15, 45, 22, 43, 45, 43, 15, 44, 36, 17, 44, 20, 36, 36, 19, 18, 36, 18, 17, 20, 19, 36 ], + "vertices": [ 1, 83, 30.3, -36.41, 1, 1, 83, 30.3, 34.59, 1, 1, 83, -0.09, 34.58, 1, 1, 83, -1.73, 30.02, 1, 3, 89, -1.79, 29.7, 0.51485, 88, 31.72, 29.7, 0.47152, 87, 64.98, 29.54, 0.01363, 3, 89, -14.92, 28.81, 0.16761, 88, 18.24, 28.84, 0.7202, 87, 51.66, 28.75, 0.11219, 3, 89, -27.79, 28.25, 0.02494, 88, 5.03, 28.32, 0.58139, 87, 38.61, 28.29, 0.39367, 4, 89, -40.37, 27.67, 3.1E-4, 88, -7.89, 27.77, 0.24325, 87, 25.85, 27.81, 0.73664, 86, 59.61, 27.66, 0.0198, 3, 88, -19.79, 27.28, 0.05132, 87, 14.09, 27.38, 0.81519, 86, 47.8, 27.3, 0.1335, 4, 88, -31.58, 26.79, 0.00265, 87, 2.43, 26.95, 0.57933, 86, 36.09, 26.94, 0.41791, 85, 69.67, 26.87, 1.1E-4, 3, 87, -10.9, 26.37, 0.1986, 86, 22.7, 26.43, 0.77283, 85, 56.26, 26.39, 0.02857, 3, 87, -21.85, 25.89, 0.03954, 86, 11.7, 26.02, 0.79423, 85, 45.25, 26, 0.16624, 4, 84, 66.95, 25.61, 2.5E-4, 87, -32.97, 25.41, 0.0015, 86, 0.53, 25.6, 0.51564, 85, 34.07, 25.6, 0.48261, 3, 84, 55.91, 25.21, 0.02493, 86, -10.7, 25.18, 0.18302, 85, 22.83, 25.2, 0.79205, 3, 84, 42.17, 24.71, 0.22892, 86, -24.67, 24.66, 0.01383, 85, 8.85, 24.71, 0.75725, 2, 84, 28.46, 24.21, 0.68211, 85, -5.12, 24.22, 0.31789, 2, 84, 13.66, 23.68, 0.96794, 85, -20.18, 23.68, 0.03206, 1, 84, 0.32, 23.19, 1, 1, 84, -20.28, 22.44, 1, 1, 84, -20.3, -21.51, 1, 1, 84, 0.6, -22.41, 1, 2, 84, 14.92, -23.03, 0.96207, 85, -18.91, -23.02, 0.03793, 2, 84, 28.69, -23.62, 0.67642, 85, -4.9, -23.62, 0.32358, 3, 84, 42.34, -24.21, 0.2106, 86, -24.41, -24.26, 0.01717, 85, 9.01, -24.21, 0.77223, 3, 84, 55.78, -24.78, 0.0197, 86, -10.74, -24.81, 0.18482, 85, 22.69, -24.79, 0.79548, 3, 87, -31.67, -25.49, 0.00253, 86, 1.54, -25.31, 0.54183, 85, 34.98, -25.31, 0.45564, 3, 87, -19.96, -25.9, 0.05261, 86, 13.3, -25.78, 0.80433, 85, 46.75, -25.81, 0.14306, 3, 87, -8.53, -26.3, 0.24883, 86, 24.77, -26.25, 0.73011, 85, 58.23, -26.3, 0.02106, 4, 88, -31.1, -26.85, 0.00529, 87, 2.63, -26.69, 0.57957, 86, 35.97, -26.7, 0.41477, 85, 69.44, -26.77, 3.7E-4, 3, 88, -19.17, -27.12, 0.06823, 87, 14.41, -27.02, 0.80427, 86, 47.8, -27.1, 0.1275, 4, 89, -38.03, -27.52, 0, 88, -5.62, -27.43, 0.32888, 87, 27.8, -27.4, 0.65921, 86, 61.24, -27.56, 0.01191, 3, 89, -25.42, -27.79, 0.02186, 88, 7.33, -27.73, 0.68409, 87, 40.58, -27.77, 0.29405, 3, 89, -13.96, -27.99, 0.14597, 88, 19.09, -27.95, 0.77839, 87, 52.2, -28.05, 0.07563, 3, 89, -2.13, -28.53, 0.457, 88, 31.23, -28.52, 0.53645, 87, 64.19, -28.69, 0.00655, 1, 83, -1.86, -29.53, 1, 1, 83, 0.13, -35.71, 1, 1, 84, 0, 0.18, 1, 2, 87, 2.22, -0.49, 0.93037, 86, 35.72, -0.5, 0.06963, 2, 86, -10.48, -0.25, 2.1E-4, 85, 23, -0.23, 0.99979, 1, 88, 19.33, -0.32, 1, 1, 87, 27.58, -0.45, 1, 2, 89, -1.47, -0.27, 0.18486, 88, 31.98, -0.27, 0.81514, 2, 86, 12.49, -0.38, 0.99961, 85, 45.99, -0.4, 3.9E-4, 2, 84, 28.93, -0.03, 0.99759, 85, -4.64, -0.03, 0.00241, 1, 84, 14.95, 0.07, 1, 2, 84, 42.63, -0.13, 2.9E-4, 85, 9.31, -0.13, 0.99971, 2, 86, 1.55, -0.32, 0.82986, 85, 35.04, -0.32, 0.17014, 1, 86, 23.69, -0.43, 1, 1, 87, 15.31, -0.47, 1, 1, 88, 6.95, -0.4, 1, 1, 83, -3.3, -0.26, 1 ], + "hull": 36, + "edges": [ 0, 2, 2, 4, 36, 38, 0, 70, 68, 70, 4, 6, 34, 36, 72, 34, 38, 40, 72, 40, 74, 56, 74, 18, 76, 48, 76, 26, 78, 64, 78, 10, 80, 60, 80, 14, 82, 78, 64, 66, 82, 66, 8, 10, 82, 8, 84, 52, 84, 22, 86, 44, 86, 30, 72, 88, 88, 86, 40, 42, 42, 44, 88, 42, 30, 32, 32, 34, 88, 32, 76, 90, 90, 86, 44, 46, 46, 48, 90, 46, 26, 28, 28, 30, 90, 28, 76, 92, 92, 84, 48, 50, 50, 52, 92, 50, 22, 24, 24, 26, 92, 24, 74, 94, 94, 84, 52, 54, 54, 56, 94, 54, 18, 20, 20, 22, 94, 20, 74, 96, 96, 80, 56, 58, 58, 60, 96, 58, 14, 16, 16, 18, 96, 16, 78, 98, 98, 80, 60, 62, 62, 64, 98, 62, 10, 12, 12, 14, 98, 12, 66, 68, 6, 8 ], + "width": 71, + "height": 229 + } + }, + "body": { + "body": { "name": "boy/body", "type": "linkedmesh", "skin": "full-skins/girl", "parent": "body", "width": 194, "height": 263 } + }, + "collar": { + "collar": { + "name": "boy/collar", + "type": "mesh", + "uvs": [ 0.01507, 0.35374, 0.04243, 0.85436, 0.34348, 0.9329, 0.60063, 1, 0.7225, 0.99194, 0.8843, 0.75701, 1, 0.58901, 0.9885, 0.2137, 0.98194, 0, 0.82711, 0.02581, 0.63208, 0.05832, 0.54167, 0.04849, 0.29801, 0.06176, 0, 0.07798, 0.31391, 0.36632, 0.55976, 0.34041, 0.66022, 0.3489, 0.84942, 0.31117 ], + "triangles": [ 0, 12, 14, 15, 12, 11, 15, 14, 12, 0, 13, 12, 17, 16, 10, 16, 15, 10, 15, 11, 10, 10, 9, 17, 17, 9, 7, 9, 8, 7, 16, 4, 3, 16, 5, 4, 15, 16, 3, 2, 15, 3, 1, 14, 2, 2, 14, 15, 1, 0, 14, 6, 5, 17, 17, 5, 16, 17, 7, 6 ], + "vertices": [ 2, 4, 130.93, 66.36, 0.35519, 5, 33.21, 62.82, 0.64481, 1, 4, 103.81, 63.13, 1, 1, 4, 96.28, 19.92, 1, 1, 4, 89.85, -16.98, 1, 1, 4, 88.98, -34.64, 1, 1, 4, 100.8, -59.06, 1, 1, 4, 109.25, -76.52, 1, 2, 4, 134.32, -75.26, 0.36282, 5, 35.01, -78.53, 0.63718, 1, 5, 49.23, -77.07, 1, 1, 5, 48.26, -54.59, 1, 1, 5, 47.04, -26.28, 1, 1, 5, 47.91, -13.18, 1, 1, 5, 47.97, 22.16, 1, 1, 5, 48.04, 65.38, 1, 2, 4, 128.8, 23.01, 0.34961, 5, 30.6, 19.59, 0.65039, 2, 4, 129.22, -12.66, 0.3068, 5, 30.61, -16, 0.6932, 2, 4, 128.25, -27.24, 0.31124, 5, 29.49, -30.54, 0.68876, 2, 4, 129.27, -54.92, 0.39025, 5, 30.2, -58.19, 0.60975 ], + "hull": 14, + "edges": [ 6, 8, 20, 22, 2, 4, 4, 6, 22, 24, 24, 26, 8, 10, 10, 12, 16, 18, 18, 20, 4, 28, 28, 24, 6, 30, 30, 22, 8, 32, 32, 20, 10, 34, 34, 18, 2, 0, 0, 26, 28, 0, 12, 14, 14, 16, 34, 14 ], + "width": 145, + "height": 58 + } + }, + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "sleeve-front": { + "sleeve-front": { + "name": "boy/arm-front", + "type": "mesh", + "uvs": [ 0, 0.9983, 1, 1, 1, 0.86682, 0.93575, 0.85962, 0.92543, 0.81301, 0.91517, 0.75475, 0.90967, 0.69766, 0.90374, 0.64195, 0.89852, 0.59071, 0.89321, 0.53993, 0.88593, 0.48173, 0.87995, 0.43392, 0.87387, 0.38539, 0.86778, 0.33662, 0.86019, 0.276, 0.85262, 0.21542, 0.84443, 0.15001, 0.83706, 0.09104, 0.82567, 0, 0.20656, 4.9E-4, 0.19476, 0.09288, 0.18669, 0.15618, 0.17892, 0.21703, 0.17122, 0.27738, 0.16365, 0.33672, 0.15684, 0.39004, 0.15032, 0.44113, 0.14396, 0.49098, 0.13775, 0.53965, 0.13226, 0.59099, 0.12603, 0.6493, 0.11997, 0.7051, 0.11515, 0.75592, 0.10543, 0.80835, 0.09698, 0.85907, 0.00989, 0.86774, 0.51288, 0.08992, 0.5068, 0.53843, 0.50952, 0.33772, 0.50435, 0.75817, 0.50554, 0.64894, 0.50328, 0.81283, 0.50817, 0.43751, 0.51115, 0.2178, 0.51199, 0.156, 0.51033, 0.27832, 0.50881, 0.38996, 0.50751, 0.48617, 0.50614, 0.59548, 0.5049, 0.70471, 0.50929, 0.85256 ], + "triangles": [ 0, 50, 1, 50, 0, 34, 0, 35, 34, 34, 33, 50, 50, 3, 1, 50, 4, 3, 3, 2, 1, 44, 36, 17, 44, 20, 36, 20, 19, 36, 36, 18, 17, 36, 19, 18, 33, 41, 50, 50, 41, 4, 4, 41, 5, 41, 39, 5, 33, 32, 41, 41, 32, 39, 39, 6, 5, 39, 49, 6, 32, 31, 39, 39, 31, 49, 31, 30, 49, 49, 7, 6, 49, 40, 7, 49, 30, 40, 30, 29, 40, 40, 8, 7, 40, 48, 8, 40, 29, 48, 48, 9, 8, 48, 37, 9, 29, 28, 48, 48, 28, 37, 9, 37, 10, 28, 27, 37, 37, 47, 10, 37, 27, 47, 27, 26, 47, 47, 11, 10, 47, 42, 11, 47, 26, 42, 26, 25, 42, 42, 12, 11, 42, 46, 12, 42, 25, 46, 25, 24, 46, 46, 13, 12, 46, 38, 13, 46, 24, 38, 38, 14, 13, 38, 45, 14, 24, 23, 38, 38, 23, 45, 45, 15, 14, 23, 22, 45, 45, 43, 15, 45, 22, 43, 43, 16, 15, 43, 44, 16, 22, 21, 43, 43, 21, 44, 21, 20, 44, 44, 17, 16 ], + "vertices": [ 1, 54, 30.3, -36.41, 1, 1, 54, 30.3, 34.59, 1, 1, 54, -0.09, 34.58, 1, 1, 54, -1.73, 30.02, 1, 3, 13, 65.08, 29.54, 0.00868, 12, 31.72, 29.7, 0.54327, 16, -1.8, 29.7, 0.44805, 3, 13, 51.72, 28.75, 0.09476, 12, 18.24, 28.84, 0.78295, 16, -14.97, 28.81, 0.12229, 4, 14, 72.39, 28.06, 1.0E-5, 13, 38.62, 28.29, 0.36416, 12, 5.03, 28.32, 0.62452, 16, -27.87, 28.25, 0.01131, 3, 14, 59.57, 27.66, 0.01697, 13, 25.84, 27.81, 0.71378, 12, -7.87, 27.77, 0.26925, 3, 14, 47.78, 27.3, 0.12736, 13, 14.09, 27.38, 0.81039, 12, -19.73, 27.28, 0.06225, 4, 15, 69.71, 26.86, 1.9E-4, 14, 36.09, 26.94, 0.41186, 13, 2.44, 26.95, 0.58392, 12, -31.48, 26.79, 0.00403, 3, 15, 56.29, 26.39, 0.03436, 14, 22.7, 26.43, 0.7688, 13, -10.92, 26.37, 0.19684, 3, 15, 45.26, 26, 0.17991, 14, 11.7, 26.02, 0.78189, 13, -21.89, 25.89, 0.03821, 4, 11, 66.92, 25.61, 4.0E-5, 15, 34.07, 25.6, 0.49682, 14, 0.53, 25.6, 0.5018, 13, -33.02, 25.41, 0.00134, 3, 11, 55.89, 25.21, 0.02124, 15, 22.83, 25.2, 0.80075, 14, -10.69, 25.18, 0.17801, 3, 11, 42.17, 24.71, 0.21905, 15, 8.85, 24.71, 0.76696, 14, -24.64, 24.66, 0.01399, 2, 11, 28.46, 24.21, 0.67585, 15, -5.12, 24.22, 0.32415, 2, 11, 13.66, 23.68, 0.96846, 15, -20.2, 23.68, 0.03154, 1, 8, 0.24, 23.24, 1, 1, 8, -20.51, 22.43, 1, 1, 8, -20.4, -21.52, 1, 1, 8, 0.66, -22.36, 1, 2, 11, 14.92, -23.03, 0.9591, 15, -18.93, -23.02, 0.0409, 2, 11, 28.69, -23.62, 0.67055, 15, -4.9, -23.62, 0.32945, 3, 11, 42.34, -24.21, 0.20785, 15, 9.01, -24.21, 0.77749, 14, -24.38, -24.26, 0.01467, 3, 11, 55.76, -24.78, 0.01896, 15, 22.69, -24.79, 0.80223, 14, -10.73, -24.81, 0.17882, 3, 15, 34.98, -25.31, 0.45683, 14, 1.54, -25.31, 0.5408, 13, -31.71, -25.5, 0.00238, 3, 15, 46.76, -25.81, 0.14032, 14, 13.3, -25.78, 0.80693, 13, -19.98, -25.9, 0.05275, 3, 15, 58.25, -26.3, 0.01945, 14, 24.77, -26.25, 0.7308, 13, -8.54, -26.3, 0.24975, 4, 15, 69.47, -26.77, 2.7E-4, 14, 35.97, -26.7, 0.41316, 13, 2.63, -26.69, 0.58179, 12, -31, -26.85, 0.00478, 3, 14, 47.78, -27.1, 0.12648, 13, 14.41, -27.02, 0.80795, 12, -19.11, -27.12, 0.06558, 3, 14, 61.2, -27.56, 0.01164, 13, 27.79, -27.4, 0.6672, 12, -5.6, -27.43, 0.32116, 3, 13, 40.6, -27.77, 0.30828, 12, 7.32, -27.73, 0.67545, 16, -25.51, -27.79, 0.01627, 3, 13, 52.26, -28.05, 0.08696, 12, 19.09, -27.95, 0.78468, 16, -14, -27.99, 0.12837, 3, 13, 64.29, -28.69, 0.00978, 12, 31.24, -28.52, 0.56264, 16, -2.14, -28.53, 0.42759, 1, 54, -1.86, -29.53, 1, 1, 54, 0.13, -35.71, 1, 1, 8, -0.01, 0.23, 1, 2, 14, 35.72, -0.5, 0.06656, 13, 2.22, -0.49, 0.93344, 1, 15, 23, -0.23, 1, 2, 13, 52.64, -0.42, 0, 12, 19.33, -0.32, 1, 1, 13, 27.58, -0.45, 1, 2, 12, 31.99, -0.27, 0.81958, 16, -1.47, -0.27, 0.18042, 2, 14, 12.49, -0.38, 1, 13, -20.94, -0.5, 0, 1, 11, 28.93, -0.03, 1, 1, 11, 14.95, 0.07, 1, 1, 15, 9.31, -0.13, 1, 2, 15, 35.04, -0.32, 0.18244, 14, 1.55, -0.32, 0.81756, 1, 14, 23.69, -0.44, 1, 1, 13, 15.31, -0.47, 1, 2, 13, 40.38, -0.44, 7.7E-4, 12, 6.95, -0.4, 0.99923, 1, 54, -3.3, -0.26, 1 ], + "hull": 36, + "edges": [ 0, 2, 2, 4, 36, 38, 0, 70, 68, 70, 4, 6, 34, 36, 72, 34, 38, 40, 72, 40, 74, 56, 74, 18, 76, 48, 76, 26, 78, 64, 78, 10, 80, 60, 80, 14, 82, 78, 64, 66, 82, 66, 8, 10, 82, 8, 84, 52, 84, 22, 86, 44, 86, 30, 72, 88, 88, 86, 40, 42, 42, 44, 88, 42, 30, 32, 32, 34, 88, 32, 76, 90, 90, 86, 44, 46, 46, 48, 90, 46, 26, 28, 28, 30, 90, 28, 76, 92, 92, 84, 48, 50, 50, 52, 92, 50, 22, 24, 24, 26, 92, 24, 74, 94, 94, 84, 52, 54, 54, 56, 94, 54, 18, 20, 20, 22, 94, 20, 74, 96, 96, 80, 56, 58, 58, 60, 96, 58, 14, 16, 16, 18, 96, 16, 78, 98, 98, 80, 60, 62, 62, 64, 98, 62, 10, 12, 12, 14, 98, 12, 66, 68, 6, 8 ], + "width": 71, + "height": 229 + } + }, + "zip-boy": { + "zip-boy": { "name": "boy/zip", "x": 14.35, "y": -0.15, "rotation": 82.23, "width": 27, "height": 46 } + } + } + }, + { + "name": "nose/long", + "attachments": { + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "nose": { + "nose": { + "name": "boy/nose", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 6, 51.55, -68.98, 0.63, 29, 28.41, -21.66, 0.37, 2, 6, 50.11, -35.01, 0.72, 29, -5.59, -21.66, 0.28, 2, 6, 69.09, -34.21, 0.72, 29, -5.59, -2.66, 0.28, 2, 6, 70.54, -68.18, 0.63, 29, 28.41, -2.66, 0.37 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 34, + "height": 19 + } + } + } + }, + { + "name": "hair/long-blue-with-scarf", + "bones": [ "hair-holder-back", "hair-holder-front", "hair-strand-front-1", "hair-strand-front-3", "hair-strand-back-1", "hair-strand-back-2", "hair-strand-back-3", "hair-strand-front-2", "hair-strand-front-4", "scarf-back" ], + "attachments": { + "ear": { + "ear": { "name": "girl/ear", "x": 56.58, "y": 85.63, "rotation": -87.57, "width": 38, "height": 45 } + }, + "eye-back-eyebrow": { + "eye-back-eyebrow": { "name": "girl/back-eyebrow", "x": 15.6, "y": -9.48, "rotation": -177.9, "width": 36, "height": 23 } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { "name": "girl/front-eyebrow", "x": 10.82, "y": 8.92, "rotation": -3.58, "width": 36, "height": 23 } + }, + "hair-back": { + "hair-back": { + "name": "girl/hair-back", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 6, -3.46, -135.36, 0.71, 30, 189.29, -78.03, 0.29, 2, 6, -15.93, 158.38, 0.71, 30, -104.71, -78.03, 0.29, 2, 6, 168.91, 166.22, 0.71, 30, -104.71, 106.97, 0.29, 2, 6, 181.37, -127.51, 0.71, 30, 189.29, 106.97, 0.29 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 294, + "height": 185 + } + }, + "hair-bangs": { + "hair-bangs": { + "name": "girl/hair-bangs", + "type": "mesh", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "girl/hair-bangs", + "type": "mesh", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch2", + "type": "mesh", + "path": "girl/hair-patch", + "color": "71ffe7ff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-side-back": { + "hair-side-back": { + "name": "girl/hair-head-side-back", + "type": "mesh", + "uvs": [ 0.17374, 0.1545, 0.22967, 0.37557, 0.21289, 0.61586, 0, 0.86256, 0, 1, 0.25205, 1, 0.45899, 0.87537, 0.69391, 0.87858, 0.80577, 0.69916, 0.82815, 0.52615, 1, 0.46528, 0.99594, 0.21858, 0.73306, 0.04236, 0.53171, 0, 0.27442, 0.04877, 0.51493, 0.5678, 0.59323, 0.17692, 0.73306, 0.35954, 0.46459, 0.76964 ], + "triangles": [ 17, 11, 10, 15, 1, 16, 16, 14, 13, 14, 16, 1, 1, 0, 14, 16, 12, 17, 17, 12, 11, 16, 13, 12, 15, 16, 17, 2, 1, 15, 5, 18, 6, 5, 4, 3, 6, 18, 7, 7, 18, 8, 5, 3, 2, 18, 5, 2, 18, 15, 8, 18, 2, 15, 8, 15, 9, 9, 17, 10, 15, 17, 9 ], + "vertices": [ 2, 47, 44.16, -9.72, 0.072, 6, 75.71, -87.13, 0.928, 2, 47, 65.84, -17.42, 0.21564, 6, 53.1, -91.39, 0.78436, 2, 47, 87.28, -29.83, 0.5439, 6, 28.33, -91.45, 0.4561, 3, 47, 103.9, -52.79, 0.8752, 6, 2.41, -79.98, 0.09988, 30, 134.21, -69.81, 0.02493, 3, 47, 116.42, -59.39, 0.89423, 6, -11.73, -80.58, 0.014, 30, 134.21, -83.97, 0.09177, 3, 47, 123.36, -46.24, 0.87011, 6, -11.1, -95.43, 0.00989, 30, 149.08, -83.97, 0.12, 3, 47, 117.69, -29.45, 0.77082, 6, 2.24, -107.09, 0.0941, 30, 161.29, -71.13, 0.13508, 3, 47, 124.45, -17.35, 0.86922, 6, 2.5, -120.95, 0.00701, 30, 175.15, -71.46, 0.12377, 3, 47, 111.18, -2.89, 0.73582, 6, 21.24, -126.76, 0.12392, 30, 181.75, -52.98, 0.14026, 3, 47, 96.03, 6.59, 0.55463, 6, 39.1, -127.33, 0.32878, 30, 183.07, -35.16, 0.11659, 3, 47, 95.21, 18.48, 0.54495, 6, 45.79, -137.19, 0.37264, 30, 193.21, -28.89, 0.08241, 2, 47, 72.62, 30.12, 0.39164, 6, 71.17, -135.87, 0.60836, 2, 47, 49.33, 24.86, 0.13442, 6, 88.65, -119.61, 0.86558, 2, 47, 39.93, 16.38, 0.03367, 6, 92.5, -107.55, 0.96633, 2, 47, 37.3, 0.61, 0.176, 6, 86.84, -92.6, 0.824, 3, 47, 91.21, -11.76, 0.52, 6, 34.03, -109.04, 0.39641, 30, 164.59, -39.45, 0.08358, 2, 47, 57.74, 11.1, 0.24029, 6, 74.45, -111.95, 0.75971, 3, 47, 78.23, 9.62, 0.39663, 6, 56.01, -120.99, 0.565, 30, 177.46, -18, 0.03837, 3, 47, 108.21, -24.08, 0.64328, 6, 13.13, -106.96, 0.22492, 30, 161.62, -60.24, 0.1318 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 59, + "height": 103 + } + }, + "hair-side-front": { + "hair-side-front": { + "name": "girl/hair-head-side-front", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 6, 5.69, 38.25, 1, 1, 6, 2.21, 120.17, 1, 1, 6, 85.14, 123.69, 1, 1, 6, 88.61, 41.77, 1 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 82, + "height": 83 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-strand-back-1": { + "hair-strand-back-1": { + "name": "girl/hair-strand-back-1", + "type": "mesh", + "uvs": [ 0.04701, 0.06856, 0.1845, 0.21146, 0.29181, 0.36494, 0.41253, 0.53695, 0.51314, 0.76717, 0.60368, 1, 0.80489, 0.9974, 1, 0.89948, 1, 0.64544, 0.93567, 0.4311, 0.81159, 0.31731, 0.6674, 0.20352, 0.48631, 0.08444, 0.28846, 0, 0.7244, 0.58458 ], + "triangles": [ 14, 9, 8, 14, 8, 7, 6, 14, 7, 4, 14, 6, 5, 4, 6, 14, 10, 9, 4, 3, 14, 2, 1, 12, 1, 0, 13, 12, 1, 13, 14, 3, 10, 3, 11, 10, 11, 2, 12, 11, 3, 2 ], + "vertices": [ 1, 70, 7.91, 19.32, 1, 2, 70, -14.24, 5, 0.86951, 71, 5.53, -19.35, 0.13049, 2, 70, -37.68, -5.71, 0.79, 71, 31.29, -19.18, 0.21, 2, 70, -63.95, -17.77, 0.63, 71, 60.2, -18.95, 0.37, 2, 70, -98.57, -26.85, 0.42, 71, 95.5, -24.85, 0.58, 2, 70, -133.49, -34.74, 0.24, 71, 130.59, -31.96, 0.76, 2, 70, -134.87, -58.05, 0.09, 71, 141.4, -11.27, 0.91, 2, 70, -122.23, -81.7, 0.09, 71, 139.56, 15.49, 0.91, 2, 70, -84.99, -84.52, 0.24, 71, 106.74, 33.32, 0.76, 2, 70, -53.01, -79.45, 0.42, 71, 75.5, 41.8, 0.58, 2, 70, -35.24, -66.36, 0.63, 71, 53.93, 37.14, 0.37, 2, 70, -17.3, -50.94, 0.79, 71, 31.24, 30.43, 0.21, 2, 70, 1.74, -31.32, 0.83374, 71, 5.83, 20.33, 0.16626, 2, 70, 15.84, -9.37, 0.97706, 71, -16.03, 6.09, 0.02294, 2, 70, -73.66, -53.31, 0.42, 71, 83.62, 9.5, 0.58 ], + "hull": 14, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 0, 26, 6, 20 ], + "width": 116, + "height": 147 + } + }, + "hair-strand-back-2": { + "hair-strand-back-2": { + "name": "girl/hair-strand-back-2", + "type": "mesh", + "uvs": [ 0.01457, 0.31586, 0.12358, 0.46132, 0.26678, 0.63383, 0.42922, 0.79619, 0.61731, 0.96871, 0.77975, 1, 0.92509, 0.83679, 1, 0.68795, 0.98066, 0.50191, 0.86311, 0.43087, 0.68571, 0.33616, 0.48479, 0.26174, 0.34159, 0.14673, 0.24113, 0.08923, 0.08938, 0.13997, 0.65683, 0.61285 ], + "triangles": [ 5, 4, 6, 4, 15, 6, 4, 3, 15, 6, 15, 7, 8, 15, 9, 15, 8, 7, 15, 10, 9, 3, 2, 15, 15, 11, 10, 15, 2, 11, 2, 1, 11, 0, 14, 1, 1, 12, 11, 12, 14, 13, 12, 1, 14 ], + "vertices": [ 1, 70, -9.44, 45.94, 1, 2, 70, -27.62, 27.42, 0.75, 72, -16.98, -30.25, 0.25, 2, 70, -49.36, 2.93, 0.61, 72, 15.22, -36.25, 0.39, 2, 70, -70.21, -25.14, 0.44, 72, 50.02, -39.65, 0.56, 2, 70, -92.58, -57.78, 0.25, 72, 89.52, -41.98, 0.75, 2, 70, -98.39, -86.99, 0.12, 72, 117.55, -31.91, 0.88, 2, 70, -81.67, -114.78, 0.06, 72, 132.74, -3.26, 0.94, 2, 70, -65.63, -129.67, 0.06, 72, 137.23, 18.16, 0.94, 2, 70, -44.03, -127.77, 0.17, 72, 124.47, 35.69, 0.83, 2, 70, -34.28, -107.05, 0.25, 72, 101.68, 33.37, 0.75, 2, 70, -20.98, -75.68, 0.44, 72, 67.94, 28.59, 0.56, 2, 70, -9.69, -39.86, 0.61, 72, 31.43, 19.8, 0.39, 1, 70, 5.47, -14.87, 1, 1, 70, 13.44, 2.86, 1, 1, 70, 9.7, 30.84, 1, 2, 70, -52.31, -68.04, 0.32, 72, 77.55, -2.19, 0.68 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 182, + "height": 115 + } + }, + "hair-strand-back-3": { + "hair-strand-back-3": { "name": "girl/hair-strand-back-3", "x": 56.8, "y": -25.4, "rotation": 55.29, "width": 184, "height": 157 } + }, + "hair-strand-front-1": { + "hair-strand-front-1": { + "name": "girl/hair-strand-front-1", + "type": "mesh", + "uvs": [ 0.27351, 0, 0.15941, 0.16999, 0.0453, 0.35929, 0, 0.56107, 0.02974, 0.77118, 0.16459, 0.90639, 0.41355, 1, 0.78181, 1, 1, 0.95007, 1, 0.76493, 0.9789, 0.55691, 0.93222, 0.36345, 0.95297, 0.16999, 0.95815, 0, 0.48617, 0.76077, 0.52766, 0.55483, 0.54841, 0.37177 ], + "triangles": [ 3, 2, 15, 10, 15, 11, 14, 3, 15, 4, 3, 14, 5, 4, 14, 9, 15, 10, 6, 5, 14, 15, 9, 14, 8, 7, 9, 7, 14, 9, 6, 14, 7, 15, 2, 16, 13, 12, 16, 16, 2, 1, 13, 16, 0, 1, 0, 16, 11, 16, 12, 15, 16, 11 ], + "vertices": [ 1, 67, 23.66, 11.57, 1, 1, 67, -7.39, 22.5, 1, 2, 67, -42.05, 33.7, 0.56777, 68, 38.87, -36.21, 0.43223, 2, 67, -79.42, 39.94, 0.27008, 68, 76.66, -38.93, 0.72992, 2, 67, -118.76, 40.68, 0.08712, 68, 115.9, -36, 0.91288, 2, 67, -144.74, 32.5, 0.04098, 68, 141, -25.44, 0.95902, 2, 67, -163.6, 15.2, 0.07679, 68, 158.17, -6.46, 0.92321, 2, 67, -165.68, -12.34, 0.10317, 68, 157.68, 21.16, 0.89683, 2, 67, -157.61, -29.36, 0.11136, 68, 148.05, 37.35, 0.88864, 2, 67, -123.09, -31.97, 0.26753, 68, 113.44, 36.73, 0.73247, 2, 67, -84.18, -33.33, 0.41647, 68, 74.57, 34.46, 0.58353, 2, 67, -47.84, -32.57, 0.58895, 68, 38.46, 30.31, 0.41105, 2, 67, -11.88, -36.85, 0.76035, 68, 2.26, 31.22, 0.23965, 1, 67, 19.79, -39.63, 1, 2, 67, -119.4, 6.4, 0.21442, 68, 113.35, -1.81, 0.78558, 2, 67, -81.24, 0.39, 0.42231, 68, 74.79, 0.61, 0.57769, 2, 67, -47.22, -3.74, 0.5861, 68, 40.53, 1.56, 0.4139 ], + "hull": 14, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 0, 26 ], + "width": 75, + "height": 187 + } + }, + "hair-strand-front-2": { + "hair-strand-front-2": { + "name": "girl/hair-strand-front-3", + "type": "mesh", + "uvs": [ 1, 0.04687, 0.9312, 0.23176, 0.86413, 0.43106, 0.82389, 0.63997, 0.79259, 0.84408, 0.75235, 1, 0.33205, 0.99055, 0, 0.93772, 0, 0.73362, 0.0593, 0.55113, 0.20685, 0.37103, 0.42595, 0.19094, 0.73893, 0, 0.95355, 0, 0.5422, 0.39985, 0.43936, 0.60395, 0.70316, 0.20295 ], + "triangles": [ 15, 8, 9, 9, 10, 15, 5, 6, 4, 15, 6, 8, 6, 15, 4, 6, 7, 8, 4, 15, 3, 15, 14, 3, 10, 11, 14, 14, 16, 2, 3, 14, 2, 15, 10, 14, 1, 13, 0, 1, 12, 13, 16, 11, 12, 16, 12, 1, 2, 16, 1, 14, 11, 16 ], + "vertices": [ 1, 67, 12.41, -11.23, 1, 2, 67, -17, -3.01, 0.95, 74, 9.72, 24.71, 0.05, 2, 67, -48.76, 5.25, 0.57, 74, 42.51, 25.72, 0.43, 2, 67, -82.24, 11.29, 0.38, 74, 76.34, 29.34, 0.62, 2, 67, -115.01, 16.5, 0.21, 74, 109.25, 33.55, 0.79, 1, 74, 134.69, 35.39, 1, 1, 74, 140.8, -0.7, 1, 1, 74, 138.44, -30.73, 1, 2, 67, -91.96, 83.91, 0.21, 74, 106.1, -37.62, 0.79, 2, 67, -62.87, 76.54, 0.38, 74, 76.11, -38.72, 0.62, 2, 67, -34.75, 61.53, 0.57, 74, 44.9, -32.24, 0.43, 2, 67, -7.09, 40.33, 0.95, 74, 12.4, -19.67, 0.05, 1, 67, 21.7, 10.84, 1, 1, 67, 20.29, -7.78, 1, 2, 67, -41.6, 32.79, 0.57, 74, 43.4, -2.73, 0.43, 2, 67, -73.9, 44.21, 0.38, 74, 77.6, -4.6, 0.62, 2, 67, -10.85, 16.43, 0.95, 74, 9.28, 4.33, 0.05 ], + "hull": 14, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 0, 26, 4, 28, 6, 30, 2, 32 ], + "width": 87, + "height": 162 + } + }, + "hair-strand-front-3": { + "hair-strand-front-3": { + "name": "girl/hair-flap-down-front", + "type": "mesh", + "uvs": [ 0.7113, 0.13231, 0.65533, 0.28192, 0.56017, 0.43154, 0.40905, 0.55721, 0.17677, 0.69187, 0, 0.80558, 0, 1, 0.25793, 1, 0.57976, 0.97015, 0.72529, 0.80258, 0.86242, 0.63501, 0.94078, 0.47044, 0.98835, 0.2909, 1, 0.12034, 0.95757, 0, 0.78406, 0, 0.46222, 0.70982, 0.68891, 0.54524, 0.82604, 0.30287 ], + "triangles": [ 12, 18, 13, 14, 13, 15, 15, 13, 0, 11, 18, 12, 1, 0, 18, 18, 0, 13, 17, 1, 18, 10, 17, 11, 7, 5, 4, 7, 16, 8, 7, 4, 16, 7, 6, 5, 8, 16, 9, 16, 17, 9, 9, 17, 10, 4, 3, 16, 17, 3, 2, 17, 16, 3, 2, 1, 17, 17, 18, 11 ], + "vertices": [ 2, 69, 10.11, -20.49, 0.51752, 67, 12.87, 47.65, 0.48248, 2, 69, 30.11, -14.28, 0.4, 67, -5.94, 56.87, 0.6, 2, 69, 53.55, -12.3, 0.61, 67, -24.34, 71.53, 0.39, 2, 69, 79.47, -18.32, 0.76137, 67, -39.04, 93.71, 0.23863, 2, 69, 113.41, -32.36, 0.92, 67, -54.06, 127.22, 0.08, 1, 69, 140.37, -42.13, 1, 1, 69, 160, -26.2, 1, 1, 69, 137.41, 1.64, 1, 2, 69, 106.21, 33.93, 0.98205, 67, -94.36, 74.1, 0.01795, 2, 69, 76.55, 35.92, 0.74286, 67, -74.17, 52.28, 0.25714, 2, 69, 47.62, 36.99, 0.61, 67, -53.88, 31.63, 0.39, 2, 69, 24.14, 31.97, 0.54, 67, -33.37, 19.16, 0.46, 2, 69, 1.85, 22.4, 0.50655, 67, -10.59, 10.8, 0.49345, 2, 69, -16.39, 9.69, 0.46244, 67, 11.39, 7.52, 0.53756, 2, 69, -24.82, -4.75, 0.46, 67, 27.44, 12.22, 0.54, 2, 69, -9.62, -23.48, 0.48913, 67, 29.26, 36.27, 0.51087, 2, 69, 90.22, -0.08, 0.81, 67, -59.38, 87.83, 0.19, 2, 69, 53.75, 10.91, 0.61, 67, -40.43, 54.8, 0.39, 2, 69, 17.28, 5.86, 0.4, 67, -10.44, 33.42, 0.6 ], + "hull": 16, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 0, 30 ], + "width": 139, + "height": 130 + } + }, + "hair-strand-front-4": { + "hair-strand-front-4": { + "name": "girl/hair-strand-front-2", + "type": "mesh", + "uvs": [ 0.77614, 0, 0.63901, 0.21786, 0.44871, 0.36957, 0.21083, 0.45904, 0, 0.5524, 0, 0.8247, 0.31438, 1, 0.60822, 0.99586, 0.75655, 0.80525, 0.88248, 0.59908, 0.96084, 0.37346, 1, 0.13228, 1, 0, 0.47949, 0.68466, 0.76494, 0.43181 ], + "triangles": [ 9, 14, 10, 14, 1, 10, 0, 12, 11, 11, 1, 0, 10, 1, 11, 8, 13, 14, 2, 1, 14, 13, 2, 14, 3, 2, 13, 5, 4, 3, 5, 3, 13, 7, 13, 8, 6, 5, 13, 6, 13, 7, 9, 8, 14 ], + "vertices": [ 2, 75, -8.6, -29.1, 0.20005, 67, 27.34, 23.62, 0.79995, 2, 75, 16.25, -14.26, 0.5448, 67, 7.05, 44.27, 0.4552, 2, 75, 46.09, -8, 0.62198, 67, -6.08, 71.79, 0.37802, 2, 75, 80.31, -9.69, 0.78836, 67, -12.51, 105.43, 0.21164, 2, 75, 111.06, -9.86, 0.97352, 67, -19.61, 135.36, 0.02648, 2, 75, 119.47, 16.04, 0.98274, 67, -46.76, 137.41, 0.01726, 2, 75, 83.31, 46.2, 0.80419, 67, -67.54, 95.16, 0.19581, 2, 75, 44.33, 58.42, 0.71, 67, -70.2, 54.4, 0.29, 2, 75, 18.84, 46.65, 0.69, 67, -52.75, 32.41, 0.31, 2, 75, -4.17, 32.44, 0.55, 67, -33.51, 13.4, 0.45, 2, 75, -21.5, 14.34, 0.00249, 67, -11.84, 0.83, 0.99751, 1, 67, 11.8, -6.41, 1, 1, 67, 24.99, -7.41, 1, 2, 75, 51.75, 23.29, 0.58329, 67, -37.82, 69.9, 0.41671, 2, 75, 6.2, 11.49, 0.58111, 67, -15.6, 28.43, 0.41889 ], + "hull": 13, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24 ], + "width": 139, + "height": 100 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "scarf": { + "scarf": { + "name": "girl/scarf", + "type": "mesh", + "uvs": [ 0, 0.69166, 0.08052, 0.80607, 0.18349, 0.90523, 0.29463, 0.96243, 0.44173, 1, 0.5921, 0.99676, 0.69655, 0.96098, 0.81649, 0.89046, 0.92984, 0.74335, 0.98437, 0.67259, 1, 0.62301, 1, 0.43614, 0.987, 0.34894, 0.95168, 0.11197, 0.8389, 0.11579, 0.75309, 0.14439, 0.66045, 0.15555, 0.57902, 0.16537, 0.46625, 0.11579, 0.37308, 0.07002, 0.28482, 0.02426, 0.20473, 0, 0.09849, 0.02044, 0.056, 0.3408, 0, 0.51623, 0.2505, 0.51241, 0.45971, 0.56199, 0.6444, 0.52385, 0.85198, 0.46283, 0.15733, 0.43995, 0.3453, 0.53148, 0.54797, 0.54292, 0.74737, 0.5086, 0.26684, 0.42851, 0.3506, 0.44336, 0.46122, 0.45875, 0.16878, 0.36367, 0.94187, 0.40181 ], + "triangles": [ 32, 15, 28, 28, 15, 37, 27, 31, 17, 31, 35, 17, 27, 16, 32, 32, 16, 15, 37, 15, 14, 18, 35, 34, 34, 33, 19, 12, 14, 13, 12, 37, 14, 23, 22, 36, 33, 36, 20, 27, 17, 16, 17, 35, 18, 18, 34, 19, 19, 33, 20, 36, 21, 20, 36, 22, 21, 28, 37, 11, 30, 25, 34, 30, 34, 35, 34, 25, 33, 24, 23, 29, 25, 29, 33, 29, 36, 33, 29, 23, 36, 37, 12, 11, 5, 4, 26, 4, 3, 26, 6, 5, 31, 5, 26, 31, 26, 3, 30, 31, 27, 6, 7, 27, 32, 7, 6, 27, 3, 2, 30, 30, 1, 25, 30, 2, 1, 7, 32, 8, 29, 25, 1, 9, 8, 28, 28, 8, 32, 24, 29, 0, 0, 29, 1, 9, 28, 10, 10, 28, 11, 26, 35, 31, 26, 30, 35 ], + "vertices": [ 1, 4, 101.59, 148.9, 1, 1, 4, 88.51, 130.67, 1, 1, 4, 76.57, 106.99, 1, 1, 4, 68.76, 81.06, 1, 1, 4, 62.3, 46.43, 1, 1, 4, 59.93, 10.72, 1, 1, 4, 61.69, -14.34, 1, 1, 4, 66.71, -43.35, 1, 1, 4, 79.64, -71.38, 1, 1, 4, 85.86, -84.86, 1, 1, 4, 90.62, -88.96, 1, 2, 4, 111.53, -90.22, 0.68, 5, 12.11, -93.3, 0.32, 2, 4, 120.59, -87.62, 0.68, 5, 21.19, -90.81, 0.32, 1, 5, 49.45, -81.99, 1, 1, 5, 49.69, -55.15, 1, 1, 5, 47.25, -34.67, 1, 1, 5, 46.62, -12.6, 1, 1, 5, 46.07, 6.8, 1, 1, 5, 51.76, 33.52, 1, 1, 5, 56.94, 55.57, 1, 1, 5, 62.1, 76.47, 1, 1, 5, 65.02, 95.46, 1, 1, 5, 63.52, 120.79, 1, 2, 4, 133.66, 133.75, 0.68, 5, 36.73, 130.17, 0.32, 2, 4, 118.16, 147.77, 0.86, 5, 21.41, 144.43, 0.14, 2, 4, 113.61, 88.46, 0.68, 5, 16.19, 85.15, 0.32, 2, 4, 105.87, 38.97, 0.71, 5, 7.91, 35.81, 0.29, 2, 4, 107.27, -5.15, 0.68, 5, 8.8, -8.29, 0.32, 2, 4, 110.76, -54.86, 0.68, 5, 11.73, -57.98, 0.32, 2, 4, 122.22, 110.21, 0.68, 5, 25.04, 106.78, 0.32, 2, 4, 110.42, 66.02, 0.68, 5, 12.75, 62.78, 0.32, 2, 4, 106.59, 17.89, 0.68, 5, 8.39, 14.74, 0.32, 2, 4, 107.47, -29.73, 0.68, 5, 8.73, -32.84, 0.32, 2, 4, 121.95, 84.1, 0.68, 5, 24.47, 80.7, 0.32, 2, 4, 119.33, 64.26, 0.68, 5, 21.64, 60.92, 0.32, 2, 4, 116.31, 38.04, 0.68, 5, 18.32, 34.76, 0.32, 2, 4, 129.85, 107.06, 0.68, 5, 32.62, 103.55, 0.32, 2, 4, 115.79, -76.59, 0.68, 5, 16.52, -79.73, 0.32 ], + "hull": 25, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 18, 20, 20, 22, 26, 28, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 0, 48, 2, 58, 6, 60, 14, 64, 10, 12, 12, 14, 14, 16, 16, 18, 16, 56, 28, 30, 64, 30, 30, 32, 32, 34, 54, 32, 50, 66, 38, 68, 68, 60, 36, 70, 70, 52, 66, 40, 22, 24, 24, 26, 74, 24, 62, 34 ], + "width": 238, + "height": 102 + } + }, + "scarf-back": { + "scarf-back": { "name": "girl/scarf-back", "x": 46.88, "y": 3.26, "rotation": 177.98, "width": 143, "height": 102 } + } + } + }, + { + "name": "legs/pants-green", + "attachments": { + "boot-ribbon-back": { + "boot-ribbon-back": { + "name": "boy/boot-ribbon-front", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 95, 28.05, 31.91, 0.76, 103, 36.32, 40.94, 0.24, 2, 95, 28.6, 14.92, 0.76, 103, 19.33, 41.13, 0.24, 2, 95, 6.7, 14.22, 0.76, 103, 19.57, 62.88, 0.24, 2, 95, 6.15, 31.21, 0.76, 103, 36.57, 62.69, 0.24 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 17, + "height": 22 + } + }, + "boot-ribbon-front": { + "boot-ribbon-front": { + "name": "boy/boot-ribbon-front", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 102, 37.35, 36.26, 0.24, 27, 30.73, 31.09, 0.76, 2, 102, 20.65, 39.43, 0.24, 27, 29.77, 14.12, 0.76, 2, 102, 24.74, 60.87, 0.24, 27, 7.8, 15.36, 0.76, 2, 102, 41.44, 57.7, 0.24, 27, 8.76, 32.34, 0.76 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 17, + "height": 22 + } + }, + "leg-back": { + "leg-back": { + "name": "boy/leg-front", + "type": "mesh", + "uvs": [ 0.07635, 0.9541, 0.06673, 0.89806, 0.05329, 0.83742, 0.06846, 0.78076, 0.1147, 0.71609, 0.09104, 0.65737, 0.07898, 0.59167, 0.08077, 0.52912, 0.07229, 0.46755, 0.06309, 0.4008, 0.05461, 0.3393, 0.04512, 0.27044, 0.0355, 0.20062, 0.02026, 0.09003, 0.0082, 0.0025, 0.86785, 0, 0.85558, 0.08164, 0.83969, 0.18726, 0.82872, 0.26024, 0.81835, 0.32916, 0.80924, 0.38977, 0.79934, 0.45558, 0.79031, 0.51561, 0.77996, 0.58393, 0.76519, 0.64798, 0.75106, 0.708, 0.81982, 0.77305, 0.82792, 0.82913, 0.81561, 0.88039, 0.82497, 0.91422, 1, 0.93396, 0.9918, 1, 0.08936, 1, 0.44189, 0.0854, 0.44189, 0.52429, 0.44189, 0.46108, 0.44189, 0.39534, 0.44189, 0.33482, 0.44189, 0.26387, 0.44189, 0.19291, 0.44582, 0.95343, 0.44247, 0.58821, 0.44304, 0.64978, 0.44358, 0.70926, 0.44851, 0.77908, 0.44475, 0.83655, 0.44521, 0.88665 ], + "triangles": [ 39, 11, 12, 18, 39, 17, 39, 12, 33, 39, 33, 17, 33, 12, 13, 17, 33, 16, 13, 14, 33, 16, 33, 15, 15, 33, 14, 38, 10, 11, 19, 38, 18, 38, 11, 39, 38, 39, 18, 36, 8, 9, 21, 36, 20, 36, 9, 37, 36, 37, 20, 37, 9, 10, 20, 37, 19, 37, 10, 38, 37, 38, 19, 7, 34, 41, 23, 34, 22, 34, 7, 35, 34, 35, 22, 35, 7, 8, 22, 35, 21, 35, 8, 36, 35, 36, 21, 42, 5, 41, 5, 6, 41, 42, 41, 24, 24, 41, 23, 6, 7, 41, 41, 34, 23, 2, 3, 45, 28, 45, 27, 44, 4, 43, 44, 43, 25, 43, 4, 42, 4, 5, 42, 43, 42, 25, 25, 42, 24, 1, 2, 45, 45, 26, 27, 45, 44, 26, 45, 3, 44, 44, 25, 26, 44, 3, 4, 40, 46, 28, 40, 28, 29, 0, 1, 46, 40, 0, 46, 32, 0, 40, 40, 29, 30, 32, 40, 31, 31, 40, 30, 1, 45, 46, 46, 45, 28 ], + "vertices": [ 3, 103, -20.08, 10.6, 0.75, 94, 23.49, -22.3, 0.24676, 95, 59.84, -22.28, 0.00324, 2, 103, -20.97, 28.44, 0.51, 94, 5.72, -22.89, 0.49, 2, 103, -22.07, 47.56, 0.31, 96, 58.17, -23.66, 0.69, 3, 103, -21.4, 65.39, 0.1116, 95, 4.59, -22.78, 0.8184, 96, 40.52, -22.77, 0.07, 4, 103, -18.75, 86.02, 0.01, 95, -16.13, -19.93, 0.10405, 96, 20.1, -19.96, 0.87254, 97, 56.45, -19.89, 0.01341, 3, 95, -35.05, -21.34, 1.0E-4, 96, 1.46, -21.4, 0.56453, 97, 37.51, -21.4, 0.43537, 3, 96, -19.07, -22.08, 0.03286, 97, 16.65, -22.14, 0.91428, 98, 52.69, -22.08, 0.05286, 3, 97, -3.17, -22.02, 0.36522, 98, 32.86, -22.03, 0.63379, 99, 68.32, -21.96, 9.9E-4, 3, 97, -22.68, -22.46, 0.00771, 98, 13.36, -22.55, 0.84445, 99, 49.14, -22.52, 0.14784, 3, 98, -7.93, -23.09, 0.1958, 99, 28.2, -23.11, 0.80288, 100, 64.58, -23.1, 0.00132, 3, 98, -27.79, -23.57, 4.7E-4, 99, 8.67, -23.62, 0.7924, 100, 44.76, -23.62, 0.20713, 3, 99, -12.93, -24.2, 0.11943, 100, 22.84, -24.2, 0.86721, 101, 58.46, -24.21, 0.01336, 2, 100, 0.77, -24.79, 0.53411, 101, 36.71, -24.79, 0.46589, 1, 101, 1.72, -25.72, 1, 1, 101, -25.98, -26.46, 1, 1, 101, -26.33, 25.98, 1, 1, 101, -0.53, 25.24, 1, 2, 100, -3.13, 24.27, 0.4095, 101, 32.87, 24.27, 0.5905, 3, 99, -15.75, 23.6, 0.08894, 100, 19.96, 23.6, 0.87813, 101, 55.62, 23.59, 0.03292, 3, 98, -30.64, 23.03, 8.5E-4, 99, 5.77, 22.96, 0.71828, 100, 41.79, 22.97, 0.28088, 3, 98, -11.12, 22.43, 0.16727, 99, 24.96, 22.4, 0.82705, 100, 61.27, 22.42, 0.00568, 3, 97, -26.03, 21.9, 0.00115, 98, 9.83, 21.8, 0.86047, 99, 45.58, 21.82, 0.13838, 2, 97, -7.13, 21.27, 0.21266, 98, 28.73, 21.24, 0.78734, 3, 96, -21.14, 20.69, 0.01057, 97, 14.4, 20.61, 0.90163, 98, 50.27, 20.67, 0.0878, 2, 96, -1.28, 19.72, 0.4417, 97, 34.58, 19.72, 0.5583, 4, 103, 20.06, 88.71, 0.01, 95, -18.54, 18.89, 0.02159, 96, 17.65, 18.86, 0.95034, 97, 53.83, 18.92, 0.01808, 3, 103, 24.4, 68.19, 0.1116, 95, 2.32, 23.05, 0.8184, 96, 38.19, 23.06, 0.07, 2, 103, 25.14, 50.7, 0.31, 96, 55.61, 23.58, 0.69, 2, 103, 24.62, 34.65, 0.51, 94, 0.26, 22.8, 0.49, 3, 103, 25.37, 23.95, 0.52462, 94, 10.94, 23.37, 0.22, 95, 47.04, 23.38, 0.25538, 1, 103, 36.15, 17.9, 1, 1, 103, 36, -3.06, 1, 1, 103, -19.04, -3.97, 1, 1, 101, 0.45, 0, 1, 1, 98, 31.4, 0, 1, 1, 98, 11.41, 0, 1, 1, 99, 26.57, 0, 1, 1, 99, 7.43, 0, 1, 1, 100, 20.94, 0, 1, 1, 101, 34.45, 0, 1, 2, 103, 2.45, 11.15, 0.83, 94, 23.32, 0.24, 0.17, 2, 97, 15.67, 0.04, 0.99997, 98, 51.62, 0.1, 3.0E-5, 2, 96, -0.81, 0.07, 0.37159, 97, 35.13, 0.07, 0.62841, 2, 103, 1.32, 88.25, 0.01, 96, 18, 0.1, 0.99, 3, 103, 1.78, 66.12, 0.1116, 95, 4.15, 0.4, 0.8184, 96, 40.04, 0.41, 0.07, 2, 103, 1.81, 48.1, 0.31, 96, 57.92, 0.22, 0.69, 3, 103, 2.06, 32.36, 0.38323, 94, 2.19, 0.2, 0.57, 95, 38.18, 0.2, 0.04677 ], + "hull": 33, + "edges": [ 28, 30, 58, 60, 60, 62, 62, 64, 42, 44, 26, 28, 66, 26, 30, 32, 66, 32, 70, 68, 42, 70, 14, 16, 70, 16, 40, 42, 72, 70, 40, 72, 16, 18, 72, 18, 38, 40, 74, 72, 38, 74, 18, 20, 74, 20, 36, 38, 76, 74, 36, 76, 20, 22, 76, 22, 32, 34, 34, 36, 66, 78, 78, 76, 34, 78, 22, 24, 24, 26, 78, 24, 68, 82, 46, 82, 82, 12, 46, 48, 84, 82, 48, 84, 12, 10, 84, 10, 48, 50, 86, 84, 50, 86, 10, 8, 86, 8, 50, 52, 88, 86, 52, 88, 8, 6, 88, 6, 52, 54, 90, 88, 54, 90, 6, 4, 90, 4, 54, 56, 56, 58, 80, 92, 92, 90, 56, 92, 4, 2, 92, 2, 58, 80, 2, 0, 0, 64, 80, 0, 12, 14, 44, 46, 60, 80 ], + "width": 61, + "height": 316 + } + }, + "leg-front": { + "leg-front": { + "name": "boy/leg-front", + "type": "mesh", + "uvs": [ 0.07635, 0.9541, 0.06673, 0.89806, 0.05329, 0.83742, 0.06846, 0.78076, 0.1147, 0.71609, 0.09104, 0.65737, 0.07898, 0.59167, 0.08077, 0.52912, 0.07229, 0.46755, 0.06309, 0.4008, 0.05461, 0.3393, 0.04512, 0.27044, 0.0355, 0.20062, 0.02026, 0.09003, 0.0082, 0.0025, 0.86785, 0, 0.85558, 0.08164, 0.83969, 0.18726, 0.82872, 0.26024, 0.81835, 0.32916, 0.80924, 0.38977, 0.79934, 0.45558, 0.79031, 0.51561, 0.77996, 0.58393, 0.76519, 0.64798, 0.75106, 0.708, 0.81982, 0.77305, 0.82792, 0.82913, 0.81561, 0.88039, 0.82497, 0.91422, 1, 0.93396, 0.9918, 1, 0.08936, 1, 0.44189, 0.0854, 0.44189, 0.52429, 0.44189, 0.46108, 0.44189, 0.39534, 0.44189, 0.33482, 0.44189, 0.26387, 0.44189, 0.19291, 0.44582, 0.95343, 0.44247, 0.58821, 0.44304, 0.64978, 0.44358, 0.70926, 0.44851, 0.77908, 0.44475, 0.83655, 0.44521, 0.88665 ], + "triangles": [ 38, 10, 11, 19, 38, 18, 38, 11, 39, 38, 39, 18, 39, 11, 12, 36, 8, 9, 21, 36, 20, 36, 9, 37, 36, 37, 20, 37, 9, 10, 20, 37, 19, 37, 10, 38, 37, 38, 19, 7, 34, 41, 23, 34, 22, 34, 7, 35, 34, 35, 22, 35, 7, 8, 22, 35, 21, 35, 8, 36, 35, 36, 21, 42, 5, 41, 5, 6, 41, 42, 41, 24, 24, 41, 23, 6, 7, 41, 41, 34, 23, 43, 4, 42, 43, 42, 25, 4, 5, 42, 44, 4, 43, 44, 43, 25, 25, 42, 24, 1, 2, 45, 28, 45, 27, 2, 3, 45, 45, 26, 27, 45, 44, 26, 45, 3, 44, 44, 3, 4, 46, 45, 28, 44, 25, 26, 18, 39, 17, 39, 12, 33, 39, 33, 17, 33, 12, 13, 17, 33, 16, 13, 14, 33, 16, 33, 15, 15, 33, 14, 32, 40, 31, 31, 40, 30, 32, 0, 40, 40, 29, 30, 40, 28, 29, 0, 1, 46, 1, 45, 46, 40, 0, 46, 40, 46, 28 ], + "vertices": [ 3, 102, -21.4, 12.07, 0.65, 28, 23.5, -22.3, 0.3448, 27, 59.45, -22.3, 0.00521, 3, 102, -21.96, 29.92, 0.51, 28, 5.76, -22.88, 0.33074, 27, 41.71, -22.88, 0.15926, 3, 102, -22.66, 49.08, 0.31148, 28, -13.39, -23.7, 0.0912, 27, 22.52, -23.7, 0.59732, 3, 102, -21.61, 66.95, 0.17, 27, 4.58, -22.78, 0.5805, 26, 40.54, -22.78, 0.2495, 4, 102, -18.4, 87.61, 0.03, 27, -15.86, -19.96, 0.10277, 26, 20.08, -19.96, 0.82804, 25, 56.01, -19.96, 0.03919, 3, 27, -34.44, -21.4, 7.9E-4, 26, 1.51, -21.4, 0.57156, 25, 37.44, -21.4, 0.42765, 3, 26, -19.27, -22.14, 0.05654, 25, 16.67, -22.14, 0.87764, 24, 52.6, -22.14, 0.06582, 2, 25, -3.13, -22.03, 0.47104, 24, 32.82, -22.03, 0.52896, 3, 25, -22.61, -22.55, 0.01665, 24, 13.34, -22.55, 0.87142, 23, 49.29, -22.55, 0.11193, 3, 24, -7.79, -23.11, 0.22064, 23, 28.17, -23.11, 0.77569, 22, 64.12, -23.11, 0.00367, 3, 24, -27.25, -23.62, 0.00219, 23, 8.7, -23.62, 0.77556, 22, 44.65, -23.62, 0.22225, 3, 21, 58.81, -24.2, 0.0114, 23, -13.09, -24.2, 0.12046, 22, 22.86, -24.2, 0.86813, 2, 21, 36.72, -24.79, 0.42237, 22, 0.77, -24.79, 0.57763, 2, 21, 1.72, -25.72, 0.99849, 22, -34.23, -25.72, 0.00151, 1, 21, -25.98, -26.46, 1, 1, 21, -26.33, 25.98, 1, 2, 21, -0.53, 25.24, 0.99997, 22, -36.48, 25.24, 3.0E-5, 2, 21, 32.85, 24.27, 0.56274, 22, -3.1, 24.27, 0.43726, 3, 21, 55.91, 23.6, 0.02334, 23, -15.99, 23.6, 0.05774, 22, 19.96, 23.6, 0.91892, 3, 24, -30.16, 22.96, 3.0E-4, 23, 5.79, 22.96, 0.6752, 22, 41.74, 22.96, 0.3245, 3, 24, -11, 22.41, 0.14886, 23, 24.95, 22.41, 0.84172, 22, 60.9, 22.41, 0.00941, 3, 25, -26.16, 21.8, 0.00663, 24, 9.79, 21.8, 0.80794, 23, 45.74, 21.8, 0.18543, 3, 25, -7.19, 21.25, 0.35697, 24, 28.76, 21.25, 0.64235, 23, 64.72, 21.25, 6.7E-4, 3, 26, -21.58, 20.62, 0.04097, 25, 14.4, 20.62, 0.83939, 24, 50.38, 20.63, 0.11963, 3, 26, -1.35, 19.72, 0.4338, 25, 34.64, 19.72, 0.56533, 24, 70.61, 19.73, 8.7E-4, 4, 102, 20.45, 89.06, 0.03, 27, -18.28, 18.86, 0.04202, 26, 17.66, 18.86, 0.84488, 25, 53.66, 18.87, 0.0831, 3, 102, 24.24, 68.6, 0.17, 27, 2.29, 23.05, 0.47119, 26, 38.23, 23.05, 0.35881, 2, 102, 24.6, 51.21, 0.32421, 27, 20.01, 23.55, 0.67579, 3, 102, 23.74, 35.21, 0.51, 28, 0.25, 22.8, 0.21249, 27, 36.2, 22.8, 0.27751, 3, 102, 24.29, 24.55, 0.73, 28, 10.95, 23.37, 0.25858, 27, 46.78, 23.36, 0.01142, 1, 102, 34.96, 18.3, 1, 1, 102, 34.41, -2.64, 1, 1, 102, -20.64, -2.52, 1, 1, 21, 0.45, 0, 1, 1, 24, 31.4, 0, 1, 1, 24, 11.41, 0, 1, 1, 23, 26.57, 0, 1, 1, 23, 7.43, 0, 1, 1, 22, 20.94, 0, 1, 1, 21, 34.45, 0, 1, 2, 102, 1.14, 12.19, 0.83, 28, 23.32, 0.24, 0.17, 1, 25, 15.67, 0.04, 1, 2, 26, -0.81, 0.07, 0.37007, 25, 35.14, 0.07, 0.62993, 2, 102, 1.77, 89.22, 0.03, 26, 18, 0.1, 0.97, 3, 102, 1.58, 67.1, 0.17, 27, 4.15, 0.4, 0.76746, 26, 40.07, 0.4, 0.06254, 2, 102, 1.23, 49.11, 0.22, 27, 22.3, 0.17, 0.78, 3, 102, 1.15, 33.38, 0.37, 28, 2.2, 0.2, 0.5638, 27, 38.15, 0.2, 0.0662 ], + "hull": 33, + "edges": [ 28, 30, 58, 60, 60, 62, 62, 64, 42, 44, 26, 28, 66, 26, 30, 32, 66, 32, 70, 68, 42, 70, 14, 16, 70, 16, 40, 42, 72, 70, 40, 72, 16, 18, 72, 18, 38, 40, 74, 72, 38, 74, 18, 20, 74, 20, 36, 38, 76, 74, 36, 76, 20, 22, 76, 22, 32, 34, 34, 36, 66, 78, 78, 76, 34, 78, 22, 24, 24, 26, 78, 24, 68, 82, 46, 82, 82, 12, 46, 48, 84, 82, 48, 84, 12, 10, 84, 10, 48, 50, 86, 84, 50, 86, 10, 8, 86, 8, 50, 52, 88, 86, 52, 88, 8, 6, 88, 6, 52, 54, 90, 88, 54, 90, 6, 4, 90, 4, 54, 56, 56, 58, 80, 92, 92, 90, 56, 92, 4, 2, 92, 2, 58, 80, 2, 0, 0, 64, 80, 0, 12, 14, 44, 46, 60, 80 ], + "width": 61, + "height": 316 + } + }, + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "legs/pants-jeans", + "attachments": { + "boot-ribbon-back": { + "boot-ribbon-back": { "name": "girl/boot-ribbon-front", "x": 67.51, "y": 16.46, "rotation": 90.17, "width": 26, "height": 25 } + }, + "boot-ribbon-front": { + "boot-ribbon-front": { "name": "girl/boot-ribbon-front", "x": 31.67, "y": 16.34, "rotation": 89.95, "width": 26, "height": 25 } + }, + "leg-back": { + "leg-back": { + "name": "girl/leg-front", + "type": "mesh", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 0, 48, 42, 42, 48, 31, 42, 31, 33, 34, 0, 42, 34, 42, 33, 31, 32, 33, 31, 48, 30, 41, 12, 13, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48 ], + "vertices": [ 3, 94, 22.95, -22.02, 0.22728, 95, 59.29, -22, 0.00272, 103, -19.33, 11.79, 0.77, 3, 94, 5.73, -22.61, 0.49142, 95, 41.79, -22.61, 0.23858, 103, -19.74, 29.07, 0.27, 4, 94, -10.55, -23.17, 0.11127, 95, 25.25, -23.18, 0.76279, 96, 60.87, -23.13, 0.00594, 103, -20.15, 45.45, 0.12, 2, 95, 5.13, -23.87, 0.69465, 96, 41.05, -23.86, 0.30535, 3, 95, -15.89, -24.56, 0.09408, 96, 20.35, -24.59, 0.86299, 97, 56.72, -24.52, 0.04292, 2, 96, 1.98, -25.21, 0.55425, 97, 38.06, -25.21, 0.44575, 3, 96, -19.09, -25.88, 0.05256, 97, 16.64, -25.95, 0.87891, 98, 52.7, -25.89, 0.06853, 3, 96, -33.74, -26.34, 3.3E-4, 97, 1.76, -26.46, 0.67227, 98, 37.81, -26.45, 0.32739, 2, 97, -3.17, -22.02, 0.47188, 98, 32.86, -22.03, 0.52812, 3, 97, -22.68, -22.46, 0.0172, 98, 13.36, -22.55, 0.87617, 99, 49.14, -22.52, 0.10662, 3, 98, -7.93, -23.09, 0.23789, 99, 28.2, -23.11, 0.75909, 100, 64.58, -23.1, 0.00302, 3, 98, -27.79, -23.57, 0.00312, 99, 8.67, -23.62, 0.75495, 100, 44.76, -23.62, 0.24193, 3, 99, -12.93, -24.2, 0.09944, 100, 22.84, -24.2, 0.87238, 101, 58.46, -24.21, 0.02818, 2, 100, 0.77, -24.79, 0.47358, 101, 36.71, -24.79, 0.52642, 1, 101, 1.72, -25.72, 1, 1, 101, -25.98, -26.46, 1, 1, 101, -26.33, 25.98, 1, 1, 101, -0.53, 25.24, 1, 2, 100, -3.13, 24.27, 0.37555, 101, 32.87, 24.27, 0.62445, 3, 99, -15.75, 23.6, 0.0536, 100, 19.96, 23.6, 0.92085, 101, 55.62, 23.59, 0.02556, 2, 99, 5.77, 22.96, 0.65378, 100, 41.79, 22.97, 0.34622, 3, 98, -11.12, 22.43, 0.12254, 99, 24.96, 22.4, 0.86248, 100, 61.27, 22.42, 0.01499, 3, 97, -26.03, 21.9, 0.00839, 98, 9.83, 21.8, 0.78745, 99, 45.58, 21.82, 0.20415, 3, 97, -7.13, 21.27, 0.362, 98, 28.73, 21.24, 0.63637, 99, 64.17, 21.3, 0.00163, 2, 97, -6.17, 28.11, 0.5025, 98, 29.67, 28.08, 0.4975, 3, 96, -21.38, 27.22, 0.03848, 97, 14.13, 27.14, 0.83871, 98, 49.97, 27.2, 0.12281, 3, 96, -2.33, 26.26, 0.40865, 97, 33.49, 26.25, 0.59016, 98, 69.34, 26.38, 0.00119, 3, 95, -20.14, 25.43, 0.05003, 96, 16.06, 25.39, 0.84798, 97, 52.19, 25.45, 0.10198, 2, 95, 1.24, 24.42, 0.56331, 96, 37.12, 24.42, 0.43669, 4, 94, -15.67, 23.56, 0.04308, 95, 20, 23.55, 0.81142, 96, 55.61, 23.58, 0.0255, 103, 26.63, 50.22, 0.12, 3, 94, 0.26, 22.8, 0.33337, 95, 36.2, 22.8, 0.39663, 103, 25.72, 34.13, 0.27, 3, 94, 18.48, 21.95, 0.22212, 95, 54.71, 21.97, 0.00788, 103, 24.69, 15.83, 0.77, 1, 103, 36.21, 8.95, 1, 1, 103, 36.08, -3.91, 1, 1, 103, -18.97, -3.34, 1, 1, 101, 0.45, 0, 1, 1, 98, 31.4, 0, 1, 1, 98, 11.41, 0, 1, 1, 99, 26.57, 0, 1, 1, 99, 7.43, 0, 1, 1, 100, 20.94, 0, 1, 1, 101, 34.45, 0, 1, 2, 94, 23.32, 0.24, 0.23, 103, 2.93, 11.2, 0.77, 1, 97, 15.67, 0.04, 1, 2, 96, -0.81, 0.07, 0.36735, 97, 35.13, 0.07, 0.63265, 1, 96, 18, 0.1, 1, 2, 95, 2.51, 0.14, 0.90776, 96, 38.42, 0.14, 0.09224, 2, 95, 22.3, 0.17, 0.88, 103, 3.23, 48.15, 0.12, 3, 94, 2.19, 0.2, 0.62933, 95, 38.18, 0.2, 0.10067, 103, 3.11, 32.41, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "leg-front": { + "leg-front": { + "name": "girl/leg-front", + "type": "mesh", + "uvs": [ 0.07389, 0.9524, 0.06404, 0.89807, 0.05462, 0.8461, 0.04309, 0.78246, 0.03121, 0.71692, 0.02073, 0.6591, 0.00852, 0.59172, 0, 0.54473, 0.07379, 0.52912, 0.06516, 0.46755, 0.05581, 0.4008, 0.04719, 0.3393, 0.03754, 0.27044, 0.02776, 0.20062, 0.01226, 0.09003, 0, 0.0025, 0.87399, 0, 0.8615, 0.08164, 0.84535, 0.18726, 0.83419, 0.26024, 0.82366, 0.32916, 0.81439, 0.38977, 0.80433, 0.45558, 0.79515, 0.51561, 0.90919, 0.51858, 0.89347, 0.583, 0.87847, 0.64444, 0.8642, 0.70289, 0.84791, 0.76964, 0.83339, 0.82913, 0.82087, 0.88039, 0.80679, 0.93811, 1, 0.95946, 1, 1, 0.08252, 1, 0.44092, 0.0854, 0.44092, 0.52429, 0.44092, 0.46108, 0.44092, 0.39534, 0.44092, 0.33482, 0.44092, 0.26387, 0.44092, 0.19291, 0.44492, 0.95343, 0.44151, 0.58821, 0.44209, 0.64978, 0.44264, 0.70926, 0.44324, 0.77395, 0.44383, 0.83655, 0.4443, 0.88665 ], + "triangles": [ 31, 48, 30, 0, 48, 42, 42, 48, 31, 34, 42, 33, 31, 32, 33, 42, 31, 33, 34, 0, 42, 40, 11, 12, 20, 40, 19, 40, 12, 41, 40, 41, 19, 41, 12, 13, 38, 9, 10, 22, 38, 21, 38, 10, 39, 38, 39, 21, 39, 10, 11, 21, 39, 20, 39, 11, 40, 39, 40, 20, 8, 36, 43, 43, 36, 23, 36, 8, 37, 36, 37, 23, 37, 8, 9, 23, 37, 22, 37, 9, 38, 37, 38, 22, 5, 43, 44, 5, 6, 43, 44, 43, 26, 26, 43, 25, 6, 8, 43, 6, 7, 8, 43, 23, 25, 25, 23, 24, 3, 4, 45, 46, 45, 28, 28, 45, 27, 45, 4, 44, 4, 5, 44, 45, 44, 27, 27, 44, 26, 1, 2, 47, 48, 47, 30, 30, 47, 29, 47, 2, 46, 2, 3, 46, 47, 46, 29, 29, 46, 28, 46, 3, 45, 48, 1, 47, 0, 1, 48, 19, 41, 18, 41, 13, 35, 41, 35, 18, 35, 13, 14, 18, 35, 17, 14, 15, 35, 17, 35, 16, 16, 35, 15 ], + "vertices": [ 3, 28, 22.96, -22.02, 0.22658, 27, 58.91, -22.02, 0.00342, 102, -21, 12.47, 0.77, 3, 28, 5.76, -22.61, 0.49273, 27, 41.71, -22.61, 0.23727, 102, -21.71, 29.73, 0.27, 4, 28, -10.68, -23.18, 0.11707, 27, 25.27, -23.18, 0.76681, 26, 61.22, -23.18, 0.00612, 102, -22.41, 46.07, 0.11, 2, 27, 5.13, -23.87, 0.6994, 26, 41.08, -23.87, 0.3006, 3, 27, -15.62, -24.58, 0.10595, 26, 20.33, -24.58, 0.85365, 25, 56.28, -24.58, 0.0404, 3, 27, -33.92, -25.21, 7.9E-4, 26, 2.03, -25.21, 0.57156, 25, 37.98, -25.21, 0.42765, 3, 26, -19.29, -25.94, 0.05654, 25, 16.66, -25.94, 0.87764, 24, 52.61, -25.94, 0.06582, 3, 26, -34.16, -26.46, 4.4E-4, 25, 1.79, -26.46, 0.67282, 24, 37.74, -26.46, 0.32674, 2, 25, -3.13, -22.03, 0.47104, 24, 32.82, -22.03, 0.52896, 3, 25, -22.61, -22.55, 0.01665, 24, 13.34, -22.55, 0.87142, 23, 49.29, -22.55, 0.11193, 3, 24, -7.79, -23.11, 0.22064, 23, 28.17, -23.11, 0.77569, 22, 64.12, -23.11, 0.00367, 3, 24, -27.25, -23.62, 0.00219, 23, 8.7, -23.62, 0.77556, 22, 44.65, -23.62, 0.22225, 3, 21, 58.81, -24.2, 0.0114, 23, -13.09, -24.2, 0.12046, 22, 22.86, -24.2, 0.86813, 2, 21, 36.72, -24.79, 0.42237, 22, 0.77, -24.79, 0.57763, 2, 21, 1.72, -25.72, 0.99849, 22, -34.23, -25.72, 0.00151, 1, 21, -25.98, -26.46, 1, 1, 21, -26.33, 25.98, 1, 2, 21, -0.53, 25.24, 0.99997, 22, -36.48, 25.24, 3.0E-5, 2, 21, 32.85, 24.27, 0.56274, 22, -3.1, 24.27, 0.43726, 3, 21, 55.91, 23.6, 0.02334, 23, -15.99, 23.6, 0.05774, 22, 19.96, 23.6, 0.91892, 3, 24, -30.16, 22.96, 3.0E-4, 23, 5.79, 22.96, 0.6752, 22, 41.74, 22.96, 0.3245, 3, 24, -11, 22.41, 0.14886, 23, 24.95, 22.41, 0.84172, 22, 60.9, 22.41, 0.00941, 3, 25, -26.16, 21.8, 0.00663, 24, 9.79, 21.8, 0.80794, 23, 45.74, 21.8, 0.18543, 3, 25, -7.19, 21.25, 0.35697, 24, 28.76, 21.25, 0.64235, 23, 64.72, 21.25, 6.7E-4, 2, 25, -6.22, 28.1, 0.49898, 24, 29.73, 28.1, 0.50102, 3, 26, -21.82, 27.15, 0.04097, 25, 14.13, 27.15, 0.83939, 24, 50.08, 27.15, 0.11963, 3, 26, -2.4, 26.25, 0.4338, 25, 33.55, 26.25, 0.56533, 24, 69.5, 26.25, 8.7E-4, 3, 27, -19.88, 25.4, 0.04332, 26, 16.07, 25.4, 0.87101, 25, 52.02, 25.4, 0.08567, 2, 27, 1.21, 24.42, 0.5677, 26, 37.16, 24.42, 0.4323, 4, 28, -15.94, 23.55, 0.03449, 27, 20.01, 23.55, 0.83346, 26, 55.96, 23.55, 0.02204, 102, 24.27, 51.7, 0.11, 3, 28, 0.25, 22.8, 0.31657, 27, 36.2, 22.8, 0.41343, 102, 23.66, 35.6, 0.27, 3, 28, 18.49, 21.95, 0.22027, 27, 54.44, 21.95, 0.00973, 102, 22.94, 17.27, 0.77, 1, 102, 34.58, 10.59, 1, 1, 102, 34.67, -2.26, 1, 1, 102, -20.38, -2.65, 1, 1, 21, 0.45, 0, 1, 1, 24, 31.4, 0, 1, 1, 24, 11.41, 0, 1, 1, 23, 26.57, 0, 1, 1, 23, 7.43, 0, 1, 1, 22, 20.94, 0, 1, 1, 21, 34.45, 0, 1, 2, 28, 23.32, 0.24, 0.23, 102, 1.26, 12.26, 0.77, 1, 25, 15.67, 0.04, 1, 2, 26, -0.81, 0.07, 0.37007, 25, 35.14, 0.07, 0.62993, 1, 26, 18, 0.1, 1, 2, 27, 2.5, 0.14, 0.92465, 26, 38.45, 0.14, 0.07535, 2, 27, 22.3, 0.17, 0.89, 102, 0.91, 49.21, 0.11, 3, 28, 2.2, 0.2, 0.65329, 27, 38.15, 0.2, 0.07671, 102, 1.08, 33.46, 0.27 ], + "hull": 35, + "edges": [ 30, 32, 62, 64, 64, 66, 66, 68, 16, 14, 46, 48, 44, 46, 28, 30, 70, 28, 32, 34, 70, 34, 74, 72, 44, 74, 16, 18, 74, 18, 42, 44, 76, 74, 42, 76, 18, 20, 76, 20, 40, 42, 78, 76, 40, 78, 20, 22, 78, 22, 38, 40, 80, 78, 38, 80, 22, 24, 80, 24, 34, 36, 36, 38, 70, 82, 82, 80, 36, 82, 24, 26, 26, 28, 82, 26, 48, 50, 72, 86, 50, 86, 14, 12, 86, 12, 50, 52, 88, 86, 52, 88, 12, 10, 88, 10, 52, 54, 90, 88, 54, 90, 10, 8, 90, 8, 54, 56, 92, 90, 56, 92, 8, 6, 92, 6, 56, 58, 94, 92, 58, 94, 6, 4, 94, 4, 58, 60, 60, 62, 84, 96, 96, 94, 60, 96, 4, 2, 96, 2, 62, 84, 2, 0, 0, 68, 84, 0 ], + "width": 60, + "height": 316 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "hair/pink", + "attachments": { + "ear": { + "ear": { + "name": "girl/ear", + "path": "girl-blue-cape/ear", + "x": 56.58, + "y": 85.63, + "rotation": -87.57, + "width": 38, + "height": 45 + } + }, + "eye-back-eyebrow": { + "eye-back-eyebrow": { + "name": "girl/back-eyebrow", + "path": "girl-blue-cape/back-eyebrow", + "x": 15.6, + "y": -9.48, + "rotation": -177.9, + "width": 36, + "height": 23 + } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { + "name": "girl/front-eyebrow", + "path": "girl-blue-cape/front-eyebrow", + "x": 10.82, + "y": 8.92, + "rotation": -3.58, + "width": 36, + "height": 23 + } + }, + "hair-back": { + "hair-back": { "name": "girl-blue-cape/hair-back", "x": 77.53, "y": 2.96, "rotation": -87.57, "width": 234, "height": 196 } + }, + "hair-bangs": { + "hair-bangs": { + "name": "girl/hair-bangs", + "type": "mesh", + "path": "girl-blue-cape/hair-bangs", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "girl/hair-bangs", + "type": "mesh", + "path": "girl-blue-cape/hair-bangs", + "uvs": [ 0.73349, 0.08474, 0.58004, 0.03958, 0.45228, 0.00198, 0.31207, 0.07138, 0.18831, 0.31778, 0.11637, 0.47582, 0.03781, 0.68912, 0, 0.88662, 0, 1, 0.07971, 1, 0.13907, 0.91229, 0.18097, 0.79182, 0.18795, 0.89847, 0.26215, 0.88267, 0.3154, 0.69504, 0.34246, 0.48174, 0.3896, 0.67924, 0.45014, 0.83132, 0.53481, 0.95574, 0.60639, 0.96364, 0.63433, 0.87279, 0.60552, 0.79379, 0.68321, 0.86884, 0.72511, 0.81947, 0.71289, 0.76219, 0.78519, 0.80239, 0.85153, 0.71154, 0.8428, 0.66414, 0.90653, 0.66414, 1, 0.62679, 0.9912, 0.45677, 0.95279, 0.41727, 0.99033, 0.37382, 0.99906, 0.25334, 0.94319, 0.15657, 0.85677, 0.12102, 0.22173, 0.58035, 0.25665, 0.3947, 0.32823, 0.30779, 0.52365, 0.61985, 0.48544, 0.47172, 0.66002, 0.67317, 0.68796, 0.4184, 0.76565, 0.53492, 0.85069, 0.36741, 0.88473, 0.51553, 0.76941, 0.67946, 0.66833, 0.75906, 0.55572, 0.84004, 0.51557, 0.74524 ], + "triangles": [ 29, 28, 45, 46, 27, 26, 25, 46, 26, 21, 47, 22, 19, 18, 48, 20, 19, 48, 18, 17, 48, 48, 21, 20, 23, 22, 47, 23, 47, 24, 24, 46, 25, 24, 47, 41, 28, 27, 45, 45, 30, 29, 9, 8, 7, 10, 9, 7, 49, 16, 39, 21, 49, 39, 41, 21, 39, 39, 40, 42, 39, 15, 40, 17, 16, 49, 36, 37, 15, 14, 36, 15, 11, 36, 14, 11, 6, 36, 12, 11, 13, 13, 11, 14, 39, 42, 43, 41, 39, 43, 31, 44, 32, 45, 43, 44, 27, 43, 45, 27, 46, 43, 38, 3, 2, 4, 3, 38, 44, 0, 35, 44, 35, 34, 44, 34, 33, 32, 44, 33, 37, 4, 38, 42, 1, 0, 42, 0, 44, 1, 38, 2, 42, 38, 1, 42, 40, 38, 15, 37, 38, 5, 4, 37, 43, 42, 44, 36, 5, 37, 6, 5, 36, 7, 6, 11, 46, 24, 41, 47, 21, 41, 48, 49, 21, 46, 41, 43, 45, 44, 31, 45, 31, 30, 10, 7, 11, 40, 15, 38, 17, 49, 48, 39, 16, 15 ], + "vertices": [ 3, 49, 57.66, 21.48, 0.14316, 6, 146.15, -68.59, 0.78272, 29, 24.04, 70.86, 0.07412, 2, 49, 30.48, 14.92, 0.0173, 6, 148.65, -40.74, 0.9827, 1, 6, 150.72, -17.56, 1, 2, 6, 143.94, 7.71, 0.92837, 29, -52.29, 71.88, 0.07163, 3, 48, 28.17, -10.48, 0.05351, 6, 123.29, 29.26, 0.81347, 29, -74.69, 52.17, 0.13302, 3, 48, 45.97, -13.99, 0.12179, 6, 110.11, 41.73, 0.68081, 29, -87.71, 39.53, 0.1974, 3, 48, 68.1, -15.96, 0.21115, 6, 92.46, 55.22, 0.51338, 29, -101.93, 22.46, 0.27547, 3, 48, 84.98, -12.59, 0.31799, 6, 76.38, 61.38, 0.40325, 29, -108.77, 6.66, 0.27876, 3, 48, 92.44, -7.43, 0.32032, 6, 67.32, 61, 0.37603, 29, -108.77, -2.41, 0.30365, 4, 48, 84.22, 4.43, 0.28562, 49, -26.38, -89.52, 0.00233, 6, 67.93, 46.58, 0.34343, 29, -94.34, -2.41, 0.36862, 4, 48, 72.34, 9.27, 0.23652, 49, -18.89, -79.1, 0.01782, 6, 75.4, 36.15, 0.36895, 29, -83.6, 4.61, 0.37671, 4, 48, 60.1, 10.02, 0.1798, 49, -15.28, -67.38, 0.02453, 6, 85.35, 28.98, 0.43217, 29, -76.02, 14.25, 0.3635, 4, 48, 66.39, 15.91, 0.18722, 49, -11.03, -74.88, 0.03338, 6, 76.88, 27.35, 0.37794, 29, -74.75, 5.72, 0.40146, 4, 48, 57.71, 26.23, 0.12619, 49, 1.04, -68.86, 0.05896, 6, 78.71, 13.99, 0.40564, 29, -61.32, 6.98, 0.40921, 4, 48, 39.88, 25.61, 0.05336, 49, 4.63, -51.39, 0.06015, 6, 94.11, 5, 0.50399, 29, -51.68, 21.99, 0.38251, 4, 48, 23.06, 19.92, 0.00689, 49, 3.05, -33.71, 0.03861, 6, 111.37, 0.83, 0.67076, 29, -46.79, 39.05, 0.28375, 4, 48, 31.19, 35.93, 0.00485, 49, 16.7, -45.37, 0.09219, 6, 95.95, -8.37, 0.52133, 29, -38.25, 23.25, 0.38162, 3, 49, 31.3, -52.77, 0.16758, 6, 84.25, -19.83, 0.44588, 29, -27.3, 11.09, 0.38654, 3, 49, 49.19, -56.54, 0.21944, 6, 74.96, -35.57, 0.36056, 29, -11.97, 1.13, 0.42, 3, 49, 61.5, -52.46, 0.25071, 6, 74.88, -48.54, 0.32929, 29, 0.99, 0.5, 0.42, 3, 49, 63.6, -43.86, 0.26298, 6, 82.35, -53.28, 0.32679, 29, 6.04, 7.77, 0.41022, 3, 49, 56.46, -39.84, 0.24278, 6, 88.45, -47.8, 0.37761, 29, 0.83, 14.09, 0.37961, 3, 49, 71.74, -40.38, 0.27033, 6, 83.04, -62.11, 0.31735, 29, 14.89, 8.09, 0.41232, 3, 49, 77.39, -33.96, 0.27837, 6, 87.31, -69.52, 0.32678, 29, 22.47, 12.04, 0.39484, 3, 49, 73.68, -30.48, 0.28766, 6, 91.8, -67.11, 0.33769, 29, 20.26, 16.62, 0.37464, 3, 49, 87.04, -28.77, 0.28231, 6, 89.14, -80.32, 0.33141, 29, 33.35, 13.4, 0.38628, 3, 49, 95.63, -17.67, 0.28956, 6, 96.91, -92.01, 0.33992, 29, 45.36, 20.67, 0.37053, 3, 49, 92.79, -14.7, 0.2969, 6, 100.63, -90.27, 0.34854, 29, 43.78, 24.46, 0.35456, 3, 49, 103.55, -10.54, 0.2932, 6, 101.12, -101.8, 0.34419, 29, 55.31, 24.46, 0.36262, 3, 49, 118.25, -1.66, 0.28203, 6, 104.82, -118.57, 0.33108, 29, 72.23, 27.45, 0.38688, 3, 49, 111.87, 10.45, 0.30222, 6, 118.34, -116.41, 0.35704, 29, 70.64, 41.05, 0.34074, 3, 49, 104.24, 10.9, 0.30073, 6, 121.21, -109.33, 0.37095, 29, 63.68, 44.21, 0.32832, 3, 49, 109.33, 16.59, 0.304, 6, 124.97, -115.97, 0.40596, 29, 70.48, 47.69, 0.29003, 3, 49, 107.33, 26.15, 0.27438, 6, 134.66, -117.14, 0.51257, 29, 72.06, 57.33, 0.21304, 3, 49, 95.11, 29.73, 0.22989, 6, 141.97, -106.71, 0.58568, 29, 61.95, 65.07, 0.18442, 3, 49, 79.49, 26.75, 0.19562, 6, 144.15, -90.96, 0.63068, 29, 46.3, 67.91, 0.1737, 4, 48, 41.99, 6.45, 0.10254, 49, -14.5, -48.94, 0.01601, 6, 102.56, 22.32, 0.56688, 29, -68.64, 31.17, 0.31457, 3, 48, 26.18, 3.19, 0.03565, 6, 117.67, 16.64, 0.76005, 29, -62.32, 46.02, 0.20431, 2, 6, 125.16, 3.99, 0.84734, 29, -49.36, 52.97, 0.15266, 3, 49, 37.62, -32.2, 0.15696, 6, 101.72, -32.41, 0.48111, 29, -13.99, 28.01, 0.36193, 3, 49, 26.9, -23.64, 0.09937, 6, 113.27, -25, 0.59979, 29, -20.91, 39.86, 0.30085, 3, 49, 62.18, -27.29, 0.27323, 6, 98.51, -57.25, 0.38676, 29, 10.69, 23.74, 0.34001, 3, 49, 59.56, -6.45, 0.22058, 6, 119.08, -61.44, 0.47325, 29, 15.75, 44.12, 0.30616, 3, 49, 76.03, -10.08, 0.30524, 6, 110.37, -75.88, 0.38095, 29, 29.81, 34.8, 0.31381, 3, 49, 85.57, 7.96, 0.27217, 6, 124.41, -90.69, 0.42182, 29, 45.2, 48.2, 0.30602, 3, 49, 95.58, -0.87, 0.2988, 6, 112.83, -97.35, 0.35076, 29, 51.37, 36.35, 0.35044, 3, 49, 80.83, -20.63, 0.30072, 6, 98.84, -77.05, 0.35302, 29, 30.49, 23.24, 0.34625, 3, 49, 66.06, -33.16, 0.2839, 6, 91.7, -59.04, 0.34453, 29, 12.2, 16.87, 0.37158, 3, 49, 49.38, -46.54, 0.22619, 6, 84.37, -38.95, 0.38015, 29, -8.19, 10.39, 0.39367, 3, 49, 39.87, -42.08, 0.18746, 6, 91.64, -31.37, 0.43913, 29, -15.45, 17.97, 0.37341 ], + "hull": 36, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 22, 72, 96, 38, 42, 78, 0, 70, 0, 2, 2, 4, 58, 60 ], + "width": 181, + "height": 80 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch2", + "type": "mesh", + "path": "girl/hair-patch", + "color": "ff6578ff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "path": "girl-blue-cape/hair-side", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "hair-side-back": { + "hair-side-back": { + "name": "girl/hair-head-side-back", + "type": "mesh", + "path": "girl-blue-cape/hair-head-side-back", + "uvs": [ 0.17374, 0.1545, 0.22967, 0.37557, 0.21289, 0.61586, 0, 0.86256, 0, 1, 0.25205, 1, 0.45899, 0.87537, 0.69391, 0.87858, 0.80577, 0.69916, 0.82815, 0.52615, 1, 0.46528, 0.99594, 0.21858, 0.73306, 0.04236, 0.53171, 0, 0.27442, 0.04877, 0.51493, 0.5678, 0.59323, 0.17692, 0.73306, 0.35954, 0.46459, 0.76964 ], + "triangles": [ 17, 11, 10, 15, 1, 16, 16, 14, 13, 14, 16, 1, 1, 0, 14, 16, 12, 17, 17, 12, 11, 16, 13, 12, 15, 16, 17, 2, 1, 15, 5, 18, 6, 5, 4, 3, 6, 18, 7, 7, 18, 8, 5, 3, 2, 18, 5, 2, 18, 15, 8, 18, 2, 15, 8, 15, 9, 9, 17, 10, 15, 17, 9 ], + "vertices": [ 2, 47, 44.16, -9.72, 0.072, 6, 75.71, -87.13, 0.928, 2, 47, 65.84, -17.42, 0.21564, 6, 53.1, -91.39, 0.78436, 2, 47, 87.28, -29.83, 0.5439, 6, 28.33, -91.45, 0.4561, 3, 47, 103.9, -52.79, 0.8752, 6, 2.41, -79.98, 0.09988, 30, 134.21, -69.81, 0.02493, 3, 47, 116.42, -59.39, 0.89423, 6, -11.73, -80.58, 0.014, 30, 134.21, -83.97, 0.09177, 3, 47, 123.36, -46.24, 0.87011, 6, -11.1, -95.43, 0.00989, 30, 149.08, -83.97, 0.12, 3, 47, 117.69, -29.45, 0.77082, 6, 2.24, -107.09, 0.0941, 30, 161.29, -71.13, 0.13508, 3, 47, 124.45, -17.35, 0.86922, 6, 2.5, -120.95, 0.00701, 30, 175.15, -71.46, 0.12377, 3, 47, 111.18, -2.89, 0.73582, 6, 21.24, -126.76, 0.12392, 30, 181.75, -52.98, 0.14026, 3, 47, 96.03, 6.59, 0.55463, 6, 39.1, -127.33, 0.32878, 30, 183.07, -35.16, 0.11659, 3, 47, 95.21, 18.48, 0.54495, 6, 45.79, -137.19, 0.37264, 30, 193.21, -28.89, 0.08241, 2, 47, 72.62, 30.12, 0.39164, 6, 71.17, -135.87, 0.60836, 2, 47, 49.33, 24.86, 0.13442, 6, 88.65, -119.61, 0.86558, 2, 47, 39.93, 16.38, 0.03367, 6, 92.5, -107.55, 0.96633, 2, 47, 37.3, 0.61, 0.176, 6, 86.84, -92.6, 0.824, 3, 47, 91.21, -11.76, 0.52, 6, 34.03, -109.04, 0.39641, 30, 164.59, -39.45, 0.08358, 2, 47, 57.74, 11.1, 0.24029, 6, 74.45, -111.95, 0.75971, 3, 47, 78.23, 9.62, 0.39663, 6, 56.01, -120.99, 0.565, 30, 177.46, -18, 0.03837, 3, 47, 108.21, -24.08, 0.64328, 6, 13.13, -106.96, 0.22492, 30, 161.62, -60.24, 0.1318 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28 ], + "width": 59, + "height": 103 + } + }, + "hair-side-front": { + "hair-side-front": { + "name": "girl/hair-head-side-front", + "type": "mesh", + "path": "girl-blue-cape/hair-head-side-front", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 1, 6, 5.69, 38.25, 1, 1, 6, 2.21, 120.17, 1, 1, 6, 85.14, 123.69, 1, 1, 6, 88.61, 41.77, 1 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 82, + "height": 83 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "girl/hair-side", + "type": "mesh", + "path": "girl-blue-cape/hair-side", + "uvs": [ 0.54874, 0, 0.57663, 0.2101, 0.67888, 0.39601, 0.88339, 0.57495, 1, 0.69115, 1, 0.84221, 0.77989, 0.93436, 0.62311, 1, 0.34423, 0.99094, 0.18156, 0.87474, 0.06536, 0.73763, 0, 0.57728, 0, 0.34256, 0.17691, 0.11249, 0.34888, 0, 0.49296, 0.6958, 0.33029, 0.51453, 0.28846, 0.31003 ], + "triangles": [ 16, 12, 17, 16, 17, 1, 17, 14, 1, 14, 0, 1, 17, 13, 14, 12, 13, 17, 16, 1, 2, 16, 11, 12, 15, 16, 2, 6, 7, 15, 7, 8, 15, 8, 9, 15, 5, 6, 4, 6, 15, 3, 9, 16, 15, 9, 10, 16, 6, 3, 4, 15, 2, 3, 10, 11, 16 ], + "vertices": [ 1, 6, 120.54, 42.6, 1, 1, 6, 90.81, 39.69, 1, 2, 46, 36.72, 17.97, 0.312, 6, 64.74, 31.31, 0.688, 2, 46, 64.11, 28.28, 0.664, 6, 39.97, 15.73, 0.336, 2, 46, 81.71, 33.84, 0.808, 6, 23.83, 6.76, 0.192, 1, 46, 102.89, 30.44, 1, 1, 46, 113.34, 12.94, 1, 1, 46, 120.78, 0.47, 1, 1, 46, 116.37, -18.87, 1, 2, 46, 98.25, -27.66, 0.968, 6, -4.68, 63.71, 0.032, 2, 46, 77.72, -32.73, 0.84, 6, 14.43, 72.78, 0.16, 2, 46, 54.5, -33.7, 0.59346, 6, 36.98, 78.38, 0.40654, 2, 46, 21.59, -28.42, 0.32, 6, 70.28, 79.79, 0.68, 1, 6, 103.45, 68.63, 1, 1, 6, 119.93, 57.11, 1, 2, 46, 76.66, -1.81, 0.824, 6, 21.65, 42.7, 0.176, 2, 46, 49.42, -9.13, 0.57904, 6, 46.88, 55.33, 0.42096, 1, 6, 75.76, 59.53, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 0, 28, 10, 12, 12, 14 ], + "width": 71, + "height": 142 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-blue-cape/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "accessories/scarf", + "bones": [ "scarf-back" ], + "attachments": { + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "scarf": { + "scarf": { + "name": "girl/scarf", + "type": "mesh", + "uvs": [ 0, 0.69166, 0.08052, 0.80607, 0.18349, 0.90523, 0.29463, 0.96243, 0.44173, 1, 0.5921, 0.99676, 0.69655, 0.96098, 0.81649, 0.89046, 0.92984, 0.74335, 0.98437, 0.67259, 1, 0.62301, 1, 0.43614, 0.987, 0.34894, 0.95168, 0.11197, 0.8389, 0.11579, 0.75309, 0.14439, 0.66045, 0.15555, 0.57902, 0.16537, 0.46625, 0.11579, 0.37308, 0.07002, 0.28482, 0.02426, 0.20473, 0, 0.09849, 0.02044, 0.056, 0.3408, 0, 0.51623, 0.2505, 0.51241, 0.45971, 0.56199, 0.6444, 0.52385, 0.85198, 0.46283, 0.15733, 0.43995, 0.3453, 0.53148, 0.54797, 0.54292, 0.74737, 0.5086, 0.26684, 0.42851, 0.3506, 0.44336, 0.46122, 0.45875, 0.16878, 0.36367, 0.94187, 0.40181 ], + "triangles": [ 32, 15, 28, 28, 15, 37, 27, 31, 17, 31, 35, 17, 27, 16, 32, 32, 16, 15, 37, 15, 14, 18, 35, 34, 34, 33, 19, 12, 14, 13, 12, 37, 14, 23, 22, 36, 33, 36, 20, 27, 17, 16, 17, 35, 18, 18, 34, 19, 19, 33, 20, 36, 21, 20, 36, 22, 21, 28, 37, 11, 30, 25, 34, 30, 34, 35, 34, 25, 33, 24, 23, 29, 25, 29, 33, 29, 36, 33, 29, 23, 36, 37, 12, 11, 5, 4, 26, 4, 3, 26, 6, 5, 31, 5, 26, 31, 26, 3, 30, 31, 27, 6, 7, 27, 32, 7, 6, 27, 3, 2, 30, 30, 1, 25, 30, 2, 1, 7, 32, 8, 29, 25, 1, 9, 8, 28, 28, 8, 32, 24, 29, 0, 0, 29, 1, 9, 28, 10, 10, 28, 11, 26, 35, 31, 26, 30, 35 ], + "vertices": [ 1, 4, 101.59, 148.9, 1, 1, 4, 88.51, 130.67, 1, 1, 4, 76.57, 106.99, 1, 1, 4, 68.76, 81.06, 1, 1, 4, 62.3, 46.43, 1, 1, 4, 59.93, 10.72, 1, 1, 4, 61.69, -14.34, 1, 1, 4, 66.71, -43.35, 1, 1, 4, 79.64, -71.38, 1, 1, 4, 85.86, -84.86, 1, 1, 4, 90.62, -88.96, 1, 2, 4, 111.53, -90.22, 0.68, 5, 12.11, -93.3, 0.32, 2, 4, 120.59, -87.62, 0.68, 5, 21.19, -90.81, 0.32, 1, 5, 49.45, -81.99, 1, 1, 5, 49.69, -55.15, 1, 1, 5, 47.25, -34.67, 1, 1, 5, 46.62, -12.6, 1, 1, 5, 46.07, 6.8, 1, 1, 5, 51.76, 33.52, 1, 1, 5, 56.94, 55.57, 1, 1, 5, 62.1, 76.47, 1, 1, 5, 65.02, 95.46, 1, 1, 5, 63.52, 120.79, 1, 2, 4, 133.66, 133.75, 0.68, 5, 36.73, 130.17, 0.32, 2, 4, 118.16, 147.77, 0.86, 5, 21.41, 144.43, 0.14, 2, 4, 113.61, 88.46, 0.68, 5, 16.19, 85.15, 0.32, 2, 4, 105.87, 38.97, 0.71, 5, 7.91, 35.81, 0.29, 2, 4, 107.27, -5.15, 0.68, 5, 8.8, -8.29, 0.32, 2, 4, 110.76, -54.86, 0.68, 5, 11.73, -57.98, 0.32, 2, 4, 122.22, 110.21, 0.68, 5, 25.04, 106.78, 0.32, 2, 4, 110.42, 66.02, 0.68, 5, 12.75, 62.78, 0.32, 2, 4, 106.59, 17.89, 0.68, 5, 8.39, 14.74, 0.32, 2, 4, 107.47, -29.73, 0.68, 5, 8.73, -32.84, 0.32, 2, 4, 121.95, 84.1, 0.68, 5, 24.47, 80.7, 0.32, 2, 4, 119.33, 64.26, 0.68, 5, 21.64, 60.92, 0.32, 2, 4, 116.31, 38.04, 0.68, 5, 18.32, 34.76, 0.32, 2, 4, 129.85, 107.06, 0.68, 5, 32.62, 103.55, 0.32, 2, 4, 115.79, -76.59, 0.68, 5, 16.52, -79.73, 0.32 ], + "hull": 25, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 18, 20, 20, 22, 26, 28, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 0, 48, 2, 58, 6, 60, 14, 64, 10, 12, 12, 14, 14, 16, 16, 18, 16, 56, 28, 30, 64, 30, 30, 32, 32, 34, 54, 32, 50, 66, 38, 68, 68, 60, 36, 70, 70, 52, 66, 40, 22, 24, 24, 26, 74, 24, 62, 34 ], + "width": 238, + "height": 102 + } + }, + "scarf-back": { + "scarf-back": { "name": "girl/scarf-back", "x": 46.88, "y": 3.26, "rotation": 177.98, "width": 143, "height": 102 } + } + } + }, + { + "name": "eyelids/semiclosed", + "attachments": { + "eye-back-low-eyelid": { + "eye-back-low-eyelid": { + "name": "boy/eye-back-low-eyelid", + "type": "mesh", + "uvs": [ 0, 0.4084, 0.23683, 0.78185, 0.55761, 1, 0.86883, 0.83931, 1, 0.43712, 0.93586, 0, 0.79222, 0.23603, 0.55283, 0.37967, 0.30864, 0.27912, 0.11713, 0, 0.02616, 0.10676 ], + "triangles": [ 10, 9, 8, 0, 10, 8, 6, 5, 4, 1, 0, 8, 1, 8, 7, 4, 7, 6, 3, 7, 4, 2, 1, 7, 3, 2, 7 ], + "vertices": [ 1, 42, -29.75, -0.2, 1, 1, 42, -21.94, -4.31, 1, 1, 42, -11.35, -6.71, 1, 1, 42, -1.08, -4.94, 1, 1, 42, 3.25, -0.52, 1, 1, 42, 1.13, 4.29, 1, 1, 42, -3.61, 1.69, 1, 1, 42, -11.51, 0.11, 1, 1, 42, -19.57, 1.22, 1, 1, 42, -25.89, 4.29, 1, 1, 42, -28.89, 3.12, 1 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 33, + "height": 11 + } + }, + "eye-back-up-eyelid": { + "eye-back-up-eyelid": { + "name": "boy/eye-back-up-eyelid", + "type": "mesh", + "uvs": [ 0, 1, 0, 0.49905, 0.19376, 0.24625, 0.47885, 0.02505, 0.78455, 0.00925, 1, 0.08826, 0.99407, 0.70446, 0.79485, 0.78345, 0.48229, 0.92565, 0.20407, 0.92565 ], + "triangles": [ 3, 7, 8, 3, 4, 7, 2, 8, 9, 0, 1, 9, 9, 1, 2, 7, 4, 6, 6, 4, 5, 8, 2, 3 ], + "vertices": [ 1, 40, -37.56, -7.74, 1, 1, 40, -37.56, -2.73, 1, 2, 40, -28.64, -0.2, 0.75, 41, 28.05, 5.81, 0.25, 2, 40, -15.53, 2.01, 0.47, 41, 15.62, 1.07, 0.53, 2, 40, -1.47, 2.17, 0.57, 41, 1.87, -1.84, 0.43, 2, 40, 8.44, 1.38, 0.57, 41, -8.01, -3.01, 0.43, 2, 40, 8.17, -4.78, 0.57, 41, -8.95, 3.09, 0.43, 2, 40, -0.99, -5.57, 0.57, 41, -0.12, 5.66, 0.43, 2, 40, -15.37, -6.99, 0.47, 41, 13.7, 9.87, 0.53, 2, 40, -28.17, -6.99, 0.75, 41, 26.25, 12.38, 0.25 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18, 16, 6, 18, 4 ], + "width": 46, + "height": 10 + } + }, + "eye-back-up-eyelid-back": { + "eye-back-up-eyelid-back": { + "name": "boy/eye-back-up-eyelid-back", + "type": "mesh", + "uvs": [ 0.01882, 1, 0.2683, 0.88243, 0.57182, 0.81923, 0.80051, 0.81133, 1, 0.79553, 0.99593, 0.50323, 0.72151, 0.03713, 0.44709, 0, 0.11861, 0.35313, 0, 0.82713 ], + "triangles": [ 8, 7, 2, 2, 7, 6, 5, 2, 6, 1, 9, 8, 0, 9, 1, 2, 1, 8, 3, 2, 5, 3, 5, 4 ], + "vertices": [ 1, 40, -33.54, -8.4, 1, 2, 40, -24.06, -6.05, 0.83, 41, 22.41, 10.65, 0.17, 2, 40, -12.53, -4.78, 0.65, 41, 11.35, 7.15, 0.35, 1, 40, -3.84, -4.62, 1, 1, 40, 3.74, -4.31, 1, 2, 40, 3.59, 1.54, 0.58, 39, 16.64, 28.74, 0.42, 1, 39, 6.22, 38.06, 1, 1, 39, -4.21, 38.8, 1, 1, 39, -16.69, 31.74, 1, 2, 40, -34.26, -4.94, 0.58, 39, -21.2, 22.26, 0.42 ], + "hull": 10, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 0, 18 ], + "width": 38, + "height": 20 + } + }, + "eye-back-white": { + "eye-back-white": { + "name": "boy/eye-white-back", + "type": "mesh", + "uvs": [ 0.0386, 0.1421, 0, 0.46469, 0.15608, 0.80702, 0.39916, 0.96502, 0.68275, 0.96502, 0.91773, 0.87285, 0.99065, 0.51077, 0.9866, 0, 0.69491, 0.06968, 0.43967, 0.08944, 0.23306, 0.1026, 0.53286, 0.5108 ], + "triangles": [ 5, 4, 11, 4, 3, 11, 3, 2, 11, 5, 11, 6, 11, 1, 10, 10, 9, 11, 11, 2, 1, 10, 1, 0, 11, 8, 6, 11, 9, 8, 8, 7, 6 ], + "vertices": [ 1, 40, -32.75, -4.31, 1, 1, 40, -34.26, -12.05, 1, 2, 40, -28.17, -20.27, 0.83, 43, 26.31, -8.53, 0.17, 2, 40, -18.69, -24.06, 0.73, 43, 18.18, -2.35, 0.27, 2, 40, -7.63, -24.06, 0.76, 43, 7.51, 0.59, 0.24, 1, 40, 1.53, -21.85, 1, 1, 40, 4.38, -13.16, 1, 1, 40, 4.22, -0.9, 1, 2, 40, -7.16, -2.57, 0.59, 41, 6.51, 3.92, 0.41, 2, 40, -17.11, -3.04, 0.53, 41, 16.18, 6.34, 0.47, 2, 40, -25.17, -3.36, 0.76, 41, 24.02, 8.23, 0.24, 1, 40, -13.48, -13.16, 1 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20 ], + "width": 39, + "height": 24 + } + }, + "eye-front-low-eyelid": { + "eye-front-low-eyelid": { + "name": "boy/eye-front-low-eyelid", + "type": "mesh", + "uvs": [ 0.00359, 0.67744, 0.23059, 1, 0.48195, 1, 0.80154, 0.72606, 1, 0.28852, 1, 0, 0.86259, 0, 0.72254, 0.19128, 0.47477, 0.42221, 0.27009, 0.43436, 0.069, 0.30067, 0, 0.42221 ], + "triangles": [ 1, 0, 9, 1, 9, 2, 2, 9, 8, 3, 2, 8, 8, 7, 3, 6, 5, 4, 7, 6, 4, 11, 10, 9, 0, 11, 9, 3, 7, 4 ], + "vertices": [ 1, 36, -3.95, -1.5, 1, 2, 36, 6.2, -5.54, 0.17, 37, 7.06, -4.39, 0.83, 2, 36, 17.26, -5.54, 0.56, 37, 17.95, -2.49, 0.44, 2, 36, 31.32, -1.98, 0.83, 37, 31.19, 3.44, 0.17, 1, 36, 40.05, 3.71, 1, 1, 36, 40.05, 7.46, 1, 1, 36, 34, 7.46, 1, 2, 36, 27.84, 4.97, 0.83, 37, 26.57, 9.69, 0.17, 2, 36, 16.94, 1.97, 0.56, 37, 16.35, 4.86, 0.44, 2, 36, 7.93, 1.81, 0.17, 37, 7.5, 3.15, 0.83, 1, 36, -0.91, 3.55, 1, 1, 36, -3.95, 1.97, 1 ], + "hull": 12, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 0, 22 ], + "width": 44, + "height": 13 + } + }, + "eye-front-up-eyelid": { + "eye-front-up-eyelid": { + "name": "boy/eye-front-up-eyelid", + "type": "mesh", + "uvs": [ 0.99382, 0.82748, 0.77725, 0.86546, 0.51988, 0.9106, 0.24969, 0.95799, 0.01014, 1, 0, 0.48275, 0.24339, 0.2556, 0.51727, 0, 0.77229, 0.0198, 1, 0.03748 ], + "triangles": [ 1, 2, 8, 4, 5, 3, 1, 8, 0, 0, 8, 9, 8, 2, 7, 7, 2, 6, 2, 3, 6, 3, 5, 6 ], + "vertices": [ 1, 34, 54.61, -3.86, 1, 2, 35, 39.18, -13.38, 0.22, 34, 41.18, -4.27, 0.78, 2, 35, 23.51, -10.3, 0.48, 34, 25.22, -4.77, 0.52, 2, 35, 7.07, -7.05, 0.94, 34, 8.47, -5.29, 0.06, 1, 34, -6.38, -5.75, 1, 1, 34, -7.01, -0.06, 1, 2, 35, 8.42, 0.56, 0.94, 34, 8.08, 2.43, 0.06, 2, 35, 25.6, -0.5, 0.48, 34, 25.06, 5.25, 0.52, 2, 35, 40.96, -4.25, 0.22, 34, 40.87, 5.03, 0.78, 1, 34, 54.99, 4.83, 1 ], + "hull": 10, + "edges": [ 8, 10, 0, 18, 10, 12, 12, 14, 4, 6, 6, 8, 6, 12, 4, 14, 0, 2, 2, 4, 14, 16, 16, 18 ], + "width": 62, + "height": 11 + } + }, + "eye-front-up-eyelid-back": { + "eye-front-up-eyelid-back": { + "name": "boy/eye-front-up-eyelid-back", + "type": "mesh", + "uvs": [ 0, 0.93436, 0.15772, 0.9219, 0.48014, 0.89643, 0.78654, 0.87222, 1, 0.85536, 1, 0.58325, 0.60474, 0, 0.45276, 0.00159, 0.23101, 0.00391, 0, 0.63591 ], + "triangles": [ 7, 2, 1, 3, 6, 5, 1, 9, 8, 4, 3, 5, 0, 9, 1, 2, 6, 3, 2, 7, 6, 1, 8, 7 ], + "vertices": [ 1, 34, 0.25, -2.59, 1, 2, 34, 8.45, -2.37, 0.1, 35, 7.71, -4.2, 0.9, 2, 34, 25.22, -1.91, 0.56, 35, 24.15, -7.51, 0.44, 2, 34, 41.15, -1.47, 0.85, 35, 39.77, -10.65, 0.15, 1, 34, 52.25, -1.17, 1, 1, 34, 52.25, 3.73, 1, 1, 32, 8.58, 40.07, 1, 1, 32, 0.67, 40.04, 1, 1, 32, -10.86, 40, 1, 1, 34, 0.25, 2.78, 1 ], + "hull": 10, + "edges": [ 8, 10, 16, 18, 0, 18, 0, 2, 2, 4, 4, 6, 6, 8, 12, 14, 14, 16, 14, 4, 2, 16, 6, 12, 10, 12 ], + "width": 52, + "height": 18 + } + }, + "eye-front-white": { + "eye-front-white": { + "name": "boy/eye-white-front", + "type": "mesh", + "uvs": [ 0.1783, 0.99386, 0.01136, 0.67178, 0.02924, 0.05194, 0.26177, 0.07624, 0.50324, 0.03978, 0.75962, 0.02763, 1, 0, 0.99215, 0.38009, 0.9057, 0.73863, 0.71192, 0.86624, 0.50622, 0.93309, 0.32438, 0.96348, 0.47343, 0.50162 ], + "triangles": [ 12, 5, 7, 4, 5, 12, 1, 3, 12, 1, 2, 3, 12, 3, 4, 7, 5, 6, 9, 12, 7, 0, 1, 11, 8, 9, 7, 10, 11, 12, 10, 12, 9, 11, 1, 12 ], + "vertices": [ 2, 37, 0.02, -3.61, 0.1401, 36, -0.6, -3.56, 0.8599, 2, 36, -9.45, 4.82, 0.34964, 34, -0.47, -15.04, 0.65036, 1, 34, 0.48, 1.08, 1, 2, 35, 12.58, -2.43, 0.42, 34, 12.8, 0.44, 0.58, 2, 35, 25.26, -4.37, 0.39, 34, 25.6, 1.39, 0.61, 2, 35, 38.58, -7.11, 0.19, 34, 39.19, 1.71, 0.81, 1, 34, 51.93, 2.43, 1, 2, 36, 42.54, 12.4, 0.14016, 34, 51.51, -7.46, 0.85984, 1, 36, 37.95, 3.08, 1, 2, 37, 27.31, 4.53, 0.42667, 36, 27.68, -0.24, 0.57333, 2, 37, 16.87, 0.94, 0.84, 36, 16.78, -1.98, 0.16, 1, 37, 7.51, -1.5, 1, 2, 37, 13.23, 11.69, 0.52, 34, 24.02, -10.62, 0.48 ], + "hull": 12, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 0, 22 ], + "width": 53, + "height": 26 + } + }, + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "nose/short", + "attachments": { + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + }, + "nose": { + "nose": { + "name": "girl/nose", + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 6, 57.27, -63, 0.68, 29, 14.7, -17.7, 0.32, 2, 6, 56.34, -41.02, 0.73, 29, -7.3, -17.7, 0.27, 2, 6, 69.33, -40.47, 0.73, 29, -7.3, -4.7, 0.27, 2, 6, 70.26, -62.45, 0.68, 29, 14.7, -4.7, 0.32 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 22, + "height": 13 + } + } + } + }, + { + "name": "hair/short-red", + "attachments": { + "eye-back-eyebrow": { + "eye-back-eyebrow": { "name": "boy/eyebrow-back", "x": 13.08, "y": -0.6, "rotation": -177.9, "width": 40, "height": 22 } + }, + "eye-front-eyebrow": { + "eye-front-eyebrow": { "name": "boy/eyebrow-front", "x": 21.26, "y": 0.14, "rotation": -3.58, "width": 49, "height": 22 } + }, + "hair-back": { + "hair-back": { + "name": "boy/hair-back", + "type": "mesh", + "uvs": [ 0.72377, 0.13142, 0.82972, 0.05228, 0.85484, 0.14394, 0.9241, 0.10728, 0.99848, 0.11545, 0.99884, 0.27436, 0.99943, 0.531, 1, 0.78235, 0.83167, 0.64513, 0.71204, 1, 0, 1, 0, 0, 0.59007, 0, 0.71673, 0.30031, 0.80118, 0.34254, 0.91866, 0.31098, 0.91187, 0.51672 ], + "triangles": [ 0, 1, 2, 13, 12, 0, 13, 0, 2, 5, 15, 2, 3, 5, 2, 5, 3, 4, 14, 13, 2, 15, 14, 2, 16, 14, 15, 15, 5, 6, 16, 15, 6, 8, 14, 16, 8, 16, 6, 7, 8, 6, 13, 10, 11, 13, 11, 12, 8, 9, 10, 13, 8, 10, 8, 13, 14 ], + "vertices": [ 2, 6, 156.98, -52.6, 0.91, 30, 105.42, 83.77, 0.09, 3, 6, 170.88, -77.77, 0.586, 30, 131.16, 96.59, 0.23935, 49, 58.44, 47.85, 0.17464, 3, 6, 156.31, -84.5, 0.61272, 30, 137.27, 81.74, 0.25026, 49, 69.48, 36.2, 0.13702, 3, 6, 162.95, -101.07, 0.57311, 30, 154.1, 87.68, 0.23409, 49, 83.04, 47.8, 0.1928, 3, 6, 162.4, -119.18, 0.5041, 30, 172.17, 86.36, 0.2059, 49, 100.38, 53.08, 0.29, 3, 6, 136.68, -120.36, 0.5041, 30, 172.26, 60.62, 0.2059, 49, 109.74, 29.09, 0.29, 3, 6, 95.15, -122.26, 0.5041, 30, 172.4, 19.04, 0.2059, 49, 124.85, -9.64, 0.29, 3, 6, 54.47, -124.13, 0.5041, 30, 172.54, -21.68, 0.2059, 49, 139.65, -47.58, 0.29, 2, 6, 74.95, -82.32, 0.91, 30, 131.64, 0.55, 0.09, 2, 6, 16.28, -55.71, 0.91, 30, 102.57, -56.94, 0.09, 2, 6, 8.94, 117.16, 0.91, 30, -70.46, -56.94, 0.09, 2, 6, 170.8, 124.02, 0.91, 30, -70.46, 105.06, 0.09, 2, 6, 176.88, -19.23, 0.91, 30, 72.93, 105.06, 0.09, 2, 6, 129.57, -52.05, 0.91, 30, 103.71, 56.41, 0.09, 2, 6, 123.61, -72.84, 0.71, 30, 124.23, 49.57, 0.29, 3, 6, 129.93, -101.15, 0.58764, 30, 152.78, 54.68, 0.24002, 49, 93.7, 16.54, 0.17234, 3, 6, 96.56, -100.91, 0.61135, 30, 151.13, 21.35, 0.24971, 49, 104.17, -15.15, 0.13894 ], + "hull": 13, + "edges": [ 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 0, 24, 0, 2, 8, 10, 30, 10, 10, 12, 12, 14, 32, 12, 8, 6, 6, 4, 4, 2 ], + "width": 243, + "height": 162 + } + }, + "hair-bangs": { + "hair-bangs": { + "name": "boy/hair-bangs", + "type": "mesh", + "uvs": [ 0.21816, 0.2794, 0.12151, 0.44214, 0.03901, 0.65009, 0, 0.84447, 0, 1, 0.11916, 0.99365, 0.21344, 0.83543, 0.29594, 0.65009, 0.36194, 0.39242, 0.4303, 0.5416, 0.53166, 0.65913, 0.67308, 0.74954, 0.7603, 0.61393, 0.69901, 0.51447, 0.81923, 0.55516, 0.93473, 0.51447, 1, 0.41954, 1, 0.27036, 0.9253, 0.16187, 0.8098, 0.06694, 0.68016, 0.00817, 0.38787, 0.00365, 0.57307, 0.38232 ], + "triangles": [ 4, 3, 5, 5, 3, 6, 3, 2, 6, 6, 2, 7, 11, 10, 12, 10, 13, 12, 10, 9, 13, 2, 1, 7, 7, 1, 8, 14, 13, 15, 9, 22, 13, 9, 8, 22, 15, 13, 16, 16, 13, 17, 1, 0, 8, 18, 17, 13, 13, 22, 18, 22, 8, 21, 8, 0, 21, 22, 19, 18, 22, 20, 19, 22, 21, 20 ], + "vertices": [ 3, 6, 125.65, 24.16, 0.819, 29, -61.51, 56.32, 0.09, 48, 23.45, -7.43, 0.091, 3, 6, 113.21, 37.17, 0.64201, 29, -75.04, 44.44, 0.09, 48, 40.92, -11.79, 0.26799, 3, 6, 97.55, 48.07, 0.54508, 29, -86.59, 29.26, 0.06169, 48, 59.97, -12.64, 0.39323, 3, 6, 83.15, 52.92, 0.4171, 29, -92.05, 15.07, 0.07361, 48, 74.75, -9.05, 0.5093, 3, 6, 71.8, 52.44, 0.37688, 29, -92.05, 3.72, 0.06651, 48, 84.08, -2.59, 0.55661, 3, 6, 72.97, 35.8, 0.39111, 29, -75.37, 4.18, 0.06902, 48, 74.2, 10.86, 0.53987, 3, 6, 85.07, 23.1, 0.53235, 29, -62.17, 15.73, 0.09394, 48, 57.19, 15.14, 0.37371, 3, 6, 99.08, 12.13, 0.64178, 29, -50.62, 29.26, 0.12, 48, 39.49, 16.93, 0.23822, 2, 6, 118.26, 3.7, 0.86, 29, -41.38, 48.07, 0.14, 3, 6, 107.79, -6.33, 0.89872, 29, -31.81, 37.18, 0.05965, 49, 10.97, -34.81, 0.04163, 3, 6, 99.82, -20.87, 0.76196, 29, -17.62, 28.6, 0.10658, 49, 27.3, -37.7, 0.13146, 3, 6, 94.06, -40.93, 0.59399, 29, 2.18, 22, 0.10482, 49, 48.15, -36.72, 0.30119, 3, 6, 104.47, -52.71, 0.60482, 29, 14.39, 31.9, 0.10673, 49, 55.97, -23.09, 0.28845, 3, 6, 111.36, -43.83, 0.69544, 29, 5.81, 39.16, 0.08561, 49, 45.35, -19.41, 0.21895, 3, 6, 109.11, -60.77, 0.59573, 29, 22.64, 36.19, 0.09904, 49, 62.12, -16.12, 0.30524, 3, 6, 112.76, -76.8, 0.52077, 29, 38.81, 39.16, 0.0919, 49, 76.14, -7.52, 0.38732, 3, 6, 120.07, -85.63, 0.5084, 29, 47.95, 46.09, 0.08972, 49, 82.16, 2.24, 0.40188, 3, 6, 130.95, -85.17, 0.57569, 29, 47.95, 56.98, 0.08663, 49, 78.24, 12.4, 0.33769, 3, 6, 138.42, -74.39, 0.71063, 29, 37.49, 64.9, 0.04692, 49, 65.63, 16.02, 0.24246, 2, 6, 144.66, -57.94, 0.86805, 49, 48.05, 16.66, 0.13195, 2, 6, 148.18, -39.62, 0.96256, 49, 29.57, 14.12, 0.03744, 2, 6, 146.77, 1.27, 0.86, 29, -37.75, 76.45, 0.14, 3, 6, 120.25, -25.8, 0.89676, 29, -11.82, 48.81, 0.02582, 49, 25.43, -16.76, 0.07742 ], + "hull": 22, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 42 ], + "width": 140, + "height": 73 + } + }, + "hair-bangs-transparent": { + "hair-bangs-transparent": { + "name": "boy/hair-bangs", + "type": "mesh", + "uvs": [ 0.21816, 0.2794, 0.12151, 0.44214, 0.03901, 0.65009, 0, 0.84447, 0, 1, 0.11916, 0.99365, 0.21344, 0.83543, 0.29594, 0.65009, 0.36194, 0.39242, 0.4303, 0.5416, 0.53166, 0.65913, 0.67308, 0.74954, 0.7603, 0.61393, 0.69901, 0.51447, 0.81923, 0.55516, 0.93473, 0.51447, 1, 0.41954, 1, 0.27036, 0.9253, 0.16187, 0.8098, 0.06694, 0.68016, 0.00817, 0.38787, 0.00365, 0.57307, 0.38232 ], + "triangles": [ 4, 3, 5, 5, 3, 6, 3, 2, 6, 6, 2, 7, 11, 10, 12, 10, 13, 12, 10, 9, 13, 2, 1, 7, 7, 1, 8, 14, 13, 15, 9, 22, 13, 9, 8, 22, 15, 13, 16, 16, 13, 17, 1, 0, 8, 18, 17, 13, 13, 22, 18, 22, 8, 21, 8, 0, 21, 22, 19, 18, 22, 20, 19, 22, 21, 20 ], + "vertices": [ 3, 6, 125.65, 24.16, 0.819, 29, -61.51, 56.32, 0.09, 48, 23.45, -7.43, 0.091, 3, 6, 113.21, 37.17, 0.64201, 29, -75.04, 44.44, 0.09, 48, 40.92, -11.79, 0.26799, 3, 6, 97.55, 48.07, 0.54508, 29, -86.59, 29.26, 0.06169, 48, 59.97, -12.64, 0.39323, 3, 6, 83.15, 52.92, 0.4171, 29, -92.05, 15.07, 0.07361, 48, 74.75, -9.05, 0.5093, 3, 6, 71.8, 52.44, 0.37688, 29, -92.05, 3.72, 0.06651, 48, 84.08, -2.59, 0.55661, 3, 6, 72.97, 35.8, 0.39111, 29, -75.37, 4.18, 0.06902, 48, 74.2, 10.86, 0.53987, 3, 6, 85.07, 23.1, 0.53235, 29, -62.17, 15.73, 0.09394, 48, 57.19, 15.14, 0.37371, 3, 6, 99.08, 12.13, 0.64178, 29, -50.62, 29.26, 0.12, 48, 39.49, 16.93, 0.23822, 2, 6, 118.26, 3.7, 0.86, 29, -41.38, 48.07, 0.14, 3, 6, 107.79, -6.33, 0.89872, 29, -31.81, 37.18, 0.05965, 49, 10.97, -34.81, 0.04163, 3, 6, 99.82, -20.87, 0.76196, 29, -17.62, 28.6, 0.10658, 49, 27.3, -37.7, 0.13146, 3, 6, 94.06, -40.93, 0.59399, 29, 2.18, 22, 0.10482, 49, 48.15, -36.72, 0.30119, 3, 6, 104.47, -52.71, 0.60482, 29, 14.39, 31.9, 0.10673, 49, 55.97, -23.09, 0.28845, 3, 6, 111.36, -43.83, 0.69544, 29, 5.81, 39.16, 0.08561, 49, 45.35, -19.41, 0.21895, 3, 6, 109.11, -60.77, 0.59573, 29, 22.64, 36.19, 0.09904, 49, 62.12, -16.12, 0.30524, 3, 6, 112.76, -76.8, 0.52077, 29, 38.81, 39.16, 0.0919, 49, 76.14, -7.52, 0.38732, 3, 6, 120.07, -85.63, 0.5084, 29, 47.95, 46.09, 0.08972, 49, 82.16, 2.24, 0.40188, 3, 6, 130.95, -85.17, 0.57569, 29, 47.95, 56.98, 0.08663, 49, 78.24, 12.4, 0.33769, 3, 6, 138.42, -74.39, 0.71063, 29, 37.49, 64.9, 0.04692, 49, 65.63, 16.02, 0.24246, 2, 6, 144.66, -57.94, 0.86805, 49, 48.05, 16.66, 0.13195, 2, 6, 148.18, -39.62, 0.96256, 49, 29.57, 14.12, 0.03744, 2, 6, 146.77, 1.27, 0.86, 29, -37.75, 76.45, 0.14, 3, 6, 120.25, -25.8, 0.89676, 29, -11.82, 48.81, 0.02582, 49, 25.43, -16.76, 0.07742 ], + "hull": 22, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 0, 42 ], + "width": 140, + "height": 73 + } + }, + "hair-patch": { + "hair-patch": { + "name": "girl/hair-patch", + "type": "mesh", + "color": "ff4b45ff", + "uvs": [ 1, 0.5146, 0.52267, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 3, 4, 0, 1, 2, 3, 0, 1, 3 ], + "vertices": [ 2, 29, -6.92, 43.07, 0.62, 30, 82, 42.47, 0.38, 2, 29, -69.92, 3.27, 0.45, 30, 18.99, 2.67, 0.55, 2, 29, -138.92, 3.27, 0.6, 30, -50, 2.67, 0.4, 2, 29, -138.92, 85.27, 0.55, 30, -50, 84.67, 0.45, 2, 29, -6.92, 85.27, 0.5, 30, 82, 84.67, 0.5 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 0, 2 ], + "width": 132, + "height": 82 + } + }, + "hair-side": { + "hair-side": { + "name": "boy/hair-side", + "type": "mesh", + "uvs": [ 0.76395, 0.00237, 0.91575, 0.43213, 1, 0.68539, 0.95348, 0.8591, 0.91575, 1, 0.36135, 1, 0.33144, 0.88524, 0.29536, 0.74678, 0, 0.73911, 0, 0.49737, 0.59236, 0, 0.42735, 0.46668 ], + "triangles": [ 3, 4, 6, 4, 5, 6, 6, 7, 3, 2, 11, 1, 1, 11, 10, 11, 7, 9, 3, 7, 2, 1, 10, 0, 11, 9, 10, 7, 8, 9, 2, 7, 11 ], + "vertices": [ 1, 6, 119.95, 47.18, 1, 2, 6, 83.34, 38.03, 0.81, 29, -77.16, 14.64, 0.19, 3, 6, 61.76, 32.9, 0.61654, 46, 39.22, 17.05, 0.21346, 29, -72.95, -7.14, 0.17, 3, 6, 46.73, 34.59, 0.41184, 46, 53.6, 12.39, 0.41816, 29, -75.27, -22.08, 0.17, 3, 6, 34.55, 35.96, 0.24581, 46, 65.26, 8.61, 0.58419, 29, -77.16, -34.2, 0.17, 3, 6, 33.37, 63.65, 0.2605, 46, 60.87, -18.76, 0.6395, 29, -104.88, -34.2, 0.1, 3, 6, 43.17, 65.57, 0.35187, 46, 50.89, -18.68, 0.54813, 29, -106.38, -24.33, 0.1, 3, 6, 54.99, 67.87, 0.46211, 46, 38.85, -18.57, 0.43789, 29, -108.18, -12.42, 0.1, 2, 6, 55.02, 82.66, 0.55402, 46, 35.86, -33.05, 0.44598, 1, 6, 75.79, 83.54, 1, 1, 6, 119.79, 55.76, 1, 3, 6, 79.34, 62.3, 0.7717, 46, 16.11, -8.24, 0.0883, 29, -101.58, 11.67, 0.14 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 8, 10, 14, 16, 16, 18, 18, 20, 0, 20, 4, 6, 6, 8, 10, 12, 12, 14, 4, 14 ], + "width": 50, + "height": 86 + } + }, + "hair-side-transparent": { + "hair-side": { + "name": "boy/hair-side", + "type": "mesh", + "uvs": [ 0.76395, 0.00237, 0.91575, 0.43213, 1, 0.68539, 0.95348, 0.8591, 0.91575, 1, 0.36135, 1, 0.33144, 0.88524, 0.29536, 0.74678, 0, 0.73911, 0, 0.49737, 0.59236, 0, 0.42735, 0.46668 ], + "triangles": [ 3, 4, 6, 4, 5, 6, 6, 7, 3, 3, 7, 2, 2, 11, 1, 2, 7, 11, 11, 7, 9, 1, 10, 0, 1, 11, 10, 7, 8, 9, 11, 9, 10 ], + "vertices": [ 1, 6, 119.95, 47.18, 1, 2, 6, 83.34, 38.03, 0.86, 29, -77.16, 14.64, 0.14, 3, 6, 61.76, 32.9, 0.61654, 46, 39.22, 17.05, 0.21346, 29, -72.95, -7.14, 0.17, 3, 6, 46.73, 34.59, 0.41184, 46, 53.6, 12.39, 0.41816, 29, -75.27, -22.08, 0.17, 3, 6, 34.55, 35.96, 0.24581, 46, 65.26, 8.61, 0.58419, 29, -77.16, -34.2, 0.17, 3, 6, 33.37, 63.65, 0.2605, 46, 60.87, -18.76, 0.6395, 29, -104.88, -34.2, 0.1, 3, 6, 43.17, 65.57, 0.35187, 46, 50.89, -18.68, 0.54813, 29, -106.38, -24.33, 0.1, 3, 6, 54.99, 67.87, 0.46211, 46, 38.85, -18.57, 0.43789, 29, -108.18, -12.42, 0.1, 2, 6, 55.02, 82.66, 0.55402, 46, 35.86, -33.05, 0.44598, 2, 6, 75.79, 83.54, 0.96, 29, -122.95, 9.03, 0.04, 1, 6, 119.79, 55.76, 1, 2, 6, 79.34, 62.3, 0.76, 29, -101.58, 11.67, 0.24 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 8, 10, 14, 16, 16, 18, 18, 20, 0, 20, 4, 6, 6, 8, 10, 12, 12, 14, 4, 14 ], + "width": 50, + "height": 86 + } + }, + "mouth": { + "mouth-close": { "name": "boy/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "skin-base", + "attachments": { + "arm-back": { + "arm-back": { + "name": "girl-spring-dress/arm-front", + "type": "mesh", + "uvs": [ 1, 1, 0.51047, 1, 0, 1, 0, 0.90909, 0, 0.81818, 0, 0.72727, 0, 0.63636, 0, 0.54545, 0, 0.45455, 0, 0.36364, 0, 0.27273, 0, 0.18182, 0, 0.09091, 0, 0, 0.53, 0, 1, 0, 1, 0.09091, 1, 0.18182, 1, 0.27273, 1, 0.36364, 1, 0.45455, 1, 0.54545, 1, 0.63636, 1, 0.72727, 1, 0.81818, 1, 0.90909, 0.52825, 0.08961, 0.52645, 0.18177, 0.52476, 0.26801, 0.52291, 0.36314, 0.52111, 0.45529, 0.51928, 0.54893, 0.51759, 0.63514, 0.51585, 0.72434, 0.5139, 0.82396, 0.51219, 0.91165 ], + "triangles": [ 10, 11, 28, 28, 27, 18, 29, 10, 28, 9, 10, 29, 28, 18, 19, 29, 28, 19, 29, 19, 20, 29, 30, 9, 30, 8, 9, 30, 29, 20, 30, 20, 21, 30, 31, 8, 32, 22, 23, 6, 7, 32, 32, 31, 22, 32, 7, 31, 31, 21, 22, 31, 7, 8, 33, 6, 32, 31, 30, 21, 5, 6, 33, 34, 4, 5, 33, 23, 24, 33, 34, 5, 34, 33, 24, 33, 32, 23, 34, 24, 25, 34, 35, 4, 35, 3, 4, 35, 34, 25, 1, 2, 3, 35, 1, 3, 35, 25, 0, 1, 35, 0, 26, 13, 14, 12, 13, 26, 14, 15, 16, 26, 14, 16, 27, 12, 26, 11, 12, 27, 26, 16, 17, 27, 26, 17, 28, 11, 27, 27, 17, 18 ], + "vertices": [ 1, 89, 35.41, 16.56, 1, 1, 89, 35.61, -0.08, 1, 1, 89, 35.83, -17.44, 1, 2, 89, 15.82, -17.69, 0.97415, 88, 49.68, -17.72, 0.02585, 2, 89, -4.19, -17.94, 0.30335, 88, 29.15, -17.93, 0.69665, 3, 89, -24.19, -18.19, 3.5E-4, 88, 8.61, -18.13, 0.83036, 87, 41.9, -18.17, 0.16929, 2, 88, -11.93, -18.33, 0.24, 87, 21.61, -18.27, 0.76, 2, 87, 1.31, -18.36, 0.8, 86, 34.7, -18.37, 0.2, 3, 87, -18.99, -18.46, 0.01161, 86, 14.31, -18.35, 0.93999, 85, 47.78, -18.38, 0.0484, 2, 86, -6.06, -18.32, 0.22079, 85, 27.38, -18.31, 0.77921, 2, 84, 40.35, -18.25, 0.20487, 85, 6.98, -18.25, 0.79513, 2, 84, 20.32, -18.19, 0.9496, 85, -13.42, -18.19, 0.0504, 1, 84, 0.28, -18.13, 1, 1, 84, -19.75, -18.07, 1, 1, 84, -19.7, -0.05, 1, 1, 84, -19.65, 15.93, 1, 1, 84, 0.38, 15.87, 1, 2, 84, 20.42, 15.81, 0.9733, 85, -13.31, 15.81, 0.0267, 2, 84, 40.45, 15.75, 0.16827, 85, 7.09, 15.75, 0.83173, 2, 86, -6.02, 15.68, 0.16665, 85, 27.49, 15.69, 0.83335, 3, 87, -19.15, 15.54, 0.00166, 86, 14.35, 15.65, 0.96514, 85, 47.89, 15.62, 0.0332, 2, 87, 1.15, 15.63, 0.5617, 86, 34.74, 15.63, 0.4383, 2, 88, -12.27, 15.67, 0.04304, 87, 21.45, 15.73, 0.95696, 2, 88, 8.27, 15.87, 0.86585, 87, 41.74, 15.83, 0.13415, 2, 89, -4.6, 16.06, 0.21057, 88, 28.8, 16.07, 0.78943, 2, 89, 15.4, 16.31, 0.97298, 88, 49.34, 16.27, 0.02702, 1, 84, 0.05, -0.17, 1, 1, 84, 20.36, -0.29, 1, 2, 84, 39.37, -0.4, 0.00128, 85, 5.99, -0.4, 0.99872, 1, 85, 27.33, -0.53, 1, 1, 86, 14.5, -0.63, 1, 2, 87, 2, -0.71, 0.95682, 86, 35.5, -0.72, 0.04318, 2, 88, -12.38, -0.74, 3.4E-4, 87, 21.25, -0.67, 0.99966, 2, 88, 7.77, -0.6, 0.99759, 87, 41.17, -0.64, 0.00241, 1, 88, 30.28, -0.44, 1, 1, 89, 16.17, -0.27, 1 ], + "hull": 26, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 0, 26, 28, 28, 30, 0, 2, 2, 4, 52, 28, 24, 52, 54, 52, 22, 54, 56, 54, 20, 56, 58, 56, 18, 58, 60, 58, 16, 60, 62, 60, 14, 62, 64, 62, 12, 64, 66, 64, 10, 66, 68, 66, 8, 68, 2, 70, 70, 68, 6, 70 ], + "width": 34, + "height": 222 + } + }, + "arm-front": { + "arm-front": { + "name": "girl-spring-dress/arm-front", + "type": "mesh", + "uvs": [ 1, 1, 0.51047, 1, 0, 1, 0, 0.90909, 0, 0.81818, 0, 0.72727, 0, 0.63636, 0, 0.54545, 0, 0.45455, 0, 0.36364, 0, 0.27273, 0, 0.18182, 0, 0.09091, 0, 0, 0.53, 0, 1, 0, 1, 0.09091, 1, 0.18182, 1, 0.27273, 1, 0.36364, 1, 0.45455, 1, 0.54545, 1, 0.63636, 1, 0.72727, 1, 0.81818, 1, 0.90909, 0.52825, 0.08961, 0.52645, 0.18177, 0.52476, 0.26801, 0.52291, 0.36314, 0.52111, 0.45529, 0.51928, 0.54893, 0.51759, 0.63514, 0.51585, 0.72434, 0.5139, 0.82396, 0.51219, 0.91165 ], + "triangles": [ 35, 3, 4, 34, 24, 25, 34, 35, 4, 35, 34, 25, 1, 2, 3, 35, 1, 3, 35, 25, 0, 1, 35, 0, 5, 6, 33, 34, 4, 5, 33, 23, 24, 33, 34, 5, 34, 33, 24, 33, 32, 23, 32, 22, 23, 6, 7, 32, 32, 31, 22, 32, 7, 31, 31, 21, 22, 31, 30, 21, 31, 7, 8, 33, 6, 32, 29, 19, 20, 29, 30, 9, 30, 8, 9, 30, 29, 20, 30, 20, 21, 30, 31, 8, 29, 10, 28, 9, 10, 29, 28, 18, 19, 29, 28, 19, 10, 11, 28, 26, 13, 14, 12, 13, 26, 14, 15, 16, 26, 14, 16, 27, 12, 26, 11, 12, 27, 26, 16, 17, 27, 26, 17, 28, 11, 27, 27, 17, 18, 28, 27, 18 ], + "vertices": [ 1, 16, 38.32, 16.3, 1, 1, 16, 38.52, -0.34, 1, 1, 16, 38.73, -17.69, 1, 2, 12, 52.67, -17.99, 0.00808, 16, 18.72, -17.94, 0.99192, 2, 12, 32.13, -18.19, 0.55013, 16, -1.29, -18.19, 0.44987, 3, 13, 44.84, -18.45, 0.17, 12, 11.58, -18.39, 0.82609, 16, -21.3, -18.44, 0.00391, 3, 14, 58.02, -18.69, 0.00461, 13, 24.54, -18.55, 0.51, 12, -8.96, -18.59, 0.48539, 2, 14, 37.65, -18.67, 0.24, 13, 4.25, -18.64, 0.76, 3, 15, 50.74, -18.68, 0.01218, 14, 17.27, -18.64, 0.69782, 13, -16.04, -18.74, 0.29, 2, 15, 30.34, -18.61, 0.58, 14, -3.11, -18.62, 0.42, 3, 11, 43.26, -18.55, 0.66266, 15, 9.94, -18.55, 0.32, 14, -23.49, -18.6, 0.01734, 2, 11, 23.22, -18.49, 0.87756, 15, -10.46, -18.49, 0.12244, 1, 11, 3.19, -18.43, 1, 1, 11, -16.84, -18.37, 1, 1, 11, -16.79, -0.35, 1, 1, 11, -16.74, 15.63, 1, 1, 11, 3.29, 15.57, 1, 2, 11, 23.32, 15.51, 0.91061, 15, -10.35, 15.51, 0.08939, 2, 11, 43.36, 15.45, 0.68, 15, 10.05, 15.45, 0.32, 2, 15, 30.45, 15.39, 0.58, 14, -3.07, 15.38, 0.42, 3, 15, 50.84, 15.32, 0.00487, 14, 17.31, 15.36, 0.70513, 13, -16.21, 15.26, 0.29, 2, 14, 37.69, 15.33, 0.24, 13, 4.09, 15.36, 0.76, 2, 13, 24.38, 15.45, 0.51, 12, -9.3, 15.4, 0.49, 2, 13, 44.67, 15.55, 0.17, 12, 11.24, 15.61, 0.83, 2, 12, 31.78, 15.81, 0.59679, 16, -1.7, 15.8, 0.40321, 2, 12, 52.32, 16.01, 0.00481, 16, 18.31, 16.05, 0.99519, 1, 11, 2.96, -0.47, 1, 1, 11, 23.27, -0.59, 1, 1, 15, 8.94, -0.71, 1, 2, 15, 30.28, -0.83, 0.58, 14, -3.2, -0.84, 0.42, 2, 14, 17.46, -0.93, 0.71, 13, -15.96, -1.02, 0.29, 2, 14, 38.45, -1.01, 0.24, 13, 4.94, -0.98, 0.76, 1, 13, 24.19, -0.95, 1, 2, 13, 44.1, -0.92, 0.17, 12, 10.74, -0.86, 0.83, 2, 12, 33.25, -0.7, 0.55299, 16, -0.23, -0.71, 0.44701, 1, 16, 19.07, -0.52, 1 ], + "hull": 26, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 0, 26, 28, 28, 30, 0, 2, 2, 4, 52, 28, 24, 52, 54, 52, 22, 54, 56, 54, 20, 56, 58, 56, 18, 58, 60, 58, 16, 60, 62, 60, 14, 62, 64, 62, 12, 64, 66, 64, 10, 66, 68, 66, 8, 68, 2, 70, 70, 68, 6, 70 ], + "width": 34, + "height": 222 + } + }, + "base-head": { + "base-head": { "x": 74.74, "y": -10.09, "rotation": -87.57, "width": 189, "height": 145 } + }, + "ear": { + "ear": { + "name": "girl/ear", + "path": "girl-spring-dress/ear", + "x": 56.58, + "y": 85.63, + "rotation": -87.57, + "width": 38, + "height": 45 + } + }, + "hand-back": { + "hand-back-fingers": { + "name": "girl/hand-front-fingers", + "path": "girl-spring-dress/hand-front-fingers", + "x": 11.59, + "y": 1.97, + "rotation": 90, + "width": 38, + "height": 42 + } + }, + "hand-front": { + "hand-front-fingers": { + "name": "girl/hand-front-fingers", + "path": "girl-spring-dress/hand-front-fingers", + "x": 11.59, + "y": 1.97, + "rotation": 90, + "width": 38, + "height": 42 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-spring-dress/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 }, + "mouth-smile": { "name": "girl/mouth-smile", "path": "girl-spring-dress/mouth-smile", "x": -4.12, "y": 2.56, "width": 57, "height": 13 } + }, + "neck": { + "neck": { "name": "girl-spring-dress/neck", "x": 27.19, "y": -3.15, "rotation": -91.34, "width": 39, "height": 63 } + } + } + }, + { + "name": "eyes/violet", + "attachments": { + "eye-back-iris": { + "eye-back-iris": { "name": "girl/eye-iris-back", "path": "girl-blue-cape/eye-iris-back", "x": 0.85, "y": -0.75, "width": 33, "height": 34 } + }, + "eye-back-pupil": { + "eye-back-pupil": { + "name": "girl/eye-back-pupil", + "path": "girl-blue-cape/eye-back-pupil", + "x": 0.43, + "y": -0.67, + "scaleX": 1.2, + "scaleY": 1.2062, + "width": 15, + "height": 17 + } + }, + "eye-front-iris": { + "eye-front-iris": { "name": "girl/eye-iris-front", "path": "girl-blue-cape/eye-iris-front", "x": 0.22, "y": -0.71, "width": 36, "height": 35 } + }, + "eye-front-pupil": { + "eye-front-pupil": { + "name": "girl/eye-front-pupil", + "path": "girl-blue-cape/eye-front-pupil", + "x": -0.04, + "y": -0.47, + "scaleX": 1.2, + "scaleY": 1.2, + "width": 17, + "height": 17 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-blue-cape/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + }, + { + "name": "eyes/yellow", + "attachments": { + "eye-back-iris": { + "eye-back-iris": { "name": "girl/eye-iris-back", "path": "girl-spring-dress/eye-iris-back", "x": 0.85, "y": -0.75, "width": 33, "height": 34 } + }, + "eye-back-pupil": { + "eye-back-pupil": { + "name": "girl/eye-back-pupil", + "path": "girl-spring-dress/eye-back-pupil", + "x": 0.43, + "y": -0.67, + "scaleX": 1.2, + "scaleY": 1.2062, + "width": 15, + "height": 17 + } + }, + "eye-front-iris": { + "eye-front-iris": { "name": "girl/eye-iris-front", "path": "girl-spring-dress/eye-iris-front", "x": 0.22, "y": -0.71, "width": 36, "height": 35 } + }, + "eye-front-pupil": { + "eye-front-pupil": { + "name": "girl/eye-front-pupil", + "path": "girl-spring-dress/eye-front-pupil", + "x": -0.04, + "y": -0.47, + "scaleX": 1.2, + "scaleY": 1.2, + "width": 17, + "height": 17 + } + }, + "mouth": { + "mouth-close": { "name": "girl/mouth-close", "path": "girl-spring-dress/mouth-close", "x": 6.2, "y": 5.18, "width": 42, "height": 9 } + } + } + } +], +"animations": { + "aware": { + "bones": { + "head-control": { + "translate": [ + { "x": -62.46, "y": -5.73 }, + { "time": 0.1667, "x": 30.37, "y": 35.21 }, + { "time": 0.2667, "x": 4.53, "y": 62.9 }, + { "time": 0.4667, "x": 5.81, "y": 43.4, "curve": "stepped" }, + { "time": 1.0667, "x": 5.81, "y": 43.4 } + ] + }, + "hips": { + "translate": [ + { "y": -91.4 }, + { "time": 0.1667, "y": 7.19 } + ] + }, + "hat-control": { + "translate": [ + { "x": -51.09, "y": -5.28 }, + { "time": 0.1667, "x": 34.82, "y": -14.72 } + ] + }, + "head": { + "rotate": [ + { "value": -2.68 }, + { "time": 0.1667, "value": 4.05 }, + { "time": 0.2667, "value": -1.51 }, + { "time": 0.4667, "value": 1.68, "curve": "stepped" }, + { "time": 0.5667, "value": 1.68 }, + { "time": 0.8333, "value": -4.08 } + ] + }, + "hat-base": { + "translate": [ + {}, + { "time": 0.1667, "x": -11.29, "y": 0.32 }, + { "time": 0.4, "x": -1.03, "y": 0.64 } + ] + }, + "hat": { + "rotate": [ + {}, + { "time": 0.2, "value": 15.74 }, + { "time": 0.4, "value": -16.53 }, + { "time": 0.6333, "value": 13.83 }, + { "time": 0.8, "value": 4.09 } + ], + "scale": [ + {}, + { "time": 0.1333, "x": 0.886 }, + { "time": 0.3333 } + ] + }, + "scarf-back": { + "rotate": [ + {}, + { "time": 0.1, "value": 20.93 }, + { "time": 0.3333, "value": -5.62 }, + { "time": 0.5, "value": 1.86 } + ] + }, + "hair-side-back": { + "rotate": [ + { "value": -9.73 }, + { "time": 0.1667, "value": 9.49 }, + { "time": 0.3, "value": -10.46 }, + { "time": 0.4667, "value": 1.95 }, + { "time": 0.6667, "value": -6 }, + { "time": 0.8667, "value": -0.63 } + ] + }, + "hair-side-front": { + "rotate": [ + { "value": -2.72 }, + { "time": 0.1667, "value": 10.36 }, + { "time": 0.3, "value": -19.18 }, + { "time": 0.4667, "value": -0.83 }, + { "time": 0.6667, "value": -9.9 }, + { "time": 0.8667, "value": -4.35 } + ] + }, + "hair-bangs-back": { + "rotate": [ + { "value": -19.65 }, + { "time": 0.1667, "value": 7.92 }, + { "time": 0.3, "value": -1.28 }, + { "time": 0.4667, "value": -9.58 }, + { "time": 0.6667, "value": -14.48 }, + { "time": 0.8667, "value": -8.73 } + ] + }, + "hair-bangs-front": { + "rotate": [ + { "value": 18.38, "curve": "stepped" }, + { "time": 0.1667, "value": 18.38 }, + { "time": 0.3, "value": -8.33 }, + { "time": 0.4667, "value": 8.04 }, + { "time": 0.6667, "value": -8.34 } + ] + }, + "skirt-control": { + "translate": [ + { "y": -94.48 }, + { "time": 0.1333, "x": -1.64, "y": 1.12 }, + { "time": 0.1667, "x": -2.05, "y": 47.36 }, + { "time": 0.3 } + ] + }, + "skirt-control-middle": { + "translate": [ + {}, + { "time": 0.1667, "x": -47.24, "y": -1.03 }, + { "time": 0.2333, "x": -43.72, "y": -0.73 }, + { "time": 0.4 } + ] + }, + "skirt-rotation-front": { + "rotate": [ + { "value": 18.42 }, + { "time": 0.1333, "value": 18.47 }, + { "time": 0.3667, "value": -29.8 }, + { "time": 0.5, "value": -0.34 }, + { "time": 0.7, "value": -19.33 } + ] + }, + "skirt-rotation-back": { + "rotate": [ + { "value": -19.75 }, + { "time": 0.1333, "value": -35.04 }, + { "time": 0.3, "value": 37.38 }, + { "time": 0.4333, "value": -3.17 }, + { "time": 0.7, "value": 14.47 } + ] + }, + "skirt-control-up": { + "translate": [ + { "time": 0.2333, "x": -1.03, "y": -1.03 } + ] + }, + "cape-front-rotator": { + "rotate": [ + { "value": 7.42, "curve": "stepped" }, + { "time": 0.1333, "value": 7.42 }, + { "time": 0.2333, "value": -6.54 }, + { "time": 0.5 } + ] + }, + "cape-back-rotator": { + "rotate": [ + { "value": 0.14 }, + { "time": 0.1333, "value": -19.44 }, + { "time": 0.2333, "value": 6.97 }, + { "time": 0.5 } + ] + }, + "hair-strand-back-1": { + "rotate": [ + { "value": -13.58 }, + { "time": 0.4, "value": 3.32 }, + { "time": 0.6667, "value": -11.78 }, + { "time": 0.9667, "value": -7.37 } + ] + }, + "hair-strand-back-2": { + "rotate": [ + { "value": 300.71 }, + { "time": 0.4, "value": 364.24 }, + { "time": 0.5667, "value": 360 }, + { "time": 0.9333, "value": 364.33 } + ] + }, + "hair-strand-back-3": { + "rotate": [ + { "value": -24.87 }, + { "time": 0.4, "value": 6.39 }, + { "time": 0.5667, "value": 8.01 }, + { "time": 0.9333, "value": 14.8 } + ] + }, + "hair-strand-front-1": { + "rotate": [ + { "value": -352.71 }, + { "time": 0.4, "value": -375.28 }, + { "time": 0.6667, "value": -352.48 }, + { "time": 0.9333, "value": -361.77 } + ] + }, + "hair-strand-front-3": { + "rotate": [ + { "value": 30.72 }, + { "time": 0.4, "value": -8.29 }, + { "time": 0.5667 }, + { "time": 0.9333, "value": -6.01 } + ] + }, + "hair-strand-front-2": { + "rotate": [ + { "value": -331.85 }, + { "time": 0.4, "value": -376.13 }, + { "time": 0.5667, "value": -360 }, + { "time": 0.8, "value": -368.78 }, + { "time": 1.0333, "value": -358.49 } + ] + }, + "hair-strand-front-4": { + "rotate": [ + { "value": 36.04 }, + { "time": 0.4, "value": -9.94 }, + { "time": 0.5667 }, + { "time": 0.9333, "value": -3.18 } + ] + }, + "bag": { + "rotate": [ + { "value": -5.68 }, + { "time": 0.2667, "value": 11.42 }, + { "time": 0.4333, "value": 4.78 }, + { "time": 0.6, "value": 9.21 } + ] + }, + "bag-control": { + "translate": [ + { "x": -15.82, "y": -19.18 }, + { "time": 0.2, "x": -7.23, "y": 14.62 }, + { "time": 0.4, "x": -3.97, "y": -11.03 }, + { "time": 0.6333, "x": -14.17, "y": -8.66 }, + { "time": 0.8667, "x": -3.91, "y": -9.14 } + ] + }, + "arm-front-down": { + "rotate": [ + { "value": 21.36 }, + { "time": 0.1333, "value": -4.81 }, + { "time": 0.3667, "value": 37.96 }, + { "time": 0.6667, "value": 25.99 } + ] + }, + "arm-front-up": { + "rotate": [ + { "value": 10.18 }, + { "time": 0.1333, "value": -9.82 }, + { "time": 0.3667, "value": -10.68 }, + { "time": 0.6667, "value": -16.66 } + ] + }, + "arm-back-up": { + "rotate": [ + { "value": -26.58 }, + { "time": 0.1667, "value": 14.59 }, + { "time": 0.3667, "value": 2.32 }, + { "time": 0.8667, "value": -3.61 } + ] + }, + "arm-back-down": { + "rotate": [ + { "value": 75.17 }, + { "time": 0.1667, "value": -3.13 }, + { "time": 0.3667, "value": 39.97 }, + { "time": 0.8667, "value": 34.08 } + ] + }, + "dress-control-leg-down-back": { + "translate": [ + { "x": -0.84, "y": -5.64 }, + { "time": 0.2 } + ] + }, + "cape-blue-middle-front": { + "translate": [ + { "x": 37.13, "y": 23.77 }, + { "time": 0.0667, "x": 59.36, "y": 36.71 }, + { "time": 0.1667, "x": 54.84, "y": 0.04 }, + { "time": 0.3, "x": 5.89, "y": -49.91 }, + { "time": 0.3333, "x": 54.3, "y": -41.62 }, + { "time": 0.4333, "x": 39.08, "y": -2.95 }, + { "time": 0.5333, "x": 46.83, "y": -8.42 }, + { "time": 0.5667, "x": 32.59, "y": -17.13 } + ] + }, + "cape-blue-down-front": { + "rotate": [ + { "time": 0.2 }, + { "time": 0.4333, "value": 24.99 }, + { "time": 0.5667, "value": 14.98 }, + { "time": 0.7, "value": -21.62 }, + { "time": 0.8, "value": 1.06 } + ], + "translate": [ + { "x": 5.22, "y": -6.79 }, + { "time": 0.1333, "x": 75.09, "y": 30.66 }, + { "time": 0.1667, "x": 51.71, "y": 31.97 }, + { "time": 0.4333, "x": 44.01, "y": -13.07 }, + { "time": 0.6667, "x": 43.38, "y": -12.67 }, + { "time": 0.7333, "x": 43.18, "y": 10.37 } + ] + }, + "cape-blue-down-back": { + "translate": [ + { "time": 0.1667, "x": 32.74, "y": -32 } + ] + }, + "dress-control-foot-front": { + "rotate": [ + { "value": -49.06 }, + { "time": 0.1667 } + ], + "translate": [ + { "x": -18.52, "y": 12.34 }, + { "time": 0.1667 } + ] + }, + "dress-control-foot-back": { + "translate": [ + { "x": 38.58, "y": -4.63 }, + { "time": 0.1667 } + ] + }, + "dress-control-leg-up-back": { + "translate": [ + { "x": -22.89, "y": 7.69 }, + { "time": 0.1667 } + ] + }, + "dress-control-leg-down-front": { + "translate": [ + { "x": -2.78, "y": -17.03 }, + { "time": 0.2 } + ] + } + } + }, + "blink": { + "slots": { + "eye-back-iris": { + "attachment": [ + { "time": 0.0333, "name": null }, + { "time": 0.0732, "name": "eye-back-iris" } + ] + }, + "eye-back-pupil": { + "attachment": [ + { "time": 0.0333, "name": null }, + { "time": 0.0732, "name": "eye-back-pupil" } + ] + }, + "eye-back-white": { + "attachment": [ + { "time": 0.0333, "name": null }, + { "time": 0.0732, "name": "eye-back-white" } + ] + }, + "eye-front-iris": { + "attachment": [ + { "time": 0.0333, "name": null }, + { "time": 0.0732, "name": "eye-front-iris" } + ] + }, + "eye-front-pupil": { + "attachment": [ + { "time": 0.0333, "name": null }, + { "time": 0.0732, "name": "eye-front-pupil" } + ] + }, + "eye-front-white": { + "attachment": [ + { "time": 0.0333, "name": null }, + { "time": 0.0732, "name": "eye-front-white" } + ] + } + }, + "bones": { + "eye-front-up-eyelid": { + "rotate": [ + {}, + { "time": 0.0183, "value": -42.34 }, + { "time": 0.1646 } + ] + }, + "eye-front-up-eyelid-holder": { + "translate": [ + {}, + { "time": 0.0183, "y": -4.35 }, + { "time": 0.0366, "x": 0.27, "y": -12.4, "curve": "stepped" }, + { "time": 0.0549, "x": 0.27, "y": -12.4 }, + { "time": 0.1646 } + ] + }, + "eye-back-up-eyelid": { + "rotate": [ + {}, + { "time": 0.0183, "value": 35.83 }, + { "time": 0.1646 } + ] + }, + "eye-back-up-eyelid-holder": { + "translate": [ + {}, + { "time": 0.0183, "x": -2.99, "y": -4.35 }, + { "time": 0.0366, "x": -1.68, "y": -11.31, "curve": "stepped" }, + { "time": 0.0549, "x": -1.68, "y": -11.31 }, + { "time": 0.1646 } + ] + }, + "eye-back-low-eyelid-holder": { + "rotate": [ + { "time": 0.0366, "value": 4.33 } + ], + "translate": [ + {}, + { "time": 0.0183, "x": -1.63, "y": 1.09 }, + { "time": 0.0366, "x": -1.09, "y": 6.52, "curve": "stepped" }, + { "time": 0.0549, "x": -1.09, "y": 6.52 }, + { "time": 0.0732, "x": -1.34, "y": -1.93 }, + { "time": 0.1646, "curve": "stepped" }, + { "time": 1.032 } + ] + }, + "eye-front-low-eyelid-holder": { + "translate": [ + {}, + { "time": 0.0366, "x": -1.36, "y": 4.55, "curve": "stepped" }, + { "time": 0.0549, "x": -1.36, "y": 4.55 }, + { "time": 0.0732, "x": -1.36, "y": -3.51 }, + { "time": 0.1646 } + ] + }, + "eye-back-low-eyelid": { + "rotate": [ + {}, + { "time": 0.0366, "value": -27.26, "curve": "stepped" }, + { "time": 0.0549, "value": -27.26 }, + { "time": 0.0732, "value": -11.09 }, + { "time": 0.1646 } + ] + }, + "eye-front-low-eyelid": { + "rotate": [ + {}, + { "time": 0.0366, "value": 18.27, "curve": "stepped" }, + { "time": 0.0549, "value": 18.27 }, + { "time": 0.1646 } + ] + }, + "eye-front-eyebrow": { + "rotate": [ + {}, + { "time": 0.0333, "value": -14.81 }, + { "time": 0.1333 } + ], + "translate": [ + {}, + { "time": 0.0333, "y": -8.69 }, + { "time": 0.1333 } + ] + }, + "eye-back-eyebrow": { + "rotate": [ + {}, + { "time": 0.0333, "value": 14.78 }, + { "time": 0.1333 } + ], + "translate": [ + {}, + { "time": 0.0333, "y": -8.69 }, + { "time": 0.1333 } + ] + } + } + }, + "dance": { + "bones": { + "foot-back-IK": { + "translate": [ + { "x": -3.94 } + ] + }, + "foot-front-IK": { + "translate": [ + { "x": -77.47 } + ] + }, + "arm-front-up": { + "rotate": [ + { "value": -43.38 }, + { "time": 0.2, "value": -64.19 }, + { "time": 0.5, "value": -43.38 } + ] + }, + "arm-front-down": { + "rotate": [ + { "value": 111.67 }, + { "time": 0.2, "value": 119.56 }, + { "time": 0.3, "value": 108.58 }, + { "time": 0.5, "value": 111.67 } + ] + }, + "arm-back-up": { + "rotate": [ + { "value": 62.56 }, + { "time": 0.2, "value": 55.24 }, + { "time": 0.5, "value": 62.56 } + ] + }, + "arm-back-down": { + "rotate": [ + { "value": -123.94 }, + { "time": 0.2, "value": -123.93 }, + { "time": 0.5, "value": -123.94 } + ] + }, + "head": { + "rotate": [ + { "value": 8.09 }, + { "time": 0.2667, "value": -4.72 }, + { "time": 0.5, "value": 8.09 } + ] + }, + "hips": { + "translate": [ + {}, + { "time": 0.1, "x": -31.02, "y": -57.32 }, + { "time": 0.2, "x": -75.67, "y": -45.42 }, + { "time": 0.2667, "x": -82.72, "y": 5.11 }, + { "time": 0.5 } + ] + }, + "skirt-control": { + "translate": [ + {}, + { "time": 0.2667, "x": -107.7, "y": -26.37 }, + { "time": 0.5 } + ] + }, + "body-down": { + "rotate": [ + {}, + { "time": 0.2667, "value": -37.27 }, + { "time": 0.5 } + ], + "translate": [ + {}, + { "time": 0.2, "x": 13.63, "y": 25.56 }, + { "time": 0.5 } + ] + }, + "bag": { + "translate": [ + {}, + { "time": 0.1, "x": 2.14, "y": -46.73 }, + { "time": 0.2667, "x": 11.89, "y": 39.86 }, + { "time": 0.3, "x": 37.93, "y": 79.04 }, + { "time": 0.4, "x": 35.68, "y": 82.97 }, + { "time": 0.5 } + ] + }, + "bag-control": { + "translate": [ + {}, + { "time": 0.1667, "x": -9.48, "y": -9.24 }, + { "time": 0.2667, "x": -45.55, "y": 11.61 }, + { "time": 0.4, "x": -23.13, "y": 23.45 }, + { "time": 0.5 } + ] + }, + "bag-flap": { + "rotate": [ + {}, + { "time": 0.3, "value": 30.36 }, + { "time": 0.5 } + ], + "translate": [ + {}, + { "time": 0.3, "x": 62.39, "y": -60.69 }, + { "time": 0.5 } + ] + }, + "body-up": { + "rotate": [ + {}, + { "time": 0.2667, "value": 25.81 }, + { "time": 0.4, "value": 6.12 }, + { "time": 0.5 } + ] + }, + "dress-control-leg-up-front": { + "translate": [ + { "x": -4.66, "y": 13.07 }, + { "time": 0.0667, "x": -6.42, "y": -2.09 }, + { "time": 0.1667, "x": -13.77, "y": -19.16 }, + { "time": 0.3, "x": -7.28, "y": 5.82 }, + { "time": 0.4333, "x": -4.66, "y": 13.07 } + ] + }, + "dress-control-leg-down-front": { + "translate": [ + { "x": -5.13, "y": 14.38 }, + { "time": 0.0667, "x": 10.01, "y": -1.87 }, + { "time": 0.1667, "x": 22.73, "y": -15.41 }, + { "time": 0.3, "x": 10.87, "y": -9.78 }, + { "time": 0.4333, "x": -5.13, "y": 14.38 } + ] + }, + "dress-control-leg-up-back": { + "translate": [ + {}, + { "time": 0.1667, "x": 26.48, "y": 1.39 }, + { "time": 0.5 } + ] + }, + "dress-control-leg-down-back": { + "rotate": [ + {}, + { "time": 0.1667, "value": 25.88 }, + { "time": 0.3, "value": -11.62 }, + { "time": 0.5 } + ] + }, + "skirt-rotation-front": { + "rotate": [ + { "value": -26.59 }, + { "time": 0.1, "value": -16.72 }, + { "time": 0.1667, "value": 22.5 }, + { "time": 0.2667, "value": 34.86 }, + { "time": 0.5, "value": -26.59 } + ] + }, + "skirt-rotation-back": { + "rotate": [ + { "value": 25.32 }, + { "time": 0.1, "value": 26.97 }, + { "time": 0.1667, "value": -23.4 }, + { "time": 0.2667, "value": -24.93 }, + { "time": 0.4, "value": -4.25 }, + { "time": 0.5, "value": 25.32 } + ] + }, + "skirt-control-front": { + "rotate": [ + { "value": -26.59 }, + { "time": 0.1667, "value": -3.25 }, + { "time": 0.5, "value": -26.59 } + ] + }, + "skirt-control-up": { + "translate": [ + {}, + { "time": 0.1333, "x": 10.41, "y": -19.43 }, + { "time": 0.2667, "x": 16.66, "y": -37.48 }, + { "time": 0.4, "x": 72.57, "y": -6.15 }, + { "time": 0.5 } + ] + }, + "skirt-control-middle": { + "translate": [ + {}, + { "time": 0.1, "x": -37.48 }, + { "time": 0.5 } + ] + }, + "skirt-control-front-down": { + "translate": [ + {}, + { "time": 0.1, "x": -34.98, "y": -13.44 }, + { "time": 0.2333, "x": -11.57, "y": 10.34 }, + { "time": 0.5 } + ] + }, + "skirt-control-back-down": { + "translate": [ + {}, + { "time": 0.1, "x": -34.58, "y": 14.44 }, + { "time": 0.2333, "x": -8.49, "y": -14.05 }, + { "time": 0.5 } + ] + }, + "hair-side-front": { + "rotate": [ + { + "value": -35.09, + "curve": [ 0.094, -31.19, 0.125, 11.81 ] + }, + { "time": 0.1667, "value": 11.81 }, + { "time": 0.3, "value": -27.76 }, + { "time": 0.5, "value": -35.09 } + ] + }, + "hair-side-back": { + "rotate": [ + { + "value": -22.34, + "curve": [ 0.147, -10.82, 0.109, 23.73 ] + }, + { + "time": 0.1667, + "value": 23.73, + "curve": [ 0.242, 23.73, 0.392, -23.17 ] + }, + { + "time": 0.4667, + "value": -23.17, + "curve": [ 0.475, -23.17, 0.492, -22.34 ] + }, + { "time": 0.5, "value": -22.34 } + ] + }, + "head-control": { + "translate": [ + { "x": 22.8, "y": -9.23 }, + { "time": 0.0667, "x": 57.97, "y": 46.22 }, + { "time": 0.2333, "x": -32.58, "y": -3.79 }, + { "time": 0.5, "x": 22.8, "y": -9.23 } + ] + }, + "hair-bangs-front": { + "rotate": [ + { "value": 17.62 }, + { "time": 0.1667, "value": 10.84 }, + { "time": 0.3333, "value": -24 }, + { "time": 0.4333 }, + { "time": 0.5, "value": 17.62 } + ] + }, + "hair-bangs-back": { + "rotate": [ + { "value": -39.79 }, + { "time": 0.1667, "value": -24.48 }, + { "time": 0.3333, "value": 29.96 }, + { "time": 0.4333 }, + { "time": 0.5, "value": -39.79 } + ] + }, + "hat": { + "rotate": [ + { "value": 27.46 }, + { "time": 0.1667, "value": -23.07 }, + { "time": 0.5, "value": 27.46 } + ] + }, + "hat-control": { + "translate": [ + { "x": 111.64, "y": 22.2 }, + { "time": 0.1667, "x": -159.23, "y": 20.72 }, + { "time": 0.3333, "x": -51.25, "y": -31.45 }, + { "time": 0.5, "x": 111.64, "y": 22.2 } + ] + }, + "hat-base": { + "translate": [ + { "x": -11.05, "y": 1.1 }, + { "time": 0.2667, "x": -9.51, "y": -2.68 }, + { "time": 0.5, "x": -11.05, "y": 1.1 } + ] + }, + "scarf-back": { + "rotate": [ + {}, + { "time": 0.0667, "value": -17.47 }, + { "time": 0.1667, "value": 13.07 }, + { "time": 0.2667, "value": 71.2 }, + { "time": 0.5 } + ] + }, + "backpack": { + "rotate": [ + { "value": 3.89 }, + { "time": 0.2, "value": -0.82 }, + { "time": 0.3333, "value": -33.86 }, + { "time": 0.5, "value": 3.89 } + ], + "translate": [ + { "x": 1.47, "y": 19.38, "curve": "stepped" }, + { "time": 0.1, "x": 1.47, "y": 19.38 }, + { "time": 0.2, "x": -9.61, "y": 18.55 }, + { "time": 0.3333, "x": 27.69, "y": 6.16 }, + { "time": 0.5, "x": 1.47, "y": 19.38 } + ] + }, + "backpack-control": { + "translate": [ + { "x": 15.05, "y": 56.59 }, + { "time": 0.1, "x": -13.31, "y": 78.1 }, + { "time": 0.2, "x": -44.92, "y": 33.07 }, + { "time": 0.3, "x": -69.87, "y": -53.48 }, + { "time": 0.5, "x": 15.05, "y": 56.59 } + ] + }, + "hair-strand-front-1": { + "rotate": [ + { "value": -10.89 }, + { "time": 0.2, "value": 20.95 }, + { "time": 0.3667, "value": -47.39 }, + { "time": 0.5, "value": -10.89 } + ] + }, + "hair-strand-front-3": { + "rotate": [ + { "value": 35.67 }, + { "time": 0.2, "value": -26.6 }, + { "time": 0.3667 }, + { "time": 0.5, "value": 35.67 } + ] + }, + "hair-strand-front-2": { + "rotate": [ + { "value": 35.67 }, + { "time": 0.2, "value": -26.6 }, + { "time": 0.3667 }, + { "time": 0.5, "value": 35.67 } + ] + }, + "hair-strand-front-4": { + "rotate": [ + { "value": 35.67 }, + { "time": 0.2, "value": -26.6 }, + { "time": 0.3667 }, + { "time": 0.5, "value": 35.67 } + ] + }, + "hair-strand-back-1": { + "rotate": [ + { "value": -23.48 }, + { "time": 0.2, "value": 9.31 }, + { "time": 0.3667, "value": -37.1 }, + { "time": 0.5, "value": -23.48 } + ] + }, + "hair-strand-back-2": { + "rotate": [ + { "value": -23.48 }, + { "time": 0.2, "value": 9.31 }, + { "time": 0.3667, "value": -37.1 }, + { "time": 0.5, "value": -23.48 } + ] + }, + "hair-strand-back-3": { + "rotate": [ + { "value": -23.48 }, + { "time": 0.2, "value": 9.31 }, + { "time": 0.3667, "value": -37.1 }, + { "time": 0.5, "value": -23.48 } + ] + }, + "arm-back-control": { + "translate": [ + {}, + { "time": 0.2, "x": -1.55, "y": 20.76 }, + { "time": 0.5 } + ], + "scale": [ + {}, + { "time": 0.2, "x": 0.808 }, + { "time": 0.5 } + ] + }, + "cape-front-rotator": { + "rotate": [ + { "value": -19.6 }, + { "time": 0.0667, "value": -17.3 }, + { "time": 0.1333, "value": 31.22 }, + { "time": 0.3, "value": 30.83 }, + { "time": 0.5, "value": -19.6 } + ], + "translate": [ + { "x": 4.1, "y": -19.38 } + ] + }, + "cape-back-rotator": { + "rotate": [ + { "value": -37.45, "curve": "stepped" }, + { "time": 0.3, "value": -37.45 }, + { "time": 0.4, "value": -3.51 }, + { "time": 0.5, "value": -37.45 } + ], + "translate": [ + { "x": -9.09, "y": 17.5 } + ] + }, + "cape-red-front-outside": { + "translate": [ + {}, + { "time": 0.2333, "x": 3.19, "y": 5.75 }, + { "time": 0.5 } + ] + }, + "cape-red-front-inside": { + "translate": [ + { + "x": 56.51, + "y": 20.65, + "curve": [ 0.058, 56.51, 0.175, 0, 0.058, 20.65, 0.175, 0 ] + }, + { + "time": 0.2333, + "curve": [ 0.3, 0, 0.433, 56.51, 0.3, 0, 0.433, 20.65 ] + }, + { "time": 0.5, "x": 56.51, "y": 20.65 } + ] + }, + "cape-red-back-inside": { + "translate": [ + { "x": 20.33, "y": -17.55 }, + { "time": 0.2333 }, + { "time": 0.5, "x": 20.33, "y": -17.55 } + ], + "scale": [ + { "x": 0.382, "y": 0.88 }, + { "time": 0.2333 }, + { "time": 0.5, "x": 0.382, "y": 0.88 } + ] + }, + "zip-boy": { + "rotate": [ + { + "value": -41.7, + "curve": [ 0.067, -41.7, 0.2, 46.45 ] + }, + { + "time": 0.2667, + "value": 46.45, + "curve": [ 0.325, 46.45, 0.442, -41.7 ] + }, + { "time": 0.5, "value": -41.7 } + ] + }, + "zip-girl": { + "rotate": [ + { "value": -58.05 }, + { "time": 0.2667, "value": 39.41 }, + { "time": 0.5, "value": -58.05 } + ] + }, + "cape-blue-up-back": { + "translate": [ + { "x": 4.09, "y": 18.6 }, + { "time": 0.2333, "x": -1.94, "y": 26.9 }, + { "time": 0.4, "x": -16.98, "y": -4.67 }, + { "time": 0.5, "x": 4.09, "y": 18.6 } + ] + }, + "cape-blue-up-front": { + "rotate": [ + { "value": 29.46 }, + { "time": 0.1, "value": 3.72 }, + { "time": 0.2333, "value": 16.06 }, + { "time": 0.5, "value": 29.46 } + ], + "translate": [ + { "x": -71.16, "y": 31.75 }, + { "time": 0.1333, "x": -50, "y": -9.47 }, + { "time": 0.1667, "x": -42.48, "y": -7.43 }, + { "time": 0.2333, "x": -31.85, "y": -5.14 }, + { "time": 0.3, "x": -37.02, "y": -9.08 }, + { "time": 0.3333, "x": -38.94, "y": 0.58 }, + { "time": 0.5, "x": -71.16, "y": 31.75 } + ] + }, + "cape-blue-control": { + "translate": [ + { "x": -2.65, "y": 26.78 }, + { "time": 0.3333, "x": -4, "y": -11.89 }, + { "time": 0.5, "x": -2.65, "y": 26.78 } + ] + }, + "cape-blue-down-middle": { + "rotate": [ + {}, + { "time": 0.1, "value": 70 }, + { "time": 0.2333 }, + { "time": 0.3, "value": 26.98, "curve": "stepped" }, + { "time": 0.3667, "value": 26.98 }, + { "time": 0.4333, "value": -53.51 }, + { "time": 0.5 } + ], + "translate": [ + {}, + { "time": 0.1, "x": -57.35, "y": 107.86 }, + { "time": 0.2333, "x": -9.59, "y": 70.22 }, + { "time": 0.3, "x": -26.45, "y": 24.76 }, + { "time": 0.3667, "x": -54.55, "y": -99.41 }, + { "time": 0.4333, "x": 17.73, "y": -52.5 }, + { "time": 0.5 } + ] + }, + "cape-blue-middle-front": { + "translate": [ + {}, + { "time": 0.1, "x": -15.52, "y": -29.87 }, + { "time": 0.2333, "x": -20.17, "y": -2.76 }, + { "time": 0.3, "x": -63.38, "y": -41.99 }, + { "time": 0.3667, "x": -54.56, "y": -87.37 }, + { "time": 0.4333, "x": -75.84, "y": 5.06 }, + { "time": 0.5 } + ] + }, + "cape-blue-down-front": { + "rotate": [ + {}, + { "time": 0.3, "value": 40 }, + { "time": 0.3667, "value": 47.02 }, + { "time": 0.5 } + ], + "translate": [ + {}, + { "time": 0.1, "x": -18.48, "y": 53.81 }, + { "time": 0.2333, "x": 7.23, "y": 30.67 }, + { "time": 0.3, "x": -0.62, "y": 46.8 }, + { "time": 0.4333, "x": 86.5, "y": 36.31 }, + { "time": 0.5 } + ] + }, + "cape-blue-middle-back": { + "rotate": [ + { "time": 0.2333 }, + { "time": 0.3667, "value": -55.53 }, + { "time": 0.4333, "value": -6.88 }, + { "time": 0.5 } + ], + "translate": [ + {}, + { "time": 0.1, "x": -73.12, "y": -23.88 }, + { "time": 0.3, "x": -37.25, "y": -63.52 }, + { "time": 0.3667, "x": -25.92, "y": -26.42 }, + { "time": 0.4, "x": -3.29, "y": 10.46 }, + { "time": 0.4667, "x": 16.29, "y": 27.33 }, + { "time": 0.5 } + ] + }, + "cape-blue-down-back": { + "rotate": [ + {}, + { "time": 0.4, "value": -68.85 }, + { "time": 0.4333, "value": 70 }, + { "time": 0.5 } + ], + "translate": [ + {}, + { "time": 0.1, "x": 40.03, "y": -86.48 }, + { "time": 0.2333, "x": -44.05, "y": -50.7 }, + { "time": 0.3667, "x": -28.53, "y": -57.67 }, + { "time": 0.4, "x": -11.43, "y": -48.9 }, + { "time": 0.4333, "x": -67.63, "y": -55.15 }, + { "time": 0.5 } + ] + }, + "dress-control-middle": { + "translate": [ + {}, + { "time": 0.3333, "x": -3.98, "y": 2.65 }, + { "time": 0.5 } + ] + }, + "sleeve-control-front": { + "translate": [ + { "x": 11.85, "y": -21.65 }, + { "time": 0.2333 }, + { "time": 0.5, "x": 11.85, "y": -21.65 } + ] + }, + "dress-control-foot-front": { + "translate": [ + { "x": -56.84 } + ] + }, + "hand-front": { + "rotate": [ + { "value": -99.58 } + ], + "translate": [ + { "x": 6.48, "y": 8.82 } + ] + }, + "arm-front-control": { + "translate": [ + {}, + { "time": 0.1, "y": -2.65 }, + { "time": 0.3667, "x": 3.15, "y": -33.01 }, + { "time": 0.5 } + ] + }, + "skirt-control-back": { + "rotate": [ + { "value": 26.75 }, + { "time": 0.1667, "value": -8.61 }, + { "time": 0.5, "value": 26.75 } + ] + } + }, + "transform": { + "leg-down-back": [ + { "rotateMix": 0.269, "translateMix": 0.234, "scaleMix": 0, "shearMix": 0 } + ], + "leg-down-down": [ + { "rotateMix": 0.394, "translateMix": 0.177, "scaleMix": 0, "shearMix": 0 } + ] + } + }, + "dress-up": { + "slots": { + "eye-back-iris": { + "attachment": [ + { "time": 0.1333, "name": null }, + { "time": 0.1732, "name": "eye-back-iris" }, + { "time": 2.2667, "name": null }, + { "time": 2.3, "name": "eye-back-iris" } + ] + }, + "eye-back-pupil": { + "attachment": [ + { "time": 0.1333, "name": null }, + { "time": 0.1732, "name": "eye-back-pupil" }, + { "time": 2.2667, "name": null }, + { "time": 2.3, "name": "eye-back-pupil" } + ] + }, + "eye-back-white": { + "attachment": [ + { "time": 0.1333, "name": null }, + { "time": 0.1732, "name": "eye-back-white" }, + { "time": 2.2667, "name": null }, + { "time": 2.3, "name": "eye-back-white" } + ] + }, + "eye-front-iris": { + "attachment": [ + { "time": 0.1333, "name": null }, + { "time": 0.1732, "name": "eye-front-iris" }, + { "time": 2.2667, "name": null }, + { "time": 2.3, "name": "eye-front-iris" } + ] + }, + "eye-front-pupil": { + "attachment": [ + { "time": 0.1333, "name": null }, + { "time": 0.1732, "name": "eye-front-pupil" }, + { "time": 2.2667, "name": null }, + { "time": 2.3, "name": "eye-front-pupil" } + ] + }, + "eye-front-white": { + "attachment": [ + { "time": 0.1333, "name": null }, + { "time": 0.1732, "name": "eye-front-white" }, + { "time": 2.2667, "name": null }, + { "time": 2.3, "name": "eye-front-white" } + ] + } + }, + "bones": { + "head-control": { + "translate": [ + {}, + { "time": 0.3333, "x": -47.63, "y": -2.02 }, + { "time": 0.5, "x": -48.35, "y": 14.96 }, + { "time": 1, "x": -48.9, "y": 27.83 }, + { "time": 1.2, "x": -48.35, "y": 14.96 }, + { "time": 2.1, "x": -47.63, "y": -2.02 }, + { "time": 2.1667, "x": -55.53, "y": -2.36 }, + { "time": 2.3667, "x": 12.09, "y": 0.51 }, + { "time": 2.6667 } + ] + }, + "arm-front-up": { + "rotate": [ + {}, + { "time": 0.3333, "value": -29.05, "curve": "stepped" }, + { "time": 1.2, "value": -29.05 }, + { "time": 1.5, "value": -38.17, "curve": "stepped" }, + { "time": 2.0333, "value": -38.17 }, + { "time": 2.2, "value": -29.05 }, + { "time": 2.4667 } + ] + }, + "arm-back-up": { + "rotate": [ + {}, + { "time": 0.3333, "value": 27.32, "curve": "stepped" }, + { "time": 1.0667, "value": 27.32 }, + { "time": 1.5333, "value": 59.19, "curve": "stepped" }, + { "time": 2, "value": 59.19 }, + { "time": 2.2, "value": 27.32 }, + { "time": 2.4667 } + ] + }, + "arm-front-down": { + "rotate": [ + {}, + { "time": 0.3333, "value": 39.04, "curve": "stepped" }, + { "time": 1.1, "value": 39.04 }, + { "time": 1.5, "value": 124.78, "curve": "stepped" }, + { "time": 2.0333, "value": 124.78 }, + { "time": 2.2, "value": 39.04 }, + { "time": 2.4667 } + ] + }, + "arm-back-down": { + "rotate": [ + {}, + { "time": 0.3333, "value": 26.51, "curve": "stepped" }, + { "time": 1.0333, "value": 26.51 }, + { "time": 1.4333, "value": 64.82, "curve": "stepped" }, + { "time": 2.0333, "value": 64.82 }, + { "time": 2.2, "value": 26.51 }, + { "time": 2.4667 } + ] + }, + "hat-control": { + "translate": [ + {}, + { "time": 0.3333, "x": -37.66, "y": 3.71, "curve": "stepped" }, + { "time": 2.2, "x": -37.66, "y": 3.71 }, + { "time": 2.4667 } + ] + }, + "bag": { + "rotate": [ + {}, + { "time": 0.3333, "value": 21.75 }, + { "time": 0.6, "value": -13.81 }, + { "time": 0.8, "value": 2.42 }, + { "time": 1.1, "value": -8.03 }, + { "time": 1.3667, "value": -15.72 }, + { "time": 1.5333, "value": 12.7 }, + { "time": 1.7667, "value": -10.53 }, + { "time": 2.7667 } + ], + "translate": [ + {}, + { "time": 0.3333, "x": 0.82, "y": 10.9, "curve": "stepped" }, + { "time": 2.2, "x": 0.82, "y": 10.9 }, + { "time": 2.4667 } + ] + }, + "bag-control": { + "translate": [ + {}, + { "time": 0.3333, "x": -17.26, "y": -4.51 }, + { "time": 0.7667, "x": -30.2, "y": -6.03 }, + { "time": 1.3333, "x": 18.2, "y": 7.15 }, + { "time": 1.7, "x": -18.84, "y": -4.69 }, + { "time": 2.2, "x": -17.26, "y": -4.51 }, + { "time": 2.4667 } + ] + }, + "hips": { + "translate": [ + {}, + { "time": 0.1667, "x": -10.19, "y": -35.32 }, + { "time": 0.3333, "x": -106.82, "y": 2.91, "curve": "stepped" }, + { "time": 1.1667, "x": -106.82, "y": 2.91 }, + { "time": 1.4, "x": -20.38, "y": 2.91 }, + { "time": 1.5333, "x": -13.65 }, + { "time": 2.0667 }, + { "time": 2.1667, "y": -9.1 }, + { "time": 2.2667, "y": 11.63 }, + { "time": 2.3667 } + ] + }, + "eye-back-up-eyelid-holder": { + "translate": [ + { "time": 0.1 }, + { "time": 0.1183, "x": -2.99, "y": -4.35 }, + { "time": 0.1366, "x": -1.68, "y": -11.31, "curve": "stepped" }, + { "time": 0.1549, "x": -1.68, "y": -11.31 }, + { "time": 0.3333, "y": -5.82, "curve": "stepped" }, + { "time": 2.2333, "y": -5.82 }, + { "time": 2.2667, "x": -1.68, "y": -11.31, "curve": "stepped" }, + { "time": 2.3, "x": -1.68, "y": -11.31 }, + { "time": 2.4 } + ] + }, + "eye-front-up-eyelid-holder": { + "translate": [ + { "time": 0.1 }, + { "time": 0.1183, "y": -4.35 }, + { "time": 0.1366, "x": 0.27, "y": -12.4, "curve": "stepped" }, + { "time": 0.1549, "x": 0.27, "y": -12.4 }, + { "time": 0.3333, "y": -4.74, "curve": "stepped" }, + { "time": 2.2333, "y": -4.74 }, + { "time": 2.2667, "x": 0.27, "y": -12.4, "curve": "stepped" }, + { "time": 2.3, "x": 0.27, "y": -12.4 }, + { "time": 2.4 } + ] + }, + "eye-back-pupil": { + "translate": [ + {}, + { "time": 0.3333, "y": -5.53 }, + { "time": 0.4667, "x": -3, "y": -5.53 }, + { "time": 1.2, "x": -3.57, "y": -5.53 }, + { "time": 1.2667, "x": 6.08, "y": -5.53 }, + { "time": 2.2333, "x": 7.68, "y": -5.53 }, + { "time": 2.2667, "y": -5.53 }, + { "time": 2.4333 } + ] + }, + "eye-front-pupil": { + "translate": [ + {}, + { "time": 0.3333, "y": -5.53 }, + { "time": 0.4667, "x": -3, "y": -5.53 }, + { "time": 1.2, "x": -3.57, "y": -5.53 }, + { "time": 1.2667, "x": 6.08, "y": -5.53 }, + { "time": 2.2333, "x": 7.68, "y": -5.53 }, + { "time": 2.2667, "y": -5.53 }, + { "time": 2.4333 } + ] + }, + "eye-front-up-eyelid": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.1183, "value": -42.34 }, + { "time": 0.2646, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "value": -42.34 }, + { "time": 2.4 } + ] + }, + "eye-back-up-eyelid": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.1183, "value": 35.83 }, + { "time": 0.2646, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "value": 35.83 }, + { "time": 2.4 } + ] + }, + "eye-back-low-eyelid-holder": { + "rotate": [ + {}, + { "time": 0.1366, "value": 4.33, "curve": "stepped" }, + { "time": 2.3, "value": 4.33 }, + { "time": 2.7667 } + ], + "translate": [ + { "time": 0.1 }, + { "time": 0.1183, "x": -1.63, "y": 1.09 }, + { "time": 0.1366, "x": -1.09, "y": 6.52, "curve": "stepped" }, + { "time": 0.1549, "x": -1.09, "y": 6.52 }, + { "time": 0.1732, "x": -1.34, "y": -1.93 }, + { "time": 0.2646, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "x": -1.09, "y": 6.52 }, + { "time": 2.3, "x": -1.34, "y": -1.93 }, + { "time": 2.4 } + ] + }, + "eye-front-low-eyelid-holder": { + "translate": [ + { "time": 0.1 }, + { "time": 0.1366, "x": -1.36, "y": 4.55, "curve": "stepped" }, + { "time": 0.1549, "x": -1.36, "y": 4.55 }, + { "time": 0.1732, "x": -1.36, "y": -3.51 }, + { "time": 0.2646, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "x": -1.36, "y": 4.55 }, + { "time": 2.3, "x": -1.36, "y": -3.51 }, + { "time": 2.4 } + ] + }, + "eye-back-low-eyelid": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.1366, "value": -27.26, "curve": "stepped" }, + { "time": 0.1549, "value": -27.26 }, + { "time": 0.1732, "value": -11.09 }, + { "time": 0.2646, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "value": -27.26 }, + { "time": 2.3, "value": -11.09 }, + { "time": 2.4 } + ] + }, + "eye-front-low-eyelid": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.1366, "value": 18.27, "curve": "stepped" }, + { "time": 0.1549, "value": 18.27 }, + { "time": 0.2646, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "value": 18.27, "curve": "stepped" }, + { "time": 2.3, "value": 18.27 }, + { "time": 2.4 } + ] + }, + "eye-front-eyebrow": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.1333, "value": -14.81 }, + { "time": 0.2333, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "value": -14.81 }, + { "time": 2.3667 } + ], + "translate": [ + { "time": 0.1 }, + { "time": 0.1333, "y": -8.69 }, + { "time": 0.2333, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "y": -8.69 }, + { "time": 2.3667 } + ] + }, + "eye-back-eyebrow": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.1333, "value": 14.78 }, + { "time": 0.2333, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "value": 14.78 }, + { "time": 2.3667 } + ], + "translate": [ + { "time": 0.1 }, + { "time": 0.1333, "y": -8.69 }, + { "time": 0.2333, "curve": "stepped" }, + { "time": 2.2333 }, + { "time": 2.2667, "y": -8.69 }, + { "time": 2.3667 } + ] + }, + "mouth": { + "rotate": [ + { "time": 0.3 }, + { "time": 0.5, "value": -11.73, "curve": "stepped" }, + { "time": 1.3, "value": -11.73 }, + { "time": 2.2667 } + ], + "translate": [ + { "time": 0.3 }, + { "time": 0.4667, "x": -3.46, "curve": "stepped" }, + { "time": 2.0667, "x": -3.46 }, + { "time": 2.1667, "x": -2.51, "y": -3.46 }, + { "time": 2.3667 } + ], + "scale": [ + { "time": 0.3 }, + { "time": 0.5333, "x": 0.778, "curve": "stepped" }, + { "time": 1.3, "x": 0.778 }, + { "time": 2.5333 } + ] + }, + "foot-front-IK": { + "translate": [ + {}, + { "time": 0.1667, "x": -90.11, "curve": "stepped" }, + { "time": 2.1, "x": -90.11 }, + { "time": 2.1667, "x": -60.07, "y": 11.03 }, + { "time": 2.3 } + ] + }, + "foot-front": { + "rotate": [ + { "time": 2.1 }, + { "time": 2.1667, "value": -15.81 }, + { "time": 2.2667 } + ] + }, + "hat": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.2667, "value": -13.9 }, + { "time": 0.6333, "value": 6.22 }, + { "time": 0.8333, "value": -1.48 }, + { "time": 1.0333, "value": 2.37 }, + { "time": 1.3667, "value": 12.29 }, + { "time": 1.6, "value": 1.92 }, + { "time": 2.2333, "value": 5.19 }, + { "time": 2.4, "value": -2.09 }, + { "time": 2.6, "value": 0.86 } + ] + }, + "hat-base": { + "translate": [ + { "time": 0.0667 }, + { "time": 0.6333, "x": 0.71, "y": -16.67, "curve": "stepped" }, + { "time": 2.2, "x": 0.71, "y": -16.67 }, + { "time": 2.4 } + ] + }, + "hair-side-front": { + "rotate": [ + {}, + { "time": 0.3667, "value": 13.8 }, + { "time": 0.6, "value": -10.12 }, + { "time": 0.8333, "value": 1.06 }, + { "time": 1.4333, "value": -18.54 }, + { "time": 1.7, "value": -2.53 }, + { "time": 1.9, "value": -7.78 }, + { "time": 2.3, "value": -0.26 }, + { "time": 2.5, "value": -4.54 }, + { "time": 2.7, "value": 0.58 }, + { "time": 2.7667 } + ] + }, + "hair-side-back": { + "rotate": [ + {}, + { "time": 0.3667, "value": 13.8 }, + { "time": 0.6, "value": -10.12 }, + { "time": 0.8333, "value": 1.06 }, + { "time": 1.4333, "value": -18.54 }, + { "time": 1.7, "value": -2.53 }, + { "time": 1.9, "value": -7.78 }, + { "time": 2.3, "value": -0.26 }, + { "time": 2.5, "value": -4.54 }, + { "time": 2.7, "value": 0.58 }, + { "time": 2.7667 } + ] + }, + "hair-bangs-front": { + "rotate": [ + {}, + { "time": 0.3667, "value": 13.8 }, + { "time": 0.6, "value": -10.12 }, + { "time": 0.8333, "value": 1.06 }, + { "time": 1.4333, "value": -18.54 }, + { "time": 1.7, "value": -2.53 }, + { "time": 1.9, "value": -7.78 }, + { "time": 2.3, "value": -0.26 }, + { "time": 2.5, "value": -4.54 }, + { "time": 2.7, "value": 0.58 }, + { "time": 2.7667 } + ] + }, + "hair-bangs-back": { + "rotate": [ + {}, + { "time": 0.3667, "value": 13.8 }, + { "time": 0.6, "value": -10.12 }, + { "time": 0.8333, "value": 1.06 }, + { "time": 1.4333, "value": -18.54 }, + { "time": 1.7, "value": -2.53 }, + { "time": 1.9, "value": -7.78 }, + { "time": 2.3, "value": -0.26 }, + { "time": 2.5, "value": -4.54 }, + { "time": 2.7, "value": 0.58 }, + { "time": 2.7667 } + ] + }, + "hand-back": { + "rotate": [ + { "time": 1.2667 }, + { "time": 1.4667, "value": -36.05, "curve": "stepped" }, + { "time": 2.0333, "value": -36.05 }, + { "time": 2.1667 } + ] + }, + "hair-strand-front-1": { + "rotate": [ + {}, + { "time": 0.3667, "value": 11.03 }, + { "time": 0.5667, "value": 2.76 }, + { "time": 0.8667, "value": 7.77 }, + { "time": 1.1667, "value": 5.56 }, + { "time": 1.4, "value": -19.57 }, + { "time": 1.6667, "value": 1.37 }, + { "time": 1.9333, "value": -8.18 }, + { "time": 2.3667, "value": -4.06 }, + { "time": 2.6667, "value": -10.62 }, + { "time": 2.7667 } + ] + }, + "hair-strand-front-3": { + "rotate": [ + {}, + { "time": 0.4333, "value": 14.31 }, + { "time": 0.6333, "value": 2.76 }, + { "time": 0.9333, "value": 7.77 }, + { "time": 1.2, "value": 5.56 }, + { "time": 1.4333, "value": -19.57 }, + { "time": 1.7, "value": 1.37 }, + { "time": 1.9667, "value": -8.18 }, + { "time": 2.4333, "value": -4.06 }, + { "time": 2.7333, "value": -10.62 }, + { "time": 2.7667 } + ] + }, + "hair-strand-back-1": { + "rotate": [ + {}, + { "time": 0.3667, "value": 12.66 }, + { "time": 0.5667, "value": 2.76 }, + { "time": 0.8667, "value": 7.77 }, + { "time": 1.1667, "value": 5.56 }, + { "time": 1.4, "value": -19.57 }, + { "time": 1.6667, "value": 1.37 }, + { "time": 1.9333, "value": -8.18 }, + { "time": 2.3667, "value": -4.06 }, + { "time": 2.6667, "value": -10.62 }, + { "time": 2.7667 } + ] + }, + "hair-strand-back-2": { + "rotate": [ + {}, + { "time": 0.2333, "value": 24.27 }, + { "time": 0.5667, "value": 2.76 }, + { "time": 0.9333, "value": 7.77 }, + { "time": 1.2333, "value": 5.56 }, + { "time": 1.4333, "value": -19.57 }, + { "time": 1.7333, "value": 1.37 }, + { "time": 1.9667, "value": -8.18 }, + { "time": 2.3667, "value": -4.06 }, + { "time": 2.6667, "value": -10.62 }, + { "time": 2.7667 } + ] + }, + "hair-strand-back-3": { + "rotate": [ + {}, + { "time": 0.3667, "value": 24.27 }, + { "time": 0.5667, "value": 2.76 }, + { "time": 0.8667, "value": 7.77 }, + { "time": 1.1667, "value": 5.56 }, + { "time": 1.4, "value": -19.57 }, + { "time": 1.6667, "value": 1.37 }, + { "time": 1.9333, "value": -8.18 }, + { "time": 2.3667, "value": -4.06 }, + { "time": 2.6667, "value": -10.62 }, + { "time": 2.7667 } + ] + }, + "hair-strand-front-2": { + "rotate": [ + {}, + { "time": 0.3667, "value": 9.64 }, + { "time": 0.5667, "value": 2.76 }, + { "time": 0.8667, "value": 7.77 }, + { "time": 1.1667, "value": 5.56 }, + { "time": 1.4, "value": -19.57 }, + { "time": 1.6667, "value": 1.37 }, + { "time": 1.9333, "value": -8.18 }, + { "time": 2.3667, "value": -4.06 }, + { "time": 2.6667, "value": -10.62 }, + { "time": 2.7667 } + ] + }, + "hair-strand-front-4": { + "rotate": [ + {}, + { "time": 0.3667, "value": 24.27 }, + { "time": 0.5667, "value": 2.76 }, + { "time": 0.8667, "value": 7.77 }, + { "time": 1.1667, "value": 5.56 }, + { "time": 1.4, "value": -19.57 }, + { "time": 1.6667, "value": 1.37 }, + { "time": 1.9333, "value": -8.18 }, + { "time": 2.3667, "value": -4.06 }, + { "time": 2.6667, "value": -10.62 }, + { "time": 2.7667 } + ] + }, + "scarf-back": { + "rotate": [ + {}, + { "time": 0.4, "value": 11.79 }, + { "time": 0.6333, "value": -3.23 }, + { "time": 0.8667, "value": 3.81 }, + { "time": 1.3667, "value": 0.28 }, + { "time": 1.6667, "value": 8.68 }, + { "time": 1.9333, "value": 2.43 }, + { "time": 2.2333, "value": -2.29 }, + { "time": 2.4667, "value": 12.44 }, + { "time": 2.7, "value": -1.01 }, + { "time": 2.7667 } + ] + }, + "skirt-rotation-back": { + "rotate": [ + {}, + { "time": 0.2667, "value": 17.27 }, + { "time": 0.5333, "value": -4.07 }, + { "time": 0.8, "value": 7.18 }, + { "time": 1.3667, "value": -8.51 }, + { "time": 1.7, "value": 3.22 }, + { "time": 2, "value": -4.66 }, + { "time": 2.3667, "value": -3.6 }, + { "time": 2.7667 } + ] + }, + "skirt-rotation-front": { + "rotate": [ + {}, + { "time": 0.2667, "value": 17.27 }, + { "time": 0.5333, "value": -4.07 }, + { "time": 0.8, "value": 7.18 }, + { "time": 1.3667, "value": -8.51 }, + { "time": 1.7, "value": 3.22 }, + { "time": 2, "value": -4.66 }, + { "time": 2.3667, "value": -3.6 }, + { "time": 2.7667 } + ] + }, + "skirt-control": { + "translate": [ + {}, + { "time": 0.3, "x": -56.15 }, + { "time": 0.5333, "x": -128.57, "y": -5.35 }, + { "time": 0.6, "x": -111.57, "y": 3.12 }, + { "time": 0.7333, "x": -77.55, "curve": "stepped" }, + { "time": 1.1, "x": -77.55 }, + { "time": 1.3667, "x": -72.2, "y": 17.38 }, + { "time": 1.6667, "x": -24.07 }, + { "time": 1.8333, "x": -2.67 }, + { "time": 2, "x": -28.08, "y": 8.02 }, + { "time": 2.2667, "x": 5.35 }, + { "time": 2.4667, "x": 3.21, "y": 16.04 }, + { "time": 2.7667 } + ] + }, + "skirt-control-middle": { + "translate": [ + {}, + { "time": 0.2, "x": -13.37, "y": -33.42 }, + { "time": 0.5667, "x": 5.92, "y": 24.83, "curve": "stepped" }, + { "time": 1.1667, "x": 5.92, "y": 24.83 }, + { "time": 1.4, "x": -3.11, "y": 35.48 }, + { "time": 2.3, "x": 12.15, "y": 12.12 }, + { "time": 2.7667 } + ] + }, + "skirt-control-front-down": { + "translate": [ + {}, + { "time": 0.2333, "x": -12.91, "y": 3.49 }, + { "time": 0.7, "x": 8.16, "y": 1.87 }, + { "time": 2.5333, "x": -15.11, "y": -0.38 }, + { "time": 2.7667 } + ] + }, + "skirt-control-back-down": { + "translate": [ + {}, + { "time": 0.2333, "x": -12.91, "y": 3.49 }, + { "time": 0.7, "x": 8.16, "y": 1.87 }, + { "time": 2.5333, "x": -15.11, "y": -0.38 }, + { "time": 2.7667 } + ] + }, + "cape-back-rotator": { + "rotate": [ + { "time": 1.9667 }, + { "time": 2.2333, "value": 10.12 }, + { "time": 2.4333, "value": -21.92 }, + { "time": 2.6667 } + ] + }, + "cape-front-rotator": { + "rotate": [ + { "time": 0.2667 }, + { "time": 0.4, "value": -11.53 }, + { "time": 0.5667 } + ] + }, + "sleeve-control-back": { + "rotate": [ + {}, + { "time": 0.3333, "value": -0.24, "curve": "stepped" }, + { "time": 0.9667, "value": -0.24 }, + { "time": 1.5333, "value": -31.01, "curve": "stepped" }, + { "time": 2.0333, "value": -31.01 }, + { "time": 2.1667, "value": 14.58 }, + { "time": 2.4667 } + ], + "translate": [ + {}, + { "time": 0.3333, "x": 6.58, "y": -16.19, "curve": "stepped" }, + { "time": 0.9667, "x": 6.58, "y": -16.19 }, + { "time": 1.5333, "x": 12.34, "y": -45.5, "curve": "stepped" }, + { "time": 2.0333, "x": 12.34, "y": -45.5 }, + { "time": 2.1667, "x": -6.58, "y": -28.25 }, + { "time": 2.4667 } + ] + }, + "sleeve-control-front": { + "rotate": [ + { "time": 0.9333 }, + { "time": 1.3, "value": 22.58 }, + { "time": 1.5667 } + ], + "translate": [ + { "time": 0.9333 }, + { "time": 1.3, "x": 36.42, "y": -18.93 }, + { "time": 1.5667, "x": 1.75, "y": -23.26, "curve": "stepped" }, + { "time": 2.1333, "x": 1.75, "y": -23.26 }, + { "time": 2.3333 } + ] + }, + "cape-blue-up-front": { + "rotate": [ + {}, + { "time": 0.3667, "value": 23.6, "curve": "stepped" }, + { "time": 2.0333, "value": 23.6 }, + { "time": 2.3667 } + ], + "translate": [ + {}, + { "time": 0.3667, "x": -34.1, "y": 21.4 }, + { "time": 0.6, "x": -21.04, "y": 7.34, "curve": "stepped" }, + { "time": 1.0333, "x": -21.04, "y": 7.34 }, + { "time": 1.4, "x": -31.5, "y": 14.58, "curve": "stepped" }, + { "time": 2.0667, "x": -31.5, "y": 14.58 }, + { "time": 2.3667 } + ] + }, + "cape-blue-up-back": { + "translate": [ + { "time": 2.3333 }, + { "time": 2.4667, "x": 3.77, "y": 14.35 }, + { "time": 2.7333 } + ] + }, + "cape-blue-up": { + "rotate": [ + {}, + { "time": 0.3667, "value": 13.4 }, + { "time": 1.3333, "value": -12.27 }, + { "time": 1.6667, "value": 13.33 }, + { "time": 1.9667, "value": -7.94 }, + { "time": 2.2333, "value": -0.51 }, + { "time": 2.5, "value": 1.05 }, + { "time": 2.7667 } + ] + }, + "cape-blue-down-middle": { + "rotate": [ + {}, + { "time": 0.5333, "value": 15.72 }, + { "time": 0.8667, "value": 4.92 }, + { "time": 1, "value": -1.14 }, + { "time": 1.5, "value": -12.27 }, + { "time": 1.8333, "value": 13.33 }, + { "time": 2.1333, "value": -7.94 }, + { "time": 2.4, "value": -0.51 }, + { "time": 2.6667, "value": 1.05 }, + { "time": 2.7667 } + ] + }, + "cape-blue-down": { + "rotate": [ + { "time": 0.1667 }, + { "time": 0.4667, "value": 15.72 }, + { "time": 0.7333, "value": -0.94 }, + { "time": 1.2333, "value": 21.3 }, + { "time": 1.4333, "value": -12.27 }, + { "time": 1.7667, "value": 8.41 }, + { "time": 2.0667, "value": -7.94 }, + { "time": 2.3333, "value": -0.51 }, + { "time": 2.6, "value": 1.05 }, + { "time": 2.7667 } + ] + }, + "zip-boy": { + "rotate": [ + {}, + { "time": 0.3667, "value": 19.76 }, + { "time": 0.6333, "value": -10.84 }, + { "time": 0.9, "value": -0.83 }, + { "time": 1.4333, "value": -28.17 }, + { "time": 1.8, "value": 1.4 }, + { "time": 2.0667, "value": -20.87 }, + { "time": 2.5667, "value": 5.59 }, + { "time": 2.7667 } + ] + }, + "backpack-control": { + "translate": [ + {}, + { "time": 0.1333, "x": -30.4, "y": 15.74 }, + { "time": 0.3, "x": 31.22, "y": 18.44 }, + { "time": 0.5, "x": -39.56, "y": 29.69 }, + { "time": 0.8, "x": 3.08, "y": 31.64, "curve": "stepped" }, + { "time": 1.2, "x": 3.08, "y": 31.64 }, + { "time": 1.4, "x": -1.97, "y": -20.19 }, + { "time": 1.7, "x": 1.17, "y": 12.05 }, + { "time": 2, "x": -0.47, "y": -4.82 }, + { "time": 2.3333, "x": 1.17, "y": 12.05 }, + { "time": 2.7667 } + ] + }, + "zip-girl": { + "rotate": [ + {}, + { "time": 0.3667, "value": 19.76 }, + { "time": 0.6333, "value": -10.84 }, + { "time": 0.9, "value": -0.83 }, + { "time": 1.4333, "value": -28.17 }, + { "time": 1.8, "value": 1.4 }, + { "time": 2.0667, "value": -20.87 }, + { "time": 2.5667, "value": 5.59 }, + { "time": 2.7667 } + ] + }, + "bag-back-front": { + "translate": [ + { "time": 1.1333 }, + { "time": 1.3333, "x": 11.85, "y": 4.61 }, + { "time": 1.6667 } + ] + }, + "bag-flap": { + "translate": [ + { "time": 0.6333 }, + { "time": 0.7, "x": 15.39, "y": -1 }, + { "time": 0.8667, "x": -2.69, "y": -2.82 }, + { "time": 1.2, "x": 13.95, "y": 2.75 }, + { "time": 1.3667, "x": 51.87, "y": -4.32 }, + { "time": 1.6, "x": 15.66, "y": -1.7 }, + { "time": 1.8333, "x": 2.36, "y": -4.34 }, + { "time": 2.0667, "x": 18.23, "y": 0.81 }, + { "time": 2.7667 } + ] + }, + "cape-blue-middle-back": { + "rotate": [ + {}, + { "time": 0.5333, "value": -20.99 }, + { "time": 2.3 } + ], + "translate": [ + {}, + { "time": 1.3333, "x": -64.75, "y": 53.37 }, + { "time": 1.4667, "x": -94.98, "y": 37.57 }, + { "time": 1.7, "x": -40.49, "y": 13.55 }, + { "time": 1.8, "x": -9.86, "y": 26.36 }, + { "time": 1.9667, "x": -75.79, "y": 7.62 }, + { "time": 2.3 } + ] + }, + "cape-blue-middle-front": { + "translate": [ + { "time": 0.1667 }, + { "time": 0.5333, "x": -27.07, "y": -64.48 }, + { "time": 0.8667 } + ] + }, + "dress-control-leg-down-front": { + "rotate": [ + { "time": 1.1 }, + { "time": 1.5, "value": -25.13 } + ], + "translate": [ + { "time": 0.1333 }, + { "time": 0.3667, "x": -97.47, "curve": "stepped" }, + { "time": 1.1, "x": -97.47 }, + { "time": 1.5, "x": -57.21 } + ] + }, + "dress-control-middle": { + "translate": [ + {}, + { "time": 0.4, "x": -46.62 }, + { "time": 1.2333, "x": -46.26 }, + { "time": 1.5667, "x": -29.74, "curve": "stepped" }, + { "time": 2.2333, "x": -29.74 }, + { "time": 2.5333 } + ] + }, + "cape-blue-down-front": { + "rotate": [ + {}, + { "time": 0.4, "value": 38.86 }, + { "time": 0.8667, "value": -51.06 }, + { "time": 1.1667, "value": 32.14 }, + { "time": 1.3667, "value": 3 }, + { "time": 2.3667, "value": 0.86 }, + { "time": 2.5667, "value": 11.18 }, + { "time": 2.7667 } + ] + }, + "cape-blue-down-back": { + "rotate": [ + { "time": 1.1 }, + { "time": 1.5333, "value": -43.88 }, + { "time": 1.8333, "value": -9.8 }, + { "time": 2.7667 } + ], + "translate": [ + { "time": 1.1333 }, + { "time": 1.5333, "x": -97.95, "y": -18.04 }, + { "time": 1.7, "x": -12.52, "y": -46.08 }, + { "time": 1.8333, "x": -14.67, "y": 15 }, + { "time": 2.7667 } + ] + } + }, + "transform": { + "leg-down-back": [ + { "scaleMix": 0, "shearMix": 0 }, + { "time": 0.1333, "rotateMix": 0, "translateMix": 0.026, "scaleMix": 0, "shearMix": 0, "curve": "stepped" }, + { "time": 1.1667, "rotateMix": 0, "translateMix": 0.026, "scaleMix": 0, "shearMix": 0 }, + { "time": 1.2667, "rotateMix": 0.1905, "translateMix": 0.2115, "scaleMix": 0, "shearMix": 0 }, + { "time": 1.5333, "scaleMix": 0, "shearMix": 0, "curve": "stepped" }, + { "time": 2.0667, "scaleMix": 0, "shearMix": 0 }, + { "time": 2.1, "rotateMix": 0.217, "translateMix": 0.078, "scaleMix": 0, "shearMix": 0 }, + { "time": 2.4667, "scaleMix": 0, "shearMix": 0 } + ], + "leg-down-down": [ + { "scaleMix": 0, "shearMix": 0 }, + { "time": 0.0667, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }, + { "time": 0.3333, "scaleMix": 0, "shearMix": 0, "curve": "stepped" }, + { "time": 1.0667, "scaleMix": 0, "shearMix": 0 }, + { "time": 1.3667, "translateMix": 0.774, "scaleMix": 0, "shearMix": 0 }, + { "time": 2.7667, "scaleMix": 0, "shearMix": 0 } + ], + "leg-down-front": [ + { "scaleMix": 0, "shearMix": 0 }, + { "time": 0.2333, "translateMix": 0.609, "scaleMix": 0, "shearMix": 0 }, + { "time": 0.3667, "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0, "curve": "stepped" }, + { "time": 2.1, "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }, + { "time": 2.5, "scaleMix": 0, "shearMix": 0 } + ] + } + }, + "idle": { + "bones": { + "hips": { + "translate": [ + { + "x": 9.34, + "y": -2.33, + "curve": [ 0.179, 9.34, 0.471, 10.59, 0.179, -2.33, 0.471, -2.96 ] + }, + { + "time": 0.7333, + "x": 11.53, + "y": -3.43, + "curve": [ 0.899, 10.31, 1.054, 9.34, 0.899, -2.82, 1.054, -2.33 ] + }, + { "time": 1.1667, "x": 9.34, "y": -2.33 } + ] + }, + "body-up": { + "rotate": [ + { "value": -0.34 }, + { "time": 0.6, "value": 1.7 }, + { "time": 1.1667, "value": -0.34 } + ], + "translate": [ + {}, + { "time": 0.4667, "x": 5.83, "y": -0.23 }, + { "time": 1.1667 } + ] + }, + "arm-front-up": { + "rotate": [ + { "value": -12.12 }, + { "time": 0.5, "value": -14.38 }, + { "time": 0.9, "value": -12.34 }, + { "time": 1.1667, "value": -12.12 } + ] + }, + "arm-front-down": { + "rotate": [ + { "value": 28.61 }, + { "time": 0.3667, "value": 16.76 }, + { "time": 1, "value": 33.35 }, + { "time": 1.1667, "value": 28.61 } + ] + }, + "arm-back-up": { + "rotate": [ + { "value": -2.69 }, + { "time": 0.3333, "value": 5.25 }, + { "time": 0.9667, "value": -2.18 }, + { "time": 1.1667, "value": -2.69 } + ] + }, + "arm-back-down": { + "rotate": [ + { "value": 21.54 }, + { "time": 0.3333, "value": 2.11 }, + { "time": 0.8333, "value": 31.21 }, + { "time": 1.1667, "value": 21.54 } + ] + }, + "body-down": { + "rotate": [ + { + "curve": [ 0.117, 0, 0.35, -0.13 ] + }, + { + "time": 0.4667, + "value": -0.13, + "curve": [ 0.968, -0.14, 0.992, 0 ] + }, + { "time": 1.1667 } + ] + }, + "neck": { + "rotate": [ + { + "curve": [ 0.092, 0, 0.275, -1.62 ] + }, + { + "time": 0.3667, + "value": -1.62, + "curve": [ 0.567, -1.62, 0.967, 0 ] + }, + { "time": 1.1667 } + ] + }, + "hair-strand-front-4": { + "rotate": [ + {}, + { "time": 0.7333, "value": -6.05 }, + { "time": 1.1667 } + ] + }, + "hair-strand-front-2": { + "rotate": [ + {}, + { "time": 0.4333, "value": -10.79 }, + { "time": 1.1667 } + ] + }, + "hair-strand-front-3": { + "rotate": [ + {}, + { "time": 0.6, "value": -11.49 }, + { "time": 1.1667 } + ] + }, + "hair-strand-front-1": { + "rotate": [ + {}, + { "time": 0.7333, "value": -10.79 }, + { "time": 1.1667 } + ] + }, + "hair-strand-back-2": { + "rotate": [ + {}, + { "time": 0.5667, "value": -12.75 }, + { "time": 1.1667 } + ] + }, + "hair-strand-back-3": { + "rotate": [ + {}, + { "time": 0.3333, "value": -8.16 }, + { "time": 1.1667 } + ] + }, + "hair-strand-back-1": { + "rotate": [ + {}, + { "time": 0.5333, "value": -6.11 }, + { "time": 1.1667 } + ] + }, + "scarf-back": { + "rotate": [ + {}, + { "time": 0.4667, "value": 5.82 }, + { "time": 1.1667 } + ] + }, + "head-control": { + "translate": [ + {}, + { "time": 0.4, "x": -10.56, "y": -3.74 }, + { "time": 1.1667 } + ] + }, + "hair-side-front": { + "rotate": [ + {}, + { "time": 0.3333, "value": -5.84 }, + { "time": 0.8, "value": 2.68 }, + { "time": 1.1667 } + ] + }, + "hair-side-back": { + "rotate": [ + {}, + { "time": 0.3333, "value": -3.31 }, + { "time": 0.8, "value": 3.56 }, + { "time": 1.1667 } + ] + }, + "hair-bangs-front": { + "rotate": [ + {}, + { "time": 0.4333, "value": 8.38 }, + { "time": 0.8, "value": 8.31 }, + { "time": 1.1667 } + ] + }, + "hair-bangs-back": { + "rotate": [ + {}, + { "time": 0.4333, "value": -13.14 }, + { "time": 0.8, "value": -2.84 }, + { "time": 1.1667 } + ] + }, + "hat": { + "rotate": [ + {}, + { "time": 0.4, "value": -5.13 }, + { "time": 0.8667, "value": 5.56 }, + { "time": 1.1667 } + ] + }, + "hat-control": { + "translate": [ + {}, + { "time": 0.5333, "x": -16.39, "y": -19.27 }, + { "time": 1.1667 } + ] + }, + "zip-girl": { + "rotate": [ + {}, + { "time": 0.2667, "value": -7.05 }, + { "time": 0.6333, "value": -2.82 }, + { "time": 0.9333, "value": -6.4 }, + { "time": 1.1667 } + ] + }, + "bag": { + "rotate": [ + {}, + { "time": 0.5667, "value": -6.05 }, + { "time": 0.9333, "value": 3.23 }, + { "time": 1.1667 } + ], + "translate": [ + {}, + { "time": 0.3333, "x": 1.12, "y": 11.76 }, + { "time": 1.1667 } + ] + }, + "bag-control": { + "translate": [ + {}, + { "time": 0.4667, "x": -17.12, "y": -0.3 }, + { "time": 1.1667 } + ] + }, + "cape-blue-up": { + "rotate": [ + {}, + { "time": 0.5667, "value": -5.28 }, + { "time": 1.1667 } + ] + }, + "cape-blue-middle-front": { + "translate": [ + {}, + { "time": 0.4333, "x": 10.87, "y": -26.11 }, + { "time": 0.8333, "x": 4.94, "y": -10.56 }, + { "time": 1.1667 } + ] + }, + "cape-blue-middle-back": { + "translate": [ + {}, + { "time": 0.4333, "x": 0.09, "y": -6.56 }, + { "time": 0.8333, "x": 0.04, "y": -1.67 }, + { "time": 1.1667 } + ] + }, + "cape-blue-down-front": { + "translate": [ + {}, + { "time": 0.3333, "x": 2.54, "y": 27.58 }, + { "time": 0.7, "x": 1.66, "y": -5.56 }, + { "time": 1.1667 } + ] + }, + "cape-blue-down-back": { + "translate": [ + {}, + { "time": 0.3333, "x": 0.04, "y": -13.13 }, + { "time": 0.8333, "x": -0.01, "y": -24.95 }, + { "time": 1.1667 } + ] + }, + "cape-blue-up-front": { + "rotate": [ + {}, + { "time": 0.3333, "value": 2.56 }, + { "time": 0.7667, "value": -0.44 }, + { "time": 1.1667 } + ], + "translate": [ + {}, + { + "time": 0.5, + "x": -8.76, + "y": 13.54, + "curve": [ 0.667, -8.76, 1, 0, 0.667, 13.54, 1, 0 ] + }, + { "time": 1.1667 } + ] + }, + "cape-blue-control": { + "translate": [ + {}, + { "time": 0.5333, "x": 7.66 }, + { "time": 1.1667 } + ] + }, + "dress-control-leg-down-front": { + "translate": [ + {}, + { "time": 0.5333, "x": 1.91, "y": -7.42 }, + { "time": 1.1667 } + ] + }, + "dress-control-leg-up-front": { + "translate": [ + {}, + { "time": 0.5333, "x": -0.01, "y": -7.66 }, + { "time": 1.1667 } + ] + }, + "dress-control-leg-down-back": { + "translate": [ + {}, + { "time": 0.5333, "x": 1.5, "y": -7.52 }, + { "time": 1.1667 } + ] + }, + "dress-control-leg-up-back": { + "translate": [ + {}, + { "time": 0.5333, "x": -0.61, "y": -7.64 }, + { "time": 1.1667 } + ] + }, + "cape-red-front-inside": { + "translate": [ + {}, + { "time": 0.4333, "x": 0.64, "y": 6.68 }, + { "time": 1.1667 } + ] + }, + "cape-red-back-inside": { + "translate": [ + {}, + { "time": 0.6667, "x": 0.64, "y": 6.68 }, + { "time": 1.1667 } + ] + }, + "skirt-rotation-back": { + "rotate": [ + {}, + { "time": 0.3667, "value": -2.3 }, + { "time": 1.1667 } + ] + }, + "skirt-rotation-front": { + "rotate": [ + {}, + { "time": 0.5333, "value": -3.07 }, + { "time": 1.1667 } + ] + }, + "backpack-control": { + "translate": [ + {}, + { "time": 0.4, "x": 15.06, "y": 4.96 }, + { "time": 0.7333, "x": -8.66, "y": 12.95 }, + { "time": 1.1667 } + ] + }, + "zip-boy": { + "rotate": [ + {}, + { "time": 0.3333, "value": -12.26 }, + { "time": 0.6333 }, + { "time": 0.9, "value": -12.26 }, + { "time": 1.1667 } + ] + }, + "skirt-control-middle": { + "translate": [ + {}, + { "time": 0.7667, "x": -7.43 }, + { "time": 1.1667 } + ] + }, + "skirt-control-up": { + "translate": [ + {}, + { "time": 0.7333, "x": 18.07, "y": 6.94 }, + { "time": 1.1667 } + ] + } + } + }, + "walk": { + "bones": { + "head-control": { + "translate": [ + { "x": 0.76, "y": -48.95 }, + { "time": 0.2333, "x": -14.41, "y": -38.22 }, + { "time": 0.3667, "x": 0.76, "y": -30.16 }, + { "time": 0.5333, "x": -9.39, "y": -42.69 }, + { "time": 0.6667, "x": 0.76, "y": -48.95 } + ] + }, + "features-control": { + "scale": [ + { "x": 0.856 } + ] + }, + "eye-front-pupil": { + "translate": [ + { "x": 8.95 }, + { "time": 0.3, "x": 14.07, "y": -1.22 }, + { "time": 0.6667, "x": 8.95 } + ] + }, + "eye-back-pupil": { + "translate": [ + { "x": 8.95 }, + { "time": 0.3, "x": 14.07, "y": -1.22 }, + { "time": 0.6667, "x": 8.95 } + ] + }, + "eye-back": { + "translate": [ + { "x": 2.24 } + ], + "scale": [ + { "x": 0.799 } + ] + }, + "eye-front": { + "scale": [ + { "x": 1.182 } + ] + }, + "foot-front-IK": { + "translate": [ + { "x": 170.4, "y": 49.42 }, + { "time": 0.0333, "x": 168.7, "y": -1.7 }, + { "time": 0.3, "x": -92.75, "y": -1.7 }, + { "time": 0.4333, "x": -34.08, "y": 47.71 }, + { "time": 0.6667, "x": 170.4, "y": 49.42 } + ] + }, + "leg-up": { + "translate": [ + { "x": 30.67 } + ] + }, + "foot-back-IK": { + "translate": [ + { "x": -168.7 }, + { "time": 0.1, "x": -123.6, "y": 42.6 }, + { "time": 0.3, "x": 52.82, "y": 50.97 }, + { "time": 0.3667, "x": 82.52, "y": -0.62 }, + { "time": 0.6667, "x": -168.7 } + ] + }, + "leg-up-back": { + "translate": [ + { "x": -28.97 } + ] + }, + "arm-back-control": { + "translate": [ + { "y": 5.61 } + ] + }, + "arm-front-control": { + "translate": [ + { "y": -4.58 } + ] + }, + "body-up": { + "rotate": [ + { "value": -15.04 }, + { "time": 0.3, "value": -3.33 }, + { "time": 0.6667, "value": -15.04 } + ] + }, + "neck": { + "rotate": [ + { "value": 8.91 } + ] + }, + "arm-front-down": { + "rotate": [ + { "value": -13.74 }, + { "time": 0.1, "value": -33.82 }, + { "time": 0.4, "value": 36.45 }, + { "time": 0.6667, "value": -13.74 } + ] + }, + "arm-front-up": { + "rotate": [ + { "value": -7.66 }, + { "time": 0.3, "value": 33.47 }, + { "time": 0.6667, "value": -7.66 } + ] + }, + "foot-front": { + "rotate": [ + { "value": 29.81 }, + { "time": 0.1, "curve": "stepped" }, + { "time": 0.3 }, + { "time": 0.3667, "value": -34.4 }, + { "time": 0.4667, "value": -33.47 }, + { "time": 0.6667, "value": 29.81 } + ] + }, + "foot-back": { + "rotate": [ + {}, + { "time": 0.0333, "value": -38.36 }, + { "time": 0.2333, "value": -55.8 }, + { "time": 0.3, "value": 27.44 }, + { "time": 0.4 } + ] + }, + "hips": { + "translate": [ + { "y": -20.45 }, + { "time": 0.0333, "y": -30.67 }, + { "time": 0.1, "y": -5.11 }, + { "time": 0.2333 }, + { "time": 0.3667, "y": -30.67 }, + { "time": 0.4, "y": -5.11 }, + { "time": 0.4667 }, + { "time": 0.6667, "y": -20.45 } + ] + }, + "arm-back-down": { + "rotate": [ + { "value": 23.02 }, + { "time": 0.1, "value": 43.78 }, + { "time": 0.4, "value": -28.87 }, + { "time": 0.6667, "value": 23.02 } + ], + "scale": [ + { "x": 0.637 }, + { "time": 0.2667, "x": 0.755 }, + { "time": 0.6667, "x": 0.637 } + ] + }, + "arm-back-up": { + "rotate": [ + { "value": 38.53 }, + { "time": 0.3667, "value": -24.46 }, + { "time": 0.6667, "value": 38.53 } + ] + }, + "skirt-control": { + "translate": [ + { "y": -17.04 }, + { "time": 0.1333, "y": 35.78 }, + { "time": 0.3, "y": -17.04 }, + { "time": 0.4333, "y": 35.78 }, + { "time": 0.6667, "y": -17.04 } + ] + }, + "skirt-rotation-back": { + "rotate": [ + {}, + { "time": 0.1, "value": 23.48 }, + { "time": 0.2667, "value": -2.5 }, + { "time": 0.4667, "value": 27.3 }, + { "time": 0.6667 } + ] + }, + "skirt-rotation-front": { + "rotate": [ + { "value": -12.71 }, + { "time": 0.1333 }, + { "time": 0.2667, "value": -21.18 }, + { "time": 0.4333 }, + { "time": 0.5333, "value": -21.18 }, + { "time": 0.6667, "value": -12.71 } + ] + }, + "skirt-control-middle": { + "translate": [ + {}, + { "time": 0.1, "x": -17.04 }, + { "time": 0.2333, "x": 1.7 }, + { "time": 0.3 }, + { "time": 0.4, "x": -17.04 }, + { "time": 0.4667, "x": 1.7 }, + { "time": 0.6667 } + ] + }, + "skirt-control-front-down": { + "translate": [ + {}, + { "time": 0.1, "x": -17.04 }, + { "time": 0.2333, "x": 1.7 }, + { "time": 0.3 }, + { "time": 0.4, "x": -17.04 }, + { "time": 0.4667, "x": 1.7 }, + { "time": 0.6667 } + ] + }, + "skirt-control-back-down": { + "translate": [ + {}, + { "time": 0.1, "x": -17.04 }, + { "time": 0.2333, "x": 1.7 }, + { "time": 0.3 }, + { "time": 0.4, "x": -17.04 }, + { "time": 0.4667, "x": 1.7 }, + { "time": 0.6667 } + ] + }, + "head": { + "rotate": [ + { "value": 2.83 }, + { "time": 0.1333, "value": -0.34 }, + { "time": 0.4333, "value": 7.06 }, + { "time": 0.6667, "value": 2.83 } + ] + }, + "hair-side-front": { + "rotate": [ + {}, + { "time": 0.2333, "value": -19.54 }, + { "time": 0.6667 } + ], + "scale": [ + { "time": 0.1 }, + { "time": 0.3, "x": 0.915 }, + { "time": 0.6 } + ] + }, + "hat": { + "rotate": [ + { "value": -5 }, + { "time": 0.1333, "value": -30.58 }, + { "time": 0.4333, "value": 29.1 }, + { "time": 0.6667, "value": -5 } + ] + }, + "body-down": { + "rotate": [ + {}, + { "time": 0.3, "value": -5.53 }, + { "time": 0.6667 } + ] + }, + "backpack": { + "rotate": [ + {}, + { "time": 0.3, "value": 0.81 }, + { "time": 0.6667 } + ], + "translate": [ + {}, + { "time": 0.1333, "x": 11.14 }, + { "time": 0.3 }, + { "time": 0.4333, "x": 13.74 }, + { "time": 0.6667 } + ] + }, + "backpack-control": { + "translate": [ + { "x": -3.64, "y": 10.08 }, + { "time": 0.2333, "x": 27.31, "y": -12.48 }, + { "time": 0.3667, "x": -50.45, "y": -42.94 }, + { "time": 0.4667, "x": 16.84, "y": -10.4 }, + { "time": 0.6667, "x": -3.64, "y": 10.08 } + ] + }, + "zip-boy": { + "rotate": [ + { "value": -19.74 }, + { "time": 0.1, "value": -54.66 }, + { "time": 0.4333, "value": 50.11 }, + { "time": 0.6667, "value": -19.74 } + ] + }, + "zip-girl": { + "rotate": [ + { "value": 25.57 }, + { "time": 0.1, "value": 62.19 }, + { "time": 0.4333, "value": -47.67 }, + { "time": 0.6667, "value": 25.57 } + ] + }, + "scarf-back": { + "rotate": [ + { "value": 5.28 }, + { "time": 0.2667, "value": -13.54 }, + { "time": 0.3667, "value": 8.42 }, + { "time": 0.4667, "value": -14.72 }, + { "time": 0.6667, "value": 5.28 } + ], + "translate": [ + {}, + { "time": 0.3667, "y": -17.01 }, + { "time": 0.6667 } + ] + }, + "sleeve-control-back": { + "translate": [ + { "time": 0.2667 }, + { "time": 0.3667, "x": -15.94, "y": 32.49 }, + { "time": 0.4, "x": 1.01, "y": 1.37 } + ] + }, + "bag": { + "rotate": [ + { + "value": -18.46, + "curve": [ 0.038, -27.57, 0.074, -34.41 ] + }, + { + "time": 0.1, + "value": -34.41, + "curve": [ 0.183, -34.41, 0.35, 21.8 ] + }, + { + "time": 0.4333, + "value": 21.8, + "curve": [ 0.49, 21.8, 0.585, -2.36 ] + }, + { "time": 0.6667, "value": -18.46 } + ], + "translate": [ + {}, + { "time": 0.1, "x": -44.06, "y": -6.77 }, + { "time": 0.4333, "x": -9.9, "y": -30.44 }, + { "time": 0.6667 } + ] + }, + "bag-control": { + "translate": [ + { "x": -32.3 }, + { "time": 0.1333, "x": 7.65, "y": -11.37 }, + { "time": 0.4333, "x": -5.1 }, + { "time": 0.6667, "x": -32.3 } + ] + }, + "bag-flap": { + "translate": [ + {}, + { "time": 0.3, "x": 38.46, "y": -36.26 }, + { "time": 0.4333 } + ] + }, + "hair-strand-front-1": { + "rotate": [ + { "value": 0.25 }, + { "time": 0.2333, "value": 16.54 }, + { "time": 0.6, "value": -3.01 }, + { "time": 0.6667, "value": 0.25 } + ] + }, + "hair-strand-front-3": { + "rotate": [ + { "value": -0.23 }, + { "time": 0.1333, "value": -9.51 }, + { "time": 0.4, "value": 18.33 }, + { "time": 0.6667, "value": -0.23 } + ] + }, + "hair-strand-back-1": { + "rotate": [ + { "value": -3.32 }, + { "time": 0.1, "value": -9.51 }, + { "time": 0.3667, "value": 18.33 }, + { "time": 0.6667, "value": -3.32 } + ] + }, + "hair-strand-back-2": { + "rotate": [ + { "value": -0.53 }, + { "time": 0.1333, "value": -9.51 }, + { "time": 0.4, "value": 17.42 }, + { "time": 0.6667, "value": -0.53 } + ] + }, + "hair-strand-back-3": { + "rotate": [ + { "value": -9.51 }, + { "time": 0.2667, "value": 0.95 }, + { "time": 0.6667, "value": -9.51 } + ] + }, + "hair-strand-front-2": { + "rotate": [ + { "value": -9.51 }, + { "time": 0.2667, "value": 12.43 }, + { "time": 0.6667, "value": -9.51 } + ] + }, + "hair-strand-front-4": { + "rotate": [ + { "value": -16.37 }, + { "time": 0.2667, "value": -1.14 }, + { "time": 0.6667, "value": -16.37 } + ] + }, + "cape-blue-control": { + "translate": [ + { "x": -0.59, "y": 9.92 }, + { "time": 0.1333, "y": 0.51 }, + { "time": 0.4667, "x": -1.38, "y": 22.46 }, + { "time": 0.6667, "x": -0.59, "y": 9.92 } + ] + }, + "cape-blue-up": { + "rotate": [ + { "value": -3.59 }, + { "time": 0.2667, "value": -20.08 }, + { "time": 0.6667, "value": -3.59 } + ] + }, + "cape-blue-down": { + "rotate": [ + { "value": -19.53 }, + { "time": 0.2667, "value": 12.13 }, + { "time": 0.6667, "value": -19.53 } + ] + }, + "cape-blue-middle-front": { + "translate": [ + { "x": 20.13, "y": 41.93 }, + { "time": 0.3, "x": -23.25, "y": 5.51 }, + { "time": 0.4333, "x": 4.64, "y": -3.95 }, + { "time": 0.5667, "x": 5.7, "y": 93.66 }, + { "time": 0.6667, "x": 20.13, "y": 41.93 } + ] + }, + "dress-control-leg-up-back": { + "rotate": [ + { "value": 39.47 }, + { "time": 0.1, "curve": "stepped" }, + { "time": 0.5 }, + { "time": 0.6667, "value": 39.47 } + ], + "translate": [ + { "x": 55, "y": 46.04 }, + { "time": 0.1, "curve": "stepped" }, + { "time": 0.5 }, + { "time": 0.6667, "x": 55, "y": 46.04 } + ], + "scale": [ + { "x": 0.753, "y": 0.753 }, + { "time": 0.1 }, + { "time": 0.2667, "x": 0.616 }, + { "time": 0.5 }, + { "time": 0.6667, "x": 0.753, "y": 0.753 } + ] + }, + "dress-control-middle": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.2667, "value": -43.74 }, + { "time": 0.5, "value": -0.49 }, + { "time": 0.6667 } + ], + "translate": [ + { "x": 56.15 }, + { "time": 0.2, "x": -74.87 }, + { "time": 0.2667, "x": -40.44, "y": 20.05 }, + { "time": 0.4333, "x": 45.63 }, + { "time": 0.6667, "x": 56.15 } + ] + }, + "dress-control-foot-back": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.3667, "value": 80.78 }, + { "time": 0.5 } + ], + "translate": [ + { "x": 79.3, "y": 61.39 }, + { "time": 0.1 }, + { "time": 0.2667, "y": 131.03 }, + { "time": 0.5 }, + { "time": 0.6667, "x": 79.3, "y": 61.39 } + ] + }, + "dress-control-leg-up-front": { + "rotate": [ + { "time": 0.1 }, + { "time": 0.3333, "value": -19.11 }, + { "time": 0.5 } + ], + "translate": [ + {}, + { "time": 0.1, "y": 8.02 }, + { "time": 0.3333, "x": -8.32, "y": 1.88 }, + { "time": 0.4333, "x": 9.36, "y": 1.34 }, + { "time": 0.5, "x": 25.4 }, + { "time": 0.6667 } + ], + "scale": [ + { "y": 1.243 }, + { "time": 0.1, "y": 1.257 }, + { "time": 0.3333, "y": 1.148 }, + { "time": 0.6667, "y": 1.243 } + ] + }, + "dress-control-leg-down-back": { + "translate": [ + { "x": 63.95, "y": 26.86 }, + { "time": 0.1, "curve": "stepped" }, + { "time": 0.5 }, + { "time": 0.6667, "x": 63.95, "y": 26.86 } + ] + }, + "dress-control-leg-down-front": { + "rotate": [ + { "value": -38.71 }, + { "time": 0.3333, "value": -26.56 }, + { "time": 0.5, "value": -15.76 }, + { "time": 0.6667, "value": -38.71 } + ], + "translate": [ + {}, + { "time": 0.1, "x": 12.03, "y": 33.43 }, + { "time": 0.3333, "x": -18.24, "y": 11.21 }, + { "time": 0.5, "x": 21.39 }, + { "time": 0.6667 } + ], + "scale": [ + { "time": 0.1 }, + { "time": 0.3333, "y": 1.851 }, + { "time": 0.6667 } + ] + }, + "dress-control-foot-front": { + "rotate": [ + { "value": -60.57 }, + { "time": 0.1, "value": -108.41 }, + { "time": 0.3333, "value": -26.56 }, + { "time": 0.5 }, + { "time": 0.6667, "value": -60.57 } + ], + "translate": [ + { "x": -49.47, "y": 36.1 }, + { "time": 0.1, "x": -45.46, "y": 97.6 }, + { "time": 0.3333, "x": -65.74, "y": 15.26 }, + { "time": 0.5 }, + { "time": 0.6667, "x": -49.47, "y": 36.1 } + ] + }, + "cape-blue-up-back": { + "rotate": [ + {}, + { "time": 0.3667, "value": 21.34 }, + { "time": 0.6667 } + ], + "translate": [ + { "x": 0.44, "y": 7.22 }, + { "time": 0.2333, "x": -36.78, "y": 21.02 }, + { "time": 0.3667, "x": -23.97, "y": 31.85 }, + { "time": 0.6667, "x": 0.44, "y": 7.22 } + ] + }, + "cape-blue-up-front": { + "translate": [ + {}, + { "time": 0.2333, "x": -23.13, "y": 5.32 }, + { "time": 0.6667 } + ] + }, + "cape-blue-down-front": { + "rotate": [ + {}, + { "time": 0.2333, "value": 36.76 }, + { "time": 0.3333, "value": 64.89 }, + { "time": 0.4333, "value": 41.43 }, + { "time": 0.5667, "value": -75.87 }, + { "time": 0.6667 } + ], + "translate": [ + { "x": 27.47, "y": 19.9 }, + { "time": 0.1, "x": 45.24, "y": 75.16 }, + { "time": 0.1667, "x": -7, "y": 77.7 }, + { "time": 0.4333, "x": -9.12, "y": 13.58 }, + { "time": 0.6667, "x": 27.47, "y": 19.9 } + ] + }, + "cape-blue-down-middle": { + "translate": [ + { "x": -27.47, "y": -19.9 }, + { "time": 0.2667 }, + { "time": 0.4667, "x": -54.77, "y": 11.14 }, + { "time": 0.6667, "x": -27.47, "y": -19.9 } + ] + }, + "cape-blue-down-back": { + "translate": [ + { "x": -82.17, "y": 5.71 }, + { "time": 0.2333 }, + { "time": 0.4667, "x": 54.77, "y": -11.14 }, + { "time": 0.6667, "x": -82.17, "y": 5.71 } + ] + }, + "cape-front-rotator": { + "rotate": [ + {}, + { "time": 0.2667, "value": -62.01 }, + { "time": 0.4667 } + ] + }, + "cape-back-rotator": { + "rotate": [ + { "value": -8.52 }, + { "time": 0.2333, "value": 34.05 }, + { "time": 0.3667, "value": -6.62 }, + { "time": 0.6667, "value": -8.52 } + ] + }, + "hair-side-back": { + "rotate": [ + { "value": 8.35 }, + { "time": 0.2, "value": 15.57 }, + { "time": 0.4, "value": 4.89 }, + { "time": 0.6667, "value": 8.35 } + ], + "translate": [ + { "x": 10.23, "y": -7.69 }, + { "time": 0.2, "x": 3.1, "y": -0.52 }, + { "time": 0.4, "x": 29.45, "y": 3.35 }, + { "time": 0.6667, "x": 10.23, "y": -7.69 } + ] + }, + "hair-bangs-back": { + "rotate": [ + {}, + { "time": 0.1667, "value": 29.31 }, + { "time": 0.4333, "value": -32.57 }, + { "time": 0.6667 } + ] + } + }, + "transform": { + "leg-down-back": [ + { "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0, "curve": "stepped" }, + { "time": 0.1, "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }, + { "time": 0.3333, "scaleMix": 0, "shearMix": 0 }, + { "time": 0.5667, "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 } + ], + "leg-down-back-up": [ + { "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0, "curve": "stepped" }, + { "time": 0.1, "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }, + { "time": 0.3333, "scaleMix": 0, "shearMix": 0 }, + { "time": 0.5667, "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 } + ], + "leg-down-down": [ + { "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 } + ], + "leg-down-front": [ + { "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 } + ], + "leg-up": [ + { "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 } + ], + "leg-up-back": [ + { "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }, + { "time": 0.3333, "scaleMix": 0, "shearMix": 0 }, + { "time": 0.5667, "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 } + ] + } + } +} +} \ No newline at end of file diff --git a/spine-ts/webgl/example/assets/owl-pro.json b/spine-ts/webgl/example/assets/owl-pro.json new file mode 100644 index 000000000..1d6ba4f4d --- /dev/null +++ b/spine-ts/webgl/example/assets/owl-pro.json @@ -0,0 +1,597 @@ +{ +"skeleton": { + "hash": "Px3F6YZd0YY", + "spine": "4.0.05-beta", + "x": -644, + "y": -274, + "width": 1350.84, + "height": 909.41, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { + "name": "branch-1", + "parent": "root", + "length": 487.04, + "rotation": 27.67, + "x": -579.3, + "y": -239.11, + "color": "1a8600ff" + }, + { "name": "branch-2", "parent": "branch-1", "length": 391.45, "rotation": -30.2, "x": 487.04, "color": "1a8600ff" }, + { "name": "owl-base", "parent": "branch-2", "x": 139.77, "y": 56.43, "color": "1697ffff" }, + { "name": "body-top-control", "parent": "owl-base", "rotation": 92.53, "x": -3.85, "y": 227.57, "color": "1697ffff" }, + { "name": "branch-3", "parent": "branch-2", "length": 231.51, "rotation": 30.15, "x": 391.45, "color": "1a8600ff" }, + { "name": "branch-4", "parent": "branch-3", "length": 158.83, "rotation": 38.9, "x": 231.51, "color": "1a8600ff" }, + { "name": "branch-5", "parent": "branch-4", "length": 82.96, "rotation": -26.21, "x": 158.83, "color": "1a8600ff" }, + { + "name": "branch-6", + "parent": "branch-5", + "length": 105.49, + "rotation": 68.78, + "x": -79.95, + "y": -20.15, + "color": "1a8600ff" + }, + { "name": "head", "parent": "body-top-control", "rotation": -90, "x": 51, "y": 0.33, "color": "1697ffff" }, + { "name": "control", "parent": "head", "y": 126.66, "color": "1697ffff" }, + { "name": "control-back", "parent": "head", "x": 1.74, "y": 75.81, "color": "b500afff" }, + { + "name": "leaf-1", + "parent": "branch-1", + "length": 170.88, + "rotation": 59.11, + "x": 81.78, + "y": 61.01, + "color": "c61616ff" + }, + { + "name": "leaf-2", + "parent": "branch-4", + "length": 177.54, + "rotation": -74.38, + "x": 116.86, + "y": -14.04, + "color": "c61616ff" + }, + { + "name": "leaf-3", + "parent": "branch-3", + "length": 206.74, + "rotation": -60.2, + "x": -15.26, + "y": 6.37, + "color": "c61616ff" + }, + { + "name": "leaf-4", + "parent": "branch-6", + "length": 152.22, + "rotation": 76.69, + "x": 110.99, + "y": 4.18, + "color": "c61616ff" + }, + { "name": "leaf-5", "parent": "branch-5", "length": 186.26, "rotation": 40.81, "x": 82.96, "color": "c61616ff" }, + { "name": "leaf-6", "parent": "branch-6", "length": 201.94, "rotation": 0.89, "x": 105.49, "color": "c61616ff" }, + { + "name": "leaf-7", + "parent": "branch-1", + "length": 155.86, + "rotation": 30.39, + "x": 214.62, + "y": 12.99, + "color": "c61616ff" + }, + { + "name": "tail-feathers", + "parent": "owl-base", + "length": 155.04, + "rotation": -87.98, + "x": -0.46, + "y": -20.62, + "color": "1697ffff" + } +], +"slots": [ + { "name": "feather-3", "bone": "tail-feathers", "attachment": "feather-3" }, + { "name": "feather-2", "bone": "tail-feathers", "attachment": "feather-2" }, + { "name": "feather-1", "bone": "tail-feathers", "attachment": "feather-1" }, + { "name": "body", "bone": "owl-base", "attachment": "body" }, + { "name": "wood", "bone": "branch-1", "attachment": "wood" }, + { "name": "R_wing", "bone": "body-top-control", "attachment": "R_wing" }, + { "name": "L_wing", "bone": "body-top-control", "attachment": "L_wing" }, + { "name": "R_foot", "bone": "branch-2", "attachment": "R_foot" }, + { "name": "L_foot", "bone": "branch-2", "attachment": "L_foot" }, + { "name": "head-base", "bone": "head", "attachment": "head-base" }, + { "name": "R_eye-iris", "bone": "control", "attachment": "R_eye-iris" }, + { "name": "R_eye-pupil", "bone": "control", "attachment": "R_eye-pupil" }, + { "name": "R_eye-light", "bone": "control", "attachment": "R_eye-light" }, + { "name": "L_eye-iris", "bone": "control", "attachment": "L_eye-iris" }, + { "name": "L_eye-pupil", "bone": "control", "attachment": "L_eye-pupil" }, + { "name": "L_eye-light", "bone": "control", "attachment": "L_eye-light" }, + { "name": "R_eye-closed", "bone": "control" }, + { "name": "L_eye-closed", "bone": "control" }, + { "name": "beak-down", "bone": "head", "attachment": "beak-down" }, + { "name": "beak", "bone": "head", "attachment": "beak" }, + { "name": "leaf-7", "bone": "leaf-7", "attachment": "leaf-7" }, + { "name": "leaf-6", "bone": "leaf-6", "attachment": "leaf-6" }, + { "name": "leaf-5", "bone": "leaf-5", "attachment": "leaf-5" }, + { "name": "leaf-4", "bone": "leaf-4", "attachment": "leaf-4" }, + { "name": "leaf-3", "bone": "leaf-3", "attachment": "leaf-3" }, + { "name": "leaf-2", "bone": "leaf-2", "attachment": "leaf-2" }, + { "name": "leaf-1", "bone": "leaf-1", "attachment": "leaf-1" } +], +"transform": [ + { + "name": "control-back", + "bones": [ "control-back" ], + "target": "control", + "rotateMix": 0, + "translateMix": -1, + "scaleMix": 0, + "shearMix": 0 + } +], +"skins": [ + { + "name": "default", + "attachments": { + "beak": { + "beak": { + "type": "mesh", + "uvs": [ 0, 0.48125, 0.23847, 0.67437, 0.38855, 1, 0.52195, 1, 0.67759, 1, 0.76097, 0.66393, 1, 0.44993, 1, 0.20983, 0.73317, 0, 0.34964, 0, 0, 0.20983, 0.44969, 0.27769, 0.50528, 0.66915 ], + "triangles": [ 5, 4, 12, 2, 12, 3, 4, 3, 12, 2, 1, 12, 12, 1, 11, 1, 0, 11, 12, 11, 5, 5, 11, 6, 0, 10, 11, 6, 11, 7, 11, 8, 7, 10, 9, 11, 11, 9, 8 ], + "vertices": [ 2, 10, -41, -66.77, 0.45, 9, -41, 59.89, 0.55, 2, 10, -22.64, -82.61, 0.65, 9, -22.64, 44.05, 0.35, 2, 10, -11.08, -109.31, 0.83, 9, -11.08, 17.35, 0.17, 1, 10, -0.81, -109.31, 1, 2, 10, 11.17, -109.31, 0.83, 9, 11.17, 17.35, 0.17, 2, 10, 17.59, -81.75, 0.78, 9, 17.59, 44.91, 0.22, 2, 10, 36, -64.2, 0.45, 9, 36, 62.46, 0.55, 2, 10, 36, -44.51, 0.45, 9, 36, 82.15, 0.55, 2, 10, 15.45, -27.31, 0.45, 9, 15.45, 99.35, 0.55, 2, 10, -14.08, -27.31, 0.45, 9, -14.08, 99.35, 0.55, 2, 10, -41, -44.51, 0.45, 9, -41, 82.15, 0.55, 1, 10, -6.37, -50.08, 1, 1, 10, -2.09, -82.18, 1 ], + "hull": 11, + "edges": [ 0, 2, 2, 4, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 0, 20, 4, 6, 6, 8 ], + "width": 77, + "height": 82 + } + }, + "beak-down": { + "beak-down": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 9, 33, 17.35, 0.43, 10, 33, -109.31, 0.57, 2, 9, -40, 17.35, 0.43, 10, -40, -109.31, 0.57, 2, 9, -40, 96.35, 0.43, 10, -40, -30.31, 0.57, 2, 9, 33, 96.35, 0.43, 10, 33, -30.31, 0.57 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 73, + "height": 79 + } + }, + "body": { + "body": { + "type": "mesh", + "uvs": [ 0.32567, 1, 0.69603, 1, 0.86396, 0.83947, 1, 0.63572, 1, 0.36212, 0.92608, 0.17292, 0.70524, 0, 0.26586, 0, 0.09793, 0.1671, 0, 0.3301, 0, 0.6561, 0.12784, 0.85111, 0.4982, 0.37085, 0.489, 0.78417, 0.22215, 0.75797, 0.22905, 0.38249, 0.4959, 0.12053, 0.75355, 0.76961, 0.74434, 0.37376, 0.72134, 0.14672, 0.24516, 0.14381 ], + "triangles": [ 18, 19, 5, 15, 8, 20, 18, 5, 4, 9, 8, 15, 15, 20, 12, 12, 16, 19, 20, 16, 12, 12, 19, 18, 10, 9, 15, 12, 14, 15, 17, 12, 18, 16, 7, 6, 20, 7, 16, 16, 6, 19, 5, 19, 6, 20, 8, 7, 18, 4, 3, 13, 14, 12, 17, 18, 3, 2, 17, 3, 11, 10, 14, 0, 14, 13, 11, 14, 0, 1, 13, 17, 1, 17, 2, 0, 13, 1, 17, 13, 12, 14, 10, 15 ], + "vertices": [ 2, 3, -77, -83.78, 0.9818, 4, -307.82, 86.8, 0.0182, 2, 3, 106.53, -75.68, 0.9604, 4, -307.82, -96.91, 0.0396, 1, 3, 186.97, -9.15, 1, 2, 3, 250.85, 73.62, 0.58, 4, -165.02, -247.67, 0.42, 2, 3, 246.13, 180.77, 0.244, 4, -57.77, -247.67, 0.756, 1, 4, 16.4, -211.01, 1, 1, 4, 84.18, -101.47, 1, 1, 4, 84.18, 116.46, 1, 1, 4, 18.68, 199.75, 1, 2, 3, -249.94, 171.45, 0.36505, 4, -45.22, 248.33, 0.63495, 2, 3, -244.31, 43.78, 0.62057, 4, -173.01, 248.33, 0.37943, 1, 3, -177.6, -29.8, 1, 2, 3, -2.37, 166.38, 0.1, 4, -61.19, 1.22, 0.9, 2, 3, 0.21, 4.31, 0.75, 4, -223.21, 5.78, 0.25, 1, 3, -132.47, 8.74, 1, 2, 3, -135.54, 155.94, 0.14, 4, -65.76, 134.72, 0.86, 1, 4, 36.93, 2.36, 1, 1, 3, 131.04, 15.8, 1, 2, 3, 119.65, 170.62, 0.21, 4, -62.33, -120.87, 0.79, 1, 4, 26.67, -109.46, 1, 1, 4, 27.81, 126.73, 1 ], + "hull": 12, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 0, 22, 38, 32, 32, 40 ], + "width": 496, + "height": 392 + } + }, + "feather-1": { + "feather-1": { "x": 66.77, "y": 51.32, "rotation": 90.51, "width": 117, "height": 119 } + }, + "feather-2": { + "feather-2": { "x": 70.22, "y": -56.15, "rotation": 90.51, "width": 124, "height": 130 } + }, + "feather-3": { + "feather-3": { "x": 83.66, "y": 7.47, "rotation": 90.51, "width": 111, "height": 152 } + }, + "head-base": { + "head-base": { + "type": "mesh", + "uvs": [ 0, 0.62821, 0.10827, 0.80875, 0.2669, 0.96522, 0.4026, 1, 0.60901, 1, 0.77147, 0.96522, 0.92054, 0.84004, 1, 0.63303, 1, 0.52952, 1, 0.37787, 0.97662, 0.33564, 0.88805, 0.17566, 0.78293, 0.03123, 0.73324, 0, 0.67782, 0, 0.64724, 0.08901, 0.57461, 0.17085, 0.50772, 0.17807, 0.42936, 0.16604, 0.34717, 0.09141, 0.3166, 0, 0.2669, 0, 0.24779, 0.06975, 0.12547, 0.16122, 0.0108, 0.36824, 0.23632, 0.34657, 0.79058, 0.34657, 0.79822, 0.74135, 0.23632, 0.74616, 0.50389, 0.77986, 0.50581, 0.31528, 0.50198, 0.90263, 0.39113, 0.88097, 0.6008, 0.8906, 0.42745, 0.77264, 0.57461, 0.76542, 0.50389, 0.83282, 0.46185, 0.40435, 0.56123, 0.39953, 0.5039, 0.54396, 0.65106, 0.27917, 0.38922, 0.29362, 0.3338, 0.26232, 0.7084, 0.21418, 0.72942, 0.09623, 0.29175, 0.16363, 0.40642, 0.23825, 0.50963, 0.24066, 0.6071, 0.24547, 0.67591, 0.14678, 0.34717, 0.17085, 0.88996, 0.53433, 0.86703, 0.66673, 0.85747, 0.41397, 0.12738, 0.54637, 0.14841, 0.41638, 0.16943, 0.69321, 0.34909, 0.34176, 0.65679, 0.35139, 0.60328, 0.33213, 0.42171, 0.33213, 0.29939, 0.56803, 0.71795, 0.556, 0.44847, 0.68839, 0.57461, 0.69321, 0.82689, 0.27917, 0.91099, 0.39712, 0.93965, 0.53193, 0.91863, 0.71006, 0.19045, 0.26714, 0.09298, 0.39472, 0.07387, 0.56803, 0.1465, 0.73894, 0.20574, 0.83282, 0.28028, 0.86893, 0.79822, 0.85449, 0.69119, 0.87134, 0.85747, 0.78227 ], + "triangles": [ 3, 31, 4, 31, 33, 4, 4, 76, 5, 4, 33, 76, 3, 2, 32, 2, 74, 32, 3, 32, 31, 5, 75, 6, 5, 76, 75, 1, 73, 2, 2, 73, 74, 33, 35, 76, 32, 74, 34, 75, 76, 27, 73, 28, 74, 75, 77, 6, 76, 35, 27, 75, 27, 77, 77, 68, 6, 6, 68, 7, 1, 72, 73, 73, 72, 28, 1, 0, 72, 77, 52, 68, 77, 27, 52, 72, 56, 28, 28, 56, 61, 27, 62, 52, 72, 0, 56, 68, 52, 7, 67, 7, 52, 0, 71, 56, 71, 54, 56, 56, 54, 61, 61, 37, 39, 37, 61, 57, 37, 57, 60, 52, 51, 67, 52, 62, 51, 67, 8, 7, 0, 24, 71, 54, 55, 61, 55, 25, 61, 61, 25, 57, 71, 70, 54, 71, 24, 70, 62, 53, 51, 62, 26, 53, 62, 58, 26, 54, 70, 55, 38, 59, 58, 39, 37, 38, 67, 51, 66, 51, 53, 66, 67, 66, 8, 66, 9, 8, 25, 55, 69, 66, 53, 65, 37, 30, 38, 37, 60, 30, 38, 30, 59, 53, 26, 65, 66, 10, 9, 66, 65, 10, 55, 70, 69, 70, 24, 69, 24, 23, 69, 59, 40, 58, 58, 40, 26, 40, 43, 26, 26, 43, 65, 25, 42, 57, 25, 69, 42, 57, 41, 60, 57, 42, 41, 65, 11, 10, 59, 30, 48, 59, 48, 40, 48, 30, 47, 30, 60, 46, 60, 41, 46, 30, 46, 47, 47, 18, 17, 18, 47, 46, 41, 42, 46, 65, 43, 11, 40, 48, 43, 69, 45, 42, 69, 23, 45, 42, 50, 46, 42, 45, 50, 47, 16, 48, 48, 49, 43, 48, 16, 49, 47, 17, 16, 46, 50, 18, 43, 44, 11, 43, 49, 44, 44, 12, 11, 16, 15, 49, 18, 50, 19, 50, 45, 19, 23, 22, 45, 19, 45, 20, 21, 45, 22, 20, 45, 21, 49, 15, 44, 15, 14, 44, 44, 13, 12, 44, 14, 13, 31, 36, 33, 31, 32, 36, 36, 35, 33, 32, 34, 36, 74, 28, 34, 34, 29, 36, 36, 29, 35, 64, 35, 29, 29, 34, 63, 34, 28, 63, 29, 63, 64, 35, 64, 27, 28, 61, 63, 64, 62, 27, 63, 39, 64, 64, 39, 62, 63, 61, 39, 39, 38, 62, 38, 58, 62 ], + "vertices": [ 3, 10, -304, -69.08, 0.01459, 11, -304, -69.08, 0.26323, 9, -302.26, 46.41, 0.72217, 3, 10, -239.36, -154.66, 0.00559, 11, -239.36, -154.66, 0.05203, 9, -237.62, -39.17, 0.94238, 3, 10, -144.66, -228.82, 0.145, 11, -144.66, -228.82, 0.04545, 9, -142.92, -113.33, 0.80955, 3, 10, -63.65, -245.31, 0.2095, 11, -63.65, -245.31, 0.00316, 9, -61.91, -129.82, 0.78734, 2, 10, 59.58, -245.31, 0.17617, 9, 61.32, -129.82, 0.82383, 3, 10, 156.57, -228.82, 0.08728, 11, 156.57, -228.82, 0.05645, 9, 158.3, -113.33, 0.85627, 3, 10, 245.56, -169.49, 0.06344, 11, 245.56, -169.49, 0.11037, 9, 247.3, -54, 0.82619, 3, 10, 293, -71.36, 0.00633, 11, 293, -71.36, 0.10522, 9, 294.74, 44.12, 0.88845, 3, 10, 293, -22.3, 0.01595, 11, 293, -22.3, 0.14723, 9, 294.74, 93.19, 0.83682, 3, 10, 293, 49.58, 0.00982, 11, 293, 49.58, 0.29562, 9, 294.74, 165.07, 0.69456, 3, 10, 279.04, 69.6, 0.01809, 11, 279.04, 69.6, 0.25265, 9, 280.78, 185.09, 0.72927, 3, 10, 226.17, 145.43, 0.00461, 11, 226.17, 145.43, 0.21686, 9, 227.9, 260.91, 0.77853, 2, 11, 163.41, 213.89, 0.19851, 9, 165.15, 329.37, 0.80149, 2, 11, 133.75, 228.69, 0.27166, 9, 135.48, 344.18, 0.72834, 2, 11, 100.66, 228.69, 0.27166, 9, 102.39, 344.18, 0.72834, 2, 11, 82.4, 186.5, 0.27166, 9, 84.14, 301.99, 0.72834, 2, 11, 39.04, 147.71, 0.09155, 9, 40.78, 263.2, 0.90845, 2, 11, -0.89, 144.29, 0.05807, 9, 0.85, 259.77, 0.94193, 2, 11, -47.67, 149.99, 0.07863, 9, -45.94, 265.48, 0.92137, 2, 11, -96.74, 185.36, 0.26398, 9, -95, 300.85, 0.73602, 2, 11, -114.99, 228.69, 0.27166, 9, -113.25, 344.18, 0.72834, 2, 11, -144.66, 228.69, 0.27166, 9, -142.92, 344.18, 0.72834, 2, 11, -156.07, 195.63, 0.27166, 9, -154.33, 311.12, 0.72834, 2, 11, -229.09, 152.27, 0.15795, 9, -227.35, 267.76, 0.84205, 2, 11, -297.55, 54.15, 0.23165, 9, -295.81, 169.63, 0.76835, 2, 10, -162.91, 64.42, 0.23917, 9, -161.18, 179.9, 0.76083, 2, 10, 167.98, 64.42, 0.36537, 9, 169.71, 179.9, 0.63463, 2, 10, 172.54, -122.71, 0.43659, 9, 174.28, -7.22, 0.56341, 2, 10, -162.91, -124.99, 0.47535, 9, -161.18, -9.5, 0.52465, 2, 10, -3.17, -140.96, 0.72626, 9, -1.44, -25.48, 0.27374, 2, 10, -2.03, 79.25, 0.25249, 9, -0.3, 194.74, 0.74751, 2, 10, -4.32, -199.16, 0.4798, 9, -2.58, -83.67, 0.5202, 2, 10, -70.49, -188.89, 0.42536, 9, -68.76, -73.4, 0.57464, 2, 10, 54.68, -193.45, 0.42901, 9, 56.42, -77.96, 0.57099, 2, 10, -48.81, -137.54, 0.69524, 9, -47.08, -22.05, 0.30476, 2, 10, 39.04, -134.12, 0.68899, 9, 40.78, -18.63, 0.31101, 2, 10, -3.17, -166.07, 0.60466, 9, -1.44, -50.58, 0.39534, 2, 10, -28.28, 37.03, 0.40749, 9, -26.54, 152.52, 0.59251, 2, 10, 31.06, 39.31, 0.48302, 9, 32.79, 154.8, 0.51698, 2, 10, -3.17, -29.15, 0.53404, 9, -1.44, 86.34, 0.46596, 2, 10, 84.68, 96.36, 0.19082, 9, 86.42, 211.85, 0.80918, 2, 10, -71.63, 89.52, 0.17688, 9, -69.9, 205.01, 0.82312, 2, 10, -104.72, 104.35, 0.08016, 9, -102.99, 219.84, 0.91984, 3, 10, 118.91, 127.17, 0.03256, 11, 118.91, 127.17, 0.0011, 9, 120.65, 242.66, 0.96634, 2, 11, 131.46, 183.08, 0.23984, 9, 133.2, 298.57, 0.76016, 2, 11, -129.83, 151.13, 0.08046, 9, -128.09, 266.62, 0.91954, 2, 10, -61.37, 115.76, 0.04075, 9, -59.63, 231.25, 0.95925, 2, 10, 0.25, 114.62, 0.06407, 9, 1.99, 230.11, 0.93593, 2, 10, 58.44, 112.34, 0.07435, 9, 60.18, 227.83, 0.92565, 2, 11, 99.52, 159.12, 0.15345, 9, 101.25, 274.61, 0.84655, 2, 11, -96.74, 147.71, 0.06159, 9, -95, 263.2, 0.93841, 2, 10, 227.31, -24.58, 0.25194, 9, 229.05, 90.91, 0.74806, 2, 10, 213.62, -87.34, 0.30876, 9, 215.35, 28.15, 0.69124, 2, 10, 207.91, 32.47, 0.31184, 9, 209.65, 147.96, 0.68816, 3, 10, -227.95, -30.29, 0.26918, 11, -227.95, -30.29, 0.05011, 9, -226.21, 85.2, 0.6807, 3, 10, -215.4, 31.33, 0.24851, 11, -215.4, 31.33, 0.02152, 9, -213.66, 146.81, 0.72997, 2, 10, -202.85, -99.89, 0.2927, 9, -201.11, 15.6, 0.7073, 2, 10, -95.6, 66.7, 0.27831, 9, -93.86, 182.19, 0.72169, 2, 10, 88.11, 62.13, 0.4333, 9, 89.84, 177.62, 0.5667, 2, 10, 56.16, 71.26, 0.36297, 9, 57.9, 186.75, 0.63703, 2, 10, -52.24, 71.26, 0.28083, 9, -50.5, 186.75, 0.71917, 2, 10, -125.26, -40.56, 0.46719, 9, -123.52, 74.93, 0.53281, 2, 10, 124.62, -34.85, 0.68177, 9, 126.36, 80.64, 0.31823, 2, 10, -36.26, -97.61, 0.80548, 9, -34.53, 17.88, 0.19452, 2, 10, 39.04, -99.89, 0.77666, 9, 40.78, 15.6, 0.22334, 3, 10, 189.65, 96.36, 0.11792, 11, 189.65, 96.36, 3.0E-5, 9, 191.39, 211.85, 0.88205, 3, 10, 239.86, 40.45, 0.1113, 11, 239.86, 40.45, 0.02801, 9, 241.6, 155.94, 0.86068, 3, 10, 256.97, -23.44, 0.07223, 11, 256.97, -23.44, 0.0013, 9, 258.71, 92.05, 0.92647, 2, 10, 244.42, -107.88, 0.12196, 9, 246.16, 7.61, 0.87804, 2, 10, -190.3, 102.07, 0.02441, 9, -188.56, 217.56, 0.97559, 3, 10, -248.49, 41.6, 0.09967, 11, -248.49, 41.6, 0.07803, 9, -246.75, 157.08, 0.8223, 3, 10, -259.9, -40.56, 0.14162, 11, -259.9, -40.56, 0.05098, 9, -258.16, 74.93, 0.8074, 2, 10, -216.54, -121.57, 0.14701, 9, -214.8, -6.08, 0.85299, 2, 10, -181.17, -166.07, 0.19633, 9, -179.43, -50.58, 0.80367, 2, 10, -136.67, -183.18, 0.35738, 9, -134.93, -67.69, 0.64262, 3, 10, 172.54, -176.34, 0.23906, 11, 172.54, -176.34, 0.00239, 9, 174.28, -60.85, 0.75855, 2, 10, 108.64, -184.32, 0.37393, 9, 110.38, -68.83, 0.62607, 2, 10, 207.91, -142.11, 0.22094, 9, 209.65, -26.62, 0.77906 ], + "hull": 25, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 0, 48, 90, 42, 14, 16, 16, 18, 18, 20, 20, 22 ], + "width": 597, + "height": 474 + } + }, + "leaf-1": { + "leaf-1": { "x": 93.08, "y": -14.9, "rotation": -86.78, "width": 152, "height": 202 } + }, + "leaf-2": { + "leaf-2": { "x": 84.31, "y": 7.56, "rotation": 65.1, "width": 130, "height": 189 } + }, + "leaf-3": { + "leaf-3": { "x": 115.81, "y": 28.41, "rotation": 32.57, "width": 263, "height": 154 } + }, + "leaf-4": { + "leaf-4": { "x": 70.16, "y": -4.79, "rotation": 174.22, "width": 178, "height": 98 } + }, + "leaf-5": { + "leaf-5": { "x": 89.18, "y": 24.8, "rotation": -81.12, "width": 106, "height": 211 } + }, + "leaf-6": { + "leaf-6": { "x": 107.78, "y": 6.61, "rotation": -109.98, "width": 176, "height": 231 } + }, + "leaf-7": { + "leaf-7": { "x": 83.07, "y": -8.64, "rotation": -58.07, "width": 108, "height": 172 } + }, + "L_eye-closed": { + "L_eye-closed": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 9, 212, 3.35, 0.5, 10, 212, -123.31, 0.5, 2, 9, 33, 3.35, 0.5, 10, 33, -123.31, 0.5, 2, 9, 33, 174.35, 0.5, 10, 33, 47.69, 0.5, 2, 9, 212, 174.35, 0.5, 10, 212, 47.69, 0.5 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 179, + "height": 171 + } + }, + "L_eye-iris": { + "L_eye-iris": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 9, 212, 3.35, 0.5, 10, 212, -123.31, 0.5, 2, 9, 33, 3.35, 0.5, 10, 33, -123.31, 0.5, 2, 9, 33, 174.35, 0.5, 10, 33, 47.69, 0.5, 2, 9, 212, 174.35, 0.5, 10, 212, 47.69, 0.5 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 179, + "height": 171 + } + }, + "L_eye-light": { + "L_eye-light": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 10, 146, -27.31, 0.75, 9, 146, 99.35, 0.25, 2, 10, 104, -27.31, 0.75, 9, 104, 99.35, 0.25, 2, 10, 104, 11.69, 0.75, 9, 104, 138.35, 0.25, 2, 10, 146, 11.69, 0.75, 9, 146, 138.35, 0.25 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 42, + "height": 39 + } + }, + "L_eye-pupil": { + "L_eye-pupil": { "x": 122.5, "y": -38.81, "width": 125, "height": 119 } + }, + "L_foot": { + "L_foot": { "x": 289.24, "y": 23.18, "rotation": -4.56, "width": 128, "height": 95 } + }, + "L_wing": { + "L_wing": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 4, -185.82, -259.67, 0.29, 3, 263.76, 53.37, 0.71, 2, 4, -185.82, -97.67, 0.29, 3, 101.92, 46.23, 0.71, 2, 4, 34.18, -97.67, 0.91, 3, 92.22, 266.02, 0.09, 2, 4, 34.18, -259.67, 0.91, 3, 254.06, 273.16, 0.09 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 162, + "height": 220 + } + }, + "R_eye-closed": { + "R_eye-closed": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 10, -34, -123.31, 0.5, 9, -34, 3.35, 0.5, 2, 10, -213, -123.31, 0.5, 9, -213, 3.35, 0.5, 2, 10, -213, 47.69, 0.5, 9, -213, 174.35, 0.5, 2, 10, -34, 47.69, 0.5, 9, -34, 174.35, 0.5 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 179, + "height": 171 + } + }, + "R_eye-iris": { + "R_eye-iris": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 10, -34, -123.31, 0.5, 9, -34, 3.35, 0.5, 2, 10, -213, -123.31, 0.5, 9, -213, 3.35, 0.5, 2, 10, -213, 47.69, 0.5, 9, -213, 174.35, 0.5, 2, 10, -34, 47.69, 0.5, 9, -34, 174.35, 0.5 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 179, + "height": 171 + } + }, + "R_eye-light": { + "R_eye-light": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 10, -105, -27.31, 0.75, 9, -105, 99.35, 0.25, 2, 10, -147, -27.31, 0.75, 9, -147, 99.35, 0.25, 2, 10, -147, 11.69, 0.75, 9, -147, 138.35, 0.25, 2, 10, -105, 11.69, 0.75, 9, -105, 138.35, 0.25 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 42, + "height": 39 + } + }, + "R_eye-pupil": { + "R_eye-pupil": { "x": -123.5, "y": -38.81, "width": 125, "height": 119 } + }, + "R_foot": { + "R_foot": { "x": -3.72, "y": 15.78, "rotation": 16.02, "width": 128, "height": 95 } + }, + "R_wing": { + "R_wing": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 4, -185.82, 106.33, 0.3, 3, -101.89, 37.24, 0.7, 2, 4, -185.82, 268.33, 0.3, 3, -263.73, 30.1, 0.7, 2, 4, 34.18, 268.33, 0.88, 3, -273.42, 249.89, 0.12, 2, 4, 34.18, 106.33, 0.88, 3, -111.58, 257.03, 0.12 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 162, + "height": 220 + } + }, + "wood": { + "wood": { + "type": "mesh", + "uvs": [ 0.11021, 1, 0.15566, 0.95336, 0.21123, 0.8928, 0.22028, 0.83577, 0.28362, 0.72988, 0.35481, 0.68032, 0.39623, 0.67196, 0.46043, 0.59021, 0.69783, 0.62777, 0.7172, 0.63585, 0.73175, 0.62498, 0.7584, 0.58795, 0.83734, 0.52487, 0.88376, 0.45904, 0.89542, 0.44525, 0.902, 0.42073, 0.93407, 0.35365, 0.93428, 0.24657, 0.95942, 0.18869, 1, 0.10133, 1, 0.04501, 0.97874, 0.0803, 0.96743, 0.09908, 0.91739, 0.18018, 0.90399, 0.28117, 0.87848, 0.08782, 0.85736, 0.10809, 0.89108, 0.29728, 0.89525, 0.3207, 0.88552, 0.37054, 0.87781, 0.40495, 0.86852, 0.42127, 0.84031, 0.43039, 0.72738, 0.5583, 0.71396, 0.5716, 0.69722, 0.56699, 0.44709, 0.50234, 0.35592, 0.55641, 0.26039, 0.63925, 0.18238, 0.78349, 0.08762, 0.77081, 0, 0.88984, 0, 1, 0.40039, 0.56993, 0.71762, 0.60099, 0.88511, 0.42365, 0.89924, 0.29751, 0.93733, 0.18329, 0.98584, 0.10003 ], + "triangles": [ 24, 26, 25, 27, 26, 24, 19, 48, 21, 22, 21, 48, 19, 21, 20, 47, 23, 22, 18, 47, 22, 48, 18, 22, 19, 18, 48, 46, 27, 24, 28, 27, 46, 17, 23, 47, 17, 47, 18, 24, 23, 17, 16, 24, 17, 46, 24, 16, 28, 46, 16, 29, 28, 16, 15, 29, 16, 45, 30, 29, 29, 15, 45, 14, 45, 15, 45, 31, 30, 13, 31, 45, 13, 45, 14, 32, 31, 13, 12, 32, 13, 12, 33, 32, 11, 33, 12, 33, 11, 44, 33, 44, 34, 10, 44, 11, 10, 9, 44, 7, 36, 35, 43, 36, 7, 44, 8, 35, 44, 35, 34, 9, 8, 44, 7, 35, 8, 6, 43, 7, 43, 37, 36, 43, 5, 37, 5, 38, 37, 43, 6, 5, 4, 38, 5, 4, 39, 38, 3, 39, 4, 2, 39, 3, 2, 1, 40, 2, 40, 39, 41, 40, 1, 0, 42, 41, 1, 0, 41 ], + "vertices": [ 1, 1, 46.94, -64.01, 1, 1, 1, 109.8, -64.9, 1, 1, 1, 187.66, -64.09, 1, 1, 1, 213.68, -38.52, 1, 1, 1, 312.85, -17.71, 1, 1, 1, 404.67, -31.78, 1, 2, 1, 452.3, -51.01, 0.87274, 2, -4.36, -61.57, 0.12726, 2, 1, 545.58, -43.72, 1.0E-5, 2, 72.59, -8.34, 0.99999, 1, 2, 366.26, -18.28, 1, 2, 2, 390.36, -22.14, 0.6578, 5, -12.06, -18.6, 0.3422, 2, 2, 408.01, -14.74, 0.23428, 5, 6.92, -21.06, 0.76572, 1, 5, 46.51, -16.33, 1, 1, 5, 150.63, -27.46, 1, 2, 5, 219.97, -18.5, 0.91238, 6, -20.61, -7.15, 0.08762, 2, 5, 236.6, -17.73, 0.53313, 6, -7.17, -17, 0.46687, 3, 5, 250.73, -8.27, 0.14373, 6, 9.76, -18.5, 0.85627, 7, -125.56, -82.45, 0, 3, 1, 1130.1, -187.59, 0, 6, 62.99, -38.53, 0.99998, 7, -68.96, -76.91, 2.0E-5, 3, 1, 1160.61, -129.96, 0, 6, 122.91, -12.79, 0.99739, 7, -26.57, -27.34, 0.00261, 3, 1, 1204.46, -113.15, 0, 6, 167.6, -27.21, 0.08864, 7, 19.88, -20.53, 0.91136, 1, 7, 92.49, -12.37, 1, 2, 1, 1267.69, -76.61, 0, 7, 89.58, 1.28, 1, 2, 6, 237.64, -22.79, 2.0E-5, 7, 80.77, 14.37, 0.99998, 2, 6, 221.59, -14.54, 1.8E-4, 7, 62.73, 14.68, 0.99982, 2, 6, 151.7, 22.42, 0.82914, 7, -16.3, 16.96, 0.17086, 1, 6, 88.7, 13.1, 1, 1, 8, 126.5, -18.92, 1, 1, 8, 123.36, 9.75, 1, 2, 1, 1099.06, -132.55, 0, 8, 0.87, 8.12, 1, 1, 6, 62.32, 13.4, 1, 3, 1, 1072.27, -168.88, 0, 6, 29.7, 12.32, 0.99766, 8, -39.05, 29.19, 0.00234, 3, 1, 1054.11, -183.01, 0, 5, 228.74, 14.09, 0.34735, 6, 6.69, 12.71, 0.65265, 3, 1, 1039.34, -186.49, 0, 5, 213.97, 10.6, 0.97536, 6, -7, 19.26, 0.02464, 2, 1, 1005.93, -175.25, 0, 5, 180.55, 21.82, 1, 3, 1, 846.33, -179.5, 0, 2, 400.82, 25.59, 0.04218, 5, 20.96, 17.42, 0.95782, 3, 1, 827.91, -178.99, 0, 2, 384.64, 16.77, 0.61297, 5, 2.54, 17.93, 0.38703, 3, 1, 810.92, -166.91, 0, 2, 363.88, 18.67, 0.98073, 5, -14.46, 29.99, 0.01927, 1, 2, 53.78, 44.39, 1, 2, 1, 440.93, 34.41, 1, 7, -692.85, 290.52, 0, 1, 1, 313.11, 44.48, 1, 1, 1, 187.05, 11.39, 1, 1, 1, 87.08, 72.55, 1, 1, 1, -42.34, 58.57, 1, 1, 1, -73.5, -0.85, 1, 2, 1, 485.71, 1.63, 0.55579, 2, -1.97, 0.73, 0.44421, 2, 2, 389.94, -0.91, 0.56026, 5, -1.76, -0.03, 0.43974, 2, 5, 231.44, -0.18, 0.48669, 6, -0.17, -0.09, 0.51331, 1, 6, 77.24, 14.52, 1, 3, 1, 1181.84, -97.57, 0, 6, 159.76, -0.89, 0.45723, 7, 1.23, -0.39, 0.54277, 1, 7, 79.68, -0.46, 1 ], + "hull": 43, + "edges": [ 0, 2, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 22, 24, 38, 40, 44, 46, 46, 48, 48, 50, 50, 52, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 0, 84, 68, 70, 70, 72, 66, 68, 88, 66, 18, 20, 20, 22, 88, 20, 16, 18, 88, 16, 88, 18, 24, 26, 26, 28, 90, 26, 28, 30, 30, 32, 90, 30, 60, 62, 90, 62, 56, 58, 58, 60, 90, 58, 94, 46, 94, 34, 36, 94, 36, 38, 32, 34, 34, 36, 52, 54, 54, 56, 62, 64, 64, 66, 14, 16, 2, 4, 40, 42, 42, 44, 96, 42 ], + "width": 1234, + "height": 609 + } + } + } + } +], +"animations": { + "blink": { + "slots": { + "L_eye-closed": { + "attachment": [ + { "time": 0.4667, "name": "L_eye-closed" }, + { "time": 0.5333, "name": null }, + { "time": 1.8333, "name": "L_eye-closed" }, + { "time": 1.9333, "name": null } + ] + }, + "R_eye-closed": { + "attachment": [ + { "time": 0.4667, "name": "R_eye-closed" }, + { "time": 0.5333, "name": null }, + { "time": 1.8333, "name": "R_eye-closed" }, + { "time": 1.9, "name": null }, + { "time": 5.2333, "name": null } + ] + } + } + }, + "down": { + "bones": { + "control": { + "translate": [ + { "y": -31.86 } + ] + } + } + }, + "idle": { + "bones": { + "body-top-control": { + "translate": [ + { "x": -2.24, "y": 18.72 }, + { "time": 0.5667, "curve": "stepped" }, + { "time": 0.8 }, + { "time": 1.4667, "x": -2.84, "y": 17.73 }, + { "time": 1.9, "x": -3.43, "y": 28.64 }, + { "time": 2.8, "curve": "stepped" }, + { "time": 2.9667 }, + { "time": 3.6333, "x": -2.84, "y": 17.73 }, + { "time": 4.1, "x": -3.43, "y": 28.64 }, + { "time": 4.9667, "curve": "stepped" }, + { "time": 5.2333 }, + { "time": 5.9, "x": -2.84, "y": 17.73 }, + { "time": 6.3667, "x": -3.43, "y": 28.64 }, + { "time": 6.6667, "x": -2.24, "y": 18.72 } + ] + }, + "branch-2": { + "rotate": [ + { "value": 0.09, "curve": "stepped" }, + { "time": 2.0333, "value": 0.09 }, + { "time": 3.5, "value": 0.79 }, + { "time": 4.8333, "value": 0.09 }, + { "time": 5.9, "value": -0.13 }, + { "time": 6.6667, "value": 0.09 } + ] + }, + "branch-4": { + "rotate": [ + { "value": -0.57 }, + { "time": 0.7667, "value": -1.75 }, + { "time": 1.8667, "value": -0.57 } + ] + }, + "branch-5": { + "rotate": [ + { "value": -0.75, "curve": "stepped" }, + { "time": 1.1, "value": -0.75 }, + { "time": 1.9, "value": -0.83 }, + { "time": 2.6667, "value": -0.75 }, + { "time": 5.6667, "value": 0.66 }, + { "time": 6.6667, "value": -0.75 } + ] + }, + "tail-feathers": { + "rotate": [ + { "time": 3.2333 }, + { "time": 3.3333, "value": 10.86 }, + { "time": 3.4, "value": -13.26 }, + { "time": 3.4667, "value": 12.72 }, + { "time": 3.5333, "value": -16.15 }, + { "time": 3.6333, "value": -0.35 }, + { "time": 3.8 } + ], + "translate": [ + {}, + { "time": 1.1, "x": -1.29, "y": 21.82 }, + { "time": 2.2333 }, + { "time": 3.2667, "y": 29.98 }, + { "time": 4.7333, "y": 8.81 }, + { "time": 6.6667 } + ] + }, + "branch-3": { + "rotate": [ + {}, + { "time": 3.8333, "value": -1.4 }, + { "time": 6.6667 } + ] + }, + "head": { + "translate": [ + {}, + { "time": 1, "x": -19.41 }, + { "time": 4 }, + { "time": 4.6667, "x": -19.41 }, + { "time": 6.6667 } + ] + }, + "leaf-5": { + "rotate": [ + { "value": -2.05 }, + { "time": 0.3333 }, + { "time": 1, "value": -4.1 }, + { "time": 1.6667 }, + { "time": 2.3333, "value": -4.1 }, + { "time": 3 }, + { "time": 3.6667, "value": -4.1 }, + { "time": 4.3333 }, + { "time": 5, "value": -4.1 }, + { "time": 5.6667 }, + { "time": 6.3333, "value": -4.1 }, + { "time": 6.6667, "value": -2.05 } + ] + }, + "leaf-4": { + "rotate": [ + { "value": -2.05 }, + { "time": 0.3333 }, + { "time": 1, "value": -4.1 }, + { "time": 1.6667 }, + { "time": 2.3333, "value": -4.1 }, + { "time": 3 }, + { "time": 3.6667, "value": -4.1 }, + { "time": 4.3333 }, + { "time": 5, "value": -4.1 }, + { "time": 5.6667 }, + { "time": 6.3333, "value": -4.1 }, + { "time": 6.6667, "value": -2.05 } + ] + }, + "leaf-6": { + "rotate": [ + { "value": -4.1 }, + { "time": 0.3333, "value": -2.05 }, + { "time": 0.6667 }, + { "time": 1.3333, "value": -4.1 }, + { "time": 2 }, + { "time": 2.6667, "value": -4.1 }, + { "time": 3.3333 }, + { "time": 4, "value": -4.1 }, + { "time": 4.6667 }, + { "time": 5.3333, "value": -4.1 }, + { "time": 6 }, + { "time": 6.6667, "value": -4.1 } + ] + }, + "leaf-2": { + "rotate": [ + { "value": -2.05 }, + { "time": 0.3333 }, + { "time": 1, "value": -4.1 }, + { "time": 1.6667 }, + { "time": 2.3333, "value": -4.1 }, + { "time": 3 }, + { "time": 3.6667, "value": -4.1 }, + { "time": 4.3333 }, + { "time": 5, "value": -4.1 }, + { "time": 5.6667 }, + { "time": 6.3333, "value": -4.1 }, + { "time": 6.6667, "value": -2.05 } + ] + }, + "leaf-3": { + "rotate": [ + { "value": -4.1 }, + { "time": 0.3333, "value": -2.05 }, + { "time": 0.6667 }, + { "time": 1.3333, "value": -4.1 }, + { "time": 2 }, + { "time": 2.6667, "value": -4.1 }, + { "time": 3.3333 }, + { "time": 4, "value": -4.1 }, + { "time": 4.6667 }, + { "time": 5.3333, "value": -4.1 }, + { "time": 6 }, + { "time": 6.6667, "value": -4.1 } + ] + }, + "leaf-7": { + "rotate": [ + { "value": -2.05 }, + { "time": 0.3333 }, + { "time": 1, "value": -4.1 }, + { "time": 1.6667 }, + { "time": 2.3333, "value": -4.1 }, + { "time": 3 }, + { "time": 3.6667, "value": -4.1 }, + { "time": 4.3333 }, + { "time": 5, "value": -4.1 }, + { "time": 5.6667 }, + { "time": 6.3333, "value": -4.1 }, + { "time": 6.6667, "value": -2.05 } + ] + }, + "leaf-1": { + "rotate": [ + {}, + { "time": 0.6667, "value": -4.1 }, + { "time": 1.3333 }, + { "time": 2, "value": -4.1 }, + { "time": 2.6667 }, + { "time": 3.3333, "value": -4.1 }, + { "time": 4 }, + { "time": 4.6667, "value": -4.1 }, + { "time": 5.3333 }, + { "time": 6, "value": -4.1 }, + { "time": 6.6667 } + ] + } + } + }, + "left": { + "bones": { + "control": { + "translate": [ + { "x": 36.77 } + ] + } + } + }, + "right": { + "bones": { + "control": { + "translate": [ + { "x": -39.22 } + ] + } + } + }, + "up": { + "bones": { + "control": { + "translate": [ + { "y": 41.67 } + ] + } + } + } +} +} \ No newline at end of file diff --git a/spine-ts/webgl/example/assets/raptor-pro.json b/spine-ts/webgl/example/assets/raptor-pro.json new file mode 100644 index 000000000..ffd1d93e6 --- /dev/null +++ b/spine-ts/webgl/example/assets/raptor-pro.json @@ -0,0 +1,3726 @@ +{ +"skeleton": { + "hash": "pwE5iESqAyw", + "spine": "4.0.05-beta", + "x": -809.16, + "y": -73.54, + "width": 1280.26, + "height": 1039.44, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { "name": "hip", "parent": "root", "rotation": 8.96, "x": -122.52, "y": 392.65, "color": "fbff00ff" }, + { + "name": "torso1", + "parent": "hip", + "length": 126.26, + "rotation": -4.98, + "x": 30.04, + "y": -0.4, + "color": "eaff00ff" + }, + { + "name": "saddle", + "parent": "torso1", + "length": 50.92, + "rotation": 91.8, + "x": 25.31, + "y": 70.65, + "color": "ff7300ff" + }, + { + "name": "spineboy-hip", + "parent": "saddle", + "length": 0.53, + "rotation": 90.02, + "x": 81.88, + "y": 2.69, + "color": "e8ff00ff" + }, + { + "name": "spineboy-torso", + "parent": "spineboy-hip", + "length": 122.45, + "rotation": -75.86, + "x": 1.05, + "y": -2.11, + "color": "e8ff00ff" + }, + { + "name": "torso2", + "parent": "torso1", + "length": 121.2, + "rotation": 39.85, + "x": 126.26, + "y": -0.38, + "color": "e9ff00ff" + }, + { + "name": "neck", + "parent": "torso2", + "length": 70.6, + "rotation": 41.38, + "x": 121.2, + "y": 0.35, + "color": "eaff00ff" + }, + { + "name": "head", + "parent": "neck", + "length": 105.51, + "rotation": 9.83, + "x": 70.6, + "y": 0.04, + "color": "eaff00ff" + }, + { + "name": "horn-back", + "parent": "head", + "length": 73.78, + "rotation": 44.32, + "x": 104.76, + "y": -242.01, + "color": "e07800ff" + }, + { "name": "spineboy-back-arm-target", "parent": "horn-back", "rotation": -133.55, "x": 232.68, "y": 245.85, "color": "ff3f00ff" }, + { + "name": "back-arm", + "parent": "spineboy-torso", + "length": 67.21, + "rotation": -120.9, + "x": 96.33, + "y": -38.47, + "color": "e07800ff" + }, + { + "name": "back-bracer", + "parent": "back-arm", + "length": 43.69, + "rotation": 17.48, + "x": 67.22, + "y": -0.32, + "color": "e07800ff" + }, + { + "name": "back-arm1", + "parent": "torso2", + "length": 109.56, + "rotation": -124.72, + "x": 83.68, + "y": -83.24, + "color": "e07800ff" + }, + { + "name": "back-arm2", + "parent": "back-arm1", + "length": 85.8, + "rotation": 123.56, + "x": 109.57, + "y": -0.01, + "color": "e07800ff" + }, + { "name": "back-foot-target", "parent": "root", "x": 33.44, "y": 30.82, "color": "ff3f00ff" }, + { "name": "back-leg-target", "parent": "back-foot-target", "x": -127.51, "y": 75.99, "color": "ff3f00ff" }, + { + "name": "back-leg1", + "parent": "hip", + "length": 226.28, + "rotation": -54.76, + "x": 55.19, + "y": -71.25, + "color": "e07800ff" + }, + { + "name": "back-leg2", + "parent": "back-leg1", + "length": 172.59, + "rotation": -92.25, + "x": 226.32, + "y": 0.23, + "color": "e07800ff" + }, + { + "name": "back-leg3", + "parent": "back-leg2", + "length": 103.05, + "rotation": 82.82, + "x": 172.32, + "y": 2.21, + "color": "e07800ff" + }, + { + "name": "back-foot1", + "parent": "back-leg3", + "length": 84.51, + "rotation": 75.43, + "x": 102.38, + "y": -0.03, + "color": "e07800ff" + }, + { + "name": "back-foot2", + "parent": "back-foot1", + "length": 102.31, + "rotation": -6.14, + "x": 84.5, + "y": -0.35, + "transform": "noRotationOrReflection", + "color": "e07800ff" + }, + { + "name": "back-hand", + "parent": "back-arm2", + "length": 45.81, + "rotation": -76.28, + "x": 85.8, + "y": 0.11, + "color": "e07800ff" + }, + { + "name": "back-hand2", + "parent": "spineboy-back-arm-target", + "length": 41.98, + "rotation": 27.78, + "x": -0.03, + "y": 0.05, + "transform": "noRotationOrReflection", + "color": "e07800ff" + }, + { "name": "spineboy-back-foot-target", "parent": "saddle", "x": -30.44, "y": -100.08, "color": "ff3f00ff" }, + { + "name": "back-thigh", + "parent": "spineboy-hip", + "length": 71.16, + "rotation": 160.75, + "x": -9.57, + "y": 2.32, + "color": "e07800ff" + }, + { + "name": "back-knee", + "parent": "back-thigh", + "length": 97.17, + "rotation": -54.98, + "x": 71.16, + "y": -0.28, + "color": "e07800ff" + }, + { + "name": "neck2", + "parent": "spineboy-torso", + "length": 32.05, + "rotation": -45.23, + "x": 113.44, + "y": -15.22, + "color": "e8ff00ff" + }, + { + "name": "head2", + "parent": "neck2", + "length": 167.19, + "rotation": 11.66, + "x": 25.68, + "y": -0.77, + "color": "e7ff00ff" + }, + { + "name": "bone", + "parent": "head2", + "length": 39.92, + "rotation": -35.23, + "x": 166.09, + "y": -79.27, + "color": "e7ff00ff" + }, + { "name": "bone2", "parent": "bone", "length": 47.42, "rotation": 51.8, "x": 39.92, "color": "e7ff00ff" }, + { + "name": "bone3", + "parent": "head2", + "length": 45.41, + "rotation": -12.34, + "x": 179.8, + "y": -20.91, + "color": "e7ff00ff" + }, + { + "name": "bone4", + "parent": "bone3", + "length": 43.31, + "rotation": 42.01, + "x": 44.64, + "y": 0.3, + "color": "e7ff00ff" + }, + { "name": "bone5", "parent": "bone4", "length": 44.88, "rotation": 48.8, "x": 43.31, "color": "e7ff00ff" }, + { + "name": "horn-front", + "parent": "head", + "length": 87.48, + "rotation": 49.36, + "x": 87.97, + "y": -235.15, + "color": "15ff00ff" + }, + { "name": "spineboy-front-arm-target", "parent": "horn-front", "rotation": -138.6, "x": 294.58, "y": 234.18, "color": "ff3f00ff" }, + { + "name": "front-arm", + "parent": "spineboy-torso", + "length": 74.52, + "rotation": -118.17, + "x": 101.38, + "y": 9.79, + "color": "14ff00ff" + }, + { + "name": "front-bracer", + "parent": "front-arm", + "length": 39.85, + "rotation": 20.31, + "x": 74.52, + "y": -0.42, + "color": "14ff00ff" + }, + { + "name": "front-arm1", + "parent": "torso2", + "length": 109.99, + "rotation": 224.54, + "x": 73, + "y": -72.46, + "color": "15ff00ff" + }, + { + "name": "front-arm2", + "parent": "front-arm1", + "length": 86.33, + "rotation": 105.24, + "x": 109.99, + "y": 0.2, + "color": "15ff00ff" + }, + { "name": "front-foot-target", "parent": "root", "rotation": -6.96, "x": -45.8, "y": -28.67, "color": "ff3f00ff" }, + { "name": "front-leg-target", "parent": "front-foot-target", "x": -106.06, "y": 115.58, "color": "ff3f00ff" }, + { + "name": "front-leg1", + "parent": "hip", + "length": 251.75, + "rotation": -51.51, + "x": 27.36, + "y": -28.28, + "color": "15ff00ff" + }, + { + "name": "front-leg2", + "parent": "front-leg1", + "length": 208.55, + "rotation": 261.94, + "x": 251.04, + "y": 0.16, + "color": "15ff00ff" + }, + { + "name": "front-leg3", + "parent": "front-leg2", + "length": 118.18, + "rotation": 85.46, + "x": 208.5, + "y": -1.64, + "color": "15ff00ff" + }, + { + "name": "front-foot1", + "parent": "front-leg3", + "length": 57.79, + "rotation": 54.46, + "x": 118.2, + "y": -0.79, + "color": "15ff00ff" + }, + { + "name": "front-foot2", + "parent": "front-foot1", + "length": 56.19, + "rotation": -2.16, + "x": 57.79, + "y": -0.02, + "scaleX": 0.731, + "scaleY": 0.823, + "transform": "onlyTranslation", + "color": "15ff00ff" + }, + { + "name": "front-foot3", + "parent": "front-foot2", + "length": 129.88, + "rotation": -2.7, + "x": 49.71, + "y": 20.66, + "scaleX": 1.155, + "color": "15ff00ff" + }, + { + "name": "front-hand", + "parent": "front-arm2", + "length": 47.56, + "rotation": -56.83, + "x": 86.33, + "y": 0.06, + "color": "15ff00ff" + }, + { + "name": "front-hand2", + "parent": "front-bracer", + "length": 58.19, + "rotation": 17.31, + "x": 42.72, + "y": -2.77, + "transform": "noRotationOrReflection", + "color": "14ff00ff" + }, + { "name": "spineboy-front-foot-target", "parent": "saddle", "x": -50.71, "y": -96.93, "color": "ff3f00ff" }, + { + "name": "front-thigh", + "parent": "spineboy-hip", + "length": 77.79, + "rotation": 163.34, + "x": 15.52, + "y": 17.02, + "color": "14ff00ff" + }, + { + "name": "lower-leg", + "parent": "front-thigh", + "length": 111.5, + "rotation": -49.62, + "x": 77.93, + "y": -0.11, + "color": "14ff00ff" + }, + { + "name": "gun", + "parent": "spineboy-hip", + "length": 181.35, + "rotation": 107.12, + "x": 16.86, + "y": -7.89, + "scaleX": 0.816, + "scaleY": 0.816, + "color": "ffffffff" + }, + { + "name": "jaw", + "parent": "head", + "length": 203.76, + "rotation": -129.48, + "x": 49.11, + "y": -68.46, + "color": "ffff00ff" + }, + { "name": "jaw-inside", "parent": "jaw", "x": 94.7, "y": 33.64, "color": "ffff00ff" }, + { + "name": "saddle-strap-back", + "parent": "saddle", + "length": 74.6, + "rotation": 151.14, + "x": -33.34, + "y": 87.33, + "color": "ff7300ff" + }, + { + "name": "saddle-strap-front", + "parent": "saddle", + "length": 154.29, + "rotation": -148.12, + "x": -27.36, + "y": -73.39, + "color": "ff7300ff" + }, + { + "name": "stirrup", + "parent": "saddle", + "length": 78.17, + "rotation": -68.86, + "x": -81.94, + "y": -103.38, + "color": "ff3f00ff" + }, + { + "name": "stirrup-strap1", + "parent": "saddle", + "length": 43.7, + "rotation": -135, + "x": -20.38, + "y": -29.37, + "color": "ff7300ff" + }, + { "name": "stirrup-strap2", "parent": "stirrup-strap1", "length": 51.62, "rotation": 9.39, "x": 43.71, "color": "ff7300ff" }, + { + "name": "tail1", + "parent": "hip", + "length": 81.26, + "rotation": 153.61, + "x": -20.87, + "y": 6.87, + "color": "eaff00ff" + }, + { "name": "tail2", "parent": "tail1", "length": 81.26, "rotation": 10.42, "x": 81.26, "color": "eaff00ff" }, + { "name": "tail3", "parent": "tail2", "length": 65.01, "rotation": 12.18, "x": 81.26, "color": "eaff00ff" }, + { "name": "tail4", "parent": "tail3", "length": 65.01, "x": 65.01, "color": "eaff00ff" }, + { "name": "tail5", "parent": "tail4", "length": 70.53, "rotation": 4.36, "x": 65.01, "color": "eaff00ff" }, + { "name": "tail6", "parent": "tail5", "length": 70.53, "x": 70.53, "color": "eaff00ff" }, + { "name": "tail7", "parent": "tail6", "length": 63.13, "rotation": 2.35, "x": 70.53, "color": "eaff00ff" }, + { "name": "tail8", "parent": "tail7", "length": 54.46, "rotation": 0.97, "x": 63.13, "color": "eaff00ff" }, + { "name": "tail9", "parent": "tail8", "length": 49.21, "rotation": -1.29, "x": 54.46, "color": "eaff00ff" }, + { "name": "tail10", "parent": "tail9", "length": 45.53, "rotation": 0.36, "x": 49.21, "color": "eaff00ff" }, + { + "name": "tongue1", + "parent": "head", + "length": 55.12, + "rotation": -129.04, + "x": 20.82, + "y": -104.75, + "color": "ffff00ff" + }, + { + "name": "tongue2", + "parent": "tongue1", + "length": 44.67, + "rotation": 8.93, + "x": 55.6, + "y": 0.93, + "color": "fff200ff" + }, + { + "name": "tongue3", + "parent": "tongue2", + "length": 43.65, + "rotation": 12.86, + "x": 44.27, + "y": -0.21, + "color": "fff200ff" + } +], +"slots": [ + { "name": "back-hand", "bone": "back-hand2", "attachment": "back-hand" }, + { "name": "back-arm", "bone": "back-arm", "attachment": "back-arm" }, + { "name": "back-bracer", "bone": "back-bracer", "attachment": "back-bracer" }, + { "name": "back-knee", "bone": "back-knee", "attachment": "back-knee" }, + { "name": "raptor-jaw-inside", "bone": "jaw-inside", "color": "646464ff", "attachment": "raptor-jaw2" }, + { "name": "raptor-mouth-inside", "bone": "jaw", "attachment": "raptor-mouth-inside" }, + { "name": "raptor-horn-back", "bone": "horn-back", "attachment": "raptor-horn-back" }, + { "name": "raptow-jaw-tooth", "bone": "jaw", "attachment": "raptor-jaw-tooth" }, + { "name": "raptor-tongue", "bone": "tongue1", "attachment": "raptor-tongue" }, + { "name": "raptor-hindleg-back", "bone": "back-leg1", "attachment": "raptor-hindleg-back" }, + { "name": "raptor-back-arm", "bone": "back-arm1", "attachment": "raptor-back-arm" }, + { "name": "back-thigh", "bone": "back-thigh", "attachment": "back-thigh" }, + { "name": "raptor-body", "bone": "torso1", "attachment": "raptor-body" }, + { "name": "raptor-saddle-strap-front", "bone": "saddle-strap-front", "attachment": "raptor-saddle-strap-front" }, + { "name": "raptor-saddle-strap-back", "bone": "saddle-strap-back", "attachment": "raptor-saddle-strap-back" }, + { "name": "raptor-saddle", "bone": "saddle", "attachment": "raptor-saddle-w-shadow" }, + { "name": "raptor-jaw", "bone": "jaw", "attachment": "raptor-jaw" }, + { "name": "raptor-front-arm", "bone": "front-arm1", "attachment": "raptor-front-arm" }, + { "name": "raptor-front-leg", "bone": "front-leg1", "attachment": "raptor-front-leg" }, + { "name": "neck", "bone": "neck2", "attachment": "neck" }, + { "name": "spineboy-torso", "bone": "spineboy-torso", "attachment": "torso" }, + { "name": "head", "bone": "head2", "attachment": "head" }, + { "name": "eyes-open", "bone": "head2", "attachment": "eyes-open" }, + { "name": "mouth-smile", "bone": "head2", "attachment": "mouth-smile" }, + { "name": "visor", "bone": "head2", "attachment": "visor" }, + { "name": "raptor-horn", "bone": "horn-front", "attachment": "raptor-horn" }, + { "name": "front-thigh", "bone": "front-thigh", "attachment": "front-thigh" }, + { "name": "stirrup-back", "bone": "stirrup", "attachment": "stirrup-back" }, + { "name": "lower-leg", "bone": "lower-leg", "attachment": "lower-leg" }, + { "name": "stirrup-strap", "bone": "stirrup", "attachment": "stirrup-strap" }, + { "name": "stirrup-front", "bone": "stirrup", "attachment": "stirrup-front" }, + { "name": "gun", "bone": "gun", "attachment": "gun-nohand" }, + { "name": "front-arm", "bone": "front-arm", "attachment": "front-arm" }, + { "name": "front-bracer", "bone": "front-bracer", "attachment": "front-bracer" }, + { "name": "front-hand", "bone": "front-hand2", "attachment": "front-hand" }, + { "name": "tail-shadow", "bone": "torso1", "color": "00000000" } +], +"ik": [ + { + "name": "back-foot-ik", + "order": 3, + "bones": [ "back-leg3", "back-foot1" ], + "target": "back-foot-target" + }, + { + "name": "back-leg-ik", + "order": 2, + "bones": [ "back-leg1", "back-leg2" ], + "target": "back-leg-target", + "bendPositive": false + }, + { + "name": "front-foot-ik", + "order": 1, + "bones": [ "front-leg3", "front-foot1" ], + "target": "front-foot-target" + }, + { + "name": "front-leg-ik", + "bones": [ "front-leg1", "front-leg2" ], + "target": "front-leg-target", + "bendPositive": false + }, + { + "name": "spineboy-back-arm-ik", + "order": 8, + "bones": [ "back-arm", "back-bracer" ], + "target": "spineboy-back-arm-target" + }, + { + "name": "spineboy-back-leg-ik", + "order": 5, + "bones": [ "back-thigh", "back-knee" ], + "target": "spineboy-back-foot-target", + "bendPositive": false + }, + { + "name": "spineboy-front-arm-ik", + "order": 7, + "bones": [ "front-arm", "front-bracer" ], + "target": "spineboy-front-arm-target" + }, + { + "name": "spineboy-front-leg-ik", + "order": 4, + "bones": [ "front-thigh", "lower-leg" ], + "target": "spineboy-front-foot-target", + "bendPositive": false + }, + { + "name": "stirrup", + "order": 6, + "bones": [ "stirrup-strap1", "stirrup-strap2" ], + "target": "stirrup" + } +], +"skins": [ + { + "name": "default", + "attachments": { + "back-arm": { + "back-arm": { "x": 28.57, "y": -12.03, "rotation": 16.76, "width": 91, "height": 49 } + }, + "back-bracer": { + "back-bracer": { "x": 13.2, "y": -4.28, "rotation": -0.73, "width": 77, "height": 55 } + }, + "back-hand": { + "back-hand": { "x": 18.61, "y": 4.24, "rotation": -10.99, "width": 72, "height": 68 } + }, + "back-knee": { + "back-knee": { "x": 45.77, "y": 20.47, "rotation": 74.23, "width": 97, "height": 134 } + }, + "back-thigh": { + "back-thigh": { "x": 37.85, "y": -4.37, "rotation": 19.25, "width": 78, "height": 47 } + }, + "eyes-open": { + "eyes-open": { "x": 93.24, "y": -25.45, "rotation": -70.58, "width": 93, "height": 89 } + }, + "front-arm": { + "front-arm": { "x": 33.68, "y": -1.53, "rotation": 14.02, "width": 96, "height": 51 } + }, + "front-bracer": { + "front-bracer": { "x": 11.68, "y": -1.37, "rotation": -6.28, "width": 81, "height": 58 } + }, + "front-hand": { + "front-hand": { "x": 35.7, "y": 7.84, "rotation": -13.97, "width": 82, "height": 75 }, + "front-open-hand": { "x": 42.55, "y": 4.62, "rotation": 62.19, "width": 86, "height": 87 }, + "gun": { "x": 98.91, "y": 22.98, "rotation": 56.35, "width": 213, "height": 206 } + }, + "front-thigh": { + "front-thigh": { "x": 45.7, "y": -3.1, "rotation": 16.66, "width": 114, "height": 58 } + }, + "gun": { + "gun-nohand": { "x": 54.65, "y": -24.93, "rotation": 55.2, "width": 210, "height": 203 } + }, + "head": { + "head": { + "type": "mesh", + "uvs": [ 0.73461, 0.04542, 0.88414, 0.17033, 0.88955, 0.31976, 0.91126, 0.27463, 0.9461, 0.20217, 1, 0.29892, 1, 0.34554, 1, 0.4508, 0.91249, 0.51206, 0.84514, 0.51207, 0.8209, 0.59663, 0.77915, 0.67257, 0.73605, 0.75464, 0.83571, 0.73994, 0.84784, 0.84528, 0.7549, 0.93101, 0.63773, 1, 0.39394, 1, 0.14747, 0.82935, 0, 0.59419, 0, 0.36645, 0.09623, 0.20353, 0.21474, 0.14594, 0.45179, 0.15693, 0.51509, 0.1263, 0.507, 0.07853, 0.42079, 0, 0.56221, 0, 0.19055, 0.39949, 0.27942, 0.31373, 0.79396, 0.479, 0.76029, 0.85997, 0.53421, 0.16964, 0.53207, 0.04286, 0.61949, 0.08784, 0.70424, 0.16685, 0.69053, 0.432, 0.85592, 0.37861, 0.45844, 0.34997, 0.48658, 0.30193, 0.66307, 0.35065, 0.58439, 0.39448, 0.70468, 0.26242, 0.51985, 0.21924 ], + "triangles": [ 33, 26, 27, 25, 26, 33, 34, 27, 0, 33, 27, 34, 34, 24, 25, 34, 25, 33, 35, 34, 0, 32, 24, 34, 23, 24, 32, 32, 34, 35, 35, 0, 1, 32, 35, 42, 42, 35, 1, 43, 32, 42, 2, 42, 1, 40, 43, 42, 37, 42, 2, 40, 42, 37, 36, 40, 37, 3, 4, 5, 2, 3, 5, 6, 2, 5, 37, 2, 6, 7, 37, 6, 8, 37, 7, 30, 36, 37, 9, 30, 37, 8, 9, 37, 41, 40, 36, 10, 30, 9, 41, 39, 40, 43, 23, 32, 39, 23, 43, 22, 23, 39, 29, 22, 39, 21, 22, 29, 38, 29, 39, 39, 43, 40, 28, 20, 21, 38, 39, 41, 29, 28, 21, 19, 20, 28, 12, 36, 11, 18, 19, 28, 31, 12, 13, 14, 31, 13, 12, 16, 17, 15, 31, 14, 38, 28, 29, 41, 18, 38, 41, 12, 18, 12, 41, 36, 12, 31, 16, 38, 18, 28, 18, 12, 17, 15, 16, 31, 10, 11, 36, 10, 36, 30 ], + "vertices": [ 2, 32, 58.33, -14.31, 0.30205, 33, -0.88, -20.72, 0.69795, 3, 30, 69.21, 19.04, 0.07711, 31, 87.24, -25.34, 0.8077, 32, 14.49, -47.57, 0.11518, 3, 29, 43.19, 28.99, 0.10855, 30, 24.81, 15.35, 0.61823, 31, 50.15, -50.03, 0.27322, 1, 30, 38.53, 10.15, 1, 1, 30, 60.57, 1.79, 1, 1, 30, 32.5, -14.23, 1, 1, 30, 18.62, -14.92, 1, 2, 29, 45.01, -20.18, 0.76042, 30, -12.71, -16.48, 0.23958, 1, 28, 166.12, -105.42, 1, 1, 28, 160.05, -88.21, 1, 1, 28, 134.1, -90.39, 1, 1, 28, 108.99, -87.24, 1, 1, 28, 82.04, -84.36, 1, 1, 28, 95.16, -108.38, 1, 1, 28, 66.64, -121.91, 1, 1, 28, 34.17, -106.65, 1, 1, 28, 4.23, -83.54, 1, 1, 28, -17.74, -21.23, 1, 1, 28, 8.01, 58.67, 1, 1, 28, 60.82, 119.66, 1, 1, 28, 124.82, 142.22, 1, 1, 28, 179.28, 133.77, 1, 1, 28, 206.14, 109.19, 1, 3, 28, 224.42, 47.51, 0.55599, 32, 39.26, 67.02, 0.19527, 33, 47.76, 47.19, 0.24873, 3, 28, 238.73, 34.37, 0.20521, 32, 45.19, 48.52, 0.20866, 33, 37.74, 30.54, 0.58612, 2, 32, 59.59, 48.14, 0.05508, 33, 46.95, 19.46, 0.94492, 1, 33, 79.02, 11.41, 1, 1, 33, 46.15, -8.3, 1, 1, 28, 132.71, 90.25, 1, 1, 28, 164.81, 76.03, 1, 1, 28, 164.73, -71.85, 1, 1, 28, 54.62, -100.99, 1, 3, 28, 228.27, 25.19, 0.29316, 32, 31.56, 45.72, 0.3088, 33, 26.66, 38.96, 0.39805, 1, 33, 46.59, 6.85, 1, 2, 32, 51.44, 18.64, 0.07922, 33, 19.38, 6.16, 0.92078, 1, 32, 24.18, 0.23, 1, 1, 28, 168.62, -40.76, 1, 3, 29, 25.61, 19.96, 0.50536, 30, 6.84, 23.59, 0.2645, 31, 30.44, -51.51, 0.23014, 1, 28, 170.76, 26.69, 1, 4, 28, 186.8, 24.26, 0.75057, 31, -2.82, 45.62, 0.07609, 32, -4.94, 65.43, 0.10488, 33, 17.45, 79.4, 0.06845, 1, 31, 10.01, -2.69, 1, 1, 28, 169.6, -9.91, 1, 1, 31, 38.3, 1.56, 1, 4, 28, 213.04, 23.94, 0.43153, 31, 22.88, 50.92, 0.09832, 32, 17.71, 52.17, 0.26174, 33, 22.39, 53.63, 0.20841 ], + "hull": 28, + "edges": [ 10, 8, 4, 2, 2, 0, 0, 54, 52, 54, 52, 50, 50, 48, 48, 46, 46, 44, 44, 42, 42, 40, 40, 56, 56, 58, 60, 18, 18, 16, 16, 14, 38, 40, 38, 36, 36, 34, 32, 34, 32, 30, 30, 62, 62, 28, 28, 26, 26, 24, 24, 22, 22, 20, 20, 18, 28, 30, 48, 64, 50, 66, 66, 54, 0, 68, 68, 48, 66, 68, 2, 70, 70, 64, 68, 70, 72, 60, 10, 12, 12, 14, 4, 12, 4, 6, 6, 8, 10, 6, 14, 74, 4, 74, 74, 72, 58, 76, 78, 76, 78, 44, 80, 78, 72, 82, 82, 76, 80, 82, 80, 74, 70, 84, 84, 80, 4, 84, 64, 86, 86, 78, 84, 86 ], + "width": 271, + "height": 298 + } + }, + "lower-leg": { + "lower-leg": { "x": 76.2, "y": 22.21, "rotation": 66.28, "width": 146, "height": 195 } + }, + "mouth-smile": { + "mouth-grind": { "x": 27.66, "y": -31.33, "rotation": -70.58, "width": 93, "height": 59 }, + "mouth-smile": { "x": 27.66, "y": -31.33, "rotation": -70.58, "width": 93, "height": 59 } + }, + "neck": { + "neck": { "x": 15.1, "y": -1.67, "rotation": -58.92, "width": 36, "height": 41 } + }, + "raptor-back-arm": { + "raptor-back-arm": { + "type": "mesh", + "uvs": [ 0.38712, 0.29362, 0.31383, 0.46513, 0.29243, 0.51522, 0.32476, 0.49311, 0.57587, 0.32139, 0.63255, 0.28263, 0.71632, 0.34508, 0.94948, 0.51888, 0.94948, 0.60129, 1, 0.65257, 1, 0.90624, 0.95463, 0.99934, 0.88957, 0.83205, 0.80295, 0.99999, 0.75236, 0.75696, 0.6654, 0.71301, 0.62289, 0.63243, 0.58195, 0.65032, 0.22479, 0.80641, 0.07792, 0.73315, 0.07825, 0.6655, 0.07985, 0.34307, 0, 0.29728, 0, 0, 0.32335, 0 ], + "triangles": [ 13, 14, 12, 11, 12, 10, 12, 9, 10, 12, 8, 9, 12, 14, 8, 14, 15, 8, 8, 15, 7, 16, 17, 4, 6, 7, 15, 5, 16, 4, 5, 6, 16, 6, 15, 16, 18, 3, 17, 18, 2, 3, 18, 19, 2, 19, 20, 2, 17, 3, 4, 2, 20, 1, 1, 20, 21, 1, 21, 0, 0, 21, 24, 24, 21, 23, 21, 22, 23 ], + "vertices": [ 2, 13, 36.95, 33.31, 0.91667, 14, 68.54, 41.05, 0.08333, 2, 13, 66.02, 20.36, 0.76814, 14, 41.42, 24.4, 0.23186, 2, 13, 74.51, 16.58, 0.64468, 14, 33.5, 19.53, 0.35532, 2, 13, 70.89, 21.97, 0.29072, 14, 40, 19.47, 0.70928, 3, 13, 42.78, 63.9, 0.11484, 14, 90.47, 18.95, 0.60855, 22, -17.2, 9.01, 0.27661, 2, 14, 101.86, 18.84, 0.45956, 22, -14.39, 20.05, 0.54044, 2, 14, 106.48, 2.09, 0.0625, 22, 2.98, 20.56, 0.9375, 1, 22, 51.32, 21.99, 1, 1, 22, 60.41, 11.11, 1, 1, 22, 72.39, 9.62, 1, 1, 22, 100.37, -23.87, 1, 1, 22, 104.96, -40.9, 1, 1, 22, 78.37, -25.62, 1, 1, 22, 86.06, -56.84, 1, 1, 22, 52.92, -30.05, 1, 2, 14, 62.25, -43.93, 0.0625, 22, 37.19, -33.34, 0.9375, 2, 14, 64.89, -28.66, 0.3125, 22, 22.99, -27.14, 0.6875, 2, 14, 57.7, -27.17, 0.30612, 22, 19.84, -33.78, 0.69388, 2, 13, 124.19, 3.84, 0.19395, 14, -5.1, -14.24, 0.80605, 2, 13, 110.78, -19.65, 0.3125, 14, -16.89, 10.11, 0.6875, 2, 13, 99.15, -19.2, 0.51614, 14, -9.94, 19.44, 0.48386, 2, 13, 43.73, -17.04, 0.9375, 14, 23.18, 63.93, 0.0625, 1, 13, 35.41, -29.78, 1, 1, 13, -15.69, -28.02, 1, 1, 13, -13.88, 24.65, 1 ], + "hull": 25, + "edges": [ 44, 46, 44, 42, 38, 36, 32, 30, 30, 28, 28, 26, 24, 22, 18, 16, 16, 14, 46, 48, 38, 4, 6, 4, 6, 36, 42, 40, 40, 38, 4, 2, 2, 0, 40, 2, 10, 32, 36, 34, 34, 32, 10, 8, 8, 6, 34, 8, 14, 12, 12, 10, 12, 30, 18, 20, 22, 20, 26, 24, 48, 0 ], + "width": 163, + "height": 172 + } + }, + "raptor-body": { + "raptor-body": { + "type": "mesh", + "uvs": [ 0.88305, 0.02794, 0.91758, 0.05592, 0.9497, 0.09133, 0.97573, 0.13213, 0.99055, 0.17339, 0.99759, 0.22987, 0.99678, 0.27226, 0.99353, 0.31287, 0.9839, 0.38477, 0.97956, 0.35307, 0.96687, 0.38782, 0.96442, 0.34841, 0.94742, 0.38391, 0.94489, 0.33238, 0.9386, 0.34808, 0.93784, 0.32559, 0.92667, 0.34333, 0.92539, 0.31538, 0.91182, 0.34989, 0.90925, 0.28963, 0.89984, 0.27929, 0.87514, 0.33979, 0.86225, 0.40838, 0.87429, 0.45818, 0.84272, 0.50226, 0.81998, 0.59622, 0.81697, 0.68641, 0.81951, 0.7069, 0.78696, 0.82183, 0.74283, 0.91135, 0.68699, 0.97585, 0.6244, 1, 0.58849, 1, 0.51466, 1, 0.49121, 0.8368, 0.4727, 0.78488, 0.44707, 0.74644, 0.42472, 0.72176, 0.3966, 0.70938, 0.37043, 0.69548, 0.34684, 0.68416, 0.32377, 0.6759, 0.29877, 0.66711, 0.26827, 0.65566, 0.24021, 0.64447, 0.2154, 0.63308, 0.18745, 0.62026, 0.163, 0.61056, 0.13948, 0.60123, 0.11931, 0.59392, 0.09945, 0.58672, 0.08097, 0.5824, 0.06076, 0.58225, 0.04257, 0.58149, 0.02388, 0.58253, 0, 0.58455, 0, 0.56298, 0.0209, 0.55046, 0.03794, 0.53974, 0.05634, 0.52692, 0.0746, 0.51306, 0.09507, 0.49881, 0.11728, 0.48334, 0.1375, 0.46924, 0.16277, 0.45174, 0.18782, 0.43439, 0.21308, 0.4189, 0.23873, 0.40318, 0.26735, 0.38578, 0.2969, 0.36723, 0.32579, 0.35014, 0.35725, 0.33294, 0.37992, 0.3207, 0.41103, 0.31696, 0.44145, 0.29137, 0.47584, 0.28483, 0.49453, 0.31832, 0.5288, 0.35569, 0.60144, 0.41756, 0.65116, 0.41078, 0.70843, 0.42446, 0.7118, 0.2925, 0.70946, 0.19468, 0.70683, 0.08348, 0.76023, 0.01941, 0.79301, 0, 0.83875, 0, 0.02258, 0.5679, 0.04005, 0.56141, 0.05877, 0.55312, 0.07877, 0.54786, 0.09747, 0.5401, 0.12059, 0.53086, 0.14233, 0.52663, 0.16642, 0.52304, 0.19163, 0.52137, 0.2177, 0.51241, 0.24501, 0.50218, 0.27577, 0.49505, 0.30141, 0.49242, 0.3286, 0.49077, 0.3541, 0.49188, 0.38137, 0.49347, 0.40824, 0.49495, 0.44136, 0.50946, 0.47122, 0.53169, 0.49886, 0.56568, 0.53162, 0.60054, 0.60671, 0.67484, 0.6857, 0.67243, 0.7506, 0.59437, 0.76886, 0.46557, 0.7773, 0.34161, 0.77355, 0.22842, 0.8056, 0.09401, 0.86736, 0.07427, 0.90484, 0.17059, 0.9096, 0.19933, 0.91959, 0.21397, 0.93193, 0.20183, 0.93608, 0.17463, 0.92873, 0.1403, 0.91672, 0.13455, 0.90667, 0.14854, 0.91663, 0.09795, 0.89868, 0.09514, 0.88034, 0.09404, 0.9309, 0.11529, 0.93998, 0.15741, 0.94213, 0.17477, 0.94345, 0.19647, 0.94192, 0.20763, 0.92187, 0.22801, 0.9048, 0.23489, 0.8899, 0.19847, 0.8874, 0.16914, 0.87831, 0.12122, 0.585, 0.84243, 0.63024, 0.8646, 0.68284, 0.85192, 0.72923, 0.80453, 0.75898, 0.76323, 0.78513, 0.70347, 0.78536, 0.6783, 0.78141, 0.59277, 0.94721, 0.11131, 0.96236, 0.1618, 0.96367, 0.19318, 0.95806, 0.21052, 0.976, 0.16763, 0.98026, 0.22172, 0.98039, 0.26467, 0.97933, 0.31612, 0.96394, 0.25896, 0.95648, 0.31982, 0.9432, 0.24678, 0.93886, 0.28792 ], + "triangles": [ 108, 34, 107, 107, 34, 35, 106, 107, 35, 106, 35, 36, 105, 106, 36, 37, 105, 36, 78, 107, 77, 77, 107, 106, 76, 77, 106, 76, 106, 105, 110, 107, 78, 111, 22, 23, 22, 112, 21, 10, 11, 9, 8, 9, 7, 11, 12, 13, 11, 152, 9, 9, 152, 7, 13, 154, 11, 11, 154, 152, 13, 14, 15, 17, 18, 19, 16, 17, 15, 20, 21, 112, 112, 81, 113, 20, 112, 113, 13, 15, 154, 15, 17, 154, 152, 154, 156, 154, 17, 156, 152, 156, 151, 7, 152, 6, 151, 156, 153, 17, 19, 156, 6, 152, 151, 81, 82, 113, 19, 20, 156, 156, 20, 155, 155, 20, 133, 156, 155, 153, 155, 133, 132, 20, 113, 133, 133, 113, 134, 6, 151, 5, 5, 151, 150, 151, 153, 150, 153, 155, 150, 132, 131, 155, 155, 148, 150, 155, 131, 148, 133, 118, 132, 133, 117, 118, 133, 134, 117, 150, 4, 5, 113, 135, 134, 135, 114, 136, 135, 113, 114, 113, 82, 114, 131, 118, 119, 131, 132, 118, 148, 147, 150, 150, 147, 4, 118, 117, 119, 147, 149, 4, 131, 130, 148, 148, 130, 147, 131, 119, 130, 130, 120, 129, 130, 119, 120, 119, 117, 120, 134, 116, 117, 117, 116, 120, 116, 123, 120, 123, 121, 120, 123, 122, 121, 134, 135, 116, 130, 129, 147, 82, 83, 114, 129, 146, 147, 147, 146, 149, 120, 128, 129, 129, 128, 146, 120, 121, 128, 116, 135, 123, 135, 136, 123, 122, 123, 126, 126, 123, 136, 146, 3, 149, 4, 149, 3, 146, 128, 3, 145, 3, 128, 127, 145, 128, 127, 128, 121, 122, 125, 124, 125, 122, 126, 121, 122, 127, 122, 124, 127, 145, 2, 3, 136, 114, 126, 126, 114, 115, 145, 127, 2, 2, 127, 124, 2, 124, 1, 1, 124, 125, 1, 125, 115, 125, 126, 115, 83, 84, 114, 84, 85, 114, 114, 86, 115, 114, 85, 86, 115, 0, 1, 115, 86, 0, 24, 111, 23, 111, 112, 22, 111, 80, 112, 112, 80, 81, 30, 139, 29, 139, 140, 29, 29, 140, 28, 140, 108, 109, 140, 141, 28, 28, 141, 27, 27, 141, 142, 140, 109, 141, 141, 109, 142, 142, 26, 27, 142, 143, 26, 142, 109, 143, 26, 143, 25, 109, 110, 143, 110, 144, 143, 143, 144, 25, 109, 108, 110, 110, 79, 80, 79, 110, 78, 25, 144, 24, 110, 111, 144, 110, 80, 111, 144, 111, 24, 30, 31, 138, 138, 31, 32, 138, 32, 137, 32, 33, 137, 33, 34, 137, 138, 139, 30, 138, 137, 139, 139, 137, 140, 108, 140, 137, 137, 34, 108, 110, 108, 107, 104, 105, 37, 104, 37, 38, 38, 103, 104, 76, 105, 75, 105, 104, 75, 103, 73, 104, 104, 73, 74, 75, 104, 74, 38, 39, 103, 39, 102, 103, 40, 102, 39, 101, 102, 40, 73, 103, 72, 101, 71, 102, 72, 103, 102, 72, 102, 71, 101, 40, 41, 100, 101, 41, 100, 41, 42, 100, 42, 99, 69, 100, 99, 71, 101, 70, 69, 70, 100, 101, 100, 70, 42, 43, 99, 99, 43, 98, 43, 44, 98, 98, 44, 97, 98, 97, 67, 99, 98, 68, 68, 98, 67, 99, 68, 69, 44, 45, 97, 97, 45, 96, 45, 46, 96, 96, 46, 95, 96, 95, 65, 97, 96, 66, 96, 65, 66, 97, 66, 67, 46, 47, 95, 95, 47, 94, 47, 48, 94, 94, 48, 93, 94, 93, 63, 95, 94, 64, 94, 63, 64, 95, 64, 65, 48, 49, 93, 93, 49, 92, 92, 49, 91, 49, 50, 91, 91, 61, 92, 93, 92, 62, 92, 61, 62, 93, 62, 63, 50, 90, 91, 51, 89, 90, 50, 51, 90, 51, 52, 89, 89, 59, 90, 59, 60, 90, 90, 60, 91, 60, 61, 91, 55, 87, 54, 55, 56, 87, 54, 87, 53, 52, 88, 89, 87, 88, 53, 52, 53, 88, 56, 57, 87, 87, 57, 88, 57, 58, 88, 88, 58, 89, 58, 59, 89 ], + "vertices": [ 1, 8, 142.31, -163.1, 1, 1, 8, 129.87, -206.92, 1, 1, 8, 113.94, -247.72, 1, 1, 8, 95.41, -280.88, 1, 1, 8, 76.47, -299.85, 1, 1, 8, 50.32, -309.1, 1, 1, 8, 30.6, -308.34, 1, 1, 8, 11.66, -304.47, 1, 1, 8, -21.93, -292.74, 1, 1, 8, -7.26, -287.07, 1, 1, 8, -23.63, -271.23, 1, 1, 8, -5.35, -267.89, 1, 1, 8, -22.13, -246.63, 1, 1, 8, 1.79, -243.11, 1, 1, 8, -5.62, -235.26, 1, 1, 8, 4.82, -234.16, 1, 1, 8, -3.61, -220.15, 1, 1, 8, 9.36, -218.37, 1, 1, 8, -6.91, -201.42, 1, 1, 8, 21.07, -197.82, 1, 1, 8, 25.72, -185.86, 1, 2, 8, -2.82, -155.01, 0.648, 54, 99.81, 14.95, 0.352, 2, 8, -34.92, -139.14, 0.536, 54, 107.98, -19.92, 0.464, 2, 8, -57.88, -154.65, 0.552, 54, 134.55, -27.77, 0.448, 4, 6, 214.38, -86.5, 0.416, 7, 12.5, -126.76, 0.24294, 8, -78.89, -115.02, 0.17462, 54, 117.33, -69.19, 0.16644, 3, 6, 164.81, -103.2, 0.46938, 7, -35.73, -106.53, 0.34058, 54, 123.6, -121.11, 0.19004, 3, 6, 135.98, -133.89, 0.80096, 7, -77.65, -110.49, 0.11639, 54, 147.79, -155.59, 0.08264, 3, 6, 132.63, -143.37, 0.82428, 7, -86.43, -115.4, 0.10285, 54, 156.4, -160.78, 0.07287, 1, 6, 67.3, -160.11, 1, 2, 2, 226.09, -123.55, 0.23474, 6, -2.28, -158.53, 0.76526, 3, 2, 156.49, -155.76, 0.52831, 6, -76.36, -138.65, 0.37693, 1, 172.42, -169.15, 0.09477, 3, 2, 77.76, -169.48, 0.67731, 6, -145.59, -98.75, 0.09201, 1, 92.8, -175.99, 0.23068, 3, 2, 32.4, -170.91, 0.60686, 61, -141.38, 131.19, 0.07586, 1, 47.48, -173.48, 0.31728, 3, 2, -60.88, -173.87, 0.38324, 61, -55.62, 167.98, 0.21887, 1, -45.7, -168.32, 0.39789, 3, 2, -92.91, -98.95, 0.1876, 61, 1.54, 109.92, 0.4859, 1, -71.11, -90.91, 0.3265, 4, 62, -30.38, 104.17, 0.11817, 2, -117.05, -75.56, 0.05927, 61, 32.55, 96.96, 0.64839, 1, -93.12, -65.52, 0.17416, 3, 63, -54.56, 107.85, 0.06735, 62, 5.17, 93.91, 0.36034, 61, 69.37, 93.3, 0.57231, 3, 63, -26.17, 96.68, 0.19082, 62, 35.28, 88.98, 0.51174, 61, 99.87, 93.89, 0.29744, 4, 64, -55.58, 91.31, 0.07799, 63, 9.43, 91.31, 0.41358, 62, 71.21, 91.24, 0.42326, 61, 134.8, 102.61, 0.08518, 3, 64, -22.44, 85.2, 0.26281, 63, 42.57, 85.2, 0.51956, 62, 104.89, 92.27, 0.21763, 4, 65, -51.3, 84.41, 0.0571, 64, 7.44, 80.26, 0.49907, 63, 72.45, 80.26, 0.37109, 62, 135.14, 93.74, 0.07275, 3, 65, -22.46, 78.67, 0.21618, 64, 36.63, 76.74, 0.61839, 63, 101.64, 76.74, 0.16543, 2, 65, 8.81, 72.53, 0.54611, 64, 68.28, 72.99, 0.45389, 3, 66, -23.6, 64.7, 0.19291, 65, 46.93, 64.7, 0.70982, 64, 106.89, 68.09, 0.09727, 2, 66, 11.45, 57.2, 0.627, 65, 81.98, 57.2, 0.373, 2, 66, 42.4, 49.87, 0.91827, 65, 112.93, 49.87, 0.08173, 2, 67, 8.43, 41.3, 0.57837, 66, 77.27, 41.61, 0.42163, 1, 67, 38.69, 33.54, 1, 2, 68, 5.1, 25.99, 0.53675, 67, 67.79, 26.07, 0.46325, 1, 68, 29.98, 19.49, 1, 2, 69, -0.28, 13.08, 0.45935, 68, 54.48, 13.08, 0.54065, 1, 69, 22.77, 8.73, 1, 2, 70, -1, 6.11, 0.43721, 69, 48.17, 6.1, 0.56279, 1, 70, 21.83, 3.3, 1, 1, 70, 45.36, 1.27, 1, 1, 70, 75.48, -1.02, 1, 1, 70, 74.41, -10.99, 1, 1, 70, 47.53, -13.96, 1, 1, 70, 25.58, -16.62, 1, 2, 70, 1.81, -20.07, 0.53626, 69, 51.15, -20.06, 0.46374, 1, 69, 27.54, -24.16, 1, 2, 69, 1.14, -28.15, 0.51508, 68, 54.96, -28.17, 0.48492, 2, 68, 26.21, -31.86, 0.90506, 67, 89.88, -31.41, 0.09494, 2, 68, 0.04, -35.22, 0.44307, 67, 63.76, -35.22, 0.55693, 2, 67, 31.14, -39.93, 0.94421, 66, 103.28, -38.62, 0.05579, 2, 67, -1.2, -44.59, 0.49116, 66, 71.16, -44.6, 0.50884, 3, 67, -33.71, -48.36, 0.07828, 66, 38.83, -49.7, 0.85291, 65, 109.36, -49.7, 0.06881, 2, 66, 6, -54.89, 0.55934, 65, 76.53, -54.89, 0.44066, 3, 66, -30.62, -60.6, 0.1151, 65, 39.91, -60.6, 0.77179, 64, 109.41, -57.39, 0.11311, 2, 65, 2.07, -66.77, 0.55035, 64, 72.15, -66.42, 0.44965, 3, 65, -34.88, -72.32, 0.18232, 64, 35.73, -74.76, 0.57653, 63, 100.73, -74.76, 0.24115, 3, 64, -3.96, -83.19, 0.3735, 63, 61.05, -83.19, 0.55244, 62, 158.49, -68.43, 0.07406, 3, 64, -32.54, -89.19, 0.18318, 63, 32.47, -89.19, 0.60103, 62, 131.82, -80.33, 0.21578, 2, 63, -6.84, -91.35, 0.45056, 62, 93.85, -90.74, 0.54944, 3, 63, -45.16, -103.67, 0.18109, 62, 58.99, -110.86, 0.64678, 61, 159.33, -98.37, 0.17213, 3, 63, -88.59, -107.18, 0.06648, 62, 17.28, -123.46, 0.59371, 61, 120.58, -118.3, 0.33982, 3, 62, -9.21, -113.51, 0.47579, 2, -96.32, 142.15, 0.06216, 61, 92.73, -113.3, 0.46205, 3, 62, -55.3, -106.16, 0.18947, 2, -52.49, 126.15, 0.211, 61, 46.08, -114.41, 0.59953, 3, 2, 40.2, 100.3, 0.70054, 6, -1.56, 132.44, 0.1247, 61, -49.65, -124.17, 0.17476, 2, 2, 102.91, 105.44, 0.48476, 6, 49.88, 96.2, 0.51524, 2, 6, 102.97, 46.59, 0.55391, 7, 16.89, 46.74, 0.44609, 2, 7, 77.99, 53.82, 0.34839, 8, 16.46, 51.73, 0.65161, 1, 8, 61.91, 55.28, 1, 1, 8, 113.57, 59.28, 1, 1, 8, 144.24, -7.82, 1, 1, 8, 153.81, -49.13, 1, 1, 8, 154.57, -106.94, 1, 1, 70, 46.28, -5.67, 1, 1, 70, 24, -6.32, 1, 2, 70, 0.06, -7.63, 0.51043, 69, 49.31, -7.63, 0.48957, 1, 69, 23.92, -7.52, 1, 2, 69, 0.04, -8.74, 0.50854, 68, 54.3, -8.74, 0.49146, 1, 68, 24.78, -9.42, 1, 2, 68, -2.74, -7.99, 0.3706, 67, 60.53, -8.04, 0.6294, 1, 67, 30.07, -6.47, 1, 2, 67, -1.7, -3.86, 0.44024, 66, 68.99, -3.93, 0.55976, 1, 66, 35.83, -5.93, 1, 2, 66, 1.08, -8.43, 0.54293, 65, 71.61, -8.43, 0.45707, 1, 65, 32.59, -9.2, 1, 2, 65, 0.17, -8.31, 0.51547, 64, 65.82, -8.27, 0.48453, 1, 64, 31.46, -9.41, 1, 2, 64, -0.78, -9.24, 0.46357, 63, 64.23, -9.24, 0.53643, 1, 63, 29.76, -8.87, 1, 2, 63, -4.21, -8.55, 0.36579, 62, 78.95, -9.25, 0.63421, 1, 62, 36.63, -11.94, 1, 2, 62, -2.46, -10.23, 0.43368, 61, 80.69, -10.51, 0.56632, 1, 61, 42.35, -9.75, 1, 2, 61, -2.09, -11.18, 0.90336, 1, -14.03, 15.96, 0.09664, 1, 2, 50.64, -19.06, 1, 2, 2, 150.39, -14.78, 0.14978, 6, 9.3, -26.52, 0.85022, 2, 6, 96.28, -48.49, 0.94283, 7, -50.98, -20.17, 0.05717, 3, 6, 151.36, -15.54, 0.20351, 7, 12.13, -31.86, 0.68534, 54, 35.04, -116.47, 0.11116, 3, 7, 70.75, -31.76, 0.49957, 8, -5.28, -31.36, 0.22959, 54, 5.95, -65.58, 0.27084, 2, 8, 47.28, -25.92, 0.69253, 54, -31.67, -28.46, 0.30747, 2, 8, 110.31, -65.62, 0.816, 54, -41.11, 45.43, 0.184, 1, 8, 120.51, -143.55, 1, 1, 8, 76.35, -191.51, 1, 1, 8, 63.06, -197.7, 1, 1, 8, 56.42, -210.42, 1, 1, 8, 62.27, -225.94, 1, 1, 8, 74.99, -231.02, 1, 1, 8, 90.83, -221.52, 1, 1, 8, 93.3, -206.31, 1, 1, 8, 86.63, -193.69, 1, 1, 8, 110.32, -205.97, 1, 1, 8, 111.33, -183.27, 1, 1, 8, 111.53, -160.07, 1, 1, 8, 102.49, -224.1, 1, 1, 8, 83.06, -235.84, 1, 1, 8, 75.02, -238.67, 1, 1, 8, 64.95, -240.47, 1, 1, 8, 59.74, -238.59, 1, 1, 8, 49.93, -213.38, 1, 1, 8, 46.45, -191.85, 1, 1, 8, 63.13, -172.79, 1, 1, 8, 76.73, -169.46, 1, 1, 8, 98.86, -157.68, 1, 3, 2, 25.68, -97.82, 0.63735, 61, -108.45, 65.59, 0.06216, 1, 47.13, -100.08, 0.30049, 3, 2, 83.15, -106.32, 0.72603, 6, -100.98, -53.7, 0.09811, 1, 103.65, -113.53, 0.17585, 3, 2, 149.42, -98.32, 0.50192, 6, -44.98, -90.03, 0.42892, 1, 170.36, -111.32, 0.06917, 2, 2, 207.34, -74.44, 0.18186, 6, 14.79, -108.81, 0.81814, 2, 2, 244.31, -54.06, 0.05649, 6, 56.23, -116.86, 0.94351, 2, 6, 99.39, -115.34, 0.92692, 7, -92.84, -72.39, 0.07308, 3, 6, 106.83, -106.29, 0.84981, 7, -81.28, -70.52, 0.08915, 54, 114.85, -178.52, 0.06104, 3, 6, 127.4, -71.89, 0.69944, 7, -43.11, -58.31, 0.19328, 54, 85.35, -151.38, 0.10728, 1, 8, 104.61, -244.7, 1, 1, 8, 81.39, -264.16, 1, 1, 8, 66.82, -266.01, 1, 1, 8, 58.66, -259.02, 1, 1, 8, 78.9, -281.43, 1, 1, 8, 53.83, -287.14, 1, 1, 8, 33.86, -287.57, 1, 1, 8, 9.92, -286.55, 1, 1, 8, 36.24, -266.75, 1, 1, 8, 7.82, -257.69, 1, 1, 8, 41.56, -240.46, 1, 1, 8, 22.36, -235.22, 1 ], + "hull": 87, + "edges": [ 110, 108, 108, 106, 106, 104, 104, 102, 102, 100, 88, 86, 86, 84, 84, 82, 82, 80, 80, 78, 78, 76, 76, 74, 74, 72, 72, 70, 70, 68, 68, 66, 110, 112, 112, 114, 114, 116, 116, 118, 118, 120, 120, 122, 96, 98, 98, 100, 92, 94, 94, 96, 88, 90, 90, 92, 126, 128, 128, 130, 130, 132, 132, 134, 134, 136, 136, 138, 138, 140, 140, 142, 142, 144, 144, 146, 146, 148, 148, 150, 150, 152, 152, 154, 122, 124, 124, 126, 174, 176, 176, 178, 178, 180, 180, 182, 182, 184, 184, 186, 186, 188, 188, 190, 190, 192, 192, 194, 194, 196, 196, 198, 198, 200, 200, 202, 202, 204, 130, 190, 132, 192, 128, 188, 126, 186, 124, 184, 122, 182, 120, 180, 118, 178, 116, 176, 90, 192, 92, 190, 94, 188, 96, 186, 98, 184, 100, 182, 102, 180, 104, 178, 106, 176, 134, 194, 136, 196, 88, 194, 86, 196, 198, 84, 82, 200, 202, 80, 78, 204, 206, 76, 74, 208, 72, 210, 212, 70, 68, 214, 198, 138, 140, 200, 142, 202, 144, 204, 146, 206, 208, 148, 150, 210, 152, 212, 154, 214, 64, 66, 62, 64, 62, 60, 60, 58, 58, 56, 56, 54, 54, 52, 52, 50, 50, 48, 48, 46, 46, 44, 44, 42, 42, 40, 40, 38, 38, 36, 36, 34, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 22, 20, 20, 18, 18, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 0, 172, 170, 172, 170, 168, 168, 166, 166, 164, 164, 162, 162, 160, 160, 158, 158, 156, 156, 154, 232, 234, 234, 236, 236, 238, 238, 240, 240, 242, 242, 244, 244, 246, 246, 232, 248, 250, 250, 252, 248, 254, 254, 256, 256, 258, 258, 260, 260, 262, 262, 264, 264, 266, 266, 268, 268, 270, 270, 272 ], + "width": 1264, + "height": 465 + } + }, + "raptor-front-arm": { + "raptor-front-arm": { + "type": "mesh", + "uvs": [ 0.39563, 0.1396, 0.38771, 0.30213, 0.31231, 0.41784, 0.27287, 0.47836, 0.33389, 0.4507, 0.5488, 0.35329, 0.64093, 0.31153, 0.73024, 0.3653, 1, 0.5277, 1, 0.86607, 0.93243, 1, 0.86176, 0.80967, 0.75576, 0.99765, 0.71748, 1, 0.70276, 0.77443, 0.62032, 0.73448, 0.58793, 0.64519, 0.53561, 0.6582, 0.13449, 0.75798, 0, 0.69219, 0.01846, 0.56358, 0.05499, 0.30918, 0, 0.27863, 0, 0.12423, 0, 0, 0.19596, 0, 0.40243, 0, 0.24536, 0.19241, 0.21679, 0.0811 ], + "triangles": [ 10, 11, 9, 13, 14, 12, 12, 14, 11, 11, 8, 9, 11, 14, 8, 8, 14, 7, 7, 14, 15, 15, 16, 7, 6, 16, 5, 6, 7, 16, 18, 4, 17, 18, 3, 4, 18, 19, 3, 16, 17, 5, 17, 4, 5, 28, 25, 26, 27, 22, 23, 19, 20, 3, 3, 20, 2, 2, 20, 21, 2, 21, 1, 21, 27, 1, 21, 22, 27, 1, 27, 0, 27, 23, 28, 27, 28, 0, 23, 24, 25, 23, 25, 28, 0, 28, 26 ], + "vertices": [ 2, 38, 9.24, 26.77, 0.808, 6, 85.19, -98.03, 0.192, 1, 38, 35.87, 35.63, 1, 2, 38, 61.98, 28.62, 0.84641, 39, 40.04, 38.85, 0.15359, 2, 38, 77.67, 27.28, 0.34921, 39, 34.62, 24.06, 0.65079, 3, 38, 73.77, 39.05, 0.10938, 39, 47.01, 24.74, 0.78124, 48, -42.17, -19.42, 0.10938, 2, 39, 86.98, 31.25, 0.65079, 48, -25.75, 17.61, 0.34921, 2, 39, 103.84, 34.49, 0.34375, 48, -19.24, 33.5, 0.65625, 2, 39, 114.05, 19.51, 0.10938, 48, -1.12, 33.84, 0.89062, 1, 48, 53.62, 34.88, 1, 1, 48, 96.03, -19.16, 1, 1, 48, 104.2, -47.32, 1, 1, 48, 71.34, -23.98, 1, 1, 48, 81.39, -64.61, 1, 1, 48, 76.81, -68.82, 1, 1, 48, 46.66, -34.26, 1, 2, 39, 73.14, -45.77, 0.10938, 48, 31.14, -36.12, 0.89062, 2, 39, 73.98, -26.91, 0.34375, 48, 15.82, -25.1, 0.65625, 2, 39, 65.11, -26.69, 0.65079, 48, 10.78, -32.4, 0.34921, 3, 38, 134.76, 4.51, 0.10938, 39, -2.35, -25.03, 0.78124, 48, -27.52, -87.96, 0.10938, 2, 38, 121.45, -16.1, 0.34921, 39, -18.74, -6.77, 0.65079, 2, 38, 96.94, -14.98, 0.84641, 39, -11.21, 16.58, 0.15359, 1, 38, 45.47, -17.43, 1, 1, 38, 47.64, -32.91, 1, 2, 38, 12.11, -34.27, 0.536, 6, 40.33, -56.53, 0.464, 2, 38, -2.57, -46.21, 0.536, 6, 42.42, -37.73, 0.464, 2, 38, -7.4, -14.83, 0.472, 6, 67.87, -56.7, 0.528, 2, 38, -12.49, 18.22, 0.664, 6, 94.68, -76.69, 0.336, 1, 38, 18.79, 4.26, 1, 2, 38, 0.95, -1.4, 0.512, 6, 71.34, -72.13, 0.488 ], + "hull": 27, + "edges": [ 38, 36, 32, 30, 30, 28, 28, 26, 24, 26, 24, 22, 22, 20, 20, 18, 18, 16, 44, 42, 38, 6, 38, 40, 40, 42, 6, 4, 4, 2, 40, 4, 8, 6, 36, 8, 32, 12, 42, 2, 52, 0, 0, 2, 16, 14, 14, 12, 30, 14, 36, 34, 34, 32, 12, 10, 10, 8, 34, 10, 48, 50, 50, 52, 44, 46, 46, 48, 50, 56, 56, 54 ], + "width": 162, + "height": 203 + } + }, + "raptor-front-leg": { + "raptor-front-leg": { + "type": "mesh", + "uvs": [ 0.55117, 0.17818, 0.6279, 0.36027, 0.66711, 0.4533, 0.6488, 0.51528, 0.53554, 0.56894, 0.32335, 0.66947, 0.28674, 0.72087, 0.32539, 0.80401, 0.36258, 0.80144, 0.42056, 0.79744, 0.61015, 0.78436, 0.73352, 0.81335, 0.84813, 0.84029, 1, 0.93855, 0.732, 0.92345, 0.62439, 0.91738, 0.72813, 1, 0.58574, 1, 0.47086, 0.98249, 0.36708, 0.96668, 0.26307, 0.95082, 0.16267, 0.93552, 0.03859, 0.72238, 0, 0.66947, 0.0374, 0.62999, 0.1647, 0.49563, 0.23732, 0.45681, 0.2702, 0.43923, 0.28064, 0.43365, 0.223, 0.40571, 0.12565, 0.35851, 0, 0.2976, 0, 0.1524, 0, 0, 0.32132, 0, 0.32222, 0.22778, 0.44931, 0.38031, 0.47664, 0.44362, 0.4615, 0.47375, 0.35106, 0.53247, 0.20091, 0.65257, 0.18528, 0.72148, 0.25222, 0.86314, 0.30942, 0.88124, 0.55694, 0.89613, 0.55858, 0.89208, 0.47493, 0.8534, 0.6059, 0.91526, 0.39706, 0.8913, 0.1323, 0.09352, 0.36997, 0.45346, 0.37163, 0.43828, 0.32516, 0.39424, 0.2376, 0.34426, 0.34066, 0.47415, 0.51677, 0.90503, 0.07821, 0.26333, 0.05796, 0.13086, 0.09601, 0.05963, 0.29303, 0.03825 ], + "triangles": [ 14, 12, 13, 14, 11, 12, 14, 15, 11, 11, 15, 10, 55, 44, 47, 44, 45, 47, 10, 15, 45, 15, 47, 45, 55, 46, 44, 44, 46, 45, 45, 46, 10, 46, 9, 10, 48, 9, 46, 48, 8, 9, 16, 17, 15, 17, 47, 15, 18, 55, 17, 17, 55, 47, 19, 48, 18, 18, 48, 55, 20, 43, 19, 19, 43, 48, 48, 46, 55, 48, 43, 8, 21, 42, 20, 20, 42, 43, 21, 41, 42, 21, 22, 41, 43, 7, 8, 43, 42, 7, 42, 6, 7, 42, 41, 6, 23, 24, 22, 22, 24, 41, 41, 40, 6, 41, 24, 40, 6, 40, 5, 5, 39, 4, 5, 40, 39, 39, 26, 54, 39, 40, 26, 24, 25, 40, 40, 25, 26, 39, 38, 4, 4, 38, 3, 39, 50, 38, 39, 54, 50, 38, 37, 3, 3, 37, 2, 26, 27, 54, 54, 27, 50, 50, 51, 38, 38, 51, 37, 27, 28, 50, 50, 28, 51, 32, 57, 56, 56, 57, 49, 32, 33, 57, 57, 58, 49, 57, 33, 58, 49, 58, 59, 59, 58, 34, 34, 58, 33, 59, 34, 0, 37, 1, 2, 51, 36, 37, 37, 36, 1, 28, 52, 51, 51, 52, 36, 28, 29, 52, 29, 53, 52, 29, 30, 53, 36, 52, 35, 52, 53, 35, 36, 0, 1, 36, 35, 0, 31, 56, 30, 30, 56, 53, 53, 56, 35, 31, 32, 56, 56, 49, 35, 49, 59, 35, 35, 59, 0 ], + "vertices": [ 2, 42, 128.03, 88.47, 0.85041, 1, 158.83, -71.92, 0.14959, 2, 42, 219.55, 53.15, 0.77988, 43, -48.05, -38.59, 0.22012, 2, 42, 266.31, 35.11, 0.53545, 43, -36.73, 10.22, 0.46455, 2, 42, 286.89, 9.8, 0.35167, 43, -14.56, 34.15, 0.64833, 2, 42, 281.55, -41.24, 0.09228, 43, 36.71, 36, 0.90772, 3, 42, 271.54, -136.86, 0.05787, 43, 132.77, 39.48, 0.71426, 44, 35, 78.76, 0.22788, 3, 43, 158.22, 55.17, 0.5308, 44, 52.66, 54.64, 0.38143, 45, 7.02, 85.54, 0.08776, 4, 43, 167.14, 99.49, 0.22977, 44, 97.55, 49.25, 0.37788, 45, 28.72, 45.88, 0.15198, 46, -21.26, 49.99, 0.24037, 4, 44, 102.57, 62.61, 0.26558, 45, 42.51, 49.56, 0.17568, 46, -7.07, 51.4, 0.22874, 47, -58.17, 28.03, 0.33001, 4, 44, 109.72, 83.4, 0.11934, 45, 64.09, 55.24, 0.13984, 46, 15.13, 53.52, 0.16668, 47, -36.1, 31.19, 0.57414, 1, 47, 35.81, 41.81, 1, 1, 47, 83.66, 29.43, 1, 1, 47, 128.11, 17.93, 1, 1, 47, 188.73, -29.42, 1, 2, 46, 145.37, -10.99, 0.34248, 47, 84.02, -27.11, 0.65752, 2, 46, 93.3, -7.6, 0.48, 47, 44.87, -26.18, 0.52, 2, 46, 133.18, -49.83, 0.776, 47, 86.69, -66.48, 0.224, 2, 46, 78.79, -50.15, 0.768, 47, 32.38, -69.36, 0.232, 2, 46, 35.36, -41.46, 0.88989, 47, -9.88, -62.73, 0.11011, 1, 46, -4.92, -33.56, 1, 3, 44, 155.05, -5.14, 0.35918, 45, 17.88, -32.51, 0.30633, 46, -44.62, -25.61, 0.3345, 4, 43, 254.98, 126.28, 0.10155, 44, 131.22, -36.21, 0.54212, 45, -21.25, -31.18, 0.20873, 46, -83.02, -17.98, 0.1476, 3, 43, 240.34, 7.81, 0.25587, 44, 11.94, -30.99, 0.61615, 45, -86.32, 68.91, 0.12798, 2, 43, 239.27, -23.1, 0.45486, 44, -18.96, -32.37, 0.54514, 3, 42, 187.65, -209.74, 0.09777, 43, 216.67, -33.36, 0.58893, 44, -30.98, -10.65, 0.3133, 2, 42, 163.86, -128.68, 0.19603, 43, 139.75, -68.26, 0.80397, 2, 42, 165.75, -94.49, 0.31963, 43, 105.59, -71.26, 0.68037, 2, 42, 166.4, -79.07, 0.46225, 43, 90.23, -72.77, 0.53775, 2, 42, 166.49, -74.17, 0.53786, 43, 85.43, -73.29, 0.46214, 2, 42, 141.54, -82.47, 0.73138, 43, 97.13, -96.82, 0.26862, 2, 42, 99.76, -97.08, 0.85324, 43, 117.34, -136.23, 0.14676, 2, 42, 45.01, -114.56, 0.83615, 1, -51.09, -135.29, 0.16385, 1, 1, -42.95, -58.39, 1, 1, 1, -52.66, 17.56, 1, 1, 1, 70.07, 18.78, 1, 1, 42, 93.55, 4.14, 1, 2, 42, 185.14, -6.67, 0.75462, 43, 15.99, -64.28, 0.24539, 2, 42, 217.11, -18.75, 0.50845, 43, 23.47, -30.93, 0.49155, 2, 42, 225.64, -32.92, 0.32528, 43, 36.31, -20.51, 0.67472, 2, 42, 223, -84.74, 0.20193, 43, 87.97, -15.86, 0.79807, 3, 42, 235.62, -168.07, 0.08091, 43, 168.7, 8.29, 0.57148, 44, 6.75, 40.47, 0.34761, 3, 43, 191.8, 35.81, 0.32545, 44, 36.01, 19.63, 0.57243, 45, -31.15, 78.74, 0.10211, 4, 43, 206.64, 111.54, 0.10808, 44, 112.69, 10.83, 0.52068, 45, 6.26, 11.23, 0.23518, 46, -49.03, 19.43, 0.13606, 3, 44, 130.61, 26.42, 0.35068, 45, 29.36, 5.72, 0.28241, 46, -27.13, 10.26, 0.36691, 2, 46, 67.47, 3.17, 0.384, 47, 18.56, -16.63, 0.616, 1, 47, 19.07, -14.52, 1, 2, 46, 36.01, 24.95, 0.384, 47, -13.89, 3.64, 0.616, 2, 46, 86.23, -6.55, 0.488, 47, 37.76, -25.46, 0.512, 4, 44, 151.19, 56, 0.22879, 45, 65.44, 5.56, 0.18425, 46, 8.45, 4.28, 0.45492, 47, 0, 0, 0.13205, 2, 42, -9.28, -17.51, 0.22806, 1, 7.72, -30.86, 0.77194, 2, 42, 195.91, -53.82, 0.42369, 43, 61.12, -47.06, 0.57631, 2, 42, 190.1, -48.45, 0.53231, 43, 56.62, -53.56, 0.46769, 2, 42, 161.27, -48.26, 0.79874, 43, 60.44, -82.13, 0.20126, 2, 42, 120.38, -58.54, 0.85455, 43, 76.31, -121.19, 0.14545, 2, 42, 197.37, -69.23, 0.3355, 43, 76.18, -43.47, 0.6645, 4, 44, 167.22, 97.41, 0.10303, 45, 97.38, 0.84, 0.08297, 46, 54.09, -2.79, 0.51764, 47, 4.74, -23.22, 0.29636, 2, 42, 49.5, -83.17, 0.71382, 1, -17.26, -114.16, 0.28617, 2, 42, -9.83, -51.31, 0.41882, 1, -21.43, -46.95, 0.58118, 2, 42, -31.44, -20.43, 0.27617, 1, -6.57, -12.31, 0.72383, 2, 42, 0.92, 47.46, 0.41417, 1, 68.18, -4.06, 0.58583 ], + "hull": 35, + "edges": [ 46, 44, 44, 42, 32, 34, 32, 30, 26, 24, 14, 12, 12, 10, 6, 4, 66, 68, 0, 68, 46, 48, 48, 50, 40, 42, 16, 14, 58, 56, 4, 2, 2, 0, 10, 8, 8, 6, 78, 80, 80, 82, 82, 84, 84, 86, 86, 96, 16, 18, 18, 20, 38, 40, 62, 64, 64, 66, 100, 102, 102, 104, 58, 60, 60, 62, 106, 104, 54, 56, 50, 52, 52, 54, 108, 100, 78, 76, 76, 74, 72, 74, 72, 70, 70, 98, 92, 90, 56, 102, 100, 54, 52, 108, 58, 104, 60, 106, 76, 6, 74, 4, 72, 2, 78, 8, 92, 20, 92, 88, 88, 94, 90, 30, 94, 30, 26, 28, 28, 30, 20, 22, 22, 24, 28, 22, 34, 36, 36, 38, 94, 110, 110, 96, 36, 110, 110, 88, 60, 112, 112, 114, 114, 116, 116, 118, 118, 0 ], + "width": 382, + "height": 514 + } + }, + "raptor-hindleg-back": { + "raptor-hindleg-back": { + "type": "mesh", + "uvs": [ 0.45041, 0.09352, 0.56934, 0.23361, 0.65294, 0.47297, 0.66354, 0.50822, 0.63175, 0.54255, 0.32384, 0.69723, 0.30069, 0.73876, 0.27934, 0.77704, 0.30417, 0.83513, 0.31059, 0.85014, 0.34101, 0.85047, 0.45165, 0.85164, 0.59556, 0.81882, 0.91177, 0.92548, 1, 1, 0.56337, 0.96427, 0.4835, 0.98261, 0.29879, 0.98027, 0.22808, 0.98389, 0.15998, 0.98738, 0.15424, 0.95547, 0.13895, 0.87048, 0.07371, 0.78726, 0, 0.753, 0, 0.7049, 0, 0.671, 0.11876, 0.64653, 0.16535, 0.5266, 0.28496, 0.47398, 0.29011, 0.45774, 0.29427, 0.4446, 0.20635, 0.40396, 0.06129, 0.33691, 0, 0.25247, 0, 0, 0.30793, 0, 0.276, 0.20262, 0.40398, 0.31122, 0.48439, 0.45964, 0.48318, 0.48384, 0.47029, 0.51062, 0.22698, 0.67328, 0.17142, 0.7242, 0.17122, 0.78242, 0.22996, 0.89469, 0.24677, 0.90829, 0.28672, 0.9146, 0.46583, 0.91414 ], + "triangles": [ 15, 47, 12, 15, 12, 13, 16, 47, 15, 15, 13, 14, 47, 11, 12, 47, 46, 10, 47, 10, 11, 17, 46, 47, 17, 47, 16, 18, 45, 46, 18, 46, 17, 22, 23, 24, 43, 42, 7, 43, 22, 42, 21, 22, 43, 44, 43, 7, 44, 7, 8, 44, 8, 9, 21, 43, 44, 45, 44, 9, 46, 45, 9, 46, 9, 10, 20, 21, 44, 20, 45, 19, 44, 45, 20, 45, 18, 19, 40, 29, 39, 28, 29, 40, 40, 39, 4, 41, 27, 28, 26, 27, 41, 41, 28, 40, 5, 41, 40, 5, 40, 4, 24, 25, 26, 42, 26, 41, 24, 26, 42, 6, 41, 5, 42, 41, 6, 7, 42, 6, 24, 42, 22, 36, 34, 35, 36, 35, 0, 33, 34, 36, 37, 36, 0, 37, 0, 1, 32, 33, 36, 31, 32, 36, 31, 36, 37, 30, 31, 37, 38, 37, 1, 30, 37, 38, 38, 1, 2, 39, 30, 38, 39, 38, 2, 29, 30, 39, 39, 2, 3, 4, 39, 3 ], + "vertices": [ 1, 17, 53.94, 69.16, 1, 1, 17, 126.23, 67.31, 1, 2, 17, 226.42, 31.14, 0.9375, 18, -30.88, -1.11, 0.0625, 2, 17, 240.84, 25.33, 0.7, 18, -25.65, 13.52, 0.3, 2, 17, 246.67, 8.06, 0.3, 18, -8.61, 20.02, 0.7, 3, 17, 240.82, -115.25, 0.0625, 18, 114.81, 19.01, 0.875, 19, 9.48, 59.16, 0.0625, 2, 18, 131.07, 29.69, 0.7, 19, 22.12, 44.36, 0.3, 2, 18, 146.07, 39.54, 0.3, 19, 33.76, 30.71, 0.7, 3, 18, 152.6, 65.01, 0.12567, 19, 59.85, 27.41, 0.75203, 20, 15.86, 48.05, 0.1223, 2, 19, 66.6, 26.56, 0.82916, 20, 16.73, 41.31, 0.17084, 3, 19, 71.2, 35.76, 0.64716, 20, 26.79, 39.17, 0.1317, 21, -67.33, 18.96, 0.22114, 3, 19, 87.93, 69.21, 0.0625, 20, 63.37, 31.39, 0.675, 21, -30.18, 23.3, 0.2625, 2, 20, 113.82, 35.72, 0.10381, 21, 16.23, 43.56, 0.89619, 1, 21, 128.14, 12.02, 1, 1, 21, 161.85, -15.82, 1, 1, 21, 13.52, -19.72, 1, 2, 20, 62.98, -25.82, 0.7, 21, -12.23, -31.02, 0.3, 3, 19, 115.12, -1.34, 0.08333, 20, 1.94, -12.66, 0.83333, 21, -74.27, -38.11, 0.08333, 2, 19, 106.11, -23.53, 0.3, 20, -21.81, -9.53, 0.7, 2, 19, 97.44, -44.91, 0.7, 20, -44.67, -6.51, 0.3, 2, 19, 84.26, -40.69, 0.9375, 20, -43.91, 7.3, 0.0625, 1, 19, 49.19, -29.47, 1, 2, 18, 206.75, 5.37, 0.13333, 19, 7.44, -33.78, 0.86667, 2, 18, 219.64, -20.52, 0.36111, 19, -16.64, -49.81, 0.63889, 2, 18, 208.41, -37.83, 0.72083, 19, -35.22, -40.82, 0.27917, 2, 18, 200.49, -50.03, 0.91667, 19, -48.31, -34.49, 0.08333, 1, 18, 161.11, -36.98, 1, 2, 17, 150.1, -116.77, 0.08333, 18, 119.88, -71.55, 0.91667, 2, 17, 154.99, -70.72, 0.42846, 18, 73.68, -68.48, 0.57154, 2, 17, 150.31, -65.27, 0.35605, 18, 68.43, -73.37, 0.64395, 2, 17, 146.52, -60.87, 0.59148, 18, 64.18, -77.33, 0.40852, 2, 17, 115.13, -75.09, 0.8446, 18, 79.61, -108.13, 0.1554, 1, 17, 63.33, -98.54, 1, 1, 17, 21.78, -94.56, 1, 1, 17, -66.69, -32.05, 1, 1, 17, -6.63, 52.97, 1, 1, 17, 58.15, -6.01, 1, 1, 17, 121.17, 2.44, 1, 1, 17, 188.87, -12.1, 1, 2, 17, 197.12, -18.43, 0.7, 18, 19.79, -28.44, 0.3, 2, 17, 203.99, -28.62, 0.3, 18, 29.7, -21.18, 0.7, 1, 18, 136.67, -7.43, 1, 2, 18, 164.32, 0.67, 0.7, 19, -2.53, 7.74, 0.3, 2, 18, 177.98, 21.58, 0.25, 19, 19.92, -3.2, 0.75, 1, 19, 71.94, -6.3, 1, 2, 19, 79.66, -3.72, 0.7, 20, -9.29, 21.05, 0.3, 2, 19, 87.98, 7.26, 0.3125, 20, 3.43, 15.76, 0.6875, 2, 20, 62.84, 4.16, 0.72917, 21, -21.96, -2.67, 0.27083 ], + "hull": 36, + "edges": [ 66, 68, 66, 64, 56, 54, 54, 52, 52, 50, 46, 44, 44, 42, 34, 32, 32, 30, 30, 28, 28, 26, 26, 24, 24, 22, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 68, 70, 0, 70, 46, 48, 48, 50, 14, 12, 12, 10, 60, 58, 58, 56, 42, 40, 40, 38, 18, 16, 16, 14, 22, 20, 20, 18, 38, 36, 36, 34, 60, 62, 62, 64, 68, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 16, 88, 86, 88, 18, 90, 90, 38, 88, 90, 20, 92, 92, 36, 90, 92, 92, 94, 94, 22, 94, 32, 30, 24, 88, 40, 86, 14, 84, 12, 82, 10, 82, 52, 48, 84, 44, 86, 78, 6, 4, 76, 80, 8, 80, 56, 58, 78, 76, 60 ], + "width": 338, + "height": 429 + } + }, + "raptor-horn": { + "raptor-horn": { "x": 156.21, "y": 74.11, "rotation": -137.26, "width": 363, "height": 159 } + }, + "raptor-horn-back": { + "raptor-horn-back": { "x": 121.43, "y": 83.01, "rotation": -132.22, "width": 351, "height": 153 } + }, + "raptor-jaw": { + "raptor-jaw": { + "type": "mesh", + "uvs": [ 0.43611, 0.10281, 0.50457, 0.26446, 0.59673, 0.37777, 0.69416, 0.49754, 0.79771, 0.54917, 0.91149, 0.59812, 1, 0.63619, 0.99305, 0.85625, 0.67606, 1, 0.39521, 1, 0.19457, 0.89404, 0.2161, 0.6497, 0, 0.46112, 0, 0, 0.26125, 1.0E-5, 0.19457, 0.29385, 0.60678, 0.81243, 0.42896, 0.88938, 0.86006, 0.80271, 0.64788, 0.93008, 0.58349, 0.62419, 0.41196, 0.69752, 0.46153, 0.51921, 0.35989, 0.3664, 0.32564, 0.54238 ], + "triangles": [ 15, 13, 14, 12, 13, 15, 15, 14, 0, 23, 15, 0, 1, 23, 0, 2, 22, 23, 2, 23, 1, 22, 2, 3, 24, 15, 23, 24, 23, 22, 12, 15, 24, 20, 22, 3, 11, 12, 24, 21, 24, 22, 21, 22, 20, 11, 24, 21, 18, 4, 5, 18, 5, 6, 16, 4, 18, 4, 20, 3, 4, 16, 20, 21, 20, 16, 7, 18, 6, 17, 21, 16, 10, 11, 21, 10, 21, 17, 19, 16, 18, 17, 16, 19, 9, 10, 17, 8, 19, 18, 9, 17, 19, 8, 9, 19, 8, 18, 7 ], + "vertices": [ 1, 54, 28.47, 75.44, 1, 1, 54, 66.98, 65.83, 1, 1, 54, 98.09, 68.86, 1, 1, 54, 130.98, 72.06, 1, 1, 54, 159.14, 77.75, 1, 1, 54, 184.6, 91.13, 1, 1, 54, 204.41, 101.54, 1, 1, 54, 239.23, 68.91, 1, 1, 54, 229.24, 2.68, 1, 1, 54, 173.67, -58.3, 1, 1, 54, 125.49, -79.1, 1, 1, 54, 87.8, -40.51, 1, 2, 54, -5.59, -78.2, 0.32267, 8, -21.32, -18.84, 0.67733, 1, 8, 106.45, -6.22, 1, 1, 8, 95.42, -85.63, 1, 1, 54, 24.89, 6.25, 1, 1, 54, 174.32, 6.19, 1, 1, 54, 160.25, -36.54, 1, 1, 54, 210.56, 52.8, 1, 1, 54, 208.35, 3.52, 1, 1, 54, 137.3, 31.58, 1, 1, 54, 124.75, -11.2, 1, 1, 54, 102.54, 22.8, 1, 1, 54, 61.9, 25.79, 1, 1, 54, 86.18, -5.32, 1 ], + "hull": 15, + "edges": [ 24, 26, 24, 22, 22, 20, 20, 18, 18, 16, 8, 6, 2, 0, 26, 28, 0, 28, 26, 30, 24, 30, 30, 0, 14, 16, 14, 12, 8, 32, 32, 34, 8, 10, 10, 12, 2, 4, 4, 6 ], + "width": 252, + "height": 275 + } + }, + "raptor-jaw-inside": { + "raptor-jaw2": { + "type": "mesh", + "path": "raptor-jaw", + "uvs": [ 0.43611, 0.10281, 0.50457, 0.26446, 0.69416, 0.49754, 0.79771, 0.54917, 1, 0.63619, 0.99305, 0.85625, 0.67606, 1, 0.39521, 1, 0.19457, 0.89404, 0.2161, 0.6497, 0, 0.46112, 0, 0, 0.26125, 1.0E-5, 0.19457, 0.29385, 0.60678, 0.81243, 0.42896, 0.88938 ], + "triangles": [ 13, 11, 12, 10, 11, 13, 13, 12, 0, 13, 0, 1, 9, 13, 1, 9, 1, 2, 10, 13, 9, 14, 9, 2, 14, 2, 3, 5, 3, 4, 14, 3, 5, 15, 9, 14, 8, 9, 15, 7, 8, 15, 6, 14, 5, 15, 14, 6, 7, 15, 6 ], + "vertices": [ 1, 54, 28.9, 96.24, 1, 1, 54, 65.84, 86.82, 1, 1, 54, 125.41, 92.66, 1, 1, 54, 151.38, 98.09, 1, 1, 54, 191.91, 121, 1, 1, 54, 227.3, 89.29, 1, 1, 54, 223.4, 25.16, 1, 1, 54, 176.27, -33.76, 1, 1, 54, 132.75, -53.77, 1, 1, 54, 94.17, -16.26, 1, 2, 54, 19.52, -38.44, 0.32267, 8, -3.76, -62.46, 0.67733, 1, 8, 98.59, -46.15, 1, 1, 8, 110.02, -102.65, 1, 1, 54, 31.25, 29.22, 1, 1, 54, 171.54, 28.72, 1, 1, 54, 161.87, -12.64, 1 ], + "hull": 13, + "edges": [ 20, 22, 20, 18, 18, 16, 16, 14, 14, 12, 6, 4, 4, 2, 2, 0, 22, 24, 0, 24, 22, 26, 20, 26, 26, 0, 10, 12, 6, 8, 10, 8, 6, 28, 28, 30 ], + "width": 252, + "height": 275 + } + }, + "raptor-mouth-inside": { + "raptor-mouth-inside": { + "type": "mesh", + "uvs": [ 1, 0.29017, 0.37217, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 3, 4, 0, 0, 1, 3 ], + "vertices": [ 1, 8, 26.56, -211.68, 1, 1, 54, 130.45, -7.83, 1, 1, 54, 109.72, -24.21, 1, 1, 8, 47.22, -139.7, 1, 1, 8, 50.33, -210.63, 1 ], + "hull": 5, + "edges": [ 4, 6, 6, 8, 2, 4, 0, 8, 2, 0 ], + "width": 71, + "height": 82 + } + }, + "raptor-saddle": { + "raptor-saddle-w-shadow": { + "type": "mesh", + "uvs": [ 0.28517, 0.09749, 0.26891, 0.14719, 0.32431, 0.28893, 0.45069, 0.52793, 0.56076, 0.56219, 0.69936, 0.53502, 0.71567, 0.44878, 0.83797, 0.36373, 0.91271, 0.34719, 1, 0.53622, 1, 0.61771, 0.93479, 0.82943, 0.87524, 0.96013, 0.74099, 1, 0.28984, 0.9496, 0.12982, 0.85304, 0.10295, 0.69443, 0.10449, 0.63657, 0.20499, 0.6452, 0.0954, 0.41741, 0.00133, 0.37841, 0, 0.27026, 0.11186, 0, 0.17021, 0, 0.24413, 0, 0.46313, 0.92332, 0.56755, 0.84415, 0.94056, 0.67906, 0.9263, 0.43106, 0.2137, 0.18682, 0.18239, 0.28963, 0.21653, 0.33824, 0.32307, 0.44535, 0.38606, 0.52911, 0.39069, 0.55971, 0.36568, 0.6032, 0.38235, 0.62414, 0.43979, 0.69174, 0.53891, 0.71429, 0.62321, 0.7159, 0.70381, 0.69254, 0.74827, 0.66355, 0.78996, 0.62087, 0.80571, 0.56933, 0.79737, 0.54033, 0.75661, 0.51215, 0.72789, 0.51537, 0.20634, 0.08376, 0.17577, 0.12886, 0.13686, 0.18765, 0.11185, 0.28751, 0.17762, 0.36321, 0.26192, 0.46066, 0.30546, 0.50012, 0.31565, 0.55488, 0.81026, 0.7038, 0.86992, 0.65976, 0.89927, 0.54517, 0.84925, 0.47993, 0.81868, 0.43161 ], + "triangles": [ 47, 23, 24, 47, 24, 0, 47, 22, 23, 1, 47, 0, 48, 47, 1, 29, 48, 1, 48, 49, 22, 47, 48, 22, 49, 48, 29, 21, 22, 49, 50, 21, 49, 29, 1, 2, 30, 49, 29, 30, 29, 2, 50, 49, 30, 31, 30, 2, 51, 50, 30, 51, 30, 31, 20, 21, 50, 19, 20, 50, 19, 50, 51, 8, 9, 28, 7, 8, 28, 59, 7, 28, 32, 31, 2, 2, 3, 32, 7, 59, 6, 52, 31, 32, 51, 31, 52, 58, 59, 28, 53, 52, 32, 45, 6, 59, 45, 59, 58, 46, 6, 45, 33, 53, 32, 3, 33, 32, 46, 5, 6, 44, 45, 58, 57, 58, 28, 57, 28, 9, 44, 58, 57, 54, 53, 33, 34, 33, 3, 54, 33, 34, 43, 44, 57, 35, 54, 34, 57, 9, 10, 46, 44, 43, 44, 46, 45, 36, 35, 34, 52, 19, 51, 19, 52, 18, 54, 52, 53, 54, 18, 52, 56, 43, 57, 27, 56, 57, 42, 43, 56, 46, 42, 5, 43, 42, 46, 41, 5, 42, 10, 27, 57, 3, 36, 34, 37, 3, 4, 37, 36, 3, 40, 5, 41, 4, 5, 40, 16, 17, 18, 55, 42, 56, 41, 42, 55, 38, 37, 4, 39, 38, 4, 40, 39, 4, 27, 55, 56, 11, 55, 27, 11, 27, 10, 26, 38, 39, 15, 16, 18, 26, 25, 37, 26, 37, 38, 14, 18, 37, 35, 18, 54, 36, 18, 35, 37, 18, 36, 14, 37, 25, 15, 18, 14, 12, 55, 11, 55, 13, 40, 55, 40, 41, 13, 55, 12, 26, 39, 40, 13, 26, 40, 25, 26, 13, 14, 25, 13 ], + "vertices": [ 262.59, 79.92, 244.74, 92.82, 188.83, 69.76, 114.07, 26.79, 102.07, -9.38, 113.32, -54.32, 145.78, -58.87, 178.6, -97.98, 185.38, -122.19, 120.06, -152.19, 84.63, -153.03, 15.94, -134.16, -24.77, -117.84, -45.38, -70.46, -59.12, 75.16, -24.15, 128.17, 35.11, 138.33, 56.81, 138.33, 54.35, 105.5, 138.9, 143.23, 152.8, 174.24, 193.34, 175.62, 295.51, 141.56, 295.96, 122.54, 296.53, 98.45, -47.94, 18.91, -17.46, -14.42, 67.83, -136.04, 154.04, -127.36, 226.26, 106.71, 187.47, 116.01, 169.51, 104.45, 130.18, 68.79, 99.26, 47.52, 87.82, 45.74, 71.33, 53.5, 63.61, 47.89, 52.57, 28.9, 44.88, -3.61, 44.93, -31.1, 54.3, -57.16, 65.51, -71.39, 81.83, -84.6, 101.28, -89.28, 112.08, -86.31, 122.33, -72.77, 120.91, -63.44, 264.84, 110.02, 247.7, 119.59, 225.36, 131.75, 187.73, 139.02, 159.85, 116.91, 123.97, 88.58, 109.51, 74.04, 89.06, 70.23, 41.99, -86.15, 68.62, -111.21, 111.05, -119.56, 135.12, -102.68, 153, -92.29 ], + "hull": 25, + "edges": [ 44, 42, 40, 42, 40, 38, 38, 36, 36, 34, 34, 32, 32, 30, 30, 28, 28, 50, 50, 52, 52, 26, 26, 24, 24, 22, 22, 54, 54, 20, 20, 18, 18, 56, 56, 16, 16, 14, 14, 12, 12, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2, 0, 0, 48, 26, 28, 20, 22, 16, 18, 2, 58, 58, 60, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 70, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 86, 88, 88, 90, 90, 92, 92, 10, 44, 46, 46, 48, 46, 94, 94, 96, 96, 98, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 108, 36, 110, 112, 112, 114, 114, 116, 116, 118, 118, 14 ], + "width": 324, + "height": 341 + } + }, + "raptor-saddle-strap-back": { + "raptor-saddle-strap-back": { "x": 78.45, "y": -4.2, "rotation": 120.24, "width": 108, "height": 148 } + }, + "raptor-saddle-strap-front": { + "raptor-saddle-strap-front": { "x": 128.83, "y": -4.72, "rotation": 61.29, "width": 114, "height": 189 } + }, + "raptor-tongue": { + "raptor-tongue": { + "type": "mesh", + "uvs": [ 0.35242, 0.21561, 0.4794, 0.44246, 0.62072, 0.61177, 0.80563, 0.75374, 1, 0.90297, 1, 1, 0.8971, 1, 0.72055, 0.92255, 0.50668, 0.82872, 0.30402, 0.70725, 0.10537, 0.57889, 0, 0.50622, 0, 0, 0.26225, 0 ], + "triangles": [ 8, 7, 6, 6, 4, 5, 4, 6, 3, 6, 7, 3, 7, 8, 3, 8, 2, 3, 9, 10, 1, 8, 9, 2, 9, 1, 2, 1, 10, 0, 10, 11, 0, 0, 12, 13, 0, 11, 12 ], + "vertices": [ 2, 71, 3.64, 27.05, 0.6875, 72, -47.27, 33.88, 0.3125, 3, 71, 39.1, 19.46, 0.3125, 72, -13.42, 20.87, 0.625, 73, -51.54, 33.38, 0.0625, 3, 71, 71.56, 19.03, 0.0625, 72, 18.59, 15.4, 0.625, 73, -21.56, 20.92, 0.3125, 2, 72, 55.03, 16.86, 0.3125, 73, 14.29, 14.24, 0.6875, 2, 72, 93.34, 18.4, 0.08333, 73, 51.98, 7.21, 0.91667, 1, 73, 56.09, -4.51, 1, 2, 72, 85.07, -1.49, 0.08333, 73, 39.49, -10.33, 0.91667, 2, 72, 54.23, -9.18, 0.3125, 73, 7.71, -10.97, 0.6875, 3, 71, 75.14, -14.72, 0.0625, 72, 16.87, -18.5, 0.625, 73, -30.77, -11.74, 0.3125, 3, 71, 38.8, -25.81, 0.3125, 72, -20.75, -23.8, 0.625, 73, -68.63, -8.54, 0.0625, 2, 71, 2.4, -35.78, 0.6875, 72, -58.25, -27.99, 0.3125, 2, 71, -17.29, -40.63, 0.91667, 72, -78.46, -29.72, 0.08333, 1, 71, -59.92, 8.19, 1, 2, 71, -26.14, 37.69, 0.91667, 72, -75.02, 49.02, 0.08333 ], + "hull": 14, + "edges": [ 22, 24, 10, 12, 10, 8, 24, 26, 16, 4, 18, 16, 2, 4, 18, 2, 22, 20, 0, 26, 20, 0, 0, 2, 12, 14, 14, 16, 4, 6, 6, 8, 14, 6, 20, 18 ], + "width": 171, + "height": 128 + } + }, + "raptow-jaw-tooth": { + "raptor-jaw-tooth": { + "x": 215.7, + "y": 103.86, + "scaleX": 0.8674, + "scaleY": 0.8317, + "rotation": 56.5, + "width": 73, + "height": 96 + } + }, + "spineboy-torso": { + "torso": { "x": 55.88, "y": 4.87, "rotation": -104.14, "width": 108, "height": 182 } + }, + "stirrup-back": { + "stirrup-back": { "x": 53.2, "y": 31.34, "rotation": -21.13, "width": 87, "height": 69 } + }, + "stirrup-front": { + "stirrup-front": { "x": 36.14, "y": 20.39, "rotation": -21.13, "width": 89, "height": 100 } + }, + "stirrup-strap": { + "stirrup-strap": { + "type": "mesh", + "uvs": [ 0.36823, 0.27894, 0.45738, 0.38897, 0.54452, 0.49652, 0.67872, 0.59135, 0.81977, 0.69102, 1, 0.77344, 1, 1, 0.77957, 1, 0.6373, 0.8163, 0.53364, 0.72349, 0.40534, 0.60861, 0.30886, 0.52535, 0.2105, 0.44048, 0, 0.26245, 0, 0, 0.30637, 0, 0.20242, 0.23001 ], + "triangles": [ 7, 5, 6, 7, 4, 5, 7, 8, 4, 8, 3, 4, 8, 9, 3, 9, 2, 3, 9, 10, 2, 2, 10, 1, 10, 11, 1, 11, 12, 1, 13, 16, 12, 12, 0, 1, 12, 16, 0, 16, 15, 0, 13, 14, 16, 16, 14, 15 ], + "vertices": [ 2, 59, 24.72, 8.04, 0.80345, 60, -17.42, 11.02, 0.19655, 2, 59, 37.95, 8.04, 0.59979, 60, -4.37, 8.87, 0.40021, 2, 59, 50.88, 8.05, 0.36895, 60, 8.39, 6.77, 0.63105, 2, 59, 65.92, 12.27, 0.17748, 60, 23.92, 8.48, 0.82252, 2, 59, 81.73, 16.71, 0.05943, 60, 40.24, 10.28, 0.94057, 2, 59, 98.83, 25.04, 0.0121, 60, 58.47, 15.72, 0.9879, 2, 59, 114.44, 11.58, 0.00191, 60, 71.67, -0.11, 0.99809, 2, 59, 100.47, -4.61, 0.01818, 60, 55.25, -13.81, 0.98182, 2, 59, 78.8, -4.14, 0.07488, 60, 33.95, -9.81, 0.92512, 2, 59, 65.83, -6.24, 0.2028, 60, 20.81, -9.77, 0.7972, 2, 59, 49.79, -8.84, 0.39972, 60, 4.56, -9.71, 0.60028, 2, 59, 37.94, -10.97, 0.62658, 60, -7.48, -9.89, 0.37342, 2, 59, 25.86, -13.15, 0.82035, 60, -19.76, -10.07, 0.17965, 2, 59, 0.25, -18.03, 0.95289, 60, -45.82, -10.7, 0.04711, 2, 59, -17.84, -2.43, 0.9771, 60, -61.11, 7.64, 0.0229, 2, 59, 1.58, 20.07, 0.94775, 60, -38.29, 26.68, 0.05225, 2, 59, 10.84, -1.24, 0.9771, 60, -32.63, 4.14, 0.0229 ], + "hull": 16, + "edges": [ 28, 30, 30, 0, 12, 10, 8, 10, 12, 14, 14, 16, 26, 28, 24, 26, 26, 32, 32, 30, 20, 22, 22, 24, 0, 2, 2, 4, 4, 6, 6, 8, 16, 18, 18, 20 ], + "width": 97, + "height": 91 + } + }, + "tail-shadow": { + "raptor-tail-shadow": { + "type": "mesh", + "uvs": [ 1, 0.50387, 0.89276, 1, 0.82069, 0.96993, 0.72927, 0.92231, 0.64083, 0.87624, 0.54988, 0.83667, 0.47106, 0.80022, 0.40123, 0.7783, 0.32238, 0.75321, 0.25301, 0.73107, 0.20375, 0.71883, 0.11753, 0.71414, 0, 0.72519, 0, 0.66338, 0.10358, 0.57282, 0.18201, 0.5128, 0.23534, 0.47512, 0.30555, 0.4281, 0.37968, 0.37769, 0.44858, 0.3281, 0.51987, 0.2798, 0.61007, 0.21367, 0.70725, 0.14608, 0.80109, 0.08082, 0.90134, 0 ], + "triangles": [ 12, 13, 11, 10, 14, 15, 13, 14, 11, 10, 11, 14, 8, 16, 17, 9, 15, 16, 8, 9, 16, 9, 10, 15, 6, 18, 19, 7, 17, 18, 6, 7, 18, 7, 8, 17, 5, 19, 20, 4, 5, 20, 4, 20, 21, 5, 6, 19, 3, 22, 2, 4, 21, 3, 3, 21, 22, 2, 22, 23, 1, 2, 0, 23, 0, 2, 23, 24, 0 ], + "vertices": [ 1, 65, -0.16, 6.41, 1, 2, 65, 42.4, 61.67, 0.7548, 66, -28.13, 61.67, 0.2452, 2, 65, 69.28, 56.16, 0.53679, 66, -1.25, 56.16, 0.46321, 3, 65, 103.42, 48.48, 0.13235, 66, 32.89, 48.48, 0.82952, 67, -35.63, 49.98, 0.03813, 3, 65, 136.1, 39.06, 0.00439, 66, 65.57, 39.06, 0.62467, 67, -3.36, 39.23, 0.37094, 3, 66, 99.5, 32, 0.0995, 67, 30.26, 30.79, 0.87982, 68, -32.35, 31.34, 0.02068, 3, 66, 129.1, 26.76, 4.6E-4, 67, 59.61, 24.34, 0.57172, 68, -3.11, 24.4, 0.42782, 2, 67, 85.42, 18.44, 0.04275, 68, 22.59, 18.06, 0.95725, 2, 68, 51.63, 10.96, 0.64526, 69, -3.07, 10.89, 0.35474, 2, 68, 77.16, 4.61, 0.00246, 69, 22.59, 5.12, 0.99754, 2, 69, 40.97, 2.02, 0.84959, 70, -8.23, 2.08, 0.15041, 1, 70, 23.84, -2.64, 1, 1, 70, 68.09, -5.25, 1, 1, 70, 68.64, -7.05, 1, 1, 70, 29.23, -12.51, 1, 2, 69, 48.26, -18.17, 0.57427, 70, -1.07, -18.16, 0.42573, 1, 69, 27.9, -20.81, 1, 2, 68, 55.03, -24.11, 0.40024, 69, 1.11, -24.1, 0.59976, 3, 67, 90.24, -26.6, 0.00715, 68, 26.65, -27.06, 0.98709, 69, -27.19, -27.68, 0.00576, 2, 67, 63.89, -30.1, 0.5083, 68, 0.25, -30.11, 0.4917, 3, 66, 108.32, -33.03, 0.01005, 67, 36.41, -34.55, 0.9784, 68, -27.3, -34.09, 0.01155, 2, 66, 74.22, -38.09, 0.50429, 67, 2.13, -38.21, 0.49571, 3, 65, 107.88, -44.01, 0.04245, 66, 37.35, -44.01, 0.94684, 67, -34.96, -42.61, 0.01071, 2, 65, 72.14, -50.49, 0.52154, 66, 1.61, -50.49, 0.47846, 2, 65, 33.89, -58.82, 0.93522, 66, -36.64, -58.82, 0.06478 ], + "hull": 25, + "edges": [ 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 20, 30, 32, 18, 20, 32, 18, 34, 32, 16, 18, 34, 16, 14, 36, 16, 14, 34, 36, 38, 36, 12, 14, 38, 12, 40, 38, 10, 12, 40, 10, 2, 4, 46, 4, 42, 8, 8, 10, 40, 42, 46, 44, 44, 42, 4, 6, 6, 8, 44, 6, 2, 0, 0, 48, 46, 48 ], + "width": 377, + "height": 126 + } + }, + "visor": { + "visor": { "x": 99.13, "y": 6.51, "rotation": -70.58, "width": 261, "height": 168 } + } + } + } +], +"animations": { + "gun-grab": { + "slots": { + "front-hand": { + "attachment": [ + { "name": "front-open-hand" }, + { "time": 0.2333, "name": "gun" } + ] + }, + "gun": { + "attachment": [ + { "time": 0.2333, "name": null } + ] + } + }, + "bones": { + "front-hand2": { + "rotate": [ + {}, + { "time": 0.1333, "value": 12.34 }, + { "time": 0.2333, "value": -89.55, "curve": "stepped" }, + { "time": 0.2667, "value": -89.55 }, + { "time": 0.3333, "value": -79.79 }, + { "time": 0.6667, "value": -10.18 } + ], + "scale": [ + {}, + { "time": 0.2333, "x": 0.938, "y": 0.938 }, + { "time": 0.6667 } + ] + }, + "front-arm": { + "rotate": [ + {}, + { "time": 0.1, "value": -32 }, + { + "time": 0.2333, + "value": -136.89, + "curve": [ 0.258, -136.89, 0.308, -204.81 ] + }, + { + "time": 0.3333, + "value": -204.81, + "curve": [ 0.383, -204.81, 0.483, -113.86 ] + }, + { + "time": 0.5333, + "value": -113.86, + "curve": [ 0.558, -94.44, 0.633, -56.75 ] + }, + { "time": 0.6667, "value": -56.75 } + ], + "translate": [ + {}, + { "time": 0.2333, "x": 6.5, "y": -2.66 }, + { "time": 0.3333, "x": 6.84, "y": 4.8 }, + { "time": 0.6667 } + ] + }, + "front-bracer": { + "rotate": [ + {}, + { "time": 0.2333, "value": 86.02, "curve": "stepped" }, + { "time": 0.2667, "value": 86.02 }, + { "time": 0.3333, "value": 114.95 }, + { + "time": 0.5333, + "value": 81.86, + "curve": [ 0.567, 81.86, 0.633, 34.74 ] + }, + { "time": 0.6667, "value": 34.74 } + ] + } + }, + "ik": { + "spineboy-front-arm-ik": [ + { "mix": 0 } + ] + } + }, + "gun-holster": { + "slots": { + "front-hand": { + "attachment": [ + { "name": "gun" }, + { "time": 0.3, "name": "front-open-hand" }, + { "time": 0.6667, "name": "front-hand" } + ] + }, + "gun": { + "attachment": [ + { "name": null }, + { "time": 0.3, "name": "gun-nohand" } + ] + } + }, + "bones": { + "front-hand2": { + "rotate": [ + { "value": -10.18 }, + { "time": 0.1667, "value": -88.65 }, + { "time": 0.3, "value": -89.52 }, + { "time": 0.4667, "value": -35.36 }, + { "time": 0.6667, "value": 0.18 } + ], + "scale": [ + {}, + { "time": 0.3, "x": 0.888, "y": 0.888 } + ] + }, + "front-arm": { + "rotate": [ + { "value": -56.75 }, + { "time": 0.1667, "value": -197.88 }, + { "time": 0.3, "value": -143.09 }, + { "time": 0.4667, "value": -159.79 }, + { "time": 0.6667, "value": -25.24 } + ] + }, + "front-bracer": { + "rotate": [ + { "value": 34.74 }, + { "time": 0.1667, "value": 97.01 }, + { "time": 0.3, "value": 97.41 }, + { "time": 0.4, "value": 99.27 }, + { "time": 0.4667, "value": 116.1 } + ] + } + }, + "ik": { + "spineboy-front-arm-ik": [ + { "mix": 0, "curve": "stepped" }, + { "time": 0.4667, "mix": 0 }, + { "time": 0.6667, "mix": 0.996 } + ] + } + }, + "jump": { + "slots": { + "mouth-smile": { + "attachment": [ + { "time": 0.1333, "name": "mouth-grind" }, + { "time": 0.9, "name": "mouth-smile" } + ] + } + }, + "bones": { + "front-foot-target": { + "rotate": [ + { "time": 0.3 }, + { "time": 0.4, "value": -41.64 }, + { "time": 0.4667, "value": -69.67 }, + { "time": 0.5333, "value": -12.81 }, + { "time": 0.6667, "value": 5.74 }, + { "time": 0.9667 } + ], + "translate": [ + { "y": 36.5, "curve": "stepped" }, + { "time": 0.4, "y": 36.5 }, + { "time": 0.4333, "x": -51.5, "y": 55.55 }, + { "time": 0.4667, "x": -134.04, "y": 111.1 }, + { "time": 0.5, "x": -128.33, "y": 165.93 }, + { "time": 0.5333, "x": -12.99, "y": 277.66 }, + { + "time": 0.6667, + "x": 243.74, + "y": 685.02, + "curve": [ 0.832, 243.74, 0.945, 144.4, 0.832, 685.02, 0.945, 249.11 ] + }, + { "time": 0.9667, "x": 95.94, "y": 36.5 } + ] + }, + "hip": { + "rotate": [ + { "value": -4.48 }, + { "time": 0.1333, "value": -23.03 }, + { + "time": 0.4, + "value": 19.24, + "curve": [ 0.461, 24.84, 0.6, 31.43 ] + }, + { "time": 0.6667, "value": 31.43 }, + { "time": 0.9667, "value": -10.76 }, + { "time": 1.0667, "value": -18.59 }, + { "time": 1.2333, "value": 3.45 }, + { "time": 1.3667, "value": -4.48 } + ], + "translate": [ + { "x": -100.65, "y": 49.77 }, + { + "time": 0.1333, + "x": 9.38, + "y": -109.07, + "curve": [ 0.166, 9.38, 0.215, 68.6, 0.166, -109.07, 0.215, -95.39 ] + }, + { + "time": 0.2667, + "x": 150.37, + "y": -76.51, + "curve": [ 0.32, 221.99, 0.381, 335.73, 0.32, -38.02, 0.381, 23.11 ] + }, + { "time": 0.4, "x": 361.01, "y": 36.69 }, + { + "time": 0.6667, + "x": 5.37, + "y": 486.67, + "curve": [ 0.866, 5.37, 0.932, -47.29, 0.866, 486.67, 0.932, 259.43 ] + }, + { "time": 0.9667, "x": -82.29, "y": 108.4 }, + { "time": 1.0667, "x": 84.63, "y": -79.01 }, + { "time": 1.1333, "x": 181, "y": -57.13 }, + { + "time": 1.2333, + "x": 238.12, + "y": 50.64, + "curve": [ 1.267, 238.12, 1.333, 213.2, 1.267, 50.64, 1.333, 49.77 ] + }, + { "time": 1.3667, "x": 213.2, "y": 49.77 } + ] + }, + "back-foot-target": { + "rotate": [ + { "time": 0.3 }, + { "time": 0.4, "value": -41.64 }, + { "time": 0.4667, "value": -69.67 }, + { "time": 0.5333, "value": -57.97 }, + { "time": 1, "value": -9.2 }, + { "time": 1.0333, "value": -7.79 } + ], + "translate": [ + { "time": 0.4 }, + { "time": 0.4333, "x": -87.33, "y": 23.79 }, + { "time": 0.4667, "x": -172.24, "y": 47.59 }, + { "time": 0.5, "x": -205.57, "y": 86.83 }, + { "time": 0.5333, "x": -176.81, "y": 207.15 }, + { + "time": 0.6667, + "x": 61.3, + "y": 639.9, + "curve": [ 0.905, 132.28, 0.944, 219.45, 0.905, 379.34, 0.944, 59.39 ] + }, + { "time": 1.0333, "x": 235.63 } + ] + }, + "front-leg-target": { + "translate": [ + { "time": 0.4 }, + { "time": 0.4667, "x": -11.12, "y": 1.13 }, + { "time": 0.5, "x": 35.48, "y": 8.27 }, + { "time": 0.5333, "x": 6.65, "y": -19.6 }, + { "time": 0.6667, "x": -46.09, "y": -54.23 }, + { "time": 1, "x": -0.4, "y": 24.3 }, + { "time": 1.0667 } + ] + }, + "back-leg-target": { + "translate": [ + { "time": 0.4 }, + { "time": 0.4667, "x": 22.17, "y": 54.94 }, + { "time": 0.5, "x": 38.22, "y": 65.55 }, + { "time": 0.5333, "x": 20.12, "y": -2.63 }, + { "time": 0.6667, "x": -3.59, "y": -12.74 }, + { "time": 1, "x": -43, "y": -42.05 }, + { "time": 1.0667, "x": -29.03, "y": -3.97 } + ] + }, + "tail1": { + "rotate": [ + {}, + { "time": 0.1333, "value": -11.02 }, + { "time": 0.4, "value": 0.53 }, + { "time": 0.5333, "value": 8.64 }, + { "time": 1, "value": -9.74 }, + { + "time": 1.0667, + "value": -4.46, + "curve": [ 1.14, -4.46, 1.261, 0 ] + }, + { "time": 1.3667 } + ] + }, + "tail3": { + "rotate": [ + {}, + { "time": 0.1333, "value": -9.81 }, + { "time": 0.2333, "value": -22.06 }, + { "time": 0.3, "value": -26.63 }, + { "time": 0.4, "value": -17.42 }, + { "time": 0.5333, "value": -6.59 }, + { "time": 0.6667, "value": 1.28 }, + { "time": 0.8667, "value": -7.23 }, + { "time": 1, "value": -12.78 }, + { "time": 1.0667, "value": -12.03 }, + { "time": 1.1, "value": -11.94 }, + { "time": 1.1667, "value": -4.94 }, + { "time": 1.3667 } + ] + }, + "torso2": { + "rotate": [ + {}, + { "time": 0.1333, "value": 0.52 }, + { "time": 0.4, "value": -1.91 }, + { "time": 0.6667, "value": 3 }, + { "time": 1, "value": -3.26 }, + { "time": 1.0667, "value": 4.82 }, + { "time": 1.3667 } + ] + }, + "front-arm1": { + "rotate": [ + {}, + { "time": 0.2667, "value": 51.21 }, + { "time": 0.5, "value": -38.7 }, + { "time": 0.7667, "value": 62.19, "curve": "stepped" }, + { "time": 1, "value": 62.19 }, + { "time": 1.0667, "value": 34.63 }, + { "time": 1.1333, "value": -14.43 }, + { "time": 1.3667 } + ] + }, + "neck": { + "rotate": [ + {}, + { "time": 0.1333, "value": -5.01 }, + { "time": 0.4, "value": -7.26 }, + { "time": 0.6667, "value": 10.19 }, + { "time": 1, "value": 24.02 }, + { "time": 1.0667, "value": 4.83 }, + { "time": 1.1667, "value": -1.79 }, + { "time": 1.3667 } + ], + "translate": [ + {}, + { + "time": 0.1333, + "x": -23.92, + "y": -8.77, + "curve": [ 0.172, 8.7, 0.333, 29.55, 0.172, -14.17, 0.333, -17.63 ] + }, + { "time": 0.4, "x": 29.55, "y": -17.63 }, + { "time": 0.6667, "x": 8.9, "y": -2.9 }, + { "time": 1 }, + { "time": 1.0667, "x": 52.78, "y": -42.59 }, + { "time": 1.1667, "x": 27.85, "y": -19.16 } + ] + }, + "back-arm1": { + "rotate": [ + {}, + { "time": 0.1333, "value": 51.21 }, + { "time": 0.5333, "value": -38.7 }, + { "time": 0.8667, "value": 62.19, "curve": "stepped" }, + { "time": 1.0333, "value": 62.19 }, + { "time": 1.1, "value": 34.63 }, + { "time": 1.1667, "value": -14.43 }, + { "time": 1.3667 } + ] + }, + "spineboy-hip": { + "translate": [ + {}, + { "time": 0.1333, "x": 40.49, "y": -30.56 }, + { "time": 0.3333, "x": 53.35, "y": -66.67 }, + { "time": 0.4, "x": 38.42, "y": -79.98 }, + { "time": 0.5667, "x": 48.41, "y": -88.19 }, + { "time": 0.6667, "x": 46.33, "y": -75.54 }, + { "time": 1, "x": 41.71, "y": -19.46 }, + { "time": 1.1667 } + ] + }, + "tail5": { + "rotate": [ + { "value": 6.72 }, + { "time": 0.1333, "value": 7.22 }, + { "time": 0.2333, "value": -10.93 }, + { "time": 0.3, "value": -14.58 }, + { "time": 0.4, "value": -5.79 }, + { "time": 0.5333, "value": 5.75 }, + { "time": 0.5667, "value": 8.65 }, + { "time": 0.6333, "value": 17.01 }, + { "time": 0.6667, "value": 11.44 }, + { "time": 0.8667, "value": 8.39 }, + { "time": 1, "value": 3.54 }, + { "time": 1.0667, "value": -20.69 }, + { "time": 1.1, "value": -22.16 }, + { "time": 1.1667, "value": -18.9 }, + { "time": 1.2667, "value": -10.15 }, + { "time": 1.3667 } + ] + }, + "front-arm2": { + "rotate": [ + {}, + { "time": 0.1333, "value": 23.11 }, + { "time": 0.5, "value": -75.93 }, + { "time": 0.7667, "value": -1.41 }, + { "time": 1.0667, "value": 26.87 }, + { "time": 1.1333, "value": -56.15 }, + { "time": 1.3667 } + ] + }, + "gun": { + "rotate": [ + {}, + { "time": 0.1333, "value": 15.28 }, + { "time": 0.4, "value": -53.41 }, + { "time": 0.7667, "value": -63.35 }, + { "time": 1.0667, "value": -29.92 }, + { "time": 1.2, "value": 7.24 }, + { "time": 1.3, "value": -3.7 }, + { "time": 1.3667 } + ] + }, + "head": { + "rotate": [ + {}, + { + "time": 0.1333, + "value": 22.2, + "curve": [ 0.158, 22.2, 0.208, -11.5 ] + }, + { + "time": 0.2333, + "value": -11.5, + "curve": [ 0.33, -11.5, 0.371, 10.27 ] + }, + { "time": 0.4333, "value": 10.27 }, + { + "time": 0.6667, + "value": -40.57, + "curve": [ 0.715, -32.25, 0.917, -23.3 ] + }, + { "time": 1, "value": -23.3 }, + { "time": 1.0667, "value": 21.8 }, + { "time": 1.1667, "value": 15.37 }, + { "time": 1.3667 } + ], + "translate": [ + { "time": 0.2333 }, + { "time": 0.4333, "x": 23.4, "y": -54.02 }, + { "time": 0.6667, "x": 26.32, "y": -20.79 }, + { "time": 1, "x": 19.04, "y": 1.7 } + ] + }, + "back-arm2": { + "rotate": [ + {}, + { "time": 0.1333, "value": 23.11 }, + { "time": 0.5, "value": -75.93 }, + { "time": 0.7667, "value": -1.41 }, + { "time": 1.0667, "value": 26.87 }, + { "time": 1.1333, "value": -56.15 }, + { "time": 1.3667 } + ] + }, + "spineboy-torso": { + "rotate": [ + { "value": -4.78 }, + { "time": 0.1333, "value": -36.59 }, + { "time": 0.2667, "value": -24.94 }, + { "time": 0.3333, "value": -20.34 }, + { "time": 0.6667, "value": -11.2 }, + { "time": 1, "value": 10.49 }, + { + "time": 1.1333, + "value": -30.21, + "curve": [ 1.175, -30.21, 1.258, -17.91 ] + }, + { "time": 1.3, "value": -17.91 }, + { "time": 1.3667, "value": -31.12 } + ] + }, + "tail7": { + "rotate": [ + { "value": 6.72 }, + { "time": 0.1333, "value": 14.46 }, + { "time": 0.2333, "value": 20.19 }, + { "time": 0.3, "value": -12.08 }, + { "time": 0.4, "value": -13.06 }, + { "time": 0.5333, "value": 7.14 }, + { "time": 0.5667, "value": 23.54 }, + { "time": 0.6667, "value": 9.86 }, + { "time": 0.8667, "value": 10.31 }, + { "time": 1, "value": 6.72 }, + { "time": 1.0667, "value": -11.17 }, + { "time": 1.1, "value": -16.51 }, + { "time": 1.1667, "value": -11.98 }, + { "time": 1.2667, "value": -8.74 }, + { "time": 1.3667 } + ] + }, + "front-foot2": { + "rotate": [ + { "time": 0.4 }, + { "time": 0.4333, "value": -28.28 }, + { "time": 0.4667, "value": -40.52 }, + { "time": 0.5333, "value": -67.11 }, + { "time": 0.6667, "value": -16.7 }, + { "time": 0.9667, "value": 24.85 }, + { "time": 1.0667 } + ] + }, + "front-hand": { + "rotate": [ + {}, + { "time": 0.6667, "value": -27.75 }, + { "time": 1.0667, "value": -27.1 }, + { "time": 1.3667 } + ] + }, + "jaw": { + "rotate": [ + { "value": 0.83 }, + { "time": 0.1333, "value": 3.45 }, + { "time": 0.3333, "value": -3.98 }, + { + "time": 0.4667, + "value": -10.78, + "curve": [ 0.731, -10.75, 0.792, 2.06 ] + }, + { "time": 0.9, "value": 2.06 }, + { "time": 0.9333, "value": -3.14 }, + { "time": 1.2333, "value": 0.83 } + ], + "translate": [ + { "x": -10.21, "y": 13.96 } + ] + }, + "back-foot2": { + "rotate": [ + { "time": 0.4 }, + { "time": 0.4333, "value": -18.7 }, + { "time": 0.4667, "value": -28.34 }, + { "time": 0.5333, "value": -126.75 }, + { "time": 0.6667, "value": -63.79 }, + { "time": 0.9333, "value": 11.7 }, + { "time": 1, "value": 24.85 }, + { "time": 1.0667 } + ] + }, + "back-hand": { + "rotate": [ + {}, + { "time": 0.6667, "value": -27.75 }, + { "time": 1.0667, "value": -27.1 }, + { "time": 1.3667 } + ] + }, + "tail9": { + "rotate": [ + { "value": 6.72 }, + { "time": 0.1333, "value": 10.15 }, + { "time": 0.2333, "value": 21.25 }, + { "time": 0.3, "value": -7.52 }, + { "time": 0.4, "value": -13.06 }, + { "time": 0.5333, "value": 10.6 }, + { "time": 0.5667, "value": 23.27 }, + { "time": 0.6667, "value": 9.49 }, + { "time": 0.8667, "value": 23.25 }, + { "time": 1, "value": 16.01 }, + { "time": 1.0667, "value": -11.17 }, + { "time": 1.1, "value": -17.02 }, + { "time": 1.1667, "value": -22.43 }, + { "time": 1.2667, "value": -13.57 }, + { "time": 1.3667 } + ] + }, + "front-foot3": { + "rotate": [ + { "time": 0.4 }, + { "time": 0.4333, "value": 8.47 }, + { "time": 0.4667, "value": 3.02 }, + { "time": 0.5333, "value": -19.17 }, + { "time": 0.6667, "value": -15.11 }, + { "time": 0.9667, "value": 10.78 }, + { "time": 1.0667 } + ] + }, + "head2": { + "rotate": [ + { "value": 18.08 }, + { "time": 0.1333, "value": 44.55 }, + { "time": 0.3, "value": 23.94 }, + { "time": 0.4, "value": 16.51 }, + { "time": 0.6333, "value": 11.09 }, + { "time": 0.9667, "value": 7.01 }, + { "time": 1.0667, "value": 26.78 }, + { "time": 1.1333, "value": 31.89 }, + { "time": 1.2333, "value": 16.95 }, + { "time": 1.3, "value": 30.99 }, + { "time": 1.3667, "value": 31.09 } + ] + }, + "neck2": { + "rotate": [ + { "value": -0.77 }, + { "time": 0.1333, "value": 15.96 }, + { "time": 0.3, "value": 5.09 }, + { "time": 0.4, "value": -2.34 }, + { "time": 0.6333, "value": -7.76 }, + { "time": 0.9667, "value": -11.84 }, + { "time": 1.0667, "value": 7.94 }, + { "time": 1.1333, "value": 13.05 }, + { "time": 1.2333, "value": -1.91 }, + { "time": 1.3667, "value": 12.24 } + ] + }, + "spineboy-front-arm-target": { + "translate": [ + { "x": -0.43, "y": -9.01 }, + { "time": 0.1333, "x": -27.62, "y": 9.05 }, + { "time": 0.2667, "x": 10.24, "y": -25.26 }, + { "time": 0.4, "x": 16.65, "y": -40.28 }, + { "time": 0.5, "x": 12.66, "y": -34.61 }, + { "time": 0.6667, "x": 2.73, "y": -3.04 }, + { "time": 0.9667, "x": -6.56, "y": 0.7 }, + { "time": 1.0667, "x": 12.25, "y": -29.51 } + ] + }, + "front-hand2": { + "rotate": [ + {}, + { "time": 0.1333, "value": -22.27 }, + { "time": 0.2667, "value": -16.91 }, + { "time": 0.4333, "value": -2.22 }, + { "time": 0.6667, "value": -6.95 } + ] + }, + "stirrup": { + "rotate": [ + {}, + { "time": 0.3, "value": -13.39, "curve": "stepped" }, + { "time": 0.9667, "value": -13.39 }, + { "time": 1.2333 } + ] + }, + "spineboy-front-foot-target": { + "translate": [ + { "time": 0.2667 }, + { "time": 0.4333, "x": 19.72, "y": -2.18 }, + { "time": 0.5333, "x": 19.39, "y": -3.07 }, + { "time": 0.6667, "x": -3.87, "y": 6.01 }, + { "time": 1.0667, "x": -10.92, "y": 4.87 }, + { "time": 1.3667 } + ] + }, + "tail2": { + "rotate": [ + {}, + { "time": 0.2333, "value": -6.06 }, + { "time": 0.3, "value": -7.05 }, + { "time": 0.4, "value": 4.7 }, + { "time": 0.5333, "value": -1.99 }, + { "time": 1, "value": -0.83 }, + { "time": 1.0667, "value": -3.56 }, + { "time": 1.1, "value": -7.07 }, + { "time": 1.1667, "value": -6.46 } + ] + }, + "tail4": { + "rotate": [ + { "value": 6.72 }, + { "time": 0.1333, "value": 5.9 }, + { "time": 0.2333, "value": -2.65 }, + { "time": 0.3, "value": -3.31 }, + { "time": 0.4, "value": 0.99 }, + { "time": 0.5333, "value": 7.03 }, + { "time": 1, "value": 5.36 }, + { "time": 1.0667, "value": -0.43 }, + { "time": 1.1, "value": -3.37 }, + { "time": 1.1667, "value": -2.18 }, + { "time": 1.2667, "value": 3.65 } + ] + }, + "tail6": { + "rotate": [ + { "value": 6.72 }, + { "time": 0.1333, "value": 20.13 }, + { "time": 0.2333, "value": -3.52 }, + { "time": 0.3, "value": -4.18 }, + { "time": 0.4, "value": -11.91 }, + { "time": 0.5333, "value": 4.01 }, + { "time": 0.5667, "value": 8.34 }, + { "time": 0.8667, "value": 5.66 }, + { "time": 1, "value": 9.81 }, + { "time": 1.0667, "value": -15.56 }, + { "time": 1.1, "value": -18.28 }, + { "time": 1.1667, "value": -10.86 }, + { "time": 1.2667, "value": 3.69 } + ] + }, + "tail8": { + "rotate": [ + { "value": 6.72 }, + { "time": 0.1333, "value": 14.81 }, + { "time": 0.2333, "value": 17.13 }, + { "time": 0.3, "value": -10.98 }, + { "time": 0.4, "value": -14.47 }, + { "time": 0.5333, "value": 4.33 }, + { "time": 0.5667, "value": 13.57 }, + { "time": 0.8667, "value": 9.11 }, + { "time": 1, "value": 9.41 }, + { "time": 1.0667, "value": -15.96 }, + { "time": 1.1, "value": -20.19 }, + { "time": 1.1667, "value": -23.17 }, + { "time": 1.2667, "value": -11.89 } + ] + }, + "tail10": { + "rotate": [ + { "value": 6.72 }, + { "time": 0.1333, "value": 0.52 }, + { "time": 0.2333, "value": 10.93 }, + { "time": 0.3, "value": -7.46 }, + { "time": 0.4, "value": -12.6 }, + { "time": 0.5333, "value": 11.74 }, + { "time": 1, "value": 3.35 }, + { "time": 1.0667, "value": -22.02 }, + { "time": 1.1, "value": -26.24 }, + { "time": 1.1667, "value": -29.22 }, + { "time": 1.2667, "value": -17.95 } + ] + }, + "saddle-strap-back": { + "rotate": [ + {}, + { "time": 0.1667, "value": -3.99 }, + { "time": 0.2667, "value": -2.13 }, + { "time": 0.5333, "value": 1.36 }, + { "time": 0.9333, "value": -1.8 }, + { "time": 1.3333, "value": -0.3 }, + { "time": 1.4333 } + ] + }, + "back-leg1": { + "translate": [ + {}, + { "time": 0.4667, "x": -12.67, "y": -22.45 }, + { "time": 0.9 } + ] + }, + "bone3": { + "rotate": [ + {}, + { "time": 0.1, "value": 3.16 }, + { "time": 0.1667, "value": -7.3 }, + { "time": 0.2667, "value": 14.19 }, + { "time": 0.3333, "value": 5.37 }, + { "time": 0.5, "value": -1.88 }, + { "time": 0.7667, "value": 2.1 }, + { "time": 0.9667, "value": 8.65 }, + { "time": 1.0333, "value": -10.01 }, + { "time": 1.1, "value": -14.96 }, + { "time": 1.1667, "value": 2.21 }, + { "time": 1.2333, "value": 6.21 }, + { "time": 1.3, "value": 1.14 }, + { "time": 1.4, "value": -2.77 } + ] + }, + "bone4": { + "rotate": [ + {}, + { "time": 0.1, "value": 3.16 }, + { "time": 0.1667, "value": -7.3 }, + { "time": 0.2667, "value": 14.19 }, + { "time": 0.3333, "value": 5.37 }, + { "time": 0.5, "value": -1.88 }, + { "time": 0.7667, "value": 2.1 }, + { "time": 0.9667, "value": 8.65 }, + { "time": 1.0333, "value": -10.01 }, + { "time": 1.1, "value": -14.96 }, + { "time": 1.1667, "value": 2.21 }, + { "time": 1.2333, "value": 6.21 }, + { "time": 1.3, "value": 1.14 }, + { "time": 1.4, "value": -2.77 } + ] + }, + "bone5": { + "rotate": [ + {}, + { "time": 0.1, "value": 3.16 }, + { "time": 0.1667, "value": -7.3 }, + { "time": 0.2667, "value": 14.19 }, + { "time": 0.3333, "value": 5.37 }, + { "time": 0.5, "value": -1.88 }, + { "time": 0.7667, "value": 2.1 }, + { "time": 0.9667, "value": 8.65 }, + { "time": 1.0333, "value": -10.01 }, + { "time": 1.1, "value": -14.96 }, + { "time": 1.1667, "value": 2.21 }, + { "time": 1.2333, "value": 6.21 }, + { "time": 1.3, "value": 1.14 }, + { "time": 1.4, "value": -2.77 } + ] + }, + "bone": { + "rotate": [ + {}, + { "time": 0.1, "value": 3.16 }, + { "time": 0.1667, "value": -7.3 }, + { "time": 0.2667, "value": 14.19 }, + { "time": 0.3333, "value": 5.37 }, + { "time": 0.5, "value": -1.88 }, + { "time": 0.7667, "value": 2.1 }, + { "time": 0.9667, "value": 8.65 }, + { "time": 1.0333, "value": -10.01 }, + { "time": 1.1, "value": -14.96 }, + { "time": 1.1667, "value": 2.21 }, + { "time": 1.2333, "value": 6.21 }, + { "time": 1.3, "value": 1.14 }, + { "time": 1.4, "value": -2.77 } + ] + }, + "bone2": { + "rotate": [ + {}, + { "time": 0.1, "value": 3.16 }, + { "time": 0.1667, "value": -7.3 }, + { "time": 0.2667, "value": 14.19 }, + { "time": 0.3333, "value": 5.37 }, + { "time": 0.5, "value": -1.88 }, + { "time": 0.7667, "value": 2.1 }, + { "time": 0.9667, "value": 8.65 }, + { "time": 1.0333, "value": -10.01 }, + { "time": 1.1, "value": -14.96 }, + { "time": 1.1667, "value": 2.21 }, + { "time": 1.2333, "value": 6.21 }, + { "time": 1.3, "value": 1.14 }, + { "time": 1.4, "value": -2.77 } + ] + } + } + }, + "roar": { + "slots": { + "mouth-smile": { + "attachment": [ + { "time": 0.6, "name": "mouth-grind" }, + { "time": 1.4333, "name": "mouth-smile" } + ] + } + }, + "bones": { + "hip": { + "rotate": [ + { + "curve": [ 0.05, 0, 0.15, -27.34 ] + }, + { + "time": 0.2, + "value": -27.34, + "curve": [ 0.233, -25.35, 0.266, -23.74 ] + }, + { + "time": 0.3, + "value": -22.37, + "curve": [ 0.405, -20.58, 0.469, -9.98 ] + }, + { "time": 0.5333, "value": -3.36 }, + { "time": 0.6, "value": -5.46 }, + { "time": 0.6667, "value": -0.43 }, + { + "time": 1.5667, + "value": -12.77, + "curve": [ 1.636, -12.77, 1.688, -0.53 ] + }, + { "time": 1.8 } + ], + "translate": [ + { + "curve": [ 0.163, -1.65, 0.15, -225.6, 0.163, -0.57, 0.15, -78.54 ] + }, + { + "time": 0.2, + "x": -225.6, + "y": -78.54, + "curve": [ 0.233, -271.26, 0.266, -308.92, 0.233, -75.28, 0.266, -72.59 ] + }, + { + "time": 0.3, + "x": -339.74, + "y": -70.39, + "curve": [ 0.411, -339.64, 0.485, -194.3, 0.411, -70.42, 0.485, -120.84 ] + }, + { "time": 0.5333, "x": -121.06, "y": -146.24 }, + { "time": 0.6, "x": -9.1, "y": -87.2 }, + { "time": 0.6667, "x": 44.98, "y": -13.34 }, + { "time": 0.7333, "x": 41.57, "y": -6.52 }, + { "time": 0.8, "x": 44.98, "y": -13.34 }, + { + "time": 0.8667, + "x": 41.57, + "y": -6.52, + "curve": [ 0.958, 41.57, 1.142, 48.94, 0.958, -6.52, 1.142, -29.36 ] + }, + { + "time": 1.2333, + "x": 48.94, + "y": -29.36, + "curve": [ 1.425, 43.12, 1.44, -85.26, 1.425, -27.52, 1.44, 12.87 ] + }, + { + "time": 1.5667, + "x": -127.64, + "y": 26.21, + "curve": [ 1.627, -127.01, 1.683, -82.53, 1.627, 26.55, 1.683, 50.6 ] + }, + { + "time": 1.7333, + "x": -45.45, + "y": 70.65, + "curve": [ 1.757, -37.61, 1.779, -30.39, 1.757, 60.29, 1.779, 50.77 ] + }, + { + "time": 1.8, + "x": -25.54, + "y": 44.36, + "curve": [ 1.811, -0.16, 1.937, -9.16, 1.811, 0.28, 1.937, 15.9 ] + }, + { "time": 2 } + ] + }, + "torso2": { + "rotate": [ + {}, + { "time": 0.2, "value": 0.52 }, + { "time": 0.6, "value": -22.13 }, + { "time": 1.5667, "value": 0.52 }, + { "time": 1.8 } + ] + }, + "spineboy-torso": { + "rotate": [ + {}, + { "time": 0.2, "value": -12.47 }, + { "time": 0.3, "value": -37.77 }, + { "time": 0.4, "value": -51.05 }, + { "time": 0.5, "value": -59.08 }, + { "time": 0.6, "value": -73.34 }, + { "time": 0.6667, "value": -74.18 }, + { "time": 0.8, "value": -68.39 }, + { "time": 0.8667, "value": -67.25 }, + { "time": 1.1, "value": -62.14 }, + { "time": 1.2, "value": -64.59 }, + { "time": 1.3667, "value": -50.19 }, + { "time": 1.5667, "value": -12.47 }, + { "time": 1.8 } + ] + }, + "head2": { + "rotate": [ + { "value": 12.98 }, + { "time": 0.2, "value": 29.86 }, + { "time": 0.3, "value": 38.44 }, + { "time": 0.6, "value": 42.77 }, + { "time": 0.7, "value": 46.69 }, + { "time": 0.8667, "value": 45.89 }, + { "time": 1.2, "value": 45.61 }, + { "time": 1.2667, "value": 42.06 }, + { "time": 1.3667, "value": 48.76 }, + { "time": 1.5667, "value": 29.86 }, + { "time": 1.8 }, + { "time": 2, "value": 12.98 } + ] + }, + "neck2": { + "rotate": [ + {}, + { "time": 0.2, "value": 11.08 }, + { "time": 0.6, "value": 37.25 }, + { "time": 1.2, "value": 33.93 }, + { "time": 1.3667, "value": 27.8 }, + { "time": 1.5667, "value": 11.08 }, + { "time": 1.8 } + ] + }, + "front-arm1": { + "rotate": [ + {}, + { + "time": 0.2, + "value": 25.6, + "curve": [ 0.312, -6.2, 0.412, -20.34 ] + }, + { "time": 0.6, "value": -33.29 }, + { "time": 0.6667, "value": -19.24 }, + { "time": 0.8333, "value": -28.76 }, + { "time": 1.3667, "value": -18.16 }, + { "time": 1.8, "value": 13.78 }, + { "time": 2 } + ] + }, + "front-arm2": { + "rotate": [ + {}, + { + "time": 0.2, + "value": 23.11, + "curve": [ 0.277, 9.56, 0.351, -0.85 ] + }, + { + "time": 0.4333, + "value": -9.34, + "curve": [ 0.454, -7.86, 0.476, -6.57 ] + }, + { + "time": 0.5, + "value": -5.4, + "curve": [ 0.529, -23.11, 0.561, -38.09 ] + }, + { "time": 0.6, "value": -52.61 }, + { "time": 0.7667, "value": -65.84 }, + { "time": 1.0333, "value": -39.95 }, + { "time": 1.3667, "value": -67.86 }, + { "time": 1.8, "value": -8.99 }, + { "time": 2 } + ] + }, + "front-hand": { + "rotate": [ + {}, + { "time": 0.2, "value": -7.24 }, + { "time": 0.5, "value": -25.8 }, + { "time": 0.6, "value": 33.41 }, + { "time": 0.7667, "value": 52.51 }, + { "time": 1.4, "value": -30.97 }, + { "time": 1.5667, "value": -7.24 }, + { "time": 1.8 } + ] + }, + "back-arm2": { + "rotate": [ + {}, + { + "time": 0.2333, + "value": 23.11, + "curve": [ 0.298, 11.73, 0.359, 3.8 ] + }, + { + "time": 0.4333, + "value": -2.44, + "curve": [ 0.463, -9.82, 0.496, -16.21 ] + }, + { + "time": 0.5333, + "value": -22.11, + "curve": [ 0.554, -41.41, 0.576, -59.66 ] + }, + { "time": 0.6, "value": -77.6 }, + { "time": 0.7667, "value": -66.07 }, + { "time": 1.3667, "value": -58.31 }, + { "time": 1.8, "value": -8.99 }, + { "time": 2 } + ] + }, + "back-hand": { + "rotate": [ + {}, + { "time": 0.2, "value": -7.24 }, + { "time": 0.4333, "value": -36 }, + { "time": 0.6, "value": 10.34 }, + { "time": 0.7667, "value": 55.96 }, + { "time": 1.2333, "value": 8.39 }, + { "time": 1.8 } + ] + }, + "back-arm1": { + "rotate": [ + {}, + { + "time": 0.2333, + "value": 51.21, + "curve": [ 0.336, 13.2, 0.428, -3.69 ] + }, + { "time": 0.6, "value": -19.18 }, + { "time": 0.7667, "value": -25.79 }, + { "time": 1.3667, "value": -3.03 }, + { "time": 1.8, "value": 13.78 }, + { "time": 2 } + ] + }, + "neck": { + "rotate": [ + {}, + { + "time": 0.2, + "value": -8.26, + "curve": [ 0.312, 3.46, 0.412, 8.67 ] + }, + { "time": 0.6, "value": 13.44 }, + { + "time": 1.5667, + "value": -8.26, + "curve": [ 1.632, -3.8, 1.69, -1.82 ] + }, + { "time": 1.8 } + ], + "translate": [ + {}, + { + "time": 0.2, + "x": -19.98, + "y": -1.45, + "curve": [ 0.312, 10.09, 0.412, 23.45, 0.312, -26.25, 0.412, -37.28 ] + }, + { "time": 0.6, "x": 35.7, "y": -47.38 }, + { "time": 1.4667, "x": 2.83, "y": -4.9 }, + { "time": 1.5667, "x": 12.18, "y": 3.64 }, + { "time": 1.8, "x": 2.83, "y": -4.9 }, + { "time": 2 } + ] + }, + "head": { + "rotate": [ + {}, + { + "time": 0.2, + "value": 9.94, + "curve": [ 0.312, 17.13, 0.412, 20.32 ] + }, + { "time": 0.6, "value": 23.25 }, + { "time": 0.7333, "value": 24.85 }, + { "time": 0.9333, "value": 25.3 }, + { "time": 1.3667, "value": 27.9 }, + { + "time": 1.5667, + "value": 12, + "curve": [ 1.59, 11.97, 1.625, 11.95 ] + }, + { + "time": 1.6667, + "value": 11.92, + "curve": [ 1.735, 6.9, 1.828, 3.9 ] + }, + { "time": 1.9 } + ], + "translate": [ + { + "time": 0.2, + "curve": [ 0.312, 6.64, 0.412, 9.59, 0.312, -48.18, 0.412, -69.6 ] + }, + { "time": 0.6, "x": 12.3, "y": -89.23 }, + { "time": 0.6667, "x": 18.74, "y": -87.42 }, + { "time": 0.7333, "x": 16.57, "y": -87.92 }, + { "time": 0.8, "x": 18.74, "y": -87.42 }, + { "time": 0.8667, "x": 16.57, "y": -87.92 }, + { "time": 0.9333, "x": 18.74, "y": -87.42 }, + { "time": 1.3667, "x": 27.31, "y": -84.9 }, + { "time": 1.5667 } + ] + }, + "jaw": { + "rotate": [ + { "value": -1.2 }, + { "time": 0.2, "value": 1.83 }, + { "time": 0.4333, "value": -13.72 }, + { "time": 0.6, "value": -55.29 }, + { "time": 0.7333, "value": -49.51 }, + { "time": 0.7667, "value": -47.49 }, + { "time": 0.8, "value": -45.13 }, + { "time": 0.8333, "value": -43.73 }, + { "time": 0.8667, "value": -43.36 }, + { "time": 0.9, "value": -40.64 }, + { + "time": 0.9333, + "value": -42.02, + "curve": [ 1.295, -40.61, 1.316, -24.97 ] + }, + { "time": 1.4, "value": -17.61 }, + { + "time": 1.5667, + "value": -8.79, + "curve": [ 1.632, -4.04, 1.69, -1.93 ] + }, + { "time": 1.8 } + ], + "translate": [ + { "x": -3.44, "y": 2.51 }, + { + "time": 0.2, + "curve": [ 0.312, -10.51, 0.412, -15.19, 0.312, 9.69, 0.412, 14 ] + }, + { "time": 0.6, "x": -19.47, "y": 17.94 }, + { "time": 0.6667, "x": -30.92, "y": 23.07 }, + { "time": 1.5667, "x": -3.44, "y": 2.51 } + ] + }, + "tongue1": { + "rotate": [ + { "time": 0.1667, "value": 16.25 }, + { + "time": 0.2, + "value": 15.93, + "curve": [ 0.244, 8.94, 0.286, 3.68 ] + }, + { + "time": 0.3333, + "value": -0.58, + "curve": [ 0.378, 1.91, 0.43, 3.65 ] + }, + { "time": 0.5, "value": 5.31 }, + { "time": 0.6, "value": -4.66 }, + { "time": 0.6667, "value": 5.7 }, + { "time": 0.7, "value": 13.7 }, + { "time": 0.8333, "value": 16.75 }, + { "time": 1, "value": 15.1 }, + { "time": 1.1, "value": 17.24 }, + { "time": 1.2667, "value": 2.26 }, + { + "time": 1.5667, + "value": 32.1, + "curve": [ 1.632, 14.77, 1.69, 7.06 ] + }, + { "time": 1.8 } + ], + "translate": [ + { "x": -22.37, "y": 13.32 } + ], + "scale": [ + { "time": 0.2 }, + { "time": 0.5667, "x": 1.16 }, + { "time": 0.7, "x": 1.413 }, + { "time": 0.8333, "x": 1.632 }, + { "time": 1.5667 } + ] + }, + "torso1": { + "rotate": [ + { "time": 0.6 }, + { "time": 0.6667, "value": -6.14 }, + { "time": 0.7333, "value": -3.57 }, + { "time": 0.8, "value": -6.14 }, + { "time": 0.8667, "value": -3.57 }, + { "time": 1, "value": 3.56 }, + { "time": 1.3667, "value": -6.11 }, + { "time": 1.5667 } + ] + }, + "horn-back": { + "rotate": [ + { "time": 0.2 }, + { "time": 1, "value": 7.62 }, + { "time": 1.8 } + ] + }, + "horn-front": { + "rotate": [ + { "time": 0.2 }, + { "time": 1, "value": 7.62 }, + { "time": 1.8 } + ] + }, + "front-leg-target": { + "translate": [ + {}, + { "time": 0.1333, "x": 94.98, "y": 17.68, "curve": "stepped" }, + { "time": 0.1667, "x": 94.98, "y": 17.68 }, + { + "time": 0.3, + "x": -61.43, + "y": -80.97, + "curve": [ 0.477, -59.17, 0.47, 23.78, 0.477, -78.87, 0.47, -1.89 ] + }, + { "time": 0.6, "x": 54.8, "y": 26.89 }, + { "time": 0.6667, "x": 104.34, "y": 47.28 }, + { + "time": 1.2333, + "x": 126.91, + "y": 52.57, + "curve": [ 1.384, 106.78, 1.466, 88.98, 1.384, 46.37, 1.466, 40.88 ] + }, + { "time": 1.5667, "x": 49.5, "y": 28.71 }, + { "time": 2 } + ] + }, + "back-leg-target": { + "translate": [ + {}, + { + "time": 0.2, + "x": -40.46, + "y": -17.34, + "curve": [ 0.277, -39.91, 0.35, -39.49, 0.277, -12.33, 0.35, -8.55 ] + }, + { + "time": 0.4333, + "x": -39.15, + "y": -5.5, + "curve": [ 0.478, -15.45, 0.53, 1.22, 0.478, 14.63, 0.53, 28.79 ] + }, + { "time": 0.6, "x": 17.09, "y": 42.26 }, + { + "time": 1.2333, + "x": 31.18, + "y": 60.17, + "curve": [ 1.384, 18.12, 1.466, 6.57, 1.384, 49.63, 1.466, 40.3 ] + }, + { "time": 1.5667, "x": -19.04, "y": 19.62 }, + { "time": 2 } + ] + }, + "spineboy-hip": { + "translate": [ + {}, + { "time": 0.2, "x": 35.97, "y": -11.83 }, + { "time": 0.3, "x": 42.12, "y": -39.3 }, + { "time": 0.4333, "x": 48.96, "y": -59.92 }, + { "time": 0.5, "x": 48.85, "y": -52.7 }, + { "time": 0.6, "x": 49.06, "y": -51.25 }, + { "time": 0.6667, "x": 56.03, "y": -56.03 }, + { "time": 0.7333, "x": 43.66, "y": -49.87 }, + { "time": 0.8, "x": 42.93, "y": -49.25 }, + { "time": 0.8667, "x": 34.13, "y": -41.42 }, + { "time": 1, "x": 43.1, "y": -52.61 }, + { "time": 1.2667, "x": 53.82, "y": -63.04 }, + { "time": 1.3667, "x": 60.15, "y": -45.04 }, + { "time": 1.5667, "x": 35.97, "y": -11.83 }, + { "time": 1.8 } + ] + }, + "front-hand2": { + "rotate": [ + {}, + { "time": 0.2, "value": -21.93 }, + { "time": 0.3, "value": -23.29 }, + { "time": 0.4, "value": -29.8 }, + { "time": 0.5, "value": -36.62 }, + { "time": 0.6, "value": -40.49 }, + { "time": 0.6667, "value": -38.28 }, + { "time": 0.7333, "value": -33.33 }, + { "time": 0.8, "value": -28.06 }, + { "time": 1.3, "value": -27.17 }, + { "time": 1.4, "value": -27.62 }, + { "time": 1.5667 } + ] + }, + "spineboy-front-arm-target": { + "translate": [ + { "time": 0.2 }, + { "time": 0.6, "x": 42.84, "y": -71.37 }, + { "time": 0.8, "x": 23.9, "y": -69.35 }, + { "time": 1.3, "x": 21.13, "y": -48.34 }, + { "time": 1.4, "x": 17.74, "y": -52.7 }, + { "time": 1.5667 } + ] + }, + "gun": { + "rotate": [ + {}, + { "time": 0.2, "value": 15.28 }, + { "time": 0.3333, "value": -13.87 }, + { + "time": 0.4, + "value": -40.91, + "curve": [ 0.552, -40.91, 0.59, -18.98 ] + }, + { "time": 0.6, "value": -15.61 }, + { + "time": 0.6667, + "value": -43.39, + "curve": [ 0.697, -43.39, 0.717, -25.56 ] + }, + { "time": 0.7333, "value": -25.56 }, + { "time": 1, "value": -23.42 }, + { "time": 1.1667, "value": -21.64 }, + { "time": 1.3667, "value": -27.73 }, + { "time": 1.5667, "value": -6.38 }, + { "time": 1.7, "value": -14.44 }, + { "time": 1.8 }, + { "time": 1.9, "value": -15.75 }, + { "time": 2 } + ], + "translate": [ + { "time": 0.2 }, + { "time": 0.6, "x": -18.37, "y": -9.19 }, + { "time": 1.5667 } + ] + }, + "tail1": { + "rotate": [ + {}, + { + "time": 0.2667, + "value": -14.69, + "curve": [ 0.36, -6.76, 0.443, -3.23 ] + }, + { "time": 0.6 }, + { "time": 0.7667, "value": 2.68 }, + { + "time": 0.9333, + "value": 3.2, + "curve": [ 1.021, 3.01, 1.1, -4.09 ] + }, + { + "time": 1.1667, + "value": -9.15, + "curve": [ 1.224, -11.06, 1.265, -14.01 ] + }, + { "time": 1.3, "value": -14.94 }, + { + "time": 1.5667, + "value": -11.02, + "curve": [ 1.6, -11, 1.633, -10.97 ] + }, + { + "time": 1.6667, + "value": -10.95, + "curve": [ 1.711, -7.09, 1.756, -3.44 ] + }, + { "time": 1.8 }, + { "time": 2, "value": 1.01 } + ] + }, + "tail3": { + "rotate": [ + { "value": -4.66 }, + { "time": 0.1333, "value": -1.14 }, + { + "time": 0.2667, + "value": -10.12, + "curve": [ 0.296, -16.74, 0.37, -22.5 ] + }, + { + "time": 0.4667, + "value": -27.25, + "curve": [ 0.506, -15.99, 0.552, -6.32 ] + }, + { "time": 0.6, "value": 1.58 }, + { "time": 0.7333, "value": -9.15 }, + { "time": 0.8333, "value": -9.17 }, + { "time": 0.9333, "value": -8.75 }, + { "time": 1.2, "value": -1.6 }, + { "time": 1.3333, "value": -14.48 }, + { "time": 1.5, "value": -9.35 }, + { "time": 1.6667, "value": 17.55 }, + { "time": 1.8333, "value": 21.29 }, + { "time": 2, "value": -4.66 } + ] + }, + "tail5": { + "rotate": [ + { "value": 5.3 }, + { "time": 0.1333, "value": 13.48 }, + { "time": 0.2667, "value": 22.33 }, + { + "time": 0.4667, + "value": -17.34, + "curve": [ 0.503, -13.32, 0.544, -10.53 ] + }, + { "time": 0.6, "value": -7.88 }, + { "time": 0.7333, "value": -2.96 }, + { "time": 0.8333, "value": -5.92 }, + { "time": 0.9333, "value": -5.02 }, + { "time": 1.2, "value": 6.61 }, + { "time": 1.3333, "value": 14.51 }, + { "time": 1.5, "value": -15.86 }, + { "time": 1.6667, "value": -4.49 }, + { "time": 2, "value": 5.3 } + ] + }, + "tail7": { + "rotate": [ + { "value": -10.89 }, + { "time": 0.1333, "value": 12.24 }, + { "time": 0.2667, "value": 19.39 }, + { + "time": 0.4667, + "value": -11.34, + "curve": [ 0.503, -11.11, 0.544, -10.94 ] + }, + { "time": 0.6, "value": -10.79 }, + { "time": 0.7333, "value": -0.59 }, + { "time": 0.8333, "value": 9.29 }, + { "time": 0.9333, "value": -4.49 }, + { "time": 1.2, "value": 7.15 }, + { "time": 1.3333, "value": 15.05 }, + { "time": 1.5, "value": -11.36 }, + { "time": 1.6667, "value": -25.05 }, + { "time": 1.8333, "value": -9.49 }, + { "time": 2, "value": -10.89 } + ] + }, + "tail9": { + "rotate": [ + { "value": -10.89 }, + { "time": 0.1333, "value": 18.57 }, + { "time": 0.2667, "value": 23.95 }, + { + "time": 0.4667, + "value": -15.74, + "curve": [ 0.503, -13.21, 0.544, -11.46 ] + }, + { "time": 0.6, "value": -9.8 }, + { "time": 0.7333, "value": 8.13 }, + { "time": 0.8333, "value": 11.04 }, + { "time": 0.9333, "value": -2.74 }, + { "time": 1.2, "value": 8.89 }, + { "time": 1.3333, "value": 16.79 }, + { "time": 1.5, "value": -9.62 }, + { "time": 1.6667, "value": -23.3 }, + { "time": 1.8333, "value": -7.74 }, + { "time": 2, "value": -10.89 } + ] + }, + "tongue2": { + "rotate": [ + {}, + { "time": 0.1667, "value": 6.48 }, + { "time": 0.2, "value": 4.21 }, + { "time": 0.2667, "value": 52.29 }, + { "time": 0.5, "value": 17.71 }, + { "time": 0.6, "value": 2.84 }, + { "time": 0.6667, "value": 10.48 }, + { "time": 0.7, "value": -9.91 }, + { "time": 0.7333, "value": -12.97 }, + { "time": 0.7667, "value": -5.12 }, + { "time": 0.8, "value": -5.09 }, + { "time": 0.8333, "value": 1.23 }, + { "time": 1, "value": -33.21 }, + { "time": 1.2, "value": 14.14 }, + { "time": 1.3667, "value": 12.21 }, + { "time": 1.5667, "value": -13.32 }, + { "time": 1.8 } + ], + "translate": [ + { "time": 0.2 }, + { "time": 0.5, "x": 6.19, "y": 1.67, "curve": "stepped" }, + { "time": 1.0667, "x": 6.19, "y": 1.67 }, + { "time": 1.3 } + ] + }, + "tongue3": { + "rotate": [ + {}, + { "time": 0.1667, "value": 6.48 }, + { "time": 0.2, "value": 4.21 }, + { "time": 0.2667, "value": 52.29 }, + { "time": 0.5, "value": 17.71 }, + { "time": 0.6, "value": 13.82 }, + { "time": 0.6667, "value": -2.82 }, + { "time": 0.7, "value": -6.98 }, + { "time": 0.7333, "value": -20.11 }, + { "time": 0.7667, "value": -0.12 }, + { "time": 0.8, "value": -7.1 }, + { "time": 0.8333, "value": 1.23 }, + { "time": 1, "value": -33.21 }, + { "time": 1.2, "value": 14.14 }, + { "time": 1.3667, "value": 19.46 }, + { "time": 1.5667, "value": -36.24 }, + { "time": 1.8 } + ], + "translate": [ + { "time": 0.2 }, + { "time": 0.5, "x": 11.48, "y": 3.7 }, + { "time": 1.2333 } + ] + }, + "saddle-strap-back": { + "rotate": [ + { "value": -2.53 }, + { "time": 0.2, "value": -6.38 }, + { "time": 0.2667, "value": -12.9 }, + { "time": 0.5, "value": -4.15 }, + { "time": 0.6, "value": -20.2 }, + { "time": 0.7, "value": -5.55 }, + { "time": 0.8, "value": -3.4 }, + { "time": 1.3333, "value": -6.7 }, + { "time": 1.5667, "value": -10.34 }, + { "time": 1.6333, "value": -9.23 }, + { "time": 1.8 }, + { "time": 2, "value": -2.53 } + ], + "scale": [ + { "time": 0.6 }, + { "time": 0.6667, "x": 1.083 }, + { "time": 0.8, "x": 1.097 }, + { "time": 1.5667 } + ] + }, + "front-foot-target": { + "rotate": [ + {}, + { "time": 0.1, "value": -31.3 }, + { "time": 0.1667, "value": -17.24 }, + { "time": 1.6, "value": -2.25 }, + { "time": 1.6667, "value": -21.66 }, + { "time": 1.8 } + ], + "translate": [ + {}, + { "time": 0.0333, "x": -101.15, "y": 98.46 }, + { "time": 0.1, "x": -308.64, "y": 72.48 }, + { "time": 0.1667, "x": -392.1, "y": 9.43, "curve": "stepped" }, + { "time": 1.6, "x": -392.1, "y": 9.43 }, + { "time": 1.6667, "x": -308.05, "y": 111.02 }, + { "time": 1.8 } + ] + }, + "front-foot2": { + "rotate": [ + {}, + { "time": 0.0333, "value": -34.39 }, + { "time": 0.1, "value": -11.91 }, + { "time": 0.2, "value": -11.36 }, + { "time": 1.6, "value": 14.29 }, + { "time": 1.6667, "value": -41.83 }, + { "time": 1.7333, "value": -1.1 }, + { "time": 1.8 } + ], + "scale": [ + { "time": 0.5667 }, + { "time": 0.6667, "x": 1.051 } + ] + }, + "front-foot3": { + "rotate": [ + {}, + { "time": 0.0333, "value": 8 }, + { "time": 0.1, "value": -1.59 }, + { "time": 0.2, "value": 16.32 }, + { "time": 1.6, "value": -8.75 }, + { "time": 1.6667, "value": -12.37 }, + { "time": 1.8 } + ], + "translate": [ + { "x": -29.67, "curve": "stepped" }, + { "time": 1.6, "x": -29.67 }, + { "time": 1.6667, "x": -34.03, "y": 8.95 }, + { "time": 2, "x": -29.67 } + ], + "scale": [ + { "time": 0.5667 }, + { "time": 0.6667, "x": 1.058 } + ] + }, + "back-hand2": { + "rotate": [ + { "value": -21.46 }, + { "time": 0.2, "value": -21.93 }, + { "time": 0.3, "value": -8.39 }, + { "time": 0.4, "value": -5.38 }, + { "time": 0.5, "value": -30.38 }, + { "time": 0.6, "value": -55.56 }, + { "time": 0.6667, "value": -18.74 }, + { "time": 0.7333, "value": -20.26 }, + { "time": 0.8, "value": -21.46 } + ] + }, + "saddle": { + "rotate": [ + { "value": -3.18 }, + { "time": 0.6 }, + { "time": 0.8, "value": -3.18 } + ], + "translate": [ + { "x": 12.68, "y": -2.67 }, + { "time": 0.6, "x": 9.26, "y": -0.42 }, + { "time": 0.7, "x": 12.68, "y": -2.67 } + ] + }, + "saddle-strap-front": { + "rotate": [ + { "value": -0.37 }, + { "time": 0.2667, "value": 0.04 }, + { "time": 0.4667, "value": -4 }, + { "time": 0.6, "value": -7 }, + { "time": 0.7, "value": -7.25 }, + { "time": 0.8, "value": -3.69 }, + { "time": 1.4667, "value": -0.58 }, + { "time": 1.7667, "value": 0.55 }, + { "time": 2, "value": -0.37 } + ] + }, + "spineboy-back-arm-target": { + "translate": [ + {}, + { "time": 0.6, "x": 56.17, "y": -58.56 }, + { "time": 0.8, "x": 34.47, "y": -59.19 }, + { "time": 2 } + ] + }, + "tail2": { + "rotate": [ + { "value": -4.33 }, + { "time": 0.1333, "value": -15.43 }, + { "time": 0.2667, "value": -9.41 }, + { "time": 0.7333, "value": 0.95 }, + { "time": 0.9333, "value": -1.28 }, + { "time": 1.3333, "value": -16.53 }, + { "time": 1.5, "value": -5.17 }, + { "time": 1.6667, "value": 7.32 }, + { "time": 1.8333, "value": 11.05 }, + { "time": 2, "value": -4.33 } + ] + }, + "tail4": { + "rotate": [ + { "value": 13.37 }, + { "time": 0.1333, "value": 7.68 }, + { "time": 0.2667, "value": 6.84 }, + { "time": 0.4667, "value": -2.28 }, + { "time": 0.7333, "value": -2.62 }, + { "time": 0.8333, "value": -6.07 }, + { "time": 0.9333, "value": 2.21 }, + { "time": 1.2, "value": 9.58 }, + { "time": 1.3333, "value": -0.15 }, + { "time": 1.5, "value": -20.79 }, + { "time": 1.6667, "value": -9.43 }, + { "time": 1.8333, "value": -5.7 }, + { "time": 2, "value": 13.37 } + ] + }, + "tail6": { + "rotate": [ + { "value": 5.3 }, + { "time": 0.1333, "value": 7.74 }, + { "time": 0.2667, "value": 10.2 }, + { "time": 0.4667, "value": -12.04 }, + { "time": 0.6, "value": -1.26 }, + { "time": 0.9333, "value": -4.96 }, + { "time": 1.2, "value": 6.67 }, + { "time": 1.3333, "value": 14.57 }, + { "time": 1.5, "value": -11.84 }, + { "time": 1.6667, "value": -25.53 }, + { "time": 1.8333, "value": -9.25 }, + { "time": 2, "value": 5.3 } + ] + }, + "tail8": { + "rotate": [ + { "value": -10.89 }, + { "time": 0.1333, "value": 6.12 }, + { "time": 0.2667, "value": 15.74 }, + { "time": 0.4667, "value": -21.25 }, + { "time": 0.6, "value": -8.03 }, + { "time": 0.7333, "value": 4.9 }, + { "time": 0.8333, "value": 1.83 }, + { "time": 0.9333, "value": -11.95 }, + { "time": 1.2, "value": -0.32 }, + { "time": 1.3333, "value": 7.59 }, + { "time": 1.5, "value": -18.82 }, + { "time": 1.6667, "value": -32.51 }, + { "time": 1.8333, "value": -16.95 }, + { "time": 2, "value": -10.89 } + ] + }, + "tail10": { + "rotate": [ + { "value": -10.89 }, + { "time": 0.1333, "value": 4.18 }, + { "time": 0.2667, "value": 4.66 }, + { "time": 0.4667, "value": -20.32 }, + { "time": 0.7333, "value": 1.73 }, + { "time": 0.8333, "value": -1.06 }, + { "time": 0.9333, "value": -14.83 }, + { "time": 1.2, "value": -3.2 }, + { "time": 1.3333, "value": 4.7 }, + { "time": 1.5, "value": -21.71 }, + { "time": 1.6667, "value": -35.4 }, + { "time": 1.8333, "value": -19.84 }, + { "time": 2, "value": -10.89 } + ] + }, + "jaw-inside": { + "rotate": [ + {}, + { "time": 0.7333, "value": 13.77 } + ], + "translate": [ + {}, + { "time": 0.5667, "x": -4.3, "y": 4.48 }, + { "time": 0.7333, "x": -23.59, "y": -9.32 } + ], + "scale": [ + { "time": 0.5667 }, + { "time": 0.7333, "x": 1.119 } + ] + }, + "bone": { + "rotate": [ + {}, + { "time": 0.1667, "value": -6.45 }, + { "time": 0.2667, "value": 4.84 }, + { "time": 0.6667, "value": 14.69 }, + { "time": 0.7667, "value": -1.4 }, + { "time": 0.8333, "value": 3.9 }, + { "time": 1.3333, "value": 0.49 }, + { "time": 1.5, "value": -8.16 }, + { "time": 1.5667, "value": 4.87 }, + { "time": 1.6333, "value": -1.8 }, + { "time": 1.8333, "value": 1.81 }, + { "time": 2 } + ] + }, + "bone2": { + "rotate": [ + {}, + { "time": 0.1667, "value": -6.45 }, + { "time": 0.2667, "value": 4.84 }, + { "time": 0.6667, "value": 14.69 }, + { "time": 0.7667, "value": -1.4 }, + { "time": 0.8333, "value": 3.9 }, + { "time": 1.3333, "value": 0.49 }, + { "time": 1.5, "value": -8.16 }, + { "time": 1.5667, "value": 4.87 }, + { "time": 1.6333, "value": -1.8 }, + { "time": 1.8333, "value": 1.81 }, + { "time": 2 } + ] + }, + "bone3": { + "rotate": [ + {}, + { "time": 0.1667, "value": -6.45 }, + { "time": 0.2667, "value": 4.84 }, + { "time": 0.6667, "value": 14.69 }, + { "time": 0.7667, "value": -1.4 }, + { "time": 0.8333, "value": 3.9 }, + { "time": 1.3333, "value": 0.49 }, + { "time": 1.5, "value": -8.16 }, + { "time": 1.5667, "value": 4.87 }, + { "time": 1.6333, "value": -1.8 }, + { "time": 1.8333, "value": 1.81 }, + { "time": 2 } + ] + }, + "bone4": { + "rotate": [ + {}, + { "time": 0.1667, "value": -6.45 }, + { "time": 0.2667, "value": 4.84 }, + { "time": 0.6667, "value": 14.69 }, + { "time": 0.7667, "value": -1.4 }, + { "time": 0.8333, "value": 3.9 }, + { "time": 1.3333, "value": 0.49 }, + { "time": 1.5, "value": -8.16 }, + { "time": 1.5667, "value": 4.87 }, + { "time": 1.6333, "value": -1.8 }, + { "time": 1.8333, "value": 1.81 }, + { "time": 2 } + ] + }, + "bone5": { + "rotate": [ + {}, + { "time": 0.1667, "value": -6.45 }, + { "time": 0.2667, "value": 4.84 }, + { "time": 0.6667, "value": 14.69 }, + { "time": 0.7667, "value": -1.4 }, + { "time": 0.8333, "value": 3.9 }, + { "time": 1.3333, "value": 0.49 }, + { "time": 1.5, "value": -8.16 }, + { "time": 1.5667, "value": 4.87 }, + { "time": 1.6333, "value": -1.8 }, + { "time": 1.8333, "value": 1.81 }, + { "time": 2 } + ] + } + }, + "deform": { + "default": { + "raptor-front-leg": { + "raptor-front-leg": [ + {}, + { + "time": 0.1667, + "offset": 150, + "vertices": [ -10.88947, -30.36389, -10.71732, -22.72197, 25.01976, 2.27203, -7.08154, -15.97241, 17.35857, 1.98693, -7.08154, -15.97241, 17.35857, 1.98693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7.08154, -15.97241, -16.2515, -6.41524, 0, 0, 0, 0, -2.62177, -5.91267, 6.42596, 0.73537, -2.62177, -5.91267, 6.42596, 0.73537, -2.62177, -5.91267, 6.42596, 0.73537 ] + }, + { + "time": 0.5, + "offset": 144, + "vertices": [ -13.42749, 17.0267, 15.81436, -1.82489, 12.55496, -3.69128, -14.84991, -27.69955, -12.20212, -20.72182, 23.54478, 0.26454, -7.08154, -15.97241, 17.35857, 1.98693, -7.08154, -15.97241, 17.35857, 1.98693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7.08154, -15.97241, -16.2515, -6.41524, 0, 0, 0, 0, -2.62177, -5.91267, 6.42596, 0.73537, -2.14818, -17.13634, 17.0141, 4.48871, 0.76036, -16.70564, 15.74725, 7.14192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7.43222, -10.01694, -8.45212, 9.17316, 0, 0, 0, 0, 0, 0, 0, 0, 8.35347, -9.45856, -10.85333, -6.43872 ] + }, + { + "time": 0.7, + "offset": 144, + "vertices": [ -8.16173, 41.49426, 18.18862, -10.69293, -6.44682, -46.91269, -10.54358, -11.12482, -6.70166, -2.12044, 13.43587, 16.82005, -7.08154, -15.97241, 17.35857, 1.98693, -7.08154, -15.97241, 17.35857, 1.98693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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.77762, -30.78729, -28.91833, 1.94682, 0, 0, 0, 0, -2.62177, -5.91267, 6.42596, 0.73537, -2.14818, -17.13634, 17.0141, 4.48871, 0.76036, -16.70564, 15.74725, 7.14192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7.43222, -10.01694, -8.45212, 9.17316, 0.67496, -8.34445, -6.28122, 5.53439, 2.34509, 11.36743, 6.20795, -9.80856, 19.70685, -3.18417, -16.38966, -11.3985 ] + }, + { "time": 1.8 } + ] + } + } + } + }, + "walk": { + "slots": { + "raptor-jaw-inside": { + "color": [ + { "color": "646464ff" }, + { "time": 0.5333, "color": "808080ff" }, + { "time": 1.0667, "color": "646464ff" } + ] + }, + "tail-shadow": { + "color": [ + { "color": "0000004a" }, + { "time": 0.1333, "color": "00000000" }, + { "time": 0.2667, "color": "0000000c", "curve": "stepped" }, + { "time": 0.4333, "color": "0000000c" }, + { "time": 0.4667, "color": "0000001c" }, + { "time": 0.5333, "color": "00000000", "curve": "stepped" }, + { "time": 0.6667, "color": "00000000" }, + { "time": 0.8, "color": "00000024" }, + { "time": 0.9333, "color": "0000003a" }, + { "time": 1.0667, "color": "0000004a" } + ], + "attachment": [ + { "name": "raptor-tail-shadow" } + ] + } + }, + "bones": { + "front-foot-target": { + "rotate": [ + {}, + { "time": 0.2667, "value": -51.26 }, + { "time": 0.4, "value": -65.18 }, + { "time": 0.5333, "value": -76.29 }, + { "time": 0.8, "value": -76.53 }, + { "time": 1.0667 } + ], + "translate": [ + { "x": 343.28, "y": 36.5 }, + { "time": 0.2667, "x": 86.51, "y": 36.99 }, + { "time": 0.5333, "x": -173.36, "y": 37.42 }, + { "time": 0.6, "x": -68.16, "y": 141.15 }, + { "time": 0.7333, "x": 91.79, "y": 238.01 }, + { "time": 0.8, "x": 155.9, "y": 190.91 }, + { "time": 0.9667, "x": 303.28, "y": 94.41 }, + { "time": 1.0667, "x": 343.28, "y": 36.5 } + ] + }, + "hip": { + "rotate": [ + { "value": -4.78 }, + { "time": 0.0667, "value": -3.99 }, + { "time": 0.2667, "value": -12.5 }, + { "time": 0.5333, "value": -4.78 }, + { "time": 0.6, "value": -3.99 }, + { "time": 0.8, "value": -12.5 }, + { "time": 1.0667, "value": -4.78 } + ], + "translate": [ + { + "x": 161.93, + "y": 4.9, + "curve": [ 0.018, 163.11, 0.041, 163.17, 0.018, 0.76, 0.041, 0.54 ] + }, + { + "time": 0.0667, + "x": 165.04, + "y": -5.99, + "curve": [ 0.116, 165.18, 0.218, 178.81, 0.116, -4.56, 0.218, 136.53 ] + }, + { + "time": 0.2667, + "x": 178.81, + "y": 136.53, + "curve": [ 0.333, 178.81, 0.491, 165.14, 0.333, 136.53, 0.491, 29.91 ] + }, + { + "time": 0.5333, + "x": 161.93, + "y": 4.9, + "curve": [ 0.551, 163.11, 0.575, 163.17, 0.551, 0.76, 0.575, 0.54 ] + }, + { + "time": 0.6, + "x": 165.04, + "y": -5.99, + "curve": [ 0.649, 165.18, 0.752, 178.81, 0.649, -4.56, 0.752, 136.52 ] + }, + { + "time": 0.8, + "x": 178.81, + "y": 136.52, + "curve": [ 0.867, 178.81, 1.029, 164.97, 0.867, 136.52, 1.029, 28.59 ] + }, + { "time": 1.0667, "x": 161.93, "y": 4.9 } + ] + }, + "back-foot-target": { + "rotate": [ + { "value": -62.73 }, + { "time": 0.2667, "value": -107.17 }, + { "time": 0.4667, "value": -40.52 }, + { "time": 0.8, "value": -97.16 }, + { "time": 1.0667, "value": -62.73 } + ], + "translate": [ + { "x": -266.7, "y": -15.47 }, + { "time": 0.1333, "x": -87.88, "y": 124.85 }, + { "time": 0.2667, "x": 88.36, "y": 134.06 }, + { "time": 0.3667, "x": 198.39, "y": 90.65 }, + { "time": 0.4667, "x": 308.19, "y": -26.42 }, + { "time": 0.6, "x": 167.06, "y": -26.42 }, + { "time": 1.0667, "x": -266.7, "y": -15.47 } + ] + }, + "front-leg1": { + "translate": [ + {}, + { "time": 0.0667, "x": -0.22, "y": 15.2 }, + { "time": 0.5333, "x": -0.34, "y": 12.16 }, + { "time": 0.7333, "x": -4.75, "y": 31.94 }, + { "time": 1.0667 } + ] + }, + "front-leg-target": { + "translate": [ + { "x": -18.05, "y": -2.89 }, + { "time": 0.4333, "x": -42.2, "y": -88.63 }, + { "time": 0.5333, "x": -27.31, "y": -43.91 }, + { "time": 0.7333, "x": -1.52, "y": -94.29 }, + { "time": 0.8, "x": -24.29, "y": -116.41 }, + { "time": 1, "x": -41.88, "y": -93.3 }, + { "time": 1.0667, "x": -18.05, "y": -2.89 } + ] + }, + "back-leg-target": { + "translate": [ + { "x": -2.05, "y": 15.12 }, + { "time": 0.2667, "x": 17.49, "y": -150.44 }, + { "time": 0.4667, "x": -40.21, "y": -81.76 }, + { "time": 0.5333, "x": -31.69, "y": -82.43 }, + { "time": 0.8, "x": 2.65, "y": -169.22 }, + { "time": 0.9333, "x": -16.77, "y": -98.31 }, + { "time": 1.0667, "x": -2.05, "y": 15.12 } + ] + }, + "tail1": { + "rotate": [ + { "value": 1.31 }, + { "time": 0.0667, "value": 4.14 }, + { "time": 0.3333, "value": -5.78 }, + { "time": 0.6333, "value": 4.14 }, + { "time": 0.9, "value": -5.78 }, + { "time": 1.0667, "value": 1.31 } + ] + }, + "torso1": { + "rotate": [ + { "value": 7.22 }, + { "time": 0.2667, "value": 4.2 }, + { "time": 0.5333, "value": 7.22 }, + { "time": 0.8, "value": 4.2 }, + { "time": 1.0667, "value": 7.22 } + ] + }, + "saddle": { + "rotate": [ + { "value": -2.52 }, + { "time": 0.2667, "value": -4.17 }, + { "time": 0.5333, "value": -3.85 }, + { "time": 0.8, "value": -3.1 }, + { "time": 1.0667, "value": -2.52 } + ], + "translate": [ + { "x": 5.87, "y": -0.06 }, + { + "time": 0.2667, + "curve": [ 0.277, -0.01, 0.317, -0.04, 0.277, 1.66, 0.317, 5.92 ] + }, + { + "time": 0.3333, + "x": -0.04, + "y": 5.92, + "curve": [ 0.418, -0.04, 0.503, -6.88, 0.418, 5.92, 0.503, 1.38 ] + }, + { "time": 0.5333, "x": -8.81, "y": 0.1 }, + { "time": 0.6, "x": -7.83, "y": -2.27 }, + { + "time": 0.8, + "curve": [ 0.81, -0.01, 0.85, -0.04, 0.81, 1.66, 0.85, 5.92 ] + }, + { + "time": 0.8667, + "x": -0.04, + "y": 5.92, + "curve": [ 0.951, -0.04, 1.037, 4.57, 0.951, 5.92, 1.037, 1.25 ] + }, + { "time": 1.0667, "x": 5.87, "y": -0.06 } + ] + }, + "torso2": { + "rotate": [ + { "value": -4.19 }, + { + "time": 0.2667, + "value": -1.92, + "curve": [ 0.333, -1.92, 0.467, -4.19 ] + }, + { "time": 0.5333, "value": -4.19 }, + { + "time": 0.8, + "value": -1.92, + "curve": [ 0.867, -1.92, 1, -4.19 ] + }, + { "time": 1.0667, "value": -4.19 } + ] + }, + "front-arm1": { + "rotate": [ + { "value": -329.45 }, + { "time": 0.5, "value": -349.54 }, + { "time": 1.0667, "value": -329.45 } + ], + "translate": [ + { "x": 20.65, "y": -7.55 }, + { "time": 0.5, "x": -9.9, "y": 10.94 }, + { "time": 0.8, "x": 24.1, "y": -1.47 }, + { "time": 0.9333, "x": 21.73, "y": -3.71 }, + { "time": 1.0667, "x": 20.65, "y": -7.55 } + ] + }, + "neck": { + "rotate": [ + { "value": -22.13 }, + { "time": 0.2667, "value": -4.12 }, + { "time": 0.5333, "value": -22.13 }, + { "time": 0.8, "value": -4.12 }, + { "time": 1.0667, "value": -22.13 } + ], + "translate": [ + { "x": 19.46, "y": -14.29 }, + { "time": 0.2667, "x": 9.68, "y": -8.36 }, + { "time": 0.5333, "x": 21.46, "y": -15.75 }, + { "time": 0.8, "x": 9.68, "y": -8.36 }, + { "time": 1.0667, "x": 19.46, "y": -14.29 } + ] + }, + "back-arm1": { + "rotate": [ + { "value": 23.86 }, + { "time": 0.5, "value": 37.58 }, + { "time": 1.0667, "value": 23.86 } + ], + "translate": [ + {}, + { "time": 0.5, "x": 11.13, "y": -13.39 }, + { "time": 1.0667 } + ] + }, + "saddle-strap-back": { + "rotate": [ + { "value": -5.12 }, + { "time": 0.1, "value": 2.48 }, + { "time": 0.3, "value": -2.61 }, + { "time": 0.4333, "value": -4.47 }, + { "time": 0.6333, "value": 3.21 }, + { "time": 0.9, "value": -5.33 }, + { "time": 1.0667, "value": -5.12 } + ] + }, + "front-arm2": { + "rotate": [ + { "value": -11.14 }, + { "time": 0.5, "value": 22.44 }, + { "time": 1.0667, "value": -11.14 } + ] + }, + "head": { + "rotate": [ + { + "value": 16.44, + "curve": [ 0.094, 15.96, 0.183, 15.71 ] + }, + { + "time": 0.2667, + "value": 15.71, + "curve": [ 0.367, 16.88, 0.467, 18.05 ] + }, + { "time": 0.5333, "value": 18.05 }, + { + "time": 0.8, + "value": 20.32, + "curve": [ 0.897, 18.59, 0.994, 16.85 ] + }, + { "time": 1.0667, "value": 16.44 } + ], + "translate": [ + { "x": 9.88, "y": -14.4 }, + { "time": 0.2667, "x": 5.05, "y": 2.22 }, + { "time": 0.5333, "x": 7.52, "y": -10.95 }, + { "time": 0.8, "x": 5.05, "y": 2.22 }, + { "time": 1.0667, "x": 9.88, "y": -14.4 } + ] + }, + "back-arm2": { + "rotate": [ + {}, + { "time": 0.5, "value": -30.21 }, + { "time": 1.0667 } + ] + }, + "stirrup": { + "rotate": [ + { "value": -17.15 }, + { "time": 0.2667, "value": -4.96 }, + { "time": 0.5333 }, + { "time": 0.8, "value": -4.96 }, + { "time": 1.0667, "value": -17.15 } + ], + "translate": [ + { "x": 8.98, "y": 4.99 }, + { "time": 0.2667, "x": 4.85, "y": 1 }, + { "time": 0.5333, "x": 7.76, "y": -2.99 }, + { "time": 0.8, "x": 4.85, "y": 1 }, + { "time": 1.0667, "x": 8.98, "y": 4.99 } + ] + }, + "front-foot2": { + "rotate": [ + { "value": 36.9 }, + { "time": 0.0667, "value": 7.88 }, + { "time": 0.1333, "value": 4.67 }, + { "time": 0.4, "value": 7.59 }, + { "time": 0.5333, "value": 8.08 }, + { "time": 0.6667, "value": -67.33 }, + { "time": 0.7333, "value": -65.24 }, + { "time": 1, "value": 27.75 }, + { "time": 1.0667, "value": 36.9 } + ] + }, + "front-hand": { + "rotate": [ + { "value": 9.49 }, + { "time": 0.5, "value": -48.61 }, + { "time": 1.0667, "value": 9.49 } + ] + }, + "horn-back": { + "translate": [ + {}, + { "time": 0.2667, "x": 17.11, "y": 15.23 }, + { "time": 0.5333, "x": 4.7, "y": 1.5 }, + { "time": 0.8, "x": 15.44, "y": 7.47 }, + { "time": 1.0667 } + ] + }, + "jaw": { + "rotate": [ + { "value": -2.84 }, + { "time": 0.2, "value": -10.94 }, + { "time": 0.3333, "value": -10.86 }, + { "time": 0.6667, "value": -16.61 }, + { "time": 0.8667, "value": -9.25 }, + { "time": 1.0667, "value": -2.84 } + ], + "translate": [ + { "x": -0.34, "y": -2.02 }, + { "time": 0.2667, "x": 0.79, "y": 9.47 }, + { "time": 0.5, "x": 0.93, "y": 6.09 }, + { "time": 0.7333, "x": 0.79, "y": 9.47 }, + { "time": 1.0667, "x": -0.34, "y": -2.02 } + ] + }, + "back-foot2": { + "rotate": [ + {}, + { "time": 0.1333, "value": -82.38 }, + { "time": 0.2667, "value": -110.31 }, + { "time": 0.4333, "value": 36.22 }, + { "time": 0.5333, "value": 2.1 }, + { "time": 1.0667 } + ] + }, + "back-hand": { + "rotate": [ + { "value": -28.89 }, + { "time": 0.5, "value": 12.2 }, + { "time": 1.0667, "value": -28.89 } + ] + }, + "tongue1": { + "rotate": [ + { "value": 30.23 }, + { "time": 0.2333, "value": 14.93 }, + { "time": 0.7, "value": 0.38 }, + { "time": 0.9, "value": 18.55 }, + { "time": 1.0667, "value": 30.23 } + ] + }, + "front-foot3": { + "rotate": [ + { "value": -1.65 }, + { "time": 0.0667, "value": -3.21 }, + { "time": 0.1333, "value": -3.94 }, + { "time": 0.2667, "value": -3.82 }, + { "time": 0.5333, "value": -5.89 }, + { "time": 0.6333, "value": -25.29 }, + { "time": 0.8333, "value": -7.16 }, + { "time": 1, "value": 10.93 }, + { "time": 1.0667, "value": -1.65 } + ] + }, + "tongue2": { + "rotate": [ + { "value": -16.02 }, + { "time": 0.2333, "value": -11.27 }, + { "time": 0.7, "value": -0.71 }, + { "time": 0.9, "value": -6.84 }, + { "time": 1.0667, "value": -16.02 } + ] + }, + "tongue3": { + "rotate": [ + { "value": -16.02 }, + { "time": 0.2333, "value": -28.5 }, + { "time": 0.7, "value": -1.69 }, + { "time": 0.9, "value": -32.34 }, + { "time": 1.0667, "value": -16.02 } + ] + }, + "head2": { + "rotate": [ + { "value": 16.22 }, + { "time": 0.2667, "value": 29.6 }, + { "time": 0.5333, "value": 18.04 }, + { "time": 0.8, "value": 30.81 }, + { "time": 1.0667, "value": 16.22 } + ] + }, + "neck2": { + "rotate": [ + { "value": 36.68 }, + { "time": 0.2667, "value": 9.43 }, + { "time": 0.4, "value": 16.32 }, + { "time": 0.5333, "value": 38.06 }, + { "time": 0.8, "value": 14.74 }, + { "time": 1.0667, "value": 36.68 } + ], + "translate": [ + { "x": -6.84, "y": -1.8 }, + { "time": 0.2667, "x": -6.99, "y": 1.2 }, + { "time": 0.5333, "x": -6.03, "y": -5.15 }, + { "time": 0.8, "x": -10.81, "y": -0.35 }, + { "time": 1.0667, "x": -6.84, "y": -1.8 } + ] + }, + "spineboy-hip": { + "translate": [ + { + "x": 30.8, + "y": -38.27, + "curve": [ 0.11, 30.8, 0.233, -3.27, 0.11, -38.27, 0.233, -7.97 ] + }, + { + "time": 0.2667, + "x": -12.88, + "y": 0.58, + "curve": [ 0.304, -4.44, 0.467, 33.99, 0.304, -1.99, 0.467, -13.71 ] + }, + { + "time": 0.5333, + "x": 33.99, + "y": -13.71, + "curve": [ 0.631, 33.99, 0.765, -4.44, 0.631, -13.71, 0.765, -1.99 ] + }, + { + "time": 0.8, + "x": -12.88, + "y": 0.58, + "curve": [ 0.844, -5.45, 1, 30.8, 0.844, -6.02, 1, -38.27 ] + }, + { "time": 1.0667, "x": 30.8, "y": -38.27 } + ] + }, + "spineboy-torso": { + "rotate": [ + { "value": -42.71 }, + { + "time": 0.2667, + "value": -10.38, + "curve": [ 0.398, -10.38, 0.467, -45.79 ] + }, + { "time": 0.5333, "value": -45.79 }, + { + "time": 0.8, + "value": -17.34, + "curve": [ 0.931, -17.34, 1, -42.71 ] + }, + { "time": 1.0667, "value": -42.71 } + ] + }, + "front-arm": { + "translate": [ + {}, + { "time": 0.3333, "x": -14.43, "y": -11.03 }, + { "time": 0.5333 }, + { "time": 0.8, "x": -14.43, "y": -11.03 }, + { "time": 1.0667 } + ] + }, + "gun": { + "rotate": [ + { + "value": -11.68, + "curve": [ 0.025, -15.23, 0.048, -17.6 ] + }, + { "time": 0.0667, "value": -17.6 }, + { + "time": 0.3333, + "value": 0.63, + "curve": [ 0.4, 0.63, 0.533, -15.69 ] + }, + { + "time": 0.6, + "value": -15.69, + "curve": [ 0.687, -15.53, 0.791, 0.55 ] + }, + { + "time": 0.8667, + "value": 0.55, + "curve": [ 0.915, 0.55, 1, -7.64 ] + }, + { "time": 1.0667, "value": -11.68 } + ], + "translate": [ + { "x": 0.84, "y": -3.82 }, + { "time": 0.0667 }, + { "time": 0.3333, "x": 3.38, "y": -15.28 }, + { "time": 0.6 }, + { "time": 0.8667, "x": 3.38, "y": -15.28 }, + { "time": 1.0667, "x": 0.84, "y": -3.82 } + ] + }, + "tail2": { + "rotate": [ + { "value": 9.88 }, + { "time": 0.1333, "value": -0.81 }, + { "time": 0.2333, "value": -2.7 }, + { "time": 0.3, "value": -11.33 }, + { "time": 0.4333, "value": -15.11 }, + { "time": 0.5333, "value": 9.88 }, + { "time": 0.6667, "value": -0.81 }, + { "time": 0.7667, "value": -2.7 }, + { "time": 0.8333, "value": -11.33 }, + { "time": 0.9667, "value": -15.11 }, + { "time": 1.0667, "value": 9.88 } + ] + }, + "tail3": { + "rotate": [ + { "value": -7.15 }, + { "time": 0.1333, "value": 7.47 }, + { "time": 0.2333, "value": -0.7 }, + { "time": 0.3, "value": -6.29 }, + { "time": 0.4333, "value": 0.13 }, + { "time": 0.5333, "value": -7.15 }, + { "time": 0.6667, "value": 7.47 }, + { "time": 0.7667, "value": -0.7 }, + { "time": 0.8333, "value": -6.29 }, + { "time": 0.9667, "value": 0.13 }, + { "time": 1.0667, "value": -7.15 } + ] + }, + "tail4": { + "rotate": [ + { "value": -4.53 }, + { "time": 0.1333, "value": 11.46 }, + { "time": 0.2333, "value": 5.93 }, + { "time": 0.3, "value": 2.43 }, + { "time": 0.4333, "value": 0.24 }, + { "time": 0.5333, "value": -4.53 }, + { "time": 0.6667, "value": 11.46 }, + { "time": 0.7667, "value": 5.93 }, + { "time": 0.8333, "value": 2.43 }, + { "time": 0.9667, "value": 0.24 }, + { "time": 1.0667, "value": -4.53 } + ] + }, + "tail5": { + "rotate": [ + { "value": -9.9 }, + { "time": 0.1333, "value": 11.7 }, + { "time": 0.2333, "value": 13.82 }, + { "time": 0.3, "value": 10.26 }, + { "time": 0.4333, "value": -4.1 }, + { "time": 0.5333, "value": -9.9 }, + { "time": 0.6667, "value": 11.7 }, + { "time": 0.7667, "value": 13.82 }, + { "time": 0.8333, "value": 10.26 }, + { "time": 0.9667, "value": -4.1 }, + { "time": 1.0667, "value": -9.9 } + ] + }, + "tail6": { + "rotate": [ + { "value": -9.9 }, + { "time": 0.1333, "value": 13.73 }, + { "time": 0.2333, "value": 15.23 }, + { "time": 0.3, "value": 12.03 }, + { "time": 0.4333, "value": -10.82 }, + { "time": 0.5333, "value": -9.9 }, + { "time": 0.6667, "value": 13.73 }, + { "time": 0.7667, "value": 15.23 }, + { "time": 0.8333, "value": 12.03 }, + { "time": 0.9667, "value": -10.82 }, + { "time": 1.0667, "value": -9.9 } + ], + "scale": [ + {}, + { "time": 0.1333, "x": 0.845 }, + { "time": 0.2667, "x": 0.91 }, + { "time": 0.4, "x": 0.834 }, + { "time": 0.5333, "x": 0.92 }, + { "time": 0.6667, "x": 0.884 }, + { "time": 0.8, "x": 0.967 }, + { "time": 0.9333, "x": 0.904 }, + { "time": 1.0667 } + ] + }, + "tail7": { + "rotate": [ + { "value": -9.9 }, + { "time": 0.1333, "value": 9.57 }, + { "time": 0.2333, "value": 10.69 }, + { "time": 0.3, "value": 8.31 }, + { "time": 0.4333, "value": -9.18 }, + { "time": 0.5333, "value": -9.9 }, + { "time": 0.6667, "value": 9.57 }, + { "time": 0.7667, "value": 10.69 }, + { "time": 0.8333, "value": 8.31 }, + { "time": 0.9667, "value": -9.18 }, + { "time": 1.0667, "value": -9.9 } + ], + "scale": [ + {}, + { "time": 0.1333, "x": 0.845 }, + { "time": 0.2667, "x": 0.91 }, + { "time": 0.4, "x": 0.834 }, + { "time": 0.5333, "x": 0.92 }, + { "time": 0.6667, "x": 0.884 }, + { "time": 0.8, "x": 0.967 }, + { "time": 0.9333, "x": 0.904 }, + { "time": 1.0667 } + ] + }, + "tail8": { + "rotate": [ + { "value": -9.9 }, + { "time": 0.0667, "value": -14.09 }, + { "time": 0.1333, "value": -6.85 }, + { "time": 0.2, "value": 10.88 }, + { "time": 0.2333, "value": 9.63 }, + { "time": 0.3, "value": 9.48 }, + { "time": 0.4333, "value": -10.9 }, + { "time": 0.4667, "value": -21.91 }, + { "time": 0.5333, "value": -9.9 }, + { "time": 0.6, "value": -14.09 }, + { "time": 0.6667, "value": -6.85 }, + { "time": 0.7333, "value": 10.88 }, + { "time": 0.7667, "value": 9.63 }, + { "time": 0.8333, "value": 9.48 }, + { "time": 0.9667, "value": -10.9 }, + { "time": 1, "value": -21.91 }, + { "time": 1.0667, "value": -9.9 } + ], + "scale": [ + {}, + { "time": 0.1333, "x": 0.845 }, + { "time": 0.2667, "x": 0.91 }, + { "time": 0.4, "x": 0.834 }, + { "time": 0.5333, "x": 0.92 }, + { "time": 0.6667, "x": 0.884 }, + { "time": 0.8, "x": 0.967 }, + { "time": 0.9333, "x": 0.904 }, + { "time": 1.0667 } + ] + }, + "tail9": { + "rotate": [ + { "value": -6.79 }, + { "time": 0.0333, "value": -20.12 }, + { "time": 0.1333, "value": -9.9 }, + { "time": 0.2, "value": -18.42 }, + { "time": 0.2667, "value": -15.51 }, + { "time": 0.3333, "value": 10.33 }, + { "time": 0.3667, "value": 13.13 }, + { "time": 0.4333, "value": 4.99 }, + { "time": 0.5, "value": 6.54 }, + { "time": 0.5667, "value": -20.12 }, + { "time": 0.6667, "value": -9.9 }, + { "time": 0.7333, "value": -18.42 }, + { "time": 0.8, "value": -15.51 }, + { "time": 0.8667, "value": 10.33 }, + { "time": 0.9, "value": 13.13 }, + { "time": 0.9667, "value": 4.99 }, + { "time": 1.0333, "value": 6.54 }, + { "time": 1.0667, "value": -6.79 } + ], + "scale": [ + { "x": 0.904 }, + { "time": 0.1333 }, + { "time": 0.2667, "x": 0.845 }, + { "time": 0.4, "x": 0.91 }, + { "time": 0.5333, "x": 0.834 }, + { "time": 0.6667, "x": 0.92 }, + { "time": 0.8, "x": 0.884 }, + { "time": 0.9333, "x": 0.967 }, + { "time": 1.0667, "x": 0.904 } + ] + }, + "tail10": { + "rotate": [ + { "value": -5.98 }, + { "time": 0.0333, "value": -12.6 }, + { "time": 0.0667, "value": -23.33 }, + { "time": 0.1333, "value": -9.9 }, + { "time": 0.2, "value": -23.4 }, + { "time": 0.2667, "value": -25.45 }, + { "time": 0.3333, "value": 2.64 }, + { "time": 0.3667, "value": 6.57 }, + { "time": 0.4333, "value": 13.89 }, + { "time": 0.5667, "value": -12.6 }, + { "time": 0.6, "value": -23.33 }, + { "time": 0.6667, "value": -9.9 }, + { "time": 0.7333, "value": -23.4 }, + { "time": 0.8, "value": -25.45 }, + { "time": 0.8667, "value": 2.64 }, + { "time": 0.9, "value": 6.57 }, + { "time": 0.9667, "value": 13.89 }, + { "time": 1.0667, "value": -5.98 } + ], + "scale": [ + { "x": 0.904 }, + { "time": 0.1333 }, + { "time": 0.2667, "x": 0.845 }, + { "time": 0.4, "x": 0.91 }, + { "time": 0.5333, "x": 0.834 }, + { "time": 0.6667, "x": 0.92 }, + { "time": 0.8, "x": 0.884 }, + { "time": 0.9333, "x": 0.967 }, + { "time": 1.0667, "x": 0.904 } + ] + }, + "horn-front": { + "translate": [ + { "x": -2.29, "y": -13.82 }, + { "time": 0.2667, "x": 3.57, "y": -1.24 }, + { "time": 0.5333, "x": 5.09, "y": -3.74 }, + { "time": 0.8, "x": 3.99, "y": -5.87 }, + { "time": 1.0667, "x": -2.29, "y": -13.82 } + ] + }, + "saddle-strap-front": { + "rotate": [ + { "value": 3.65 }, + { "time": 0.2667, "value": 5.97 }, + { "time": 0.5333, "value": 3.49 }, + { "time": 0.6, "value": 5.82 }, + { "time": 0.8, "value": 3.68 }, + { "time": 1.0667, "value": 3.65 } + ] + }, + "jaw-inside": { + "translate": [ + { "x": -8.34, "y": -3.22 }, + { "time": 0.5333, "x": 1.17, "y": -1.6 }, + { "time": 1.0667, "x": -8.34, "y": -3.22 } + ] + }, + "bone": { + "rotate": [ + {}, + { "time": 0.1, "value": -8.07 }, + { "time": 0.1667, "value": -8.59 }, + { "time": 0.5333, "value": -11.19 }, + { "time": 0.6333, "value": -8.07 }, + { "time": 0.7, "value": -8.59 }, + { "time": 1.0667 } + ] + }, + "bone2": { + "rotate": [ + {}, + { "time": 0.1, "value": -8.07 }, + { "time": 0.1667, "value": 14.12 }, + { "time": 0.3333, "value": -10.54 }, + { "time": 0.5333, "value": -13.65 }, + { "time": 0.6333, "value": -8.07 }, + { "time": 0.7, "value": 14.12 }, + { "time": 0.8667, "value": -10.54 }, + { "time": 1.0667 } + ] + }, + "bone3": { + "rotate": [ + {}, + { "time": 0.1, "value": 5.59 }, + { "time": 0.1667, "value": 8.3 }, + { "time": 0.3333, "value": -1.12 }, + { "time": 0.5333, "value": -5.17 }, + { "time": 0.6333, "value": 5.59 }, + { "time": 0.7, "value": 8.3 }, + { "time": 0.8667, "value": -1.12 }, + { "time": 1.0667 } + ] + }, + "bone4": { + "rotate": [ + {}, + { "time": 0.1, "value": 5.59 }, + { "time": 0.1667, "value": 8.3 }, + { "time": 0.3333, "value": -1.12 }, + { "time": 0.5333, "value": -5.17 }, + { "time": 0.6333, "value": 5.59 }, + { "time": 0.7, "value": 8.3 }, + { "time": 0.8667, "value": -1.12 }, + { "time": 1.0667 } + ] + }, + "bone5": { + "rotate": [ + {}, + { "time": 0.1, "value": 5.59 }, + { "time": 0.1667, "value": 8.3 }, + { "time": 0.3333, "value": -1.12 }, + { "time": 0.5333, "value": -5.17 }, + { "time": 0.6333, "value": 5.59 }, + { "time": 0.7, "value": 8.3 }, + { "time": 0.8667, "value": -1.12 }, + { "time": 1.0667 } + ] + }, + "spineboy-front-arm-target": { + "translate": [ + {}, + { "time": 0.2667, "x": -12.14, "y": 8.93 }, + { "time": 0.5333 }, + { "time": 0.8333, "x": -12.14, "y": 8.93 }, + { "time": 1.0667 } + ] + }, + "front-hand2": { + "rotate": [ + {}, + { "time": 0.2667, "value": 15.62 }, + { "time": 0.5333 }, + { "time": 0.8333, "value": 15.62 }, + { "time": 1.0667 } + ] + } + }, + "deform": { + "default": { + "raptor-body": { + "raptor-body": [ + { + "offset": 408, + "vertices": [ 13.71567, -12.38429, 8.86707, -16.21404, 14.13376, 11.90601, 8.86707, -16.21404, -0.71399, -18.46735, 14.13376, 11.90601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8.4906, -7.6657, 5.4895, -10.03702, 8.74924, 7.37085 ] + }, + { + "time": 0.2667, + "offset": 18, + "vertices": [ 0.70813, 7.44351, 1.07001, 11.24002, 1.08411, 11.39075, 1.02405, 10.74866, 1.03925, 10.92072, 0.85474, 8.98672, 0.86066, 9.04904, 0.89789, 9.44125, 0.90637, 9.5307, 0.94983, 9.98828, 0.96765, 10.17432, 1.00269, 10.54266, 0, 0, 0, 0, 0, 0, 0, 0, 0.90533, 6.48813, -4.83447, -4.4209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.59564, 4.3848, -2.59491, 7.48297, -5.60541, -5.59521, -2.59491, 7.48297, 0.75079, 7.88437, -5.60541, -5.59521, 0, 0, 0, 0, 0, 0, 0, 0, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, -16.63549, -1.25745, 13.9549, 9.14218, -16.65107, -1.03064, -12.07328, -0.91254, -10.08334, 6.70255, -12.08454, -0.74829, -6.81092, -0.51489, -5.68832, 3.78119, -6.81731, -0.42206, -2.13165, -0.16132, -1.78043, 1.1835, 0.92268, 0.06927, 0.77066, -0.51218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6.59564, 4.3848, -2.59491, 7.48297, -5.60541, -5.59521, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.45563, 15.28763, 0, 0, 0.84955, 8.92258, 0.86261, 9.06027, 1.03558, 10.87985, 1.04388, 10.93173, 1.00079, 10.50467, 1.51581, 15.87836, 1.29034, 13.55914 ] + }, + { + "time": 0.5333, + "offset": 18, + "vertices": [ 0.70813, 7.44351, 1.07001, 11.24002, 1.08411, 11.39075, 1.02405, 10.74866, 1.03925, 10.92072, 0.85474, 8.98672, 0.86066, 9.04904, 0.89789, 9.44125, 0.90637, 9.5307, 0.94983, 9.98828, 0.96765, 10.17432, 1.00269, 10.54266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9.82916, 8.09055, -5.51956, 11.46271, -8.27203, -9.69153, -5.51956, 11.46271, 0.71658, 12.7357, -8.27203, -9.69153, 0, 0, 0, 0, 0, 0, 0, 0, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, -20.25358, 2.27841, 18.97852, 7.42908, -20.32699, 1.48425, -14.55186, 1.63705, -10.8692, 9.81364, -14.60457, 1.06616, -8.3676, 0.94171, -6.25018, 5.64297, -8.39783, 0.61307, -3.12171, 0.35193, -2.33182, 2.10535, -2.62373, 0.29605, -1.95944, 1.76942, -8.49063, 7.66762, -5.48889, 10.03763, -6.53128, 5.89809, -4.22223, 7.72119, -5.4693, -6.89392, -9.82916, 8.09055, -5.51956, 11.46271, -8.27203, -9.69153, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.45563, 15.28763, 0, 0, 0.84955, 8.92258, 0.86261, 9.06027, 1.03558, 10.87985, 1.04388, 10.93173, 1.00079, 10.50467, 1.51581, 15.87836, 1.29034, 13.55914 ] + }, + { + "time": 0.8, + "offset": 18, + "vertices": [ 0.70813, 7.44351, 1.07001, 11.24002, 1.08411, 11.39075, 1.02405, 10.74866, 1.03925, 10.92072, 0.85474, 8.98672, 0.86066, 9.04904, 0.89789, 9.44125, 0.90637, 9.5307, 0.94983, 9.98828, 0.96765, 10.17432, 1.00269, 10.54266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0932, 11.47726, 1.0932, 11.47726, 1.0932, 11.47726, 1.45563, 15.28763, 0, 0, 0.84955, 8.92258, 0.86261, 9.06027, 1.03558, 10.87985, 1.04388, 10.93173, 1.00079, 10.50467, 1.51581, 15.87836, 1.29034, 13.55914 ] + }, + { + "time": 1.0667, + "offset": 408, + "vertices": [ 13.71567, -12.38429, 8.86707, -16.21404, 14.13376, 11.90601, 8.86707, -16.21404, -0.71399, -18.46735, 14.13376, 11.90601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8.4906, -7.6657, 5.4895, -10.03702, 8.74924, 7.37085 ] + } + ] + }, + "raptor-front-arm": { + "raptor-front-arm": [ + { + "vertices": [ 0.63858, 10.11987, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.63858, 10.11987, 8.91238, 4.83664, 8.91238, 4.83664, -2.95996, -9.69858, 9.59641, -3.2762, -9.13791, -4.39584 ] + }, + { + "time": 0.5333, + "vertices": [ 2.12625, -9.42834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.12625, -9.42834, 2.21136, -13.58762, 2.21136, -13.58762, -11.1066, 8.13367, -7.02609, 7.11565, 9.99887, -0.14359 ] + }, + { + "time": 1.0667, + "vertices": [ 0.63858, 10.11987, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.63858, 10.11987, 8.91238, 4.83664, 8.91238, 4.83664, -2.95996, -9.69858, 9.59641, -3.2762, -9.13791, -4.39584 ] + } + ] + }, + "raptor-front-leg": { + "raptor-front-leg": [ + { + "offset": 150, + "vertices": [ 5.88568, 2.31329, 5.88568, 2.31329, -3.33963, 5.37029, 5.88568, 2.31329, -3.33963, 5.37029, 5.88568, 2.31329, -3.33963, 5.37029, 5.88568, 2.31329, -3.33963, 5.37029, 5.88568, 2.31329, -3.33963, 5.37029, 3.24279, 5.42923, -3.33963, 5.37029, 3.24279, 5.42923, 5.48474, 1.33588, -3.33963, 5.37029, 3.24279, 5.42923, 5.48474, 1.33588, 6.45844, -3.76048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.88568, 2.31329, 6.32144, 0.17871 ] + }, + { "time": 0.2667 }, + { + "time": 0.5333, + "offset": 144, + "vertices": [ -18.2879, 9.64194, 8.54771, -3.97604, 0, 0, -6.20459, -38.80288, -1.60495, -18.19489, 18.00257, -3.08813, 1.01712, -11.54924, 11.59372, 0.06879, 1.01712, -11.54924, 11.59372, 0.06879, 1.01712, -11.54924, 11.59372, 0.06879, 1.01712, -11.54924, 11.59372, 0.06879, 7.2315, -9.06223, 11.59372, 0.06879, 7.2315, -9.06223, -5.34506, -9.90634, 11.59372, 0.06879, 7.2315, -9.06223, -5.34506, -9.90634, -15.37766, 0.70782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.90936, -20.67399, -20.69142, 0.32318, 0.83218, -9.44935, 9.48574, 0.05627, 0.83218, -9.44935, 9.48574, 0.05627, 0.32794, -15.86422, 15.83783, -0.97108, 0.42538, -16.96904, 16.94692, -0.96432, 0.83218, -9.44935, 9.48574, 0.05627, 0, 0, 0, 0, 0, 0, 0, 0, -2.43991, -8.71271, -8.55199, 2.95432, -4.47107, -11.33224, -11.04593, 5.13776 ] + }, + { + "time": 0.6, + "offset": 144, + "vertices": [ 5.8644, -1.96475 ] + }, + { + "time": 0.6667, + "offset": 48, + "vertices": [ 2.83282, 3.82607, 2.88747, -3.47459, 6.13686, -0.65051, 1.80194, 5.80962, -3.46157, 8.71898, 1.95515, 17.84987, -2.16496, 11.59793, -21.96982, -6.69659, -9.24968, 5.30598, 3.17815, -2.1165, 0.26888, 0.03062, 0.02821, 0.2688, -10.98312, -7.06466, -4.71954, -11.86687, -13.45984, 4.74478, -3.79447, -8.00033, 0, 0, 0, 0, 4.81293, -9.78431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.41243, 0.36704, -0.00642, -0.55221, 0, 0, 0, 0, 0.7433, -1.29713, 0.49036, 1.41172, 1.3683, -5.24968, 3.06253, 4.47641, -1.30437, -1.14192, 1.71709, -0.23523, -1.14153, -2.38019, 2.54447, 0.70039, 0, 0, 0, 0, 7.63262, -3.45871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.34303, -8.30955, 8.08327, 3.22951, -3.09877, 0.10198, -0.71957, -2.98701, 0, 0, 0, 0, 0, 0, 0, 0, -0.68984, -0.87758, -1.06615, -0.32834, -1.4312, -0.38682, 1.22995, -0.8266 ] + }, + { + "time": 0.7, + "offset": 48, + "vertices": [ 1.41641, 1.91303, 1.44373, -1.7373, 3.06843, -0.32526, 0.90097, 2.90481, -1.73079, 4.35949, 0.97757, 8.92494, -1.08248, 5.79897, -7.52768, -11.41519, -8.67229, -4.663, -0.13032, -9.51013, 0.13444, 0.01531, 0.01411, 0.1344, -5.49157, -3.53233, -2.35977, -5.93344, -0.53535, 10.74624, -0.16897, 6.33698, 12.85229, 2.43229, 8.83852, 8.18031, 26.96328, -11.50604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.61864, 0.55055, -0.00964, -0.82832, 0, 0, 0, 0, 1.11495, -1.9457, 0.73553, 2.11757, 2.05245, -7.87452, 4.59379, 6.71461, -1.95655, -1.71288, 2.57563, -0.35284, -1.71229, -3.57028, 3.8167, 1.05059, 0, 0, 0, 0, 3.81631, -1.72936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.67152, -4.15478, 4.04164, 1.61476, -0.32874, 3.11779, -0.67256, 1.78751, 0, 0, 0, 0, 0, 0, 0, 0, -1.03475, -1.31637, -1.59922, -0.49251, -2.1468, -0.58024, 1.84492, -1.2399 ] + }, + { + "time": 0.7333, + "offset": 76, + "vertices": [ 2.70691, 7.35512, -0.12915, 7.83603, 0, 0, 0, 0, 14.23546, -11.27834, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.82486, 0.73407, -0.01285, -1.10443, 0, 0, 0, 0, 1.4866, -2.59427, 0.98071, 2.82343, 2.7366, -10.49936, 6.12506, 8.95282, -2.60873, -2.28384, 3.43417, -0.47046, -2.28305, -4.76038, 5.08893, 1.40079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.37967, -1.75516, -2.1323, -0.65668, -2.8624, -0.77365, 2.4599, -1.6532 ] + }, + { + "time": 0.8, + "offset": 144, + "vertices": [ 4.33227, 5.00964 ] + }, + { + "time": 0.9, + "offset": 62, + "vertices": [ -2.62872, -4.62305, -2.90607, 8.52032, -0.22961, 8.99833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.00874, 9.84058 ] + }, + { + "time": 1.0667, + "offset": 150, + "vertices": [ 5.88568, 2.31329, 5.88568, 2.31329, -3.33963, 5.37029, 5.88568, 2.31329, -3.33963, 5.37029, 5.88568, 2.31329, -3.33963, 5.37029, 5.88568, 2.31329, -3.33963, 5.37029, 5.88568, 2.31329, -3.33963, 5.37029, 3.24279, 5.42923, -3.33963, 5.37029, 3.24279, 5.42923, 5.48474, 1.33588, -3.33963, 5.37029, 3.24279, 5.42923, 5.48474, 1.33588, 6.45844, -3.76048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.88568, 2.31329, 6.32144, 0.17871 ] + } + ] + }, + "raptor-jaw": { + "raptor-jaw": [ + {}, + { + "time": 0.2667, + "offset": 2, + "vertices": [ -4.47122, -4.24109, -3.60373, -3.41827, -8.41095, -2.54828, -5.50699, -1.7359, -2.66876, -0.81238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5.87677, -3.0119, -8.36108, -4.3338, -1.12198, -1.06427, -2.6153, -2.24945, -8.84198, -3.32513, -4.86157, -4.61145, -10.66547, -5.80609, -5.57019, -5.28363, -5.70374, -5.41016 ] + }, + { + "time": 0.8, + "offset": 2, + "vertices": [ -4.47122, -4.24109, -3.60373, -3.41827, -2.6868, -2.5484, -1.83014, -1.7359, -0.85641, -0.81238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3.17538, -3.0119, -4.56903, -4.3338, -1.12198, -1.06427, -2.37146, -2.24939, -3.50571, -3.3252, -4.86157, -4.61145, -4.60556, -4.36859, -5.57019, -5.28363, -5.70374, -5.41016 ] + }, + { "time": 1.0667 } + ] + }, + "raptor-saddle": { + "raptor-saddle-w-shadow": [ + { + "offset": 1, + "vertices": [ 4.41981, 0, 0, -0.01709, 10.45464, -0.01709, 10.45464, -0.01709, 10.45464, 0, 0, 0, 0, 0.01511, -8.47841, -0.0061, 3.66493, -0.0061, 3.66493, -0.0061, 3.66493, -0.0061, 3.66493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01511, -8.47841, -0.00729, 4.41981, 0, 0, 0, 0, -0.0061, 3.66493, -0.0061, 3.66493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0, 0, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841 ] + }, + { "time": 0.2667 }, + { + "time": 0.5333, + "vertices": [ 0.22061, -8.83728, 0, 0, 0.17395, -6.96783, 0.17395, -6.96783, 0.17395, -6.96783, 0, 0, 0, 0, -0.1377, 5.51426, 0.12805, -5.12938, 0, 0, 0, 0, 0.12805, -5.12938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.1377, 5.51426, 0.22061, -8.83728, 0, 0, 0, 0, 0.12805, -5.12938, 0.12805, -5.12938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.1377, 5.51426, -0.1377, 5.51426, -0.1377, 5.51426, -0.1377, 5.51426, -0.1377, 5.51426, -0.1377, 5.51426, 0, 0, -0.1377, 5.51426, -0.1377, 5.51426, -0.1377, 5.51426, -0.1377, 5.51426, -0.1377, 5.51426, -0.1377, 5.51426, -0.1377, 5.51426, -0.1377, 5.51426, -0.1377, 5.51426, -0.1377, 5.51426, -0.1377, 5.51426, -0.1377, 5.51426, -0.1377, 5.51426 ] + }, + { "time": 0.8 }, + { + "time": 1.0667, + "offset": 1, + "vertices": [ 4.41981, 0, 0, -0.01709, 10.45464, -0.01709, 10.45464, -0.01709, 10.45464, 0, 0, 0, 0, 0.01511, -8.47841, -0.0061, 3.66493, -0.0061, 3.66493, -0.0061, 3.66493, -0.0061, 3.66493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01511, -8.47841, -0.00729, 4.41981, 0, 0, 0, 0, -0.0061, 3.66493, -0.0061, 3.66493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0, 0, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841, 0.01511, -8.47841 ] + } + ] + } + } + } + } +} +} \ No newline at end of file diff --git a/spine-ts/webgl/example/assets/spineboy-pro.json b/spine-ts/webgl/example/assets/spineboy-pro.json new file mode 100644 index 000000000..41d803283 --- /dev/null +++ b/spine-ts/webgl/example/assets/spineboy-pro.json @@ -0,0 +1,8692 @@ +{ +"skeleton": { + "hash": "97I2+5rUsUE", + "spine": "4.0.05-beta", + "x": -188.63, + "y": -7.94, + "width": 418.45, + "height": 686.2, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root", "rotation": 0.05 }, + { "name": "hip", "parent": "root", "y": 247.27 }, + { "name": "crosshair", "parent": "root", "x": 302.83, "y": 569.45, "color": "ff3f00ff" }, + { + "name": "aim-constraint-target", + "parent": "hip", + "length": 26.24, + "rotation": 19.61, + "x": 1.02, + "y": 5.62, + "color": "abe323ff" + }, + { "name": "rear-foot-target", "parent": "root", "x": 61.91, "y": 0.42, "color": "ff3f00ff" }, + { "name": "rear-leg-target", "parent": "rear-foot-target", "x": -33.91, "y": 37.34, "color": "ff3f00ff" }, + { + "name": "rear-thigh", + "parent": "hip", + "length": 85.72, + "rotation": -72.54, + "x": 8.91, + "y": -5.63, + "color": "ff000dff" + }, + { + "name": "rear-shin", + "parent": "rear-thigh", + "length": 121.88, + "rotation": -19.83, + "x": 86.1, + "y": -1.33, + "color": "ff000dff" + }, + { + "name": "rear-foot", + "parent": "rear-shin", + "length": 51.58, + "rotation": 45.78, + "x": 121.46, + "y": -0.76, + "color": "ff000dff" + }, + { + "name": "back-foot-tip", + "parent": "rear-foot", + "length": 50.3, + "rotation": -0.85, + "x": 51.17, + "y": 0.24, + "transform": "noRotationOrReflection", + "color": "ff000dff" + }, + { "name": "board-ik", "parent": "root", "x": -131.78, "y": 69.09, "color": "4c56ffff" }, + { "name": "clipping", "parent": "root" }, + { "name": "hoverboard-controller", "parent": "root", "rotation": -0.28, "x": -329.69, "y": 69.82, "color": "ff0004ff" }, + { "name": "exhaust1", "parent": "hoverboard-controller", "rotation": 3.02, "x": -249.68, "y": 53.39 }, + { "name": "exhaust2", "parent": "hoverboard-controller", "rotation": 26.34, "x": -191.6, "y": -22.92 }, + { + "name": "exhaust3", + "parent": "hoverboard-controller", + "rotation": -12.34, + "x": -236.03, + "y": 80.54, + "scaleX": 0.7847, + "scaleY": 0.7847 + }, + { "name": "portal-root", "parent": "root", "x": 12.9, "y": 328.54, "scaleX": 2.0334, "scaleY": 2.0334 }, + { "name": "flare1", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare10", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare2", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare3", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare4", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare5", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare6", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare7", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare8", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { "name": "flare9", "parent": "portal-root", "x": -6.34, "y": -161.57 }, + { + "name": "torso", + "parent": "hip", + "length": 42.52, + "rotation": 103.82, + "x": -1.62, + "y": 4.9, + "color": "e0da19ff" + }, + { "name": "torso2", "parent": "torso", "length": 42.52, "x": 42.52, "color": "e0da19ff" }, + { "name": "torso3", "parent": "torso2", "length": 42.52, "x": 42.52, "color": "e0da19ff" }, + { "name": "front-shoulder", "parent": "torso3", "rotation": 255.89, "x": 18.72, "y": 19.33, "color": "00ff04ff" }, + { "name": "front-upper-arm", "parent": "front-shoulder", "length": 69.45, "rotation": -87.51, "color": "00ff04ff" }, + { + "name": "front-bracer", + "parent": "front-upper-arm", + "length": 40.57, + "rotation": 18.3, + "x": 68.8, + "y": -0.68, + "color": "00ff04ff" + }, + { + "name": "front-fist", + "parent": "front-bracer", + "length": 65.39, + "rotation": 12.43, + "x": 40.57, + "y": 0.2, + "color": "00ff04ff" + }, + { "name": "front-foot-target", "parent": "root", "x": -13.53, "y": 0.04, "color": "ff3f00ff" }, + { "name": "front-leg-target", "parent": "front-foot-target", "x": -28.4, "y": 29.06, "color": "ff3f00ff" }, + { + "name": "front-thigh", + "parent": "hip", + "length": 74.81, + "rotation": -95.51, + "x": -17.46, + "y": -11.64, + "color": "00ff04ff" + }, + { + "name": "front-shin", + "parent": "front-thigh", + "length": 128.77, + "rotation": -2.21, + "x": 78.69, + "y": 1.6, + "color": "00ff04ff" + }, + { + "name": "front-foot", + "parent": "front-shin", + "length": 41.01, + "rotation": 51.27, + "x": 128.76, + "y": -0.34, + "color": "00ff04ff" + }, + { + "name": "front-foot-tip", + "parent": "front-foot", + "length": 56.03, + "rotation": -1.68, + "x": 41.42, + "y": -0.09, + "transform": "noRotationOrReflection", + "color": "00ff04ff" + }, + { "name": "back-shoulder", "parent": "torso3", "rotation": -104.11, "x": 7.32, "y": -19.22, "color": "ff000dff" }, + { "name": "rear-upper-arm", "parent": "back-shoulder", "length": 51.94, "rotation": -65.45, "color": "ff000dff" }, + { "name": "rear-bracer", "parent": "rear-upper-arm", "length": 34.56, "rotation": 23.15, "x": 51.36, "color": "ff000dff" }, + { + "name": "gun", + "parent": "rear-bracer", + "length": 43.11, + "rotation": -5.43, + "x": 34.42, + "y": -0.45, + "color": "ff000dff" + }, + { "name": "gun-tip", "parent": "gun", "rotation": 7.1, "x": 200.78, "y": 52.5, "color": "ff0000ff" }, + { + "name": "neck", + "parent": "torso3", + "length": 25.45, + "rotation": -31.54, + "x": 42.46, + "y": -0.31, + "color": "e0da19ff" + }, + { + "name": "head", + "parent": "neck", + "length": 131.79, + "rotation": 26.1, + "x": 27.66, + "y": -0.26, + "color": "e0da19ff" + }, + { + "name": "hair1", + "parent": "head", + "length": 47.23, + "rotation": -49.1, + "x": 149.83, + "y": -59.77, + "color": "e0da19ff" + }, + { + "name": "hair2", + "parent": "hair1", + "length": 55.57, + "rotation": 50.42, + "x": 47.23, + "y": 0.19, + "color": "e0da19ff" + }, + { + "name": "hair3", + "parent": "head", + "length": 62.22, + "rotation": -32.17, + "x": 164.14, + "y": 3.68, + "color": "e0da19ff" + }, + { + "name": "hair4", + "parent": "hair3", + "length": 80.28, + "rotation": 83.71, + "x": 62.22, + "y": -0.04, + "color": "e0da19ff" + }, + { "name": "hoverboard-thruster-front", "parent": "hoverboard-controller", "rotation": -29.2, "x": 95.77, "y": -2.99, "transform": "noRotationOrReflection" }, + { "name": "hoverboard-thruster-rear", "parent": "hoverboard-controller", "rotation": -29.2, "x": -76.47, "y": -4.88, "transform": "noRotationOrReflection" }, + { "name": "hoverglow-front", "parent": "hoverboard-thruster-front", "rotation": 0.17, "x": -1.78, "y": -37.79 }, + { "name": "hoverglow-rear", "parent": "hoverboard-thruster-rear", "rotation": 0.17, "x": 1.06, "y": -35.66 }, + { "name": "muzzle", "parent": "rear-bracer", "rotation": 3.06, "x": 242.34, "y": 34.26, "color": "ffb900ff" }, + { "name": "muzzle-ring", "parent": "muzzle", "color": "ffb900ff" }, + { "name": "muzzle-ring2", "parent": "muzzle", "color": "ffb900ff" }, + { "name": "muzzle-ring3", "parent": "muzzle", "color": "ffb900ff" }, + { "name": "muzzle-ring4", "parent": "muzzle", "color": "ffb900ff" }, + { "name": "portal", "parent": "portal-root" }, + { "name": "portal-shade", "parent": "portal-root" }, + { "name": "portal-streaks1", "parent": "portal-root" }, + { "name": "portal-streaks2", "parent": "portal-root" }, + { "name": "side-glow1", "parent": "hoverboard-controller", "x": -110.56, "y": 2.62, "color": "000effff" }, + { + "name": "side-glow2", + "parent": "hoverboard-controller", + "x": -110.56, + "y": 2.62, + "scaleX": 0.738, + "scaleY": 0.738, + "color": "000effff" + }, + { "name": "head-control", "parent": "head", "x": 110.21, "color": "00a220ff" } +], +"slots": [ + { "name": "portal-bg", "bone": "portal" }, + { "name": "portal-shade", "bone": "portal-shade" }, + { "name": "portal-streaks2", "bone": "portal-streaks2", "blend": "additive" }, + { "name": "portal-streaks1", "bone": "portal-streaks1", "blend": "additive" }, + { "name": "portal-flare8", "bone": "flare8", "color": "c3cbffff", "blend": "additive" }, + { "name": "portal-flare9", "bone": "flare9", "color": "c3cbffff", "blend": "additive" }, + { "name": "portal-flare10", "bone": "flare10", "color": "c3cbffff", "blend": "additive" }, + { "name": "clipping", "bone": "clipping" }, + { "name": "exhaust3", "bone": "exhaust3", "color": "5eb4ffff", "blend": "additive" }, + { "name": "hoverboard-thruster-rear", "bone": "hoverboard-thruster-rear" }, + { "name": "hoverboard-thruster-front", "bone": "hoverboard-thruster-front" }, + { "name": "hoverboard-board", "bone": "hoverboard-controller" }, + { "name": "side-glow1", "bone": "side-glow1", "color": "ff8686ff", "blend": "additive" }, + { "name": "side-glow3", "bone": "side-glow1", "color": "ff8686ff", "blend": "additive" }, + { "name": "side-glow2", "bone": "side-glow2", "color": "ff8686ff", "blend": "additive" }, + { "name": "hoverglow-front", "bone": "hoverglow-front", "color": "5eb4ffff", "blend": "additive" }, + { "name": "hoverglow-rear", "bone": "hoverglow-rear", "color": "5eb4ffff", "blend": "additive" }, + { "name": "exhaust1", "bone": "exhaust2", "color": "5eb4ffff", "blend": "additive" }, + { "name": "exhaust2", "bone": "exhaust1", "color": "5eb4ffff", "blend": "additive" }, + { "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-smile" }, + { "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": "muzzle" }, + { "name": "head-bb", "bone": "head" }, + { "name": "portal-flare1", "bone": "flare1", "color": "c3cbffff", "blend": "additive" }, + { "name": "portal-flare2", "bone": "flare2", "color": "c3cbffff", "blend": "additive" }, + { "name": "portal-flare3", "bone": "flare3", "color": "c3cbffff", "blend": "additive" }, + { "name": "portal-flare4", "bone": "flare4", "color": "c3cbffff", "blend": "additive" }, + { "name": "portal-flare5", "bone": "flare5", "color": "c3cbffff", "blend": "additive" }, + { "name": "portal-flare6", "bone": "flare6", "color": "c3cbffff", "blend": "additive" }, + { "name": "portal-flare7", "bone": "flare7", "color": "c3cbffff", "blend": "additive" }, + { "name": "crosshair", "bone": "crosshair" }, + { "name": "muzzle-glow", "bone": "gun-tip", "color": "ffffff00", "blend": "additive" }, + { "name": "muzzle-ring", "bone": "muzzle-ring", "color": "d8baffff", "blend": "additive" }, + { "name": "muzzle-ring2", "bone": "muzzle-ring2", "color": "d8baffff", "blend": "additive" }, + { "name": "muzzle-ring3", "bone": "muzzle-ring3", "color": "d8baffff", "blend": "additive" }, + { "name": "muzzle-ring4", "bone": "muzzle-ring4", "color": "d8baffff", "blend": "additive" } +], +"ik": [ + { + "name": "aim-ik", + "order": 13, + "bones": [ "rear-upper-arm" ], + "target": "crosshair", + "mix": 0 + }, + { + "name": "aim-torso-ik", + "order": 8, + "bones": [ "aim-constraint-target" ], + "target": "crosshair" + }, + { + "name": "board-ik", + "order": 1, + "bones": [ "hoverboard-controller" ], + "target": "board-ik" + }, + { + "name": "front-foot-ik", + "order": 6, + "bones": [ "front-foot" ], + "target": "front-foot-target" + }, + { + "name": "front-leg-ik", + "order": 4, + "bones": [ "front-thigh", "front-shin" ], + "target": "front-leg-target", + "bendPositive": false + }, + { + "name": "rear-foot-ik", + "order": 7, + "bones": [ "rear-foot" ], + "target": "rear-foot-target" + }, + { + "name": "rear-leg-ik", + "order": 5, + "bones": [ "rear-thigh", "rear-shin" ], + "target": "rear-leg-target", + "bendPositive": false + } +], +"transform": [ + { + "name": "aim-front-arm-transform", + "order": 11, + "bones": [ "front-upper-arm" ], + "target": "aim-constraint-target", + "rotation": -180, + "rotateMix": 0, + "translateMix": 0, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "aim-head-transform", + "order": 10, + "bones": [ "head" ], + "target": "aim-constraint-target", + "rotation": 84.3, + "rotateMix": 0, + "translateMix": 0, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "aim-rear-arm-transform", + "order": 12, + "bones": [ "rear-upper-arm" ], + "target": "aim-constraint-target", + "x": 57.7, + "y": 56.4, + "rotateMix": 0, + "translateMix": 0, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "aim-torso-transform", + "order": 9, + "bones": [ "torso" ], + "target": "aim-constraint-target", + "rotation": 69.5, + "shearY": -36, + "rotateMix": 0, + "translateMix": 0, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "front-foot-board-transform", + "order": 2, + "bones": [ "front-foot-target" ], + "target": "hoverboard-controller", + "x": -69.8, + "y": 20.7, + "rotateMix": 0, + "translateMix": 0, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "rear-foot-board-transform", + "order": 3, + "bones": [ "rear-foot-target" ], + "target": "hoverboard-controller", + "x": 86.6, + "y": 21.3, + "rotateMix": 0, + "translateMix": 0, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "shoulder", + "bones": [ "back-shoulder" ], + "target": "front-shoulder", + "x": 40.17, + "y": -1.66, + "rotateMix": 0, + "translateMix": -1, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "toes-board", + "order": 14, + "bones": [ "front-foot-tip", "back-foot-tip" ], + "target": "hoverboard-controller", + "rotateMix": 0, + "translateMix": 0, + "scaleMix": 0, + "shearMix": 0 + } +], +"skins": [ + { + "name": "default", + "attachments": { + "clipping": { + "clipping": { + "type": "clipping", + "end": "head-bb", + "vertexCount": 9, + "vertices": [ 66.76, 509.48, 19.98, 434.54, 5.34, 336.28, 22.19, 247.93, 77.98, 159.54, 182.21, -97.56, 1452.26, -99.8, 1454.33, 843.61, 166.57, 841.02 ], + "color": "ce3a3aff" + } + }, + "crosshair": { + "crosshair": { "width": 89, "height": 89 } + }, + "exhaust1": { + "hoverglow-small": { "scaleX": 0.4629, "scaleY": 0.8129, "rotation": -83.07, "width": 274, "height": 75 } + }, + "exhaust2": { + "hoverglow-small": { + "x": 0.01, + "y": -0.76, + "scaleX": 0.4208, + "scaleY": 0.8403, + "rotation": -89.25, + "width": 274, + "height": 75 + } + }, + "exhaust3": { + "hoverglow-small": { "scaleX": 0.4629, "scaleY": 0.8129, "rotation": -83.07, "width": 274, "height": 75 } + }, + "eye": { + "eye-indifferent": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 2, 3, 1, 3, 0 ], + "vertices": [ 2, 66, -36.8, -91.35, 0.3, 46, 73.41, -91.35, 0.7, 2, 66, -87.05, -13.11, 0.70968, 46, 23.16, -13.11, 0.29032, 2, 66, -12.18, 34.99, 0.82818, 46, 98.03, 34.99, 0.17182, 2, 66, 38.07, -43.25, 0.59781, 46, 148.28, -43.25, 0.40219 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 93, + "height": 89 + }, + "eye-surprised": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 66, -46.74, -89.7, 0.3, 46, 63.47, -89.7, 0.7, 2, 66, -77.58, -1.97, 0.71, 46, 32.63, -1.97, 0.29, 2, 66, 6.38, 27.55, 0.83, 46, 116.59, 27.55, 0.17, 2, 66, 37.22, -60.19, 0.6, 46, 147.44, -60.19, 0.4 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 93, + "height": 89 + } + }, + "front-bracer": { + "front-bracer": { "x": 12.03, "y": -1.68, "rotation": 79.6, "width": 58, "height": 80 } + }, + "front-fist": { + "front-fist-closed": { "x": 35.5, "y": 6, "rotation": 67.16, "width": 75, "height": 82 }, + "front-fist-open": { "x": 39.57, "y": 7.76, "rotation": 67.16, "width": 86, "height": 87 } + }, + "front-foot": { + "front-foot": { + "type": "mesh", + "uvs": [ 0.59417, 0.23422, 0.62257, 0.30336, 0.6501, 0.37036, 0.67637, 0.38404, 0.72068, 0.4071, 0.76264, 0.42894, 1, 0.70375, 1, 1, 0.65517, 1, 0.46923, 0.99999, 0, 1, 0, 0.39197, 0.17846, 0, 0.49796, 0 ], + "triangles": [ 8, 6, 7, 6, 8, 5, 5, 8, 4, 4, 8, 3, 8, 9, 3, 9, 10, 2, 1, 2, 10, 9, 2, 3, 0, 1, 11, 0, 11, 12, 0, 12, 13, 11, 1, 10 ], + "vertices": [ 2, 38, 18.17, 41.57, 0.7896, 39, 12.46, 46.05, 0.2104, 2, 38, 24.08, 40.76, 0.71228, 39, 16.12, 41.34, 0.28772, 2, 38, 29.81, 39.98, 0.55344, 39, 19.67, 36.78, 0.44656, 2, 38, 32.81, 41.67, 0.38554, 39, 23, 35.89, 0.61446, 2, 38, 37.86, 44.52, 0.25567, 39, 28.61, 34.4, 0.74433, 2, 38, 42.65, 47.22, 0.17384, 39, 33.92, 32.99, 0.82616, 1, 39, 64.15, 14.56, 1, 1, 39, 64.51, -5.87, 1, 1, 39, 21.08, -6.64, 1, 2, 38, 44.67, -6.77, 0.5684, 39, -2.34, -6.97, 0.4316, 1, 38, 3.1, -48.81, 1, 1, 38, -26.73, -19.31, 1, 1, 38, -30.15, 15.69, 1, 1, 38, -1.84, 44.32, 1 ], + "hull": 14, + "edges": [ 14, 16, 16, 18, 18, 20, 4, 18, 20, 22, 24, 26, 22, 24, 12, 14, 10, 12, 2, 4, 2, 20, 4, 6, 6, 16, 2, 0, 0, 26, 6, 8, 8, 10 ], + "width": 126, + "height": 69 + } + }, + "front-shin": { + "front-shin": { + "type": "mesh", + "uvs": [ 0.90031, 0.05785, 1, 0.12828, 1, 0.21619, 0.9025, 0.31002, 0.78736, 0.35684, 0.78081, 0.39874, 0.77215, 0.45415, 0.77098, 0.51572, 0.84094, 0.63751, 0.93095, 0.7491, 0.95531, 0.7793, 0.78126, 0.87679, 0.5613, 1, 0.2687, 1, 0, 1, 0.00279, 0.96112, 0.01358, 0.81038, 0.02822, 0.60605, 0.08324, 0.45142, 0.18908, 0.31882, 0.29577, 0.2398, 0.30236, 0.14941, 0.37875, 0.05902, 0.53284, 0, 0.70538, 0, 0.41094, 0.71968, 0.40743, 0.54751, 0.41094, 0.4536, 0.4724, 0.35186, 0.33367, 0.27829, 0.50226, 0.31664, 0.65328, 0.67507, 0.60762, 0.52716, 0.6006, 0.45125, 0.62747, 0.37543, 0.6573, 0.3385, 0.27843, 0.32924, 0.18967, 0.45203, 0.16509, 0.58586, 0.18265, 0.7682, 0.50532, 0.24634, 0.59473, 0.17967, 0.60161, 0.10611, 0.51392, 0.04327, 0.72198, 0.28849, 0.82343, 0.20266, 0.86814, 0.11377, 0.79592, 0.04634, 0.44858, 0.15515, 0.25466, 0.96219, 0.53169, 0.9448, 0.7531, 0.8324 ], + "triangles": [ 24, 0, 47, 43, 23, 24, 47, 43, 24, 43, 22, 23, 42, 43, 47, 46, 47, 0, 42, 47, 46, 46, 0, 1, 48, 22, 43, 48, 43, 42, 21, 22, 48, 41, 48, 42, 45, 42, 46, 41, 42, 45, 46, 1, 2, 45, 46, 2, 40, 48, 41, 48, 20, 21, 29, 48, 40, 29, 20, 48, 44, 41, 45, 40, 41, 44, 3, 45, 2, 44, 45, 3, 30, 29, 40, 35, 30, 40, 36, 19, 20, 36, 20, 29, 44, 35, 40, 28, 29, 30, 4, 44, 3, 35, 44, 4, 34, 30, 35, 5, 35, 4, 34, 28, 30, 33, 28, 34, 37, 19, 36, 18, 19, 37, 27, 29, 28, 27, 28, 33, 36, 29, 27, 37, 36, 27, 5, 34, 35, 6, 34, 5, 33, 34, 6, 6, 32, 33, 7, 32, 6, 26, 37, 27, 38, 18, 37, 38, 37, 26, 17, 18, 38, 31, 32, 7, 31, 7, 8, 32, 25, 26, 38, 26, 25, 27, 33, 32, 32, 26, 27, 39, 38, 25, 17, 38, 39, 16, 17, 39, 51, 31, 8, 51, 8, 9, 11, 51, 9, 11, 9, 10, 31, 50, 25, 31, 25, 32, 50, 31, 51, 49, 39, 25, 49, 25, 50, 15, 16, 39, 49, 15, 39, 13, 49, 50, 14, 15, 49, 13, 14, 49, 12, 50, 51, 12, 51, 11, 13, 50, 12 ], + "vertices": [ -23.66, 19.37, -11.73, 28.98, 4.34, 30.83, 22.41, 24.87, 32.05, 16.48, 39.77, 16.83, 49.98, 17.3, 61.25, 18.5, 82.85, 26.78, 102.4, 36.46, 107.69, 39.09, 127.15, 26.97, 151.74, 11.65, 154.49, -12.18, 157.02, -34.07, 149.89, -34.66, 122.23, -36.97, 84.75, -40.09, 55.97, -38.88, 30.73, -33.05, 15.29, -26.03, -1.3, -27.41, -18.54, -23.09, -30.78, -11.79, -32.4, 2.27, 101.92, -6.52, 70.48, -10.44, 53.28, -12.14, 34.11, -9.28, 21.96, -22.13, 27.39, -7.59, 91.48, 12.28, 64.88, 5.44, 51.07, 3.26, 36.95, 3.85, 29.92, 5.5, 31.8, -25.56, 55.08, -30.19, 79.77, -29.37, 112.93, -24.09, 14.51, -8.83, 1.48, -2.95, -12.03, -3.94, -22.69, -12.41, 20.17, 9.71, 3.53, 16.16, -13.14, 17.93, -24.78, 10.62, -1.62, -15.37, 147.71, -14.13, 141.93, 8.07, 119.3, 23.74 ], + "hull": 25, + "edges": [ 8, 6, 6, 4, 4, 2, 2, 0, 0, 48, 46, 48, 46, 44, 44, 42, 42, 40, 40, 38, 38, 36, 36, 34, 32, 34, 50, 52, 52, 54, 54, 56, 40, 58, 58, 60, 8, 10, 20, 22, 22, 24, 62, 64, 64, 66, 66, 68, 8, 70, 70, 60, 68, 70, 58, 72, 72, 74, 74, 76, 76, 78, 24, 26, 26, 28, 58, 80, 80, 82, 82, 84, 84, 86, 86, 44, 70, 88, 88, 90, 90, 92, 92, 94, 94, 48, 80, 88, 88, 6, 82, 90, 90, 4, 84, 92, 92, 2, 86, 94, 94, 0, 56, 60, 10, 12, 12, 14, 14, 16, 28, 30, 30, 32, 26, 98, 98, 78, 30, 98, 24, 100, 100, 50, 98, 100, 22, 102, 102, 62, 100, 102, 16, 18, 18, 20, 102, 18 ], + "width": 82, + "height": 184 + } + }, + "front-thigh": { + "front-thigh": { "x": 42.48, "y": 4.45, "rotation": 84.87, "width": 45, "height": 112 } + }, + "front-upper-arm": { + "front-upper-arm": { "x": 28.31, "y": 7.37, "rotation": 97.9, "width": 46, "height": 97 } + }, + "goggles": { + "goggles": { + "type": "mesh", + "uvs": [ 0.53653, 0.04114, 0.72922, 0.16036, 0.91667, 0.33223, 0.97046, 0.31329, 1, 0.48053, 0.95756, 0.5733, 0.88825, 0.6328, 0.86878, 0.78962, 0.77404, 0.8675, 0.72628, 1, 0.60714, 0.93863, 0.49601, 0.88138, 0.41558, 0.75027, 0.32547, 0.70084, 0.2782, 0.58257, 0.1721, 0.63281, 0.17229, 0.75071, 0.10781, 0.79898, 0, 0.32304, 0, 0.12476, 0.07373, 0.07344, 0.15423, 0.10734, 0.23165, 0.13994, 0.30313, 0.02256, 0.34802, 0, 0.42979, 0.69183, 0.39476, 0.51042, 0.39488, 0.31512, 0.45878, 0.23198, 0.56501, 0.28109, 0.69961, 0.39216, 0.82039, 0.54204, 0.85738, 0.62343, 0.91107, 0.51407, 0.72639, 0.32147, 0.58764, 0.19609, 0.48075, 0.11269, 0.37823, 0.05501, 0.3287, 0.17866, 0.319, 0.305, 0.36036, 0.53799, 0.40327, 0.70072, 0.30059, 0.55838, 0.21957, 0.2815, 0.09963, 0.28943, 0.56863, 0.4368, 0.4911, 0.37156, 0.51185, 0.52093, 0.67018, 0.59304, 0.7619, 0.68575, 0.73296, 0.43355 ], + "triangles": [ 33, 50, 34, 8, 49, 7, 49, 32, 7, 49, 31, 32, 31, 49, 50, 6, 32, 33, 32, 31, 33, 31, 50, 33, 7, 32, 6, 5, 6, 33, 5, 33, 4, 33, 2, 4, 2, 33, 34, 18, 19, 44, 2, 3, 4, 44, 19, 21, 17, 18, 15, 21, 19, 20, 18, 44, 15, 2, 34, 1, 49, 8, 48, 48, 9, 10, 47, 48, 10, 46, 28, 29, 12, 13, 42, 13, 14, 42, 14, 15, 44, 42, 14, 44, 44, 21, 43, 47, 10, 25, 12, 41, 25, 34, 35, 1, 35, 0, 1, 26, 27, 46, 27, 28, 46, 29, 28, 35, 28, 36, 35, 36, 0, 35, 22, 23, 38, 37, 23, 24, 43, 22, 38, 27, 39, 38, 38, 37, 36, 39, 43, 38, 37, 38, 23, 26, 39, 27, 28, 27, 38, 40, 39, 26, 28, 38, 36, 42, 39, 40, 42, 43, 39, 36, 37, 0, 37, 24, 0, 25, 26, 47, 40, 26, 25, 29, 35, 34, 41, 42, 40, 41, 40, 25, 43, 21, 22, 42, 44, 43, 41, 12, 42, 12, 25, 11, 25, 10, 11, 47, 26, 46, 30, 34, 50, 30, 29, 34, 30, 45, 29, 45, 46, 29, 45, 47, 46, 50, 45, 30, 47, 45, 48, 50, 48, 45, 49, 48, 50, 9, 48, 8, 17, 15, 16 ], + "vertices": [ 2, 66, 61.88, 22.81, 0.832, 46, 172.09, 22.81, 0.168, 2, 66, 59.89, -31.19, 0.6855, 46, 170.1, -31.19, 0.3145, 2, 66, 49.2, -86.8, 0.32635, 46, 159.41, -86.8, 0.67365, 2, 66, 56.82, -99.01, 0.01217, 46, 167.03, -99.01, 0.98783, 1, 46, 143.4, -115.48, 1, 2, 66, 15, -110.14, 0.0041, 46, 125.21, -110.14, 0.9959, 2, 66, -0.32, -96.36, 0.07948, 46, 109.89, -96.36, 0.92052, 2, 66, -26.56, -100.19, 0.01905, 46, 83.65, -100.19, 0.98095, 2, 66, -46.96, -81.16, 0.4921, 46, 63.26, -81.16, 0.50791, 2, 66, -71.84, -76.69, 0.56923, 46, 38.37, -76.69, 0.43077, 2, 66, -72.54, -43.98, 0.74145, 46, 37.67, -43.98, 0.25855, 2, 66, -73.2, -13.47, 0.87929, 46, 37.01, -13.47, 0.12071, 2, 66, -59.63, 13.55, 0.864, 46, 50.58, 13.55, 0.136, 2, 66, -59.69, 38.45, 0.85289, 46, 50.52, 38.45, 0.14711, 2, 66, -45.26, 56.6, 0.74392, 46, 64.95, 56.6, 0.25608, 2, 66, -62.31, 79.96, 0.624, 46, 47.9, 79.96, 0.376, 2, 66, -80.76, 73.42, 0.616, 46, 29.45, 73.42, 0.384, 2, 66, -93.9, 86.64, 0.288, 46, 16.31, 86.64, 0.712, 1, 46, 81.51, 139.38, 1, 1, 46, 112.56, 150.3, 1, 2, 66, 16.76, 134.97, 0.02942, 46, 126.97, 134.97, 0.97058, 2, 66, 18.42, 113.28, 0.36147, 46, 128.63, 113.28, 0.63853, 2, 66, 20.02, 92.43, 0.7135, 46, 130.23, 92.43, 0.2865, 2, 66, 44.58, 81.29, 0.69603, 46, 154.79, 81.29, 0.30397, 2, 66, 52, 71.48, 0.848, 46, 162.21, 71.48, 0.152, 2, 66, -49.25, 13.27, 0.8, 46, 60.96, 13.27, 0.2, 2, 66, -23.88, 31.88, 0.896, 46, 86.33, 31.88, 0.104, 2, 66, 6.72, 42.6, 0.928, 46, 116.93, 42.6, 0.072, 2, 66, 25.26, 31.44, 0.8, 46, 135.47, 31.44, 0.2, 2, 66, 26.77, 2.59, 0.75, 46, 136.98, 2.59, 0.25, 2, 66, 21.02, -36.66, 0.54887, 46, 131.23, -36.66, 0.45113, 2, 66, 8.01, -74.65, 0.36029, 46, 118.22, -74.65, 0.63971, 2, 66, -1.52, -88.24, 0.1253, 46, 108.69, -88.24, 0.8747, 2, 66, 20.25, -95.44, 0.08687, 46, 130.46, -95.44, 0.91313, 2, 66, 34.42, -39.36, 0.72613, 46, 144.63, -39.36, 0.27387, 2, 66, 42.03, 1.7, 0.824, 46, 152.25, 1.7, 0.176, 2, 66, 45.85, 32.6, 0.856, 46, 156.06, 32.6, 0.144, 1, 66, 46.01, 61.02, 1, 1, 66, 22.35, 66.41, 1, 1, 66, 1.73, 61.84, 1, 2, 66, -31.17, 38.83, 0.928, 46, 79.04, 38.83, 0.072, 2, 66, -52.94, 19.31, 0.79073, 46, 57.27, 19.31, 0.20927, 2, 66, -39.54, 52.42, 0.912, 46, 70.67, 52.42, 0.088, 2, 66, -3.2, 87.61, 0.744, 46, 107.02, 87.61, 0.256, 2, 66, -14.82, 116.7, 0.6368, 46, 95.4, 116.7, 0.3632, 2, 66, 2.7, -6.87, 0.856, 46, 112.91, -6.87, 0.144, 2, 66, 6.21, 15.8, 0.744, 46, 116.42, 15.8, 0.256, 2, 66, -15.39, 2.47, 0.856, 46, 94.82, 2.47, 0.144, 2, 66, -12.98, -40.48, 0.72102, 46, 97.24, -40.48, 0.27898, 2, 66, -19.55, -68.16, 0.59162, 46, 90.66, -68.16, 0.40838, 2, 66, 17.44, -47.15, 0.53452, 46, 127.65, -47.15, 0.46548 ], + "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.83, "width": 210, "height": 203 } + }, + "head": { + "head": { + "type": "mesh", + "uvs": [ 0.75919, 0.06107, 0.88392, 0.17893, 0.90174, 0.30856, 0.94224, 0.1966, 1, 0.26584, 1, 0.422, 0.95864, 0.46993, 0.92118, 0.51333, 0.85957, 0.5347, 0.78388, 0.65605, 0.74384, 0.74838, 0.85116, 0.75151, 0.84828, 0.82564, 0.81781, 0.85367, 0.75599, 0.85906, 0.76237, 0.90468, 0.65875, 1, 0.38337, 1, 0.1858, 0.85404, 0.12742, 0.81091, 0.06025, 0.69209, 0, 0.58552, 0, 0.41021, 0.0853, 0.20692, 0.24243, 0.14504, 0.5, 0.1421, 0.50324, 0.07433, 0.41738, 0, 0.57614, 0, 0.85059, 0.36087, 0.73431, 0.43206, 0.68481, 0.31271, 0.72165, 0.16718, 0.55931, 0.04154, 0.44764, 0.22895, 0.23926, 0.26559, 0.71272, 0.44036, 0.56993, 0.383, 0.41678, 0.33511, 0.293, 0.31497, 0.70802, 0.44502, 0.56676, 0.38976, 0.41521, 0.34416, 0.28754, 0.33017, 0.88988, 0.50177, 0.30389, 0.73463, 0.2646, 0.65675, 0.21414, 0.61584, 0.14613, 0.62194, 0.10316, 0.66636, 0.10358, 0.72557, 0.14505, 0.79164, 0.20263, 0.81355, 0.27873, 0.80159, 0.34947, 0.7376, 0.23073, 0.57073, 0.08878, 0.60707, 0.29461, 0.8129, 0.73006, 0.87883, 0.69805, 0.87348, 0.66166, 0.79681, 0.22468, 0.69824, 0.14552, 0.67405 ], + "triangles": [ 19, 50, 51, 18, 57, 17, 57, 54, 17, 17, 54, 60, 57, 52, 53, 57, 18, 52, 52, 19, 51, 53, 52, 61, 57, 45, 54, 57, 53, 45, 52, 51, 61, 53, 61, 45, 54, 41, 60, 60, 41, 40, 61, 50, 62, 61, 51, 50, 55, 41, 54, 61, 46, 45, 42, 41, 55, 46, 54, 45, 61, 62, 47, 62, 48, 47, 61, 47, 46, 62, 49, 48, 47, 55, 46, 42, 55, 43, 46, 55, 54, 47, 48, 55, 55, 48, 56, 55, 22, 43, 36, 30, 44, 36, 40, 37, 40, 41, 37, 30, 36, 31, 36, 37, 31, 30, 31, 29, 43, 22, 39, 41, 42, 37, 42, 38, 37, 31, 37, 34, 32, 2, 31, 43, 39, 42, 42, 39, 38, 37, 38, 34, 38, 39, 34, 39, 35, 34, 34, 25, 31, 50, 49, 62, 2, 32, 1, 31, 25, 32, 33, 32, 25, 33, 25, 26, 32, 0, 1, 32, 33, 0, 0, 33, 28, 26, 27, 33, 33, 27, 28, 30, 29, 6, 6, 29, 5, 29, 2, 5, 2, 4, 5, 29, 31, 2, 2, 3, 4, 44, 30, 6, 20, 49, 50, 15, 59, 58, 15, 16, 59, 59, 16, 60, 16, 17, 60, 58, 14, 15, 58, 59, 14, 59, 60, 14, 13, 14, 10, 14, 60, 10, 13, 10, 12, 12, 10, 11, 20, 50, 19, 10, 60, 9, 9, 60, 40, 20, 56, 49, 20, 21, 56, 9, 40, 8, 55, 56, 22, 56, 21, 22, 8, 44, 7, 40, 36, 8, 8, 36, 44, 7, 44, 6, 22, 23, 35, 39, 22, 35, 35, 24, 34, 35, 23, 24, 34, 24, 25, 49, 56, 48, 18, 19, 52 ], + "vertices": [ 2, 50, 41.97, -41.8, 0.94074, 66, 165.41, -22.6, 0.05926, 4, 48, 73.47, 27.54, 0.26795, 50, -5.75, -51.71, 0.4738, 49, 112.99, -11.41, 0.12255, 66, 143.5, -66.13, 0.1357, 4, 48, 38.23, 10.99, 0.6831, 50, -41.01, -35.22, 0.07866, 49, 92.73, -44.66, 0.04872, 66, 108.65, -83.49, 0.18952, 2, 48, 73.35, 10.89, 0.8455, 66, 143.77, -82.78, 0.1545, 2, 48, 58.59, -10.38, 0.91607, 66, 129.5, -104.39, 0.08393, 3, 46, 195.82, -119.82, 0.104, 47, 75.49, -4.55, 0.09191, 48, 14.36, -24.8, 0.80409, 4, 46, 178.62, -113.98, 0.19022, 47, 59.82, -13.72, 0.33409, 48, -2.7, -18.57, 0.46643, 66, 68.41, -113.98, 0.00926, 4, 46, 163.06, -108.69, 0.18724, 47, 45.64, -22.03, 0.3133, 48, -18.14, -12.93, 0.47469, 66, 52.84, -108.69, 0.02477, 2, 46, 151.52, -95.05, 0.91122, 66, 41.31, -95.05, 0.08878, 2, 46, 110.61, -87.69, 0.70564, 66, 0.4, -87.69, 0.29436, 2, 46, 81.05, -86.58, 0.63951, 66, -29.16, -86.58, 0.36049, 2, 46, 89.82, -114.32, 0.57, 66, -20.39, -114.32, 0.43, 2, 46, 68.72, -120.91, 0.57, 66, -41.49, -120.91, 0.43, 2, 46, 58.1, -115.9, 0.57, 66, -52.11, -115.9, 0.43, 2, 46, 51.03, -100.63, 0.64242, 66, -59.18, -100.63, 0.35758, 2, 46, 38.79, -106.76, 0.81659, 66, -71.43, -106.76, 0.18341, 2, 46, 2.68, -89.7, 0.77801, 66, -107.53, -89.7, 0.22199, 2, 46, -22.07, -19.3, 0.823, 66, -132.28, -19.3, 0.177, 2, 46, 1.2, 45.63, 0.51204, 66, -109.01, 45.63, 0.48796, 2, 46, 8.07, 64.81, 0.60869, 66, -102.14, 64.81, 0.39131, 2, 46, 35.44, 93.73, 0.80009, 66, -74.77, 93.73, 0.19991, 2, 46, 59.98, 119.66, 0.93554, 66, -50.23, 119.66, 0.06446, 2, 46, 109.26, 136.99, 0.99895, 66, -0.95, 136.99, 0.00105, 1, 46, 174.07, 135.27, 1, 3, 46, 205.59, 101.22, 0.80778, 49, -16.84, 104.63, 0.15658, 66, 95.38, 101.22, 0.03564, 3, 50, 58.94, 30.5, 0.43491, 49, 38.36, 61.89, 0.28116, 66, 119.35, 35.65, 0.28393, 2, 50, 75.56, 19.01, 0.92164, 66, 138.68, 41.52, 0.07836, 1, 50, 106.7, 26.9, 1, 1, 50, 83.79, -9.51, 1, 5, 47, 44.51, 27.24, 0.15139, 48, 19.12, 19.33, 0.44847, 50, -46.82, -15.19, 0.05757, 49, 72.19, -48.24, 0.1149, 66, 89.35, -75.58, 0.22767, 3, 47, 7.42, 19.08, 0.37772, 49, 34.32, -45.24, 0.09918, 66, 58.9, -52.89, 0.52311, 2, 49, 45.94, -9.07, 0.4826, 66, 87.99, -28.45, 0.5174, 2, 50, 20.62, -16.35, 0.7435, 66, 132.21, -23.49, 0.2565, 2, 50, 75.74, 0.94, 0.97172, 66, 152.95, 30.42, 0.02828, 4, 46, 200.45, 40.46, 0.18809, 50, 44.6, 56.29, 0.05831, 49, 11.15, 50.46, 0.14366, 66, 90.24, 40.46, 0.60994, 2, 46, 171.41, 90.12, 0.48644, 66, 61.2, 90.12, 0.51356, 2, 46, 164.84, -48.18, 0.43217, 66, 54.62, -48.18, 0.56783, 4, 46, 168.13, -6.02, 0.01949, 47, -28.65, 49.02, 0.02229, 49, 8.54, -6.09, 0.12791, 66, 57.92, -6.02, 0.83031, 2, 46, 167.84, 37.87, 0.15, 66, 57.63, 37.87, 0.85, 2, 46, 162.36, 71.5, 0.24107, 66, 52.15, 71.5, 0.75893, 2, 46, 163.11, -47.44, 0.41951, 66, 52.9, -47.44, 0.58049, 2, 46, 165.94, -5.87, 0.16355, 66, 55.73, -5.87, 0.83645, 2, 46, 165.14, 37.38, 0.15, 66, 54.93, 37.38, 0.85, 2, 46, 157.6, 71.4, 0.21735, 66, 47.39, 71.4, 0.78265, 3, 46, 163.5, -99.54, 0.61812, 47, 39.01, -15.71, 0.30445, 66, 53.29, -99.54, 0.07744, 2, 46, 45.38, 27.24, 0.16741, 66, -64.83, 27.24, 0.83259, 2, 46, 63.74, 44.98, 0.15, 66, -46.47, 44.98, 0.85, 2, 46, 70.7, 61.92, 0.22175, 66, -39.51, 61.92, 0.77825, 2, 46, 62.88, 78.71, 0.38, 66, -47.34, 78.71, 0.62, 2, 46, 46.53, 85.3, 0.51, 66, -63.68, 85.3, 0.49, 2, 46, 29.92, 79.34, 0.388, 66, -80.29, 79.34, 0.612, 2, 46, 15.08, 62.21, 0.38, 66, -95.13, 62.21, 0.62, 2, 46, 14.09, 45.32, 0.41, 66, -96.12, 45.32, 0.59, 2, 46, 24.3, 27.06, 0.192, 66, -85.91, 27.06, 0.808, 1, 66, -61.57, 15.3, 1, 2, 46, 84.87, 62.14, 0.16757, 66, -25.34, 62.14, 0.83243, 2, 46, 61.9, 94.84, 0.68145, 66, -48.31, 94.84, 0.31855, 2, 46, 22.54, 21.88, 0.16, 66, -87.67, 21.88, 0.84, 2, 46, 43.15, -95.95, 0.73445, 66, -67.06, -95.95, 0.26555, 2, 46, 41.77, -87.24, 0.67858, 66, -68.44, -87.24, 0.32142, 2, 46, 60.05, -70.36, 0.50195, 66, -50.16, -70.36, 0.49805, 2, 46, 48.49, 51.09, 0.25, 66, -61.72, 51.09, 0.75, 2, 46, 48.17, 73.71, 0.15634, 66, -62.04, 73.71, 0.84366 ], + "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.08, 257.78, -115.62, 285.17, 57.18, 120.77, 164.95, -5.07, 76.95 ] + } + }, + "hoverboard-board": { + "hoverboard-board": { + "type": "mesh", + "uvs": [ 0.13865, 0.56624, 0.11428, 0.51461, 0.07619, 0.52107, 0.02364, 0.52998, 0.01281, 0.53182, 0, 0.37979, 0, 0.2206, 0.00519, 0.10825, 0.01038, 0.10726, 0.03834, 0.10194, 0.05091, 0, 0.08326, 0, 0.10933, 0.04206, 0.1382, 0.08865, 0.18916, 0.24067, 0.22234, 0.4063, 0.23886, 0.44063, 0.83412, 0.44034, 0.88444, 0.38296, 0.92591, 0.32639, 0.95996, 0.28841, 0.98612, 0.28542, 1, 0.38675, 0.99494, 0.47104, 0.97883, 0.53251, 0.94409, 0.62135, 0.90206, 0.69492, 0.86569, 0.71094, 0.82822, 0.70791, 0.81286, 0.77127, 0.62931, 0.77266, 0.61364, 0.70645, 0.47166, 0.70664, 0.45901, 0.77827, 0.27747, 0.76986, 0.2658, 0.70372, 0.24976, 0.71381, 0.24601, 0.77827, 0.23042, 0.84931, 0.20926, 0.90956, 0.17299, 1, 0.15077, 0.99967, 0.12906, 0.90192, 0.10369, 0.73693, 0.10198, 0.62482, 0.09131, 0.47272, 0.09133, 0.41325, 0.15082, 0.41868, 0.21991, 0.51856, 0.06331, 0.10816, 0.08383, 0.21696, 0.08905, 0.37532, 0.15903, 0.58726, 0.17538, 0.65706, 0.20118, 0.8029, 0.17918, 0.55644, 0.22166, 0.5802, 0.86259, 0.57962, 0.92346, 0.48534, 0.96691, 0.36881, 0.0945, 0.13259, 0.12688, 0.17831, 0.15986, 0.24682, 0.18036, 0.31268, 0.20607, 0.4235, 0.16074, 0.85403, 0.13624, 0.70122, 0.12096, 0.64049, 0.02396, 0.21811, 0.02732, 0.37839, 0.02557, 0.4972, 0.14476, 0.45736, 0.18019, 0.51689, 0.19692, 0.56636 ], + "triangles": [ 10, 11, 12, 9, 10, 12, 49, 9, 12, 60, 49, 12, 13, 60, 12, 61, 60, 13, 50, 49, 60, 50, 60, 61, 68, 8, 9, 68, 9, 49, 68, 49, 50, 7, 8, 68, 6, 7, 68, 61, 13, 14, 62, 61, 14, 50, 61, 62, 63, 62, 14, 59, 20, 21, 19, 20, 59, 51, 50, 62, 51, 62, 63, 51, 69, 68, 51, 68, 50, 6, 68, 69, 5, 6, 69, 18, 19, 59, 15, 63, 14, 59, 21, 22, 47, 51, 63, 47, 46, 51, 47, 63, 64, 15, 64, 63, 64, 15, 16, 71, 46, 47, 23, 59, 22, 69, 51, 70, 45, 46, 71, 70, 51, 2, 58, 18, 59, 58, 59, 23, 17, 18, 58, 70, 5, 69, 2, 51, 46, 1, 45, 71, 47, 48, 71, 47, 64, 48, 48, 72, 71, 1, 71, 72, 16, 48, 64, 45, 2, 46, 2, 45, 1, 70, 4, 5, 3, 70, 2, 3, 4, 70, 24, 58, 23, 72, 0, 1, 73, 55, 72, 55, 0, 72, 48, 73, 72, 57, 17, 58, 25, 57, 58, 56, 48, 16, 73, 48, 56, 56, 16, 17, 56, 17, 57, 52, 0, 55, 24, 25, 58, 44, 0, 52, 67, 44, 52, 52, 56, 53, 73, 52, 55, 56, 52, 73, 67, 52, 53, 26, 57, 25, 66, 67, 53, 56, 32, 35, 53, 56, 35, 56, 57, 32, 28, 31, 57, 57, 31, 32, 57, 27, 28, 26, 27, 57, 36, 53, 35, 43, 44, 67, 43, 67, 66, 34, 35, 32, 29, 31, 28, 30, 31, 29, 53, 54, 66, 53, 36, 54, 33, 34, 32, 37, 54, 36, 65, 43, 66, 38, 54, 37, 54, 65, 66, 39, 65, 54, 42, 43, 65, 38, 39, 54, 40, 42, 65, 40, 41, 42, 65, 39, 40 ], + "vertices": [ -189.36, 15.62, -201.35, 23.47, -220.09, 22.49, -245.95, 21.13, -251.28, 20.86, -257.58, 43.96, -257.57, 68.16, -255.02, 85.24, -252.47, 85.39, -238.71, 86.2, -232.52, 101.69, -216.61, 101.69, -203.78, 95.3, -189.58, 88.21, -164.51, 65.1, -148.19, 39.93, -140.06, 34.71, 152.82, 34.73, 177.57, 43.45, 197.97, 52.05, 214.72, 57.82, 227.6, 58.27, 234.42, 42.87, 231.94, 30.06, 224.01, 20.72, 206.91, 7.21, 186.23, -3.97, 168.34, -6.4, 149.9, -5.94, 142.35, -15.57, 52.04, -15.77, 44.33, -5.71, -25.52, -5.73, -31.75, -16.62, -121.07, -15.34, -126.81, -5.28, -134.7, -6.81, -136.54, -16.61, -144.22, -27.41, -154.63, -36.57, -172.47, -50.31, -183.41, -50.26, -194.09, -35.4, -206.56, -10.32, -207.4, 6.72, -212.65, 29.84, -212.64, 38.88, -183.37, 38.05, -149.38, 22.86, -226.43, 85.25, -216.33, 68.71, -213.76, 44.64, -179.34, 12.42, -171.29, 1.81, -158.6, -20.36, -169.42, 17.11, -148.52, 13.49, 166.82, 13.56, 196.76, 27.89, 218.14, 45.6, -211.08, 81.54, -195.15, 74.59, -178.93, 64.17, -168.84, 54.16, -156.19, 37.31, -178.5, -28.13, -190.55, -4.9, -198.07, 4.33, -245.79, 68.54, -244.14, 44.18, -245, 26.12, -186.36, 32.17, -168.92, 23.12, -160.69, 15.6 ], + "hull": 45, + "edges": [ 0, 2, 8, 10, 10, 12, 12, 14, 18, 20, 20, 22, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 70, 72, 72, 74, 80, 82, 82, 84, 84, 86, 86, 88, 0, 88, 2, 90, 90, 92, 92, 94, 94, 96, 96, 32, 18, 98, 98, 100, 100, 102, 2, 4, 102, 4, 92, 102, 0, 104, 104, 106, 106, 108, 78, 80, 108, 78, 74, 76, 76, 78, 62, 56, 64, 70, 0, 110, 112, 114, 114, 116, 116, 118, 118, 42, 50, 116, 114, 34, 98, 120, 120, 122, 22, 24, 24, 26, 120, 24, 122, 124, 124, 126, 126, 128, 128, 96, 80, 130, 130, 132, 132, 134, 134, 88, 14, 16, 16, 18, 136, 16, 136, 138, 138, 140, 4, 6, 6, 8, 140, 6, 96, 112, 92, 142, 142, 144, 110, 146, 146, 112, 144, 146 ], + "width": 492, + "height": 152 + } + }, + "hoverboard-thruster-front": { + "hoverboard-thruster": { "x": 0.02, "y": -7.08, "rotation": 0.17, "width": 60, "height": 64 } + }, + "hoverboard-thruster-rear": { + "hoverboard-thruster": { "x": 1.1, "y": -6.29, "rotation": 0.17, "width": 60, "height": 64 } + }, + "hoverglow-front": { + "hoverglow-small": { + "x": 2.13, + "y": -2, + "scaleX": 0.303, + "scaleY": 0.495, + "rotation": 0.15, + "width": 274, + "height": 75 + } + }, + "hoverglow-rear": { + "hoverglow-small": { + "x": 1.39, + "y": -2.09, + "scaleX": 0.303, + "scaleY": 0.495, + "rotation": 0.61, + "width": 274, + "height": 75 + } + }, + "mouth": { + "mouth-grind": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 66, -98.93, -85.88, 0.22, 46, 11.28, -85.88, 0.78, 2, 66, -129.77, 1.84, 0.6, 46, -19.56, 1.84, 0.4, 2, 66, -74.12, 21.41, 0.6, 46, 36.09, 21.41, 0.4, 2, 66, -43.28, -66.32, 0.4, 46, 66.93, -66.32, 0.6 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 93, + "height": 59 + }, + "mouth-oooo": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 46, 11.28, -85.89, 0.22, 66, -98.93, -85.89, 0.78, 2, 46, -19.56, 1.85, 0.6, 66, -129.78, 1.85, 0.4, 2, 46, 36.1, 21.42, 0.6, 66, -74.12, 21.42, 0.4, 2, 46, 66.94, -66.32, 0.4, 66, -43.27, -66.32, 0.6 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 93, + "height": 59 + }, + "mouth-smile": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ], + "triangles": [ 1, 3, 0, 1, 2, 3 ], + "vertices": [ 2, 66, -98.93, -85.89, 0.21075, 46, 11.28, -85.89, 0.78925, 2, 66, -129.77, 1.85, 0.6, 46, -19.56, 1.85, 0.4, 2, 66, -74.11, 21.42, 0.6, 46, 36.1, 21.42, 0.4, 2, 66, -43.27, -66.32, 0.40772, 46, 66.94, -66.32, 0.59228 ], + "hull": 4, + "edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ], + "width": 93, + "height": 59 + } + }, + "muzzle": { + "muzzle01": { + "x": 151.97, + "y": 5.81, + "scaleX": 3.7361, + "scaleY": 3.7361, + "rotation": 0.15, + "width": 133, + "height": 79 + }, + "muzzle02": { + "x": 187.25, + "y": 5.9, + "scaleX": 4.0623, + "scaleY": 4.0623, + "rotation": 0.15, + "width": 135, + "height": 84 + }, + "muzzle03": { + "x": 231.96, + "y": 6.02, + "scaleX": 4.1325, + "scaleY": 4.1325, + "rotation": 0.15, + "width": 166, + "height": 106 + }, + "muzzle04": { + "x": 231.96, + "y": 6.02, + "scaleX": 4.0046, + "scaleY": 4.0046, + "rotation": 0.15, + "width": 149, + "height": 90 + }, + "muzzle05": { + "x": 293.8, + "y": 6.19, + "scaleX": 4.4673, + "scaleY": 4.4673, + "rotation": 0.15, + "width": 135, + "height": 75 + } + }, + "muzzle-glow": { + "muzzle-glow": { "width": 50, "height": 50 } + }, + "muzzle-ring": { + "muzzle-ring": { "x": -1.3, "y": 0.32, "scaleX": 0.3147, "scaleY": 0.3147, "width": 49, "height": 209 } + }, + "muzzle-ring2": { + "muzzle-ring": { "x": -1.3, "y": 0.32, "scaleX": 0.3147, "scaleY": 0.3147, "width": 49, "height": 209 } + }, + "muzzle-ring3": { + "muzzle-ring": { "x": -1.3, "y": 0.32, "scaleX": 0.3147, "scaleY": 0.3147, "width": 49, "height": 209 } + }, + "muzzle-ring4": { + "muzzle-ring": { "x": -1.3, "y": 0.32, "scaleX": 0.3147, "scaleY": 0.3147, "width": 49, "height": 209 } + }, + "neck": { + "neck": { "x": 9.77, "y": -3.01, "rotation": -55.22, "width": 36, "height": 41 } + }, + "portal-bg": { + "portal-bg": { "x": -3.1, "y": 7.25, "scaleX": 1.0492, "scaleY": 1.0492, "width": 266, "height": 266 } + }, + "portal-flare1": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare2": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare3": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare4": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare5": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare6": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare7": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare8": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare9": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-flare10": { + "portal-flare1": { "width": 111, "height": 60 }, + "portal-flare2": { "width": 114, "height": 61 }, + "portal-flare3": { "width": 115, "height": 59 } + }, + "portal-shade": { + "portal-shade": { "width": 266, "height": 266 } + }, + "portal-streaks1": { + "portal-streaks1": { "scaleX": 0.9774, "scaleY": 0.9774, "width": 252, "height": 256 } + }, + "portal-streaks2": { + "portal-streaks2": { "x": -1.64, "y": 2.79, "width": 250, "height": 249 } + }, + "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.51991, 0.21424, 0.551, 0.27907, 0.58838, 0.29816, 0.63489, 0.32191, 0.77342, 0.39267, 1, 0.73347, 1, 1, 0.54831, 0.99883, 0.31161, 1, 0, 1, 0, 0.41397, 0.13631, 0, 0.41717, 0 ], + "triangles": [ 8, 6, 7, 8, 5, 6, 8, 4, 5, 8, 3, 4, 3, 8, 9, 2, 9, 10, 1, 11, 0, 0, 11, 12, 12, 13, 0, 2, 10, 1, 3, 9, 2, 11, 1, 10 ], + "vertices": [ 2, 8, 10.45, 29.41, 0.90802, 9, -6.74, 49.62, 0.09198, 2, 8, 16.56, 29.27, 0.84259, 9, -2.65, 45.09, 0.15741, 2, 8, 21.8, 29.15, 0.69807, 9, 0.85, 41.2, 0.30193, 2, 8, 25.53, 31.43, 0.52955, 9, 5.08, 40.05, 0.47045, 2, 8, 30.18, 34.27, 0.39303, 9, 10.33, 38.62, 0.60697, 2, 8, 44.02, 42.73, 0.27525, 9, 25.98, 34.36, 0.72475, 2, 8, 76.47, 47.28, 0.21597, 9, 51.56, 13.9, 0.78403, 2, 8, 88.09, 36.29, 0.28719, 9, 51.55, -2.09, 0.71281, 2, 8, 52.94, -0.73, 0.47576, 9, 0.52, -1.98, 0.52424, 2, 8, 34.63, -20.23, 0.68757, 9, -26.23, -2.03, 0.31243, 2, 8, 10.44, -45.81, 0.84141, 9, -61.43, -2, 0.15859, 2, 8, -15.11, -21.64, 0.93283, 9, -61.4, 33.15, 0.06717, 1, 8, -22.57, 6.61, 1, 1, 8, -0.76, 29.67, 1 ], + "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-shin": { + "rear-shin": { "x": 58.29, "y": -2.75, "rotation": 92.37, "width": 75, "height": 178 } + }, + "rear-thigh": { + "rear-thigh": { "x": 33.11, "y": -4.11, "rotation": 72.54, "width": 55, "height": 94 } + }, + "rear-upper-arm": { + "rear-upper-arm": { "x": 21.13, "y": 4.09, "rotation": 89.33, "width": 40, "height": 87 } + }, + "side-glow1": { + "hoverglow-small": { "x": 2.09, "scaleX": 0.2353, "scaleY": 0.4132, "width": 274, "height": 75 } + }, + "side-glow2": { + "hoverglow-small": { "x": 2.09, "scaleX": 0.2353, "scaleY": 0.4132, "width": 274, "height": 75 } + }, + "side-glow3": { + "hoverglow-small": { "x": 2.09, "scaleX": 0.3586, "scaleY": 0.6297, "width": 274, "height": 75 } + }, + "torso": { + "torso": { + "type": "mesh", + "uvs": [ 0.6251, 0.12672, 1, 0.26361, 1, 0.28871, 1, 0.66021, 1, 0.68245, 0.92324, 0.69259, 0.95116, 0.84965, 0.77124, 1, 0.49655, 1, 0.27181, 1, 0.13842, 0.77196, 0.09886, 0.6817, 0.05635, 0.58471, 0, 0.45614, 0, 0.33778, 0, 0.19436, 0.14463, 0, 0.27802, 0, 0.72525, 0.27835, 0.76091, 0.46216, 0.84888, 0.67963, 0.68257, 0.63249, 0.53986, 0.3847, 0.25443, 0.3217, 0.30063, 0.55174, 0.39553, 0.79507, 0.26389, 0.17007, 0.5241, 0.18674, 0.71492, 0.76655, 0.82151, 0.72956, 0.27626, 0.4304, 0.62327, 0.52952, 0.3455, 0.66679, 0.53243, 0.2914 ], + "triangles": [ 19, 2, 3, 18, 1, 2, 0, 27, 17, 13, 14, 23, 17, 27, 16, 15, 16, 26, 14, 15, 23, 27, 26, 16, 23, 15, 26, 18, 0, 1, 24, 30, 22, 32, 24, 31, 12, 30, 24, 31, 22, 19, 24, 22, 31, 12, 13, 30, 21, 31, 19, 11, 12, 24, 13, 23, 30, 20, 21, 19, 5, 20, 3, 29, 21, 20, 29, 20, 5, 28, 21, 29, 10, 11, 32, 25, 32, 21, 25, 21, 28, 10, 32, 25, 29, 5, 6, 9, 10, 25, 8, 25, 28, 9, 25, 8, 7, 28, 29, 7, 29, 6, 8, 28, 7, 4, 5, 3, 11, 24, 32, 32, 31, 21, 3, 20, 19, 27, 0, 18, 33, 23, 26, 23, 33, 22, 22, 33, 18, 30, 23, 22, 33, 27, 18, 19, 18, 2, 22, 18, 19, 33, 26, 27 ], + "vertices": [ 2, 29, 44.59, -10.39, 0.88, 40, -17.65, 33.99, 0.12, 3, 28, 59.65, -45.08, 0.12189, 29, 17.13, -45.08, 0.26811, 40, 22.68, 15.82, 0.61, 3, 28, 55.15, -44.72, 0.1345, 29, 12.63, -44.72, 0.2555, 40, 23.43, 11.37, 0.61, 3, 27, 31.01, -39.45, 0.51133, 28, -11.51, -39.45, 0.30867, 40, 34.58, -54.57, 0.18, 3, 27, 27.01, -39.14, 0.53492, 28, -15.5, -39.14, 0.28508, 40, 35.25, -58.52, 0.18, 2, 27, 25.79, -31.5, 0.75532, 28, -16.73, -31.5, 0.24468, 1, 27, -2.61, -32, 1, 1, 27, -28.2, -12.29, 1, 1, 27, -26.08, 14.55, 1, 1, 27, -24.35, 36.5, 1, 2, 27, 17.6, 46.3, 0.8332, 28, -24.92, 46.3, 0.1668, 2, 27, 34.1, 48.89, 0.59943, 28, -8.42, 48.89, 0.40058, 3, 27, 51.83, 51.67, 0.29262, 28, 9.32, 51.67, 0.63181, 29, -33.2, 51.67, 0.07557, 3, 27, 75.34, 55.35, 0.06656, 28, 32.82, 55.35, 0.62298, 29, -9.7, 55.35, 0.31046, 2, 28, 54.06, 53.67, 0.37296, 29, 11.54, 53.67, 0.62704, 2, 28, 79.79, 51.64, 0.10373, 29, 37.27, 51.64, 0.89627, 1, 29, 71.04, 34.76, 1, 1, 29, 70.01, 21.72, 1, 1, 30, 36.74, 7.06, 1, 3, 30, 45.7, -24.98, 0.67, 28, 25.87, -18.9, 0.3012, 29, -16.65, -18.9, 0.0288, 2, 27, 28.69, -24.42, 0.77602, 28, -13.83, -24.42, 0.22398, 3, 30, 43.24, -56.49, 0.064, 27, 38.43, -8.84, 0.67897, 28, -4.09, -8.84, 0.25703, 3, 30, 22.02, -14.85, 0.29, 28, 41.48, 1.59, 0.53368, 29, -1.04, 1.59, 0.17632, 3, 30, -7.45, -8.33, 0.76, 28, 54.98, 28.59, 0.06693, 29, 12.46, 28.59, 0.17307, 3, 30, 3.91, -48.4, 0.25, 27, 55.87, 27.33, 0.15843, 28, 13.35, 27.33, 0.59157, 1, 27, 11.47, 21.51, 1, 2, 30, -11.09, 18.74, 0.416, 29, 39.6, 25.51, 0.584, 2, 30, 14.56, 20.03, 0.53, 29, 34.6, 0.33, 0.47, 1, 27, 14.12, -10.1, 1, 2, 27, 19.94, -21.03, 0.92029, 28, -22.58, -21.03, 0.07971, 3, 30, -2.08, -27.26, 0.29, 28, 35.31, 27.99, 0.49582, 29, -7.21, 27.99, 0.21418, 2, 30, 34.42, -39.19, 0.25, 28, 14.84, -4.5, 0.75, 2, 27, 34.87, 24.58, 0.67349, 28, -7.64, 24.58, 0.32651, 2, 30, 18.5, 1.59, 0.76, 29, 15.76, 1, 0.24 ], + "hull": 18, + "edges": [ 14, 12, 12, 10, 10, 8, 18, 20, 32, 34, 30, 32, 2, 4, 36, 4, 36, 38, 38, 40, 4, 6, 6, 8, 40, 6, 40, 42, 14, 16, 16, 18, 50, 16, 46, 52, 54, 36, 2, 0, 0, 34, 54, 0, 54, 32, 20, 50, 14, 56, 56, 42, 50, 56, 56, 58, 58, 40, 58, 10, 46, 60, 60, 48, 26, 60, 60, 44, 24, 26, 24, 48, 42, 62, 62, 44, 48, 62, 48, 64, 64, 50, 42, 64, 20, 22, 22, 24, 64, 22, 26, 28, 28, 30, 28, 46, 44, 66, 66, 54, 46, 66, 66, 36, 62, 38 ], + "width": 98, + "height": 180 + } + } + } + } +], +"events": { + "footstep": {} +}, +"animations": { + "aim": { + "slots": { + "crosshair": { + "attachment": [ + { "name": "crosshair" } + ] + } + }, + "bones": { + "front-fist": { + "rotate": [ + { "value": 36.08 } + ] + }, + "rear-bracer": { + "rotate": [ + { "value": -26.55 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { "value": 62.31 } + ] + }, + "front-bracer": { + "rotate": [ + { "value": 9.11 } + ] + }, + "gun": { + "rotate": [ + { "value": -0.31 } + ] + } + }, + "ik": { + "aim-ik": [ + { "mix": 0.995 } + ] + }, + "transform": { + "aim-front-arm-transform": [ + { "rotateMix": 0.784, "translateMix": 0, "scaleMix": 0, "shearMix": 0 } + ], + "aim-head-transform": [ + { "rotateMix": 0.659, "translateMix": 0, "scaleMix": 0, "shearMix": 0 } + ], + "aim-torso-transform": [ + { "rotateMix": 0.423, "translateMix": 0, "scaleMix": 0, "shearMix": 0 } + ] + } + }, + "death": { + "slots": { + "eye": { + "attachment": [ + { "name": "eye-surprised" }, + { "time": 0.5333, "name": "eye-indifferent" }, + { "time": 2.2, "name": "eye-surprised" }, + { "time": 4.6, "name": "eye-indifferent" } + ] + }, + "front-fist": { + "attachment": [ + { "name": "front-fist-open" } + ] + }, + "mouth": { + "attachment": [ + { "name": "mouth-oooo" }, + { "time": 0.5333, "name": "mouth-grind" }, + { "time": 1.4, "name": "mouth-oooo" }, + { "time": 2.1667, "name": "mouth-grind" }, + { "time": 4.5333, "name": "mouth-oooo" } + ] + } + }, + "bones": { + "head": { + "rotate": [ + { + "value": -2.83, + "curve": [ 0.015, -2.83, 0.036, 12.72 ] + }, + { + "time": 0.0667, + "value": 12.19, + "curve": [ 0.096, 11.68, 0.119, -1.14 ] + }, + { + "time": 0.1333, + "value": -6.86, + "curve": [ 0.149, -13.27, 0.21, -37.28 ] + }, + { + "time": 0.3, + "value": -36.86, + "curve": [ 0.354, -36.61, 0.412, -32.35 ] + }, + { + "time": 0.4667, + "value": -23.49, + "curve": [ 0.49, -19.87, 0.512, -3.29 ] + }, + { + "time": 0.5333, + "value": -3.24, + "curve": [ 0.56, -3.39, 0.614, -67.25 ] + }, + { + "time": 0.6333, + "value": -74.4, + "curve": [ 0.652, -81.58, 0.702, -88.94 ] + }, + { + "time": 0.7333, + "value": -88.93, + "curve": [ 0.805, -88.91, 0.838, -80.87 ] + }, + { + "time": 0.8667, + "value": -81.03, + "curve": [ 0.922, -81.32, 0.976, -85.29 ] + }, + { "time": 1, "value": -85.29, "curve": "stepped" }, + { + "time": 2.2333, + "value": -85.29, + "curve": [ 2.314, -85.29, 2.382, -68.06 ] + }, + { + "time": 2.4667, + "value": -63.48, + "curve": [ 2.57, -57.87, 2.916, -55.24 ] + }, + { + "time": 3.2, + "value": -55.1, + "curve": [ 3.447, -54.98, 4.135, -56.61 ] + }, + { + "time": 4.2667, + "value": -58.23, + "curve": [ 4.672, -63.24, 4.646, -82.69 ] + }, + { "time": 4.9333, "value": -85.29 } + ], + "scale": [ + { + "time": 0.4667, + "curve": [ 0.469, 1, 0.492, 1.07, 0.475, 1.02, 0.492, 0.94 ] + }, + { + "time": 0.5, + "x": 1.065, + "y": 0.94, + "curve": [ 0.517, 1.07, 0.541, 0.99, 0.517, 0.94, 0.542, 1.03 ] + }, + { + "time": 0.5667, + "x": 0.99, + "y": 1.025, + "curve": [ 0.593, 0.99, 0.609, 1, 0.595, 1.02, 0.607, 1 ] + }, + { "time": 0.6333 } + ] + }, + "neck": { + "rotate": [ + { + "value": -2.83, + "curve": [ 0.114, 1.33, 0.195, 4.13 ] + }, + { + "time": 0.2667, + "value": 4.13, + "curve": [ 0.351, 4.14, 0.444, -24.5 ] + }, + { + "time": 0.5, + "value": -24.69, + "curve": [ 0.571, -23.89, 0.55, 34.22 ] + }, + { + "time": 0.6667, + "value": 35.13, + "curve": [ 0.713, 34.81, 0.756, 22.76 ] + }, + { + "time": 0.8333, + "value": 22.82, + "curve": [ 0.868, 22.84, 0.916, 47.95 ] + }, + { "time": 0.9667, "value": 47.95, "curve": "stepped" }, + { + "time": 2.2333, + "value": 47.95, + "curve": [ 2.3, 47.95, 2.617, 18.72 ] + }, + { "time": 2.6667, "value": 18.51, "curve": "stepped" }, + { + "time": 4.5333, + "value": 18.51, + "curve": [ 4.707, 19.13, 4.776, 41.11 ] + }, + { "time": 4.8, "value": 47.95 } + ] + }, + "torso": { + "rotate": [ + { + "value": -8.62, + "curve": [ 0.01, -16.71, 0.032, -33.6 ] + }, + { + "time": 0.0667, + "value": -33.37, + "curve": [ 0.182, -32.61, 0.298, 123.07 ] + }, + { + "time": 0.4667, + "value": 122.77, + "curve": [ 0.511, 122.69, 0.52, 100.2 ] + }, + { + "time": 0.5667, + "value": 88.96, + "curve": [ 0.588, 83.89, 0.667, 75.34 ] + }, + { + "time": 0.7, + "value": 75.34, + "curve": [ 0.767, 75.34, 0.9, 76.03 ] + }, + { "time": 0.9667, "value": 76.03 } + ] + }, + "front-upper-arm": { + "rotate": [ + { + "value": -38.86, + "curve": [ 0.022, -40.38, 0.096, -41.92 ] + }, + { + "time": 0.1333, + "value": -41.92, + "curve": [ 0.176, -41.92, 0.216, -16.92 ] + }, + { + "time": 0.2333, + "value": -4.35, + "curve": [ 0.258, 13.69, 0.308, 60.35 ] + }, + { + "time": 0.4, + "value": 60.17, + "curve": [ 0.496, 59.98, 0.539, 33.63 ] + }, + { + "time": 0.5667, + "value": 23.06, + "curve": [ 0.595, 32.71, 0.675, 53.71 ] + }, + { + "time": 0.7333, + "value": 53.61, + "curve": [ 0.797, 53.51, 0.926, 30.98 ] + }, + { "time": 0.9333, "value": 19.57, "curve": "stepped" }, + { + "time": 1.9667, + "value": 19.57, + "curve": [ 2.245, 19.57, 2.702, 77.03 ] + }, + { + "time": 3.0667, + "value": 77.06, + "curve": [ 3.209, 77.33, 3.291, 67.99 ] + }, + { + "time": 3.4333, + "value": 67.96, + "curve": [ 3.608, 68.34, 3.729, 73.88 ] + }, + { + "time": 3.8333, + "value": 73.42, + "curve": [ 4.152, 73.91, 4.46, 71.98 ] + }, + { + "time": 4.6333, + "value": 64.77, + "curve": [ 4.688, 62.5, 4.847, 26.42 ] + }, + { "time": 4.8667, "value": 10.94 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "value": -44.7, + "curve": [ 0.033, -44.7, 0.12, 54.89 ] + }, + { + "time": 0.1333, + "value": 64.62, + "curve": [ 0.154, 79.18, 0.214, 79.42 ] + }, + { + "time": 0.2667, + "value": 63.4, + "curve": [ 0.293, 55.19, 0.332, 30.13 ] + }, + { + "time": 0.3667, + "value": 30.13, + "curve": [ 0.4, 30.13, 0.441, 39.87 ] + }, + { + "time": 0.4667, + "value": 55.13, + "curve": [ 0.488, 68.18, 0.52, 100.72 ] + }, + { + "time": 0.5333, + "value": 111.96, + "curve": [ 0.551, 126.88, 0.627, 185.97 ] + }, + { + "time": 0.6667, + "value": 185.97, + "curve": [ 0.692, 185.97, 0.736, 162.43 ] + }, + { + "time": 0.8, + "value": 158.01, + "curve": [ 0.9, 151.12, 1.017, 144.01 ] + }, + { "time": 1.1, "value": 144.01, "curve": "stepped" }, + { + "time": 2.3667, + "value": 144.01, + "curve": [ 2.492, 144.01, 2.742, 138.63 ] + }, + { + "time": 2.8667, + "value": 138.63, + "curve": [ 3.067, 138.63, 3.467, 138.63 ] + }, + { + "time": 3.6667, + "value": 138.63, + "curve": [ 3.883, 138.63, 4.317, 135.18 ] + }, + { + "time": 4.5333, + "value": 135.18, + "curve": [ 4.575, 135.18, 4.692, 131.59 ] + }, + { + "time": 4.7333, + "value": 131.59, + "curve": [ 4.758, 131.59, 4.517, 144.01 ] + }, + { "time": 4.8333, "value": 144.01 } + ], + "translate": [ + { + "time": 0.4667, + "curve": [ 0.517, 0, 0.617, -34.96, 0.517, 0, 0.617, -16.59 ] + }, + { "time": 0.6667, "x": -35.02, "y": -16.62 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": 21.88, + "curve": [ 0.033, 21.88, 0.099, 20.44 ] + }, + { + "time": 0.1333, + "value": 9.43, + "curve": [ 0.164, -0.29, 0.162, -38.26 ] + }, + { + "time": 0.2, + "value": -38.05, + "curve": [ 0.24, -37.96, 0.228, -17.82 ] + }, + { + "time": 0.3333, + "value": -9.73, + "curve": [ 0.372, -6.76, 0.431, -0.74 ] + }, + { + "time": 0.4667, + "value": 6.47, + "curve": [ 0.489, 11.05, 0.503, 19.09 ] + }, + { + "time": 0.5333, + "value": 19.09, + "curve": [ 0.571, 19.09, 0.554, -42.67 ] + }, + { + "time": 0.6, + "value": -42.67, + "curve": [ 0.653, -42.67, 0.691, -13.8 ] + }, + { + "time": 0.7, + "value": -3.54, + "curve": [ 0.707, 3.8, 0.719, 24.94 ] + }, + { + "time": 0.8, + "value": 25.31, + "curve": [ 0.902, 24.75, 0.992, -0.34 ] + }, + { "time": 1, "value": -32.16, "curve": "stepped" }, + { + "time": 2.2333, + "value": -32.16, + "curve": [ 2.6, -32.16, 2.638, -5.3 ] + }, + { + "time": 2.7, + "value": -1.96, + "curve": [ 2.707, -1.56, 2.775, 1.67 ] + }, + { + "time": 2.8, + "value": 1.67, + "curve": [ 2.825, 1.67, 2.875, -0.39 ] + }, + { + "time": 2.9, + "value": -0.39, + "curve": [ 2.925, -0.39, 2.975, 0.26 ] + }, + { + "time": 3, + "value": 0.26, + "curve": [ 3.025, 0.26, 3.075, -1.81 ] + }, + { + "time": 3.1, + "value": -1.81, + "curve": [ 3.125, -1.81, 3.175, -0.52 ] + }, + { + "time": 3.2, + "value": -0.52, + "curve": [ 3.225, -0.52, 3.275, -2.41 ] + }, + { + "time": 3.3, + "value": -2.41, + "curve": [ 3.333, -2.41, 3.4, -0.38 ] + }, + { + "time": 3.4333, + "value": -0.38, + "curve": [ 3.467, -0.38, 3.533, -2.25 ] + }, + { + "time": 3.5667, + "value": -2.25, + "curve": [ 3.592, -2.25, 3.642, -0.33 ] + }, + { + "time": 3.6667, + "value": -0.33, + "curve": [ 3.7, -0.33, 3.767, -1.34 ] + }, + { + "time": 3.8, + "value": -1.34, + "curve": [ 3.825, -1.34, 3.862, -0.77 ] + }, + { + "time": 3.9, + "value": -0.77, + "curve": [ 3.942, -0.77, 3.991, -1.48 ] + }, + { + "time": 4, + "value": -1.87, + "curve": [ 4.167, -1.87, 4.5, -1.96 ] + }, + { + "time": 4.6667, + "value": -1.96, + "curve": [ 4.709, 18.05, 4.767, 34.55 ] + }, + { + "time": 4.8, + "value": 34.55, + "curve": [ 4.84, 34.24, 4.902, 12.03 ] + }, + { "time": 4.9333, "value": -18.75 } + ] + }, + "front-fist": { + "rotate": [ + { + "value": -2.33, + "curve": [ 0.019, 4.43, 0.069, 10.82 ] + }, + { + "time": 0.1, + "value": 10.6, + "curve": [ 0.148, 10.6, 0.123, -15.24 ] + }, + { + "time": 0.2, + "value": -15.35, + "curve": [ 0.266, -15.44, 0.316, -6.48 ] + }, + { + "time": 0.3333, + "value": -3.9, + "curve": [ 0.362, 0.43, 0.479, 22.36 ] + }, + { + "time": 0.5667, + "value": 22.01, + "curve": [ 0.61, 21.84, 0.627, 12.85 ] + }, + { + "time": 0.6333, + "value": 9.05, + "curve": [ 0.643, 2.77, 0.622, -39.43 ] + }, + { + "time": 0.7, + "value": -39.5, + "curve": [ 0.773, -39.57, 0.814, 14.77 ] + }, + { + "time": 0.8667, + "value": 14.81, + "curve": [ 0.965, 14.88, 1.1, 5.64 ] + }, + { "time": 1.1, "value": -6.08, "curve": "stepped" }, + { + "time": 2.2333, + "value": -6.08, + "curve": [ 2.307, -6.08, 2.427, -25.89 ] + }, + { + "time": 2.5333, + "value": -22.42, + "curve": [ 2.598, -20.38, 2.657, 5.73 ] + }, + { + "time": 2.7, + "value": 5.73, + "curve": [ 2.77, 5.73, 2.851, -5.38 ] + }, + { + "time": 2.9333, + "value": -5.38, + "curve": [ 3.008, -5.38, 3.087, -4.54 ] + }, + { + "time": 3.1667, + "value": -4.17, + "curve": [ 3.223, -3.91, 4.486, 5.73 ] + }, + { + "time": 4.6667, + "value": 5.73, + "curve": [ 4.733, 5.73, 4.886, -2.47 ] + }, + { "time": 4.9333, "value": -6.52 } + ] + }, + "rear-bracer": { + "rotate": [ + { + "value": 10.36, + "curve": [ 0.033, 10.36, 0.1, -32.89 ] + }, + { + "time": 0.1333, + "value": -32.89, + "curve": [ 0.183, -32.89, 0.283, -4.45 ] + }, + { + "time": 0.3333, + "value": -4.45, + "curve": [ 0.367, -4.45, 0.438, -6.86 ] + }, + { + "time": 0.4667, + "value": -8.99, + "curve": [ 0.529, -13.62, 0.605, -20.58 ] + }, + { + "time": 0.6333, + "value": -23.2, + "curve": [ 0.708, -30.18, 0.758, -35.56 ] + }, + { + "time": 0.8, + "value": -35.56, + "curve": [ 0.875, -35.56, 1.025, -23.2 ] + }, + { "time": 1.1, "value": -23.2 } + ] + }, + "gun": { + "rotate": [ + { + "value": -2.79, + "curve": [ 0.033, -2.79, 0.12, -7.22 ] + }, + { + "time": 0.1333, + "value": -8.52, + "curve": [ 0.168, -11.87, 0.29, -23.71 ] + }, + { + "time": 0.3333, + "value": -26.24, + "curve": [ 0.369, -28.31, 0.436, -29.75 ] + }, + { + "time": 0.5, + "value": -29.66, + "curve": [ 0.552, -29.58, 0.611, -25.47 ] + }, + { + "time": 0.6333, + "value": -22.68, + "curve": [ 0.656, -19.76, 0.68, -10.02 ] + }, + { + "time": 0.7, + "value": -6.49, + "curve": [ 0.722, -2.6, 0.75, -1.22 ] + }, + { + "time": 0.7667, + "value": -1.35, + "curve": [ 0.792, -1.55, 0.842, -19.74 ] + }, + { "time": 0.8667, "value": -19.8 } + ] + }, + "hip": { + "translate": [ + { + "curve": [ 0.098, -42.62, 0.166, -79.85, 0.029, 84.97, 0.109, 155.93 ] + }, + { + "time": 0.2667, + "x": -133.79, + "y": 152.44, + "curve": [ 0.361, -184.63, 0.392, -203.69, 0.42, 149.12, 0.467, -15.7 ] + }, + { + "time": 0.4667, + "x": -230.02, + "y": -113.87, + "curve": [ 0.523, -249.86, 0.565, -261.7, 0.473, -133.1, 0.583, -203.43 ] + }, + { + "time": 0.6, + "x": -268.57, + "y": -203.43, + "curve": [ 0.663, -280.98, 0.816, -290.05, 0.708, -203.43, 0.892, -203.5 ] + }, + { "time": 1, "x": -290.42, "y": -203.5 } + ] + }, + "front-thigh": { + "rotate": [ + { + "curve": [ 0.06, 1.02, 0.151, 45.23 ] + }, + { + "time": 0.1667, + "value": 54.01, + "curve": [ 0.19, 66.85, 0.358, 169.85 ] + }, + { + "time": 0.5, + "value": 169.51, + "curve": [ 0.628, 169.85, 0.692, 108.85 ] + }, + { + "time": 0.7, + "value": 97.74, + "curve": [ 0.723, 102.6, 0.805, 111.6 ] + }, + { + "time": 0.8667, + "value": 111.69, + "curve": [ 0.899, 111.83, 1.015, 109.15 ] + }, + { "time": 1.0667, "value": 95.8 } + ] + }, + "front-shin": { + "rotate": [ + { + "curve": [ 0.086, -0.02, 0.191, -24.25 ] + }, + { + "time": 0.2, + "value": -26.5, + "curve": [ 0.214, -29.92, 0.249, -40.51 ] + }, + { + "time": 0.3333, + "value": -40.57, + "curve": [ 0.431, -40.7, 0.459, -11.34 ] + }, + { + "time": 0.4667, + "value": -8.71, + "curve": [ 0.477, -5.16, 0.524, 17.13 ] + }, + { + "time": 0.6, + "value": 16.98, + "curve": [ 0.632, 17.09, 0.625, 2.76 ] + }, + { + "time": 0.6333, + "value": 2.76, + "curve": [ 0.648, 2.76, 0.653, 2.75 ] + }, + { + "time": 0.6667, + "value": 2.59, + "curve": [ 0.678, 2.39, 0.733, 2.53 ] + }, + { + "time": 0.7333, + "value": -9.43, + "curve": [ 0.745, -2.48, 0.782, 3.12 ] + }, + { + "time": 0.8, + "value": 4.28, + "curve": [ 0.832, 6.32, 0.895, 8.46 ] + }, + { + "time": 0.9333, + "value": 8.49, + "curve": [ 0.986, 8.53, 1.051, 6.38 ] + }, + { + "time": 1.0667, + "value": 2.28, + "curve": [ 1.078, 4.17, 1.103, 5.86 ] + }, + { + "time": 1.1333, + "value": 5.88, + "curve": [ 1.191, 5.93, 1.209, 4.56 ] + }, + { "time": 1.2333, "value": 2.52 } + ] + }, + "rear-thigh": { + "rotate": [ + { + "curve": [ 0.033, 0, 0.12, 50.26 ] + }, + { + "time": 0.1333, + "value": 57.3, + "curve": [ 0.164, 73.34, 0.274, 147.18 ] + }, + { + "time": 0.3333, + "value": 147.1, + "curve": [ 0.475, 146.45, 0.583, 95.72 ] + }, + { + "time": 0.6, + "value": 79.66, + "curve": [ 0.62, 94.74, 0.732, 103.15 ] + }, + { + "time": 0.7667, + "value": 103.02, + "curve": [ 0.812, 102.85, 0.897, 95.75 ] + }, + { "time": 0.9333, "value": 83.01 } + ] + }, + "rear-shin": { + "rotate": [ + { + "curve": [ 0.021, -16.65, 0.091, -54.82 ] + }, + { + "time": 0.1667, + "value": -55.29, + "curve": [ 0.187, -55.42, 0.213, -52.52 ] + }, + { + "time": 0.2333, + "value": -45.98, + "curve": [ 0.242, -43.1, 0.311, -12.73 ] + }, + { + "time": 0.3333, + "value": -6.32, + "curve": [ 0.356, 0.13, 0.467, 24.5 ] + }, + { + "time": 0.5, + "value": 24.5, + "curve": [ 0.543, 24.5, 0.56, 3.78 ] + }, + { + "time": 0.5667, + "value": -3.53, + "curve": [ 0.585, 3.86, 0.659, 16.63 ] + }, + { + "time": 0.7, + "value": 16.56, + "curve": [ 0.782, 16.43, 0.896, 8.44 ] + }, + { + "time": 0.9333, + "value": 4.04, + "curve": [ 0.956, 6.84, 1.008, 8.41 ] + }, + { + "time": 1.0333, + "value": 8.41, + "curve": [ 1.067, 8.41, 1.122, 8.14 ] + }, + { "time": 1.1667, "value": 5.8 } + ] + }, + "rear-foot": { + "rotate": [ + { + "value": -0.28, + "curve": [ 0.033, -0.28, 0.256, -66.71 ] + }, + { + "time": 0.3667, + "value": -66.84, + "curve": [ 0.418, -66.91, 0.499, -21.79 ] + }, + { + "time": 0.6, + "value": -21.52, + "curve": [ 0.652, -21.38, 0.665, -53.96 ] + }, + { + "time": 0.7, + "value": -54.26, + "curve": [ 0.757, -53.96, 0.843, -2.07 ] + }, + { + "time": 0.9333, + "value": -1.47, + "curve": [ 0.968, -2.07, 0.975, -19.96 ] + }, + { + "time": 1, + "value": -19.96, + "curve": [ 1.025, -19.96, 1.075, -12.42 ] + }, + { + "time": 1.1, + "value": -12.42, + "curve": [ 1.133, -12.42, 1.2, -18.34 ] + }, + { "time": 1.2333, "value": -18.34 } + ] + }, + "front-foot": { + "rotate": [ + { + "curve": [ 0.008, -11.33, 0.108, -57.71 ] + }, + { + "time": 0.1333, + "value": -57.71, + "curve": [ 0.175, -57.71, 0.229, 19.73 ] + }, + { + "time": 0.3, + "value": 19.34, + "curve": [ 0.354, 19.34, 0.4, -57.76 ] + }, + { + "time": 0.4333, + "value": -57.76, + "curve": [ 0.458, -57.76, 0.511, -3.56 ] + }, + { + "time": 0.5333, + "value": 3.7, + "curve": [ 0.563, 13.29, 0.633, 15.79 ] + }, + { + "time": 0.6667, + "value": 15.79, + "curve": [ 0.7, 15.79, 0.767, -48.75 ] + }, + { + "time": 0.8, + "value": -48.75, + "curve": [ 0.842, -48.75, 0.925, 4.7 ] + }, + { + "time": 0.9667, + "value": 4.7, + "curve": [ 1, 4.7, 1.067, -22.9 ] + }, + { + "time": 1.1, + "value": -22.9, + "curve": [ 1.142, -22.9, 1.225, -13.28 ] + }, + { "time": 1.2667, "value": -13.28 } + ] + }, + "rear-foot-target": { + "rotate": [ + { "value": -0.28 } + ] + }, + "front-foot-tip": { + "rotate": [ + { + "value": -0.28, + "curve": [ 0.008, -0.28, 0.003, -66.62 ] + }, + { + "time": 0.0667, + "value": -65.75, + "curve": [ 0.166, -64.42, 0.234, 14.35 ] + }, + { + "time": 0.2667, + "value": 38.25, + "curve": [ 0.294, 57.91, 0.392, 89.79 ] + }, + { + "time": 0.4667, + "value": 90.73, + "curve": [ 0.483, 90.73, 0.55, 177.66 ] + }, + { + "time": 0.5667, + "value": 177.66, + "curve": [ 0.733, 176.24, 0.75, 11.35 ] + }, + { + "time": 0.8, + "value": 11.35, + "curve": [ 0.886, 12.29, 0.911, 47.88 ] + }, + { + "time": 0.9333, + "value": 56.77, + "curve": [ 0.967, 70.59, 1.05, 86.46 ] + }, + { + "time": 1.1, + "value": 86.46, + "curve": [ 1.187, 86.46, 1.214, 66.44 ] + }, + { "time": 1.3333, "value": 64.55 } + ] + }, + "back-foot-tip": { + "rotate": [ + { + "value": -0.28, + "curve": [ 0, -7.97, 0.027, -18.69 ] + }, + { + "time": 0.0667, + "value": -19, + "curve": [ 0.166, -19.3, 0.208, 15.58 ] + }, + { + "time": 0.2667, + "value": 45.95, + "curve": [ 0.306, 66.24, 0.378, 99.08 ] + }, + { + "time": 0.4333, + "value": 99.08, + "curve": [ 0.497, 98.62, 0.488, -1.2 ] + }, + { + "time": 0.5667, + "value": -1.32, + "curve": [ 0.637, -0.84, 0.687, 94.41 ] + }, + { + "time": 0.7333, + "value": 94.33, + "curve": [ 0.832, 94.16, 0.895, 29.6 ] + }, + { + "time": 0.9667, + "value": 28.67, + "curve": [ 1.026, 28.67, 1.045, 53.14 ] + }, + { "time": 1.1, "value": 53.38 } + ] + }, + "hair4": { + "rotate": [ + { + "curve": [ 0.011, 4.5, 0.05, 11.42 ] + }, + { + "time": 0.0667, + "value": 11.42, + "curve": [ 0.1, 11.42, 0.136, -5.92 ] + }, + { + "time": 0.1667, + "value": -10.54, + "curve": [ 0.206, -16.51, 0.327, -22 ] + }, + { + "time": 0.3667, + "value": -24.47, + "curve": [ 0.413, -27.37, 0.467, -43.99 ] + }, + { + "time": 0.5, + "value": -43.99, + "curve": [ 0.533, -43.99, 0.552, 12.12 ] + }, + { + "time": 0.6333, + "value": 11.85, + "curve": [ 0.714, 11.59, 0.758, -34.13 ] + }, + { + "time": 0.8, + "value": -34.13, + "curve": [ 0.858, -34.13, 1.015, -12.47 ] + }, + { + "time": 1.0667, + "value": -8.85, + "curve": [ 1.121, -5.07, 1.219, -0.02 ] + }, + { + "time": 1.3333, + "value": 1.29, + "curve": [ 1.509, 3.3, 1.763, 2.75 ] + }, + { "time": 1.8667, "value": 2.78, "curve": "stepped" }, + { + "time": 2.2, + "value": 2.78, + "curve": [ 2.315, 2.74, 2.374, 1.22 ] + }, + { + "time": 2.4667, + "value": 1.18, + "curve": [ 2.525, 1.18, 2.608, 10.79 ] + }, + { + "time": 2.6667, + "value": 10.79, + "curve": [ 2.725, 10.79, 2.893, 4.72 ] + }, + { + "time": 3.0333, + "value": 4.72, + "curve": [ 3.117, 4.72, 3.283, 7.93 ] + }, + { + "time": 3.3667, + "value": 7.93, + "curve": [ 3.492, 7.93, 3.775, 6.93 ] + }, + { + "time": 3.9, + "value": 6.93, + "curve": [ 3.981, 6.93, 4.094, 6.9 ] + }, + { + "time": 4.2, + "value": 8.44, + "curve": [ 4.267, 9.42, 4.401, 16.61 ] + }, + { + "time": 4.5, + "value": 16.33, + "curve": [ 4.582, 16.12, 4.709, 9.94 ] + }, + { + "time": 4.7333, + "value": 6.51, + "curve": [ 4.747, 4.57, 4.779, -1.76 ] + }, + { + "time": 4.8, + "value": -1.75, + "curve": [ 4.823, -1.73, 4.82, 4.47 ] + }, + { + "time": 4.8667, + "value": 6.04, + "curve": [ 4.899, 7.14, 4.913, 6.93 ] + }, + { "time": 4.9333, "value": 6.93 } + ] + }, + "hair2": { + "rotate": [ + { + "value": 10.61, + "curve": [ 0.075, 10.61, 0.05, 12.67 ] + }, + { + "time": 0.0667, + "value": 12.67, + "curve": [ 0.123, 12.67, 0.194, -16.51 ] + }, + { + "time": 0.2, + "value": -19.87, + "curve": [ 0.207, -23.48, 0.236, -31.68 ] + }, + { + "time": 0.3, + "value": -31.8, + "curve": [ 0.356, -31.9, 0.437, -25.61 ] + }, + { + "time": 0.4667, + "value": -19.29, + "curve": [ 0.485, -15.33, 0.529, 6.48 ] + }, + { + "time": 0.5667, + "value": 6.67, + "curve": [ 0.628, 6.97, 0.65, -46.39 ] + }, + { + "time": 0.7333, + "value": -46.3, + "curve": [ 0.843, -46.17, 0.941, -33.37 ] + }, + { + "time": 0.9667, + "value": -23.17, + "curve": [ 0.972, -20.98, 1.047, 15.21 ] + }, + { + "time": 1.1, + "value": 15.21, + "curve": [ 1.142, 15.21, 1.183, 10.73 ] + }, + { "time": 1.2667, "value": 10.61, "curve": "stepped" }, + { + "time": 2, + "value": 10.61, + "curve": [ 2.075, 10.61, 2.225, 16.9 ] + }, + { + "time": 2.3, + "value": 16.9, + "curve": [ 2.327, 16.9, 2.347, 6.81 ] + }, + { + "time": 2.4, + "value": 6.83, + "curve": [ 2.492, 6.87, 2.602, 17.39 ] + }, + { + "time": 2.6667, + "value": 17.39, + "curve": [ 2.742, 17.39, 2.892, 10.67 ] + }, + { + "time": 2.9667, + "value": 10.64, + "curve": [ 3.187, 10.57, 3.344, 10.73 ] + }, + { + "time": 3.6, + "value": 11.4, + "curve": [ 3.766, 11.83, 3.874, 14.87 ] + }, + { + "time": 3.9333, + "value": 14.83, + "curve": [ 4.022, 14.76, 4.208, 9.49 ] + }, + { + "time": 4.3, + "value": 9.54, + "curve": [ 4.391, 9.58, 4.441, 14.82 ] + }, + { + "time": 4.5333, + "value": 14.84, + "curve": [ 4.642, 14.88, 4.692, 1.17 ] + }, + { + "time": 4.7667, + "value": 1.24, + "curve": [ 4.823, 1.3, 4.818, 18.35 ] + }, + { + "time": 4.8667, + "value": 18.38, + "curve": [ 4.905, 18.41, 4.901, 10.61 ] + }, + { "time": 4.9333, "value": 10.61 } + ] + }, + "torso2": { + "rotate": [ + { + "curve": [ 0.048, 0, 0.129, -12.73 ] + }, + { + "time": 0.1667, + "value": -15.95, + "curve": [ 0.221, -20.66, 0.254, -21.62 ] + }, + { + "time": 0.3, + "value": -21.59, + "curve": [ 0.458, -21.46, 0.46, -1.67 ] + }, + { + "time": 0.6333, + "value": -1.71, + "curve": [ 0.71, -1.73, 0.715, -4 ] + }, + { + "time": 0.7667, + "value": -3.97, + "curve": [ 0.866, -3.92, 0.84, 0.02 ] + }, + { "time": 1, "curve": "stepped" }, + { + "time": 2, + "curve": [ 2.275, 0, 2.867, -5.8 ] + }, + { + "time": 3.1, + "value": -6.44, + "curve": [ 3.327, -7.06, 3.71, -6.23 ] + }, + { + "time": 3.9333, + "value": -5.41, + "curve": [ 4.168, -4.53, 4.488, -2.83 ] + }, + { "time": 4.8 } + ] + }, + "torso3": { + "rotate": [ + { + "curve": [ 0.025, 0, 0.09, -3.66 ] + }, + { + "time": 0.1, + "value": -4.55, + "curve": [ 0.143, -8.4, 0.223, -17.07 ] + }, + { + "time": 0.2333, + "value": -18.31, + "curve": [ 0.282, -24.44, 0.35, -29 ] + }, + { + "time": 0.3667, + "value": -30.07, + "curve": [ 0.405, -32.58, 0.442, -33.03 ] + }, + { + "time": 0.4667, + "value": -32.99, + "curve": [ 0.491, -33.04, 0.505, -23.56 ] + }, + { + "time": 0.5333, + "value": -23.55, + "curve": [ 0.571, -23.67, 0.599, -27.21 ] + }, + { + "time": 0.6333, + "value": -27.21, + "curve": [ 0.669, -27.2, 0.742, -10.43 ] + }, + { + "time": 0.7667, + "value": -7.79, + "curve": [ 0.788, -5.53, 0.796, -4.42 ] + }, + { + "time": 0.8333, + "value": -2.9, + "curve": [ 0.875, -1.21, 0.933, 0 ] + }, + { "time": 0.9667, "curve": "stepped" }, + { + "time": 2.4333, + "curve": [ 2.517, 0, 2.683, 4.63 ] + }, + { + "time": 2.7667, + "value": 4.66, + "curve": [ 3.084, 4.76, 3.248, 4.37 ] + }, + { + "time": 3.4, + "value": 3.74, + "curve": [ 3.596, 2.92, 3.755, 2.18 ] + }, + { + "time": 3.8667, + "value": 1.72, + "curve": [ 4.136, 0.59, 4.471, 0 ] + }, + { "time": 4.8 } + ] + }, + "hair3": { + "rotate": [ + { + "curve": [ 0, 0, 0.041, 10.74 ] + }, + { + "time": 0.0667, + "value": 14.16, + "curve": [ 0.075, 15.22, 0.148, 18.04 ] + }, + { + "time": 0.2, + "value": 18.13, + "curve": [ 0.251, 18.23, 0.307, -4.75 ] + }, + { + "time": 0.3667, + "value": -5.06, + "curve": [ 0.412, -5.3, 0.47, -0.96 ] + }, + { + "time": 0.5, + "value": 2.21, + "curve": [ 0.512, 3.48, 0.595, 20.31 ] + }, + { + "time": 0.6333, + "value": 24.87, + "curve": [ 0.647, 26.53, 0.719, 29.33 ] + }, + { + "time": 0.8, + "value": 29.22, + "curve": [ 0.859, 29.14, 0.9, 28.48 ] + }, + { + "time": 0.9333, + "value": 26.11, + "curve": [ 0.981, 22.72, 0.998, 2.06 ] + }, + { "time": 1.1, "value": 2.21 } + ] + }, + "hair1": { + "rotate": [ + { + "curve": [ 0.047, -0.21, 0.048, 7.86 ] + }, + { + "time": 0.0667, + "value": 13.27, + "curve": [ 0.083, 18.05, 0.135, 24.44 ] + }, + { + "time": 0.2, + "value": 24.02, + "curve": [ 0.225, 24.02, 0.28, 6.32 ] + }, + { + "time": 0.3, + "value": 3.1, + "curve": [ 0.323, -0.58, 0.382, -7.12 ] + }, + { + "time": 0.4667, + "value": -7.45, + "curve": [ 0.512, -7.66, 0.538, 12.13 ] + }, + { + "time": 0.5667, + "value": 16.46, + "curve": [ 0.609, 22.72, 0.672, 27.4 ] + }, + { + "time": 0.7333, + "value": 27.55, + "curve": [ 0.827, 27.4, 0.933, 23.23 ] + }, + { + "time": 0.9667, + "value": 19.11, + "curve": [ 0.998, 15.27, 1.092, -2.53 ] + }, + { + "time": 1.1333, + "value": -2.53, + "curve": [ 1.158, -2.53, 1.208, 0 ] + }, + { "time": 1.2333, "curve": "stepped" }, + { + "time": 2, + "curve": [ 2.075, 0, 2.248, 0.35 ] + }, + { + "time": 2.3333, + "value": 0.78, + "curve": [ 2.585, 2.06, 2.805, 3.46 ] + }, + { + "time": 3.2, + "value": 3.5, + "curve": [ 3.593, 3.54, 3.979, 2.36 ] + }, + { + "time": 4.1667, + "value": 1.55, + "curve": [ 4.391, 0.59, 4.447, 0.04 ] + }, + { + "time": 4.6, + "value": 0.04, + "curve": [ 4.642, 0.04, 4.742, 0 ] + }, + { "time": 4.9333 } + ] + }, + "head-control": { + "translate": [ + { + "curve": [ 0.025, 0, 0.09, 1.43, 0.025, 0, 0.075, -34.76 ] + }, + { + "time": 0.1, + "x": 1.59, + "y": -34.76, + "curve": [ 0.214, 3.33, 0.375, 5.34, 0.192, -34.76, 0.441, -21.17 ] + }, + { + "time": 0.4667, + "x": 5.34, + "y": -12.57, + "curve": [ 0.492, 5.34, 0.55, 5.24, 0.482, -7.36, 0.504, 4.03 ] + }, + { + "time": 0.5667, + "x": 5.11, + "y": 4.01, + "curve": [ 0.658, 4.45, 0.679, 3.19, 0.649, 3.98, 0.642, -16.84 ] + }, + { + "time": 0.7, + "x": 2.8, + "y": -16.74, + "curve": [ 0.787, 1.15, 0.881, -1.29, 0.772, -16.62, 0.82, 8.95 ] + }, + { + "time": 0.9, + "x": -1.72, + "y": 8.91, + "curve": [ 0.961, -3.06, 1.025, -3.58, 0.975, 8.87, 0.951, -1.37 ] + }, + { + "time": 1.1, + "x": -3.58, + "y": -1.45, + "curve": [ 1.292, -3.58, 2.002, -2.4, 1.292, -1.56, 1.975, -1.45 ] + }, + { + "time": 2.1667, + "x": -1.39, + "y": -1.45, + "curve": [ 2.25, -0.88, 2.503, 1.38, 2.283, -1.45, 2.603, -12.44 ] + }, + { + "time": 2.6667, + "x": 2.13, + "y": -14.45, + "curve": [ 2.766, 2.59, 2.999, 2.81, 2.835, -19.73, 3.003, -25.2 ] + }, + { + "time": 3.1333, + "x": 2.91, + "y": -26.08, + "curve": [ 3.392, 3.1, 4.199, 4.05, 3.483, -28.44, 4.129, -27.23 ] + }, + { + "time": 4.3667, + "x": 4.81, + "y": -19.59, + "curve": [ 4.429, 5.1, 4.594, 8.54, 4.538, -14.08, 4.583, -7.88 ] + }, + { + "time": 4.6667, + "x": 8.65, + "y": -4.56, + "curve": [ 4.794, 8.86, 4.806, 5.93, 4.691, -3.59, 4.8, -1.61 ] + }, + { "time": 4.9333, "x": 5.8, "y": -1.99 } + ] + } + }, + "ik": { + "front-foot-ik": [ + { "mix": 0 } + ], + "front-leg-ik": [ + { "mix": 0, "bendPositive": false } + ], + "rear-foot-ik": [ + { "mix": 0.005 } + ], + "rear-leg-ik": [ + { "mix": 0.005, "bendPositive": false } + ] + } + }, + "hoverboard": { + "slots": { + "exhaust1": { + "attachment": [ + { "name": "hoverglow-small" } + ] + }, + "exhaust2": { + "attachment": [ + { "name": "hoverglow-small" } + ] + }, + "exhaust3": { + "attachment": [ + { "name": "hoverglow-small" } + ] + }, + "front-fist": { + "attachment": [ + { "name": "front-fist-open" } + ] + }, + "hoverboard-board": { + "attachment": [ + { "name": "hoverboard-board" } + ] + }, + "hoverboard-thruster-front": { + "attachment": [ + { "name": "hoverboard-thruster" } + ] + }, + "hoverboard-thruster-rear": { + "attachment": [ + { "name": "hoverboard-thruster" } + ] + }, + "hoverglow-front": { + "attachment": [ + { "name": "hoverglow-small" } + ] + }, + "hoverglow-rear": { + "attachment": [ + { "name": "hoverglow-small" } + ] + }, + "side-glow1": { + "attachment": [ + { "name": "hoverglow-small" }, + { "time": 0.9667, "name": null } + ] + }, + "side-glow2": { + "attachment": [ + { "time": 0.0667, "name": "hoverglow-small" }, + { "time": 1, "name": null } + ] + }, + "side-glow3": { + "attachment": [ + { "name": "hoverglow-small" }, + { "time": 0.9667, "name": null } + ] + } + }, + "bones": { + "hoverboard-controller": { + "translate": [ + { + "x": 319.55, + "y": -1.59, + "curve": [ 0.064, 319.55, 0.2, 347.85, 0.058, -1.2, 0.2, 23.11 ] + }, + { + "time": 0.2667, + "x": 347.66, + "y": 39.62, + "curve": [ 0.35, 347.41, 0.476, 341.47, 0.323, 53.58, 0.44, 85.82 ] + }, + { + "time": 0.5333, + "x": 338.47, + "y": 85.72, + "curve": [ 0.603, 334.83, 0.913, 319.65, 0.621, 85.62, 0.88, -1.53 ] + }, + { "time": 1, "x": 319.55, "y": -1.59 } + ] + }, + "hip": { + "translate": [ + { + "x": -53.49, + "y": 32.14, + "curve": [ 0.061, -53.77, 0.093, -51.81, 0.044, 16.34, 0.063, 9.67 ] + }, + { + "time": 0.1333, + "x": -49.31, + "y": 7.01, + "curve": [ 0.3, -35.27, 0.461, -20.06, 0.314, 9.52, 0.408, 121.09 ] + }, + { + "time": 0.5667, + "x": -20.06, + "y": 122.72, + "curve": [ 0.716, -20.09, 0.912, -53.29, 0.753, 121.8, 0.946, 51.85 ] + }, + { "time": 1, "x": -53.49, "y": 32.14 } + ] + }, + "exhaust1": { + "scale": [ + { + "x": 1.593, + "y": 0.964, + "curve": [ 0.033, 1.59, 0.1, 1, 0.033, 0.96, 0.1, 0.71 ] + }, + { + "time": 0.1333, + "y": 0.713, + "curve": [ 0.15, 1, 0.183, 1.77, 0.15, 0.71, 0.183, 0.88 ] + }, + { + "time": 0.2, + "x": 1.774, + "y": 0.883, + "curve": [ 0.242, 1.77, 0.325, 1.18, 0.242, 0.88, 0.325, 0.65 ] + }, + { + "time": 0.3667, + "x": 1.181, + "y": 0.649, + "curve": [ 0.408, 1.18, 0.492, 1.89, 0.408, 0.65, 0.492, 0.82 ] + }, + { + "time": 0.5333, + "x": 1.893, + "y": 0.819, + "curve": [ 0.558, 1.89, 0.608, 1.18, 0.558, 0.82, 0.608, 0.69 ] + }, + { + "time": 0.6333, + "x": 1.18, + "y": 0.686, + "curve": [ 0.658, 1.18, 0.708, 1.9, 0.658, 0.69, 0.708, 0.86 ] + }, + { + "time": 0.7333, + "x": 1.903, + "y": 0.855, + "curve": [ 0.767, 1.9, 0.833, 1.31, 0.767, 0.86, 0.833, 0.62 ] + }, + { + "time": 0.8667, + "x": 1.311, + "y": 0.622, + "curve": [ 0.9, 1.31, 0.967, 1.59, 0.9, 0.62, 0.967, 0.96 ] + }, + { "time": 1, "x": 1.593, "y": 0.964 } + ] + }, + "exhaust2": { + "scale": [ + { + "x": 1.88, + "y": 0.832, + "curve": [ 0.025, 1.88, 0.075, 1.31, 0.025, 0.83, 0.075, 0.69 ] + }, + { + "time": 0.1, + "x": 1.311, + "y": 0.686, + "curve": [ 0.133, 1.31, 0.2, 2.01, 0.133, 0.69, 0.208, 0.74 ] + }, + { + "time": 0.2333, + "x": 2.01, + "y": 0.769, + "curve": [ 0.267, 2.01, 0.333, 1, 0.282, 0.83, 0.333, 0.91 ] + }, + { + "time": 0.3667, + "y": 0.91, + "curve": [ 0.4, 1, 0.467, 1.7, 0.4, 0.91, 0.474, 0.89 ] + }, + { + "time": 0.5, + "x": 1.699, + "y": 0.86, + "curve": [ 0.517, 1.7, 0.55, 1.18, 0.54, 0.81, 0.55, 0.71 ] + }, + { + "time": 0.5667, + "x": 1.181, + "y": 0.713, + "curve": [ 0.617, 1.18, 0.717, 1.88, 0.617, 0.71, 0.717, 0.8 ] + }, + { + "time": 0.7667, + "x": 1.881, + "y": 0.796, + "curve": [ 0.8, 1.88, 0.867, 1.3, 0.8, 0.8, 0.867, 0.65 ] + }, + { + "time": 0.9, + "x": 1.3, + "y": 0.649, + "curve": [ 0.925, 1.3, 0.975, 1.88, 0.925, 0.65, 0.975, 0.83 ] + }, + { "time": 1, "x": 1.88, "y": 0.832 } + ] + }, + "hoverboard-thruster-front": { + "rotate": [ + { + "curve": [ 0.125, 0, 0.375, 24.06 ] + }, + { + "time": 0.5, + "value": 24.06, + "curve": [ 0.625, 24.06, 0.875, 0 ] + }, + { "time": 1 } + ] + }, + "hoverglow-front": { + "scale": [ + { + "x": 0.849, + "y": 1.764, + "curve": [ 0.017, 0.85, 0.05, 0.83, 0.017, 1.76, 0.05, 2.03 ] + }, + { + "time": 0.0667, + "x": 0.835, + "y": 2.033, + "curve": [ 0.092, 0.83, 0.142, 0.75, 0.092, 2.03, 0.142, 1.58 ] + }, + { + "time": 0.1667, + "x": 0.752, + "y": 1.584, + "curve": [ 0.183, 0.75, 0.217, 0.81, 0.183, 1.58, 0.217, 1.71 ] + }, + { + "time": 0.2333, + "x": 0.809, + "y": 1.71, + "curve": [ 0.25, 0.81, 0.283, 0.72, 0.25, 1.71, 0.283, 1.45 ] + }, + { + "time": 0.3, + "x": 0.717, + "y": 1.45, + "curve": [ 0.317, 0.72, 0.35, 0.78, 0.317, 1.45, 0.35, 1.7 ] + }, + { + "time": 0.3667, + "x": 0.777, + "y": 1.698, + "curve": [ 0.4, 0.78, 0.45, 0.68, 0.375, 1.7, 0.45, 1.17 ] + }, + { + "time": 0.4667, + "x": 0.685, + "y": 1.173, + "curve": [ 0.492, 0.68, 0.542, 0.83, 0.492, 1.17, 0.542, 1.57 ] + }, + { + "time": 0.5667, + "x": 0.825, + "y": 1.572, + "curve": [ 0.611, 0.82, 0.63, 0.73, 0.611, 1.58, 0.606, 1.25 ] + }, + { + "time": 0.6667, + "x": 0.725, + "y": 1.241, + "curve": [ 0.692, 0.72, 0.742, 0.9, 0.692, 1.24, 0.749, 1.8 ] + }, + { + "time": 0.7667, + "x": 0.895, + "y": 1.857, + "curve": [ 0.783, 0.9, 0.796, 0.89, 0.796, 1.96, 0.817, 1.96 ] + }, + { + "time": 0.8333, + "x": 0.845, + "y": 1.962, + "curve": [ 0.845, 0.83, 0.883, 0.8, 0.85, 1.96, 0.872, 1.7 ] + }, + { + "time": 0.9, + "x": 0.802, + "y": 1.491, + "curve": [ 0.917, 0.8, 0.95, 0.84, 0.907, 1.44, 0.936, 1.51 ] + }, + { + "time": 0.9667, + "x": 0.845, + "y": 1.627, + "curve": [ 0.975, 0.84, 0.992, 0.85, 0.973, 1.65, 0.992, 1.76 ] + }, + { "time": 1, "x": 0.849, "y": 1.764 } + ] + }, + "hoverboard-thruster-rear": { + "rotate": [ + { + "curve": [ 0.125, 0, 0.375, 24.06 ] + }, + { + "time": 0.5, + "value": 24.06, + "curve": [ 0.625, 24.06, 0.875, 0 ] + }, + { "time": 1 } + ] + }, + "hoverglow-rear": { + "scale": [ + { + "x": 0.845, + "y": 1.31, + "curve": [ 0.017, 0.84, 0.117, 0.9, 0.017, 1.31, 0.117, 2.03 ] + }, + { + "time": 0.1333, + "x": 0.899, + "y": 2.033, + "curve": [ 0.15, 0.9, 0.183, 0.75, 0.15, 2.03, 0.183, 1.57 ] + }, + { + "time": 0.2, + "x": 0.752, + "y": 1.574, + "curve": [ 0.225, 0.75, 0.275, 0.81, 0.225, 1.57, 0.275, 1.71 ] + }, + { + "time": 0.3, + "x": 0.809, + "y": 1.71, + "curve": [ 0.317, 0.81, 0.35, 0.72, 0.317, 1.71, 0.35, 1.4 ] + }, + { + "time": 0.3667, + "x": 0.717, + "y": 1.397, + "curve": [ 0.383, 0.72, 0.417, 0.78, 0.383, 1.4, 0.417, 1.45 ] + }, + { + "time": 0.4333, + "x": 0.777, + "y": 1.45, + "curve": [ 0.45, 0.78, 0.496, 0.69, 0.45, 1.45, 0.481, 1.17 ] + }, + { + "time": 0.5333, + "x": 0.685, + "y": 1.173, + "curve": [ 0.565, 0.68, 0.617, 0.76, 0.575, 1.18, 0.617, 1.3 ] + }, + { + "time": 0.6333, + "x": 0.758, + "y": 1.297, + "curve": [ 0.658, 0.76, 0.708, 0.72, 0.658, 1.3, 0.708, 1.24 ] + }, + { + "time": 0.7333, + "x": 0.725, + "y": 1.241, + "curve": [ 0.772, 0.73, 0.796, 0.89, 0.782, 1.24, 0.778, 1.85 ] + }, + { + "time": 0.8333, + "x": 0.895, + "y": 1.857, + "curve": [ 0.878, 0.9, 0.992, 0.84, 0.88, 1.86, 0.992, 1.31 ] + }, + { "time": 1, "x": 0.845, "y": 1.31 } + ] + }, + "front-upper-arm": { + "rotate": [ + { + "value": -85.92, + "curve": [ 0.08, -85.59, 0.284, -62.7 ] + }, + { + "time": 0.3667, + "value": -55.14, + "curve": [ 0.438, -48.65, 0.551, -43.21 ] + }, + { + "time": 0.6333, + "value": -43.21, + "curve": [ 0.716, -43.22, 0.908, -85.92 ] + }, + { "time": 1, "value": -85.92 } + ], + "translate": [ + { + "x": -0.59, + "y": -2.94, + "curve": [ 0.1, -1.21, 0.275, -1.74, 0.092, -2.94, 0.275, -6.39 ] + }, + { + "time": 0.3667, + "x": -1.74, + "y": -6.39, + "curve": [ 0.433, -1.74, 0.567, 0.72, 0.433, -6.39, 0.587, -4.48 ] + }, + { + "time": 0.6333, + "x": 0.72, + "y": -4.21, + "curve": [ 0.725, 0.72, 0.908, -0.08, 0.743, -3.57, 0.908, -2.94 ] + }, + { "time": 1, "x": -0.59, "y": -2.94 } + ] + }, + "front-fist": { + "rotate": [ + { + "value": 7.61, + "curve": [ 0.143, 7.62, 0.247, -23.17 ] + }, + { + "time": 0.2667, + "value": -26.56, + "curve": [ 0.281, -29.08, 0.351, -37.36 ] + }, + { + "time": 0.4333, + "value": -37.2, + "curve": [ 0.513, -37.05, 0.562, -29.88 ] + }, + { + "time": 0.6, + "value": -25.18, + "curve": [ 0.621, -22.58, 0.694, -3.98 ] + }, + { + "time": 0.8, + "value": 3.63, + "curve": [ 0.861, 8.03, 0.946, 7.57 ] + }, + { "time": 1, "value": 7.61 } + ], + "translate": [ + { + "curve": [ 0.117, 0, 0.35, 0.52, 0.117, 0, 0.35, -3.27 ] + }, + { + "time": 0.4667, + "x": 0.52, + "y": -3.27, + "curve": [ 0.6, 0.52, 0.867, 0, 0.6, -3.27, 0.867, 0 ] + }, + { "time": 1 } + ], + "shear": [ + { + "y": 19.83, + "curve": [ 0.117, 0, 0.35, 15.28, 0.117, 19.83, 0.35, 28.31 ] + }, + { + "time": 0.4667, + "x": 15.28, + "y": 28.31, + "curve": [ 0.6, 15.28, 0.867, 0, 0.6, 28.31, 0.867, 19.83 ] + }, + { "time": 1, "y": 19.83 } + ] + }, + "board-ik": { + "translate": [ + { + "x": 393.62, + "curve": [ 0.083, 393.62, 0.25, 393.48, 0.083, 0, 0.25, 117.69 ] + }, + { + "time": 0.3333, + "x": 393.48, + "y": 117.69, + "curve": [ 0.375, 393.48, 0.458, 393.62, 0.375, 117.69, 0.458, 83.82 ] + }, + { "time": 0.5, "x": 393.62, "y": 83.82 }, + { "time": 0.6667, "x": 393.62, "y": 30.15 }, + { "time": 1, "x": 393.62 } + ] + }, + "front-thigh": { + "translate": [ + { "x": -7.49, "y": 8.51 } + ] + }, + "front-leg-target": { + "translate": [ + { + "time": 0.3667, + "curve": [ 0.428, 10.83, 0.567, 12.78, 0.414, 7.29, 0.567, 8.79 ] + }, + { + "time": 0.6, + "x": 12.78, + "y": 8.79, + "curve": [ 0.692, 12.78, 0.772, 11.27, 0.692, 8.79, 0.766, 8.62 ] + }, + { "time": 0.8667 } + ] + }, + "rear-leg-target": { + "translate": [ + { + "time": 0.4667, + "curve": [ 0.492, 0, 0.534, 4.47, 0.492, 0, 0.542, 1.63 ] + }, + { + "time": 0.5667, + "x": 4.53, + "y": 1.77, + "curve": [ 0.622, 4.64, 0.717, 3.31, 0.615, 2.06, 0.71, 2.1 ] + }, + { "time": 0.8 } + ] + }, + "exhaust3": { + "scale": [ + { + "x": 1.882, + "y": 0.81, + "curve": [ 0.017, 1.88, 0.167, 1.3, 0.017, 0.81, 0.167, 0.65 ] + }, + { + "time": 0.2, + "x": 1.3, + "y": 0.649, + "curve": [ 0.225, 1.3, 0.275, 2.05, 0.225, 0.65, 0.275, 0.98 ] + }, + { + "time": 0.3, + "x": 2.051, + "y": 0.984, + "curve": [ 0.325, 2.05, 0.375, 1.31, 0.325, 0.98, 0.384, 0.72 ] + }, + { + "time": 0.4, + "x": 1.311, + "y": 0.686, + "curve": [ 0.433, 1.31, 0.5, 1.86, 0.426, 0.64, 0.5, 0.54 ] + }, + { + "time": 0.5333, + "x": 1.86, + "y": 0.537, + "curve": [ 0.567, 1.86, 0.633, 1.19, 0.567, 0.54, 0.604, 0.85 ] + }, + { + "time": 0.6667, + "x": 1.187, + "y": 0.854, + "curve": [ 0.7, 1.19, 0.767, 1.55, 0.707, 0.85, 0.774, 0.78 ] + }, + { + "time": 0.8, + "x": 1.549, + "y": 0.746, + "curve": [ 0.817, 1.55, 0.85, 1.18, 0.815, 0.73, 0.85, 0.71 ] + }, + { + "time": 0.8667, + "x": 1.181, + "y": 0.713, + "curve": [ 0.9, 1.18, 0.967, 1.88, 0.9, 0.71, 0.967, 0.81 ] + }, + { "time": 1, "x": 1.882, "y": 0.81 } + ] + }, + "side-glow1": { + "rotate": [ + { "value": 51.12, "curve": "stepped" }, + { "time": 0.0667, "value": 43.82, "curve": "stepped" }, + { "time": 0.1, "value": 40.95, "curve": "stepped" }, + { "time": 0.1667, "value": 27.78, "curve": "stepped" }, + { "time": 0.2, "value": 10.24, "curve": "stepped" }, + { "time": 0.2667, "curve": "stepped" }, + { "time": 0.8, "value": -25.81 } + ], + "translate": [ + { "x": 338.28, "y": 40.22, "curve": "stepped" }, + { "time": 0.0667, "x": 331.2, "y": 30.39, "curve": "stepped" }, + { "time": 0.1, "x": 318.63, "y": 20.59, "curve": "stepped" }, + { "time": 0.1667, "x": 302.45, "y": 9.64, "curve": "stepped" }, + { "time": 0.2, "x": 276.87, "y": 1.13, "curve": "stepped" }, + { "time": 0.2667, "x": 248.16, "curve": "stepped" }, + { "time": 0.3, "x": 221.36, "curve": "stepped" }, + { "time": 0.3667, "x": 195.69, "curve": "stepped" }, + { "time": 0.4, "x": 171.08, "curve": "stepped" }, + { "time": 0.4667, "x": 144.84, "curve": "stepped" }, + { "time": 0.5, "x": 121.22, "curve": "stepped" }, + { "time": 0.5667, "x": 91.98, "curve": "stepped" }, + { "time": 0.6, "x": 62.63, "curve": "stepped" }, + { "time": 0.6667, "x": 30.78, "curve": "stepped" }, + { "time": 0.7, "curve": "stepped" }, + { "time": 0.7667, "x": -28.45, "curve": "stepped" }, + { "time": 0.8, "x": -67.49, "y": 16.82, "curve": "stepped" }, + { "time": 0.8667, "x": -83.07, "y": 24.36, "curve": "stepped" }, + { "time": 0.9, "x": -93.81, "y": 29.55 } + ], + "scale": [ + { "x": 0.535, "curve": "stepped" }, + { "time": 0.0667, "x": 0.594, "curve": "stepped" }, + { "time": 0.1, "x": 0.844, "curve": "stepped" }, + { "time": 0.1667, "curve": "stepped" }, + { "time": 0.8, "x": 0.534, "curve": "stepped" }, + { "time": 0.8667, "x": 0.428, "y": 0.801, "curve": "stepped" }, + { "time": 0.9, "x": 0.349, "y": 0.654 } + ] + }, + "side-glow2": { + "rotate": [ + { "time": 0.0667, "value": 51.12, "curve": "stepped" }, + { "time": 0.1, "value": 43.82, "curve": "stepped" }, + { "time": 0.1667, "value": 40.95, "curve": "stepped" }, + { "time": 0.2, "value": 27.78, "curve": "stepped" }, + { "time": 0.2667, "value": 10.24, "curve": "stepped" }, + { "time": 0.3, "curve": "stepped" }, + { "time": 0.8667, "value": -25.81 } + ], + "translate": [ + { "time": 0.0667, "x": 338.28, "y": 40.22, "curve": "stepped" }, + { "time": 0.1, "x": 331.2, "y": 30.39, "curve": "stepped" }, + { "time": 0.1667, "x": 318.63, "y": 20.59, "curve": "stepped" }, + { "time": 0.2, "x": 302.45, "y": 9.64, "curve": "stepped" }, + { "time": 0.2667, "x": 276.87, "y": 1.13, "curve": "stepped" }, + { "time": 0.3, "x": 248.16, "curve": "stepped" }, + { "time": 0.3667, "x": 221.36, "curve": "stepped" }, + { "time": 0.4, "x": 195.69, "curve": "stepped" }, + { "time": 0.4667, "x": 171.08, "curve": "stepped" }, + { "time": 0.5, "x": 144.84, "curve": "stepped" }, + { "time": 0.5667, "x": 121.22, "curve": "stepped" }, + { "time": 0.6, "x": 91.98, "curve": "stepped" }, + { "time": 0.6667, "x": 62.63, "curve": "stepped" }, + { "time": 0.7, "x": 30.78, "curve": "stepped" }, + { "time": 0.7667, "curve": "stepped" }, + { "time": 0.8, "x": -28.45, "curve": "stepped" }, + { "time": 0.8667, "x": -67.49, "y": 16.82, "curve": "stepped" }, + { "time": 0.9, "x": -83.07, "y": 24.36, "curve": "stepped" }, + { "time": 0.9667, "x": -93.81, "y": 29.55 } + ], + "scale": [ + { "time": 0.0667, "x": 0.535, "curve": "stepped" }, + { "time": 0.1, "x": 0.594, "curve": "stepped" }, + { "time": 0.1667, "x": 0.844, "curve": "stepped" }, + { "time": 0.2, "curve": "stepped" }, + { "time": 0.8667, "x": 0.534, "curve": "stepped" }, + { "time": 0.9, "x": 0.428, "y": 0.801, "curve": "stepped" }, + { "time": 0.9667, "x": 0.349, "y": 0.654 } + ] + }, + "torso": { + "rotate": [ + { + "value": -34.73, + "curve": [ 0.034, -36.31, 0.162, -39.33 ] + }, + { + "time": 0.2667, + "value": -39.37, + "curve": [ 0.384, -39.37, 0.491, -29.52 ] + }, + { + "time": 0.5, + "value": -28.86, + "curve": [ 0.525, -26.95, 0.571, -21.01 ] + }, + { + "time": 0.6333, + "value": -21.01, + "curve": [ 0.725, -21.01, 0.969, -33.35 ] + }, + { "time": 1, "value": -34.73 } + ] + }, + "neck": { + "rotate": [ + { + "value": 10.2, + "curve": [ 0.07, 12.09, 0.189, 16.03 ] + }, + { + "time": 0.2667, + "value": 16.14, + "curve": [ 0.333, 16.14, 0.449, 8.03 ] + }, + { + "time": 0.5, + "value": 5.83, + "curve": [ 0.542, 4.02, 0.6, 2.68 ] + }, + { + "time": 0.6333, + "value": 2.68, + "curve": [ 0.725, 2.68, 0.943, 8.57 ] + }, + { "time": 1, "value": 10.2 } + ] + }, + "head": { + "rotate": [ + { + "value": 10.2, + "curve": [ 0.044, 11.52, 0.2, 16.12 ] + }, + { + "time": 0.2667, + "value": 16.14, + "curve": [ 0.375, 16.17, 0.492, 2.65 ] + }, + { + "time": 0.6333, + "value": 2.68, + "curve": [ 0.725, 2.7, 0.963, 9.26 ] + }, + { "time": 1, "value": 10.2 } + ], + "translate": [ + { + "curve": [ 0.03, -0.24, 0.2, -4.22, 0.051, -1.06, 0.2, -3.62 ] + }, + { + "time": 0.2667, + "x": -4.22, + "y": -3.62, + "curve": [ 0.358, -4.22, 0.542, 0.84, 0.358, -3.62, 0.542, 6.01 ] + }, + { + "time": 0.6333, + "x": 0.84, + "y": 6.01, + "curve": [ 0.725, 0.84, 0.939, 0.32, 0.725, 6.01, 0.945, 1.14 ] + }, + { "time": 1 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": -11.18, + "curve": [ 0.064, -14.82, 0.25, -20.01 ] + }, + { + "time": 0.3333, + "value": -20.01, + "curve": [ 0.429, -20.12, 0.58, 5.12 ] + }, + { + "time": 0.6, + "value": 8.67, + "curve": [ 0.617, 11.72, 0.687, 20.52 ] + }, + { + "time": 0.7667, + "value": 20.55, + "curve": [ 0.848, 20.7, 0.963, -9.43 ] + }, + { "time": 1, "value": -11.18 } + ] + }, + "hair3": { + "rotate": [ + { + "value": 9.61, + "curve": [ 0.014, 8.51, 0.075, 2.63 ] + }, + { + "time": 0.1, + "value": 2.63, + "curve": [ 0.15, 2.63, 0.25, 13.52 ] + }, + { + "time": 0.3, + "value": 13.52, + "curve": [ 0.35, 13.52, 0.45, 11.28 ] + }, + { + "time": 0.5, + "value": 11.28, + "curve": [ 0.575, 11.28, 0.725, 18.13 ] + }, + { + "time": 0.8, + "value": 18.13, + "curve": [ 0.85, 18.13, 0.978, 11.07 ] + }, + { "time": 1, "value": 9.61 } + ] + }, + "hair4": { + "rotate": [ + { + "value": -17.7, + "curve": [ 0.008, -17.7, 0.025, -23.73 ] + }, + { + "time": 0.0333, + "value": -23.73, + "curve": [ 0.067, -23.73, 0.154, -4.4 ] + }, + { + "time": 0.1667, + "value": -1.92, + "curve": [ 0.197, 4.09, 0.236, 12.91 ] + }, + { + "time": 0.2667, + "value": 17.56, + "curve": [ 0.301, 22.68, 0.342, 27.97 ] + }, + { + "time": 0.3667, + "value": 27.97, + "curve": [ 0.4, 27.97, 0.467, -1.45 ] + }, + { + "time": 0.5, + "value": -1.45, + "curve": [ 0.517, -1.45, 0.55, 3.16 ] + }, + { + "time": 0.5667, + "value": 3.16, + "curve": [ 0.583, 3.16, 0.617, -8.9 ] + }, + { + "time": 0.6333, + "value": -8.9, + "curve": [ 0.642, -8.9, 0.658, -5.4 ] + }, + { + "time": 0.6667, + "value": -5.4, + "curve": [ 0.683, -5.4, 0.717, -15.32 ] + }, + { + "time": 0.7333, + "value": -15.32, + "curve": [ 0.75, -15.32, 0.783, -9.19 ] + }, + { + "time": 0.8, + "value": -9.19, + "curve": [ 0.817, -9.19, 0.85, -23.6 ] + }, + { + "time": 0.8667, + "value": -23.6, + "curve": [ 0.883, -23.6, 0.917, -17.38 ] + }, + { + "time": 0.9333, + "value": -17.38, + "curve": [ 0.942, -17.38, 0.958, -20.46 ] + }, + { + "time": 0.9667, + "value": -20.46, + "curve": [ 0.975, -20.46, 0.992, -17.7 ] + }, + { "time": 1, "value": -17.7 } + ] + }, + "hair1": { + "rotate": [ + { + "value": 9.61, + "curve": [ 0.06, 9.04, 0.25, 8.9 ] + }, + { + "time": 0.3333, + "value": 8.9, + "curve": [ 0.392, 8.9, 0.508, 14.58 ] + }, + { + "time": 0.5667, + "value": 14.58, + "curve": [ 0.675, 14.58, 0.956, 10.28 ] + }, + { "time": 1, "value": 9.61 } + ] + }, + "hair2": { + "rotate": [ + { + "value": -3.82, + "curve": [ 0.017, -3.82, 0.064, -9.16 ] + }, + { + "time": 0.1333, + "value": -9.09, + "curve": [ 0.178, -9.04, 0.234, 1.29 ] + }, + { + "time": 0.2667, + "value": 5.98, + "curve": [ 0.276, 7.27, 0.336, 17.1 ] + }, + { + "time": 0.3667, + "value": 17.1, + "curve": [ 0.413, 17.1, 0.467, 1.59 ] + }, + { + "time": 0.5, + "value": 1.59, + "curve": [ 0.533, 1.59, 0.567, 13.63 ] + }, + { + "time": 0.6, + "value": 13.63, + "curve": [ 0.617, 13.63, 0.683, 0.78 ] + }, + { + "time": 0.7, + "value": 0.78, + "curve": [ 0.717, 0.78, 0.75, 12.01 ] + }, + { + "time": 0.7667, + "value": 11.9, + "curve": [ 0.792, 11.73, 0.817, -0.85 ] + }, + { + "time": 0.8333, + "value": -0.85, + "curve": [ 0.85, -0.85, 0.88, 1.99 ] + }, + { + "time": 0.9, + "value": 1.82, + "curve": [ 0.916, 1.68, 0.95, -6.9 ] + }, + { + "time": 0.9667, + "value": -6.9, + "curve": [ 0.975, -6.9, 0.992, -3.82 ] + }, + { "time": 1, "value": -3.82 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "value": 31.65, + "curve": [ 0.108, 31.65, 0.325, 13.01 ] + }, + { + "time": 0.4333, + "value": 13.01, + "curve": [ 0.71, 13.01, 0.917, 31.65 ] + }, + { "time": 1, "value": 31.65 } + ] + }, + "rear-bracer": { + "rotate": [ + { + "value": 31, + "curve": [ 0.108, 31, 0.325, 12.76 ] + }, + { + "time": 0.4333, + "value": 12.79, + "curve": [ 0.587, 12.82, 0.917, 31 ] + }, + { "time": 1, "value": 31 } + ] + }, + "gun": { + "rotate": [ + { + "value": 1.95, + "curve": [ 0.083, 1.95, 0.245, 36.73 ] + }, + { + "time": 0.3333, + "value": 36.71, + "curve": [ 0.439, 36.69, 0.589, 10.68 ] + }, + { + "time": 0.6333, + "value": 8.75, + "curve": [ 0.701, 5.81, 0.917, 1.95 ] + }, + { "time": 1, "value": 1.95 } + ] + }, + "torso2": { + "rotate": [ + { + "curve": [ 0.033, 0, 0.1, 2.35 ] + }, + { + "time": 0.1333, + "value": 2.35, + "curve": [ 0.225, 2.35, 0.408, -2.4 ] + }, + { + "time": 0.5, + "value": -2.4, + "curve": [ 0.567, -2.4, 0.7, 1.44 ] + }, + { + "time": 0.7667, + "value": 1.44, + "curve": [ 0.825, 1.44, 0.942, 0 ] + }, + { "time": 1 } + ] + }, + "torso3": { + "rotate": [ + { + "curve": [ 0.063, 0.77, 0.106, 1.42 ] + }, + { + "time": 0.1667, + "value": 1.42, + "curve": [ 0.259, 1.42, 0.344, -1.25 ] + }, + { + "time": 0.4667, + "value": -1.26, + "curve": [ 0.656, -1.26, 0.917, -0.78 ] + }, + { "time": 1 } + ] + }, + "head-control": { + "translate": [ + { + "x": 0.37, + "y": -11.17, + "curve": [ 0.133, 0.37, 0.335, -10.23, 0.133, -11.17, 0.335, 3.15 ] + }, + { + "time": 0.5333, + "x": -10.23, + "y": 3.15, + "curve": [ 0.71, -10.23, 0.883, 0.37, 0.71, 3.15, 0.883, -11.17 ] + }, + { "time": 1, "x": 0.37, "y": -11.17 } + ] + }, + "front-shoulder": { + "translate": [ + { + "x": 1.46, + "y": 10.15, + "curve": [ 0.103, 1.46, 0.249, 1.36, 0.103, 10.15, 0.249, -4.39 ] + }, + { + "time": 0.4, + "x": 1.36, + "y": -4.39, + "curve": [ 0.621, 1.36, 0.85, 1.46, 0.621, -4.39, 0.85, 10.15 ] + }, + { "time": 1, "x": 1.46, "y": 10.15 } + ] + }, + "back-shoulder": { + "translate": [ + { + "x": 1.4, + "y": 0.44, + "curve": [ 0.088, 1.4, 0.208, -2.47, 0.088, 0.44, 0.208, 8.61 ] + }, + { + "time": 0.3333, + "x": -2.47, + "y": 8.61, + "curve": [ 0.572, -2.47, 0.833, 1.4, 0.572, 8.61, 0.833, 0.44 ] + }, + { "time": 1, "x": 1.4, "y": 0.44 } + ] + } + }, + "transform": { + "front-foot-board-transform": [ + { "rotateMix": 0.997 } + ], + "rear-foot-board-transform": [ + {} + ], + "toes-board": [ + { "translateMix": 0, "scaleMix": 0, "shearMix": 0 } + ] + }, + "deform": { + "default": { + "front-foot": { + "front-foot": [ + { + "offset": 26, + "vertices": [ -0.02832, -5.37024, -0.02832, -5.37024, 3.8188, -3.7757, -0.02832, -5.37024, -3.82159, 3.77847 ] + } + ] + }, + "front-shin": { + "front-shin": [ + { + "offset": 14, + "vertices": [ 0.5298, -1.12677, -0.85507, -4.20587, -11.35158, -10.19225, -10.79865, -8.43765, -6.06447, -6.89757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.54892, -3.06021, 1.48463, -2.29663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4.80437, -7.01817 ] + }, + { + "time": 0.3667, + "offset": 14, + "vertices": [ 0.5298, -1.12677, -11.66571, -9.07211, -25.65866, -17.53735, -25.53217, -16.50978, -11.78232, -11.26097, 0, 0, 0.60487, -1.63589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.60487, -1.63589, 0, 0, -2.64522, -7.35739, 1.48463, -2.29663, 0, 0, 0, 0, 0, 0, 0.60487, -1.63589, 0.60487, -1.63589, 0.60487, -1.63589, 0.60487, -1.63589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.60487, -1.63589, 0, 0, -10.06873, -12.0999 ] + }, + { + "time": 0.5333, + "offset": 14, + "vertices": [ 0.5298, -1.12677, -0.85507, -4.20587, -7.00775, -8.24771, -6.45482, -6.49312, -6.06447, -6.89757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.54892, -3.06021, 1.48463, -2.29663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4.80437, -7.01817 ] + }, + { + "time": 1, + "offset": 14, + "vertices": [ 0.5298, -1.12677, -0.85507, -4.20587, -11.35158, -10.19225, -10.79865, -8.43765, -6.06447, -6.89757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.54892, -3.06021, 1.48463, -2.29663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4.80437, -7.01817 ] + } + ] + }, + "hoverboard-board": { + "hoverboard-board": [ + { + "curve": [ 0.067, 0, 0.2, 1 ] + }, + { + "time": 0.2667, + "offset": 1, + "vertices": [ 2.45856, 0, 0, 0, 0, 0, 0, 0, 0, 3.55673, -3.0E-4, 3.55673, -3.0E-4, 0, 0, 0, 0, 0, 0, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, -7.6E-4, -9.84158, 0, 0, 0, 0, 0, 0, 0, 0, -4.90558, 0.11214, -9.40706, 6.2E-4, -6.34871, 4.3E-4, -6.34925, -6.57018, -6.34925, -6.57018, -6.34871, 4.3E-4, -2.3308, 1.7E-4, -2.33133, -6.57045, -2.33133, -6.57045, -2.3308, 1.7E-4, 0, 0, 1.2E-4, 2.45856, 1.2E-4, 2.45856, 1.2E-4, 2.45856, 1.2E-4, 2.45856, 3.3297, 4.44005, 3.3297, 4.44005, 3.3297, 4.44005, 1.2E-4, 2.45856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.46227, 1.7E-4, -2.46227, 1.7E-4, -2.52316, 1.1313, -2.52316, 1.1313, -2.52316, 1.1313, 1.2E-4, 2.45856, 1.2E-4, 2.45856, -9.40694, 2.45918, 1.88063, 0.44197, -2.9E-4, -3.54808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.52316, 1.1313, -2.52316, 1.1313, -2.52316, 1.1313, -2.46227, 1.7E-4, -2.46227, 1.7E-4, -2.46227, 1.7E-4, 0, 0, 0, 0, 1.2E-4, 2.45856 ], + "curve": [ 0.45, 0, 0.817, 1 ] + }, + { "time": 1 } + ] + }, + "rear-foot": { + "rear-foot": [ + { + "offset": 28, + "vertices": [ -1.93078, 1.34782, -0.31417, 2.33363, 3.05122, 0.33946, 2.31472, -2.01678, 2.17583, -2.05795, -0.04277, -2.99459, 1.15429, 0.26328, 0.97501, -0.67169 ] + } + ] + } + } + } + }, + "idle": { + "slots": { + "front-fist": { + "attachment": [ + { "name": "front-fist-open" } + ] + } + }, + "bones": { + "front-foot-target": { + "translate": [ + { "x": -69.06 } + ] + }, + "hip": { + "rotate": [ + { + "curve": [ 0.073, 0.35, 0.303, 1.27 ] + }, + { + "time": 0.4, + "value": 1.28, + "curve": [ 0.615, 1.3, 0.847, -1.41 ] + }, + { + "time": 1.2, + "value": -1.38, + "curve": [ 1.344, -1.37, 1.602, -0.28 ] + }, + { "time": 1.6667 } + ], + "translate": [ + { + "x": -11.97, + "y": -23.15, + "curve": [ 0.059, -12.96, 0.258, -15.19, 0.142, -23.15, 0.341, -24.89 ] + }, + { + "time": 0.4667, + "x": -15.14, + "y": -26.74, + "curve": [ 0.62, -15.1, 0.788, -13.28, 0.597, -28.66, 0.75, -30.01 ] + }, + { + "time": 0.9, + "x": -12.02, + "y": -30.01, + "curve": [ 0.978, -11.13, 1.175, -9.05, 1.036, -29.94, 1.234, -28.08 ] + }, + { + "time": 1.3333, + "x": -9.06, + "y": -26.64, + "curve": [ 1.501, -9.06, 1.614, -10.95, 1.454, -24.89, 1.609, -23.15 ] + }, + { "time": 1.6667, "x": -11.97, "y": -23.15 } + ] + }, + "rear-foot-target": { + "translate": [ + { "x": 48.87 } + ] + }, + "front-upper-arm": { + "rotate": [ + { + "value": -60.87, + "curve": [ 0.154, -60.85, 0.452, -68.65 ] + }, + { + "time": 0.8333, + "value": -68.65, + "curve": [ 1.221, -68.65, 1.542, -60.87 ] + }, + { "time": 1.6667, "value": -60.87 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": 42.46, + "curve": [ 0.029, 42.97, 0.134, 45.28 ] + }, + { + "time": 0.3333, + "value": 45.27, + "curve": [ 0.578, 45.26, 0.798, 40.07 ] + }, + { + "time": 0.8333, + "value": 39.74, + "curve": [ 0.878, 39.32, 1.019, 38.23 ] + }, + { + "time": 1.2, + "value": 38.22, + "curve": [ 1.377, 38.22, 1.619, 41.68 ] + }, + { "time": 1.6667, "value": 42.46 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "value": 39.2, + "curve": [ 0.185, 39.22, 0.5, 29.37 ] + }, + { + "time": 0.6667, + "value": 29.37, + "curve": [ 0.917, 29.37, 1.417, 39.2 ] + }, + { "time": 1.6667, "value": 39.2 } + ] + }, + "head": { + "rotate": [ + { + "value": -6.75, + "curve": [ 0.176, -7.88, 0.349, -8.95 ] + }, + { + "time": 0.4667, + "value": -8.95, + "curve": [ 0.55, -8.95, 0.697, -6.77 ] + }, + { + "time": 0.8333, + "value": -5.44, + "curve": [ 0.88, -4.98, 1.05, -4.12 ] + }, + { + "time": 1.1333, + "value": -4.12, + "curve": [ 1.266, -4.12, 1.469, -5.48 ] + }, + { "time": 1.6667, "value": -6.75 } + ] + }, + "front-fist": { + "rotate": [ + { + "curve": [ 0.086, 0, 0.233, 2.48 ] + }, + { + "time": 0.3333, + "value": 4.13, + "curve": [ 0.429, 5.7, 0.711, 10.06 ] + }, + { + "time": 0.8333, + "value": 10.06, + "curve": [ 0.926, 10.06, 1.092, 4.21 ] + }, + { + "time": 1.2, + "value": 2.78, + "curve": [ 1.349, 0.8, 1.551, 0 ] + }, + { "time": 1.6667 } + ] + }, + "rear-bracer": { + "rotate": [ + { + "curve": [ 0.063, 0.54, 0.367, 3.39 ] + }, + { + "time": 0.5333, + "value": 3.39, + "curve": [ 0.696, 3.39, 0.939, -1.63 ] + }, + { + "time": 1.2, + "value": -1.61, + "curve": [ 1.42, -1.59, 1.574, -0.67 ] + }, + { "time": 1.6667 } + ] + }, + "gun": { + "rotate": [ + { + "curve": [ 0.099, 0.27, 0.367, 1.23 ] + }, + { + "time": 0.5333, + "value": 1.23, + "curve": [ 0.665, 1.23, 0.937, -0.56 ] + }, + { + "time": 1.1333, + "value": -0.55, + "curve": [ 1.316, -0.55, 1.582, -0.21 ] + }, + { "time": 1.6667 } + ] + }, + "torso": { + "rotate": [ + { + "value": -22.88, + "curve": [ 0.099, -23.45, 0.363, -24.74 ] + }, + { + "time": 0.5333, + "value": -24.74, + "curve": [ 0.706, -24.74, 0.961, -20.97 ] + }, + { + "time": 1.1333, + "value": -20.97, + "curve": [ 1.355, -20.97, 1.567, -22.28 ] + }, + { "time": 1.6667, "value": -22.88 } + ] + }, + "neck": { + "rotate": [ + { + "value": 3.78, + "curve": [ 0.167, 3.78, 0.5, 5.45 ] + }, + { + "time": 0.6667, + "value": 5.45, + "curve": [ 0.917, 5.45, 1.417, 3.78 ] + }, + { "time": 1.6667, "value": 3.78 } + ] + }, + "torso2": { + "rotate": [ + { + "curve": [ 0.067, 0.33, 0.341, 2.54 ] + }, + { + "time": 0.5333, + "value": 2.54, + "curve": [ 0.734, 2.55, 0.982, -0.94 ] + }, + { + "time": 1.1333, + "value": -0.93, + "curve": [ 1.365, -0.91, 1.549, -0.56 ] + }, + { "time": 1.6667 } + ] + }, + "torso3": { + "rotate": [ + { + "value": -2.15, + "curve": [ 0.052, -1.9, 0.384, -0.15 ] + }, + { + "time": 0.5333, + "value": -0.14, + "curve": [ 0.762, -0.13, 0.895, -3.1 ] + }, + { + "time": 1.1333, + "value": -3.1, + "curve": [ 1.348, -3.1, 1.592, -2.46 ] + }, + { "time": 1.6667, "value": -2.15 } + ] + }, + "hair1": { + "rotate": [ + { + "curve": [ 0.067, 0, 0.213, 2.86 ] + }, + { + "time": 0.2667, + "value": 3.65, + "curve": [ 0.358, 4.99, 0.535, 7.92 ] + }, + { + "time": 0.6667, + "value": 7.92, + "curve": [ 0.809, 7.92, 1.067, 5.49 ] + }, + { + "time": 1.1333, + "value": 4.7, + "curve": [ 1.245, 3.34, 1.525, 0 ] + }, + { "time": 1.6667 } + ] + }, + "hair2": { + "rotate": [ + { + "curve": [ 0.067, 0, 0.225, -7.97 ] + }, + { + "time": 0.2667, + "value": -9.75, + "curve": [ 0.316, -11.84, 0.519, -16.66 ] + }, + { + "time": 0.6667, + "value": -16.66, + "curve": [ 0.817, -16.66, 1.029, -11.43 ] + }, + { + "time": 1.1333, + "value": -9.14, + "curve": [ 1.25, -6.56, 1.525, 0 ] + }, + { "time": 1.6667 } + ] + }, + "hair3": { + "rotate": [ + { + "curve": [ 0.1, 0, 0.3, 1.32 ] + }, + { + "time": 0.4, + "value": 1.32, + "curve": [ 0.55, 1.32, 0.866, 0.93 ] + }, + { + "time": 1, + "value": 0.73, + "curve": [ 1.189, 0.46, 1.5, 0 ] + }, + { "time": 1.6667 } + ] + }, + "hair4": { + "rotate": [ + { + "curve": [ 0.118, -0.44, 0.3, -8.52 ] + }, + { + "time": 0.4, + "value": -8.52, + "curve": [ 0.55, -8.52, 0.85, 1.96 ] + }, + { + "time": 1, + "value": 1.96, + "curve": [ 1.167, 1.96, 1.577, 0.38 ] + }, + { "time": 1.6667 } + ] + }, + "head-control": { + "translate": [ + { + "curve": [ 0.098, 1.46, 0.3, 4.49, 0.17, 0.13, 0.316, -3.28 ] + }, + { + "time": 0.4, + "x": 4.55, + "y": -5.95, + "curve": [ 0.53, 4.64, 0.776, 2.59, 0.492, -8.89, 0.668, -14.21 ] + }, + { + "time": 0.8667, + "x": 1.42, + "y": -14.26, + "curve": [ 0.966, 0.15, 1.109, -2.91, 0.994, -14.26, 1.144, -10.58 ] + }, + { + "time": 1.2333, + "x": -3.02, + "y": -8.26, + "curve": [ 1.342, -3.02, 1.568, -1.48, 1.317, -6.1, 1.558, 0 ] + }, + { "time": 1.6667 } + ] + }, + "front-shoulder": { + "translate": [ + { + "curve": [ 0.21, 0, 0.525, -1.72, 0.21, 0, 0.525, 4.08 ] + }, + { + "time": 0.8333, + "x": -1.72, + "y": 4.08, + "curve": [ 1.15, -1.72, 1.46, 0, 1.15, 4.08, 1.46, 0 ] + }, + { "time": 1.6667 } + ] + } + } + }, + "idle-turn": { + "slots": { + "front-fist": { + "attachment": [ + { "name": "front-fist-open" } + ] + } + }, + "bones": { + "front-upper-arm": { + "rotate": [ + { + "value": -302.77, + "curve": [ 0, -406.9, 0.125, -420.87 ] + }, + { "time": 0.2667, "value": -420.87 } + ], + "translate": [ + { + "x": 2.24, + "y": -4.98, + "curve": [ 0.067, 2.24, 0.111, 0, 0.067, -4.98, 0.111, 0 ] + }, + { "time": 0.2667 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "value": 248.56, + "curve": [ 0, 371.28, 0.062, 399.2 ] + }, + { "time": 0.1333, "value": 399.2 } + ], + "translate": [ + { + "x": -2.84, + "y": 37.28, + "curve": [ 0.033, -2.84, 0.069, 0, 0.033, 37.28, 0.069, 0 ] + }, + { "time": 0.1333 } + ] + }, + "gun": { + "rotate": [ + { + "value": -3.95, + "curve": [ 0, -10.4, 0.019, -20.43 ] + }, + { + "time": 0.0333, + "value": -20.45, + "curve": [ 0.044, -20.47, 0.125, 0 ] + }, + { "time": 0.2 } + ] + }, + "neck": { + "rotate": [ + { + "value": 17.2, + "curve": [ 0, 6.27, 0.125, 3.78 ] + }, + { "time": 0.2667, "value": 3.78 } + ] + }, + "hip": { + "translate": [ + { + "x": -2.69, + "y": -6.79, + "curve": [ 0.067, -2.69, 0.2, -11.97, 0.067, -6.79, 0.2, -23.15 ] + }, + { "time": 0.2667, "x": -11.97, "y": -23.15 } + ] + }, + "front-fist": { + "rotate": [ + { + "value": -15.54, + "curve": [ 0, -3.08, 0.034, 18.44 ] + }, + { + "time": 0.0667, + "value": 19.02, + "curve": [ 0.108, 19.75, 0.169, 0 ] + }, + { "time": 0.2667 } + ], + "scale": [ + { + "x": 0.94, + "curve": [ 0, 0.96, 0.024, 1.24, 0, 1, 0.026, 0.95 ] + }, + { + "time": 0.0667, + "x": 1.236, + "y": 0.947, + "curve": [ 0.117, 1.24, 0.189, 1, 0.117, 0.95, 0.189, 1 ] + }, + { "time": 0.2667 } + ] + }, + "rear-bracer": { + "rotate": [ + { + "value": 11.75, + "curve": [ 0, -7.97, 0.017, -33.4 ] + }, + { + "time": 0.0333, + "value": -33.39, + "curve": [ 0.049, -33.37, 0.131, 0 ] + }, + { "time": 0.2 } + ] + }, + "torso": { + "rotate": [ + { + "value": -18.25, + "curve": [ 0, -10.59, 0.125, -22.88 ] + }, + { "time": 0.2667, "value": -22.88 } + ], + "scale": [ + { + "y": 1.03, + "curve": [ 0.067, 1, 0.132, 1, 0.067, 1.03, 0.132, 1 ] + }, + { "time": 0.2667 } + ] + }, + "head": { + "rotate": [ + { + "value": 5.12, + "curve": [ 0, -6.34, 0.125, -6.75 ] + }, + { "time": 0.2667, "value": -6.75 } + ], + "scale": [ + { + "y": 1.03, + "curve": [ 0.067, 1, 0.107, 1, 0.067, 1.03, 0.107, 1 ] + }, + { "time": 0.2667 } + ] + }, + "rear-foot-target": { + "translate": [ + { + "x": -58.39, + "y": 30.48, + "curve": [ 0, -7.15, 0.047, 16.62, 0, 12.71, 0.039, 0.22 ] + }, + { + "time": 0.1, + "x": 34.14, + "y": -0.19, + "curve": [ 0.136, 45.79, 0.163, 48.87, 0.133, -0.41, 0.163, 0 ] + }, + { "time": 0.2, "x": 48.87 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": 6.69, + "curve": [ 0, 19.76, 0.039, 56.53 ] + }, + { + "time": 0.0667, + "value": 56.63, + "curve": [ 0.114, 56.79, 0.189, 42.46 ] + }, + { "time": 0.2667, "value": 42.46 } + ] + }, + "front-foot-target": { + "rotate": [ + { + "value": -1.85, + "curve": [ 0.014, -8.91, 0.047, -28.4 ] + }, + { + "time": 0.1, + "value": -28.89, + "curve": [ 0.144, -29.29, 0.262, -21.77 ] + }, + { "time": 0.2667 } + ], + "translate": [ + { + "x": 9.97, + "y": 0.82, + "curve": [ 0, -54.41, 0.078, -69.06, 0, 0.15, 0.078, 0 ] + }, + { "time": 0.1667, "x": -69.06 } + ] + }, + "hair3": { + "rotate": [ + { + "value": -9.01, + "curve": [ 0.044, -9.01, 0.072, 7.41 ] + }, + { + "time": 0.1333, + "value": 10.08, + "curve": [ 0.166, 11.47, 0.208, 0 ] + }, + { "time": 0.2667 } + ] + }, + "hair4": { + "rotate": [ + { + "value": -16.49, + "curve": [ 0.044, -16.49, 0.101, -5.98 ] + }, + { + "time": 0.1333, + "value": -2.95, + "curve": [ 0.162, -0.34, 0.208, 0 ] + }, + { "time": 0.2667 } + ] + }, + "hair1": { + "rotate": [ + { + "value": -3.85, + "curve": [ 0.044, -3.85, 0.072, 6.91 ] + }, + { + "time": 0.1333, + "value": 8.05, + "curve": [ 0.166, 8.65, 0.208, 0 ] + }, + { "time": 0.2667 } + ] + }, + "hair2": { + "rotate": [ + { + "value": 1.25, + "curve": [ 0.044, 1.25, 0.072, 8.97 ] + }, + { + "time": 0.1333, + "value": 8.6, + "curve": [ 0.166, 8.4, 0.208, 0 ] + }, + { "time": 0.2667 } + ] + }, + "front-thigh": { + "translate": [ + { + "x": 12.21, + "y": 1.89, + "curve": [ 0.033, 12.21, 0.1, 0, 0.033, 1.89, 0.1, 0 ] + }, + { "time": 0.1333 } + ] + }, + "rear-thigh": { + "translate": [ + { + "x": -16.11, + "y": -1.38, + "curve": [ 0.033, -16.11, 0.1, 0, 0.033, -1.38, 0.1, 0 ] + }, + { "time": 0.1333 } + ] + }, + "torso3": { + "rotate": [ + { "time": 0.2667, "value": -2.15 } + ] + }, + "head-control": { + "translate": [ + { + "x": -13.72, + "y": -34.7, + "curve": [ 0.067, -13.72, 0.2, 0, 0.067, -34.7, 0.2, 0 ] + }, + { "time": 0.2667 } + ] + }, + "front-shoulder": { + "translate": [ + { + "x": 1.13, + "y": -14.31, + "curve": [ 0.067, 1.13, 0.2, 0, 0.067, -14.31, 0.2, 0 ] + }, + { "time": 0.2667 } + ] + } + } + }, + "jump": { + "slots": { + "front-fist": { + "attachment": [ + { "name": "front-fist-open" }, + { "time": 0.1, "name": "front-fist-closed" }, + { "time": 0.8333, "name": "front-fist-open" } + ] + } + }, + "bones": { + "front-thigh": { + "rotate": [ + { + "value": 55.08, + "curve": [ 0.007, 46.66, 0.043, 26.3 ] + }, + { + "time": 0.0667, + "value": 22.84, + "curve": [ 0.1, 17.99, 0.165, 15.78 ] + }, + { + "time": 0.2333, + "value": 15.71, + "curve": [ 0.309, 15.63, 0.408, 46.67 ] + }, + { + "time": 0.5, + "value": 63.6, + "curve": [ 0.56, 74.72, 0.762, 91.48 ] + }, + { + "time": 0.9667, + "value": 91.81, + "curve": [ 1.068, 92.01, 1.096, 22.05 ] + }, + { + "time": 1.1667, + "value": 22.25, + "curve": [ 1.18, 22.29, 1.176, 56.17 ] + }, + { + "time": 1.2, + "value": 56.16, + "curve": [ 1.246, 56.15, 1.263, 54.94 ] + }, + { "time": 1.3333, "value": 55.08 } + ], + "translate": [ + { "x": -5.13, "y": 11.55 } + ] + }, + "torso": { + "rotate": [ + { + "value": -45.57, + "curve": [ 0.022, -44.61, 0.03, -39.06 ] + }, + { + "time": 0.0667, + "value": -35.29, + "curve": [ 0.12, -29.77, 0.28, -19.95 ] + }, + { + "time": 0.4333, + "value": -19.95, + "curve": [ 0.673, -19.95, 0.871, -22.38 ] + }, + { + "time": 0.9667, + "value": -27.08, + "curve": [ 1.094, -33.33, 1.176, -44.93 ] + }, + { "time": 1.3333, "value": -45.57 } + ], + "translate": [ + { "x": -3.79, "y": -0.77 } + ] + }, + "rear-thigh": { + "rotate": [ + { + "value": 12.81, + "curve": [ 0.067, 12.81, 0.242, 67.88 ] + }, + { + "time": 0.2667, + "value": 74.11, + "curve": [ 0.314, 86.02, 0.454, 92.23 ] + }, + { + "time": 0.5667, + "value": 92.24, + "curve": [ 0.753, 92.26, 0.966, 67.94 ] + }, + { + "time": 1, + "value": 61.32, + "curve": [ 1.039, 53.75, 1.218, 12.68 ] + }, + { "time": 1.3333, "value": 12.81 } + ] + }, + "rear-shin": { + "rotate": [ + { + "value": -115.64, + "curve": [ 0.067, -117.17, 0.125, -117.15 ] + }, + { + "time": 0.1667, + "value": -117.15, + "curve": [ 0.225, -117.15, 0.332, -108.76 ] + }, + { + "time": 0.4, + "value": -107.15, + "curve": [ 0.48, -105.26, 0.685, -103.49 ] + }, + { + "time": 0.7667, + "value": -101.97, + "curve": [ 0.826, -100.87, 0.919, -92.3 ] + }, + { + "time": 1, + "value": -92.28, + "curve": [ 1.113, -92.26, 1.297, -114.22 ] + }, + { "time": 1.3333, "value": -115.64 } + ] + }, + "front-upper-arm": { + "rotate": [ + { + "value": -40.21, + "curve": [ 0.054, -35.46, 0.15, -31.12 ] + }, + { + "time": 0.2, + "value": -31.12, + "curve": [ 0.308, -31.12, 0.547, -80.12 ] + }, + { + "time": 0.6333, + "value": -96.56, + "curve": [ 0.697, -108.56, 0.797, -112.54 ] + }, + { + "time": 0.8667, + "value": -112.6, + "curve": [ 1.137, -112.84, 1.274, -49.19 ] + }, + { "time": 1.3333, "value": -40.21 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": 20.54, + "curve": [ 0.054, 32.23, 0.192, 55.84 ] + }, + { + "time": 0.2333, + "value": 62.58, + "curve": [ 0.29, 71.87, 0.375, 79.28 ] + }, + { + "time": 0.4333, + "value": 79.18, + "curve": [ 0.555, 78.98, 0.684, 27.54 ] + }, + { + "time": 0.7333, + "value": 13.28, + "curve": [ 0.786, -1.85, 0.874, -24.76 ] + }, + { + "time": 1, + "value": -25.45, + "curve": [ 1.165, -26.36, 1.303, 9.1 ] + }, + { "time": 1.3333, "value": 20.54 } + ] + }, + "front-fist": { + "rotate": [ + { + "value": -36.16, + "curve": [ 0.114, -39.59, 0.3, -45.61 ] + }, + { + "time": 0.4, + "value": -45.61, + "curve": [ 0.442, -45.61, 0.537, -21.54 ] + }, + { + "time": 0.5667, + "value": -15.4, + "curve": [ 0.592, -10.23, 0.692, 11.89 ] + }, + { + "time": 0.7333, + "value": 11.73, + "curve": [ 0.783, 11.54, 0.831, 1.8 ] + }, + { + "time": 0.8667, + "value": -5.78, + "curve": [ 0.897, -12.22, 0.901, -14.22 ] + }, + { + "time": 0.9333, + "value": -14.51, + "curve": [ 0.974, -14.89, 0.976, 10.38 ] + }, + { + "time": 1, + "value": 10.55, + "curve": [ 1.027, 10.74, 1.023, -8.44 ] + }, + { + "time": 1.0333, + "value": -8.42, + "curve": [ 1.059, -8.36, 1.074, 10.12 ] + }, + { + "time": 1.1, + "value": 10.22, + "curve": [ 1.168, 10.48, 1.27, -36.07 ] + }, + { "time": 1.3333, "value": -36.16 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "value": 40.5, + "curve": [ 0.048, 36.1, 0.168, 20.45 ] + }, + { + "time": 0.3, + "value": 20.45, + "curve": [ 0.476, 20.45, 0.571, 33.76 ] + }, + { + "time": 0.6, + "value": 38.67, + "curve": [ 0.642, 45.8, 0.681, 57.44 ] + }, + { + "time": 0.7333, + "value": 62.91, + "curve": [ 0.829, 72.8, 0.996, 77.61 ] + }, + { + "time": 1.0333, + "value": 80.37, + "curve": [ 1.082, 83.94, 1.148, 90.6 ] + }, + { + "time": 1.2, + "value": 90.6, + "curve": [ 1.248, 90.46, 1.317, 53.07 ] + }, + { "time": 1.3333, "value": 49.06 } + ] + }, + "rear-bracer": { + "rotate": [ + { + "value": 28.28, + "curve": [ 0.022, 25.12, 0.187, -0.89 ] + }, + { + "time": 0.2, + "value": -2.52, + "curve": [ 0.257, -9.92, 0.372, -17.38 ] + }, + { + "time": 0.4333, + "value": -17.41, + "curve": [ 0.54, -17.47, 0.659, -16.91 ] + }, + { + "time": 0.7667, + "value": -12.1, + "curve": [ 0.907, -5.79, 1.025, 14.58 ] + }, + { + "time": 1.1, + "value": 20.58, + "curve": [ 1.191, 27.85, 1.283, 29.67 ] + }, + { "time": 1.3333, "value": 29.67 } + ] + }, + "neck": { + "rotate": [ + { + "value": 11.88, + "curve": [ 0.104, 11.82, 0.179, 11.15 ] + }, + { + "time": 0.2, + "value": 10.08, + "curve": [ 0.255, 7.29, 0.405, -8.15 ] + }, + { + "time": 0.4333, + "value": -9.35, + "curve": [ 0.508, -12.48, 0.595, -13.14 ] + }, + { + "time": 0.6667, + "value": -12.61, + "curve": [ 0.714, -12.26, 0.815, -5.57 ] + }, + { + "time": 0.8333, + "value": -4.08, + "curve": [ 0.883, -0.07, 1.045, 12.77 ] + }, + { + "time": 1.1, + "value": 15.06, + "curve": [ 1.208, 19.6, 1.279, 20.64 ] + }, + { "time": 1.3333, "value": 20.73 } + ] + }, + "head": { + "rotate": [ + { + "value": 13.14, + "curve": [ 0.008, 12.19, 0.197, -23.53 ] + }, + { + "time": 0.3333, + "value": -23.95, + "curve": [ 0.509, -23.95, 0.667, -2.66 ] + }, + { + "time": 0.7333, + "value": -2.66, + "curve": [ 0.792, -2.66, 0.908, -13.32 ] + }, + { + "time": 0.9667, + "value": -13.32, + "curve": [ 1.158, -13.11, 1.241, -1.58 ] + }, + { "time": 1.3333, "value": -1.58 } + ], + "scale": [ + { + "curve": [ 0.041, 1, 0.052, 0.96, 0.041, 1, 0.052, 1.14 ] + }, + { + "time": 0.1, + "x": 0.954, + "y": 1.137, + "curve": [ 0.202, 0.96, 0.318, 1, 0.202, 1.14, 0.252, 1 ] + }, + { "time": 0.4667 }, + { + "time": 1.0667, + "x": 1.002, + "curve": [ 1.092, 1, 1.126, 1.14, 1.092, 1, 1.128, 0.97 ] + }, + { + "time": 1.1667, + "x": 1.144, + "y": 0.973, + "curve": [ 1.204, 1.14, 1.233, 0.96, 1.206, 0.97, 1.227, 1.06 ] + }, + { + "time": 1.2667, + "x": 0.958, + "y": 1.063, + "curve": [ 1.284, 0.96, 1.292, 1, 1.288, 1.06, 1.288, 1 ] + }, + { "time": 1.3333 } + ] + }, + "hip": { + "translate": [ + { + "y": -45.46, + "curve": [ 0.042, -0.09, 0.15, 15.22, 0.031, 44.98, 0.123, 289.73 ] + }, + { + "time": 0.2, + "x": 15.22, + "y": 415.85, + "curve": [ 0.332, 15.22, 0.539, -34.52, 0.271, 532.93, 0.483, 720.5 ] + }, + { + "time": 0.7667, + "x": -34.52, + "y": 721.6, + "curve": [ 0.888, -34.52, 1.057, -21.95, 1.049, 721.17, 1.098, 379.84 ] + }, + { + "time": 1.1333, + "x": -15.67, + "y": 266.77, + "curve": [ 1.144, -14.77, 1.188, -10.53, 1.15, 213.72, 1.172, -61.32 ] + }, + { + "time": 1.2333, + "x": -6.53, + "y": -61.34, + "curve": [ 1.272, -3.22, 1.311, 0.05, 1.291, -61.36, 1.296, -44.8 ] + }, + { "time": 1.3333, "y": -45.46 } + ] + }, + "front-shin": { + "rotate": [ + { + "value": -74.19, + "curve": [ 0, -51.14, 0.042, -12.54 ] + }, + { + "time": 0.1667, + "value": -12.28, + "curve": [ 0.285, -12.32, 0.37, -74.44 ] + }, + { + "time": 0.4333, + "value": -92.92, + "curve": [ 0.498, -111.86, 0.617, -140.28 ] + }, + { + "time": 0.9, + "value": -140.84, + "curve": [ 1.004, -141.04, 1.09, -47.87 ] + }, + { + "time": 1.1, + "value": -37.44, + "curve": [ 1.108, -29.83, 1.14, -21.18 ] + }, + { + "time": 1.1667, + "value": -21.08, + "curve": [ 1.18, -21.03, 1.191, -50.65 ] + }, + { + "time": 1.2, + "value": -53.17, + "curve": [ 1.22, -58.53, 1.271, -73.38 ] + }, + { "time": 1.3333, "value": -74.19 } + ] + }, + "front-foot": { + "rotate": [ + { + "value": 7.35, + "curve": [ 0, 4.8, 0.05, -26.64 ] + }, + { + "time": 0.0667, + "value": -26.64, + "curve": [ 0.192, -26.64, 0.442, -11.77 ] + }, + { + "time": 0.5667, + "value": -11.77, + "curve": [ 0.692, -11.77, 0.942, -19.36 ] + }, + { + "time": 1.0667, + "value": -19.36, + "curve": [ 1.133, -19.36, 1.32, 3.82 ] + }, + { "time": 1.3333, "value": 7.35 } + ] + }, + "rear-foot": { + "rotate": [ + { "value": -7.14 } + ] + }, + "gun": { + "rotate": [ + { + "value": 12.36, + "curve": [ 0.022, 16.28, 0.15, 30.81 ] + }, + { + "time": 0.2, + "value": 30.81, + "curve": [ 0.258, 30.81, 0.375, 13.26 ] + }, + { + "time": 0.4333, + "value": 13.26, + "curve": [ 0.508, 13.26, 0.658, 15.05 ] + }, + { + "time": 0.7333, + "value": 14.98, + "curve": [ 0.789, 14.94, 0.828, 13.62 ] + }, + { + "time": 0.8667, + "value": 12.72, + "curve": [ 0.887, 12.25, 0.984, 9.83 ] + }, + { + "time": 1.0333, + "value": 8.6, + "curve": [ 1.045, 8.31, 1.083, 7.55 ] + }, + { + "time": 1.1333, + "value": 7.13, + "curve": [ 1.175, 6.78, 1.283, 6.18 ] + }, + { "time": 1.3333, "value": 6.18 } + ] + }, + "front-leg-target": { + "translate": [ + { "x": -13.95, "y": -30.34 } + ] + }, + "rear-leg-target": { + "rotate": [ + { "value": -38.43 } + ], + "translate": [ + { "x": 85, "y": -33.59 } + ] + }, + "front-foot-target": { + "rotate": [ + { "value": -62.54 } + ], + "translate": [ + { "x": 16.34, "y": 0.18 } + ] + }, + "rear-foot-target": { + "rotate": [ + { "value": 18.55 } + ], + "translate": [ + { "x": -176.39, "y": 134.12 } + ] + }, + "back-foot-tip": { + "rotate": [ + { + "value": -143.73, + "curve": [ 0.083, -144.24, 0.167, -74.26 ] + }, + { + "time": 0.2667, + "value": -52.76, + "curve": [ 0.342, -36.57, 0.513, -36.57 ] + }, + { + "time": 0.6333, + "value": -30.97, + "curve": [ 0.724, -26.78, 0.848, -17.06 ] + }, + { + "time": 0.9667, + "value": -16.74, + "curve": [ 1.167, -16.2, 1.272, -144.17 ] + }, + { "time": 1.3333, "value": -143.73 } + ] + }, + "front-foot-tip": { + "rotate": [ + { + "value": -1.57, + "curve": [ 0, -24.71, 0.162, -60.88 ] + }, + { + "time": 0.2667, + "value": -60.83, + "curve": [ 0.342, -60.8, 0.582, -43.5 ] + }, + { + "time": 0.7, + "value": -39.45, + "curve": [ 0.773, -36.94, 0.832, -36.78 ] + }, + { + "time": 0.9667, + "value": -36.6, + "curve": [ 1.054, -36.49, 1.092, -37.37 ] + }, + { + "time": 1.1667, + "value": -33.26, + "curve": [ 1.237, -29.37, 1.147, -1.41 ] + }, + { "time": 1.2, "value": -1.57 } + ] + }, + "hair3": { + "rotate": [ + { + "value": -6.81, + "curve": [ 0, 13.59, 0.117, 18.21 ] + }, + { + "time": 0.1333, + "value": 18.21, + "curve": [ 0.167, 18.21, 0.26, 12.95 ] + }, + { + "time": 0.3, + "value": 11.56, + "curve": [ 0.382, 8.7, 0.55, 9.43 ] + }, + { + "time": 0.6667, + "value": 9.32, + "curve": [ 0.843, 9.15, 0.918, -7.34 ] + }, + { "time": 1.3333, "value": -6.81 } + ], + "translate": [ + { + "time": 0.6667, + "curve": [ 0.781, 0, 0.972, 16.03, 0.781, 0, 0.972, 0.92 ] + }, + { + "time": 1.1333, + "x": 16.03, + "y": 0.92, + "curve": [ 1.211, 16.03, 1.281, 0, 1.211, 0.92, 1.281, 0 ] + }, + { "time": 1.3333 } + ] + }, + "hair4": { + "rotate": [ + { + "value": -6.81, + "curve": [ 0.001, -3.88, 0.063, 16.18 ] + }, + { + "time": 0.1667, + "value": 16.14, + "curve": [ 0.242, 16.1, 0.249, 16.07 ] + }, + { + "time": 0.3333, + "value": 13.46, + "curve": [ 0.442, 10.09, 0.573, -2.2 ] + }, + { + "time": 0.6, + "value": -6.04, + "curve": [ 0.614, -8.05, 0.717, -33.44 ] + }, + { + "time": 0.7667, + "value": -33.44, + "curve": [ 0.809, -33.44, 0.835, -31.32 ] + }, + { + "time": 0.8667, + "value": -27.36, + "curve": [ 0.874, -26.47, 0.903, -14.28 ] + }, + { + "time": 0.9333, + "value": -14.47, + "curve": [ 0.956, -14.62, 0.944, -25.91 ] + }, + { + "time": 1, + "value": -25.96, + "curve": [ 1.062, -26.02, 1.051, -1.87 ] + }, + { + "time": 1.0667, + "value": -1.87, + "curve": [ 1.096, -1.87, 1.096, -16.09 ] + }, + { + "time": 1.1333, + "value": -16.08, + "curve": [ 1.169, -16.08, 1.153, -3.38 ] + }, + { + "time": 1.2, + "value": -3.38, + "curve": [ 1.234, -3.38, 1.271, -6.07 ] + }, + { "time": 1.3333, "value": -6.07 } + ] + }, + "hair2": { + "rotate": [ + { + "value": -6.81, + "curve": [ 0, -3.17, 0.042, 16.33 ] + }, + { + "time": 0.0667, + "value": 16.33, + "curve": [ 0.21, 15.74, 0.208, -12.06 ] + }, + { + "time": 0.3333, + "value": -12.21, + "curve": [ 0.417, -12.3, 0.552, -3.98 ] + }, + { + "time": 0.6667, + "value": 1.52, + "curve": [ 0.726, 4.35, 0.817, 4.99 ] + }, + { + "time": 0.8667, + "value": 4.99, + "curve": [ 0.901, 4.99, 0.912, -29.05 ] + }, + { + "time": 0.9667, + "value": -27.45, + "curve": [ 0.987, -26.83, 1.018, -5.42 ] + }, + { + "time": 1.0667, + "value": -5.46, + "curve": [ 1.107, -5.22, 1.095, -33.51 ] + }, + { + "time": 1.1333, + "value": -33.28, + "curve": [ 1.162, -33.57, 1.192, 8.04 ] + }, + { + "time": 1.2667, + "value": 7.86, + "curve": [ 1.302, 7.77, 1.313, 2.7 ] + }, + { "time": 1.3333, "value": 2.7 } + ] + }, + "hair1": { + "rotate": [ + { + "value": -6.81, + "curve": [ 0.001, -3.12, 0.074, 14.66 ] + }, + { + "time": 0.1333, + "value": 14.66, + "curve": [ 0.188, 14.8, 0.293, 9.56 ] + }, + { + "time": 0.3333, + "value": 5.99, + "curve": [ 0.381, 1.72, 0.55, -11.11 ] + }, + { + "time": 0.6667, + "value": -11.11, + "curve": [ 0.833, -11.11, 0.933, 22.54 ] + }, + { + "time": 1.1, + "value": 22.54, + "curve": [ 1.158, 22.54, 1.275, -6.81 ] + }, + { "time": 1.3333, "value": -6.81 } + ] + }, + "torso2": { + "rotate": [ + { + "value": 4.52, + "curve": [ 0.013, 2.33, 0.092, -9.75 ] + }, + { + "time": 0.1333, + "value": -9.75, + "curve": [ 0.175, -9.75, 0.291, -1.26 ] + }, + { + "time": 0.3333, + "value": 0.96, + "curve": [ 0.359, 2.3, 0.543, 4.25 ] + }, + { + "time": 0.6, + "value": 4.68, + "curve": [ 0.683, 5.3, 0.771, 5.92 ] + }, + { + "time": 0.8333, + "value": 6.48, + "curve": [ 0.871, 6.82, 1.083, 11.37 ] + }, + { + "time": 1.1667, + "value": 11.37, + "curve": [ 1.208, 11.37, 1.317, 6.18 ] + }, + { "time": 1.3333, "value": 4.52 } + ], + "translate": [ + { + "curve": [ 0, 0, 0.082, -2.24, 0, 0, 0.082, -0.42 ] + }, + { + "time": 0.1667, + "x": -2.98, + "y": -0.56, + "curve": [ 0.232, -2.24, 0.298, 0, 0.232, -0.42, 0.298, 0 ] + }, + { "time": 0.3333, "curve": "stepped" }, + { + "time": 0.8667, + "curve": [ 0.889, 0, 0.912, 0.26, 0.889, 0, 0.912, 0.06 ] + }, + { + "time": 0.9333, + "x": 0.68, + "y": 0.23, + "curve": [ 1.016, 2.22, 1.095, 5.9, 1.023, 0.97, 1.095, 1.99 ] + }, + { + "time": 1.1667, + "x": 6.47, + "y": 2.18, + "curve": [ 1.23, 5.75, 1.286, 0, 1.23, 1.94, 1.286, 0 ] + }, + { "time": 1.3333 } + ] + }, + "torso3": { + "rotate": [ + { + "value": 4.52, + "curve": [ 0.025, 4.52, 0.075, -6.17 ] + }, + { + "time": 0.1, + "value": -6.17, + "curve": [ 0.175, -6.17, 0.381, -0.71 ] + }, + { + "time": 0.4, + "value": -0.25, + "curve": [ 0.447, 0.87, 0.775, 4.84 ] + }, + { + "time": 0.9, + "value": 4.84, + "curve": [ 1.008, 4.84, 1.225, 4.52 ] + }, + { "time": 1.3333, "value": 4.52 } + ] + }, + "head-control": { + "translate": [ + { + "curve": [ 0.138, -2.4, 0.227, -10.44, 0.123, 1.05, 0.227, 2.7 ] + }, + { + "time": 0.3667, + "x": -10.44, + "y": 2.7, + "curve": [ 0.484, -10.44, 0.585, -5.63, 0.484, 2.7, 0.629, -23.62 ] + }, + { + "time": 0.7333, + "x": -2.29, + "y": -26.61, + "curve": [ 0.818, -0.39, 0.962, 1.21, 0.858, -30.17, 0.972, -28.75 ] + }, + { + "time": 1.1, + "x": 1.25, + "y": -28.75, + "curve": [ 1.192, 1.28, 1.234, 0.98, 1.224, -28.75, 1.235, -2.15 ] + }, + { "time": 1.3333 } + ] + }, + "front-shoulder": { + "translate": [ + { + "curve": [ 0.031, -2.22, 0.065, -3.73, 0.02, -3.25, 0.065, -14.74 ] + }, + { + "time": 0.1, + "x": -3.73, + "y": -14.74, + "curve": [ 0.216, -3.73, 0.384, -0.17, 0.216, -14.74, 0.402, -12.51 ] + }, + { + "time": 0.5, + "x": 1.63, + "y": -9.51, + "curve": [ 0.632, 3.69, 0.935, 7.41, 0.585, -6.91, 0.909, 10.86 ] + }, + { + "time": 1.1, + "x": 7.45, + "y": 10.99, + "curve": [ 1.18, 7.46, 1.265, 2.86, 1.193, 11.05, 1.294, 3.38 ] + }, + { "time": 1.3333 } + ] + } + }, + "ik": { + "front-foot-ik": [ + { + "mix": 0, + "curve": [ 0.3, 0, 0.9, 1, 0.3, 0, 0.9, 0 ] + }, + { "time": 1.2 } + ], + "front-leg-ik": [ + { + "mix": 0, + "bendPositive": false, + "curve": [ 0.3, 0, 0.9, 1, 0.3, 0, 0.9, 0 ] + }, + { "time": 1.2, "bendPositive": false } + ], + "rear-foot-ik": [ + { "mix": 0 } + ], + "rear-leg-ik": [ + { "mix": 0, "bendPositive": false } + ] + }, + "events": [ + { "time": 1.2, "name": "footstep" } + ] + }, + "portal": { + "slots": { + "clipping": { + "attachment": [ + { "name": "clipping" } + ] + }, + "front-fist": { + "attachment": [ + { "name": "front-fist-open" } + ] + }, + "mouth": { + "attachment": [ + { "time": 0.9, "name": "mouth-grind" }, + { "time": 2.2667, "name": "mouth-smile" } + ] + }, + "portal-bg": { + "attachment": [ + { "name": "portal-bg" }, + { "time": 3, "name": null } + ] + }, + "portal-flare1": { + "attachment": [ + { "time": 1.1, "name": "portal-flare1" }, + { "time": 1.1333, "name": "portal-flare2" }, + { "time": 1.1667, "name": "portal-flare3" }, + { "time": 1.2, "name": "portal-flare1" }, + { "time": 1.2333, "name": "portal-flare2" }, + { "time": 1.2667, "name": "portal-flare1" }, + { "time": 1.3333, "name": null } + ] + }, + "portal-flare2": { + "attachment": [ + { "time": 1.1, "name": "portal-flare2" }, + { "time": 1.1333, "name": "portal-flare3" }, + { "time": 1.1667, "name": "portal-flare1" }, + { "time": 1.2, "name": "portal-flare2" }, + { "time": 1.2333, "name": "portal-flare3" }, + { "time": 1.2667, "name": null } + ] + }, + "portal-flare3": { + "attachment": [ + { "time": 1.2, "name": "portal-flare3" }, + { "time": 1.2333, "name": "portal-flare2" }, + { "time": 1.2667, "name": null } + ] + }, + "portal-flare4": { + "attachment": [ + { "time": 1.2, "name": "portal-flare2" }, + { "time": 1.2333, "name": "portal-flare1" }, + { "time": 1.2667, "name": "portal-flare2" }, + { "time": 1.3333, "name": null } + ] + }, + "portal-flare5": { + "attachment": [ + { "time": 1.2333, "name": "portal-flare3" }, + { "time": 1.2667, "name": "portal-flare1" }, + { "time": 1.3333, "name": null } + ] + }, + "portal-flare6": { + "attachment": [ + { "time": 1.2667, "name": "portal-flare3" }, + { "time": 1.3333, "name": null } + ] + }, + "portal-flare7": { + "attachment": [ + { "time": 1.1333, "name": "portal-flare2" }, + { "time": 1.1667, "name": null } + ] + }, + "portal-flare8": { + "attachment": [ + { "time": 1.2, "name": "portal-flare3" }, + { "time": 1.2333, "name": "portal-flare2" }, + { "time": 1.2667, "name": null } + ] + }, + "portal-flare9": { + "attachment": [ + { "time": 1.2, "name": "portal-flare2" }, + { "time": 1.2333, "name": "portal-flare3" }, + { "time": 1.2667, "name": "portal-flare1" }, + { "time": 1.3, "name": null } + ] + }, + "portal-flare10": { + "attachment": [ + { "time": 1.2, "name": "portal-flare2" }, + { "time": 1.2333, "name": "portal-flare1" }, + { "time": 1.2667, "name": "portal-flare3" }, + { "time": 1.3, "name": null } + ] + }, + "portal-shade": { + "attachment": [ + { "name": "portal-shade" }, + { "time": 3, "name": null } + ] + }, + "portal-streaks1": { + "attachment": [ + { "name": "portal-streaks1" }, + { "time": 3, "name": null } + ] + }, + "portal-streaks2": { + "attachment": [ + { "name": "portal-streaks2" }, + { "time": 3, "name": null } + ] + } + }, + "bones": { + "portal-root": { + "translate": [ + { + "x": -458.35, + "y": 105.19, + "curve": [ 0.333, -458.22, 0.669, -457.86, 0.934, 105.19, 0.671, 105.19 ] + }, + { + "time": 1, + "x": -456.02, + "y": 105.19, + "curve": [ 1.339, -454.14, 2.208, -447.28, 1.35, 105.19, 2.05, 105.19 ] + }, + { + "time": 2.4, + "x": -439.12, + "y": 105.19, + "curve": [ 2.463, -436.44, 2.502, -432.92, 2.487, 105.19, 2.512, 105.09 ] + }, + { + "time": 2.6, + "x": -432.58, + "y": 105.09, + "curve": [ 2.784, -431.94, 2.978, -446.6, 2.772, 105.09, 2.933, 105.19 ] + }, + { "time": 3.0333, "x": -457.42, "y": 105.19 } + ], + "scale": [ + { + "x": 0.003, + "y": 0.006, + "curve": [ 0.329, 0.04, 0.347, 0.12, 0.329, 0.1, 0.37, 0.25 ] + }, + { + "time": 0.4, + "x": 0.175, + "y": 0.387, + "curve": [ 0.63, 0.62, 0.663, 0.72, 0.609, 1.34, 0.645, 1.52 ] + }, + { + "time": 0.7333, + "x": 0.724, + "y": 1.52, + "curve": [ 0.798, 0.72, 0.907, 0.65, 0.797, 1.52, 0.895, 1.42 ] + }, + { + "time": 1, + "x": 0.645, + "y": 1.426, + "curve": [ 1.095, 0.64, 1.139, 0.69, 1.089, 1.43, 1.115, 1.51 ] + }, + { + "time": 1.2333, + "x": 0.685, + "y": 1.516, + "curve": [ 1.325, 0.68, 1.508, 0.64, 1.343, 1.52, 1.467, 1.4 ] + }, + { + "time": 1.6, + "x": 0.634, + "y": 1.401, + "curve": [ 1.728, 0.63, 1.946, 0.69, 1.722, 1.4, 1.924, 1.52 ] + }, + { + "time": 2.0667, + "x": 0.688, + "y": 1.522, + "curve": [ 2.189, 0.69, 2.289, 0.65, 2.142, 1.52, 2.265, 1.42 ] + }, + { + "time": 2.4, + "x": 0.65, + "y": 1.426, + "curve": [ 2.494, 0.65, 2.504, 0.77, 2.508, 1.43, 2.543, 1.57 ] + }, + { + "time": 2.6, + "x": 0.766, + "y": 1.568, + "curve": [ 2.73, 0.76, 3.006, 0.1, 2.767, 1.56, 2.997, 0.1 ] + }, + { "time": 3.0333, "x": 0.007, "y": 0.015 } + ] + }, + "portal-streaks1": { + "rotate": [ + {}, + { "time": 3.1667, "value": 1200 } + ], + "translate": [ + { + "x": 15.15, + "curve": [ 0.162, 15.15, 0.432, 12.6, 0.162, 0, 0.432, -3.86 ] + }, + { + "time": 0.6667, + "x": 10.9, + "y": -6.44, + "curve": [ 0.794, 9.93, 0.912, 9.21, 0.794, -7.71, 0.912, -8.66 ] + }, + { + "time": 1, + "x": 9.21, + "y": -8.66, + "curve": [ 1.083, 9.21, 1.25, 21.53, 1.083, -8.66, 1.265, -4.9 ] + }, + { + "time": 1.3333, + "x": 21.53, + "y": -3.19, + "curve": [ 1.5, 21.53, 1.939, 12.3, 1.446, -0.37, 1.9, 6.26 ] + }, + { + "time": 2.0667, + "x": 11.26, + "y": 6.26, + "curve": [ 2.239, 9.85, 2.389, 9.68, 2.208, 6.26, 2.523, 0.51 ] + }, + { + "time": 2.5667, + "x": 9.39, + "y": -0.8, + "curve": [ 2.657, 9.24, 2.842, 9.21, 2.646, -3.2, 2.842, -8.91 ] + }, + { "time": 2.9333, "x": 9.21, "y": -8.91 } + ], + "scale": [ + { + "curve": [ 0.167, 1, 0.5, 1.05, 0.167, 1, 0.5, 1.05 ] + }, + { + "time": 0.6667, + "x": 1.053, + "y": 1.053, + "curve": [ 0.833, 1.05, 1.167, 0.99, 0.833, 1.05, 1.167, 0.99 ] + }, + { + "time": 1.3333, + "x": 0.986, + "y": 0.986, + "curve": [ 1.5, 0.99, 1.833, 1.05, 1.5, 0.99, 1.833, 1.05 ] + }, + { "time": 2, "x": 1.053, "y": 1.053 } + ] + }, + "portal-streaks2": { + "rotate": [ + {}, + { "time": 3.1667, "value": 600 } + ], + "translate": [ + { "x": -2.11 }, + { "time": 1, "x": -2.11, "y": 6.63 }, + { "time": 1.9333, "x": -2.11 } + ], + "scale": [ + { + "x": 1.014, + "y": 1.014, + "curve": [ 0.229, 0.91, 0.501, 0.76, 0.242, 0.89, 0.502, 0.77 ] + }, + { + "time": 0.8667, + "x": 0.745, + "y": 0.745, + "curve": [ 1.282, 0.73, 2.021, 0.7, 1.27, 0.72, 2.071, 0.71 ] + }, + { + "time": 2.2, + "x": 0.7, + "y": 0.704, + "curve": [ 2.315, 0.7, 2.421, 0.79, 2.311, 0.7, 2.485, 0.8 ] + }, + { + "time": 2.5667, + "x": 0.794, + "y": 0.794, + "curve": [ 2.734, 0.79, 2.99, 0.32, 2.714, 0.79, 3.019, 0.34 ] + }, + { "time": 3.1667, "x": 0, "y": 0 } + ] + }, + "portal-shade": { + "translate": [ + { "x": -29.68 } + ], + "scale": [ + { "x": 0.714, "y": 0.714 } + ] + }, + "portal": { + "rotate": [ + {}, + { "time": 3.1667, "value": 600 } + ] + }, + "clipping": { + "translate": [ + { "x": -476.55, "y": 2.27 } + ], + "scale": [ + { "x": 0.983, "y": 1.197 } + ] + }, + "hip": { + "rotate": [ + { + "time": 1.0667, + "value": 22.74, + "curve": [ 1.163, 18.84, 1.77, 8.77 ] + }, + { + "time": 1.9, + "value": 7.82, + "curve": [ 2.271, 5.1, 2.89, 0 ] + }, + { "time": 3.1667 } + ], + "translate": [ + { "x": -899.41, "y": 4.47, "curve": "stepped" }, + { + "time": 1.0667, + "x": -694.16, + "y": 183.28, + "curve": [ 1.091, -602.08, 1.138, -427.59, 1.115, 185.6, 1.171, 133.18 ] + }, + { + "time": 1.2333, + "x": -316.97, + "y": 55.29, + "curve": [ 1.317, -220.27, 1.512, -123.21, 1.271, 8.68, 1.461, -83.18 ] + }, + { + "time": 1.6, + "x": -95.53, + "y": -112.23, + "curve": [ 1.718, -58.25, 2.037, -22.54, 1.858, -166.17, 2.109, -31.4 ] + }, + { + "time": 2.1667, + "x": -14.82, + "y": -31.12, + "curve": [ 2.294, -7.28, 2.442, -7.2, 2.274, -30.6, 2.393, -36.76 ] + }, + { + "time": 2.6, + "x": -7.2, + "y": -36.96, + "curve": [ 2.854, -7.2, 3.071, -11.87, 2.786, -36.27, 3.082, -22.98 ] + }, + { "time": 3.1667, "x": -11.97, "y": -23.15 } + ] + }, + "rear-foot-target": { + "rotate": [ + { "time": 1.0667, "value": 41.6, "curve": "stepped" }, + { + "time": 1.2333, + "value": 41.6, + "curve": [ 1.258, 41.6, 1.379, 35.46 ] + }, + { + "time": 1.4, + "value": 30.09, + "curve": [ 1.412, 27.04, 1.433, 10.65 ] + }, + { "time": 1.4333, "value": -0.28 }, + { "time": 1.6, "value": 2.44 } + ], + "translate": [ + { "x": -899.41, "y": 4.47, "curve": "stepped" }, + { + "time": 1.0667, + "x": -591.13, + "y": 438.46, + "curve": [ 1.076, -539.77, 1.206, -268.1, 1.117, 418.44, 1.21, 333.18 ] + }, + { + "time": 1.2333, + "x": -225.28, + "y": 304.53, + "curve": [ 1.265, -175.22, 1.393, -74.21, 1.296, 226.52, 1.401, 49.61 ] + }, + { + "time": 1.4333, + "x": -52.32, + "y": 0.2, + "curve": [ 1.454, -40.85, 1.616, 40.87, 1.466, 0.17, 1.614, 0.04 ] + }, + { "time": 1.6667, "x": 45.87, "y": 0.01 }, + { "time": 1.9333, "x": 48.87 } + ] + }, + "front-foot-target": { + "rotate": [ + { + "time": 1.0667, + "value": 32.08, + "curve": [ 1.108, 32.08, 1.192, 35.16 ] + }, + { + "time": 1.2333, + "value": 35.16, + "curve": [ 1.258, 35.16, 1.317, 2.23 ] + }, + { + "time": 1.3333, + "value": -4.74, + "curve": [ 1.351, -12.14, 1.429, -34.96 ] + }, + { + "time": 1.6, + "value": -34.77, + "curve": [ 1.765, -34.58, 1.897, -17.25 ] + }, + { "time": 1.9333 } + ], + "translate": [ + { "x": -899.41, "y": 4.47, "curve": "stepped" }, + { + "time": 1.0667, + "x": -533.93, + "y": 363.75, + "curve": [ 1.074, -480.85, 1.18, -261.31, 1.094, 362.3, 1.195, 267.77 ] + }, + { + "time": 1.2333, + "x": -201.23, + "y": 199.93, + "curve": [ 1.269, -161.38, 1.294, -140.32, 1.274, 126.67, 1.308, 77.12 ] + }, + { + "time": 1.3333, + "x": -124.08, + "y": 0.2, + "curve": [ 1.426, -85.6, 1.633, -69.06, 1.45, 0.48, 1.633, 0 ] + }, + { "time": 1.7333, "x": -69.06 } + ] + }, + "torso": { + "rotate": [ + { + "time": 1.0667, + "value": 27.02, + "curve": [ 1.187, 26.86, 1.291, 7.81 ] + }, + { + "time": 1.3333, + "value": -2.62, + "curve": [ 1.402, -19.72, 1.429, -48.64 ] + }, + { + "time": 1.4667, + "value": -56.31, + "curve": [ 1.509, -64.87, 1.62, -77.14 ] + }, + { + "time": 1.7333, + "value": -77.34, + "curve": [ 1.837, -76.89, 1.895, -71.32 ] + }, + { + "time": 2, + "value": -57.52, + "curve": [ 2.104, -43.83, 2.189, -28.59 ] + }, + { + "time": 2.3, + "value": -29.03, + "curve": [ 2.413, -29.48, 2.513, -36.79 ] + }, + { + "time": 2.6667, + "value": -36.79, + "curve": [ 2.814, -36.95, 2.947, -22.88 ] + }, + { "time": 3.1667, "value": -22.88 } + ] + }, + "neck": { + "rotate": [ + { + "time": 1.0667, + "value": -3.57, + "curve": [ 1.146, -3.66, 1.15, -13.5 ] + }, + { + "time": 1.2333, + "value": -13.5, + "curve": [ 1.428, -13.5, 1.443, 11.58 ] + }, + { + "time": 1.5667, + "value": 11.42, + "curve": [ 1.658, 11.3, 1.775, 3.78 ] + }, + { + "time": 1.8667, + "value": 3.78, + "curve": [ 1.92, 3.78, 2.036, 8.01 ] + }, + { + "time": 2.1, + "value": 7.93, + "curve": [ 2.266, 7.72, 2.42, 3.86 ] + }, + { + "time": 2.5333, + "value": 3.86, + "curve": [ 2.783, 3.86, 3.004, 3.78 ] + }, + { "time": 3.1667, "value": 3.78 } + ] + }, + "head": { + "rotate": [ + { + "time": 1.0667, + "value": 16.4, + "curve": [ 1.133, 9.9, 1.207, 1.87 ] + }, + { + "time": 1.3333, + "value": 1.67, + "curve": [ 1.46, 1.56, 1.547, 47.54 ] + }, + { + "time": 1.7333, + "value": 47.55, + "curve": [ 1.897, 47.56, 2.042, 5.68 ] + }, + { + "time": 2.0667, + "value": 0.86, + "curve": [ 2.074, -0.61, 2.086, -2.81 ] + }, + { + "time": 2.1, + "value": -5.31, + "curve": [ 2.145, -13.07, 2.216, -23.65 ] + }, + { + "time": 2.2667, + "value": -23.71, + "curve": [ 2.334, -23.79, 2.426, -13.43 ] + }, + { + "time": 2.4667, + "value": -9.18, + "curve": [ 2.498, -5.91, 2.604, 2.53 ] + }, + { + "time": 2.6667, + "value": 2.52, + "curve": [ 2.738, 2.24, 2.85, -8.76 ] + }, + { + "time": 2.9333, + "value": -8.67, + "curve": [ 3.036, -8.55, 3.09, -7.09 ] + }, + { "time": 3.1667, "value": -6.75 } + ], + "scale": [ + { + "time": 1.3333, + "curve": [ 1.392, 1, 1.526, 1, 1.392, 1, 1.508, 1.04 ] + }, + { + "time": 1.5667, + "x": 0.992, + "y": 1.043, + "curve": [ 1.598, 0.99, 1.676, 0.95, 1.584, 1.04, 1.672, 1.04 ] + }, + { + "time": 1.7333, + "x": 0.954, + "y": 1.029, + "curve": [ 1.843, 0.95, 1.933, 1, 1.825, 1.01, 1.933, 1 ] + }, + { "time": 2 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "time": 0.9, + "value": 39.24, + "curve": [ 0.968, 39.93, 1.267, 85.31 ] + }, + { + "time": 1.4667, + "value": 112.27, + "curve": [ 1.555, 124.24, 1.576, 126.44 ] + }, + { + "time": 1.6333, + "value": 126.44, + "curve": [ 1.782, 126.44, 1.992, 94.55 ] + }, + { + "time": 2.1, + "value": 79.96, + "curve": [ 2.216, 64.26, 2.407, 34.36 ] + }, + { + "time": 2.5667, + "value": 33.38, + "curve": [ 2.815, 31.87, 3.1, 39.2 ] + }, + { "time": 3.1667, "value": 39.2 } + ] + }, + "back-foot-tip": { + "rotate": [ + { + "time": 1.0667, + "value": 56.07, + "curve": [ 1.138, 59.21, 1.192, 59.65 ] + }, + { + "time": 1.2333, + "value": 59.46, + "curve": [ 1.295, 59.17, 1.45, 22.54 ] + }, + { "time": 1.4667, "value": -0.84 } + ] + }, + "front-upper-arm": { + "rotate": [ + { + "time": 1.0667, + "value": 118.03, + "curve": [ 1.075, 93.64, 1.358, -34.03 ] + }, + { + "time": 1.6667, + "value": -33.94, + "curve": [ 1.808, -33.89, 1.879, -25 ] + }, + { + "time": 1.9667, + "value": -25.19, + "curve": [ 2.09, -25.46, 2.312, -34.58 ] + }, + { + "time": 2.3667, + "value": -38.36, + "curve": [ 2.465, -45.18, 2.557, -60.1 ] + }, + { + "time": 2.8333, + "value": -61.1, + "curve": [ 2.843, -61.06, 3.16, -60.87 ] + }, + { "time": 3.1667, "value": -60.87 } + ] + }, + "front-bracer": { + "rotate": [ + { + "time": 1.0667, + "value": 0.66, + "curve": [ 1.108, 0.66, 1.221, 44.95 ] + }, + { + "time": 1.2333, + "value": 49.25, + "curve": [ 1.263, 59.42, 1.342, 68.06 ] + }, + { + "time": 1.3667, + "value": 68.34, + "curve": [ 1.409, 68.8, 1.476, 4.9 ] + }, + { + "time": 1.5, + "value": -2.05, + "curve": [ 1.529, -10.3, 1.695, -15.95 ] + }, + { + "time": 1.7333, + "value": -17.38, + "curve": [ 1.807, -20.1, 1.878, -21.19 ] + }, + { + "time": 1.9333, + "value": -21.08, + "curve": [ 2.073, -20.8, 2.146, -7.63 ] + }, + { + "time": 2.1667, + "value": -3.64, + "curve": [ 2.186, 0.12, 2.275, 15.28 ] + }, + { + "time": 2.3333, + "value": 21.78, + "curve": [ 2.392, 28.31, 2.575, 37.66 ] + }, + { + "time": 2.7, + "value": 39.43, + "curve": [ 2.947, 42.93, 3.02, 42.46 ] + }, + { "time": 3.1667, "value": 42.46 } + ] + }, + "front-thigh": { + "translate": [ + { "time": 1.1, "x": -6.41, "y": 18.23, "curve": "stepped" }, + { "time": 1.1333, "x": -6.41, "y": 18.23 }, + { "time": 1.2, "x": 1.61, "y": 3.66 }, + { "time": 1.2333, "x": 4.5, "y": -3.15 }, + { "time": 1.3667, "x": -3.79, "y": 2.94 }, + { "time": 1.4, "x": -8.37, "y": 8.72 }, + { "time": 1.4333, "x": -11.26, "y": 16.99 }, + { "time": 1.4667, "x": -9.89, "y": 24.73, "curve": "stepped" }, + { "time": 1.8667, "x": -9.89, "y": 24.73 }, + { "time": 2.1 } + ] + }, + "front-foot-tip": { + "rotate": [ + { "time": 1.0667, "value": 42.55, "curve": "stepped" }, + { "time": 1.1333, "value": 42.55 }, + { "time": 1.2333, "value": 17.71 }, + { "time": 1.3667, "value": 3.63 }, + { "time": 1.4333 } + ] + }, + "rear-bracer": { + "rotate": [ + { + "time": 1.0667, + "value": 108.71, + "curve": [ 1.082, 108.29, 1.437, 50.73 ] + }, + { + "time": 1.5667, + "value": 24.87, + "curve": [ 1.62, 14.2, 1.66, -11.74 ] + }, + { + "time": 1.7333, + "value": -11.74, + "curve": [ 1.961, -11.73, 2.172, 1.66 ] + }, + { + "time": 2.2667, + "value": 7.88, + "curve": [ 2.331, 12.13, 2.439, 18.65 ] + }, + { + "time": 2.5333, + "value": 18.72, + "curve": [ 2.788, 18.91, 3.145, -0.3 ] + }, + { "time": 3.1667 } + ] + }, + "front-fist": { + "rotate": [ + { + "time": 1.1, + "value": 6.32, + "curve": [ 1.11, 3.31, 1.153, -5.07 ] + }, + { + "time": 1.2333, + "value": -5.13, + "curve": [ 1.311, -5.19, 1.364, 34.65 ] + }, + { + "time": 1.4667, + "value": 34.53, + "curve": [ 1.574, 34.41, 1.547, -55.78 ] + }, + { + "time": 1.8667, + "value": -54.7, + "curve": [ 1.947, -54.7, 2.03, -53.94 ] + }, + { + "time": 2.1333, + "value": -42.44, + "curve": [ 2.215, -33.42, 2.358, -4.43 ] + }, + { + "time": 2.4, + "value": 0.03, + "curve": [ 2.444, 4.66, 2.536, 8.2 ] + }, + { + "time": 2.6333, + "value": 8.2, + "curve": [ 2.733, 8.19, 2.804, -0.67 ] + }, + { + "time": 2.9, + "value": -0.82, + "curve": [ 3.127, -1.16, 3.093, 0 ] + }, + { "time": 3.1667 } + ] + }, + "gun": { + "rotate": [ + { + "time": 1.2667, + "curve": [ 1.35, 0, 1.549, 7.49 ] + }, + { + "time": 1.6, + "value": 9.5, + "curve": [ 1.663, 12.02, 1.846, 19.58 ] + }, + { + "time": 1.9333, + "value": 19.43, + "curve": [ 1.985, 19.4, 2.057, 2.98 ] + }, + { + "time": 2.2, + "value": 2.95, + "curve": [ 2.304, 3.55, 2.458, 10.8 ] + }, + { + "time": 2.5, + "value": 10.8, + "curve": [ 2.642, 10.8, 2.873, -2.54 ] + }, + { + "time": 2.9333, + "value": -2.55, + "curve": [ 3.09, -2.57, 3.08, 0 ] + }, + { "time": 3.1667 } + ] + }, + "hair2": { + "rotate": [ + { + "time": 1.0667, + "value": 26.19, + "curve": [ 1.158, 26.19, 1.368, 26 ] + }, + { + "time": 1.4333, + "value": 24.43, + "curve": [ 1.534, 22.03, 2, -29.14 ] + }, + { + "time": 2.2, + "value": -29.14, + "curve": [ 2.292, -29.14, 2.475, 6.71 ] + }, + { + "time": 2.5667, + "value": 6.71, + "curve": [ 2.675, 6.71, 2.814, -5.06 ] + }, + { + "time": 2.9, + "value": -5.06, + "curve": [ 2.973, -5.06, 3.123, 0 ] + }, + { "time": 3.1667 } + ] + }, + "hair4": { + "rotate": [ + { + "time": 1.0667, + "value": 5.21, + "curve": [ 1.108, 5.21, 1.192, 26.19 ] + }, + { + "time": 1.2333, + "value": 26.19, + "curve": [ 1.317, 26.19, 1.483, 10.63 ] + }, + { + "time": 1.5667, + "value": 10.63, + "curve": [ 1.627, 10.63, 1.642, 17.91 ] + }, + { + "time": 1.7, + "value": 17.94, + "curve": [ 1.761, 17.97, 1.774, 8.22 ] + }, + { + "time": 1.8, + "value": 3.33, + "curve": [ 1.839, -4.21, 1.95, -22.67 ] + }, + { + "time": 2, + "value": -22.67, + "curve": [ 2.025, -22.67, 2.123, -21.86 ] + }, + { + "time": 2.1667, + "value": -18.71, + "curve": [ 2.228, -14.31, 2.294, -0.3 ] + }, + { + "time": 2.3667, + "value": 6.36, + "curve": [ 2.433, 12.45, 2.494, 19.21 ] + }, + { + "time": 2.6, + "value": 19.21, + "curve": [ 2.729, 19.21, 2.854, 6.75 ] + }, + { + "time": 2.9333, + "value": 4.62, + "curve": [ 3.09, 0.45, 3.062, 0 ] + }, + { "time": 3.1667 } + ] + }, + "hair3": { + "rotate": [ + { + "time": 1.4333, + "curve": [ 1.45, 0, 1.452, 11.29 ] + }, + { + "time": 1.5, + "value": 11.21, + "curve": [ 1.596, 11.06, 1.573, -14.17 ] + }, + { + "time": 1.7333, + "value": -20.4, + "curve": [ 1.851, -24.98, 1.943, -28.45 ] + }, + { + "time": 2.2, + "value": -28.75, + "curve": [ 2.317, -28.75, 2.55, 7.04 ] + }, + { + "time": 2.6667, + "value": 7.04, + "curve": [ 2.792, 7.04, 2.885, -5.19 ] + }, + { + "time": 2.9667, + "value": -5.19, + "curve": [ 3.037, -5.19, 3.096, 0 ] + }, + { "time": 3.1667 } + ] + }, + "hair1": { + "rotate": [ + { + "time": 1.2333, + "curve": [ 1.283, 0, 1.349, 3.99 ] + }, + { + "time": 1.4333, + "value": 6.58, + "curve": [ 1.497, 8.54, 1.683, 9.35 ] + }, + { + "time": 1.7667, + "value": 9.35, + "curve": [ 1.825, 9.35, 1.945, -8.71 ] + }, + { + "time": 2, + "value": -11.15, + "curve": [ 2.058, -13.71, 2.2, -14.97 ] + }, + { + "time": 2.2667, + "value": -14.97, + "curve": [ 2.367, -14.97, 2.567, 18.77 ] + }, + { + "time": 2.6667, + "value": 18.77, + "curve": [ 2.733, 18.77, 2.817, 8.29 ] + }, + { + "time": 2.8667, + "value": 6.51, + "curve": [ 2.988, 2.17, 3.058, 0 ] + }, + { "time": 3.1667 } + ] + }, + "flare1": { + "rotate": [ + { "time": 1.1, "value": 8.2 } + ], + "translate": [ + { "time": 1.1, "x": -19.97, "y": 149.68 }, + { "time": 1.2, "x": 3.85, "y": 152.43 }, + { "time": 1.2333, "x": -15.42, "y": 152.29 } + ], + "scale": [ + { + "time": 1.1, + "x": 0.805, + "y": 0.805, + "curve": [ 1.119, 0.76, 1.16, 1.16, 1.117, 0.81, 1.15, 0.61 ] + }, + { + "time": 1.1667, + "x": 1.279, + "y": 0.605, + "curve": [ 1.177, 1.47, 1.192, 2.15, 1.175, 0.61, 1.192, 0.91 ] + }, + { + "time": 1.2, + "x": 2.151, + "y": 0.911, + "curve": [ 1.208, 2.15, 1.231, 1.67, 1.208, 0.91, 1.227, 0.84 ] + }, + { + "time": 1.2333, + "x": 1.608, + "y": 0.805, + "curve": [ 1.249, 1.2, 1.283, 0.55, 1.254, 0.69, 1.283, 0.42 ] + }, + { "time": 1.3, "x": 0.547, "y": 0.416 } + ], + "shear": [ + { "time": 1.1, "y": 4.63 }, + { "time": 1.2333, "x": -5.74, "y": 4.63 } + ] + }, + "flare2": { + "rotate": [ + { "time": 1.1, "value": 12.29 } + ], + "translate": [ + { "time": 1.1, "x": -8.63, "y": 132.96 }, + { "time": 1.2, "x": 4.35, "y": 132.93 } + ], + "scale": [ + { "time": 1.1, "x": 0.864, "y": 0.864 }, + { "time": 1.1667, "x": 0.945, "y": 0.945 }, + { "time": 1.2, "x": 1.511, "y": 1.081 } + ], + "shear": [ + { "time": 1.1, "y": 24.03 } + ] + }, + "flare3": { + "rotate": [ + { "time": 1.1667, "value": 2.88 } + ], + "translate": [ + { "time": 1.1667, "x": 3.24, "y": 114.81 } + ], + "scale": [ + { "time": 1.1667, "x": 0.668, "y": 0.668 } + ], + "shear": [ + { "time": 1.1667, "y": 38.59 } + ] + }, + "flare4": { + "rotate": [ + { "time": 1.1667, "value": -8.64 } + ], + "translate": [ + { "time": 1.1667, "x": -3.82, "y": 194.06 }, + { "time": 1.2667, "x": -1.82, "y": 198.47, "curve": "stepped" }, + { "time": 1.3, "x": -1.94, "y": 187.81 } + ], + "scale": [ + { "time": 1.1667, "x": 0.545, "y": 0.545 }, + { "time": 1.2667, "x": 0.757, "y": 0.757 } + ], + "shear": [ + { "time": 1.1667, "x": 7.42, "y": -22.04 } + ] + }, + "flare5": { + "translate": [ + { "time": 1.2, "x": -11.17, "y": 176.42 }, + { "time": 1.2333, "x": -8.56, "y": 179.04, "curve": "stepped" }, + { "time": 1.3, "x": -14.57, "y": 168.69 } + ], + "scale": [ + { "time": 1.2333, "x": 1.146 }, + { "time": 1.3, "x": 0.703, "y": 0.61 } + ], + "shear": [ + { "time": 1.2, "x": 6.9 } + ] + }, + "flare6": { + "rotate": [ + { "time": 1.2333, "value": -5.36 }, + { "time": 1.2667, "value": -0.54 } + ], + "translate": [ + { "time": 1.2333, "x": 14.52, "y": 204.67 }, + { "time": 1.2667, "x": 19.16, "y": 212.9, "curve": "stepped" }, + { "time": 1.3, "x": 9.23, "y": 202.85 } + ], + "scale": [ + { "time": 1.2333, "x": 0.777, "y": 0.49 }, + { "time": 1.2667, "x": 0.777, "y": 0.657 }, + { "time": 1.3, "x": 0.475, "y": 0.401 } + ] + }, + "flare7": { + "rotate": [ + { "time": 1.1, "value": 5.98 }, + { "time": 1.1333, "value": 32.82 } + ], + "translate": [ + { "time": 1.1, "x": -6.34, "y": 112.98 }, + { "time": 1.1333, "x": 2.66, "y": 111.6 } + ], + "scale": [ + { "time": 1.1, "x": 0.588, "y": 0.588 } + ], + "shear": [ + { "time": 1.1333, "x": -19.93 } + ] + }, + "flare8": { + "rotate": [ + { "time": 1.2333, "value": -6.85 } + ], + "translate": [ + { "time": 1.1667, "x": 66.67, "y": 125.52, "curve": "stepped" }, + { "time": 1.2, "x": 58.24, "y": 113.53, "curve": "stepped" }, + { "time": 1.2333, "x": 40.15, "y": 114.69 } + ], + "scale": [ + { "time": 1.1667, "x": 1.313, "y": 1.203 }, + { "time": 1.2333, "x": 1.038, "y": 0.95 } + ], + "shear": [ + { "time": 1.2, "y": -13.01 } + ] + }, + "flare9": { + "rotate": [ + { "time": 1.1667, "value": 2.9 } + ], + "translate": [ + { "time": 1.1667, "x": 28.45, "y": 151.35, "curve": "stepped" }, + { "time": 1.2, "x": 48.8, "y": 191.09, "curve": "stepped" }, + { "time": 1.2333, "x": 52, "y": 182.52, "curve": "stepped" }, + { "time": 1.2667, "x": 77.01, "y": 195.96 } + ], + "scale": [ + { "time": 1.1667, "x": 0.871, "y": 1.073 }, + { "time": 1.2, "x": 0.927, "y": 0.944 }, + { "time": 1.2333, "x": 1.165, "y": 1.336 } + ], + "shear": [ + { "time": 1.1667, "x": 7.95, "y": 25.48 } + ] + }, + "flare10": { + "rotate": [ + { "time": 1.1667, "value": 2.18 } + ], + "translate": [ + { "time": 1.1667, "x": 55.64, "y": 137.64, "curve": "stepped" }, + { "time": 1.2, "x": 90.49, "y": 151.07, "curve": "stepped" }, + { "time": 1.2333, "x": 114.06, "y": 153.05, "curve": "stepped" }, + { "time": 1.2667, "x": 90.44, "y": 164.61 } + ], + "scale": [ + { "time": 1.1667, "x": 2.657, "y": 0.891 }, + { "time": 1.2, "x": 3.314, "y": 1.425 }, + { "time": 1.2333, "x": 2.871, "y": 0.924 }, + { "time": 1.2667, "x": 2.317, "y": 0.775 } + ], + "shear": [ + { "time": 1.1667, "x": -1.35 } + ] + }, + "torso2": { + "rotate": [ + { + "time": 1, + "curve": [ 1.117, 0, 1.255, 24.94 ] + }, + { + "time": 1.4, + "value": 24.94, + "curve": [ 1.477, 24.94, 1.59, -17.62 ] + }, + { + "time": 1.6333, + "value": -19.48, + "curve": [ 1.717, -23.1, 1.784, -26.12 ] + }, + { + "time": 1.9333, + "value": -26.14, + "curve": [ 2.067, -26.15, 2.158, 4.3 ] + }, + { + "time": 2.3, + "value": 4.22, + "curve": [ 2.45, 4.13, 2.579, -1.76 ] + }, + { + "time": 2.7333, + "value": -1.8, + "curve": [ 2.816, -1.82, 2.857, -2.94 ] + }, + { + "time": 2.9333, + "value": -2.99, + "curve": [ 3.056, -3.08, 3.09, 0 ] + }, + { "time": 3.1667 } + ] + }, + "torso3": { + "rotate": [ + { + "time": 1.3, + "curve": [ 1.352, 0, 1.408, 6.47 ] + }, + { + "time": 1.4667, + "value": 6.43, + "curve": [ 1.55, 6.39, 1.723, -5.05 ] + }, + { + "time": 1.7333, + "value": -5.53, + "curve": [ 1.782, -7.72, 1.843, -16.94 ] + }, + { + "time": 1.9667, + "value": -16.86, + "curve": [ 2.111, -16.78, 2.259, -3.97 ] + }, + { + "time": 2.4, + "value": -2.43, + "curve": [ 2.525, -1.12, 2.639, -0.5 ] + }, + { + "time": 2.7333, + "value": -0.49, + "curve": [ 2.931, -0.47, 2.999, -2.15 ] + }, + { "time": 3.1667, "value": -2.15 } + ] + }, + "head-control": { + "translate": [ + { + "time": 1.2333, + "curve": [ 1.25, 0, 1.474, 6.89, 1.25, 0, 1.496, 0.98 ] + }, + { + "time": 1.6667, + "x": 11.99, + "y": -6.42, + "curve": [ 1.743, 14.01, 1.86, 14.33, 1.785, -11.55, 1.86, -27.1 ] + }, + { + "time": 1.9667, + "x": 13.91, + "y": -26.88, + "curve": [ 2.074, 13.49, 2.244, 8.13, 2.074, -26.65, 2.215, -21.78 ] + }, + { + "time": 2.3, + "x": 6.07, + "y": -16.64, + "curve": [ 2.416, 1.84, 2.497, -1.41, 2.417, -9.57, 2.526, -1.72 ] + }, + { + "time": 2.5667, + "x": -3.78, + "y": -1.71, + "curve": [ 2.661, -6.98, 2.76, -8.76, 2.692, -1.68, 2.821, -15.75 ] + }, + { + "time": 2.9, + "x": -8.32, + "y": -16.7, + "curve": [ 2.962, -8.12, 3.082, -0.04, 2.958, -17.39, 3.089, 0 ] + }, + { "time": 3.1667 } + ] + }, + "front-shoulder": { + "translate": [ + { + "time": 1.3333, + "curve": [ 1.488, 0, 1.717, 0.21, 1.488, 0, 1.688, -30.29 ] + }, + { + "time": 1.9, + "x": 0.83, + "y": -30.29, + "curve": [ 2.078, 1.43, 2.274, 2.88, 2.071, -30.29, 2.289, 4.48 ] + }, + { + "time": 2.4333, + "x": 2.89, + "y": 4.59, + "curve": [ 2.604, 2.89, 2.677, -0.68, 2.57, 4.7, 2.694, -2.43 ] + }, + { + "time": 2.7667, + "x": -0.67, + "y": -2.47, + "curve": [ 2.866, -0.67, 2.986, -0.07, 2.882, -2.47, 3.036, -0.06 ] + }, + { "time": 3.1667 } + ] + } + }, + "ik": { + "rear-leg-ik": [ + { "time": 3.1667, "softness": 10, "bendPositive": false } + ] + } + }, + "run": { + "slots": { + "mouth": { + "attachment": [ + { "name": "mouth-grind" } + ] + } + }, + "bones": { + "front-thigh": { + "translate": [ + { + "x": -5.14, + "y": 11.13, + "curve": [ 0.033, -7.77, 0.112, -9.03, 0.034, 11.13, 0.108, 9.74 ] + }, + { + "time": 0.1667, + "x": -9.03, + "y": 7.99, + "curve": [ 0.23, -9.05, 0.314, -1.34, 0.236, 5.93, 0.28, 3.22 ] + }, + { + "time": 0.3333, + "x": 0.41, + "y": 3.19, + "curve": [ 0.352, 2.09, 0.449, 11.16, 0.384, 3.16, 0.449, 4.98 ] + }, + { + "time": 0.5, + "x": 11.17, + "y": 6.76, + "curve": [ 0.571, 10.79, 0.621, -1.83, 0.542, 8.21, 0.625, 11.13 ] + }, + { "time": 0.6667, "x": -5.14, "y": 11.13 } + ] + }, + "torso": { + "rotate": [ + { + "value": -37.66, + "curve": [ 0.034, -37.14, 0.107, -36.21 ] + }, + { + "time": 0.1333, + "value": -36.21, + "curve": [ 0.158, -36.21, 0.209, -38.8 ] + }, + { + "time": 0.2333, + "value": -38.79, + "curve": [ 0.259, -38.78, 0.313, -38.03 ] + }, + { + "time": 0.3333, + "value": -37.66, + "curve": [ 0.357, -37.21, 0.4, -36.21 ] + }, + { + "time": 0.4333, + "value": -36.21, + "curve": [ 0.458, -36.21, 0.539, -38.8 ] + }, + { + "time": 0.5667, + "value": -38.8, + "curve": [ 0.592, -38.8, 0.645, -38 ] + }, + { "time": 0.6667, "value": -37.66 } + ] + }, + "rear-thigh": { + "translate": [ + { + "x": -16.41, + "y": 1.55, + "curve": [ 0.013, -15.67, 0.183, -8.55, 0.03, 2.39, 0.183, 6.17 ] + }, + { + "time": 0.2333, + "x": -8.55, + "y": 6.17, + "curve": [ 0.308, -8.55, 0.492, -19.75, 0.308, 6.17, 0.492, 0.61 ] + }, + { + "time": 0.5667, + "x": -19.75, + "y": 0.61, + "curve": [ 0.592, -19.75, 0.641, -18.06, 0.592, 0.61, 0.632, 0.78 ] + }, + { "time": 0.6667, "x": -16.41, "y": 1.55 } + ] + }, + "front-upper-arm": { + "rotate": [ + { + "value": -39.03, + "curve": [ 0.051, -0.1, 0.145, 88.36 ] + }, + { + "time": 0.2333, + "value": 88.36, + "curve": [ 0.28, 88.76, 0.324, 59.52 ] + }, + { + "time": 0.3333, + "value": 51.13, + "curve": [ 0.358, 30.2, 0.445, -74.91 ] + }, + { + "time": 0.5667, + "value": -75.82, + "curve": [ 0.599, -76.06, 0.642, -55.72 ] + }, + { "time": 0.6667, "value": -39.03 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": 20.54, + "curve": [ 0.052, 11.42, 0.089, 0.13 ] + }, + { + "time": 0.1333, + "value": 0.15, + "curve": [ 0.186, 0.17, 0.221, 26.29 ] + }, + { + "time": 0.2333, + "value": 32.37, + "curve": [ 0.247, 39.19, 0.286, 61.45 ] + }, + { + "time": 0.3333, + "value": 61.58, + "curve": [ 0.371, 61.69, 0.42, 55.79 ] + }, + { "time": 0.4667, "value": 49.68 }, + { "time": 0.6667, "value": 20.54 } + ] + }, + "front-fist": { + "rotate": [ + { + "value": -36.16, + "curve": [ 0.014, -38.8, 0.036, -43.27 ] + }, + { + "time": 0.0667, + "value": -43.37, + "curve": [ 0.102, -43.49, 0.182, -28.46 ] + }, + { + "time": 0.2, + "value": -23.04, + "curve": [ 0.23, -13.87, 0.264, 3.86 ] + }, + { + "time": 0.3333, + "value": 3.7, + "curve": [ 0.38, 3.64, 0.535, -16.22 ] + }, + { "time": 0.5667, "value": -21.29 }, + { "time": 0.6667, "value": -36.16 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "value": 40.5, + "curve": [ 0.028, 23.74, 0.128, -79.86 ] + }, + { + "time": 0.2333, + "value": -79.87, + "curve": [ 0.38, -79.88, 0.403, 63.25 ] + }, + { + "time": 0.5667, + "value": 64.13, + "curve": [ 0.607, 64.35, 0.644, 53.1 ] + }, + { "time": 0.6667, "value": 40.5 } + ], + "translate": [ + { + "x": -3.79, + "y": -0.77, + "curve": [ 0.044, -4.58, 0.169, -5.48, 0.044, 0.93, 0.169, 2.85 ] + }, + { + "time": 0.2333, + "x": -5.48, + "y": 2.85, + "curve": [ 0.346, -5.48, 0.475, -2.68, 0.346, 2.85, 0.475, -3.13 ] + }, + { + "time": 0.5667, + "x": -2.68, + "y": -3.13, + "curve": [ 0.611, -2.68, 0.642, -3.34, 0.611, -3.13, 0.642, -1.73 ] + }, + { "time": 0.6667, "x": -3.79, "y": -0.77 } + ] + }, + "rear-bracer": { + "rotate": [ + { "value": 28.28 }, + { + "time": 0.2333, + "value": -11.12, + "curve": [ 0.252, -14.12, 0.297, -19.37 ] + }, + { + "time": 0.3333, + "value": -19.38, + "curve": [ 0.435, -19.41, 0.522, 38.96 ] + }, + { + "time": 0.5667, + "value": 38.87, + "curve": [ 0.619, 38.76, 0.644, 32.01 ] + }, + { "time": 0.6667, "value": 28.28 } + ] + }, + "neck": { + "rotate": [ + { + "value": 11.88, + "curve": [ 0.024, 11.4, 0.075, 9.74 ] + }, + { + "time": 0.1, + "value": 9.74, + "curve": [ 0.125, 9.74, 0.208, 13.36 ] + }, + { + "time": 0.2333, + "value": 13.36, + "curve": [ 0.258, 13.36, 0.321, 12.2 ] + }, + { + "time": 0.3333, + "value": 11.88, + "curve": [ 0.365, 11.06, 0.408, 9.72 ] + }, + { + "time": 0.4333, + "value": 9.72, + "curve": [ 0.458, 9.72, 0.542, 13.36 ] + }, + { + "time": 0.5667, + "value": 13.36, + "curve": [ 0.592, 13.36, 0.636, 12.48 ] + }, + { "time": 0.6667, "value": 11.88 } + ] + }, + "head": { + "rotate": [ + { + "value": 13.14, + "curve": [ 0.02, 11.99, 0.039, 8.94 ] + }, + { + "time": 0.0667, + "value": 8.93, + "curve": [ 0.122, 8.9, 0.232, 15.8 ] + }, + { + "time": 0.2667, + "value": 15.81, + "curve": [ 0.325, 15.82, 0.357, 8.95 ] + }, + { + "time": 0.4, + "value": 8.93, + "curve": [ 0.444, 8.91, 0.568, 15.8 ] + }, + { + "time": 0.6, + "value": 15.77, + "curve": [ 0.632, 15.74, 0.649, 14.05 ] + }, + { "time": 0.6667, "value": 13.14 } + ], + "scale": [ + { + "curve": [ 0.014, 1, 0.068, 0.99, 0.027, 1.01, 0.083, 1.01 ] + }, + { + "time": 0.1, + "x": 0.991, + "y": 1.012, + "curve": [ 0.128, 0.99, 0.205, 1.02, 0.128, 1.01, 0.197, 0.99 ] + }, + { + "time": 0.2333, + "x": 1.018, + "y": 0.988, + "curve": [ 0.272, 1.02, 0.305, 1.01, 0.262, 0.99, 0.311, 0.99 ] + }, + { + "time": 0.3333, + "curve": [ 0.351, 1, 0.417, 0.99, 0.359, 1.01, 0.417, 1.01 ] + }, + { + "time": 0.4333, + "x": 0.987, + "y": 1.013, + "curve": [ 0.467, 0.99, 0.533, 1.02, 0.467, 1.01, 0.533, 0.99 ] + }, + { + "time": 0.5667, + "x": 1.02, + "y": 0.989, + "curve": [ 0.592, 1.02, 0.652, 1, 0.592, 0.99, 0.644, 1 ] + }, + { "time": 0.6667 } + ] + }, + "gun": { + "rotate": [ + { + "value": 12.36, + "curve": [ 0.022, 16.28, 0.087, 20.25 ] + }, + { + "time": 0.1333, + "value": 20.19, + "curve": [ 0.168, 20.32, 0.254, -8.82 ] + }, + { + "time": 0.2667, + "value": -11.88, + "curve": [ 0.291, -17.91, 0.344, -24.11 ] + }, + { + "time": 0.4, + "value": -23.88, + "curve": [ 0.448, -23.69, 0.533, -15.47 ] + }, + { "time": 0.5667, "value": -8.69 }, + { "time": 0.6667, "value": 12.36 } + ] + }, + "hip": { + "rotate": [ + { "value": -8.24 } + ], + "translate": [ + { + "x": -3.6, + "y": -34.1, + "curve": [ 0.042, -3.84, 0.118, 7.62, 0.042, -33.74, 0.112, 20.55 ] + }, + { + "time": 0.1667, + "x": 7.61, + "y": 20.36, + "curve": [ 0.194, 7.6, 0.21, 5.06, 0.204, 20.65, 0.217, -8.69 ] + }, + { + "time": 0.2333, + "x": 1.68, + "y": -18.48, + "curve": [ 0.279, -4.99, 0.297, -5.64, 0.254, -31.08, 0.292, -34.55 ] + }, + { + "time": 0.3333, + "x": -5.76, + "y": -35, + "curve": [ 0.379, -5.9, 0.451, 6.8, 0.384, -35.56, 0.428, 17.6 ] + }, + { + "time": 0.5, + "x": 6.61, + "y": 17.01, + "curve": [ 0.536, 6.47, 0.545, 3.56, 0.533, 16.75, 0.548, -8.71 ] + }, + { + "time": 0.5667, + "x": 0.35, + "y": -18.81, + "curve": [ 0.597, -4.07, 0.642, -3.45, 0.584, -28.58, 0.642, -34.32 ] + }, + { "time": 0.6667, "x": -3.6, "y": -34.1 } + ] + }, + "front-foot-target": { + "rotate": [ + { + "value": -62.54, + "curve": [ 0.015, -74.19, 0.056, -103.19 ] + }, + { + "time": 0.0667, + "value": -111.08, + "curve": [ 0.092, -129.44, 0.189, -146.55 ] + }, + { + "time": 0.2333, + "value": -146.32, + "curve": [ 0.285, -146.06, 0.32, -125.1 ] + }, + { "time": 0.3333, "value": -117.24 }, + { + "time": 0.5, + "value": -35.07, + "curve": [ 0.522, -28.64, 0.546, -24.84 ] + }, + { + "time": 0.5667, + "value": -24.9, + "curve": [ 0.595, -25, 0.623, -40.82 ] + }, + { "time": 0.6667, "value": -62.54 } + ], + "translate": [ + { "x": 16.34, "y": 0.18 }, + { + "time": 0.0667, + "x": -101.43, + "y": 8.04, + "curve": [ 0.085, -131.35, 0.129, -207.69, 0.08, 14.9, 0.124, 113.28 ] + }, + { + "time": 0.1667, + "x": -207.92, + "y": 145.81, + "curve": [ 0.196, -208.13, 0.21, -202.91, 0.186, 160.26, 0.206, 163.48 ] + }, + { + "time": 0.2333, + "x": -189.94, + "y": 163.85, + "curve": [ 0.27, -169.94, 0.31, -126.19, 0.269, 164.35, 0.316, 85.97 ] + }, + { + "time": 0.3333, + "x": -90.56, + "y": 78.57, + "curve": [ 0.355, -57.99, 0.376, -29.14, 0.35, 71.55, 0.376, 66.4 ] + }, + { + "time": 0.4, + "x": 2.87, + "y": 66.38, + "curve": [ 0.412, 19.24, 0.469, 90.73, 0.429, 66.37, 0.469, 70.66 ] + }, + { + "time": 0.5, + "x": 117.18, + "y": 70.46, + "curve": [ 0.522, 136.24, 0.542, 151.33, 0.539, 70.2, 0.555, 38.25 ] + }, + { + "time": 0.5667, + "x": 151.49, + "y": 25.29, + "curve": [ 0.578, 146.76, 0.586, 133.13, 0.572, 19.7, 0.582, 12.23 ] + }, + { "time": 0.6, "x": 115.02, "y": 0.1 }, + { "time": 0.6667, "x": 16.34, "y": 0.18 } + ] + }, + "front-leg-target": { + "translate": [ + { "x": -13.95, "y": -30.34 } + ] + }, + "rear-foot-target": { + "rotate": [ + { "value": 18.55 }, + { + "time": 0.2333, + "value": 167.84, + "curve": [ 0.246, 153.66, 0.256, 129.74 ] + }, + { + "time": 0.2667, + "value": 124.32, + "curve": [ 0.296, 124.43, 0.313, 129.93 ] + }, + { + "time": 0.3667, + "value": 129.87, + "curve": [ 0.421, 128.32, 0.519, 0.98 ] + }, + { + "time": 0.5667, + "curve": [ 0.6, 0.27, 0.642, 4.73 ] + }, + { "time": 0.6667, "value": 18.55 } + ], + "translate": [ + { + "x": -176.39, + "y": 134.12, + "curve": [ 0.018, -142.26, 0.054, -94.41, 0.01, 120.96, 0.044, 84.08 ] + }, + { + "time": 0.0667, + "x": -73.56, + "y": 76.68, + "curve": [ 0.086, -42.82, 0.194, 101.2, 0.098, 66.73, 0.198, 60.88 ] + }, + { "time": 0.2333, "x": 98.32, "y": 32.17 }, + { "time": 0.2667, "x": 49.13, "y": -0.63 }, + { + "time": 0.4, + "x": -147.9, + "y": 0.32, + "curve": [ 0.414, -168.78, 0.478, -284.76, 0.43, 30.09, 0.478, 129.14 ] + }, + { + "time": 0.5, + "x": -283.37, + "y": 167.12, + "curve": [ 0.526, -285.66, 0.548, -280.54, 0.516, 194.84, 0.55, 216.53 ] + }, + { + "time": 0.5667, + "x": -266.98, + "y": 216.12, + "curve": [ 0.581, -256.27, 0.643, -206.54, 0.61, 214.82, 0.65, 145.33 ] + }, + { "time": 0.6667, "x": -176.39, "y": 134.12 } + ] + }, + "rear-leg-target": { + "translate": [ + { "x": 85, "y": -33.59 } + ] + }, + "back-foot-tip": { + "rotate": [ + { + "value": -147.04, + "curve": [ 0.033, -113.4, 0.161, 44.34 ] + }, + { + "time": 0.2333, + "value": 43.48, + "curve": [ 0.24, 43.41, 0.282, 35.72 ] + }, + { + "time": 0.3, + "value": 0.29, + "curve": [ 0.347, 0.28, 0.396, 4.27 ] + }, + { + "time": 0.4, + "curve": [ 0.424, -23.8, 0.525, -181.39 ] + }, + { + "time": 0.5667, + "value": -181.39, + "curve": [ 0.592, -181.39, 0.642, -169.09 ] + }, + { "time": 0.6667, "value": -147.04 } + ] + }, + "front-foot-tip": { + "rotate": [ + { + "value": -0.25, + "curve": [ 0.008, -0.25, 0.056, 1.73 ] + }, + { + "time": 0.0667, + "value": -7.68, + "curve": [ 0.075, -43.13, 0.15, -130.44 ] + }, + { + "time": 0.2, + "value": -130.08, + "curve": [ 0.239, -129.79, 0.272, -126.8 ] + }, + { + "time": 0.3, + "value": -116.24, + "curve": [ 0.333, -103.91, 0.348, -86.1 ] + }, + { + "time": 0.3667, + "value": -71.08, + "curve": [ 0.386, -55.25, 0.415, -32.44 ] + }, + { + "time": 0.4333, + "value": -21.63, + "curve": [ 0.47, -0.01, 0.542, 33.42 ] + }, + { + "time": 0.5667, + "value": 33.2, + "curve": [ 0.622, 32.7, 0.569, 0.64 ] + }, + { "time": 0.6667, "value": -0.25 } + ] + }, + "hair1": { + "rotate": [ + { + "value": -6.81, + "curve": [ 0.087, -6.81, 0.143, -5.75 ] + }, + { + "time": 0.1667, + "value": -4.3, + "curve": [ 0.183, -3.28, 0.209, 2.79 ] + }, + { + "time": 0.2333, + "value": 2.78, + "curve": [ 0.262, 2.77, 0.305, -6.63 ] + }, + { + "time": 0.3333, + "value": -6.64, + "curve": [ 0.419, -6.68, 0.49, -4.84 ] + }, + { + "time": 0.5, + "value": -4.38, + "curve": [ 0.518, -3.56, 0.574, 2.32 ] + }, + { + "time": 0.6, + "value": 2.33, + "curve": [ 0.643, 2.35, 0.633, -6.81 ] + }, + { "time": 0.6667, "value": -6.81 } + ] + }, + "hair2": { + "rotate": [ + { + "value": -6.81, + "curve": [ 0.014, -3.17, 0.109, 43.93 ] + }, + { + "time": 0.1333, + "value": 43.95, + "curve": [ 0.177, 43.97, 0.192, -13.76 ] + }, + { + "time": 0.2667, + "value": -13.83, + "curve": [ 0.302, -13.72, 0.322, -8.86 ] + }, + { + "time": 0.3333, + "value": -6.6, + "curve": [ 0.349, -3.5, 0.436, 41.1 ] + }, + { + "time": 0.4667, + "value": 41.05, + "curve": [ 0.51, 40.99, 0.549, -14.06 ] + }, + { + "time": 0.6, + "value": -14.18, + "curve": [ 0.63, -14.26, 0.656, -9.04 ] + }, + { "time": 0.6667, "value": -6.81 } + ] + }, + "hair3": { + "rotate": [ + { + "value": -6.81, + "curve": [ 0.079, -6.83, 0.108, 0.3 ] + }, + { + "time": 0.1333, + "value": 1.96, + "curve": [ 0.177, 4.89, 0.208, 6.28 ] + }, + { + "time": 0.2333, + "value": 6.29, + "curve": [ 0.313, 6.31, 0.383, 3.49 ] + }, + { + "time": 0.4, + "value": 2.58, + "curve": [ 0.442, 0.28, 0.523, -6.81 ] + }, + { "time": 0.6, "value": -6.81 } + ] + }, + "hair4": { + "rotate": [ + { + "value": -6.81, + "curve": [ 0.011, -4.06, 0.108, 24.92 ] + }, + { + "time": 0.1333, + "value": 24.92, + "curve": [ 0.158, 24.92, 0.208, -10.62 ] + }, + { + "time": 0.2333, + "value": -10.62, + "curve": [ 0.254, -10.62, 0.312, -9.73 ] + }, + { + "time": 0.3333, + "value": -6.4, + "curve": [ 0.356, -2.95, 0.438, 24.93 ] + }, + { + "time": 0.4667, + "value": 24.93, + "curve": [ 0.492, 24.93, 0.575, -9.78 ] + }, + { + "time": 0.6, + "value": -9.78, + "curve": [ 0.617, -9.78, 0.655, -8.63 ] + }, + { "time": 0.6667, "value": -6.81 } + ] + }, + "torso2": { + "rotate": [ + { + "value": 3.5, + "curve": [ 0.07, 3.51, 0.075, 8.69 ] + }, + { + "time": 0.1, + "value": 8.69, + "curve": [ 0.139, 8.69, 0.214, 6.9 ] + }, + { + "time": 0.2333, + "value": 6.33, + "curve": [ 0.266, 5.34, 0.285, 3.48 ] + }, + { + "time": 0.3333, + "value": 3.48, + "curve": [ 0.398, 3.48, 0.408, 8.68 ] + }, + { + "time": 0.4333, + "value": 8.68, + "curve": [ 0.458, 8.68, 0.551, 6.8 ] + }, + { + "time": 0.5667, + "value": 6.26, + "curve": [ 0.598, 5.17, 0.642, 3.49 ] + }, + { "time": 0.6667, "value": 3.5 } + ] + }, + "torso3": { + "rotate": [ + { + "value": 4.52, + "curve": [ 0.067, 4.54, 0.075, -7.27 ] + }, + { + "time": 0.1, + "value": -7.27, + "curve": [ 0.125, -7.27, 0.227, 0.84 ] + }, + { + "time": 0.2333, + "value": 1.24, + "curve": [ 0.254, 2.5, 0.301, 4.51 ] + }, + { + "time": 0.3333, + "value": 4.52, + "curve": [ 0.386, 4.54, 0.408, -7.35 ] + }, + { + "time": 0.4333, + "value": -7.35, + "curve": [ 0.458, -7.35, 0.549, -0.14 ] + }, + { + "time": 0.5667, + "value": 0.95, + "curve": [ 0.586, 2.18, 0.632, 4.54 ] + }, + { "time": 0.6667, "value": 4.52 } + ] + }, + "aim-constraint-target": { + "rotate": [ + { "value": 30.57 } + ] + }, + "rear-foot": { + "rotate": [ + { "value": -6.5 } + ] + }, + "front-foot": { + "rotate": [ + { "value": 4.5 } + ] + }, + "head-control": { + "translate": [ + { + "y": -9.94, + "curve": [ 0.058, 0, 0.175, -15.32, 0.044, -4.19, 0.175, 5 ] + }, + { + "time": 0.2333, + "x": -15.32, + "y": 5, + "curve": [ 0.317, -15.32, 0.429, -9.74, 0.317, 5, 0.382, -31.71 ] + }, + { + "time": 0.4667, + "x": -7.81, + "y": -31.59, + "curve": [ 0.507, -5.76, 0.617, 0, 0.549, -31.47, 0.628, -13.33 ] + }, + { "time": 0.6667, "y": -9.94 } + ] + }, + "front-shoulder": { + "translate": [ + { + "x": -0.74, + "y": 11.22, + "curve": [ 0.061, -0.74, 0.144, 1.17, 0.061, 11.22, 0.143, -17.93 ] + }, + { + "time": 0.2333, + "x": 1.19, + "y": -17.9, + "curve": [ 0.54, 1.25, 0.558, -0.74, 0.545, -17.8, 0.558, 11.22 ] + }, + { "time": 0.6667, "x": -0.74, "y": 11.22 } + ] + }, + "back-shoulder": { + "translate": [ + { + "curve": [ 0.083, 0, 0.25, 0, 0.083, 0, 0.25, 8.93 ] + }, + { + "time": 0.3333, + "y": 8.93, + "curve": [ 0.417, 0, 0.583, 0, 0.417, 8.93, 0.583, 0 ] + }, + { "time": 0.6667 } + ] + } + }, + "ik": { + "front-leg-ik": [ + { "softness": 10, "bendPositive": false }, + { "time": 0.5667, "softness": 14.8, "bendPositive": false }, + { "time": 0.6, "softness": 48.2, "bendPositive": false }, + { "time": 0.6667, "softness": 10, "bendPositive": false } + ], + "rear-leg-ik": [ + { "bendPositive": false }, + { "time": 0.1667, "softness": 22.5, "bendPositive": false }, + { "time": 0.3, "softness": 61.4, "bendPositive": false }, + { "time": 0.6667, "bendPositive": false } + ] + }, + "events": [ + { "time": 0.2333, "name": "footstep" }, + { "time": 0.5667, "name": "footstep" } + ] + }, + "run-to-idle": { + "slots": { + "front-fist": { + "attachment": [ + { "name": "front-fist-open" } + ] + } + }, + "bones": { + "front-foot-target": { + "translate": [ + { + "x": -16.5, + "y": 3.41, + "curve": [ 0.033, -16.5, 0.1, -69.06, 0.033, 3.41, 0.1, 0 ] + }, + { "time": 0.1333, "x": -69.06 } + ] + }, + "hip": { + "translate": [ + { + "x": -28.78, + "y": -72.96, + "curve": [ 0.036, -28.63, 0.2, -10.85, 0.135, -62.35, 0.2, -23.15 ] + }, + { "time": 0.2667, "x": -11.97, "y": -23.15 } + ] + }, + "rear-foot-target": { + "translate": [ + { + "x": 33.15, + "y": 31.61, + "curve": [ 0.017, 33.15, 0.05, 24.41, 0.017, 31.61, 0.041, 20.73 ] + }, + { + "time": 0.0667, + "x": 24.41, + "y": 0.19, + "curve": [ 0.117, 24.41, 0.217, 48.87, 0.117, 0.19, 0.217, 0 ] + }, + { "time": 0.2667, "x": 48.87 } + ] + }, + "front-upper-arm": { + "rotate": [ + { + "value": -80.61, + "curve": [ 0.067, -80.61, 0.2, -60.87 ] + }, + { "time": 0.2667, "value": -60.87 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": 8.79, + "curve": [ 0.041, 8.79, 0.115, 6.3 ] + }, + { + "time": 0.1667, + "value": 6.41, + "curve": [ 0.201, 6.48, 0.241, 42.46 ] + }, + { "time": 0.2667, "value": 42.46 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "value": 55.3, + "curve": [ 0.067, 55.3, 0.2, 39.2 ] + }, + { "time": 0.2667, "value": 39.2 } + ] + }, + "head": { + "rotate": [ + { + "curve": [ 0.05, 0, 0.083, 2.67 ] + }, + { + "time": 0.1333, + "value": 2.67, + "curve": [ 0.15, 2.67, 0.25, -6.75 ] + }, + { "time": 0.2667, "value": -6.75 } + ] + }, + "front-fist": { + "rotate": [ + { + "value": 38.26, + "curve": [ 0.041, 38.26, 0.127, -2.19 ] + }, + { + "time": 0.1667, + "value": -3, + "curve": [ 0.209, -3.84, 0.241, 0 ] + }, + { "time": 0.2667 } + ], + "scale": [ + { + "x": 0.844, + "curve": [ 0.067, 0.84, 0.2, 1, 0.067, 1, 0.2, 1 ] + }, + { "time": 0.2667 } + ] + }, + "rear-bracer": { + "rotate": [ + { + "value": 57.24, + "curve": [ 0.067, 57.24, 0.2, 0 ] + }, + { "time": 0.2667 } + ] + }, + "gun": { + "rotate": [ + { + "value": 2.28, + "curve": [ 0.041, 2.28, 0.105, 15.34 ] + }, + { + "time": 0.1667, + "value": 15.32, + "curve": [ 0.205, 15.31, 0.241, 0 ] + }, + { "time": 0.2667 } + ] + }, + "torso": { + "rotate": [ + { + "value": -12.98, + "curve": [ 0.033, -12.98, 0.103, -14.81 ] + }, + { + "time": 0.1333, + "value": -16.63, + "curve": [ 0.168, -18.69, 0.233, -22.88 ] + }, + { "time": 0.2667, "value": -22.88 } + ], + "scale": [ + { + "x": 0.963, + "y": 1.074, + "curve": [ 0.067, 0.96, 0.132, 1, 0.067, 1.07, 0.132, 1 ] + }, + { "time": 0.2667 } + ] + }, + "neck": { + "rotate": [ + {}, + { "time": 0.2667, "value": 3.78 } + ] + }, + "hair3": { + "rotate": [ + { + "curve": [ 0.033, 0, 0.1, 0.88 ] + }, + { + "time": 0.1333, + "value": 0.88, + "curve": [ 0.167, 0.88, 0.233, 0 ] + }, + { "time": 0.2667 } + ] + }, + "hair4": { + "rotate": [ + { + "curve": [ 0.033, 0, 0.1, 15.97 ] + }, + { + "time": 0.1333, + "value": 15.97, + "curve": [ 0.167, 15.97, 0.233, 0 ] + }, + { "time": 0.2667 } + ] + }, + "hair1": { + "rotate": [ + { + "curve": [ 0.033, 0, 0.1, 10.76 ] + }, + { + "time": 0.1333, + "value": 10.76, + "curve": [ 0.167, 10.76, 0.233, 0 ] + }, + { "time": 0.2667 } + ] + }, + "hair2": { + "rotate": [ + { + "curve": [ 0.014, -2.28, 0.042, -7.84 ] + }, + { + "time": 0.0667, + "value": -7.82, + "curve": [ 0.108, -7.79, 0.166, 6.57 ] + }, + { + "time": 0.2, + "value": 6.67, + "curve": [ 0.222, 6.73, 0.255, 1.98 ] + }, + { "time": 0.2667 } + ] + }, + "torso2": { + "rotate": [ + { + "curve": [ 0.041, 0, 0.107, 3.03 ] + }, + { + "time": 0.1667, + "value": 3.03, + "curve": [ 0.205, 3.03, 0.241, 0 ] + }, + { "time": 0.2667 } + ] + }, + "torso3": { + "rotate": [ + { + "curve": [ 0.049, 0, 0.166, 0.66 ] + }, + { + "time": 0.2, + "value": 0.66, + "curve": [ 0.232, 0.65, 0.249, -2.15 ] + }, + { "time": 0.2667, "value": -2.15 } + ] + }, + "head-control": { + "translate": [ + { "x": -10.12, "y": 8.71 }, + { "time": 0.2667 } + ] + }, + "front-shoulder": { + "translate": [ + { "x": 4.91, "y": 11.54 }, + { "time": 0.2667 } + ] + } + } + }, + "shoot": { + "slots": { + "muzzle": { + "color": [ + { "time": 0.1333, "color": "ffffffff" }, + { "time": 0.2, "color": "ffffff62" } + ], + "attachment": [ + { "time": 0.0333, "name": "muzzle01" }, + { "time": 0.0667, "name": "muzzle02" }, + { "time": 0.1, "name": "muzzle03" }, + { "time": 0.1333, "name": "muzzle04" }, + { "time": 0.1667, "name": "muzzle05" }, + { "time": 0.2, "name": null } + ] + }, + "muzzle-glow": { + "color": [ + { "color": "ff0c0c00" }, + { + "time": 0.0333, + "color": "ffc9adff", + "curve": [ 0.255, 1, 0.273, 1, 0.255, 0.76, 0.273, 0.4, 0.255, 0.65, 0.273, 0.22, 0.255, 1, 0.273, 1 ] + }, + { "time": 0.3, "color": "ff400cff" }, + { "time": 0.6333, "color": "ff0c0c00" } + ], + "attachment": [ + { "name": "muzzle-glow" } + ] + }, + "muzzle-ring": { + "color": [ + { + "time": 0.0333, + "color": "d8baffff", + "curve": [ 0.202, 0.85, 0.214, 0.84, 0.202, 0.73, 0.214, 0.73, 0.202, 1, 0.214, 1, 0.202, 1, 0.214, 0.21 ] + }, + { "time": 0.2333, "color": "d7baff00" } + ], + "attachment": [ + { "time": 0.0333, "name": "muzzle-ring" }, + { "time": 0.2333, "name": null } + ] + }, + "muzzle-ring2": { + "color": [ + { + "time": 0.0333, + "color": "d8baffff", + "curve": [ 0.174, 0.85, 0.184, 0.84, 0.174, 0.73, 0.184, 0.73, 0.174, 1, 0.184, 1, 0.174, 1, 0.184, 0.21 ] + }, + { "time": 0.2, "color": "d7baff00" } + ], + "attachment": [ + { "time": 0.0333, "name": "muzzle-ring" }, + { "time": 0.2, "name": null } + ] + }, + "muzzle-ring3": { + "color": [ + { + "time": 0.0333, + "color": "d8baffff", + "curve": [ 0.174, 0.85, 0.184, 0.84, 0.174, 0.73, 0.184, 0.73, 0.174, 1, 0.184, 1, 0.174, 1, 0.184, 0.21 ] + }, + { "time": 0.2, "color": "d7baff00" } + ], + "attachment": [ + { "time": 0.0333, "name": "muzzle-ring" }, + { "time": 0.2, "name": null } + ] + }, + "muzzle-ring4": { + "color": [ + { + "time": 0.0333, + "color": "d8baffff", + "curve": [ 0.174, 0.85, 0.184, 0.84, 0.174, 0.73, 0.184, 0.73, 0.174, 1, 0.184, 1, 0.174, 1, 0.184, 0.21 ] + }, + { "time": 0.2, "color": "d7baff00" } + ], + "attachment": [ + { "time": 0.0333, "name": "muzzle-ring" }, + { "time": 0.2, "name": null } + ] + } + }, + "bones": { + "gun": { + "rotate": [ + { + "time": 0.0667, + "curve": [ 0.094, 25.89, 0.112, 45.27 ] + }, + { + "time": 0.1333, + "value": 45.35, + "curve": [ 0.192, 45.28, 0.18, -0.09 ] + }, + { "time": 0.6333 } + ] + }, + "muzzle": { + "translate": [ + { "x": -11.02, "y": 25.16 } + ] + }, + "rear-upper-arm": { + "translate": [ + { + "time": 0.0333, + "curve": [ 0.045, 0.91, 0.083, 3.46, 0.044, 0.86, 0.083, 3.32 ] + }, + { + "time": 0.1, + "x": 3.46, + "y": 3.32, + "curve": [ 0.133, 3.46, 0.176, -0.1, 0.133, 3.32, 0.169, 0 ] + }, + { "time": 0.2333 } + ] + }, + "rear-bracer": { + "translate": [ + { + "time": 0.0333, + "curve": [ 0.075, -3.78, 0.083, -4.36, 0.08, -2.7, 0.083, -2.88 ] + }, + { + "time": 0.1, + "x": -4.36, + "y": -2.88, + "curve": [ 0.133, -4.36, 0.168, 0.18, 0.133, -2.88, 0.167, 0 ] + }, + { "time": 0.2333 } + ] + }, + "gun-tip": { + "translate": [ + {}, + { "time": 0.3, "x": 3.15, "y": 0.39 } + ], + "scale": [ + { "x": 0.366, "y": 0.366 }, + { "time": 0.0333, "x": 1.453, "y": 1.453 }, + { "time": 0.3, "x": 0.366, "y": 0.366 } + ] + }, + "muzzle-ring": { + "translate": [ + { "time": 0.0333 }, + { "time": 0.2333, "x": 64.47 } + ], + "scale": [ + { "time": 0.0333 }, + { "time": 0.2333, "x": 5.951, "y": 5.951 } + ] + }, + "muzzle-ring2": { + "translate": [ + { "time": 0.0333 }, + { "time": 0.2, "x": 172.57 } + ], + "scale": [ + { "time": 0.0333 }, + { "time": 0.2, "x": 4, "y": 4 } + ] + }, + "muzzle-ring3": { + "translate": [ + { "time": 0.0333 }, + { "time": 0.2, "x": 277.17 } + ], + "scale": [ + { "time": 0.0333 }, + { "time": 0.2, "x": 2, "y": 2 } + ] + }, + "muzzle-ring4": { + "translate": [ + { "time": 0.0333 }, + { "time": 0.2, "x": 392.06 } + ] + } + } + }, + "walk": { + "bones": { + "rear-foot-target": { + "rotate": [ + { + "value": -32.82, + "curve": [ 0.035, -42.69, 0.057, -70.49 ] + }, + { + "time": 0.1, + "value": -70.59, + "curve": [ 0.236, -70.78, 0.335, -9.87 ] + }, + { + "time": 0.3667, + "value": -1.56, + "curve": [ 0.393, 5.5, 0.477, 13.96 ] + }, + { + "time": 0.5, + "value": 13.96, + "curve": [ 0.519, 13.96, 0.508, 0.13 ] + }, + { "time": 0.5667, "value": -0.28 }, + { + "time": 0.7333, + "value": -0.28, + "curve": [ 0.827, -0.06, 0.958, -21.07 ] + }, + { "time": 1, "value": -32.82 } + ], + "translate": [ + { + "x": -167.32, + "y": 0.58, + "curve": [ 0.022, -180.55, 0.075, -235.51, 0.045, 0.58, 0.075, 30.12 ] + }, + { + "time": 0.1, + "x": -235.51, + "y": 39.92, + "curve": [ 0.142, -235.51, 0.208, -201.73, 0.138, 54.94, 0.18, 60.78 ] + }, + { + "time": 0.2333, + "x": -176.33, + "y": 61.48, + "curve": [ 0.272, -136.61, 0.321, -45.18, 0.275, 62.02, 0.321, 56.6 ] + }, + { + "time": 0.3667, + "x": 8.44, + "y": 49.67, + "curve": [ 0.403, 51.03, 0.486, 66.86, 0.401, 44.37, 0.48, 23.11 ] + }, + { "time": 0.5, "x": 66.57, "y": 14.22 }, + { "time": 0.5333, "x": 52.58, "y": 0.6 }, + { "time": 1, "x": -167.32, "y": 0.58 } + ] + }, + "front-foot-target": { + "rotate": [ + { + "value": 18.19, + "curve": [ 0.01, 11.17, 0.043, 1.37 ] + }, + { "time": 0.1, "value": 0.47 }, + { + "time": 0.2333, + "value": 0.55, + "curve": [ 0.364, 0.3, 0.515, -80.48 ] + }, + { + "time": 0.7333, + "value": -80.78, + "curve": [ 0.788, -80.38, 0.921, 17.42 ] + }, + { "time": 1, "value": 18.19 } + ], + "translate": [ + { + "x": 139.21, + "y": 22.94, + "curve": [ 0.025, 139.21, 0.069, 111.46, 0.031, 3.25, 0.075, 0.06 ] + }, + { "time": 0.1, "x": 96.69, "y": 0.06 }, + { + "time": 0.5, + "x": -94.87, + "y": -0.03, + "curve": [ 0.518, -106.82, 0.575, -152.56, 0.534, 5.42, 0.557, 38.46 ] + }, + { + "time": 0.6, + "x": -152.56, + "y": 57.05, + "curve": [ 0.633, -152.56, 0.688, -128.05, 0.643, 75.61, 0.7, 84.14 ] + }, + { + "time": 0.7333, + "x": -109.42, + "y": 84.14, + "curve": [ 0.771, -93.91, 0.832, -30.64, 0.787, 84.14, 0.799, 89.65 ] + }, + { + "time": 0.8667, + "x": 17, + "y": 75.25, + "curve": [ 0.903, 66.18, 0.967, 139.21, 0.932, 61.53, 0.967, 44.02 ] + }, + { "time": 1, "x": 139.21, "y": 22.94 } + ] + }, + "hip": { + "rotate": [ + { "value": -4.35 } + ], + "translate": [ + { + "x": -2.86, + "y": -13.86, + "curve": [ 0.025, -2.84, 0.067, -2.82, 0.028, -19.14, 0.054, -24.02 ] + }, + { + "time": 0.1, + "x": -2.61, + "y": -24.19, + "curve": [ 0.143, -2.34, 0.202, -1.79, 0.152, -23.98, 0.213, -14.81 ] + }, + { + "time": 0.2667, + "x": -1.21, + "y": -7.12, + "curve": [ 0.308, -0.86, 0.345, -0.51, 0.306, -1.63, 0.341, 3.15 ] + }, + { + "time": 0.3667, + "x": -0.33, + "y": 3.15, + "curve": [ 0.41, 0.02, 0.458, 0.26, 0.427, 3.3, 0.481, -6.75 ] + }, + { + "time": 0.5, + "x": 0.26, + "y": -10.59, + "curve": [ 0.553, 0.26, 0.559, 0.2, 0.519, -14.41, 0.548, -23.88 ] + }, + { + "time": 0.6, + "x": -0.17, + "y": -23.71, + "curve": [ 0.663, -0.72, 0.798, -2.09, 0.702, -23.36, 0.802, 3.53 ] + }, + { + "time": 0.8667, + "x": -2.46, + "y": 3.48, + "curve": [ 0.901, -2.63, 0.967, -2.87, 0.913, 3.45, 0.967, -7.64 ] + }, + { "time": 1, "x": -2.86, "y": -13.86 } + ] + }, + "front-foot-tip": { + "rotate": [ + { + "value": 28.96, + "curve": [ 0.056, 28.74, 0.049, 19.6 ] + }, + { "time": 0.0667, "value": 1.68 }, + { + "time": 0.5, + "value": -10, + "curve": [ 0.525, -10, 0.592, -54.69 ] + }, + { + "time": 0.6, + "value": -59.66, + "curve": [ 0.623, -74.54, 0.674, -101.78 ] + }, + { + "time": 0.7333, + "value": -101.78, + "curve": [ 0.812, -101.78, 0.855, -84.67 ] + }, + { + "time": 0.8667, + "value": -63.53, + "curve": [ 0.869, -58.38, 0.975, 28.96 ] + }, + { "time": 1, "value": 28.96 } + ] + }, + "torso": { + "rotate": [ + { + "value": -20.72, + "curve": [ 0.025, -20.57, 0.071, -20.04 ] + }, + { + "time": 0.1333, + "value": -20.04, + "curve": [ 0.187, -20.04, 0.285, -21.16 ] + }, + { + "time": 0.3667, + "value": -21.16, + "curve": [ 0.405, -21.16, 0.47, -20.9 ] + }, + { + "time": 0.5, + "value": -20.71, + "curve": [ 0.518, -20.6, 0.582, -20.03 ] + }, + { + "time": 0.6333, + "value": -20.04, + "curve": [ 0.709, -20.05, 0.815, -21.18 ] + }, + { + "time": 0.8667, + "value": -21.18, + "curve": [ 0.908, -21.18, 0.971, -20.93 ] + }, + { "time": 1, "value": -20.72 } + ] + }, + "neck": { + "rotate": [ + { + "value": 17.78, + "curve": [ 0.025, 17.93, 0.071, 18.46 ] + }, + { + "time": 0.1333, + "value": 18.46, + "curve": [ 0.187, 18.46, 0.285, 17.34 ] + }, + { + "time": 0.3667, + "value": 17.34, + "curve": [ 0.405, 17.34, 0.47, 17.6 ] + }, + { + "time": 0.5, + "value": 17.79, + "curve": [ 0.518, 17.9, 0.582, 18.47 ] + }, + { + "time": 0.6333, + "value": 18.46, + "curve": [ 0.709, 18.45, 0.815, 17.32 ] + }, + { + "time": 0.8667, + "value": 17.32, + "curve": [ 0.908, 17.32, 0.971, 17.57 ] + }, + { "time": 1, "value": 17.78 } + ] + }, + "head": { + "rotate": [ + { + "value": -12.23, + "curve": [ 0.061, -12.23, 0.191, -7.45 ] + }, + { + "time": 0.2667, + "value": -7.43, + "curve": [ 0.341, -7.42, 0.421, -12.23 ] + }, + { + "time": 0.5, + "value": -12.23, + "curve": [ 0.567, -12.26, 0.694, -7.46 ] + }, + { + "time": 0.7667, + "value": -7.47, + "curve": [ 0.853, -7.49, 0.943, -12.23 ] + }, + { "time": 1, "value": -12.23 } + ], + "scale": [ + { + "curve": [ 0.039, 1, 0.084, 0.99, 0.039, 1, 0.084, 1.02 ] + }, + { + "time": 0.1333, + "x": 0.991, + "y": 1.019, + "curve": [ 0.205, 0.99, 0.318, 1.02, 0.205, 1.02, 0.337, 0.99 ] + }, + { + "time": 0.4, + "x": 1.019, + "y": 0.992, + "curve": [ 0.456, 1.02, 0.494, 1, 0.483, 0.99, 0.493, 1 ] + }, + { + "time": 0.5, + "curve": [ 0.508, 1, 0.584, 0.99, 0.51, 1, 0.584, 1.02 ] + }, + { + "time": 0.6333, + "x": 0.991, + "y": 1.019, + "curve": [ 0.705, 0.99, 0.818, 1.02, 0.705, 1.02, 0.837, 0.99 ] + }, + { + "time": 0.9, + "x": 1.019, + "y": 0.992, + "curve": [ 0.956, 1.02, 0.955, 1, 0.983, 0.99, 0.955, 1 ] + }, + { "time": 1 } + ] + }, + "back-foot-tip": { + "rotate": [ + { "value": 4.09 }, + { "time": 0.0333, "value": 3.05 }, + { + "time": 0.1, + "value": -59.01, + "curve": [ 0.124, -72.97, 0.169, -100.05 ] + }, + { + "time": 0.2333, + "value": -99.71, + "curve": [ 0.326, -99.21, 0.349, -37.4 ] + }, + { + "time": 0.3667, + "value": -17.85, + "curve": [ 0.388, 4.74, 0.451, 32.35 ] + }, + { + "time": 0.5, + "value": 32.4, + "curve": [ 0.537, 32.44, 0.566, 6.43 ] + }, + { "time": 0.5667, "value": 2 }, + { "time": 1, "value": 4.09 } + ] + }, + "front-thigh": { + "translate": [ + { + "x": 17.15, + "y": -0.09, + "curve": [ 0.178, 17.14, 0.295, -4.26, 0.009, -0.09, 0.475, 0.02 ] + }, + { + "time": 0.5, + "x": -4.26, + "y": 0.02, + "curve": [ 0.705, -4.27, 0.848, 17.15, 0.525, 0.02, 0.975, -0.09 ] + }, + { "time": 1, "x": 17.15, "y": -0.09 } + ] + }, + "rear-thigh": { + "translate": [ + { + "x": -17.71, + "y": -4.63, + "curve": [ 0.036, -19.81, 0.043, -20.86, 0.036, -4.63, 0.05, -7.03 ] + }, + { + "time": 0.1, + "x": -20.95, + "y": -7.06, + "curve": [ 0.162, -21.05, 0.4, 7.79, 0.2, -7.13, 0.4, -1.9 ] + }, + { + "time": 0.5, + "x": 7.79, + "y": -1.94, + "curve": [ 0.612, 7.69, 0.875, -10.49, 0.592, -1.97, 0.917, -3.25 ] + }, + { "time": 1, "x": -17.71, "y": -4.63 } + ] + }, + "torso2": { + "rotate": [ + { + "value": 1, + "curve": [ 0.006, 1.2, 0.084, 2.88 ] + }, + { + "time": 0.1333, + "value": 2.88, + "curve": [ 0.205, 2.88, 0.284, -1.17 ] + }, + { + "time": 0.3667, + "value": -1.17, + "curve": [ 0.411, -1.17, 0.481, 0.57 ] + }, + { + "time": 0.5, + "value": 1, + "curve": [ 0.515, 1.33, 0.59, 2.83 ] + }, + { + "time": 0.6333, + "value": 2.85, + "curve": [ 0.683, 2.86, 0.796, -1.2 ] + }, + { + "time": 0.8667, + "value": -1.2, + "curve": [ 0.916, -1.2, 0.984, 0.62 ] + }, + { "time": 1, "value": 1 } + ] + }, + "torso3": { + "rotate": [ + { "value": -1.81 } + ] + }, + "front-upper-arm": { + "rotate": [ + { + "value": -9.51, + "curve": [ 0.021, -13.32, 0.058, -19.4 ] + }, + { + "time": 0.1, + "value": -19.4, + "curve": [ 0.238, -19.69, 0.337, 7.78 ] + }, + { + "time": 0.3667, + "value": 16.2, + "curve": [ 0.399, 25.42, 0.497, 60.19 ] + }, + { + "time": 0.6, + "value": 60.26, + "curve": [ 0.719, 60.13, 0.845, 27.61 ] + }, + { + "time": 0.8667, + "value": 22.45, + "curve": [ 0.892, 16.38, 0.979, -3.27 ] + }, + { "time": 1, "value": -9.51 } + ] + }, + "front-bracer": { + "rotate": [ + { + "value": 13.57, + "curve": [ 0.022, 9.71, 0.147, -3.78 ] + }, + { + "time": 0.3667, + "value": -3.69, + "curve": [ 0.457, -3.66, 0.479, 0.83 ] + }, + { + "time": 0.5, + "value": 4.05, + "curve": [ 0.513, 6.08, 0.635, 30.8 ] + }, + { + "time": 0.8, + "value": 30.92, + "curve": [ 0.974, 31, 0.98, 18.35 ] + }, + { "time": 1, "value": 13.57 } + ] + }, + "front-fist": { + "rotate": [ + { + "value": -28.72, + "curve": [ 0.024, -31.74, 0.176, -43.4 ] + }, + { + "time": 0.3667, + "value": -43.6, + "curve": [ 0.403, -43.65, 0.47, -40.15 ] + }, + { + "time": 0.5, + "value": -35.63, + "curve": [ 0.547, -28.59, 0.624, -4.57 ] + }, + { + "time": 0.7333, + "value": -4.59, + "curve": [ 0.891, -4.62, 0.954, -24.28 ] + }, + { "time": 1, "value": -28.48 } + ] + }, + "rear-upper-arm": { + "rotate": [ + { + "value": 28.28, + "curve": [ 0.034, 30.94, 0.068, 32.05 ] + }, + { + "time": 0.1, + "value": 31.88, + "curve": [ 0.194, 31.01, 0.336, -0.11 ] + }, + { + "time": 0.3667, + "value": -7.11, + "curve": [ 0.421, -19.73, 0.53, -46.21 ] + }, + { + "time": 0.6, + "value": -45.75, + "curve": [ 0.708, -45.03, 0.844, -13.56 ] + }, + { + "time": 0.8667, + "value": -6.48, + "curve": [ 0.909, 6.59, 0.958, 24.21 ] + }, + { "time": 1, "value": 28.28 } + ] + }, + "hair2": { + "rotate": [ + { + "value": -2.79, + "curve": [ 0.074, -2.84, 0.121, 25.08 ] + }, + { + "time": 0.2333, + "value": 24.99, + "curve": [ 0.35, 24.89, 0.427, -2.86 ] + }, + { + "time": 0.5, + "value": -2.8, + "curve": [ 0.575, -2.73, 0.652, 24.5 ] + }, + { + "time": 0.7333, + "value": 24.55, + "curve": [ 0.828, 24.6, 0.932, -2.69 ] + }, + { "time": 1, "value": -2.79 } + ] + }, + "hair4": { + "rotate": [ + { + "value": -6.01, + "curve": [ 0.106, -5.97, 0.151, 18.62 ] + }, + { + "time": 0.2333, + "value": 18.72, + "curve": [ 0.336, 18.7, 0.405, -11.37 ] + }, + { + "time": 0.5, + "value": -11.45, + "curve": [ 0.626, -11.46, 0.629, 18.94 ] + }, + { + "time": 0.7333, + "value": 18.92, + "curve": [ 0.833, 18.92, 0.913, -6.06 ] + }, + { "time": 1, "value": -6.01 } + ], + "translate": [ + { "x": 0.03, "y": 1.35 } + ] + }, + "rear-bracer": { + "rotate": [ + { + "value": 10.06, + "curve": [ 0.044, 11.16, 0.063, 11.49 ] + }, + { + "time": 0.1, + "value": 11.49, + "curve": [ 0.215, 11.49, 0.336, 2.92 ] + }, + { + "time": 0.3667, + "value": 0.84, + "curve": [ 0.416, -2.52, 0.498, -10.84 ] + }, + { + "time": 0.6, + "value": -10.83, + "curve": [ 0.762, -10.71, 0.845, -3.05 ] + }, + { + "time": 0.8667, + "value": -1.34, + "curve": [ 0.917, 2.54, 0.977, 8.81 ] + }, + { "time": 1, "value": 10.06 } + ] + }, + "gun": { + "rotate": [ + { + "value": -14.67, + "curve": [ 0.086, -14.67, 0.202, 8.31 ] + }, + { + "time": 0.2333, + "value": 12.14, + "curve": [ 0.279, 17.71, 0.391, 25.79 ] + }, + { + "time": 0.5, + "value": 25.77, + "curve": [ 0.631, 25.74, 0.694, 4.53 ] + }, + { + "time": 0.7333, + "value": -0.65, + "curve": [ 0.768, -5.21, 0.902, -14.4 ] + }, + { "time": 1, "value": -14.67 } + ] + }, + "front-leg-target": { + "translate": [ + { + "x": -2.83, + "y": -8.48, + "curve": [ 0.008, -2.83, 0.058, 0.09, 0.001, 4.97, 0.058, 6.68 ] + }, + { + "time": 0.0667, + "x": 0.09, + "y": 6.68, + "curve": [ 0.3, 0.09, 0.767, -2.83, 0.3, 6.68, 0.767, -8.48 ] + }, + { "time": 1, "x": -2.83, "y": -8.48 } + ] + }, + "hair1": { + "rotate": [ + { + "curve": [ 0.028, 1.24, 0.016, 3.46 ] + }, + { + "time": 0.1, + "value": 3.45, + "curve": [ 0.159, 3.45, 0.189, 0.23 ] + }, + { + "time": 0.2333, + "value": -2.29, + "curve": [ 0.265, -4.32, 0.305, -5.92 ] + }, + { + "time": 0.3667, + "value": -5.94, + "curve": [ 0.446, -5.96, 0.52, 3.41 ] + }, + { + "time": 0.6, + "value": 3.42, + "curve": [ 0.717, 3.42, 0.772, -5.93 ] + }, + { + "time": 0.8667, + "value": -5.97, + "curve": [ 0.933, -5.99, 0.982, -0.94 ] + }, + { "time": 1 } + ] + }, + "hair3": { + "rotate": [ + { + "curve": [ 0.067, 0, 0.159, -10.48 ] + }, + { + "time": 0.2333, + "value": -10.49, + "curve": [ 0.334, -10.5, 0.439, -0.09 ] + }, + { + "time": 0.5, + "value": -0.09, + "curve": [ 0.569, -0.09, 0.658, -10.75 ] + }, + { + "time": 0.7333, + "value": -10.7, + "curve": [ 0.833, -10.63, 0.947, 0 ] + }, + { "time": 1 } + ] + }, + "crosshair": { + "rotate": [ + { "time": 0.2333, "value": 0.11 } + ] + }, + "gun-tip": { + "rotate": [ + { "time": 0.2333, "value": 0.11 } + ] + }, + "muzzle-ring": { + "rotate": [ + { "time": 0.2333, "value": 0.11 } + ] + }, + "muzzle-ring2": { + "rotate": [ + { "time": 0.2667, "value": 0.11 } + ] + }, + "muzzle-ring3": { + "rotate": [ + { "time": 0.2667, "value": 0.11 } + ] + }, + "muzzle-ring4": { + "rotate": [ + { "time": 0.2667, "value": 0.11 } + ] + }, + "back-shoulder": { + "translate": [ + { + "x": -0.18, + "y": -4.49, + "curve": [ 0.133, -0.18, 0.333, 7.69, 0.133, -4.49, 0.333, 2.77 ] + }, + { + "time": 0.4667, + "x": 7.69, + "y": 2.77, + "curve": [ 0.6, 7.69, 0.858, -0.18, 0.6, 2.77, 0.858, -4.49 ] + }, + { "time": 1, "x": -0.18, "y": -4.49 } + ] + }, + "front-shoulder": { + "translate": [ + { + "x": 1.46, + "y": 9.37, + "curve": [ 0.162, 1.41, 0.333, -1.66, 0.162, 9.37, 0.301, -7.23 ] + }, + { + "time": 0.5, + "x": -1.6, + "y": -7.27, + "curve": [ 0.735, -1.5, 0.847, 1.46, 0.723, -7.31, 0.838, 9.32 ] + }, + { "time": 1, "x": 1.46, "y": 9.37 } + ] + }, + "head-control": { + "translate": [ + { + "x": -6.46, + "y": -8.4, + "curve": [ 0.053, -5.31, 0.167, -3.64, 0.093, -8.4, 0.196, -3.81 ] + }, + { + "time": 0.2333, + "x": -3.64, + "y": -1.32, + "curve": [ 0.309, -3.64, 0.436, -5.84, 0.275, 1.43, 0.38, 10.3 ] + }, + { + "time": 0.5, + "x": -7.03, + "y": 10.29, + "curve": [ 0.538, -7.75, 0.66, -10.54, 0.598, 10.27, 0.694, 1.56 ] + }, + { + "time": 0.7333, + "x": -10.54, + "y": -1.26, + "curve": [ 0.797, -10.54, 0.933, -7.91, 0.768, -3.79, 0.875, -8.4 ] + }, + { "time": 1, "x": -6.46, "y": -8.4 } + ] + } + }, + "ik": { + "front-leg-ik": [ + { + "softness": 25.7, + "bendPositive": false, + "curve": [ 0.008, 1, 0.025, 1, 0.008, 25.7, 0.025, 9.9 ] + }, + { + "time": 0.0333, + "softness": 9.9, + "bendPositive": false, + "curve": [ 0.15, 1, 0.383, 1, 0.15, 9.9, 0.383, 43.2 ] + }, + { + "time": 0.5, + "softness": 43.2, + "bendPositive": false, + "curve": [ 0.625, 1, 0.875, 1, 0.625, 43.2, 0.846, 45.57 ] + }, + { "time": 1, "softness": 25.7, "bendPositive": false } + ], + "rear-leg-ik": [ + { "softness": 5, "bendPositive": false }, + { "time": 0.4333, "softness": 4.9, "bendPositive": false }, + { "time": 0.5, "softness": 28.81, "bendPositive": false }, + { "time": 0.6, "softness": 43.8, "bendPositive": false }, + { "time": 1, "softness": 5, "bendPositive": false } + ] + }, + "events": [ + { "name": "footstep" }, + { "time": 0.5, "name": "footstep" } + ] + } +} +} \ No newline at end of file diff --git a/spine-ts/webgl/example/assets/stretchyman-pro.json b/spine-ts/webgl/example/assets/stretchyman-pro.json new file mode 100644 index 000000000..4d144c773 --- /dev/null +++ b/spine-ts/webgl/example/assets/stretchyman-pro.json @@ -0,0 +1,1129 @@ +{ +"skeleton": { + "hash": "q81tDic7+Dc", + "spine": "4.0.05-beta", + "x": -100.47, + "y": -9.21, + "width": 260.65, + "height": 573.31, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { "name": "back-arm-ik-target", "parent": "root", "x": 103.52, "y": 345.27, "color": "ff3f00ff" }, + { "name": "hip", "parent": "root", "x": 28.61, "y": 289.9, "color": "ffbd00ff" }, + { + "name": "spine1", + "parent": "hip", + "length": 34.66, + "rotation": 86.69, + "x": -4.48, + "y": 12.66, + "color": "ffbd00ff" + }, + { "name": "spine2", "parent": "spine1", "length": 41.42, "rotation": 16.48, "x": 34.66, "color": "ffbd00ff" }, + { + "name": "spine3", + "parent": "spine2", + "length": 34.45, + "rotation": 16.17, + "x": 41.42, + "y": 0.01, + "color": "ffbd00ff" + }, + { + "name": "spine4", + "parent": "spine3", + "length": 37.53, + "rotation": -13.63, + "x": 34.45, + "y": 0.01, + "color": "ffbd00ff" + }, + { + "name": "back-arm-ik1", + "parent": "spine4", + "length": 66.57, + "rotation": -152.7, + "x": 16.34, + "y": -4.46, + "color": "ff0000ff" + }, + { "name": "back-arm-ik2", "parent": "back-arm-ik1", "length": 66.01, "rotation": 19.36, "x": 66.57, "color": "ff0000ff" }, + { + "name": "back-arm1", + "parent": "spine4", + "length": 32.43, + "rotation": -154.36, + "x": 16, + "y": -4.58, + "transform": "noScale", + "color": "ff0000ff" + }, + { + "name": "back-arm2", + "parent": "back-arm1", + "length": 34.16, + "rotation": 3.11, + "x": 31.88, + "y": 0.02, + "color": "ff0000ff" + }, + { "name": "back-arm3", "parent": "back-arm2", "length": 31.27, "rotation": 9.59, "x": 34.16, "color": "ff0000ff" }, + { + "name": "back-arm4", + "parent": "back-arm3", + "length": 33.3, + "rotation": 14.61, + "x": 32.04, + "y": 0.82, + "color": "ff0000ff" + }, + { + "name": "back-arm5", + "parent": "back-arm4", + "length": 37.41, + "rotation": 11.31, + "x": 33.82, + "y": 0.02, + "color": "ff0000ff" + }, + { + "name": "back-foot1", + "parent": "hip", + "length": 33.24, + "rotation": -6.56, + "x": -34.01, + "y": -279.68, + "transform": "onlyTranslation", + "color": "ff0000ff" + }, + { + "name": "back-foot2", + "parent": "back-foot1", + "length": 32.29, + "rotation": 4.34, + "x": 33.24, + "transform": "noScale", + "color": "ff0000ff" + }, + { + "name": "back-foot3", + "parent": "back-foot2", + "length": 15.87, + "rotation": 10.06, + "x": 32.29, + "transform": "noScale", + "color": "ff0000ff" + }, + { "name": "back-leg-ik-target", "parent": "root", "x": 46.15, "y": 8.68, "color": "ff3f00ff" }, + { + "name": "back-leg-ik1", + "parent": "hip", + "length": 140.17, + "rotation": -88.1, + "x": 9.63, + "y": -0.38, + "color": "ff0000ff" + }, + { + "name": "back-leg-ik2", + "parent": "back-leg-ik1", + "length": 148.96, + "rotation": -21.32, + "x": 140.17, + "y": -0.01, + "color": "ff0000ff" + }, + { + "name": "back-leg1", + "parent": "hip", + "length": 41, + "rotation": -83.66, + "x": 10.41, + "y": 1.04, + "color": "ff0000ff" + }, + { "name": "back-leg2", "parent": "back-leg1", "length": 41, "rotation": -4.07, "x": 34.57, "color": "ff0000ff" }, + { + "name": "back-leg3", + "parent": "back-leg1", + "length": 41, + "rotation": -5.24, + "x": 81.79, + "y": -2.29, + "color": "ff0000ff" + }, + { + "name": "back-leg4", + "parent": "back-leg1", + "length": 41, + "rotation": -16.6, + "x": 121.21, + "y": -11.27, + "color": "ff0000ff" + }, + { + "name": "back-leg5", + "parent": "back-leg1", + "length": 41, + "rotation": -32.36, + "x": 160.16, + "y": -24.86, + "color": "ff0000ff" + }, + { + "name": "back-leg6", + "parent": "back-leg1", + "length": 41, + "rotation": -30.76, + "x": 197.04, + "y": -39.98, + "color": "ff0000ff" + }, + { + "name": "back-leg7", + "parent": "back-leg1", + "length": 41, + "rotation": -30.63, + "x": 233.19, + "y": -57.32, + "color": "ff0000ff" + }, + { + "name": "back-leg8", + "parent": "back-leg1", + "length": 41, + "rotation": -33.79, + "x": 267.29, + "y": -77.39, + "color": "ff0000ff" + }, + { "name": "belly", "parent": "spine1", "x": 35.94, "y": -37.69, "color": "ffbd00ff" }, + { "name": "butt", "parent": "hip", "x": -32.67, "y": -1.88, "color": "ffbd00ff" }, + { "name": "front-arm-ik-target", "parent": "root", "x": -92.44, "y": 331.78, "color": "ff3f00ff" }, + { + "name": "front-arm-ik1", + "parent": "spine4", + "length": 69.56, + "rotation": 117.86, + "x": 27.36, + "y": 4.22, + "color": "50ff00ff" + }, + { "name": "front-arm-ik2", "parent": "front-arm-ik1", "length": 66.72, "rotation": 20.13, "x": 69.56, "color": "50ff00ff" }, + { + "name": "front-arm1", + "parent": "spine4", + "length": 38.33, + "rotation": 118.58, + "x": 27.13, + "y": 4.9, + "transform": "noScale", + "color": "4eff00ff" + }, + { + "name": "front-arm2", + "parent": "front-arm1", + "length": 35.67, + "rotation": -0.44, + "x": 38.33, + "y": 0.01, + "color": "4eff00ff" + }, + { + "name": "front-arm3", + "parent": "front-arm2", + "length": 32.65, + "rotation": 14.45, + "x": 35.67, + "y": -0.02, + "color": "4eff00ff" + }, + { "name": "front-arm4", "parent": "front-arm3", "length": 29.18, "rotation": 13.89, "x": 32.65, "color": "4eff00ff" }, + { + "name": "front-arm5", + "parent": "front-arm4", + "length": 46.32, + "rotation": 16.09, + "x": 29.18, + "transform": "noScale", + "color": "4eff00ff" + }, + { + "name": "front-foot1", + "parent": "hip", + "length": 26.3, + "rotation": -10.98, + "x": -77.05, + "y": -285.04, + "transform": "onlyTranslation", + "color": "50ff00ff" + }, + { "name": "front-foot2", "parent": "front-foot1", "length": 29.12, "rotation": 9.61, "x": 26.3, "color": "50ff00ff" }, + { "name": "front-foot3", "parent": "front-foot2", "length": 23.49, "rotation": 8.91, "x": 29.12, "color": "50ff00ff" }, + { "name": "front-leg-ik-target", "parent": "root", "x": -37.74, "y": 5.03, "color": "ff3f00ff" }, + { + "name": "front-leg-ik1", + "parent": "hip", + "length": 140.67, + "rotation": -89.23, + "x": -23.99, + "y": 1.89, + "color": "50ff00ff" + }, + { + "name": "front-leg-ik2", + "parent": "front-leg-ik1", + "length": 155.95, + "rotation": -21.5, + "x": 140.67, + "y": 0.03, + "color": "50ff00ff" + }, + { + "name": "front-leg1", + "parent": "hip", + "length": 37.2, + "rotation": -88.97, + "x": -23.57, + "y": -2, + "color": "4fff00ff" + }, + { + "name": "front-leg2", + "parent": "front-leg1", + "length": 37.2, + "rotation": 3.45, + "x": 33.75, + "y": 0.01, + "color": "4fff00ff" + }, + { + "name": "front-leg3", + "parent": "front-leg1", + "length": 37.2, + "rotation": -6.12, + "x": 74.4, + "y": -1.08, + "color": "4fff00ff" + }, + { + "name": "front-leg4", + "parent": "front-leg1", + "length": 37.2, + "rotation": -10.02, + "x": 111.4, + "y": -5.28, + "color": "4fff00ff" + }, + { + "name": "front-leg5", + "parent": "front-leg1", + "length": 37.2, + "rotation": -28.4, + "x": 147.76, + "y": -14.99, + "color": "4fff00ff" + }, + { + "name": "front-leg6", + "parent": "front-leg1", + "length": 37.2, + "rotation": -24.33, + "x": 182.41, + "y": -27.57, + "color": "4fff00ff" + }, + { + "name": "front-leg7", + "parent": "front-leg1", + "length": 37.2, + "rotation": -23, + "x": 216.44, + "y": -42.55, + "color": "4fff00ff" + }, + { + "name": "front-leg8", + "parent": "front-leg1", + "length": 37.2, + "rotation": -31.81, + "x": 248.61, + "y": -61.03, + "color": "4fff00ff" + }, + { + "name": "neck1", + "parent": "spine4", + "length": 13.45, + "rotation": -30.66, + "x": 38.97, + "y": -0.83, + "color": "ffbd00ff" + }, + { "name": "neck2", "parent": "neck1", "length": 14.13, "rotation": -11.41, "x": 13.45, "color": "ffbd00ff" }, + { + "name": "head", + "parent": "neck2", + "length": 89.06, + "rotation": 6.98, + "x": 15.82, + "y": 0.22, + "transform": "noScale", + "color": "ffbd00ff" + } +], +"slots": [ + { "name": "back-arm", "bone": "root", "attachment": "back-arm" }, + { "name": "back-leg", "bone": "root", "attachment": "back-leg" }, + { "name": "body", "bone": "root", "attachment": "body" }, + { "name": "head", "bone": "head", "attachment": "head" }, + { "name": "front-arm", "bone": "root", "attachment": "front-arm" }, + { "name": "back-leg-path", "bone": "hip", "attachment": "back-leg-path" }, + { "name": "front-leg-path", "bone": "hip", "attachment": "front-leg-path" }, + { "name": "front-arm-path", "bone": "spine4", "attachment": "front-arm-path" }, + { "name": "back-arm-path", "bone": "spine4", "attachment": "back-arm-path" } +], +"ik": [ + { + "name": "back-arm-ik", + "order": 3, + "bones": [ "back-arm-ik1", "back-arm-ik2" ], + "target": "back-arm-ik-target" + }, + { + "name": "back-leg-ik", + "bones": [ "back-leg-ik1", "back-leg-ik2" ], + "target": "back-leg-ik-target", + "bendPositive": false + }, + { + "name": "front-arm-ik", + "order": 2, + "bones": [ "front-arm-ik1", "front-arm-ik2" ], + "target": "front-arm-ik-target" + }, + { + "name": "front-leg-ik", + "order": 1, + "bones": [ "front-leg-ik1", "front-leg-ik2" ], + "target": "front-leg-ik-target", + "bendPositive": false + } +], +"transform": [ + { + "name": "back-foot-position", + "order": 8, + "bones": [ "back-foot1" ], + "target": "back-leg8", + "rotation": 108.8, + "x": 41.2, + "y": -0.03, + "scaleX": 5.0E-4, + "scaleY": -3.0E-4, + "shearY": 0.1, + "rotateMix": 0, + "scaleMix": 0 + }, + { + "name": "front-foot-position", + "order": 9, + "bones": [ "front-foot1" ], + "target": "front-leg8", + "rotation": 101.55, + "x": 38.92, + "y": -0.02, + "scaleX": 4.0E-4, + "scaleY": -3.0E-4, + "shearY": 0.1, + "rotateMix": 0, + "scaleMix": 0 + } +], +"path": [ + { + "name": "back-arm-path", + "order": 7, + "bones": [ "back-arm1", "back-arm2", "back-arm3", "back-arm4" ], + "target": "back-arm-path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.25 + }, + { + "name": "back-leg-path", + "order": 4, + "bones": [ "back-leg1", "back-leg2", "back-leg3", "back-leg4", "back-leg5", "back-leg6", "back-leg7", "back-leg8" ], + "target": "back-leg-path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.125 + }, + { + "name": "front-arm-path", + "order": 6, + "bones": [ "front-arm1", "front-arm2", "front-arm3", "front-arm4" ], + "target": "front-arm-path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.25 + }, + { + "name": "front-leg-path", + "order": 5, + "bones": [ "front-leg1", "front-leg2", "front-leg3", "front-leg4", "front-leg5", "front-leg6", "front-leg7", "front-leg8" ], + "target": "front-leg-path", + "spacingMode": "percent", + "rotateMode": "chainScale", + "spacing": 0.125 + } +], +"skins": [ + { + "name": "default", + "attachments": { + "back-arm": { + "back-arm": { + "type": "mesh", + "uvs": [ 0.74522, 0.00989, 0.64111, 0.05762, 0.56303, 0.1559, 0.42509, 0.25886, 0.28974, 0.359, 0.22988, 0.49565, 0.21166, 0.60797, 0.21166, 0.69782, 0.16481, 0.78674, 0.14139, 0.84757, 0.02427, 0.88501, 0.0529, 0.91871, 0.37824, 0.98797, 0.60468, 0.98235, 0.6307, 0.9056, 0.73481, 0.87752, 0.63591, 0.81762, 0.55262, 0.74181, 0.38084, 0.69876, 0.37824, 0.60797, 0.39906, 0.50876, 0.51358, 0.38521, 0.66194, 0.28881, 0.85454, 0.18398, 0.97687, 0.07541, 0.9144, 0.00989 ], + "triangles": [ 14, 17, 16, 14, 16, 15, 11, 10, 9, 14, 12, 17, 18, 8, 7, 12, 18, 17, 13, 12, 14, 12, 8, 18, 9, 8, 12, 11, 9, 12, 6, 5, 19, 7, 6, 19, 7, 19, 18, 20, 4, 21, 5, 4, 20, 19, 5, 20, 3, 2, 22, 21, 3, 22, 4, 3, 21, 0, 25, 24, 1, 0, 24, 23, 1, 24, 2, 1, 23, 22, 2, 23 ], + "vertices": [ 1, 9, -7.68, -11.48, 1, 1, 9, 4.09, -13.63, 1, 1, 9, 23.49, -9.36, 1, 1, 10, 13.44, -9.23, 1, 2, 10, 35.2, -9.62, 0.50649, 11, -0.58, -9.66, 0.49351, 1, 11, 26.04, -6.39, 1, 1, 12, 14.15, -6.11, 1, 2, 12, 31.54, -5.57, 0.66493, 13, -3.33, -5.03, 0.33507, 1, 13, 13.08, -11.25, 1, 1, 13, 24.41, -14.89, 1, 1, 13, 30.15, -24.52, 1, 1, 13, 36.93, -23.54, 1, 1, 13, 54.08, -2.33, 1, 1, 13, 55.73, 14.15, 1, 1, 13, 41.39, 18.48, 1, 1, 13, 37.29, 26.87, 1, 1, 13, 24.66, 21.67, 1, 1, 13, 9.18, 18.1, 1, 2, 12, 31.33, 6.78, 0.47881, 13, -1.11, 7.12, 0.52119, 1, 12, 13.77, 6.04, 1, 2, 11, 24.98, 6.17, 0.89218, 12, -5.48, 6.96, 0.10782, 2, 10, 32.6, 7.29, 0.59842, 11, -0.32, 7.45, 0.40158, 1, 10, 11.08, 8.85, 1, 1, 9, 17.89, 11.88, 1, 1, 9, -4.82, 9.46, 1, 1, 9, -13.69, -0.69, 1 ], + "hull": 26, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 0, 50, 2, 48, 4, 46, 6, 44, 8, 42, 10, 40, 12, 38, 14, 36 ], + "width": 72, + "height": 202 + } + }, + "back-arm-path": { + "back-arm-path": { + "type": "path", + "lengths": [ 66.62, 131.78, 261.99 ], + "vertexCount": 9, + "vertices": [ 1, 7, -19.59, 1.53, 1, 1, 7, 0.28, -0.13, 1, 1, 7, 17.08, -1.7, 1, 2, 7, 47.35, -3.26, 0.504, 8, -19.18, 3.46, 0.496, 2, 7, 66.76, 0.15, 0.504, 8, 0.23, 0.07, 0.496, 2, 7, 86.18, 3.55, 0.504, 8, 19.65, -3.32, 0.496, 1, 8, 46.48, -3.02, 1, 1, 8, 65.15, 0.11, 1, 1, 7, 144.73, 31.88, 1 ] + } + }, + "back-leg": { + "back-leg": { + "type": "mesh", + "uvs": [ 0.502, 0.01179, 0.36076, 0.06379, 0.4057, 0.15046, 0.44743, 0.23916, 0.47953, 0.32991, 0.51163, 0.42269, 0.52127, 0.50629, 0.48274, 0.58888, 0.41212, 0.66025, 0.3126, 0.74182, 0.2163, 0.81625, 0.1232, 0.89272, 0.00763, 0.97429, 0.29655, 0.98958, 0.47407, 0.99222, 0.64004, 0.99468, 0.80989, 0.9896, 0.91291, 0.98652, 1, 0.95797, 0.8333, 0.94681, 0.71067, 0.9386, 0.57123, 0.92031, 0.41533, 0.89986, 0.3447, 0.89272, 0.36885, 0.87178, 0.42817, 0.82033, 0.502, 0.74794, 0.58226, 0.66943, 0.6593, 0.59092, 0.72993, 0.50528, 0.76524, 0.42167, 0.78129, 0.32481, 0.78771, 0.23406, 0.78771, 0.13924, 0.72351, 0.03728, 0.60152, 0.00567, 0.82117, 0.96898, 0.67873, 0.96396, 0.52111, 0.9574, 0.35936, 0.94214, 0.19388, 0.92922, 0.25375, 0.88159, 0.32792, 0.8184 ], + "triangles": [ 36, 20, 19, 17, 19, 18, 16, 37, 36, 17, 16, 36, 17, 36, 19, 38, 22, 21, 37, 21, 20, 38, 21, 37, 37, 20, 36, 15, 38, 37, 14, 38, 15, 15, 37, 16, 39, 23, 22, 40, 23, 39, 39, 22, 38, 13, 40, 39, 12, 40, 13, 14, 39, 38, 13, 39, 14, 9, 8, 26, 25, 42, 9, 10, 9, 42, 26, 25, 9, 24, 42, 25, 41, 10, 42, 41, 42, 24, 11, 10, 41, 23, 41, 24, 40, 11, 41, 40, 41, 23, 12, 11, 40, 26, 8, 27, 6, 5, 29, 28, 6, 29, 7, 6, 28, 27, 7, 28, 8, 7, 27, 29, 5, 30, 31, 5, 4, 30, 5, 31, 32, 4, 3, 31, 4, 32, 34, 1, 0, 34, 0, 35, 2, 1, 34, 2, 34, 33, 3, 2, 33, 32, 3, 33 ], + "vertices": [ 1, 20, -19.79, -5.67, 1, 2, 20, -5.62, -22.28, 0.83363, 21, -41.07, -23.3, 0.16637, 2, 20, 22.31, -21.98, 0.65187, 21, -13.17, -21.89, 0.34813, 3, 20, 50.83, -22.11, 0.3172, 21, 15.33, -20.87, 0.43086, 22, -19.67, -21.09, 0.25193, 4, 20, 79.85, -23.29, 0.10792, 21, 44.37, -20.89, 0.35417, 22, 9.3, -19.2, 0.3192, 23, -25.22, -20.06, 0.21872, 4, 21, 74.06, -20.98, 0.16486, 22, 38.93, -17.34, 0.32776, 23, 4.09, -15.38, 0.29831, 24, -30.1, -17.16, 0.20907, 3, 22, 65.54, -17.61, 0.17523, 23, 30.6, -13.11, 0.39173, 24, -4.12, -11.42, 0.43304, 3, 23, 57.03, -15.71, 0.19718, 24, 22.43, -10.53, 0.52971, 25, -12.97, -9.81, 0.27311, 3, 24, 46.05, -13.47, 0.40991, 25, 10.84, -10.17, 0.34747, 26, -24.93, -10.51, 0.24261, 3, 24, 73.39, -18.69, 0.19432, 25, 38.58, -12.41, 0.37177, 26, 2.9, -10.99, 0.43391, 3, 25, 64.06, -14.98, 0.16664, 26, 28.49, -11.94, 0.56756, 27, -7.53, -11.48, 0.2658, 3, 26, 54.58, -12.37, 0.52114, 27, 18.56, -10.93, 0.36168, 14, -3.08, 24.95, 0.11718, 4, 26, 82.97, -14.36, 0.35144, 27, 47.01, -11.86, 0.29521, 14, -13.07, -1.67, 0.25118, 15, -46.3, 1.83, 0.10216, 1, 14, 16.37, -4.67, 1, 2, 14, 34.32, -4.37, 0.53487, 15, 0.74, -4.44, 0.46513, 3, 14, 51.1, -4.08, 0.14611, 15, 17.5, -5.42, 0.54314, 16, -15.51, -2.75, 0.31075, 2, 15, 34.67, -4.01, 0.40714, 16, 1.65, -4.36, 0.59286, 2, 15, 45.09, -3.16, 0.25726, 16, 12.05, -5.34, 0.74274, 2, 15, 53.99, 5.81, 0.25311, 16, 22.38, 1.94, 0.74689, 2, 15, 37.19, 9.56, 0.4029, 16, 6.5, 8.57, 0.5971, 3, 14, 57.07, 14.17, 0.13352, 15, 24.84, 12.33, 0.54644, 16, -5.18, 13.44, 0.32004, 4, 26, 47.09, 33.11, 0.13131, 14, 42.64, 19.08, 0.26349, 15, 10.82, 18.31, 0.49746, 16, -17.94, 21.78, 0.10773, 4, 26, 46.46, 16.09, 0.21159, 27, 9.37, 17.21, 0.1068, 14, 26.51, 24.57, 0.44951, 15, -4.85, 25.01, 0.23211, 3, 26, 46.8, 8.62, 0.40111, 27, 10, 9.75, 0.24543, 14, 19.24, 26.38, 0.35346, 3, 26, 39.71, 8.61, 0.5825, 27, 2.91, 9.47, 0.30792, 14, 21.25, 33.18, 0.10958, 3, 25, 59.17, 5.89, 0.21955, 26, 22.27, 8.58, 0.57946, 27, -14.51, 8.8, 0.20099, 3, 24, 71.84, 0.47, 0.21583, 25, 34.96, 6.47, 0.32263, 26, -1.92, 7.63, 0.46154, 3, 24, 45.81, 3.96, 0.40554, 25, 8.71, 7.12, 0.38602, 26, -28.17, 6.61, 0.20845, 3, 23, 56.79, 2.13, 0.25409, 24, 19.83, 7.12, 0.53006, 25, -17.46, 7.46, 0.21585, 3, 22, 66.18, 3.45, 0.22414, 23, 29.23, 7.92, 0.34135, 24, -8.25, 9.24, 0.43451, 4, 21, 76.6, 4.51, 0.19364, 22, 39.78, 8.26, 0.28887, 23, 2.49, 10.19, 0.33579, 24, -35.06, 7.97, 0.1817, 4, 20, 82.88, 7.08, 0.11658, 21, 46.18, 9.58, 0.35727, 22, 9.09, 11.32, 0.35745, 23, -28.36, 10.3, 0.16869, 3, 20, 54.46, 12.11, 0.35357, 21, 17.57, 13.46, 0.44494, 22, -19.71, 13.32, 0.20149, 2, 20, 24.65, 16.69, 0.65438, 21, -12.4, 16.85, 0.34562, 2, 20, -8.38, 15.21, 0.85331, 21, -45.34, 14.05, 0.14669, 1, 20, -20.19, 4.56, 1, 2, 15, 35.89, 2.53, 0.4051, 16, 3.99, 1.87, 0.5949, 3, 14, 54.38, 5.92, 0.13921, 15, 21.52, 4.3, 0.54495, 16, -9.85, 6.12, 0.31584, 2, 14, 37.79, 7.63, 0.44939, 15, 5.1, 7.27, 0.55061, 3, 26, 65.39, 20.7, 0.11858, 14, 20.6, 11.35, 0.75134, 15, -11.76, 12.27, 0.13008, 3, 26, 65.41, 1.81, 0.3968, 27, 24.3, 0.23, 0.28258, 14, 2.07, 14.98, 0.32063, 3, 26, 48.01, 0.08, 0.55395, 27, 6.94, -0.33, 0.33293, 14, 3.38, 30.47, 0.11312, 3, 25, 65.95, -2.97, 0.19447, 26, 24.96, -1.58, 0.57382, 27, -15.99, -0.43, 0.23171 ], + "hull": 36, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 34, 36, 44, 46, 50, 52, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 0, 70, 4, 66, 2, 68, 40, 42, 42, 44, 26, 28, 28, 30, 46, 48, 48, 50, 36, 38, 38, 40, 30, 32, 32, 34, 18, 52, 16, 54, 14, 56, 12, 58, 10, 60, 8, 62, 6, 64, 32, 72, 72, 38, 30, 74, 74, 40, 72, 74, 28, 76, 76, 42, 74, 76, 26, 78, 78, 44, 76, 78, 24, 80, 80, 46, 78, 80, 22, 82, 82, 48, 80, 82, 20, 84, 84, 50, 82, 84 ], + "width": 100, + "height": 318 + } + }, + "back-leg-path": { + "back-leg-path": { + "type": "path", + "lengths": [ 137.84, 291.79, 600.02 ], + "vertexCount": 9, + "vertices": [ 1, 18, -43.15, 0.61, 1, 1, 18, -1.31, 0.44, 1, 1, 18, 63.08, -0.19, 1, 2, 18, 72.07, 13.66, 0.5, 19, -69.12, -16.08, 0.5, 2, 18, 135.75, 0.27, 0.5, 19, -3.96, -2.03, 0.5, 2, 18, 202.92, -15.14, 0.5, 19, 65, 14.1, 0.5, 1, 19, 71.09, -2.04, 1, 1, 19, 149.06, -1.74, 1, 1, 18, 368.48, -1.81, 1 ] + } + }, + "body": { + "body": { + "type": "mesh", + "uvs": [ 0.35966, 0.01351, 0.26864, 0.04108, 0.26204, 0.0954, 0.34119, 0.14478, 0.39792, 0.19457, 0.40451, 0.24272, 0.38077, 0.27893, 0.3597, 0.3004, 0.34119, 0.31926, 0.34989, 0.34326, 0.35834, 0.36658, 0.36552, 0.40164, 0.37234, 0.43499, 0.38397, 0.4944, 0.3956, 0.55971, 0.39884, 0.59858, 0.40142, 0.62955, 0.40216, 0.65662, 0.3461, 0.71564, 0.27077, 0.78176, 0.2201, 0.82128, 0.17618, 0.85553, 0.13115, 0.88833, 0.08238, 0.92385, 0.00342, 0.9796, 0.18836, 0.99127, 0.32172, 0.99284, 0.46266, 0.99451, 0.61643, 0.98608, 0.71618, 0.97182, 0.61851, 0.95821, 0.48967, 0.95043, 0.39458, 0.94083, 0.27772, 0.92904, 0.23408, 0.9232, 0.26692, 0.89774, 0.30681, 0.86681, 0.34203, 0.83415, 0.38369, 0.7955, 0.45642, 0.72874, 0.52708, 0.66845, 0.56032, 0.63345, 0.57541, 0.60109, 0.59357, 0.56214, 0.61643, 0.49732, 0.63513, 0.43963, 0.64345, 0.40462, 0.77081, 0.39011, 0.84585, 0.37025, 0.90983, 0.35331, 0.9674, 0.31915, 0.97302, 0.28585, 0.96448, 0.23351, 0.8952, 0.1681, 0.79346, 0.12643, 0.75179, 0.10879, 0.71799, 0.09448, 0.66817, 0.07237, 0.61343, 0.04807, 0.47868, 0.01411, 0.49846, 0.38826, 0.66315, 0.34728, 0.67333, 0.30664, 0.8188, 0.29655, 0.80971, 0.24505, 0.72829, 0.17902, 0.68147, 0.13902, 0.59191, 0.09711, 0.3904, 0.09012, 0.53695, 0.14981, 0.57563, 0.19616, 0.64483, 0.25077, 0.79855, 0.33476, 0.61751, 0.97167, 0.4773, 0.97061, 0.23795, 0.95673, 0.15272, 0.92355, 0.14158, 0.94886, 0.23861, 0.86092, 0.51732, 0.30354, 0.50696, 0.34527, 0.50634, 0.43735, 0.50334, 0.4959, 0.51086, 0.32558, 0.50355, 0.41057, 0.19543, 0.89241, 0.36492, 0.9641 ], + "triangles": [ 2, 1, 68, 68, 1, 58, 58, 1, 59, 1, 0, 59, 69, 67, 66, 3, 68, 69, 69, 68, 67, 3, 2, 68, 66, 56, 55, 66, 67, 56, 67, 57, 56, 67, 58, 57, 67, 68, 58, 5, 70, 71, 71, 70, 65, 5, 4, 70, 70, 66, 65, 4, 69, 70, 70, 69, 66, 4, 3, 69, 65, 54, 53, 65, 66, 54, 66, 55, 54, 46, 61, 47, 46, 80, 61, 80, 83, 61, 61, 62, 72, 61, 83, 62, 80, 9, 83, 9, 8, 83, 83, 79, 62, 8, 7, 83, 83, 7, 79, 71, 6, 5, 7, 6, 79, 79, 6, 62, 6, 71, 62, 47, 72, 48, 47, 61, 72, 48, 72, 49, 49, 72, 50, 72, 63, 50, 72, 62, 63, 50, 63, 51, 62, 64, 63, 63, 52, 51, 63, 64, 52, 71, 65, 64, 64, 53, 52, 64, 65, 53, 62, 71, 64, 26, 86, 27, 27, 74, 28, 27, 86, 74, 28, 73, 29, 28, 74, 73, 73, 30, 29, 74, 31, 73, 73, 31, 30, 86, 32, 74, 74, 32, 31, 25, 75, 26, 26, 75, 86, 24, 77, 25, 25, 77, 75, 24, 23, 77, 75, 33, 86, 86, 33, 32, 75, 77, 33, 77, 34, 33, 77, 76, 34, 77, 23, 76, 23, 22, 76, 76, 85, 34, 76, 22, 85, 34, 85, 35, 85, 78, 35, 22, 21, 85, 35, 78, 36, 85, 21, 78, 37, 36, 20, 21, 20, 78, 36, 78, 20, 20, 19, 37, 37, 19, 38, 19, 18, 38, 38, 18, 39, 18, 17, 39, 39, 17, 40, 41, 40, 16, 40, 17, 16, 42, 41, 15, 41, 16, 15, 43, 42, 14, 42, 15, 14, 14, 82, 43, 43, 82, 44, 14, 13, 82, 82, 81, 44, 44, 81, 45, 82, 13, 81, 13, 12, 81, 46, 45, 84, 12, 84, 81, 45, 81, 84, 12, 11, 84, 11, 60, 84, 84, 60, 46, 60, 80, 46, 11, 10, 60, 60, 10, 80, 10, 9, 80 ], + "vertices": [ 1, 6, 30.85, 2.45, 1, 2, 5, 60.42, 12.42, 0.24859, 6, 22.32, 18.18, 0.75141, 2, 5, 39.47, 25.25, 0.44332, 6, -1.06, 25.72, 0.55668, 3, 4, 48.03, 29.46, 0.37431, 5, 14.55, 26.45, 0.47619, 6, -25.57, 21.02, 0.1495, 3, 3, 50.36, 32.58, 0.11243, 4, 24.29, 26.8, 0.64611, 5, -8.99, 30.5, 0.24146, 3, 44, -45.22, -8.81, 0.10611, 3, 28.69, 30.4, 0.49533, 4, 2.89, 30.85, 0.39856, 3, 44, -28.91, -12.45, 0.25802, 3, 12.15, 32.8, 0.60894, 4, -12.29, 37.84, 0.13304, 3, 44, -18.5, -14.05, 0.28714, 3, 2.34, 35.98, 0.51935, 29, -7.6, 18.95, 0.19351, 4, 44, -10.79, -18.35, 0.28478, 28, -42.03, 75.56, 0.10295, 3, -6.36, 37.32, 0.37494, 29, -10.2, 10.26, 0.23733, 3, 44, 0.92, -16.96, 0.34087, 3, -17.28, 35.45, 0.32141, 29, -8.2, -0.67, 0.33772, 4, 44, 10.64, -16.32, 0.32691, 45, -24.05, -14.9, 0.16082, 3, -27.58, 33.67, 0.14432, 29, -6.37, -11.05, 0.36794, 4, 44, 28.5, -15.63, 0.24237, 45, -9.55, -15.11, 0.27028, 46, -45.51, -19.12, 0.12132, 29, -3.65, -27.88, 0.36603, 4, 44, 41.59, -14.89, 0.21761, 45, 6.93, -15.35, 0.33285, 46, -26.85, -17.49, 0.20377, 29, -1.3, -43.28, 0.24577, 3, 45, 33.83, -15.81, 0.47179, 46, 0, -15.85, 0.42627, 47, -31.79, -17.82, 0.10194, 3, 45, 63.39, -16.48, 0.2126, 46, 29.52, -14.22, 0.42737, 47, -2.43, -14.39, 0.36002, 3, 46, 49.79, -15.51, 0.30179, 47, 14.85, -13.08, 0.47127, 48, -21.15, -15.64, 0.22695, 3, 46, 61.1, -13.41, 0.15443, 47, 29.03, -11.65, 0.50848, 48, -3.27, -12.45, 0.33708, 2, 47, 41.24, -10.8, 0.28079, 48, 8.41, -8.79, 0.71921, 2, 48, 36.24, -8.59, 0.56513, 49, -3.02, -8.84, 0.43487, 3, 48, 67.93, -10.06, 0.16322, 49, 28.69, -7.82, 0.53712, 50, -8.12, -7.7, 0.29966, 3, 49, 47.76, -8.47, 0.40201, 50, 10.97, -7.9, 0.45131, 51, -26.34, -6.21, 0.14668, 3, 49, 64.62, -8.06, 0.25017, 50, 27.8, -8.4, 0.46039, 51, -12.77, -8.82, 0.28944, 4, 49, 79.13, -10.24, 0.11858, 50, 42.33, -8.03, 0.26981, 51, 4.53, -8.38, 0.48104, 38, -1.56, 35.6, 0.13057, 2, 51, 20.84, -9.2, 0.728, 38, -5.38, 19.56, 0.272, 1, 38, -11.5, -7.3, 1, 4, 51, 43.23, 16.27, 0.2746, 38, 15.1, -7.51, 0.48158, 39, -12.29, -5.54, 0.12942, 40, -41.77, 0.94, 0.11439, 4, 51, 37, 33.94, 0.18804, 38, 33.71, -4.58, 0.34252, 39, 6.54, -5.76, 0.18297, 40, -23.2, -2.19, 0.28647, 3, 38, 53.35, -1.59, 0.21646, 39, 26.41, -6.09, 0.26516, 40, -3.62, -5.59, 0.51838, 2, 39, 47.99, -1.76, 0.15753, 40, 18.37, -4.66, 0.84247, 1, 40, 33.16, -0.12, 1, 2, 39, 47.98, 10.84, 0.17387, 40, 20.32, 7.79, 0.82613, 4, 51, 9.83, 48.43, 0.17572, 38, 53.29, 18.7, 0.17038, 39, 29.73, 13.92, 0.136, 40, 2.77, 13.66, 0.5179, 4, 51, 11.45, 34.58, 0.26313, 38, 39.26, 20.56, 0.23037, 39, 16.21, 18.1, 0.15679, 40, -9.94, 19.88, 0.3497, 4, 51, 12.41, 17.13, 0.37057, 38, 22.11, 22.5, 0.30409, 39, -0.38, 22.88, 0.18235, 40, -25.59, 27.17, 0.14299, 3, 51, 12.34, 10.44, 0.4464, 38, 15.56, 23.92, 0.2976, 39, -6.59, 25.37, 0.256, 4, 50, 38.15, 11.09, 0.28506, 51, 1.65, 10.97, 0.37544, 38, 17.99, 34.75, 0.18251, 39, -2.39, 35.65, 0.15699, 3, 49, 62.62, 10.94, 0.26064, 50, 26.05, 10.62, 0.49792, 51, -15.15, 10.14, 0.24144, 3, 49, 47.27, 9.67, 0.40348, 50, 9.53, 10.2, 0.4787, 51, -26.59, 11.94, 0.11781, 3, 48, 69.23, 6.98, 0.16044, 49, 28.64, 9.27, 0.53936, 50, -7.95, 9.39, 0.3002, 2, 48, 37.36, 8.01, 0.57649, 49, -3.21, 7.8, 0.42351, 2, 47, 45.49, 7.11, 0.2935, 48, 8.38, 9.61, 0.7065, 3, 46, 62.85, 9, 0.15446, 47, 29.41, 10.82, 0.49324, 48, -8.13, 9.49, 0.3523, 3, 46, 52.15, 9.28, 0.30575, 47, 12.84, 11.74, 0.46742, 48, -26.12, 8.77, 0.22683, 3, 45, 66.66, 11.26, 0.21798, 46, 30.62, 13.69, 0.42844, 47, -3.05, 13.54, 0.35358, 3, 45, 37.7, 16.76, 0.48246, 46, 1.32, 16.92, 0.41752, 47, -32.5, 14.97, 0.10002, 4, 44, 44.35, 22.12, 0.2346, 45, 11.91, 21.43, 0.43853, 46, -24.76, 19.57, 0.2068, 3, -58.29, -7.2, 0.12007, 4, 44, 28.55, 23.57, 0.31081, 45, -3.77, 23.84, 0.19158, 28, -76.76, 29.23, 0.21531, 3, -42.43, -7.46, 0.28231, 3, 44, 22.31, 41.64, 0.18196, 28, -69.84, 12.47, 0.43955, 3, -34.84, -25, 0.37848, 3, 44, 19.78, 51.42, 0.1392, 28, -59.84, 2.53, 0.47896, 3, -23.9, -35.17, 0.38184, 3, 44, 6.03, 61.54, 0.10543, 28, -52.71, -5.88, 0.51007, 3, -17.11, -43.61, 0.38449, 2, 28, -37.16, -13.14, 0.67427, 3, -1.22, -50.83, 0.32573, 1, 28, -22.09, -13.06, 1, 2, 28, 1.45, -10.49, 0.89019, 3, 37.4, -48.18, 0.10981, 3, 28, 30.41, 0.97, 0.4302, 3, 66.35, -36.73, 0.16237, 4, 19.98, -44.2, 0.40743, 2, 4, 41.58, -34.52, 0.68165, 5, -9.45, -33.21, 0.31835, 2, 4, 50.69, -30.62, 0.51066, 5, 0.38, -31.99, 0.48934, 3, 4, 58.07, -27.45, 0.26484, 5, 8.35, -31.01, 0.61475, 6, -18.05, -36.28, 0.12041, 3, 4, 69.4, -22.88, 0.17396, 5, 20.51, -29.78, 0.5644, 6, -6.53, -32.23, 0.26164, 2, 5, 33.86, -28.42, 0.29085, 6, 6.13, -27.77, 0.70915, 2, 5, 56.55, -19.38, 0.17381, 6, 26.05, -13.63, 0.82619, 4, 44, 20.79, 3.26, 0.43236, 45, -12.74, 4.03, 0.19687, 3, -36.22, 13.38, 0.21782, 29, 13.98, -19.25, 0.15294, 4, 44, 2.69, 26.81, 0.26409, 28, -50.86, 29.21, 0.2337, 3, -16.39, -8.73, 0.34628, 29, 35.79, -0.49, 0.15592, 3, 44, -15.65, 28.57, 0.15678, 28, -33.54, 28.78, 0.2916, 3, 2.03, -9.11, 0.55162, 1, 28, -28.18, 8.37, 1, 1, 28, -5.01, 11, 1, 3, 28, 24.12, 24.18, 0.12052, 3, 60.07, -13.52, 0.21384, 4, 20.53, -20.16, 0.66564, 2, 4, 39.64, -17.85, 0.59513, 5, -6.68, -16.66, 0.40487, 3, 4, 60.96, -9.87, 0.26252, 5, 16.02, -14.92, 0.55541, 6, -14.39, -18.85, 0.18206, 2, 5, 32.69, 8.3, 0.58729, 6, -3.66, 7.65, 0.41271, 2, 4, 39.53, 3.1, 0.47136, 5, -0.95, 3.5, 0.52864, 1, 4, 17.89, 2.56, 1, 2, 3, 27.01, -3.64, 0.67245, 4, -8.37, -1.32, 0.32755, 3, 44, -2.63, 46, 0.10033, 28, -45.42, 10.27, 0.52612, 3, -9.64, -27.47, 0.37356, 2, 39, 47.98, 4.75, 0.16598, 40, 19.38, 1.78, 0.83402, 4, 51, 19.56, 50.48, 0.12624, 38, 53.31, 9.51, 0.16908, 39, 28.22, 4.86, 0.24846, 40, -0.13, 4.94, 0.45621, 4, 51, 26.31, 16.82, 0.32786, 38, 18.97, 9.25, 0.38308, 39, -5.69, 10.34, 0.1588, 40, -32.78, 15.61, 0.13026, 2, 51, 16.97, -0.03, 0.66865, 38, 4.23, 21.71, 0.33135, 3, 51, 28.1, 2.86, 0.4826, 38, 4.92, 10.15, 0.31302, 39, -19.39, 13.57, 0.20437, 3, 49, 63.22, -0.58, 0.21069, 50, 25.96, 0.79, 0.49387, 51, -11.02, 1.48, 0.29545, 3, 44, -14.84, 8.09, 0.24448, 28, -33.35, 51.23, 0.16325, 3, 2.6, 13.54, 0.59227, 4, 44, 3.38, 4.96, 0.28616, 28, -51.81, 51.13, 0.16477, 3, -15.87, 13.44, 0.31892, 29, 13.85, -0.53, 0.23015, 4, 44, 46.09, 3.59, 0.2409, 45, 9.06, 3.1, 0.41152, 46, -28.46, 0.64, 0.21862, 29, 17.5, -43.07, 0.12896, 3, 45, 37.23, 1.25, 0.47745, 46, -0.08, 1.26, 0.42163, 47, -36.26, -5.26, 0.10093, 4, 44, -5.23, 6.3, 0.25594, 28, -43.11, 51.32, 0.15579, 3, -7.17, 13.63, 0.42092, 29, 14.17, 8.17, 0.16735, 4, 44, 33.04, 3.37, 0.36685, 45, -3.97, 3.61, 0.31093, 3, -45.33, 9.83, 0.17307, 29, 15.76, -30.15, 0.14915, 4, 49, 77.51, -1.16, 0.11479, 50, 40.24, 0.95, 0.26889, 51, 3.05, 0.72, 0.44973, 38, 7.66, 35.33, 0.16659, 4, 51, 22.73, 34.68, 0.22091, 38, 37.18, 9.39, 0.26956, 39, 12.3, 7.43, 0.20636, 40, -15.46, 9.95, 0.30317 ], + "hull": 60, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 24, 26, 26, 28, 32, 34, 34, 36, 36, 38, 46, 48, 48, 50, 54, 56, 56, 58, 58, 60, 60, 62, 66, 68, 76, 78, 78, 80, 80, 82, 86, 88, 88, 90, 90, 92, 92, 94, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 116, 118, 0, 118, 92, 120, 120, 20, 28, 86, 82, 32, 34, 80, 78, 36, 76, 38, 12, 124, 102, 126, 126, 124, 126, 128, 128, 130, 130, 132, 132, 134, 112, 134, 134, 136, 136, 4, 2, 116, 6, 138, 138, 132, 8, 140, 140, 130, 10, 142, 142, 128, 128, 104, 130, 106, 132, 108, 122, 92, 100, 144, 144, 122, 126, 144, 144, 94, 112, 114, 114, 116, 108, 110, 110, 112, 16, 18, 18, 20, 20, 22, 22, 24, 12, 14, 14, 16, 122, 124, 94, 96, 96, 98, 56, 146, 146, 60, 54, 148, 148, 62, 146, 148, 50, 150, 150, 66, 46, 152, 152, 68, 154, 152, 154, 48, 42, 156, 156, 72, 14, 158, 158, 124, 18, 160, 160, 122, 160, 120, 24, 162, 162, 90, 26, 164, 164, 88, 162, 164, 16, 166, 160, 166, 166, 158, 166, 124, 162, 168, 168, 120, 168, 22, 168, 92, 38, 40, 40, 42, 72, 74, 74, 76, 40, 74, 42, 44, 44, 46, 152, 170, 170, 156, 44, 170, 68, 70, 70, 72, 170, 70, 62, 64, 64, 66, 148, 172, 172, 150, 64, 172, 50, 52, 52, 54, 172, 52, 154, 66, 150, 154, 28, 30, 30, 32, 82, 84, 84, 86, 30, 84 ], + "width": 141, + "height": 452 + } + }, + "front-arm": { + "front-arm": { + "type": "mesh", + "uvs": [ 0.71401, 0.00566, 0.67108, 0.08129, 0.60222, 0.15434, 0.53633, 0.21683, 0.44558, 0.28705, 0.34898, 0.35134, 0.29097, 0.38941, 0.25238, 0.41472, 0.22423, 0.44271, 0.19483, 0.47193, 0.15998, 0.50658, 0.09138, 0.59568, 0.05498, 0.70866, 0.02988, 0.81366, 0.01049, 0.94262, 0.10495, 0.98985, 0.25391, 0.97421, 0.31482, 0.88907, 0.28834, 0.82869, 0.13607, 0.74572, 0.14335, 0.71488, 0.18317, 0.62253, 0.25217, 0.54221, 0.29538, 0.50981, 0.33787, 0.47795, 0.38452, 0.45013, 0.43581, 0.41953, 0.54711, 0.3655, 0.68845, 0.29832, 0.74855, 0.35527, 0.85874, 0.38229, 0.99674, 0.37645, 0.95354, 0.33244, 0.91356, 0.29172, 0.87464, 0.25208, 0.83759, 0.21434, 0.78083, 0.12598, 0.78194, 0.0683, 0.6322, 0.23719, 0.66925, 0.15784, 0.75533, 0.20967, 0.7161, 0.11137 ], + "triangles": [ 30, 29, 33, 30, 32, 31, 40, 41, 36, 39, 41, 40, 40, 36, 35, 38, 39, 40, 28, 38, 40, 34, 28, 40, 34, 40, 35, 28, 34, 33, 29, 28, 33, 30, 33, 32, 41, 1, 0, 37, 41, 0, 36, 41, 37, 39, 1, 41, 39, 2, 1, 19, 12, 20, 13, 12, 19, 18, 15, 19, 16, 18, 17, 15, 13, 19, 15, 14, 13, 15, 18, 16, 21, 10, 22, 11, 10, 21, 20, 11, 21, 12, 11, 20, 9, 8, 23, 22, 9, 23, 10, 9, 22, 26, 5, 4, 25, 5, 26, 6, 5, 25, 24, 6, 25, 7, 6, 24, 23, 7, 24, 8, 7, 23, 38, 2, 39, 3, 2, 38, 27, 3, 38, 27, 38, 28, 4, 3, 27, 26, 4, 27 ], + "vertices": [ 1, 53, 21.67, 6.08, 1, 2, 52, 18.13, 3.37, 0.16553, 53, 3.92, 4.24, 0.83447, 3, 33, -6.12, -15.24, 0.20965, 52, -0.05, 8.86, 0.53629, 6, 43.44, 6.81, 0.25406, 1, 33, 10.36, -12.02, 1, 2, 33, 30.62, -10.09, 0.88822, 34, -7.63, -10.15, 0.11178, 2, 33, 50.57, -9.69, 0.30996, 34, 12.31, -9.61, 0.69004, 2, 34, 24.21, -9.37, 0.86563, 35, -13.43, -6.2, 0.13437, 2, 34, 32.12, -9.22, 0.73143, 35, -5.73, -8.02, 0.26857, 2, 34, 39.35, -7.59, 0.54007, 35, 1.68, -8.25, 0.45993, 2, 34, 46.9, -5.88, 0.29037, 35, 9.42, -8.48, 0.70963, 2, 35, 18.59, -8.76, 0.66539, 36, -15.76, -5.13, 0.33461, 1, 36, 6.03, -8.58, 1, 2, 36, 31.42, -5.98, 0.39257, 37, 0.49, -6.36, 0.60743, 1, 37, 23.8, -9.31, 1, 1, 37, 52.37, -11.28, 1, 1, 37, 62.39, 2.72, 1, 1, 37, 58.29, 24.21, 1, 1, 37, 39.22, 32.48, 1, 1, 37, 26, 28.25, 1, 1, 37, 8.33, 5.63, 1, 2, 36, 28.81, 6.64, 0.48313, 37, 1.49, 6.49, 0.51687, 1, 36, 7.61, 5.9, 1, 3, 34, 51.67, 11.07, 0.10767, 35, 18.26, 6.75, 0.559, 36, -12.35, 10.01, 0.33333, 2, 34, 42.19, 10.25, 0.31464, 35, 8.88, 8.32, 0.68536, 2, 34, 32.87, 9.45, 0.59184, 35, -0.35, 9.86, 0.40816, 2, 34, 23.73, 9.7, 0.83036, 35, -9.14, 12.39, 0.16964, 2, 33, 52.08, 9.88, 0.29921, 34, 13.68, 9.98, 0.70079, 2, 33, 32.19, 12.6, 0.84687, 34, -6.24, 12.55, 0.15313, 1, 6, 9.42, 3.39, 1, 2, 6, -5.05, -1.59, 0.472, 5, 29.16, -0.35, 0.528, 1, 5, 16.13, -11.36, 1, 1, 5, 7.46, -29.44, 1, 2, 6, -8.23, -31.57, 0.5193, 5, 19, -28.74, 0.4807, 1, 6, 2, -28.43, 1, 1, 6, 11.96, -25.37, 1, 1, 6, 21.44, -22.45, 1, 3, 52, 12.7, -14.55, 0.25482, 53, 2.14, -14.4, 0.32231, 6, 42.47, -19.82, 0.42287, 1, 53, 13.64, -8.89, 1, 1, 33, 3.55, 0.91, 1, 2, 52, 1.72, -0.73, 0.5001, 6, 40.07, -2.34, 0.4999, 1, 6, 25.66, -11.25, 1, 3, 52, 13.4, -4.65, 0.33234, 53, 0.86, -4.56, 0.48165, 6, 48.12, -11.66, 0.18601 ], + "hull": 38, + "edges": [ 0, 2, 8, 10, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 52, 54, 54, 56, 56, 58, 58, 60, 60, 62, 70, 72, 72, 74, 0, 74, 56, 76, 6, 8, 76, 6, 4, 6, 4, 78, 78, 80, 80, 70, 2, 82, 82, 72, 82, 78, 78, 76, 2, 4, 56, 80, 56, 66, 62, 64, 64, 66, 66, 68, 68, 70, 44, 46, 46, 48, 18, 20, 46, 18, 10, 12, 12, 14, 48, 50, 50, 52, 12, 50, 14, 16, 16, 18 ], + "width": 145, + "height": 221 + } + }, + "front-arm-path": { + "front-arm-path": { + "type": "path", + "lengths": [ 73.62, 136.68, 266.32 ], + "vertexCount": 9, + "vertices": [ 1, 31, -21.12, -1.6, 1, 1, 31, 0.92, -0.29, 1, 1, 31, 16.41, 0.79, 1, 2, 31, 53.26, -1.74, 0.504, 32, -15.94, 3.84, 0.496, 2, 31, 74.54, 0.19, 0.504, 32, 4.75, -1.5, 0.496, 2, 31, 94.74, 2.31, 0.504, 32, 24.5, -6.3, 0.496, 1, 32, 46.12, -4.58, 1, 1, 32, 66.56, -0.12, 1, 1, 31, 147.94, 32.21, 1 ] + } + }, + "front-leg-path": { + "front-leg-path": { + "type": "path", + "lengths": [ 140.44, 297.38, 610.53 ], + "vertexCount": 9, + "vertices": [ 1, 42, -40.7, -0.42, 1, 1, 42, 1.49, -0.27, 1, 1, 42, 75.42, 0.33, 1, 2, 42, 82.92, 8.5, 0.5, 43, -58.75, -8.54, 0.5, 2, 42, 141.35, 0.53, 0.5, 43, 0.45, 0.71, 0.5, 2, 42, 208.27, -14.84, 0.5, 43, 68.84, 18.53, 0.5, 1, 43, 73.81, 1.42, 1, 1, 43, 156.58, 0.99, 1, 1, 42, 380.6, 0.76, 1 ] + } + }, + "head": { + "head": { "x": 45.65, "y": -7.92, "rotation": -70.44, "width": 87, "height": 102 } + } + } + } +], +"animations": { + "sneak": { + "bones": { + "hip": { + "rotate": [ + { "value": 30.27, "curve": "stepped" }, + { "time": 0.1667, "value": 30.27 }, + { "time": 0.3333, "value": -31.29 }, + { "time": 0.5333, "value": -44.75 }, + { "time": 0.7333, "value": -25.5 }, + { "time": 0.9, "value": -9.45 }, + { "time": 1.0667, "value": 30.27 }, + { "time": 1.2333, "value": -10.1 }, + { "time": 1.6333, "value": -41.48 }, + { "time": 1.8, "value": 30.27 } + ], + "translate": [ + { "x": -57.44, "y": -40.93 }, + { + "time": 0.1667, + "x": -16.16, + "y": -96.56, + "curve": [ 0.191, -16.16, 0.23, 40.6, 0.191, -96.56, 0.23, -122.4 ] + }, + { + "time": 0.2667, + "x": 86, + "y": -143.07, + "curve": [ 0.292, 118.42, 0.316, 145.45, 0.292, -151.91, 0.316, -159.28 ] + }, + { "time": 0.3333, "x": 145.45, "y": -159.28 }, + { "time": 0.4333, "x": 344.29, "y": -134.95 }, + { "time": 0.5333, "x": 543.14, "y": -81.1 }, + { "time": 0.7333, "x": 569.69, "y": -62.13 }, + { "time": 0.9, "x": 591.81, "y": -46.32 }, + { + "time": 1.0667, + "x": 653.14, + "y": -96.6, + "curve": [ 1.092, 684.25, 1.116, 710.17, 1.092, -121.97, 1.116, -143.1 ] + }, + { "time": 1.1333, "x": 710.17, "y": -143.1 }, + { "time": 1.2333, "x": 795.7, "y": -159.3 }, + { "time": 1.3333, "x": 986.95, "y": -153.35 }, + { "time": 1.4333, "x": 1178.2, "y": -111.89 }, + { "time": 1.6333, "x": 1195.1, "y": -62.1 }, + { "time": 1.8, "x": 1246.53, "y": -40.93 } + ] + }, + "front-leg-ik-target": { + "translate": [ + { "x": -50.43, "y": 44.62 }, + { "time": 0.1667, "x": -50.43, "y": 46.55 }, + { "time": 0.3333, "x": -50.43, "y": 47 }, + { + "time": 0.5333, + "x": -26.43, + "y": 50.21, + "curve": [ 0.64, -26.43, 0.683, 566.44, 0.64, 50.21, 0.683, 107.27 ] + }, + { "time": 0.7333, "x": 566.44, "y": 107.27 }, + { "time": 0.9, "x": 1215.9, "y": 68.21 }, + { "time": 1.0667, "x": 1235.47, "y": 15.8 }, + { "time": 1.2333, "x": 1235.47, "y": 0.97 }, + { "time": 1.5667, "x": 1230.16, "y": 3.76 }, + { "time": 1.7, "x": 1244, "y": 26.77 }, + { "time": 1.8, "x": 1253.54, "y": 44.62 } + ] + }, + "front-foot1": { + "rotate": [ + { "value": -48.39, "curve": "stepped" }, + { "time": 0.3333, "value": -48.39 }, + { "time": 0.7, "value": -121.35 }, + { "time": 0.8, "value": -80.19 }, + { "time": 0.9, "value": 45.59 }, + { "time": 1.0667, "value": 2.11 }, + { "time": 1.2333, "value": 4.65 }, + { "time": 1.5667, "value": 5.67 }, + { "time": 1.8, "value": -48.39 } + ], + "scale": [ + { "time": 0.6 }, + { "time": 0.6333, "x": 0.955 }, + { "time": 0.7667, "x": 0.821 }, + { "time": 0.9 }, + { "time": 1.0667, "x": 0.851 }, + { "time": 1.3667 } + ] + }, + "front-foot3": { + "rotate": [ + { "value": 36.33 }, + { "time": 0.3333, "value": 28.46 }, + { "time": 0.5, "value": 34.85 }, + { "time": 0.5333, "value": 30.32 }, + { "time": 0.5667, "value": 61.67 }, + { "time": 0.7, "value": -19.47 }, + { "time": 0.9, "value": -0.12 }, + { "time": 1.0667, "value": -7.21 }, + { "time": 1.2333, "value": -11.35 }, + { "time": 1.5667, "value": -11.24 }, + { "time": 1.8, "value": 36.33 } + ] + }, + "back-leg-ik-target": { + "translate": [ + { "x": 516.79, "y": 86.68 }, + { "time": 0.1667, "x": 523.72, "y": 16.64 }, + { "time": 0.3333, "x": 523.03, "y": -5, "curve": "stepped" }, + { "time": 0.7, "x": 523.03, "y": -5 }, + { "time": 0.9, "x": 551.32, "y": 41.87 }, + { "time": 1.0667, "x": 554.24, "y": 44.45 }, + { "time": 1.1333, "x": 555.44, "y": 44.75 }, + { "time": 1.2, "x": 556.61, "y": 46.19, "curve": "stepped" }, + { "time": 1.4333, "x": 556.61, "y": 46.19 }, + { "time": 1.5, "x": 746.97, "y": 74.82 }, + { "time": 1.6333, "x": 1127.69, "y": 103.62 }, + { "time": 1.8, "x": 1820.76, "y": 86.68 } + ] + }, + "back-foot1": { + "rotate": [ + { "value": 74.18 }, + { "time": 0.1667, "value": -17.01 }, + { "time": 0.3333, "value": 5.06 }, + { "time": 0.7, "value": 3.74 }, + { "time": 0.9, "value": -65.56 }, + { "time": 1.6333, "value": -92.53 }, + { "time": 1.8, "value": 74.18 } + ], + "scale": [ + { "x": 0.824 }, + { "time": 0.1667, "x": 0.754 }, + { "time": 0.3333, "x": 0.589 }, + { "time": 0.5667, "x": 0.91 }, + { "time": 0.9, "curve": "stepped" }, + { "time": 1.4 }, + { "time": 1.5, "x": 0.845 }, + { "time": 1.8, "x": 0.824 } + ] + }, + "back-foot2": { + "rotate": [ + { "value": 8.14 }, + { "time": 0.1667, "value": -3.21 }, + { "time": 0.7, "value": -1.14 }, + { "time": 0.9, "value": 34.12 }, + { "time": 1.4333, "value": 46.69 }, + { "time": 1.5333, "value": -15.6 }, + { "time": 1.6333, "value": -11.91 }, + { "time": 1.8, "value": 8.14 } + ], + "scale": [ + {}, + { "time": 0.1667, "x": 0.835 }, + { "time": 0.3333 } + ] + }, + "neck1": { + "rotate": [ + { "value": 21.95, "curve": "stepped" }, + { "time": 0.1667, "value": 21.95 }, + { "time": 0.2667, "value": 30.61 }, + { "time": 0.3333, "value": 36.37 }, + { "time": 0.7333, "value": 33.6 }, + { "time": 1.1667, "value": 23.95 }, + { "time": 1.2333, "value": 36.37 }, + { "time": 1.6333, "value": 41.16 }, + { "time": 1.8, "value": 21.95 } + ] + }, + "neck2": { + "rotate": [ + { "value": -22.93 }, + { "time": 0.1667, "value": -23.96 }, + { "time": 0.2667, "value": 8.84 }, + { "time": 0.3333, "value": 30.71 }, + { "time": 0.7333, "value": -3.37 }, + { "time": 0.9, "value": -17.57 }, + { "time": 1.1667, "value": 2.19 }, + { "time": 1.2333, "value": 15.26 }, + { "time": 1.6333, "value": 4.42 }, + { "time": 1.8, "value": -22.93 } + ] + }, + "head": { + "rotate": [ + { "value": -22.93 }, + { "time": 0.1667, "value": -13.04 }, + { "time": 0.2667, "value": 2.65 }, + { "time": 0.3333, "value": 13.1, "curve": "stepped" }, + { "time": 0.5, "value": 13.1 }, + { "time": 0.7333, "value": -18.91 }, + { "time": 0.9, "value": -41.78 }, + { "time": 1.1667, "value": -4 }, + { "time": 1.2333, "value": -2.35 }, + { "time": 1.6333, "value": -22.89 }, + { "time": 1.8, "value": -22.93 } + ] + }, + "back-leg-ik1": { + "scale": [ + { "x": 2.186 }, + { "time": 0.1667, "x": 2.229 }, + { "time": 0.3333, "x": 1.532 }, + { "time": 0.4333, "x": 0.947 }, + { "time": 0.5333, "curve": "stepped" }, + { "time": 1.0667 }, + { "time": 1.1333, "x": 0.893 }, + { "time": 1.2333, "x": 0.957 }, + { "time": 1.4333, "x": 2.315 }, + { "time": 1.6333, "x": 0.774 }, + { "time": 1.8, "x": 2.186 } + ] + }, + "front-leg1": { + "scale": [ + { "y": 1.118 } + ] + }, + "back-leg1": { + "scale": [ + { "y": 1.039 } + ] + }, + "front-leg-ik1": { + "scale": [ + {}, + { "time": 0.2667, "x": 0.859 }, + { "time": 0.3333, "x": 0.972 }, + { + "time": 0.5333, + "x": 2.356, + "curve": [ 0.622, 2.36, 0.658, 1, 0.622, 1, 0.658, 1 ] + }, + { "time": 0.7 }, + { "time": 0.9, "x": 2.248 }, + { "time": 1.0667, "x": 2.003 }, + { "time": 1.2333, "x": 1.496 }, + { + "time": 1.3, + "x": 1.048, + "curve": [ 1.345, 0.89, 1.402, 0.78, 1.345, 0.86, 1.402, 0.76 ] + }, + { "time": 1.4333, "x": 0.779, "y": 0.763 }, + { "time": 1.8 } + ] + }, + "spine2": { + "rotate": [ + { "value": -3.49 }, + { "time": 0.2667, "value": -11.58 }, + { "time": 0.3333, "value": -9.03 }, + { "time": 0.5, "value": -2.66 }, + { "time": 0.7333, "value": -5.78 }, + { "time": 1.1667, "value": -11.58 }, + { "time": 1.2333, "value": -6.7 }, + { "time": 1.6333, "value": -2.5 }, + { "time": 1.8, "value": -3.49 } + ] + }, + "spine3": { + "rotate": [ + { "value": -20.41 }, + { "time": 0.2667, "value": -11.58 }, + { "time": 0.3333, "value": -9.03 }, + { "time": 0.5, "value": -2.66 }, + { "time": 0.7333, "value": -10.54 }, + { "time": 0.9, "value": -16.17 }, + { "time": 1.1667, "value": -11.58 }, + { "time": 1.2333, "value": -9.03 }, + { "time": 1.6333, "value": -7.26 }, + { "time": 1.8, "value": -20.41 } + ] + }, + "back-foot3": { + "rotate": [ + { "value": 11.35 }, + { "time": 0.7, "value": -4.24 }, + { "time": 0.9, "value": 25.49, "curve": "stepped" }, + { "time": 1.4333, "value": 25.49 }, + { "time": 1.5333, "value": -30.52 }, + { "time": 1.6333, "value": -20.54 }, + { "time": 1.8, "value": 11.35 } + ], + "scale": [ + {}, + { "time": 0.1667, "x": 0.835 }, + { "time": 0.3333 } + ] + }, + "spine1": { + "rotate": [ + { "value": 10.81 }, + { "time": 0.2667, "value": -28.7 }, + { "time": 0.3333, "value": -24.32 }, + { "time": 0.5, "value": -13.38 }, + { "time": 0.7333, "value": 21.62 }, + { "time": 0.9, "value": 46.61 }, + { "time": 1.1667, "value": -28.7 }, + { "time": 1.2333, "value": -43.34 }, + { "time": 1.6333, "value": 24.89 }, + { "time": 1.8, "value": 10.81 } + ] + }, + "spine4": { + "rotate": [ + {}, + { "time": 0.2667, "value": -2.8 }, + { "time": 0.3333, "value": -0.82 }, + { "time": 0.5, "value": 4.14 }, + { "time": 0.7333, "value": -3.74 }, + { "time": 0.9, "value": -9.37 }, + { "time": 1.1667, "value": -9.02 }, + { "time": 1.2333, "value": -0.82 }, + { "time": 1.6333, "value": 3.82 }, + { "time": 1.8 } + ] + }, + "front-foot2": { + "rotate": [ + {}, + { "time": 0.2667, "value": -1.24 }, + { "time": 0.3333, "value": -0.2 }, + { "time": 0.5, "value": 22.72 }, + { "time": 0.5333, "value": 26.87 }, + { "time": 0.7, "value": -39.26 }, + { "time": 0.9, "value": 11.27 }, + { "time": 1.0667, "value": -18.18 }, + { "time": 1.2333, "value": -2.64 }, + { "time": 1.5667, "value": -5.84 }, + { "time": 1.8 } + ] + }, + "belly": { + "translate": [ + { "x": 3.66, "y": -3.77 }, + { "time": 0.2667, "x": 13.83, "y": -3.82 }, + { "time": 0.6333, "x": -4.11, "y": -3.9 }, + { "time": 0.7667, "x": 10.21, "y": -2.92 }, + { "time": 0.8667, "x": 10.3, "y": -7.39 }, + { "time": 1.1, "x": -0.45, "y": -1.46 }, + { "time": 1.2333, "x": 12.38, "y": 2.33 }, + { "time": 1.3667, "x": 11.51, "y": 5.53 }, + { "time": 1.8 } + ] + }, + "butt": { + "translate": [ + {}, + { "time": 0.7667, "x": 9.88, "y": -25.41 }, + { "time": 0.8333, "x": 15.89, "y": -41.89 }, + { "time": 1.2333, "x": -12.49, "y": -33 }, + { "time": 1.8 } + ] + } + }, + "ik": { + "back-arm-ik": [ + { "mix": 0 } + ], + "front-arm-ik": [ + { "mix": 0 } + ] + }, + "path": { + "back-arm-path": { + "mix": [ + { "rotateMix": 0, "translateMix": 0 } + ] + } + }, + "deform": { + "default": { + "back-arm-path": { + "back-arm-path": [ + { + "offset": 6, + "vertices": [ 16.3118, -18.11099, 9.38689, -22.49081, 16.3118, -18.11099, 9.38689, -22.49081, 16.3118, -18.11099, 9.38689, -22.49081, 5.21931, -14.09406, 5.21931, -14.09406, 9.59631, -11.56969 ] + }, + { + "time": 0.2667, + "vertices": [ 17.29437, 7.04849, 14.79962, -1.07825, 14.33475, -8.70247, 21.24185, -39.66567, 6.89394, -44.45944, 10.76428, -25.42518, 1.72866, -27.55225, 3.7822, -4.32903, 2.13338, -5.33344, -27.0453, 5.88416, -38.02032, 26.4173, -61.80768, 21.71147 ] + }, + { + "time": 0.3333, + "vertices": [ 17.95615, 8.14108, 14.79962, -1.07825, 16.71317, -11.68106, 14.02496, -41.70744, -0.59032, -43.99492, 3.64664, -36.43639, -8.63589, -35.58226, -6.87915, -31.30511, -16.86504, -27.25218, -49.13799, 7.42427, -64.93407, 27.8885, -91.43912, 13.72736 ] + }, + { + "time": 0.5, + "vertices": [ 15.38278, 2.32626, 14.79962, -1.07825, 27.35364, -7.20694, 21.21991, -16.91832, 14.41569, -22.99199, 13.32208, -15.46672, 7.44369, -19.00499, 4.28751, -14.48547, -0.75341, -15.08464, -2.17496, 10.12184, -12.25928, 25.64998, -34.96158, 29.44566 ] + }, + { + "time": 0.7333, + "vertices": [ 15.09308, 1.05288, 14.79962, -1.07825, 29.31471, -5.56345, 22.04147, -11.23985, 17.07265, -17.90605, 14.88409, -12.29247, 9.96931, -16.52739, 5.96237, -13.67168, 1.09623, -14.87114, 6.63299, 1.45528, 0.94646, 14.0547, -13.72948, 21.76353 ] + }, + { + "time": 0.9, + "vertices": [ 15.39021, 2.35476, 14.79962, -1.07825, 30.48502, -8.07974, 20.9438, -17.10649, 14.09298, -23.07713, 13.78642, -18.1591, 6.98963, -21.69847, 4.8647, -19.53832, -1.88345, -20.04222, -2.67197, -4.61296, 1.39996, 6.57039, -5.39857, 11.80521 ], + "curve": [ 1.04, 0.16, 1.102, 0.42 ] + }, + { + "time": 1.1667, + "vertices": [ 14.85753, -0.48447, 14.79962, -1.07825, 31.73373, -3.33627, 23.01347, -7.29637, 19.29711, -14.50829, 15.4052, -6.61467, 12.34302, -11.34386, 7.84123, -5.91851, 5.43888, -8.17979, -11.60212, 24.89491, -17.7134, 42.73946, -43.67604, 43.44828 ] + }, + { + "time": 1.2333, + "vertices": [ 14.73198, -2.46391, 14.79962, -1.07825, 33.47556, 0.01297, 25.82463, -1.04625, 24.02032, -9.54625, 14.75859, 1.42812, 14.39835, -3.54301, 3.12071, 3.508, 4.10908, 2.27547, -21.98957, 36.34486, -37.84533, 60.85518, -77.18501, 53.72379 ] + }, + { + "time": 1.6333, + "vertices": [ 14.83754, -0.66654, 14.79962, -1.07825, 31.51825, -3.00034, 29.67143, -10.80186, 24.41619, -20.02477, 18.60539, -8.3275, 14.79422, -14.02153, 6.96751, -6.24761, 4.50495, -8.20305, 4.14837, -1.69408, 6.80164, 7.88496, -0.36778, 14.53739 ] + }, + { + "time": 1.8, + "offset": 6, + "vertices": [ 16.3118, -18.11099, 9.38689, -22.49081, 16.3118, -18.11099, 9.38689, -22.49081, 16.3118, -18.11099, 9.38689, -22.49081, 5.21931, -14.09406, 5.21931, -14.09406, 9.59631, -11.56969 ] + } + ] + }, + "back-leg": { + "back-leg": [ + { "time": 0.3 }, + { + "time": 0.3333, + "offset": 68, + "vertices": [ -1.72897, 2.75446, -1.5253, 2.94189, 0.0625, 3.6552, 0.01776, 3.65398, 0, 0, 0, 0, 0, 0, 0.0625, 3.6552, 0.01776, 3.65398, 0.90137, 3.54112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.98724, -1.57397, -0.03339, -2.08873, -0.0108, -2.08799, -0.51434, -2.02362, 0.98724, -1.57397, 0.87167, -1.68002, -0.03339, -2.08873, -0.0108, -2.08799 ] + }, + { "time": 0.4667, "curve": "stepped" }, + { "time": 1.3333 }, + { + "time": 1.4333, + "offset": 110, + "vertices": [ 2.52802, 0.00428, -0.03569, -4.90118, -3.71692, -3.19397, -4.88019, -0.43807, 5.17279, -0.0625, 5.1499, -0.4769, -0.07238, -10.06842, -7.6351, -6.56073, 6.64206, -0.09958, 6.61151, -0.62643, -0.09275, -12.93915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.01242, -1.65533, -1.25543, -1.0787, 0.86096, 0.02682, -0.01242, -1.65533, -1.25543, -1.0787 ] + }, + { "time": 1.5 } + ] + }, + "back-leg-path": { + "back-leg-path": [ + { "time": 1.4333 }, + { + "time": 1.5, + "vertices": [ 4.67719, -35.44354, 0, 0, -11.37146, 49.53738, -20.9989, -109.72336, 65.45837, -90.53627, -9.56653, -24.74756, 11.45203, -23.93552, -19.0719, 47.32281, -47.53955, 18.58409, 34.69244, -51.5341, 0, 0, 13.30164, -100.17206 ] + }, + { + "time": 1.5667, + "vertices": [ -0.9635, -22.43964, 0, 0, -13.80389, 27.61459, -41.00647, -55.1597, 7.62653, -96.25755, -24.12604, -24.11285, 7.19531, -37.87421, -31.47302, 7.7796, -12.34546, -3.32329, 26.55981, -38.73888, 0, 0, -13.62085, -280.84912 ] + }, + { "time": 1.6667 } + ] + }, + "body": { + "body": [ + {}, + { + "time": 0.3333, + "offset": 164, + "vertices": [ -0.01179, 0.02892, 0.00917, 0.0298, 0, 0, 1.17781, 0.89836, 1.48063, -0.04942, -6.68858, -1.30629, 4.38938, 4.03926, 4.59584, 3.27733, 5.6365, -0.11035, -4.92264, -0.8036, 4.54263, 1.06504, 3.29334, 0.58414, 2.94214, -1.40272, -4.28855, -0.56444, 5.07103, -0.2119, 2.95891, -0.75666, 1.83514, -2.22984, -4.31062, 0.6261, 6.11538, -0.87569, 3.7923, -1.67126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.17404, 0.22007, 0.27404, 0.06016 ] + }, + { + "time": 0.5333, + "offset": 164, + "vertices": [ -0.01887, 0.04627, 0.01467, 0.04768, 0, 0, 1.8845, 1.43737, 2.369, -0.07908, 1.46056, -1.33223, -0.75053, -3.7334, -2.8232, -2.55492, -3.80252, -0.19385, 2.81923, -1.5031, -0.33163, -6.75651, -4.28408, -5.23484, -6.6292, -1.34549, 3.83379, -1.12045, 0.51382, -8.79961, -4.81918, -7.38011, -8.4004, -2.66889, 3.83379, -1.12045, 0.51382, -8.79961, -4.81918, -7.38011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.27846, 0.35212, 0.43846, 0.09625 ] + }, + { + "time": 0.6333, + "offset": 170, + "vertices": [ -2.09907, 0.04961, -1.94301, 1.46154, 1.74966, 0.25744, 0.3765, -3.44555, -2.34343, -2.73069, -3.66285, -0.53693, 0, 0, 0, 0, 0, 0, 0, 0, 1.91689, -0.56022, 0.25691, -4.39981, -2.40959, -3.69006, -4.2002, -1.33444, 1.91689, -0.56022, 0.25691, -4.39981, -2.40959, -3.69006, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.66468, 1.25351, 0.05177, 1.41789 ] + }, + { "time": 0.7333 }, + { + "time": 0.7667, + "offset": 262, + "vertices": [ -2.27499, -1.60417, -2.23926, -1.61371, -2.2196, -1.74294, -1.80919, 2.86346, -1.11118, 2.362, -1.14221, 2.35901, 2.63101, 1.41101, 2.63216, 1.41742, -0.8147, 8.46568, 9.45621, 1.07874, 9.45622, 1.08002, -1.00012, 6.23984, 6.96738, 1.29987, 6.96741, 1.30219, -0.68823, 4.24005, 4.73441, 0.89532, 4.73448, 0.89594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.05484, 2.78093, 0.01666, 2.78223, 3.10799, -0.05426, -1.17972, 2.87598, -0.99005, 3.55937, 3.97198, 1.27319, 3.97208, 1.27423, -2.74237, 3.14401 ] + }, + { "time": 0.8333, "curve": "stepped" }, + { "time": 1.0667 }, + { + "time": 1.3333, + "offset": 142, + "vertices": [ 4.02271, -1.7984, 0.00684, -4.47887, -0.46118, -4.45537, -0.27441, -4.47041, 4.02271, -1.7984, 0.00684, -4.47887, -0.46118, -4.45537, -0.27441, -4.47041, 0.00684, -4.47887, -0.46118, -4.45537, -0.27441, -4.47041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.02271, -1.7984, 0.00684, -4.47887, -0.46118, -4.45537, -0.27441, -4.47041, 4.02271, -1.7984, 0.00684, -4.47887, -0.46118, -4.45537, -0.27441, -4.47041, 4.02271, -1.7984, 0.00684, -4.47887, -0.46118, -4.45537, -0.27441, -4.47041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.02271, -1.7984, 0.00684, -4.47887, -0.46118, -4.45537, -0.27441, -4.47041, 4.02271, -1.7984, 0.00684, -4.47887, -0.46118, -4.45537, -0.27441, -4.47041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.02271, -1.7984, 0.00684, -4.47887, -0.46118, -4.45537, -0.27441, -4.47041 ] + }, + { "time": 1.4333 } + ] + }, + "front-arm-path": { + "front-arm-path": [ + { + "offset": 6, + "vertices": [ -12.9209, -39.95981, -25.88348, -33.0735, -2.39359, -54.66837, -21.06042, -50.50607, -3.72093, -64.40555, -25.65784, -59.19217, -16.16644, -81.12411, -2.1976, -88.32147, 30.24409, -88.15561 ], + "curve": [ 0.168, 0.23, 0.234, 0.52 ] + }, + { + "time": 0.2667, + "offset": 6, + "vertices": [ -6.99447, -1.70715, -7.1554, 0.80232, -3.59954, 3.67111, -2.11671, 4.68478, -4.33497, 7.29962, -1.55899, 8.34363, 27.56593, 41.67679, 17.74266, 71.44806, -24.705, 82.18048 ] + }, + { + "time": 0.3333, + "offset": 6, + "vertices": [ 8.44957, 32.31442, 19.05118, 27.43202, -7.45588, 46.37772, 8.95805, 46.11075, -19.18214, 69.54529, 5.91905, 71.89777, -7.70708, 98.66168, -28.33836, 131.79349, -94.23925, 121.84799 ] + }, + { + "time": 0.5, + "offset": 6, + "vertices": [ -4.46663, -1.64532, -4.76291, -0.00836, -0.87421, 9.57532, 2.47301, 9.29126, 2.54158, 19.93958, 9.24467, 17.84605, 11.96303, 39.65105, 18.64986, 73.29482, -18.68584, 83.59488 ] + }, + { + "time": 0.7333, + "vertices": [ 1.51892, 9.45587, 0, 0, 13.39709, -12.54466, -14.78566, -30.5946, -24.41342, -23.63802, -4.34327, -35.02473, -16.13185, -31.39085, 2.1338, -39.26007, -11.50972, -37.59723, -15.87029, -47.6066, 18.76308, -41.01509, 31.61115, -31.85007 ] + }, + { + "time": 0.9, + "vertices": [ 9.82782, 19.70647, 0, 0, 3.91858, -30.30774, -25.13997, -44.18149, -38.81207, -32.83302, -19.46461, -65.00096, -40.64604, -54.33342, -17.7224, -82.51295, -45.03865, -71.37659, -54.09508, -88.97668, -26.63197, -110.76451, 15.70649, -122.51018 ], + "curve": [ 1.014, 0.08, 1.102, 0.43 ] + }, + { + "time": 1.1667, + "vertices": [ 1.11322, -5.72798, 0, 0, 30.58588, 14.41299, 2.31645, 14.79144, 7.25702, 13.09201, -5.5185, 19.48421, 1.5204, 20.19333, -5.93156, 27.15349, 3.76659, 27.53638, 2.69209, 66.05923, -3.6227, 102.98009, -55.09716, 104.45802 ] + }, + { + "time": 1.2333, + "vertices": [ 2.51172, -8.99214, 0, 0, 17.94202, 16.55356, -0.17567, 30.39557, 10.29065, 28.60089, -13.8863, 44.80336, 2.37764, 46.84573, -24.8344, 62.67894, -1.75221, 67.39691, -24.34264, 104.81256, -53.6653, 143.94118, -125.4433, 122.95863 ] + }, + { + "time": 1.6333, + "vertices": [ 0.50366, 6.17654, 0, 0, 23.90173, -9.97963, 7.67455, -20.09877, 0.29907, -21.51508, 3.98699, -21.66397, -3.70329, -21.71597, 5.89143, -23.30389, -2.47792, -23.91199, 13.15443, -25.63168, 30.1389, -9.45039, 27.80377, 5.99608 ] + }, + { + "time": 1.8, + "offset": 6, + "vertices": [ -12.9209, -39.95981, -25.88348, -33.0735, -2.39359, -54.66837, -21.06042, -50.50607, -3.72093, -64.40555, -25.65784, -59.19217, -16.16644, -81.12411, -2.1976, -88.32147, 30.24409, -88.15561 ] + } + ] + }, + "front-leg-path": { + "front-leg-path": [ + { "time": 0.5667 }, + { + "time": 0.6333, + "vertices": [ 0.16366, -9.90768, 0, 0, -1.90419, 16.9905, 16.55858, -93.6721, 21.4361, -76.03695, -0.72391, -31.37989, 8.2138, -30.29725, -24.90733, 16.177, -28.83566, 5.62576, 82.90022, -63.82897, 0, 0, -39.50021, -13.99933 ] + }, + { + "time": 0.7, + "vertices": [ 0.20398, -12.34892, 0, 0, -2.37338, 21.17692, 20.63858, -116.75269, 26.71791, -94.77228, -0.90228, -39.11182, 10.23766, -37.76243, -31.04443, 20.16298, -35.9407, 7.01193, 22.68159, 24.72715, 0, 0, -292.39255, -342.79443 ] + }, + { "time": 0.8 } + ] + } + } + } + } +} +} \ No newline at end of file diff --git a/spine-ts/webgl/example/assets/tank-pro.json b/spine-ts/webgl/example/assets/tank-pro.json new file mode 100644 index 000000000..00caad18a --- /dev/null +++ b/spine-ts/webgl/example/assets/tank-pro.json @@ -0,0 +1,5016 @@ +{ +"skeleton": { + "hash": "C8ZQzuFlwMI", + "spine": "4.0.05-beta", + "x": -5852.65, + "y": -348.5, + "width": 7202.61, + "height": 1298.88, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { "name": "tank-root", "parent": "root", "y": 146.79 }, + { "name": "tank-treads", "parent": "tank-root", "y": 48.35 }, + { "name": "tank-body", "parent": "tank-treads", "y": 10 }, + { "name": "guntower", "parent": "tank-body", "x": -21.72, "y": 245.48 }, + { "name": "antenna-root", "parent": "guntower", "x": 164.61, "y": 202.53 }, + { "name": "antenna1", "parent": "antenna-root", "length": 40, "rotation": 90, "y": 40, "color": "ffee00ff" }, + { "name": "antenna2", "parent": "antenna1", "length": 42, "x": 42, "color": "ffee00ff" }, + { "name": "antenna3", "parent": "antenna2", "length": 42, "x": 42, "color": "ffee00ff" }, + { "name": "antenna4", "parent": "antenna3", "length": 42, "x": 42, "color": "ffee00ff" }, + { "name": "antenna5", "parent": "antenna4", "length": 42, "x": 42, "color": "ffee00ff" }, + { "name": "antenna6", "parent": "antenna5", "length": 42, "x": 42, "color": "ffee00ff" }, + { "name": "cannon-connector", "parent": "guntower", "x": -235.05, "y": 96.07 }, + { "name": "cannon-target", "parent": "tank-root", "x": -2276.67, "y": 400.17, "color": "0096ffff" }, + { "name": "cannon", "parent": "cannon-connector", "length": 946.68, "rotation": 180, "color": "ff4000ff" }, + { + "name": "machinegun-mount", + "parent": "guntower", + "length": 90.98, + "rotation": 90, + "x": -123.73, + "y": 218.33, + "color": "15ff00ff" + }, + { "name": "machinegun-target", "parent": "tank-root", "x": -2272.76, "y": 607.77, "color": "0096ffff" }, + { + "name": "machinegun", + "parent": "machinegun-mount", + "length": 208.95, + "rotation": 90, + "x": 91.52, + "y": -1.03, + "color": "15ff00ff" + }, + { "name": "machinegun-tip", "parent": "machinegun", "x": 210.43, "y": -12.21 }, + { "name": "rock", "parent": "root", "x": -1925.2, "y": 33.17 }, + { + "name": "smoke-root", + "parent": "tank-root", + "x": -1200.38, + "y": 405.76, + "scaleX": -6.5, + "scaleY": 6.5, + "color": "ff4000ff" + }, + { "name": "smoke-glow", "parent": "smoke-root", "x": 62.92, "y": -0.71, "color": "ff4000ff" }, + { + "name": "smoke1", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke10", + "parent": "smoke-root", + "rotation": -103.52, + "x": 25.45, + "y": 2.48, + "scaleX": 3.9011, + "scaleY": 2.8523, + "color": "ff4000ff" + }, + { + "name": "smoke11", + "parent": "smoke-root", + "rotation": -103.52, + "x": 25.45, + "y": 2.48, + "scaleX": 3.9011, + "scaleY": 2.8523, + "color": "ff4000ff" + }, + { + "name": "smoke12", + "parent": "smoke-root", + "rotation": -103.52, + "x": 25.45, + "y": 2.48, + "scaleX": 3.9011, + "scaleY": 2.8523, + "color": "ff4000ff" + }, + { + "name": "smoke13", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke14", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke15", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke16", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke17", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke18", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke2", + "parent": "smoke-root", + "rotation": -84.14, + "x": 45.06, + "y": 29.7, + "scaleX": 3.3345, + "scaleY": 3.3345, + "color": "ff4000ff" + }, + { + "name": "smoke20", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke21", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke22", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke23", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke24", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke25", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke26", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke27", + "parent": "smoke-root", + "rotation": -179.99, + "x": 14.75, + "y": -1.55, + "scaleX": 1.6484, + "scaleY": 1.6484, + "color": "ff4000ff" + }, + { + "name": "smoke3", + "parent": "smoke-root", + "rotation": -87.91, + "x": 55.15, + "y": -17.5, + "scaleX": 3.0415, + "scaleY": 4.157, + "color": "ff4000ff" + }, + { + "name": "smoke4", + "parent": "smoke-root", + "rotation": -87.91, + "x": 69.25, + "y": 8.01, + "scaleX": 2.1808, + "scaleY": 2.9807, + "color": "ff4000ff" + }, + { + "name": "smoke5", + "parent": "smoke-root", + "rotation": -87.91, + "x": 80.63, + "y": 59.88, + "scaleX": 4.5119, + "scaleY": 2.9725, + "color": "ff4000ff" + }, + { + "name": "smoke6", + "parent": "smoke-root", + "rotation": -87.91, + "x": 96.19, + "y": 25.65, + "scaleX": 3.7912, + "scaleY": 3.0552, + "color": "ff4000ff" + }, + { + "name": "smoke7", + "parent": "smoke-root", + "rotation": 153.68, + "x": 85.65, + "y": -50.47, + "scaleX": 4.8523, + "scaleY": 3.6528, + "color": "ff4000ff" + }, + { + "name": "smoke8", + "parent": "smoke-root", + "rotation": 67.58, + "x": 47.85, + "y": -42.55, + "scaleX": 4.0006, + "scaleY": 3.4796, + "color": "ff4000ff" + }, + { + "name": "smoke9", + "parent": "smoke-root", + "rotation": 150.05, + "x": 104.02, + "y": -8.73, + "scaleX": 4.2074, + "scaleY": 3.0762, + "color": "ff4000ff" + }, + { "name": "tank-glow", "parent": "tank-root", "x": -247.72, "y": 404.37, "scaleX": 1.0582, "scaleY": 0.6785 }, + { + "name": "tread", + "parent": "tank-root", + "length": 82, + "rotation": 180, + "x": -22.9, + "y": 213.86, + "scaleX": 0.9933, + "color": "e64344ff" + }, + { "name": "wheel-mid-center", "parent": "tank-root", "y": -66.21 }, + { "name": "tread-collider1", "parent": "wheel-mid-center", "x": -329.58, "y": -85.44, "color": "ff00fbff" }, + { "name": "tread-collider2", "parent": "wheel-mid-center", "x": -165.95, "y": -85.44, "color": "ff00fbff" }, + { "name": "tread-collider3", "parent": "wheel-mid-center", "y": -85.44, "color": "ff00fbff" }, + { "name": "tread-collider4", "parent": "wheel-mid-center", "x": 163.56, "y": -85.44, "color": "ff00fbff" }, + { "name": "tread-collider5", "parent": "wheel-mid-center", "x": 329.12, "y": -85.44, "color": "ff00fbff" }, + { "name": "tread-gravity1", "parent": "tank-root", "rotation": 180, "x": -175.35, "y": 149.31, "color": "ff00fbff" }, + { "name": "tread-gravity2", "parent": "tank-root", "rotation": 180, "x": 177.89, "y": 144.78, "color": "ff00fbff" }, + { + "name": "tread10", + "parent": "tread", + "length": 82, + "rotation": 48.85, + "x": 662.9, + "y": -120.35, + "color": "e64344ff" + }, + { + "name": "tread11", + "parent": "tread", + "length": 82, + "rotation": 97.99, + "x": 651.5, + "y": -39.69, + "color": "e64344ff" + }, + { + "name": "tread12", + "parent": "tread", + "length": 82, + "rotation": 113.79, + "x": 618.43, + "y": 34.83, + "color": "e64344ff" + }, + { + "name": "tread13", + "parent": "tread", + "length": 82, + "rotation": 122.96, + "x": 573.82, + "y": 103.18, + "color": "e64344ff" + }, + { + "name": "tread14", + "parent": "tread", + "length": 82, + "rotation": 142.01, + "x": 509.19, + "y": 153.3, + "color": "e64344ff" + }, + { + "name": "tread15", + "parent": "tread", + "length": 82, + "rotation": 157.84, + "x": 433.25, + "y": 184.02, + "color": "e64344ff" + }, + { + "name": "tread16", + "parent": "tread", + "length": 82, + "rotation": 157.37, + "x": 357.56, + "y": 215.37, + "color": "e64344ff" + }, + { + "name": "tread17", + "parent": "tread", + "length": 82, + "rotation": 157.29, + "x": 281.92, + "y": 246.8, + "color": "e64344ff" + }, + { + "name": "tread18", + "parent": "tread", + "length": 82, + "rotation": 157.19, + "x": 206.33, + "y": 278.38, + "color": "e64344ff" + }, + { + "name": "tread19", + "parent": "tread", + "length": 82, + "rotation": 157.14, + "x": 130.77, + "y": 310.02, + "color": "e64344ff" + }, + { "name": "tread2", "parent": "tread", "length": 82, "x": 82, "color": "e64344ff" }, + { + "name": "tread20", + "parent": "tread", + "length": 82, + "rotation": 157.34, + "x": 55.1, + "y": 341.41, + "color": "e64344ff" + }, + { + "name": "tread21", + "parent": "tread", + "length": 82, + "rotation": 158.11, + "x": -20.99, + "y": 371.77, + "color": "e64344ff" + }, + { + "name": "tread22", + "parent": "tread", + "length": 82, + "rotation": 157.99, + "x": -97.02, + "y": 402.28, + "color": "e64344ff" + }, + { + "name": "tread23", + "parent": "tread", + "length": 82, + "rotation": 157.59, + "x": -172.83, + "y": 433.33, + "color": "e64344ff" + }, + { + "name": "tread24", + "parent": "tread", + "length": 82, + "rotation": 156.86, + "x": -248.23, + "y": 465.34, + "color": "e64344ff" + }, + { + "name": "tread25", + "parent": "tread", + "length": 82, + "rotation": 177.94, + "x": -330.17, + "y": 468.27, + "color": "e64344ff" + }, + { + "name": "tread26", + "parent": "tread", + "length": 82, + "rotation": -169.55, + "x": -410.81, + "y": 453.5, + "color": "e64344ff" + }, + { + "name": "tread27", + "parent": "tread", + "length": 82, + "rotation": -163.86, + "x": -489.58, + "y": 430.86, + "color": "e64344ff" + }, + { + "name": "tread28", + "parent": "tread", + "length": 82, + "rotation": -139.13, + "x": -551.59, + "y": 377.57, + "color": "e64344ff" + }, + { + "name": "tread29", + "parent": "tread", + "length": 82, + "rotation": -89.04, + "x": -550.21, + "y": 296.14, + "color": "e64344ff" + }, + { + "name": "tread3", + "parent": "tread", + "length": 82, + "rotation": -8.91, + "x": 163.01, + "y": -12.61, + "color": "e64344ff" + }, + { + "name": "tread30", + "parent": "tread", + "length": 82, + "rotation": -38.99, + "x": -486.48, + "y": 244.89, + "color": "e64344ff" + }, + { + "name": "tread31", + "parent": "tread", + "length": 82, + "rotation": -20.04, + "x": -409.45, + "y": 216.98, + "color": "e64344ff" + }, + { + "name": "tread32", + "parent": "tread", + "length": 82, + "rotation": -46.24, + "x": -352.74, + "y": 158.15, + "color": "e64344ff" + }, + { + "name": "tread33", + "parent": "tread", + "length": 82, + "rotation": -27.95, + "x": -280.3, + "y": 119.98, + "color": "e64344ff" + }, + { + "name": "tread34", + "parent": "tread", + "length": 82, + "rotation": 10.46, + "x": -199.66, + "y": 134.77, + "color": "e64344ff" + }, + { + "name": "tread35", + "parent": "tread", + "length": 82, + "rotation": -17.9, + "x": -121.63, + "y": 109.73, + "color": "e64344ff" + }, + { + "name": "tread36", + "parent": "tread", + "length": 82, + "rotation": -36.82, + "x": -55.99, + "y": 60.92, + "color": "fbff00ff" + }, + { + "name": "tread4", + "parent": "tread", + "length": 82, + "rotation": -29.27, + "x": 234.55, + "y": -52.43, + "color": "e64344ff" + }, + { + "name": "tread5", + "parent": "tread", + "length": 82, + "rotation": -45.26, + "x": 292.26, + "y": -110.28, + "color": "e64344ff" + }, + { + "name": "tread6", + "parent": "tread", + "length": 82, + "rotation": -15.29, + "x": 371.36, + "y": -131.76, + "color": "e64344ff" + }, + { + "name": "tread7", + "parent": "tread", + "length": 82, + "rotation": -5.49, + "x": 452.98, + "y": -139.55, + "color": "e64344ff" + }, + { + "name": "tread8", + "parent": "tread", + "length": 82, + "rotation": -24.99, + "x": 527.31, + "y": -173.95, + "color": "e64344ff" + }, + { + "name": "tread9", + "parent": "tread", + "length": 82, + "rotation": -5.44, + "x": 608.94, + "y": -181.68, + "color": "e64344ff" + }, + { "name": "wheel-big-root1", "parent": "tank-treads", "x": -549.6, "y": 14.4, "color": "abe323ff" }, + { "name": "wheel-big-root2", "parent": "tank-treads", "x": 547.34, "y": 14.4 }, + { "name": "wheel-big1", "parent": "wheel-big-root1", "x": -0.02, "color": "abe323ff" }, + { "name": "wheel-big2", "parent": "wheel-big-root2" }, + { "name": "wheel-mid-root1", "parent": "wheel-mid-center", "x": -410.57, "color": "abe323ff" }, + { "name": "wheel-mid-root2", "parent": "wheel-mid-center", "x": -246.95 }, + { "name": "wheel-mid-root3", "parent": "wheel-mid-center", "x": -82.73 }, + { "name": "wheel-mid-root4", "parent": "wheel-mid-center", "x": 80.89 }, + { "name": "wheel-mid-root5", "parent": "wheel-mid-center", "x": 244.51 }, + { "name": "wheel-mid-root6", "parent": "wheel-mid-center", "x": 408.74 }, + { "name": "wheel-mid1", "parent": "wheel-mid-root1", "color": "abe323ff" }, + { "name": "wheel-mid2", "parent": "wheel-mid-root2" }, + { "name": "wheel-mid3", "parent": "wheel-mid-root3" }, + { "name": "wheel-mid4", "parent": "wheel-mid-root4" }, + { "name": "wheel-mid5", "parent": "wheel-mid-root5" }, + { "name": "wheel-mid6", "parent": "wheel-mid-root6" }, + { "name": "wheel-small-root1", "parent": "tank-treads", "x": -337.39, "y": 109.43 }, + { "name": "wheel-small-root2", "parent": "tank-treads", "x": 0.09, "y": 109.43 }, + { "name": "wheel-small-root3", "parent": "tank-treads", "x": 334.69, "y": 109.43 }, + { "name": "wheel-small1", "parent": "wheel-small-root1", "color": "abe323ff" }, + { "name": "wheel-small2", "parent": "wheel-small-root2" }, + { "name": "wheel-small3", "parent": "wheel-small-root3" } +], +"slots": [ + { "name": "rock", "bone": "rock", "attachment": "rock" }, + { "name": "ground", "bone": "root", "attachment": "ground" }, + { "name": "ground2", "bone": "root", "attachment": "ground" }, + { "name": "ground3", "bone": "root", "attachment": "ground" }, + { "name": "ground4", "bone": "root", "attachment": "ground" }, + { "name": "ground5", "bone": "root", "attachment": "ground" }, + { "name": "ground6", "bone": "root", "attachment": "ground" }, + { "name": "ground7", "bone": "root", "attachment": "ground" }, + { "name": "tank-body-shadow", "bone": "tank-body", "color": "ffffffb9", "attachment": "tank-bottom-shadow" }, + { "name": "bottom", "bone": "tank-body", "attachment": "tank-bottom" }, + { "name": "tread-inside1", "bone": "tread", "attachment": "tread-inside" }, + { "name": "tread-inside53", "bone": "tread27", "attachment": "tread-inside" }, + { "name": "tread-inside27", "bone": "tread14", "attachment": "tread-inside" }, + { "name": "tread-inside3", "bone": "tread2", "attachment": "tread-inside" }, + { "name": "tread-inside55", "bone": "tread28", "attachment": "tread-inside" }, + { "name": "tread-inside29", "bone": "tread15", "attachment": "tread-inside" }, + { "name": "tread-inside5", "bone": "tread3", "attachment": "tread-inside" }, + { "name": "tread-inside57", "bone": "tread29", "attachment": "tread-inside" }, + { "name": "tread-inside31", "bone": "tread16", "attachment": "tread-inside" }, + { "name": "tread-inside7", "bone": "tread4", "attachment": "tread-inside" }, + { "name": "tread-inside59", "bone": "tread30", "attachment": "tread-inside" }, + { "name": "tread-inside33", "bone": "tread17", "attachment": "tread-inside" }, + { "name": "tread-inside9", "bone": "tread5", "attachment": "tread-inside" }, + { "name": "tread-inside61", "bone": "tread31", "attachment": "tread-inside" }, + { "name": "tread-inside35", "bone": "tread18", "attachment": "tread-inside" }, + { "name": "tread-inside11", "bone": "tread6", "attachment": "tread-inside" }, + { "name": "tread-inside63", "bone": "tread32", "attachment": "tread-inside" }, + { "name": "tread-inside37", "bone": "tread19", "attachment": "tread-inside" }, + { "name": "tread-inside13", "bone": "tread7", "attachment": "tread-inside" }, + { "name": "tread-inside65", "bone": "tread33", "attachment": "tread-inside" }, + { "name": "tread-inside39", "bone": "tread20", "attachment": "tread-inside" }, + { "name": "tread-inside15", "bone": "tread8", "attachment": "tread-inside" }, + { "name": "tread-inside67", "bone": "tread34", "attachment": "tread-inside" }, + { "name": "tread-inside69", "bone": "tread35", "attachment": "tread-inside" }, + { "name": "tread-inside71", "bone": "tread36", "attachment": "tread-inside" }, + { "name": "tread-inside41", "bone": "tread21", "attachment": "tread-inside" }, + { "name": "tread-inside17", "bone": "tread9", "attachment": "tread-inside" }, + { "name": "tread-inside43", "bone": "tread22", "attachment": "tread-inside" }, + { "name": "tread-inside19", "bone": "tread10", "attachment": "tread-inside" }, + { "name": "tread-inside45", "bone": "tread23", "attachment": "tread-inside" }, + { "name": "tread-inside21", "bone": "tread11", "attachment": "tread-inside" }, + { "name": "tread-inside47", "bone": "tread24", "attachment": "tread-inside" }, + { "name": "tread-inside23", "bone": "tread12", "attachment": "tread-inside" }, + { "name": "tread-inside49", "bone": "tread25", "attachment": "tread-inside" }, + { "name": "tread-inside25", "bone": "tread13", "attachment": "tread-inside" }, + { "name": "tread-inside51", "bone": "tread26", "attachment": "tread-inside" }, + { "name": "tread-inside2", "bone": "tread", "attachment": "tread-inside" }, + { "name": "tread-inside54", "bone": "tread27", "attachment": "tread-inside" }, + { "name": "tread-inside28", "bone": "tread14", "attachment": "tread-inside" }, + { "name": "tread-inside4", "bone": "tread2", "attachment": "tread-inside" }, + { "name": "tread-inside56", "bone": "tread28", "attachment": "tread-inside" }, + { "name": "tread-inside30", "bone": "tread15", "attachment": "tread-inside" }, + { "name": "tread-inside6", "bone": "tread3", "attachment": "tread-inside" }, + { "name": "tread-inside58", "bone": "tread29", "attachment": "tread-inside" }, + { "name": "tread-inside32", "bone": "tread16", "attachment": "tread-inside" }, + { "name": "tread-inside8", "bone": "tread4", "attachment": "tread-inside" }, + { "name": "tread-inside60", "bone": "tread30", "attachment": "tread-inside" }, + { "name": "tread-inside34", "bone": "tread17", "attachment": "tread-inside" }, + { "name": "tread-inside10", "bone": "tread5", "attachment": "tread-inside" }, + { "name": "tread-inside62", "bone": "tread31", "attachment": "tread-inside" }, + { "name": "tread-inside36", "bone": "tread18", "attachment": "tread-inside" }, + { "name": "tread-inside12", "bone": "tread6", "attachment": "tread-inside" }, + { "name": "tread-inside64", "bone": "tread32", "attachment": "tread-inside" }, + { "name": "tread-inside38", "bone": "tread19", "attachment": "tread-inside" }, + { "name": "tread-inside14", "bone": "tread7", "attachment": "tread-inside" }, + { "name": "tread-inside66", "bone": "tread33", "attachment": "tread-inside" }, + { "name": "tread-inside40", "bone": "tread20", "attachment": "tread-inside" }, + { "name": "tread-inside16", "bone": "tread8", "attachment": "tread-inside" }, + { "name": "tread-inside68", "bone": "tread34", "attachment": "tread-inside" }, + { "name": "tread-inside70", "bone": "tread35", "attachment": "tread-inside" }, + { "name": "tread-inside72", "bone": "tread36", "attachment": "tread-inside" }, + { "name": "tread-inside42", "bone": "tread21", "attachment": "tread-inside" }, + { "name": "tread-inside18", "bone": "tread9", "attachment": "tread-inside" }, + { "name": "tread-inside44", "bone": "tread22", "attachment": "tread-inside" }, + { "name": "tread-inside20", "bone": "tread10", "attachment": "tread-inside" }, + { "name": "tread-inside46", "bone": "tread23", "attachment": "tread-inside" }, + { "name": "tread-inside22", "bone": "tread11", "attachment": "tread-inside" }, + { "name": "tread-inside48", "bone": "tread24", "attachment": "tread-inside" }, + { "name": "tread-inside24", "bone": "tread12", "attachment": "tread-inside" }, + { "name": "tread-inside50", "bone": "tread25", "attachment": "tread-inside" }, + { "name": "tread-inside26", "bone": "tread13", "attachment": "tread-inside" }, + { "name": "tread-inside52", "bone": "tread26", "attachment": "tread-inside" }, + { "name": "wheel-big", "bone": "wheel-big1", "color": "dbdbdbff", "attachment": "wheel-big" }, + { "name": "wheel-big2", "bone": "wheel-big2", "color": "dbdbdbff", "attachment": "wheel-big" }, + { "name": "wheel-mid", "bone": "wheel-mid1", "attachment": "wheel-mid" }, + { "name": "wheel-mid2", "bone": "wheel-mid2", "attachment": "wheel-mid" }, + { "name": "wheel-mid3", "bone": "wheel-mid3", "attachment": "wheel-mid" }, + { "name": "wheel-mid4", "bone": "wheel-mid4", "attachment": "wheel-mid" }, + { "name": "wheel-mid5", "bone": "wheel-mid5", "attachment": "wheel-mid" }, + { "name": "wheel-mid6", "bone": "wheel-mid6", "attachment": "wheel-mid" }, + { "name": "wheel-small", "bone": "wheel-small1", "attachment": "wheel-small" }, + { "name": "wheel-small2", "bone": "wheel-small2", "attachment": "wheel-small" }, + { "name": "wheel-small3", "bone": "wheel-small3", "attachment": "wheel-small" }, + { "name": "wheel-mid-overlay", "bone": "wheel-mid-root1", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" }, + { "name": "wheel-mid-overlay2", "bone": "wheel-mid-root2", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" }, + { "name": "wheel-mid-overlay3", "bone": "wheel-mid-root3", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" }, + { "name": "wheel-mid-overlay4", "bone": "wheel-mid-root4", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" }, + { "name": "wheel-mid-overlay5", "bone": "wheel-mid-root5", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" }, + { "name": "wheel-mid-overlay6", "bone": "wheel-mid-root6", "color": "ffffffec", "attachment": "wheel-mid-overlay", "blend": "multiply" }, + { "name": "wheel-big-overlay1", "bone": "wheel-big-root1", "color": "ffffffe9", "attachment": "wheel-big-overlay", "blend": "multiply" }, + { "name": "wheel-big-overlay2", "bone": "wheel-big-root2", "color": "ffffffe9", "attachment": "wheel-big-overlay", "blend": "multiply" }, + { "name": "treads-path", "bone": "tank-root", "attachment": "treads-path" }, + { "name": "tread", "bone": "tread", "attachment": "tread" }, + { "name": "tread27", "bone": "tread27", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread14", "bone": "tread14", "attachment": "tread" }, + { "name": "tread2", "bone": "tread2", "attachment": "tread" }, + { "name": "tread28", "bone": "tread28", "attachment": "tread" }, + { "name": "tread15", "bone": "tread15", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread3", "bone": "tread3", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread29", "bone": "tread29", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread16", "bone": "tread16", "attachment": "tread" }, + { "name": "tread4", "bone": "tread4", "attachment": "tread" }, + { "name": "tread30", "bone": "tread30", "attachment": "tread" }, + { "name": "tread17", "bone": "tread17", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread5", "bone": "tread5", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread31", "bone": "tread31", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread18", "bone": "tread18", "attachment": "tread" }, + { "name": "tread6", "bone": "tread6", "attachment": "tread" }, + { "name": "tread32", "bone": "tread32", "attachment": "tread" }, + { "name": "tread19", "bone": "tread19", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread7", "bone": "tread7", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread33", "bone": "tread33", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread20", "bone": "tread20", "attachment": "tread" }, + { "name": "tread8", "bone": "tread8", "attachment": "tread" }, + { "name": "tread34", "bone": "tread34", "attachment": "tread" }, + { "name": "tread35", "bone": "tread35", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread36", "bone": "tread36", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread21", "bone": "tread21", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread9", "bone": "tread9", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread22", "bone": "tread22", "attachment": "tread" }, + { "name": "tread10", "bone": "tread10", "attachment": "tread" }, + { "name": "tread23", "bone": "tread23", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread11", "bone": "tread11", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread24", "bone": "tread24", "attachment": "tread" }, + { "name": "tread12", "bone": "tread12", "attachment": "tread" }, + { "name": "tread25", "bone": "tread25", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread13", "bone": "tread13", "color": "adc9b8ff", "attachment": "tread" }, + { "name": "tread26", "bone": "tread26", "attachment": "tread" }, + { "name": "machinegun", "bone": "machinegun", "attachment": "machinegun" }, + { "name": "machinegun-mount", "bone": "machinegun-mount", "attachment": "machinegun-mount" }, + { "name": "tank-top", "bone": "tank-body", "attachment": "tank-top" }, + { "name": "guntower", "bone": "guntower", "attachment": "guntower" }, + { "name": "cannon", "bone": "cannon", "attachment": "cannon" }, + { "name": "cannon-connector", "bone": "cannon-connector", "attachment": "cannon-connector" }, + { "name": "antenna", "bone": "antenna-root", "attachment": "antenna" }, + { "name": "smoke-puff1-bg", "bone": "smoke1", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg13", "bone": "smoke13", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg14", "bone": "smoke14", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg15", "bone": "smoke15", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg16", "bone": "smoke16", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg17", "bone": "smoke17", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg18", "bone": "smoke18", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg20", "bone": "smoke20", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg21", "bone": "smoke21", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg22", "bone": "smoke22", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg23", "bone": "smoke23", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg24", "bone": "smoke24", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg25", "bone": "smoke25", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg26", "bone": "smoke26", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg27", "bone": "smoke27", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg2", "bone": "smoke2", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg5", "bone": "smoke5", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg6", "bone": "smoke6", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg7", "bone": "smoke7", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg10", "bone": "smoke10", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg11", "bone": "smoke11", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg12", "bone": "smoke12", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg8", "bone": "smoke8", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg9", "bone": "smoke9", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg4", "bone": "smoke4", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-bg3", "bone": "smoke3", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg", "bone": "smoke1", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg13", "bone": "smoke13", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg14", "bone": "smoke14", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg15", "bone": "smoke15", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg16", "bone": "smoke16", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg17", "bone": "smoke17", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg18", "bone": "smoke18", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg20", "bone": "smoke20", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg21", "bone": "smoke21", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg22", "bone": "smoke22", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg23", "bone": "smoke23", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg24", "bone": "smoke24", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg25", "bone": "smoke25", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg26", "bone": "smoke26", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg27", "bone": "smoke27", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg2", "bone": "smoke2", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg5", "bone": "smoke5", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg6", "bone": "smoke6", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg7", "bone": "smoke7", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg10", "bone": "smoke10", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg11", "bone": "smoke11", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg12", "bone": "smoke12", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg8", "bone": "smoke8", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg9", "bone": "smoke9", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg4", "bone": "smoke4", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-puff1-fg3", "bone": "smoke3", "color": "ecececff", "dark": "000000" }, + { "name": "smoke-glow", "bone": "smoke-glow", "blend": "additive" }, + { "name": "clipping", "bone": "tank-body", "attachment": "clipping" }, + { "name": "tank-glow", "bone": "tank-glow", "color": "fcdc6da7", "blend": "additive" } +], +"ik": [ + { + "name": "cannon-ik", + "bones": [ "cannon" ], + "target": "cannon-target" + }, + { + "name": "machinegun-ik", + "order": 1, + "bones": [ "machinegun" ], + "target": "machinegun-target", + "mix": 0 + } +], +"transform": [ + { + "name": "wheel-big-transform", + "order": 8, + "bones": [ "wheel-big2" ], + "target": "wheel-big1", + "rotation": 65.6, + "translateMix": 0, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "wheel-mid1-transform", + "order": 3, + "bones": [ "wheel-mid2", "wheel-mid4" ], + "target": "wheel-mid1", + "rotation": 93, + "translateMix": 0, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "wheel-mid2-transform", + "order": 4, + "bones": [ "wheel-mid3", "wheel-mid5" ], + "target": "wheel-mid1", + "rotation": -89, + "translateMix": 0, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "wheel-mid3-transform", + "order": 5, + "bones": [ "wheel-mid6" ], + "target": "wheel-mid1", + "rotation": -152.6, + "translateMix": 0, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "wheel-small1-transform", + "order": 6, + "bones": [ "wheel-small2" ], + "target": "wheel-small1", + "rotation": 87, + "translateMix": 0, + "scaleMix": 0, + "shearMix": 0 + }, + { + "name": "wheel-small2-transform", + "order": 7, + "bones": [ "wheel-small3" ], + "target": "wheel-small1", + "rotation": 54.9, + "translateMix": 0, + "scaleMix": 0, + "shearMix": 0 + } +], +"path": [ + { + "name": "treads-path", + "order": 2, + "bones": [ "tread", "tread2", "tread3", "tread4", "tread5", "tread6", "tread7", "tread8", "tread9", "tread10", "tread11", "tread12", "tread13", "tread14", "tread15", "tread16", "tread17", "tread18", "tread19", "tread20", "tread21", "tread22", "tread23", "tread24", "tread25", "tread26", "tread27", "tread28", "tread29", "tread30", "tread31", "tread32", "tread33", "tread34", "tread35", "tread36" ], + "target": "treads-path", + "rotateMode": "chain" + } +], +"skins": [ + { + "name": "default", + "attachments": { + "antenna": { + "antenna": { + "type": "mesh", + "uvs": [ 0.64286, 0.07876, 0.65354, 0.1535, 0.66325, 0.22138, 0.67367, 0.29433, 0.68383, 0.36543, 0.6936, 0.43374, 0.70311, 0.5003, 0.71311, 0.57031, 0.72327, 0.64139, 0.73406, 0.71689, 0.74441, 0.7893, 0.75614, 0.87141, 0.76905, 0.94311, 1, 0.94311, 1, 1, 0, 1, 0, 0.94311, 0.20106, 0.94311, 0.20106, 0.87094, 0.21461, 0.78847, 0.22651, 0.71607, 0.23886, 0.64099, 0.25036, 0.57105, 0.26206, 0.49983, 0.27306, 0.43291, 0.2843, 0.36454, 0.29593, 0.29382, 0.308, 0.22038, 0.319, 0.15345, 0.33142, 0.07796, 0.34423, 0, 0.63161, 0 ], + "triangles": [ 30, 31, 0, 29, 30, 0, 29, 0, 1, 28, 29, 1, 28, 1, 2, 27, 28, 2, 27, 2, 3, 26, 3, 4, 25, 26, 4, 25, 4, 5, 26, 27, 3, 24, 5, 6, 23, 24, 6, 7, 23, 6, 24, 25, 5, 22, 7, 8, 21, 22, 8, 21, 8, 9, 7, 22, 23, 20, 9, 10, 19, 20, 10, 20, 21, 9, 19, 10, 11, 18, 19, 11, 17, 18, 11, 17, 11, 12, 15, 16, 17, 12, 13, 14, 15, 17, 12, 14, 15, 12 ], + "vertices": [ 2, 10, 65.38, -3.14, 0.3125, 11, 23.38, -3.14, 0.6875, 2, 10, 42.73, -3.38, 0.66667, 11, 0.73, -3.38, 0.33333, 2, 9, 64.17, -3.59, 0.33333, 10, 22.17, -3.59, 0.66667, 2, 9, 42.06, -3.82, 0.66667, 10, 0.06, -3.82, 0.33333, 2, 8, 62.52, -4.04, 0.33333, 9, 20.52, -4.04, 0.66667, 2, 8, 41.82, -4.26, 0.66667, 9, -0.18, -4.26, 0.33333, 2, 7, 63.65, -4.47, 0.33333, 8, 21.65, -4.47, 0.66667, 2, 7, 42.44, -4.69, 0.66667, 8, 0.44, -4.69, 0.33333, 2, 6, 62.9, -4.91, 0.33333, 7, 20.9, -4.91, 0.66667, 2, 6, 40.03, -5.15, 0.66667, 7, -1.97, -5.15, 0.33333, 2, 5, 5.38, 58.09, 0.4, 6, 18.09, -5.38, 0.6, 1, 5, 5.64, 33.21, 1, 1, 5, 5.92, 11.48, 1, 1, 5, 11, 11.48, 1, 1, 5, 11, -5.76, 1, 1, 5, -11, -5.76, 1, 1, 5, -11, 11.48, 1, 1, 5, -6.58, 11.48, 1, 1, 5, -6.58, 33.35, 1, 2, 5, -6.28, 58.34, 0.4, 6, 18.34, 6.28, 0.6, 2, 6, 40.27, 6.02, 0.66667, 7, -1.73, 6.02, 0.33333, 2, 6, 63.03, 5.75, 0.33333, 7, 21.03, 5.75, 0.66667, 2, 7, 42.22, 5.49, 0.66667, 8, 0.22, 5.49, 0.33333, 2, 7, 63.8, 5.23, 0.33333, 8, 21.8, 5.23, 0.66667, 2, 8, 42.07, 4.99, 0.66667, 9, 0.07, 4.99, 0.33333, 2, 8, 62.79, 4.75, 0.33333, 9, 20.79, 4.75, 0.66667, 2, 9, 42.22, 4.49, 0.66667, 10, 0.22, 4.49, 0.33333, 2, 9, 64.47, 4.22, 0.33333, 10, 22.47, 4.22, 0.66667, 2, 10, 42.75, 3.98, 0.66667, 11, 0.75, 3.98, 0.33333, 2, 10, 65.62, 3.71, 0.3125, 11, 23.62, 3.71, 0.6875, 1, 11, 47.24, 3.43, 1, 1, 11, 47.24, -2.9, 1 ], + "hull": 32, + "edges": [ 28, 30, 28, 26, 30, 32, 26, 24, 24, 22, 32, 34, 34, 24, 34, 36, 36, 22, 60, 62, 38, 36, 20, 22, 38, 20, 40, 38, 18, 20, 40, 18, 42, 40, 16, 18, 42, 16, 44, 42, 14, 16, 44, 14, 46, 44, 12, 14, 46, 12, 48, 46, 10, 12, 48, 10, 50, 48, 8, 10, 50, 8, 52, 50, 6, 8, 52, 6, 54, 52, 4, 6, 54, 4, 56, 54, 2, 4, 56, 2, 60, 58, 58, 56, 62, 0, 0, 2, 58, 0 ], + "width": 22, + "height": 303 + } + }, + "bottom": { + "tank-bottom": { "x": -16.67, "y": 9.89, "width": 1285, "height": 276 } + }, + "cannon": { + "cannon": { "x": 481.95, "y": -0.03, "rotation": 180, "width": 931, "height": 58 } + }, + "cannon-connector": { + "cannon-connector": { + "type": "mesh", + "uvs": [ 1, 0.03237, 1, 0.10603, 0.90988, 0.32859, 0.81975, 0.55116, 0.72963, 0.77373, 0.6395, 0.9963, 0.42157, 0.9963, 0.20364, 0.9963, 0, 0.85434, 0, 0.69902, 0.02268, 0.52884, 0, 0.31444, 0.21602, 0.12998, 0.43368, 0, 0.63547, 0.0037, 0.48408, 0.77059, 0.31496, 0.52497, 0.64133, 0.19648, 0.21516, 0.76766, 0.58346, 0.56471, 0.68444, 0.40146, 0.46758, 0.36649, 0.28935, 0.34604 ], + "triangles": [ 7, 18, 6, 6, 18, 15, 7, 8, 18, 8, 9, 18, 18, 16, 15, 15, 16, 19, 9, 10, 18, 18, 10, 16, 16, 21, 19, 19, 21, 20, 10, 22, 16, 10, 11, 22, 16, 22, 21, 21, 17, 20, 21, 12, 13, 17, 13, 14, 17, 21, 13, 11, 12, 22, 21, 22, 12, 6, 15, 5, 5, 15, 4, 15, 19, 4, 4, 19, 3, 19, 20, 3, 3, 20, 2, 20, 17, 2, 2, 17, 1, 17, 14, 1, 14, 0, 1 ], + "vertices": [ 1, 12, 35.91, 69.08, 1, 1, 12, 35.91, 59.14, 1, 1, 12, 25.82, 29.09, 1, 1, 12, 15.72, -0.95, 1, 1, 12, 5.63, -31, 1, 1, 12, -4.46, -61.05, 1, 2, 12, -28.87, -61.05, 0.33333, 14, 28.87, 61.03, 0.66667, 1, 14, 53.28, 61.02, 1, 1, 14, 76.09, 41.84, 1, 1, 14, 71.17, 21.63, 1, 1, 14, 72.83, -1.62, 1, 1, 14, 70.38, -29.12, 1, 1, 14, 50.67, -56.14, 1, 2, 12, -28.43, 74.38, 0.41, 14, 28.43, -74.4, 0.59, 2, 12, -4.92, 72.95, 0.52, 14, 4.92, -72.95, 0.48, 2, 12, -21.87, -30.58, 0.49, 14, 21.87, 30.57, 0.51, 1, 14, 40.81, -2.6, 1, 2, 12, -4.26, 46.93, 0.49, 14, 4.26, -46.93, 0.51, 1, 14, 51.99, 30.15, 1, 2, 12, -10.74, -2.78, 0.49, 14, 10.74, 2.78, 0.51, 2, 12, 0.57, 19.25, 0.49, 14, -0.57, -19.25, 0.51, 1, 14, 23.72, -23.99, 1, 1, 14, 43.68, -26.76, 1 ], + "hull": 15, + "edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 0 ], + "width": 112, + "height": 135 + } + }, + "clipping": { + "clipping": { + "type": "clipping", + "end": "tank-glow", + "vertexCount": 32, + "vertices": [ 1, 3, 165.84, 455.67, 1, 1, 3, 114.21, 493.01, 1, 1, 3, -38.53, 492.23, 1, 1, 3, -193.4, 464.18, 1, 2, 3, -280.85, 415.48, 0.752, 14, 24.09, -73.93, 0.248, 1, 14, 70.34, -27.32, 1, 1, 14, 412.56, -22.02, 1, 1, 14, 412.82, -29.21, 1, 1, 14, 539.26, -29.34, 1, 1, 14, 539.52, -17.09, 1, 1, 14, 894.02, -16.8, 1, 1, 14, 902.99, -28.89, 1, 1, 14, 942.06, -28.58, 1, 1, 14, 948.14, -16.64, 1, 1, 14, 947.9, 14.29, 1, 1, 14, 539.3, 14.55, 1, 1, 14, 539, 29.22, 1, 1, 14, 412.51, 29.88, 1, 1, 14, 412.51, 21.73, 1, 1, 14, 74.24, 27.28, 1, 1, 3, -296.64, 281.2, 1, 1, 3, -316.06, 225.71, 1, 1, 3, -521.69, 190.74, 1, 1, 3, -610.03, 141.02, 1, 1, 3, -671.84, 87.13, 1, 1, 3, -652.23, -11.24, 1, 1, 3, -618.53, -71.36, 1, 1, 3, -478.77, -114.21, 1, 1, 3, -274.11, -116.26, 1, 1, 3, 1.38, -45.75, 1, 1, 3, 189.67, 148.78, 1, 1, 3, 215.75, 276.59, 1 ], + "color": "ce3a3aff" + } + }, + "ground": { + "ground": { "x": 837.96, "y": -172, "width": 1024, "height": 353 } + }, + "ground2": { + "ground": { "x": -179.89, "y": -172, "width": 1024, "height": 353 } + }, + "ground3": { + "ground": { "x": -1213.48, "y": -172, "scaleX": 1.035, "width": 1024, "height": 353 } + }, + "ground4": { + "ground": { "x": -2268.51, "y": -172, "scaleX": 1.04, "width": 1024, "height": 353 } + }, + "ground5": { + "ground": { "x": -3306.54, "y": -172, "width": 1024, "height": 353 } + }, + "ground6": { + "ground": { "x": -4322.71, "y": -172, "width": 1024, "height": 353 } + }, + "ground7": { + "ground": { "x": -5340.65, "y": -172, "width": 1024, "height": 353 } + }, + "guntower": { + "guntower": { "x": 77.22, "y": 122.59, "width": 730, "height": 289 } + }, + "machinegun": { + "machinegun": { "x": 44.85, "y": -5.72, "rotation": -180, "width": 331, "height": 57 } + }, + "machinegun-mount": { + "machinegun-mount": { "x": 47.42, "y": -1.54, "rotation": -90, "width": 72, "height": 96 } + }, + "rock": { + "rock": { "x": 25.24, "y": 27.35, "width": 580, "height": 127 } + }, + "smoke-glow": { + "smoke-glow": { + "type": "mesh", + "uvs": [ 1, 0.24906, 1, 0.51991, 1, 0.73165, 0.70776, 1, 0.49012, 1, 0.24373, 1, 0, 0.71158, 0, 0.50308, 0, 0.26235, 0.28107, 0, 0.47435, 0, 0.73345, 0, 0.48858, 0.51759 ], + "triangles": [ 12, 7, 8, 12, 10, 11, 12, 11, 0, 9, 10, 12, 12, 8, 9, 12, 0, 1, 6, 7, 12, 12, 1, 2, 5, 6, 12, 3, 4, 12, 5, 12, 4, 2, 3, 12 ], + "vertices": [ 49.99, 25.1, 50, -1.98, 50.01, -23.15, 20.79, -50, -0.98, -50, -25.62, -50.01, -50, -21.17, -50, -0.32, -50.01, 23.75, -21.9, 50, -2.58, 50, 23.33, 50.01, -1.14, -1.76 ], + "hull": 12, + "edges": [ 2, 24, 24, 14, 20, 24, 24, 8, 2, 0, 20, 22, 0, 22, 18, 20, 14, 16, 18, 16, 12, 14, 8, 10, 12, 10, 6, 8, 2, 4, 6, 4 ], + "width": 100, + "height": 100 + } + }, + "smoke-puff1-bg": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg2": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg3": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg4": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg5": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg6": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg7": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg8": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg9": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg10": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg11": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg12": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg13": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg14": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg15": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg16": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg17": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg18": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg20": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg21": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg22": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg23": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg24": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg25": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg26": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-bg27": { + "smoke-puff01-bg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + } + }, + "smoke-puff1-fg": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg2": { + "smoke-puff01-fg": { + "x": -1.01, + "y": -0.07, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.82, + "y": -0.39, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.82, + "y": -0.39, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.82, + "y": -0.39, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg3": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.02, + "y": -0.25, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1145, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.03, + "y": -0.43, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg4": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.63, + "y": -0.09, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.63, + "y": -0.09, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.63, + "y": -0.09, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg5": { + "smoke-puff01-fg": { + "x": -1.21, + "y": -0.08, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.89, + "y": -0.04, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.89, + "y": -0.04, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.89, + "y": -0.04, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg6": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.48, + "y": -0.07, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.48, + "y": -0.07, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.48, + "y": -0.07, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg7": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -0.7, + "y": -0.36, + "scaleX": 0.1216, + "scaleY": 0.1214, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -0.56, + "y": -0.15, + "scaleX": 0.1224, + "scaleY": 0.1224, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -0.56, + "y": -0.15, + "scaleX": 0.1224, + "scaleY": 0.1224, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg8": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -0.65, + "y": 0.01, + "scaleX": 0.1226, + "scaleY": 0.1226, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -0.75, + "y": -0.15, + "scaleX": 0.1211, + "scaleY": 0.1211, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -0.75, + "y": -0.15, + "scaleX": 0.1211, + "scaleY": 0.1211, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg9": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.99, + "y": -0.09, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.99, + "y": -0.09, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -0.95, + "y": -0.48, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg10": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.27, + "y": -0.37, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.27, + "y": -0.37, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.27, + "y": -0.37, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg11": { + "smoke-puff04-fg": { + "x": -1.27, + "y": -0.37, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg12": { + "smoke-puff04-fg": { + "x": -1.27, + "y": -0.37, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg13": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg14": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg15": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg16": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg17": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg18": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg20": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg21": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg22": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg23": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg24": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg25": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg26": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "smoke-puff1-fg27": { + "smoke-puff01-fg": { + "x": -0.5, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 175, + "height": 118 + }, + "smoke-puff02-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff03-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 184, + "height": 123 + }, + "smoke-puff04-fg": { + "x": -1.38, + "y": -0.12, + "scaleX": 0.1106, + "scaleY": 0.1106, + "rotation": 88.58, + "width": 155, + "height": 96 + } + }, + "tank-body-shadow": { + "tank-bottom-shadow": { "x": -11.44, "y": -42.89, "width": 1291, "height": 341 } + }, + "tank-glow": { + "smoke-glow": { + "type": "mesh", + "uvs": [ 1, 1, 0, 1, 1, 0 ], + "triangles": [ 1, 2, 0 ], + "vertices": [ 469.64, -738.08, -1660.32, -738.08, 469.64, 1391.88 ], + "hull": 3, + "edges": [ 0, 2, 0, 4, 2, 4 ], + "width": 100, + "height": 100 + } + }, + "tank-top": { + "tank-top": { "x": 6.8, "y": 168.71, "width": 1407, "height": 222 } + }, + "tread": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread-inside1": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside2": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside3": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside4": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside5": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside6": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside7": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside8": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside9": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside10": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside11": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside12": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside13": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside14": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside15": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside16": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside17": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside18": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside19": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside20": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside21": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside22": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside23": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside24": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside25": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside26": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside27": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside28": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside29": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside30": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside31": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside32": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside33": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside34": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside35": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside36": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside37": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside38": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside39": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside40": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside41": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside42": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside43": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside44": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside45": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside46": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside47": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside48": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside49": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside50": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside51": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside52": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside53": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside54": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside55": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside56": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside57": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside58": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside59": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside60": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside61": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside62": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside63": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside64": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside65": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside66": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside67": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside68": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside69": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside70": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside71": { + "tread-inside": { "x": 60.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread-inside72": { + "tread-inside": { "x": 20.1, "y": 12.56, "rotation": -180, "width": 25, "height": 28 } + }, + "tread2": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread3": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread4": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread5": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread6": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread7": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread8": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread9": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread10": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread11": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread12": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread13": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread14": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread15": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread16": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread17": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread18": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread19": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread20": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread21": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread22": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread23": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread24": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread25": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread26": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread27": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread28": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread29": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread30": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread31": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread32": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread33": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread34": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread35": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "tread36": { + "tread": { "x": 45.47, "y": -8.28, "rotation": -180, "width": 96, "height": 30 } + }, + "treads-path": { + "treads-path": { + "type": "path", + "closed": true, + "lengths": [ 185.21, 354.53, 478.3, 608.52, 786, 1058.49, 1138.97, 1223.96, 1303.87, 1388.23, 1471.11, 1551.64, 1633.55, 1713.27, 1799.89, 1882.28, 2164.2, 2326.85, 2444.07, 2584.91, 2754.15, 2940.62 ], + "vertexCount": 66, + "vertices": [ 1, 110, 11.23, 41.87, 1, 1, 110, 0.79, 41.95, 1, 1, 110, -34.72, 42.24, 1, 1, 56, -104.22, 0.41, 1, 1, 56, 0.07, 0.55, 1, 1, 56, 68.8, 0.65, 1, 1, 109, 20.5, 43.47, 1, 1, 109, 1.14, 40.82, 1, 1, 109, -27.38, 36.85, 1, 1, 93, 147.07, 105.01, 1, 1, 93, 96.21, 96.63, 1, 1, 93, 43.87, 87.72, 1, 1, 93, 16.18, 103.35, 1, 1, 93, -33.67, 94.21, 1, 1, 93, -99.36, 81.25, 1, 1, 93, -122.05, -1.7, 1, 1, 93, -83.58, -47.93, 1, 1, 93, -33.53, -109.37, 1, 1, 97, -83.57, -66.1, 1, 1, 97, -2.17, -67.9, 1, 2, 97, 56.68, -41.49, 0.68, 51, -24.31, -41.49, 0.32, 1, 51, -26.59, 16.7, 1, 1, 51, -2.69, 16.7, 1, 1, 51, 13.52, 16.7, 1, 2, 98, -52.42, -46.51, 0.744, 51, 30.21, -46.52, 0.256, 1, 98, -0.32, -68.92, 1, 2, 98, 52.09, -44.73, 0.712, 52, -28.91, -44.73, 0.288, 1, 52, -22.81, 16.24, 1, 1, 52, -1.42, 16.24, 1, 1, 52, 20.48, 16.24, 1, 2, 99, -47.21, -47.46, 0.744, 52, 36.01, -47.46, 0.256, 1, 99, -0.29, -69.66, 1, 2, 99, 45.24, -47.26, 0.736, 53, -37.49, -47.26, 0.264, 1, 53, -23.76, 15.28, 1, 1, 53, -0.14, 15.28, 1, 1, 53, 24.45, 15.28, 1, 2, 100, -47.37, -48.7, 0.744, 53, 33.53, -48.7, 0.256, 1, 100, -0.5, -70.4, 1, 2, 100, 49.09, -48.34, 0.744, 54, -33.58, -48.34, 0.256, 1, 54, -20.89, 15.84, 1, 1, 54, -1.26, 15.84, 1, 1, 54, 15.78, 15.84, 1, 2, 101, -52.5, -48.21, 0.76, 54, 28.45, -48.22, 0.24, 1, 101, -2.5, -68.92, 1, 2, 101, 55.72, -47.82, 0.752, 55, -28.88, -47.83, 0.248, 1, 55, -21.64, 16.7, 1, 1, 55, -0.48, 16.7, 1, 1, 55, 20.74, 16.7, 1, 2, 102, -53.65, -48.9, 0.76, 55, 25.97, -48.9, 0.24, 1, 102, 2.28, -69.66, 1, 1, 102, 44.95, -69.74, 1, 1, 94, 76.03, -85.61, 1, 1, 94, 93.58, -42.24, 1, 1, 94, 118.67, 19.75, 1, 1, 94, 78.59, 76.62, 1, 1, 94, 37.27, 95.07, 1, 1, 94, 31.45, 97.67, 1, 1, 94, -15.16, 87.48, 1, 1, 94, -79.8, 92.52, 1, 1, 94, -119.06, 95.58, 1, 1, 111, 47.07, 42.29, 1, 1, 111, 0.25, 42.75, 1, 1, 111, -29.64, 43.29, 1, 1, 57, -86.65, 1.35, 1, 1, 57, 0.49, 0.26, 1, 1, 57, 92.42, -0.9, 1 ], + "color": "ff8819ff" + } + }, + "wheel-big": { + "wheel-big": { "width": 191, "height": 191 } + }, + "wheel-big-overlay1": { + "wheel-big-overlay": { "width": 186, "height": 186 } + }, + "wheel-big-overlay2": { + "wheel-big-overlay": { "width": 186, "height": 186 } + }, + "wheel-big2": { + "wheel-big": { "width": 191, "height": 191 } + }, + "wheel-mid": { + "wheel-mid": { "width": 136, "height": 136 } + }, + "wheel-mid-overlay": { + "wheel-mid-overlay": { "width": 136, "height": 136 } + }, + "wheel-mid-overlay2": { + "wheel-mid-overlay": { "width": 136, "height": 136 } + }, + "wheel-mid-overlay3": { + "wheel-mid-overlay": { "width": 136, "height": 136 } + }, + "wheel-mid-overlay4": { + "wheel-mid-overlay": { "width": 136, "height": 136 } + }, + "wheel-mid-overlay5": { + "wheel-mid-overlay": { "width": 136, "height": 136 } + }, + "wheel-mid-overlay6": { + "wheel-mid-overlay": { "width": 136, "height": 136 } + }, + "wheel-mid2": { + "wheel-mid": { "width": 136, "height": 136 } + }, + "wheel-mid3": { + "wheel-mid": { "width": 136, "height": 136 } + }, + "wheel-mid4": { + "wheel-mid": { "width": 136, "height": 136 } + }, + "wheel-mid5": { + "wheel-mid": { "width": 136, "height": 136 } + }, + "wheel-mid6": { + "wheel-mid": { "width": 136, "height": 136 } + }, + "wheel-small": { + "wheel-small": { "width": 71, "height": 71 } + }, + "wheel-small2": { + "wheel-small": { "width": 71, "height": 71 } + }, + "wheel-small3": { + "wheel-small": { "width": 71, "height": 71 } + } + } + } +], +"animations": { + "drive": { + "bones": { + "tank-root": { + "rotate": [ + { "time": 2 }, + { "time": 2.0667, "value": 1.99 }, + { "time": 2.5, "value": -15.63 }, + { + "time": 2.6667, + "value": -10.37, + "curve": [ 2.718, -10.37, 2.78, -8.34 ] + }, + { + "time": 2.8333, + "value": -6.13, + "curve": [ 2.909, -2.8, 2.974, 0.8 ] + }, + { "time": 3, "value": 1.84 }, + { "time": 3.0667, "value": 5.32 }, + { "time": 3.1667, "value": 10.99 }, + { "time": 3.2333, "value": 9.73 }, + { + "time": 3.4333, + "value": -4.52, + "curve": [ 3.474, -3.99, 3.608, 0.01 ] + }, + { "time": 3.6667, "value": 0.01 } + ], + "translate": [ + { + "curve": [ 1.019, 0, 1.608, -582.83, 1.019, 0, 1.608, 0 ] + }, + { "time": 2, "x": -1209.75 }, + { "time": 2.3333, "x": -1652.84, "y": 26.05 }, + { "time": 2.5, "x": -1877.69, "y": 71.5 }, + { "time": 2.6667, "x": -2053.37, "y": 100.44 }, + { "time": 2.8333, "x": -2183.86, "y": 97.42 }, + { "time": 3, "x": -2312.32, "y": 74.12 }, + { "time": 3.0667, "x": -2340.68, "y": 45.94 }, + { "time": 3.1333, "x": -2403.04, "y": 17.04 }, + { "time": 3.1667, "x": -2439.84, "y": 5.45 }, + { "time": 3.2333, "x": -2523.34, "y": -3.31 }, + { "time": 3.4333, "x": -2728.27, "y": -12.73 }, + { + "time": 3.5, + "x": -2795.65, + "y": -6.14, + "curve": [ 3.538, -2829.89, 3.583, -2878.59, 3.538, -4.93, 3.583, -3.21 ] + }, + { + "time": 3.6333, + "x": -2938.53, + "y": -1.09, + "curve": [ 3.89, -3218.84, 4.404, -3972.02, 3.89, -0.79, 4.404, 0 ] + }, + { "time": 4.8333, "x": -3972.02 }, + { "time": 5, "x": -3991.31 }, + { "time": 5.3667, "x": -3973.94 } + ] + }, + "tread-collider1": { + "translate": [ + { "time": 2 }, + { "time": 2.0667, "y": 9.99 }, + { "time": 2.1667, "y": 37.69 }, + { "time": 2.3333, "y": 53.45 }, + { "time": 2.5, "y": 30.97 }, + { "time": 2.6667, "y": -2.89 }, + { "time": 2.8333, "y": -0.71 }, + { "time": 3.0667, "y": -13.64 }, + { "time": 3.1667, "y": 59.3 }, + { "time": 3.2333, "y": 48.2 }, + { "time": 3.4333, "y": -11.27 }, + { "time": 3.6333, "y": 4.15 } + ] + }, + "tread-collider2": { + "translate": [ + { "time": 2 }, + { "time": 2.0667, "y": -2.83 }, + { "time": 2.1667, "y": -17.44 }, + { "time": 2.3333, "y": 46.07 }, + { "time": 2.5, "y": 19.45 }, + { "time": 2.6667, "y": 13.46 }, + { "time": 2.8333, "y": -1.92, "curve": "stepped" }, + { "time": 2.9667, "y": -1.92 }, + { "time": 3, "y": -13.17 }, + { "time": 3.0667, "y": -23.25 }, + { "time": 3.1667, "y": 28.13 }, + { "time": 3.2333, "y": 25.63 }, + { "time": 3.4333, "y": -1.52 }, + { "time": 3.6333, "y": 1.15 } + ] + }, + "tread-collider3": { + "translate": [ + { "time": 2 }, + { "time": 2.0667, "y": -7.76 }, + { "time": 2.1667, "y": -16.61 }, + { "time": 2.5, "y": 29.05 }, + { "time": 2.6667, "y": 30.12 }, + { "time": 2.8333, "y": 5.3 }, + { "time": 3, "y": -0.38 }, + { "time": 3.1667, "y": 2.6 }, + { "time": 3.4333, "y": 15.41 }, + { "time": 3.6333, "y": 1.44 } + ] + }, + "tread-collider4": { + "translate": [ + { "time": 2 }, + { "time": 2.1667, "y": -6.72 }, + { "time": 2.3333, "y": -0.92 }, + { "time": 2.5, "y": 18.37 }, + { "time": 2.6667, "y": 38.77 }, + { "time": 2.8333, "y": 30.6 }, + { "time": 3.1667, "y": 12.61 }, + { "time": 3.2333, "y": -16 }, + { "time": 3.4333, "y": 25.62 }, + { "time": 3.6333, "y": -0.68 } + ] + }, + "tread-collider5": { + "translate": [ + { "time": 2 }, + { "time": 2.1667, "y": 3.35 }, + { "time": 2.3333, "y": 22.17 }, + { "time": 2.6667, "y": 13.35 }, + { "time": 2.8333, "y": 39 }, + { "time": 3, "y": 39.88 }, + { "time": 3.1667, "y": 26.57 }, + { "time": 3.2333, "y": -10.15 }, + { "time": 3.4333, "y": 35.98 }, + { "time": 3.6333, "y": -1.36 } + ] + }, + "wheel-mid-root6": { + "translate": [ + { "time": 2 }, + { "time": 2.1667, "y": 5.61 }, + { "time": 2.3333, "y": 27.21 }, + { "time": 2.5, "y": 30.28 }, + { "time": 2.6667, "y": -2.81 }, + { "time": 2.8333, "y": 19.59 }, + { "time": 3, "y": 29.11 }, + { "time": 3.1667, "y": 32.55 }, + { "time": 3.2333, "y": 3.55 }, + { "time": 3.4333, "y": 40.54 }, + { "time": 3.6333 } + ] + }, + "wheel-mid-root5": { + "translate": [ + { "time": 2 }, + { "time": 2.1667, "y": -7.46 }, + { "time": 2.3333, "y": 9.53 }, + { "time": 2.6667, "y": 36.78 }, + { "time": 2.8333, "y": 46.11 }, + { "time": 3.1667, "y": 7.55 }, + { "time": 3.2333, "y": -16.28 }, + { "time": 3.4333, "y": 26.21 }, + { "time": 3.6333 } + ] + }, + "wheel-mid-root4": { + "translate": [ + { "time": 2 }, + { "time": 2.1667, "y": -13.98 }, + { "time": 2.3333, "y": -8.26 }, + { "time": 2.5, "y": 24.27 }, + { "time": 2.6667, "y": 34.42 }, + { "time": 2.8333, "y": 8.88 }, + { "time": 3.1667, "y": 10.32 }, + { "time": 3.2333, "y": -7.63 }, + { "time": 3.4333, "y": 19.69 }, + { "time": 3.6333 } + ] + }, + "wheel-mid-root3": { + "translate": [ + { "time": 2 }, + { "time": 2.1667, "y": -21.14 }, + { "time": 2.3333, "y": 22.83 }, + { "time": 2.5, "y": 23.34 }, + { "time": 2.6667, "y": 18.07 }, + { "time": 2.8333, "y": 1.2 }, + { "time": 3.0667, "y": -13.36 }, + { "time": 3.1667, "y": 15.48 }, + { "time": 3.2333, "y": 13.34 }, + { "time": 3.4333, "y": 6.4 }, + { "time": 3.6333 } + ] + }, + "wheel-mid-root2": { + "translate": [ + { "time": 2 }, + { "time": 2.0667, "y": -4.39 }, + { "time": 2.1667, "y": 3.13 }, + { "time": 2.3333, "y": 53.56 }, + { "time": 2.5, "y": 16.65 }, + { "time": 2.6667, "y": 8.39 }, + { "time": 3.0667, "y": -19.16 }, + { "time": 3.1667, "y": 43.25 }, + { "time": 3.2333, "y": 39.04 }, + { "time": 3.4333, "y": -8.61 }, + { "time": 3.6333 } + ] + }, + "wheel-mid-root1": { + "translate": [ + { "time": 2 }, + { "time": 2.0333, "y": 22.64 }, + { "time": 2.0667, "y": 53.65 }, + { "time": 2.1667, "y": 71.18 }, + { "time": 2.5, "y": 46.83 }, + { "time": 2.6667, "y": 8.38 }, + { "time": 3.0667, "y": -10.03 }, + { "time": 3.1667, "y": 72.71 }, + { "time": 3.2333, "y": 64.74 }, + { "time": 3.4333, "y": -17.65 }, + { "time": 3.6333 } + ] + }, + "tank-body": { + "rotate": [ + { + "curve": [ 0.208, 0, 0.625, -4.39 ] + }, + { "time": 0.8333, "value": -4.39 }, + { "time": 2 }, + { "time": 2.1667, "value": -1.34 }, + { "time": 2.3333, "value": -6.23 }, + { "time": 2.5, "value": -5.45 }, + { "time": 2.9667, "value": -5.07 }, + { "time": 3.0667, "value": -2.39 }, + { "time": 3.1667, "value": -0.98 }, + { "time": 3.2333, "value": -1.1 }, + { + "time": 3.4, + "value": 0.43, + "curve": [ 3.433, 0.43, 3.483, -1.56 ] + }, + { + "time": 3.5333, + "value": -3.55, + "curve": [ 3.675, -3.47, 3.754, 1.49 ] + }, + { "time": 3.8333, "value": 1.93 }, + { "time": 4, "value": 0.48 }, + { + "time": 4.3333, + "curve": [ 4.476, 0.59, 4.833, 3.8 ] + }, + { + "time": 5, + "value": 3.8, + "curve": [ 5.286, 3.8, 5.35, -2.17 ] + }, + { "time": 5.4667, "value": -2.17 }, + { "time": 5.6, "value": -0.61 } + ] + }, + "wheel-big-root1": { + "translate": [ + { "time": 2 }, + { "time": 2.0667, "y": 20.07 }, + { "time": 2.3333, "y": 67.24 }, + { "time": 2.6667, "y": 21.04 }, + { "time": 3, "y": 10.28 }, + { "time": 3.1, "y": 11.28 }, + { "time": 3.1667, "y": 29.43 }, + { "time": 3.2333, "y": 35.31 }, + { "time": 3.4333, "y": 18.38 }, + { "time": 3.5 } + ] + }, + "tank-treads": { + "rotate": [ + {}, + { "time": 0.8333, "value": -2.4 }, + { "time": 2 }, + { "time": 2.0667, "value": 1.72 }, + { "time": 2.4333, "value": -0.37 }, + { "time": 2.8 }, + { "time": 3, "value": -1.41 }, + { "time": 3.1667, "value": 0.54 }, + { + "time": 3.2667, + "value": 2.22, + "curve": [ 3.348, 2.22, 3.392, -1.31 ] + }, + { "time": 3.4333, "value": -1.31 }, + { "time": 3.7333, "value": -1.14 }, + { + "time": 4.3333, + "curve": [ 4.476, 0.35, 4.833, 2.24 ] + }, + { + "time": 5, + "value": 2.24, + "curve": [ 5.286, 2.24, 5.35, 0 ] + }, + { "time": 5.4667 } + ] + }, + "cannon-target": { + "translate": [ + {}, + { "time": 0.8333, "y": 121.95 }, + { "time": 2, "y": 45.73 } + ] + }, + "wheel-big-root2": { + "translate": [ + { "time": 3.4333, "y": 13.01 } + ] + }, + "wheel-big1": { + "rotate": [ + { + "curve": [ 0.51, 0, 0.804, 57.81 ] + }, + { "time": 1, "value": 120 }, + { "time": 1.2667, "value": 240 }, + { "time": 1.5333, "value": 360 }, + { "time": 1.7667, "value": 480 }, + { "time": 2.0333, "value": 600 }, + { "time": 2.2, "value": 720 }, + { "time": 2.4, "value": 840 }, + { "time": 2.5667, "value": 960 }, + { "time": 2.7333, "value": 1080 }, + { "time": 2.9333, "value": 1200 }, + { "time": 3.1333, "value": 1320 }, + { "time": 3.3333, "value": 1440 }, + { "time": 3.5, "value": 1560 }, + { "time": 3.6667, "value": 1680 }, + { "time": 3.8667, "value": 1800 }, + { "time": 4.0667, "value": 1920 }, + { "time": 4.2667, "value": 2040 }, + { + "time": 4.5, + "value": 2160, + "curve": [ 4.563, 2194.34, 4.695, 2225.3 ] + }, + { "time": 4.8333, "value": 2247.67 } + ] + }, + "wheel-mid1": { + "rotate": [ + { + "curve": [ 0.459, 0, 0.724, 57.81 ] + }, + { "time": 0.9, "value": 120 }, + { "time": 1.1667, "value": 240 }, + { "time": 1.4333, "value": 360 }, + { "time": 1.6333, "value": 480 }, + { "time": 1.8333, "value": 600 }, + { "time": 2, "value": 720 }, + { "time": 2.1333, "value": 840 }, + { "time": 2.2667, "value": 960 }, + { "time": 2.4, "value": 1080 }, + { "time": 2.5333, "value": 1200 }, + { "time": 2.6667, "value": 1320 }, + { "time": 2.8333, "value": 1440 }, + { "time": 2.9667, "value": 1560 }, + { "time": 3.1, "value": 1680 }, + { "time": 3.2333, "value": 1800 }, + { "time": 3.3667, "value": 1920 }, + { "time": 3.5, "value": 2040 }, + { "time": 3.6333, "value": 2160 }, + { "time": 3.7667, "value": 2280 }, + { "time": 3.9, "value": 2400 }, + { "time": 4.0333, "value": 2520 }, + { "time": 4.1667, "value": 2640 }, + { "time": 4.3, "value": 2760 }, + { + "time": 4.4667, + "value": 2880, + "curve": [ 4.538, 2949.2, 4.742, 3000 ] + }, + { "time": 4.8333, "value": 3000 } + ] + }, + "wheel-small1": { + "rotate": [ + { + "curve": [ 0.34, 0, 0.536, 57.81 ] + }, + { "time": 0.6667, "value": 120 }, + { "time": 0.8667, "value": 240 }, + { "time": 1.0333, "value": 360 }, + { "time": 1.1667, "value": 480 }, + { "time": 1.3, "value": 600 }, + { "time": 1.4333, "value": 720 }, + { "time": 1.5333, "value": 840 }, + { "time": 1.6333, "value": 960 }, + { "time": 1.7333, "value": 1080 }, + { "time": 1.8333, "value": 1200 }, + { "time": 1.9333, "value": 1320 }, + { "time": 2.0333, "value": 1440 }, + { "time": 2.1333, "value": 1560 }, + { "time": 2.2333, "value": 1680 }, + { "time": 2.3333, "value": 1800 }, + { "time": 2.4333, "value": 1920 }, + { "time": 2.5333, "value": 2040 }, + { "time": 2.6333, "value": 2160 }, + { "time": 2.7333, "value": 2280 }, + { "time": 2.8333, "value": 2400 }, + { "time": 2.9333, "value": 2520 }, + { "time": 3.0333, "value": 2640 }, + { "time": 3.1333, "value": 2760 }, + { "time": 3.2333, "value": 2880 }, + { "time": 3.3333, "value": 3000 }, + { "time": 3.4333, "value": 3120 }, + { "time": 3.5333, "value": 3240 }, + { "time": 3.6333, "value": 3360 }, + { "time": 3.7333, "value": 3480 }, + { "time": 3.8333, "value": 3600 }, + { "time": 3.9333, "value": 3720 }, + { "time": 4.0333, "value": 3840 }, + { "time": 4.1333, "value": 3960 }, + { "time": 4.2333, "value": 4080 }, + { "time": 4.3333, "value": 4200 }, + { "time": 4.4333, "value": 4320 }, + { "time": 4.6667, "value": 4440 }, + { "time": 4.9, "value": 4490 } + ] + }, + "wheel-small-root1": { + "translate": [ + { "time": 2 }, + { "time": 2.1333, "y": 12.37 }, + { "time": 2.4667, "y": 32.37 }, + { "time": 2.7333, "y": -5.27 }, + { "time": 2.9667, "y": 14.31 }, + { "time": 3.1667, "y": 19.54 }, + { "time": 3.4667, "y": 7.5 }, + { "time": 4.3667, "y": -2.4 } + ] + }, + "wheel-small-root2": { + "translate": [ + { "time": 2 }, + { "time": 2.9, "y": 5.26 }, + { "time": 3.1667, "y": 10.67 }, + { "time": 3.4667, "y": -4.71 } + ] + }, + "wheel-small-root3": { + "translate": [ + { "time": 2 }, + { "time": 2.4667, "y": -10.56 }, + { "time": 2.9, "y": -16.08 }, + { "time": 3.1667, "y": 10.12 }, + { "time": 3.4667, "y": 4.1 }, + { "time": 4.3667, "y": -0.03 } + ] + }, + "antenna1": { + "rotate": [ + {}, + { + "time": 0.3333, + "value": 1.05, + "curve": [ 0.731, 1.05, 1.008, -4.55 ] + }, + { + "time": 1.2333, + "value": -4.55, + "curve": [ 1.35, -4.55, 1.583, 0.53 ] + }, + { "time": 1.7, "value": 0.53 }, + { "time": 2, "value": -2.13 }, + { "time": 2.2, "value": 4.71 }, + { "time": 2.3667, "value": -7.26 }, + { "time": 2.5667, "value": 2.26 }, + { "time": 2.7333, "value": -3.39 }, + { "time": 3.0667, "value": -5.53 }, + { "time": 3.2333, "value": 7.78 }, + { "time": 3.4667, "value": -5.99 }, + { "time": 3.7, "value": 3.11 }, + { "time": 3.9, "value": -3.05 }, + { "time": 4.1, "value": 0.31 }, + { "time": 4.3, "value": -3.06 }, + { "time": 4.5333, "value": 0.36 }, + { + "time": 4.8667, + "value": 4.94, + "curve": [ 4.925, 4.94, 5.042, -2.38 ] + }, + { "time": 5.1, "value": -2.38 }, + { "time": 5.2667, "value": 3.65 }, + { "time": 5.4, "value": -3.04 }, + { "time": 5.5, "value": 1.49 }, + { "time": 5.6, "value": -1.86 }, + { "time": 5.7, "value": 0.42 } + ] + }, + "antenna2": { + "rotate": [ + {}, + { + "time": 0.3333, + "value": 1.05, + "curve": [ 0.731, 1.05, 1.008, -4.55 ] + }, + { + "time": 1.2333, + "value": -4.55, + "curve": [ 1.35, -4.55, 1.583, 0.53 ] + }, + { "time": 1.7, "value": 0.53 }, + { "time": 2, "value": -2.13 }, + { "time": 2.2, "value": 4.71 }, + { "time": 2.3667, "value": -7.26 }, + { "time": 2.5667, "value": 2.26 }, + { "time": 2.7333, "value": -3.39 }, + { "time": 3.0667, "value": -5.53 }, + { "time": 3.2333, "value": 7.78 }, + { "time": 3.4667, "value": -5.99 }, + { "time": 3.7, "value": 3.11 }, + { "time": 3.9, "value": -3.05 }, + { "time": 4.1, "value": 0.31 }, + { "time": 4.3, "value": -3.06 }, + { "time": 4.5333, "value": 0.36 }, + { + "time": 4.8667, + "value": 4.94, + "curve": [ 4.925, 4.94, 5.042, -2.38 ] + }, + { "time": 5.1, "value": -2.38 }, + { "time": 5.2667, "value": 3.65 }, + { "time": 5.4, "value": -3.04 }, + { "time": 5.5, "value": 1.49 }, + { "time": 5.6, "value": -1.86 }, + { "time": 5.7, "value": 0.42 } + ] + }, + "antenna3": { + "rotate": [ + {}, + { + "time": 0.3333, + "value": 1.05, + "curve": [ 0.731, 1.05, 1.008, -4.55 ] + }, + { + "time": 1.2333, + "value": -4.55, + "curve": [ 1.35, -4.55, 1.583, 0.53 ] + }, + { "time": 1.7, "value": 0.53 }, + { "time": 2, "value": -2.13 }, + { "time": 2.2, "value": 4.71 }, + { "time": 2.3667, "value": -7.26 }, + { "time": 2.5667, "value": 2.26 }, + { "time": 2.7333, "value": -3.39 }, + { "time": 3.0667, "value": -5.53 }, + { "time": 3.2333, "value": 7.78 }, + { "time": 3.4667, "value": -5.99 }, + { "time": 3.7, "value": 3.11 }, + { "time": 3.9, "value": -3.05 }, + { "time": 4.1, "value": 0.31 }, + { "time": 4.3, "value": -3.06 }, + { "time": 4.5333, "value": 0.36 }, + { + "time": 4.8667, + "value": 4.94, + "curve": [ 4.925, 4.94, 5.042, -2.38 ] + }, + { "time": 5.1, "value": -2.38 }, + { "time": 5.2667, "value": 3.65 }, + { "time": 5.4, "value": -3.04 }, + { "time": 5.5, "value": 1.49 }, + { "time": 5.6, "value": -1.86 }, + { "time": 5.7, "value": 0.42 } + ] + }, + "antenna4": { + "rotate": [ + {}, + { + "time": 0.3333, + "value": 1.05, + "curve": [ 0.731, 1.05, 1.008, -4.55 ] + }, + { + "time": 1.2333, + "value": -4.55, + "curve": [ 1.35, -4.55, 1.583, 0.53 ] + }, + { "time": 1.7, "value": 0.53 }, + { "time": 2, "value": -2.13 }, + { "time": 2.2, "value": 4.71 }, + { "time": 2.3667, "value": -7.26 }, + { "time": 2.5667, "value": 2.26 }, + { "time": 2.7333, "value": -3.39 }, + { "time": 3.0667, "value": -5.53 }, + { "time": 3.2333, "value": 7.78 }, + { "time": 3.4667, "value": -5.99 }, + { "time": 3.7, "value": 3.11 }, + { "time": 3.9, "value": -3.05 }, + { "time": 4.1, "value": 0.31 }, + { "time": 4.3, "value": -3.06 }, + { "time": 4.5333, "value": 0.36 }, + { + "time": 4.8667, + "value": 4.94, + "curve": [ 4.925, 4.94, 5.042, -2.38 ] + }, + { "time": 5.1, "value": -2.38 }, + { "time": 5.2667, "value": 3.65 }, + { "time": 5.4, "value": -3.04 }, + { "time": 5.5, "value": 1.49 }, + { "time": 5.6, "value": -1.86 }, + { "time": 5.7, "value": 0.42 } + ] + }, + "antenna5": { + "rotate": [ + {}, + { + "time": 0.3333, + "value": 1.05, + "curve": [ 0.731, 1.05, 1.008, -4.55 ] + }, + { + "time": 1.2333, + "value": -4.55, + "curve": [ 1.35, -4.55, 1.583, 0.53 ] + }, + { "time": 1.7, "value": 0.53 }, + { "time": 2, "value": -2.13 }, + { "time": 2.2, "value": 4.71 }, + { "time": 2.3667, "value": -7.26 }, + { "time": 2.5667, "value": 2.26 }, + { "time": 2.7333, "value": -3.39 }, + { "time": 3.0667, "value": -5.53 }, + { "time": 3.2333, "value": 7.78 }, + { "time": 3.4667, "value": -5.99 }, + { "time": 3.7, "value": 3.11 }, + { "time": 3.9, "value": -3.05 }, + { "time": 4.1, "value": 0.31 }, + { "time": 4.3, "value": -3.06 }, + { "time": 4.5333, "value": 0.36 }, + { + "time": 4.8667, + "value": 4.94, + "curve": [ 4.925, 4.94, 5.042, -2.38 ] + }, + { "time": 5.1, "value": -2.38 }, + { "time": 5.2667, "value": 3.65 }, + { "time": 5.4, "value": -3.04 }, + { "time": 5.5, "value": 1.49 }, + { "time": 5.6, "value": -1.86 }, + { "time": 5.7, "value": 0.42 } + ] + }, + "antenna6": { + "rotate": [ + {}, + { + "time": 0.3333, + "value": 1.05, + "curve": [ 0.731, 1.05, 1.008, -4.55 ] + }, + { + "time": 1.2333, + "value": -4.55, + "curve": [ 1.35, -4.55, 1.583, 0.53 ] + }, + { "time": 1.7, "value": 0.53 }, + { "time": 2, "value": -2.13 }, + { "time": 2.2, "value": 4.71 }, + { "time": 2.3667, "value": -7.26 }, + { "time": 2.5667, "value": 2.26 }, + { "time": 2.7333, "value": -3.39 }, + { "time": 3.0667, "value": -5.53 }, + { "time": 3.2333, "value": 7.78 }, + { "time": 3.4667, "value": -5.99 }, + { "time": 3.7, "value": 3.11 }, + { "time": 3.9, "value": -3.05 }, + { "time": 4.1, "value": 0.31 }, + { "time": 4.3, "value": -3.06 }, + { "time": 4.5333, "value": 0.36 }, + { + "time": 4.8667, + "value": 4.94, + "curve": [ 4.925, 4.94, 5.042, -2.38 ] + }, + { "time": 5.1, "value": -2.38 }, + { "time": 5.2667, "value": 3.65 }, + { "time": 5.4, "value": -3.04 }, + { "time": 5.5, "value": 1.49 }, + { "time": 5.6, "value": -1.86 }, + { "time": 5.7, "value": 0.42 } + ] + }, + "machinegun": { + "rotate": [ + { "value": 8.07, "curve": "stepped" }, + { "time": 2.0667, "value": 8.07 }, + { "time": 2.1667, "value": 3.11 }, + { "time": 2.5667, "value": -10.99, "curve": "stepped" }, + { "time": 3.1333, "value": -10.99 }, + { "time": 3.2667, "value": 18.18 }, + { "time": 3.4333, "value": 2.75, "curve": "stepped" }, + { "time": 4.7, "value": 2.75 }, + { "time": 4.9, "value": 8.07 } + ] + } + }, + "path": { + "treads-path": { + "position": [ + { + "curve": [ 0.984, 0, 1.588, 0.1788 ] + }, + { + "time": 2, + "value": 0.385, + "curve": [ 2.023, 0.3916, 2.045, 0.3983 ] + }, + { "time": 2.0667, "value": 0.405 }, + { "time": 2.3333, "value": 0.555 }, + { "time": 2.5, "value": 0.605 }, + { "time": 2.6667, "value": 0.685 }, + { "time": 2.8333, "value": 0.745 }, + { "time": 3, "value": 0.785 }, + { "time": 3.0667, "value": 0.8 }, + { "time": 3.1333, "value": 0.825 }, + { "time": 3.1667, "value": 0.835 }, + { "time": 3.2333, "value": 0.87 }, + { + "time": 3.5, + "value": 0.98, + "curve": [ 3.726, 1.0474, 4.335, 1.4 ] + }, + { "time": 4.8333, "value": 1.4 } + ] + } + } + }, + "shoot": { + "slots": { + "rock": { + "attachment": [ + { "name": null } + ] + }, + "smoke-glow": { + "color": [ + { "time": 0.1333, "color": "ffffffff" }, + { "time": 0.1667, "color": "ffbc8af4" }, + { "time": 0.2, "color": "fc8e8e90" }, + { "time": 0.2667, "color": "fa3e3e1e" } + ], + "attachment": [ + { "time": 0.0667, "name": "smoke-glow" }, + { "time": 0.3, "name": null } + ] + }, + "smoke-puff1-bg": { + "twoColor": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.6, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 1.0333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.0667, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg2": { + "twoColor": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg3": { + "twoColor": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg4": { + "twoColor": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.6, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.9, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg5": { + "twoColor": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.6, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.9, "light": "ffd50c00", "dark": "604a3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg6": { + "twoColor": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.7, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg7": { + "twoColor": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3333, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg8": { + "twoColor": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4333, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.9333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg9": { + "twoColor": [ + { "time": 0.1333, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.5333, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg10": { + "twoColor": [ + { "time": 0.1333, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.5333, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8333, "light": "ffd50c00", "dark": "604a3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg11": { + "twoColor": [ + { "time": 0.1333, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.7667, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.3333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg12": { + "twoColor": [ + { "time": 0.3333, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.6, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8667, "light": "ffd50c00", "dark": "604a3f" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg13": { + "twoColor": [ + { "time": 0.3667, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 1, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg14": { + "twoColor": [ + { "time": 0.4333, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.6, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 1.0667, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.4333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg15": { + "twoColor": [ + { "time": 0.4, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.4, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg16": { + "twoColor": [ + { "time": 0.4, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.7, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.4, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg17": { + "twoColor": [ + { "time": 0.2333, "light": "ffd50cff", "dark": "534035" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.6667, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.2333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg18": { + "twoColor": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.5, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.2333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg20": { + "twoColor": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.8, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.3333, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg21": { + "twoColor": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.7, "light": "ffd50c00", "dark": "604b3f" } + ] + }, + "smoke-puff1-bg22": { + "twoColor": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.7, "light": "ffd50c00", "dark": "604b3f" } + ] + }, + "smoke-puff1-bg23": { + "twoColor": [ + { "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" }, + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.5, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.7667, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.3, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg24": { + "twoColor": [ + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.7, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.3, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg25": { + "twoColor": [ + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 1, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg26": { + "twoColor": [ + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.6, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.9333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-bg27": { + "twoColor": [ + { "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" }, + { "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" }, + { "time": 0.7333, "light": "ffd50c00", "dark": "604b3f" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff01-bg" } + ] + }, + "smoke-puff1-fg": { + "twoColor": [ + { "time": 0.0667, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1333, "light": "fde252ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.6, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 1.0333, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.0667, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg2": { + "twoColor": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.8333, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg3": { + "twoColor": [ + { "time": 0.1333, "light": "ffe457ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.8333, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg4": { + "twoColor": [ + { "time": 0.1333, "light": "fae781ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.6, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.9, "light": "ac8c7500", "dark": "604a3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg5": { + "twoColor": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.6, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.9, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg6": { + "twoColor": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg7": { + "twoColor": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3333, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.8333, "light": "ac8c7500", "dark": "604a3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg8": { + "twoColor": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4333, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.9333, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg9": { + "twoColor": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.5333, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.8333, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg10": { + "twoColor": [ + { "time": 0.1333, "light": "fce35dff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.5333, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.8333, "light": "ac8c7500", "dark": "604a3f" } + ], + "attachment": [ + { "time": 0.1333, "name": "smoke-puff01-fg" }, + { "time": 0.1667, "name": "smoke-puff02-fg" }, + { "time": 0.2, "name": "smoke-puff03-fg" }, + { "time": 0.2667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg11": { + "twoColor": [ + { "time": 0.3333, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7667, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.3333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg12": { + "twoColor": [ + { "time": 0.3667, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.6, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.8667, "light": "ac8c7500", "dark": "604a3f" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg13": { + "twoColor": [ + { "time": 0.3667, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 1, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg14": { + "twoColor": [ + { "time": 0.4333, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.6, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 1.0667, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.4333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg15": { + "twoColor": [ + { "time": 0.4, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.8333, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.4, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg16": { + "twoColor": [ + { "time": 0.4, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.4, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg17": { + "twoColor": [ + { "time": 0.2333, "light": "e3c05eff", "dark": "ab7e59" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.6667, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.2333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg18": { + "twoColor": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.5, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7667, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.2333, "name": "smoke-puff03-fg" }, + { "time": 0.2667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg20": { + "twoColor": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.8, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.3333, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg21": { + "twoColor": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7, "light": "ab764c00", "dark": "ac8d75" } + ] + }, + "smoke-puff1-fg22": { + "twoColor": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7, "light": "ab764c00", "dark": "ac8d75" } + ] + }, + "smoke-puff1-fg23": { + "twoColor": [ + { "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" }, + { "time": 0.1667, "light": "ffe568ff", "dark": "e26425" }, + { "time": 0.2, "light": "ffe568ff", "dark": "ab774c" }, + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.5, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7667, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.3, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg24": { + "twoColor": [ + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.3, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg25": { + "twoColor": [ + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 1, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg26": { + "twoColor": [ + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.6, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.9333, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff04-fg" } + ] + }, + "smoke-puff1-fg27": { + "twoColor": [ + { "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" }, + { "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" }, + { "time": 0.7333, "light": "ab764c00", "dark": "ac8d75" } + ], + "attachment": [ + { "time": 0.3667, "name": "smoke-puff04-fg" } + ] + }, + "tank-glow": { + "color": [ + { "time": 0.0667, "color": "fc994d84" }, + { + "time": 0.1333, + "color": "f5b16bc8", + "curve": [ 0.221, 0.96, 0.252, 0.98, 0.221, 0.69, 0.252, 0.62, 0.221, 0.42, 0.252, 0.33, 0.221, 0.78, 0.252, 0.32 ] + }, + { "time": 0.2667, "color": "fc994c30" } + ], + "attachment": [ + { "time": 0.0667, "name": "smoke-glow" }, + { "time": 0.2667, "name": null } + ] + } + }, + "bones": { + "cannon": { + "translate": [ + { "time": 0.0667 }, + { "time": 0.1667, "x": 34.77, "y": 0.9 }, + { "time": 0.2667, "x": 1.3 } + ] + }, + "tank-body": { + "rotate": [ + { "time": 0.0667 }, + { + "time": 0.1667, + "value": -4.29, + "curve": [ 0.2, -4.29, 0.267, 2.37 ] + }, + { + "time": 0.3, + "value": 2.37, + "curve": [ 0.333, 2.37, 0.4, 0 ] + }, + { "time": 0.4333 } + ], + "translate": [ + { "time": 0.0667 }, + { + "time": 0.1667, + "x": 31.04, + "y": 1.67, + "curve": [ 0.2, 31.04, 0.267, -12.05, 0.2, 1.67, 0.267, -0.23 ] + }, + { "time": 0.3, "x": -12.05, "y": -0.23 }, + { "time": 0.3667 } + ] + }, + "tank-treads": { + "rotate": [ + { "time": 0.0667 }, + { "time": 0.1667, "value": -3.08 }, + { "time": 0.3, "value": -0.42 } + ] + }, + "smoke1": { + "rotate": [ + { "time": 0.0667 }, + { "time": 0.1333, "value": 2.88 }, + { "time": 0.1667, "value": 2.34 }, + { "time": 0.2, "value": 124.36 }, + { "time": 0.2667, "value": 142.26 }, + { "time": 0.3333, "value": 86.78 }, + { "time": 0.4667, "value": 128.79 }, + { "time": 0.6333, "value": 146.22 }, + { "time": 1.0333, "value": 210.7 } + ], + "translate": [ + { "time": 0.0667, "x": -9.69, "y": 1.05 }, + { "time": 0.1333, "x": 7.53, "y": 1.21 }, + { "time": 0.1667, "x": 3.26, "y": 4.07 }, + { "time": 0.2, "x": 29.64, "y": -17.46 }, + { "time": 0.2667, "x": 86.97, "y": 17.83 }, + { "time": 0.3333, "x": 193.74, "y": -38.98 }, + { "time": 0.4, "x": 341.67, "y": -39.52 }, + { "time": 0.6333, "x": 393.24, "y": -4.01 }, + { "time": 1.0333, "x": 410.76, "y": 6.35 } + ], + "scale": [ + { "time": 0.0667 }, + { "time": 0.1333, "x": 3.171, "y": 0.756 }, + { "time": 0.1667, "x": 3.488, "y": 1.279 }, + { "time": 0.2, "x": 5.151, "y": 2.369 }, + { "time": 0.2667, "x": 4.735, "y": 3.622 }, + { "time": 0.3, "x": 4.735, "y": 4.019 }, + { "time": 0.3333, "x": 4.613, "y": 3.339 }, + { "time": 0.3667, "x": 4.918, "y": 3.561 }, + { "time": 0.4, "x": 4.6, "y": 4.263 }, + { "time": 0.6333, "x": 4.449, "y": 2.62 }, + { "time": 1.0333, "x": 3.09, "y": 1.447 } + ] + }, + "smoke2": { + "rotate": [ + { "time": 0.1667, "value": 31.55 }, + { "time": 0.3, "value": -22.63 }, + { "time": 0.4667, "value": 142.89 }, + { "time": 0.6, "value": 253.78 }, + { "time": 0.8333, "value": 299.28 } + ], + "translate": [ + { "time": 0.1667, "x": 17.26, "y": 4.86 }, + { "time": 0.2333, "x": 141.22, "y": 27.27 }, + { "time": 0.3, "x": 178.86, "y": 56.63 }, + { "time": 0.3667, "x": 200.46, "y": 71.05 }, + { "time": 0.4333, "x": 213.12, "y": 78.39 }, + { "time": 0.6333, "x": 221.44, "y": 73.1 }, + { "time": 0.8333, "x": 223.32, "y": 73.74 } + ], + "scale": [ + { "time": 0.1667, "x": 1.34, "y": 1.34 }, + { "time": 0.2333, "x": 2.81, "y": 1.317 }, + { "time": 0.3, "x": 2.932, "y": 1.374 }, + { "time": 0.4667, "x": 1.247, "y": 0.639 }, + { "time": 0.8333, "x": 0.778, "y": 0.515 } + ] + }, + "smoke3": { + "rotate": [ + { "time": 0.1667, "value": -5.54 }, + { "time": 0.2333, "value": 0.2 }, + { "time": 0.3333, "value": 20.27 }, + { "time": 0.4, "value": 31.36 }, + { "time": 0.4667, "value": 68.52 }, + { "time": 0.5333, "value": 99.74 }, + { "time": 0.6333, "value": 145.8 }, + { "time": 0.8333, "value": 193.28 } + ], + "translate": [ + { "time": 0.1333, "x": 1.17, "y": 8.53 }, + { "time": 0.1667, "x": 37.53, "y": 4.84 }, + { "time": 0.2, "x": 67.99, "y": 9.85 }, + { "time": 0.2333, "x": 134.14, "y": -13.5 }, + { "time": 0.2667, "x": 181.31, "y": -19.93 }, + { "time": 0.3, "x": 238.28, "y": -8.82 }, + { "time": 0.3333, "x": 268.51, "y": -25.75 }, + { "time": 0.3667, "x": 359.06, "y": -28.49 }, + { "time": 0.4, "x": 432.96, "y": -24.11 }, + { "time": 0.4667, "x": 452.16, "y": -16.73 }, + { "time": 0.6333, "x": 456.28, "y": -0.41 }, + { "time": 0.8333, "x": 454.14, "y": 16.41 } + ], + "scale": [ + { "time": 0.1333, "x": 2.258, "y": 1.366 }, + { "time": 0.1667, "x": 2.656, "y": 1.47 }, + { "time": 0.2, "x": 3.202, "y": 1.772 }, + { "time": 0.2333, "x": 3.202, "y": 1.93 }, + { "time": 0.2667, "x": 3.124, "y": 1.896 }, + { "time": 0.3, "x": 3.593, "y": 1.896 }, + { "time": 0.3333, "x": 2.363, "y": 1.247 }, + { "time": 0.3667, "x": 1.845, "y": 0.973 }, + { "time": 0.4, "x": 1.754, "y": 0.926 }, + { "time": 0.4333, "x": 1.448, "y": 0.695 }, + { "time": 0.4667, "x": 1.441, "y": 0.688 }, + { "time": 0.5333, "x": 0.865, "y": 0.456 }, + { "time": 0.7, "x": 0.86, "y": 0.454 }, + { "time": 0.8333, "x": 0.211, "y": 0.111 } + ] + }, + "smoke4": { + "rotate": [ + { "time": 0.1667, "value": -20.35 }, + { "time": 0.2333, "value": 18.5 }, + { "time": 0.3, "value": 57.77 }, + { "time": 0.4, "value": 105.85 }, + { "time": 0.6, "value": 161.28 }, + { "time": 0.9, "value": 208.43 } + ], + "translate": [ + { "time": 0.1667, "x": 35.95, "y": 25.54 }, + { "time": 0.2333, "x": 34.17, "y": 1.87 }, + { "time": 0.3, "x": 136.7, "y": 21.5 }, + { "time": 0.4, "x": 138.61, "y": 34.8 }, + { "time": 0.6, "x": 160.38, "y": 37.13 }, + { "time": 0.9, "x": 196.41, "y": 30.36 } + ], + "scale": [ + { "time": 0.1667, "x": 2.751, "y": 1.754 }, + { "time": 0.2333, "x": 3.486, "y": 2.224 }, + { "time": 0.2667, "x": 3.486, "y": 2.586 }, + { "time": 0.3, "x": 3.847, "y": 2.109 }, + { "time": 0.4, "x": 1.96, "y": 1.074 }, + { "time": 0.9, "x": 0.825, "y": 0.452 } + ] + }, + "smoke5": { + "rotate": [ + { "time": 0.2, "value": 23.09 }, + { "time": 0.2667, "value": 12.24 }, + { "time": 0.3333, "value": 36.92 }, + { "time": 0.4333, "value": -37.33 }, + { "time": 0.5333, "value": -0.66 }, + { "time": 0.9, "value": 64.02 } + ], + "translate": [ + { "time": 0.1333 }, + { "time": 0.2333, "x": 123.76, "y": 19.44 }, + { "time": 0.3, "x": 239.08, "y": -49.72 }, + { "time": 0.3667, "x": 280.23, "y": -51.46 }, + { "time": 0.7, "x": 340.62, "y": -20.09 }, + { "time": 0.9, "x": 349.18, "y": -5.25 } + ], + "scale": [ + { "time": 0.1333 }, + { "time": 0.1667, "x": 1.718, "y": 1.718 }, + { "time": 0.2, "x": 2.109, "y": 2.109 }, + { "time": 0.2333, "x": 1.781, "y": 2.183 }, + { "time": 0.2667, "x": 2.148, "y": 2.633 }, + { "time": 0.3333, "x": 2.234, "y": 2.738 }, + { "time": 0.3667, "x": 1.366, "y": 2.148 }, + { "time": 0.4, "x": 0.97, "y": 1.524 }, + { "time": 0.4333, "x": 1.078, "y": 1.157 }, + { "time": 0.4667, "x": 1.126, "y": 1.005 }, + { "time": 0.7, "x": 1.241, "y": 1.301 }, + { "time": 0.9, "x": 0.709, "y": 0.893 } + ] + }, + "smoke6": { + "rotate": [ + { "time": 0.1667, "value": -37.43 }, + { "time": 0.2333, "value": -18.36 }, + { "time": 0.3333, "value": 28.58 }, + { "time": 0.4, "value": 150.54 }, + { "time": 0.7, "value": 301.59 } + ], + "translate": [ + { "time": 0.1333 }, + { "time": 0.2, "x": 68.04, "y": 16.15 }, + { "time": 0.2667, "x": 214.52, "y": 13.25 }, + { "time": 0.3333, "x": 285.4, "y": 17.95 }, + { "time": 0.4, "x": 202.91, "y": 101.43 }, + { "time": 0.4667, "x": 189.25, "y": 116.39 }, + { "time": 0.7, "x": 182.77, "y": 137.4 } + ], + "scale": [ + { "time": 0.1333 }, + { "time": 0.1667, "x": 1.152, "y": 1.288 }, + { "time": 0.2, "x": 1.939, "y": 2.168 }, + { "time": 0.2333, "x": 2.278, "y": 2.223 }, + { "time": 0.2667, "x": 2.023, "y": 1.974 }, + { "time": 0.3, "x": 2.644, "y": 1.974 }, + { "time": 0.4, "x": 1.539, "y": 1.425 }, + { "time": 0.4667, "x": 1.14, "y": 0.939 }, + { "time": 0.7, "x": 0.215, "y": 0.161 } + ] + }, + "smoke7": { + "rotate": [ + { "time": 0.1667, "value": -243.11 }, + { "time": 0.4, "value": -182.02 }, + { "time": 0.8333, "value": -83.02 } + ], + "translate": [ + { "time": 0.1333, "x": 3.19, "y": -6.53 }, + { "time": 0.1667, "x": 44.54, "y": 1.12 }, + { "time": 0.2, "x": 65.84, "y": 6.02 }, + { "time": 0.2333, "x": 173.84, "y": 97.51 }, + { "time": 0.4, "x": 167.39, "y": 74.58 }, + { "time": 0.8333, "x": 227.77, "y": 84.64 } + ], + "scale": [ + { "time": 0.1333, "x": 0.878, "y": 0.878 }, + { "time": 0.1667, "x": 1.235, "y": 1.235 }, + { "time": 0.2, "x": 1.461, "y": 1.461 }, + { "time": 0.2333, "x": 1.114, "y": 1.114 }, + { "time": 0.3333, "x": 1.067, "y": 1.067 }, + { "time": 0.4667, "x": 0.81, "y": 0.753 }, + { "time": 0.8333, "x": 0.52, "y": 0.484 } + ] + }, + "smoke8": { + "rotate": [ + { "time": 0.1667, "value": -156.52 }, + { "time": 0.2667, "value": -154.05 }, + { "time": 0.3333, "value": -108.35 }, + { "time": 0.6, "value": -93.14 }, + { "time": 0.9333, "value": -70.89 } + ], + "translate": [ + { "time": 0.1667, "x": 20.72, "y": 0.25 }, + { "time": 0.2333, "x": 46.1, "y": -10.06 }, + { "time": 0.3, "x": 149.77, "y": 0.92 }, + { "time": 0.3667, "x": 241.21, "y": 49.01 }, + { "time": 0.5333, "x": 276, "y": 58.76 }, + { "time": 0.7, "x": 292.02, "y": 65.91 }, + { "time": 0.9333, "x": 308.7, "y": 69.51 } + ], + "scale": [ + { "time": 0.1333, "y": 1.174 }, + { "time": 0.1667, "x": 1.813, "y": 1.438 }, + { "time": 0.2, "x": 1.813, "y": 1.878 }, + { "time": 0.2333, "x": 1.211, "y": 1.878 }, + { "time": 0.2667, "x": 1.584, "y": 1.596 }, + { "time": 0.3, "x": 1.958, "y": 1.878 }, + { "time": 0.4667, "x": 1.139, "y": 0.958 }, + { "time": 0.9333, "x": 0.839, "y": 0.591 } + ] + }, + "smoke9": { + "rotate": [ + { "time": 0.1333, "value": -44.34 }, + { "time": 0.1667, "value": 14.73 }, + { "time": 0.2333, "value": 116.07 }, + { "time": 0.2667, "value": 118.29 }, + { "time": 0.3333, "value": 148.13 }, + { "time": 0.3667, "value": 172.74 }, + { "time": 0.4, "value": 235.69 }, + { "time": 0.4333, "value": 283.36 }, + { "time": 0.7667, "value": 358.76 } + ], + "translate": [ + { "time": 0.1333, "x": -3.49, "y": 0.04 }, + { "time": 0.2, "x": 87.4, "y": -7.97 }, + { "time": 0.2667, "x": 233.69, "y": -33.86 }, + { "time": 0.3333, "x": 296.44, "y": -30.87 }, + { "time": 0.4, "x": 390.8, "y": 4 }, + { "time": 0.4667, "x": 391.42, "y": 13.17 }, + { "time": 0.6333, "x": 413.3, "y": 36.13 }, + { "time": 0.7667, "x": 408.59, "y": 40.75 } + ], + "scale": [ + { "time": 0.1333, "x": 1.289, "y": 1.501 }, + { "time": 0.2, "x": 1.751, "y": 2.039 }, + { "time": 0.2667, "x": 2.064, "y": 2.347 }, + { "time": 0.3333, "x": 1.822, "y": 2.072 }, + { "time": 0.4, "x": 1.296, "y": 1.045 }, + { "time": 0.4667, "x": 1.872, "y": 1.526 }, + { "time": 0.6333, "x": 1.181, "y": 1.037 }, + { "time": 0.7667, "x": 0.716, "y": 0.615 } + ] + }, + "smoke10": { + "rotate": [ + { "time": 0.1333, "value": 12.16 }, + { "time": 0.2, "value": 49.19 }, + { "time": 0.2667, "value": 33.17 }, + { "time": 0.3333, "value": 42.23 }, + { "time": 0.4, "value": 11.69 }, + { "time": 0.4667, "value": 41.83 }, + { "time": 0.5333, "value": 54.86 }, + { "time": 0.6333, "value": 75.25 }, + { "time": 0.8333, "value": 126.4 } + ], + "translate": [ + { "time": 0.1333, "x": 7.74, "y": 10.25 }, + { "time": 0.2, "x": 42.9, "y": 72.89 }, + { "time": 0.2667, "x": 221.58, "y": 82.27 }, + { "time": 0.3333, "x": 297.31, "y": 85.39 }, + { "time": 0.4, "x": 322.91, "y": 81.04 }, + { "time": 0.4667, "x": 346.62, "y": 76.68 }, + { "time": 0.6667, "x": 377.46, "y": 81.85 }, + { "time": 0.8333, "x": 402.18, "y": 101.03 } + ], + "scale": [ + { "time": 0.1333, "x": 0.537, "y": 1.062 }, + { "time": 0.1667, "x": 1.042, "y": 0.841 }, + { "time": 0.2, "x": 1.937, "y": 1.563 }, + { "time": 0.2333, "x": 1.937, "y": 2.176 }, + { "time": 0.2667, "x": 2.254, "y": 2.532 }, + { "time": 0.3, "x": 2.24, "y": 2.516 }, + { "time": 0.5333, "x": 1.731, "y": 1.882 }, + { "time": 0.8333, "x": 0.855, "y": 0.867 } + ] + }, + "smoke-glow": { + "translate": [ + { "time": 0.0667, "x": -57.08, "y": 0.01 }, + { "time": 0.1, "x": -49.68, "y": -1.46 }, + { "time": 0.1333, "x": 6.3, "y": -2.92 }, + { "time": 0.1667, "x": 31.57, "y": 0.44 }, + { "time": 0.2, "x": 34.04, "y": 0.27 }, + { "time": 0.2333, "x": 109.29, "y": 1.02 }, + { "time": 0.4, "x": 119.89, "y": 1.01 }, + { "time": 0.4333, "x": 135.2, "y": 1.03 }, + { "time": 0.4667, "x": 152.86, "y": 1.06 }, + { "time": 0.5333, "x": 164.64, "y": 1.07 }, + { "time": 0.6, "x": 179.94, "y": 1.09 }, + { "time": 0.6333, "x": 190.54, "y": 1.1 } + ], + "scale": [ + { "time": 0.0667, "x": 0.233, "y": 0.233 }, + { "time": 0.1, "x": 0.42, "y": 0.288 }, + { "time": 0.1333, "x": 1.669, "y": 1.072 }, + { "time": 0.1667, "x": 1.669, "y": 1.785, "curve": "stepped" }, + { "time": 0.2, "x": 1.669, "y": 1.785 }, + { "time": 0.2333, "x": 2.544, "y": 1.785 }, + { "time": 0.4333, "x": 3.48, "y": 2.22 }, + { "time": 0.4667, "x": 4.337, "y": 2.655 } + ] + }, + "smoke11": { + "rotate": [ + { "time": 0.4, "value": 47.07 }, + { "time": 0.4333, "value": 109.71 }, + { "time": 0.4667, "value": 164.62 }, + { "time": 0.8333, "value": 276.93 } + ], + "translate": [ + { "time": 0.3333, "x": 280.31, "y": 126.85 }, + { "time": 0.4, "x": 296.27, "y": 125.62 }, + { "time": 0.4667, "x": 312.45, "y": 131.57 }, + { "time": 0.6667, "x": 310.5, "y": 149.67 }, + { "time": 0.8333, "x": 307.08, "y": 153.94 } + ], + "scale": [ + { "time": 0.3333, "x": 1.491, "y": 1.491 }, + { "time": 0.4667, "x": 1.144, "y": 0.948 }, + { "time": 0.5667, "x": 0.491, "y": 0.491 }, + { "time": 0.8333, "x": 0.985, "y": 0.91 } + ] + }, + "smoke12": { + "rotate": [ + { "time": 0.3667, "value": -37.96 }, + { "time": 0.4333, "value": 28.55 }, + { "time": 0.5333, "value": 108.53 }, + { "time": 0.8667, "value": 191.85 } + ], + "translate": [ + { "time": 0.3667, "x": 390.22, "y": -1.06 }, + { "time": 0.4333, "x": 411.78, "y": 26.39 }, + { "time": 0.5333, "x": 428.12, "y": 56.28 }, + { "time": 0.8667, "x": 444.34, "y": 68.06 } + ], + "scale": [ + { "time": 0.3667, "x": 2.006, "y": 1.821 }, + { "time": 0.5333, "x": 1.719, "y": 1.293 }, + { "time": 0.7333, "x": 1.562, "y": 1.304 }, + { "time": 0.8667, "x": 0.727, "y": 0.637 } + ] + }, + "smoke13": { + "rotate": [ + { "time": 0.3667, "value": 305.8 }, + { "time": 0.4, "value": 478.49 }, + { "time": 0.4333, "value": 537.45 }, + { "time": 0.4667, "value": 573.84 }, + { "time": 0.5333, "value": 596.4 }, + { "time": 0.7, "value": 622.3 }, + { "time": 1, "value": 657.95 } + ], + "translate": [ + { "time": 0.3667, "x": 331.84, "y": -25.82 }, + { "time": 0.4, "x": 417.88, "y": -42.62 }, + { "time": 0.4667, "x": 451.61, "y": -42.21 }, + { "time": 0.5333, "x": 453.81, "y": -37.03 }, + { "time": 0.6, "x": 451.86, "y": -31.89 }, + { "time": 0.7, "x": 453.37, "y": -27.28 }, + { "time": 1, "x": 454.04, "y": -17.89 } + ], + "scale": [ + { "time": 0.3667, "x": 4.509, "y": 3.114 }, + { "time": 0.4, "x": 3.673, "y": 2.537 }, + { "time": 0.4333, "x": 4.201, "y": 2.638 }, + { "time": 0.4667, "x": 4.27, "y": 2.399 }, + { "time": 0.6, "x": 2.798, "y": 1.932 }, + { "time": 0.8333, "x": 2.316, "y": 1.599 }, + { "time": 1, "x": 1.081, "y": 0.746 } + ] + }, + "smoke14": { + "rotate": [ + { "time": 0.4333, "value": 271.03 }, + { "time": 0.7, "value": 299.97 }, + { "time": 1.0667, "value": 331.16 } + ], + "translate": [ + { "time": 0.4333, "x": 371.68, "y": -29.8 }, + { "time": 0.7667, "x": 400.59, "y": -44.36 }, + { "time": 1.0667, "x": 432.26, "y": -44.79 } + ], + "scale": [ + { "time": 0.4333, "x": 4.011, "y": 3.366 }, + { "time": 0.7667, "x": 2.071, "y": 1.624 }, + { "time": 1.0667, "x": 1.798, "y": 1.111 } + ] + }, + "smoke15": { + "rotate": [ + { "time": 0.4, "value": 111.75 }, + { "time": 0.4667, "value": 171.93 }, + { "time": 0.6, "value": 256.95 }, + { "time": 0.8333, "value": 299.15 } + ], + "translate": [ + { "time": 0.4, "x": 266.71, "y": -53.04 }, + { "time": 0.4333, "x": 290.84, "y": -51.43 }, + { "time": 0.5333, "x": 305.65, "y": -44.32 }, + { "time": 0.6667, "x": 318.96, "y": -38.95 }, + { "time": 0.8333, "x": 342.65, "y": -27.33 } + ], + "scale": [ + { "time": 0.4, "x": 2.749, "y": 2.095 }, + { "time": 0.4333, "x": 3.302, "y": 2.289 }, + { "time": 0.4667, "x": 2.591, "y": 1.895 }, + { "time": 0.5333, "x": 1.777, "y": 1.354 }, + { "time": 0.7, "x": 1.932, "y": 1.267 }, + { "time": 0.8333, "x": 1.002, "y": 1.546 } + ] + }, + "smoke16": { + "rotate": [ + { "time": 0.4, "value": 89.78 }, + { "time": 0.4667, "value": 137.83 }, + { "time": 0.5333, "value": 193.49 }, + { "time": 0.6, "value": 235.26 }, + { "time": 0.6333, "value": 286.8 } + ], + "translate": [ + { "time": 0.4, "x": 217.23, "y": -21.45 }, + { "time": 0.4667, "x": 249.95, "y": -13.73 }, + { "time": 0.5333, "x": 264.96, "y": -9.87 }, + { "time": 0.6, "x": 278.95, "y": 6.37 }, + { "time": 0.6333, "x": 245.65, "y": 11.77 } + ], + "scale": [ + { "time": 0.4, "x": 2.265, "y": 1.859 }, + { "time": 0.4333, "x": 2.621, "y": 1.955 }, + { "time": 0.4667, "x": 1.953, "y": 1.538 }, + { "time": 0.6, "x": 1.005, "y": 0.825 }, + { "time": 0.6333, "x": 0.387, "y": 0.318 } + ] + }, + "smoke17": { + "rotate": [ + { "time": 0.2333, "value": 99.02 }, + { "time": 0.3, "value": 58.06 }, + { "time": 0.3333, "value": 34.05 }, + { "time": 0.3667, "value": -17.34 }, + { "time": 0.6667, "value": -62.36 } + ], + "translate": [ + { "time": 0.2333, "x": 18.91, "y": -62.91 }, + { "time": 0.3, "x": 2.43, "y": -61.54 }, + { "time": 0.3333, "x": 1.89, "y": -36.55 }, + { "time": 0.3667, "x": 6.97, "y": -29.52 }, + { "time": 0.4333, "x": 10.78, "y": -20.55 }, + { "time": 0.6667, "x": 18.65, "y": -13.19 } + ], + "scale": [ + { "time": 0.2333, "x": 1.915, "y": 1.915 }, + { "time": 0.3, "x": 1.509, "y": 1.509 }, + { "time": 0.3333, "x": 1.01, "y": 1.01 }, + { "time": 0.3667, "x": 0.715, "y": 0.715 }, + { "time": 0.4333, "x": 0.949, "y": 0.721 }, + { "time": 0.5667, "x": 0.785, "y": 0.74 } + ] + }, + "smoke18": { + "rotate": [ + { "time": 0.2333, "value": 141.75 }, + { "time": 0.2667, "value": 134.51 }, + { "time": 0.3333, "value": 249.12 }, + { "time": 0.5, "value": 363.82 }, + { "time": 0.7333, "value": 450.54 } + ], + "translate": [ + { "time": 0.2333, "x": 60.81, "y": 56.17 }, + { "time": 0.2667, "x": 68.74, "y": 69.4 }, + { "time": 0.3333, "x": 76.85, "y": 69.07 }, + { "time": 0.5, "x": 101.49, "y": 89.87 }, + { "time": 0.7333, "x": 118.58, "y": 101.16 } + ], + "scale": [ + { "time": 0.2333, "x": 2.288, "y": 2.288 }, + { "time": 0.2667, "x": 2.288, "y": 1.628 }, + { "time": 0.3, "x": 1.524, "y": 1.308 }, + { "time": 0.5, "x": 1.757, "y": 1.385 }, + { "time": 0.5333, "x": 2.08, "y": 1.51 }, + { "time": 0.7333, "x": 1.405, "y": 0.896 } + ] + }, + "smoke20": { + "rotate": [ + { "time": 0.3333, "value": 95.16 }, + { "time": 0.3667, "value": 130.42 }, + { "time": 0.4, "value": 170.7 }, + { "time": 0.4333, "value": 266.75 }, + { "time": 0.4667, "value": 299.82 }, + { "time": 0.5333, "value": 326.88 }, + { "time": 0.6, "value": 350.8 }, + { "time": 0.9, "value": 403.14 } + ], + "translate": [ + { "time": 0.3333, "x": 124.61, "y": -46.55 }, + { "time": 0.5333, "x": 173.8, "y": -36.62 }, + { "time": 0.7, "x": 186.5, "y": -35.41 }, + { "time": 0.9, "x": 188.56, "y": -37.75 } + ], + "scale": [ + { "time": 0.3333, "x": 3.346, "y": 2.654 }, + { "time": 0.3667, "x": 2.661, "y": 2.111 }, + { "time": 0.4333, "x": 2.751, "y": 1.984 }, + { "time": 0.4667, "x": 3.059, "y": 2.21 }, + { "time": 0.5333, "x": 2.159, "y": 1.712 }, + { "time": 0.7, "x": 1.601, "y": 1.27 }, + { "time": 0.9, "x": 1.679, "y": 0.856 } + ] + }, + "smoke23": { + "rotate": [ + { "time": 0.3, "value": 115.12 }, + { "time": 0.3667, "value": 79.01 }, + { "time": 0.7667, "value": 6.96 } + ], + "translate": [ + { "time": 0.3, "x": 75.15, "y": -50.92 }, + { "time": 0.3667, "x": 59.33, "y": -53.52 }, + { "time": 0.7667, "x": 39.68, "y": -48.64 } + ], + "scale": [ + { "time": 0.3, "x": 3.331, "y": 2.096 }, + { "time": 0.4333, "x": 2.4, "y": 2.006 }, + { "time": 0.5, "x": 2.555, "y": 2.094 }, + { "time": 0.7667, "x": 1.35, "y": 1.241 } + ] + }, + "antenna1": { + "rotate": [ + { "time": 0.0667 }, + { "time": 0.2, "value": 11.78 }, + { "time": 0.3, "value": -9.52 }, + { "time": 0.4, "value": 8.07 }, + { "time": 0.5, "value": -4.45 }, + { "time": 0.6, "value": 1.54 }, + { "time": 0.7, "value": -0.34 } + ] + }, + "antenna2": { + "rotate": [ + { "time": 0.0667 }, + { "time": 0.2, "value": 11.78 }, + { "time": 0.3, "value": -9.52 }, + { "time": 0.4, "value": 8.07 }, + { "time": 0.5, "value": -4.45 }, + { "time": 0.6, "value": 1.54 }, + { "time": 0.7, "value": -0.34 } + ] + }, + "antenna3": { + "rotate": [ + { "time": 0.0667 }, + { "time": 0.2, "value": 11.78 }, + { "time": 0.3, "value": -9.52 }, + { "time": 0.4, "value": 8.07 }, + { "time": 0.5, "value": -4.45 }, + { "time": 0.6, "value": 1.54 }, + { "time": 0.7, "value": -0.34 } + ] + }, + "antenna4": { + "rotate": [ + { "time": 0.0667 }, + { "time": 0.2, "value": 11.78 }, + { "time": 0.3, "value": -9.52 }, + { "time": 0.4, "value": 8.07 }, + { "time": 0.5, "value": -4.45 }, + { "time": 0.6, "value": 1.54 }, + { "time": 0.7, "value": -0.34 } + ] + }, + "antenna5": { + "rotate": [ + { "time": 0.0667 }, + { "time": 0.2, "value": 11.78 }, + { "time": 0.3, "value": -9.52 }, + { "time": 0.4, "value": 8.07 }, + { "time": 0.5, "value": -4.45 }, + { "time": 0.6, "value": 1.54 }, + { "time": 0.7, "value": -0.34 } + ] + }, + "antenna6": { + "rotate": [ + { "time": 0.0667 }, + { "time": 0.2, "value": 11.78 }, + { "time": 0.3, "value": -9.52 }, + { "time": 0.4, "value": 8.07 }, + { "time": 0.5, "value": -4.45 }, + { "time": 0.6, "value": 1.54 }, + { "time": 0.7, "value": -0.34 } + ] + }, + "smoke24": { + "rotate": [ + { "time": 0.3, "value": 71.32 }, + { "time": 0.3667, "value": 112.39 }, + { "time": 0.4667, "value": 159.56 }, + { "time": 0.7, "value": 224.21 } + ], + "translate": [ + { "time": 0.3, "x": 90.72, "y": -18.79 }, + { "time": 0.3667, "x": 149.69, "y": -7.78 }, + { "time": 0.4667, "x": 176.26, "y": 12.31 }, + { "time": 0.7, "x": 184.07, "y": 31.75 } + ], + "scale": [ + { "time": 0.3, "x": 2.906, "y": 2.311 }, + { "time": 0.4333, "x": 3.567, "y": 2.58 }, + { "time": 0.4667, "x": 3.157, "y": 2.41 }, + { "time": 0.7, "x": 1.705, "y": 1.356 } + ] + }, + "smoke25": { + "rotate": [ + { "time": 0.3667, "value": 91.25 }, + { "time": 0.4333, "value": 117.56 }, + { "time": 0.6333, "value": 150.9 }, + { "time": 1, "value": 189.47 } + ], + "translate": [ + { "time": 0.3667, "x": 187.21, "y": -51.18 }, + { "time": 0.5333, "x": 245.48, "y": -46.28 }, + { "time": 0.6667, "x": 277.36, "y": -43.12 }, + { "time": 1, "x": 313.27, "y": -38.14 } + ], + "scale": [ + { "time": 0.3667, "x": 3.606, "y": 2.657 }, + { "time": 0.4333, "x": 4.166, "y": 2.792 }, + { "time": 0.5333, "x": 3.09, "y": 2.091 }, + { "time": 1, "x": 3.062, "y": 1.801 } + ] + }, + "smoke26": { + "rotate": [ + { "time": 0.3667, "value": 10.64 }, + { "time": 0.4, "value": 60.85 }, + { "time": 0.4667, "value": 89.45 }, + { "time": 0.7, "value": 125.01 }, + { "time": 0.9333, "value": 155.24 } + ], + "translate": [ + { "time": 0.3667, "x": 442.07, "y": -13.19 }, + { "time": 0.4, "x": 453.7, "y": 0.81 }, + { "time": 0.4667, "x": 443.57, "y": -6.95 }, + { "time": 0.7, "x": 460.97, "y": 15.79 }, + { "time": 0.9333, "x": 465.22, "y": 20.92 } + ], + "scale": [ + { "time": 0.3667, "x": 2.726, "y": 2.726 }, + { "time": 0.4333, "x": 3.729, "y": 2.822 }, + { "time": 0.4667, "x": 3.398, "y": 2.441 }, + { "time": 0.7, "x": 4.324, "y": 3.159 }, + { "time": 0.9, "x": 1.977, "y": 1.48 } + ] + }, + "smoke27": { + "rotate": [ + { "time": 0.3667, "value": 24.75 }, + { "time": 0.4333, "value": -5.43 }, + { "time": 0.5333, "value": -39.76 }, + { "time": 0.8333, "value": -56.25 } + ], + "translate": [ + { "time": 0.3667, "x": 92.98, "y": -49.06 }, + { "time": 0.5333, "x": 129.81, "y": -33.09 }, + { "time": 0.8333, "x": 143.68, "y": -25.27 } + ], + "scale": [ + { "time": 0.3667, "x": 3.633, "y": 2.223 }, + { "time": 0.4333, "x": 2.745, "y": 2.283 }, + { "time": 0.4667, "x": 2.962, "y": 2.122 }, + { "time": 0.5333, "x": 2.007, "y": 1.266 } + ] + }, + "cannon-target": { + "translate": [ + { "time": 0.1333 }, + { + "time": 0.2, + "y": 128.38, + "curve": [ 0.4, 0, 0.8, 0, 0.4, 128.38, 0.8, 0 ] + }, + { "time": 1 } + ], + "scale": [ + { "time": 0.4333, "x": 0.632, "y": 1.244 }, + { "time": 0.4667, "x": 0.477, "y": 1.487 } + ] + }, + "machinegun-target": { + "scale": [ + { "time": 0.4333, "x": 0.632, "y": 1.244 }, + { "time": 0.4667, "x": 0.477, "y": 1.487 } + ] + }, + "machinegun": { + "rotate": [ + { "value": 8.07, "curve": "stepped" }, + { "time": 0.0667, "value": 8.07 }, + { + "time": 0.2333, + "value": -18.67, + "curve": [ 0.894, -18.44, 0.832, 7.5 ] + }, + { "time": 0.9, "value": 8.07 } + ] + }, + "tank-root": { + "translate": [ + { "time": 0.0667 }, + { + "time": 0.1667, + "x": 46.59, + "curve": [ 0.192, 46.59, 0.242, 0, 0.192, 0, 0.242, 0 ] + }, + { "time": 0.2667 } + ] + }, + "tank-glow": { + "translate": [ + { + "time": 0.1333, + "x": 198.14, + "curve": [ 0.199, 190.76, 0.222, -255.89, 0.199, 0, 0.222, 0 ] + }, + { "time": 0.2333, "x": -390 } + ], + "scale": [ + { "time": 0.0667 }, + { + "time": 0.1333, + "x": 1.185, + "y": 0.945, + "curve": [ 0.199, 1.18, 0.222, 1.05, 0.199, 0.94, 0.222, 0.58 ] + }, + { "time": 0.2333, "x": 1.008, "y": 0.471 } + ] + } + }, + "deform": { + "default": { + "clipping": { + "clipping": [ + { + "time": 0.0667, + "offset": 54, + "vertices": [ 4.59198, -4.59192 ] + }, + { + "time": 0.1333, + "offset": 8, + "vertices": [ -8.97369, -1.88211, 9.11177, 1.02258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14.73321, -45.16878, -30.31448, -84.4631, -32.24969, -108.78421, 70.26825, -36.90201 ] + }, + { + "time": 0.1667, + "offset": 8, + "vertices": [ -11.32373, -1.65065, 11.42179, 0.53259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -15.36503, -69.18713, -4.45626, -121.90839, 5.46554, -115.23274, 71.78526, -33.85687 ] + }, + { + "time": 0.2, + "offset": 8, + "vertices": [ -8.70522, 1.02196, 8.65102, -1.4101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.59198, -4.59192 ] + }, + { + "time": 0.2333, + "offset": 8, + "vertices": [ -5.23146, 0.85796, 5.23882, -0.81519 ] + }, + { + "time": 0.2667, + "offset": 54, + "vertices": [ 4.59198, -4.59192 ] + } + ] + }, + "smoke-glow": { + "smoke-glow": [ + { + "time": 0.1333, + "vertices": [ -14.17073, 19.14352, 0, 0, -10.97961, -15.09065, -5.79558, -24.82121, 0.68117, -17.78759, -1.1179, -5.4463, 0, 0, 0, 0, 17.52957, 6.89397, -0.33841, -2.21582, 5.51004, 18.88118, -6.80153, 20.91101 ] + }, + { + "time": 0.1667, + "vertices": [ -4.34264, 39.78125, 5.6649, -2.42686, -8.39346, -22.52338, -2.66431, 5.08595, -19.28093, 3.98568, -11.21397, 10.2879, 4.56749, 4.1329, -19.50706, -2.28786, 11.35747, 4.55941, 9.04341, -11.72194, 2.15381, 5.14344, -12.82158, 16.08209, -23.19814, 1.81836 ] + }, + { + "time": 0.2, + "vertices": [ -3.95581, 36.12203, 37.20779, -0.87419, 21.29579, -15.76854, -2.02438, 6.16526, -5.92201, 4.19709, -1.39027, 9.92793, 7.70584, -0.7169, -6.69733, -2.62048, 17.91826, 7.77333, -12.2858, 3.25454, -12.75876, 3.71516, 9.67891, 15.48546 ] + }, + { + "time": 0.2333, + "vertices": [ -11.9371, 26.01078, 2.91821, -0.27533, 7.69899, -17.45375, -2.02438, 6.16526, -5.92201, 4.19709, -1.39027, 9.92793, 7.70584, -0.7169, -6.69733, -2.62048, 17.91826, 7.77333, -4.30551, -6.01406, -12.75876, 3.71516, -5.10017, 17.59191 ] + }, + { + "time": 0.2667, + "vertices": [ 0.5959, 23.58176, 20.74303, 0.93943, 7.69899, -17.45375, -2.02438, 6.16526, -5.92201, 4.19709, -1.39027, 9.92793, 20.51733, 2.52203, 13.35544, 2.64274, 24.32408, -1.94308, 8.50604, -20.99353, 13.14276, 5.73959, 6.31876, 19.2114, 16.98909, 0.80981 ] + } + ] + } + } + }, + "drawOrder": [ + { + "time": 0.3, + "offsets": [ + { "slot": "smoke-puff1-bg2", "offset": 24 }, + { "slot": "smoke-puff1-bg8", "offset": 19 }, + { "slot": "smoke-puff1-bg9", "offset": 22 }, + { "slot": "smoke-puff1-bg3", "offset": 17 }, + { "slot": "smoke-puff1-fg17", "offset": 13 }, + { "slot": "smoke-puff1-fg2", "offset": 2 }, + { "slot": "smoke-puff1-fg5", "offset": 8 }, + { "slot": "smoke-puff1-fg6", "offset": 4 }, + { "slot": "smoke-puff1-fg7", "offset": -4 }, + { "slot": "smoke-puff1-fg4", "offset": -4 } + ] + }, + { + "time": 0.3333, + "offsets": [ + { "slot": "smoke-puff1-bg2", "offset": 8 }, + { "slot": "smoke-puff1-bg8", "offset": 5 }, + { "slot": "smoke-puff1-bg9", "offset": 3 }, + { "slot": "smoke-puff1-fg", "offset": 24 }, + { "slot": "smoke-puff1-fg5", "offset": -14 }, + { "slot": "smoke-puff1-fg6", "offset": -21 }, + { "slot": "smoke-puff1-fg7", "offset": -19 }, + { "slot": "smoke-puff1-fg10", "offset": -21 } + ] + }, + { + "time": 0.3667, + "offsets": [ + { "slot": "smoke-puff1-bg2", "offset": 7 }, + { "slot": "smoke-puff1-bg9", "offset": 4 }, + { "slot": "smoke-puff1-fg", "offset": 24 }, + { "slot": "smoke-puff1-fg2", "offset": 5 }, + { "slot": "smoke-puff1-fg6", "offset": -22 }, + { "slot": "smoke-puff1-fg7", "offset": -18 }, + { "slot": "smoke-puff1-fg10", "offset": -20 } + ] + }, + { + "time": 0.4, + "offsets": [ + { "slot": "smoke-puff1-bg2", "offset": 5 }, + { "slot": "smoke-puff1-bg4", "offset": 0 }, + { "slot": "smoke-puff1-fg", "offset": 24 }, + { "slot": "smoke-puff1-fg2", "offset": 5 }, + { "slot": "smoke-puff1-fg6", "offset": -21 }, + { "slot": "smoke-puff1-fg7", "offset": -18 }, + { "slot": "smoke-puff1-fg10", "offset": -22 } + ] + }, + { + "time": 0.4333, + "offsets": [ + { "slot": "smoke-puff1-bg2", "offset": 4 }, + { "slot": "smoke-puff1-bg9", "offset": 4 }, + { "slot": "smoke-puff1-fg", "offset": 24 }, + { "slot": "smoke-puff1-fg2", "offset": 5 }, + { "slot": "smoke-puff1-fg6", "offset": -17 }, + { "slot": "smoke-puff1-fg7", "offset": -19 }, + { "slot": "smoke-puff1-fg10", "offset": -23 } + ] + }, + { + "time": 0.5333, + "offsets": [ + { "slot": "smoke-puff1-bg2", "offset": 9 }, + { "slot": "smoke-puff1-bg12", "offset": 0 }, + { "slot": "smoke-puff1-fg", "offset": 24 }, + { "slot": "smoke-puff1-fg2", "offset": 6 }, + { "slot": "smoke-puff1-fg6", "offset": -20 }, + { "slot": "smoke-puff1-fg7", "offset": -19 }, + { "slot": "smoke-puff1-fg10", "offset": -23 }, + { "slot": "smoke-puff1-fg4", "offset": -5 } + ] + } + ] + } +} +} \ No newline at end of file diff --git a/spine-ts/webgl/example/assets/vine-pro.json b/spine-ts/webgl/example/assets/vine-pro.json new file mode 100644 index 000000000..053e77d18 --- /dev/null +++ b/spine-ts/webgl/example/assets/vine-pro.json @@ -0,0 +1,357 @@ +{ +"skeleton": { + "hash": "xgpkAVpHzus", + "spine": "4.0.05-beta", + "x": -87.7, + "y": -1.71, + "width": 227.65, + "height": 841.09, + "images": "./images/", + "audio": "" +}, +"bones": [ + { "name": "root" }, + { + "name": "vine-control1", + "parent": "root", + "length": 296.68, + "rotation": 88.65, + "x": -2.51, + "y": 2.55, + "color": "ff0004ff" + }, + { "name": "vine-control2", "parent": "vine-control1", "length": 292.6, "rotation": 0.96, "x": 296.68, "color": "ff0004ff" }, + { "name": "vine-control3", "parent": "vine-control2", "length": 247.5, "rotation": 0.16, "x": 292.6, "color": "ff0004ff" }, + { "name": "vine-control4", "parent": "vine-control3", "length": 212.43, "rotation": 0.5, "x": 247.5, "color": "ff0004ff" }, + { + "name": "vine1", + "parent": "root", + "length": 74, + "rotation": 90, + "x": 339.1, + "y": -467.15, + "color": "f700ffff" + }, + { + "name": "vine10", + "parent": "vine1", + "length": 74, + "rotation": 48, + "x": 608.63, + "y": 19.06, + "color": "f700ffff" + }, + { + "name": "vine11", + "parent": "vine1", + "length": 74, + "rotation": 39.71, + "x": 670.66, + "y": 66.4, + "color": "f700ffff" + }, + { + "name": "vine12", + "parent": "vine1", + "length": 74, + "rotation": 10.73, + "x": 750.1, + "y": 80.23, + "color": "f700ffff" + }, + { + "name": "vine13", + "parent": "vine1", + "length": 74, + "rotation": -18.44, + "x": 826.07, + "y": 56.95, + "color": "f700ffff" + }, + { "name": "vine2", "parent": "vine1", "length": 74, "x": 74, "color": "f700ffff" }, + { + "name": "vine3", + "parent": "vine1", + "length": 74, + "rotation": 38.95, + "x": 137.97, + "y": 47.51, + "color": "f700ffff" + }, + { + "name": "vine4", + "parent": "vine1", + "length": 74, + "rotation": 16.68, + "x": 214.29, + "y": 68.52, + "color": "f700ffff" + }, + { + "name": "vine5", + "parent": "vine1", + "length": 74, + "rotation": -21.74, + "x": 289.61, + "y": 40.93, + "color": "f700ffff" + }, + { + "name": "vine6", + "parent": "vine1", + "length": 74, + "rotation": -50.04, + "x": 341.13, + "y": -15.58, + "color": "f700ffff" + }, + { + "name": "vine7", + "parent": "vine1", + "length": 74, + "rotation": -39.26, + "x": 402.7, + "y": -61.82, + "color": "f700ffff" + }, + { + "name": "vine8", + "parent": "vine1", + "length": 74, + "rotation": -6.18, + "x": 483.27, + "y": -69.84, + "color": "f700ffff" + }, + { + "name": "vine9", + "parent": "vine1", + "length": 74, + "rotation": 27.11, + "x": 554.26, + "y": -36.44, + "color": "f700ffff" + } +], +"slots": [ + { "name": "vine-path", "bone": "root", "attachment": "vine-path" }, + { "name": "vine", "bone": "vine1", "attachment": "vine" } +], +"path": [ + { + "name": "vine-path", + "bones": [ "vine1", "vine2", "vine3", "vine4", "vine5", "vine6", "vine7", "vine8", "vine9", "vine10", "vine11", "vine12", "vine13" ], + "target": "vine-path", + "rotateMode": "chainScale" + } +], +"skins": [ + { + "name": "default", + "attachments": { + "vine": { + "vine": { + "type": "mesh", + "uvs": [ 0, 0, 0.5, 0, 1, 0, 1, 0.03846, 1, 0.07692, 1, 0.11538, 1, 0.15385, 1, 0.19231, 1, 0.23077, 1, 0.26923, 1, 0.30769, 1, 0.34615, 1, 0.38462, 1, 0.42308, 1, 0.46154, 1, 0.5, 1, 0.53846, 1, 0.57692, 1, 0.61538, 1, 0.65385, 1, 0.69231, 1, 0.73077, 1, 0.76923, 1, 0.80769, 1, 0.84615, 1, 0.88462, 1, 0.92308, 1, 0.96154, 1, 1, 0.5, 1, 0, 1, 0, 0.96154, 0, 0.92308, 0, 0.88462, 0, 0.84615, 0, 0.80769, 0, 0.76923, 0, 0.73077, 0, 0.69231, 0, 0.65385, 0, 0.61538, 0, 0.57692, 0, 0.53846, 0, 0.5, 0, 0.46154, 0, 0.42308, 0, 0.38462, 0, 0.34615, 0, 0.30769, 0, 0.26923, 0, 0.23077, 0, 0.19231, 0, 0.15385, 0, 0.11538, 0, 0.07692, 0, 0.03846, 0.5, 0.03846, 0.5, 0.07692, 0.5, 0.11538, 0.5, 0.15385, 0.5, 0.19231, 0.5, 0.23077, 0.5, 0.26923, 0.5, 0.30769, 0.5, 0.34615, 0.5, 0.38462, 0.5, 0.42308, 0.5, 0.46154, 0.5, 0.5, 0.5, 0.53846, 0.5, 0.57692, 0.5, 0.61538, 0.5, 0.65385, 0.5, 0.69231, 0.5, 0.73077, 0.5, 0.76923, 0.5, 0.80769, 0.5, 0.84615, 0.5, 0.88462, 0.5, 0.92308, 0.5, 0.96154 ], + "triangles": [ 57, 56, 3, 54, 55, 56, 56, 2, 3, 55, 1, 56, 56, 1, 2, 55, 0, 1, 54, 56, 57, 59, 58, 5, 52, 53, 58, 58, 4, 5, 53, 57, 58, 58, 57, 4, 53, 54, 57, 57, 3, 4, 61, 60, 7, 50, 51, 60, 60, 6, 7, 51, 59, 60, 60, 59, 6, 51, 52, 59, 59, 5, 6, 52, 58, 59, 62, 61, 8, 49, 50, 61, 61, 7, 8, 50, 60, 61, 63, 62, 9, 48, 49, 62, 62, 8, 9, 49, 61, 62, 63, 9, 10, 65, 64, 11, 46, 47, 64, 64, 10, 11, 47, 63, 64, 64, 63, 10, 47, 48, 63, 48, 62, 63, 67, 66, 13, 44, 45, 66, 66, 12, 13, 45, 65, 66, 66, 65, 12, 45, 46, 65, 46, 64, 65, 65, 11, 12, 69, 68, 15, 42, 43, 68, 68, 14, 15, 43, 67, 68, 68, 67, 14, 43, 44, 67, 67, 13, 14, 44, 66, 67, 71, 70, 17, 40, 41, 70, 70, 16, 17, 41, 69, 70, 70, 69, 16, 41, 42, 69, 69, 15, 16, 42, 68, 69, 73, 72, 19, 38, 39, 72, 72, 18, 19, 39, 71, 72, 72, 71, 18, 39, 40, 71, 71, 17, 18, 40, 70, 71, 75, 74, 21, 36, 37, 74, 74, 20, 21, 37, 73, 74, 74, 73, 20, 37, 38, 73, 73, 19, 20, 38, 72, 73, 77, 76, 23, 34, 35, 76, 76, 22, 23, 35, 75, 76, 76, 75, 22, 35, 36, 75, 75, 21, 22, 36, 74, 75, 78, 77, 24, 33, 34, 77, 32, 78, 79, 79, 78, 25, 32, 33, 78, 78, 24, 25, 33, 77, 78, 77, 23, 24, 34, 76, 77, 79, 25, 26, 29, 27, 28, 30, 80, 29, 29, 80, 27, 30, 31, 80, 80, 26, 27, 31, 79, 80, 80, 79, 26, 31, 32, 79 ], + "vertices": [ 3, 7, 220, 33.89, 0.0165, 8, 146, 33.89, 0.21533, 9, 72, 33.89, 0.76817, 2, 8, 146, -0.11, 0.16997, 9, 72, -0.11, 0.83003, 3, 7, 220, -34.11, 0.0165, 8, 146, -34.11, 0.21533, 9, 72, -34.11, 0.76817, 3, 7, 183, -34.11, 0.04748, 8, 109, -34.11, 0.33417, 9, 35, -34.11, 0.61835, 4, 6, 220, -34.11, 0.01164, 7, 146, -34.11, 0.14113, 8, 72, -34.11, 0.49183, 9, -2, -34.11, 0.3554, 4, 6, 183, -34.11, 0.04672, 7, 109, -34.11, 0.31228, 8, 35, -34.11, 0.48857, 9, -39, -34.11, 0.15243, 4, 6, 146, -34.11, 0.14271, 7, 72, -34.11, 0.49271, 8, -2, -34.11, 0.3155, 9, -76, -34.11, 0.04909, 4, 6, 109, -34.11, 0.32758, 7, 35, -34.11, 0.51172, 8, -39, -34.11, 0.14821, 9, -113, -34.11, 0.01249, 4, 6, 72, -34.11, 0.57473, 7, -2, -34.11, 0.36792, 8, -76, -34.11, 0.05505, 9, -150, -34.11, 0.00231, 4, 17, 109, -34.11, 0.32766, 6, 35, -34.11, 0.51185, 7, -39, -34.11, 0.14825, 8, -113, -34.11, 0.01223, 4, 16, 146, -34.11, 0.14299, 17, 72, -34.11, 0.49369, 6, -2, -34.11, 0.31604, 7, -76, -34.11, 0.04729, 4, 15, 183, -34.11, 0.04729, 16, 109, -34.11, 0.31604, 17, 35, -34.11, 0.49369, 6, -39, -34.11, 0.14299, 4, 15, 146, -34.11, 0.14299, 16, 72, -34.11, 0.49369, 17, -2, -34.11, 0.31604, 6, -76, -34.11, 0.04729, 4, 14, 183, -34.11, 0.04729, 15, 109, -34.11, 0.31604, 16, 35, -34.11, 0.49369, 17, -39, -34.11, 0.14299, 4, 14, 146, -34.11, 0.14299, 15, 72, -34.11, 0.49369, 16, -2, -34.11, 0.31604, 17, -76, -34.11, 0.04729, 4, 13, 183, -34.11, 0.04729, 14, 109, -34.11, 0.31604, 15, 35, -34.11, 0.49369, 16, -39, -34.11, 0.14299, 4, 13, 146, -34.11, 0.14299, 14, 72, -34.11, 0.49369, 15, -2, -34.11, 0.31604, 16, -76, -34.11, 0.04729, 4, 12, 183, -34.11, 0.04729, 13, 109, -34.11, 0.31604, 14, 35, -34.11, 0.49369, 15, -39, -34.11, 0.14299, 4, 12, 146, -34.11, 0.14299, 13, 72, -34.11, 0.49369, 14, -2, -34.11, 0.31604, 15, -76, -34.11, 0.04729, 4, 11, 183, -34.11, 0.04729, 12, 109, -34.11, 0.31604, 13, 35, -34.11, 0.49369, 14, -39, -34.11, 0.14299, 4, 11, 146, -34.11, 0.14299, 12, 72, -34.11, 0.49369, 13, -2, -34.11, 0.31604, 14, -76, -34.11, 0.04729, 4, 10, 183, -34.11, 0.04752, 11, 109, -34.11, 0.31596, 12, 35, -34.11, 0.49356, 13, -39, -34.11, 0.14296, 4, 10, 146, -34.11, 0.14433, 11, 72, -34.11, 0.49291, 12, -2, -34.11, 0.31554, 13, -76, -34.11, 0.04721, 4, 5, 183, -34.11, 0.04107, 10, 109, -34.11, 0.32351, 11, 35, -34.11, 0.49271, 12, -39, -34.11, 0.14271, 4, 5, 146, -34.11, 0.12766, 10, 72, -34.11, 0.51334, 11, -2, -34.11, 0.31227, 12, -76, -34.11, 0.04672, 4, 5, 109, -34.11, 0.30124, 10, 35, -34.11, 0.54607, 11, -39, -34.11, 0.14105, 12, -113, -34.11, 0.01164, 3, 5, 72, -34.11, 0.55512, 10, -2, -34.11, 0.39816, 11, -76, -34.11, 0.04672, 3, 5, 35, -34.11, 0.77997, 10, -39, -34.11, 0.20831, 11, -113, -34.11, 0.01172, 2, 5, -2, -34.11, 0.89275, 10, -76, -34.11, 0.10725, 2, 5, -2, -0.11, 0.92721, 10, -76, -0.11, 0.07279, 2, 5, -2, 33.89, 0.89275, 10, -76, 33.89, 0.10725, 3, 5, 35, 33.89, 0.77997, 10, -39, 33.89, 0.20831, 11, -113, 33.89, 0.01172, 3, 5, 72, 33.89, 0.55512, 10, -2, 33.89, 0.39816, 11, -76, 33.89, 0.04672, 4, 5, 109, 33.89, 0.30124, 10, 35, 33.89, 0.54607, 11, -39, 33.89, 0.14105, 12, -113, 33.89, 0.01164, 4, 5, 146, 33.89, 0.12766, 10, 72, 33.89, 0.51334, 11, -2, 33.89, 0.31227, 12, -76, 33.89, 0.04672, 4, 5, 183, 33.89, 0.04107, 10, 109, 33.89, 0.32351, 11, 35, 33.89, 0.49271, 12, -39, 33.89, 0.14271, 4, 10, 146, 33.89, 0.14433, 11, 72, 33.89, 0.49291, 12, -2, 33.89, 0.31554, 13, -76, 33.89, 0.04721, 4, 10, 183, 33.89, 0.04752, 11, 109, 33.89, 0.31596, 12, 35, 33.89, 0.49356, 13, -39, 33.89, 0.14296, 4, 11, 146, 33.89, 0.14299, 12, 72, 33.89, 0.49369, 13, -2, 33.89, 0.31604, 14, -76, 33.89, 0.04729, 4, 11, 183, 33.89, 0.04729, 12, 109, 33.89, 0.31604, 13, 35, 33.89, 0.49369, 14, -39, 33.89, 0.14299, 4, 12, 146, 33.89, 0.14299, 13, 72, 33.89, 0.49369, 14, -2, 33.89, 0.31604, 15, -76, 33.89, 0.04729, 4, 12, 183, 33.89, 0.04729, 13, 109, 33.89, 0.31604, 14, 35, 33.89, 0.49369, 15, -39, 33.89, 0.14299, 4, 13, 146, 33.89, 0.14299, 14, 72, 33.89, 0.49369, 15, -2, 33.89, 0.31604, 16, -76, 33.89, 0.04729, 4, 13, 183, 33.89, 0.04729, 14, 109, 33.89, 0.31604, 15, 35, 33.89, 0.49369, 16, -39, 33.89, 0.14299, 4, 14, 146, 33.89, 0.14299, 15, 72, 33.89, 0.49369, 16, -2, 33.89, 0.31604, 17, -76, 33.89, 0.04729, 4, 14, 183, 33.89, 0.04729, 15, 109, 33.89, 0.31604, 16, 35, 33.89, 0.49369, 17, -39, 33.89, 0.14299, 4, 15, 146, 33.89, 0.14299, 16, 72, 33.89, 0.49369, 17, -2, 33.89, 0.31604, 6, -76, 33.89, 0.04729, 4, 15, 183, 33.89, 0.04729, 16, 109, 33.89, 0.31604, 17, 35, 33.89, 0.49369, 6, -39, 33.89, 0.14299, 4, 16, 146, 33.89, 0.14299, 17, 72, 33.89, 0.49369, 6, -2, 33.89, 0.31604, 7, -76, 33.89, 0.04729, 4, 17, 109, 33.89, 0.32766, 6, 35, 33.89, 0.51185, 7, -39, 33.89, 0.14825, 8, -113, 33.89, 0.01223, 4, 6, 72, 33.89, 0.57473, 7, -2, 33.89, 0.36792, 8, -76, 33.89, 0.05505, 9, -150, 33.89, 0.00231, 4, 6, 109, 33.89, 0.32758, 7, 35, 33.89, 0.51172, 8, -39, 33.89, 0.14821, 9, -113, 33.89, 0.01249, 4, 6, 146, 33.89, 0.14271, 7, 72, 33.89, 0.49271, 8, -2, 33.89, 0.3155, 9, -76, 33.89, 0.04909, 4, 6, 183, 33.89, 0.04672, 7, 109, 33.89, 0.31228, 8, 35, 33.89, 0.48857, 9, -39, 33.89, 0.15243, 4, 6, 220, 33.89, 0.01164, 7, 146, 33.89, 0.14113, 8, 72, 33.89, 0.49183, 9, -2, 33.89, 0.3554, 3, 7, 183, 33.89, 0.04748, 8, 109, 33.89, 0.33417, 9, 35, 33.89, 0.61835, 3, 7, 183, -0.11, 0.03069, 8, 109, -0.11, 0.31679, 9, 35, -0.11, 0.65252, 3, 7, 146, -0.11, 0.11465, 8, 72, -0.11, 0.5508, 9, -2, -0.11, 0.33455, 4, 6, 183, -0.11, 0.03047, 7, 109, -0.11, 0.30393, 8, 35, -0.11, 0.54628, 9, -39, -0.11, 0.11931, 4, 6, 146, -0.11, 0.11465, 7, 72, -0.11, 0.54869, 8, -2, -0.11, 0.30539, 9, -76, -0.11, 0.03128, 4, 6, 109, -0.11, 0.31348, 7, 35, -0.11, 0.56323, 8, -39, -0.11, 0.11769, 9, -113, -0.11, 0.0056, 4, 17, 146, -0.11, 0.11473, 6, 72, -0.11, 0.54905, 7, -2, -0.11, 0.30559, 8, -76, -0.11, 0.03064, 4, 16, 183, -0.11, 0.03064, 17, 109, -0.11, 0.30559, 6, 35, -0.11, 0.54905, 7, -39, -0.11, 0.11473, 4, 16, 146, -0.11, 0.11473, 17, 72, -0.11, 0.54905, 6, -2, -0.11, 0.30559, 7, -76, -0.11, 0.03064, 4, 15, 183, -0.11, 0.03064, 16, 109, -0.11, 0.30559, 17, 35, -0.11, 0.54905, 6, -39, -0.11, 0.11473, 4, 15, 146, -0.11, 0.11473, 16, 72, -0.11, 0.54905, 17, -2, -0.11, 0.30559, 6, -76, -0.11, 0.03064, 4, 14, 183, -0.11, 0.03064, 15, 109, -0.11, 0.30559, 16, 35, -0.11, 0.54905, 17, -39, -0.11, 0.11473, 4, 14, 146, -0.11, 0.11473, 15, 72, -0.11, 0.54905, 16, -2, -0.11, 0.30559, 17, -76, -0.11, 0.03064, 4, 13, 183, -0.11, 0.03064, 14, 109, -0.11, 0.30559, 15, 35, -0.11, 0.54905, 16, -39, -0.11, 0.11473, 4, 13, 146, -0.11, 0.11473, 14, 72, -0.11, 0.54905, 15, -2, -0.11, 0.30559, 16, -76, -0.11, 0.03064, 4, 12, 183, -0.11, 0.03064, 13, 109, -0.11, 0.30559, 14, 35, -0.11, 0.54905, 15, -39, -0.11, 0.11473, 4, 12, 146, -0.11, 0.11473, 13, 72, -0.11, 0.54905, 14, -2, -0.11, 0.30559, 15, -76, -0.11, 0.03064, 4, 11, 183, -0.11, 0.03064, 12, 109, -0.11, 0.30559, 13, 35, -0.11, 0.54905, 14, -39, -0.11, 0.11473, 4, 11, 146, -0.11, 0.11473, 12, 72, -0.11, 0.54905, 13, -2, -0.11, 0.30559, 14, -76, -0.11, 0.03064, 4, 10, 183, -0.11, 0.03064, 11, 109, -0.11, 0.30559, 12, 35, -0.11, 0.54905, 13, -39, -0.11, 0.11473, 4, 10, 146, -0.11, 0.11531, 11, 72, -0.11, 0.54869, 12, -2, -0.11, 0.30539, 13, -76, -0.11, 0.03062, 4, 5, 183, -0.11, 0.02691, 10, 109, -0.11, 0.30975, 11, 35, -0.11, 0.54869, 12, -39, -0.11, 0.11465, 4, 5, 146, -0.11, 0.09912, 10, 72, -0.11, 0.56648, 11, -2, -0.11, 0.30393, 12, -76, -0.11, 0.03047, 3, 5, 109, -0.11, 0.27809, 10, 35, -0.11, 0.60726, 11, -39, -0.11, 0.11465, 3, 5, 72, -0.11, 0.55966, 10, -2, -0.11, 0.40987, 11, -76, -0.11, 0.03047, 2, 5, 35, -0.11, 0.82292, 10, -39, -0.11, 0.17708 ], + "hull": 56, + "edges": [ 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 30, 30, 32, 32, 34, 34, 36, 36, 38, 38, 40, 40, 42, 42, 44, 44, 46, 46, 48, 48, 50, 50, 52, 52, 54, 54, 56, 60, 62, 62, 64, 64, 66, 66, 68, 68, 70, 70, 72, 72, 74, 74, 76, 76, 78, 78, 80, 80, 82, 82, 84, 84, 86, 86, 88, 88, 90, 90, 92, 92, 94, 94, 96, 96, 98, 98, 100, 100, 102, 102, 104, 104, 106, 106, 108, 108, 110, 110, 0, 0, 2, 58, 60, 2, 4, 56, 58, 62, 160, 160, 54, 64, 158, 158, 52, 66, 156, 156, 50, 68, 154, 154, 48, 46, 152, 152, 70, 72, 150, 150, 44, 42, 148, 148, 74, 76, 146, 146, 40, 38, 144, 144, 78, 80, 142, 142, 36, 34, 140, 140, 82, 84, 138, 138, 32, 30, 136, 136, 86, 88, 134, 134, 28, 26, 132, 132, 90, 92, 130, 130, 24, 22, 128, 128, 94, 96, 126, 126, 20, 18, 124, 124, 98, 100, 122, 122, 16, 14, 120, 120, 102, 12, 118, 118, 104, 106, 116, 116, 10, 8, 114, 114, 108, 110, 112, 112, 6 ], + "width": 68, + "height": 962 + } + }, + "vine-path": { + "vine-path": { + "type": "path", + "lengths": [ 223.68, 474.79, 780.32, 992.69, 1196.43, 2249.39 ], + "vertexCount": 18, + "vertices": [ 1, 1, -31.65, 22.5, 1, 1, 1, -2.74, -6.56, 1, 1, 1, 56.89, -69.01, 1, 1, 1, 115.58, 75.02, 1, 1, 1, 198.6, 53.37, 1, 2, 1, 332.77, 19.75, 0.8, 2, 36.41, 19.14, 0.2, 2, 1, 276.73, -68.37, 0.232, 2, -21.1, -68.03, 0.768, 1, 2, 96.09, -93.89, 1, 2, 2, 229.75, -122.63, 0.664, 3, -63.19, -122.45, 0.336, 2, 2, 242.54, 29.31, 0.52, 3, -49.98, 29.45, 0.48, 1, 3, 66.72, 38.65, 1, 2, 3, 183.42, 47.85, 0.808, 4, -63.66, 48.41, 0.192, 2, 3, 177.29, -41.23, 0.776, 4, -70.57, -40.61, 0.224, 2, 3, 265.51, -16.19, 0.488, 4, 17.87, -16.34, 0.512, 2, 3, 343.26, 7.26, 0.216, 4, 95.82, 6.42, 0.784, 1, 4, 138.78, 45.73, 1, 1, 4, 212.87, 5.44, 1, 1, 1, 1094.34, -1.03, 1 ] + } + } + } + } +], +"animations": { + "grow": { + "slots": { + "vine": { + "color": [ + { + "color": "ffcb73ff", + "curve": [ 2.592, 1, 7.775, 1, 2.592, 0.8, 7.775, 0.98, 2.592, 0.45, 7.775, 1, 2.592, 1, 7.775, 1 ] + }, + { "time": 10.3667, "color": "fefaffff" } + ] + } + }, + "bones": { + "vine1": { + "scale": [ + { + "x": 0, + "y": 0.183, + "curve": [ 0.978, 0.7, 1.776, 1.01, 0.978, 0.71, 1.776, 0.94 ] + }, + { + "time": 3.2333, + "x": 1.218, + "y": 1.1, + "curve": [ 7.182, 1.16, 9.04, 1.12, 7.182, 1.18, 9.04, 1.26 ] + }, + { "time": 11.4333, "y": 1.439 } + ] + }, + "vine-control1": { + "rotate": [ + { + "value": 39.69, + "curve": [ 0.3, 39.69, 0.9, 0.89 ] + }, + { + "time": 1.2, + "value": 0.89, + "curve": [ 1.442, 0.89, 1.925, 5.57 ] + }, + { + "time": 2.1667, + "value": 5.57, + "curve": [ 2.475, 5.57, 3.092, 5.65 ] + }, + { + "time": 3.4, + "value": 5.65, + "curve": [ 4.45, 5.65, 6.55, 1.35 ] + }, + { "time": 7.6, "value": 1.35 } + ], + "scale": [ + { + "curve": [ 1.083, 1, 3.25, 1, 1.083, 1, 3.25, 0.79 ] + }, + { + "time": 4.3333, + "y": 0.792, + "curve": [ 5.15, 1, 6.783, 1, 5.15, 0.79, 6.783, 1 ] + }, + { + "time": 7.6, + "curve": [ 8.558, 1, 9.781, 1, 8.558, 1, 9.781, 0.64 ] + }, + { "time": 11.4333, "y": 0.636 } + ] + }, + "vine-control2": { + "rotate": [ + { + "value": -39.69, + "curve": [ 0.3, -39.69, 0.9, -20.6 ] + }, + { + "time": 1.2, + "value": -20.6, + "curve": [ 1.75, -20.6, 2.85, -8.19 ] + }, + { + "time": 3.4, + "value": -8.19, + "curve": [ 4.45, -8.19, 6.55, -0.96 ] + }, + { "time": 7.6, "value": -0.96 } + ], + "scale": [ + { + "curve": [ 1.083, 1, 3.25, 1, 1.083, 1, 3.25, 0.79 ] + }, + { + "time": 4.3333, + "y": 0.792, + "curve": [ 5.15, 1, 6.783, 1, 5.15, 0.79, 6.783, 1 ] + }, + { + "time": 7.6, + "curve": [ 8.558, 1, 10.475, 1, 8.558, 1, 10.475, 0.92 ] + }, + { "time": 11.4333, "y": 0.924 } + ] + }, + "vine-control3": { + "rotate": [ + { + "curve": [ 0.3, 0, 0.9, 27.37 ] + }, + { + "time": 1.2, + "value": 27.37, + "curve": [ 1.442, 27.37, 1.925, 14.83 ] + }, + { + "time": 2.1667, + "value": 14.83, + "curve": [ 2.475, 14.83, 3.092, -15.24 ] + }, + { + "time": 3.4, + "value": -15.24, + "curve": [ 4.45, -15.24, 6.55, -0.16 ] + }, + { "time": 7.6, "value": -0.16 } + ], + "scale": [ + { + "curve": [ 1.083, 1, 3.25, 1, 1.083, 1, 3.25, 0.79 ] + }, + { + "time": 4.3333, + "y": 0.792, + "curve": [ 5.15, 1, 6.783, 1, 5.15, 0.79, 6.783, 1 ] + }, + { + "time": 7.6, + "curve": [ 8.558, 1, 10.475, 1, 8.558, 1, 10.475, 0.92 ] + }, + { "time": 11.4333, "y": 0.924 } + ] + }, + "vine-control4": { + "rotate": [ + { + "curve": [ 0.542, 0, 1.625, -11.88 ] + }, + { + "time": 2.1667, + "value": -11.88, + "curve": [ 2.475, -11.88, 3.092, 7.57 ] + }, + { + "time": 3.4, + "value": 7.57, + "curve": [ 4.15, 7.57, 5.65, 15.02 ] + }, + { + "time": 6.4, + "value": 15.02, + "curve": [ 6.7, 15.02, 7.3, -0.5 ] + }, + { "time": 7.6, "value": -0.5 } + ], + "scale": [ + { + "curve": [ 1.083, 1, 3.25, 1, 1.083, 1, 3.25, 0.79 ] + }, + { + "time": 4.3333, + "y": 0.792, + "curve": [ 5.15, 1, 6.783, 1, 5.15, 0.79, 6.783, 1 ] + }, + { + "time": 7.6, + "curve": [ 8.558, 1, 10.475, 1, 8.558, 1, 10.475, 0.92 ] + }, + { "time": 11.4333, "y": 0.924 } + ] + } + } + } +} +} \ No newline at end of file diff --git a/spine-ts/webgl/tests/test-binary.html b/spine-ts/webgl/tests/test-binary.html index c06976a78..c27d7bdf5 100644 --- a/spine-ts/webgl/tests/test-binary.html +++ b/spine-ts/webgl/tests/test-binary.html @@ -35,7 +35,7 @@ function init() { assetManager.loadTextureAtlas(FILE.replace("-pro", "").replace("-ess", "") + "-pma.atlas"); assetManager.loadBinary(FILE + ".skel"); - assetManager.loadText(FILE + ".json"); + // assetManager.loadText(FILE + ".json"); timeKeeper = new spine.TimeKeeper(); requestAnimationFrame(load);