Search Unity

Tail Animator - Procedural tail animation for tentacles, simple capes, squids and more!

Discussion in 'Assets and Asset Store' started by FimpossibleCreations, Jul 18, 2018.

  1. Gapa

    Gapa

    Joined:
    Dec 11, 2012
    Posts:
    27
    This fix it.
    Thanks for that.
     
  2. Zillus

    Zillus

    Joined:
    May 31, 2017
    Posts:
    24
    I am having a glitch that I can't work out - maybe you can point out something obvious I am doing wrong?

    Here is what it looks like.

    Here is a gif of it in action
    (shot from below, it went underground this time).

    I am using Tail Animator 2 for a creature's tentacles/arms, using IK to set their reach targets on the ground as the creature walks.

    I used a low-poly placeholder (the black arms) while tweaking values, and I am now trying to replace them with a higher-poly tentacle model (the grey stretched-out tentacle). I have pasted the Tail Animator 2 component onto the first bone in the new model and replaced the start bone variable; it correctly detects the end bone and the tail chain is correct.

    As soon as I go into play mode it does what you see in the image above. Bone001 (the first bone in the chain after the start bone) snaps to this location in the sky (sometimes it snaps the same distance below the ground). The distance it stretches is proportionate to the object's scale and the offset moves with the parent, sometimes snapping around randomly). Rotating the parent object makes the tentacle wiggle but the erroneous snap position does not change.

    The rest of the chain after Bone001 behaves how it is supposed to, but offset by Bone001's weird position; I cannot find any reason for this offset.

    If you have any thoughts I'd be very grateful. Is this a glitch? Does it look like I am doing something wrong? Both tentacles were made in Blender, I can't see anything different about them that would explain this.

    (And to remove any possible confusion: the IK snap target is not malfunctioning, it's right where it should be like you can see with the black arms)

    Thanks!
     
  3. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    It looks like something wrong happened in the hierarchy, for now you can try changing start bone transform to child one and see what happens, or you can try selecting "Exclude" mode next to the start bone, if glitch still occurs then would you be able to PM me a repro scene?
     
    Zillus likes this.
  4. Zillus

    Zillus

    Joined:
    May 31, 2017
    Posts:
    24
    I think I have found the issue. Or an issue, anyway. The sphere colliders being generated by Tail Animator are gigantic, like, bigger than my whole scene. It turns out one of the hierarchy objects is set to scale 100 - some Blender scaling export bug.

    Not your fault! Thanks.

    EDIT: Yup, just had to tweak settings to make Blender cooperate and everything looks right now.
     
    Last edited: Sep 5, 2021
  5. qingyu527

    qingyu527

    Joined:
    Jul 21, 2020
    Posts:
    5
    Hello @FimpossibleGames ~ I found something wrong with the "Detach Children" Mode, when I rotate the Root the child in the chain has wrong rotation like this any idea? plz help upload_2021-9-29_15-6-20.png
     
  6. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    "Detach Children" mode is not yet fully finished and it can cause some problems, but can you send me your model, it actually looks like something fixable.
     
  7. qingyu527

    qingyu527

    Joined:
    Jul 21, 2020
    Posts:
    5
    I just Use The model in Demo (TailAnimatorDemoTail-HighPoly) for the test~
     
  8. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    I re-implemented the detached mode and it should work in most of the NOT keyframe animated models cases.
    It can be essential for optimization, since with detached mode algorithm works average 2 times faster, with tails with more bones it can work about 3-5 times faster.
    The update should be available on the asset store right now.
     
    qingyu527 likes this.
  9. qingyu527

    qingyu527

    Joined:
    Jul 21, 2020
    Posts:
    5
    Thanks a lot!
     
  10. Radiant_Cadenza

    Radiant_Cadenza

    Joined:
    May 11, 2015
    Posts:
    5
    The documentation and examples seem really limited for 2d useage.
    Does it only work with line renderer, or is it possible to use tail animator on a sprite? Does it work with the 2d bones on the unity 2d animation package?

    The 2d examples ONLY seem to use tentacles generated via a completely uncommented demo script and it would be helpful to have one with an actual 2d character or to at least get instructions on how to set up the tail animator on a line that already exists rather than one that's generated through the demo script.

    I'm kind of lost since I just want to draw a (literal) tail and then stick it on the backside of a 2d character and I'm having a hard time figuring out the steps I need to take to do so.
     
  11. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Yes it works with 2D sprites, there is no big difference with 3D and 2D here - just limiting tail motion to not move in Z (depth) dimension. I provided 2d examples which can work with built in Unity features, without additional packages like 2D Animation.

    You do it the same way like with 3D characters, just put limb's first bone/transform in "Start Bone" field, then define on which bone tail chain should end, after setting it up you can enter playmode.
     
  12. CreatAWorld

    CreatAWorld

    Joined:
    Jul 1, 2019
    Posts:
    7
    I want to Instantiate a TailAnimator prefab and addCollider,but to works not very good, I just use the API of AddCollider when i instantiate the prefab. it just have half on the ground,and when i modify the component of TailAnimator,then it works well,both of bones on the ground.Is i use wrong API ?
     
  13. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    If you do it in the same game frame as creating tail animator it may not yet initialize and then reset colliders list, can you try waiting one frame after creating prefab and then adding collider? You can also try calling "tailAnimator.Init()" before adding collider (but first you would need to change code from Init() being 'protected' to 'public').
    Or you can try using "Dynamic World Collider Inclusion" feature in the collision tab to add nearest colliders to the list automatically, this feature is using "AddCollider" automatically.
     
  14. Thunderik

    Thunderik

    Joined:
    Apr 28, 2020
    Posts:
    32
    Hi :)

    It seems the version I'm trying doesn't support Unity's new Input system, is that something that you're planning to support?
     
  15. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Hello, you shouldn't bother with it, the input system is used just in few example scenes of tail animator, it is not required for the package to work by itself. If you want to check examples scenes, you can always switch for a while, in project settings to support both input versions upload_2021-12-2_12-36-59.png
     
  16. Thunderik

    Thunderik

    Joined:
    Apr 28, 2020
    Posts:
    32
    Hi, what about TailAnimator.Misc? It uses the old input system for a debug key on line 47 which gives an error if I only use the new InputSystem. It would be nice of you could handle the case of using the new InputSysem with an #if :)
     
  17. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Wow, it still gives error? That's why I hate handling stuff with #ifdefs :U I added the #if legacy input definition but it seems it's not working on your side.
    Anyway, you can remove this lines without any worries (TailAnimator.Misc.cs):
    upload_2021-12-6_17-52-35.png

    It's very basic functionality to compare objects with/without tail animator, nothing important.
    The error should disappear.
     
  18. CreatAWorld

    CreatAWorld

    Joined:
    Jul 1, 2019
    Posts:
    7
    it`s not work by delay one Frame or using Dynamic World Colliders Inclusion.It may not be the issue of adding colliders, but that some APIS are not being called.
    upload_2021-12-7_14-32-37.png
    upload_2021-12-7_14-32-54.png

    But , when i click any property in Inspector Window,it works well in next Frame.what`s wrong?:(
    As shown below,i just click "Cheap Collision" in inspector window.
    upload_2021-12-7_14-34-36.png
    upload_2021-12-7_14-35-20.png

    i still not found a way to fix it
    fixed,Need Init Before,My fault
     

    Attached Files:

    Last edited: May 19, 2022
  19. alms94

    alms94

    Joined:
    Jun 3, 2020
    Posts:
    17
    Hello, I'm making a classic hyper-casual runner game. My player has a stack in his hand. I want stacks to move like a tail. So I added tail animator script to first stack and all other objects are parented like you show in manual video. But It automatically sets the start bone to my players neck. When I changed this to my first object there is a warning "' 'Start Bone' was not found in mesh renderer of this object,are you sure you assigned correct 'Start Bone'?". That's my first question and my second question is:

    When i move the parent of tail object by clicking to object and dragging on scene it works very well but if i move the object with my designated inputs. It moves very different. If you can help me, I will be very glad.

    Thank you.
     
  20. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    The warning about start bone is just remainder to check if it is set correctly, if everything works in playmode, you don't need to bother about that.

    Can you send me something like short clip so I will see what "moves very different" looks like?
    There can be few different causes, like not-interpolated rigidbody, some jittery can be caused by opened inspector window etc.
     
    alms94 likes this.
  21. alms94

    alms94

    Joined:
    Jun 3, 2020
    Posts:
    17

    Thanks for your quick reply, I solved my problem. I changed smoothing style to acceleration to linear and made some little changes to limiting motion, it works very well now.
     
  22. Dusty777

    Dusty777

    Joined:
    Jul 23, 2016
    Posts:
    9
    Hey is this a common issue? Sudden stretched tails.

    Tail was working fine. Simple cone shape. Then it starts stretching and going wild.
    I created its skinned mesh renderer using the "Editor Tail Skinner".
    The tail is simply childed to a gameobject with a rigidbody.

    Maybe I did something weird while making the mesh or skinning it to make it susceptible to wild stretching??
     

    Attached Files:

  23. Bwacky

    Bwacky

    Joined:
    Nov 2, 2016
    Posts:
    208
    Hi!
    Any issues having Tail Animator load from asset bundles?
     
  24. alms94

    alms94

    Joined:
    Jun 3, 2020
    Posts:
    17
    Hello again, when i pressed play it automatically changes the tail chain, is it possible to manually drag and add to tail chain list, and stop the automatic bone setup? thanks for your work, this is the nicest tool to work with.
     
  25. DYV

    DYV

    Joined:
    Aug 10, 2015
    Posts:
    58
    Hi, I want to buy this asset but for some reason I use Unity version 2018.1.9f2 . Any chances that this asset will work properly for me?
     
  26. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Yes it probably will work even with unity 5.6.0 :D (but the prefabs in demo scenes will not work, then you can use newer unity version to check demo scenes if you need them)
    Unity just not allows to upload updates with lower versions anymore.
     
  27. DYV

    DYV

    Joined:
    Aug 10, 2015
    Posts:
    58
    thank you for the answer I will give it a try
     
  28. UnwrappedRumble

    UnwrappedRumble

    Joined:
    Mar 4, 2019
    Posts:
    2
    Hello. Sorry if I'm missing something obvious. I recently purchased, downloaded, and installed the Tail Animator (Version 2.0.6). I cannot find examples or an example scene. Are they in a different package?
     
  29. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    You will find demos by searching project "Tail Animator - V2 Demo"
    there is few packages with demos and extra assets inside.
     
  30. andymakesthings

    andymakesthings

    Joined:
    Sep 4, 2015
    Posts:
    18
    @FimpossibleCreations Thank you for making this asset. I was wonder, is there a way to make the end of the ik chain stay pinned to a point? So the start and end points of a tail are stuck to static points?
     
  31. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    With some settings (IK weights and angle limits) you could receive this, but for some models (mostly for ones with many bones in IK chain, like 16 or more) it can be impossible right now, I am going to update the IK algorithm for the next Tail Animator versions but can't give precise estimates for it.
     
  32. MrJBRPG

    MrJBRPG

    Joined:
    Nov 22, 2015
    Posts:
    40
    So I like the idea of the tail animator used for procedural animation. It seems that inverse kinematics is used to cause movement of the various tails / tentacles.

    So when I decide to allow input controls to determine the movement, like mouse or gamepad, how can that be done?
     
  33. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Tail Animator offers ik toggle and you control it by focus point (game object) and if you move it the tail will try reach it, so you can basically control position of the focus point to drive tail animation.
     
  34. TakuyaBabuya

    TakuyaBabuya

    Joined:
    Dec 17, 2020
    Posts:
    9
    Hi, I receive this error after installing the package.
    upload_2022-9-8_22-15-33.png
     
  35. DigitalAdam

    DigitalAdam

    Joined:
    Jul 18, 2007
    Posts:
    1,209
    @FimpossibleCreations
    Hey, your asset looks great! I wanted to see if it will help me with my VR project. Is it possible to have the fingers slightly conform to objects as my VR hand drags across them? I have a hand with capsuple colliders for the fingers. If the hand is in a neutral pose (fingers slightly bent like a claw shape), and I drag my hand over a sphere for example, is it possible to have each finger conform to the surface of the sphere and then snap back to the default claw pose when my hand is away from the sphere?
     
  36. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    What version of unity you use? I checked it on newest 2021 version and 2019 version and there is no problem with TextureImporter line. It's not important file tho, so you can just erase body of this for() loop to ignore this error.
    I am attaching update package, can you check if it fixes this error?

    Thanks, Tail Animator is computing quick simple collisions with sphere-like collision so it may lack precision.
    You can try using physical joints (for example configurable joints) for it, or you can try it with my Ragdoll Animator which allows to add custom bone chains instead of body ragdoll, so you can add physics just to the fingers.
     

    Attached Files:

    TakuyaBabuya likes this.
  37. SamRock

    SamRock

    Joined:
    Sep 5, 2017
    Posts:
    250
    Dear @FimpossibleCreations
    I would like to create a rope bridge that bounces when player walks on it.I have the 3D asset for the bridge, made of modular meshes.

    Can you advice If I can use any of your assets to make it happen? I was thinking tail animator, but not sure how to make it work.. do I need an armature?
     
  38. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Hello, I think you should try doing it using unity's physical joints, so WITHOUT using Tail Animator.
     
    SamRock likes this.
  39. Zillus

    Zillus

    Joined:
    May 31, 2017
    Posts:
    24
    Are the tails supposed to be able to collide with mesh colliders? I am getting this error when they try to:

    Assertion failed on expression: 'IsNormalized(ray.GetDirection())'

    This only happens when I use Selective_Fast with a list of colliders, not when it's set to World_Slow. Everything works perfectly when I use primitive colliders. The error happens whether the mesh colliders are convex or not. Thanks!

    This is the full error message:
    Code (CSharp):
    1. Assertion failed on expression: 'IsNormalized(ray.GetDirection())'
    2. UnityEngine.Collider:Raycast (UnityEngine.Ray,UnityEngine.RaycastHit&,single)
    3. FIMSpace.FImp_ColliderData_Mesh:PushIfInside (UnityEngine.Vector3&,single,UnityEngine.Vector3) (at Assets/Plugins/FImpossible Creations/Plugins - Shared/Physics/FImp_ColliderData_Mesh.cs:49)
    4. FIMSpace.FTail.TailAnimator2:PushIfSegmentInsideCollider (FIMSpace.FTail.TailAnimator2/TailSegment,UnityEngine.Vector3&) (at Assets/Plugins/FImpossible Creations/Plugins - Animating/Tail Animator/Code/TailAnimator.Extensions.Collision.cs:410)
    5. FIMSpace.FTail.TailAnimator2:TailCalculations_ComputeSegmentCollisions (FIMSpace.FTail.TailAnimator2/TailSegment,UnityEngine.Vector3&) (at Assets/Plugins/FImpossible Creations/Plugins - Animating/Tail Animator/Code/TailAnimator.Extensions.Collision.cs:544)
    6. FIMSpace.FTail.TailAnimator2:TailCalculations_SegmentPreProcessingStack (FIMSpace.FTail.TailAnimator2/TailSegment) (at Assets/Plugins/FImpossible Creations/Plugins - Animating/Tail Animator/Code/TailAnimator.Logic.TailCalculations.cs:104)
    7. FIMSpace.FTail.TailAnimator2:SimulateTailMotionFrame (bool) (at Assets/Plugins/FImpossible Creations/Plugins - Animating/Tail Animator/Code/TailAnimator.Logic.UpdateStacks.cs:78)
    8. FIMSpace.FTail.TailAnimator2:UpdateTailAlgorithm () (at Assets/Plugins/FImpossible Creations/Plugins - Animating/Tail Animator/Code/TailAnimator.Logic.UpdateStacks.cs:124)
    9. FIMSpace.FTail.TailAnimator2:LateUpdate () (at Assets/Plugins/FImpossible Creations/Plugins - Animating/Tail Animator/TailAnimator2.cs:266)
    10.  
     
  40. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    I found some issue in the code, can you check if applying this fix helps it?
    The mesh collision is experimental, especially for world collision since rigidbodies are not detecting collision when spheres are entering inside mesh collider.

    The Ragdoll Animator (this plugin was included in lastest unity bundle) can simulate world collision much better but it will affect look of the tail animator motion (it will look more heavy since it will put true physical muscle-like forces per bone).
     

    Attached Files:

    Zillus likes this.
  41. Zillus

    Zillus

    Joined:
    May 31, 2017
    Posts:
    24
    Thanks for taking a look! This update has removed the console error but unfortunately the tails still pass through the mesh colliders 90% of the time :/
     
  42. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    If it's convex mesh collider it should always push out the tail (in selective-fast mode), unless it's some exception situation shaped collider - I can't reproduce problem on my side (can you send me the mesh through which tail is clipping?).
    If it's non-convex mesh collider then it's not possible to detect collisions precisely the way how tail animator is working.
     
  43. Zillus

    Zillus

    Joined:
    May 31, 2017
    Posts:
    24
    It is a convex mesh collider, quite simple geometry. I will do some experiments on my end to make sure it's not something wrong with my setup and I will let you know. Thank you!
     
  44. SamRock

    SamRock

    Joined:
    Sep 5, 2017
    Posts:
    250
    Thank you so much! Sometimes I tend to over-complicate things when answers at right there staring at you :D
    Anyways, here is my end result. Will be using Spine Animator for the creatures :)

     
    FimpossibleCreations likes this.
  45. QbAnYtO

    QbAnYtO

    Joined:
    Dec 18, 2016
    Posts:
    223
    Hello I have a quick question. Tail animator v2 can’t rig meshes without bones in unity? I have a character with no hair bones on her pony tail. But would like to have her hair move a bit using tail animator when her body moved around (which DOES have bones). Is this possible? Or can you only rig NEW meshes?

    If so, this is also a mesh animator of sorts no? Kinda like magica’s asset.
     
  46. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    Hello, tail animator is using only bones for procedural animation, so you can't set up mesh animation as with magica cloth.
    However tail animator gives possibility to skin meshes in editor/runtime but it requires NOT skinned mesh, so you will not be able to skin hair if it's not separated mesh, you can't add new skinned bones to already skinned mesh with tail animator.
     
  47. QbAnYtO

    QbAnYtO

    Joined:
    Dec 18, 2016
    Posts:
    223
    so In order to add bones within Unity I can do it by creating a mesh with pro builder for example, And then apply tail animator?

    also, it appears there is some features from your Bone stimulator asset here which I have. I can’t imagine combing these two would be ideal.is this any different from spine animator as well? And animation designer? There are similarities with all these.



    I also have your lean animator asset but will this interact with it?


    Lastly will this work on consoles ?
     
  48. FimpossibleCreations

    FimpossibleCreations

    Joined:
    Jun 27, 2018
    Posts:
    540
    It should work, component for skinning is called 'Tail Skinner'.
    It's dedicated to create single chain skins, so you can't skin humands with arms/legs but single chain like single leg / single hair chain etc.

    Bones Stimulator algorithm works nice with few bones chains like 2-4 bones, if you apply it on something like tail with for example 7 bones it can act strange, Tail Animator algorithm is much more smooth and dedicated for longer bone chains + offers more features.

    Animation Designer is editor tool, it's not for playmode use, you can apply something like bones stimulator 'filter' to target baked keyframe animation.

    Yes, both assets are working together.

    It works on all devices.
     
  49. SoumyaRipan86

    SoumyaRipan86

    Joined:
    Aug 19, 2019
    Posts:
    12
    Hello. I have a similar requirement where I need to stretch the tail length as the IK target moves away from it.

    Is this feature already added in the latest version? If not, how would you suggest adding this, if I am adding manually myself ?
     
  50. sfaok

    sfaok

    Joined:
    Nov 27, 2012
    Posts:
    23
    Hi - I'm attempting to use this for fish, like sharks. It works well for simulating the flow of the creature as it swims through the water, but I'm having trouble getting the tail waving to look correct. At the moment basically the tail waving is too far up the body. Is there a way of biasing the waving towards the tail end of the creature? I was hoping I could use "Partial Blend" to bias the waving towards the lower tail bones, but that also affects the overall bending of the creature.

    Perhaps I need to combine spine animator with tail animator for this type of animation system?
     
    Last edited: Mar 21, 2023