• Unity
  • Need more info about cross-license cross-platform Spine use

Hi, I'm new to Spine and my team is considering to use it in our next project. We're on a tight schedule so we hope the learning curve isn't too steep.
It is a 2D side-view interactive story.
Our primary use of Spine would be to animate the main character (mainly common animation such as walking, idle, simple interactions) and NPCs. It would be great (just because we're really in a hurry if we could just reskin the skeleton to use the same animations for the NPCs as well.
We're using the latest unity stable version, and we'll be using the latest Spine Unity runtimes version.

I have a few questions before actually choosing to buy all the required licenses. Could you please shed some light on this points?

1) We're hiring an animator to use Spine, but we still don't know which version is he going to use, and if he's going to work on Mac or Windows. Should I, the lead developer and programmer buy a license of Spine or can I use his runtimes and license to make the project work?

2) Is Spine really cross platform and mobile friendly? I have to produce both Android and iOS version of the same game.

3) Does spine support third party shaders? I need to have lit sprites, and I was using 2DFX from the Unity Asset Store (https://www.assetstore.unity3d.com/en/#!/content/42566) which applies a script to the sprite to apply useful FX like blur, flaming, fading, and extended blend modes. Bump mapped materials could be an option.

4) Do I and the animator need to have the same license? I only need the runtimes. Do the runtimes work appropriately if the animator provides me a Spine animation built with exclusive Pro feature?

5) Is the Spine export format for Unity the same, if the animator uses a Mac and the main project with the runtimes is working on a PC? Are they compatible?

6) Are there any known issues about using the latest Unity build 5.4.2f2 and the currently non beta version of Spine?

7) Should I and the animator use the same Spine version, Unity version, OS version to be able to cooperate without issues? Can we still use different OS when importing/exporting?

8) Can I do animation blending and flipping?

9) If I flip a Spine animation, are the normals of the sprite going to be reversed as well (undesirable effect), or should I use negative X scaling as I do for single faced sprites?

10) Is Spine ready to be used with common Unity animation systems like Animations, state animations and Mecanim? I'm using a third party asset for animation handling (Platformer Pro). Will Spine runtimes automatically blend from one animation state to another?

11) We'd like to have nicely looking turning animation with Spine. Or something like the humanlike player turning toward the background (his back facing the player) to interact with something. We'd love to make this kind of smoothly and with a fluid motion. Is it possible with Spine? What's the best practice to be able to do that?

12) Does Spine support for localized blends (morphs), or override part of the bone animations, such those needed to make the main character open and close his mouth, thus making him speak while animating the body with different animations and blends?

13) Can we switch the "skin" of the animation at runtime, thus allowing us to use the same animation system for both the main character and all NPCs?

Thanks for your time ๐Ÿ™‚

Related Discussions
...

I can't answer the license stuff. But here's some answers for you:

  1. Should be mobile friendly. A few of the Angry Birds titles used Spine. And that was even back in 2013 or something. Performance should be even less of a problem now.

But really, that depends on how many Spine skeletons you intend to instantiate. You can download the runtime, build it a sample scene for mobile and see how it performs on your target device to find out for yourself if you spawn a bunch of them.

  1. You should make sure your shaders support multiple overlapping sprites, not just sprite sheets. But yes, Spine comes bundled with super basic shaders that are just there to get you started. You can replace them with your own shader code.
    This is a sample of a shader a forum user made: Sprite Shaders for Unity
    It wasn't made specifically or exclusively for Spine, but it works with Spine skeletons.

  2. Yes. It would be a pretty terrible product if it didn't, IMO. :p

Spine is the same program across all OSes. Spine is written in Java and runs in a JVM.

  1. Nothing that would prevent you from shipping.

  2. Each feature release of Spine introduces changes to the export format, so the runtime needs to match the feature release of the Spine editor used to export the skeleton data (json or binary) files. Here's info on version management: Spine editor and runtime version management

  3. It does both, if I understand the question correctly.

  4. If you use Spine's "Add Normals" checkbox, it just pushes an array of Vector3.back to all the vertices, regardless if skeleton flip is on or off. If you want it to be totally agnostic and save on the memory and cycles of pushing one Vector3.back per vertex, your shader code should assume that the normals are always Vector3.back. You can even code this to be camera-independent.

  5. Unity's animation systems don't expose their properties as much as we'd like. The SkeletonAnimator component is an attempt to allow people who are more comfortable with Mecanim to use a Mecanim animation state machine as their state-managing model. The crossfading and blendtrees work but you also get all the weird bugs and quirks that Mecanim has even without stuff bolted on to them. (some events not firing, times not hitting the extremes)

  6. This is something a trained animator should know.

  7. In Spine, you can key the shape of the whole mesh. You can also skin/weight parts of the mesh using bones.

  8. Yes.

