There is a helper script included in the system to help make animating books using the Page mesh objects and the Page Flip modifiers. The video guide is at the bottom of the page so press play and follow along in Unity. It will first show you how to make a turning page then move on to building a book. This will involve you making 5 page meshes, 3 for the turning pages of the book and 2 for the covers. It will show how to group the objects under a main parent with helper objects for pivot points. Then by attaching the Mega Book component and filling in the params you will be left with a book that simply by changing one value will open the book turn all the pages, automatically update the page textures and then finally close the book. You have control over various params such as the number of pages, the texture for each page and vertical spacing.
The way the script works is by figuring out from the Book Alpha value the state of the book ie which page should be visible and how far turned it should be, it will then apply the correct page textures to the 3 pages to make it seem like the book is open at the correct point and apply the right turn value to the page flip modifiers. If the book is near the start of end it will rotate the front or back covers as needed. This is a basic system and it would be easy enough for someone with scripting knowledge to expand and improve it.
Book Params
Front
The object that will be used as the front cover.
Back
The object that will be used as the back cover.
Page 1
The object that will be used as the first visible page of the book, this object and the other page objects should have a working Page Flip effect applied already.
Page 2
The object that will be used as the second visible page.
Page 3
The object that be used as the third visible page of the book.
Pages
This is a list of the textures that make up the book, they should be in order and should be at least 6 and be an even number. Each pair make up a front and back of a page.
Book Alpha
Value from 0 to 1 for how far through the book to show, 0 is an unopened book, 0.5 is a book open half way through and 1 is a fully read book showing the back.
Cover Gap
Gap between the front and back covers.
Page Space
Gap between the pages.
MegaBook Classs
{
public GameObject front;
public GameObject back;
public GameObject page1;
public GameObject page2;
public GameObject page3;
public List<Texture> pages;
public float bookalpha;
public float covergap;
public float pagespace;
}
Interacting with Book
If you want to add some form of interaction to your books you can use some simple code like the snippet below to link some form of input to the book alpha value in the script to control the page turn, so this could be mouse movement, key presses or a GUI element etc.
public float keysensi = 1.0f;
// Call this from Update()
void Interactive()
{
// Mouse version
bookalpha += Input.GetAxis("Mouse X") * dragsensi;
bookalpha = Mathf.Clamp(bookalpha, 0.0f, 100.0f);
// Keyboard version
bookalpha += Input.GetKey(KeyCode.A) * keysensi;
bookalpha += Input.GetKey(KeyCode.D) * keysensi;
bookalpha = Mathf.Clamp(bookalpha, 0.0f, 100.0f);
}
If you are using Unity 3.5 and notice a slight glitch in the texture swaps on turning pages then you should turn on ‘Late Update’ on the Modify Object component.
Video Guide
You must be logged in to post a comment.
5 Comments
19 February 12 at 3:11pm
1
Hi, I was wondering if your flip book does work with touch gestures? Not just pushing on buttons, but turn pages with fingers and zoom in to pages to read content. Also can a book be loaded from XML? Thanks Greg
19 February 12 at 3:35pm
2
Hi Greg The Book script is provided as an example of scripting the MegaFier system to do something more advanced than the basic modifier effects so it is not totally feature rich, I do plan on extending the system to a vastly improved one when I get MegaShapes and MegaMesh out, but until then all you need to do is link a gesture input to the bookalpha value in the script, so for example I have added a snippet of code above that shows how the mouse or keys can be linked to the book alpha value to interact with the book. So that could be extended easily to take a left or right gesture and add an appropriate amount to book alpha. Chris
19 February 12 at 8:39pm
3
Hi Chris, Great info, thanks a lot for your prompt response! Looking forward to see how it will turn out! Greg
03 December 12 at 9:37am
4
can you share your project Chris?
03 December 12 at 10:18am
5
There really isn't anything to share the project was created as a tutorial for users to recreate so it was deleted after the video was made. The video shows all the steps needed to recreate the scene. If I can find a few minutes then I will see about making a scene in the package with a book in it.