Jump to content

bullet workflow questions (animated passive objs etc)


MisterP

Recommended Posts

Hi, I've got three bullet questions that have been bugging me for a while.

With houdini 12.5 and bullet, what is a good workflow to achieve the following?

(I know the following questions are doable one way or another using proprietary tools at companies I've worked for but I was wondering what would be the most effective way to approach the following using H12.5 vanilla)

1) a choerographed demolition where the initial pre-shattered geo is animated in sop (think a building tilting on one side before crumbling).

2) one animated passive bullet object hitting preshattered bullet objects (think a wrecking ball hitting a concrete wall).

The passive animated object would have to be animated in sops.

3) preshattered and reclustered objects being glued cleverly so that we have a strong primary glue (for clusters) and a weak glue for each piece.

Think a wall that falls down, bricks are held together but their corners are easily chipped off.

Thanks for your help!

MisterP

p.s.

100 points when you attach a simple example hip file :)

Link to comment
Share on other sites

I came up with a few ideas:

1) Preshatter an object, animate it in SOPs (keep the animation after the voronoifractureSOP or better in the geo-level), and dissolve the glue-net based on the first frame. Becausse Your Gluenet will remain the same even if it doesn't follow your objects SOP-animation. See attached house demolition

2) I have a hip-file which I created as an example on how to do this eazily by activating the wrecking ball and also by dissolving the glue net. See attached.

3) I am doing something similar to this in production atm. Since we want more control on the sim I am first shattering my geo in large chuncks and simulating those. Afterwards I refracture those large chuncks and simulate those as well in a secondary simulation.

If you want to achieve this in one blow you would need to transfer a strength attribute to your glue network. high strength for the large chuncks and low strength for small pieces. altough it will be difficult to control and requires a lot of set-up

Both hip-files areattached in this post I send to magneto (Last one in the first page) There you will have one example for 1) and one for 2).

http://forums.odforce.net/index.php?/topic/18129-how-to-mark-rbd-objects-as-inactive/

/Cheers

Link to comment
Share on other sites

Thanks Hudson, you gained 100 points :P

1) sounds like a clever idea, will try that.

2) Nice example, I would be temped to dissolve the glue network based on a slightly bigger sphere following the wrecking ball animation, so to pre activate chunks a couple of frames before impact.

3) I would probably try to sim it in layers like you do so to have more control. How would you tackle that? I mean, for instance I could decide which frame a previously simmed object needs to reshatter, but this way we end up with a single piece which changes topology and turns into a fractured object half way through the timeline. Thinking out lot, it would almost make sense to shatter the piece at frame1, use the piece animation to wrap deform the new shattered pieces and sim at a specific frame like you suggest in 1).

Thanks again

MisterP

I came up with a few ideas:

1) Preshatter an object, animate it in SOPs (keep the animation after the voronoifractureSOP or better in the geo-level), and dissolve the glue-net based on the first frame. Becausse Your Gluenet will remain the same even if it doesn't follow your objects SOP-animation. See attached house demolition

2) I have a hip-file which I created as an example on how to do this eazily by activating the wrecking ball and also by dissolving the glue net. See attached.

3) I am doing something similar to this in production atm. Since we want more control on the sim I am first shattering my geo in large chuncks and simulating those. Afterwards I refracture those large chuncks and simulate those as well in a secondary simulation.

If you want to achieve this in one blow you would need to transfer a strength attribute to your glue network. high strength for the large chuncks and low strength for small pieces. altough it will be difficult to control and requires a lot of set-up

Both hip-files areattached in this post I send to magneto (Last one in the first page) There you will have one example for 1) and one for 2).

http://forums.odforc...ts-as-inactive/

/Cheers

Link to comment
Share on other sites

It really depends on the shot I would say. I have not tried the wrap deformer yet so it would be cool if you could try it . I am right now RnDn all of this so I dont have a stable solution for it yet. altough taking in the large pieces and voronoi fracture them again and give them a new name group for each pice. lets say heroe1_piece* for the pieces in the first chunk. By creating a glue net for these pieces only I think you can controll when these should shatter. If you put all pieces and glie nets in one simulation they will react with eachother. As I said this is still a bit of RnD for me. But take a look at the foreach Sop in order to create pointclouds for active and non active pieces. Also the RBD active key and the acvite valueDOP noded will be usefull. I am currently without a computer so can't tell that much better :-)

By the way have you watched the bullet masterclass provided by SESI? If not do it!

:)

Link to comment
Share on other sites

I watched the bullet masterclass don't worry B)

Your suggested method would work fine assuming that we want to run an uber simulation with glue cleverly choerographed so to speak.

