Hi,
So this may not be a disabling bug but is something that needs to be pointed out in the content example for the animations. I used the Owen Simple locomotion for reference when setting up my character animations blends. However, I had this nagging “hitch” that just was hard to see until I slowed down the global time dilation for troubleshooting and here is what I found:
When importing a “Looping” Run North animation, I have frames 0 to 17, where frame 0 is the same as frame 17. I only import frames 0 to 16 so I don’t need the double frame. This is how Owen’s locomotion is done in his example. I was assuming the engine would interpolate between 16 to 0, but it does not. It actually hitches the animation. To fix the problem, you need to add the double frame to the end and import from 0 to 17. this removes this hitching problem.
I have verified this with Engine 4.4, as now I need to go back and re-export all my looping animations
It seems that maybe the engine was intended to lerp the last frame? Anyways, I have the solution I need, but I wanted to let you guys know about it. It drove me nuts for way too long! Thanks!
FYI, you can see the hitch on the Owen Locomotion in the content example if you slow down the playback rate.
Good catch! In the past this looping issue was corrected by setting “Looping Interpolation” to True via a checkbox in Persona (it was set to True by default). Looping Interpolation would basically do just what it sounds like and make the animation interpolate smoothly from the last frame back to the first (instead of noticeably hitching). However, this caused lots of other pesky problems and was eventually decided that it was more harm than help.
Good news, though, to address situations just like you mentioned where animations have already been authored and imported without the double start/end frame, a command was added called “Add Looping Interpolation” which will add the first frame of your anim to the end (you’ll notice after running this that your anim sequence will be one frame longer). This command is found under the Asset menu in Persona.
Thanks for the quick reply. I have investigated using that option this morning and I have a huge bug report to reply back with. I would recommend to never use that option in its current form. I will follow up with report of why not shortly.
The interpolation method is not controllable. If you look at the video, the bottom animation has the key added as suggested “Add Looping Interpolation”. When the frame goes from 16 to 0, there is an abrupt change in speed.
The top animation in the video is the same animation with the double key imported. It keeps the correct blending of speed. Now this may not be a big deal unless you have some slow motion effects
Annoyance bug, when the keyframe is added, the timeslider does not redraw its scale, however you are able to slide pass the edge as if it was.
Annoyance bug, when the keyframe is added the content browser doesn’t refresh the frame count until you leave the current residing directory and comeback.
At first I thought it was a major bug with re-importing but was actually linked back to the FBX exporter from Maya. Lets say I have frames 0 to 16 active in the time slider in Maya, but when I export I choose to only export frames 0 to 15. The exporter does export only frames 0 to 15 but it also adds an additional empty frame since it had 0 to 16 on the timeslider. If i changed the timeslide to 0 to 15, it was fine. However, that is not UE4.
I would recant my statement of “never” to use since I was able figure out the exporter issue. However the “Add Looping interpolation” works good on alot of the animations, it just depends if your trying to interpolate across a critical motion spot in the animation cycle.
Just wanted to say I had this problem too and I lost many hours having to adjust my animation itself to compensate, in 3ds max, rather than realizing I had to add an extra frame at the end.
It is counter intuitive because cyclical motions end and start the same anyway, but you need this extra frame for some reason!
I think the title of this feature is misleading. This doesn’t do any interpolation per se, but it just adds the extra frame (the first frame) back to end frame for easier transition. This is a legacy feature that we meant to remove for a while because it creates confusions on how many frames the content really has or comparing with maya also can be confusing. However, I got reports about some differences with how that worked and it doesn’t do same.
Either way, this isn’t supposed to be any awesome feature, but to remove old legacy feature of “adding interpolation by default”. I don’t think we’ll add a lot to this feature or fix bugs. Rather, we’d like to add other features that improve usability - i.e. looping detection - or editing animation moving forward.
However, when I get a chance, I’ll look into the issue with interpolation. People mentioned that that doesn’t do exactly what it used to do, so there might be something we can find quick.
Lina, Thanks for the reply. If you could add a way to offset looping animations for blendspaces that would be nice too
The idea would allow us to change the starting location for a loop cycle. It would be nice to quickly change a couple of frames for example tweaking run blendspace transistions.
I know this was completely separate from the original post, but wasn’t for sure where to request something like this… if it doesn’t already exist.
If you are experiencing the issue described in this thread, the answer below is to “Add Looping Interpolation” (which will ad an extra frame to avoid the skipping) which is found here: