PDA

View Full Version : Animating a flapping/flying book



DonJMyers
11-03-2017, 11:53 AM
I need to animate some magical, flapping, flying books just like in the open of the old TV show "Amazing Stories." Incidentally that was one of the first CGI show opens and cost a fortune at the time. Animators slept under their desks to make it. If they could I'm sure LW can now. The animators in the 1980s might have hand animated each page but I need a simpler, more automatic solution so that every time the front cover flaps the pages do their things.

138445


https://www.youtube.com/watch?v=VpeBGQ1S5t8

This is for a show on the CW network and the books that flap are much less energetic than the amazing stories ones which swing their covers very far.

As you can see by this screen grab I have correctly instanced and rigged the book so that when the front cover opens the back cover does too. Then the the "fat" solid pages on both sides morph out properly. But now I have to add single pages in the middle all flapping and can't just get away with morph targeted page "lumps" like the ones against the front and bakc covers. Single sheets have to move and flow.

138446

Using the radial instances of a single blank page I can get them to do the basic animation as long as they stay flat. Now I have to have them curve and bend properly and I am not sure how to do that. Cloth FX? Relativity morph? Inertia displacement sort of helped but not really.

Any suggestions on how to displace the pages to curve properly and not go through each other?

squarewulf
11-03-2017, 01:48 PM
What I would try is to animate one single page using bones with all the details you need like bendyness etc and bake that motion to a md file. Then make several duplicates of that page offset by the width of the pages and apply the morph file nodally and offset its animation per page, you could offset it using gradients and control the whole thing with a null. Still seems like a pain the *** but it might be worth a shot.

Ernest
11-03-2017, 01:49 PM
There's the ShiftKeys+ plugin
https://www.youtube.com/watch?time_continue=5&v=77tOFmtwFBg

RPSchmidt
11-03-2017, 02:21 PM
I would create an inner spine (like the curved inner portion pages where the pages are normally glued).

Then create a single page and use cloth dynamics on it.

Then try instancing the single page to the spine and see what happens.

Worst case scenario, all of the pages flap like the parent. But in your flying book scenario, the impact of the instanced pages hitting each other might give you the effect you are looking for.

Just my two cents without any actual testing.

DonJMyers
11-03-2017, 04:50 PM
I would create an inner spine (like the curved inner portion pages where the pages are normally glued).

Then create a single page and use cloth dynamics on it.

Then try instancing the single page to the spine and see what happens.

Worst case scenario, all of the pages flap like the parent. But in your flying book scenario, the impact of the instanced pages hitting each other might give you the effect you are looking for.

Just my two cents without any actual testing.

Are you talking about using wind or gravity to make the page turn/flop?

djwaterman
11-03-2017, 06:49 PM
I notice the middle pages move less than the outer ones, a sort of concertina effect, perhaps a weight fall off with each page having less weight than the one before, and somehow this influence plugged into some aspect of the animation.

erikals
11-03-2017, 06:52 PM
think i'd go with part move...
http://forums.newtek.com/showthread.php?154457-Part-Move-Really-Simple-Rotation-around-Normal

and maybe add softfx

Luc_Feri
11-04-2017, 08:25 AM
There is a way to get weight maps on 2 point poly chains. I would use 2 point poly chains, with a weight map and bullet physics. Imagen the polychains dangling and swinging like a rope, that bullet simulation could have some dampening applied to it on some axis or try and constrain it slightly, maybe apply some extra forces. I would bake out that small .mdd from the 2point poly chains and apply it to the pages of the book you had created with an .mdd link and probably loop it to create some motion.

Surrealist.
11-06-2017, 11:31 PM
You can analyze this scene. Take the concept and apply it as needed, if you like.

The book cover and pages are animated with bones using a fall off to have the pages automatically gradually fall to the center rather than follow the covers. Any configuration could be used here including more pages sticking to the cover or whatever you want to do with that concept.

The pages are weight mapped using the weights tool. Using the widget to create a linear gradient.

Flapping is done with one of the ahem... "oldest tricks in the book" using a world coordinates procedural displacement.

A weight map is used to limit the effect of the pages near the cover.

Another gradient weight map was made to additionally limit the procedural texture driving the flapping pages near the binding.

More displacement layers could be added for more effect and so on. Just a proof of concept if absolute reality is not needed.

Surrealist.
11-07-2017, 01:34 AM
Quick render of the test animation.


https://youtu.be/LDGbQUfY7aI

Luc_Feri
11-07-2017, 03:21 AM
Surrealist, no offense just feedback, that animation looks more like an accordion motion. As TD I send it back to you for further review. :D

erikals
11-07-2017, 04:33 PM
a good start imo.

add clothfx (or such) for further realism.

Surrealist.
11-07-2017, 05:08 PM
Thanks.

One of things I was trying to avoid was cloth.

By the way it is supper obvious that it looks like an accordion. One of the first things I noticed with this approach. But it is only a start. So I don't mind having that pointed out. Always good to have external input. Got me thinking further.


