連載
» 2012年09月20日 16時04分 UPDATE

UXClip(6):Flashゲームのパフォーマンス解析ツールMonocleとは?

Flash用のパフォーマンス解析ツールMonocleのプロダクトマネージャが、開発中のMonocleについて語った。MonocleはAngry Birdsのブラウザ版やZyngaのソーシャルゲームのチューニングに活用されている。今後のFlashはゲーム開発に力を発揮するという

[岡本紳吾,hatte Inc.]

ゲームの高フレームレートを実現させるプロファイラ

 CEDECのために来日したチボ・インベール(Thibault Imbert)氏にMonocleについて聞いた。チボ氏はAdobeの開発中のFlash用パフォーマンス解析ツール、Monocleのプロダクトマネージャだ。

 今回のCEDECでのセッションや、Adobeが展開していたブースを見ると、iPadなどのタブレット端末上でAdobe AIRアプリを動作させ、そのパフォーマンスの高さをデモンストレーションするというスタイルを取っていた。

 Adobeが、そこまでFlashのパフォーマンスにこだわる理由は何だろうか。

 チボ氏は、「ゲーム業界において、ゲームのフレームレートが一時的でも数fps下がるといった現象が起きる場合、それがユーザー体験に影響を及ぼし、最終的にはゲームの売上などに悪影響をもたらす」と語る。その規模は年間で数百万ドルともいわれている。まさに、Performance is moneyである。

thibault.jpg Monocleのプロダクトマネージャであるチボ・インベール氏

 単純に計算するとこうなる。本来60fpsで動いているゲームが10fpsのパフォーマンス低下を招いたとする。その際、画面の書き換え時間は0.0166秒から0.02秒に遅延するということになる。その差わずかに0.0034秒。たったこれだけでも売上に大きく影響するというのが、ゲーム制作の世界なのだという。

 当初、AIRアプリはパフォーマンスがさほど高くなく、ネイティブアプリと比べられると見劣りする部分があった。Adobeはまず、AIRの機能を拡張し、3D表現のパフォーマンスを高めるStage 3Dを開発し、仮想GPUのサポートを行った。

 これにより、従来はビジュアルのレンダリングにCPUを利用していたところを、GPU(Graphics Processing Unit)に置き換え、パフォーマンスを大きく改善した。

 しかしながら、ゲームのパフォーマンスチューニングとなると、これまで利用されてきたWebサイトの何倍もの対応が必要になる。

 かつて、Flashムービーのフレームレートは12fpsがスタンダードであった。これがPCの性能向上によって徐々に高フレームレートに移行し、Flexでは標準フレームレートが24fpsとなっている。さらに、最近ではより表現力を高めるため、30fpsはもとより、48fps、60fpsといった高フレームレートのコンテンツを見掛ける機会が増えてきた。

 実際に、Adobeブースで動作していたアプリケーションのフレームレートを聞いたところ、だいたい60fpsで動作しているという話だった。

 60fpsの世界というのは、先ほども述べた通り、画面が1回書き換わるのに使える時間がわずかに0.0166秒しかない。リッチな表現を高フレームレートで実現するには、それこそゲーム業界がこれまで行ってきたような、緻密なプロファイリングが必要になってくる。

 Adobeはそのような期待に応えられるよう、現在Monocle(モノクル)と呼ばれる開発コードネームのプロジェクトを進行させている。

 Monocleでは、これまではシンプルな機能しか持たなかったFlashPlayerの(性能解析)プロファイラに変わる、ゲーム開発の現場の厳しい要求にも応えられるように作られた多機能なプロファイラである。

