8の新機能である「ブレンド」や「フィルタ」をAcionScriptからコントロールする際の効果的な使用方法をご説明いただきました。透明な背景を持つビデオの読み込みにも対応しました。背景が透明なビデオを使用して、"ワープ"の演出を楽しんでみましょう。Effectsや3DCGなどのアルファチャンネル付きムービーの書き出しに対応しているソフトが必要です。対応のソフトに、背景にブルー(の布などを使用し)を置き、撮影したビデオを取り込んだのち、背景部分のブルーを選択して抜きます。読み込み(1)ビデオの読み込みウィザードの中の[エンコーディング]画面の中段にある[詳細設定を表示]ボタンをクリック。(3)プルダウンリストの直下の「アルファチャンネルのエンコード」がアクティブになりますので、そこにチェックマークを入れる。(4)そのままウィザードの画面を「次へ」と進める。Videoのアルファチャンネルとコントローラ設定」をご覧ください。作例:透過ビデオで遊ぶぐるぐるぐるぐる〜回る回る〜。これだけでも、かなーり楽しめます。8の目玉機能に「ブレンド」がある。これは、ムービークリップに使用できる。次に、ビデオをムービークリップに包んだときのブレンドの楽しみ方を紹介しよう。my_mc.blendMode="ブレンドのタイプ"ブレンドは、プロパティ画面で手動でも設定できます。同時に、Scriptでも制御できます。Scriptでの制御も、プロパティでのブレンドモードのタイプを指定するだけなので、スペルにさえ気をつければ、比較的簡単に使用できます。反転などのブレンドタイプは、組み合わせて使用するとより楽しい演出が可能になります。SWFの作例を開くフィルタのActionScriptブレンドと同様に、テキストフィールドやムービークリップへ適用できる効果にフィルタがある。プロパティインスペクタのフィルタには7つのタイプがあるほか、各フィルタが複数の設定値を持つ。このフィルタもScriptから制御が可能だが、複数のフィルタを組合わせて使えるように配列を使用する。SWFの作例を開くアルファで抜けているので、ドロップシャドウやグローがきれいです。配列は面倒?フィルタを用いるときに、配列が必要になる。ひとつのフィルタでも配列の箱を使用してそこにインスタンスを格納しておく。すると後で複数を使用することになってもMCとしてのフィルタの配列はひとつですむようになる。*MovieClipのfiltersプロパティには、フィルタ(のインスタンス)を格納した配列を設定します。フィルタN];BitmapDataのActionscriptActionscriptでのコントロールだから可能になる、フィルタを用いた作例を紹介しましょう。ぼかしをコントロールしてフォーカス奥行きのある3つのオブジェクトの焦点がスクロールバーの動きとともに移動する例。スクロールバーを動かすと、手前の葉っぱ、中心の人物、背景にとピントが合う。従来のバージョンでは、アニメーションでこういう手法が可能だったけど、スクリプトによるリアルタイムの表現はできなかったもの。SWFの作例を開くマウスを動かしてぼかすマウスでオブジェクトをドロップすると、その方向にあわせてぼかしにも伸びがかかってより移動感が加わる例。SWFの作例を開くディスプレイスメントマップフィルタ3Dでは、よく耳にするものに「ディスプレイスメントマッピング」がある。これは、「白いところは高く、黒いところは低く」のように置き換えられる。Flashだと、2次元(XY方向で)での変換になる。>>「亀に波打つ海面風のフィルタ」の作例を開く>>「地球儀」の作例を開くBitmapDataの基本は、"見えないBitmapData"の上に描いて、"見えるムービークリップ"の上に表示する。視るためのテレビとデータを送信する放送局の関係に似ているかも。ムービークリップ(A)に、別のムービークリップ(B)の絵を重ねて描画してみましょう。・結果を表示するムービークリップ(A)を用意する(a_mc)・重ねる絵のムービークリップ(B)を用意する(b_mc)・描画を行う場所(BitmapData)を作る。flash.display.BitmapData;・BitmapDataを、ライブラリの画像を読み込んで作る。BitmapData.loadBitmap("photo");(2)描く・結果を表示するムービークリップ(A)に、BitmapDataを割り当てる。10);・重ねる絵のムービークリップ(B)をビットマップ上に描画する。_bmd.draw(b_mc);ビットマップはムービークリップ(A)にアタッチされているので、描画結果がムービークリップ(A)上に表示されることになる。前述にもあるフィルタを設定してたり透過を用いているものを紙に印刷する際、フィルタや透過が無視されてしまう。BitmapDataに変換してある(合成してからpush)この方法なら、フィルタや透過も適用されたままのイメージで印刷できる。反面、これらはビットマップデータになるためテキストデータのままであるような拡大しても滑らかなアウトラインではなくなる。(3)加工DisplacementmapFilterをセットする。BitmapDataを使ってフィルタをかける。加工例として:「ヒットテスト」の作例を開くやわらかい衝突判定。左の雲をドラッグして右の雲にかさねてみてね。「フラクタルノイズ」の作例を開くperlinNoise()メソッドの第6引数がフラクタルノイズ。終わったらきちんと消す(便利さには責任が伴う)。消すときは「_bmp.dispose();」MCと違って、メモリ(放送局)に入れたデータは責任もって消してあげる。メモリに残る上に、メモリを食う。【こぼれ話】ディスプレイスメントマップフィルタは、一昔前のプログラミングみたいなものと考えるとわかりやすい。Flashは数行のスクリプトで可能なので、以前のプログラミングから考えると格段楽なんだって。ActionScriptで楽しく遊ぶ方法」でした。会場では、真剣にメモをとる姿があちこちで見られました。デモ前後の休憩時間には、森さんにサインしてもらう姿もあり。素敵な著書とわかり易いデモをありがとうございました。