Jump to content

Kohuei Nakama's Effect


ParticleSkull

Recommended Posts

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 

  • Like 1
Link to comment
Share on other sites

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

Avdyduu.gif

@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 by ParticleSkull
  • Like 1
  • Thanks 1
  • Haha 1
Link to comment
Share on other sites

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.

deform_along_path.gif

ap_ps_Cardume_Odforce_v3.03.hiplc

  • Like 1
  • Thanks 1
  • Haha 1
Link to comment
Share on other sites

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

deform_along_path.gif

deform_along_path.gif

Edited by Atom
  • Like 6
  • Thanks 2
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

  • Like 1
Link to comment
Share on other sites

  • 2 years later...
  • 2 years later...
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

deform_along_path.gif

deform_along_path.gif

 

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

Link to comment
Share on other sites

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.

Untitled-1.jpg

ap_ps_Cardume_Odforce_v4_072223.hiplc

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

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.

Untitled-1.jpg

ap_ps_Cardume_Odforce_v4_072223.hiplc 646.24 kB · 0 downloads

 

I see thanks!

Link to comment
Share on other sites

  • 5 months later...
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

deform_along_path.gif

deform_along_path.gif

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 by Wllmnn
I want to delete it. Do not need anymore
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...