Flash Player 10のプレリリースが発表され,ますますActionScript3界隈が盛り上がる今日この頃,皆様いかがお過ごしでしょうか?
この連載では,Box2Dという物理エンジンを使ったActionScript3プログラミングについて解説します。物理エンジンといっても,難解な数学や物理法則を理解する必要はありません。そういった処理はBox2Dが包み隠してくれます。Flashのデモを見ながら,少しずつBox2Dの使い方を理解していきましょう。
第1回ではまったくプログラムは書かず,Box2Dに付属しているサンプルをコンパイルして実行します。まずは動くものに触ることで,物理エンジンって楽しそうだなと思っていただければ幸いです。
なお,筆者の開発環境がWindowsなので,諸々の説明がWindows前提となってしまいますが,Mac OS Xなどでも開発することはできます。その際は,ディレクトリ名などについて適宜読み替えていただければと思います。
Box2Dとは?
Box2Dとは,複雑な物理計算を一手に引き受けてくれるライブラリです。こういったライブラリは物理エンジンと呼ばれています。もともとはC++で書かれていたライブラリなのですが,ActionScript3,Java,C#,Pythonなど,様々な言語に移植されています。ActionScript3に移植されたものはBox2DFlashAS3と呼ばれていますが,名前が長いので,本稿では単にBox2Dと呼びます。
Box2Dの応用例
Box2Dを使った最も有名なアプリケーションはCrayon Physics Deluxeではないかと思います。昨年ニュースサイトなどで取り上げられたこのアプリケーションは,ペン入力で描いた物体が,そのまま物理エンジン上で動くという,とても興味深いものです。ペン入力の認識部分はBox2Dとは関係ありませんが,物理エンジンを使った面白い例だと言えます。
Crayon Physics DeluxeはFlashではありません。おそらくC++で実装されています。物理エンジン以外にも複雑な処理を行う必要があるので,さすがにFlashでの実装は難しそうです。
Crayon Physics Deluxe
Flashでの応用例
ではFlashでBox2Dを使ったコンテンツにどのようなものがあるかということになりますが,ここはひとつ引越し奉行とぴたごらったーを例に挙げたいと思います。
引越し奉行は,引越し作業をするために家財道具を新居に運ぶゲームなのですが,運ぶというよりは放り投げる形になっています。そして,放り投げた家財道具が新居にぶつかると,物理演算により新居が壊れてしまします。では壊さないようにそっと投げればいいのかというとそうではなくて,壊したほうが得点が高くなるという面白いシステムです。コンテンツも面白く出来ているので,物理エンジンを生かしたいい例だと思います。
ぴたごらったーでは,twitterのアイコンがランダムに降ってくるのですが,それらが直線や円などにぶつかると反射します。左上のツールバーから直線や円を選択すると,フィールド上にそれらを配置することが出来ます。外部サービスと結びつけたこんな使い方も面白いですね(twitterのサーバ状況によってアイコンが降ってこないことがあります)。


