Resident Evil 7 VFX

To me they just look like a fluid sim with normals, alpha, and maybe AO, baked out into a few flip books. I can’t speak to which fluid sim they’re using though.

Could be. But then they were extremely lucky with the lightingdirection in this gif making it match the environment perfectly or they have a better way of handling normals than I’ve seen before.

RE was released in VR aswell wasn’t it? It would make sense for them to move away from sprites where possible.

1 Like

I’ve been doing normal mapped particles for over a decade now. Done right they’re indistinguishable from meshes in most situations, at least for opaque objects, so I’m a little confused by your comment.

As for VR, while it’s true it’s a VR game I’ve noticed most of the AAA devs doing VR work still stick to the “traditional” VFX methods. Part of that is the PS4 is in no way powerful enough to do those effects as meshes and keep 60hz, so traditional sprites are often your only choice.

It is really easy to spot sprite effects in VR, but people usually don’t seem to mind or care. One of my biggest peeves with billboard based particles in VR is if you roll your head to the sides and particles will “stick” to your face. I fixed most cases of this in Wayward Sky (in part by using mesh based particles, but not always), and in a proprietary engine I contracted on for a bit, though that project is no more.

But, again, most people don’t notice because for most games you don’t spend a lot of time “rotating” your head like that, and you rarely have effects lasting long enough.

1 Like

I’d love to see some examples of normalmapped sprites that look this good! I’m not saying you are wrong. I’m saying I haven’t seen any normalmapped particles that look this well lit. If you could point me to where they are, I’d love to study them. I’m curious since the only way I’ve gotten results like the RE one is by using meshes. I never could get normalmaps to look good…

I found another clip of the same effect. Check it out in 0.25 speed: https://www.youtube.com/watch?v=6fhDR8iOonQ&feature=youtu.be&t=238

Here are some key frames where you can see the paralax of the mesh.


1 Like

You’re right. In that video it does look like they’re mesh based rather than sprite based. They’re then probably mixing meshes with normal mapped sprites as fill.

1 Like

Yeah. All the non killing bloodsquirts seem to be spritebased so it’s probably all mixed together. Either way, a great effect!

60hz? Damn, our minimum is 90 0_o we are pretty much using extensive flipbooks for most complex stuff to help avoid overdraw

Yeah, as far as I know almost all of the PSVR titles / experiences from “AAA” devs are 60fps reprojected to 120hz. Batman, Tomb Raider, Jackal Assault, Driveclub VR, RE7, all run at 60fps. UE4 based games didn’t even support 90fps on PS4 as an option until recently. Ubisoft’s Eagle Flight is the only exception I’m aware of, though it’s possible Rigs runs at 90 too. Most of the Unity based projects run at 90fps (like Wayward Sky, Job Sim, and Headmaster), as well as the games using custom engines (Thumper, Super Hypercube). The only 120fps native titles I know are first party Phyre engine based ones, like Robot Rescue. 120 and 90 feel great, and our experience was 60hz wasn’t good enough, especially for hand tracking, but 90hz is hard and requires giving up a lot of visuals. Robot Rescue only hit 120hz by running at a greatly reduced resolution.

BTW they have used sim-baked mesh sequence from RE5 mainly as blood splash.

This is article(Japanese) of RE6.

8 Likes

Is possible to get english version? Thanks

Rough translation via chrome :slight_smile:

2 Likes

I have tried this workflow.

One small thing I found that might be fun to discuss is the lack of Motion blur between sequence frames when using simple mesh-swapping

I thought about a possible solution but I’m not sure if it would work.

I would bake the velocity per vertex on the mesh as RGB (xyz). This is very common in post production, it allows motion blur to be edited in the Render or in the Composite. Baking vertex velocity has to be done to each mesh in the sequence. Need to store the velocity direction on each vertex in the meshes.

Then in the real-time engine, the baked vertex colours (velocity data) from the meshes should be applied to the Velocity render pass somehow? This is the step I’m not sure how to do. Would this work in principle?

edit: typo

Yeah, it should work. The motionblur is just a post process in most engines so if you just send the vertex color/velocity to the scene texture velocitymap, you should be golden. Though, I haven’t seen an engine that allows you to send vertex colors to the scenetexture out of the box.

You haven’t seen a program that allows you to render vert colors as unlit emissive? :smiley:

I don’t get it?

To affect the motionblur, you’d need to be able to send the vertcolors to the velocitypass in the scenetexture. Is that possible nowadays? I haven’t used that side of unreal for a while so maybe there’s an easy way of doing so that I’m missing.

sorry, i misread and stopped at “scene texture”
bit much coffee this morning
and five hour energy

It’s relatively trivial to do for Unity, and Unreal just added support for custom velocity vectors for vertex animation that might be abuse-able for this. The hardest part for Unity is batching would break this, and particles are always batched, so you’d have to bake the vectors into the vertex tangents to ensure they get properly transformed.

2 Likes

@Alcolepone I’ve uploaded my booth presentation where I show how to make static versions of this sort of thing. To make a sequence, you use the same network, just export more frames and play them after eachother. It’s not a straight up tutorial, but all steps are shown and it comes with example files.

6 Likes

I simulated a mesh sequence in real flow and tried to bring them into unity. Even after face reduction in maya the face count is still high.


It’s a 41 frame sequence and now the total face count is about 300k , 2% of the origin.
I trid to reduce more face but it wont keep the shape any more.
Is there any suggestion about how to contron face count of the sequence.

Bake it down to a vertex shader texture so you only have one frame as a mesh, and then the rest stored as positions in a texture.

Realistically, storing 41 frames of a simulation isn’t going to give you a detailed enough result once it’s reduced down to acceptable levels.

3 Likes