Sunday, 14 May 2017

How to Create Custom Constraints for Your Ragdolls in VEX

In this tutorial I’m talking about how to create custom constraints in VEX for your ragdoll sim. Unfortunately I got over my 10 minutes limit, but there was just so much stuff that I needed to squeeze in.

It’s a bit technical so you probably need to have some basic understanding of VEX and ragdolls to be able to appreciate it.

If you don’t want to write the code yourself you can copy it from here:

int number_of_agents=npoints(1)-1;

string left_hand;
string right_hand;

int pointID_left;
int pointID_right;

for(int i=0; i<number_of_agents;i++){

    pointID_left=findattribval(0,"point", "name", left_hand,0);
    pointID_right=findattribval(0,"point", "name", right_hand,0);  
    int primID=addprim(0,"polyline", pointID_left, pointID_right);
    setprimattrib(0,"constraint_name", primID, "Pin","set");


Sunday, 16 April 2017

Emit Particles from Geometry Intersections

In this tutorial I’m showing how you can use the Intersection Analysis tool to create emitters whenever you have geometry that intersect.

Sunday, 2 April 2017

Combining Solvers With a Multi-Solver

A cool thing that you can do in Houdini is to stack solvers with the help of a multi-solver. In this tutorial I'm showing a simple example of this by using a pop solver together with a bullet solver.

Sunday, 12 March 2017

Basic Material Style Sheets in Houdini

There seems to be a lot of confusion around Material Style Sheets in Houdini so I decided to make a very basic tutorial about it.

Quick Tip: Using the built in mocap biped 3 for crowds

I got some questions about how to use Houdini's built in mocap biped 3 instead of an fbx for your crowds so I decided to make a quick video about it.

Saturday, 11 March 2017

Create Arrays Containing the Vertices for Each Primitive

I got a question about how you could create an array out of four points for each primitive in one of the comments so I thought that I make a quick example.

So in this scene I'm reading every vertex for each primitive, put them in an array, move the box,  read them back and then add a point at the original position. It looks like this.

Make sure that your Attribute VOPS are running over primitives.

Inside the first VOP I'm using a For Loop and the numvtx (which is the number of verticies that the current primitive has) to drive how many time it will loop. I'm then using an Import Vertex Attribute with the current element index to pick up the position of the vertices. Lastly I'm appending them to an array. As we've selected that we are running over Primitives this will create an array for each Primitive.

To read it back is very easy. Just make sure that you are running over Primitives here as well. After that you can just use an for each node to step through your arrays. 

Hope that you will find this useful, The project file can be downloaded from here: Project File

Sunday, 26 February 2017

HeightFields for Crowds

In this tutorial I show how you can use heightFields to speed up crowds with terrain adaptation.