2. 入門講座 - 5. 「SnowFall」

 今回は雪が降るムービーを作成しながら、ムービークリップについて勉強しましょう。

2- 5- 0. 雪玉の準備

雪玉となる白い円を描き、ムービークリップに変換します。

シンボルに変換

2- 5- 1. ムービークリップの編集

「MoveBall」でもムービークリップを使いましたが、その時はメインタイムラインで制御していました。今回は、ムービークリップに独自のタイムラインを持たせます。
シンボルに変換した雪玉を右クリックし「編集」を選択するか、ダブルクリックでシンボルの編集へ移れます。シンボルの編集画面もメインタイムラインと同様のワークスペースです。メインタイムラインでムービークリップが配置されたフレームにいる間、そのムービークリップ独自のタイムラインが再生されます。
この雪玉のタイムラインでレイヤー「ENGINE」「SHAPE」と、それぞれのレイヤーに図のように3フレーム用意します。

雪玉タイムライン

2- 5- 2. 雪玉の「ENGINE」

「ENGINE」つまり動力源を作成します。これは「MoveBall」と同じです。1フレーム目に初期値の設定、2、3フレーム目に「動き」を制御するActionScriptを編集します。

 ENGINEレイヤー - 1フレーム目のアクション
//初期位置
Snow_X = random(240);    //X座標 0~240
Snow_Y = random(200) - 240;    //Y座標 -40~-240
Snow_Z = int(random(10)) + 1;    //奥行き 1,2,…,9,10
//落下速度
Fall = 10 + int(random(10)) - Snow_Z;    // 5~17
//消えて上に戻る座標
Melt_Y = 210 + random(30);    // 210~240
//サイズ、透明度(明るさ)
Size = 40 + random(50) + Snow_Z;    // 41~100(%)
Alpha = Size;    // 41~100(%)

//プロパティに代入
_x = Snow_X;
_y = Snow_Y;
_xscale = Size;
_yscale = Size;
_alpha = Alpha;

dt = 0.1    //1/fps


 ENGINEレイヤー - 2フレーム目のアクション
//雪玉の動き
//落下
Snow_Y = Snow_Y + Fall*dt;
//溶けたら位置を選びなおし再び落下
if( Snow_Y > Melt_Y ) {
gotoAndPlay(1);
}
//位置更新
_y = Snow_Y;


 ENGINEレイヤー - 3フレーム目のアクション
//雪玉の動き
//落下
Snow_Y = Snow_Y + Fall*dt;
//溶けたら位置を選びなおし再び落下
if( Snow_Y > Melt_Y ) {
gotoAndPlay(1);
}
//位置更新
_y = Snow_Y;
//2フレーム目へ戻り、再生
gotoAndPlay(2);


2- 5- 3. ムービークリップの複製

これまでで一つの雪玉が完成しました。雪玉は一つだけではあまり面白くありませんが、これを何度も繰り返すことは非効率的です。
そこでムービークリップの複製を行います。メインタイムライン(レイヤーは一つ)のアクションウィンドウ(パネル)を開きます。そこに下のように記述して下さい。
さらに雪玉インスタンスに名前をつけます。複製されるムービークリップとして名前を「Snow0」とします。そして、「dupulicateMovieClip」で複製されたムービークリップは、「Snow1」「Snow2」…「Snow50」と命名されます。

 メインタイムライン - フレームアクション
//ムービークリップの複製(50個)
for (i=1; i<=50; i++) {
     duplicateMovieClip("Snow0", ("Snow"+i), i);
}


2- 5- 4. シンボルの複製(補足)

グラフィックやボタンの複製を行う場合や少数のムービークリップで済む場合などは、もっと簡単に複製することができます。詳しくは、「0 - 4. Flashの基礎知識 ■インスタンス」にあります。

2- 5- 5. ムービープレビュー

プレビューしてみましょう。シンボルは独自のタイムラインを持てると述べましたが、そのタイムラインでトゥイーンアニメーションなども作成することも可能です。色々試してみて下さい。さらに、シンボルを複製させても、あまりファイル容量は増えません。サンプルのswfファイル容量はわずか812バイトです。
サンプルでは背景として白い地面も付け加えてあります。