re-timing CHOPs driven deformations

   5736   9   3
User Avatar
Member
33 posts
Joined: Oct. 2006
Offline
Hi all,

I've come into a bit of a problem with the beating mechanism for my heart model. I am using a heartbeat soundwave through CHOPs to drive the blend channel in a sequence blend SOP, essentially deforming the geometry between two states (attached image: file 3 is the bgeo of the heart). I started off using the magnet SOP with metaballs to do the deformation, but changed to the soft-transform SOP as it gave me better control for shaping the geometry. Everything works with the deformations.. my problem lies in the fact I want the soft-transformations to happen at different times (slightly after one another as the different areas of the heart expand/contract at different times).. at the moment they all happen at the same time. I have very little knowledge of expressions in general.. especially with regard to how I might delay the channel data feeding into the separate deformations (or its reaction to receiving that data) .

Anyone have any ideas? I wish I had more time to learn about expressions with regards to time, but my project due date is looming and I just don't have time to explore it. If anyone can set me off in the right direction I would be ever so grateful.

Thanks for your time ladies and gents.

Cheers,

srgb

Attachments:
blend_sequence_node_tree.png (7.0 KB)

Quality Assurance
The Foundry Visionmongers Ltd.
User Avatar
Member
1390 posts
Joined: July 2005
Offline
Both ch() and chop() expressions have their versions able to use time or frame as a variable!
Just check: chf() cht() and chopf(), chopt(), chopi()!

So for example:
if
chop(“/chop/heartbit/chan1”)
will evaluate at current frame then

chopf(“/chop/heartbit/chan1”, $F-1)
will evaluate at $F minus 1.
So finally:
chopf(“/chop/heartbit/chan1”, $F - opdigits(“.”) )
will evaluate your chop at a current frame minus a digit at the end of specific softTransform SOP. Nice, isn't it?

cheers,
sy.

PS Nice heart you have !
User Avatar
Member
33 posts
Joined: Oct. 2006
Offline
Wow! Thanks for the fast and detailed reply SYmek! I'll take a little time to unwrap what you have posted, but it looks great .

Thanks again.

Cheers,

srgb
Quality Assurance
The Foundry Visionmongers Ltd.
User Avatar
Member
1390 posts
Joined: July 2005
Offline
If you need some better control over varying in time in your animation I would consider to use LookUp CHOP and export one chop per every soft transform. You can use as index input in LookUp key framed channel (spare) so delays in soft transforms could change over time. Hurry up, slow down…
what seems to be (at the first glance) good for heart bit animation…

cheers,
sy.
User Avatar
Member
33 posts
Joined: Oct. 2006
Offline
Thanks for the suggestion SYmek!

I have no clue about the Lookup CHOP in terms of its use or capabilities, but I've stumbled across Jeff Wagner's blog tutorials that look into using it. I'll get stuck into those, and hopefully soon be able to put what you have suggested into practise.

Cheers,

srgb
Quality Assurance
The Foundry Visionmongers Ltd.
User Avatar
Member
33 posts
Joined: Oct. 2006
Offline
Hi SYmek,

I had a look at the Lookup CHOP tutorial stuff and its flying right over my head.. (might be that its late and I'm a little wired on coffee ..but its making me feel a little stupid right now.. I think I need much more time to examine it). I have decided to go back to your earlier suggestion.. but yet again, I feel foolish in having to ask where abouts I would enter the expression? (I'm a real newbie at all this unfortunately). Would I be looking to implement it at CHOP or SOP level? I do apologise for such lame questions, I truly wish I had more time to get to grips with this stuff.

Thanks for all your help,

srgb
Quality Assurance
The Foundry Visionmongers Ltd.
User Avatar
Member
537 posts
Joined: Dec. 2005
Offline
The first time I tried to observe what the lookup was donig I was like WHAT the *$(%$

But, then eventually it made sense and I realized how extensive lookups were used in just about everything (like photoshop curves, all kinds of timing stuff etc).

It's like making a zero-to-one gradient of the timeline and then saying, ok input 1, what part of input 2 should I read from … if the answer is say .3, it would read a sample from a third of the length in etc.

Here's a very simple example .. Try switching the values and changing the values in input 1 to see what happens.

Attachments:
simpleLookup.zip (3.3 KB)

User Avatar
Member
1390 posts
Joined: July 2005
Offline
here you go. I didn't elaborate heart bit as such. Just to show you these two methods. There is some mess inside CHOPS. Perhaps this should be cleaner.
Anyway the main difference in methods is that in lookup chop case it's easier to vary delay during time for one channel. In case of expression delay is constant (can be animated by referencing some keyframed ch() of course - but things will pretty fast go crazy and mess this way).

You could find a nice EKG in internet and recreate your heart bit according to it. My doctor used explained me what is all about (which pick responds to which part of heart). It think it's easy to find it in wiki . This could be really funny!

cheers,
sy.

Attachments:
heart_bit_delay.hipnc (188.8 KB)

User Avatar
Member
33 posts
Joined: Oct. 2006
Offline
Thank you both very much. The help is much appreciated.
Quality Assurance
The Foundry Visionmongers Ltd.
User Avatar
Member
33 posts
Joined: Oct. 2006
Offline
Ok, so there are a few things that I didn't know about the Sequence Blend SOP.. firstly, if you string together a set of ‘affector’ nodes (i.e. my soft-transform nodes) and then wire each of those individually into the sequence blend, the transformations happen one after the other, providing you with a delayed affect of sorts. At the same time you can have ‘affectors’ included in the node string for the overall ‘affector’ input of the sequence blend that don't have to be wired into the sequence blend individually.. which means that they will take place at the same time. With a little bit of elbow grease you can put together some pretty non-uniform-timing for a group of transformations. I have used wave data (a sine wave) in CHOPs to drie the blend channel.. and by multiplying the waveform with a math CHOP I can equal the number of operator inputs ('affector' inputs) for the sequence blend, and gain some pretty great control over the timing of the seperate transformations. Still going to look into the lookup CHOP though.. appears to be a very very powerful tool to have in ones arsenal.

Thanks for all the input everyone .

Cheers,

srgb

(I'll post a video after the project hand-in)
Quality Assurance
The Foundry Visionmongers Ltd.
  • Quick Links