I was thinking about breaking it into a first sim dopnet, reshatter and run a second dopnet.

I prepared a simple example illustrating this. I'm isolating a single chunk and shattering it again and wrap deforming the new pieces with it. It seems to work fine up to the second dopnet. Then hell breaks loose :)

basically the second dopImport does some doubletransformations I think ( see example attached ).

Any ideas?

Thanks for your help and good luck with your rnd

MisterP

test_deforming_passive_to_active_rbd.hip

Edited by MisterP
Link to comment
Share on other sites

I`m working on the same thing for a while and I think there is a better solution to transfer transformation data to different geometry. The workflow is still very simple:

-create base sim with lowres pieces and write .sim data to disk

-create new pieces with proper name prim attribute (for example if you have object piece1 rename all new hires pieces with the same name)

-create dopimport SOP and connect hires geo as input (use import by name and transform input geo)

-output is hires geo with transforms inherited from lowres sim

This is the easiest part.

Now you have to find a way to control hires sim to match these transforms. I use script solver and it works pretty well.

You can also try to upres gluenetworks. I`ve already did it but it is not very well implemented and it is not very fast, so I`m searching for a better solution (probably HDK).

Ask if you have any questions (:

Good luck!

Link to comment
Share on other sites

Hi, This is starting to become a very intersting thread. I've been wondering how to do this kind of thing for a while now, and even though people mention doing it in other threads, it never really gets further than a suggestion.

The more I think about it though, the more it becomes obvious that even when you get it working technically, the output will still be wrong. please, please, please correct me if I'm wrong here ;) as i'd love this to work, but...

picture this in the simplest of form, two parallel walls falling into eachother, like giant dominoes. Niether of them break, but just collide, and one wall settles slightly leaning/laying ontop of the other one. Now, break up one of the walls into smaller pieces, do all your inheriting transformations magic, and using the motion of the first sims wall, you apply that to your smaller pieces, and figure out how to use the constantly changing transforms of the big piece in the smaller pieces transforms during the high res sim. Sweet. That's all working great. and the high res pieces break off when colliding, and fly their seperate direction.

but what about the other wall? The wall that in the first initial low res sim, was leaning/laying across the other wall. It now appears to be floating in the air, since the other original wall is now in smaller high res pieces scattered around.

do you rinse and repeat this on the other wall? and if so, wouldn't it have just been better to start with higher res pieces/sims anyway?

now obviously that's a unlikely situation in which you would use this, and would probably be much less noticeable on a larger scale. But it seems this would still poke it's nasty head out in places.

I could see it working subtly. like chipping edges off off larger chunks, But it just seems like anything done in the second high res sim, seems to make the first sim less accurate. at least for the pieces that aren't being re-simmed in the high res sim. ahhhhhhh sim sim sim si msim.

please tell me I'm wrong ;)

Thanks!

Edited by substep
Link to comment
Share on other sites

Thank you for sharing MisterP and Rayman. I still have to try both your solutions. right now I simply don't have the time. Have been working way too much. I will try a different approach than your as well to compare different possibilities. Altough Raymans solution together with a bit HDK(haven't been done it that much) sounds promissing. I was thinking of this method:

1. simulate lowres

2. shatter lowres piece by piece and give them different piece attribute names

3. create a pointcloud for the pieces in oder to mark them as active or inactive pieces. Create a glue net for each low-res piece holding all its new shattered pieces (hi-res)

4. I haven't tried this yet but the passive pieces should keep the low-res animation and the active pieces kept glued to it.

If this works the only problem is that it is not very procedural. If you have a lot of pieces in the low-res then it will be ineffective to do it this way.

@Substed - yes it will probably be less accurate

I hope a I will have time to take a look at this tonight (:

Link to comment
Share on other sites

  • 3 weeks later...

Hi Hudson,

I now had the time to go through your scene from your last post on this page http://forums.odforc...ts-as-inactive/

And as soon as you preanimate the rigid bodies (effectively deforming the input geo ) the simulation becomes broken:

The original animation fights the simulation which results in some pieces fighting gravity and rolling up.

I've attached your example with a simple edit to make the input geometry animated to see the problem.

Basically what the problem is, is that rbd pieces which break off glue should turn their deformation off, unless there's a better way to handle all of this?

I came up with a few ideas:

1) Preshatter an object, animate it in SOPs (keep the animation after the voronoifractureSOP or better in the geo-level), and dissolve the glue-net based on the first frame. Becausse Your Gluenet will remain the same even if it doesn't follow your objects SOP-animation. See attached house demolition

2) I have a hip-file which I created as an example on how to do this eazily by activating the wrecking ball and also by dissolving the glue net. See attached.

3) I am doing something similar to this in production atm. Since we want more control on the sim I am first shattering my geo in large chuncks and simulating those. Afterwards I refracture those large chuncks and simulate those as well in a secondary simulation.

If you want to achieve this in one blow you would need to transfer a strength attribute to your glue network. high strength for the large chuncks and low strength for small pieces. altough it will be difficult to control and requires a lot of set-up

Both hip-files areattached in this post I send to magneto (Last one in the first page) There you will have one example for 1) and one for 2).

/Cheers

dissolve_glue_net_deformingGeo_nonworking.hipnc

Link to comment
Share on other sites

Hi again Peppino,

I am yet to create one simulation with a deforming and fracturing geometry. I am not very experienced so I can't give you a straigth answer on how to achieve it. But it is worth to mention that you will probably not need to do that very often. That is because most of the times you have an static object which you could animate and add to the gluenet. This means that the glued pieces will have the same animation untill they are dissolved from the glue net.

Whenever I have some time to spare I will try one other idea of mine. I will post it here if it works :)

Link to comment
Share on other sites

Okay, when we get the geo back from the lowres sim why don't we just write it out.

Read it back in, upress the geo (adding detail or even use them on the first frame to cut new geo from the modeling department in the same pieces) all of this happens on the first frame.

Then we use technique discribed by rayman to deform the new highres geo.

Now you can go through each of the pieces and simply use a delete node to delete it on the frame before you want to re shatter it (for example a big piece or a brick).

Then you get poping pieces that live only for one frame, those pieces you can fracture how ever you like with in a foreach node.

Now simply create a RBD fracture node and use the newly fractured highres pieces as input geo.

The new geo will still have the velocity values on it, so use inherit velocities on the rbd object.

This should be quit a easy way to upres a sim, unless I am missing something here.

It is not very procedual, but if we are honest when it comes to breaking of smaller pieces on each brick you don't need a upres sim (simply use different glue strengths)

and when you really need upres sims that actually refractures the director or your supervisor will tell you which piece needs to refracture anyway.

And this way you have full control over all of that.

Or am I missing something, if so please let me know.

Cheers,

Juri

PS:here is a file showing what I mean.

And it also shows how to have a static fractured RBD in dops with all the animations and so on.

RBD_Fracture_Upres_v01.hipnc

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

when you really need upres sims that actually refractures the director or your supervisor will tell you which piece needs to refracture anyway.

That is exactly what I am doing but your solution is even more procedural :)

I don't think you are missing anything here. It does what it have to do and so procedural one may achieve in order to up-res a simulation by chosing the hero pieces.

The one thing one could improve is to add the displacement in shops or with another solution so that the edges match eachother. But it does not concern this topic

thank you for sharing Juri, I have certainly learned some from your example

Edited by Hudson
Link to comment
Share on other sites

Hey Hudson,

Could you please elaborate on your sentence below?

I think I'm missing something basic here, are you suggesting to glue the active rbd objects to a passive deforming one so that they inherited the passive animation?

"That is because most of the times you have an static object which you could animate and add to the gluenet"

Hi again Peppino,

I am yet to create one simulation with a deforming and fracturing geometry. I am not very experienced so I can't give you a straigth answer on how to achieve it. But it is worth to mention that you will probably not need to do that very often. That is because most of the times you have an static object which you could animate and add to the gluenet. This means that the glued pieces will have the same animation untill they are dissolved from the glue net.

Whenever I have some time to spare I will try one other idea of mine. I will post it here if it works :)

Link to comment
Share on other sites

Hi,

What I mean is that for some specific cases like this one:

The whole geometry is deforming and imo those effects are not very common . But to achieve it you will have to freeze the deformation of the piece when it gets activated or the glue net dissolves. Otherwise the pieces will still be deforming even tho they are on the ground. I haven't had any time to create a solution for my own in how to achieve this effect. Altough something similar to Juri's solution will probably work. I wish I had time but I am going to school and working a lot atm.. :(

But for other effects where you have a static object which is animated (example: the scene I linked you with the animated ground and the falling pieces. See below) and your destructed geometry is not being deformed but should just being animated. One can simply add the static object to the glue-network and the pieces in the glue-network will follow the static objects animation untill they fall off. One could also do an ugly trick to keep the animation of a fractured object. Do so by creating a static sphere which is very small and without any collision and let the fractured object's animation be the same for the sphere. Include the sphere in the glue-network and it will have the same effect as mentioned above

I used that "trick" in the hip-file: "dissolve_glue_net_ryan" in the last post in the first page of this thread:

http://forums.odforce.net/index.php?/topic/18129-how-to-mark-rbd-objects-as-inactive/

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...