Jump to content

Attraction and Formation Effect


Navneet Arora

Recommended Posts

Hey guys , 

              I am trying to achieve a similar effect  :  

(0:57 Onwards)

 

So i have few points and doubts as well  which are as follows :

 

1. Randomly scattered objects on the ground which then have initial rotation and then they move forward and bounce.

 

2. they get attracted to object id and rotate and stick to their position.

 

3. objects need to stack on top of each other and then acquire shape of target object.

 

So any hints or ideas as of how to start with?

 

thanks

Edited by Navneet Arora
Link to comment
Share on other sites

You'd start with a fractured model, then you need to save each piece position and orientation, I would probably create a volume based sorting attribute too, so I can apply a higher force on objects the further from the surface they are, else I suspect you vill have a lot of issues with pieces blocking other pieces, etc...

 

As for the Ra One Lives promo, you'd start out with a voronoi fracture, then create a system for the cubes to morph into the fragments based on distance from it's final position, so you'll have the cubes as cubes until they are close to where they should end up, then morph to the voronoi piece at the latest moment before that position.

 

As for how to set this up, I'd probably go for the setup as presented in Adam Swaab's morphing tutorial at cmiVFX - that'll give you a complete solution to do this. 

 

https://cmivfx.com/store/564-houdini-particle-morphing-effects

Link to comment
Share on other sites

You know I don't think there is any need to fracture anything in that demo. All that is really happening is a boolean reveal on the master fixed pose human object. It is just cleverly done. Notice all the cuts. You can scatter points across the spiral shape and use the crowd simulator to march the cubes into formation. As far as the cubes climbing up to "form" part of the figure I would look into creating a curve set that you can drive "hero" cubes along for those up close cuts.

 

I think shot planning should be done first then only build the parts in your storyboard. Try to avoid constructing a general all purpose simulator that allows the camera to be placed anywhere. Make the director do his work first.

 

Check out Gilladume Fradin's tutorial on creating curves from particles that travel along a landscape and avoid obstacles.

That is the way I would approach solving the cubes walking up the figure. Then you end up with a curve set that you can manually tweak for final placement if needed.

 

Also I got the impression that I was seeing some animations running backwards. (i.e. start with the end location then work backwards). This is how the cubes lock into place.

Edited by Atom
Link to comment
Share on other sites

Farmfield , your answers never fail to aspire me....thanks and i will surely , if i fail ill return back

 

That's a great compliment, thank you. I'm just happy to help. :)

 

What is a proper way to resolve collision? I did this kind of effect sometime ago but had no idea how to handle collisions between objects. 

Import in dops, set goal velocity and make them interact with each other?

 

Either you'd do a RBD sim with goals for the pieces, or you'd do something like Atom suggests - it all depends on what works and that's something you never really know until you start doing RnD for it.

 

I think we need to convert it as packed objects and take it to dops, may be Farmfield could throw some light on this

 

That depends on the sim speeds, but if it gets to heavy, you can speed the simulation up by using packed primitives - but doing that you need to have a more complicated setup for materials, UVs, ets - so there's a breaking point where it'll be worth using packed primitives, though I doubt a setup like this will need it, it's not that many pieces, 1-2K perhaps?

 

You know I don't think there is any need to fracture anything in that demo. All that is really happening is a boolean reveal on the master fixed pose human object. It is just cleverly done. Notice all the cuts. You can scatter points across the spiral shape and use the crowd simulator to march the cubes into formation. As far as the cubes climbing up to "form" part of the figure I would look into creating a curve set that you can drive "hero" cubes along for those up close cuts.

 

I think shot planning should be done first then only build the parts in your storyboard. Try to avoid constructing a general all purpose simulator that allows the camera to be placed anywhere. Make the director do his work first.

 

Check out Gilladume Fradin's tutorial on creating curves from particles that travel along a landscape and avoid obstacles.

That is the way I would approach solving the cubes walking up the figure. Then you end up with a curve set that you can manually tweak for final placement if needed.

 

That's a great idea, and absolutely something I'll keep in mind to play around with the next time I do RnD for this kinda stuff - but for the Ra One LIves setup, if you look 30 seconds from 1:18 it's clearly visible where the cubes morph into their final fracture piece when they reach their goal position. I'm pretty certain the cuts you are noticing are due to the issue I wrote about with depth sorting, they didn't set that up so when they got into a situation where they had an obvious issue with already merged pieces blocking some random piece, they instead cut to another angle. And to be honest, it's not a bad solution - we're not in the business of perfect, we're in the business of faking it till it works. :D

