Time-Warping with CHOPS and Copy-Stamping

   5411   11   2
User Avatar
Member
28 posts
Joined: Dec. 2012
Offline
Hey,

So I'd like to warp the speed of an animation on an object - the faster an object is moving, the faster the animation plays out. The object will speed up and slow down, it's not just moving at a constant speed. I'm very new to CHOPs but it seems that the warp chop is ideal for this - use a velocity channel (with some maths) as the warp curve and boom. I'd like to do this for hundreds of objects, hence copy-stamping geo onto a particle system.

The question is - how can you get the velocity of a particle piped into the chopnet for the associated copy-stamped object? Is this even possible? When using chops on a single instance of more complicated geo it seems quite slow to cook, so is this even an efficient way of doing things? Before using chops I was initially using a normal timewarp SOP with an expression to vary output range, but this never seemed to work the way I intended.

Attached is a test scene where I've laid out what I've done so far. Any help is as always greatly appreciated!

Attachments:
copyStampAndCHOPS.hip (222.5 KB)

User Avatar
Member
7714 posts
Joined: July 2005
Offline
Can't you just use another Geometry CHOP to fetch the v attribute from your particles? In anycase, I'm not sure how the Warp CHOP is doing anything that can't be done with just an expression on a TimeWarp SOP.
User Avatar
Member
28 posts
Joined: Dec. 2012
Offline
Using the geometry CHOP - maybe? I can't figure out how. The stamp expression doesn't seem to transfer over to CHOPs, and I can't directly access the copy node within the chopnet without creating an infinite recursion.
Using the timewarp SOP - at least with the expressions I've been writing, I can vary the ‘amount’ of warping, which is fine for particles moving with no acceleration. But as soon as the object starts to speed up or slow down at any appreciable rate, the time-warped animaton starts jittering about all over the place. The rate is fine, but there's no flow, no connectivity between frames.
If you've got a clever expression in mind, I'm all ears
User Avatar
Member
1391 posts
Joined: Dec. 2010
Offline
I don't know what do you want to do exactly , But I think you should use CHOP in the other side of the Copy node !
check attached file :?

Attachments:
JKVel.hip (223.3 KB)

https://www.youtube.com/c/sadjadrabiee [www.youtube.com]
Rabiee.Sadjad@Gmail.Com
User Avatar
Member
28 posts
Joined: Dec. 2012
Offline
Thanks for the help Joker, but this is not quite what I need. The original particle movement is fine, what I want is for the cubes to rotate at a rate that is proportional to their speed. If the particles move fast, the cubes should rotate quickly. If the particles slow to a stop, the cubes should slow down in their rotation until they're still.
Cheers
User Avatar
Member
1391 posts
Joined: Dec. 2010
Offline
Cradders
Thanks for the help Joker, but this is not quite what I need. The original particle movement is fine, what I want is for the cubes to rotate at a rate that is proportional to their speed. If the particles move fast, the cubes should rotate quickly. If the particles slow to a stop, the cubes should slow down in their rotation until they're still.
Cheers

So why do you wanna use CHOP !? :?
Just add this expression in RotationZ parameter for your xform1 :
($F*5) * stamp(“../copy1”,“speed”,0)
https://www.youtube.com/c/sadjadrabiee [www.youtube.com]
Rabiee.Sadjad@Gmail.Com
User Avatar
Member
28 posts
Joined: Dec. 2012
Offline
I may be missing something obvious here, but this has the same problem as I was describing to Edward - as soon as there's a change in velocity the result goes crazy! New file attached, where the particles slow down at the end. What I want to happen is the cube's roation slow to a stop at the same rate as the particles translation does, but, well, this is not what happens as you will see!

Additionally, this cube animation is just a simplified version of a scene. This needs to be a general solution for any input geometry, hence why I am using time blend through a warp in chops - so I can modify the object's whole animation, not just a single transform.

Cheers

Attachments:
copyStampAndCHOPS2.hip (262.9 KB)

User Avatar
Member
1391 posts
Joined: Dec. 2010
Offline
This is abusive !
Because you used $F * speed , So If velocity comes low , Then Speed comes to some smaller value than 1 ,for example 0.5 .
Suppose we are in frame 100 ,So 100 * 0.5 = 50 and your geometries should be turn back very crazy ! Right ???

For solving this problem , you can use a simple counter for rotation :idea:

start to counting from 0 to upper values , If velocity is low , then counter should be count slower , If velocity is high , Then counter should be count faster and finally use this counter value for rotations.

the formula should be something like this :

float counter;
counter = counter + length(velocity);
RotationZ = counter;


NOTE:[/b]
You should add counter expression in the DOP network ,because you don't have any iteration process in the SOP network :idea:
https://www.youtube.com/c/sadjadrabiee [www.youtube.com]
Rabiee.Sadjad@Gmail.Com
User Avatar
Member
1391 posts
Joined: Dec. 2010
Offline
Ok , I made this project for you , I hope it can help you my friend :wink:

Attachments:
JKVel_FINAL.hip (250.3 KB)

https://www.youtube.com/c/sadjadrabiee [www.youtube.com]
Rabiee.Sadjad@Gmail.Com
User Avatar
Member
1391 posts
Joined: Dec. 2010
Offline
Hey Cradders , did you check my last post ?
is it your answer ? :?
https://www.youtube.com/c/sadjadrabiee [www.youtube.com]
Rabiee.Sadjad@Gmail.Com
User Avatar
Member
30 posts
Joined: July 2013
Offline
I don't know about him but I learned a lot from your example file. Thanks Joker!
User Avatar
Member
1391 posts
Joined: Dec. 2010
Offline
Ali Tezel
I don't know about him but I learned a lot from your example file. Thanks Joker!

Thanks Ali :wink:
https://www.youtube.com/c/sadjadrabiee [www.youtube.com]
Rabiee.Sadjad@Gmail.Com
  • Quick Links