I was inspired by Saber Jlassi's about how he use Houdini and can be useful after the sim and at any point of workflow, and after that I got on thinking of solution to skip what I am doing repeatedly refracture with changing setting, whenever I am doing fracture. divde sop is clearing almost all the problems,
during my participation in Rebelway FX challenge I challenged myself to make a tool to get alternative to do skip refracturing over and over.
so here is the code I written and will share hda in orbol asset store, soon.
this can be useful to refracture the fracture pieces those got the problematic pieces and combine back with the other pieces(time saver)
or just skip refracturing and keep the swapped piece of the previously fractured piece that has the same name to the current fracture
this will only work when the name is assigned for ever fracture level with a separator(currently other than a space) and has access to the fracture level piece that needs to be swapped back.
this can be used creatively to swap pieces of a group of previous fracture pieces with current fracture pieces.
https://vimeo.com/537338777 [vimeo.com]
subtitles:Hello Guys, this is tool demonstration of unshared edges swap tool. lets have a look, so take a look at the unshared edges, we have 16, number of pieces we have4 34k, so unshared edges pieces have been swapped back to the previous fracture piece and 4k pieces has been reduced, lets take a look at the name attribute so this is the swapped piece name, and this is the secondary fracture pieces name swapped piece dont have the secondary fracture name, we can restore that with a dummy name and it will reduce conflict down further the road in clustering so that is it thank you guys.
//on packed prims cant be run this code i[]@unshared_prims = expandprimgroup(0,chs("../unshared_edges/groupname")); s[]@unshared_names = {}; string unshared_names[] = {}; int success; string name = chs('fracture_name'); string seperator = chs('fracture_seperator'); // gather unshared_edges prims name i@count; foreach(int i; int value; @unshared_prims){ string name0 = primattrib(0,name,@unshared_prims[i], success); //naming split per fracture s[]@split_names= split(name0, seperator, chi('fracture_iterations')); //getting the previous fracture name removeindex(@split_names, len(@split_names)-1); string name_ = join(@split_names, seperator); //avoiding duplicate of same name if(find(@unshared_names,name_)<0){ append(@unshared_names, name_); @count= len(@unshared_names); } }
it works only with per piece fracturing so current and previous fracture should be done per piece if swapping needs to be worked well.
Edit 2:
working on the hda to work on common fracture workflows,