第3回 DistortImgクラスで動画を扱ってみよう | デザインってオモシロイ -MdN Design Interactive-
【サイトリニューアル!】新サイトはこちらMdNについて

Flashスキルアップ講座タイトル画像

Lesson6 Sandyを利用した3D表現


Lesson6では「Fuse Kit」に続いて、オープンソースの「Sandy」を取り上げる。SandyはFlashで3Dを表現することができるActionScript2.0ベースのクラスパッケージライブラリーだ。3Dに関してかなり広範囲のことができるが、筆者自身も勉強中の段階である。全容を解説とまでいかないが、簡単で効果の高いものをピックアップしながら進めていきたい。

(解説:茅原伸幸)

第3回 DistortImgクラスで動画を扱ってみよう


前回に引き続いて「DistortImage」クラスを利用しながら、今回は動画を扱ってみたい。【サンプル1】。


【サンプル1】[Play]ボタンで再生。四隅のポイントはドラッグできる

静止画像を動画に替えると、DistortImageの変形がぐっと引き立つ。簡単な構造を説明すると、【サンプル1】の右下に半透明のムービーがあるが、このムービーを「onEnterFrame」で、DistortImageのインスタンスのビットマップデータに「draw」し続けることによって実現している。右下の元となるムービーは詳細は省略するが、ムービークリップ(インスタンス名:movieBox、アルファ値:50%)内に、コンポーネントのFLVPlaybackを配置し、flvファイルを再生し続けているだけだ。

それでは実際のActionScriptを見ていこう。といっても第2回の【図3】のに若干変更を加えて、1行追加するだけだ【図1】。

【サンプル1】のActionScript
【図1】黄色部分が前回からの変更点、オレンジの部分が追加された部分だ

黄色のマーキング部分は前回では猫の画像をロードしていたが、今回は必要ないので、空のビットマップデータを生成するように変更した。

重要なのはオレンジ色の部分で、di(DistortImageクラスのインスタンス)のビットマップデータ「texture」に、draw (BitmapData.draw メソッド)で、flvムービーを内包しているmovieBoxムービークリップを描画している。ちょうど、movieBoxムービークリップをキャプチャし続けている感じだ。

そのため、変形されたムービー画像では再生ボタンなどの操作系は効かないが、元となっている半透明のムービーの操作系を操作すると、distortされたムービーにも反映するといった仕組みだ。

このDistortImageクラスを使えば、たとえばパースのかかった街並の街頭テレビに動画をはめ込むなど、いろいろな使い方ができるだろう。

■Point DistortImageを3Dで利用

せっかくのSandy(=3D)なので、3Dと組み合わせほうが威力を発揮できるのだが、前回の冒頭でも述べたように単独でも充分使えるため、無理にSandyの3Dエンジンを使用せずとも自分の慣れた3D表現と組み合わせることもできる。試しに、Lesson3 第4回で作成した3Dと組み合わせてみよう【図2】。

Lesson3の第4回で使用したActionScript
【図2】長いActionScriptだが、過去のLessonを参照すればそれほど難しくはないはずだ

黄色部分が今回のDistortImage部分、それ以外がLesson3 第4回の【図2】に対応している部分だ。ムービーのソースとなるmovieBoxムービークリップを移植するなどの作業は必要だが、ほとんどコピー&ペーストで対応できる。実際に実行すると次の【サンプル2】のようになる。


【サンプル2】[Play]ボタンで再生。画面クリックで四隅のポイント表示

やはり3Dの奥行きをもつパースがかかった画像表示に、DistortImageクラスは絶大な威力を発揮する。このサンプルを見ただけでも、いろんな場面で使える、というイメージが湧いてくるのではないだろうか。


次回へつづく


著者写真
[プロフィール]
かやはら・のぶゆき●1972年生まれ、広島在住。広島大学経済学部卒業後、紆余曲折の末、2006年5月に株式会社メディア・パルサーを設立。若手を鍛えながらFlash制作に勤しむ。二児のパパ。
http://www.procreo.jp/

twitter facebook このエントリーをはてなブックマークに追加 RSS
【サイトリニューアル!】新サイトはこちらMdNについて

この連載のすべての記事

アクセスランキング

8.30-9.5

MdN BOOKS|デザインの本

Pick upコンテンツ

現在