mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-25 22:23:42 +08:00
Merge branch '3.7-beta' into 3.7-beta-ue4-cpp
This commit is contained in:
commit
c2308a6794
155
CHANGELOG.md
155
CHANGELOG.md
@ -1,14 +1,151 @@
|
||||
# 3.7
|
||||
|
||||
## AS3
|
||||
* **Breaking changes**
|
||||
* The completion event will fire for looped 0 duration animations every frame.
|
||||
* `MixPose` is now called `MixBlend`
|
||||
* **Additions**
|
||||
* Added additive animation blending. When playing back multiple animations on different tracks, where each animation modifies the same skeleton property, the results of tracks with lower indices are discarded, and only the result from the track with the highest index is used. With animation blending, the results of all tracks are mixed together. This allows effects like mixing multiple facial expressions (angry, happy, sad) with percentage mixes. By default the old behaviour is retained (results from lower tracks are discarded). To enable additive blending across animation tracks, call `TrackEntry#setMixBlend(MixBlend.add)` on each track. To specify the blend percentage, set `TrackEntry#alpha`. See http://esotericsoftware.com/forum/morph-target-track-animation-mix-mode-9459 for a discussion.
|
||||
|
||||
### Starling
|
||||
* Added support for vertex effects. See `RaptorExample.as`
|
||||
* Added 'getTexture()' method to 'StarlingTextureAtlasAttachmentLoader'
|
||||
* Breaking change: if a skeleton requires two color tinting, you have to enable it via `SkeletonSprite.twoColorTint = true`. In this case the skeleton will use the `TwoColorMeshStyle`, which internally uses a different vertex layout and shader. This means that skeletons with two color tinting enabled will break batching and hence increase the number of draw calls in your app.
|
||||
* Added `VertexEffect` and implementations `JitterEffect` and `SwirlEffect`. Allows you to modify vertices before they are submitted for drawing. See Starling changes.
|
||||
* Fix issues with StarlingAtlasAttachmentLoader, see https://github.com/EsotericSoftware/spine-runtimes/issues/939
|
||||
* Fix issues with region trimming support, see https://github.com/EsotericSoftware/spine-runtimes/commit/262bc26c64d4111002d80e201cb1a3345e6727df
|
||||
* Added support for overriding `StarlingAtlasAttachmentLoader#getTexture()`, see https://github.com/EsotericSoftware/spine-runtimes/commit/ea7dbecb98edc74e439aa9ef90dcf6eed865f718
|
||||
* Texture atlas operations are no longer handled in `Starling#newRegionAttachment` and `Starling#newMeshAttachment` but delegated to the atlas.
|
||||
* Added sample for additive animation blending, see https://github.com/EsotericSoftware/spine-runtimes/blob/6a556de01429878df47bb276a97959a8bdbbe32f/spine-starling/spine-starling-example/src/spine/examples/OwlExample.as
|
||||
* Added sample on how to use bounding box attachment vertices https://github.com/EsotericSoftware/spine-runtimes/commit/e20428b02699226164fa73ba4b12f7d029ae6f4d
|
||||
* Fully transparent meshes are not submitted for rendering.
|
||||
* No hit-tests are performed when a skeleton is invisible.
|
||||
|
||||
## C
|
||||
* **Breaking changes**
|
||||
* Listeners on `spAnimationState` and `spTrackEntry` will now also be called if a track entry gets disposed as part of disposing an animation state.
|
||||
* The completion event will fire for looped 0 duration animations every frame.
|
||||
* **Additions**
|
||||
* Added support for local and relative transform constraint calculation, including additional fields in `spTransformConstraintData`.
|
||||
* `Animation#apply` and `Timeline#apply`` now take enums `MixPose` and `MixDirection` instead of booleans
|
||||
* Added `spVertexEffect` and corresponding implementations `spJitterVertexEffect` and `spSwirlVertexEffect`. Create/dispose through the corresponding `spXXXVertexEffect_create()/dispose()` functions. Set on framework/engine specific renderer.
|
||||
* Functions in `extension.h` are not prefixed with `_sp` instead of just `_` to avoid interference with other libraries.
|
||||
* Introduced `SP_API` macro. Every spine-c function is prefixed with this macro. By default, it is an empty string. Can be used to markup spine-c functions with e.g. ``__declspec` when compiling to a dll or linking to that dll.
|
||||
* Added `void *userData` to `spAnimationState`to be consumed in callbacks.
|
||||
* Added additive animation blending. When playing back multiple animations on different tracks, where each animation modifies the same skeleton property, the results of tracks with lower indices are discarded, and only the result from the track with the highest index is used. With animation blending, the results of all tracks are mixed together. This allows effects like mixing multiple facial expressions (angry, happy, sad) with percentage mixes. By default the old behaviour is retained (results from lower tracks are discarded). To enable additive blending across animation tracks, call `spTrackEntry->mixBlend = SP_MIXBLEND_ADD)` on each track. To specify the blend percentage, set `spTrackEntry->alpha`. See http://esotericsoftware.com/forum/morph-target-track-animation-mix-mode-9459 for a discussion.
|
||||
* Optimized attachment lookup to give a 40x speed-up. See https://github.com/EsotericSoftware/spine-runtimes/commit/cab81276263890b65d07fa2329ace16db1e365ff
|
||||
|
||||
### Cocos2d-x
|
||||
* Added ETC1 alpha support, thanks @halx99! Does not work when two color tint is enabled.
|
||||
* Added `spAtlasPage_setCustomTextureLoader()` which let's you do texture loading manually. Thanks @jareguo.
|
||||
* Added `SkeletonRenderer:setSlotsRange()` and `SkeletonRenderer::createWithSkeleton()`. This allows you to split rendering of a skeleton up into multiple parts, and render other nodes in between. See `SkeletonRendererSeparatorExample.cpp` for an example.
|
||||
* Fully transparent attachments will not be rendered, improving rendering performance.
|
||||
* Added improved tint-black shader.
|
||||
* Updated to cocos2d-x 3.16
|
||||
* The skeleton setup pose and world transform are now calculated on initialization to avoid flickering on start-up.
|
||||
|
||||
### Cocos2d-Objc
|
||||
* Added vertex effect support to modify vertices of skeletons on the CPU. See `RaptorExample.m`.
|
||||
* Explanation how to handle ARC, see https://github.com/EsotericSoftware/spine-runtimes/commit/a4f122b08c5e2a51d6aad6fc5a947f7ec31f2eb8
|
||||
* The super class `::update()` method of `SkeletonRenderer` is now called, see https://github.com/EsotericSoftware/spine-runtimes/commit/f7bb98185236a6d8f35bfefc70afe4f31e9ec9d2
|
||||
* Added improved tint-black shader.
|
||||
|
||||
### SFML
|
||||
* `spine-sfml.h` no longer defines `SPINE_SHORT_NAMES` to avoid collisions with other APIs. See #1058.
|
||||
* Added support for vertex effects. See raptor example.
|
||||
* Added premultiplied alpha support to `SkeletonDrawable`. Use `SkeletonDrawable::setUsePremultipliedAlpha()`, see https://github.com/EsotericSoftware/spine-runtimes/commit/34086c1f41415309b2ecce86055f6656fcba2950
|
||||
* Added additive animation blending sample, see https://github.com/EsotericSoftware/spine-runtimes/blob/b7e712d3ca1d6be3ebcfe3254dc2cea9c44dda71/spine-sfml/example/main.cpp#L369
|
||||
|
||||
### UE4
|
||||
* spine-c is now exposed from the plugin shared library on Windows via __declspec.
|
||||
* Updated to Unreal Engine 4.18
|
||||
* Added C++ example, see https://github.com/EsotericSoftware/spine-runtimes/commit/15011e81b7061495dba45e28b4d3f4efb10d7f40
|
||||
* `SkeletonRendererComponent` generates collision meshes by default.
|
||||
* Disabled generation of collision meshes by `SkeletonRendererComponent`. Both `ProceduralMeshComponent` and `RuntimeMeshComponent` have a bug that generates a new PhysiX file every frame per component. Users are advised to add a separate collision shape to the root scene component of an actor instead.
|
||||
* Using UE4 `FMemory` allocator by default.
|
||||
|
||||
## C# ##
|
||||
* **Breaking changes**
|
||||
* The completion event will fire for looped 0 duration animations every frame.
|
||||
* **Additions**
|
||||
* Added additive animation blending. When playing back multiple animations on different tracks, where each animation modifies the same skeleton property, the results of tracks with lower indices are discarded, and only the result from the track with the highest index is used. With animation blending, the results of all tracks are mixed together. This allows effects like mixing multiple facial expressions (angry, happy, sad) with percentage mixes. By default the old behaviour is retained (results from lower tracks are discarded). To enable additive blending across animation tracks, call `TrackEntry#MixBlend = MixBlend.add` on each track. To specify the blend percentage, set `TrackEntry#Alpha`. See http://esotericsoftware.com/forum/morph-target-track-animation-mix-mode-9459 for a discussion.
|
||||
|
||||
### Unity
|
||||
* **Runtime and Editor, and Assembly Definition** Files and folders have been reorganized into "Runtime" and "Editor". Each of these have an `.asmdef` file that defines these separately as their own assembly in Unity. For projects not using assembly definition, you may delete the `.asmdef` files. These assembly definitions will be ignored by older versions of Unity that don't support it.
|
||||
* In this scheme, the entirety of the base spine-csharp runtime is inside the "Runtime" folder, to be compiled in the same assembly as spine-unity so they can continue to share internal members.
|
||||
* **SkeletonAnimator is now SkeletonMecanim** The Spine-Unity Mecanim-driven component `SkeletonAnimator` has been renamed `SkeletonMecanim` to make it more autocomplete-friendly and more obvious at human-glance. The .meta files and guids should remain intact so existing projects and prefabs should not break. However, user code needs to be updated to use `SkeletonMecanim`.
|
||||
* **SpineAtlasAsset** The existing `AtlasAsset` type has been renamed to `SpineAtlasAsset` to signify that it specifically uses a Spine/libGDX atlas as its source. Serialization should be intact but user code will need to be updated to refer to existing atlases as `SpineAtlasAsset`.
|
||||
* **AtlasAssetBase** `SpineAtlasAsset` now has an abstract base class called `SpineAtlasAsset`. This is the base class to derive when using alternate atlas sources. Existing SkeletonDataAsset field "atlasAssets" now have the "AtlasAssetBase" type. Serialization should be intact, but user code will need to be updated to refer to the atlas assets accordingly.
|
||||
* This change is in preparation for alternate atlas options such as Unity's SpriteAtlas.
|
||||
|
||||
### XNA/MonoGame
|
||||
* Added support for any `Effect` to be used by `SkeletonRenderer`
|
||||
* Added support for `IVertexEffect` to modify vertices of skeletons on the CPU. `IVertexEffect` instances can be set on the `SkeletonRenderer`. See example project.
|
||||
* Added `SkeletonDebugRenderer`
|
||||
* Made `MeshBatcher` of SkeletonRenderer accessible via a getter. Allows user to batch their own geometry together with skeleton meshes for maximum batching instead of using XNA SpriteBatcher.
|
||||
|
||||
## Java
|
||||
* **Breaking changes**
|
||||
* Skeleton attachments: Moved update of attached skeleton out of libGDX `SkeletonRenderer`, added overloaded method `Skeleton#updateWorldTransform(Bone)`, used for `SkeletonAttachment`. You now MUST call this new method with the bone of the parent skeleton to which the child skeleton is attached. See `SkeletonAttachmentTest` for and example.
|
||||
* The completion event will fire for looped 0 duration animations every frame.
|
||||
* `MixPose` is now called `MixBlend`.
|
||||
* **Additions**
|
||||
* Added `EventData#audioPath` field. This field contains the file name of the audio file used for the event.
|
||||
* Added convenience method to add all attachments from one skin to another, see https://github.com/EsotericSoftware/spine-runtimes/commit/a0b7bb6c445efdfac12b0cdee2057afa3eff3ead
|
||||
* Added additive animation blending. When playing back multiple animations on different tracks, where each animation modifies the same skeleton property, the results of tracks with lower indices are discarded, and only the result from the track with the highest index is used. With animation blending, the results of all tracks are mixed together. This allows effects like mixing multiple facial expressions (angry, happy, sad) with percentage mixes. By default the old behaviour is retained (results from lower tracks are discarded). To enable additive blending across animation tracks, call `TrackEntry#setMixBlend(MixBlend.add)` on each track. To specify the blend percentage, set `TrackEntry#alpha`. See http://esotericsoftware.com/forum/morph-target-track-animation-mix-mode-9459 for a discussion.
|
||||
|
||||
### libGDX
|
||||
* Added `VertexEffect` interface, instances of which can be set on `SkeletonRenderer`. Allows to modify vertices before submitting them to GPU. See `SwirlEffect`, `JitterEffect` and `VertexEffectTest`.
|
||||
* Added improved tint-black shader.
|
||||
* Improved performance by avoiding batch flush when not switching between normal and additive rendering with PMA
|
||||
* Improvements to skeleton viewer.
|
||||
* `TwoColorPolygonBatch` implements the `Batch` interface, allowing to the be used with other libGDX classes that require a batcher for drawing, potentially improving performance. See https://github.com/EsotericSoftware/spine-runtimes/commit/a46b3d1d0c135d51f9bef9ca17a5f8e5dda69927
|
||||
* Added `SkeletonDrawable` to render skeletons in scene2d UI https://github.com/EsotericSoftware/spine-runtimes/commit/b93686c185e2c9d5466969a8e07eee573ebe4b97
|
||||
|
||||
## Lua
|
||||
* **Breaking changes**
|
||||
* The completion event will fire for looped 0 duration animations every frame.
|
||||
* **Additions**
|
||||
* Added `JitterEffect` and `SwirlEffect` and support for vertex effects in Corona and Love
|
||||
* Added additive animation blending. When playing back multiple animations on different tracks, where each animation modifies the same skeleton property, the results of tracks with lower indices are discarded, and only the result from the track with the highest index is used. With animation blending, the results of all tracks are mixed together. This allows effects like mixing multiple facial expressions (angry, happy, sad) with percentage mixes. By default the old behaviour is retained (results from lower tracks are discarded). To enable additive blending across animation tracks, call `TrackEntry:setMixBlend(MixBlend.add)` on each track. To specify the blend percentage, set `TrackEntry.alpha`. See http://esotericsoftware.com/forum/morph-target-track-animation-mix-mode-9459 for a discussion.
|
||||
|
||||
### Love2D
|
||||
* Added support for vertex effects. Set an implementation like "JitterEffect" on `Skeleton.vertexEffect`. See `main.lua` for an example.
|
||||
|
||||
### Corona
|
||||
* Added support for vertex effects. Set an implementation like "JitterEffect" on `SkeletonRenderer.vertexEffect`. See `main.lua` for an example
|
||||
|
||||
## Typescript/Javascript
|
||||
* **Breaking changes**
|
||||
* The completion event will fire for looped 0 duration animations every frame.
|
||||
* **Additions**
|
||||
* Added `AssetManager.loadTextureAtlas`. Instead of loading the `.atlas` and corresponding image files manually, you can simply specify the location of the `.atlas` file and AssetManager will load the atlas and all its images automatically. `AssetManager.get("atlasname.atlas")` will then return an instance of `spine.TextureAtlas`.
|
||||
* Added additive animation blending. When playing back multiple animations on different tracks, where each animation modifies the same skeleton property, the results of tracks with lower indices are discarded, and only the result from the track with the highest index is used. With animation blending, the results of all tracks are mixed together. This allows effects like mixing multiple facial expressions (angry, happy, sad) with percentage mixes. By default the old behaviour is retained (results from lower tracks are discarded). To enable additive blending across animation tracks, call `TrackEntry#setMixBlend(MixBlend.add)` on each track. To specify the blend percentage, set `TrackEntry#alpha`. See http://esotericsoftware.com/forum/morph-target-track-animation-mix-mode-9459 for a discussion. See https://github.com/EsotericSoftware/spine-runtimes/blob/f045d221836fa56191ccda73dd42ae884d4731b8/spine-ts/webgl/tests/test-additive-animation-blending.html for an example.
|
||||
* Added work-around for iOS WebKit JIT bug, see https://github.com/EsotericSoftware/spine-runtimes/commit/c28bbebf804980f55cdd773fed9ff145e0e7e76c
|
||||
|
||||
### WebGL backend
|
||||
* Added `VertexEffect` interface, instances of which can be set on `SkeletonRenderer`. Allows to modify vertices before submitting them to GPU. See `SwirlEffect`, `JitterEffect`, and the example which allows to set effects.
|
||||
* Added `slotRangeStart` and `slotRangeEnd` parameters to `SkeletonRenderer#draw` and `SceneRenderer#drawSkeleton`. This allows you to render only a range of slots in the draw order. See `spine-ts/webgl/tests/test-slot-range.html` for an example.
|
||||
* Added improved tint-black shader.
|
||||
* Added `SceneRenderer#drawTextureUV()`, allowing to draw a texture with manually specified texture coordinates.
|
||||
* Exposed all renderers in `SceneRenderer`.
|
||||
|
||||
### Canvas backend
|
||||
* Added support for shearing and non-uniform scaling inherited from parent bones.
|
||||
* Added support for alpha tinting.
|
||||
|
||||
### Three.js backend
|
||||
* Added `VertexEffect` interface, instances of which can be set on `SkeletonMesh`. Allows to modify vertices before submitting them to GPU. See `SwirlEffect`, `JitterEffect`.
|
||||
* Added support for multi-page atlases
|
||||
|
||||
### Widget backend
|
||||
* Added fields `atlasContent`, `atlasPagesContent`, and `jsonContent` to `WidgetConfiguration` allowing you to directly pass the contents of the `.atlas`, atlas page `.png` files, and the `.json` file without having to do a request. See `README.md` and the example for details.
|
||||
* `SpineWidget.setAnimation()` now takes an additional optional parameter for callbacks when animations are completed/interrupted/etc.
|
||||
|
||||
# 3.6
|
||||
|
||||
## AS3
|
||||
* **Breaking changes**
|
||||
* **Breaking changes**
|
||||
* Removed `Bone.worldToLocalRotationX` and `Bone.worldToLocalRotationY`. Replaced by `Bone.worldToLocalRotation` (rotation given relative to x-axis, counter-clockwise, in degrees).
|
||||
* Made `Bone` fields `_a`, `_b`, `_c`, `_d`, `_worldX` and `_worldY` public, removed underscore prefix.
|
||||
* Removed `VertexAttachment.computeWorldVertices` overload, changed `VertexAttachment.computeWorldVertices2` to `VertexAttachment.computeWorldVertices`, added `stride` parameter.
|
||||
@ -17,7 +154,7 @@
|
||||
* Replaced `r`, `g`, `b`, `a` fields with instances of new `Color` class in `RegionAttachment`, `MeshAttachment`, `Skeleton`, `SkeletonData`, `Slot` and `SlotData`.
|
||||
* The completion event will fire for looped 0 duration animations every frame.
|
||||
|
||||
* **Additions**
|
||||
* **Additions**
|
||||
* Added `Skeleton.getBounds` from reference implementation.
|
||||
* Added support for local and relative transform constraint calculation, including additional fields in `TransformConstraintData`
|
||||
* Added `Bone.localToWorldRotation`(rotation given relative to x-axis, counter-clockwise, in degrees).
|
||||
@ -38,7 +175,7 @@
|
||||
* Breaking change: if a skeleton requires two color tinting, you have to enable it via `SkeletonSprite.twoColorTint = true`. In this case the skeleton will use the `TwoColorMeshStyle`, which internally uses a different vertex layout and shader. This means that skeletons with two color tinting enabled will break batching and hence increase the number of draw calls in your app.
|
||||
|
||||
## C
|
||||
* **Breaking changes**
|
||||
* **Breaking changes**
|
||||
* `spVertexAttachment_computeWorldVertices` and `spRegionAttachment_computeWorldVerticeS` now take new parameters to make it possible to directly output the calculated vertex positions to a vertex buffer. Removes the need for additional copies in the backends' respective renderers.
|
||||
* Removed `spBoundingBoxAttachment_computeWorldVertices`, superseded by `spVertexAttachment_computeWorldVertices`.
|
||||
* Removed `spPathAttachment_computeWorldVertices` and `spPathAttachment_computeWorldVertices1`, superseded by `spVertexAttachment_computeWorldVertices`.
|
||||
@ -48,7 +185,7 @@
|
||||
* Removed `spVertexIndex`from public API.
|
||||
* Listeners on `spAnimationState` or `spTrackEntry` will now be also called in case a track entry is disposed as part of dispoing the `spAnimationState`.
|
||||
* The completion event will fire for looped 0 duration animations every frame.
|
||||
* **Additions**
|
||||
* **Additions**
|
||||
* Added support for local and relative transform constraint calculation, including additional fields in `spTransformConstraintData`.
|
||||
* Added `spPointAttachment`, additional method `spAtlasAttachmentLoadeR_newPointAttachment`.
|
||||
* Added support for local and relative transform constraint calculation, including additional fields in `TransformConstraintData`
|
||||
@ -167,7 +304,7 @@
|
||||
* Made `MeshBatcher` of SkeletonRenderer accessible via a getter. Allows user to batch their own geometry together with skeleton meshes for maximum batching instead of using XNA SpriteBatcher.
|
||||
|
||||
## Java
|
||||
* **Breaking changes**
|
||||
* **Breaking changes**
|
||||
* `Skeleton.getBounds` takes a scratch array as input so it doesn't have to allocate a new array on each invocation itself. Reduces GC activity.
|
||||
* Removed `Bone.worldToLocalRotationX` and `Bone.worldToLocalRotationY`. Replaced by `Bone.worldToLocalRotation` (rotation given relative to x-axis, counter-clockwise, in degrees).
|
||||
* Added `stride` parameter to `VertexAttachment.computeWorldVertices`.
|
||||
@ -177,7 +314,7 @@
|
||||
with the bone of the parent skeleton to which the child skeleton is attached. See `SkeletonAttachmentTest` for and example.
|
||||
* The completion event will fire for looped 0 duration animations every frame.
|
||||
|
||||
* **Additions**
|
||||
* **Additions**
|
||||
* Added support for local and relative transform constraint calculation, including additional fields in `TransformConstraintData`
|
||||
* Added `Bone.localToWorldRotation`(rotation given relative to x-axis, counter-clockwise, in degrees).
|
||||
* Added two color tinting support, including `TwoColorTimeline` and additional fields on `Slot` and `SlotData`.
|
||||
@ -194,7 +331,7 @@
|
||||
* Added `VertexEffect` interface, instances of which can be set on `SkeletonRenderer`. Allows to modify vertices before submitting them to GPU. See `SwirlEffect`, `JitterEffect` and `VertexEffectTest`.
|
||||
|
||||
## Lua
|
||||
* **Breaking changes**
|
||||
* **Breaking changes**
|
||||
* Removed `Bone:worldToLocalRotationX` and `Bone:worldToLocalRotationY`. Replaced by `Bone:worldToLocalRotation` (rotation given relative to x-axis, counter-clockwise, in degrees).
|
||||
* `VertexAttachment:computeWorldVertices` now takes offsets and stride to allow compositing vertices directly in a vertex buffer to be send to the GPU. The compositing is now performed in the backends' respective renderers. This also affects the subclasses `MeshAttachment`, `BoundingBoxAttachment` and `PathAttachment`.
|
||||
* Removed `RegionAttachment:updateWorldVertices`, added `RegionAttachment:computeWorldVertices`, which takes offsets and stride to allow compositing vertices directly in a vertex buffer to be send to the GPU. The compositing is now performed in the backends' respective renderers.
|
||||
@ -224,7 +361,7 @@
|
||||
* Added support for vertex effects. Set an implementation like "JitterEffect" on `SkeletonRenderer.vertexEffect`. See `main.lua` for an example
|
||||
|
||||
## Typescript/Javascript
|
||||
* **Breaking changes**
|
||||
* **Breaking changes**
|
||||
* `Skeleton.getBounds` takes a scratch array as input so it doesn't have to allocate a new array on each invocation itself. Reduces GC activity.
|
||||
* Removed `Bone.worldToLocalRotationX` and `Bone.worldToLocalRotationY`. Replaced by `Bone.worldToLocalRotation` (rotation given relative to x-axis, counter-clockwise, in degrees).
|
||||
* Removed `VertexAttachment.computeWorldVertices` overload, changed `VertexAttachment.computeWorldVerticesWith` to `VertexAttachment.computeWorldVertices`, added `stride` parameter.
|
||||
@ -232,7 +369,7 @@
|
||||
* Removed `RegionAttachment.updateWorldVertices`, added `RegionAttachment.computeWorldVertices`. The new method now computes the x/y positions of the 4 vertices of the corner and places them in the provided `worldVertices` array, starting at `offset`, then moving by `stride` array elements when advancing to the next vertex. This allows to directly compose the vertex buffer and avoids a copy. The computation of the full vertices, including vertex colors and texture coordinates, is now done by the backend's respective renderer.
|
||||
* The completion event will fire for looped 0 duration animations every frame.
|
||||
|
||||
* **Additions**
|
||||
* **Additions**
|
||||
* Added support for local and relative transform constraint calculation, including additional fields in `TransformConstraintData`
|
||||
* Added `Bone.localToWorldRotation`(rotation given relative to x-axis, counter-clockwise, in degrees).
|
||||
* Added two color tinting support, including `TwoColorTimeline` and additional fields on `Slot` and `SlotData`.
|
||||
|
||||
Binary file not shown.
@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
|
||||
|
||||
## Spine version
|
||||
|
||||
spine-csharp works with data exported from Spine 3.6.xx.
|
||||
spine-csharp works with data exported from Spine 3.7.xx.
|
||||
|
||||
spine-csharp supports all Spine features.
|
||||
|
||||
|
||||
@ -211,9 +211,9 @@ function TrackEntry:setTimelineData(to, mixingToArray, propertyIDs)
|
||||
local entry = mixingTo[ii]
|
||||
skip = false
|
||||
if not entry:hasTimeline(id) then
|
||||
if entry.mixDuration > 0 then
|
||||
if entry.mixDuration > 0 then
|
||||
timelineData[i] = DIP_MIX
|
||||
timelineDipMix[i] = entry
|
||||
timelineDipMix[i] = entry
|
||||
skip = true
|
||||
break
|
||||
end
|
||||
@ -293,7 +293,7 @@ function AnimationState:update (delta)
|
||||
current.delay = 0
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
if not skip then
|
||||
local _next = current.next
|
||||
if _next then
|
||||
@ -330,7 +330,7 @@ function AnimationState:update (delta)
|
||||
from = from.mixingFrom
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
current.trackTime = current.trackTime + currentDelta
|
||||
end
|
||||
end
|
||||
@ -344,8 +344,11 @@ function AnimationState:updateMixingFrom (to, delta)
|
||||
local from = to.mixingFrom
|
||||
if from == nil then return true end
|
||||
|
||||
local finished = self:updateMixingFrom(from, delta)
|
||||
|
||||
local finished = self:updateMixingFrom(from, delta)
|
||||
|
||||
from.animationLast = from.nextAnimationLast
|
||||
from.trackLast = from.nextTrackLast
|
||||
|
||||
-- Require mixTime > 0 to ensure the mixing from entry was applied at least once.
|
||||
if (to.mixTime > 0 and (to.mixTime >= to.mixDuration or to.timeScale == 0)) then
|
||||
-- Require totalAlpha == 0 to ensure mixing is complete, unless mixDuration == 0 (the transition is a single frame).
|
||||
@ -356,9 +359,7 @@ function AnimationState:updateMixingFrom (to, delta)
|
||||
end
|
||||
return finished
|
||||
end
|
||||
|
||||
from.animationLast = from.nextAnimationLast
|
||||
from.trackLast = from.nextTrackLast
|
||||
|
||||
from.trackTime = from.trackTime + delta * from.timeScale
|
||||
to.mixTime = to.mixTime + delta * to.timeScale
|
||||
return false;
|
||||
@ -376,13 +377,23 @@ function AnimationState:apply (skeleton)
|
||||
for i,current in pairs(tracks) do
|
||||
if not (current == nil or current.delay > 0) then
|
||||
applied = true
|
||||
<<<<<<< HEAD
|
||||
local blend = current.mixBlend
|
||||
if i == 0 then blend = MixBlend.first end
|
||||
|
||||
|
||||
-- Apply mixing from entries first.
|
||||
local mix = current.alpha
|
||||
if current.mixingFrom then
|
||||
if current.mixingFrom then
|
||||
mix = mix * self:applyMixingFrom(current, skeleton, blend)
|
||||
=======
|
||||
local currrentPose = MixPose.currentLayered
|
||||
if i == 0 then currentPose = MixPose.current end
|
||||
|
||||
-- Apply mixing from entries first.
|
||||
local mix = current.alpha
|
||||
if current.mixingFrom then
|
||||
mix = mix * self:applyMixingFrom(current, skeleton, currentPose)
|
||||
>>>>>>> 3.6
|
||||
elseif current.trackTime >= current.trackEnd and current.next == nil then
|
||||
mix = 0
|
||||
end
|
||||
@ -401,9 +412,15 @@ function AnimationState:apply (skeleton)
|
||||
local timelinesRotation = current.timelinesRotation
|
||||
|
||||
for i,timeline in ipairs(timelines) do
|
||||
<<<<<<< HEAD
|
||||
local timelineBlend = MixBlend.setup
|
||||
if timelineData[i] == SUBSEQUENT then timelineBlend = blend end
|
||||
|
||||
|
||||
=======
|
||||
local pose = MixPose.currentPose
|
||||
if timelineData[i] >= FIRST then pose = MixPose.setup end
|
||||
|
||||
>>>>>>> 3.6
|
||||
if timeline.type == Animation.TimelineType.rotate then
|
||||
self:applyRotateTimeline(timeline, skeleton, animationTime, mix, timelineBlend, timelinesRotation, i * 2,
|
||||
firstFrame) -- FIXME passing ii * 2, indexing correct?
|
||||
@ -446,18 +463,19 @@ function AnimationState:applyMixingFrom (to, skeleton, blend)
|
||||
local timelines = from.animation.timelines
|
||||
local alphaDip = from.alpha * to.interruptAlpha
|
||||
local alphaMix = alphaDip * (1 - mix)
|
||||
|
||||
|
||||
if blend == MixBlend.add then
|
||||
for i,timeline in ipairs(timelines) do
|
||||
timeline:apply(skeleton, animationLast, animationTime, events, alphaMix, blend, MixDirection.out)
|
||||
end
|
||||
<<<<<<< HEAD
|
||||
else
|
||||
local timelineData = from.timelineData
|
||||
local timelineDipMix = from.timelineDipMix
|
||||
|
||||
local firstFrame = #from.timelinesRotation == 0
|
||||
local timelinesRotation = from.timelinesRotation
|
||||
|
||||
|
||||
from.totalAlpha = 0;
|
||||
|
||||
for i,timeline in ipairs(timelines) do
|
||||
@ -475,12 +493,19 @@ function AnimationState:applyMixingFrom (to, skeleton, blend)
|
||||
elseif timelineData[i] == DIP then
|
||||
timelineBlend = MixBlend.setup
|
||||
alpha = alphaDip
|
||||
=======
|
||||
|
||||
if not skipSubsequent then
|
||||
from.totalAlpha = from.totalAlpha + alpha
|
||||
if timeline.type == Animation.TimelineType.rotate then
|
||||
self:applyRotateTimeline(timeline, skeleton, animationTime, alpha, pose, timelinesRotation, i * 2, firstFrame)
|
||||
>>>>>>> 3.6
|
||||
else
|
||||
timelineBlend = MixBlend.setup
|
||||
local dipMix = timelineDipMix[i]
|
||||
alpha = alphaDip * math_max(0, 1 - dipMix.mixtime / dipMix.mixDuration)
|
||||
end
|
||||
|
||||
|
||||
if not skipSubsequent then
|
||||
from.totalAlpha = from.totalAlpha + alpha
|
||||
if timeline.type == Animation.TimelineType.rotate then
|
||||
@ -500,12 +525,17 @@ function AnimationState:applyMixingFrom (to, skeleton, blend)
|
||||
return mix
|
||||
end
|
||||
|
||||
<<<<<<< HEAD
|
||||
function AnimationState:applyRotateTimeline (timeline, skeleton, time, alpha, blend, timelinesRotation, i, firstFrame)
|
||||
if firstFrame then
|
||||
if firstFrame then
|
||||
=======
|
||||
function AnimationState:applyRotateTimeline (timeline, skeleton, time, alpha, pose, timelinesRotation, i, firstFrame)
|
||||
if firstFrame then
|
||||
>>>>>>> 3.6
|
||||
timelinesRotation[i] = 0
|
||||
timelinesRotation[i+1] = 0
|
||||
end
|
||||
|
||||
|
||||
if alpha == 1 then
|
||||
timeline:apply(skeleton, 0, time, nil, 1, blend, MixDirection._in)
|
||||
return
|
||||
@ -593,7 +623,7 @@ function AnimationState:queueEvents (entry, animationTime)
|
||||
|
||||
-- Queue complete if completed a loop iteration or the animation.
|
||||
local queueComplete = false
|
||||
if entry.loop then
|
||||
if entry.loop then
|
||||
queueComplete = duration == 0 or (trackLastWrapped > entry.trackTime % duration)
|
||||
else
|
||||
queueComplete = (animationTime >= animationEnd and entry.animationLast < animationEnd)
|
||||
@ -659,11 +689,11 @@ function AnimationState:setCurrent (index, current, interrupt)
|
||||
if interrupt then queue:interrupt(from) end
|
||||
current.mixingFrom = from
|
||||
current.mixTime = 0
|
||||
|
||||
|
||||
if from.mixingFrom and from.mixDuration > 0 then
|
||||
current.interruptAlpha = current.interruptAlpha * math_min(1, from.mixTime / from.mixDuration)
|
||||
end
|
||||
|
||||
|
||||
from.timelinesRotation = {};
|
||||
end
|
||||
|
||||
@ -720,7 +750,7 @@ function AnimationState:addAnimation (trackIndex, animation, loop, delay)
|
||||
local entry = self:trackEntry(trackIndex, animation, loop, last)
|
||||
local queue = self.queue
|
||||
local data = self.data
|
||||
|
||||
|
||||
if not last then
|
||||
self:setCurrent(trackIndex, entry, true)
|
||||
queue:drain()
|
||||
@ -795,7 +825,7 @@ function AnimationState:trackEntry (trackIndex, animation, loop, last)
|
||||
entry.trackTime = 0
|
||||
entry.trackLast = -1
|
||||
entry.nextTrackLast = -1
|
||||
entry.trackEnd = 999999999
|
||||
entry.trackEnd = 999999999
|
||||
entry.timeScale = 1
|
||||
|
||||
entry.alpha = 1
|
||||
@ -817,7 +847,7 @@ function AnimationState:disposeNext (entry)
|
||||
queue:dispose(_next)
|
||||
_next = _next.next
|
||||
end
|
||||
entry.next = nil
|
||||
entry.next = nil
|
||||
end
|
||||
|
||||
function AnimationState:_animationsChanged ()
|
||||
@ -826,10 +856,15 @@ function AnimationState:_animationsChanged ()
|
||||
self.propertyIDs = {}
|
||||
local propertyIDs = self.propertyIDs
|
||||
local mixingTo = self.mixingTo
|
||||
|
||||
|
||||
for i, entry in pairs(self.tracks) do
|
||||
<<<<<<< HEAD
|
||||
if entry and (i == 0 or entry.mixBlend ~= MixBlend.add) then
|
||||
entry:setTimelineData(nil, mixingTo, propertyIDs)
|
||||
entry:setTimelineData(nil, mixingTo, propertyIDs)
|
||||
=======
|
||||
if entry then
|
||||
entry:setTimelineData(nil, mixingTo, propertyIDs)
|
||||
>>>>>>> 3.6
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -5536,6 +5536,7 @@ GameObject:
|
||||
- component: {fileID: 1204355832}
|
||||
- component: {fileID: 1204355833}
|
||||
- component: {fileID: 1204355834}
|
||||
- component: {fileID: 1204355835}
|
||||
m_Layer: 9
|
||||
m_Name: Player
|
||||
m_TagString: Untagged
|
||||
@ -5598,6 +5599,7 @@ MonoBehaviour:
|
||||
forceCrouchVelocity: 30
|
||||
forceCrouchDuration: 0.4
|
||||
skeletonAnimation: {fileID: 658011011}
|
||||
transitions: {fileID: 1204355835}
|
||||
walk: {fileID: 11400000, guid: 096b05b71bb32cb409c1c8fd233b7ac3, type: 2}
|
||||
run: {fileID: 11400000, guid: cc83238c61de380499565292bef7ada4, type: 2}
|
||||
idle: {fileID: 11400000, guid: 8e32f0310bb5c02488c5c002dd41e7cb, type: 2}
|
||||
@ -5627,6 +5629,27 @@ MonoBehaviour:
|
||||
basePitch: 1
|
||||
randomPitchOffset: 0.2
|
||||
logDebugMessage: 0
|
||||
--- !u!114 &1204355835
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1204355830}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 69a52bf79b7e78e4cb1dfd2d2e698c2d, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
transitions:
|
||||
- from: {fileID: 11400000, guid: 29c1381a00cfb2c4d996f2a02fcc4506, type: 2}
|
||||
to: {fileID: 11400000, guid: cc83238c61de380499565292bef7ada4, type: 2}
|
||||
transition: {fileID: 11400000, guid: fcca5e996ae24ba43baaaadef1fb6ad9, type: 2}
|
||||
- from: {fileID: 11400000, guid: 29c1381a00cfb2c4d996f2a02fcc4506, type: 2}
|
||||
to: {fileID: 11400000, guid: 8e32f0310bb5c02488c5c002dd41e7cb, type: 2}
|
||||
transition: {fileID: 11400000, guid: 714e39dce7285c145bdf142c38ef9a9b, type: 2}
|
||||
- from: {fileID: 11400000, guid: 29c1381a00cfb2c4d996f2a02fcc4506, type: 2}
|
||||
to: {fileID: 11400000, guid: 25961ff211f6f3947be85f8aab3f2630, type: 2}
|
||||
transition: {fileID: 11400000, guid: 6c587772a6f7df94b934b353291c008c, type: 2}
|
||||
--- !u!1 &1217440894
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@ -108,6 +108,83 @@ NavMeshSettings:
|
||||
tileSize: 256
|
||||
accuratePlacement: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &92207858
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 92207862}
|
||||
- component: {fileID: 92207861}
|
||||
- component: {fileID: 92207860}
|
||||
m_Layer: 5
|
||||
m_Name: 3 Canvas - Spawn SkeletonGraphic Sample
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &92207860
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 92207858}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UiScaleMode: 1
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 1920, y: 1080}
|
||||
m_ScreenMatchMode: 0
|
||||
m_MatchWidthOrHeight: 0
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
m_DynamicPixelsPerUnit: 1
|
||||
--- !u!223 &92207861
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 92207858}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 0
|
||||
m_Camera: {fileID: 0}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_AdditionalShaderChannelsFlag: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 0
|
||||
m_TargetDisplay: 0
|
||||
--- !u!224 &92207862
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 92207858}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||
m_Children:
|
||||
- {fileID: 1691562007}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 3
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0, y: 0}
|
||||
--- !u!1 &433620963
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -224,11 +301,11 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: bb0837af7345d504db63d0c662fd12dc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
skeletonJson: {fileID: 4900000, guid: 8160b67e4c41bd041b948b5e5a86e242, type: 3}
|
||||
atlasText: {fileID: 4900000, guid: 9b2378ddc54f1c94fb80411958000a8c, type: 3}
|
||||
skeletonJson: {fileID: 4900000, guid: e3b64d7eaf0de4e45a00b7065166554d, type: 3}
|
||||
atlasText: {fileID: 4900000, guid: 5c0a5c36970a46e4d8378760ab4a4cfc, type: 3}
|
||||
textures:
|
||||
- {fileID: 2800000, guid: 4ea2c33e839afb34c98f66e892b3b2d2, type: 3}
|
||||
materialPropertySource: {fileID: 2100000, guid: f89bbf05902e77242a3ad20f3c927353,
|
||||
- {fileID: 2800000, guid: 49bb65eefe08e424bbf7a38bc98ec638, type: 3}
|
||||
materialPropertySource: {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d,
|
||||
type: 2}
|
||||
--- !u!4 &651278530
|
||||
Transform:
|
||||
@ -243,6 +320,56 @@ Transform:
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1691562006
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 1691562007}
|
||||
- component: {fileID: 1691562008}
|
||||
m_Layer: 5
|
||||
m_Name: SkeletonGraphic GameObject
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1691562007
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1691562006}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 92207862}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 647, y: -252}
|
||||
m_SizeDelta: {x: 401, y: 394}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1691562008
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1691562006}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 53c7df9ccd5732543bcd589e8270ba1c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
skeletonDataAsset: {fileID: 11400000, guid: a467507a4ffb1d542a558739b2fede77, type: 2}
|
||||
startingAnimation: run
|
||||
startingSkin: base
|
||||
skeletonGraphicMaterial: {fileID: 2100000, guid: b66cf7a186d13054989b33a5c90044e4,
|
||||
type: 2}
|
||||
--- !u!1 &1807176298
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@ -10,7 +10,7 @@ namespace Spine.Unity.Examples {
|
||||
public Texture2D[] textures;
|
||||
public Material materialPropertySource;
|
||||
|
||||
AtlasAsset runtimeAtlasAsset;
|
||||
SpineAtlasAsset runtimeAtlasAsset;
|
||||
SkeletonDataAsset runtimeSkeletonDataAsset;
|
||||
SkeletonAnimation runtimeSkeletonAnimation;
|
||||
|
||||
@ -19,7 +19,7 @@ namespace Spine.Unity.Examples {
|
||||
// 2. Create SkeletonDataAsset (needs json or binary asset file, and an AtlasAsset)
|
||||
// 3. Create SkeletonAnimation (needs a valid SkeletonDataAsset)
|
||||
|
||||
runtimeAtlasAsset = AtlasAsset.CreateRuntimeInstance(atlasText, textures, materialPropertySource, true);
|
||||
runtimeAtlasAsset = SpineAtlasAsset.CreateRuntimeInstance(atlasText, textures, materialPropertySource, true);
|
||||
runtimeSkeletonDataAsset = SkeletonDataAsset.CreateRuntimeInstance(skeletonJson, runtimeAtlasAsset, true);
|
||||
}
|
||||
|
||||
|
||||
@ -32,6 +32,7 @@ using UnityEngine;
|
||||
using Spine.Unity;
|
||||
|
||||
namespace Spine.Unity.Examples {
|
||||
|
||||
[RequireComponent(typeof(CharacterController))]
|
||||
public class BasicPlatformerController : MonoBehaviour {
|
||||
|
||||
@ -56,6 +57,7 @@ namespace Spine.Unity.Examples {
|
||||
public SkeletonAnimation skeletonAnimation;
|
||||
|
||||
[Header("Animation")]
|
||||
public TransitionDictionaryExample transitions;
|
||||
public AnimationReferenceAsset walk;
|
||||
public AnimationReferenceAsset run;
|
||||
public AnimationReferenceAsset idle;
|
||||
@ -149,6 +151,7 @@ namespace Spine.Unity.Examples {
|
||||
controller.Move(velocity * dt);
|
||||
|
||||
// Animation
|
||||
// Determine target animation.
|
||||
if (isGrounded) {
|
||||
if (doCrouch) {
|
||||
targetAnimation = crouch;
|
||||
@ -162,17 +165,23 @@ namespace Spine.Unity.Examples {
|
||||
targetAnimation = velocity.y > 0 ? jump : fall;
|
||||
}
|
||||
|
||||
|
||||
// Handle change in target animation.
|
||||
if (previousTargetAnimation != targetAnimation) {
|
||||
if (targetAnimation == run && previousTargetAnimation == fall) {
|
||||
skeletonAnimation.AnimationState.SetAnimation(0, runFromFall, false);
|
||||
skeletonAnimation.AnimationState.AddAnimation(0, run, true, 0f);
|
||||
Animation transition = null;
|
||||
if (transitions != null && previousTargetAnimation != null) {
|
||||
transition = transitions.GetTransition(previousTargetAnimation, targetAnimation);
|
||||
}
|
||||
|
||||
if (transition != null) {
|
||||
skeletonAnimation.AnimationState.SetAnimation(0, transition, false).MixDuration = 0.05f;
|
||||
skeletonAnimation.AnimationState.AddAnimation(0, targetAnimation, true, 0f);
|
||||
} else {
|
||||
skeletonAnimation.AnimationState.SetAnimation(0, targetAnimation, true);
|
||||
}
|
||||
}
|
||||
previousTargetAnimation = targetAnimation;
|
||||
|
||||
// Face intended direction.
|
||||
if (input.x != 0)
|
||||
skeletonAnimation.Skeleton.FlipX = input.x < 0;
|
||||
|
||||
|
||||
@ -0,0 +1,35 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Spine.Unity.Examples {
|
||||
|
||||
// This is an example of how you could store animation transitions for use in your animation system.
|
||||
// More ideally, this would be stored in a ScriptableObject in asset form rather than in a MonoBehaviour.
|
||||
public sealed class TransitionDictionaryExample : MonoBehaviour {
|
||||
|
||||
[System.Serializable]
|
||||
public struct SerializedEntry {
|
||||
public AnimationReferenceAsset from;
|
||||
public AnimationReferenceAsset to;
|
||||
public AnimationReferenceAsset transition;
|
||||
}
|
||||
|
||||
[SerializeField]
|
||||
List<SerializedEntry> transitions = new List<SerializedEntry>();
|
||||
readonly Dictionary<AnimationStateData.AnimationPair, Animation> dictionary = new Dictionary<AnimationStateData.AnimationPair, Animation>();
|
||||
|
||||
void Start () {
|
||||
dictionary.Clear();
|
||||
foreach (var e in transitions) {
|
||||
dictionary.Add(new AnimationStateData.AnimationPair(e.from.Animation, e.to.Animation), e.transition.Animation);
|
||||
}
|
||||
}
|
||||
|
||||
public Animation GetTransition (Animation from, Animation to) {
|
||||
Animation result;
|
||||
dictionary.TryGetValue(new AnimationStateData.AnimationPair(from, to), out result);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 69a52bf79b7e78e4cb1dfd2d2e698c2d
|
||||
timeCreated: 1524024687
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -44,7 +44,7 @@ namespace Spine.Unity.Examples {
|
||||
collectedSkin.Append(equipsSkin);
|
||||
|
||||
// 2. Create a repacked skin.
|
||||
var repackedSkin = collectedSkin.GetRepackedSkin("Repacked skin", skeletonAnimation.SkeletonDataAsset.atlasAssets[0].materials[0], out runtimeMaterial, out runtimeAtlas);
|
||||
var repackedSkin = collectedSkin.GetRepackedSkin("Repacked skin", skeletonAnimation.SkeletonDataAsset.atlasAssets[0].PrimaryMaterial, out runtimeMaterial, out runtimeAtlas);
|
||||
collectedSkin.Clear();
|
||||
|
||||
// 3. Use the repacked skin.
|
||||
|
||||
@ -67,7 +67,7 @@ namespace Spine.Unity.Examples {
|
||||
if (sourceMaterial == null) {
|
||||
var skeletonAnimation = GetComponent<SkeletonAnimation>();
|
||||
if (skeletonAnimation != null)
|
||||
sourceMaterial = skeletonAnimation.SkeletonDataAsset.atlasAssets[0].materials[0];
|
||||
sourceMaterial = skeletonAnimation.SkeletonDataAsset.atlasAssets[0].PrimaryMaterial;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -66,7 +66,7 @@ namespace Spine.Unity.Examples {
|
||||
if (sourceMaterial == null) {
|
||||
var skeletonGraphic = GetComponent<SkeletonGraphic>();
|
||||
if (skeletonGraphic != null)
|
||||
sourceMaterial = skeletonGraphic.SkeletonDataAsset.atlasAssets[0].materials[0];
|
||||
sourceMaterial = skeletonGraphic.SkeletonDataAsset.atlasAssets[0].PrimaryMaterial;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -44,7 +44,7 @@ namespace Spine.Unity.Modules {
|
||||
[SpineAtlasRegion] public string region;
|
||||
}
|
||||
|
||||
[SerializeField] protected AtlasAsset atlasAsset;
|
||||
[SerializeField] protected SpineAtlasAsset atlasAsset;
|
||||
[SerializeField] protected bool inheritProperties = true;
|
||||
[SerializeField] protected List<SlotRegionPair> attachments = new List<SlotRegionPair>();
|
||||
|
||||
|
||||
@ -56,7 +56,7 @@ namespace Spine.Unity.Examples {
|
||||
if (skeletonRenderer == null) return;
|
||||
var skeleton = skeletonRenderer.skeleton; if (skeleton == null) return;
|
||||
|
||||
fillAnimation.Animation.Apply(skeleton, 0, percent, false, null, 1f, MixPose.Setup, MixDirection.In);
|
||||
fillAnimation.Animation.Apply(skeleton, 0, percent, false, null, 1f, MixBlend.Setup, MixDirection.In);
|
||||
|
||||
skeleton.Update(Time.deltaTime);
|
||||
skeleton.UpdateWorldTransform();
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6bc52290ef03f2846ba38d67e2823598
|
||||
timeCreated: 1497481082
|
||||
timeCreated: 1528393443
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName:
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 12c126994123f12468cf4c5a2684078a
|
||||
timeCreated: 1497481081
|
||||
timeCreated: 1528393443
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName:
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 49441e5a1682e564694545bd9b509785
|
||||
timeCreated: 1487920372
|
||||
timeCreated: 1528393443
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ddb89f63d0296cf4f8572b0448bb6b30
|
||||
timeCreated: 1487920373
|
||||
timeCreated: 1528393444
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName:
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 57b57f94df266f94ea0981915a4472e1
|
||||
timeCreated: 1487920372
|
||||
timeCreated: 1528393443
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a11301aad15ed6b4995485a02a81b132
|
||||
timeCreated: 1487920373
|
||||
timeCreated: 1528393443
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5fb7efec30c79cb46a705e0d04debb04
|
||||
timeCreated: 1487920372
|
||||
timeCreated: 1528393443
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,15 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 6e3e95a05e4c9774397eeeb7bdee8ccb, type: 3}
|
||||
m_Name: crouch-from fall
|
||||
m_EditorClassIdentifier:
|
||||
skeletonDataAsset: {fileID: 11400000, guid: 2f899e95232e6144786de8fb99678a8d, type: 2}
|
||||
animationName: crouch-from fall
|
||||
@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6c587772a6f7df94b934b353291c008c
|
||||
timeCreated: 1524037841
|
||||
licenseType: Free
|
||||
NativeFormatImporter:
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,15 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 6e3e95a05e4c9774397eeeb7bdee8ccb, type: 3}
|
||||
m_Name: idle-from fall
|
||||
m_EditorClassIdentifier:
|
||||
skeletonDataAsset: {fileID: 11400000, guid: 2f899e95232e6144786de8fb99678a8d, type: 2}
|
||||
animationName: idle-from fall
|
||||
@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 714e39dce7285c145bdf142c38ef9a9b
|
||||
timeCreated: 1524037841
|
||||
licenseType: Free
|
||||
NativeFormatImporter:
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,146 +0,0 @@
|
||||
|
||||
hero-mesh.png
|
||||
size: 1024,256
|
||||
format: RGBA8888
|
||||
filter: Linear,Linear
|
||||
repeat: none
|
||||
body
|
||||
rotate: false
|
||||
xy: 324, 81
|
||||
size: 97, 95
|
||||
orig: 97, 95
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
cape
|
||||
rotate: false
|
||||
xy: 176, 88
|
||||
size: 146, 159
|
||||
orig: 146, 159
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
eyes
|
||||
rotate: false
|
||||
xy: 604, 216
|
||||
size: 82, 31
|
||||
orig: 82, 31
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
fingers
|
||||
rotate: false
|
||||
xy: 877, 214
|
||||
size: 31, 33
|
||||
orig: 31, 33
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
foot1
|
||||
rotate: false
|
||||
xy: 743, 205
|
||||
size: 50, 42
|
||||
orig: 50, 42
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
foot2
|
||||
rotate: false
|
||||
xy: 688, 209
|
||||
size: 53, 38
|
||||
orig: 53, 38
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
forearm1
|
||||
rotate: false
|
||||
xy: 795, 198
|
||||
size: 41, 49
|
||||
orig: 41, 49
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
forearm2
|
||||
rotate: false
|
||||
xy: 910, 215
|
||||
size: 31, 32
|
||||
orig: 31, 32
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
hand1
|
||||
rotate: false
|
||||
xy: 838, 199
|
||||
size: 37, 48
|
||||
orig: 37, 48
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
hand2
|
||||
rotate: false
|
||||
xy: 286, 49
|
||||
size: 31, 37
|
||||
orig: 31, 37
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
head
|
||||
rotate: false
|
||||
xy: 2, 74
|
||||
size: 172, 173
|
||||
orig: 172, 173
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
mantles
|
||||
rotate: false
|
||||
xy: 2, 17
|
||||
size: 136, 55
|
||||
orig: 136, 55
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
mouth
|
||||
rotate: false
|
||||
xy: 2, 2
|
||||
size: 61, 13
|
||||
orig: 61, 13
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
shin1
|
||||
rotate: false
|
||||
xy: 482, 119
|
||||
size: 53, 57
|
||||
orig: 53, 57
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
shin2
|
||||
rotate: false
|
||||
xy: 192, 32
|
||||
size: 51, 54
|
||||
orig: 51, 54
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
sword
|
||||
rotate: false
|
||||
xy: 324, 178
|
||||
size: 216, 69
|
||||
orig: 216, 69
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
thigh1
|
||||
rotate: false
|
||||
xy: 542, 184
|
||||
size: 60, 63
|
||||
orig: 60, 63
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
thigh2
|
||||
rotate: false
|
||||
xy: 423, 112
|
||||
size: 57, 64
|
||||
orig: 57, 64
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
upperarm1
|
||||
rotate: false
|
||||
xy: 140, 16
|
||||
size: 50, 56
|
||||
orig: 50, 56
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
upperarm2
|
||||
rotate: false
|
||||
xy: 245, 27
|
||||
size: 39, 59
|
||||
orig: 39, 59
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
@ -1,4 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0517c1f3a6aec5740aad7827a823c3db
|
||||
TextScriptImporter:
|
||||
userData:
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,4 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1d300d9a4480c99409d838b49f344f7a
|
||||
TextScriptImporter:
|
||||
userData:
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 126 KiB |
@ -1,348 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8d970daea81f33648ae2d84ab59c88d4
|
||||
timeCreated: 1487920373
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName:
|
||||
21300000: body
|
||||
21300002: cape
|
||||
21300004: eyes
|
||||
21300006: fingers
|
||||
21300008: foot1
|
||||
21300010: foot2
|
||||
21300012: forearm1
|
||||
21300014: forearm2
|
||||
21300016: hand1
|
||||
21300018: hand2
|
||||
21300020: head
|
||||
21300022: mantles
|
||||
21300024: mouth
|
||||
21300026: shin1
|
||||
21300028: shin2
|
||||
21300030: sword
|
||||
21300032: thigh1
|
||||
21300034: thigh2
|
||||
21300036: upperarm1
|
||||
21300038: upperarm2
|
||||
serializedVersion: 4
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 1
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -3
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
filterMode: 2
|
||||
aniso: 7
|
||||
mipBias: -1
|
||||
wrapMode: -1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: body
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 324
|
||||
y: 80
|
||||
width: 97
|
||||
height: 95
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: cape
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 176
|
||||
y: 9
|
||||
width: 146
|
||||
height: 159
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: eyes
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 604
|
||||
y: 9
|
||||
width: 82
|
||||
height: 31
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: fingers
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 877
|
||||
y: 9
|
||||
width: 31
|
||||
height: 33
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: foot1
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 743
|
||||
y: 9
|
||||
width: 50
|
||||
height: 42
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: foot2
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 688
|
||||
y: 9
|
||||
width: 53
|
||||
height: 38
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: forearm1
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 795
|
||||
y: 9
|
||||
width: 41
|
||||
height: 49
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: forearm2
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 910
|
||||
y: 9
|
||||
width: 31
|
||||
height: 32
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: hand1
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 838
|
||||
y: 9
|
||||
width: 37
|
||||
height: 48
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: hand2
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 286
|
||||
y: 170
|
||||
width: 31
|
||||
height: 37
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: head
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 2
|
||||
y: 9
|
||||
width: 172
|
||||
height: 173
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: mantles
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 2
|
||||
y: 184
|
||||
width: 136
|
||||
height: 55
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: mouth
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 2
|
||||
y: 241
|
||||
width: 61
|
||||
height: 13
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: shin1
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 482
|
||||
y: 80
|
||||
width: 53
|
||||
height: 57
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: shin2
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 192
|
||||
y: 170
|
||||
width: 51
|
||||
height: 54
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: sword
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 324
|
||||
y: 9
|
||||
width: 216
|
||||
height: 69
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: thigh1
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 542
|
||||
y: 9
|
||||
width: 60
|
||||
height: 63
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: thigh2
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 423
|
||||
y: 80
|
||||
width: 57
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: upperarm1
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 140
|
||||
y: 184
|
||||
width: 50
|
||||
height: 56
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
- serializedVersion: 2
|
||||
name: upperarm2
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 245
|
||||
y: 170
|
||||
width: 39
|
||||
height: 59
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
tessellationDetail: -1
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,16 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a6b194f808b1af6499c93410e504af42, type: 3}
|
||||
m_Name: hero-mesh_Atlas
|
||||
m_EditorClassIdentifier:
|
||||
atlasFile: {fileID: 4900000, guid: 0517c1f3a6aec5740aad7827a823c3db, type: 3}
|
||||
materials:
|
||||
- {fileID: 2100000, guid: b04b8c6e4c57e78449f243c27617a2cd, type: 2}
|
||||
@ -1,4 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 54d41b08afeefd44292ae69c4a235aa9
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
@ -1,26 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name: hero-mesh_Material
|
||||
m_Shader: {fileID: 4800000, guid: 1e8a610c9e01c3648bac42585e5fc676, type: 3}
|
||||
m_ShaderKeywords:
|
||||
m_LightmapFlags: 5
|
||||
m_EnableInstancingVariants: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 8d970daea81f33648ae2d84ab59c88d4, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _Cutoff: 0.1
|
||||
m_Colors: []
|
||||
@ -1,4 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b04b8c6e4c57e78449f243c27617a2cd
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
@ -1,22 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f1b3b4b945939a54ea0b23d3396115fb, type: 3}
|
||||
m_Name: hero-mesh_SkeletonData
|
||||
m_EditorClassIdentifier:
|
||||
atlasAssets:
|
||||
- {fileID: 11400000, guid: 54d41b08afeefd44292ae69c4a235aa9, type: 2}
|
||||
skeletonJSON: {fileID: 4900000, guid: 1d300d9a4480c99409d838b49f344f7a, type: 3}
|
||||
scale: 0.01
|
||||
fromAnimation: []
|
||||
toAnimation: []
|
||||
duration: []
|
||||
defaultMix: 0.15
|
||||
controller: {fileID: 9100000, guid: 867430a8599276b4e901c8f84e1bf590, type: 2}
|
||||
@ -1,4 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a5967d74cd1f3c741ba7758da7511bcf
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
@ -1,5 +1,5 @@
|
||||
{
|
||||
"skeleton": { "hash": "mauCmoWXsF/sxcWz9xpFeFD3IWE", "spine": "3.6.52", "width": 318.76, "height": 333.69, "images": "./images/" },
|
||||
"skeleton": { "hash": "cZE5xSgB1kk9tBYY7DbJg04k4oo", "spine": "3.6.52", "width": 318.76, "height": 333.69, "images": "./images/" },
|
||||
"bones": [
|
||||
{ "name": "root" },
|
||||
{ "name": "hip", "parent": "root", "y": 94.89 },
|
||||
@ -113,7 +113,7 @@
|
||||
"cape": {
|
||||
"type": "mesh",
|
||||
"uvs": [ 0.12981, 0.04146, 0.25, 0, 0.5, 0, 0.75, 0, 1, 0, 0.94074, 0.25, 0.90405, 0.5, 0.9097, 0.75259, 0.82337, 1, 0.55644, 1, 0.28104, 1, 0, 1, 0, 0.75518, 0.02822, 0.5, 0.05926, 0.25, 0.25, 0.25, 0.25, 0.5, 0.25, 0.75, 0.5, 0.25, 0.5, 0.5, 0.5, 0.75, 0.75, 0.25, 0.75, 0.5, 0.75, 0.75 ],
|
||||
"triangles": [ 20, 22, 23, 23, 6, 7, 12, 13, 17, 11, 12, 17, 10, 17, 20, 11, 17, 10, 9, 20, 23, 10, 20, 9, 8, 23, 7, 9, 23, 8, 13, 16, 17, 17, 19, 20, 14, 15, 16, 13, 14, 16, 16, 18, 19, 19, 21, 22, 17, 16, 19, 20, 19, 22, 23, 22, 6, 0, 1, 15, 14, 0, 15, 15, 2, 18, 18, 3, 21, 16, 15, 18, 19, 18, 21, 6, 22, 21, 5, 6, 21, 15, 1, 2, 18, 2, 3, 5, 21, 3, 4, 5, 3 ],
|
||||
"triangles": [ 9, 23, 8, 8, 23, 7, 10, 20, 9, 9, 20, 23, 11, 17, 10, 10, 17, 20, 11, 12, 17, 12, 13, 17, 23, 6, 7, 20, 22, 23, 17, 19, 20, 13, 16, 17, 23, 22, 6, 20, 19, 22, 17, 16, 19, 19, 21, 22, 16, 18, 19, 13, 14, 16, 14, 15, 16, 5, 6, 21, 6, 22, 21, 19, 18, 21, 16, 15, 18, 18, 3, 21, 15, 2, 18, 14, 0, 15, 0, 1, 15, 4, 5, 3, 5, 21, 3, 18, 2, 3, 15, 1, 2 ],
|
||||
"vertices": [ 2, 8, -71.4, 10.27, 0.46605, 9, -9.14, -72.4, 0.53395, 2, 8, -47.49, 12.58, 0.68358, 9, -16.74, -49.61, 0.31642, 1, 8, -10.99, 12.58, 1, 1, 8, 25.51, 12.58, 1, 1, 8, 62.01, 12.58, 1, 5, 8, 62.01, -27.17, 0.46828, 9, -2.5, 66, 0.34919, 10, -29.05, 67.27, 0.138, 11, -57.05, 68.87, 0.03803, 12, -83.31, 76.26, 0.0065, 5, 8, 62.01, -66.92, 0.10394, 9, 36.24, 74.9, 0.24994, 10, 10.02, 74.62, 0.32222, 11, -17.78, 74.99, 0.22167, 12, -43.65, 78.98, 0.10223, 5, 8, 62.01, -106.67, 0.00722, 9, 74.98, 83.79, 0.07037, 10, 49.08, 81.98, 0.23465, 11, 21.5, 81.12, 0.35567, 12, -3.99, 81.7, 0.3321, 4, 9, 121.89, 57.11, 6.9E-4, 10, 94.9, 53.47, 0.03735, 11, 66.4, 51.18, 0.18594, 12, 38.16, 48, 0.77603, 3, 10, 101.65, 17.6, 1.9E-4, 11, 72.02, 15.12, 0.00661, 12, 40.66, 11.59, 0.9932, 2, 11, 77.65, -20.95, 0.05302, 12, 43.16, -24.83, 0.94698, 3, 10, 115.17, -54.14, 0.00351, 11, 83.27, -57.01, 0.13965, 12, 45.65, -61.24, 0.85684, 4, 9, 107.66, -58.5, 0.02404, 10, 76.1, -61.49, 0.08883, 11, 44, -63.14, 0.31703, 12, 5.99, -63.96, 0.5701, 5, 8, -83.99, -66.92, 0.00249, 9, 68.91, -67.4, 0.18233, 10, 37.04, -68.85, 0.31987, 11, 4.72, -69.26, 0.35135, 12, -33.66, -66.68, 0.14396, 5, 8, -80.24, -27.03, 0.05345, 9, 29.2, -72.66, 0.47788, 10, -2.85, -72.54, 0.33484, 11, -35.26, -71.7, 0.12468, 12, -73.71, -65.66, 0.00914, 5, 8, -47.49, -27.17, 0.04861, 9, 22, -40.72, 0.52446, 10, -8.78, -40.34, 0.34709, 11, -40.18, -39.32, 0.07736, 12, -75.82, -32.98, 0.00247, 4, 9, 60.75, -31.82, 0.12715, 10, 30.28, -32.98, 0.45018, 11, -0.9, -33.2, 0.37755, 12, -36.16, -30.26, 0.04512, 4, 9, 99.49, -22.93, 0.00853, 10, 69.35, -25.62, 0.04332, 11, 38.37, -27.07, 0.37472, 12, 3.5, -27.54, 0.57343, 1, 9, 13.84, -5.15, 1, 2, 10, 23.53, 2.89, 0.74117, 11, -6.53, 2.87, 0.25883, 3, 10, 62.59, 10.24, 0.01793, 11, 32.75, 8.99, 0.48072, 12, 1, 8.87, 0.50135, 5, 8, 25.51, -27.17, 0.37653, 9, 5.67, 30.43, 0.49808, 10, -22.29, 31.4, 0.10749, 11, -51.43, 32.8, 0.01629, 12, -80.81, 39.85, 0.00161, 5, 8, 25.51, -66.92, 0.05159, 9, 44.41, 39.32, 0.27361, 10, 16.77, 38.76, 0.45122, 11, -12.15, 38.93, 0.18087, 12, -41.15, 42.57, 0.04271, 5, 8, 25.51, -106.67, 1.7E-4, 9, 83.15, 48.22, 0.01709, 10, 55.83, 46.11, 0.12239, 11, 27.12, 45.06, 0.35747, 12, -1.49, 45.29, 0.50288 ],
|
||||
"hull": 15,
|
||||
"edges": [ 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 28, 28, 0, 14, 16 ],
|
||||
@ -930,24 +930,396 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"fall": {
|
||||
"crouch-from fall": {
|
||||
"bones": {
|
||||
"right-ground": {
|
||||
"upper-arm2": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 22.23 },
|
||||
{ "time": 0.0333, "angle": 6.7 },
|
||||
{ "time": 0.5333, "angle": 30.8 },
|
||||
{ "time": 1.0333, "angle": 38.04 }
|
||||
]
|
||||
},
|
||||
"body": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 2.71 },
|
||||
{
|
||||
"time": 0.0667,
|
||||
"angle": -20.15,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.5333,
|
||||
"angle": -11.54,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 1.0333, "angle": -15.51 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 13.16, "y": 7.94 },
|
||||
{ "time": 0.3333, "x": 13.83, "y": 12.64 },
|
||||
{ "time": 0.6, "x": 13.56, "y": 16.8 },
|
||||
{ "time": 0.8, "x": 10.68, "y": 4.32 },
|
||||
{ "time": 1, "x": 13.16, "y": 7.94 }
|
||||
{ "time": 0, "x": -0.82, "y": -2.69 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"x": -1.64,
|
||||
"y": -5.39,
|
||||
"curve": [ 0.284, 0, 0.625, 0.38 ]
|
||||
},
|
||||
{
|
||||
"time": 0.1333,
|
||||
"x": -1.37,
|
||||
"y": -10.93,
|
||||
"curve": [ 0.32, 0.29, 0.757, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.5333,
|
||||
"x": -2.21,
|
||||
"y": -0.53,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 1.0333, "x": -0.41, "y": -2.33 }
|
||||
]
|
||||
},
|
||||
"head": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 28.81 },
|
||||
{ "time": 0.1, "angle": -4.21 },
|
||||
{ "time": 0.2667, "angle": 3.25 },
|
||||
{ "time": 1.0333, "angle": 8.73 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -2.21, "y": -1.43 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"x": -4.43,
|
||||
"y": -2.86,
|
||||
"curve": [ 0.34, 0.38, 0.673, 0.71 ]
|
||||
},
|
||||
{
|
||||
"time": 0.1667,
|
||||
"x": -11.35,
|
||||
"y": -3.13,
|
||||
"curve": [ 0.356, 0.65, 0.691, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.4,
|
||||
"x": -4.85,
|
||||
"y": -3.06,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.8,
|
||||
"x": -2.36,
|
||||
"y": -1.86,
|
||||
"curve": [ 0.36, 0.44, 0.702, 0.8 ]
|
||||
},
|
||||
{ "time": 1.0333, "x": -4.43, "y": -2.86 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 1.139 },
|
||||
{ "time": 0.0667, "x": 1.038, "y": 1.037 },
|
||||
{ "time": 0.2, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"hip": {
|
||||
"translate": [
|
||||
{ "time": 0, "x": -5.61, "y": -21.01 },
|
||||
{ "time": 0.0333, "x": -11.23, "y": -42.01 }
|
||||
]
|
||||
},
|
||||
"mantles": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 4.52 },
|
||||
{ "time": 0.0333, "angle": 9.05 },
|
||||
{ "time": 0.5333, "angle": 7.13 },
|
||||
{ "time": 1.0333, "angle": 9.05 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -0.05, "y": 0 },
|
||||
{ "time": 0.0333, "x": -0.1, "y": 0 }
|
||||
]
|
||||
},
|
||||
"left-ground": {
|
||||
"translate": [
|
||||
{ "time": 0, "x": 35.34, "y": 4.15 },
|
||||
{ "time": 0.2, "x": 35.34, "y": 5.49 },
|
||||
{ "time": 0.4667, "x": 35.34, "y": 2.36 },
|
||||
{ "time": 0.6333, "x": 35.34, "y": 4.26 },
|
||||
{ "time": 1, "x": 35.34, "y": 4.15 }
|
||||
{ "time": 0, "x": 18.67, "y": 8.42 },
|
||||
{ "time": 0.1333, "x": -29.07, "y": 1.18 }
|
||||
]
|
||||
},
|
||||
"right-ground": {
|
||||
"translate": [
|
||||
{ "time": 0, "x": 15.37, "y": 2.29 },
|
||||
{ "time": 0.0333, "x": 16.23, "y": 0 }
|
||||
]
|
||||
},
|
||||
"upper-arm1": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -40.37 },
|
||||
{ "time": 0.0333, "angle": -55.04 },
|
||||
{ "time": 0.1, "angle": -26.73 },
|
||||
{ "time": 0.2333, "angle": 23.12 },
|
||||
{ "time": 0.3667, "angle": -11.1 },
|
||||
{ "time": 1.0333, "angle": -5.42 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -3.47, "y": 2.93 },
|
||||
{ "time": 0.0333, "x": -6.95, "y": 5.86 }
|
||||
]
|
||||
},
|
||||
"forearm1": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 36.8 },
|
||||
{ "time": 0.0333, "angle": 47.41 },
|
||||
{ "time": 0.1333, "angle": -6.15 },
|
||||
{ "time": 0.3333, "angle": 39.73 },
|
||||
{ "time": 0.6333, "angle": 32.07 },
|
||||
{ "time": 1.0333, "angle": 25.39 }
|
||||
]
|
||||
},
|
||||
"forearm2": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 12.02 },
|
||||
{ "time": 0.0333, "angle": 11.73 },
|
||||
{ "time": 0.2333, "angle": 26.16 },
|
||||
{ "time": 1.0333, "angle": 18.6 }
|
||||
]
|
||||
},
|
||||
"thigh2": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 60.45 },
|
||||
{ "time": 0.0333, "angle": 0 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -1.38, "y": 0 },
|
||||
{ "time": 0.0333, "x": -2.75, "y": 0 }
|
||||
]
|
||||
},
|
||||
"thigh1": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 83.27 },
|
||||
{ "time": 0.0333, "angle": 0 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -0.46, "y": 3.34 },
|
||||
{ "time": 0.0333, "x": -0.93, "y": 6.68 }
|
||||
]
|
||||
},
|
||||
"foot1": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -35.12 },
|
||||
{ "time": 0.0333, "angle": 270.13 }
|
||||
]
|
||||
},
|
||||
"foot2": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 19.58 },
|
||||
{ "time": 0.0333, "angle": 0 }
|
||||
]
|
||||
},
|
||||
"hand2": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 37.56 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"angle": 40.84,
|
||||
"curve": [ 0, 0.89, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.1667,
|
||||
"angle": -28.41,
|
||||
"curve": [ 0.25, 0, 0.467, 1 ]
|
||||
},
|
||||
{ "time": 1.0333, "angle": -13.4 }
|
||||
]
|
||||
},
|
||||
"hand1": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -4.65 },
|
||||
{ "time": 0.0333, "angle": -9.3 },
|
||||
{ "time": 0.1333, "angle": -36.61 },
|
||||
{ "time": 0.3333, "angle": 38.83 },
|
||||
{ "time": 0.6333, "angle": -1.97 },
|
||||
{ "time": 1.0333, "angle": -9.3 }
|
||||
]
|
||||
},
|
||||
"shin2": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -66.41 },
|
||||
{ "time": 0.0333, "angle": 0 }
|
||||
]
|
||||
},
|
||||
"shin1": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -110.05 },
|
||||
{ "time": 0.0333, "angle": 0 }
|
||||
]
|
||||
},
|
||||
"right-ankle": {
|
||||
"translate": [
|
||||
{ "time": 0, "x": 0, "y": -2.46 },
|
||||
{ "time": 0.0333, "x": 0, "y": -4.93 }
|
||||
]
|
||||
},
|
||||
"left-ankle": {
|
||||
"translate": [
|
||||
{ "time": 0, "x": 0, "y": -6.11 },
|
||||
{ "time": 0.0333, "x": 0, "y": -12.23 }
|
||||
]
|
||||
},
|
||||
"root": {
|
||||
"scale": [
|
||||
{ "time": 0, "x": 1, "y": 0.97 },
|
||||
{ "time": 0.0333, "x": 1, "y": 0.94 },
|
||||
{ "time": 0.1667, "x": 1, "y": 1 }
|
||||
]
|
||||
}
|
||||
},
|
||||
"deform": {
|
||||
"default": {
|
||||
"body": {
|
||||
"body": [
|
||||
{ "time": 0 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"offset": 12,
|
||||
"vertices": [ 1.29364, 5.08191, -0.08311, 2.25329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.11549, 2.64195, -0.42296, 4.54772, 0, 0, -0.42296, 4.54772, -0.42296, 4.54772, -0.11549, 2.64195, -0.11549, 2.64195, -0.08311, 2.25329, -0.42296, 4.54772 ]
|
||||
},
|
||||
{
|
||||
"time": 0.0667,
|
||||
"offset": 12,
|
||||
"vertices": [ 2.58728, 10.16383, -0.16621, 4.50658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.23098, 5.2839, -0.84592, 9.09544, 0, 0, -0.84592, 9.09544, -0.84592, 9.09544, -0.23098, 5.2839, -0.23098, 5.2839, -0.16621, 4.50658, -0.84592, 9.09544 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.5667,
|
||||
"offset": 8,
|
||||
"vertices": [ -0.16332, -0.55323, 0.56806, -2.69373, 1.75761, 3.93866, -1.93256, 0.76876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.97895, 1.32549, -0.70128, 3.17348, 0, 0, -0.70128, 3.17348, -0.70128, 3.17348, -1.97895, 1.32549, -1.97895, 1.32549, -1.93256, 0.76876, -0.70128, 3.17348 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 1.0667,
|
||||
"offset": 12,
|
||||
"vertices": [ 2.58728, 10.16383, -0.16621, 4.50658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.23098, 5.2839, -0.84592, 9.09544, 0, 0, -0.84592, 9.09544, -0.84592, 9.09544, -0.23098, 5.2839, -0.23098, 5.2839, -0.16621, 4.50658, -0.84592, 9.09544 ]
|
||||
}
|
||||
]
|
||||
},
|
||||
"eyes": {
|
||||
"eyes": [
|
||||
{ "time": 0 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"vertices": [ 1.93199, 0.30323, 3.80821, 0.16615, 4.34593, 0.21804, 4.8663, -0.1183, 4.68156, -0.14496, 4.34593, 0.21804, 3.80821, 0.16615, 1.74722, 0.27665 ]
|
||||
},
|
||||
{
|
||||
"time": 0.0667,
|
||||
"vertices": [ 3.86398, 0.60646, 7.61642, 0.3323, 8.69186, 0.43607, 9.73261, -0.23659, 9.36311, -0.28992, 8.69186, 0.43607, 7.61642, 0.3323, 3.49443, 0.5533 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.5667,
|
||||
"vertices": [ 6.7696, 1.0625, 13.34377, 0.58218, 15.22793, 0.76399, 17.05129, -0.41451, 16.40394, -0.50793, 15.22793, 0.76399, 13.34377, 0.58218, 6.12216, 0.96938 ],
|
||||
"curve": [ 0.587, -0.02, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 1.0667,
|
||||
"vertices": [ 3.86398, 0.60646, 7.61642, 0.3323, 8.69186, 0.43607, 9.73261, -0.23659, 9.36311, -0.28992, 8.69186, 0.43607, 7.61642, 0.3323, 3.49443, 0.5533 ]
|
||||
}
|
||||
]
|
||||
},
|
||||
"head": {
|
||||
"head": [
|
||||
{ "time": 0 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"offset": 12,
|
||||
"vertices": [ 0.6902, 0.02921, 0.46538, 0.01973, 0.32142, 0.39384, 1.35876, 0.44217, 0.61833, 0.21284, -0.79372, -0.03366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.33939, 0.07769, 1.28179, 0.05427, 2.08944, 0.05405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.8324, 0.23252, 4.37797, 0.11393, 0.74541, -0.0461, 0.74541, -0.0461, 2.6105, 0.53705 ]
|
||||
},
|
||||
{
|
||||
"time": 0.0667,
|
||||
"offset": 12,
|
||||
"vertices": [ 1.38039, 0.05842, 0.93076, 0.03947, 0.64285, 0.78767, 2.71751, 0.88435, 1.23665, 0.42568, -1.58744, -0.06731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.67879, 0.15537, 2.56357, 0.10853, 4.17887, 0.1081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6648, 0.46504, 8.75594, 0.22785, 1.49083, -0.09221, 1.49083, -0.09221, 5.221, 1.0741 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.5667,
|
||||
"offset": 12,
|
||||
"vertices": [ 2.41842, 0.10235, 1.63067, 0.06915, 1.12625, 1.37998, 9.63888, 1.16068, 2.16658, 0.74579, -2.78115, -0.11793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11.70107, 0.27221, 4.49132, 0.19015, 7.32128, 0.18938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.79456, 0.42606, 15.34019, 0.39919, 6.02913, 0.32602, 6.02913, 0.32602, 9.14707, 1.88179 ],
|
||||
"curve": [ 0.587, -0.02, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 1.0667,
|
||||
"offset": 12,
|
||||
"vertices": [ 1.38039, 0.05842, 0.93076, 0.03947, 0.64285, 0.78767, 2.71751, 0.88435, 1.23665, 0.42568, -1.58744, -0.06731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.67879, 0.15537, 2.56357, 0.10853, 4.17887, 0.1081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6648, 0.46504, 8.75594, 0.22785, 1.49083, -0.09221, 1.49083, -0.09221, 5.221, 1.0741 ]
|
||||
}
|
||||
]
|
||||
},
|
||||
"mantles": {
|
||||
"mantles": [
|
||||
{ "time": 0 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"offset": 2,
|
||||
"vertices": [ -0.143, 1.1612, 1.56465, 2.6563, 0.06791, 1.16074, 0.06791, 1.16074, 1.56465, 2.6563, -0.143, 1.1612 ]
|
||||
},
|
||||
{
|
||||
"time": 0.0667,
|
||||
"offset": 2,
|
||||
"vertices": [ -0.286, 2.3224, 3.1293, 5.31261, 0.13582, 2.32149, 0.13582, 2.32149, 3.1293, 5.31261, -0.286, 2.3224 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.5667,
|
||||
"vertices": [ 1.33941, -2.09791, 0.11259, -3.18363, 3.04376, 1.23967, -0.0392, 0.77839, -0.0392, 0.77839, 3.04376, 1.23967, -0.01005, -0.95502, -0.04586, 0.86383 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 1.0667,
|
||||
"offset": 2,
|
||||
"vertices": [ -0.286, 2.3224, 3.1293, 5.31261, 0.13582, 2.32149, 0.13582, 2.32149, 3.1293, 5.31261, -0.286, 2.3224 ]
|
||||
}
|
||||
]
|
||||
},
|
||||
"mouth": {
|
||||
"mouth": [
|
||||
{ "time": 0 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"vertices": [ 2.63964, -0.38391, 5.08534, -0.14201, 5.04713, -0.14752, 2.60141, -0.38942 ]
|
||||
},
|
||||
{
|
||||
"time": 0.0667,
|
||||
"vertices": [ 5.27928, -0.76782, 10.17068, -0.28402, 10.09426, -0.29504, 5.20281, -0.77885 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.5667,
|
||||
"vertices": [ 9.24917, -1.3452, 17.81878, -0.49759, 17.68489, -0.51691, 9.1152, -1.36452 ],
|
||||
"curve": [ 0.587, -0.02, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 1.0667,
|
||||
"vertices": [ 5.27928, -0.76782, 10.17068, -0.28402, 10.09426, -0.29504, 5.20281, -0.77885 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"fall": {
|
||||
"bones": {
|
||||
"right-ground": {
|
||||
"translate": [
|
||||
{ "time": 0, "x": 14.5, "y": 4.58 },
|
||||
{ "time": 0.3333, "x": 13.83, "y": 12.64 },
|
||||
{ "time": 0.6, "x": 13.56, "y": 16.8 },
|
||||
{ "time": 0.8, "x": 10.68, "y": 4.32 },
|
||||
{ "time": 1, "x": 14.5, "y": 4.58 }
|
||||
]
|
||||
},
|
||||
"left-ground": {
|
||||
"translate": [
|
||||
{ "time": 0, "x": 30.61, "y": 10.23 },
|
||||
{ "time": 0.2333, "x": 23.51, "y": 14.29 },
|
||||
{ "time": 0.4667, "x": 28.58, "y": 14.96 },
|
||||
{ "time": 0.8333, "x": 33.02, "y": 13.4 },
|
||||
{ "time": 1, "x": 30.61, "y": 10.23 }
|
||||
]
|
||||
},
|
||||
"foot1": {
|
||||
@ -2270,6 +2642,417 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"idle-from fall": {
|
||||
"bones": {
|
||||
"upper-arm2": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 33.69 },
|
||||
{ "time": 0.0333, "angle": 29.63 },
|
||||
{ "time": 0.2, "angle": -0.65 },
|
||||
{ "time": 0.5333, "angle": 0.46 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -1.56, "y": 4.01 },
|
||||
{ "time": 0.0333, "x": -3.13, "y": 8.02 },
|
||||
{ "time": 0.2, "x": -2.08, "y": 5.35 },
|
||||
{ "time": 0.5333, "x": 0, "y": 0 }
|
||||
]
|
||||
},
|
||||
"body": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 7.9 },
|
||||
{ "time": 0.0333, "angle": 1.67 },
|
||||
{ "time": 0.1, "angle": -5.11 },
|
||||
{ "time": 0.2, "angle": 1.11 },
|
||||
{ "time": 0.5333, "angle": 0 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 0, "y": -1.85 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"x": 0,
|
||||
"y": -3.7,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 0.5333, "x": 0, "y": 0 }
|
||||
]
|
||||
},
|
||||
"head": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -4.66 },
|
||||
{ "time": 0.0333, "angle": 8.49 },
|
||||
{ "time": 0.1, "angle": -17.41 },
|
||||
{ "time": 0.3, "angle": -6.9 },
|
||||
{ "time": 0.5333, "angle": -4.18 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -1.34, "y": 0 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"x": -2.69,
|
||||
"y": 0,
|
||||
"curve": [ 0.347, 0.38, 0.683, 0.73 ]
|
||||
},
|
||||
{
|
||||
"time": 0.1,
|
||||
"x": -9.49,
|
||||
"y": 0.61,
|
||||
"curve": [ 0.375, 0.62, 0.716, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.3,
|
||||
"x": -3.75,
|
||||
"y": 0,
|
||||
"curve": [ 0.243, 0, 0.649, 0.6 ]
|
||||
},
|
||||
{ "time": 0.5333, "x": -1.06, "y": 0 }
|
||||
]
|
||||
},
|
||||
"hip": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -1.86 },
|
||||
{ "time": 0.0333, "angle": -3.72 },
|
||||
{ "time": 0.2, "angle": 0, "curve": "stepped" },
|
||||
{ "time": 0.5333, "angle": 0 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -2.97, "y": -9.61 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"x": -5.94,
|
||||
"y": -19.22,
|
||||
"curve": [ 0.306, 0, 0.641, 0.36 ]
|
||||
},
|
||||
{ "time": 0.3, "x": 0, "y": -2.92, "curve": "stepped" },
|
||||
{ "time": 0.5333, "x": 0, "y": -2.92 }
|
||||
]
|
||||
},
|
||||
"mantles": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -2.28 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"angle": -4.56,
|
||||
"curve": [ 0.295, 0.19, 0.755, 1 ]
|
||||
},
|
||||
{ "time": 0.5333, "angle": 0 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -0.66, "y": 0 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"x": -1.32,
|
||||
"y": 0,
|
||||
"curve": [ 0.3, 0.21, 0.756, 1 ]
|
||||
},
|
||||
{ "time": 0.4667, "x": 0, "y": 0 },
|
||||
{ "time": 0.5333, "x": -0.1, "y": 0 }
|
||||
]
|
||||
},
|
||||
"left-ground": {
|
||||
"translate": [
|
||||
{ "time": 0, "x": 11.73, "y": 5.12 },
|
||||
{ "time": 0.0333, "x": -7.15, "y": 0, "curve": "stepped" },
|
||||
{ "time": 0.5333, "x": -7.15, "y": 0 }
|
||||
]
|
||||
},
|
||||
"right-ground": {
|
||||
"translate": [
|
||||
{ "time": 0, "x": 10.22, "y": 2.29 },
|
||||
{ "time": 0.0333, "x": 5.94, "y": 0, "curve": "stepped" },
|
||||
{ "time": 0.5333, "x": 5.94, "y": 0 }
|
||||
]
|
||||
},
|
||||
"upper-arm1": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -46.85 },
|
||||
{ "time": 0.1333, "angle": 7.07 },
|
||||
{
|
||||
"time": 0.3333,
|
||||
"angle": -13.9,
|
||||
"curve": [ 0.442, 0.35, 0.714, 1 ]
|
||||
},
|
||||
{ "time": 0.5333, "angle": 0 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": 3.95, "y": -0.8 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"x": 7.89,
|
||||
"y": -1.61,
|
||||
"curve": [ 0.384, 0, 0.712, 0.41 ]
|
||||
},
|
||||
{
|
||||
"time": 0.2333,
|
||||
"x": 1.66,
|
||||
"y": -4.52,
|
||||
"curve": [ 0.442, 0.35, 0.714, 1 ]
|
||||
},
|
||||
{ "time": 0.5333, "x": 0, "y": 0 }
|
||||
]
|
||||
},
|
||||
"forearm1": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 7.54 },
|
||||
{
|
||||
"time": 0.0667,
|
||||
"angle": -29.76,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.2333,
|
||||
"angle": 45.6,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 0.5333, "angle": 0 }
|
||||
]
|
||||
},
|
||||
"forearm2": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 34.52 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"angle": 56.72,
|
||||
"curve": [ 0, 0.85, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 0.2, "angle": -10.87 },
|
||||
{ "time": 0.5333, "angle": 0 }
|
||||
]
|
||||
},
|
||||
"thigh2": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 44.27 },
|
||||
{ "time": 0.0333, "angle": 20.94 },
|
||||
{ "time": 0.5333, "angle": 16.55 }
|
||||
]
|
||||
},
|
||||
"thigh1": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 64.42 },
|
||||
{ "time": 0.0333, "angle": 17.95 },
|
||||
{ "time": 0.5333, "angle": 6.6 }
|
||||
]
|
||||
},
|
||||
"foot1": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 9.81 },
|
||||
{ "time": 0.0333, "angle": 0, "curve": "stepped" },
|
||||
{ "time": 0.5333, "angle": 0 }
|
||||
]
|
||||
},
|
||||
"foot2": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 19.58 },
|
||||
{ "time": 0.0333, "angle": 0, "curve": "stepped" },
|
||||
{ "time": 0.5333, "angle": 0 }
|
||||
]
|
||||
},
|
||||
"hand2": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -4.33 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"angle": -8.65,
|
||||
"curve": [ 0, 0.74, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.1667,
|
||||
"angle": -18.06,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 0.4, "angle": 0, "curve": "stepped" },
|
||||
{ "time": 0.5333, "angle": 0 }
|
||||
]
|
||||
},
|
||||
"hand1": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 6.18 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"angle": 12.37,
|
||||
"curve": [ 0.475, 0, 0.759, 0.65 ]
|
||||
},
|
||||
{
|
||||
"time": 0.2667,
|
||||
"angle": 37.67,
|
||||
"curve": [ 0.346, 0.59, 0.67, 1 ]
|
||||
},
|
||||
{ "time": 0.5333, "angle": 0 }
|
||||
]
|
||||
},
|
||||
"shin2": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -57.8 },
|
||||
{ "time": 0.0333, "angle": -25.6 },
|
||||
{ "time": 0.5333, "angle": -23.54 }
|
||||
]
|
||||
},
|
||||
"shin1": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -98.69 },
|
||||
{ "time": 0.0333, "angle": -48.2 },
|
||||
{ "time": 0.5333, "angle": -30.35 }
|
||||
]
|
||||
},
|
||||
"bone2": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 8.01 },
|
||||
{ "time": 0.0333, "angle": 16.02 },
|
||||
{ "time": 0.1667, "angle": -10.45 },
|
||||
{ "time": 0.3333, "angle": 2.36 },
|
||||
{ "time": 0.5333, "angle": 0 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -3.51, "y": 7.69 },
|
||||
{ "time": 0.0333, "x": -7.02, "y": 15.39 },
|
||||
{ "time": 0.1667, "x": 6.98, "y": -6.57 },
|
||||
{ "time": 0.3333, "x": -0.72, "y": -0.78 },
|
||||
{ "time": 0.5333, "x": 0, "y": 0 }
|
||||
]
|
||||
},
|
||||
"hair01": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 8.34 },
|
||||
{ "time": 0.0333, "angle": 16.67 },
|
||||
{ "time": 0.1333, "angle": -8 },
|
||||
{ "time": 0.3333, "angle": 5.81 },
|
||||
{ "time": 0.5333, "angle": 0 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -1, "y": 6.5 },
|
||||
{ "time": 0.0333, "x": -1.99, "y": 13.01 },
|
||||
{ "time": 0.1333, "x": 1.46, "y": -7.98 },
|
||||
{ "time": 0.3333, "x": 0.74, "y": -1.42 },
|
||||
{ "time": 0.5333, "x": 0, "y": 0 }
|
||||
]
|
||||
}
|
||||
},
|
||||
"deform": {
|
||||
"default": {
|
||||
"body": {
|
||||
"body": [
|
||||
{ "time": 0 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"offset": 12,
|
||||
"vertices": [ -0.37794, -1.84494, -0.50949, -1.48702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.50949, -1.48702, -0.37794, -1.84494, 0, 0, -0.37794, -1.84494, -0.37794, -1.84494, -0.50949, -1.48702, -0.50949, -1.48702, -0.50949, -1.48702, -0.37794, -1.84494 ]
|
||||
},
|
||||
{
|
||||
"time": 0.0667,
|
||||
"offset": 12,
|
||||
"vertices": [ -0.75588, -3.68988, -1.01898, -2.97405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.01898, -2.97405, -0.75588, -3.68988, 0, 0, -0.75588, -3.68988, -0.75588, -3.68988, -1.01898, -2.97405, -1.01898, -2.97405, -1.01898, -2.97405, -0.75588, -3.68988 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 0.5667 }
|
||||
]
|
||||
},
|
||||
"eyes": {
|
||||
"eyes": [
|
||||
{ "time": 0 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"vertices": [ 3.3848, 0.53125, 6.67189, 0.29109, 7.61397, 0.382, 8.52564, -0.20725, 8.20197, -0.25397, 7.61397, 0.382, 6.67189, 0.29109, 3.06108, 0.48469 ]
|
||||
},
|
||||
{
|
||||
"time": 0.0667,
|
||||
"vertices": [ 6.7696, 1.0625, 13.34377, 0.58218, 15.22793, 0.76399, 17.05129, -0.41451, 16.40394, -0.50793, 15.22793, 0.76399, 13.34377, 0.58218, 6.12216, 0.96938 ],
|
||||
"curve": [ 0.367, -0.07, 0.698, 0.3 ]
|
||||
},
|
||||
{
|
||||
"time": 0.1333,
|
||||
"vertices": [ 6.72558, 1.05559, 13.25701, 0.5784, 15.12892, 0.75902, 16.94042, -0.41181, 16.29729, -0.50463, 15.12892, 0.75902, 13.25701, 0.5784, 6.08235, 0.96307 ],
|
||||
"curve": [ 0.385, 0.21, 0.712, 0.57 ]
|
||||
},
|
||||
{
|
||||
"time": 0.2333,
|
||||
"vertices": [ 6.41826, 1.00736, 12.65124, 0.55197, 14.43761, 0.72434, 16.16634, -0.39299, 15.55259, -0.48157, 14.43761, 0.72434, 12.65124, 0.55197, 5.80442, 0.91907 ],
|
||||
"curve": [ 0.45, 0.39, 0.689, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.5667,
|
||||
"vertices": [ 3.86398, 0.60646, 7.61642, 0.3323, 8.69186, 0.43607, 9.73261, -0.23659, 9.36311, -0.28992, 8.69186, 0.43607, 7.61642, 0.3323, 3.49443, 0.5533 ]
|
||||
}
|
||||
]
|
||||
},
|
||||
"head": {
|
||||
"head": [
|
||||
{ "time": 0 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"offset": 12,
|
||||
"vertices": [ 1.20921, 0.05117, 0.81534, 0.03457, 0.56313, 0.68999, 4.81944, 0.58034, 1.08329, 0.37289, -1.39058, -0.05896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.85053, 0.1361, 2.24566, 0.09507, 3.66064, 0.09469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.89728, 0.21303, 7.67009, 0.1996, 3.01457, 0.16301, 3.01457, 0.16301, 4.57353, 0.9409 ]
|
||||
},
|
||||
{
|
||||
"time": 0.0667,
|
||||
"offset": 12,
|
||||
"vertices": [ 2.41842, 0.10235, 1.63067, 0.06915, 1.12625, 1.37998, 9.63888, 1.16068, 2.16658, 0.74579, -2.78115, -0.11793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11.70107, 0.27221, 4.49132, 0.19015, 7.32128, 0.18938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.79456, 0.42606, 15.34019, 0.39919, 6.02913, 0.32602, 6.02913, 0.32602, 9.14707, 1.88179 ],
|
||||
"curve": [ 0.367, -0.07, 0.698, 0.3 ]
|
||||
},
|
||||
{
|
||||
"time": 0.1333,
|
||||
"offset": 12,
|
||||
"vertices": [ 2.40269, 0.10168, 1.62007, 0.0687, 1.11893, 1.37101, 9.53403, 1.15649, 2.15249, 0.74094, -2.76307, -0.11716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11.62499, 0.27044, 4.46211, 0.18891, 7.27368, 0.18815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.7017, 0.42665, 15.24045, 0.3966, 5.96039, 0.31969, 5.96039, 0.31969, 9.08759, 1.86955 ],
|
||||
"curve": [ 0.385, 0.21, 0.712, 0.57 ]
|
||||
},
|
||||
{
|
||||
"time": 0.2333,
|
||||
"offset": 12,
|
||||
"vertices": [ 2.2929, 0.09704, 1.54604, 0.06556, 1.0678, 1.30836, 8.80197, 1.12727, 2.05414, 0.70708, -2.63681, -0.11181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11.09379, 0.25808, 4.25822, 0.18028, 6.94132, 0.17955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.05337, 0.43077, 14.54404, 0.37847, 5.48038, 0.27545, 5.48038, 0.27545, 8.67234, 1.78413 ],
|
||||
"curve": [ 0.45, 0.39, 0.689, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.5667,
|
||||
"offset": 12,
|
||||
"vertices": [ 1.38039, 0.05842, 0.93076, 0.03947, 0.64285, 0.78767, 2.71751, 0.88435, 1.23665, 0.42568, -1.58744, -0.06731, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.67879, 0.15537, 2.56357, 0.10853, 4.17887, 0.1081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.6648, 0.46504, 8.75594, 0.22785, 1.49083, -0.09221, 1.49083, -0.09221, 5.221, 1.0741 ]
|
||||
}
|
||||
]
|
||||
},
|
||||
"mantles": {
|
||||
"mantles": [
|
||||
{ "time": 0 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"vertices": [ -0.69415, 0.27184, 0.0767, -3.45453, -0.62705, -2.25438, -0.61457, -0.67946, -0.61462, -0.67877, -0.62691, -2.23804, -0.03177, -2.59196, -0.21693, 1.72518 ]
|
||||
},
|
||||
{
|
||||
"time": 0.0667,
|
||||
"vertices": [ -1.38829, 0.54368, 0.1534, -6.90907, -1.2541, -4.50876, -1.22914, -1.35892, -1.22923, -1.35755, -1.25381, -4.47607, -0.06354, -5.18391, -0.43387, 3.45035 ],
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 0.5667 }
|
||||
]
|
||||
},
|
||||
"mouth": {
|
||||
"mouth": [
|
||||
{ "time": 0 },
|
||||
{
|
||||
"time": 0.0333,
|
||||
"vertices": [ 4.62458, -0.6726, 8.90939, -0.24879, 8.84245, -0.25845, 4.5576, -0.68226 ]
|
||||
},
|
||||
{
|
||||
"time": 0.0667,
|
||||
"vertices": [ 9.24917, -1.3452, 17.81878, -0.49759, 17.68489, -0.51691, 9.1152, -1.36452 ],
|
||||
"curve": [ 0.367, -0.07, 0.698, 0.3 ]
|
||||
},
|
||||
{
|
||||
"time": 0.1333,
|
||||
"vertices": [ 9.18903, -1.33645, 17.70293, -0.49435, 17.56991, -0.51355, 9.05593, -1.35565 ],
|
||||
"curve": [ 0.385, 0.21, 0.712, 0.57 ]
|
||||
},
|
||||
{
|
||||
"time": 0.2333,
|
||||
"vertices": [ 8.76914, -1.27538, 16.894, -0.47176, 16.76706, -0.49008, 8.64213, -1.2937 ],
|
||||
"curve": [ 0.45, 0.39, 0.689, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.5667,
|
||||
"vertices": [ 5.27928, -0.76782, 10.17068, -0.28402, 10.09426, -0.29504, 5.20281, -0.77885 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"jump": {
|
||||
"bones": {
|
||||
"right-ground": {
|
||||
@ -3388,7 +4171,7 @@
|
||||
"y": 1,
|
||||
"curve": [ 0, 0.9, 0.557, 1 ]
|
||||
},
|
||||
{ "time": 0.0333, "x": 1, "y": 0.95 },
|
||||
{ "time": 0.0333, "x": 1, "y": 0.98 },
|
||||
{ "time": 0.2667, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
@ -3533,7 +4316,7 @@
|
||||
"y": 0,
|
||||
"curve": [ 0, 0.9, 0.557, 1 ]
|
||||
},
|
||||
{ "time": 0.0333, "x": -13.41, "y": -6.07 },
|
||||
{ "time": 0.0333, "x": -2.52, "y": -4.74 },
|
||||
{ "time": 0.1333, "x": 7.04, "y": 0.05 },
|
||||
{ "time": 0.2333, "x": 2.88, "y": 0.24 },
|
||||
{ "time": 0.2667, "x": -3.51, "y": -1.82 },
|
||||
@ -3659,9 +4442,8 @@
|
||||
"curve": [ 0, 0.9, 0.557, 1 ]
|
||||
},
|
||||
{ "time": 0.0333, "angle": -5.05 },
|
||||
{ "time": 0.1, "angle": -47.92 },
|
||||
{ "time": 0.2333, "angle": 8.06 },
|
||||
{ "time": 0.2667, "angle": 12.46 },
|
||||
{ "time": 0.1333, "angle": -32.27 },
|
||||
{ "time": 0.2667, "angle": 8.06 },
|
||||
{ "time": 0.4, "angle": 33.85 },
|
||||
{ "time": 0.6667, "angle": 22.92 },
|
||||
{ "time": 0.7667, "angle": 8.06 }
|
||||
@ -3877,10 +4659,10 @@
|
||||
{
|
||||
"time": 0.0333,
|
||||
"x": 1,
|
||||
"y": 0.95,
|
||||
"y": 0.98,
|
||||
"curve": [ 0.25, 0, 1, 0.65 ]
|
||||
},
|
||||
{ "time": 0.1667, "x": 1, "y": 1.137 },
|
||||
{ "time": 0.1667, "x": 1, "y": 1.05 },
|
||||
{ "time": 0.3, "x": 1, "y": 1 }
|
||||
]
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 25b07e861d1a62f4db687c871e4a3828
|
||||
timeCreated: 1524005969
|
||||
timeCreated: 1528393443
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b29bbacbc2368c94a9c942d176ac6f59
|
||||
timeCreated: 1487920373
|
||||
timeCreated: 1528393443
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4261719a8f729a644b2dab6113d1b0ea
|
||||
timeCreated: 1494110641
|
||||
timeCreated: 1528393443
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName:
|
||||
@ -69,7 +69,7 @@ TextureImporter:
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 0
|
||||
alignment: 0
|
||||
@ -86,7 +86,7 @@ TextureImporter:
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 4096
|
||||
maxTextureSize: 2048
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 33e128e17951b4a42b17608ff79ba5c5
|
||||
timeCreated: 1487920372
|
||||
timeCreated: 1528393443
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 33f10ea7e20549d40a1c23a1adc3f760
|
||||
timeCreated: 1487920372
|
||||
timeCreated: 1528393443
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4ea2c33e839afb34c98f66e892b3b2d2
|
||||
timeCreated: 1516482806
|
||||
timeCreated: 1528393443
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
{
|
||||
"skeleton": {
|
||||
"hash": "/TOc8ZCRqVHx2Z5rHf8FIeR4q4E",
|
||||
"hash": "cwpUEgLuMJTa1mvhbplDvBw8W+0",
|
||||
"spine": "3.6.52",
|
||||
"width": 470.71,
|
||||
"height": 731.57,
|
||||
@ -40,12 +40,15 @@
|
||||
{ "name": "rear_upper_arm", "parent": "torso", "length": 51.94, "rotation": -169.56, "x": 92.36, "y": -19.22, "color": "ff000dff" },
|
||||
{ "name": "rear_bracer", "parent": "rear_upper_arm", "length": 34.56, "rotation": 23.15, "x": 51.36, "color": "ff000dff" },
|
||||
{ "name": "gun", "parent": "rear_bracer", "length": 43.11, "rotation": 5.35, "x": 34.42, "y": -0.45, "color": "ff000dff" },
|
||||
{ "name": "gun2", "parent": "root", "x": 390.37, "y": 534.39 },
|
||||
{ "name": "gun3", "parent": "root", "x": 227.4, "y": 464.27 },
|
||||
{ "name": "gun4", "parent": "root", "x": 250.14, "y": 672.72 },
|
||||
{ "name": "gun2", "parent": "root", "rotation": -59.72, "x": 390.37, "y": 534.39 },
|
||||
{ "name": "gun3", "parent": "root", "rotation": -77.87, "x": 227.4, "y": 464.27 },
|
||||
{ "name": "gun4", "parent": "root", "rotation": -86.3, "x": 250.14, "y": 672.72 },
|
||||
{ "name": "gun rotation", "parent": "root", "x": 334.56, "y": 492, "color": "abe323ff" },
|
||||
{ "name": "gunTip", "parent": "gun", "rotation": 6.83, "x": 201.04, "y": 52.13, "color": "ff000dff" },
|
||||
{ "name": "neck", "parent": "torso", "length": 25.45, "rotation": -31.54, "x": 127.5, "y": -0.31, "color": "e0da19ff" },
|
||||
{ "name": "head", "parent": "neck", "length": 263.58, "rotation": 23.18, "x": 27.66, "y": -0.26, "color": "e0da19ff" },
|
||||
{ "name": "muzzle2 free", "parent": "root" },
|
||||
{ "name": "muzzle3 free", "parent": "root" },
|
||||
{ "name": "pathbone", "parent": "root", "x": 71.67, "y": 368.83 },
|
||||
{ "name": "rear_thigh", "parent": "hip", "length": 85.72, "rotation": -72.54, "x": 8.91, "y": -5.63, "color": "ff000dff" },
|
||||
{ "name": "rear_shin", "parent": "rear_thigh", "length": 121.88, "rotation": -19.83, "x": 86.1, "y": -1.33, "color": "ff000dff" },
|
||||
@ -77,6 +80,8 @@
|
||||
{ "name": "gun2", "bone": "gun2" },
|
||||
{ "name": "gun3", "bone": "gun3" },
|
||||
{ "name": "gun4", "bone": "gun4" },
|
||||
{ "name": "muzzle2", "bone": "muzzle2 free", "blend": "additive" },
|
||||
{ "name": "muzzle3", "bone": "muzzle3 free", "blend": "additive" },
|
||||
{ "name": "gunspath", "bone": "pathbone", "attachment": "gunspath" },
|
||||
{ "name": "projectile source", "bone": "gunTip", "attachment": "projectile source" }
|
||||
],
|
||||
@ -106,6 +111,39 @@
|
||||
"translateMix": 0,
|
||||
"scaleMix": 0,
|
||||
"shearMix": 0
|
||||
},
|
||||
{
|
||||
"name": "gun2 rotation",
|
||||
"order": 4,
|
||||
"bones": [ "gun2" ],
|
||||
"target": "gun rotation",
|
||||
"rotation": 72.7,
|
||||
"rotateMix": 0,
|
||||
"translateMix": 0,
|
||||
"scaleMix": 0,
|
||||
"shearMix": 0
|
||||
},
|
||||
{
|
||||
"name": "gun3 rotation",
|
||||
"order": 5,
|
||||
"bones": [ "gun3" ],
|
||||
"target": "gun rotation",
|
||||
"rotation": -116.2,
|
||||
"rotateMix": 0,
|
||||
"translateMix": 0,
|
||||
"scaleMix": 0,
|
||||
"shearMix": 0
|
||||
},
|
||||
{
|
||||
"name": "gun4 rotation",
|
||||
"order": 6,
|
||||
"bones": [ "gun4" ],
|
||||
"target": "gun rotation",
|
||||
"rotation": 166.9,
|
||||
"rotateMix": 0,
|
||||
"translateMix": 0,
|
||||
"scaleMix": 0,
|
||||
"shearMix": 0
|
||||
}
|
||||
],
|
||||
"path": [
|
||||
@ -148,21 +186,21 @@
|
||||
"front_upper_arm": { "x": 28.31, "y": 7.37, "rotation": 97.9, "width": 54, "height": 97 }
|
||||
},
|
||||
"gun2": {
|
||||
"gun": { "x": 43.59, "y": -39.79, "width": 210, "height": 203 }
|
||||
"gun": { "x": 43.59, "y": -39.79, "rotation": 83.87, "width": 210, "height": 203 }
|
||||
},
|
||||
"gun3": {
|
||||
"gun": { "x": 39.79, "y": -39.8, "width": 210, "height": 203 }
|
||||
"gun": { "x": 39.79, "y": -39.8, "rotation": 101.48, "width": 210, "height": 203 }
|
||||
},
|
||||
"gun4": {
|
||||
"gun": { "x": 41.69, "y": -36, "width": 210, "height": 203 }
|
||||
"gun": { "x": 41.69, "y": -36, "rotation": 111.08, "width": 210, "height": 203 }
|
||||
},
|
||||
"gunspath": {
|
||||
"gunspath": {
|
||||
"type": "path",
|
||||
"closed": true,
|
||||
"lengths": [ 534.73, 1020.73, 1497.06, 1846.09 ],
|
||||
"vertexCount": 12,
|
||||
"vertices": [ -175.36, 204.8, -71.34, 203.78, 121.95, 201.89, 376.27, 145.38, 369.88, -13.62, 363.36, -174.04, 157.89, -197.96, -31.54, -205.54, -224.8, -211.56, -421.28, -97.38, -436.34, -4.18, -453.89, 104.42 ],
|
||||
"lengths": [ 559.93, 1333.08 ],
|
||||
"vertexCount": 6,
|
||||
"vertices": [ 169.43, -419.28, 139.24, -43.51, 111.84, 297.59, -220.3, -362.22, -282.74, -117.7, -400, 341.5 ],
|
||||
"color": "ffffffff"
|
||||
}
|
||||
},
|
||||
@ -184,6 +222,12 @@
|
||||
"muzzle": {
|
||||
"muzzle": { "x": 18.25, "y": 5.45, "rotation": 0.15, "width": 462, "height": 400 }
|
||||
},
|
||||
"muzzle2": {
|
||||
"muzzle": { "x": 60.83, "width": 462, "height": 400 }
|
||||
},
|
||||
"muzzle3": {
|
||||
"muzzle": { "x": 60.83, "width": 462, "height": 400 }
|
||||
},
|
||||
"neck": {
|
||||
"neck": { "x": 9.77, "y": -3.01, "rotation": -55.22, "width": 36, "height": 41 }
|
||||
},
|
||||
@ -784,6 +828,11 @@
|
||||
{ "time": 1.6667, "name": null }
|
||||
]
|
||||
},
|
||||
"gunspath": {
|
||||
"attachment": [
|
||||
{ "time": 0, "name": "gunspath" }
|
||||
]
|
||||
},
|
||||
"mouth": {
|
||||
"attachment": [
|
||||
{ "time": 0, "name": "mouth_smile" },
|
||||
@ -816,6 +865,38 @@
|
||||
{ "time": 1.3333, "name": null },
|
||||
{ "time": 2.5333, "name": null }
|
||||
]
|
||||
},
|
||||
"muzzle2": {
|
||||
"attachment": [
|
||||
{ "time": 0.7667, "name": "muzzle" },
|
||||
{ "time": 0.8333, "name": null },
|
||||
{ "time": 0.8667, "name": "muzzle" },
|
||||
{ "time": 0.9333, "name": null },
|
||||
{ "time": 0.9667, "name": "muzzle" },
|
||||
{ "time": 1.0333, "name": null },
|
||||
{ "time": 1.0667, "name": "muzzle" },
|
||||
{ "time": 1.1333, "name": null },
|
||||
{ "time": 1.1667, "name": "muzzle" },
|
||||
{ "time": 1.2333, "name": null },
|
||||
{ "time": 1.2667, "name": "muzzle" },
|
||||
{ "time": 1.3333, "name": null }
|
||||
]
|
||||
},
|
||||
"muzzle3": {
|
||||
"attachment": [
|
||||
{ "time": 0.8333, "name": "muzzle" },
|
||||
{ "time": 0.9, "name": null },
|
||||
{ "time": 0.9333, "name": "muzzle" },
|
||||
{ "time": 1, "name": null },
|
||||
{ "time": 1.0333, "name": "muzzle" },
|
||||
{ "time": 1.1, "name": null },
|
||||
{ "time": 1.1333, "name": "muzzle" },
|
||||
{ "time": 1.2, "name": null },
|
||||
{ "time": 1.2333, "name": "muzzle" },
|
||||
{ "time": 1.3, "name": null },
|
||||
{ "time": 1.3333, "name": "muzzle" },
|
||||
{ "time": 1.4, "name": null }
|
||||
]
|
||||
}
|
||||
},
|
||||
"bones": {
|
||||
@ -1246,8 +1327,8 @@
|
||||
"angle": 15.51,
|
||||
"curve": [ 0.324, 0.12, 0.658, 0.47 ]
|
||||
},
|
||||
{ "time": 2.2667, "angle": 5.14, "curve": "stepped" },
|
||||
{ "time": 2.5333, "angle": 5.14 }
|
||||
{ "time": 2.2667, "angle": 8.88, "curve": "stepped" },
|
||||
{ "time": 2.5333, "angle": 8.88 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 0.755, "y": 1.31, "curve": "stepped" },
|
||||
@ -1902,12 +1983,6 @@
|
||||
]
|
||||
},
|
||||
"pathbone": {
|
||||
"rotate": [
|
||||
{ "time": 0.6667, "angle": 0 },
|
||||
{ "time": 1, "angle": -126.96 },
|
||||
{ "time": 1.3333, "angle": 65.58 },
|
||||
{ "time": 1.6667, "angle": 0 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0.6667, "x": 1, "y": 1 },
|
||||
{ "time": 1.1667, "x": 1.619, "y": 1.619 },
|
||||
@ -1916,29 +1991,117 @@
|
||||
},
|
||||
"gun2": {
|
||||
"rotate": [
|
||||
{ "time": 1.6667, "angle": -123.5 }
|
||||
{ "time": 0.6333, "angle": 0 },
|
||||
{ "time": 1.6667, "angle": 208.8 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0.6, "x": -271.69, "y": -301.15 },
|
||||
{ "time": 1.6667, "x": -408.03, "y": -266.19 }
|
||||
{ "time": 1.6667, "x": -470.47, "y": -334.43 }
|
||||
]
|
||||
},
|
||||
"gun3": {
|
||||
"rotate": [
|
||||
{ "time": 1.6667, "angle": -123.5 }
|
||||
{ "time": 0.6333, "angle": 0 },
|
||||
{ "time": 1.6667, "angle": 208.8 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0.6, "x": -111.29, "y": -212.77 },
|
||||
{ "time": 1.6667, "x": -247.64, "y": -177.81 }
|
||||
{ "time": 1.6667, "x": -310.07, "y": -246.05 }
|
||||
]
|
||||
},
|
||||
"gun4": {
|
||||
"rotate": [
|
||||
{ "time": 1.6667, "angle": -123.5 }
|
||||
{ "time": 0.6333, "angle": 0 },
|
||||
{ "time": 1.6667, "angle": 208.8 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0.6, "x": -144.03, "y": -425.54 },
|
||||
{ "time": 1.6667, "x": -280.37, "y": -390.58 }
|
||||
{ "time": 1.6667, "x": -342.81, "y": -458.82 }
|
||||
]
|
||||
},
|
||||
"muzzle2 free": {
|
||||
"rotate": [
|
||||
{ "time": 0.7667, "angle": -21.73, "curve": "stepped" },
|
||||
{ "time": 0.8667, "angle": 172.48, "curve": "stepped" },
|
||||
{ "time": 0.9667, "angle": -139.64, "curve": "stepped" },
|
||||
{ "time": 1.0667, "angle": 24.69, "curve": "stepped" },
|
||||
{ "time": 1.1667, "angle": 176.07, "curve": "stepped" },
|
||||
{ "time": 1.2667, "angle": 52.93 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0.7667, "x": 269.22, "y": 129.31, "curve": "stepped" },
|
||||
{ "time": 0.8667, "x": -567.86, "y": 347.09, "curve": "stepped" },
|
||||
{ "time": 0.9667, "x": -307.84, "y": 56.76, "curve": "stepped" },
|
||||
{ "time": 1.0667, "x": 353.92, "y": 489.89, "curve": "stepped" },
|
||||
{ "time": 1.1667, "x": -332.25, "y": 174.65, "curve": "stepped" },
|
||||
{ "time": 1.2667, "x": -228.55, "y": 693.4 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0.7667, "x": 0.9, "y": 1.202 },
|
||||
{ "time": 0.8333, "x": 1.045, "y": 0.99, "curve": "stepped" },
|
||||
{ "time": 0.8667, "x": 0.9, "y": 1.202 },
|
||||
{ "time": 0.9333, "x": 1.045, "y": 0.99, "curve": "stepped" },
|
||||
{ "time": 0.9667, "x": 0.9, "y": 1.202 },
|
||||
{ "time": 1.0333, "x": 1.045, "y": 0.99, "curve": "stepped" },
|
||||
{ "time": 1.0667, "x": 0.9, "y": 1.202 },
|
||||
{ "time": 1.1333, "x": 1.045, "y": 0.99, "curve": "stepped" },
|
||||
{ "time": 1.1667, "x": 0.9, "y": 1.202 },
|
||||
{ "time": 1.2333, "x": 1.045, "y": 0.99, "curve": "stepped" },
|
||||
{ "time": 1.2667, "x": 0.9, "y": 1.202 },
|
||||
{ "time": 1.3333, "x": 1.045, "y": 0.99 }
|
||||
]
|
||||
},
|
||||
"muzzle3 free": {
|
||||
"rotate": [
|
||||
{ "time": 0.8333, "angle": 40.51, "curve": "stepped" },
|
||||
{ "time": 0.9333, "angle": -63.06, "curve": "stepped" },
|
||||
{ "time": 1.0333, "angle": 126.83, "curve": "stepped" },
|
||||
{ "time": 1.1333, "angle": 125.37, "curve": "stepped" },
|
||||
{ "time": 1.2333, "angle": -136.88, "curve": "stepped" },
|
||||
{ "time": 1.3333, "angle": -36.08 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0.8333, "x": 255.43, "y": 424.36, "curve": "stepped" },
|
||||
{ "time": 0.9333, "x": 139.51, "y": 153.5, "curve": "stepped" },
|
||||
{ "time": 1.0333, "x": -158.92, "y": 533.3, "curve": "stepped" },
|
||||
{ "time": 1.1333, "x": 2.6, "y": 646.64, "curve": "stepped" },
|
||||
{ "time": 1.2333, "x": -42.47, "y": 167.46, "curve": "stepped" },
|
||||
{ "time": 1.3333, "x": 322.45, "y": 254.08 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0.8333, "x": 0.9, "y": 1.202 },
|
||||
{ "time": 0.9, "x": 1.045, "y": 0.99, "curve": "stepped" },
|
||||
{ "time": 0.9333, "x": 0.9, "y": 1.202 },
|
||||
{ "time": 1, "x": 1.045, "y": 0.99, "curve": "stepped" },
|
||||
{ "time": 1.0333, "x": 0.9, "y": 1.202 },
|
||||
{ "time": 1.1, "x": 1.045, "y": 0.99, "curve": "stepped" },
|
||||
{ "time": 1.1333, "x": 0.9, "y": 1.202 },
|
||||
{ "time": 1.2, "x": 1.045, "y": 0.99, "curve": "stepped" },
|
||||
{ "time": 1.2333, "x": 0.9, "y": 1.202 },
|
||||
{ "time": 1.3, "x": 1.045, "y": 0.99, "curve": "stepped" },
|
||||
{ "time": 1.3333, "x": 0.9, "y": 1.202 },
|
||||
{ "time": 1.4, "x": 1.045, "y": 0.99, "curve": "stepped" },
|
||||
{ "time": 1.4333, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"gun rotation": {
|
||||
"rotate": [
|
||||
{ "time": 0.7, "angle": 0 },
|
||||
{ "time": 0.7667, "angle": -120 },
|
||||
{ "time": 0.8333, "angle": 120 },
|
||||
{ "time": 0.9, "angle": 0 },
|
||||
{ "time": 0.9667, "angle": -120 },
|
||||
{ "time": 1.0333, "angle": 120 },
|
||||
{ "time": 1.1, "angle": 0 },
|
||||
{ "time": 1.1667, "angle": -120 },
|
||||
{ "time": 1.2333, "angle": 120 },
|
||||
{ "time": 1.3, "angle": 0 },
|
||||
{ "time": 1.3667, "angle": -120 },
|
||||
{ "time": 1.4333, "angle": 120 },
|
||||
{ "time": 1.5, "angle": 0 },
|
||||
{ "time": 1.5667, "angle": -120 },
|
||||
{ "time": 1.6333, "angle": 120 },
|
||||
{ "time": 1.7, "angle": 0 }
|
||||
]
|
||||
}
|
||||
},
|
||||
@ -1960,6 +2123,24 @@
|
||||
{ "time": 1.6333 },
|
||||
{ "time": 1.6667, "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0, "curve": "stepped" },
|
||||
{ "time": 2.5333, "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }
|
||||
],
|
||||
"gun2 rotation": [
|
||||
{ "time": 0.6333, "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 },
|
||||
{ "time": 0.7333, "translateMix": 0, "scaleMix": 0, "shearMix": 0, "curve": "stepped" },
|
||||
{ "time": 1.4667, "translateMix": 0, "scaleMix": 0, "shearMix": 0 },
|
||||
{ "time": 1.6, "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }
|
||||
],
|
||||
"gun3 rotation": [
|
||||
{ "time": 0.6333, "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 },
|
||||
{ "time": 0.7333, "translateMix": 0, "scaleMix": 0, "shearMix": 0, "curve": "stepped" },
|
||||
{ "time": 1.4667, "translateMix": 0, "scaleMix": 0, "shearMix": 0 },
|
||||
{ "time": 1.6, "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }
|
||||
],
|
||||
"gun4 rotation": [
|
||||
{ "time": 0.6333, "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 },
|
||||
{ "time": 0.7333, "translateMix": 0, "scaleMix": 0, "shearMix": 0, "curve": "stepped" },
|
||||
{ "time": 1.4667, "translateMix": 0, "scaleMix": 0, "shearMix": 0 },
|
||||
{ "time": 1.6, "rotateMix": 0, "translateMix": 0, "scaleMix": 0, "shearMix": 0 }
|
||||
]
|
||||
},
|
||||
"paths": {
|
||||
@ -2673,6 +2854,305 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"idle footplant": {
|
||||
"slots": {
|
||||
"front_fist": {
|
||||
"attachment": [
|
||||
{ "time": 0, "name": "front_fist_open" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"bones": {
|
||||
"torso": {
|
||||
"rotate": [
|
||||
{
|
||||
"time": 0,
|
||||
"angle": -5.62,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.8333,
|
||||
"angle": -9.66,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 1.6667, "angle": -5.62 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -6.5, "y": 0 }
|
||||
]
|
||||
},
|
||||
"front_upper_arm": {
|
||||
"rotate": [
|
||||
{
|
||||
"time": 0,
|
||||
"angle": -59.85,
|
||||
"curve": [ 0.493, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6667,
|
||||
"angle": -54.32,
|
||||
"curve": [ 0.324, 0.11, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 1.6667, "angle": -59.85 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -7.12, "y": -8.24 },
|
||||
{ "time": 0.6667, "x": -6.32, "y": -8.31 },
|
||||
{ "time": 1.6667, "x": -7.12, "y": -8.24 }
|
||||
]
|
||||
},
|
||||
"rear_upper_arm": {
|
||||
"rotate": [
|
||||
{
|
||||
"time": 0,
|
||||
"angle": 62.42,
|
||||
"curve": [ 0.504, 0.02, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.7333,
|
||||
"angle": 43.83,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 1.6667, "angle": 62.42 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -1.83, "y": -16.79 },
|
||||
{ "time": 0.6667, "x": 0.35, "y": -15.23 },
|
||||
{ "time": 1.6667, "x": -1.83, "y": -16.79 }
|
||||
]
|
||||
},
|
||||
"neck": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 0 },
|
||||
{ "time": 0.6667, "angle": 2.39 },
|
||||
{ "time": 1.6667, "angle": 0 }
|
||||
]
|
||||
},
|
||||
"front_thigh": {
|
||||
"rotate": [
|
||||
{
|
||||
"time": 0,
|
||||
"angle": 0.65,
|
||||
"curve": [ 0.236, 0.01, 0.559, 0.99 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6667,
|
||||
"angle": -4.34,
|
||||
"curve": [ 0.595, 0, 0.653, 1 ]
|
||||
},
|
||||
{ "time": 1.6667, "angle": 0.65 }
|
||||
],
|
||||
"translate": [
|
||||
{ "time": 0, "x": -13.4, "y": 6.7 }
|
||||
],
|
||||
"scale": [
|
||||
{
|
||||
"time": 0,
|
||||
"x": 0.897,
|
||||
"y": 1,
|
||||
"curve": [ 0.236, 0.01, 0.559, 0.99 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6667,
|
||||
"x": 0.826,
|
||||
"y": 1,
|
||||
"curve": [ 0.595, 0, 0.653, 1 ]
|
||||
},
|
||||
{ "time": 1.6667, "x": 0.897, "y": 1 }
|
||||
]
|
||||
},
|
||||
"front_shin": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -19.29 }
|
||||
],
|
||||
"scale": [
|
||||
{
|
||||
"time": 0,
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"curve": [ 0.236, 0.01, 0.559, 0.99 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6667,
|
||||
"x": 0.994,
|
||||
"y": 1,
|
||||
"curve": [ 0.595, 0, 0.653, 1 ]
|
||||
},
|
||||
{ "time": 1.6667, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"rear_thigh": {
|
||||
"rotate": [
|
||||
{
|
||||
"time": 0,
|
||||
"angle": 30.51,
|
||||
"curve": [ 0.236, 0.01, 0.559, 0.99 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6667,
|
||||
"angle": 40.15,
|
||||
"curve": [ 0.595, 0, 0.653, 1 ]
|
||||
},
|
||||
{ "time": 1.6667, "angle": 30.51 }
|
||||
]
|
||||
},
|
||||
"rear_shin": {
|
||||
"rotate": [
|
||||
{
|
||||
"time": 0,
|
||||
"angle": -23.83,
|
||||
"curve": [ 0.236, 0.01, 0.559, 0.99 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6667,
|
||||
"angle": -43.77,
|
||||
"curve": [ 0.595, 0, 0.653, 1 ]
|
||||
},
|
||||
{ "time": 1.6667, "angle": -23.83 }
|
||||
]
|
||||
},
|
||||
"front_foot": {
|
||||
"rotate": [
|
||||
{
|
||||
"time": 0,
|
||||
"angle": 5.14,
|
||||
"curve": [ 0.236, 0.01, 0.559, 0.99 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6667,
|
||||
"angle": 10.05,
|
||||
"curve": [ 0.595, 0, 0.653, 1 ]
|
||||
},
|
||||
{ "time": 1.6667, "angle": 5.14 }
|
||||
],
|
||||
"scale": [
|
||||
{ "time": 0, "x": 0.755, "y": 1.31 }
|
||||
]
|
||||
},
|
||||
"rear_foot": {
|
||||
"rotate": [
|
||||
{
|
||||
"time": 0,
|
||||
"angle": -7.34,
|
||||
"curve": [ 0.236, 0.01, 0.559, 0.99 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6667,
|
||||
"angle": 3.85,
|
||||
"curve": [ 0.595, 0, 0.653, 1 ]
|
||||
},
|
||||
{ "time": 1.6667, "angle": -7.34 }
|
||||
]
|
||||
},
|
||||
"rear_bracer": {
|
||||
"rotate": [
|
||||
{
|
||||
"time": 0,
|
||||
"angle": -17.16,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6667,
|
||||
"angle": 12.53,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 1.6667, "angle": -17.16 }
|
||||
]
|
||||
},
|
||||
"head": {
|
||||
"rotate": [
|
||||
{
|
||||
"time": 0,
|
||||
"angle": -5.51,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6667,
|
||||
"angle": -3.12,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 1.6667, "angle": -5.51 }
|
||||
]
|
||||
},
|
||||
"front_bracer": {
|
||||
"rotate": [
|
||||
{
|
||||
"time": 0,
|
||||
"angle": 45.47,
|
||||
"curve": [ 0.493, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6667,
|
||||
"angle": 41.34,
|
||||
"curve": [ 0.321, 0.11, 0.736, 0.92 ]
|
||||
},
|
||||
{ "time": 1.6667, "angle": 45.47 }
|
||||
]
|
||||
},
|
||||
"gun": {
|
||||
"rotate": [
|
||||
{
|
||||
"time": 0,
|
||||
"angle": 0,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6667,
|
||||
"angle": -15.59,
|
||||
"curve": [ 0.733, 0, 0.77, 0.99 ]
|
||||
},
|
||||
{ "time": 1.6667, "angle": 0 }
|
||||
]
|
||||
},
|
||||
"front_fist": {
|
||||
"rotate": [
|
||||
{
|
||||
"time": 0,
|
||||
"angle": -6.85,
|
||||
"curve": [ 0.493, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6667,
|
||||
"angle": -14.63,
|
||||
"curve": [ 0.324, 0.11, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 1.6667, "angle": -6.85 }
|
||||
],
|
||||
"scale": [
|
||||
{
|
||||
"time": 0,
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6667,
|
||||
"x": 0.8,
|
||||
"y": 1.101,
|
||||
"curve": [ 0.25, 0, 0.75, 1 ]
|
||||
},
|
||||
{ "time": 1.6667, "x": 1, "y": 1 }
|
||||
]
|
||||
},
|
||||
"hip": {
|
||||
"translate": [
|
||||
{
|
||||
"time": 0,
|
||||
"x": -6.64,
|
||||
"y": -23.02,
|
||||
"curve": [ 0.236, 0.01, 0.559, 0.99 ]
|
||||
},
|
||||
{
|
||||
"time": 0.6667,
|
||||
"x": 6.28,
|
||||
"y": -35.01,
|
||||
"curve": [ 0.595, 0, 0.653, 1 ]
|
||||
},
|
||||
{ "time": 1.6667, "x": -6.64, "y": -23.02 }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"idlebag": {
|
||||
"slots": {
|
||||
"front_fist": {
|
||||
@ -3854,6 +4334,70 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"one frame": {
|
||||
"bones": {
|
||||
"torso": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -40.91 }
|
||||
]
|
||||
},
|
||||
"front_upper_arm": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -82.02 }
|
||||
]
|
||||
},
|
||||
"front_bracer": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -20.01 }
|
||||
]
|
||||
},
|
||||
"front_thigh": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -52.83 }
|
||||
]
|
||||
},
|
||||
"front_shin": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 1.08 }
|
||||
]
|
||||
},
|
||||
"rear_upper_arm": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 79.86 }
|
||||
]
|
||||
},
|
||||
"rear_bracer": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -21.97 }
|
||||
]
|
||||
},
|
||||
"gun": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 22.35 }
|
||||
]
|
||||
},
|
||||
"neck": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 0.84 }
|
||||
]
|
||||
},
|
||||
"head": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": -25.39 }
|
||||
]
|
||||
},
|
||||
"rear_thigh": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 40.87 }
|
||||
]
|
||||
},
|
||||
"rear_shin": {
|
||||
"rotate": [
|
||||
{ "time": 0, "angle": 23.61 }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"pole": {
|
||||
"slots": {
|
||||
"eye": {
|
||||
@ -5045,6 +5589,23 @@
|
||||
{ "time": 0.0333, "name": "muzzle" },
|
||||
{ "time": 0.1667, "name": null }
|
||||
]
|
||||
},
|
||||
"muzzle2": {
|
||||
"color": [
|
||||
{
|
||||
"time": 0.0225,
|
||||
"color": "ffad76ff",
|
||||
"curve": [ 0.175, 0.43, 0.534, 0.75 ]
|
||||
},
|
||||
{
|
||||
"time": 0.0333,
|
||||
"color": "ffc197ff",
|
||||
"curve": [ 0.286, 0.99, 0.774, 1 ]
|
||||
},
|
||||
{ "time": 0.0667, "color": "ffffffff" },
|
||||
{ "time": 0.1, "color": "ffbc8fee" },
|
||||
{ "time": 0.1667, "color": "ffa18000" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"bones": {
|
||||
|
||||
@ -30,5 +30,5 @@ MonoBehaviour:
|
||||
- 0
|
||||
- 0.05
|
||||
- 0.05
|
||||
defaultMix: 0.1
|
||||
defaultMix: 0
|
||||
controller: {fileID: 0}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 49bb65eefe08e424bbf7a38bc98ec638
|
||||
timeCreated: 1505356401
|
||||
timeCreated: 1528393443
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName:
|
||||
@ -61,7 +61,7 @@ TextureImporter:
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1258,8 +1258,8 @@ namespace Spine.Unity.Editor {
|
||||
|
||||
#region SkeletonDataFileValidator
|
||||
internal static class SkeletonDataFileValidator {
|
||||
static int[][] compatibleBinaryVersions = { new[] { 3, 6, 0 }, new[] { 3, 5, 0 } };
|
||||
static int[][] compatibleJsonVersions = { new[] { 3, 6, 0 }, new[] { 3, 7, 0 }, new[] { 3, 5, 0 } };
|
||||
static readonly int[][] compatibleBinaryVersions = { new[] { 3, 7, 0 } };
|
||||
static readonly int[][] compatibleJsonVersions = { new[] { 3, 7, 0 }, new[] { 3, 6, 0 }, new[] { 3, 5, 0 } };
|
||||
//static bool isFixVersionRequired = false;
|
||||
|
||||
public static bool CheckForValidSkeletonData (string skeletonJSONPath) {
|
||||
|
||||
@ -14,7 +14,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
|
||||
|
||||
## Spine version
|
||||
|
||||
spine-unity works with data exported from Spine 3.6.xx.
|
||||
spine-unity works with data exported from Spine 3.7.xx.
|
||||
|
||||
spine-unity supports all Spine features.
|
||||
|
||||
@ -24,33 +24,13 @@ Unity's physics components do not support dynamically assigned vertices so they
|
||||
|
||||
A Spine skeleton GameObject (a GameObject with a SkeletonAnimation component on it) can be used throughout Unity like any other GameObject. It renders through `MeshRenderer`.
|
||||
|
||||
`SkeletonUtility` allows other GameObjects to interact with the Spine skeleton, to control bones in the skeleton, be controlled by the skeleton, attach colliders, etc.
|
||||
|
||||
For advanced uses and specific optimization cases, Spine skeletons can be "baked" into native Unity animation assets. Since Unity's animation feature-set does not overlap with Spine's perfectly, baked assets have many limitations and removed features. For most uses, baking is not necessary.
|
||||
|
||||
The [Spine Unity Features Tutorial](http://esotericsoftware.com/forum/Unity-Feature-Tutorials-4839) forum thread has many videos on how to use spine-unity.
|
||||
|
||||
For more documentation, see [spine-unity Documentation](http://esotericsoftware.com/spine-unity).
|
||||
See [spine-unity Documentation](http://esotericsoftware.com/spine-unity).
|
||||
|
||||
## Quick installation
|
||||
|
||||
Download the latest Spine-Unity unitypackage from the download page: http://esotericsoftware.com/spine-unity-download/
|
||||
|
||||
In the `Assets/Examples/Scenes` folder you will find many example scenes that demonstrate various spine-unity features.
|
||||
|
||||
## Manual installation
|
||||
|
||||
You can also choose to setup and run from the Git files:
|
||||
|
||||
1. Download the Spine Runtimes source using [git](https://help.github.com/articles/set-up-git) or by downloading it as a zip via the download button above.
|
||||
2. spine-unity requires both `spine-csharp` and `spine-unity`.
|
||||
- Copy the contents of `spine-csharp/src` to `Assets/spine-csharp` in your Unity project directory.
|
||||
- Copy the contents of `spine-unity/Assets` to `Assets` in your Unity project directory. Including `Gizmos` and `spine-unity` and `Examples` if you want them.
|
||||
|
||||
> - `Gizmos` is a [special folder](http://docs.unity3d.com/Manual/SpecialFolders.html) in Unity. It needs to be at the root of your assets folder to function correctly. (ie. `Assets/Gizmos`
|
||||
- `spine-csharp` and `spine-unity` can be placed in any subfolder you want.
|
||||
|
||||
For more information on importing the runtime into your Unity project, see the documentation sections on [installing](http://esotericsoftware.com/spine-unity#Installing) and [updating](http://esotericsoftware.com/spine-unity#Updating-Your-Projects-SpineUnity-Runtime),
|
||||
In the `Assets/Spine Examples/Scenes` folder you will find many example scenes that demonstrate various spine-unity features.
|
||||
|
||||
----------
|
||||
|
||||
@ -64,5 +44,4 @@ For more information on importing the runtime into your Unity project, see the d
|
||||
|
||||
- This slightly outdated [spine-unity tutorial video](http://www.youtube.com/watch?v=x1umSQulghA) may still be useful.
|
||||
- Atlas images should use **Premultiplied Alpha** when using the shaders that come with spine-unity (`Spine/Skeleton` or `Spine/SkeletonLit`).
|
||||
- Texture sizes: Unity scales large images down by default if they exceed 1024x1024. This can cause atlas coordinates to be incorrect. To fix this, make sure to set import settings in the Inspector for any large atlas image you have so Unity does not scale it down.
|
||||
- Texture artifacts from compression: Unity's 2D project defaults import new images added to the project with the Texture Type "Sprite". This can cause artifacts when using the `Spine/Skeleton` shader. To avoid these artifacts, make sure the Texture Type is set to "Texture". spine-unity's automatic import will attempt to apply these settings but in the process of updating your textures, these settings may be reverted.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user