Website powered by

Break it down - God of War Mystic Gateway

Why tho?

I was playing God of War Ragnarök during Christmas break and i really liked how the mystic gateway animation felt like.
During one of the play sessions the developer side of me woke up and was like..."hmm I'm wondering if they just reverse an RBD sim for this."

Like any respectable Technical artist out there, I was like..."let's try it out! I'm curious how this was made"
And I did, i did a fast prototype in an hour or two, proved that reversing a gravity RBD sim would be enough....and that was it...i moved to next thing that got my attention.

One month later i stumble upon the reference photo i took for this test and decided i could spend a bit more time on this, and maybe write a blog about my approach on it.

While nothing complicated I think the ability to break down tasks is something that everyone struggled or struggles with sometimes.
So this is for those people (hey past me!).

Two disclaimers though:

  1. This past year I've been learning Houdini, so my breakdown will focus mostly on Houdini work(although similar concepts exist in other DCCs as well, hope this can still be useful).
  2. This is a fast prototype, where i don't care about polish or quality, its just to prove a workflow.

Gameplay Footage and References for the Mystic door.

Break down part

Observing 

Let's look at the images for a bit and break down what we can notice:

  • There are 2 states (Active and Inactive), we can also see that there's an archway shape and some rocks following this shape.
  • Rocks are following the normal of the curve towards the inside and bend with the curvature.
  • There are gaps between the rocks and the wood frame and that makes our life a bit easier to recreate this.

This gives us plenty of information already on how we can start, but lets look at the animation as well and see what our model needs to support in terms of movement.

  • There are 2 big rock pillars intact even when inactive (left and right, one a bit uneven)
  • Each individual plank fracture independently and that tells us its probably split in its own element (each plank i mean)


Now what?

I need a rock asset, an archway made with it, a wooden door made of vertical planks, a fracture for the door and an RBD sim with gravity on.

Rock

Well this was easy and i cheated a bit, i downloaded a rock from megascan, while houdini can easily generate some i thought this is not the real focus here.



Archway

Here i created a spline that i mirrored and remeshed where i copy on points my rocks with some random N and random scale attributes to make it look less repetitive.

Wooden Door


Since i knew i will need to fracture the wooden door i wanted to have separate planks created from the start, so i dont have issues with newly created faces.
For the plank creation I created a shape from the archway initial curves, bridge the missing gap and boolean it with boxes created as planks.


Wood Fracturing


Fracturing the wood planks I went on the old approach of scaling down the mesh, voronoi fracture, and scaling it back.
That creates some wood like fragments, then i created the constraint manually.

Simulation


Tearing down using a RBD Bullet solver, nothing fancy here, just an RBD Solver with gravity on.

And now final step, reversing the simulation of the RBD solver.

Wrapping it up

This was a fun thing to tackle, especially since i didn't had the actual production stress or worrying about the final quality/polish.
No quick prototypes can actually represent the full asset used in games as having anything in a shipped title is more than just having a working animation, its about visual and gameplay polish, it needs to work with gameplay metrics, 3c, vfx and audio setups, it needs to work in a full environment and more importantly be iteration friendly.

I always like to find things that i could have done differently or improve on and for this mini project its no difference.
This is what i would have done differently or had a different approach if it was in a real production environment:

  • Rock generator that adds that visual noise as repetition is still pretty noticeable(or more rock assets to scatter) even if i tried to hide it with rotation/random scale etc.
  • I would like to find a nice way to check intersection between the rock points, as the current setup i was just lucky with the seeds and scale of rocks that i used, my current setup was NOT production friendly, and would have required more work if an art director or shot supervisor would have requested lets say...add 1 more rock.

What are your thoughts on this approach?

/Andrei

P.S: Adding also the houdini network view.
P.P.S: Remember to have fun along the way.