Jump to content
anthonymcgrath

transfer houdini 'autofracture' to maya with centre pivots and keyframes?

Recommended Posts

hi guys so i'm doing a simple test - a simple poly sphere setup with auto fracture hitting the groundplane.  I export this as a .abc and it imports into maya easily enough

 

however i need a bit more than that:

currently the .abc comes in as one node - i need it to come in as a group of meshes.

if possible i need the transform of each mesh to be centred to that chunk/piece/fragment

and finally (this one is a big ask i know) is it possible to get the keyframes from here to maya too - basic translate/rotate/scale and visibility ?

I know this is a big ask i'm really struggling with this one - i tried connectivity and partition sops after my simulated mesh results but it doesn't seem to work :(

anyone got any ideas please?  You'd be helping me out MASSIVELY if so!  I've attached a super simple sphere auto fracture scene file for convenience :)

thanks!
ant

 

autFrac_ball_example.hip

Share this post


Link to post
Share on other sites

Hi, inside the sphere node, if you display the geometry attributes (pls, see attached), you would find name primitive attribute, which is basically unique for each piece or chunk. You could use "For each" node to iterate over these pieces using name attribute and store each mesh individually (if you don't know how to use for each node, I remember there is a master class that explains it, if you cannot find it, let me know and I will look for it).

I "think" when you save a sequence of alembic files you already save position/rotation, so this done automatically, actually I remember I saved once a sequence of animation as alembic file and import in Maya and I got the sequence position/rotation correctly.

As per changing the chunk pivot, I don't know :( but actually, I "think" that alembic (and I am just guessing here) would save a set of primitives in world space, i.e. you won't need a pivot to move chunks as in each frame the entire primitives would move in the world space (again, just guessing :)

screen_shot.png

Edited by catchyid
  • Like 1

Share this post


Link to post
Share on other sites

that is an awesome explanation thanks @catchyid :D  Yep i think i'm gonna have to watch that for-each tut again i know the one your on about :)  I did some googling and some chap did mentionusing a for-each and using a delete node and then delete non selected then merging back in - i'll have a look into tackling it that way possibly.

Share this post


Link to post
Share on other sites

good :) but most probably you won't need delete node as for each would select a chunk as a whole, i.e. in each iteration would be given a complete chunk, so all what you need to do is save it...good luck :)

  • Like 1

Share this post


Link to post
Share on other sites

interestingly doing the same test with a pre-fractured object (usual trick... isoOffset + scatter) gives me separated pieces.  it may be that the assemble sop further up the chain is helping separate out those pieces ?

to add i have a slightly different setup from my scene file as well where i'm using the transform pieces node to copy my sim from low res geo to hi res version :)  that involves using packed geometry with the assemble node and then using a dop import but using it to bring points in and then transferrring to the hi res geo.


https://www.sidefx.com/forum/topic/26806/?page=1#post-171070

 

Share this post


Link to post
Share on other sites
4 minutes ago, catchyid said:

good :) but most probably you won't need delete node as for each would select a chunk as a whole, i.e. in each iteration would be given a complete chunk, so all what you need to do is save it...good luck :)

cool thanks - and thanks for the pic and explanation :)

Share this post


Link to post
Share on other sites

I gotta go quickly but just a quick note: I think it's better to always prefracture your mesh before going into simulation, it gives you lots of control of how the fracture should look like, once you put assemble node you can as well control many physical parameters of each piece (like mass, bounce, ....), also you can build constraints networks which you can control easily to determine exactly how your destruction shall occur... there is a master class that explains that in details, just search for bullet and it will be named something like Bullet Master Class H13. 

  • Like 1

Share this post


Link to post
Share on other sites

Excellent thanks

I've setup a system at the moment where I'm transferring low res to hi via a transform geometry setup. The low res has the assemble sop pre dops etc.. when i bring that high res into my scene in maya it is all separated. As you say the pivot sits at global zero per chunk but there has to be some way to fetch that over centred up per piece and potentially with keyframes or that may need to be something I script maya side really.

 

On a side note.. I did an auto fracture earlier mainly because I wanted to see bigger chunks get broken into smaller ones and I don't know how to do that via a voronoi/scatter setup really. I would need to have thousands of tiny pieces clustered together and that gets super heavy from what I can see. Is there a way to have secondary fractures on generated pieces that have been simmed?  So they essentially do a secondary fracture. 

Share this post


Link to post
Share on other sites

Sorry... I did not check my email yesterday :) As per your second question: I've watched couple tutorials and asked questions on this forum, also read Houdini docs, from my understanding is that auto-fracture is just there to make quick shots, and according the documentation, it's good to be used for background objects where you don't need much details. It's possible and actually easy to control the shape of your fracture using Voronoi fracture, just place highly dense points cloud on places where you need lots of pieces, for example: if a missile is to hit a building, then place a dense points cloud on the impact area and a minimal number of points around the building... note that you would create RBD Packed Glued object which means you would have a constraint network where you can control the strength of the bonds, if you change that strength parameter, you will see different types of gradual destruction (i.e. very strong glue bond, the entire object will act as one piece, a weak strength will make all pieces collapses at once...). You can also break the bonds procedurally in the DOP network, if you need to. I would highly suggest that you watch Bullet Houdini 13 Master class, it has all these techniques explained in details :)

As per your first point, well, I really don't know :( I think, it's best if you simplify the problem, just have a sphere some where in the scene and write it alembic and open it in Maya and see how its transformation is copied, there might be some options, somewhere, ...Note that both Maya and Houdini concatenate transformations, they use the same concepts (which are universal in any 3D app), so you just need to know how each application handles its transformation in order to transform between them...

Good luck :)

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×