Search Unity

【Spine Animator】- Boost your animations to insane level without any effort!

Discussion in 'Assets and Asset Store' started by FimpossibleCreations, Oct 15, 2018.

  1. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    "Animators hate him! FImpossible Games discovered revolutionary new algorithm to create spine chain animations for animals and creatures without any effort!"

    Spine animator is component which animates your skeleton's spine bones accordingly to movement without loosing any keyframed animation motion. It's simulating real animal-like spine movement without any need of additional animating or coding.

    This component will make your animations look much more real and AAA like without spending a lot of time for making decent animations of walking / running with rotation to sides by your creatures and without spending a lot of money for animator to create this animations.

    > Link to Asset Store <
    > User Manual <

     
    Neviah and Gekigengar like this.
  2. MitchC

    MitchC

    Joined:
    Sep 9, 2013
    Posts:
    22
    Hi, I've just been trying out this asset. I have a question regarding the offset.

    Our creatures have their object pivot point pretty centered, about halfway between their front and hind legs. I understand it'd work better if the pivot was closer to the front, near the front legs, so I tried to use the 'Pivot Offset' option under the Advanced Options. However, this seems to squash/stretch the spine. I think it's just applying the offset to each spine joint individually.

    I was expecting it to work by just giving a desired local offset to the object's pivot point. Am I understanding this correctly?
     
  3. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    As you say when you put pivot nearer to the front it often gives better results (not always, it depends from model)
    Pivot offset is offsetting just spine bones, it have little different usage (check fillipede in demo), maybe I should rename it.
    I was using parented game objects for offseting to front, but you just gave me idea to make variable for this thing but not sure if it will work fully correct. I putting it on the update tasks list.
     
  4. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Few small things added in V1.0.1:
    - Changed "PivotOffset" variable name to "Segments Pivot Offset"
    - Added variable "BasePivotOffset" for adjusting center of rotation placement
    - Added text file with manual in text version so anyone who couldn't use it with translator now can

    And here new tutorial:
     
    Dark-Muppeteer likes this.
  5. ElinH

    ElinH

    Joined:
    Aug 29, 2017
    Posts:
    18
    It looks very promising.
    I would use it in a mobil AR application.
    Is it working on mobile and how is the performance?
     
  6. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    There should be no difference if it's used on mobile or anything else, it's working on Unity's fundamental stuff.

    It's pretty optimized, in package there is example scene with 200 Spine Animators
    working in the same time and there is not so big difference in cpu load.

    Check release video at 25th second
     
  7. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Spine Animator updated to version 1.0.2
    • Added support for physical clock, if you need to have enabled "Animate Physics" in animator, "Physical Clock" variable will make Spine Animator work right with it
    • Added humanoid demo scenes and "Fockatrice" demo scene (monster reminding Cockatrice)
    • Added variable "Distances Multiplier" and few others in "Advanced" tab, they can be used to get different results, for example for humanoid spines

    Also bew tutorial released on the youtube, enchancing animations of humanoid creature.
     
  8. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Check my article for Unity Newsletter where I describing my way to create this package, also there is extended tutorial of making dragon movement controller you can know from package trailer. Also check your newsletter email if you don't have Spine Animator yet, there is coupon to get -40% price on this package! :)

    https://connect.unity.com/p/hybrid-procedural-animation-rigs

    Tutorial:
     
    ftejada likes this.
  9. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    I've tried to purchase this on the new asset store, but once it is in the cart and I proceed to checkout, it hangs.

    If I try to buy it in the old store, I don't think it gives me an opportunity to type in a coupon. (Anyone know?)
     
  10. ParadoxSolutions

    ParadoxSolutions

    Joined:
    Jul 27, 2015
    Posts:
    325
    If you have a VPN try turning it off.
     
  11. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    I don't.

    I've heard of other people having this problem for the last year, but this is the first time I've had it myself. I normally use the old store, as the new one is super bad. Turns out it is even worse now that you can't actually buy things with it. lol
     
  12. ParadoxSolutions

    ParadoxSolutions

    Joined:
    Jul 27, 2015
    Posts:
    325
    Yeah, search bar is terrible, many asset authors report fewer sales since the change, some categories are hidden, can't play videos from in Unity. Only thing I like about the new one is the quick preview thing. VPNs are blocked so people don't try to get things cheaper by using other countries prices though. Sucks the new store interferes with sales, I have not had that problem yet fortunately.
     
  13. OhiraKyou

    OhiraKyou

    Joined:
    Mar 27, 2012
    Posts:
    259
    My character's armature has a pivot bone that the back and hip bone are both children of. So, the hierarchy is Y-shaped. Is this supported in any way? Would it require a spline animator for both sides? Here's my armature:


    My first test from back to neck (the front side of the pivot) was pretty comical, with the head leaning back and quick movements bending everything:
     
  14. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Wow, that skeleton can be hard to animate in that way, now it's hard to tell, if you can mail me mesh with skeleton I could try to find best settings for it, maybe I will need to add something inside code but we'll see.
     
  15. berdel

    berdel

    Joined:
    Jun 9, 2017
    Posts:
    3
    one question, would this work with rigged 2D sprites??
     
  16. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Not sure, probably not, this package is designed directly for 3D. Behaviour like that for 2D can be programmed much simplier, 3D is making stuff more troublemaking, but if you willing to you can mail me this rig, I will check if it works and send you result then you can decide ;)
     
  17. montenom

    montenom

    Joined:
    Aug 18, 2018
    Posts:
    6
    A strange question, but could this emulate a slug as it slithers across the ground, or would your tail animator be better for that?
     
  18. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    If it should be movement like shrinkage and stretching then no, I think it should be done inside keyframed animation but if it should emulate slug's movement in different directions / going up / turning then yes, long slug without shell should work pretty cool with that, kinda snake movement.

    Edit: I quickly made gif with snake for you ;)
    https://imgur.com/FTQ9KOU
     
  19. montenom

    montenom

    Joined:
    Aug 18, 2018
    Posts:
    6
    Thanks for the reply and gif, that snake got me hyped.

    Just one more question, can I pair this with something like final IK for matching animations with the ground and my own movement system, or does this only work with your ground fitter asset and movement script? Thanks.
     
  20. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    It should work with any movement system, but don't know how it would cooperate with IK stuff, there could be conflicts of some sort, but then script execution order should fix it. When IK would be used only on legs (not using spine bones and I saw final IK can use them) it should work anyway because spine animator would use only spine bones.
     
  21. The-Creature-Queen

    The-Creature-Queen

    Joined:
    Jan 19, 2017
    Posts:
    24
    Hi, I'm LOVING this asset so far, although I just bought it and played with the demos and tried applying it to the humorously creative demo.. ...'animals.' LOL

    So I'm on a new game and finishing up 3D models; is there an inside-unity rigging system that works with your spine animation script? Puppet 3D? Or should I use advanced skeleton with maya? I'd really like to just rig and go in Unity.
     
  22. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Thanks :)
    I have no experience with puppet 3D but I think rigging with it would give you rig which don't have any troubles to set up spine animator. I was doing simple rigs with cinema 4D, also was working hard to make algorithm compatible with rigs from other softwares.
    Making skeleton should be thing which takes small amount of time, you can quickly create bones hierarchy, bind bones with mesh, put in on scene and set up spine animator (be sure you have correct start/end bone and 'last bone leading' variables) with "connect with animator" disabled, then move object around on scene to check if you have correct bones hierarchy setup.
     
  23. jangomoose

    jangomoose

    Joined:
    Feb 17, 2016
    Posts:
    40
    Hi, bought Spine, tail and look components.
    Any idea how i would go about animating an Elephants trunk (has multiple bones) to move to/ follow a target,
    Can get it to swing very nicely with the tail animator and tried the look component to see if I could move the trunk to a follow object but didn't have any luck.
    Paul
     
  24. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Thanks for support by buying my packages!
    Can you give me please a bit more details?
    How you setted up components etc.
    Also please check example scenes from packages, there are setups on very different models.
    Look Animator should be used for head bones, by word "move" you mean rotating?
     
  25. Lewnatic

    Lewnatic

    Joined:
    Sep 29, 2012
    Posts:
    209
    Hello FImpossibleGames awesome tool! But i recently run into a little issue. When moving my creature ... when it stops i get a message saying:

    Code (CSharp):
    1. Look rotation viewing vector is zero
    2. UnityEngine.Quaternion:LookRotation(Vector3, Vector3)
    3. FIMSpace.FSpine.FSpineAnimator:CalculateSpineBehaviourRotation(Int32) (at Assets/FImpossible Games/Spine Animator/FSpineAnimator.cs:759)
    4. FIMSpace.FSpine.FSpineAnimator:CalculateMotion() (at Assets/FImpossible Games/Spine Animator/FSpineAnimator.cs:722)
    5. FIMSpace.FSpine.FSpineAnimator:SpineMotion() (at Assets/FImpossible Games/Spine Animator/FSpineAnimator.cs:543)
    6. FIMSpace.FSpine.FSpineAnimator:LateUpdate() (at Assets/FImpossible Games/Spine Animator/FSpineAnimator.cs:450)
    And then the hip bone which is also the first bone in the hierarchy starts shaking. This only happens when the creature stops moving and the idle animation is played.
     
  26. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Thanks, I will check this today and try to upload fix
     
  27. Lewnatic

    Lewnatic

    Joined:
    Sep 29, 2012
    Posts:
    209
    Cool thank you! :)
     
  28. PlayingKarrde

    PlayingKarrde

    Joined:
    Aug 19, 2013
    Posts:
    38
    Hey again,

    Just had a quick question about trying to get this working with a NavMeshAgent. I followed your tutorial and added my own movement script. What I'm having trouble with though is updating the rotation of the agent.

    It looks like you are updating with:

    Code (CSharp):
    1. fitter.RotationYAxis = Mathf.LerpAngle(fitter.RotationYAxis, Camera.main.transform.eulerAngles.y + RotationOffset, delta * RotateToTargetSpeed);
    but I'm unsure what I should replace Camera.main.transform.eulerAngles.y + RotationOffset with. I'm currently trying (and tried many other methods):

    Code (CSharp):
    1. Vector3 targetDir = transform.forward - agent.desiredVelocity;
    2. float angle = Vector3.Angle(transform.forward, targetDir);
    3. fitter.RotationYAxis = Mathf.LerpAngle(fitter.RotationYAxis, angle, delta * RotateToTargetSpeed);
    but obviously that's a no go. Do you have any ideas? The fitter.RotationYAxis seems like a bit of a blackbox and I can't work this one out.

    Thanks.

    -edit- I solved it like this:

    Code (CSharp):
    1. Vector3 targetDir = transform.forward + agent.desiredVelocity;
    2. Quaternion rotation = Quaternion.LookRotation(targetDir, Vector3.up);
    3.  
    4. fitter.RotationYAxis = Mathf.LerpAngle(fitter.RotationYAxis, rotation.eulerAngles.y, delta * RotateToTargetSpeed);
     
    Last edited: May 3, 2019
    sbrodie likes this.
  29. akuei2

    akuei2

    Joined:
    Oct 17, 2018
    Posts:
    69



    Just a demo. 2D/3D space for swarm acts.
    :rolleyes: ... why tentacle so amazing for your stuff?
     
  30. Lewnatic

    Lewnatic

    Joined:
    Sep 29, 2012
    Posts:
    209
    Hello @FimpossibleGames

    Is there a way to set the paws of my creature always to stay at the ground? I got a fairly complex rig with some stretchy muscle bones in it and I want the paws kinda seem to "float" a bit.
     
  31. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    For right looking effect there must be IK involved for legs and lately I was doing some initial coding for this stuff, probably some time until it will be done, but I will try to support more detailed legs motion.
     
  32. Lewnatic

    Lewnatic

    Joined:
    Sep 29, 2012
    Posts:
    209
    Very good. Maybe you can achieve a hybrid solution by allowing mask layers for the blending. Because Currently my thigh muscle bone rotates with the back bone and I do not really want that. It would be cool if there would be masks that can be used to weight the amount of blending between the procedural and animated position/rotation.

    On top of that It would be also nice to set the blend for each individual bone and not just the whole procedural animation.

    Example: I got root, back1, back2, back3, back4, neck

    My hint legs are partially a child of back1 but my thigh muscles are connected to back2 so I would like to fine tune the amount of interpolation for each bone. So that for example back1 and back2 move exactly equally and synchronized so that I do not get weird stretching when the thighs are rotating with the leading bone.

    Cheers and thank you for your quick response! :)
     
    Last edited: Sep 6, 2019
  33. artyrambles

    artyrambles

    Joined:
    Jan 10, 2014
    Posts:
    18
    Hey there! Thank you for this asset. Is it possible to make the spine obey collision detection? I can't seem to get it to do that.
     
    FimpossibleCreations likes this.
  34. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    No, spine is following head motion.
    Making here collision react naturally would be very difficult but I will think about this feature,
     
    artyrambles likes this.
  35. artyrambles

    artyrambles

    Joined:
    Jan 10, 2014
    Posts:
    18
    Thank you for considering it!
     
    FimpossibleCreations likes this.
  36. clagrens

    clagrens

    Joined:
    May 19, 2017
    Posts:
    96
  37. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Thanks for the reply, I will check this models structure in a minute and describe setup.
    Setup sometimes can be tricky, also I will record new tutorial soon.

    Edit: It works right now but it's not flaweless

    This dragon have not friendly hierarchy structure for the algorithm, but I am working on some stuff to make models like this cooperate with Spine Animator. Right now I am working on this subject, will give more info soon.

    Edit 2: Ok I figured it out in other way, I will send you package with setup in pm!
     
    Last edited: Sep 15, 2019
    clagrens likes this.
  38. clagrens

    clagrens

    Joined:
    May 19, 2017
    Posts:
    96
    After some learning, I think I can understand most of the parameters.
    But still, I notice spine animator has not animated the bone following the original bone length.
    So the animal body is stretching a little bit. I try to modify every the parameter but it is helpless.
    It looks a little strange. And I think the Angle Limit and Straighten Speed parameters is very hard to set up an accurate Bone Angle. For example, the animal gets hit and punch back fast. The animal would like invertebrate.
    QQ截图20190919003255.png QQ截图20190919005643.png QQ截图20190919010748.png
    However, most case works well.
    QQ截图20190919010450.png
     
  39. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Right now I am focusing on Spine Animator and refining main algorithm, in tasks for next update I also have things about angle limiting and straightening to make them work more smooth. Soon I will give more info how works are going ;)
     
    Lewnatic and clagrens like this.
  40. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Updated to version 1.0.4:
    https://assetstore.unity.com/packages/tools/animation/spine-animator-128322

    - Reworked main algorithm to work better with complicated bone structure orientations to use under new variable 'ChainMethod' option named as 'Axis Based'
    - Added MaxStretching variable to limit stretching of model when using position smoother variable
    - Added 'Springiness' variable to adjust more bouncy motion for models with 'First bone leading' structure
    - Added 'Slithery' variable, when set to value 1 it gives the same motion like in previous version but cranking it down will result in more damped motion of spine
    - Added component Spine Bone Connector to repair wrong connection of bones without need of rebuilding it inside modelling software
    - Added toggle "Safe Delta Time" to remove stuttery motion if fps are very unstable
    - Upgraded limiting angles algorithm resulting in more smooth motion for limiting maximum rotation of spine chain's individual segments
    - Added warning if bone structure is created and main object don't face forward axis (z:blue axis)
    - Above upgrades and fixes made component work much better in low fps domain
    - Some small updates inside inspector window

    ___________________________________________________________
    There may be new update pretty soon, with some additional tips inside inspector for creating right spine chain,
    upgraded logics for anchoring spine (right now often it's trouble to use both spine animator on spine and tail)
    and experimental collision feature.
     
    Last edited: Sep 25, 2019
    clagrens likes this.
  41. Lewnatic

    Lewnatic

    Joined:
    Sep 29, 2012
    Posts:
    209
    Wow nice stuff. Will test it soon.
     
  42. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Updated to version 1.0.5:
    - Added experimental physics option where you can choose colliders with which collision of spine segments should be detected
    - As physics are implemented, there is variable 'Gravity' which you can use to keep spine on the ground if creature is very long (like millipede)
    - Added tips to creating spine chain inside inspector window
    - Added alert (red gui color) if there is no animator and component tries 'Connect with animator' to remind about that
    - Added new example scenes with use of collision also collision added to 'Fillipede' and 'Fockatrice' example scene
    - Added info inside "ReadMe.txt" which directories you can remove to purge unnecessary files if you don't need demo scenes anyomore

    No more clipping on the terrain with 'Gravity Power' and collisions

    https://gph.is/g/aRXpX8w


    > Link to Asset Store <
    Soon more videos about the update and tutorials!
     
    Last edited: Oct 1, 2019
    wetcircuit, warthos3399 and hopeful like this.
  43. artyrambles

    artyrambles

    Joined:
    Jan 10, 2014
    Posts:
    18
    Thank you for this update! I can't wait to test it.
     
  44. jnbbender

    jnbbender

    Joined:
    May 25, 2017
    Posts:
    487
    I know this is wishful thinking but can any of his assets be used to make hair movement? It's a tall order since my models hair does not have a rig.
     
  45. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    GPU hair/grass shaders should be best choice for that, but I am not very familiar with that, so I can't tell more
     
  46. Bahamoot

    Bahamoot

    Joined:
    Aug 14, 2019
    Posts:
    3
    Hi!
    I've been having a lot of problems with my skeletons, when I try to add the Spine Animator I get the error warning you described in the 1.0.4 update, and the simulation just meses up the character when doing actions like jumping and running, while having some twitching in the normal walk animation.
    Here's a screenshot of our character hierarchy (he is mainly biped, but goes quadraped in some animations)

    Hierarchy.PNG

    None of my tweaking seems to work, that being said, my questions are:
    Is the character setup of the screenshot I'm sending supported? Do I need to make changes to it?
    What are you referring to the "Main Object facing forward" is it the character controller? the hips? the root joint? something else?
     
  47. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    "Main object facing forward" relates to object in which in hierarchy are all child objects of whole model, meshes, bones etc.
    When your character have some animations as biped and some as quadroped it's problematic indeed, component takes first pose as reference to compute spine motion, so if your character at first frames have t-pose or biped like animation algorithm can behave unexpectly.
    You can mail me for more help, it seems it is a bit complex case.
     
  48. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Updated to version 1.0.6:

    - Added Chain Method "Universal" which is working without any issue with translations in any axis.
    Tested on many models which needed to have selected right chain method before.
    Probably all chain methods will be removed soon if universal chain method will be tested enough.

    - Few fixes inside inspector view and scene view
    - Now you can disable collision for selective segment with "Segment Collision" toggle list
    - Fixed terrain collision when spine leaves terrain mesh in x and z axes
    - Component will try to find correct bones to init chain (first panel) by searching them by names
     
    Clyde_Coulter likes this.
  49. amaltheia

    amaltheia

    Joined:
    Feb 4, 2015
    Posts:
    5
    Hi,
    we are working on a prototype of a 3D game where characters are worms that start small, and keep growing as they eat.
    After trying SpineAnimator and TailAnimator, we found Filipede example to be particularly interesting, but we are confused about how to make it grow: combining meshes isn't a trivial task (and we're looking into it) and in FSpineAnimator.cs there isn't apparently an explicit way to add bones at runtime.

    At the moment we started trying to replicate how the prefab named "PR_TailAnim_2D Sprites Tail Example" (found in the "S_TailAnimator_Demo_Other Examples" scene) is built, using SpineAnimator instead of TailAnimator, gameObjects (with MeshRenderers instead of SpriteRenderers) as bones, and no skinned mesh. Worm is moving and behaving as expected and looks really cool, but we couldn't make it grow: when we instantiate a new prefab in the bones hierarchy and add it to the Tail Bones array, we get a lot of Unity errors (about missing proceduralPoints) and the new added module is not animated.

    Is there a clean way, or some kind of hack, to add elements to TailBones array at runtime, and properly initialize them in order to make a spine/tail grow?

    Thank you very much!
     
  50. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Hello Amaltheia,
    Well I wasn't making tail or spine animator to support changing length of bone chain in runtime.
    It can be done, but it will need some extra coding work.
    I will check today how much time it can take me.