Introduction to Alice: Manipulating Objects, Methods, and Creating a Dance Routine

Objectives:
Students will identify and use methods in programming movements for 3D objects in Alice.
Students will create a list of new methods for an Alice object

Concepts:
Class
Object
Methods

Materials:
Computer for each student with Alice installed
Internet access

Description of Alice:

Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice uses 3D graphics and a drag-and-drop interface to facilitate a more engaging, less frustrating first programming experience.  (From http://www.alice.org)

Alice is like Scratch for a 3 Dimensional World.  In Scratch we assembled scriptes to control movement and costumes for Sprites.  In Alice we work with characters called Classes and Objects.  The programmer puts together strings of commands to create "Methods."  These methods make the objects move about the world. 

A significant difference between Alice and Scratch lies in the nature of Sprites vs. Objects.  An object in Alice can have multiple parts or sections. 

Example:

Object
Parts of the object
Skateboard: 
Board
Front Axel
Left Front Wheel
Right Front Wheel
Back Axel
Left Back Wheel
Left Right Wheel
Chicken
Body
Left Leg
Left Foot
Right Leg
Right Foot
Neck
Head

Each component of the Class can have scripts that make it move through 3 Dimensional space.


Overview of Alice User Interface:



Alice Concepts: Using Pose to set Object positions

Pose is a powerful function that allows the programmer to preset arms, legs, head, and other parts of Alice objects.  Think of "Pose" like a starting position for a dance.

An Alice object can move from one Pose to another with only one line of programming or one command.  This makes coding complicated movements much easier.

Using the "Capture Pose" function - the programmer can present several Poses or positions for their characters.

Examples of Pose include:
1. Different Dance or body positions
    -> Hands Up
    -> Sitting
    -> Standing
    -> Reaching

2. Different looks on non human objects
    -> Together
    -> Exploded (Falling Apart)


Lesson 1: Importing a Character and Capturing Poses:

1. Transfer the Alice folder to your computer.  You will need at least 512 MB of ram to run Alice successfully. 

2.  Open Alice.  Select a background.

3.  Click the Green "Add Objects" button.  Left click on "People".



4.  Select the Girl.  (You may choose another "human" character - but be aware that some are harder to pose than others.



5.  Readjust camera by clicking on the arrows below the world so girl is centered in shot



6.  Click on the girl in the object tree.



7.  Click the properties tab of the girl.



8.  Click "capture pose" and name it "Arms Out"



9.  To body parts around - select "affect subparts" underneath the "Tumble Objects" icon.



10.  Click the "+" sign next to the girl on the object tree.  Notice how the parts of the body belong to the girl object.



11.  Use the "Tumble Objects" icons and select the face with three circle arrows.  Click and drag the left arm so it faces forward.



12.  Uncheck affect subparts.



13.  Click the rotate icon.  (The head with the circle arrow underneath)



14.  Rotate the girl so you can see her left arm.



15.  Check "affect subparts" again and position the arms so they are folded.



16.  Click the "girl" on the object tree (make sure it is the "girl" and not one of the subparts.)



17.  Click the properties tab and click "capture pose" and name the pose "ArmsFolded"



18.  To test your poses:  Right click on "girl" on object tree. 
        a.  Select "method->set pose->girl.ArmsOut" to change to ArmsOut pose. 
        b.  Select "method->set pose->girl.ArmsFolded" to change to ArmsFolded pose.



19.  Set the pose to "ArmsOut"



20.  Repeat steps for moving body parts to make a pose for "Left Arm Swing"



21.  Click on girl on object tree.  Click "capture pose" and name it "LeftArmSwing."

22.  Right click on girl, select "method->set pose->girl.ArmsOut" to change to ArmsOut pose.

23.  Make the "Right Arm Swing" pose using the steps to move body parts.



24.  Click on girl on object tree.  Click "capture pose" and name it "RightArmSwing."

25.  Your 4 girl poses should look like this:





Lesson 2:  Creating Methods for A and B Sections of Dance.

1.  Zoom camera out and center the girl in the frame.  Click the green "DONE" button.



2.  Click the girl on the object tree.  Click the methods tab on the girl.



3.  Click "create new method" and name the method "ASection"



4.  We will now create the movements for the "ASection" method.  Click the "left leg" on the object tree and drag the "turn" block to the ASection Method.  Select "backward" and "other" to and type "0.125" revolutions.



5.  Click the "left leg->lower left leg" on the object tree.  Drag the "turn" block to the ASection method.  Select "forward" and "0.125" revolutions.



6.  To test your movements:
      a.  Click the girl on the object tree.
      b.  Click the "world.my first method" tab
      c.  Drag a "Set Pose" block into "world.my first method"  Select "girl.ArmsFolded"

     

      d.  Drag the method "ASection" into the "world.my first method tab."

     

      e.  Click "Play."  Your girl should move her leg (not quite correctly yet!)
      f.  Close the window to go back to your Alice File.

7.  Lets make her leg do those moves together at the same time.  Drag a "Do Together" block on the "ASection" method.



8.  Put the Left Leg Turn and the Lower Left Leg Turn blocks inside the "Do Together."



9.  Click "Play" again and watch the move.  The Left leg should move up properly. 

10.  To move the leg back down, add the following blocks:



11.  Put another "Do In Order" block below the Leg blocks.



12.  Put the two "Do Together's" inside the "Do In Order"



13.  Click play and test your Dancer.

14.  Now add the methods for the Right Leg underneath the Left Leg methods in "ASection."



15.  Put the Right Leg Methods inside the "Do In Order" with the Left Leg



16.  Click "Play" to test the Dancer.

17.  We will now make the girl move up and down while she kicks her legs.  Click on the "girl" on the object tree and drag a "move" block above the leg blocks on "ASection" method.  Select "up" and "1 meter".



18.  Put another move block below the "up" and select "down" and "1 meter."



19.  Put a "Do In Order" block about the "move up" and "move down."  Put the two move blocks inside the "Do In Order."



20.  Put another "Do Together" on top of the "move up and down" blocks.



21.  Add a "Loop" block and select 2 times.



22. Put the "Do In Order" for the "moves" inside the "Loop 2 times."  Put the Jump, Left Leg, and Right Leg Moves into the "Do Together."



23.  Click "Play" and test your dancer!

24.  Go to the "world.my first method" tab and make the "ASection" loop two times.



25.  We now need to create the BSection Method.  Click on the "girl" on the object tree and click "create new method."  Name the method "BSection."



26.  Make these methods in the BSection so the girl can "Elbow Swing."  Notice I put the entire method here for you to recreate.



27.  Add the "BSection" method "Loop 2 times" to "world.my first method."



28.  Click "Play" and watch the dance!


Lesson 3:  Adding Events so User can direct the action

1.  We will add "Events" so when the user presses the 1 key, the dance will do the ASection.  The 2 key will do the BSection.

2.  Click "create new event" and select "when a key is typed."



3.  Select the "1" key and "girl->ASection."



4.  Add the "BSection" event to the 2 key.  It should look like this:



5.  Click "Play" and let the dancer finish the dance.  Then press the "1" and "2" keys to move the dancer.

Lesson 4: Create Your Own Dance (Sample Assignement after this lesson)


Create a Dance Program that allows the user to control at least 6 specific movements with key commands.  Use music and a lighting to make things interesting.  You may use any animal or human as the dancer.  (The Object Class must have arms, legs, and head parts for dancing.)  You may continue to use the "girl" dancer from this lesson.

Requirements:

1. Select an Object and create at least 5 different methods or poses for dance moves.
2. Assign key controls to each method so the user can type key inputs to make the object dance.
3. Add background music to the program. 
4. Design a visually interesting set for the dancer to perform on.

Extras:
1. Create methods allows the user to click on an object (button, speaker, . . .) and start the dancer dancing automatically.
2. Add moving lighting effects, fog, and colors.
Hint: Import a class Spotlight and aim light at dancer.  Create methods to randomly move the Spotlight.

Rubric:


Does Not Meet the Standard
Meets the Standard
Exceeds the Standard
Use of Methods
Less than 5 Methods for Dance moves
Between 5 and 7 Methods for Dance moves. 
More than 7 methods of Dance moves.
Use of If-Else, Loops, Do Together, and Key Commands
Does not use If-Else, Loops, Do Together, or Key Commands.
Uses at least 1 of each type.
Multiple and correct usage of If-Else, Loops, Do Together, and Key Commands.
Functionality of Program
Does not work.  No moves or music.
Program allows user to have key inputs to make the object dance.  Music plays.  Music is properly cited in notes or comments.
Program functions with user input and a switch to start and stop automatic dancing.
Visual Layout
No use of other objects, colors, or lighting.
Some sense of setting and lighting used.
Tasteful use of lighting, spotlights, fog, and colors to set the scene.