Wrangling Frames: Matching Animation

It’s no secret that here at the Starry Expanse Project we’re sticklers for accuracy in our reproduction of Riven, and at the center of this endeavor is camera-matching, the placement of cameras in a scene that represent individual shots from the original game. This process isn’t exactly complicated, but it can be finicky and requires a lot of patience to get the best results.

There is a lot of animation in Riven. Putting aside the live-action character performances, there are buttons, levers, bridges, elevators and more. We use the same principles to reproduce these moving parts.

Camera-matching animation is relatively straightforward, as we use the viewpoint cameras we have already set up. Most animation files in Riven encompass a small section of a shot, so we have to carefully position them to make sure everything lines up. Once it’s set up, we can watch the animation in our 3D viewport and animate accordingly.

The fact that the original Riven was created in a 3D software package is incredibly helpful to our animators. These programs allow artists to move objects in one axis, or rotate them precisely to a fraction of a degree. The original Riven team used these tools as well, which means we usually can take for granted that if an elevator is moving vertically, it will be moving perfectly in one axis only. Likewise, if an object is rotating 180 degrees, it’s very likely to be moving an exact 180 degrees.

One interesting challenge that we face is to find a way to capture the feel of the Riven animations with a variable frame rate. All of Riven’s animations play at 15 frames per second, which is half of the 30 fps standard for games animation, and much smaller than the 60+ fps that we expect modern games to achieve. The difference in the feel of the animation is definitely noticeable.

We hope this delve into our animation pipeline has been enlightening, and if you have any questions please leave a comment . There are still many challenges for our animation team to overcome (character performances in particular), and this will be the subject of another post in the near future.


26 Responses to “Wrangling Frames: Matching Animation”.

