enzym Posted March 16, 2012 Share Posted March 16, 2012 Dear Od Gank, I am thinking to setup a procedural animation that is based on frame range. I am not 100% familiar with how Houdini animation or CHOP can manipulate SOP. I work mostly on SOP. So far, the most procedural animation I did is by using POPNET, just for Particle to be born in sequential, affecting alpha and color and size. Now, I want to do something that is slightly different. Say, I have a sphere that is keyframed, so I think I have a CHOP curve. I have many other spheres. I want the animation that is controlled by arbitrary value I created myself. Instead of time. So it is a little bit like Set Driven Key actually. But the animation itself should be independent and non-linear (when triggered, it continue to play). If each sphere for example has random value: 15, 60, 39, 77, 23, 93, 129. I want to set it that when time frame is running, each animation (same CHOP) will be triggered. Is this something that is difficult to do in Houdini? Thank you. Quote Link to comment Share on other sites More sharing options...
gui Posted March 16, 2012 Share Posted March 16, 2012 I don't think it's difficult Jimmy, chops are beautiful! But I didn't understood exactly what you want. It's just a random offset in time for each sphere or you just want to use the linear animation to trigger a completely random movement for each sphere (do you want to chops creat a random movement for them?)? These are the two options that came to my mind when you post that. The two are pretty easy to do. Let me understand what you want to help you properly. Bye! Quote Link to comment Share on other sites More sharing options...
enzym Posted March 17, 2012 Author Share Posted March 17, 2012 > I don't think it's difficult Jimmy, chops are beautiful! Yes, I think I have yet to understand the beauty of CHOP :] I am just started to get into it. Normally I just do procedural modeling, still basic. This is probably my first procedural animation task. > But I didn't understood exactly what you want. It's just a random offset in time for each sphere or you just want to use the linear animation to trigger a completely random movement for each sphere (do you want to chops creat a random movement for them?)? These are the two options that came to my mind when you post that. The two are pretty easy to do. Not just random offset, it needs to be triggered by data. Yes, it will be using linear animation to trigger some movement. This is for infographic project I am pitching on. Below is one good example, we tried to recreate the animation that is similar like below, procedurally, based on real data. You see that there is two important elements shown on the video: 1. 24 hours running. 2. When earthquakes happened, it triggers Circle animation (size magnitude (scale of circle), alpha, color) I successfully create that animation, but for that I am simply using POPNET to do the animation for me (including scale, alpha, color change). I did not have real control of actual animation. I want a little more control with the size, alpha, color. For this, I use TableImport SOP to load the data. So that part is taken care of. I could put points in place using TableImport (X, Y, Z) positions for circles and import all kinds of values into many parameters. TableImport SOP is pretty awesome node, I found that Lat/Long can be translated into real Spherical dots and then Time/Date can be translated into seconds data --> can be used for the trigger. During a simple test, I just fake the time as 12 month of the year, and separately from the actual animation of circles. It is quite possible that time will be more detailed where each month divided into days, etc. So I need a real connection of the actual TIME to TRIGGER animation of many circles in sequence. Some kind of better setup where TIME or whatever values will trigger some animation in order. I consulted few other Houdini geniuses outside the forum, and the answer I am getting: Switch SOP and CHOP. I got one really good example from Robert East, all done inside SOP by using switch to trigger on and off. Stephen Tucker also gave more directions. Anyhow, I should not be asking for full answer, just wondering for simple examples where Houdini can trigger a sequence of animation based on some kind of time-frame, whether it will be using linear() or manually scrubbed. Let me re-phrase again the question: 1. There is some kind of timeframe value that goes from 0 - 100 (or end of animation). 2. There is a sequence of animation that will be triggered. For this we are thinking to animate the scale of sphere. The animation might be from CHOP (just like Set Driven Key). Logically if I try to do this in Maya or Blender, using Set Driven Key or Drivers, it is in the line of this: 1. A master floating value is running, not necessary $TIME. 2. When value reach certain number, it should trigger the animation of certain Sphere that is holding that value. Like I said earlier, if each sphere has random value: 46, 83. 120 or whatever, when the value is called by master, that sphere should perform same CHOP animation (animation curve?). It would be nice if the example is showing how CHOP can drive color ramp changing, scale changing, and alpha changing. Hopefully I didn't make it sound too complicated now. This is probably the basis of many typical procedural animation, but the most simple one. I could imagine a different scenario for procedurally animating Protein molecular data in which time and value and animation are already provided. Anyhow, before going that far, what I really want to know is to know how Linear() can trigger "Set Driven Key" in Houdini, basically. - Jimmy Quote Link to comment Share on other sites More sharing options...
gui Posted March 19, 2012 Share Posted March 19, 2012 Hello again Jimmy, I made an hip file yesterday but I forgot in my girlfriend's iMac, so, if the steps I will tell you don't help, just ask and I will make another- I'm really short of time this week. The node that will do what you want is "lookup" chop. It takes the time an animation goes from 0 to 1 and triggers another animation during that time (the 0 from de first is the beginning of the second curve, the 1 from the first is the end of the second curve) 1. Generating the linear anim to drive the animation of the parameters. You can either import them from sops or other place, or generate them inside chops. If all have the same length (in time), its easier: just generate the number of channels you need (use a channel chop, and in the channel name, use: "channel_name[1-x]", where "x" represents the number of channels you need) - you have to generate the anim by using keyframes in the float value. 2. If you need to offset the channels by an "y" amount, use the "shift" chop and in the offset parameter, put an expression to import the offsets relative to each channel. 3. Than you have your linear animation to drive your "real" animation. If all have the same animation, you can import it from sops, or generate them in chops again. 4. Plug the linear anim in the first input of the "lookup" chop, and the "real" animation in the second. (make sure the numbers of channels match in the first and second inputs) 5. Now you will see in the motion view the time each animation happens. Then use a channel sop to import the channels. I don't know how you set up the project, but if you used the copy sop, you will have to stamp the animation in each copy. Just create an stamp value in the copy sop and use for the value the expression chopcf. This expression evaluates a chop channel by the given time. So you use "$FF" for the time and a number that represents the number of each channel. You will have to use a transform sop before the copy to stamp the channels from chops. ---- I hope it was not (very) confusing. I don't know the amount of knowledge you have in houdini, and if you know how to use copy stamping in it. But again, the key point is the "lookup" chop, ok! Quote Link to comment Share on other sites More sharing options...
enzym Posted March 23, 2012 Author Share Posted March 23, 2012 Thanks a lot for the direction, Gui~! I think that's exactly what I need. I will check for "Look Up". - J Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.