Answered

Any tips for reversing a clip

Robert 4 months ago updated 4 months ago 3

Hi, I have a clip that's used to transition a humanoid character from an idle state into an action and I'm looking for a convenient way to reverse the clip so that I can also use the clip to transition back to the idle state. I have a number of similar kinds of animations which I want to do the same with.


Currently Unity doesn't have a way to play clips in reverse via Timelines (for example ref: https://forum.unity.com/threads/reverse-the-timeline-animation.673156/) and I also can't find a feature in UMotion Pro to do this.


I know that I can do this in Blender and so I was hoping to export an .fbx, import into Blender and then re-export. The problem with this seems to be though that the .fbx doesn't import with an rig/armature, it just seems like a collection of animated Empty objects for each bone in the rig. Although I can mirror the animation in Blender it doesn't seem possible to save the result in a way that I could re-import back into Unity / UMotion Pro.


It would be great to either get some help being able to export fbx files that can be modified for re-import or maybe some trick for being able to reverse an animation within UMotion Pro somehow?


Thanks for any help.

UMotion Version:
1.19p03
Unity Version:
2019.2.3f2

Answer

Answer
Answered

Hi,
thank you very much for your support request.

To reverse an animation in UMotion there are two ways:

  1. Select all keys in the Dopesheet (CTRL + A) and click on Edit --> Reverse.
  2. The blue bar that appears next to the current selected keys in the Dopesheet window can not only be used to scale the animation, but also to reverse it (if you drag the blue bar pass the opposite blue bar you apply a negative scaling --> reflecting).

To export your animation to *.fbx with your character's mesh, you need to use the "Update Existing File" write mode:


That way you can export the animation to the *.fbx of your character (or a duplication of it). For more information, click on the "?" button in the UI. Exporting in write mode "Export As New File" is always going to just include the "naked" armature.

Please let me know if you have any follow-up questions.

Best regards,
Peter

GOOD, I'M SATISFIED
Satisfaction mark by Robert 4 months ago

I realise now that this kind of export (where the armature is represented via lots of empty objects) is actually compatible with Unity so I don't really need to worry about the lack of any armature after importing in this simple case where I'm reversing the whole animation.


Unfortunately after realising this and trying to export my reversed animation from Blender I then hit an awkward fbx exporter issue stemming from this representation that meant it got stuck for 20min exporting an incorrect result.


It turns out that each object (for each point in the armature) is given a separate action (clip) by Blender's fbx importer. Then the default options for the exporter say that all actions should be exported in a way that internally results in an operation that scales according to N_OBJECTS*N_ACTIONS*N_FRAMES and is really slow :/ It ends up exporting an animation stack pairing every object with the animation clips for every object, since they are all considered to be interchangeable.

 

In case it helps anyone (even though it's off topic here); from poking around the code for Blender's fbx exporter I eventually found I could avoid the code that results in the slow/bloated .fbx export by unchecking the 'NLA Strips' and 'All Actions' options.


So in the end I do technically have a solution to my original question :) though maybe it would be nicer if UMotion Pro could somehow reverse animations natively :)

Answer
Answered

Hi,
thank you very much for your support request.

To reverse an animation in UMotion there are two ways:

  1. Select all keys in the Dopesheet (CTRL + A) and click on Edit --> Reverse.
  2. The blue bar that appears next to the current selected keys in the Dopesheet window can not only be used to scale the animation, but also to reverse it (if you drag the blue bar pass the opposite blue bar you apply a negative scaling --> reflecting).

To export your animation to *.fbx with your character's mesh, you need to use the "Update Existing File" write mode:


That way you can export the animation to the *.fbx of your character (or a duplication of it). For more information, click on the "?" button in the UI. Exporting in write mode "Export As New File" is always going to just include the "naked" armature.

Please let me know if you have any follow-up questions.

Best regards,
Peter

Ah, amazing, sorry I missed the Edit menu option for reversing - I think I was looking for a tool within the pose editor window, but it makes more sense being in the clip editor of course!

Thanks for the pointer re: overwriting an existing .fbx file that contains a mesh!