Jump to content

StepbyStepVFX

Members
  • Content count

    355
  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by StepbyStepVFX

  1. Interaction between Crowd and FLIP Solvers

    Many thanks Atom !
  2. Interaction between Crowd and FLIP Solvers

    Hi All, The interaction between Crowd agents and FLIP simulation is one way : agents clearly influence the FLIP Simulation, but I have troubles to get the FLIP Sim move my ragdoll agents. I have already put the Feedback Scale to 1 under FLIPSOlver / Volume Motion tab / Solver. I have seen that particles interact with ragdoll agents, so I have created a POP object and added a POP Solver. The POP object is feed with the particles of the FLIP fluid at every simulation time. And I add a mass and pscale attributes to the particles. Now I have a better interaction between the ragdolls and the FLIP sim... but my agents now start to act as "spaghettis" under impacts of particles... I have tweaked the constraints (CFM, position CFM, position ERP etc.) but I can't enforce the position constraints and my ragdoll are really streched... Any ideas how to solve that ? Maybe a better way to make FLIP and crowd ragdolls better interact ? Any video / course / lesson / ressource where people have played with that a bit ? Thanks for your help crowdFLIPtest_v1.hip
  3. addpoint(VEX) help adding permanent point

    Well, I don’t really understand the need so hard to orient you in the right direction, but maybe with a bunch of switch nodes and timeshift node ? Really depends on what you need to achieve.
  4. Interaction between Crowd and FLIP Solvers

    Any idea ?
  5. addpoint(VEX) help adding permanent point

    The way Houdini works is that it evaluates nodes from top to bottom of your node-graph (well, in SOPs : not talking about DOP or PDG...). Therefore, each frame, your graph is re-evaluated independently of the previous frame.... until you use a SOP Solver node. The SOP Solver node allows you (when you dive inside him), to access (i) the incoming stream of nodes, evaluated at this particular frame and (ii) the same stream of nodes, evaluated at the previous frame. Therefore, you can perform your code on the incoming stream, make your tests and create geometry, and then merge it to the geometry of the previous frame. It allows you to keep changes you made on the geometry on previous frames (because each frame you can merge what you are doing with the results of previous frames). Here some docs : https://www.sidefx.com/docs/houdini/nodes/sop/solver.html
  6. Is it possible to import hou module outside houdini?

    Guys, I am not a developper by any means, but from what I understand, and "API" is an Application Programming Interface, which means it requires an instance of your application to be run in any case (Houdini, Maya...). The module you use "HOU" is just a library of functions that Python (or C++ in case of SDK) understands and calls the application (Houdini, Maya...). So it is really just an "interface" between standard programming language and an application. I guess you can run an instance of your application in "command line" (Houdini or Maya with no GUI) and use that / declare it from a standard Python file executed in Python, and from there it should work. But to don't ask my how, never tried with Houdini or Maya.
  7. Hi, Some R&D about the Crowd system. Ultimately, I want to recreate a shot from World War Z (more or less a zombie pyramid, where they are crawling over each others, but "realistically", without too much interpenetration). For the time being I am testing a much more simpler setup to allow agents walking over other agents, using regular nodes and limited code. In this scene I try to recreate the AdaptGround Behavior of Golaem crowd system (http://golaem.com/content/doc/golaem-crowd-documentation/adaptground-behavior) : my "troops" agents can walk on dead / ragdoll agents. For the time being, the dead agents are only taken into account for terrain projection, not yet terrain adaptation / foot planting. If anyone has ideas about that - foot planting and particularly floot planting on uneven ground - , I would be happy to learn or explore these directions ! :-) I have opened the agent_util.h, terrain_adaptation.h, terrain_projection.h ... VEX code used by the crowd system, but foot planting remains complex and doesn't seem to be easily hacked... (by the way, I have used some code coming from there for this setup) MORE DETAILS ABOUT THIS SETUP : - In DOP, I duplicate the ground with a poly version of it (convert heightfield to poly) : this is an object that I call "offsetTerrain" - In DOP, I duplicate the crowd geometry and keep only the dead agents : inside the crowd object (allow editing of content) I add a fetch data and duplicate Geometry into standGuyGeometry. Then with a SOP Solver, I delete all the agents except the dead ones (that happens to be ragdolls, but would work with any other agents). - I use the DOP data "offsetGeometry" of the object "offsetTerrain" in a Geometry Wrangle to create an attribute (@offsetDead) on each point of the farthest distance of intersection with the standGuyGeometry. - Using another SOPSolver, I blur the @offsetDead attribute created above, to smooth the trajectory of my future agents when stepping on the dead agents. - In the stream of the crows state of the walking agents, I add a POP Wrangle to sample the "offsetTerrain" geometry (2nd input of the POPWrangle), and get the attribute created previously (@offsetDead) - In the agenTerrainProjection1 node, I go inside and change the VEX code of the POPWrangle : I change parms.offset = chf("../offset"); with : parms.offset = f@offsetDead; Therefore, each agent has its own offset and virtually walk over the dead. testWalkOverDeads_vMocapBiped.hip
  8. CROWDS : Walking over other agents / Constraint Network

    Any idea of how to make this dynamic constraint creation setup works ?
  9. Can't Get Rid of Particle Stepping

    Have you tried to time blend the source (before the Debris Sop) ? And as said by Eric, if you cache the source, be sure to cache inter-frame as well ( see post below) https://www.sidefx.com/docs/houdini/nodes/sop/timeblend.html
  10. CROWDS : Walking over other agents / Constraint Network

    The second file dynConTest.hip
  11. Paint splash

    Pas de soucis ;-)
  12. Paint splash

    Do you just need a wet map, or do you want to recreate the Substance dynamic brush where you paint with particles ? For getting wet maps, you can find plenty of tutorials on google : https://www.youtube.com/watch?v=XEeZ6a56kC8 and : https://vimeo.com/channels/pqhoudini/285813013
  13. CROWDS : Walking over other agents / Constraint Network

    Good evening, Following my studies on crowds systems, and a question from @jackassol about sticking ragdolls to colliders, I have tried to create constraints on the fly during the simulation, using Impact data. My first attempt being a quasi-failure (see attached testRagdollDynCon_v1.hip), I have tried with a simpler setup : a sphere rolling over cubes, and when hitting cubes, creating constraints on the impact data. You can see my test file attached as well : dynConTest.hip This, again, being not satisfaying, I have tried with a much more simpler setup : 2 cubes sliding on a plane and "joining" where impact occurs. AND IT WORKS !! (see file dynConTest_basics_v2.hip) Now, I really have a hard time figuring out why my setup dynConTest_basics doesn't work... I am afraid this comes from bad matrix inversion / rounding errors (I use an inversed fullpackedtransform to bring the impact position back to the "initial object space" of the sphere). Does anyone have any idea on where the problem is ? Thanks for your help ! testRagdollDynCon_v1.hip dynConTest_basics_v2.hip
  14. How can I scale a "Simple Male" character?

    Parent it to a null and scale the null
  15. Stick on collision - Ragdall

    Well, this would require a bit of VEX, but I guess the main elements to achieve would be : - I would work with a polygonal version of your collider (I don’t know what it is you are using, but you can always « hack » your DOP object and add pieces of data inside : check my other hip file, you will see that I need polygonal version of my terrain https://forums.odforce.net/applications/core/interface/file/attachment.php?id=49690 - you can use the Impact data (basically points), to find the prim and uv where the impact occured on your collider - use these to always reference the point on this moving geometry where impact occured, and use this point to modifiy the constraint anchor in the sop solver of the constraint network Of course, you will need to be familiar with Wrangle and SOP Solver and how to call different pieces of data in DOP... (all the bindings etc.) Check the hip files I shared, because the main ingredients are there, you just need to spend some time figuring out, step by step, how to reference a point in DOP context, and use this position to modify a constraint network.
  16. Floating animated character on Flip

    Indeed, FLIP works best for mid/large scale sims. I think a ripple solver, plus some custom particle system can do the trick. Just in case you would need some ref for a ripple solver, Entagma did a series of videos 2 years ago :
  17. CROWDS : Walking over other agents / Constraint Network

    To continue posting my experiments on crowds, on the same page, an example file about ragdolls and constraints. Can a ragdoll realistically climb a wall, providing some animated constraints ? Nope, but fun to watch... ragdollClimbing_v2.hip
  18. Stick on collision - Ragdall

    By the way, in order to find the limb on which a collision occured, the process is a bit long to explain, but know that there is an example in this course by Mikael Petersen on crowds. This guy is really an expert, I really recommend watching his courses. https://www.cgcircuit.com/course/crowds-for-feature-film-in-houdini-2
  19. Stick on collision - Ragdall

    You can create a constraint on the fly. i did some experiments recently, see the file attached (the constraints are even animated, as I wanted to see if the ragdoll could climb more or less realistically a wall... answer is no, but it can be useful to learn how to manipulate constraints on ragdolls :-) ragdollClimbing_v2.hip
  20. Create NGon with VEX using any 5 points. Is it possible???

    Have you tried PolyFill ? https://www.sidefx.com/docs/houdini/nodes/sop/polyfill.html Or older PolyCap ? (Deprecated) https://www.sidefx.com/docs/houdini/nodes/sop/polycap.html
  21. How to make the pointreplicate follow the shape of the mesh

    What do you mean ? I understand you projected points on a mesh (a terrain probably ?) and now you want the points to inherit the normals from the faces of the mesh on which they landed after projection, correct ? (you probably want to instance tress on these points, and you want them to be oriented with the normal of the terrain ?). If so, take a point wrangle, plug the points on the first input, put the terrain/mesh (who should have a normal attribute, otherwise it won't work), and write : int crossprim; vector crossuv; int dist = xyzdist(1, @P, crossprim, crossuv); @N = primuv(1, "N", crossprim, crossuv);
  22. You will have a nice video. And I am pretty sure I saw another one, probably from Entagma, but can't find it on Google, nor Patreon.
  23. Another solution if you just have a point cloud with no geometry on which points are scattered : http://www.weizmann.ac.il/math/ronen/sites/math.ronen/files/uploads/katz_tal_basri_-_direct_visibility_of_point_sets.pdf The algo is quite easy to implement.
  24. Hey, the simplest solution I see is to tag the faces that have normal direction away from the camera, and make the scattered points inherit that attribute / group, to delete these points later. You can compute a vector that goes from the position of the face toward camera position, and calculate the dot product between this vector and the normal of the face : if positive it is facing the camera, if negative it is oriented away, and you can tag the face. Use a primitive Wrangle to do that. Then scatter the points, let them inherit the proper attribute or group, and delete the ones that were spawn on the faces looking away.
  25. Automatically fix mesh tunnels/holes

    Just an idea, based on what Konstantin provided : once you have a closed mesh, maybe try to subtract the closed one from the original one, and then you will be left with the holes (inverted). Use these meshes to « tag » the borders of holes in the original mesh. From there, reproject the detailed mesh onto the smooth/closed version of Konstantin, but only for the points that are not tagged. See what I mean ? By difference you can get the area of the holes, and use that to mask the reprojection process. Therefore you will have details everywhere except on the closed areas, that will be smooth. But I won’t have time to propose you a file for that, I can just give you the idea :-)
×