I am trying to animate an avatar based on input from a gyroscope. Something similar to a golf swing monitor. I have loaded an avatar from Avaturn that is in a T pose and am trying to position it into an initial pose. After that I will simply use the gyro data to move the arms and hands. After hours of effort with the assistance of ChatGPT4 and Claude.AI I have not even managed to get it into the initial pose.
In Blender when I rotate a bone around x y or z that is what happens. If I rotate an arm around Y from the initial T pose, the arm swings down until it is hanging down vertically and resting against the side of the avatar. When I open the model in THree.JS and try to rotate, x and z work fine but y doesn’t. Instead of rotating the arm down it twists the arm around its longitudinal axis, so the palm ends up facing backwards.
AI talks about local bone coordinates and global coordinates and tried unsuccessfully for hours to give me code that would rotate the arms around the y axis to bring them down by the models side.
It seems to me that there are really 4 axes for a bone movement, x, y, z rotation and twist. Threejs seems to drop the Y capability and substitute twist.
The added complication is the effect of moving other parts of the model. In Blender if I bend the model forwards from the waist, I can still rotate the arms around their x y and z axis as before. With threejs and javascript, once I have tilted the model forwards, the standard rotations of the arms no longer work. They produce all sorts of strange results. Am I missing something fundamental here?