Parameter driven anim curve

   1682   2   0
User Avatar
Member
27 posts
Joined: July 2005
Offline
Hey all, So been trying to find the right approach with this and it's got a me a bit stuck. I'm building a lookdev rig and I seek to create a repeating 360 rotation with a pause before repeating the rotation. The rotation needs to start at a frame controlled by a parameter ©. The duration of the rotation (b) is controlled by a parameter, as is the pause(a). An alternating curve will also be needed but naturally can leverage the same solution.

So far I've tinkered with a conditional in the rotation - and it got me the result but for only one cycle (I need this to ideally continue indefinitely). The script would become a bloated series of elif's and felt there has got to be a better way.

I tried building the curve in CHOP's using wave set to triangle but became really fiddly and not sure how to the allow for a non uniform (a) and (b) size.

I tried plotting the keys in a graph and additionally controlling the beizer() result via experessions. Got the values as i needed but can't control start frame, which would be offsetting anim©.

Would be interested to here suggestions. My gut says CHOP's is indeed the place to tackle this but is an area I don't know very well.
Edited by revilo3d - Aug. 12, 2018 19:27:47

Attachments:
image.jpg (51.8 KB)

User Avatar
Member
21 posts
Joined: April 2015
Offline
EDIT: I see you're wanting to link transform on geo to lights.. okay this won't help much as it's just for geo.

If you're talking about geometry you could do it with a point vop, have a look at the attached hip.

Basic idea is using the modulus vop to get the repeating rotation pattern.
Edited by Snackovich - Aug. 13, 2018 04:51:15

Attachments:
rotator.hipnc (264.0 KB)

User Avatar
Member
27 posts
Joined: July 2005
Offline
Ahh Thank you.

Indeed it doesn't directly solve my issue but think I could use it to make it work. Was a bit perplexed (still am a bit) at the modulo operator.

I've always know it to working in the following way (just through basic python learning)
5%4 = 1. 4 fits 1x into 5 leaving 1 remainder

In your example you are leveraging non divisible to control the state right?
4%5 = 4?? 5 does not fit into 4 - so it returns the original 4 as the remainder? Is that how it works?
5%5 = 0
6%5 = 1 (we repeat…)

EDIT: Got it working by the way - just bind the rotation to attr and call it in the light rotate parameter!
point(“/obj/geo1/rotator/”, 0, “rotation”, 0)

Cheers,
Ollie
Edited by revilo3d - Aug. 18, 2018 16:17:14
  • Quick Links