Edited by Farmfield
Link to comment
Share on other sites

No no no, you need to set this up backwards, model -> fracture -> store piece position and orientation -> then scatter the pieces.

 

To rebuild, you'd do a per piece custom force based on order (so for this, bottom to top) and position as well as depth, so you get the rebuild from bottom up as well as inside, to outside.

Link to comment
Share on other sites

I might have time to do this some time this weekend, but to get you pointed in the right direction, it's really not very difficult - just break it down step by step. What do you want (per step) and how do you get there (per step). :)

 

And I probably over-structured this post by a factor of 2, but just trying my best to express how my mind is looking at this problem and how I would set it up, being at least reasonably certain this would work pretty well.

 

So lets start.

 

 

You have the model fractured and shattered, but also the piece positions for the rebuild, so first off you would need to create the build progress so you start out with the bottom pieces and then stack them vertically.

 

So this is like any other build/desintegration setup, you can do it with animated textures, you can do it using groups or deletes, doesn't matter - but you need that first.

 

 

As for the force to drive the individual pieces, you look to how we want the rebuild to work - and for me, it's easier to imagine this as if half way through the rebuild. Lets go all Criminal Minds, lets do a behavioral analysis. ;)

 

You have scattered pieces, you have positions already occupied by pieces and you have positions not occupied, some of those are inside the object, some are on the surface. So how does the force need to work?

 

So what we want is to have a force towards the current piece goal position, that's as simple as current position minus the goal position gives you a vector to the goal.

 

You also want higher force in the oldest non occupied positions, to build it in sequence.

 

You also want inner pieces to have a higher force than outer, to (as much as possible) avoid outer ones blocking inner ones.

 

The last thing is a force driving the piece inwards before upwards, so the pieces doesn't fly/jump up to their position but "climbs" up.

 

 

So now you know what you need, the rest is about setting it up and I'm inclined to believe this would be best done in two steps - one simulation for the movement, one for the collisions.

 

So, for the movement we do a particle simulation, one particle per scattered piece simulated to it's goal, this is what you drive with the force based on our "behavioral analysis", above, you'd set that up in a VOP.

 

And as our particles are smaller than our pieces, lets set an approximation of piece size for collision radius - this will help a lot smoothing out the RBD.

 

 

And the last step, when you have the particle simulation, is to do the RBD simulation

 

This really is as simple as setting up a strong force driving each piece towards it's positional particle, so the piece position will as much as possible be the particle position, unless RBD interaction, the friction, collisions, changes that - but if you set this up correctly, at large, the piece will follow the particle path.

 

 

The final part of this is to set up the final morph, but that's basically as simple as stamping a 0-1 value up into a blend shape between a cube model and the piece geometry based on distance from the piece to the goal destination.

 

And I hope this makes sense, it does in my mind - though that might say more about my mind than anything else... :D

Edited by Farmfield
  • Like 1
Link to comment
Share on other sites

@Navneet

 

LOL, stop it, don't call me that, that's just weird - it's not my brilliance, look at it as a remix of what people like Adam Swaab, Will Wallace, Rohan Dalvi and many other great artists has taught me in their amazing tutorials. :)

 

As for the "mental breakdown" (:D), no prob's, I love problem solving this stuff! 

 

@Miles

 

I thought about simming it backwards, and though it does solve a lot of potential issues (things you will probably have to tweak the sh!t out of with my setup to get it to behave "perfectly") I suspect the look of reverse collisions will still give it away. I think many will look at an effect like this and go "How did they do that?" and I suspect a reverse setup would likely be the first thing they'd think of - and if they start looking for that, they'll likely see that's just it. 

 

But even if "normal people" wouldn't see it, it would least be very obvious to people like us in this thread - though the best incentive not to do it in reverse, in my opinion, is because that's too easy. :D

Link to comment
Share on other sites

Hi,
recently I have tried something similar.

Each piece at start has goal position attribute. Force is computed as difference between piece's current position and goal position and is randomized a bit with noise. When piece get close to his goal position I then adjust piece's P attribute (because only with force it would never fit to it's position, but on the other hand I loose collisions at the end) to match goal position. During adjusting goal position I also blend to goal orientation and pivot. This all is set up with packed primitives. And I also start generating force at first for bottom pieces and last pieces are those on top of car.

 

Juraj

  • Like 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...