このFlash講座1234は,flashソフトを用いてflashアニメをスクリプトで制作し無料で公開したものです
FLASH講座モーショントゥイーン
(5) 回 転

往復(振り子)回転 

 画像を回転させ角度を変えて見せるアニメーションも多用されています。 ここでは振り子のように、+−同じ角度を往復する回転の作成方法を述べます。

 (1)回転させる画像を読み込む。
 (2)画像をシンボル(ムービークリップ)に変換する。
 (3)FRAME 1右クリック「モーショントゥイーンを作成」
 (4)FRAME10、19にキーフレームを挿入
 (5)「修正」「変形」「収縮と回転」をクリックして回転角度を設定する
    FRAME 1、FRAME19:+120度、 FRAME10:-120度
 (6)2つのトゥイーンについてプロパティインスペクターで以下を設定
    FRAME1-10 :イージング:100、回転:反時計回り、0回
    FRAME10-19:イージング:100、回転:時計回り、0回
 以上は、+-120度の回転について述べたが、60度回転の場合には、(6)の回転は自動設定でよい。 回転は180度を境に、小さい角度が優先される

連続回転 

 アニメーションの醍醐味のひとつがオブジェクトの連続回転である。 ここでは、画像(イメージ)を連続回転させる方法について述べる。 この画像を回転させるときにいくつかのコツと言うか注意点がある。 そのひとつは回転がギクシャクしてしまうということであり、もうひとつは回転数をある程度上げると、視覚的には逆回転しているように見えてしまうと言うことである。
 また回転させる方法にもいくつか方法があるが、今回は最も簡単な方法について述べる。

 

 (1)ステージに回転させる画像を読み込む
 (2)FRAME1右クリック、「モーショントゥイーンを作成」
 (3)FRAME20にキーフレームを挿入
 (4)FRAME10(どこでもよい)でクリックし、
    プロパティインスペクタを表示
 (5)中央下部「回転」で時計回り、1回を設定

 ここまでの設定では、FRAME1と20が同じ位置で2回表示されることになり、左のモーションのように、一瞬止まったように見えてしまう

 

 

 これを回避するには、FRAME20での回転体の回転位置をドラッグして若干戻し、FRAME1に滑らかにつなぐように調節する方法がよく使われる。 この方法も簡便でよいが、滑らかな回転にするために何度か調節を繰り返さなければならない。 ここでは簡単確実に滑らか回転させる手法について述べる。 すなわち、FRAME20にFRAME1に移動し再生せよという命令(アクションスクリプト)を記述する方法である。 すると、FRAME20の実行はスキップしてFRAME1が実行されるので連続状態が続くことになる。(上例右側) なお、実際の動きは、ムービープレビューかパブリッシュプレビューでないと見られないので注意。

回転を滑らかに見せるためのアクションスクリプトの記述法
 上記(1)〜(5)までの設定に続き、
 (6)FRAME20をクリックし、ビヘイビアパネル(画面右側に表示されていなければ、「ウインドウ」「開発パネル」「ビヘイビア」にチェックを入れ表示させる)のビヘイビアの追加ボタンをクリック
 (7)「ムービークリップ」「フレームまたはラベルに移動して再生を開始」をクリック
 (8)「相対」にチェックを入れ、開始フレームを1に設定
 (9)FRAME20にaの文字が入りアクションスクリプトが追加される。

 なお、この手順で作成されたスクリプトは、
  this.gotoAndPlay("1");
 と言う単純なもので、thisと言うのは今実行されているモーショントゥイーンを意味する。"1"はFRAME1のこと。
 したがって、ビヘイビアパネルを使わないで、この記述をFRAME20をクリックして、アクションパネルの記述欄に直接書き込んでもよく、同じ結果が得られる。

 次の難問は、回転速度の問題。 回転する速度を上げるために1回転させるFRAME数を小さくすると、あるフレーム数から小さくなると、逆回転に転じかえって遅くなり、最終的にはとまって見えるようになる。 また、トゥイーンのプロパティーで回転数を上げていったときも同様である。 

 以下に、時計回り1回転を設定したときの、FRAME数の影響を例示する。 FRAME数が17のときを境に視覚的には逆回転に転じているのが分かる。 赤いポイントを見ると、確かに時計回りに回っていてFRAME数が小さいほど早く回転しているのだが。

 この傾向は、プロパティーインスペクターで回転数を大きくしていったときも同様に起こる。 それでは、もっと高速で回転をさせたい時はどうするかというと、フレームレートを高くする方法がある。 フレームレートを高くしても逆回転の発生は起こるのだが、順回転でより高速回転という領域を確保することが可能である。 ただし、この場合、ドキュメント(ファイル)全体のフレームレートが上がるので、全てをそのレートにあわせた設定が必要となる。

