ActionScript 3.0による3次元表現の基礎

インスタンスをマウスポインタの水平位置に応じて回す

全334コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
DisplayObject.rotationYプロパティで、インスタンスをy軸で回すことができます。
講師:
06:53

字幕

DisplayObject クラスの プロパティを使って インスタンスを水平に 回線させてみたいと思います 回転するスピードは マウスポインタの中心からの 離れ具合に比例する様にしています では swf は一旦閉じましょう 完成品の Flash ムービファイル fla ファイルは閉じて 練習用のサンプルを確認します 簡単な大枠だけスクリプトが書いてあります メインタイムラインの キーフレームでアクションパネルを開きます EventListener の登録までは 書いてあります addEventListener メソッドに アニメーションの場合は イベントの ENTER_FRAME ですね そして Listener 関数が定めてあります Listener 関数は とりあえず関数の定義のみ してあって 中の処理はありません それから変数を予め宣言しています MovieClip インスタンス メインタイムラインに置いてあるんですが my_mc という名前が付いています 確認してみましょう 一旦アクションパネルは閉じます MovieClip インスタンスが ステージに置いてあります そしてこのインスタンスには 名前が付けてあります インスタンス名 my_mc です この MovieClip インスタンス my_mc は 基準点を インスタンスの中心に置いてあります 改めてアクションパネルを 右クリックで開きます 最初に 1 行目変数に取っているのは my_mc の x 座標です マウスポインタを中心から離す程 回転を早くしようという目論見があります そのため中心の座標が欲しいんですが その中心の座標として MovieClip インスタンスの x 座標を取り それを nX という変数に入れています こちらの ratio という変数の値は 後で使います アニメーションの処理は ENTER_FRAME のイベントの Listener である この Listener 関数 xRotate に書き込みます 先ずはマウスポイントの位置に関係なく 水平に回してみましょう 水平に回す時は 回す軸は y 軸になりますので プロパティは rotationY です そして どんどん加算という場合には += で rotationY は rotationX rotationZ も同じですけれども 単位は度数になります 5 度ずつ加算してみましょう ムービープレビューで確かめます 制御メニューから ムービープレビューです 確かに水平に回転はしているんですけれども 軸は左端になってしまっていますね では swf は閉じましょう 問題は この rotationY というプロパティが 誰のプロパティなのかということです 今スクリプトは メインタイムラインに書いています そのため参照を何も付けないと このプロパティはメインタイムラインの プロパティということになってしまいます 回したいのは メインタイムライン 5 度ではなくて メインタイムラインは そのまま置いてある MovieClip インスタンスを回したい訳です ですからこの my_cm という インスタンスの参照を 付けなければいけません コントロール若しくはコマンドで ドラッグをするとコピーになりますので ドットを付けてあげます 改めてムービープレビューを確かめましょう 制御メニューからムービープレビューです 今度はちゃんとインスタンスの中心を 軸にして水平に回っています マウスポインタに関する処理を していませんので マウスポインタはどこをおいても 一定の速度で回っています 確認ができましたので swf は閉じましょう 水平に回すことはできましたので 仕上げです マウスポインタの位置に応じて 回転の速さを変えます マウスポインタの位置に応じてというのは x 座標でしたよね ですから mouseX X と中心からの距離と 中心からの離れ方ということですから 予め取っておいて nX ここですね インスタンスの x 座標というのは中心です そこからの離れ方に比例させます これを rotation 変数名は nRotationY にしましょう Number 型です そこに代入してしまいます ただ このままですと 中心から 100 ピクセル離れると 100 度いっぺんに回ってしまいます ちょっと速すぎますね ということなので比例計数を付けます そのために用意したのが 変数の ratio です これをコントロール 若しくはコマンドドラッグで コピーして持ってきます 後はこの変数に取った値を 加算すれば良いということですね ペーストします 一旦保存しましょう ファイルメニューから保存です 改めて ムービープレビューで動きを確かめます 制御メニューからムービープレビューです マウスポインタが中心から離れる程 回転が早くなります 中心に近づくと ゆっくり 左右で回る方向が変わります これで完成です ではスクリプトを おさらいで確認しましょう swf は閉じます 先ずアニメーションの処理は EventListener addEventListener のメソッドで イベントの ENTER_FRAME というイベントに関して Lister 関数を登録します そして こちらが Listener 関数です その中で回転のプロパティというのは rotationY 水平回転の場合ですね rotationY になります その時に どのインスタンスの プロパティなのかということを 確認する必要がありました 回転の速さは マウスポインタの中心からの 離れ方に比例する様にしました インスタンスの x 座標を 中心としているんですが これは予めインスタンスの中心に 基準点が置いてあります ですからマウスポインタとそのインスタンスの 中心との離れ方に比例させます このまま使ってしまうと 値が大きくなり過ぎるので 割り引くための比率 ratio という変数を掛け合わせて マウスポインタの インスタンスの中心からの離れ具合に 比例する様にしました それを毎フレーム 毎フレーム足し込めば そのインスタンスの中心からの マウスポインタの離れ具合に応じて 回転する速さが増していく という処理になります

ActionScript 3.0による3次元表現の基礎

このコースではActionScript 3.0の基礎を学んだ人を対象に、3次元空間を使ったオブジェクトの動かし方について学習します。ActionScript 3.0の3次元を扱うクラスの扱い方を説明するとともに、その基礎となる数学や物理の考え方についても解説します。

3時間53分 (29 ビデオ)
現在、カスタマーレビューはありません…
 

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。