Thursday 4 May 2017

When your FLIP fluids are stepping

If your sim is looking steppy/choppy, it probably means the FLIP source emitter/colliders don't have substep information. To resolve this, use a Timeblend SOP & add a Trail SOP for good measure.

Monday 6 March 2017

CHOPs: Some things.

  • To create more channels in Noise, you'll want to change the Channel name in the Channel tab to blabla[0-100]. This makes 101 channels..so do the usual (n-1) amount. You can then have a seed per channel by using the $C token in the seed field.
  • It's actually fairly annoying to blend animations in CHOPs. Create a channel and make animation curves that go from 0 to 1 in order & multiply these against other curves to activate/deactivate them.

Saturday 4 March 2017

Add this to your Houdini.env file to get Redshift working...


PATH = "C:/ProgramData/Redshift/bin;$PATH"
HOUDINI_PATH = "C:/ProgramData/Redshift/Plugins/Houdini/15.5.565;&"


Friday 3 March 2017

Reorient joints

Simply rotate the bone (might be best to do this in the bind pose frame) to the orientation you want & hit the Align Capture Pose button in the Rigging shelf. Remember to clean the rotations out of the joint and adjust the child-bones too (maybe there is a way to fix a joint without affecting it's children? un parent first maybe)

Update - the bracketed suggestion works.. remember to turn on the Keep Position When Parenting when you detach though...

Switch between world/local/screenspace transform on widgets

Press M

Sunday 8 January 2017

Getting point values from primitives

Here's a way to get point values from specific vertices. The application here is quite specific actually..
When you make glue constraints for Bullet simming you get a bunch of 2 vertex lines and one method I've been ripping off is to use voronoi noise patterns to cluster the vertices. The aim of this is to check what voronoi cluster value i've assigned to the vertex.

primvertex(0,@primnum, 0);
returns the vertex number, of @primnum's primitive.

vertexpoint(0, vertexnumber);
returns the point number of the vertex you feed it.. Cos points and vertices aren't the same :)

so.. to get a point number from a primitive (say the first point in a line), we combine it all a bit..

int pt= vertexpoint(0,primvertex(0,@primnum,0));

Then you might access some values

float value=point(0, @something, pt);

Thursday 5 January 2017

add point to centre of primitive and have UVs (sort of)

Just to add points and then remove the primitive.

addpoint(0, @P);
removeprim(0, @primnum, 1);



This goes into a primitve wrangle!


To also have UVs:

vector uv = primuv(0,"uv",@primnum,set(0.5,0.5,0));


int pt = addpoint(0,@P);
removeprim(0, @primnum, 1);


setpointattrib(0,"uv2",pt,uv,"set");


Above this wrangle node, we'd initialise the uv2 value. After it, we'd rename the attribute to "uv". For some reason Houdini doesn't like it when you have UVs in both point and vertex.