diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f74ca37c..255ef3267 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ * **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. + * The spine-cocos2dx and spine-ue4 runtimes are now based on spine-cpp. See below for changes. * **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 @@ -35,15 +36,6 @@ * 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 @@ -56,13 +48,41 @@ * 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 +## C++ +* ** Additions ** + * Added C++ Spine runtime. See the [spine-cpp Runtime Guide](https://esotericsoftware.com/spine-cpp) for more information on spine-cpp. + +### 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. +* **Breaking change**: Switched from [spine-c](spine-c) to [spine-cpp](spine-cpp) as the underlying Spine runtime. See the [spine-cpp Runtime Guide](https://esotericsoftware.com/spine-cpp) for more information on spine-cpp. + * Added `Cocos2dAttachmentLoader` to be used when constructing an `Atlas`. Used by default by `SkeletonAnimation` and `SkeletonRenderer` when creating instances via the `createXXX` methods. + * All C structs and enums `spXXX` have been replaced with their C++ equivalents `spine::XXX` in all public interfaces. + * All instantiations via `new` of C++ classes from spine-cpp must contain `(__FILE__, __LINE__)`. This allows the tracking of instantations and detection of memory leaks via the `spine::DebugExtension`. + +### SFML +* Create a second SFML backend using [spine-cpp](spine-cpp/). See the [spine-cpp Runtime Guide](https://esotericsoftware.com/spine-cpp) for more information on spine-cpp. +* 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. + * Using UE4 `FMemory` allocator by default. This should fix issues on some consoles. + * **Breaking change** moved away from `RuntimeMeshComponent`, as its maintainance has seized, back to `ProceduralMeshComponent`. Existing projects should just work. However, if you run into issues, you may have to remove the old `SpineSkeletonRendererComponent` and add a new one to your existing actors. + * **Breaking change** due to the removal of `RuntimeMeshComponent` and reversal to `ProceduralMeshComponent`, two color tinting is currently not supported. `ProceduralMeshComponent` does not support enough vertex attributes for us to encode the second color in the vertex stream. You can remove the `RuntimeMeshComponent/` directory from your plugins directory and remove the component from any `build.cs` files that may reference it. + * **Breaking change**: Switched from [spine-c](spine-c) to [spine-cpp](spine-cpp) as the underlying Spine runtime. See the [spine-cpp Runtime Guide](https://esotericsoftware.com/spine-cpp) for more information on spine-cpp. + * All C structs and enums `spXXX` have been replaced with their C++ equivalents `spine::XXX` in all public interfaces. + * All instantiations via `new` of C++ classes from spine-cpp must contain `(__FILE__, __LINE__)`. This allows the tracking of instantations and detection of memory leaks via the `spine::DebugExtension`. ## C# ## * **Breaking changes** diff --git a/spine-as3/README.md b/spine-as3/README.md index 28b8e11f4..f38ae8759 100644 --- a/spine-as3/README.md +++ b/spine-as3/README.md @@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f ## Spine version -spine-as3 works with data exported from Spine 3.6.xx. +spine-as3 works with data exported from Spine 3.7.xx. spine-as3 supports all Spine features, including meshes. If using the `spine.flash` classes for rendering, meshes are not supported. diff --git a/spine-c/README.md b/spine-c/README.md index accbb0715..041add2bc 100644 --- a/spine-c/README.md +++ b/spine-c/README.md @@ -1,8 +1,6 @@ # spine-c -The spine-c runtime provides basic functionality to load and manipulate [Spine](http://esotericsoftware.com) skeletal animation data using ANSI C. It does not perform rendering but can be extended to enable Spine animations for other C-based projects, including C++ or Objective-C projects. - -For a pure C++ API, you may consider the third party Spine runtime [Chobolabs/spine-cpp](https://github.com/Chobolabs/spine-cpp). +The spine-c runtime provides basic functionality to load and manipulate [Spine](http://esotericsoftware.com) skeletal animation data using ANSI C89. It does not perform rendering but can be extended to enable Spine animations for other C-based projects, including C++ or Objective-C projects. ## Licensing @@ -12,19 +10,20 @@ The Spine Runtimes are developed with the intent to be used with data exported f ## Spine version -spine-c works with data exported from Spine 3.6.xx. +spine-c works with data exported from Spine 3.7.xx. spine-c supports all Spine features. ## Setup 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. -1. Open the `spine-c.sln` Visual C++ 2010 Express project file. For other IDEs, you will need to create a new project and import the source. - -Alternatively, the contents of the `spine-c/spine-c/src` and `spine-c/spine-c/include` directories can be copied into your project. Be sure your header search is configured to find the contents of the `spine-c/spine-c/include` directory. Note that the includes use `spine/Xxx.h`, so the `spine` directory cannot be omitted when copying the files. +1. Copy the contents of the `spine-c/spine-c/src` and `spine-c/spine-c/include` directories into your project. Be sure your header search is configured to find the contents of the `spine-c/spine-c/include` directory. Note that the includes use `spine/Xxx.h`, so the `spine` directory cannot be omitted when copying the files. If `SPINE_SHORT_NAMES` is defined, the `sp` prefix for all structs and functions is optional. Only use this if the spine-c names won't cause a conflict. +## Usage +### [Please see the spine-c guide for full documentation](http://esotericsoftware.com/spine-c) + ## Extension Extending spine-c requires implementing three methods: @@ -37,12 +36,11 @@ With these implemented, the spine-c API can then be used to load Spine animation For example, `AtlasAttachmentLoader` is typically used to load attachments when using a Spine texture atlas. When `AtlasAttachmentLoader` loads a `RegionAttachment`, the attachment's `void* rendererObject` is set to an `AtlasRegion`. Rendering code can then obtain the `AtlasRegion` from the attachment, get the `AtlasPage` it belongs to, and get the page's `void* rendererObject`. This is the renderer specific texture object set by `_spAtlasPage_createTexture`. Attachment loading can be [customized](http://esotericsoftware.com/spine-using-runtimes/#attachmentloader) if not using `AtlasAttachmentLoader` or to provider different renderer specific data. -[spine-sfml](../spine-sfml/src/spine/spine-sfml.cpp#L39) serves as a simple example of extending spine-c. +[spine-sfml](../spine-sfml/src/c/spine/spine-sfml.cpp#L39) serves as a simple example of extending spine-c. spine-c uses an OOP style of programming where each "class" is made up of a struct and a number of functions prefixed with the struct name. More detals about how this works are available in [extension.h](spine-c/include/spine/extension.h#L2). This mechanism allows you to provide your own implementations for `spAttachmentLoader`, `spAttachment` and `spTimeline`, if necessary. ## Runtimes extending spine-c -- [spine-cocos2d-iphone](../spine-cocos2d-objc) -- [spine-cocos2dx](../spine-cocos2dx) +- [spine-cocos2d-objc](../spine-cocos2d-objc) - [spine-sfml](../spine-sfml) diff --git a/spine-cocos2d-objc/README.md b/spine-cocos2d-objc/README.md index 6d37066c8..154dbb9ad 100644 --- a/spine-cocos2d-objc/README.md +++ b/spine-cocos2d-objc/README.md @@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f ## Spine version -spine-cocos2d-objc works with data exported from Spine 3.6.x. +spine-cocos2d-objc works with data exported from Spine 3.7.x. spine-cocos2d-objc supports all Spine features. diff --git a/spine-cocos2dx/README.md b/spine-cocos2dx/README.md index b29897750..58c4911a8 100644 --- a/spine-cocos2dx/README.md +++ b/spine-cocos2dx/README.md @@ -1,6 +1,6 @@ # spine-cocos2dx v3.x -The spine-cocos2dx runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [cocos2d-x](http://www.cocos2d-x.org/). spine-cocos2dx is based on [spine-cpp](https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-cpp). +The spine-cocos2dx runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [cocos2d-x](http://www.cocos2d-x.org/). spine-cocos2dx is based on [spine-cpp](../spine-cpp). ## Licensing @@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f ## Spine version -spine-cocos2dx works with data exported from Spine 3.6.xx. +spine-cocos2dx works with data exported from Spine 3.7.xx. spine-cocos2dx supports all Spine features. @@ -26,7 +26,7 @@ The setup for cocos2d-x differs from most other Spine Runtimes because the cocos 4. Add the folders `spine-cpp/spine-cpp/include` and `spine-cocos2dx/src` to your header search path. Note that includes are specified as `#inclue `, so the `spine` directory cannot be omitted when copying the source files. ## Example -The Spine cocos2d-x example works on Windows and Mac OS X. +The Spine cocos2d-x example works on Windows, Mac OS X, iOS and Android. ### Windows 1. Install [Visual Studio 2015 Community](https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx) diff --git a/spine-corona/README.md b/spine-corona/README.md index ad4451056..eb820d75b 100644 --- a/spine-corona/README.md +++ b/spine-corona/README.md @@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f ## Spine version -spine-corona works with data exported from Spine 3.6.xx. +spine-corona works with data exported from Spine 3.7.xx. spine-corona supports all Spine features. diff --git a/spine-cpp/README.md b/spine-cpp/README.md index 29153cf4d..f4f5a523e 100644 --- a/spine-cpp/README.md +++ b/spine-cpp/README.md @@ -10,30 +10,38 @@ The spine Runtimes are developed with the intent to be used with data exported f ## spine version -spine-cpp works with data exported from spine 3.6.xx. +spine-cpp works with data exported from spine 3.7.xx. spine-cpp supports all spine features. ## Setup 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. Create a new project and import the source. - -Alternatively, the contents of the `spine-cpp/spine-cpp/src` and `spine-cpp/spine-cpp/include` directories can be copied into your project. Be sure your header search is configured to find the contents of the `spine-cpp/spine-cpp/include` directory. Note that the includes use `spine/Xxx.h`, so the `spine` directory cannot be omitted when copying the files. +2. Copy the contents of the `spine-cpp/spine-cpp/src` and `spine-cpp/spine-cpp/include` directories into your project. Be sure your header search is configured to find the contents of the `spine-cpp/spine-cpp/include` directory. Note that the includes use `spine/Xxx.h`, so the `spine` directory cannot be omitted when copying the files. ## Extension -Extending spine-cpp requires implementing both the SpineExtension class (which has a handy default instance) and the TextureLoader class: +Extending spine-cpp requires implementing both the `SpineExtension` class and the TextureLoader class: -spine::SpineExtension::setInstance(spine::DefaultSpineExtension::getInstance()); +``` +#include +void spine::SpineExtension *spine::getDefaultExtension() { + return new spine::DefaultExtension(); +} -class MyTextureLoader : public TextureLoader +class MyTextureLoader : public spine::TextureLoader { - virtual void load(AtlasPage& page, const String& path) { // TODO } + virtual void load(spine::AtlasPage& page, const spine::String& path) { + void* texture = ... load the texture based on path ... + page->setRendererObject(texture); // use the texture later in your rendering code + } virtual void unload(void* texture) { // TODO } }; +``` ## Runtimes extending spine-cpp -- Coming Soon! +- [spine-sfml](../spine-sfml/cpp) +- [spine-cocos2dx](../spine-cocos2dx) +- [spine-ue4](../spine-ue4) diff --git a/spine-js/README.md b/spine-js/README.md index 0b65d77a9..369df50a5 100644 --- a/spine-js/README.md +++ b/spine-js/README.md @@ -1,3 +1,3 @@ # spine-js -spine-js has been deprecated and is superseded by [spine-ts](https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-ts). The most recent version of spine-js can be found in the [spine-js branch](https://github.com/EsotericSoftware/spine-runtimes/tree/spine-js/spine-js) +spine-js has been deprecated and is superseded by [spine-ts](../spine-ts). diff --git a/spine-libgdx/README.md b/spine-libgdx/README.md index 535c7a526..d303551fb 100644 --- a/spine-libgdx/README.md +++ b/spine-libgdx/README.md @@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f ## Spine version -spine-libgdx works with data exported from Spine 3.6.xx. +spine-libgdx works with data exported from Spine 3.7.xx. spine-libgdx supports all Spine features and is the reference runtime implementation. diff --git a/spine-love/README.md b/spine-love/README.md index 378556198..6bb5525f9 100644 --- a/spine-love/README.md +++ b/spine-love/README.md @@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f ## Spine version -spine-love works with data exported from Spine 3.6.x. +spine-love works with data exported from Spine 3.7.x. spine-love supports all Spine features except for blending modes other than normal. @@ -26,7 +26,7 @@ Alternatively, the `spine-lua` and `spine-love/spine-love` directories can be co ## Notes - * Two enable two color tinting, pass `true` to `SkeletonRenderer.new()`. + * To enable two color tinting, pass `true` to `SkeletonRenderer.new()`. ## Examples diff --git a/spine-lua/README.md b/spine-lua/README.md index 7a9115ae8..3c40b6ea5 100644 --- a/spine-lua/README.md +++ b/spine-lua/README.md @@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f ## Spine version -spine-lua works with data exported from Spine 3.6.xx. +spine-lua works with data exported from Spine 3.7.xx. spine-lua supports all Spine features. diff --git a/spine-monogame/README.md b/spine-monogame/README.md index a04303cea..fb4a1c48e 100644 --- a/spine-monogame/README.md +++ b/spine-monogame/README.md @@ -1,6 +1,6 @@ # spine-monogame -The spine-monogame runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [MonoGame](http://monogame.codeplex.com/). spine-monogame is based on [spine-xna](https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-xna) and adds MonoGame project files. +The spine-monogame runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [MonoGame](http://monogame.codeplex.com/). spine-monogame is based on [spine-xna](../spine-xna) and adds MonoGame project files. ## Licensing @@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f ## Spine version -spine-monogame works with data exported from Spine 3.6.xx. +spine-monogame works with data exported from Spine 3.7.xx. spine-monogame supports all Spine features. diff --git a/spine-sfml/c/README.md b/spine-sfml/c/README.md index 834641813..fabc66903 100644 --- a/spine-sfml/c/README.md +++ b/spine-sfml/c/README.md @@ -1,6 +1,6 @@ # spine-sfml -The spine-sfml runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [SFML](http://www.sfml-dev.org/). spine-sfml is based on [spine-c](../spine-c). +The spine-sfml runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [SFML](http://www.sfml-dev.org/). spine-sfml is based on [spine-c](../../spine-c). ## Licensing @@ -10,11 +10,9 @@ The Spine Runtimes are developed with the intent to be used with data exported f ## Spine version -spine-sfml works with data exported from Spine 3.6.xx. +spine-sfml works with data exported from Spine 3.7.xx. -spine-sfml supports all Spine features. - -spine-sfml does not yet support loading the binary format. +spine-sfml supports all Spine features except two color tinting. ## Usage 1. Create a new SFML project. See the [SFML documentation](http://www.sfml-dev.org/tutorials/2.1/) or have a look at the example in this repository. diff --git a/spine-sfml/cpp/README.md b/spine-sfml/cpp/README.md index 834641813..b91bc1e24 100644 --- a/spine-sfml/cpp/README.md +++ b/spine-sfml/cpp/README.md @@ -1,6 +1,6 @@ # spine-sfml -The spine-sfml runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [SFML](http://www.sfml-dev.org/). spine-sfml is based on [spine-c](../spine-c). +The spine-sfml runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [SFML](http://www.sfml-dev.org/). spine-sfml is based on [spine-c](../../spine-cpp). ## Licensing @@ -10,17 +10,15 @@ The Spine Runtimes are developed with the intent to be used with data exported f ## Spine version -spine-sfml works with data exported from Spine 3.6.xx. +spine-sfml works with data exported from Spine 3.7.xx. -spine-sfml supports all Spine features. - -spine-sfml does not yet support loading the binary format. +spine-sfml supports all Spine features except two color tinting. ## Usage 1. Create a new SFML project. See the [SFML documentation](http://www.sfml-dev.org/tutorials/2.1/) or have a look at the example in this repository. 2. Download the Spine Runtimes source using git (`git clone https://github.com/esotericsoftware/spine-runtimes`) or download it as a zip via the download button above. -3. Add the sources from `spine-c/spine-c/src/spine` and `spine-sfml/src/spine` to your project -4. Add the folder `spine-c/spine-c/include` to your header search path. Note that includes are specified as `#inclue `, so the `spine` directory cannot be omitted when copying the source files. +3. Add the sources from `spine-cpp/spine-cpp/src/spine` and `spine-sfml/src/spine` to your project +4. Add the folder `spine-cpp/spine-cpp/include` to your header search path. Note that includes are specified as `#inclue `, so the `spine` directory cannot be omitted when copying the source files. See the [Spine Runtimes documentation](http://esotericsoftware.com/spine-documentation#runtimesTitle) on how to use the APIs or check out the Spine SFML example. @@ -41,7 +39,7 @@ The Spine SFML example works on Windows, Linux and Mac OS X. 11. Select `Debugging` in the left-hand list, then set `Working Directory` to `$(OutputPath)` 12. Click `Local Windows Debugger` to run the example -The entire example code is contained in [main.cpp](example/main.cpp#L61) +The entire example code is contained in [main.cpp](example/main.cpp) ### Linux 1. Install the SFML dependencies, e.g. on Ubuntu/Debian via `sudo apt install libsfml-dev` diff --git a/spine-starling/README.md b/spine-starling/README.md index 3032df02a..b43c67979 100644 --- a/spine-starling/README.md +++ b/spine-starling/README.md @@ -1,6 +1,6 @@ # spine-starling -The spine-starling runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [Starling 2.0](http://gamua.com/starling/). spine-starling is based on [spine-as3](https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-as3). +The spine-starling runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [Starling 2.0](http://gamua.com/starling/). spine-starling is based on [spine-as3](../spine-as3). ## Licensing @@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f ## Spine version -spine-starling works with data exported from Spine 3.6.xx. +spine-starling works with data exported from Spine 3.7.xx. spine-starling supports all Spine features. @@ -41,6 +41,6 @@ The Spine AS3 example works on Windows, Linux and Mac OS X. This guide assumes y ## Examples -[Spine atlas example](spine-starling-example/src/AtlasExample.as#L21) -[Starling atlas example](spine-starling-example/src/StarlingAtlasExample.as#L18) -[Skin example](spine-starling-example/src/GoblinsExample.as#L21) +- [Spine atlas example](spine-starling-example/src/AtlasExample.as#L21) +- [Starling atlas example](spine-starling-example/src/StarlingAtlasExample.as#L18) +- [Skin example](spine-starling-example/src/GoblinsExample.as#L21) diff --git a/spine-threejs/README.md b/spine-threejs/README.md index 02635e2ef..4b06f9418 100644 --- a/spine-threejs/README.md +++ b/spine-threejs/README.md @@ -1,3 +1,3 @@ # spine-threejs -spine-threejs has been deprecated and is superseded by [spine-ts THREE.JS backend](../spine-ts). The most recent version of spine-threejs can be found in the [spine-threejs branch](https://github.com/EsotericSoftware/spine-runtimes/tree/spine-threejs/spine-threejs) \ No newline at end of file +spine-threejs has been deprecated and is superseded by [spine-ts THREE.JS backend](../spine-ts). \ No newline at end of file diff --git a/spine-ts/README.md b/spine-ts/README.md index 3f7f18599..152df60b9 100644 --- a/spine-ts/README.md +++ b/spine-ts/README.md @@ -18,7 +18,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f ## Spine version -spine-ts works with data exported from Spine 3.6.xx. +spine-ts works with data exported from Spine 3.7.xx. spine-ts WebGL & Widget backends supports all Spine features. diff --git a/spine-ue4/Content/GettingStarted/01-basic-animation.umap b/spine-ue4/Content/GettingStarted/01-basic-animation.umap index 3e75454db..ffdfa2eb3 100644 Binary files a/spine-ue4/Content/GettingStarted/01-basic-animation.umap and b/spine-ue4/Content/GettingStarted/01-basic-animation.umap differ diff --git a/spine-ue4/Content/GettingStarted/01-basic-animation_2.uasset b/spine-ue4/Content/GettingStarted/01-basic-animation_2.uasset deleted file mode 100644 index 2272e48ad..000000000 Binary files a/spine-ue4/Content/GettingStarted/01-basic-animation_2.uasset and /dev/null differ diff --git a/spine-ue4/Content/GettingStarted/06-cpp.umap b/spine-ue4/Content/GettingStarted/06-cpp.umap index ae79698fb..549c3767f 100644 Binary files a/spine-ue4/Content/GettingStarted/06-cpp.umap and b/spine-ue4/Content/GettingStarted/06-cpp.umap differ diff --git a/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitAdditiveMaterial.uasset b/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitAdditiveMaterial.uasset index 7af2b68cd..26d0e83d2 100644 Binary files a/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitAdditiveMaterial.uasset and b/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitAdditiveMaterial.uasset differ diff --git a/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitAdditiveMaterialPMC.uasset b/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitAdditiveMaterialPMC.uasset deleted file mode 100644 index 56a2c67bc..000000000 Binary files a/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitAdditiveMaterialPMC.uasset and /dev/null differ diff --git a/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitMultiplyMaterial.uasset b/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitMultiplyMaterial.uasset index 75a0af765..fd3eea947 100644 Binary files a/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitMultiplyMaterial.uasset and b/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitMultiplyMaterial.uasset differ diff --git a/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitMultiplyMaterialPMC.uasset b/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitMultiplyMaterialPMC.uasset deleted file mode 100644 index 8b686f9e4..000000000 Binary files a/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitMultiplyMaterialPMC.uasset and /dev/null differ diff --git a/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitNormalMaterial.uasset b/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitNormalMaterial.uasset index f68e39f99..bea17a306 100644 Binary files a/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitNormalMaterial.uasset and b/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitNormalMaterial.uasset differ diff --git a/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitNormalMaterialPMC.uasset b/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitNormalMaterialPMC.uasset deleted file mode 100644 index 52d257e31..000000000 Binary files a/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitNormalMaterialPMC.uasset and /dev/null differ diff --git a/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitScreenMaterial.uasset b/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitScreenMaterial.uasset index 271a7c885..541f616e8 100644 Binary files a/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitScreenMaterial.uasset and b/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitScreenMaterial.uasset differ diff --git a/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitScreenMaterialPMC.uasset b/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitScreenMaterialPMC.uasset deleted file mode 100644 index c597e3f91..000000000 Binary files a/spine-ue4/Plugins/SpinePlugin/Content/SpineUnlitScreenMaterialPMC.uasset and /dev/null differ diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonRendererComponent.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonRendererComponent.cpp index 56807f3a9..6ea52d9a2 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonRendererComponent.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonRendererComponent.cpp @@ -43,16 +43,16 @@ USpineSkeletonRendererComponent::USpineSkeletonRendererComponent (const FObjectI bTickInEditor = true; bAutoActivate = true; - static ConstructorHelpers::FObjectFinder NormalMaterialRef(TEXT("/SpinePlugin/SpineUnlitNormalMaterialPMC")); + static ConstructorHelpers::FObjectFinder NormalMaterialRef(TEXT("/SpinePlugin/SpineUnlitNormalMaterial")); NormalBlendMaterial = NormalMaterialRef.Object; - static ConstructorHelpers::FObjectFinder AdditiveMaterialRef(TEXT("/SpinePlugin/SpineUnlitAdditiveMaterialPMC")); + static ConstructorHelpers::FObjectFinder AdditiveMaterialRef(TEXT("/SpinePlugin/SpineUnlitAdditiveMaterial")); AdditiveBlendMaterial = AdditiveMaterialRef.Object; - static ConstructorHelpers::FObjectFinder MultiplyMaterialRef(TEXT("/SpinePlugin/SpineUnlitMultiplyMaterialPMC")); + static ConstructorHelpers::FObjectFinder MultiplyMaterialRef(TEXT("/SpinePlugin/SpineUnlitMultiplyMaterial")); MultiplyBlendMaterial = MultiplyMaterialRef.Object; - static ConstructorHelpers::FObjectFinder ScreenMaterialRef(TEXT("/SpinePlugin/SpineUnlitScreenMaterialPMC")); + static ConstructorHelpers::FObjectFinder ScreenMaterialRef(TEXT("/SpinePlugin/SpineUnlitScreenMaterial")); ScreenBlendMaterial = ScreenMaterialRef.Object; TextureParameterName = FName(TEXT("SpriteTexture")); diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/SpinePlugin.Build.cs b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/SpinePlugin.Build.cs index 750c0a645..f5d2ffc70 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/SpinePlugin.Build.cs +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/SpinePlugin.Build.cs @@ -8,9 +8,10 @@ namespace UnrealBuildTool.Rules { PublicIncludePaths.AddRange(new string[] { "SpinePlugin/Public", "SpinePlugin/Public/spine-cpp/include" }); PrivateIncludePaths.AddRange(new string[] { "SpinePlugin/Private", "SpinePlugin/Public/spine-cpp/include" }); - PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "RHI", "RenderCore", "ShaderCore", "ProceduralMeshComponent", "UMG", "Slate", "SlateCore" }); - OptimizeCode = CodeOptimization.Never; - PublicDefinitions.Add("SPINE_UE4"); + PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "RHI", "RenderCore", "ShaderCore", "ProceduralMeshComponent", "UMG", "Slate", "SlateCore" }); + Definitions.Add("SPINE_UE4"); + // In Unreal 4.20, comment the above line, uncomment the below line + // PublicDefinitions.Add("SPINE_UE4"); } } } diff --git a/spine-ue4/README.md b/spine-ue4/README.md index 70c655fee..c0993c1d3 100644 --- a/spine-ue4/README.md +++ b/spine-ue4/README.md @@ -1,5 +1,5 @@ # spine-ue4 -The spine-ue4 runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [Unreal Engine 4.15+](https://www.unrealengine.com/). spine-ue4 is based on [spine-cpp](../spine-cpp). +The spine-ue4 runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [Unreal Engine 4.17+](https://www.unrealengine.com/). spine-ue4 is based on [spine-cpp](../spine-cpp). ## Licensing diff --git a/spine-ue4/SpineUE4.uproject b/spine-ue4/SpineUE4.uproject index 58625c7ce..dbd7825f0 100644 --- a/spine-ue4/SpineUE4.uproject +++ b/spine-ue4/SpineUE4.uproject @@ -1,6 +1,6 @@ { "FileVersion": 3, - "EngineAssociation": "4.19", + "EngineAssociation": "4.17", "Category": "", "Description": "", "Modules": [ diff --git a/spine-xna/README.md b/spine-xna/README.md index 440370df5..7dbb887f9 100644 --- a/spine-xna/README.md +++ b/spine-xna/README.md @@ -1,6 +1,6 @@ # spine-xna -The spine-xna runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [XNA](http://msdn.microsoft.com/xna/). spine-xna is based on [spine-csharp](https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-csharp). +The spine-xna runtime provides functionality to load, manipulate and render [Spine](http://esotericsoftware.com) skeletal animation data using [XNA](http://msdn.microsoft.com/xna/). spine-xna is based on [spine-csharp](../spine-csharp). ## Licensing @@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f ## Spine version -spine-xna works with data exported from Spine 3.6.xx. +spine-xna works with data exported from Spine 3.7.xx. spine-xna supports all Spine features.