Hello All,
Need some help on this one to get me started.
Imagine you have a “line” sop with two points (point 0, and 1).
Point “0” get's grouped (lead group), as does point “1” (follow group).
Then a “Transform” sop has some “sin” animation on it's “tx” for point “0” (lead group).
What I want to be able to do is to take the value of point 0 (lead group),
and then apply that to point “1” (follow group).
Easy enough right?
Well I want to offset the reference in time.
In other words: I want Point 1 (follow group) to get the “tx” info of Point 0 (lead group) but have it's value not be the current value of point 0 (lead group), but instead have it be the value of what happened 15 frames ago.
I know that there is the “trail” sop, but this won't worlk for my purposes.
I think the solution must involve the Cache sop some how…
but I'm not sure.
Any ideas?
Thanks
Jim
$TX value referencing a different TX value from past frame
9482 17 3- Jim Ellis 2001
- Member
- 60 posts
- Joined: July 2005
- Offline
- AdamJ
- Member
- 268 posts
- Joined: July 2005
- Offline
Couldnt you just offset the time in your expression for the second point? If your leader is somethin like $TY=sin($TX) then apply the same expression to your follower but just offest the time in it $TY=sin($TX+5).
Another approach would be to grab the channels into CHOPS and offset the motion curve based on the id of the point.
Another approach would be to grab the channels into CHOPS and offset the motion curve based on the id of the point.
- Jim Ellis 2001
- Member
- 60 posts
- Joined: July 2005
- Offline
Thanks Adam for the reply
Yes those things would all work,
but my goal is more complex.
I tried to make the most basic example to try to keep things simple.
but what I'm really after is a method by which to access past frame values,
without being reliant upon any “key framed” information.
So it kind of like this:
$TX = $TX -15frames
As I said before, I believe this would involve a “Cache” sop.
I really don't even want channels
I just want to cache something out,
and then access that cached information.
Why… because I think it can lead to some really sick stuff with very little work involved.
I know that the “Trail” sop is good for this,
but I really want to be able to get in there and access the cached data to be able add specific variation.
Sort of like having more direct control of the “copy stamp”, applied to a “trail” sop.
Yes those things would all work,
but my goal is more complex.
I tried to make the most basic example to try to keep things simple.
but what I'm really after is a method by which to access past frame values,
without being reliant upon any “key framed” information.
So it kind of like this:
$TX = $TX -15frames
As I said before, I believe this would involve a “Cache” sop.
I really don't even want channels
I just want to cache something out,
and then access that cached information.
Why… because I think it can lead to some really sick stuff with very little work involved.
I know that the “Trail” sop is good for this,
but I really want to be able to get in there and access the cached data to be able add specific variation.
Sort of like having more direct control of the “copy stamp”, applied to a “trail” sop.
Jim Ellis
www.emsh.calarts.edu/~jim
www.emsh.calarts.edu/~jim
- RickW
- Member
- 141 posts
- Joined: July 2005
- Offline
- Jim Ellis 2001
- Member
- 60 posts
- Joined: July 2005
- Offline
That's IT!
That's what I'm after!
Maybe it was too basic…
still a newbie in many ways!
thanks so much Rick
That's what I'm after!
Maybe it was too basic…
still a newbie in many ways!
thanks so much Rick
Jim Ellis
www.emsh.calarts.edu/~jim
www.emsh.calarts.edu/~jim
- RickW
- Member
- 141 posts
- Joined: July 2005
- Offline
- Jim Ellis 2001
- Member
- 60 posts
- Joined: July 2005
- Offline
actually that doesn't work after all.
It's fine if there is only one point, or on a primitive basis.
However this won't approach won't work on mulitple points.
It's fine if there is only one point, or on a primitive basis.
However this won't approach won't work on mulitple points.
Jim Ellis
www.emsh.calarts.edu/~jim
www.emsh.calarts.edu/~jim
- Jim Ellis 2001
- Member
- 60 posts
- Joined: July 2005
- Offline
The basic idea is to make a copy of a piece of geometry (let's say a sphere),
thats points are getting positional information from another sphere,
but then that postional information is being offset in time.
This way the copy might have -15 fames in X and -10 frames in Y.
thats points are getting positional information from another sphere,
but then that postional information is being offset in time.
This way the copy might have -15 fames in X and -10 frames in Y.
Jim Ellis
www.emsh.calarts.edu/~jim
www.emsh.calarts.edu/~jim
- RickW
- Member
- 141 posts
- Joined: July 2005
- Offline
- Jim Ellis 2001
- Member
- 60 posts
- Joined: July 2005
- Offline
good Idea!
I'll give it a try, but I'm still kinda new to this fancy custom expression writing,
and this one seems like it might be a toughy. :?
Maybe I might mave more luck in Vops, not sure.
I just thought maybe there was a pretty simple way to do this.
Thanks again
I'll give it a try, but I'm still kinda new to this fancy custom expression writing,
and this one seems like it might be a toughy. :?
Maybe I might mave more luck in Vops, not sure.
I just thought maybe there was a pretty simple way to do this.
Thanks again
Jim Ellis
www.emsh.calarts.edu/~jim
www.emsh.calarts.edu/~jim
- Simon
- Member
- 2199 posts
- Joined: July 2005
- Online
It sounds to me like you should just use the geometry chop set to animated, that will let you read in all the positions of all your points over time, just follow that up with a lag chop or whatever and then read the result back into sops with a channel sop.
The trick is finding just the right hammer for every screw
- RickW
- Member
- 141 posts
- Joined: July 2005
- Offline
Simon
It sounds to me like you should just use the geometry chop set to animated, that will let you read in all the positions of all your points over time, just follow that up with a lag chop or whatever and then read the result back into sops with a channel sop.
I thought about this but the lag chop doesn't let you offset but exactly n frames. Does it?
In any case I did some digging around today and it seems to work fine with shift chop. Just be sure to set the units to Frames under the common tab of the shift chop.
/Rick
- Simon
- Member
- 2199 posts
- Joined: July 2005
- Online
- peship
- Member
- 31 posts
- Joined:
- Offline
Yesterday i dealth with very similar problem, and after struggling for a while with the geometry CHOP i talked with somebody at SESI and it appears that there is a refreshing problem with it - be aware.
All the time while working on that task i tought how good would be if the time in Houdini was not global, but like in Maya, everything can live in it's local time - each one ( the times ) defined by it's timeNode. Extracting dependencies like the one, Jim Ellis talked about, is not even considered as a task.
RFE - local time(s).
All the time while working on that task i tought how good would be if the time in Houdini was not global, but like in Maya, everything can live in it's local time - each one ( the times ) defined by it's timeNode. Extracting dependencies like the one, Jim Ellis talked about, is not even considered as a task.
RFE - local time(s).
- Antoine Durr
- Member
- 321 posts
- Joined: July 2005
- Offline
Jim Ellis 2001As soon as you have a time offset, you need to use one of a few approaches: write files out to disk, use a cache SOP, use a POPs simulation, or a CHOPs solution. Those are pretty much it. Here are a couple of options:
Hello All,
Need some help on this one to get me started.
Imagine you have a “line” sop with two points (point 0, and 1).
Point “0” get's grouped (lead group), as does point “1” (follow group).
Then a “Transform” sop has some “sin” animation on it's “tx” for point “0” (lead group).
What I want to be able to do is to take the value of point 0 (lead group),
and then apply that to point “1” (follow group).
Easy enough right?
Well I want to offset the reference in time.
In other words: I want Point 1 (follow group) to get the “tx” info of Point 0 (lead group) but have it's value not be the current value of point 0 (lead group), but instead have it be the value of what happened 15 frames ago.
I know that there is the “trail” sop, but this won't worlk for my purposes.
I think the solution must involve the Cache sop some how…
but I'm not sure.
Any ideas?
Thanks
Jim
1) write files out to disk; use a file SOP with a stamp() function as the frame number to read, and then in the copy SOP (where stamping is done), set the stamp parameter to read the desired frame.
2) cache SOP is fairly simple, as long as you rember that it cooks the current frame, then current-1, current-2, and so on, so simulations upstream would need to be written to disk first.
BTW, with your description, one trick is to animate just a single point, and then cache SOP that, and connect it after the fact.
- Jim Ellis 2001
- Member
- 60 posts
- Joined: July 2005
- Offline
thanks all for your comments and help!
I'm going to give this one another try later in the week…
see what happens.
What Peship described is really closest to what I'm after.
This notion of Local times.
The means to have “Local Times” be fluid,
and affected by other objects/channels/etc..
Very powerful in combination with Houdini's proceduralism.
This ends up being along the lines of other constant pursuit: “Dark Matter”.
Yes there is Meta, Cookies, Grouping, Delete, and Trims…
but always searching for more methods… but I digress.
I know that there are many ways to skin this cat,
and all of your suggestions are wonderful.
Just would really like to be able to “slide around” time of the reference object with some easy expression.
I thought before of the GEO chop and the Shift chop…
which I think is the way I'll end up going…
that and explore more with the Cache sop.
thanks again
Jim
I'm going to give this one another try later in the week…
see what happens.
What Peship described is really closest to what I'm after.
This notion of Local times.
The means to have “Local Times” be fluid,
and affected by other objects/channels/etc..
Very powerful in combination with Houdini's proceduralism.
This ends up being along the lines of other constant pursuit: “Dark Matter”.
Yes there is Meta, Cookies, Grouping, Delete, and Trims…
but always searching for more methods… but I digress.
I know that there are many ways to skin this cat,
and all of your suggestions are wonderful.
Just would really like to be able to “slide around” time of the reference object with some easy expression.
I thought before of the GEO chop and the Shift chop…
which I think is the way I'll end up going…
that and explore more with the Cache sop.
thanks again
Jim
Jim Ellis
www.emsh.calarts.edu/~jim
www.emsh.calarts.edu/~jim
- Ondrej
- Staff
- 1072 posts
- Joined: July 2005
- Offline
Antoine gives a very complete overview of how to approach problems of this nature.
To the best of my knowledge, the cache SOP cooks forward in time and should cache upstream simulations correctly. Though I am not willing to claim that's always been the case.
Antoine Durr
2) cache SOP is fairly simple, as long as you rember that it cooks the current frame, then current-1, current-2, and so on, so simulations upstream would need to be written to disk first.
To the best of my knowledge, the cache SOP cooks forward in time and should cache upstream simulations correctly. Though I am not willing to claim that's always been the case.
- Antoine Durr
- Member
- 321 posts
- Joined: July 2005
- Offline
Ondrej
Antoine gives a very complete overview of how to approach problems of this nature.Antoine Durr
2) cache SOP is fairly simple, as long as you rember that it cooks the current frame, then current-1, current-2, and so on, so simulations upstream would need to be written to disk first.
To the best of my knowledge, the cache SOP cooks forward in time and should cache upstream simulations correctly. Though I am not willing to claim that's always been the case.
Oops, you're right! I was confusing it with the trail SOP (which is another way to get geometry from previous frames).
– Antoine
-
- Quick Links