イベント
[GDC 2014]ゲーム開発者へのアピールを狙うGoogle,2Dゲーム向け物理エンジン「LiquidFun」を公開
Google Developer Dayでは,当然のようにそのLiquidFunに関するセッションが用意されていたので,今回はその内容を中心に,Google Developer Dayで明らかになった関連サービスのアップデートをまとめてみたいと思う。
なお,解説セッションを担当したのは,oogleでデベロッパプログラムエンジニアを務めるWolf Dobson氏だ。
Box2Dをベースに粒子や流体を扱う物理エンジン
LiquidFun
冒頭でLiquidFunは,2Dゲーム向け物理エンジンと述べたが,その正体は,Unityでも利用されているポピュラーな2D用物理エンジン「Box2D」をベースとした,一種の物理演算ライブラリとなっている。
元がマルチプラットフォームで動作するBox2Dなので,LiquidFunも,WindowsやAndroid,iOSなど幅広いOS上で動作する。とはいえ,あくまでも2Dゲーム向けのエンジンなので,どちらかといえばモバイルOS向けやWebベースのゲームが主なターゲットとなるはずだ。
そんなLiquidFunの特徴は,簡単に利用できることにある。Dobson氏は実際にプログラムコードを披露しながら,何をどう実現でき,それがどの程度簡単にできるのかを解説した。プログラミングの知識がない人には難しい話で恐縮だが,スライドをもとに順を追って説明しよう。
下に示したのは,左が実際に粒子を作るプログラムで,右は設定できる属性の例だ。まず「b2ParticleDef」という変数で,粒子の属性を設定する。そして,粒子の色やサイズ,位置といった属性を指定したら,「CreateParticle」メソッドでオブジェクトを作成。基本はこれだけである。
LiquidFunでは,複数の粒子をまとめて扱う「ParticleGroup」を設定できる。たとえば,粒子のグループに同じ振る舞いをさせたり,まとめて消したりといったことが,ParticleGroupで可能になるという。
さらに,LiquidFunでは粒子のさまざまな振る舞いを設定できるようになっており,たとえば「弾力性があって弾む粒子」とか「細かなパウダー状の粒子」,あるいは「霧のように粘ついた粒子」といった表現が可能とされている。
ParticleGroupは多数の粒子をまとめて扱う仕組み。多数の粒子に同じ設定を適用したり,同時に消したりといった操作が可能になる |
LiquidFunがサポートする粒子の振る舞いの例。パウダー状や粘性のある粒子,弾力があるものや跳ねるものなど,さまざまな振る舞いが可能だ |
またDobson氏は,「たとえば火山の爆発を表現するときに,LiquidFunにある『Particle System』が利用できる」として,火山の噴出物を粒子に見立てたデモとサンプルコードを披露した。Particle Systemというのは,炎の表現などでお馴染みの,微小なポリゴンを大量に使った表現のための機能だが,ここでは火山の噴出物を粒子に見立てているわけである。これを見ると,LiquidFunの応用範囲は広そうな印象だ。
左の写真は,Particle Systemを用いて作った粒子の噴出口を実行した例。画面中央から右に向かって粒子が噴出している。右の写真はそのサンプルコードだ。おおまかに説明すると,「pd」がParticle Systemの設定を行うPertileSystemDef型の変数で,そこに情報をセットしてCreateParticleメソッドを呼び出し,PertileSystemを作るという内容だ |
さて,LiquidFunを使えば,簡単に粒子のシミュレーションが行えることは分かった。それではどうやってゲームに応用すればいいのだろうか。
Dobson氏が披露したアイデアの1つは,「粒子のジェットで物を動かす」というものだ。下に示したムービーは,氏がLiquidFunで実装したデモを撮影したものだが,円が弾む瞬間に粒子が飛び散っているのが分かる。
Dobson氏が披露したもう1つのデモは,粒子を流体のように扱うものである。これも下に撮影したムービーを示しておくが,手法自体は昔からよくあるものだ。LiquidFunという名称自体が,流体のシミュレーションを意識したものだと思われるので,こういうのはお手のものといったところかもしれない。
オープンソースプロジェクトであるLiquidFunは,GDC 2014に合わせてソースコードが公開されている。GitHubやGit リポジトリで入手できるので,興味がある人は試してみるといいだろう。
LiquidFun 1.0 Google Open Source Blog(英語)
多数のサービスと開発キットをGDC 2014に合わせてアップデート
GoogleはLiquidFun以外にも,さまざまな開発キットのアップデートをGDC 2014に合わせて公開している。Google Developer Dayでは,それらが詳細に解説されたのだが,ここではゲーム開発にも関わる興味深いものを紹介してみたい。
まず,「Google Play Game Service」は,ソーシャルゲームの機能をGoogleのクラウドで実現するものだ(公式Webサイト)。これを使うと,ランキングボード(リーダーボード)や実績,ユーザー情報といったゲームの情報を,Googleのクラウドに保存できる。
従来はAndroid向けのサービスだったが,最新バージョンではiOSにも対応したのが大きな特徴だ。このサービスを使うことで,iOSとAndroidのゲームを,クラウド経由でつなげられるようになった。また,ゲームを友人に送る「Game Gift」にも対応しているという。
Webページに埋め込むタグ情報を管理して,Googleのクラウドに保存するサービス「Google Tag Manager」も,GDC 2014に合わせてアップデートされている(公式Webサイト)。
このサービスはWebページに埋め込むタグを管理するものだったが,現在ではモバイル端末向けアプリのユーザーインタフェースタグなどにも用途を広げている。Google Tag Managerの情報は,Googleの統計サービス「Google Analytics」とも連動可能だ。
これがゲーム開発にどう役立つのかだが,最も分かりやすいのは,タグを使ってゲームのアクティビティを詳細に分析するといったことだろう。あるいは,ソーシャルゲームのマネタイジングツールとして使うこともできると思われる。
Google Tag Managerもやはり,AndroidとiOS両対応。クロスプラットフォームでタグ情報を分析できるのは注目に値する。
Googleでは,「Googleの開発ツールはすべて無料」とアピールしており,クラウドリソースの利用料金を除けば,ほとんどが無料で利用できる。興味のある開発者は,試してみてはどうだろうか。
Google Developers 公式Webサイト(英語)
- この記事のURL: