I created a character for a game. It has IK legs. I animated its foot and didn't realize that they were Quaterinon. I made lot of actions with it.
Now... as I will make more actions with this character, I would like to convert every Action with its rotation data to Euler. So, after changing its rotation mode, the bone would have the same visual rotation as it had with Quaternions.
There are some ways to do it by hand. In my opinion, the easiest is:
- Select one Action.
- Select the bone I want to convert.
- Enter in Edit mode.
- Duplicate it.
- Go to pose mode.
- Insert a keyframe LocRotScale (now, it appear as a channel in the Action).
- Copy every frame from the first bone and paste them in the duplicated one (select keyframes, Ctrl-C, select channel, Ctrl-V)
- Change Rotation mode to XYZ-Euler to the duplicated bone (this step has to be here. If not, it wouldn't have the correct keyframes).
- Add a CopyRot constraint to the duplicated bone, copying the visual rotation from the first one.
- In the first keyframe, insert VisualRotation Keyframe (selecting VisualRot in keying set).
- Press Up key, press I key. Again. Again. Again till the last keyframe.
- Select first bone.
- Convert to Euler.
- Insert a keyframe (to aquire Euler channels).
- Copy every keyframe from the second bone and paste to the first.
- Delete the second bone and its channel in the Action.
As you can see, it is a big deal to do this with every bone and every Action.
I think, in total, there are 3 ways to do this:
- The one I said, by hand.
- To make a script that make all those steps, but automatic.
- To make a script that include advanced math operation to convert those Quaterion keyframes to Euler ones.
- To use "Rotation mode keyframes" in every Action, to respect the correct mode. I mean, to put a Quaternion keyframe in every already done Action and put a Euler keyframe in every new action. (I didn't try this technique, I don't know if it works in BGE)
... any other?