monocle.jpg Monocleの画面、Adobe BLOGより転載

 Monocleはまだ開発段階というものの、ROVIOのAngry Birdsのブラウザ版やZyngaのソーシャルゲームの開発現場でも利用されている。GREEでもMONPLA SMASHでMonocleを活用したパフォーマンスチューニングを実践している(参照記事:グリー最新ソーシャルアプリ開発)。

 Monocleの特長としてまず挙げられるのは、プロダクション級のプロファイラが、コードを何1つ追加することなく利用できる点にある。

 ネット上で配布されているパーティクル(粒子アニメーション)系のスクリプトでよく見られる、簡易的なプロファイラは、コンパイル時にプロファイル用のクラスを読み込んでおく必要がある。ということは、リリース時は何らかの方法でプロファイラを非表示にするか、そもそもクラスの読み込みをやめてしまうかという手間が発生する。

 Monocleを利用すれば、そのような手間から解放され、プロファイリングに集中することが可能だ。また、プロファイルを他のチームに依頼する際も、コンパイルの設定を変える必要がないので便利だろう。

 Monocleでは、各フレームでどういったレンダリングが行われているのか、メモリの使用状況(ガベージコレクション)はどうか、などといったこれまで見えなかった非常に細かい情報を一覧することができる。

 従来、Web制作の分野では、相当リッチなコンテンツでなければ、ガベージコレクションはFlashPlayer任せで、手動で何らかの調整を行う必要性に駆られることはなかった。ところが、ゲームのチューニングとなると、そういったことも頻繁に出てくるようだ。

 AdobeはなぜMonocleが必要だと感じたのだろうか。チボ・インベール氏は、現在、Flashはゲーム分野に注力しているからだ話した。従来、Flashはさまざまな分野に利用されてきた。Webサイトはもちろん、テレビなどでの動画制作や、最近では次世代自販機のインターフェイスもFlash製だと聞く。

 さまざまなことに活用されていて、それぞれが中途半端になってしまっていた。HTML5の登場により、ブラウザでの基本的な表現はHTML5で可能になった。それによってFlashは終わるのではなく、必要とされている場所に特化してゆく。そしてそれが、ゲームの世界だったということなのだ。

 筆者は今も、いわゆるFlashコンテンツを制作する機会がある。「最近はすっかりJavaScriptに押されがちな分野であるが、Monocleのような詳細なプロファイラがあれば、よりリッチなWebコンテンツに活用できるんじゃないか?」と食い下がってみたところ「もちろんそのような使い方をできるとは思うが、Adobeのロードマップにおいては、Flashはゲームに注力していくはずだ」と、答えられてしまった。

 Adobeは、多数のゲーム開発会社のスタッフを招いて、ヒアリングを続け、ゲーム開発に特化したFlashの強化に当たっているという。時期ははっきりとしていないが、次期ActionScriptは、ゲーム用途の機能が追加されたり強化されたりするという。また、最近のFlashではStage3DによるGPUのサポートのかいなどもあり、ゲーム開発会社から「最近のFlashはとても良くなってきている」といったフィードバックも得られるようになってきているそうだ。

 チボ氏に寄れば、AIRの使い方は2通り存在するという。1つはGPUを理解している人が、初めから高パフォーマンスなコンテンツを開発すること。そしてもう1つは、カッコイイものを作っておいて、後からチューニングを施していく方法だ。

 Flash制作者は「何がカッコイイか」は理解できていると思う。それであれば、ブラウザ上で動作するゲーム開発に挑戦してみるのも、一考だと筆者は感じている。

 そしてそれを後押しするようにチボ氏は続ける。氏はブラウザ上で動作するゲームを見る度に、Flashはブラウザのコンソールになってきているなと感じるという。

 チボ氏は、ゲーム業界のコンソールの役割は、ある程度まとまった数のユーザーを、ゲーム開発者へ提供することとすれば、FlashPlayerのリーチを利用して、コンソールの役割を持たせることができるのではないか、と話した。

著者プロフィール

岡本紳吾(おかもとしんご)1975年大阪生まれ。2000年頃よりAdobe Flash(当時はmacromedia)を使ったコンテンツ制作を始め、Flash歴は異様に長い。自他共に認めるFlash大好きっ子。2008年より活動の拠点を東京に移し、2011年に独立。WEBプロデュースと制作と山岳メディア運営の会社、hatte Inc.代表取締役。

Twitter:@hage、Facebook:shingo.okamoto


「UX Clip」バックナンバー

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

Focus

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。