ParticleSkull Posted July 6, 2018 Share Posted July 6, 2018 (edited) Hey guys, can someone please give me an idea on how create this effect? It's the one on 0:52 and 1:14 with a lot of people "flowing" around Thx Edited July 6, 2018 by ParticleSkull Quote Link to comment Share on other sites More sharing options...
chrisdunham95 Posted July 6, 2018 Share Posted July 6, 2018 Oooo super cool effect - Id go about it this way; - Base fluid or particle simulation (for the flow get the movement wanted) - Copy lowres model geo onto points (orientation etc.) - Then run either a fem/cloth sim from that to get the nice deformation?? Simple but no doubt issues like intersections may be quite troublesome from the copying but atleast a basic start! Look forward to seeing what you come up with man 1 Quote Link to comment Share on other sites More sharing options...
Atom Posted July 6, 2018 Share Posted July 6, 2018 (edited) I think I would try using flocking particles that leave a trail. Connect the trail as a line then deform the person/mesh along the line. Kind of like the pile of worms file. Edited July 6, 2018 by Atom 1 1 Quote Link to comment Share on other sites More sharing options...
ParticleSkull Posted July 7, 2018 Author Share Posted July 7, 2018 (edited) Hey, thx for the ideas! Atom, excellent idea, simple and streightforward. I couldnt make it deform with the pile of worm deformer (what a complex deformer btw) but I found another incredible one by Felix Joleanes that works fine I still couldn't make a lot of copies of it but, from the deformers video description, I can see it's possible. My file is attached if you guys want to give a try @chrisdunham95, thx for the idea, it looks like it could work but also would be pretty hard to control the fem/cloth sim. Atoms idea looks much simplier Cardume_Odforce_v3.02.hiplc Edited July 7, 2018 by ParticleSkull 1 1 1 Quote Link to comment Share on other sites More sharing options...
ParticleSkull Posted July 7, 2018 Author Share Posted July 7, 2018 Alrigh, I just gave another try it's working with the for each sop Thank's @Atom! Cardume_Odforce_v3.03.hiplc 1 1 Quote Link to comment Share on other sites More sharing options...
Atom Posted July 7, 2018 Share Posted July 7, 2018 I was playing around with your file this morning. Here is my change up. I added in a mocapbiped to animate the source geo. I was having some problem with getting the Felix path deform node to work so I dropped in another path deformer option. I also added in a collision object for the particles. This seems like an easy way to add avoidance. Like ghosts moving around objects in a room. ap_ps_Cardume_Odforce_v3.03.hiplc 1 1 1 Quote Link to comment Share on other sites More sharing options...
Atom Posted July 7, 2018 Share Posted July 7, 2018 (edited) Here is another slight variation. Instead of generating a fixed length line segment that moves through time, generate the full path over the entire time range. Then add a primitive attribute @path_pos to each line primitive. Drive the offset along path value, of the path deformer, with this attribute. Then you can have some geometry leading others as they each flow along their own path. float frame_end = 200.0; // deform_path node expects input in the range of 0-1. f@path_pos = fit01(@Frame,0,frame_end); // Now offset each path based upon it's index. float delta = 0.05; // per-line delay time can be set here. f@path_pos -= (delta * @prim); ap_ps_Cardume_Odforce_v3.04.hiplc Edited July 7, 2018 by Atom 6 2 Quote Link to comment Share on other sites More sharing options...
chrisdunham95 Posted July 9, 2018 Share Posted July 9, 2018 Awesome looking stuff guys! Will take a look at the file later and see what I come up withhh Quote Link to comment Share on other sites More sharing options...
ParticleSkull Posted July 12, 2018 Author Share Posted July 12, 2018 Hey @Atom, I ended up using the offset by attribute, thx again I have one doubt about the expression you're using on the path deform node. You wrote: prim(opinputpath(".",1), @prim, "path_pos",0) what does the opinputpath(".",1) means? In my mind I should point it to the wrangle with the "path_pos" attribute but, of course, it doesn't work. Quote Link to comment Share on other sites More sharing options...
Atom Posted July 12, 2018 Share Posted July 12, 2018 What opintput(".",1) means is to fetch the name of the node from input 1, which means connection #2 on the subnet or wrangle. So the expression is obtaining the name of the foreach_begin1, running in primitive mode. Because the loop is running in primitive mode, it has access to the primitve attributes supplied to it's input, @path_pos. I pasted the code into a wrangle and it fails. I guess there is a syntax difference between hExpression and VEX..? 1 Quote Link to comment Share on other sites More sharing options...
ParticleSkull Posted July 12, 2018 Author Share Posted July 12, 2018 Cool! Do you know what does the "." means? Does "." points to the connected node? from the 1 (second) input... Quote Link to comment Share on other sites More sharing options...
Atom Posted July 12, 2018 Share Posted July 12, 2018 I think the "." means self and the 1 is the zero based index for the self inputs. http://www.sidefx.com/docs/houdini/expressions/opinput.html 1 Quote Link to comment Share on other sites More sharing options...
dyei nightmare Posted July 25, 2020 Share Posted July 25, 2020 On 12/7/2018 at 4:29 PM, Atom said: I think the "." means self and the 1 is the zero based index for the self inputs. http://www.sidefx.com/docs/houdini/expressions/opinput.html interesting! Quote Link to comment Share on other sites More sharing options...
jonidunno Posted July 22, 2023 Share Posted July 22, 2023 On 7/7/2018 at 9:18 AM, Atom said: Here is another slight variation. Instead of generating a fixed length line segment that moves through time, generate the full path over the entire time range. Then add a primitive attribute @path_pos to each line primitive. Drive the offset along path value, of the path deformer, with this attribute. Then you can have some geometry leading others as they each flow along their own path. float frame_end = 200.0; // deform_path node expects input in the range of 0-1. f@path_pos = fit01(@Frame,0,frame_end); // Now offset each path based upon it's index. float delta = 0.05; // per-line delay time can be set here. f@path_pos -= (delta * @prim); ap_ps_Cardume_Odforce_v3.04.hiplc 585.7 kB · 236 downloads @Atom Is there a way to do multiple/random geo with this setup? I was trying a switch node talking to the metadata in your foreach - fit01(rand(detail("../foreach_begin1_metadata1", iteration, 0)),0,2) but wasn't getting good results. Quote Link to comment Share on other sites More sharing options...
Atom Posted July 22, 2023 Share Posted July 22, 2023 (edited) Here's a similar approach using a point attribute for the switch index instead of the metadata. If you have a bunch of geo on disk, you could replace the entire switch with a single file node, and drive the filename field from a string based attribute. Just remember to use the points() hScript function when fetching string data. ap_ps_Cardume_Odforce_v4_072223.hiplc Edited July 22, 2023 by Atom 1 Quote Link to comment Share on other sites More sharing options...
jonidunno Posted July 23, 2023 Share Posted July 23, 2023 17 hours ago, Atom said: Here's a similar approach using a point attribute for the switch index instead of the metadata. If you have a bunch of geo on disk, you could replace the entire switch with a single file node, and drive the filename field from a string based attribute. Just remember to use the points() hScript function when fetching string data. ap_ps_Cardume_Odforce_v4_072223.hiplc 646.24 kB · 0 downloads I see thanks! Quote Link to comment Share on other sites More sharing options...
Wllmnn Posted January 20 Share Posted January 20 (edited) On 7/7/2018 at 6:18 PM, Atom said: Here is another slight variation. Instead of generating a fixed length line segment that moves through time, generate the full path over the entire time range. Then add a primitive attribute @path_pos to each line primitive. Drive the offset along path value, of the path deformer, with this attribute. Then you can have some geometry leading others as they each flow along their own path. float frame_end = 200.0; // deform_path node expects input in the range of 0-1. f@path_pos = fit01(@Frame,0,frame_end); // Now offset each path based upon it's index. float delta = 0.05; // per-line delay time can be set here. f@path_pos -= (delta * @prim); ap_ps_Cardume_Odforce_v3.04.hiplcUnavailable Hi, Hello, Could you share with me the file ap_ps_Cardume_Odforce_v3.04.hiplc or similar? I would like to use the same approach for an animation. Thank you. Willm Edited January 20 by Wllmnn I want to delete it. Do not need anymore Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.