Box2DでActionScript物理プログラミング

第1回 Box2Dを使ってみよう

この記事を読むのに必要な時間:およそ 3 分

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と呼びます。

Box2DFlashAS3のサイト

Box2DFlashAS3のサイト

Box2Dの応用例

Box2Dを使った最も有名なアプリケーションはCrayon Physics Deluxeではないかと思います。昨年ニュースサイトなどで取り上げられたこのアプリケーションは,ペン入力で描いた物体が,そのまま物理エンジン上で動くという,とても興味深いものです。ペン入力の認識部分はBox2Dとは関係ありませんが,物理エンジンを使った面白い例だと言えます。

Crayon Physics DeluxeはFlashではありません。おそらくC++で実装されています。物理エンジン以外にも複雑な処理を行う必要があるので,さすがにFlashでの実装は難しそうです。

Crayon Physics Deluxe

Flashでの応用例

ではFlashでBox2Dを使ったコンテンツにどのようなものがあるかということになりますが,ここはひとつ引越し奉行ぴたごらったーを例に挙げたいと思います。

引越し奉行は,引越し作業をするために家財道具を新居に運ぶゲームなのですが,運ぶというよりは放り投げる形になっています。そして,放り投げた家財道具が新居にぶつかると,物理演算により新居が壊れてしまします。では壊さないようにそっと投げればいいのかというとそうではなくて,壊したほうが得点が高くなるという面白いシステムです。コンテンツも面白く出来ているので,物理エンジンを生かしたいい例だと思います。

引越し奉行

引越し奉行

ぴたごらったーでは,twitterのアイコンがランダムに降ってくるのですが,それらが直線や円などにぶつかると反射します。左上のツールバーから直線や円を選択すると,フィールド上にそれらを配置することが出来ます。外部サービスと結びつけたこんな使い方も面白いですね(twitterのサーバ状況によってアイコンが降ってこないことがあります)。

ぴたごらったー

ぴたごらったー

著者プロフィール

木村秀敬(きむらひでたか)

茨城高専,北陸先端大を卒業後,独立系ベンチャーにあこがれてjig.jpに就職。 ActionScript好きですが,根はコテコテのC/C++プログラマです。Flash/ActionScriptに興味のある方は是非Spark Projectへ。

コメント

コメントの記入