Team members' usernames are in red.
  • Andross Says:

    Very interesting, so what about the animations which you can see from multiple viewpoints (like the fire domes), are they actually all the same? Or do they have slight differences like some of the still shots do.

    • Andross Says:

      Also, one of the things of note in the animation comparison, is that the 15FPS produces a very pleasing judder which actually enhances the illusion that the door has real weight, creating as you said, that Riven feel. Is this something that you will implement manually?

      • Nick Says:

        It’s something we noticed as well, and although we can definitely implement animations that are locked to 15fps we’re still deciding whether or not we should.

        • Andross Says:

          Well I guess it depends; ideally you can match the feel by making small keyframes and secondary animations to achieve the same effect. After all isn’t that just the same as texture upscaling? You’re creating detail which couldn’t exist before. It would be a heck of a lot of effort though.

      • jnm2 Says:

        In real life we’re used to watching heavy things move at a high frame rate, so I’m not sure if that’s actually a problem?

        • Andross Says:

          Jnm2, The frame rate isn’t the problem, the cleaness of the animation is. When a heavy object moves in RL there are a whole lot of secondary movements and judders that make up its appearance; things are very rarely perfectly smooth. With 15fps, it’s only just faster than what the eye can see, and so it appears to have a roughness to it, and in this case, that actually implies weight to our brains. At 30 or even 60 fps the movement appears unnaturally smooth and falls into the uncanny valley which is something which is almost but not quite perfect which sticks out because of it.

          • jnm2 Says:

            Maybe they could use non-uniform interpolation to introduce judder on purpose and still hit all the matching frames?

          • Andross Says:

            That seems like it would be ideal, as that could be quickly applied to lots of different animations, and would consume a lot less memory than adding more keyframes.

  • Antony Says:

    Wow, so will the animations will simulate 15fps?

  • Kaelan Says:

    The camera-matching is so cool, the final result looks indistinguishable to the original (looking past the unfinished textures / lighting). I think this game running at a solid 60fps is very achievable, the animations just need some very small imperfections added to create realism that was previously disguised by the low frame rate.

    Very interesting update! My biggest worry for the project as of now is the characters. In Riven, the live-action characters added SO much realism and immersion to the world. With 3D character models, it would feel much less like a real place and more like a game. I look forward to hearing more in the near future, best of luck!

  • Jennifer Wietecha Says:

    Super interesting! Really respect the attention of detail in mimicking the authentic feel of the game.

  • Timothy Barker Says:

    First off awesome job.
    The camera matching is really interesting.
    I to like Kaelan, am rather concerned about characters, one of the many things that made the first three games superior to Myst 5 and uru is the live action characters, everything felt so real, so believable, because, it was.

    • Andross Says:

      I agree. I’m not sure how to solve that problem though, unless Cyan have the original HQ tapes somewhere which could be scanned in and upscaled, you couldn’t possibly use the old performances, and using different actors would be extremely jarring. We’ll just have to hope that they have found a really good character animator who can mimic the characters as much as possible. I mean we’re probably not going to get Injustice II levels of character animation, but hopefully a lot better than Myst V!

      • The Green Butterfly Says:

        With enough effort, the character models can be made to look very real, like all the roles Andy Serkis played with motion capture (Gollem in The Lord of the Rings or Caesar in the latest Planet of the Apes movie, which look very real), or the very impressing animation movie Tintin and the Secret of the Unicorn (also with Andy Serkis and a lot of motion capture), the last has very realistic character models even though you can still see it’s computer animation. Character models like in Tintin would look perfect in Riven.

        • Andross Says:

          The only problem with that is: with traditional animation all you need is (no small amount of) skill and time. With Mocap you need highly specific expertise and equipment (hence why it’s only used for movies and a -very- few AAA games). I’m not sure that 59 Volts has that kind of expertise or budget.

          On the other hand, Yoda in AOTC and ROTS was (I believe) traditionally animated, and that would more than adequate.

      • Kaelan Says:

        I truly believe live-action characters are do-able, most likely re-done with new actors. Cyan has already approved and iirc, supports this project; I would be surprised if they didn’t chime in at some point to make this possible. (Heck, maybe they already have.)

        Maybe I’m expecting too much here but I can’t help it – Riven is a masterpiece of a game and with how much effort is going into this project so far, it deserves to reach its fullest potential.

  • Peter Says:

    Excellent!
    Will we be able to move towards the spider chair while it’s opening? Also, it would be cool to see it close for a first time. Will we be able to do that (as well :-)?
    Off topic, but… I would like to know how the boundry’s work. Ik mean, can we see the back of the fissure? If so, who is designing this? Possibilities are endless. This is one of the many examples of the stuff we can’t see now but would be possible to see with this sublime project.

    • Andross Says:

      They have covered this in a previous post, re the play area. What do you mean by the back of the fissure though? There’s just a wall on the other side and you can go right down to the edge of the cliff at the end. Unless you’re meaning behind the dagger?

  • Benjamin Giglione Says:

    I definitely want to play this game with 60 fps animations when it finally comes out. If there is a way to make that possible, I hope the team does so.

  • Eric Says:

    That 15fps thing is interesting… at 30 yeah, it really looks like it’s moving too smoothly for a low tech real machine. Funny how halving the frame rate fixes that. Impressed that you guys realized that and are thinking about it! I for sure hadn’t thought of that.

  • Ramon Gerber Says:

    Hello.

    I hope you will animate all stuff at 60fps and then letting the player choose to limit them 15fps. Im sure you can come up with a simple code that divides or locks all animations- together with a option to play at exactly Riven’s native Resolution for a true classic mode (heck, even simulating 256-color, with real-time dithering (shader?)) That would be really, really awesome.

    I know it’s seems like defeating the purpose of your work?… NO! In the end it will look and reveal the true detail and make it more immersive. If your oldschool, you know that.

    • jnm2 Says:

      Ever consider open-sourcing? That way people could contribute side things like 15fps more or 256-bit dithering shaders if they were motivated to.

    • Andross Says:

      According to my understanding, the only thing with the colour palate is that Riven used an adaptive palate for each frame, and the game is very carefully set up to avoid to many different colours in one shot. What this means is that each frame uses slightly different palate and as you transition from one area to another, that slowly changes. That works great for still images, but in free roam, if you simply posterised the colours, every time you so much as twitched, the colours would all be recalculated and the image would look like a really crappy mpeg1 video. I guess you could achieve a similar effect by limiting the shader to a larger colour selection and forcing only those colours, but that wouldn’t be true 256 colours and seems like a lot of effort to go to for an effect which wouldn’t match the original anyway.

    • Nintendo Maniac 64 Says:

      Riven used 16bit-per-pixel color, not 8bit-per-pixel (aka 256 colors).

  • Flake Says:

    Aha i understand – thank you

  • Travis Says:

    You should make it point and click style exactly like riven, and then you can right click to go into exile mode where you can look around 360* degrees. And then you can press w,a,s, or d to go straight into free roam mode, then you can left click to go back into riven mode.

Leave a Reply