We are porting over a web-player game to iPad. One of our scenes has an animation of a cylinder that goes from straight to curvy and then straight again. It's built from a cylindrical mesh with a high-ish poly count and 3 bones, one at either end that reamin stationary and one in the middle that rotates to twist the cylinder in and out of an "s" shape.
On our web-player version this animation plays fine generating a nice smooth curve in the cylinder. In iOS however the cylinder forms sharp angles when played on the iPad (its fine in the editor) at 1/4 and 3/4 it's length and straight segments between, as if the bone weights are not blending along the length of the cylinder.
We get the same result with Edit>Project Settings>Quality blend weight settings at either 2 or 4.
Does iOS have a limitation to how it blends bone weights?
We think we may have come across a bug with the quality settings for iOS builds. We've tried this a few times working from empty projects and sometimes it occurs and sometimes not.
Starting from an empty project we imported an FBX with our animated tube. I then wrote a small script to display the current player quality settings in a GUILabel.
If we run the project in the inspector the quality setting is "Good" reflecting the default setting in the inspector.
If we Build & Run the project, sending it to the iPad through xcode, the player runs in "Fastest" despite all of the settings in the inspector being set to "Good". Fastest has only 1 bone weight and this is what caused the animation anomalies we were seeing.
Setting the quality setting explicitly from the default in the inspector for "Mobile" didn't seem to have an effect, but if I set the quality setting from a script once, then there after the quality settings seemed to reflect the inspector values. Also any changed quality setting seemed to survive invocations of the app on the iPad, even after killing the app from the multitasking bar.
We've tried starting from blank projects 3 times and this behavior only happened on one of them. Also after the quality is successfully set we can't reproduce the problem further. We're not sure the sequence of events that leads to the issue.
The bottom line however is, if you're deploying to iOS and seeing some strange quality issues check the quality you're running at to see if matches what you expect.