Renaming bones error

I’m busy designing a game and I’ve made a whole load of animations for the main character. I decided to rename the bones to make pose flipping easier but once I renamed them their name changes did not update in the actions they were in. Now the actions only have data for the old names and the animtion doesn’t happen.

How do I rename the bones and keep their action data?

Is there no solution to my problem or am I just being stupid?

Close and reopen the Actions window?

%<

Thanks for the idea but it didn’t work… :frowning: . I’ll just find some other way to do it.

Once you make an action you loose the (action) IPO data on the bone so I’m interested in what you mean by this:

their name changes did not update in the actions they were in.

%<

When I renamed them, the channels in the action window still had the old bone names. The new bones no longer moved according to the keys.

You select the bone in Edit Mode and change the name in the Armature Bones tab in F9. The Action window updates the name immediately.

The IPO window doesn’t update. But, if you look at any of the “IP:Action:Foobar.L”'s in the IPO window menu (or databrowse if there are many), you’ll notice the curves are still there, the chanels are still alive (colored) but there is no Keyframe data (no handles on the curves), and not just on the ones whose names you changed. That’s because all that data has been turned into an Action. All it now consists of is now is the sliders in the Action window and their positions.

%<

I know this is a fairly old post but I have found the names update but only on the visible action. The others you may have keep their old bone names and the action becomes detached from the armature and, useless.

Unless there is a way around this.

Glenn

FIVE YEARS later, here’s a fix that’ll work with <=2.49 (2.5, if you can figure out how to access Actions in 2.5 yourself then you should in business). (I can’t believe this is still an issue after 5 years. FIVE YEARS! come on people!)

open up the Python interactive console (Scripts window -> Scripts -> System -> Interactive Python console or something like that).

then run:

Armature.NLA.GetActions()

(your screen should fill up with all the actions you have)
to get your broken action:

action = Armature.NLA.GetActions()['name_of_busted_action']

then for each renamed bone (== channel in the action that doesn’t map to a bone):

action.renameChannel('old_bone_name','new_bone_name')

save, close, reopen, and your animation should work again.