0
$\begingroup$

I’m trying to make separate animations for my character, which will be used for an experimental game in Unity. I’m having trouble with the action editor, it seems to be not working the way it should.

Here’s my first created action, it works fine, just the way it should:

First gif

Now when I add a second action just for the apple’s stem, which should be a separate animation, the peel object not only moves but its animation is also wrong:

Second gif

The peel now opens like a door, which it shouldn’t do that, only peel off like in the first “.gif”. Can it be that I did bad links to the bones? I also tried unticking the animations in the NLA editor, but the peel still distorts if I don’t remove the second action completely. Whenever I create more than one action, it always interferes with the other actions, especially if I create an action on the peel’s bones and then create a new action for the same peel, it gets distorted like if the armatures have 2 different animations playing at the same time.

My project's download link

$\endgroup$
2
$\begingroup$

I did a few things to this file before sending it back to you.

  1. As moonboots said, it wouldn't be a good practice to have so many armatures. So I consolidated them all into one. This required renaming all of the bones, to avoid naming conflicts, so all bone names are now unique. This also means I needed to rename the vertex groups accordingly so that existing skin deformations would be preserved. This will make things easier by allowing you to access all bones directly whenever you're in Pose Mode.
  2. The bone rolls for your peel joints were very much not aligned, which creates a problem for anyone trying to select them all and rotate along one common axis. They are now aligned: rotating along the local Z will unwrap the peels in an appropriate (away from the apple) direction. This was achieved by going into Edit Mode, selecting the base bone for a given peel chain, adjusting the Bone Roll value for it until it lines up as being tangentially aligned with the curved surface of the apple, then select all the bones in the same chain, while adding this newly tweaked bone to the selection last. Then press Shift + n to bring up the Recalculate Roll menu, and choose the option called Active Bone. All the other bones will snap to have the same orientation as the base bone.

  3. After realigning the axes, I needed to recreate your Peel open action, since the keyframe data had originally been set on channels which were now not correct for the new bone orientations. It still takes up the same number of frames. The only difference is that now it makes use of all of the bones in each peel chain (all of them rotate now, as part of the action), instead of only the base one.

  4. The Stem rot action was also recreated, but I didn't really know what it was supposed to do. It's action only contains a single rotation, 90 degrees in the Global Z, because that's what it looked like your video showed. I used the Axis Angle rotation method so that it can be rotated and keyframed on one channel only, even though the bone is at an angle relative to worldspace.
  5. All of your Peel bone joints were changed from Quaternion rotation method to Euler ZXY. My understanding is that Quaternions are not necessary unless you have 3-axis rotations, and I'm assuming your peel animations won't use more than two. I chose Z first in the Euler rotation order because it's my understanding that the first axis should correspond to the local axis you want to ensure is always consistently available. But my understanding on this is limited.
  6. The NLA Editor has two clips in it--one for each of your actions--that are exactly fifteen frames long and, given what I know of your project, work as intended. There was never anything wrong with the actions as far as they themselves went. But there were things wrong elsewhere, as moonboots explained. Finally, various unnecessary nodes here and there were deleted or renamed to help clean things up.

Note: I don't know what the role of the seed-looking eye things is supposed to be, but they were originally parented directly to the armature object. When merging the armatures, they broke, and so I had to decide how they were to be parented, but didn't know what would be best for them. I parented them to specific bones in the peel chains nearest to them. They seem to work as they did before. I just wanted to make you aware of this change, as well as why it was made.

By the way, this file was surprisingly large at almost 16 meg. This is due to you having packed your textures into the Blend file, which isn't strictly necessary for showcasing a problem with a rig. What you could have done was unpack the textures before sending this file. File > External Data > Unpack All into Files. Simply realize that not everyone who might like to help has fast computers/internet connections.

