Jey Stone

juggler7

About Me

EXPERTISE
Technical Director
INDUSTRY
Film/TV

Connect

LOCATION
United Kingdom

Houdini Skills

Availability

Not Specified

Recent Forum Posts

Does anyone know how to use the reverse foot node? Dec. 6, 2022, 3:25 a.m.

SWest
Please take a look a RMagee’s Furdude. It has a nice reverse foot setup. You will find it in the tutorials section. Just do not do the whole project because it is for an early version of kinefx.

Yes I actually did that tutorial and ended up with the same problem lol...everything works great except for the ball roll, which means it's a small parenting problem somewhere..The toe and heel roll work fine and push the IK leg as expected, so it has to be a small issue....

Basically once the IK chain is added, the ball joint no longer respects being the child of the toe joint....

Does anyone know how to use the reverse foot node? Dec. 5, 2022, 11:03 a.m.

I managed to get a foot roll behaviour working using 'reverse foot' and 'stabilize joint', however there should be a way to do this without the need for the stabilize joint node...it seems once you add the IK chain, the toe joint ends up dipping into the ground, the behaviour without the IK is how it should work...any ideas?

I'm pretty sure a skeleton blend is needed somewhere, but I can't get it to work...

PolyExtrude in VEX Aug. 30, 2022, 2:23 a.m.

I have since improved my result to include polygons with any number of connected points, i.e. 3 or 5:

//pick a polygon face/primitive
int index = chi("Primitive_Index");

//this array will hold newly created points
i[]@newpt_list;

//let's extrude the selected primitive (using Primitive
//Index we created above)
if(@primnum == index){
    
    //set selected prim color to white - just a visual aid
    @Cd = {1,1,1};
    
    //primpoints function gives us all the connected 
    //points, as index values
    i[]@conn_pts = primpoints(0,@primnum);
    
    //let's run through this points list, and then
    //create a new point above them
    foreach (int pt;@conn_pts) {
        
        //get the connected points position vector
        vector curr_pos = point(0,"P",pt);
        
        //create an offset vector, this will be our extrude amount
        //vector offset = set(0,chf("offset"),0);
        vector offset = @N;
        
        //calculate the new position, adding old pos with offset
        vector new_pos = curr_pos + offset;
        
        //create a new point at this new position vector
        int newpt = addpoint(geoself(),new_pos);
        
        //add the new point index to an array, will need these indexes
        //to create the top and side faces
        append(@newpt_list,newpt);
        
    }
    
    int len_conn = len(@conn_pts);
    int len_newpt = len(@newpt_list);
    
    for (int i=0;i<len_newpt;i++)
    {
        addprim(0,"poly",@conn_pts[len_newpt-(i+1)],@newpt_list[len_newpt-(i+1)],@newpt_list[len_newpt-(i+2)],@conn_pts[len_newpt-(i+2)]); 
    }    
    
    //create the 'side' poly faces - this bit needs more 'elegance'
    //addprim(0,"poly",@conn_pts[3],@newpt_list[3],@newpt_list[2],@conn_pts[2]); 
    //addprim(0,"poly",@conn_pts[2],@newpt_list[2],@newpt_list[1],@conn_pts[1]); 
    //addprim(0,"poly",@conn_pts[1],@newpt_list[1],@newpt_list[0],@conn_pts[0]); 
    //addprim(0,"poly",@newpt_list[0],@newpt_list[3],@conn_pts[3],@conn_pts[0]); 
    
    //remove the original prim face
    removeprim(geoself(),@primnum,0);
    
    //create the new 'top' poly face
    addprim(0,"poly",@newpt_list);   

}
//color non-selected prims blue, visual aid
else{
    @Cd = {0,0.5,1};
}