Thursday, June 14, 2012

Alice Daily Project Instructions

Alice can be REALLY fun ... as well as very tedious. Because of this, we know that it is going to be difficult to show you all of the possibilities that Alice holds for creating animations and games. We would like you to have as much time as possible to work on your individual Alice projects, so we have posted the instructions for the daily Alice project here. Within this post you will find the steps for creating the "Egypt" Alice project that we will be adding components to daily. We will work through these instructions with you in class for about 45 minutes to an hour each morning, and then we will let you work for the rest of the 30-45 minutes on your own Alice projects. It is your responsibility to finish the rest of the daily instructions on your own before the start of the next day, so that you will be ready to proceed and following along with the lessons that we will be giving.


************************************************************************************************************
Day 4 (Friday): Functions & Conditionals



Open Alice, Close welcome screen
Click ‘File’ → Open world → egyptProject → Click ‘Open’

Let’s begin by making the laser beams we created yesterday hit the mummy …


Object tree → World → create new method → name: my fifth method

In 'myfirstmethod':
 
Methods tab → Drag in ‘myfifthmethod’ to be last instruction 



We want the Pharaoh to be facing the mummy and the mummy to look aggressive when we view this scene. Lets make methods for this!

Object tree → Mummy → create new method → name: aggressive1 method

Click ‘Add objects’ → Use object controls to lift Pyramid up so that you can see the mummy → Click ‘Done’

First we are going to make the Mummy’s arms move ... We need to get closer to the mummy so that we can see him. Navigate through the world so that you are close to the mummy.
Object tree --> Mummy --> Properties tab → capture pose → name: standing

Right click on the following pieces of the Mummy to do the following. He will change positions in the world. You are NOT dragging blocks into any methods to do this.
Right click on Mummy.right forearm → turn backward → 0.15 revolutions
Right click on Mummy.right arm → turn backward → 0.05 revolutions
Object tree --> Mummy --> Properties tab → capture pose → pose1
Return mummy to standing pose … To do this, do the following :
Object tree → Mummy
Right click on Mummy → methods → set pose to → standing

Right click on Mummy.left forearm → turn backward → 0.15 revolutions
Right click on Mummy.left arm → turn backward → 0.05 revolutions
Object tree --> Mummy --> Properties tab → capture pose → pose2

Return mummy to standing pose ... To do this, do the following:
Object tree → Mummy
Right click on Mummy → methods → set pose to → standing
In ‘aggressive1’ method
Drag in ‘Loop’ → 4 times:
Drag ‘mummy set pose to’ → pose1 → 0.5 s
Drag ‘mummy set pose to’ → pose2 → 0.5 s

In ‘myfifth method':
Set vehicle of Mummy back to entireWorld → 0 seconds
(Properties tab → drag ‘vehicle’ into method → select entireWorld)

Object tree → Pharaoh
Drag ‘Pharaoh turn’ → left → ½ revolution → 0 seconds

Object tree → Mummy
Methods tab → drag ‘aggressive1 method ’ into my fifth method

Object tree → Mummy → create new method → name: aggressive2 method

Now we are going to make the Mummy’s body move...

Drag in ‘Loop’ → 4 times:
                          Drag ‘mummy roll’ → left → 0.03 revolutions → 0.25 s into method
                          Drag ‘mummy roll’ → right → 0.06 revolutions → 0.25 s into method
                          Drag ‘mummy roll’ → left → 0.03 revolutions → 0.25 s into method

            In ‘myfifth method
              Drag ‘Do together’
              Object tree --> Mummy --> Methods tab
                        Drag ‘aggressive1’ & ‘aggressive2’ methods into ‘Do together’
              Drag ‘Do in order’ inside ‘Do together’
              Drag wait → 2 seconds into 'Do in order'
              Object tree → vehicle cylinder
              Drag ‘cylinder move to’ → Mummy → entireUpperBody → 2 seconds inside 'Do in order'

Save your project! 

Now we want to make the mummy explode when the laser hits him. To do this, we need to know when the laser is close to the mummy. We need a function and a condition to test this …

In ‘myfifth method’:
     Drag ‘If-Else’ → true
     Object tree → vehicle cylinder --> Functions tab
          Drag ‘cylinder is within threshold’ to replace ‘true’ 
          Select 1 meter → Mummy → entireUpperBody
     Drag ‘Do together’ inside ‘if’
          In 'Do together', Set ALL cylinders’ opacity to 0% → 0 seconds 
          (To do this ... Properties → Drag ‘opacity’ into ‘Do together’ → select 0%) 

Object tree → Mummy → create new method → name: explode
Drag ‘explode’ block inside if statement in ‘my fifth method', so that it is the last instruction in the if statement