Gah Pharan posted at the same time. Here it is anyway:

Regarding your licensing questions: The company publishing the game needs a Spine license to distribute apps containing the Spine Runtimes. If your coders don't need to make changes in the editor, they don't need a Spine license. You can do development with the Spine Rutimes before purchasing, but you can't distribute apps containing the Spine Runtimes until you have a license. The runtimes support all Spine Professional features, any caveats are listed on the individual runtime README.md on GitHub.

3) You can use any shaders you like in Unity. See this thread.
5) Spine on Windows, Mac, Linux works the same way.
6) Any known issues is pretty broad. The runtimes work well.
7) Keep your editor and runtime in sync: Settings - Spine User Guide: Version
8) Yes: Applying Animations - Spine Runtimes Guide
9) Pharan can answer this.
10) You can use Mecanim to drive AnimationState. See Applying Animations above about AnimationState.
11) You can swap images for perspective changes and use scaling and mesh deformation between image swaps.
12) See Applying Animations above about AnimationState.
13) Skins - Spine User Guide

Spine has extensive documentation, check it out. ๐Ÿ™‚

4 days later
Nate wrote

Gah Pharan posted at the same time. Here it is anyway:

Regarding your licensing questions: The company publishing the game needs a Spine license to distribute apps containing the Spine Runtimes. If your coders don't need to make changes in the editor, they don't need a Spine license. You can do development with the Spine Rutimes before purchasing, but you can't distribute apps containing the Spine Runtimes until you have a license. The runtimes support all Spine Professional features, any caveats are listed on the individual runtime README.md on GitHub.

3) You can use any shaders you like in Unity. See this thread.
5) Spine on Windows, Mac, Linux works the same way.
6) Any known issues is pretty broad. The runtimes work well.
7) Keep your editor and runtime in sync: Settings - Spine User Guide: Version
8) Yes: Applying Animations - Spine Runtimes Guide
9) Pharan can answer this.
10) You can use Mecanim to drive AnimationState. See Applying Animations above about AnimationState.
11) You can swap images for perspective changes and use scaling and mesh deformation between image swaps.
12) See Applying Animations above about AnimationState.
13) Skins - Spine User Guide

Spine has extensive documentation, check it out. ๐Ÿ™‚

Thanks everyone for your answers.
I'm still a little concerned about the "caveats" about using the Pro and the Essential license in the same team.
I also had a look at the README.md on GitHub, both the generic one and the Unity specific one.

I'd like to have an official answer on this since there's no going back after we start using the tool. I see that the Unity runtimes as today:

  1. work with data exported from Spine 3.4.02.

    supports all Spine features.

I'll be the one who will be producing the final Build. I bought the Essential license. The animator is probably going to use the Professional license.

Using Spine 3.4.02, Unity build 5.4.2f2, Windows, will I be able to build a game with animations provided by the animator (which could possibly be using a Mac, Spine 3.4.02), featuring, possibly, Meshes, Free-Form Deformation, Weighted Meshes?

I know there's an extensive documentation but I'm really on a tight schedule and I can only study documentation about tools or assets that we're 100% sure we'll be using in the project, that's why I'm making you direct questions ๐Ÿ™‚

The runtimes support all Spine Professional features, any caveats are listed on the individual runtime README.md on GitHub.

The caveats are about runtime support of Spine editor features, not mixing Essential/Professional on a team. For example, spine-corona says "spine-corona does not yet support loading the binary format."

Spine Essential can't export projects that contain Spine Professional features, such as meshes, paths, IK constraints, etc. It also can't render or edit meshes, paths, etc. I doubt you would want some of the team to use Essential if your projects use Professional features.

I just need the runtimes on my side, I paid for the Essential license since I'm not an animator but a programmer.

Let me try to reword the question:

Using a Spine Essential license and the latest stable Unity runtimes, Unity build 5.4.2f2, Windows, will I be able to build a game with animations content provided by an animator (which could possibly be using a Mac, Spine 3.4.02, Spine Professional license), featuring, possibly, Meshes, Free-Form Deformation, Weighted Meshes?

Will the runtimes allow me to use hired people's work to work properly in my project, including mesh deformations and similar features?

Yes. The runtimes have all features and licensing Essential is sufficient to use the runtimes in your apps. Just keep in mind you won't be able to export projects which contain Professional features.

Nate wrote

Yes. The runtimes have all features and licensing Essential is sufficient to use the runtimes in your apps. Just keep in mind you won't be able to export projects which contain Professional features.

Thanks! That was the info I needed to know.
I doubt I'll be opening the Spine application at all, I hope the animator is not going to require a programmer to fix his work ๐Ÿ˜‰

Thanks for your time, you've really been of help ๐Ÿ™‚