It is possible to move bones of nonhumanoid appendages. For example, in a tutorial in a website, a flower together with its stem is animated as a nonhumanoid appendage using transform mask and an additional layer in Animator Controller:
My understanding is that the animation in this example is based on a motion clip that stores predefined information of motion ahead of time. We know that apart from keyframing, two other animation methods are procedual and data-driven. The above example can be considered as data-driven, so I’m interested in how to animate that flower procedually. There is an API in Unity – Animator.GetBoneTransform, also there is a series of bones in the flower and its stem, so it is tempting to use the Animator.GetBoneTransform function to animate bones in the flower. However, the appendage is nonhumanoid and therefore GetBoneTransform function is not applicable (here gives a list of supported bones in Avatar). But we should still be able to control the bones in the nonhumanoid appendage, at least Animator Controller can – it must read the motion data from the clip and apply them to the appendage bones. Now my question is: how do I do it using script? Put another way, how can I move nonhumanoid bones in nonhumanoid appendages in Unity procedually? An example is, we position a game object at random at run-time, and the flower can always point to it. Thank you.
PS: it is often harder to understand the question than to answer it. I hope I have made myself understood. Thank you.