全部アクションスクリプトで書く 

 アクションスクリプトについてはいずれ解説しなければならないと思っているが、回転させるスクリプトは簡単なので、ここに付け加えておく。 これで書くと格段に効率や見栄えがよくなるわけではないが、どうせ滑らか回転にするためにアクションスクリプトを使うのであれば、この方法を取るのがいいかもしれない。 なお、このスクリプトで書いても回転速度を上げると逆回転に転ずるのは同様に起こる。

 (1)ステージにイメージを読み込み配置する
 (2)イメージをシンボル(ムービークリップ)に変換する
    (このとき変換ウインドウにある基準点の設定を中心にしておく)
 (3)このシンボルを選択し、アクションパネルの記述部に以下のスクリプトを書き込む
    onClipEvent (enterFrame) {
    this._rotation += 10;
    }

 ここで、+=10は時計方向に10度ずつ傾くと言うこであり、数字を大きくすると回転速度が上がる。

<本ページに使った用語の説明>  

アクションスクリプト java script に似通ったFLASH用のプログラム言語。 さまざまなアクション(ボタン操作、再生制御、アニメーションなど)を動作させることが出来る。 上記回転スクリプトで角度を指定できたように、モーション(移動距離や角度など)の数値化が可能になるなど、きめ細かでインタラクティブな動きが設定できる。 
ビヘイビア もともとはjava script などで使う用語で、ボタン操作のような、なにかのきっかけ(イベント)であるアクションが実行されるときに使う用語。 FLASHではビヘイビアパネルを使ったウイザードにより、さまざまなビヘイビアのアクションスクリプトが自動的に出来上がり書き込まれる。

<追記> アクションスクリプトで回転を止める。

 上記アクションスクリプトの記述で回転しているオブジェクトの回転を止める方法を追記する。 この方法は、onCLipEvent(enterframe) で動いているモーションを止めるのに共通して使える方法であり、flag を立てて、モーションの実行、停止を判断させるものである。 SAMPLEでは、マウスのロールオーバーで回転が止まり、ロールアウトで再び回転が始まる

 以下のスクリプトを、回転オブジェクトを選択して書き込む。

onClipEvent (load) { flag = 0; }
on (rollOver) { flag = 1; }
on (rollOut) { flag = 0; }
onClipEvent (enterFrame) {
if ( flag == 0 ) {
this._rotation += 10; } }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 このサイトで使用しましたflashソフトはflash mx 2004年版(Flash Japan)- flash8 及び FlashCS3-2007年版です。 flash講座(フラッシュ講座)は、Yoshioka氏(通称、ひげ親父)による制作です。 コツコツと作られたflash素材(flashアニメ、スクリプト)はユーザーの方により保存変更され動画flash(動画フラッシュ)や携帯flash(待受flash)として利用されて来ました。
 氏は、flashスクリプトについての学習を、パソコン塾講師活躍中に始められ、独立した今も続けておられます。  macromedia flashソフトは新しくadobe flash時代に入りましたので、これを機会にflash学習サイトを「flash講座1234」としてリニューアルいたしました。 引き続きご愛顧承りますよう、よろしくお願いいたします。 
HOME   Flash講座リスト    モーショントゥイーン(6)

Copyright (C) 2007-2008 Yoshioka & Hiraoka All Rights Reserved.