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

Point.normalize()メソッドで位置座標を伸縮する

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
Pointオブジェクトをベクトルとして捉えると、Point.normalize()メソッドでその長さが変えられます。
講師:
05:27

字幕

Point クラスの normalize というメソッドを使った スクリプトの練習をします Point の normalize というメソッドは Point オブジェクトの 原点と座標を結ぶ直線の x 軸との角度は変えず つまり方向は変えずに 長さを伸び縮みさせるというメソッドです お題はマウスポインタを 少し遅れて追いかける こういうムービーにします 現在のスクリプトは Point クラスを使っていません ではフレームアクションを確認するため swf は一旦閉じましょう フレームアクションは ステージに置いた MovieClip インスタンスの中に 書いてありますので ダブルクリックして MovieClip シンボルを開きます シーン 1 の右に MovieClip シンボルのアイコンと シンボルの名前が表示されましたので 現在この MovieClip シンボルの 編集状態です 第 1 フレームに フレームアクションが書いてありますので 右クリックでアクションパネルを開きます 現在のスクリプトを先ず確かめておきます インスタンスから見たマウスポインタの x 座標と y 座標が それぞれ mouseX mouseY というプロパティです xy 座標は親タイムラインから見た 座標になりますので 単純に = で結べません インスタンスから見た マウスポインタの座標を 現在のインスタンスの座標に 足し込むことによって マウスポイントの位置に ピタッと追いつくことができます ピタッと追いつかずに少し遅れる様に 比率 ratio という変数に 0.2 を入れてあげます それを掛け算することによって ぴっちりくっついて付いて行かずに 少し遅れて動く イージングのアニメーションになります Point クラスを使って書き換えますので 先ず Point オブジェクトを作ります 変数宣言をして myPoint としましょう Point クラスで型指定します インポート分が入ります これは自動的に入りますので 残しておいて構いませんし 消しても動作には問題ありません コンストラクタでオブジェクトを作ります new の Point です 引数には xy 座標ですが ここではマウスポインタの x 座標 ドラッグで移動してしまいます そしてマウスポインタの y 座標を入れます 無くなってしまいましたが ここでは 変数を行うと宣言しますので大丈夫です ここで Point オブジェクトに対して normalize メソッドを使います 変数名 myPoint normalize ですね そして この中にはどの長さにしたいかという 長さの値を入れます 先ず今現在の距離は myPoint 変数に対して length で分かります そしてこの距離を伸び縮みさせたいですね どれだけ伸び縮みさせるかというと この比率を掛けた値に すれば良いということです 長さをこの比率を掛けた値にします こうすることによって Point オブジェクトの xy 座標が両方変わります ですから ここではもう ratio を掛ける という処理は必要無くなります どうなるかというと myPoint の x の値 同様に myPoint の y の値という風に入れていけば良い訳です ファイルは一旦保存しましょう ファイルメニューから保存です ムービープレビューを確かめましょう 制御メニューからムービープレビューです 動きは元と変わりません マウスポインタの後を 少し遅れて付いて行きます ただ 先ほどと違って 元々と違いまして Point クラスを使って Point オブジェクトを作り normalize のメソッドを使っています では改めて確かめますので swf は一旦閉じましょう Point オブジェクトと normalize メソッドを使った スクリプトのおさらいです 先ず Point オブジェクトは お約束通りですがコンストラクタです new Point でオブジェクトを作ります 渡すのは xy 座標です ここではマウスポインタの xy 座標を渡しました 従ってマウスポインタの xy 座標を XY というプロパティを持った Point オブジェクトが出来上がります これに対してイージングを掛けたい つまりマウスポインタとの距離を ぴったり埋めるんではなくて 少し割り引いて Point オブジェクトを作りたいと Point オブジェクトを 変更したいと思います そのためにPoint オブジェクトに対して normalize というメソッドを 呼び出しました 元々の長さは length プロパティで取れます そのまま設定してしまうと ぴっちりくっ付いてしまいます ぴっちり追い着いてしまいますので そうならないために長さに ratio 予め決めておいた比率を掛け算すると 長さが具体的には この場合 0.2 に縮みます そして その縮んだオブジェクトに対して XY のプロパティの値を取り出して それをインスタンスの x と y プロパティに足し込めば マウスポインタの後を 少し遅れて追いかけるという アニメーションが出来上がるという訳です

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

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

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

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

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

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