You helped me see that I made a mistake in the file I sent back. It appears that you still have two armatures, one called "Controller", which I had intended to be the only one, and one underneath it called "Armature", which contains all of your peel bones. To fix this, first make sure your 3D cursor is at the worldspace origin. Then, In Object Mode, select the armature named "Armature", go into Edit Mode, and press Shift + a to add a new bone at the 3D cursor location. Give it a name, like "Base Bone." While still in Edit Mode, select each of the base bones for your peels one at a time (do not select the children peel bones), select also the stem bone, and finally select the Base Bone (make sure it is selected last), and press Ctrl + p to bring up the Parenting menu, and choose Keep Offset. Do this also for the Stem bone and the two smaller upper peel bones, so that they all are parented to the Base Bone. Now all bones will move with the base bone. Next, go into Object Mode and select the "Armature" armature first, then the "Controller" Armature, and press Alt + p to bring up the Unparent menu, then choose Clear Parent and Keep Transformation. This unparents the "Armature" armature from the "Controller" armature, but by using the "Keep Transformation" option, you ensure that it stays in its new location afterwards. Now, in Object Mode, delete the armature called "Controller." You now have one armature called "Armature" that has a base bone that moves everything. More importantly, none of your actions are broken.

But there is still one more issue. In Pose Mode, the peel mesh objects follow the controller bone, but neither the apple base mesh, nor the smaller seed part objects, follows it. This is because they are not parented or bound to anything. Parenting is probably simpler than binding. But because your mesh parts are only directly accessible in Object mode, and your bones in Pose Mode, multi-selecting these two sorts of things can be a bit tricky to understand at first. Start by selecting your Apple base mesh in Object Mode, then, while still in Object Mode, select the armature. Now, go into Pose Mode, and select your Base Bone. Now, Ctrl + p, and choose the Parenting option Bone. In the Make Parent options panel that pops up in the bottom left of the viewport, expand it to make sure the Keep Transform checkbox is checked. Your apple base mesh is now parented to your Base Bone. But you will notice that your peel meshes now have double transformations. This is because your peel meshes were already parented to your apple base mesh before we started. Unparent them from the apple base mesh. You only want them parented to the Base Bone. Now follow these parenting steps for the apple core and central seeds. You can leave the two topmost seeds alone, because they're only parented to the top two small peel bone chains.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Thanks a lot! I selected your answer because you were really descriptive, clear and told me some remarks that will be really useful in the feature. Also you even uploaded a .blend file, which made things easier, but also simpler to understand. You missed one bone, which is a controller under the apple, so I tried merging with the other bones, I got a "Not responding" error, and it doesn't seem to fix itself so I need to force close the program everytime I merge the bones. Could you help me out with that? $\endgroup$ – lunaLu Jun 3 at 15:34
  • 1
    $\begingroup$ In practice, merging these two armatures is presenting the problem of the apple base mesh no longer coming along with the entire armature, because the base apple mesh is not currently bound to any armature, and has no vertex weights. If you want to bind it, you can, but then you will have to edit vertex weights. By having these two armatures, you have an apple base mesh that follows where your Controller bone goes without having to paint weights, and the peel bone rig follows it also. I'm still trying to find a solution that removes this mult-rig scenario without breaking your actions. $\endgroup$ – R-800 Jun 3 at 19:00
  • 1
    $\begingroup$ I have a solution, and it's been added to the end of my answer post. Follow those instructions, and it should get you squared away. $\endgroup$ – R-800 Jun 3 at 20:04
  • $\begingroup$ omg I really appreciate your efforts. The big new text you've added seemed intimidating at first, but thanks to your crystal clear explanations, I've managed to fix it myself! I didn't do the parenting for the apple core and the seeds, because they seem to move just fine when animating. The controller bone was way too tiny so my bad. Thanks again. $\endgroup$ – lunaLu Jun 4 at 12:16
1
$\begingroup$

It’s because you’ve erroneously given the action called Stem rot to the armature called arma03. You may not see it because you haven't pushed it down from the Dope Sheet into the NLA, but you'll be able to check it in the Dope Sheet. Dope Sheet will always play over the NLA.

I guess Stem rot is supposed to be used by the armature called Armature (the tail), not by the armature called arma03 (the peeling). But you've erroneously assigned Stem rot to arma03 (you've probably selected the armature and select the action in the Dope Sheet). Stem rot is supposed to move a Armature's bone called Bone. It happens that arma03 also have a bone called Bone. So if you assign Stem rot to arma03, it will move arma03's Bone.

Actions can be shared by several objects or armatures. For armatures, a keyframe is attached to a bone's name. As soon as a keyframe has been created for a bone called boneA, the action will affect any boneA of any armature.

To fix that, select arma03, go in the Dope Sheet and close this action.

By the way you should merge all these armature, it would make more sense, it will be much more convenient and it will prevent this kind of problem.

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.