To break that up more and avoid dynamics I was thinking you could add more bones for the pages. Have them offset with an expression or a constraint.

And at the very least separate the pages by a child bone so you could animate the pages as a secondary motion to the cover.

One thing the OP seemed to want was the end pages seeming to stick to the cover.

Could do that as well or animate them separately or with some kind of offset expression or constraint.

So the coal for this rig was:

No dynamics.

3 controlers.

And everything else automated and real time.

An additional 2 controllers though for secondary motion on the pages would not be too much for the animation side and would be worth the extra time.

jeric_synergy
11-07-2017, 06:11 PM
Before I watched, I assumed the book would be open in the +Y direction.

FWIW, IMO there should be FAR fewer pages that stay "keel down": the accordion effect is that the pages all seem to be one stretchy thing. If they more obviously separated into two wings I think that effect would disappear.

I think this is only 2 iterations from being finished. Looks pretty good to me.

Surrealist.
11-07-2017, 07:06 PM
Yep. Spot on. And that was what I was talking about by adding more bones and also adding additional bones for secondary motion. Thanks for the feedback. Regardless of if the OP uses this, it was just a fun project. In fact I never do stuff in support unless it is something I want to experiment with. Just fun to do and learn from. :)

And by the way I may not do anything else with this. But it is there for another to play with if they want.

jeric_synergy
11-07-2017, 07:59 PM
Appreciated, Surrealist. I always thank my stars when users, conspicuously Monroe Poteet and xSwampyX, share entire Scenes. One really can't ask for more. :thumbsup:

I'm going to see if applying texture maps to the pages helps defeat "The Accordion Effect"-- w/o textures it's shading only, and that tends to blur.

MonroePoteet
11-07-2017, 08:21 PM
It's really, REALLY too bad that LW instancing doesn't implement Time Offset for anything but keyframes. Makes it relatively worthless, IMO.

Attached is a sample scene which uses a morph for the book cover, and instancing for the pages, using Equations on the MorphMixer percentage as well as Instancer's Radial Array parameters for Radius, Start Angle and End Angle. All of them are controlled using the FlappingControl Null. Raising the FlappingControl Null's Y position between 0.0 and 1.0 opens and closes the cover and spreads the instancer pages. The pages "flutter" using a moving Turbulence procedural on the base instancer object.

The problem is all the pages "flutter" identically. It'd look much better IMO if the pages didn't flutter identically. As well, there doesn't appear to be any simple way to put different page images per instance without a HUGE amount of work (i.e. manually construct each page image in an image editor, use a gradient based upon Instance ID). It'd sure be nice if there was access to the Position parameter of an Image layer, allowing each instance to offset differently into a composite set of page images.

In this scene there is still a little "bleed through" of the displaced pages when the book cover is spread completely (i.e. you can see the pages through the spine of the cover) - fine tuning the Radius equation and Y-offset of the instancer null would be needed.

A Modeler drawn curve was used with CurveToSpline for the book cover motion, with manually keyframed Banks and the Instancer null a child of the book cover.

Anyway, too much time spent trying to make it work well. Ah well.

138489

mTp

Surrealist.
11-07-2017, 08:26 PM
Cool man. Nice go!

If I get the itch I might modify my scene with some of the ideas I have.

jeric_synergy, you are welcome. Have fun!

jeric_synergy
11-08-2017, 12:42 AM
It's really, REALLY too bad that LW instancing doesn't implement Time Offset for anything but keyframes. Makes it relatively worthless, IMO.

Attached is a sample scene which uses a morph for the book cover, and instancing for the pages, using Equations on the MorphMixer percentage as well as Instancer's Radial Array parameters for Radius, Start Angle and End Angle. All of them are controlled using the FlappingControl Null. Raising the FlappingControl Null's Y position between 0.0 and 1.0 opens and closes the cover and spreads the instancer pages. The pages "flutter" using a moving Turbulence procedural on the base instancer object.

The problem is all the pages "flutter" identically. It'd look much better IMO if the pages didn't flutter identically. As well, there doesn't appear to be any simple way to put different page images per instance without a HUGE amount of work (i.e. manually construct each page image in an image editor, use a gradient based upon Instance ID). It'd sure be nice if there was access to the Position parameter of an Image layer, allowing each instance to offset differently into a composite set of page images. ::SNIP::

Anyway, too much time spent trying to make it work well. Ah well.

138489

mTp
Heroic work! Above and beyond, man! :bowdown:

One question: I thought it was possible using instance index numbers to apply different images to instances. I thought that had been addressed long ago, to be honest.

Or maybe it was that someone was using one GIANT image and using the instance # to offset the image on any given instance: ie, there was only one image, but it was scooted about on the surface of the instances to give the illusion of many different images. IIRC it was either pages, as here, or TV screens.

erikals
11-08-2017, 03:02 AM
Anyway, too much time spent trying to make it work well. Ah well.

mTp

Nice goin' MonroePoteet  :)


https://i.imgur.com/GHiridu.gif

