Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


hmihalis1 last won the day on May 26 2019

hmihalis1 had the most liked content!

Personal Information

  • Name
  • Location

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

hmihalis1's Achievements


Newbie (1/14)

  • Conversation Starter Rare
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges



  1. Hi all, I'm trying to create a custom setup for the ragdoll solver to retrieve impacts and write that impulse strength to the nearest constraint to create a kind of localised plasticity/hardening effect, as if yhr ragdoll was made of welded metal. Its very confusing as I have the setup working perfectly in a sop solver inside the ragdol dop hooked up to the pre-solve, and inside there i'm getting impact at the location, accumulating it in yet another nested sop solver and writing that to an attribute, but no matter what i name that attribute it doesnt 'survive' the trip back up to sop land and also i can't write it meaningfully to any solver recognised attributes that would effect the stiffness of the joints like `motor_maximpulse` . Could anyone with some experience of sops/dops interfaces advise me as to why this might be happening? I tried a very simple prim wrangle that just sets motor_maximpulse to the global `@Time`, which does survive the trip back up to the sop root level and subsequently also does apply to the constraints and cause them to gradually harden, so that leads me to believe that its the ability of my sop solver to set a persistent/accumulating attribute that is somehow disabled... but i have no idea really. Feels like theres an obscure checkbox somewhere on a node that needs setting to something unguessable.... would appreciate any help. have attached a video attempting to demonstrate the issue and a hip file for anyone thats curious edit: seems like i just needed to plug the sop solver into the post solve input lol
  2. Hi all, can anyone please help me - I need to connect points in a certain order and then resample them to create the path with more specific/controllable bezier type interpolation rather than the default ouput of the resample sop as seen in yellow. Essentially I need a way to control the arriving/leaving orientation and the magnitude/stiffness, so beizer curves and handles in 3d would do the trick i think.. Been stuck on this for weeks would be amazing if someone can point me in the right direction - can i use the new curve sop somehow? the setup needs to be procedural and follow from the position of the points in blue and red. many thanks for any advice, H
  3. Hi all, I'm working with a character .fbx imported from another package, and need to extract the painted weights for a specific bone to a point attribute to use as a mask. Right now i'm using the labs Name from Capture Weight node, which unpacks the weights and saves the name of the bone that has the highest influence on a point to string attribute by just returning the first entry. Then I use the following vex to do a search for a particular bone(s) in that string attribute, something like "eyelidLower*": string term = chs("search_for"); int found = match(term, s@bone); @mask = found; that returns 1 for all the points that match the term so i can a linear mask, but I want to return and sum the actual weights - is this possible? Many thanks
  4. Hi everyone. I'm hoping someone could take a look at this VEX and help me simplify it/point towards a more standardized way of handling time based conditions and blends in the DOP context, as I keep hacking together things to fill the similar requirements but it's always really over complex. 'm searching for nearby points on prims in the 2nd input of this wrangle and if found snapping my position to the nearest point on that prim, plus adding a bit of the velocity. I want to start a timer from the time that the point is found and run that through two ramps; one to lerp the position and the other for the velocity. Clearly its very convoluted and i'm also setting a lot of extraneous attributes, as I find if I try to use variables they often get reset each frame. It would be amazing if I could cut this number of lines in this down, or just get some tips on making it more readable. Many thanks, H window_odforce.hiplc
  5. I think i'd have to work through these tutorials and get a better grasp on chops first - i managed to bring in the points and generate a channel per id, so thats a start
  6. Thanks @Librarian . Are you suggesting generating a noise and clamping it? I had thought of chops as a solution but is there a way to randomize that per point, and also to define the precise duration of the periods? i know i could use a noise but im trying to find a way to avoid having to tweak values to get the kind of variation im after and instead be able to just enter the values. Looking at the tokeru article now and it seems like theres some stuff that covers per point offsets specifically which is cool - i'll see what I can figure out with the spans
  7. Hi all, I need to generate an integer attribute on points that switches between 0 and 1 across a frame range like this: so the length of the spans is driven by a min/max, and their distribution is then randomly scattered across the frame range. This also need to be different for each new point as they are born . Could anyone help me break down what I need to do this in vex/vops? I was told to look into arrays and while loops which is well beyond my current VEX level. Many thanks, H
  8. amazing thanks so much Gorrod, that little bit of syntax in the nearpoint function was i'll I needed I put it into a sop solver and multiplied the pscale down instead of removing the point just in case it results in drops popping out of existence when meshed.
  9. Hi all, i've got some points with trails and i'm filtering them randomly to leave some behind as the trails move forwards. each trail is split into a leading point and the trailing points, and each trail and its leader have a unique id. what I want to do is take the points i've left behind and remove them if they come into contact with another point trail that has a different id. so something like an attribute transfer but with a condition that checks the near points id and only transfers some attribute if that id is different. so the white points from trail 1 would exist until the come in contact with the red points from trail 2. Any ideas how to do this in vex or vops? Many thanks,
  10. Hi All, TL;DR - How do you save particle velocities each frame to feedback into a sim? I'm working on a particle effect for rain on a window. Currently adapting a nice example from Toadstorm. I've made some changes to his setup. He has new particles growing over time and becoming droplets past a certain pscale, so i've derived mass from pscale to connect droplet size and speed, as the wind force i'm using to move them is not set to ignore mass. video I added a sop solver after the DOP to delete still particles touched by moving ones. And a popinteract and a popfluid to try and get the moving drops to coalesce and follow each other as they move down, but this has only slightly worked. Ideally i'd like to write the velocities of the moving drops into a volume which could then come back into the sim the advect the particles, or some other technique that follow make it so that new drops hitting and existing trail would follow its path precisely, and add a little to their speed and size. I presume I would use a sop solver inside my DOP network for this, but no clue beyond that. Any advice much appreciated, H windowdrops-uv3-w.mp4
  11. I combined your code and this seems to have the desired effect: f@distance = (float)abs(length(v@startPos - v@P)); if(f@distance > ch("distance_threshold")){ @dead = 1; } will make sure to set up the groups properly. still new to pops and getting my head around streams etc
  12. Ok thanks it seems to work kind of but also deletes points i want to keep so i'll try your solution now
  13. Hi @Noobini Thanks for your response! Right now I have this situation: //Rounding my particle age up to get the frame number (no idea if this maths is right): f@frameAge = ceil(f@age*24); //if frameAge is 1 save the startPos: if(@frame == 1){ v@startPos = v@P; } //Then get vector length and kill if it exceeds threshold: f@distance = (float)abs(v@startPos - v@P); if(distance > ch("threshold")){ @dead = 1; } Do you think this makes sense? Not confident i'm getting the vector length correctly. I'll check your solution now. Thanks so much!
  14. Hi all, I'm trying to come up with some vex to use to kill particles in a sim when they have traveled a certain distance from their birth location. I have mother particles that last one frame and i'm using a pop replicate to spawn new splash particles from them. What i'd like to do is store the position of the mother particles and subtract it from the position of each replicated particle every frame to get the distance, then set them as dead once this has passed a given threshold. Extremely limited VEX experience here, so if anyone could give me some kind of starting hint/snippet that would be amazing Many thanks, H
  • Create New...