[ts] Finished 4.0 port. See #1796

This commit is contained in:
badlogic 2020-11-27 17:53:27 +01:00
parent 94813204df
commit 88f0d98dd2
58 changed files with 52982 additions and 26505 deletions

View File

@ -11,7 +11,7 @@ if [ ! -f "$SPINE_EXE" ]; then
SPINE_EXE="/mnt/c/Program Files/Spine/Spine.com"
fi
if [ ! -f "$SPINE_EXE" ]; then
SPINE_EXE="/Applications/Spine/Spine.app/Contents/MacOS/Spine"
SPINE_EXE="/Applications/Spine.app/Contents/MacOS/Spine"
fi
echo "Spine exe: $SPINE_EXE"

View File

@ -23,7 +23,7 @@ For the official legal terms governing the Spine Runtimes, please read the [Spin
## Spine version
spine-ts works with data exported from Spine 3.8.xx.
spine-ts works with data exported from Spine 4.0.xx.
The spine-ts WebGL and Player backends support all Spine features.

View File

@ -2,17 +2,13 @@ declare module spine {
class Animation {
name: string;
timelines: Array<Timeline>;
timelineIds: Array<boolean>;
timelineIds: StringSet;
duration: number;
constructor(name: string, timelines: Array<Timeline>, duration: number);
hasTimeline(id: number): boolean;
hasTimeline(ids: string[]): boolean;
apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
static binarySearch(values: ArrayLike<number>, target: number, step?: number): number;
static linearSearch(values: ArrayLike<number>, target: number, step: number): number;
}
interface Timeline {
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
getPropertyId(): number;
static search(frames: ArrayLike<number>, time: number): number;
static search2(values: ArrayLike<number>, time: number, step: number): number;
}
enum MixBlend {
setup = 0,
@ -24,103 +20,152 @@ declare module spine {
mixIn = 0,
mixOut = 1
}
enum TimelineType {
enum Property {
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
x = 1,
y = 2,
scaleX = 3,
scaleY = 4,
shearX = 5,
shearY = 6,
rgb = 7,
alpha = 8,
rgb2 = 9,
attachment = 10,
deform = 11,
event = 12,
drawOrder = 13,
ikConstraint = 14,
transformConstraint = 15,
pathConstraintPosition = 16,
pathConstraintSpacing = 17,
pathConstraintMix = 18
}
abstract class CurveTimeline implements Timeline {
abstract class Timeline {
propertyIds: string[];
frames: ArrayLike<number>;
constructor(frameCount: number, propertyIds: string[]);
getPropertyIds(): string[];
abstract getFrameEntries(): number;
getFrameCount(): number;
getDuration(): number;
abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
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;
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<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
protected curves: ArrayLike<number>;
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;
}
class RotateTimeline extends CurveTimeline {
abstract class CurveTimeline1 extends CurveTimeline {
static ENTRIES: number;
static PREV_TIME: number;
static PREV_ROTATION: number;
static ROTATION: 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;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, degrees: number): void;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, 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;
class TranslateTimeline extends CurveTimeline2 implements BoneTimeline {
boneIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, x: number, y: number): void;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ScaleTimeline extends TranslateTimeline {
constructor(frameCount: number);
getPropertyId(): number;
class TranslateXTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ShearTimeline extends TranslateTimeline {
constructor(frameCount: number);
getPropertyId(): number;
class TranslateYTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ColorTimeline extends CurveTimeline {
class ScaleTimeline extends CurveTimeline2 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ScaleXTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ScaleYTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, 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<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ShearXTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ShearYTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class RGBATimeline extends CurveTimeline implements SlotTimeline {
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<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, r: number, g: number, b: number, a: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class TwoColorTimeline extends CurveTimeline {
class RGBTimeline extends CurveTimeline implements SlotTimeline {
static ENTRIES: number;
static R: number;
static G: number;
static B: number;
slotIndex: number;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, r: number, g: number, b: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class AlphaTimeline extends CurveTimeline1 implements SlotTimeline {
slotIndex: number;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class RGBA2Timeline extends CurveTimeline implements SlotTimeline {
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;
@ -129,124 +174,115 @@ declare module spine {
static G2: number;
static B2: number;
slotIndex: number;
frames: ArrayLike<number>;
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;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: 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<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class AttachmentTimeline implements Timeline {
class RGB2Timeline extends CurveTimeline implements SlotTimeline {
static ENTRIES: number;
static R: number;
static G: number;
static B: number;
static R2: number;
static G2: number;
static B2: number;
slotIndex: number;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, r: number, g: number, b: number, r2: number, g2: number, b2: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class AttachmentTimeline extends Timeline implements SlotTimeline {
slotIndex: number;
frames: ArrayLike<number>;
attachmentNames: Array<string>;
constructor(frameCount: number);
getPropertyId(): number;
constructor(frameCount: number, slotIndex: number);
getFrameEntries(): number;
getFrameCount(): number;
setFrame(frameIndex: number, time: number, attachmentName: string): void;
setFrame(frame: number, time: number, attachmentName: string): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
setAttachment(skeleton: Skeleton, slot: Slot, attachmentName: string): void;
}
class DeformTimeline extends CurveTimeline {
class DeformTimeline extends CurveTimeline implements SlotTimeline {
slotIndex: number;
attachment: VertexAttachment;
frames: ArrayLike<number>;
frameVertices: Array<ArrayLike<number>>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, vertices: ArrayLike<number>): void;
vertices: Array<ArrayLike<number>>;
constructor(frameCount: number, bezierCount: number, slotIndex: number, attachment: VertexAttachment);
getFrameEntries(): number;
setFrame(frame: number, time: number, vertices: ArrayLike<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;
getCurvePercent(time: number, frame: number): number;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class EventTimeline implements Timeline {
frames: ArrayLike<number>;
class EventTimeline extends Timeline {
static propertyIds: string[];
events: Array<Event>;
constructor(frameCount: number);
getPropertyId(): number;
getFrameCount(): number;
setFrame(frameIndex: number, event: Event): void;
getFrameEntries(): number;
setFrame(frame: number, event: Event): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class DrawOrderTimeline implements Timeline {
frames: ArrayLike<number>;
class DrawOrderTimeline extends Timeline {
static propertyIds: string[];
drawOrders: Array<Array<number>>;
constructor(frameCount: number);
getPropertyId(): number;
getFrameCount(): number;
setFrame(frameIndex: number, time: number, drawOrder: Array<number>): void;
getFrameEntries(): number;
setFrame(frame: number, time: number, drawOrder: Array<number>): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, 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<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, mix: number, softness: number, bendDirection: number, compress: boolean, stretch: boolean): void;
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<Event>, 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;
static X: number;
static Y: number;
static SCALEX: number;
static SCALEY: number;
static SHEARY: number;
transformConstraintIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void;
constructor(frameCount: number, bezierCount: number, transformConstraintIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, mixRotate: number, mixX: number, mixY: number, mixScaleX: number, mixScaleY: number, mixShearY: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, 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;
class PathConstraintPositionTimeline extends CurveTimeline1 {
pathConstraintIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, value: number): void;
constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline {
constructor(frameCount: number);
getPropertyId(): number;
class PathConstraintSpacingTimeline extends CurveTimeline1 {
pathConstraintIndex: number;
constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, 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<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void;
static ENTRIES: number;
static ROTATE: number;
static X: number;
static Y: number;
constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, mixRotate: number, mixX: number, mixY: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
}
declare module spine {
class AnimationState {
static emptyAnimation: Animation;
private static _emptyAnimation;
private static emptyAnimation;
static SUBSEQUENT: number;
static FIRST: number;
static HOLD_SUBSEQUENT: number;
@ -261,7 +297,7 @@ declare module spine {
events: Event[];
listeners: AnimationStateListener[];
queue: EventQueue;
propertyIDs: IntSet;
propertyIDs: StringSet;
animationsChanged: boolean;
trackEntryPool: Pool<TrackEntry>;
constructor(data: AnimationStateData);
@ -275,6 +311,7 @@ declare module spine {
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;
@ -296,6 +333,7 @@ declare module spine {
}
class TrackEntry {
animation: Animation;
previous: TrackEntry;
next: TrackEntry;
mixingFrom: TrackEntry;
mixingTo: TrackEntry;
@ -303,6 +341,7 @@ declare module spine {
trackIndex: number;
loop: boolean;
holdPrevious: boolean;
reverse: boolean;
eventThreshold: number;
attachmentThreshold: number;
drawOrderThreshold: number;
@ -330,6 +369,7 @@ declare module spine {
setAnimationLast(animationLast: number): void;
isComplete(): boolean;
resetRotationDirections(): void;
getTrackComplete(): number;
}
class EventQueue {
objects: Array<any>;
@ -547,7 +587,6 @@ declare module spine {
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;
@ -577,8 +616,9 @@ declare module spine {
target: Slot;
position: number;
spacing: number;
rotateMix: number;
translateMix: number;
mixRotate: number;
mixX: number;
mixY: number;
spaces: number[];
positions: number[];
world: number[];
@ -588,9 +628,8 @@ declare module spine {
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[];
computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean): number[];
addBeforePosition(p: number, temp: Array<number>, i: number, out: Array<number>, o: number): void;
addAfterPosition(p: number, temp: Array<number>, i: number, out: Array<number>, o: number): void;
addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array<number>, o: number, tangents: boolean): void;
@ -606,8 +645,9 @@ declare module spine {
offsetRotation: number;
position: number;
spacing: number;
rotateMix: number;
translateMix: number;
mixRotate: number;
mixX: number;
mixY: number;
constructor(name: string);
}
enum PositionMode {
@ -617,7 +657,8 @@ declare module spine {
enum SpacingMode {
Length = 0,
Fixed = 1,
Percent = 2
Percent = 2,
Proportional = 3
}
enum RotateMode {
Tangent = 0,
@ -655,7 +696,6 @@ declare module spine {
transformConstraints: Array<TransformConstraint>;
pathConstraints: Array<PathConstraint>;
_updateCache: Updatable[];
updateCacheReset: Updatable[];
skin: Skin;
color: Color;
time: number;
@ -673,6 +713,7 @@ declare module spine {
sortBone(bone: Bone): void;
sortReset(bones: Array<Bone>): void;
updateWorldTransform(): void;
updateWorldTransformWith(parent: Bone): void;
setToSetupPose(): void;
setBonesToSetupPose(): void;
setSlotsToSetupPose(): void;
@ -694,7 +735,7 @@ declare module spine {
}
}
declare module spine {
class SkeletonBinary {
export class SkeletonBinary {
static AttachmentTypeValues: number[];
static TransformModeValues: TransformMode[];
static PositionModeValues: PositionMode[];
@ -703,11 +744,20 @@ declare module spine {
static BlendModeValues: BlendMode[];
static BONE_ROTATE: number;
static BONE_TRANSLATE: number;
static BONE_TRANSLATEX: number;
static BONE_TRANSLATEY: number;
static BONE_SCALE: number;
static BONE_SCALEX: number;
static BONE_SCALEY: number;
static BONE_SHEAR: number;
static BONE_SHEARX: number;
static BONE_SHEARY: number;
static SLOT_ATTACHMENT: number;
static SLOT_COLOR: number;
static SLOT_TWO_COLOR: number;
static SLOT_RGBA: number;
static SLOT_RGB: number;
static SLOT_RGBA2: number;
static SLOT_RGB2: number;
static SLOT_ALPHA: number;
static PATH_POSITION: number;
static PATH_SPACING: number;
static PATH_MIX: number;
@ -725,9 +775,26 @@ declare module spine {
private readFloatArray;
private readShortArray;
private readAnimation;
private readCurve;
setCurve(timeline: CurveTimeline, frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void;
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 {
@ -815,11 +882,14 @@ declare module spine {
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;
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 spacingModeFromString(str: string): SpacingMode.Length | SpacingMode.Fixed | SpacingMode.Percent;
static rotateModeFromString(str: string): RotateMode;
static transformModeFromString(str: string): TransformMode;
}
@ -959,15 +1029,16 @@ declare module spine {
data: TransformConstraintData;
bones: Array<Bone>;
target: Bone;
rotateMix: number;
translateMix: number;
scaleMix: number;
shearMix: number;
mixRotate: number;
mixX: number;
mixY: number;
mixScaleX: number;
mixScaleY: number;
mixShearY: number;
temp: Vector2;
active: boolean;
constructor(data: TransformConstraintData, skeleton: Skeleton);
isActive(): boolean;
apply(): void;
update(): void;
applyAbsoluteWorld(): void;
applyRelativeWorld(): void;
@ -979,10 +1050,12 @@ declare module spine {
class TransformConstraintData extends ConstraintData {
bones: BoneData[];
target: BoneData;
rotateMix: number;
translateMix: number;
scaleMix: number;
shearMix: number;
mixRotate: number;
mixX: number;
mixY: number;
mixScaleX: number;
mixScaleY: number;
mixShearY: number;
offsetRotation: number;
offsetX: number;
offsetY: number;
@ -1027,6 +1100,14 @@ declare module spine {
remove(value: number): void;
clear(): void;
}
class StringSet {
entries: Map<boolean>;
size: number;
add(value: string): boolean;
addAll(values: string[]): boolean;
contains(value: string): boolean;
clear(): void;
}
interface Disposable {
dispose(): void;
}
@ -1084,6 +1165,7 @@ declare module spine {
class Utils {
static SUPPORTS_TYPED_ARRAYS: boolean;
static arrayCopy<T>(source: ArrayLike<T>, sourceStart: number, dest: ArrayLike<T>, destStart: number, numElements: number): void;
static arrayFill<T>(array: ArrayLike<T>, fromIndex: number, toIndex: number, value: T): void;
static setArraySize<T>(array: Array<T>, size: number, value?: any): Array<T>;
static ensureArrayCapacity<T>(array: Array<T>, size: number, value?: any): Array<T>;
static newArray<T>(size: number, defaultValue: T): Array<T>;

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -2,17 +2,13 @@ declare module spine {
class Animation {
name: string;
timelines: Array<Timeline>;
timelineIds: Array<boolean>;
timelineIds: StringSet;
duration: number;
constructor(name: string, timelines: Array<Timeline>, duration: number);
hasTimeline(id: number): boolean;
hasTimeline(ids: string[]): boolean;
apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
static binarySearch(values: ArrayLike<number>, target: number, step?: number): number;
static linearSearch(values: ArrayLike<number>, target: number, step: number): number;
}
interface Timeline {
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
getPropertyId(): number;
static search(frames: ArrayLike<number>, time: number): number;
static search2(values: ArrayLike<number>, time: number, step: number): number;
}
enum MixBlend {
setup = 0,
@ -24,103 +20,152 @@ declare module spine {
mixIn = 0,
mixOut = 1
}
enum TimelineType {
enum Property {
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
x = 1,
y = 2,
scaleX = 3,
scaleY = 4,
shearX = 5,
shearY = 6,
rgb = 7,
alpha = 8,
rgb2 = 9,
attachment = 10,
deform = 11,
event = 12,
drawOrder = 13,
ikConstraint = 14,
transformConstraint = 15,
pathConstraintPosition = 16,
pathConstraintSpacing = 17,
pathConstraintMix = 18
}
abstract class CurveTimeline implements Timeline {
abstract class Timeline {
propertyIds: string[];
frames: ArrayLike<number>;
constructor(frameCount: number, propertyIds: string[]);
getPropertyIds(): string[];
abstract getFrameEntries(): number;
getFrameCount(): number;
getDuration(): number;
abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
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;
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<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
protected curves: ArrayLike<number>;
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;
}
class RotateTimeline extends CurveTimeline {
abstract class CurveTimeline1 extends CurveTimeline {
static ENTRIES: number;
static PREV_TIME: number;
static PREV_ROTATION: number;
static ROTATION: 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;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, degrees: number): void;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, 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;
class TranslateTimeline extends CurveTimeline2 implements BoneTimeline {
boneIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, x: number, y: number): void;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ScaleTimeline extends TranslateTimeline {
constructor(frameCount: number);
getPropertyId(): number;
class TranslateXTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ShearTimeline extends TranslateTimeline {
constructor(frameCount: number);
getPropertyId(): number;
class TranslateYTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ColorTimeline extends CurveTimeline {
class ScaleTimeline extends CurveTimeline2 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ScaleXTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ScaleYTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, 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<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ShearXTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ShearYTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class RGBATimeline extends CurveTimeline implements SlotTimeline {
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<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, r: number, g: number, b: number, a: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class TwoColorTimeline extends CurveTimeline {
class RGBTimeline extends CurveTimeline implements SlotTimeline {
static ENTRIES: number;
static R: number;
static G: number;
static B: number;
slotIndex: number;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, r: number, g: number, b: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class AlphaTimeline extends CurveTimeline1 implements SlotTimeline {
slotIndex: number;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class RGBA2Timeline extends CurveTimeline implements SlotTimeline {
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;
@ -129,124 +174,115 @@ declare module spine {
static G2: number;
static B2: number;
slotIndex: number;
frames: ArrayLike<number>;
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;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: 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<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class AttachmentTimeline implements Timeline {
class RGB2Timeline extends CurveTimeline implements SlotTimeline {
static ENTRIES: number;
static R: number;
static G: number;
static B: number;
static R2: number;
static G2: number;
static B2: number;
slotIndex: number;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, r: number, g: number, b: number, r2: number, g2: number, b2: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class AttachmentTimeline extends Timeline implements SlotTimeline {
slotIndex: number;
frames: ArrayLike<number>;
attachmentNames: Array<string>;
constructor(frameCount: number);
getPropertyId(): number;
constructor(frameCount: number, slotIndex: number);
getFrameEntries(): number;
getFrameCount(): number;
setFrame(frameIndex: number, time: number, attachmentName: string): void;
setFrame(frame: number, time: number, attachmentName: string): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
setAttachment(skeleton: Skeleton, slot: Slot, attachmentName: string): void;
}
class DeformTimeline extends CurveTimeline {
class DeformTimeline extends CurveTimeline implements SlotTimeline {
slotIndex: number;
attachment: VertexAttachment;
frames: ArrayLike<number>;
frameVertices: Array<ArrayLike<number>>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, vertices: ArrayLike<number>): void;
vertices: Array<ArrayLike<number>>;
constructor(frameCount: number, bezierCount: number, slotIndex: number, attachment: VertexAttachment);
getFrameEntries(): number;
setFrame(frame: number, time: number, vertices: ArrayLike<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;
getCurvePercent(time: number, frame: number): number;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class EventTimeline implements Timeline {
frames: ArrayLike<number>;
class EventTimeline extends Timeline {
static propertyIds: string[];
events: Array<Event>;
constructor(frameCount: number);
getPropertyId(): number;
getFrameCount(): number;
setFrame(frameIndex: number, event: Event): void;
getFrameEntries(): number;
setFrame(frame: number, event: Event): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class DrawOrderTimeline implements Timeline {
frames: ArrayLike<number>;
class DrawOrderTimeline extends Timeline {
static propertyIds: string[];
drawOrders: Array<Array<number>>;
constructor(frameCount: number);
getPropertyId(): number;
getFrameCount(): number;
setFrame(frameIndex: number, time: number, drawOrder: Array<number>): void;
getFrameEntries(): number;
setFrame(frame: number, time: number, drawOrder: Array<number>): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, 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<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, mix: number, softness: number, bendDirection: number, compress: boolean, stretch: boolean): void;
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<Event>, 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;
static X: number;
static Y: number;
static SCALEX: number;
static SCALEY: number;
static SHEARY: number;
transformConstraintIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void;
constructor(frameCount: number, bezierCount: number, transformConstraintIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, mixRotate: number, mixX: number, mixY: number, mixScaleX: number, mixScaleY: number, mixShearY: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, 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;
class PathConstraintPositionTimeline extends CurveTimeline1 {
pathConstraintIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, value: number): void;
constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline {
constructor(frameCount: number);
getPropertyId(): number;
class PathConstraintSpacingTimeline extends CurveTimeline1 {
pathConstraintIndex: number;
constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, 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<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void;
static ENTRIES: number;
static ROTATE: number;
static X: number;
static Y: number;
constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, mixRotate: number, mixX: number, mixY: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
}
declare module spine {
class AnimationState {
static emptyAnimation: Animation;
private static _emptyAnimation;
private static emptyAnimation;
static SUBSEQUENT: number;
static FIRST: number;
static HOLD_SUBSEQUENT: number;
@ -261,7 +297,7 @@ declare module spine {
events: Event[];
listeners: AnimationStateListener[];
queue: EventQueue;
propertyIDs: IntSet;
propertyIDs: StringSet;
animationsChanged: boolean;
trackEntryPool: Pool<TrackEntry>;
constructor(data: AnimationStateData);
@ -275,6 +311,7 @@ declare module spine {
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;
@ -296,6 +333,7 @@ declare module spine {
}
class TrackEntry {
animation: Animation;
previous: TrackEntry;
next: TrackEntry;
mixingFrom: TrackEntry;
mixingTo: TrackEntry;
@ -303,6 +341,7 @@ declare module spine {
trackIndex: number;
loop: boolean;
holdPrevious: boolean;
reverse: boolean;
eventThreshold: number;
attachmentThreshold: number;
drawOrderThreshold: number;
@ -330,6 +369,7 @@ declare module spine {
setAnimationLast(animationLast: number): void;
isComplete(): boolean;
resetRotationDirections(): void;
getTrackComplete(): number;
}
class EventQueue {
objects: Array<any>;
@ -547,7 +587,6 @@ declare module spine {
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;
@ -577,8 +616,9 @@ declare module spine {
target: Slot;
position: number;
spacing: number;
rotateMix: number;
translateMix: number;
mixRotate: number;
mixX: number;
mixY: number;
spaces: number[];
positions: number[];
world: number[];
@ -588,9 +628,8 @@ declare module spine {
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[];
computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean): number[];
addBeforePosition(p: number, temp: Array<number>, i: number, out: Array<number>, o: number): void;
addAfterPosition(p: number, temp: Array<number>, i: number, out: Array<number>, o: number): void;
addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array<number>, o: number, tangents: boolean): void;
@ -606,8 +645,9 @@ declare module spine {
offsetRotation: number;
position: number;
spacing: number;
rotateMix: number;
translateMix: number;
mixRotate: number;
mixX: number;
mixY: number;
constructor(name: string);
}
enum PositionMode {
@ -617,7 +657,8 @@ declare module spine {
enum SpacingMode {
Length = 0,
Fixed = 1,
Percent = 2
Percent = 2,
Proportional = 3
}
enum RotateMode {
Tangent = 0,
@ -655,7 +696,6 @@ declare module spine {
transformConstraints: Array<TransformConstraint>;
pathConstraints: Array<PathConstraint>;
_updateCache: Updatable[];
updateCacheReset: Updatable[];
skin: Skin;
color: Color;
time: number;
@ -673,6 +713,7 @@ declare module spine {
sortBone(bone: Bone): void;
sortReset(bones: Array<Bone>): void;
updateWorldTransform(): void;
updateWorldTransformWith(parent: Bone): void;
setToSetupPose(): void;
setBonesToSetupPose(): void;
setSlotsToSetupPose(): void;
@ -694,7 +735,7 @@ declare module spine {
}
}
declare module spine {
class SkeletonBinary {
export class SkeletonBinary {
static AttachmentTypeValues: number[];
static TransformModeValues: TransformMode[];
static PositionModeValues: PositionMode[];
@ -703,11 +744,20 @@ declare module spine {
static BlendModeValues: BlendMode[];
static BONE_ROTATE: number;
static BONE_TRANSLATE: number;
static BONE_TRANSLATEX: number;
static BONE_TRANSLATEY: number;
static BONE_SCALE: number;
static BONE_SCALEX: number;
static BONE_SCALEY: number;
static BONE_SHEAR: number;
static BONE_SHEARX: number;
static BONE_SHEARY: number;
static SLOT_ATTACHMENT: number;
static SLOT_COLOR: number;
static SLOT_TWO_COLOR: number;
static SLOT_RGBA: number;
static SLOT_RGB: number;
static SLOT_RGBA2: number;
static SLOT_RGB2: number;
static SLOT_ALPHA: number;
static PATH_POSITION: number;
static PATH_SPACING: number;
static PATH_MIX: number;
@ -725,9 +775,26 @@ declare module spine {
private readFloatArray;
private readShortArray;
private readAnimation;
private readCurve;
setCurve(timeline: CurveTimeline, frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void;
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 {
@ -815,11 +882,14 @@ declare module spine {
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;
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 spacingModeFromString(str: string): SpacingMode.Length | SpacingMode.Fixed | SpacingMode.Percent;
static rotateModeFromString(str: string): RotateMode;
static transformModeFromString(str: string): TransformMode;
}
@ -959,15 +1029,16 @@ declare module spine {
data: TransformConstraintData;
bones: Array<Bone>;
target: Bone;
rotateMix: number;
translateMix: number;
scaleMix: number;
shearMix: number;
mixRotate: number;
mixX: number;
mixY: number;
mixScaleX: number;
mixScaleY: number;
mixShearY: number;
temp: Vector2;
active: boolean;
constructor(data: TransformConstraintData, skeleton: Skeleton);
isActive(): boolean;
apply(): void;
update(): void;
applyAbsoluteWorld(): void;
applyRelativeWorld(): void;
@ -979,10 +1050,12 @@ declare module spine {
class TransformConstraintData extends ConstraintData {
bones: BoneData[];
target: BoneData;
rotateMix: number;
translateMix: number;
scaleMix: number;
shearMix: number;
mixRotate: number;
mixX: number;
mixY: number;
mixScaleX: number;
mixScaleY: number;
mixShearY: number;
offsetRotation: number;
offsetX: number;
offsetY: number;
@ -1027,6 +1100,14 @@ declare module spine {
remove(value: number): void;
clear(): void;
}
class StringSet {
entries: Map<boolean>;
size: number;
add(value: string): boolean;
addAll(values: string[]): boolean;
contains(value: string): boolean;
clear(): void;
}
interface Disposable {
dispose(): void;
}
@ -1084,6 +1165,7 @@ declare module spine {
class Utils {
static SUPPORTS_TYPED_ARRAYS: boolean;
static arrayCopy<T>(source: ArrayLike<T>, sourceStart: number, dest: ArrayLike<T>, destStart: number, numElements: number): void;
static arrayFill<T>(array: ArrayLike<T>, fromIndex: number, toIndex: number, value: T): void;
static setArraySize<T>(array: Array<T>, size: number, value?: any): Array<T>;
static ensureArrayCapacity<T>(array: Array<T>, size: number, value?: any): Array<T>;
static newArray<T>(size: number, defaultValue: T): Array<T>;

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -2,17 +2,13 @@ declare module spine {
class Animation {
name: string;
timelines: Array<Timeline>;
timelineIds: Array<boolean>;
timelineIds: StringSet;
duration: number;
constructor(name: string, timelines: Array<Timeline>, duration: number);
hasTimeline(id: number): boolean;
hasTimeline(ids: string[]): boolean;
apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
static binarySearch(values: ArrayLike<number>, target: number, step?: number): number;
static linearSearch(values: ArrayLike<number>, target: number, step: number): number;
}
interface Timeline {
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
getPropertyId(): number;
static search(frames: ArrayLike<number>, time: number): number;
static search2(values: ArrayLike<number>, time: number, step: number): number;
}
enum MixBlend {
setup = 0,
@ -24,103 +20,152 @@ declare module spine {
mixIn = 0,
mixOut = 1
}
enum TimelineType {
enum Property {
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
x = 1,
y = 2,
scaleX = 3,
scaleY = 4,
shearX = 5,
shearY = 6,
rgb = 7,
alpha = 8,
rgb2 = 9,
attachment = 10,
deform = 11,
event = 12,
drawOrder = 13,
ikConstraint = 14,
transformConstraint = 15,
pathConstraintPosition = 16,
pathConstraintSpacing = 17,
pathConstraintMix = 18
}
abstract class CurveTimeline implements Timeline {
abstract class Timeline {
propertyIds: string[];
frames: ArrayLike<number>;
constructor(frameCount: number, propertyIds: string[]);
getPropertyIds(): string[];
abstract getFrameEntries(): number;
getFrameCount(): number;
getDuration(): number;
abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
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;
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<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
protected curves: ArrayLike<number>;
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;
}
class RotateTimeline extends CurveTimeline {
abstract class CurveTimeline1 extends CurveTimeline {
static ENTRIES: number;
static PREV_TIME: number;
static PREV_ROTATION: number;
static ROTATION: 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;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, degrees: number): void;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, 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;
class TranslateTimeline extends CurveTimeline2 implements BoneTimeline {
boneIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, x: number, y: number): void;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ScaleTimeline extends TranslateTimeline {
constructor(frameCount: number);
getPropertyId(): number;
class TranslateXTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ShearTimeline extends TranslateTimeline {
constructor(frameCount: number);
getPropertyId(): number;
class TranslateYTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ColorTimeline extends CurveTimeline {
class ScaleTimeline extends CurveTimeline2 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ScaleXTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ScaleYTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, 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<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ShearXTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ShearYTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class RGBATimeline extends CurveTimeline implements SlotTimeline {
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<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, r: number, g: number, b: number, a: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class TwoColorTimeline extends CurveTimeline {
class RGBTimeline extends CurveTimeline implements SlotTimeline {
static ENTRIES: number;
static R: number;
static G: number;
static B: number;
slotIndex: number;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, r: number, g: number, b: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class AlphaTimeline extends CurveTimeline1 implements SlotTimeline {
slotIndex: number;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class RGBA2Timeline extends CurveTimeline implements SlotTimeline {
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;
@ -129,124 +174,115 @@ declare module spine {
static G2: number;
static B2: number;
slotIndex: number;
frames: ArrayLike<number>;
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;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: 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<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class AttachmentTimeline implements Timeline {
class RGB2Timeline extends CurveTimeline implements SlotTimeline {
static ENTRIES: number;
static R: number;
static G: number;
static B: number;
static R2: number;
static G2: number;
static B2: number;
slotIndex: number;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, r: number, g: number, b: number, r2: number, g2: number, b2: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class AttachmentTimeline extends Timeline implements SlotTimeline {
slotIndex: number;
frames: ArrayLike<number>;
attachmentNames: Array<string>;
constructor(frameCount: number);
getPropertyId(): number;
constructor(frameCount: number, slotIndex: number);
getFrameEntries(): number;
getFrameCount(): number;
setFrame(frameIndex: number, time: number, attachmentName: string): void;
setFrame(frame: number, time: number, attachmentName: string): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
setAttachment(skeleton: Skeleton, slot: Slot, attachmentName: string): void;
}
class DeformTimeline extends CurveTimeline {
class DeformTimeline extends CurveTimeline implements SlotTimeline {
slotIndex: number;
attachment: VertexAttachment;
frames: ArrayLike<number>;
frameVertices: Array<ArrayLike<number>>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, vertices: ArrayLike<number>): void;
vertices: Array<ArrayLike<number>>;
constructor(frameCount: number, bezierCount: number, slotIndex: number, attachment: VertexAttachment);
getFrameEntries(): number;
setFrame(frame: number, time: number, vertices: ArrayLike<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;
getCurvePercent(time: number, frame: number): number;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class EventTimeline implements Timeline {
frames: ArrayLike<number>;
class EventTimeline extends Timeline {
static propertyIds: string[];
events: Array<Event>;
constructor(frameCount: number);
getPropertyId(): number;
getFrameCount(): number;
setFrame(frameIndex: number, event: Event): void;
getFrameEntries(): number;
setFrame(frame: number, event: Event): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class DrawOrderTimeline implements Timeline {
frames: ArrayLike<number>;
class DrawOrderTimeline extends Timeline {
static propertyIds: string[];
drawOrders: Array<Array<number>>;
constructor(frameCount: number);
getPropertyId(): number;
getFrameCount(): number;
setFrame(frameIndex: number, time: number, drawOrder: Array<number>): void;
getFrameEntries(): number;
setFrame(frame: number, time: number, drawOrder: Array<number>): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, 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<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, mix: number, softness: number, bendDirection: number, compress: boolean, stretch: boolean): void;
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<Event>, 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;
static X: number;
static Y: number;
static SCALEX: number;
static SCALEY: number;
static SHEARY: number;
transformConstraintIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void;
constructor(frameCount: number, bezierCount: number, transformConstraintIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, mixRotate: number, mixX: number, mixY: number, mixScaleX: number, mixScaleY: number, mixShearY: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, 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;
class PathConstraintPositionTimeline extends CurveTimeline1 {
pathConstraintIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, value: number): void;
constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline {
constructor(frameCount: number);
getPropertyId(): number;
class PathConstraintSpacingTimeline extends CurveTimeline1 {
pathConstraintIndex: number;
constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, 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<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void;
static ENTRIES: number;
static ROTATE: number;
static X: number;
static Y: number;
constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, mixRotate: number, mixX: number, mixY: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
}
declare module spine {
class AnimationState {
static emptyAnimation: Animation;
private static _emptyAnimation;
private static emptyAnimation;
static SUBSEQUENT: number;
static FIRST: number;
static HOLD_SUBSEQUENT: number;
@ -261,7 +297,7 @@ declare module spine {
events: Event[];
listeners: AnimationStateListener[];
queue: EventQueue;
propertyIDs: IntSet;
propertyIDs: StringSet;
animationsChanged: boolean;
trackEntryPool: Pool<TrackEntry>;
constructor(data: AnimationStateData);
@ -275,6 +311,7 @@ declare module spine {
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;
@ -296,6 +333,7 @@ declare module spine {
}
class TrackEntry {
animation: Animation;
previous: TrackEntry;
next: TrackEntry;
mixingFrom: TrackEntry;
mixingTo: TrackEntry;
@ -303,6 +341,7 @@ declare module spine {
trackIndex: number;
loop: boolean;
holdPrevious: boolean;
reverse: boolean;
eventThreshold: number;
attachmentThreshold: number;
drawOrderThreshold: number;
@ -330,6 +369,7 @@ declare module spine {
setAnimationLast(animationLast: number): void;
isComplete(): boolean;
resetRotationDirections(): void;
getTrackComplete(): number;
}
class EventQueue {
objects: Array<any>;
@ -547,7 +587,6 @@ declare module spine {
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;
@ -577,8 +616,9 @@ declare module spine {
target: Slot;
position: number;
spacing: number;
rotateMix: number;
translateMix: number;
mixRotate: number;
mixX: number;
mixY: number;
spaces: number[];
positions: number[];
world: number[];
@ -588,9 +628,8 @@ declare module spine {
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[];
computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean): number[];
addBeforePosition(p: number, temp: Array<number>, i: number, out: Array<number>, o: number): void;
addAfterPosition(p: number, temp: Array<number>, i: number, out: Array<number>, o: number): void;
addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array<number>, o: number, tangents: boolean): void;
@ -606,8 +645,9 @@ declare module spine {
offsetRotation: number;
position: number;
spacing: number;
rotateMix: number;
translateMix: number;
mixRotate: number;
mixX: number;
mixY: number;
constructor(name: string);
}
enum PositionMode {
@ -617,7 +657,8 @@ declare module spine {
enum SpacingMode {
Length = 0,
Fixed = 1,
Percent = 2
Percent = 2,
Proportional = 3
}
enum RotateMode {
Tangent = 0,
@ -655,7 +696,6 @@ declare module spine {
transformConstraints: Array<TransformConstraint>;
pathConstraints: Array<PathConstraint>;
_updateCache: Updatable[];
updateCacheReset: Updatable[];
skin: Skin;
color: Color;
time: number;
@ -673,6 +713,7 @@ declare module spine {
sortBone(bone: Bone): void;
sortReset(bones: Array<Bone>): void;
updateWorldTransform(): void;
updateWorldTransformWith(parent: Bone): void;
setToSetupPose(): void;
setBonesToSetupPose(): void;
setSlotsToSetupPose(): void;
@ -694,7 +735,7 @@ declare module spine {
}
}
declare module spine {
class SkeletonBinary {
export class SkeletonBinary {
static AttachmentTypeValues: number[];
static TransformModeValues: TransformMode[];
static PositionModeValues: PositionMode[];
@ -703,11 +744,20 @@ declare module spine {
static BlendModeValues: BlendMode[];
static BONE_ROTATE: number;
static BONE_TRANSLATE: number;
static BONE_TRANSLATEX: number;
static BONE_TRANSLATEY: number;
static BONE_SCALE: number;
static BONE_SCALEX: number;
static BONE_SCALEY: number;
static BONE_SHEAR: number;
static BONE_SHEARX: number;
static BONE_SHEARY: number;
static SLOT_ATTACHMENT: number;
static SLOT_COLOR: number;
static SLOT_TWO_COLOR: number;
static SLOT_RGBA: number;
static SLOT_RGB: number;
static SLOT_RGBA2: number;
static SLOT_RGB2: number;
static SLOT_ALPHA: number;
static PATH_POSITION: number;
static PATH_SPACING: number;
static PATH_MIX: number;
@ -725,9 +775,26 @@ declare module spine {
private readFloatArray;
private readShortArray;
private readAnimation;
private readCurve;
setCurve(timeline: CurveTimeline, frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void;
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 {
@ -815,11 +882,14 @@ declare module spine {
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;
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 spacingModeFromString(str: string): SpacingMode.Length | SpacingMode.Fixed | SpacingMode.Percent;
static rotateModeFromString(str: string): RotateMode;
static transformModeFromString(str: string): TransformMode;
}
@ -959,15 +1029,16 @@ declare module spine {
data: TransformConstraintData;
bones: Array<Bone>;
target: Bone;
rotateMix: number;
translateMix: number;
scaleMix: number;
shearMix: number;
mixRotate: number;
mixX: number;
mixY: number;
mixScaleX: number;
mixScaleY: number;
mixShearY: number;
temp: Vector2;
active: boolean;
constructor(data: TransformConstraintData, skeleton: Skeleton);
isActive(): boolean;
apply(): void;
update(): void;
applyAbsoluteWorld(): void;
applyRelativeWorld(): void;
@ -979,10 +1050,12 @@ declare module spine {
class TransformConstraintData extends ConstraintData {
bones: BoneData[];
target: BoneData;
rotateMix: number;
translateMix: number;
scaleMix: number;
shearMix: number;
mixRotate: number;
mixX: number;
mixY: number;
mixScaleX: number;
mixScaleY: number;
mixShearY: number;
offsetRotation: number;
offsetX: number;
offsetY: number;
@ -1027,6 +1100,14 @@ declare module spine {
remove(value: number): void;
clear(): void;
}
class StringSet {
entries: Map<boolean>;
size: number;
add(value: string): boolean;
addAll(values: string[]): boolean;
contains(value: string): boolean;
clear(): void;
}
interface Disposable {
dispose(): void;
}
@ -1084,6 +1165,7 @@ declare module spine {
class Utils {
static SUPPORTS_TYPED_ARRAYS: boolean;
static arrayCopy<T>(source: ArrayLike<T>, sourceStart: number, dest: ArrayLike<T>, destStart: number, numElements: number): void;
static arrayFill<T>(array: ArrayLike<T>, fromIndex: number, toIndex: number, value: T): void;
static setArraySize<T>(array: Array<T>, size: number, value?: any): Array<T>;
static ensureArrayCapacity<T>(array: Array<T>, size: number, value?: any): Array<T>;
static newArray<T>(size: number, defaultValue: T): Array<T>;

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -2,17 +2,13 @@ declare module spine {
class Animation {
name: string;
timelines: Array<Timeline>;
timelineIds: Array<boolean>;
timelineIds: StringSet;
duration: number;
constructor(name: string, timelines: Array<Timeline>, duration: number);
hasTimeline(id: number): boolean;
hasTimeline(ids: string[]): boolean;
apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
static binarySearch(values: ArrayLike<number>, target: number, step?: number): number;
static linearSearch(values: ArrayLike<number>, target: number, step: number): number;
}
interface Timeline {
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
getPropertyId(): number;
static search(frames: ArrayLike<number>, time: number): number;
static search2(values: ArrayLike<number>, time: number, step: number): number;
}
enum MixBlend {
setup = 0,
@ -24,103 +20,152 @@ declare module spine {
mixIn = 0,
mixOut = 1
}
enum TimelineType {
enum Property {
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
x = 1,
y = 2,
scaleX = 3,
scaleY = 4,
shearX = 5,
shearY = 6,
rgb = 7,
alpha = 8,
rgb2 = 9,
attachment = 10,
deform = 11,
event = 12,
drawOrder = 13,
ikConstraint = 14,
transformConstraint = 15,
pathConstraintPosition = 16,
pathConstraintSpacing = 17,
pathConstraintMix = 18
}
abstract class CurveTimeline implements Timeline {
abstract class Timeline {
propertyIds: string[];
frames: ArrayLike<number>;
constructor(frameCount: number, propertyIds: string[]);
getPropertyIds(): string[];
abstract getFrameEntries(): number;
getFrameCount(): number;
getDuration(): number;
abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
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;
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<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
protected curves: ArrayLike<number>;
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;
}
class RotateTimeline extends CurveTimeline {
abstract class CurveTimeline1 extends CurveTimeline {
static ENTRIES: number;
static PREV_TIME: number;
static PREV_ROTATION: number;
static ROTATION: 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;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, degrees: number): void;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, 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;
class TranslateTimeline extends CurveTimeline2 implements BoneTimeline {
boneIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, x: number, y: number): void;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ScaleTimeline extends TranslateTimeline {
constructor(frameCount: number);
getPropertyId(): number;
class TranslateXTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ShearTimeline extends TranslateTimeline {
constructor(frameCount: number);
getPropertyId(): number;
class TranslateYTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ColorTimeline extends CurveTimeline {
class ScaleTimeline extends CurveTimeline2 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ScaleXTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ScaleYTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, 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<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ShearXTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ShearYTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class RGBATimeline extends CurveTimeline implements SlotTimeline {
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<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, r: number, g: number, b: number, a: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class TwoColorTimeline extends CurveTimeline {
class RGBTimeline extends CurveTimeline implements SlotTimeline {
static ENTRIES: number;
static R: number;
static G: number;
static B: number;
slotIndex: number;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, r: number, g: number, b: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class AlphaTimeline extends CurveTimeline1 implements SlotTimeline {
slotIndex: number;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class RGBA2Timeline extends CurveTimeline implements SlotTimeline {
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;
@ -129,124 +174,115 @@ declare module spine {
static G2: number;
static B2: number;
slotIndex: number;
frames: ArrayLike<number>;
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;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: 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<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class AttachmentTimeline implements Timeline {
class RGB2Timeline extends CurveTimeline implements SlotTimeline {
static ENTRIES: number;
static R: number;
static G: number;
static B: number;
static R2: number;
static G2: number;
static B2: number;
slotIndex: number;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, r: number, g: number, b: number, r2: number, g2: number, b2: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class AttachmentTimeline extends Timeline implements SlotTimeline {
slotIndex: number;
frames: ArrayLike<number>;
attachmentNames: Array<string>;
constructor(frameCount: number);
getPropertyId(): number;
constructor(frameCount: number, slotIndex: number);
getFrameEntries(): number;
getFrameCount(): number;
setFrame(frameIndex: number, time: number, attachmentName: string): void;
setFrame(frame: number, time: number, attachmentName: string): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
setAttachment(skeleton: Skeleton, slot: Slot, attachmentName: string): void;
}
class DeformTimeline extends CurveTimeline {
class DeformTimeline extends CurveTimeline implements SlotTimeline {
slotIndex: number;
attachment: VertexAttachment;
frames: ArrayLike<number>;
frameVertices: Array<ArrayLike<number>>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, vertices: ArrayLike<number>): void;
vertices: Array<ArrayLike<number>>;
constructor(frameCount: number, bezierCount: number, slotIndex: number, attachment: VertexAttachment);
getFrameEntries(): number;
setFrame(frame: number, time: number, vertices: ArrayLike<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;
getCurvePercent(time: number, frame: number): number;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class EventTimeline implements Timeline {
frames: ArrayLike<number>;
class EventTimeline extends Timeline {
static propertyIds: string[];
events: Array<Event>;
constructor(frameCount: number);
getPropertyId(): number;
getFrameCount(): number;
setFrame(frameIndex: number, event: Event): void;
getFrameEntries(): number;
setFrame(frame: number, event: Event): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class DrawOrderTimeline implements Timeline {
frames: ArrayLike<number>;
class DrawOrderTimeline extends Timeline {
static propertyIds: string[];
drawOrders: Array<Array<number>>;
constructor(frameCount: number);
getPropertyId(): number;
getFrameCount(): number;
setFrame(frameIndex: number, time: number, drawOrder: Array<number>): void;
getFrameEntries(): number;
setFrame(frame: number, time: number, drawOrder: Array<number>): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, 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<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, mix: number, softness: number, bendDirection: number, compress: boolean, stretch: boolean): void;
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<Event>, 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;
static X: number;
static Y: number;
static SCALEX: number;
static SCALEY: number;
static SHEARY: number;
transformConstraintIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void;
constructor(frameCount: number, bezierCount: number, transformConstraintIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, mixRotate: number, mixX: number, mixY: number, mixScaleX: number, mixScaleY: number, mixShearY: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, 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;
class PathConstraintPositionTimeline extends CurveTimeline1 {
pathConstraintIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, value: number): void;
constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline {
constructor(frameCount: number);
getPropertyId(): number;
class PathConstraintSpacingTimeline extends CurveTimeline1 {
pathConstraintIndex: number;
constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, 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<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void;
static ENTRIES: number;
static ROTATE: number;
static X: number;
static Y: number;
constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, mixRotate: number, mixX: number, mixY: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
}
declare module spine {
class AnimationState {
static emptyAnimation: Animation;
private static _emptyAnimation;
private static emptyAnimation;
static SUBSEQUENT: number;
static FIRST: number;
static HOLD_SUBSEQUENT: number;
@ -261,7 +297,7 @@ declare module spine {
events: Event[];
listeners: AnimationStateListener[];
queue: EventQueue;
propertyIDs: IntSet;
propertyIDs: StringSet;
animationsChanged: boolean;
trackEntryPool: Pool<TrackEntry>;
constructor(data: AnimationStateData);
@ -275,6 +311,7 @@ declare module spine {
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;
@ -296,6 +333,7 @@ declare module spine {
}
class TrackEntry {
animation: Animation;
previous: TrackEntry;
next: TrackEntry;
mixingFrom: TrackEntry;
mixingTo: TrackEntry;
@ -303,6 +341,7 @@ declare module spine {
trackIndex: number;
loop: boolean;
holdPrevious: boolean;
reverse: boolean;
eventThreshold: number;
attachmentThreshold: number;
drawOrderThreshold: number;
@ -330,6 +369,7 @@ declare module spine {
setAnimationLast(animationLast: number): void;
isComplete(): boolean;
resetRotationDirections(): void;
getTrackComplete(): number;
}
class EventQueue {
objects: Array<any>;
@ -547,7 +587,6 @@ declare module spine {
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;
@ -577,8 +616,9 @@ declare module spine {
target: Slot;
position: number;
spacing: number;
rotateMix: number;
translateMix: number;
mixRotate: number;
mixX: number;
mixY: number;
spaces: number[];
positions: number[];
world: number[];
@ -588,9 +628,8 @@ declare module spine {
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[];
computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean): number[];
addBeforePosition(p: number, temp: Array<number>, i: number, out: Array<number>, o: number): void;
addAfterPosition(p: number, temp: Array<number>, i: number, out: Array<number>, o: number): void;
addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array<number>, o: number, tangents: boolean): void;
@ -606,8 +645,9 @@ declare module spine {
offsetRotation: number;
position: number;
spacing: number;
rotateMix: number;
translateMix: number;
mixRotate: number;
mixX: number;
mixY: number;
constructor(name: string);
}
enum PositionMode {
@ -617,7 +657,8 @@ declare module spine {
enum SpacingMode {
Length = 0,
Fixed = 1,
Percent = 2
Percent = 2,
Proportional = 3
}
enum RotateMode {
Tangent = 0,
@ -655,7 +696,6 @@ declare module spine {
transformConstraints: Array<TransformConstraint>;
pathConstraints: Array<PathConstraint>;
_updateCache: Updatable[];
updateCacheReset: Updatable[];
skin: Skin;
color: Color;
time: number;
@ -673,6 +713,7 @@ declare module spine {
sortBone(bone: Bone): void;
sortReset(bones: Array<Bone>): void;
updateWorldTransform(): void;
updateWorldTransformWith(parent: Bone): void;
setToSetupPose(): void;
setBonesToSetupPose(): void;
setSlotsToSetupPose(): void;
@ -694,7 +735,7 @@ declare module spine {
}
}
declare module spine {
class SkeletonBinary {
export class SkeletonBinary {
static AttachmentTypeValues: number[];
static TransformModeValues: TransformMode[];
static PositionModeValues: PositionMode[];
@ -703,11 +744,20 @@ declare module spine {
static BlendModeValues: BlendMode[];
static BONE_ROTATE: number;
static BONE_TRANSLATE: number;
static BONE_TRANSLATEX: number;
static BONE_TRANSLATEY: number;
static BONE_SCALE: number;
static BONE_SCALEX: number;
static BONE_SCALEY: number;
static BONE_SHEAR: number;
static BONE_SHEARX: number;
static BONE_SHEARY: number;
static SLOT_ATTACHMENT: number;
static SLOT_COLOR: number;
static SLOT_TWO_COLOR: number;
static SLOT_RGBA: number;
static SLOT_RGB: number;
static SLOT_RGBA2: number;
static SLOT_RGB2: number;
static SLOT_ALPHA: number;
static PATH_POSITION: number;
static PATH_SPACING: number;
static PATH_MIX: number;
@ -725,9 +775,26 @@ declare module spine {
private readFloatArray;
private readShortArray;
private readAnimation;
private readCurve;
setCurve(timeline: CurveTimeline, frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void;
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 {
@ -815,11 +882,14 @@ declare module spine {
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;
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 spacingModeFromString(str: string): SpacingMode.Length | SpacingMode.Fixed | SpacingMode.Percent;
static rotateModeFromString(str: string): RotateMode;
static transformModeFromString(str: string): TransformMode;
}
@ -959,15 +1029,16 @@ declare module spine {
data: TransformConstraintData;
bones: Array<Bone>;
target: Bone;
rotateMix: number;
translateMix: number;
scaleMix: number;
shearMix: number;
mixRotate: number;
mixX: number;
mixY: number;
mixScaleX: number;
mixScaleY: number;
mixShearY: number;
temp: Vector2;
active: boolean;
constructor(data: TransformConstraintData, skeleton: Skeleton);
isActive(): boolean;
apply(): void;
update(): void;
applyAbsoluteWorld(): void;
applyRelativeWorld(): void;
@ -979,10 +1050,12 @@ declare module spine {
class TransformConstraintData extends ConstraintData {
bones: BoneData[];
target: BoneData;
rotateMix: number;
translateMix: number;
scaleMix: number;
shearMix: number;
mixRotate: number;
mixX: number;
mixY: number;
mixScaleX: number;
mixScaleY: number;
mixShearY: number;
offsetRotation: number;
offsetX: number;
offsetY: number;
@ -1027,6 +1100,14 @@ declare module spine {
remove(value: number): void;
clear(): void;
}
class StringSet {
entries: Map<boolean>;
size: number;
add(value: string): boolean;
addAll(values: string[]): boolean;
contains(value: string): boolean;
clear(): void;
}
interface Disposable {
dispose(): void;
}
@ -1084,6 +1165,7 @@ declare module spine {
class Utils {
static SUPPORTS_TYPED_ARRAYS: boolean;
static arrayCopy<T>(source: ArrayLike<T>, sourceStart: number, dest: ArrayLike<T>, destStart: number, numElements: number): void;
static arrayFill<T>(array: ArrayLike<T>, fromIndex: number, toIndex: number, value: T): void;
static setArraySize<T>(array: Array<T>, size: number, value?: any): Array<T>;
static ensureArrayCapacity<T>(array: Array<T>, size: number, value?: any): Array<T>;
static newArray<T>(size: number, defaultValue: T): Array<T>;

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -2,17 +2,13 @@ declare module spine {
class Animation {
name: string;
timelines: Array<Timeline>;
timelineIds: Array<boolean>;
timelineIds: StringSet;
duration: number;
constructor(name: string, timelines: Array<Timeline>, duration: number);
hasTimeline(id: number): boolean;
hasTimeline(ids: string[]): boolean;
apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
static binarySearch(values: ArrayLike<number>, target: number, step?: number): number;
static linearSearch(values: ArrayLike<number>, target: number, step: number): number;
}
interface Timeline {
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
getPropertyId(): number;
static search(frames: ArrayLike<number>, time: number): number;
static search2(values: ArrayLike<number>, time: number, step: number): number;
}
enum MixBlend {
setup = 0,
@ -24,103 +20,152 @@ declare module spine {
mixIn = 0,
mixOut = 1
}
enum TimelineType {
enum Property {
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
x = 1,
y = 2,
scaleX = 3,
scaleY = 4,
shearX = 5,
shearY = 6,
rgb = 7,
alpha = 8,
rgb2 = 9,
attachment = 10,
deform = 11,
event = 12,
drawOrder = 13,
ikConstraint = 14,
transformConstraint = 15,
pathConstraintPosition = 16,
pathConstraintSpacing = 17,
pathConstraintMix = 18
}
abstract class CurveTimeline implements Timeline {
abstract class Timeline {
propertyIds: string[];
frames: ArrayLike<number>;
constructor(frameCount: number, propertyIds: string[]);
getPropertyIds(): string[];
abstract getFrameEntries(): number;
getFrameCount(): number;
getDuration(): number;
abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
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;
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<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
protected curves: ArrayLike<number>;
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;
}
class RotateTimeline extends CurveTimeline {
abstract class CurveTimeline1 extends CurveTimeline {
static ENTRIES: number;
static PREV_TIME: number;
static PREV_ROTATION: number;
static ROTATION: 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;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, degrees: number): void;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, 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;
class TranslateTimeline extends CurveTimeline2 implements BoneTimeline {
boneIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, x: number, y: number): void;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ScaleTimeline extends TranslateTimeline {
constructor(frameCount: number);
getPropertyId(): number;
class TranslateXTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ShearTimeline extends TranslateTimeline {
constructor(frameCount: number);
getPropertyId(): number;
class TranslateYTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ColorTimeline extends CurveTimeline {
class ScaleTimeline extends CurveTimeline2 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ScaleXTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ScaleYTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, 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<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ShearXTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ShearYTimeline extends CurveTimeline1 implements BoneTimeline {
boneIndex: number;
constructor(frameCount: number, bezierCount: number, boneIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class RGBATimeline extends CurveTimeline implements SlotTimeline {
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<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, r: number, g: number, b: number, a: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class TwoColorTimeline extends CurveTimeline {
class RGBTimeline extends CurveTimeline implements SlotTimeline {
static ENTRIES: number;
static R: number;
static G: number;
static B: number;
slotIndex: number;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, r: number, g: number, b: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class AlphaTimeline extends CurveTimeline1 implements SlotTimeline {
slotIndex: number;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class RGBA2Timeline extends CurveTimeline implements SlotTimeline {
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;
@ -129,124 +174,115 @@ declare module spine {
static G2: number;
static B2: number;
slotIndex: number;
frames: ArrayLike<number>;
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;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: 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<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class AttachmentTimeline implements Timeline {
class RGB2Timeline extends CurveTimeline implements SlotTimeline {
static ENTRIES: number;
static R: number;
static G: number;
static B: number;
static R2: number;
static G2: number;
static B2: number;
slotIndex: number;
constructor(frameCount: number, bezierCount: number, slotIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, r: number, g: number, b: number, r2: number, g2: number, b2: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class AttachmentTimeline extends Timeline implements SlotTimeline {
slotIndex: number;
frames: ArrayLike<number>;
attachmentNames: Array<string>;
constructor(frameCount: number);
getPropertyId(): number;
constructor(frameCount: number, slotIndex: number);
getFrameEntries(): number;
getFrameCount(): number;
setFrame(frameIndex: number, time: number, attachmentName: string): void;
setFrame(frame: number, time: number, attachmentName: string): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
setAttachment(skeleton: Skeleton, slot: Slot, attachmentName: string): void;
}
class DeformTimeline extends CurveTimeline {
class DeformTimeline extends CurveTimeline implements SlotTimeline {
slotIndex: number;
attachment: VertexAttachment;
frames: ArrayLike<number>;
frameVertices: Array<ArrayLike<number>>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, vertices: ArrayLike<number>): void;
vertices: Array<ArrayLike<number>>;
constructor(frameCount: number, bezierCount: number, slotIndex: number, attachment: VertexAttachment);
getFrameEntries(): number;
setFrame(frame: number, time: number, vertices: ArrayLike<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;
getCurvePercent(time: number, frame: number): number;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class EventTimeline implements Timeline {
frames: ArrayLike<number>;
class EventTimeline extends Timeline {
static propertyIds: string[];
events: Array<Event>;
constructor(frameCount: number);
getPropertyId(): number;
getFrameCount(): number;
setFrame(frameIndex: number, event: Event): void;
getFrameEntries(): number;
setFrame(frame: number, event: Event): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class DrawOrderTimeline implements Timeline {
frames: ArrayLike<number>;
class DrawOrderTimeline extends Timeline {
static propertyIds: string[];
drawOrders: Array<Array<number>>;
constructor(frameCount: number);
getPropertyId(): number;
getFrameCount(): number;
setFrame(frameIndex: number, time: number, drawOrder: Array<number>): void;
getFrameEntries(): number;
setFrame(frame: number, time: number, drawOrder: Array<number>): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, 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<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, mix: number, softness: number, bendDirection: number, compress: boolean, stretch: boolean): void;
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<Event>, 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;
static X: number;
static Y: number;
static SCALEX: number;
static SCALEY: number;
static SHEARY: number;
transformConstraintIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void;
constructor(frameCount: number, bezierCount: number, transformConstraintIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, mixRotate: number, mixX: number, mixY: number, mixScaleX: number, mixScaleY: number, mixShearY: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, 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;
class PathConstraintPositionTimeline extends CurveTimeline1 {
pathConstraintIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, value: number): void;
constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline {
constructor(frameCount: number);
getPropertyId(): number;
class PathConstraintSpacingTimeline extends CurveTimeline1 {
pathConstraintIndex: number;
constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number);
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, 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<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void;
static ENTRIES: number;
static ROTATE: number;
static X: number;
static Y: number;
constructor(frameCount: number, bezierCount: number, pathConstraintIndex: number);
getFrameEntries(): number;
setFrame(frame: number, time: number, mixRotate: number, mixX: number, mixY: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
}
declare module spine {
class AnimationState {
static emptyAnimation: Animation;
private static _emptyAnimation;
private static emptyAnimation;
static SUBSEQUENT: number;
static FIRST: number;
static HOLD_SUBSEQUENT: number;
@ -261,7 +297,7 @@ declare module spine {
events: Event[];
listeners: AnimationStateListener[];
queue: EventQueue;
propertyIDs: IntSet;
propertyIDs: StringSet;
animationsChanged: boolean;
trackEntryPool: Pool<TrackEntry>;
constructor(data: AnimationStateData);
@ -275,6 +311,7 @@ declare module spine {
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;
@ -296,6 +333,7 @@ declare module spine {
}
class TrackEntry {
animation: Animation;
previous: TrackEntry;
next: TrackEntry;
mixingFrom: TrackEntry;
mixingTo: TrackEntry;
@ -303,6 +341,7 @@ declare module spine {
trackIndex: number;
loop: boolean;
holdPrevious: boolean;
reverse: boolean;
eventThreshold: number;
attachmentThreshold: number;
drawOrderThreshold: number;
@ -330,6 +369,7 @@ declare module spine {
setAnimationLast(animationLast: number): void;
isComplete(): boolean;
resetRotationDirections(): void;
getTrackComplete(): number;
}
class EventQueue {
objects: Array<any>;
@ -547,7 +587,6 @@ declare module spine {
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;
@ -577,8 +616,9 @@ declare module spine {
target: Slot;
position: number;
spacing: number;
rotateMix: number;
translateMix: number;
mixRotate: number;
mixX: number;
mixY: number;
spaces: number[];
positions: number[];
world: number[];
@ -588,9 +628,8 @@ declare module spine {
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[];
computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean): number[];
addBeforePosition(p: number, temp: Array<number>, i: number, out: Array<number>, o: number): void;
addAfterPosition(p: number, temp: Array<number>, i: number, out: Array<number>, o: number): void;
addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array<number>, o: number, tangents: boolean): void;
@ -606,8 +645,9 @@ declare module spine {
offsetRotation: number;
position: number;
spacing: number;
rotateMix: number;
translateMix: number;
mixRotate: number;
mixX: number;
mixY: number;
constructor(name: string);
}
enum PositionMode {
@ -617,7 +657,8 @@ declare module spine {
enum SpacingMode {
Length = 0,
Fixed = 1,
Percent = 2
Percent = 2,
Proportional = 3
}
enum RotateMode {
Tangent = 0,
@ -655,7 +696,6 @@ declare module spine {
transformConstraints: Array<TransformConstraint>;
pathConstraints: Array<PathConstraint>;
_updateCache: Updatable[];
updateCacheReset: Updatable[];
skin: Skin;
color: Color;
time: number;
@ -673,6 +713,7 @@ declare module spine {
sortBone(bone: Bone): void;
sortReset(bones: Array<Bone>): void;
updateWorldTransform(): void;
updateWorldTransformWith(parent: Bone): void;
setToSetupPose(): void;
setBonesToSetupPose(): void;
setSlotsToSetupPose(): void;
@ -694,7 +735,7 @@ declare module spine {
}
}
declare module spine {
class SkeletonBinary {
export class SkeletonBinary {
static AttachmentTypeValues: number[];
static TransformModeValues: TransformMode[];
static PositionModeValues: PositionMode[];
@ -703,11 +744,20 @@ declare module spine {
static BlendModeValues: BlendMode[];
static BONE_ROTATE: number;
static BONE_TRANSLATE: number;
static BONE_TRANSLATEX: number;
static BONE_TRANSLATEY: number;
static BONE_SCALE: number;
static BONE_SCALEX: number;
static BONE_SCALEY: number;
static BONE_SHEAR: number;
static BONE_SHEARX: number;
static BONE_SHEARY: number;
static SLOT_ATTACHMENT: number;
static SLOT_COLOR: number;
static SLOT_TWO_COLOR: number;
static SLOT_RGBA: number;
static SLOT_RGB: number;
static SLOT_RGBA2: number;
static SLOT_RGB2: number;
static SLOT_ALPHA: number;
static PATH_POSITION: number;
static PATH_SPACING: number;
static PATH_MIX: number;
@ -725,9 +775,26 @@ declare module spine {
private readFloatArray;
private readShortArray;
private readAnimation;
private readCurve;
setCurve(timeline: CurveTimeline, frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void;
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 {
@ -815,11 +882,14 @@ declare module spine {
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;
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 spacingModeFromString(str: string): SpacingMode.Length | SpacingMode.Fixed | SpacingMode.Percent;
static rotateModeFromString(str: string): RotateMode;
static transformModeFromString(str: string): TransformMode;
}
@ -959,15 +1029,16 @@ declare module spine {
data: TransformConstraintData;
bones: Array<Bone>;
target: Bone;
rotateMix: number;
translateMix: number;
scaleMix: number;
shearMix: number;
mixRotate: number;
mixX: number;
mixY: number;
mixScaleX: number;
mixScaleY: number;
mixShearY: number;
temp: Vector2;
active: boolean;
constructor(data: TransformConstraintData, skeleton: Skeleton);
isActive(): boolean;
apply(): void;
update(): void;
applyAbsoluteWorld(): void;
applyRelativeWorld(): void;
@ -979,10 +1050,12 @@ declare module spine {
class TransformConstraintData extends ConstraintData {
bones: BoneData[];
target: BoneData;
rotateMix: number;
translateMix: number;
scaleMix: number;
shearMix: number;
mixRotate: number;
mixX: number;
mixY: number;
mixScaleX: number;
mixScaleY: number;
mixShearY: number;
offsetRotation: number;
offsetX: number;
offsetY: number;
@ -1027,6 +1100,14 @@ declare module spine {
remove(value: number): void;
clear(): void;
}
class StringSet {
entries: Map<boolean>;
size: number;
add(value: string): boolean;
addAll(values: string[]): boolean;
contains(value: string): boolean;
clear(): void;
}
interface Disposable {
dispose(): void;
}
@ -1084,6 +1165,7 @@ declare module spine {
class Utils {
static SUPPORTS_TYPED_ARRAYS: boolean;
static arrayCopy<T>(source: ArrayLike<T>, sourceStart: number, dest: ArrayLike<T>, destStart: number, numElements: number): void;
static arrayFill<T>(array: ArrayLike<T>, fromIndex: number, toIndex: number, value: T): void;
static setArraySize<T>(array: Array<T>, size: number, value?: any): Array<T>;
static ensureArrayCapacity<T>(array: Array<T>, size: number, value?: any): Array<T>;
static newArray<T>(size: number, defaultValue: T): Array<T>;

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 KiB

After

Width:  |  Height:  |  Size: 261 KiB

View File

@ -89,6 +89,9 @@ module spine {
data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal"));
data.skinRequired = this.getValue(boneMap, "skin", false);
let color = this.getValue(boneMap, "color", null);
if (color) data.color.setFromString(color);
skeletonData.bones.push(data);
}
}
@ -176,10 +179,12 @@ module spine {
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);
data.mixRotate = this.getValue(constraintMap, "mixRotate", 1);
data.mixX = this.getValue(constraintMap, "mixX", 1);
data.mixY = this.getValue(constraintMap, "mixY", data.mixX);
data.mixScaleX = this.getValue(constraintMap, "mixScaleX", 1);
data.mixScaleY = this.getValue(constraintMap, "mixScaleY", data.mixScaleX);
data.mixShearY = this.getValue(constraintMap, "mixShearY", 1);
skeletonData.transformConstraints.push(data);
}
@ -212,8 +217,9 @@ module spine {
if (data.positionMode == PositionMode.Fixed) data.position *= scale;
data.spacing = this.getValue(constraintMap, "spacing", 0);
if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) data.spacing *= scale;
data.rotateMix = this.getValue(constraintMap, "rotateMix", 1);
data.translateMix = this.getValue(constraintMap, "translateMix", 1);
data.mixRotate = this.getValue(constraintMap, "mixRotate", 1);
data.mixX = this.getValue(constraintMap, "mixX", 1);
data.mixY = this.getValue(constraintMap, "mixY", 1);
skeletonData.pathConstraints.push(data);
}
@ -316,9 +322,7 @@ module spine {
let scale = this.scale;
name = this.getValue(map, "name", name);
let type = this.getValue(map, "type", "region");
switch (type) {
switch (this.getValue(map, "type", "region")) {
case "region": {
let path = this.getValue(map, "path", name);
let region = this.attachmentLoader.newRegionAttachment(skin, name, path);
@ -470,15 +474,14 @@ module spine {
if (!timelineMap) continue;
if (timelineName == "attachment") {
let timeline = new AttachmentTimeline(timelineMap.length, slotIndex);
let frame = 0;
for (let i = 0; i < timelineMap.length; i++) {
let keyMap = timelineMap[i];
timeline.setFrame(frame++, this.getValue(keyMap, "time", 0), keyMap.name);
for (let frame = 0; frame < timelineMap.length; frame++) {
let keyMap = timelineMap[frame];
timeline.setFrame(frame, this.getValue(keyMap, "time", 0), keyMap.name);
}
timelines.push(timeline);
} else if (timelineName == "color") {
let timeline = new ColorTimeline(timelineMap.length, timelineMap.length << 2, slotIndex);
} else if (timelineName == "rgba") {
let timeline = new RGBATimeline(timelineMap.length, timelineMap.length << 2, slotIndex);
let keyMap = timelineMap[0];
let time = this.getValue(keyMap, "time", 0);
let color = new Color().setFromString(keyMap.color);
@ -505,8 +508,37 @@ module spine {
timelines.push(timeline);
} else if (timelineName == "twoColor") {
let timeline = new TwoColorTimeline(timelineMap.length, timelineMap.length * 7, slotIndex);
} else if (timelineName == "rgb") {
let timeline = new RGBTimeline(timelineMap.length, timelineMap.length * 3, slotIndex);
let keyMap = timelineMap[0];
let time = this.getValue(keyMap, "time", 0);
let color = new Color().setFromString(keyMap.color);
for (let frame = 0, bezier = 0;; frame++) {
timeline.setFrame(frame, time, color.r, color.g, color.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.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);
}
time = time2;
color = newColor;
keyMap = nextMap;
}
timelines.push(timeline);
} else if (timelineName == "alpha") {
timelines.push(this.readTimeline(timelineMap, new AlphaTimeline(timelineMap.length, timelineMap.length, slotIndex), 0, 1));
} else if (timelineName == "rgba2") {
let timeline = new RGBA2Timeline(timelineMap.length, timelineMap.length * 7, slotIndex);
let keyMap = timelineMap[0];
let time = this.getValue(keyMap, "time", 0);
@ -540,6 +572,40 @@ module spine {
timelines.push(timeline);
} else if (timelineName == "rgb2") {
let timeline = new RGB2Timeline(timelineMap.length, timelineMap.length * 6, slotIndex);
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, 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, color2.r, newColor2.r, 1);
bezier = this.readCurve(curve, timeline, bezier, frame, 4, time, time2, color2.g, newColor2.g, 1);
bezier = this.readCurve(curve, timeline, bezier, frame, 5, 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 + ")");
}
@ -554,20 +620,37 @@ 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 (timelineMap.length == 0) continue;
if (timelineName === "rotate") {
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 === "translatex") {
let timeline = new TranslateXTimeline(timelineMap.length, timelineMap.length, boneIndex);
timelines.push(this.readTimeline(timelineMap, timeline, 0, scale));
} else if (timelineName === "translatey") {
let timeline = new TranslateYTimeline(timelineMap.length, timelineMap.length, boneIndex);
timelines.push(this.readTimeline(timelineMap, timeline, 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 === "scalex") {
let timeline = new ScaleXTimeline(timelineMap.length, timelineMap.length, boneIndex);
timelines.push(this.readTimeline(timelineMap, timeline, 1, 1));
} else if (timelineName === "scaley") {
let timeline = new ScaleYTimeline(timelineMap.length, timelineMap.length, boneIndex);
timelines.push(this.readTimeline(timelineMap, timeline, 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 if (timelineName === "shearx") {
let timeline = new ShearXTimeline(timelineMap.length, timelineMap.length, boneIndex);
timelines.push(this.readTimeline(timelineMap, timeline, 0, 1));
} else if (timelineName === "sheary") {
let timeline = new ShearYTimeline(timelineMap.length, timelineMap.length, boneIndex);
timelines.push(this.readTimeline(timelineMap, timeline, 0, 1));
} else {
throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")");
}
@ -600,7 +683,6 @@ module spine {
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);
@ -619,46 +701,53 @@ module spine {
// Transform constraint timelines.
if (map.transform) {
for (let constraintName in map.transform) {
let constraintMap = map.transform[constraintName];
let keyMap = constraintMap[0];
let timelineMap = map.transform[constraintName];
let keyMap = timelineMap[0];
if (!keyMap) continue;
let constraint = skeletonData.findTransformConstraint(constraintName);
let constraintIndex = skeletonData.transformConstraints.indexOf(constraint);
let timeline = new TransformConstraintTimeline(constraintMap.length, constraintMap.length << 2, constraintIndex);
let timeline = new TransformConstraintTimeline(timelineMap.length, timelineMap.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);
let mixRotate = this.getValue(keyMap, "mixRotate", 1);
let mixShearY = this.getValue(keyMap, "mixShearY", 1);
let mixX = this.getValue(keyMap, "mixX", 1);
let mixY = this.getValue(keyMap, "mixY", mixX);
let mixScaleX = this.getValue(keyMap, "mixScaleX", 1);
let mixScaleY = this.getValue(keyMap, "mixScaleY", mixScaleX);
for (let frame = 0, bezier = 0;; frame++) {
timeline.setFrame(frame, time, rotateMix, translateMix, scaleMix, shearMix);
let nextMap = constraintMap[frame + 1];
timeline.setFrame(frame, time, mixRotate, mixX, mixY, mixScaleX, mixScaleY, mixShearY);
let nextMap = timelineMap[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 mixRotate2 = this.getValue(nextMap, "mixRotate", 1);
let mixShearY2 = this.getValue(nextMap, "mixShearY", 1);
let mixX2 = this.getValue(nextMap, "mixX", 1);
let mixY2 = this.getValue(nextMap, "mixY", mixX2);
let mixScaleX2 = this.getValue(nextMap, "mixScaleX", 1);
let mixScaleY2 = this.getValue(nextMap, "mixScaleY", mixScaleX2);
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);
bezier = this.readCurve(curve, timeline, bezier, frame, 0, time, time2, mixRotate, mixRotate2, 1);
bezier = this.readCurve(curve, timeline, bezier, frame, 1, time, time2, mixX, mixX2, 1);
bezier = this.readCurve(curve, timeline, bezier, frame, 2, time, time2, mixY, mixY2, 1);
bezier = this.readCurve(curve, timeline, bezier, frame, 3, time, time2, mixScaleX, mixScaleX2, 1);
bezier = this.readCurve(curve, timeline, bezier, frame, 4, time, time2, mixScaleY, mixScaleY2, 1);
bezier = this.readCurve(curve, timeline, bezier, frame, 5, time, time2, mixShearY, mixShearY2, 1);
}
time = time2;
rotateMix = rotateMix2;
translateMix = translateMix2;
scaleMix = scaleMix2;
shearMix = shearMix2;
mixRotate = mixRotate2;
mixX = mixX2;
mixY = mixY2;
mixScaleX = mixScaleX2;
mixScaleY = mixScaleY2;
mixScaleX = mixScaleX2;
keyMap = nextMap;
}
timelines.push(timeline);
@ -674,7 +763,7 @@ module spine {
let data = skeletonData.pathConstraints[index];
for (let timelineName in constraintMap) {
let timelineMap = constraintMap[timelineName];
let keyMap = constraintMap[0];
let keyMap = timelineMap[0];
if (!keyMap) continue;
if (timelineName === "position") {
@ -684,8 +773,34 @@ module spine {
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.size, timelineMap.size << 1, index);
timelines.push(this.readTimeline2(timelineMap, timeline, "rotateMix", "translateMix", 1, 1));
let timeline = new PathConstraintMixTimeline(timelineMap.size, timelineMap.size * 3, index);
let time = this.getValue(keyMap, "time", 0);
let mixRotate = this.getValue(keyMap, "mixRotate", 1);
let mixX = this.getValue(keyMap, "mixX", 1);
let mixY = this.getValue(keyMap, "mixY", mixX);
for (let frame = 0, bezier = 0;; frame++) {
timeline.setFrame(frame, time, mixRotate, mixX, mixY);
let nextMap = timelineMap[frame + 1];
if (!nextMap) {
break;
}
let time2 = this.getValue(nextMap, "time", 0);
let mixRotate2 = this.getValue(nextMap, "mixRotate", 1);
let mixX2 = this.getValue(nextMap, "mixX", 1);
let mixY2 = this.getValue(nextMap, "mixY", mixX2);
let curve = keyMap.curve;
if (curve != null) {
bezier = this.readCurve(curve, timeline, bezier, frame, 0, time, time2, mixRotate, mixRotate2, 1);
bezier = this.readCurve(curve, timeline, bezier, frame, 1, time, time2, mixX, mixX2, 1);
bezier = this.readCurve(curve, timeline, bezier, frame, 2, time, time2, mixY, mixY2, 1);
}
time = time2;
mixRotate = mixRotate2;
mixX = mixX2;
mixY = mixY2;
keyMap = nextMap;
}
timelines.push(timeline);
}
}
}
@ -811,9 +926,8 @@ module spine {
}
let duration = 0;
for (let i = 0, n = timelines.length; i < n; i++) {
duration = Math.max(duration, timelines[i].getDuration());
}
for (let 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");

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 KiB

After

Width:  |  Height:  |  Size: 465 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

After

Width:  |  Height:  |  Size: 263 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 412 KiB

After

Width:  |  Height:  |  Size: 465 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 KiB

After

Width:  |  Height:  |  Size: 236 KiB

View File

@ -1,7 +1,7 @@
{
"skeleton": {
"hash": "upF+oMt2JRY",
"spine": "4.0.05-beta",
"hash": "svidebPqqeg",
"spine": "4.0.34-beta",
"x": -152.5,
"y": -151,
"width": 305,
@ -63,7 +63,7 @@
"animation": {
"slots": {
"coin-front-shine": {
"twoColor": [
"rgba2": [
{ "light": "7d7d7dff", "dark": "000000" },
{ "time": 0.2667, "light": "000000ff", "dark": "7e7e7e" },
{ "time": 0.664, "light": "000000ff", "dark": "000000" },
@ -80,7 +80,7 @@
]
},
"coin-front-texture": {
"color": [
"rgba": [
{ "color": "858585ff" },
{ "time": 0.4, "color": "ffffffff" },
{
@ -120,23 +120,23 @@
],
"scale": [
{
"curve": [ 0.164, 1, 0.484, 0.09, 0.164, 1, 0.484, 1 ]
"curve": [ 0.164, 1, 0.484, 0.091, 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 ]
"curve": [ 0.786, 0.153, 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 ]
"curve": [ 1.442, 0.992, 1.858, 0.098, 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 ]
"curve": [ 2.123, 0.151, 2.501, 1, 2.123, 1, 2.501, 1 ]
},
{ "time": 2.6667 }
]
@ -157,54 +157,54 @@
],
"scale": [
{
"curve": [ 0.085, 1, 0.207, 0.79, 0.085, 1, 0.207, 1 ]
"curve": [ 0.085, 1, 0.207, 0.789, 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 ]
"curve": [ 0.449, 0.347, 0.567, 0.122, 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 ]
"curve": [ 0.723, -0.126, 0.865, -0.367, 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 ]
"curve": [ 1.053, -0.778, 1.29, -0.997, 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 ]
"curve": [ 1.384, 0.997, 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 ]
"curve": [ 1.564, 0.748, 1.703, 0.509, 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 ]
"curve": [ 1.873, 0.13, 1.987, 0.015, 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 ]
"curve": [ 2.039, -0.072, 2.123, -0.239, 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 ]
"curve": [ 2.269, -0.513, 2.337, -0.635, 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 ]
"curve": [ 2.503, -0.871, 2.596, -0.961, 2.503, 1, 2.596, 1 ]
},
{
"time": 2.6592,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 166 KiB

View File

@ -1,7 +1,7 @@
{
"skeleton": {
"hash": "PtTAK+zF95I",
"spine": "4.0.05-beta",
"spine": "4.0.34-beta",
"x": -134.12,
"y": -3.28,
"width": 266.94,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 370 KiB

After

Width:  |  Height:  |  Size: 384 KiB

View File

@ -1,7 +1,7 @@
{
"skeleton": {
"hash": "nE4g85mprlE",
"spine": "4.0.05-beta",
"hash": "EedJfu7UJ/I",
"spine": "4.0.34-beta",
"x": -240.58,
"y": -3.38,
"width": 410.36,
@ -838,30 +838,36 @@
"order": 12,
"bones": [ "eye-back-iris" ],
"target": "eye-back-pupil",
"rotateMix": 0,
"translateMix": 0.4,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0,
"mixX": 0.4,
"mixY": 0.4,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "eye-front-pupil",
"order": 11,
"bones": [ "eye-front-iris" ],
"target": "eye-front-pupil",
"rotateMix": 0,
"translateMix": 0.4,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0,
"mixX": 0.4,
"mixY": 0.4,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "eye-transform",
"order": 7,
"bones": [ "features-control" ],
"target": "head-control",
"rotateMix": 0,
"translateMix": 0.2,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0,
"mixX": 0.2,
"mixY": 0.2,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "hair-side-back",
@ -871,10 +877,12 @@
"rotation": -62.21,
"x": 132.47,
"y": 46.72,
"rotateMix": 0,
"translateMix": 0.05,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0,
"mixX": 0.05,
"mixY": 0.05,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "hair-side-front-control",
@ -884,10 +892,12 @@
"rotation": -80.89,
"x": -102.78,
"y": 27.17,
"rotateMix": 0,
"translateMix": 0.15,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0,
"mixX": 0.15,
"mixY": 0.15,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "hat-control",
@ -899,10 +909,12 @@
"x": -78.91,
"y": 123.01,
"shearY": -36,
"rotateMix": 0,
"translateMix": 0.6,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0,
"mixX": 0.6,
"mixY": 0.6,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "head-control",
@ -910,10 +922,12 @@
"bones": [ "head-back-control" ],
"target": "head-control",
"x": -88.92,
"rotateMix": 0,
"translateMix": -1,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0,
"mixX": -1,
"mixY": -1,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "leg-down-back",
@ -923,8 +937,9 @@
"target": "leg-down-back",
"x": 132.85,
"y": 58.02,
"scaleMix": 0,
"shearMix": 0
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "leg-down-back-up",
@ -934,8 +949,9 @@
"target": "leg-down-back",
"x": 17.25,
"y": 41.79,
"scaleMix": 0,
"shearMix": 0
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "leg-down-down",
@ -945,8 +961,9 @@
"target": "leg-down",
"x": 147.87,
"y": -60.85,
"scaleMix": 0,
"shearMix": 0
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "leg-down-front",
@ -956,8 +973,9 @@
"target": "leg-down",
"x": 23.51,
"y": -48.52,
"scaleMix": 0,
"shearMix": 0
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "leg-up",
@ -967,8 +985,9 @@
"target": "leg-up",
"x": 130.03,
"y": -50.13,
"scaleMix": 0,
"shearMix": 0
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "leg-up-back",
@ -978,8 +997,9 @@
"target": "leg-up-back",
"x": 129.36,
"y": 40.42,
"scaleMix": 0,
"shearMix": 0
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "shoulder-back",
@ -989,10 +1009,12 @@
"rotation": 180,
"x": -14.41,
"y": -46.12,
"rotateMix": 0.18,
"translateMix": 0,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0.18,
"mixX": 0,
"mixY": 0,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "shoulder-front",
@ -1002,10 +1024,12 @@
"rotation": 90,
"x": -24.78,
"y": 29.54,
"rotateMix": 0.186,
"translateMix": 0,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0.186,
"mixX": 0,
"mixY": 0,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "skirt-rotation-back",
@ -1017,9 +1041,11 @@
"x": 148.43,
"y": -0.72,
"shearY": -36,
"translateMix": 0.7,
"scaleMix": 0,
"shearMix": 0
"mixX": 0.7,
"mixY": 0.7,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "skirt-rotation-front",
@ -1031,9 +1057,11 @@
"x": 141.99,
"y": 2.23,
"shearY": -36,
"translateMix": 0.7,
"scaleMix": 0,
"shearMix": 0
"mixX": 0.7,
"mixY": 0.7,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
}
],
"path": [
@ -6017,10 +6045,10 @@
},
"transform": {
"leg-down-back": [
{ "rotateMix": 0.269, "translateMix": 0.234, "scaleMix": 0, "shearMix": 0 }
{ "mixRotate": 0.269, "mixX": 0.234, "mixScaleX": 0, "mixShearY": 0 }
],
"leg-down-down": [
{ "rotateMix": 0.394, "translateMix": 0.177, "scaleMix": 0, "shearMix": 0 }
{ "mixRotate": 0.394, "mixX": 0.177, "mixScaleX": 0, "mixShearY": 0 }
]
}
},
@ -6917,29 +6945,29 @@
},
"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 }
{ "mixScaleX": 0, "mixShearY": 0 },
{ "time": 0.1333, "mixRotate": 0, "mixX": 0.026, "mixScaleX": 0, "mixShearY": 0, "curve": "stepped" },
{ "time": 1.1667, "mixRotate": 0, "mixX": 0.026, "mixScaleX": 0, "mixShearY": 0 },
{ "time": 1.2667, "mixRotate": 0.1905, "mixX": 0.2115, "mixScaleX": 0, "mixShearY": 0 },
{ "time": 1.5333, "mixScaleX": 0, "mixShearY": 0, "curve": "stepped" },
{ "time": 2.0667, "mixScaleX": 0, "mixShearY": 0 },
{ "time": 2.1, "mixRotate": 0.217, "mixX": 0.078, "mixScaleX": 0, "mixShearY": 0 },
{ "time": 2.4667, "mixScaleX": 0, "mixShearY": 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 }
{ "mixScaleX": 0, "mixShearY": 0 },
{ "time": 0.0667, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 },
{ "time": 0.3333, "mixScaleX": 0, "mixShearY": 0, "curve": "stepped" },
{ "time": 1.0667, "mixScaleX": 0, "mixShearY": 0 },
{ "time": 1.3667, "mixX": 0.774, "mixScaleX": 0, "mixShearY": 0 },
{ "time": 2.7667, "mixScaleX": 0, "mixShearY": 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 }
{ "mixScaleX": 0, "mixShearY": 0 },
{ "time": 0.2333, "mixX": 0.609, "mixScaleX": 0, "mixShearY": 0 },
{ "time": 0.3667, "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0, "curve": "stepped" },
{ "time": 2.1, "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 },
{ "time": 2.5, "mixScaleX": 0, "mixShearY": 0 }
]
}
},
@ -7970,30 +7998,30 @@
},
"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 }
{ "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0, "curve": "stepped" },
{ "time": 0.1, "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 },
{ "time": 0.3333, "mixScaleX": 0, "mixShearY": 0 },
{ "time": 0.5667, "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 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 }
{ "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0, "curve": "stepped" },
{ "time": 0.1, "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 },
{ "time": 0.3333, "mixScaleX": 0, "mixShearY": 0 },
{ "time": 0.5667, "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 }
],
"leg-down-down": [
{ "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }
{ "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 }
],
"leg-down-front": [
{ "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }
{ "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 }
],
"leg-up": [
{ "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }
{ "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 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 }
{ "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 },
{ "time": 0.3333, "mixScaleX": 0, "mixShearY": 0 },
{ "time": 0.5667, "mixRotate": 0, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 }
]
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 320 KiB

After

Width:  |  Height:  |  Size: 432 KiB

View File

@ -1,7 +1,7 @@
{
"skeleton": {
"hash": "Px3F6YZd0YY",
"spine": "4.0.05-beta",
"hash": "HV648sya8jg",
"spine": "4.0.34-beta",
"x": -644,
"y": -274,
"width": 1350.84,
@ -129,10 +129,12 @@
"name": "control-back",
"bones": [ "control-back" ],
"target": "control",
"rotateMix": 0,
"translateMix": -1,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0,
"mixX": -1,
"mixY": -1,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
}
],
"skins": [

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 KiB

After

Width:  |  Height:  |  Size: 465 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

After

Width:  |  Height:  |  Size: 263 KiB

View File

@ -1,7 +1,7 @@
{
"skeleton": {
"hash": "97I2+5rUsUE",
"spine": "4.0.05-beta",
"hash": "xw6BotWLkgU",
"spine": "4.0.34-beta",
"x": -188.63,
"y": -7.94,
"width": 418.45,
@ -356,10 +356,12 @@
"bones": [ "front-upper-arm" ],
"target": "aim-constraint-target",
"rotation": -180,
"rotateMix": 0,
"translateMix": 0,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0,
"mixX": 0,
"mixY": 0,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "aim-head-transform",
@ -367,10 +369,12 @@
"bones": [ "head" ],
"target": "aim-constraint-target",
"rotation": 84.3,
"rotateMix": 0,
"translateMix": 0,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0,
"mixX": 0,
"mixY": 0,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "aim-rear-arm-transform",
@ -379,10 +383,12 @@
"target": "aim-constraint-target",
"x": 57.7,
"y": 56.4,
"rotateMix": 0,
"translateMix": 0,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0,
"mixX": 0,
"mixY": 0,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "aim-torso-transform",
@ -391,10 +397,12 @@
"target": "aim-constraint-target",
"rotation": 69.5,
"shearY": -36,
"rotateMix": 0,
"translateMix": 0,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0,
"mixX": 0,
"mixY": 0,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "front-foot-board-transform",
@ -403,10 +411,12 @@
"target": "hoverboard-controller",
"x": -69.8,
"y": 20.7,
"rotateMix": 0,
"translateMix": 0,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0,
"mixX": 0,
"mixY": 0,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "rear-foot-board-transform",
@ -415,10 +425,12 @@
"target": "hoverboard-controller",
"x": 86.6,
"y": 21.3,
"rotateMix": 0,
"translateMix": 0,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0,
"mixX": 0,
"mixY": 0,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "shoulder",
@ -426,20 +438,24 @@
"target": "front-shoulder",
"x": 40.17,
"y": -1.66,
"rotateMix": 0,
"translateMix": -1,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0,
"mixX": -1,
"mixY": -1,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "toes-board",
"order": 14,
"bones": [ "front-foot-tip", "back-foot-tip" ],
"target": "hoverboard-controller",
"rotateMix": 0,
"translateMix": 0,
"scaleMix": 0,
"shearMix": 0
"mixRotate": 0,
"mixX": 0,
"mixY": 0,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
}
],
"skins": [
@ -479,7 +495,7 @@
"eye-indifferent": {
"type": "mesh",
"uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ],
"triangles": [ 1, 2, 3, 1, 3, 0 ],
"triangles": [ 1, 3, 0, 1, 2, 3 ],
"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 ],
@ -489,7 +505,7 @@
"eye-surprised": {
"type": "mesh",
"uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ],
"triangles": [ 1, 3, 0, 1, 2, 3 ],
"triangles": [ 1, 2, 3, 1, 3, 0 ],
"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 ],
@ -508,7 +524,7 @@
"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 ],
"triangles": [ 8, 9, 3, 4, 8, 3, 5, 8, 4, 6, 8, 5, 8, 6, 7, 11, 1, 10, 0, 12, 13, 0, 11, 12, 0, 1, 11, 9, 2, 3, 1, 2, 10, 9, 10, 2 ],
"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 ],
@ -538,7 +554,7 @@
"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 ],
"triangles": [ 18, 44, 15, 21, 19, 20, 17, 18, 15, 44, 19, 21, 2, 3, 4, 18, 19, 44, 2, 33, 34, 33, 2, 4, 5, 33, 4, 5, 6, 33, 7, 32, 6, 31, 50, 33, 32, 31, 33, 6, 32, 33, 31, 49, 50, 49, 31, 32, 49, 32, 7, 8, 49, 7, 33, 50, 34, 17, 15, 16, 9, 48, 8, 49, 48, 50, 50, 48, 45, 47, 45, 48, 50, 45, 30, 45, 47, 46, 45, 46, 29, 30, 45, 29, 30, 29, 34, 30, 34, 50, 47, 26, 46, 25, 10, 11, 12, 25, 11, 41, 12, 42, 42, 44, 43, 43, 21, 22, 41, 40, 25, 41, 42, 40, 29, 35, 34, 40, 26, 25, 25, 26, 47, 37, 24, 0, 36, 37, 0, 42, 43, 39, 42, 39, 40, 28, 38, 36, 40, 39, 26, 28, 27, 38, 26, 39, 27, 37, 38, 23, 39, 43, 38, 38, 37, 36, 27, 39, 38, 43, 22, 38, 37, 23, 24, 22, 23, 38, 36, 0, 35, 28, 36, 35, 29, 28, 35, 27, 28, 46, 26, 27, 46, 35, 0, 1, 34, 35, 1, 12, 41, 25, 47, 10, 25, 44, 21, 43, 42, 14, 44, 14, 15, 44, 13, 14, 42, 12, 13, 42, 46, 28, 29, 47, 48, 10, 48, 9, 10, 49, 8, 48, 2, 34, 1 ],
"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 ],
@ -553,7 +569,7 @@
"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 ],
"triangles": [ 50, 49, 62, 34, 25, 31, 39, 35, 34, 38, 39, 34, 37, 38, 34, 42, 39, 38, 43, 39, 42, 32, 2, 31, 31, 37, 34, 42, 38, 37, 41, 42, 37, 43, 22, 39, 30, 31, 29, 36, 37, 31, 30, 36, 31, 40, 41, 37, 36, 40, 37, 36, 30, 44, 55, 22, 43, 55, 48, 56, 47, 48, 55, 46, 55, 54, 42, 55, 43, 47, 55, 46, 62, 49, 48, 61, 47, 46, 62, 48, 47, 61, 62, 47, 46, 54, 45, 42, 41, 55, 61, 46, 45, 55, 41, 54, 61, 51, 50, 61, 50, 62, 60, 41, 40, 54, 41, 60, 53, 61, 45, 52, 51, 61, 57, 53, 45, 57, 45, 54, 53, 52, 61, 52, 19, 51, 57, 18, 52, 57, 52, 53, 17, 54, 60, 57, 54, 17, 18, 57, 17, 19, 50, 51, 33, 27, 28, 26, 27, 33, 0, 33, 28, 32, 33, 0, 32, 0, 1, 33, 25, 26, 33, 32, 25, 31, 25, 32, 2, 32, 1, 2, 3, 4, 29, 31, 2, 2, 4, 5, 29, 2, 5, 6, 29, 5, 30, 29, 6, 44, 30, 6, 18, 19, 52, 49, 56, 48, 34, 24, 25, 35, 23, 24, 35, 24, 34, 39, 22, 35, 22, 23, 35, 7, 44, 6, 8, 36, 44, 40, 36, 8, 8, 44, 7, 56, 21, 22, 55, 56, 22, 9, 40, 8, 20, 21, 56, 20, 56, 49, 9, 60, 40, 10, 60, 9, 20, 50, 19, 12, 10, 11, 13, 10, 12, 14, 60, 10, 13, 14, 10, 59, 60, 14, 58, 59, 14, 58, 14, 15, 16, 17, 60, 59, 16, 60, 15, 16, 59, 15, 59, 58, 20, 49, 50 ],
"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 ],
@ -774,7 +790,7 @@
"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 ],
"triangles": [ 8, 3, 4, 8, 4, 5, 8, 5, 6, 8, 6, 7, 11, 1, 10, 3, 9, 2, 2, 10, 1, 12, 13, 0, 0, 11, 12, 1, 11, 0, 2, 9, 10, 3, 8, 9 ],
"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 ],
@ -804,7 +820,7 @@
"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 ],
"triangles": [ 18, 1, 2, 19, 2, 3, 18, 0, 1, 23, 15, 26, 27, 26, 16, 14, 15, 23, 15, 16, 26, 17, 27, 16, 13, 14, 23, 0, 27, 17, 13, 23, 30, 11, 12, 24, 21, 31, 19, 12, 13, 30, 24, 22, 31, 31, 22, 19, 12, 30, 24, 32, 24, 31, 24, 30, 22, 3, 20, 19, 32, 31, 21, 11, 24, 32, 4, 5, 3, 8, 28, 7, 7, 29, 6, 7, 28, 29, 9, 25, 8, 8, 25, 28, 9, 10, 25, 29, 5, 6, 10, 32, 25, 25, 21, 28, 25, 32, 21, 10, 11, 32, 28, 21, 29, 29, 20, 5, 29, 21, 20, 5, 20, 3, 20, 21, 19, 33, 26, 27, 22, 18, 19, 19, 18, 2, 33, 27, 18, 30, 23, 22, 22, 33, 18, 23, 33, 22, 33, 23, 26, 27, 0, 18 ],
"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 ],
@ -861,13 +877,13 @@
},
"transform": {
"aim-front-arm-transform": [
{ "rotateMix": 0.784, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }
{ "mixRotate": 0.784, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 }
],
"aim-head-transform": [
{ "rotateMix": 0.659, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }
{ "mixRotate": 0.659, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 }
],
"aim-torso-transform": [
{ "rotateMix": 0.423, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }
{ "mixRotate": 0.423, "mixX": 0, "mixScaleX": 0, "mixShearY": 0 }
]
}
},
@ -969,19 +985,19 @@
"scale": [
{
"time": 0.4667,
"curve": [ 0.469, 1, 0.492, 1.07, 0.475, 1.02, 0.492, 0.94 ]
"curve": [ 0.469, 1.005, 0.492, 1.065, 0.475, 1.018, 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 ]
"curve": [ 0.517, 1.065, 0.541, 0.991, 0.517, 0.94, 0.542, 1.026 ]
},
{
"time": 0.5667,
"x": 0.99,
"y": 1.025,
"curve": [ 0.593, 0.99, 0.609, 1, 0.595, 1.02, 0.607, 1 ]
"curve": [ 0.593, 0.988, 0.609, 1.002, 0.595, 1.024, 0.607, 1.001 ]
},
{ "time": 0.6333 }
]
@ -2481,48 +2497,48 @@
{
"x": 1.593,
"y": 0.964,
"curve": [ 0.033, 1.59, 0.1, 1, 0.033, 0.96, 0.1, 0.71 ]
"curve": [ 0.033, 1.593, 0.1, 1, 0.033, 0.964, 0.1, 0.713 ]
},
{
"time": 0.1333,
"y": 0.713,
"curve": [ 0.15, 1, 0.183, 1.77, 0.15, 0.71, 0.183, 0.88 ]
"curve": [ 0.15, 1, 0.183, 1.774, 0.15, 0.713, 0.183, 0.883 ]
},
{
"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 ]
"curve": [ 0.242, 1.774, 0.325, 1.181, 0.242, 0.883, 0.325, 0.649 ]
},
{
"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 ]
"curve": [ 0.408, 1.181, 0.492, 1.893, 0.408, 0.649, 0.492, 0.819 ]
},
{
"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 ]
"curve": [ 0.558, 1.893, 0.608, 1.18, 0.558, 0.819, 0.608, 0.686 ]
},
{
"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 ]
"curve": [ 0.658, 1.18, 0.708, 1.903, 0.658, 0.686, 0.708, 0.855 ]
},
{
"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 ]
"curve": [ 0.767, 1.903, 0.833, 1.311, 0.767, 0.855, 0.833, 0.622 ]
},
{
"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 ]
"curve": [ 0.9, 1.311, 0.967, 1.593, 0.9, 0.622, 0.967, 0.964 ]
},
{ "time": 1, "x": 1.593, "y": 0.964 }
]
@ -2532,48 +2548,48 @@
{
"x": 1.88,
"y": 0.832,
"curve": [ 0.025, 1.88, 0.075, 1.31, 0.025, 0.83, 0.075, 0.69 ]
"curve": [ 0.025, 1.88, 0.075, 1.311, 0.025, 0.832, 0.075, 0.686 ]
},
{
"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 ]
"curve": [ 0.133, 1.311, 0.2, 2.01, 0.133, 0.686, 0.208, 0.736 ]
},
{
"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 ]
"curve": [ 0.267, 2.01, 0.333, 1, 0.282, 0.831, 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 ]
"curve": [ 0.4, 1, 0.467, 1.699, 0.4, 0.91, 0.474, 0.891 ]
},
{
"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 ]
"curve": [ 0.517, 1.699, 0.55, 1.181, 0.54, 0.813, 0.55, 0.713 ]
},
{
"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 ]
"curve": [ 0.617, 1.181, 0.717, 1.881, 0.617, 0.713, 0.717, 0.796 ]
},
{
"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 ]
"curve": [ 0.8, 1.881, 0.867, 1.3, 0.8, 0.796, 0.867, 0.649 ]
},
{
"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 ]
"curve": [ 0.925, 1.3, 0.975, 1.88, 0.925, 0.649, 0.975, 0.832 ]
},
{ "time": 1, "x": 1.88, "y": 0.832 }
]
@ -2596,79 +2612,79 @@
{
"x": 0.849,
"y": 1.764,
"curve": [ 0.017, 0.85, 0.05, 0.83, 0.017, 1.76, 0.05, 2.03 ]
"curve": [ 0.017, 0.849, 0.05, 0.835, 0.017, 1.764, 0.05, 2.033 ]
},
{
"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 ]
"curve": [ 0.092, 0.835, 0.142, 0.752, 0.092, 2.033, 0.142, 1.584 ]
},
{
"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 ]
"curve": [ 0.183, 0.752, 0.217, 0.809, 0.183, 1.584, 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 ]
"curve": [ 0.25, 0.809, 0.283, 0.717, 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 ]
"curve": [ 0.317, 0.717, 0.35, 0.777, 0.317, 1.45, 0.35, 1.698 ]
},
{
"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 ]
"curve": [ 0.4, 0.781, 0.45, 0.685, 0.375, 1.698, 0.45, 1.173 ]
},
{
"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 ]
"curve": [ 0.492, 0.685, 0.542, 0.825, 0.492, 1.173, 0.542, 1.572 ]
},
{
"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 ]
"curve": [ 0.611, 0.816, 0.63, 0.727, 0.611, 1.577, 0.606, 1.255 ]
},
{
"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 ]
"curve": [ 0.692, 0.725, 0.742, 0.895, 0.692, 1.241, 0.749, 1.799 ]
},
{
"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 ]
"curve": [ 0.783, 0.895, 0.796, 0.892, 0.796, 1.955, 0.817, 1.962 ]
},
{
"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 ]
"curve": [ 0.845, 0.831, 0.883, 0.802, 0.85, 1.962, 0.872, 1.704 ]
},
{
"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 ]
"curve": [ 0.917, 0.802, 0.95, 0.845, 0.907, 1.441, 0.936, 1.508 ]
},
{
"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 ]
"curve": [ 0.975, 0.845, 0.992, 0.849, 0.973, 1.652, 0.992, 1.764 ]
},
{ "time": 1, "x": 0.849, "y": 1.764 }
]
@ -2691,61 +2707,61 @@
{
"x": 0.845,
"y": 1.31,
"curve": [ 0.017, 0.84, 0.117, 0.9, 0.017, 1.31, 0.117, 2.03 ]
"curve": [ 0.017, 0.845, 0.117, 0.899, 0.017, 1.31, 0.117, 2.033 ]
},
{
"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 ]
"curve": [ 0.15, 0.899, 0.183, 0.752, 0.15, 2.033, 0.183, 1.574 ]
},
{
"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 ]
"curve": [ 0.225, 0.752, 0.275, 0.809, 0.225, 1.574, 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 ]
"curve": [ 0.317, 0.809, 0.35, 0.717, 0.317, 1.71, 0.35, 1.397 ]
},
{
"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 ]
"curve": [ 0.383, 0.717, 0.417, 0.777, 0.383, 1.397, 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 ]
"curve": [ 0.45, 0.777, 0.496, 0.689, 0.45, 1.45, 0.481, 1.168 ]
},
{
"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 ]
"curve": [ 0.565, 0.682, 0.617, 0.758, 0.575, 1.177, 0.617, 1.297 ]
},
{
"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 ]
"curve": [ 0.658, 0.758, 0.708, 0.725, 0.658, 1.297, 0.708, 1.241 ]
},
{
"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 ]
"curve": [ 0.772, 0.732, 0.796, 0.893, 0.782, 1.238, 0.778, 1.854 ]
},
{
"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 ]
"curve": [ 0.878, 0.9, 0.992, 0.845, 0.88, 1.86, 0.992, 1.31 ]
},
{ "time": 1, "x": 0.845, "y": 1.31 }
]
@ -2900,49 +2916,49 @@
{
"x": 1.882,
"y": 0.81,
"curve": [ 0.017, 1.88, 0.167, 1.3, 0.017, 0.81, 0.167, 0.65 ]
"curve": [ 0.017, 1.882, 0.167, 1.3, 0.017, 0.81, 0.167, 0.649 ]
},
{
"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 ]
"curve": [ 0.225, 1.3, 0.275, 2.051, 0.225, 0.649, 0.275, 0.984 ]
},
{
"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 ]
"curve": [ 0.325, 2.051, 0.375, 1.311, 0.325, 0.984, 0.384, 0.715 ]
},
{
"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 ]
"curve": [ 0.433, 1.311, 0.5, 1.86, 0.426, 0.638, 0.5, 0.537 ]
},
{
"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 ]
"curve": [ 0.567, 1.86, 0.633, 1.187, 0.567, 0.537, 0.604, 0.854 ]
},
{
"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 ]
"curve": [ 0.7, 1.187, 0.767, 1.549, 0.707, 0.854, 0.774, 0.775 ]
},
{
"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 ]
"curve": [ 0.817, 1.549, 0.85, 1.181, 0.815, 0.729, 0.85, 0.713 ]
},
{
"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 ]
"curve": [ 0.9, 1.181, 0.967, 1.882, 0.9, 0.713, 0.967, 0.81 ]
},
{ "time": 1, "x": 1.882, "y": 0.81 }
]
@ -3458,13 +3474,13 @@
},
"transform": {
"front-foot-board-transform": [
{ "rotateMix": 0.997 }
{ "mixRotate": 0.997 }
],
"rear-foot-board-transform": [
{}
],
"toes-board": [
{ "translateMix": 0, "scaleMix": 0, "shearMix": 0 }
{ "mixX": 0, "mixScaleX": 0, "mixShearY": 0 }
]
},
"deform": {
@ -4009,13 +4025,13 @@
"scale": [
{
"x": 0.94,
"curve": [ 0, 0.96, 0.024, 1.24, 0, 1, 0.026, 0.95 ]
"curve": [ 0, 0.962, 0.024, 1.237, 0, 1, 0.026, 0.947 ]
},
{
"time": 0.0667,
"x": 1.236,
"y": 0.947,
"curve": [ 0.117, 1.24, 0.189, 1, 0.117, 0.95, 0.189, 1 ]
"curve": [ 0.117, 1.235, 0.189, 1, 0.117, 0.947, 0.189, 1 ]
},
{ "time": 0.2667 }
]
@ -4578,31 +4594,31 @@
],
"scale": [
{
"curve": [ 0.041, 1, 0.052, 0.96, 0.041, 1, 0.052, 1.14 ]
"curve": [ 0.041, 1, 0.052, 0.962, 0.041, 1, 0.052, 1.137 ]
},
{
"time": 0.1,
"x": 0.954,
"y": 1.137,
"curve": [ 0.202, 0.96, 0.318, 1, 0.202, 1.14, 0.252, 1 ]
"curve": [ 0.202, 0.962, 0.318, 1, 0.202, 1.137, 0.252, 1.002 ]
},
{ "time": 0.4667 },
{
"time": 1.0667,
"x": 1.002,
"curve": [ 1.092, 1, 1.126, 1.14, 1.092, 1, 1.128, 0.97 ]
"curve": [ 1.092, 1.002, 1.126, 1.143, 1.092, 1, 1.128, 0.975 ]
},
{
"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 ]
"curve": [ 1.204, 1.145, 1.233, 0.959, 1.206, 0.972, 1.227, 1.062 ]
},
{
"time": 1.2667,
"x": 0.958,
"y": 1.063,
"curve": [ 1.284, 0.96, 1.292, 1, 1.288, 1.06, 1.288, 1 ]
"curve": [ 1.284, 0.958, 1.292, 1.001, 1.288, 1.063, 1.288, 1.001 ]
},
{ "time": 1.3333 }
]
@ -5323,55 +5339,55 @@
{
"x": 0.003,
"y": 0.006,
"curve": [ 0.329, 0.04, 0.347, 0.12, 0.329, 0.1, 0.37, 0.25 ]
"curve": [ 0.329, 0.044, 0.347, 0.117, 0.329, 0.097, 0.37, 0.249 ]
},
{
"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 ]
"curve": [ 0.63, 0.619, 0.663, 0.723, 0.609, 1.338, 0.645, 1.524 ]
},
{
"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 ]
"curve": [ 0.798, 0.725, 0.907, 0.647, 0.797, 1.517, 0.895, 1.424 ]
},
{
"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 ]
"curve": [ 1.095, 0.643, 1.139, 0.688, 1.089, 1.428, 1.115, 1.513 ]
},
{
"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 ]
"curve": [ 1.325, 0.683, 1.508, 0.636, 1.343, 1.518, 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 ]
"curve": [ 1.728, 0.631, 1.946, 0.687, 1.722, 1.402, 1.924, 1.522 ]
},
{
"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 ]
"curve": [ 2.189, 0.69, 2.289, 0.649, 2.142, 1.522, 2.265, 1.417 ]
},
{
"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 ]
"curve": [ 2.494, 0.651, 2.504, 0.766, 2.508, 1.434, 2.543, 1.566 ]
},
{
"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 ]
"curve": [ 2.73, 0.765, 3.006, 0.098, 2.767, 1.564, 2.997, 0.1 ]
},
{ "time": 3.0333, "x": 0.007, "y": 0.015 }
]
@ -5420,19 +5436,19 @@
],
"scale": [
{
"curve": [ 0.167, 1, 0.5, 1.05, 0.167, 1, 0.5, 1.05 ]
"curve": [ 0.167, 1, 0.5, 1.053, 0.167, 1, 0.5, 1.053 ]
},
{
"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 ]
"curve": [ 0.833, 1.053, 1.167, 0.986, 0.833, 1.053, 1.167, 0.986 ]
},
{
"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 ]
"curve": [ 1.5, 0.986, 1.833, 1.053, 1.5, 0.986, 1.833, 1.053 ]
},
{ "time": 2, "x": 1.053, "y": 1.053 }
]
@ -5451,25 +5467,25 @@
{
"x": 1.014,
"y": 1.014,
"curve": [ 0.229, 0.91, 0.501, 0.76, 0.242, 0.89, 0.502, 0.77 ]
"curve": [ 0.229, 0.909, 0.501, 0.755, 0.242, 0.892, 0.502, 0.768 ]
},
{
"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 ]
"curve": [ 1.282, 0.733, 2.021, 0.699, 1.27, 0.719, 2.071, 0.709 ]
},
{
"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 ]
"curve": [ 2.315, 0.7, 2.421, 0.794, 2.311, 0.701, 2.485, 0.797 ]
},
{
"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 ]
"curve": [ 2.734, 0.794, 2.99, 0.323, 2.714, 0.789, 3.019, 0.341 ]
},
{ "time": 3.1667, "x": 0, "y": 0 }
]
@ -5759,19 +5775,19 @@
"scale": [
{
"time": 1.3333,
"curve": [ 1.392, 1, 1.526, 1, 1.392, 1, 1.508, 1.04 ]
"curve": [ 1.392, 1, 1.526, 1, 1.392, 1, 1.508, 1.043 ]
},
{
"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 ]
"curve": [ 1.598, 0.985, 1.676, 0.955, 1.584, 1.043, 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 ]
"curve": [ 1.843, 0.954, 1.933, 1, 1.825, 1.013, 1.933, 1 ]
},
{ "time": 2 }
]
@ -6205,25 +6221,25 @@
"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 ]
"curve": [ 1.119, 0.763, 1.16, 1.162, 1.117, 0.805, 1.15, 0.605 ]
},
{
"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 ]
"curve": [ 1.177, 1.47, 1.192, 2.151, 1.175, 0.605, 1.192, 0.911 ]
},
{
"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 ]
"curve": [ 1.208, 2.151, 1.231, 1.668, 1.208, 0.911, 1.227, 0.844 ]
},
{
"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 ]
"curve": [ 1.249, 1.205, 1.283, 0.547, 1.254, 0.685, 1.283, 0.416 ]
},
{ "time": 1.3, "x": 0.547, "y": 0.416 }
],
@ -6819,35 +6835,35 @@
],
"scale": [
{
"curve": [ 0.014, 1, 0.068, 0.99, 0.027, 1.01, 0.083, 1.01 ]
"curve": [ 0.014, 0.996, 0.068, 0.991, 0.027, 1.005, 0.083, 1.012 ]
},
{
"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 ]
"curve": [ 0.128, 0.991, 0.205, 1.018, 0.128, 1.012, 0.197, 0.988 ]
},
{
"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 ]
"curve": [ 0.272, 1.018, 0.305, 1.008, 0.262, 0.988, 0.311, 0.995 ]
},
{
"time": 0.3333,
"curve": [ 0.351, 1, 0.417, 0.99, 0.359, 1.01, 0.417, 1.01 ]
"curve": [ 0.351, 0.995, 0.417, 0.987, 0.359, 1.006, 0.417, 1.013 ]
},
{
"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 ]
"curve": [ 0.467, 0.987, 0.533, 1.02, 0.467, 1.013, 0.533, 0.989 ]
},
{
"time": 0.5667,
"x": 1.02,
"y": 0.989,
"curve": [ 0.592, 1.02, 0.652, 1, 0.592, 0.99, 0.644, 1 ]
"curve": [ 0.592, 1.02, 0.652, 1.004, 0.592, 0.989, 0.644, 0.996 ]
},
{ "time": 0.6667 }
]
@ -7518,7 +7534,7 @@
"scale": [
{
"x": 0.844,
"curve": [ 0.067, 0.84, 0.2, 1, 0.067, 1, 0.2, 1 ]
"curve": [ 0.067, 0.844, 0.2, 1, 0.067, 1, 0.2, 1 ]
},
{ "time": 0.2667 }
]
@ -7563,7 +7579,7 @@
{
"x": 0.963,
"y": 1.074,
"curve": [ 0.067, 0.96, 0.132, 1, 0.067, 1.07, 0.132, 1 ]
"curve": [ 0.067, 0.963, 0.132, 1, 0.067, 1.074, 0.132, 1 ]
},
{ "time": 0.2667 }
]
@ -7674,7 +7690,7 @@
"shoot": {
"slots": {
"muzzle": {
"color": [
"rgba": [
{ "time": 0.1333, "color": "ffffffff" },
{ "time": 0.2, "color": "ffffff62" }
],
@ -7688,7 +7704,7 @@
]
},
"muzzle-glow": {
"color": [
"rgba": [
{ "color": "ff0c0c00" },
{
"time": 0.0333,
@ -7703,7 +7719,7 @@
]
},
"muzzle-ring": {
"color": [
"rgba": [
{
"time": 0.0333,
"color": "d8baffff",
@ -7717,7 +7733,7 @@
]
},
"muzzle-ring2": {
"color": [
"rgba": [
{
"time": 0.0333,
"color": "d8baffff",
@ -7731,7 +7747,7 @@
]
},
"muzzle-ring3": {
"color": [
"rgba": [
{
"time": 0.0333,
"color": "d8baffff",
@ -7745,7 +7761,7 @@
]
},
"muzzle-ring4": {
"color": [
"rgba": [
{
"time": 0.0333,
"color": "d8baffff",
@ -8143,35 +8159,35 @@
],
"scale": [
{
"curve": [ 0.039, 1, 0.084, 0.99, 0.039, 1, 0.084, 1.02 ]
"curve": [ 0.039, 1, 0.084, 0.991, 0.039, 1, 0.084, 1.019 ]
},
{
"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 ]
"curve": [ 0.205, 0.991, 0.318, 1.019, 0.205, 1.019, 0.337, 0.992 ]
},
{
"time": 0.4,
"x": 1.019,
"y": 0.992,
"curve": [ 0.456, 1.02, 0.494, 1, 0.483, 0.99, 0.493, 1 ]
"curve": [ 0.456, 1.019, 0.494, 1.001, 0.483, 0.991, 0.493, 0.999 ]
},
{
"time": 0.5,
"curve": [ 0.508, 1, 0.584, 0.99, 0.51, 1, 0.584, 1.02 ]
"curve": [ 0.508, 0.998, 0.584, 0.991, 0.51, 1.002, 0.584, 1.019 ]
},
{
"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 ]
"curve": [ 0.705, 0.991, 0.818, 1.019, 0.705, 1.019, 0.837, 0.992 ]
},
{
"time": 0.9,
"x": 1.019,
"y": 0.992,
"curve": [ 0.956, 1.02, 0.955, 1, 0.983, 0.99, 0.955, 1 ]
"curve": [ 0.956, 1.019, 0.955, 1, 0.983, 0.991, 0.955, 1 ]
},
{ "time": 1 }
]
@ -8563,11 +8579,6 @@
{ "time": 1 }
]
},
"crosshair": {
"rotate": [
{ "time": 0.2333, "value": 0.11 }
]
},
"gun-tip": {
"rotate": [
{ "time": 0.2333, "value": 0.11 }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 KiB

After

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 113 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 422 KiB

After

Width:  |  Height:  |  Size: 519 KiB

View File

@ -1,7 +1,7 @@
{
"skeleton": {
"hash": "C8ZQzuFlwMI",
"spine": "4.0.05-beta",
"hash": "3P3VgYJ8Bxk",
"spine": "4.0.34-beta",
"x": -5852.65,
"y": -348.5,
"width": 7202.61,
@ -888,9 +888,11 @@
"bones": [ "wheel-big2" ],
"target": "wheel-big1",
"rotation": 65.6,
"translateMix": 0,
"scaleMix": 0,
"shearMix": 0
"mixX": 0,
"mixY": 0,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "wheel-mid1-transform",
@ -898,9 +900,11 @@
"bones": [ "wheel-mid2", "wheel-mid4" ],
"target": "wheel-mid1",
"rotation": 93,
"translateMix": 0,
"scaleMix": 0,
"shearMix": 0
"mixX": 0,
"mixY": 0,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "wheel-mid2-transform",
@ -908,9 +912,11 @@
"bones": [ "wheel-mid3", "wheel-mid5" ],
"target": "wheel-mid1",
"rotation": -89,
"translateMix": 0,
"scaleMix": 0,
"shearMix": 0
"mixX": 0,
"mixY": 0,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "wheel-mid3-transform",
@ -918,9 +924,11 @@
"bones": [ "wheel-mid6" ],
"target": "wheel-mid1",
"rotation": -152.6,
"translateMix": 0,
"scaleMix": 0,
"shearMix": 0
"mixX": 0,
"mixY": 0,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "wheel-small1-transform",
@ -928,9 +936,11 @@
"bones": [ "wheel-small2" ],
"target": "wheel-small1",
"rotation": 87,
"translateMix": 0,
"scaleMix": 0,
"shearMix": 0
"mixX": 0,
"mixY": 0,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
},
{
"name": "wheel-small2-transform",
@ -938,9 +948,11 @@
"bones": [ "wheel-small3" ],
"target": "wheel-small1",
"rotation": 54.9,
"translateMix": 0,
"scaleMix": 0,
"shearMix": 0
"mixX": 0,
"mixY": 0,
"mixScaleX": 0,
"mixScaleY": 0,
"mixShearY": 0
}
],
"path": [
@ -3424,7 +3436,7 @@
]
},
"smoke-glow": {
"color": [
"rgba": [
{ "time": 0.1333, "color": "ffffffff" },
{ "time": 0.1667, "color": "ffbc8af4" },
{ "time": 0.2, "color": "fc8e8e90" },
@ -3436,7 +3448,7 @@
]
},
"smoke-puff1-bg": {
"twoColor": [
"rgba2": [
{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.6, "light": "ffd50cff", "dark": "604b3f" },
@ -3447,7 +3459,7 @@
]
},
"smoke-puff1-bg2": {
"twoColor": [
"rgba2": [
{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
@ -3458,7 +3470,7 @@
]
},
"smoke-puff1-bg3": {
"twoColor": [
"rgba2": [
{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
@ -3469,7 +3481,7 @@
]
},
"smoke-puff1-bg4": {
"twoColor": [
"rgba2": [
{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.6, "light": "ffd50cff", "dark": "604b3f" },
@ -3480,7 +3492,7 @@
]
},
"smoke-puff1-bg5": {
"twoColor": [
"rgba2": [
{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.6, "light": "ffd50cff", "dark": "604b3f" },
@ -3491,7 +3503,7 @@
]
},
"smoke-puff1-bg6": {
"twoColor": [
"rgba2": [
{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
@ -3502,7 +3514,7 @@
]
},
"smoke-puff1-bg7": {
"twoColor": [
"rgba2": [
{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
{ "time": 0.3333, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
@ -3513,7 +3525,7 @@
]
},
"smoke-puff1-bg8": {
"twoColor": [
"rgba2": [
{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.4333, "light": "ffd50cff", "dark": "604b3f" },
@ -3524,7 +3536,7 @@
]
},
"smoke-puff1-bg9": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "ffd50cff", "dark": "3b2c23" },
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.5333, "light": "ffd50cff", "dark": "604b3f" },
@ -3535,7 +3547,7 @@
]
},
"smoke-puff1-bg10": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "ffd50cff", "dark": "3b2c23" },
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.5333, "light": "ffd50cff", "dark": "604b3f" },
@ -3546,7 +3558,7 @@
]
},
"smoke-puff1-bg11": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
{ "time": 0.7667, "light": "ffd50c00", "dark": "604b3f" }
@ -3556,7 +3568,7 @@
]
},
"smoke-puff1-bg12": {
"twoColor": [
"rgba2": [
{ "time": 0.3333, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.6, "light": "ffd50cff", "dark": "604b3f" },
{ "time": 0.8667, "light": "ffd50c00", "dark": "604a3f" }
@ -3566,7 +3578,7 @@
]
},
"smoke-puff1-bg13": {
"twoColor": [
"rgba2": [
{ "time": 0.3667, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
{ "time": 1, "light": "ffd50c00", "dark": "604b3f" }
@ -3576,7 +3588,7 @@
]
},
"smoke-puff1-bg14": {
"twoColor": [
"rgba2": [
{ "time": 0.4333, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.6, "light": "ffd50cff", "dark": "604b3f" },
{ "time": 1.0667, "light": "ffd50c00", "dark": "604b3f" }
@ -3586,7 +3598,7 @@
]
},
"smoke-puff1-bg15": {
"twoColor": [
"rgba2": [
{ "time": 0.4, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
{ "time": 0.8333, "light": "ffd50c00", "dark": "604b3f" }
@ -3596,7 +3608,7 @@
]
},
"smoke-puff1-bg16": {
"twoColor": [
"rgba2": [
{ "time": 0.4, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
{ "time": 0.7, "light": "ffd50c00", "dark": "604b3f" }
@ -3606,7 +3618,7 @@
]
},
"smoke-puff1-bg17": {
"twoColor": [
"rgba2": [
{ "time": 0.2333, "light": "ffd50cff", "dark": "534035" },
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.4, "light": "ffd50cff", "dark": "604b3f" },
@ -3617,7 +3629,7 @@
]
},
"smoke-puff1-bg18": {
"twoColor": [
"rgba2": [
{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.5, "light": "ffd50cff", "dark": "604b3f" },
@ -3628,7 +3640,7 @@
]
},
"smoke-puff1-bg20": {
"twoColor": [
"rgba2": [
{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
@ -3639,7 +3651,7 @@
]
},
"smoke-puff1-bg21": {
"twoColor": [
"rgba2": [
{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
@ -3647,7 +3659,7 @@
]
},
"smoke-puff1-bg22": {
"twoColor": [
"rgba2": [
{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
@ -3655,7 +3667,7 @@
]
},
"smoke-puff1-bg23": {
"twoColor": [
"rgba2": [
{ "time": 0.0667, "light": "ffd50cff", "dark": "3b2c23" },
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.5, "light": "ffd50cff", "dark": "604b3f" },
@ -3666,7 +3678,7 @@
]
},
"smoke-puff1-bg24": {
"twoColor": [
"rgba2": [
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
{ "time": 0.7, "light": "ffd50c00", "dark": "604b3f" }
@ -3676,7 +3688,7 @@
]
},
"smoke-puff1-bg25": {
"twoColor": [
"rgba2": [
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
{ "time": 1, "light": "ffd50c00", "dark": "604b3f" }
@ -3686,7 +3698,7 @@
]
},
"smoke-puff1-bg26": {
"twoColor": [
"rgba2": [
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.6, "light": "ffd50cff", "dark": "604b3f" },
{ "time": 0.9333, "light": "ffd50c00", "dark": "604b3f" }
@ -3696,7 +3708,7 @@
]
},
"smoke-puff1-bg27": {
"twoColor": [
"rgba2": [
{ "time": 0.3, "light": "ffd50cff", "dark": "604b3f", "curve": "stepped" },
{ "time": 0.4667, "light": "ffd50cff", "dark": "604b3f" },
{ "time": 0.7333, "light": "ffd50c00", "dark": "604b3f" }
@ -3706,7 +3718,7 @@
]
},
"smoke-puff1-fg": {
"twoColor": [
"rgba2": [
{ "time": 0.0667, "light": "ffdf31ff", "dark": "ff0000" },
{ "time": 0.1333, "light": "fde252ff", "dark": "ff0000" },
{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
@ -3723,7 +3735,7 @@
]
},
"smoke-puff1-fg2": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
@ -3739,7 +3751,7 @@
]
},
"smoke-puff1-fg3": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "ffe457ff", "dark": "ff0000" },
{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
@ -3755,7 +3767,7 @@
]
},
"smoke-puff1-fg4": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "fae781ff", "dark": "ff0000" },
{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
@ -3771,7 +3783,7 @@
]
},
"smoke-puff1-fg5": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
@ -3787,7 +3799,7 @@
]
},
"smoke-puff1-fg6": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
@ -3803,7 +3815,7 @@
]
},
"smoke-puff1-fg7": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
@ -3819,7 +3831,7 @@
]
},
"smoke-puff1-fg8": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
@ -3835,7 +3847,7 @@
]
},
"smoke-puff1-fg9": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
@ -3851,7 +3863,7 @@
]
},
"smoke-puff1-fg10": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "fce35dff", "dark": "ff0000" },
{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
@ -3867,7 +3879,7 @@
]
},
"smoke-puff1-fg11": {
"twoColor": [
"rgba2": [
{ "time": 0.3333, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
{ "time": 0.7667, "light": "ab764c00", "dark": "ac8d75" }
@ -3877,7 +3889,7 @@
]
},
"smoke-puff1-fg12": {
"twoColor": [
"rgba2": [
{ "time": 0.3667, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
{ "time": 0.6, "light": "ab764cff", "dark": "ac8d75" },
{ "time": 0.8667, "light": "ac8c7500", "dark": "604a3f" }
@ -3887,7 +3899,7 @@
]
},
"smoke-puff1-fg13": {
"twoColor": [
"rgba2": [
{ "time": 0.3667, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
{ "time": 1, "light": "ab764c00", "dark": "ac8d75" }
@ -3897,7 +3909,7 @@
]
},
"smoke-puff1-fg14": {
"twoColor": [
"rgba2": [
{ "time": 0.4333, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
{ "time": 0.6, "light": "ab764cff", "dark": "ac8d75" },
{ "time": 1.0667, "light": "ab764c00", "dark": "ac8d75" }
@ -3907,7 +3919,7 @@
]
},
"smoke-puff1-fg15": {
"twoColor": [
"rgba2": [
{ "time": 0.4, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
{ "time": 0.8333, "light": "ab764c00", "dark": "ac8d75" }
@ -3917,7 +3929,7 @@
]
},
"smoke-puff1-fg16": {
"twoColor": [
"rgba2": [
{ "time": 0.4, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
{ "time": 0.7, "light": "ab764c00", "dark": "ac8d75" }
@ -3927,7 +3939,7 @@
]
},
"smoke-puff1-fg17": {
"twoColor": [
"rgba2": [
{ "time": 0.2333, "light": "e3c05eff", "dark": "ab7e59" },
{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
{ "time": 0.4, "light": "ab764cff", "dark": "ac8d75" },
@ -3938,7 +3950,7 @@
]
},
"smoke-puff1-fg18": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
@ -3952,7 +3964,7 @@
]
},
"smoke-puff1-fg20": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
@ -3965,7 +3977,7 @@
]
},
"smoke-puff1-fg21": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
@ -3975,7 +3987,7 @@
]
},
"smoke-puff1-fg22": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
@ -3985,7 +3997,7 @@
]
},
"smoke-puff1-fg23": {
"twoColor": [
"rgba2": [
{ "time": 0.1333, "light": "ffdf31ff", "dark": "ff0000" },
{ "time": 0.1667, "light": "ffe568ff", "dark": "e26425" },
{ "time": 0.2, "light": "ffe568ff", "dark": "ab774c" },
@ -3998,7 +4010,7 @@
]
},
"smoke-puff1-fg24": {
"twoColor": [
"rgba2": [
{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
{ "time": 0.7, "light": "ab764c00", "dark": "ac8d75" }
@ -4008,7 +4020,7 @@
]
},
"smoke-puff1-fg25": {
"twoColor": [
"rgba2": [
{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
{ "time": 1, "light": "ab764c00", "dark": "ac8d75" }
@ -4018,7 +4030,7 @@
]
},
"smoke-puff1-fg26": {
"twoColor": [
"rgba2": [
{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
{ "time": 0.6, "light": "ab764cff", "dark": "ac8d75" },
{ "time": 0.9333, "light": "ab764c00", "dark": "ac8d75" }
@ -4028,7 +4040,7 @@
]
},
"smoke-puff1-fg27": {
"twoColor": [
"rgba2": [
{ "time": 0.3, "light": "ab764cff", "dark": "ac8d75", "curve": "stepped" },
{ "time": 0.4667, "light": "ab764cff", "dark": "ac8d75" },
{ "time": 0.7333, "light": "ab764c00", "dark": "ac8d75" }
@ -4038,7 +4050,7 @@
]
},
"tank-glow": {
"color": [
"rgba": [
{ "time": 0.0667, "color": "fc994d84" },
{
"time": 0.1333,
@ -4864,7 +4876,7 @@
"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 ]
"curve": [ 0.199, 1.182, 0.222, 1.048, 0.199, 0.939, 0.222, 0.579 ]
},
{ "time": 0.2333, "x": 1.008, "y": 0.471 }
]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 135 KiB

View File

@ -1,7 +1,7 @@
{
"skeleton": {
"hash": "xgpkAVpHzus",
"spine": "4.0.05-beta",
"hash": "mROo4Xkf3Fs",
"spine": "4.0.34-beta",
"x": -87.7,
"y": -1.71,
"width": 227.65,
@ -176,7 +176,7 @@
"grow": {
"slots": {
"vine": {
"color": [
"rgba": [
{
"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 ]
@ -191,13 +191,13 @@
{
"x": 0,
"y": 0.183,
"curve": [ 0.978, 0.7, 1.776, 1.01, 0.978, 0.71, 1.776, 0.94 ]
"curve": [ 0.978, 0.698, 1.776, 1.011, 0.978, 0.708, 1.776, 0.944 ]
},
{
"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 ]
"curve": [ 7.182, 1.164, 9.04, 1.116, 7.182, 1.184, 9.04, 1.259 ]
},
{ "time": 11.4333, "y": 1.439 }
]
@ -227,16 +227,16 @@
],
"scale": [
{
"curve": [ 1.083, 1, 3.25, 1, 1.083, 1, 3.25, 0.79 ]
"curve": [ 1.083, 1, 3.25, 1, 1.083, 1, 3.25, 0.792 ]
},
{
"time": 4.3333,
"y": 0.792,
"curve": [ 5.15, 1, 6.783, 1, 5.15, 0.79, 6.783, 1 ]
"curve": [ 5.15, 1, 6.783, 1, 5.15, 0.792, 6.783, 1 ]
},
{
"time": 7.6,
"curve": [ 8.558, 1, 9.781, 1, 8.558, 1, 9.781, 0.64 ]
"curve": [ 8.558, 1, 9.781, 1, 8.558, 1, 9.781, 0.638 ]
},
{ "time": 11.4333, "y": 0.636 }
]
@ -261,16 +261,16 @@
],
"scale": [
{
"curve": [ 1.083, 1, 3.25, 1, 1.083, 1, 3.25, 0.79 ]
"curve": [ 1.083, 1, 3.25, 1, 1.083, 1, 3.25, 0.792 ]
},
{
"time": 4.3333,
"y": 0.792,
"curve": [ 5.15, 1, 6.783, 1, 5.15, 0.79, 6.783, 1 ]
"curve": [ 5.15, 1, 6.783, 1, 5.15, 0.792, 6.783, 1 ]
},
{
"time": 7.6,
"curve": [ 8.558, 1, 10.475, 1, 8.558, 1, 10.475, 0.92 ]
"curve": [ 8.558, 1, 10.475, 1, 8.558, 1, 10.475, 0.924 ]
},
{ "time": 11.4333, "y": 0.924 }
]
@ -299,16 +299,16 @@
],
"scale": [
{
"curve": [ 1.083, 1, 3.25, 1, 1.083, 1, 3.25, 0.79 ]
"curve": [ 1.083, 1, 3.25, 1, 1.083, 1, 3.25, 0.792 ]
},
{
"time": 4.3333,
"y": 0.792,
"curve": [ 5.15, 1, 6.783, 1, 5.15, 0.79, 6.783, 1 ]
"curve": [ 5.15, 1, 6.783, 1, 5.15, 0.792, 6.783, 1 ]
},
{
"time": 7.6,
"curve": [ 8.558, 1, 10.475, 1, 8.558, 1, 10.475, 0.92 ]
"curve": [ 8.558, 1, 10.475, 1, 8.558, 1, 10.475, 0.924 ]
},
{ "time": 11.4333, "y": 0.924 }
]
@ -337,16 +337,16 @@
],
"scale": [
{
"curve": [ 1.083, 1, 3.25, 1, 1.083, 1, 3.25, 0.79 ]
"curve": [ 1.083, 1, 3.25, 1, 1.083, 1, 3.25, 0.792 ]
},
{
"time": 4.3333,
"y": 0.792,
"curve": [ 5.15, 1, 6.783, 1, 5.15, 0.79, 6.783, 1 ]
"curve": [ 5.15, 1, 6.783, 1, 5.15, 0.792, 6.783, 1 ]
},
{
"time": 7.6,
"curve": [ 8.558, 1, 10.475, 1, 8.558, 1, 10.475, 0.92 ]
"curve": [ 8.558, 1, 10.475, 1, 8.558, 1, 10.475, 0.924 ]
},
{ "time": 11.4333, "y": 0.924 }
]

View File

@ -50,8 +50,8 @@ function load() {
var atlasLoader = new spine.AtlasAttachmentLoader(atlas);
var skeletonBinary = new spine.SkeletonBinary(atlasLoader);
skeletonBinary.scale = SCALE;
var skeletonJson = new spine.SkeletonJson(atlasLoader);
skeletonJson.scale = SCALE;
// var skeletonJson = new spine.SkeletonJson(atlasLoader);
// skeletonJson.scale = SCALE;
var skeletonData = null;
var skeletonJsonData = null;