Search Unity

3D Animation on TWOs in Unity

Discussion in 'Animation' started by ArtSource, Jul 8, 2019.

  1. ArtSource

    ArtSource

    Joined:
    Jun 6, 2018
    Posts:
    1
    Hello everyone!
    Here's probably and unusual question. :)

    Those familiar with traditional animation probably know that there's a thing called 'animating on twos'. It's when single drawing is exposed for 2 frames instead of 1. And of course we are talking 24 fps.

    Recently this thing started to appear in 3D animation to get this feel of something closer to classical animation. Great example would be Spiderman in the Spider Verse film, which was animated on Twos.

    Question: how can this be recreated in Unity. For instance, we are animating a character in Twos in Maya at 24 fps (and step interpolation instead of splines). When importing animation into Unity the whole animation becomes jittery because it's converted into splines and splines go bananas when there 2 identical frames next to each other.

    Is there a workaround? Has anyone tried it?
    First project probably should be set to 48 fps in Unity, right? Since animation will be technically at 24 and I don't want it to be converted to a totally different framerate.

    Some objects in the game might be animated on twos, some on ones. Basically, it would be great to have no splining for character animation.

    Maybe there's a plugin or some settings?

    Thank you!
     
  2. RichardKain

    RichardKain

    Joined:
    Oct 1, 2012
    Posts:
    1,261
    You could do this manually, in the actual animation itself. But this is a less flexible approach, so it is usually avoided. Or you could simply take manual control of the animation itself through a script, and simply update it at a rate of 12 frames per second instead of 24 fps.

    Please keep in mind that the actual framerate of most feature films is around 24 fps, not 48. And that's full standard live-action films, not animation. An animated film animated by 2s is actually around 12 fps, not 24. It was only recently that a few films began to be shot at 48 fps, and many audience members found the effect jarring. Even 3D animated films are usually rendered at 24 fps, not 48.

    The average video game is expected to run at 60 fps or higher. Going for a more traditional animation effect will require that you throttle the standard frame-rate considerably. Ideally, you will also need to throttle everything! The easiest approach would actually be to take manual control of your main camera. By forcing your camera to only update when you want it to, you can guarantee that all the elements in the scene will also be rendered at the same frame-rate, no matter how their animations were created. At that point your only real challenge is to double-check the step frames to make certain they look the way you want them to. A relatively simple script should allow you to control the rendering frame-rate of the camera, that's fairly easy. A more advanced script could also give you a "preview" function to step between theoretical frames on your timeline, and take a look in real time at what is going to be rendered at each frame.
     
  3. MWellman

    MWellman

    Joined:
    May 27, 2017
    Posts:
    15
    I'm doing research on this subject as well.

    @ArtSource Have you found any solutions?

    @RichardKain - Your right that taking over the camera would be the easiest way but i'm suspecting a few issues that I will detail in my question below.

    Instant feedback problems. In my design the player does not directly control the characters on screen (animated on twos) but will cycle through menus (normal framerates). Taking over the camera's framerate would apply the limited framerate on everything in game, which is not a desirable outcome. So that option is unfortunately ruled out, as it would have been the easiest.

    3D animation in games are done from a source that is set at 30frames per second. Every extra frame (when the game is running at 120 frames for example) is interpolating each extra 'in-between' frame in engine. This also comes with it's own challenges, because if an animator designs a real good POP in his timing/spacing and wants a bunch of blank frames as seen in many movies and TV shows, well, in gaming, we're out of luck, the engine will pump in a bunch of extra 'in-betweens' as much as the systems hardware can handle.

    Has anyone found a good solution around this?
     
  4. MWellman

    MWellman

    Joined:
    May 27, 2017
    Posts:
    15
    @ArtSource

    I found a solution, In your animation software, after baking for export, set all keys to step. Unity will understand this. Also, on your animation's settings in Unity, Uncheck 'Resample Curves'
     
  5. MWellman

    MWellman

    Joined:
    May 27, 2017
    Posts:
    15