Hi, I’m having a little issue here, the Tail Animator seems to have different behaviours depending on what machine is running it.
We are using exactly the same configs and all (same commit), one of our objects is crazy bouncy in one of our machines and the other object don’t limit the angle properly.
That’s probably caused by different framerate, in Tail Animator V2 there will be option to unify the behaviour.
Can you check if setting project’s framerate to fixed 60fps will make them look the same with current version?
I am not sure but I am near completing, strugging with few things to solve.
I doing like 14 hours or more per day on that now it will be really big update.
Now Tail Animator is using just one component (TailAnimator2.cs)
You need to convert Tail Animator V1 components in order to use new features, to convert go to “Packages - Demos - Converter” directory and unpack “Tail Animator V1 to V2 Converter + Old Examples.unitypackage”
It will override some code from previous version of Tail Animator and add buttons “Convert To V2” on top of your Tail Animator V1 components.
After converting you should try to tweak parameters for tail behaviour from scratch since Version 2 parameters are basing on slightly different logics.
Demo scenes are packed into .unitypacakge files to avoid importing many scripts and assets if not needed.
Changelog
New component containing all other components features (only it should used from V2) - Tail Animator V2
New GUI
Language support for inspector tabs titles
New parameters: “Slithery” → V2 Slithery setted to 1 / 1.2 will make motion look almost the same like V1 motion
“Curling”: Similar to V1 “Sensitivity” parameter
“Sustain” (experimental): Making tail bounce more after moving (more noticable with boosted “Springiness”)
“Unify Bendiness” (experimental): Making tail bend in similar way no matter how many bones / how long tail model is
“Reaction Speed” / “Rotation Relevancy” / “Animation Mode”: Working in almost the same way like V1 "positions / rotations speed
Fixed Update Rate mode to make Tail Animator motion look the same in Higher / Low fps domain
“Prewarm” option to pre-animate tail before first game frame to avoid jiggly start in some cases
“Root to parent” parameter replaced by “Include” / “Exclude” dropdown next to “Start Bone”
“Queue to last update” renamed to “Update as last”
“Blend To Original” renamed to “Tail Animator Amount” and reacting in reverse way than old “Blend To Original”
New parameter “Limit Axis 2D” to restrict tail animator for rotating around 2D space (please adjust auto waving axis if you using “Auto Waving” - some cases can’t be restricted)
All main parameters now have possibility to spread values separately on each tail segment with curve
“Use Waving” renamed to “Auto Waving” and putted into new “Additional Modules” tab
“Fixed Cycle” for syncing tails waving animation for “Auto Waving”
“Collisions” feature in additional modules tab
Collisions algorithm upgraded and enchanced with some new paramters
“Collision Swapping” renamed to “Reflect Collisions” and working in reverse way than V1 parameter
Experimental “Collisions Slippery” parameter to make tails slide a bit less on colliders
Selective collision space have new tab “Dynamic World Colliders Inclusion” to dynamically add colliders from scene with trigger collider
“Partial Blend” as module
New “Inverse Kinematics” feature using CCD IK
New experimental “Deflection” feature to make collision affect back tail segments when deflecting it
New “Disable when Far” feature to smoothly disable tail animator when is far from main camera or other object
Experimental wind effector
Upgraded Mesh Skinning API to be used in Editor but also in Playmode
New demo scenes
Possibility and examples of cutting tail to smaller ones and generating additional segments dynamically
Example of generating tail model procedurally and skinning it in runtime
And much more small improvements
Now I will focus on big update for my other package: Optimizers.
After that I will work on DOTS or ECS implementation for Tail Animator 2.
Hey, I just installed version 2 and unpacked the examples and “tails to use” packages. I pulled-out the short optimal tail into my scene and set the gravity to 0,10,0 in the “physical effectors” roll-out. The gravity seems to have no effect on the tail at all, though.
Edit: I figured-out the problem. I simply had the tail animator amount % set to low number for some reason. Seems to work fine at 100%
Hey there! We’ve recently acquired Tail and Spine animator and we’ve noticed that they do not work with optimized model hierarchies but require the bones to be in a regular child-chain. Are there any plans to support flat hierarchies and let us manually add the bone chain? Especially for mobile games, optimized, flat hierarchies (enabling “Optimize Game Objects” in the rig section of a model and manually exposing individual bones) are quite commonly used to reduce the amount of transform updates.
Yes I know about “optimized hierarchy” but this option just removes possibility to make changes on any bone.
Yes you can add exposed bone but you can only get it’s position and rotation but not edit it, you can apply custom positioning and rotating.
If your models are just tails without keyframe animation, you could hit “Detach children” toggle, it can make motion work 5 times faster thanks to unparented transform hierarchy.
Soon I will try implement ECS for tail animator which could bring giant boost for the algorithm.
Your asset looks really impressive and I think it will be useful for a number of things in the project I am currently working on.
I wanted to ask before I bought the package if it would be possible to have dynamic bones that are generated at runtime and still effected by the tail animator.
The idea is to generate stuff like plants, roots or flowers growing at runtime but dynamically add the bones to the tail chain as they are generated. Do you think this is possible?
I saw that wenzy in a previous post was using it on a procedurally generated mesh during runtime. I wondered if this was some behind the scenes magic where he had several setups and was just cycling through them or if the tail chain was being procedurally generated and plugged in to the tail animator.
I’m excited to see how it performs with your plans of implementing ECS, should be amazing!
Hi there, a colleague of mine recently purchased this plugin for me and so far it’s working great!
I haven’t checked the documentation thoroughly yet, but when a character is destroyed with the tail object attached a null reference exception is triggered:
MissingReferenceException: The object of type 'Transform' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UnityEngine.Transform.get_lossyScale () (at <e2bce5d33e704a76a5c9576f4d43769b>:0)
FIMSpace.FTail.TailAnimatorWind.Update () (at Assets/Plugins/FImpossible Creations/Plugins/Tail Animator/Utilities/TailAnimatorWind.cs:138)
I’m happy to make a few edits for this to work but wanted to check whether there is a safe, preferred method to destroy a game object with the tail object attached?
The tail animator is great, however I need to use it for 2D, including collisions, for instance where the tail bends around a 2D object, as is possible in 3D. Is there a way to support this with the current version? I think currently the code for collisions is mostly setup for 3D. If so, is there a plan to add 2D support?
Thank you.
Support for collider 2D is not yet considered, but I will check it soon. For now I suggest trying to use 3D colliders in 2D world like in the 2D example scene, but then all sprites must have equal Z axis position.
I am not sure if 2D polygon collider support will be possible.
Hello! Just bought your asset and didn’t have an opportunity to explore it in-depth. Visually it works great, but I couldn’t find info on detecting collisions in the manual… Is it possible to detect the collision with a tail via script? Like if I want to “punch” an object with a tail and add force on collision or something like that.