In ‘explode’ method: 
     Drag ‘Do together’ into method
     
     In 'Do together':
          Drag ‘Mummy.neck move’ → up → 10 meters
          Drag ‘Mummy.right arm move’ → right → 10 meters
          Drag ‘Mummy.left arm move’ → left → 10 meters 

          Drag ‘Do together’ into method; place AFTER first ‘Do together’: 

     In 'Do together':
          Drag ‘Mummy.upper body roll’ → left → ¼ revolution
          Drag ‘Mummy.upper body move’ → down → 1.1 meters
          Drag ‘Mummy.left leg turn’ → backward → ¼ revolution
          Drag ‘Mummy.left leg move’ → down → 1.1 meters 
          Drag ‘Mummy.right leg turn’ → forward → ¼ revolution
          Drag ‘Mummy.right leg move’ → down → 1.1 meters 

Click ‘add objects’ → Special effects → fire → add instance to world
Move fire to where mummy explodes … Play animation and adjust if necessary
Click ‘Done’ & Save!!!

Object tree → fire → Properties tab → Opacity → 0%

In myfifthmethod:
     In ‘Do together’ inside if statement, set fire opacity to 60% → 0 seconds
     (To do this ... Properties tab → Drag ‘opacity’ → select 60% → 0 seconds)
     Drag ‘wait for 2 seconds’ after ‘explode’ block

     Drag in ‘Do together’
          Object tree --> Fire → Properties tab → Drag ‘opacity’ → 0%
          Object tree → Mummy → Properties tab → Drag ‘opacity’ → 0% 

     Object tree → Pharaoh
          Drag ‘Pharaoh say’ BEFORE ‘Do in order’
          Select Other → “Oh no! Someone, please help me!” → 3 seconds

     Click ‘add objects’ → Move Pyramid back down to ground level 

Click on ‘File’ → ‘Save World’
Click ‘Play’ 

Now we want Cleopatra to go to the Pharaoh …

Object tree → World → create new method → name: mysixthmethod

In ‘mysixth method’:
     Set Cleopatra’s pose to standing → 0 seconds
     (To do this ... Object tree → Cleopatra → Method tab → Drag ‘set pose to’ → standing)

     Drag ‘Cleopatra move toward’ → 18 meters → entirePharaoh → 0 seconds 
     Drag ‘Cleopatra turn’ → left → ¼ revolutions → 0 seconds 

     Object tree → World 
          Drag in 'universalWalk' → Get pieces for Cleopatra

     Object tree → Cleopatra
          Drag ‘Cleopatra turn’ → right → 0.15 revolutions → 0.5 seconds 

     Object tree → Pharaoh
          Drag ‘Pharoah say’ → “Thanks for saving me!” → 3 seconds

     Object tree → Cleopatra 
          Drag ‘Cleopatra say’ → “I’ll always be here to save the day!” → 3 seconds

In ‘myfirstmethod’
     Object tree --> World --> Methods tab
          Drag ‘mysixthmethod’ to be last instruction in method

Click on ‘File’ → ‘Save World’
Click ‘Play’ … May need to adjust Cleopatra so that she can be seen

Now, lets add some credits to our short animation!

Open Microsoft Paint

Choose background color, save to Desktop as “Credits.jpg”

In Alice …
Click on File → Make Billboard → Select image → Import
Drive camera to Billboard

You should stop when the only thing that you can see on your screen is the billboard (I.e. You will see only one color that takes up your entire screen)

Click on ‘add objects ‘ → place dummy camera → name: viewCredits 

In the Local gallery click on 3D text → “Created by: (Your name here)”

Manipulate text so that it is on Billboard → Click ‘Done’

In ‘myfirst method’:
     Object tree → Camera 
          Drag ‘camera set point of view’ → Dummy objects → viewCredits → 0 sec
          Note: This should be the last instruction in ‘myfirstmethod’

Click on ‘File’ → ‘Save World’
Click ‘Play’ 

Now let’s make the animation a little better …

  • We want the title to display before the talking starts, and then disappear when the talking begins 
     In ‘myfirstmethod’
          Wait 2 seconds before Pharaoh starts talking
          Turn title invisible → 2 seconds

  • We want the mummy chase scene to be faster! 
     Need to create new method for running
     Create new World method → name: Running
     Open pharaohWalk method
     Copy code and place inside Running method
     Enable ‘Do together’ code
     Change seconds to 0.15 instead of 0.5

     In ‘mysecondmethod’
          In loop, Replace pharaohWalk with Running method

  • Sounds! (Should be in folder on Desktop) 
     World → properties tab → Sounds → import sounds
 
     In ‘myfirstmethod’
          Do together: Pharaoh say Ahhh & scream sound 

     In ‘mythirdmethod’
          Do together: Cleopatra say Abra Cadabra & magic sound

     In ‘myfourthmethod’
          Do together: Laser sound and visibility 

     In ‘myfifthmethod’
          After mummy explode
               Do together:
                    Pharoah.upperBody.rightarm → turn backward → 0.4 revolutions → 0.5 s Repeat for left arm
                    Pharaoh woohoo sound
               Do together:
                    Pharoah.upperBody.rightarm → turn forward → 0.4 revolutions → 0.5 s Repeat for left arm

Click on ‘File’ → ‘Save World’
Click ‘Play’

No comments:

Post a Comment