Simulating Paper Physics?

So, Im making a building system and thought it would be cool to add paper physics ex: https://www.youtube.com/watch?v=zzRt87pptUo&feature=youtu.be&t=52 you can see in the players left hand the paper moves depending on the player’s movements, like it would in real life. How can achieve this? Will it be very performance heavy?

4 Likes

That would be a type of cloth simulation, or it could be simple mesh deformation with some sort of spring. Both of which isn’t available on Roblox currently. You could probably try to do something similar with multiple objects and either an animation, or with some sort of physics constraint.

Or maybe you can get it by using Inverse Kinematics. I’m definitely not the person to ask about it. But since I knew what it was I thought I’d leave a reply.

Wouldn’t it be possible to make a hacky solution with trails?

2 Likes

Assuming the object is small your best bet is probably splitting up your paper into horizontal segments. Then you can use IK (inverse kinematics) to move the paper and have it maintain its connections to other pieces. Finally, you can attach the center of the paper to the player’s hand, and using IK tween some mover parts which are attached to the edges of the paper with a delay (e.g. one second delay). That way your whole paper stays in tact and you get a away effect.

Personally, I think beams may be a better hacky solution. I wouldn’t actually want to spend that much time on something like this simply because the proper way isn’t available. And trust me I spend a lot of time finding hackys solutions on Roblox.

2 Likes

I doubt Fortnite even uses IK for that. All you need is an incremental animation which goes forth or back depending on vertical speed.

Though it would look really bad considering it’s either waiting for another year for Roblox to release skinned meshes or using flat faces without waiting.

1 Like

They’re definitely using mesh deformation with a spring or cloth simulation. I’m thinking it might be the latter, as the first one is a bit more difficult. The first method is the same method you’d use to make butts or boobs jiggle on (any if that’s up to your liking) characters. Where as the second one allows them to draw a weight on the object based on which parts they want to move. And since it doesn’t move around the arm, and only the edges react. That’s what leads me to believe its using cloth simulation.

1 Like

Realistically you could do a performant approximation with 4 parts in a grid, so long as it doesn’t need to bend more than 20 or so degrees. It may be possible with trails, but cloth simulations with vertex deformation will likely destroy performance.

You could also have a diamond (square part rotated 45 degrees) with a single WedgePart for each corner that can bend; this would probably be best if you need the paper to be readable and don’t want seams.

2 Likes

Yeah, I’m pretty sure that’s just a baked animation. They are just controlling the playback of the animation based on some physical properties of the hand.

Simulating floppy cloth is pretty doable in real-time. Simulating semi-rigid but not entirely rigid things like paper convincingly in real-time is very difficult, I doubt they went to the trouble of doing that.

1 Like

That’s because Fortnite, unlike Roblox has access to much more of the engine’s renderer. That’s not a great argument with what we’re stuck with currently. We pretty much have the ability to render rigid unmoving shapes and that’s about it.

I don’t actually see what that was supposed to be an answer to, but Fortnite definitely uses animations. That’s not even what a well simulated paper would look like and not even close to a cloth simulation.

Like I said, that’s really the only option we have. We have no mesh deformation tools. The only 3D mesh manipulation in Roblox as far as I know is trails and those don’t work very well in this situation. Fortnite doesn’t have anything to do with Roblox. It’s an entirely different engine and my point is that what fortnite does does not apply to Roblox in the slightest.