benguastella 0 Posted January 23, 2019 Hello, I am struggling to find a solution using Vellum that allows me to modify which points are part of a "pin to target" constraint over time, or their overall strength. There seem to be workflows for modifying attributes for other types of constraints that work (using a sop solver in DOPs to modify stretch stiffness, etc), but those same methods do not seem to work with Pin to Target. Essentially, I want to be able to have my vellum object pinned to animation in specific locations on specific frames, then over time, change which points are being constrained (usually I would be removing a sub-set of the points, allowing more of the geometry to simulate freely). Rohan Dalvi has a great tutorial that goes over a similar workflow using "Stitch Points or "Weld Points" and modifying the Breaking Threshold over time, but this method does not seem to garnish any results when you flip to the "Pin to Target" constraint type. (Link to his video: https://vimeo.com/296601872) Am I just doing something wrong? Does this feature not exist? Maybe there is a different constraint type that would allow me to pin to animation? Any help would be greatly appreciated! Thanks! -Ben Share this post Link to post Share on other sites
splegare 9 Posted February 22, 2019 Hi Ben, I'm having the same issue here. Were you able to find a solution? I also want to update the constrained points over time but it seems like it's not working with the "Pin to target" constraint type. I've attached a very simple scene.. Basically I'm just trying to transfer an attribute from an sphere in order to detach strings over time. Any help much appreciated! Thanks! test_fur_vellum_v01.hip Share this post Link to post Share on other sites
Whatsinaname 16 Posted February 27, 2019 You could use targetweight on your points, which is a float variable, and animate that (see the help on grains for that matter). I tend to create a Pin to Target constraint, setting Stretch>Stiffness to Scale by Attribute and targetweight as control attribute. Also set Pin Type > Soft, Orientation Pin Type > None and activate Pin to Animation. This should allow you to control the pin strength by animating the targetweight attribute. Share this post Link to post Share on other sites
splegare 9 Posted February 28, 2019 Thanks for your help Ernest, really appreciate it! I tried what you said and it seems like I'm still not getting it. No matter which attribute I'm animating in SOP, it's not updated over time in Vellum. I updated my scene applying your advice. Is there something I'm missing? Thanks a lot! test_fur_vellum_v02.hip Share this post Link to post Share on other sites
wakimsan 4 Posted March 3, 2019 I'm struggling with the same issue at the moment. What's strange is that I'm perfectly able to do it the other way around; having 0 pin to target on all points, then adding pin constraints throughout the geo with an animated attribute transfer in a sop solver within the dop network. Then using the dop vellumconstraints, set to update on each frame, to create the pins throughout the simulation. Must be something I'm missing here... Any insight would be greatly appreciated. Thanks Share this post Link to post Share on other sites
splegare 9 Posted March 15, 2019 I know it's been a while but I ended up finding a solution through an older odforce post from vtrvtr. Basically you want to set a group of points in a "Pin to target" constraint and animate the breakthreshold attribute in sop. In order to transfer the attribute from sop to your ConstraintGeometry in dop, you need to plug a sop solver in your vellum solver. You will need to check "Invoke Compiled Block" on your sop solver node and add an extra output for the ConstraintGeometry. Inside the sop solver, you'll need to copy the breakthreshold attribute from sop to the ConstraintGeometry. Maybe there's another way, but it's the only way that worked for me so far! Thanks Vitor! fur_vellum_playblast_v01.mp4 test_fur_vellum_v04.hip 4 Share this post Link to post Share on other sites
wakimsan 4 Posted March 17, 2019 Thank you very much splegare and Vitor! That worked great! Never would have figured out that solution by myself. And thank you for sharing the hipfile(needed that). Thanks. Share this post Link to post Share on other sites
Jim M 1 Posted May 18, 2019 (edited) Using a SOP solver to generate the animated attributes... I am doing a similar thing, with pin to target but using @stretchstiffness / match animation to modulate the constraints. I have it working, but for the constraints to be working I have to remove the constraint every frame with a VCP node, and rebuild it, but match to animation doesn't work. If I kill the VCP remove then match to animation works but the animated constraints don't. Which kind of makes sense. I will crack it at some point! I take it the only reason you need compiled block is so the SOP solver can output both Geo & Constraints seperately? I am a bit confused, I thought the SOP solver would take both automatically and spit both out. I am guessing not as they are individual data streams. Any help appreciated. Hipfile included. untitled.mp4 PTA_matchAnimaitonFail.zip Edited May 18, 2019 by Jim M 1 Share this post Link to post Share on other sites
FR3D 18 Posted October 16, 2020 (edited) On 15/03/2019 at 11:53 PM, splegare said: I know it's been a while but I ended up finding a solution through an older odforce post from vtrvtr. Basically you want to set a group of points in a "Pin to target" constraint and animate the breakthreshold attribute in sop. In order to transfer the attribute from sop to your ConstraintGeometry in dop, you need to plug a sop solver in your vellum solver. You will need to check "Invoke Compiled Block" on your sop solver node and add an extra output for the ConstraintGeometry. Inside the sop solver, you'll need to copy the breakthreshold attribute from sop to the ConstraintGeometry. Maybe there's another way, but it's the only way that worked for me so far! Thanks Vitor! fur_vellum_playblast_v01.mp4 test_fur_vellum_v04.hip Hello, thank for the post . After digging on this issue i found a simpler technic that works based on "WHATISANAME" suggestion I modified your file getting rid of all the hassle of the block begin which i can't understand myself, i hope it helps. I upload the clean version i did for myself as well ready to be used test_fur_vellum_v04_SIMPLE.hip vellum_pintotarget_animated.hip Edited October 16, 2020 by FR3D 1 Share this post Link to post Share on other sites
sebkaine 286 Posted March 11, 2021 (edited) for those who need that for vellum cloth , here is an other hip pin_to_animation_att.hiplc cheers E EDIT : I also add the link to this post , cause Tomas hip is very useful and concise to get pin constrain control by an attribute : https://www.sidefx.com/forum/topic/68425/ Edited April 7, 2021 by sebkaine 3 Share this post Link to post Share on other sites
sara.miller 0 Posted January 12 Thank you all for the insight and reference .hip files on this topic. I am working on a system that uses vellum cloth and points need to gracefully transition from their pin-to-animation state after collisions with other objects are detected so the simulation can then kick in to handle the animation. I checked everything out and ended up using sebkaine's solution as a starting point. I appreciate your sharing ! S flower_array_sim_01.mp4 Share this post Link to post Share on other sites
Dee PoG 1 Posted April 2 I'm trying to do this in Houdini 18, using Solver SOP inside of a vellum solver. I'm succeeding at transfering attributes using object merge and attribute copy node, however it seems like it just ignores @stretchstiffness attribute, even though it's clear from Geometry Spreadsheet, that it IS being trunsfered:/ Can anybody explain why? animate pin to target.hipnc Share this post Link to post Share on other sites
Jim M 1 Posted April 3 (edited) stretchstiffness is applied in the vellum constraint sop and applied to the constraints before it reaches the solver. It is really just a convenience utility for setting up incoming constraints. If you want to write to constraint data in the sim you can use a vcp node. Alternatively you must set your sop solver to operate on ConstraintGeometry not Geometry (data name) and then write to the constraint prim attribs directly. You can easily recreate "stretchstiffness" by scaling constraint forces. There is no magic here. Furthermore if you want to get Geometry data inside a ConstraintGeometry sop solver just dup the dopimport in the sop solver and change the geometry data path to "Geometry". This way you can do things like trainsfer point attribs onto constraints. Sounds complicated but it isn't really. You just have to realise that constraint and geo data are operated on separately. Edited April 3 by Jim M Share this post Link to post Share on other sites
Jim M 1 Posted April 4 This should make everything clear. You do not need a sop solver for what you are doing. In the file is a few examples showing getting data from sops with VCP or wrangle (showing the VCP is just a convenience dop) and the same for data generated inside the dop, getting dop geometry data into the ConstraintGeometry data VCP or wrangle. Then lastly the sop solver example doing the exact same thing getting dop geometry data / sop geo data into a ConstraintGeometry sop solver. The idea is just repeated in 3 different ways for sops and dops. The main thing being you are working on "ConstraintGeometry" primitives with attributes from "Geometry" points. N.B. to drive the point home, these are the exact names of the data class you need to explicitly declare in SOP solvers, VCPs or geometry wrangles to do this kind of thing. vellum anim constraints.hip Share this post Link to post Share on other sites
Dee PoG 1 Posted April 4 (edited) Thank you so much, Jim! I managed to make it work (more or less:) ) using vellumconstraintproperty. Was trying to wrap my head around sop solver method when a message from you came. This was my first question on this forum and you made it into a really pleasant experience, what a great community! thank you again animate pin to target2.hipnc Edited April 4 by Dee PoG 1 Share this post Link to post Share on other sites
Jim M 1 Posted April 4 5 hours ago, Dee PoG said: Thank you so much, Jim! I managed to make it work (more or less:) ) using vellumconstraintproperty. Was trying to wrap my head around sop solver method when a message from you came. This was my first question on this forum and you made it into a really pleasant experience, what a great community! thank you again animate pin to target2.hipnc Haha great !! Take a look at my example hip too as you may need a sop solver running on constraints at some point, and in general it's pretty useful in dops in general to understand data names and inputs. So often something isn't working because you assume you are getting data from one place and you forgot to assign the inputs. Good luck !!! Share this post Link to post Share on other sites
cudarsjanis 64 Posted May 24 On 04/04/2022 at 3:33 AM, Dee PoG said: Thank you so much, Jim! I managed to make it work (more or less:) ) using vellumconstraintproperty. Was trying to wrap my head around sop solver method when a message from you came. This was my first question on this forum and you made it into a really pleasant experience, what a great community! thank you again animate pin to target2.hipnc Thanks a lot for this! This was exactly what I was looking for Share this post Link to post Share on other sites