BGP Fourth Post
|
After having tested our engines, Unity’s, IK system the results have turned out rather poorly. It would seem like there are a couple of reasons for why this is the case, most of which stem from the simple fact that Unity’s Built-in IK system is somewhat lacking. To explain the first one I will need to describe the basics of how to prepare a character in Unity for animation. As per the methods I have seen you can go about two ways. The first one is to import an fbx file containing your character with it’s mesh, rig and animations into Unity. The second option which is much more common, although I am still not quite certain why this is the case, is to import two separate fbx files. One containing the mesh and rig and another containing your animations. In the latter method you use the fbx containing your mesh and rig as a form of skeleton onto which you project your animations by way of the second fbx file. Regardless of which of these options one picks one will then have to define the character to unity as either ”Humanoid”, ”Generic” or ”Legacy”. The first one is rather self explanatory and tells Unity that the character is of humanoid nature, meaning it’s bipedal, has two arms and a head, in other words that it follows human anatomy and proportions. This is the option that is supported by Unity’s in-built IK system. Only if you define your character as ”Humanoid” will it be possible to use their IK system. The problem is that we were unable to use the ”Humanoid” definition due to it being rather finicky and precise about what proportions it will accept and work smoothly with. Our character is humanoid in it’s anatomy but it’s proportions are a far stretch from what the average human would look like which results in Unity making some unwanted alterations and transformations in things such as animations. This left us with the option of either ”Generic” or ”Legacy” where we picked the former. After quite a bit was spent trying to manually script a custom made solution to this problem the group decided that the best course of actions would be to simply buy a script from Unity’s web store which solved this problem for us in order to save valuable time. The solution worked quite well albeit it being a bit pricey. |