Luc_Feri
11-08-2017, 06:50 AM
It was a decent start Surrealist, just needed some tweaks which you had already recognised.

Great work MonroePoteet. I reckon if you could maybe double up on the number of pages or a few more that would seal the deal!!! I really liked the pump and then glide motion with the animation too, looks good. :D

Nice to see the OP come on and thank you for your time and effort and he was online the other day after, as I had noticed. I had took the time as well to try and help. :rolleyes:

I'm done helping anyone on here again, ever, besides Houdini 16.5 has landed.

Marander
11-08-2017, 07:57 AM
Edit : ignore - deleted my post

raymondtrace
11-08-2017, 09:29 AM
Nice to see the OP come on and thank you...

Forum discussion of technique benefits everyone. It doesn't matter to me if the OP has not had time to return to this topic.

I know of at least one person that is grateful for the discussion.

RPSchmidt
11-08-2017, 10:39 AM
Are you talking about using wind or gravity to make the page turn/flop?

I would use gravity, but it could be a combination.

If you give your book a small but sharp up and down on the Y axis while it flies, gravity will force the pages up and down... as they go up and fall, the bounce will help force them to impact each other. Those impacts might offset the appearance that all of their motion is the same.

DonJMyers
11-08-2017, 11:52 AM
Thanks so much I will check out how you did that even if it does look like an accordion. The book has to open and flip pages from back to front like a deck of cards shuffling. So I am getting away (just barely) with animating instances.

- - - Updated - - -


It's really, REALLY too bad that LW instancing doesn't implement Time Offset for anything but keyframes. Makes it relatively worthless, IMO.

That would explain why I couldn't get that to work even when I set the instancing setting to "parent" instead of "world!"

Surrealist.
11-08-2017, 05:56 PM
Don,

In the graph editor there is a channel follower. For me the constraint in motion options did not seem to work as expected.

But you can use it to offset motions by a number of frames. Used on the rotation of several bones you could get that card deck effect by only controlling one bone.

The other thing missing is the effect of forces which can be simulated with anticipation and drag.

That would require a more complex rig.

But more predictable than dynamics. Imho.

DonJMyers
11-09-2017, 10:11 AM
Don,

In the graph editor there is a channel follower..

Yes I am using channel follower to rig up the book so both sides flap and the pages on each side morph in tandem. Very handy for the basic animation but they want the books upright and flapping like butterflies while the pages flip rapidly from back to front.

People have some great, kind of complicated, ideas about how to handle an upside down book flapping. But this is a right side up book shuffling pages like cards. It is really difficult even compared to bird flapping type books because lots of pages have to flip and then end up on the other side. The good news is that my original idea with instances is turning out pretty well even though they will need to be shoved around in the composite to make the flippy pages line up with the book. In fact there are five different composite layers just to make the book open, flip pages and flap.

138498

The image is washed out because I have not applied the color LUT (look up table) this TV program uses to the LW renders.

Half way through the comp layers have to be swapped in order for some pages to appear atop others. And there is the constant problem with "going through" things that CGI has which makes scenes like this so hard.

Also, there is a problem when I shove too many instances close together. Page edges render too dark or too light when they get too close together and radiosity goes nuts. I set it at 5 bounces and I RARELY ever use more than two. But you have to to get the rays to bounce deep between the pages. I have tried switching light types, increasing the light and texture rendering quality, increasing the radiosity quality, and nothing seems to be helping.

138499

Fortunately it can be fixed in the composite. Also fortunately, the show I am working on for the CW is an "anything for a joke" show where too perfect photoreal CGI would take away the humor and make the show feel pretentious.

I've attached the basic pageflipped via instances scene if anyone wants to play with why the radiosity screws up the page lighting when the instances get VERY close together.

The included object also has a nodal texture which randomly applies one of four different pages to each instanced page.

jeric_synergy
11-09-2017, 12:42 PM
Just as an aside: this shot could be one where that bookshelf plugin Sensei is working on would be convenient.

DonJMyers
11-28-2017, 03:21 PM
For folks who would like to see how the animation turned out here is a link to JANE THE VIRGIN show 406:

http://www.cwtv.com/shows/jane-the-virgin/chapter-seventy/?play=c9e8ebbb-b0aa-4964-9813-a4fa6e91eedd

The sequence happens at about the two minute mark.

erikals
11-28-2017, 05:41 PM
hm, i get a "404" on that page...

DonJMyers
11-28-2017, 06:42 PM
hm, i get a "404" on that page...


It worked for me but I am in the USA. Depending on where you are located you might not be allowed to view it. They have a distribution deal with netflex in countries that are NOT the US.

erikals
11-28-2017, 07:15 PM
yep, i had a feeling it was something like that... oh well. such it is to live in snowy Norway :) :D

probiner
11-29-2017, 03:37 PM
Inspiraton. Did it in XSI.
http://i.imgur.com/eNts72w.gif

jeric_synergy
12-01-2017, 09:26 AM
Why do the pages get thicker at the edges?

probiner
12-04-2017, 05:07 AM
Works with the texture applied and it was for a stylized show.