【ひらブラ vol.35】快適な音ゲーをAndroidでも実現するための試み(シリーズ)
2014-09-12 12:00 投稿
遅延のない音ゲーを目指して
ひらブラの連載開始の際にも宣言しましたが、このブログでは、リリース前の現在開発中の「新しい技術」「新しい機能」についても積極的にご紹介したいと思っています。
そんなわけで、今回ご紹介するのは、ずばり『遅延のない音ゲーをAndroid上の端末で実現する』ための研究と実験成果です。
先日行われたゲーム開発者向けのカンファレンス「CEDEC2014」でもお披露目した技術ですが、「音ゲー」などのAndroid端末での遅延の問題に悩んでいるゲームクリエイターの方からの注目を集めました。
CEDECに来場できなかった方も多かったと思いますので、ここ、ひらブラでもご紹介したいと思います。
また、以前のエントリ「【vol.7】スマホで「音ゲー」3つの課題(ハマるな危険!アプリ開発の落とし穴)」の記事内でも音声遅延の問題に触れたところ、多くの反響を頂きましたので、その後の途中報告として今回のエントリをお読み頂ければと思います。
以前も書きましたが、Android端末では、音声遅延の問題がゲーム企業のあいだで大きな問題になっています。なかには、この遅延の問題が解決できず、Androidでのリリースを諦めて、やむなくiOSだけにリリースされているタイトルもあったりします。また、ゲームだけでなく、楽器や教育アプリなど、音のタイミングの重要性が高いアプリも同様の悩みを抱えていると聞いております。
ミドルウェアの使命としては、なるべく多くのユーザの方に、OSや端末を限定せずにゲームを遊んでもらえる環境を提供したいです。また、それによって、ゲーム企業やゲームクリエイターのビジネスチャンスや活躍の場を最大化したいです。そんな強い思いから、この問題の解決に取り組んでいます。
そこで、今回ご紹介するのは、当社オーディオミドルウェア「CRI ADX2」の拡張機能により、Android端末の「画面表示と音声発音」のズレ幅を自動的に検出して補正する機能です。
vol.7 の記事内でも触れたとおり、音声再生レイテンシの課題は、次の3つに大別できます。
(a) 再生時刻と聴こえる音のズレ
(b) タッチ操作の判定遅延
(c) タッチ音の再生遅延
今回の機能は、上記のうち(a)の課題を解決するのに役立つものを目指しています。
まだ現時点では実験段階ではありますが、近い将来、ADX2のひとつの機能としてリリースしたいと思っています。「待てない!実験の詳細を知りたい!実験に参加したい!」というアグレッシブな企業のかたは、こっそりとご連絡下さい。
遅延を「見える化」してみる
では、今回の新機能の詳細をご紹介していきたいと思います。
CEDECの当社セッション内で使用したスライドを使いながら説明します。記事の最後に、実際のデモを動画で撮影したものをご覧頂けますので、先に動画を観たい!という方は、こちらをクリックして下さい。
スライドにもあるとおり、今回ご紹介する実験中の機能は「サウンド再生レイテンシ対策」を目的としています。
「音楽に合わせてキャラを動かす」「ユーザのスワイプ操作に合わせて音を鳴らす」「音ゲーを作る」、こうしたアプリを作ろうとすると、絵(画面)と音のタイミングが合わないという問題が発生することが多いです。現状、Androidでは難しい演出と言えます。
そこで、まずは課題を整理してみます。
サウンド再生レイテンシは、タッチ操作や指定時間の到来などの「再生のきっかけ」から「プログラムによる再生指示」までにかかる時間のことを指します。Androidの場合は、この再生レイテンシが一般的に遅く、また厄介なことに、機種によって非常に差異が大きくなっています。さらに、そうした機種差をまとめたデータベースなども存在しません。
音とシンクロした演出の際、鍵になるのは「音声の再生時刻」ですが、残念ながら、その再生時刻は「実際の音」とズレてしまっていることが多くあります。先の「サウンド再生レイテンシ」とともに、この再生時刻と実際の音とのズレも問題になります。
次に、音ゲーを例にとって、3つのステップに分けて、考えてみます。
最初のステップ「Step 0」は「綺麗に音が鳴る」ことです。ADX2を使っている場合は、サウンドバッファを多めに取ることで対策をします。
次に「Step 1」は「音楽のリズムに合わせてマーカーが動く」ことです。先述のとおり、再生時刻と聴こえる音を一致させなければなりません。今回の実験では、この「Step 1」の解決を狙います。
そして「Step 2」は「タッチ音が気持ちよく鳴る」ことです。ADX2を使っている場合は、Android用に用意されている低レイテンシ再生モードを使うことで対策をします。
では、「Step 2」の問題と、その解決策についてもう少し詳しく迫ります。
音楽に合わせてマーカーを動かすためには、当たり前ですが、音楽の再生時刻に合わせることです。ただ、再生レイテンシの影響により、再生時刻と実際の音が一致しない状況が発生します。
この問題を解決するには、「アプリ側で再生時刻を補正する」のが有効ですが、通常の方法では、あまり現実的ではありません。というのも、機種によって補正する数値が異なってしまうからです。
実際に端末実機で自社のアプリを動かして補正値を探っていくという方法もありますが、Android端末とOSの組み合わせの数を考えると、気の遠くなる作業です。海外で発売されている端末も視野に入れると、やはりこの方法では限界があります。
そこで生まれたのが、今回ご紹介する「端末の再生レイテンシをプログラムで推測する」というアプローチです。
遅延を推測するアプローチ(デモ動画)
では、いよいよ実際のデモ動画をご覧頂きたいと思います。
上記のデモ動画にも解説ナレーションが入っていますが、以下、今回のデモの詳細について説明します。
まず機材構成から。
中央にあるのが市販されているAndroidスマートフォンで、ヘッドフォン端子から外部スピーカーに出力していますが、その間にマイクプリアンプ(TASCAM UH-7000)を経由するようにしています。これは、Androidフォンが出力した音声が「実際に鳴る瞬間」を視覚化するためで、アンプ前面のレベルメーターで「実際に音が鳴る瞬間」を目で確認できるようにしています。
デモアプリは、定期的な周期で音を鳴らしながら、音の鳴る瞬間に画面背景の色を「青→橙→青→橙→…」と交互に変えるようにプログラムされています。
画面内のマーカーは、音ゲーのようなインタフェースをイメージしており、右から流れてくるマーカーがいちばん左のマーク部分に来ると音が鳴るようになっています。
つまり、「画面背景の色の切り替わりタイミング」=「マーカーが左端に到達したタイミング」=『音が鳴る瞬間』ということになります。
・・・どうでしょう?
プログラムでは、そのように規定しているのに、実機での発音を実際に確認してみると、音の鳴る瞬間と、背景色の変わるタイミングは、明らかにズレていることがお解り頂けると思います。
これが、Androidの音声レイテンシです。
ちょっと解りにくいという方は、Androidフォンの画面背景色の変わるタイミングと、アンプ本体のレベルメーターが上がるタイミングを、ぜひ比較してみてください。音ではなく、視覚的に「ズレ」を認識して頂けると思います。
ここで、いったん音を止めて、ADX2の拡張機能によって、この端末の再生レイテンシを自動推測します。その結果、約290msecという数値が得られました(かなりの遅延が発生していることが分かります)。
そこで、この290msecという数値をもとに補正を行い、再度、デモプログラムを実行します。
補正後の発音タイミングは、画面背景色の切り替わりタイミングと「白いマーカー」によって表現されています(比較のために黄色いマーカーは補正前のタイミングを表しています)。もちろん、アンプ側のレベルメーターは実際のオーディオ入力信号を拾って表示しているので、補正前と変わりません。
・・・補正後の状況はどうでしょうか?
かなりズレが解消されていることがお解り頂けるかと思います。
この技術の最大のポイントは、290msecというレイテンシの値を「自動検出」して補正している点です。
これにより、開発者の方は、いちいち端末ごとに補正値を設定するといった面倒をしなくても、動的にレイテンシの問題を解決できるようになります。
開発者のみなさんのお手元に届けるためにはまだもう少し実験と検証を続ける必要がありますが、ご意見やご感想をお聞きしながらより良いソリューションにしていければと思っていますので、ご連絡をお待ちしています。
というわけで、今週のひらブラはここまで。
また次回の更新でお会いしましょう!
【ひらブラ公式facebookページ】
最新記事の更新情報や、記事には書けなかったウラ話、はみだしコラムなど、『ひらブラ』に関する情報を随時更新中。ページに「いいね!」をして頂ければつねに最新の情報をアナタのfacebookのタイムラインにお届けします!
http://crimw.me/fb-hirabla
【バックナンバー】
※【ひらブラ vol.33】ゲームがアツい”秋”が到来!CEDEC & 東京ゲームショウ
※【ひらブラ vol.32】看護師不足をゲーム技術で解決する(CRIのヘルスケア事業)
※【ひらブラ vol.31】クリエイティビティの背後には「技術」あり
※【ひらブラ vol.30】「コントローラの正しい持ち方」を教えてくれた人
※【ひらブラ vol.29】ありえないほど近い!のススメ(オトナ向けシルクを観てきた話)
※【ひらブラ vol.28】Cocos2d-xに関するニュースと、大学で講義した話
※【ひらブラ vol.27】ウェアラブルで生活してみたよ(休日編)
※【ひらブラ vol.26】ウェアラブルで生活してみたよ(平日編)
※【ひらブラ vol.25】Google I/O に行ってきました!(読者プレゼントもあります)
※【ひらブラ vol.23】ゲームはタブレットをサポートすべきか(アンケート集計結果から)
※【ひらブラ vol.22】CRIロードマップを「ファミ通」読者さま向けに読み解いてみた
※【ひらブラ vol.20】認識系ブラックボックス最前線(Part-2)
※【ひらブラ vol.19】認識系ブラックボックス最前線(Part-1)
※【ひらブラ vol.18】アルファムービーってどうやって作ったらいいの?
※【ひらブラ vol.17】タブレット向けゲームに関する緊急アンケート(プレゼント付)
※【ひらブラ vol.15】未来から来た行商人からモノを買ってみた
※【ひらブラ vol.14】ワンフリ、ガンソ、Republique!人気アプリの「音」のヒミツ
※【ひらブラ vol.13】お台場に1000人のスマゲ開発者が集結!? CRI Uniteレポート(前編)
※【ひらブラ vol.12】行動変容の春だから…「人生をゲーム化してみよう」
※【ひらブラ vol.11】長く遊べるゲームを低コストでつくるには(ナラティブなゲームってなんだろう?)
※【ひらブラ vol.10】ゲームとムービーの歴史を振り返ってみよう!(最新の動画演出とUnity)
※【ひらブラ vol.9】目にみえないデータの恐怖と魅力(Unityオーディオの独自強化)
※【ひらブラ vol.8】CarPlayはOSか?(ゲームのリッチ化とUnityについて)
※【ひらブラ vol.7】スマホで「音ゲー」3つの課題(ハマるな危険!アプリ開発の落とし穴)
※【ひらブラ vol.6】雪を溶かすメカニズム知ってる?(プロデューサー説得トラの巻)
※【ひらブラ vol.5】ギョーカイ用語は「言葉」のブラックボックス
※【ひらブラ vol.4】gumi田村さんに訊く「ズバリ!Cocos2d-xのココが魅力」
※【ひらブラ vol.3】ドラクエの起動画面のひみつ(続・Cocos2d-xとCRIWAREの話)
※vol.1-4:福袋も飛行機もゲームも?ゲーム開発を支える”黒い箱”とは
※vol.1-3:福袋も飛行機もゲームも?ゲーム開発を支える”黒い箱”とは
※vol.1-2:福袋も飛行機もゲームも?ゲーム開発を支える”黒い箱”とは
※vol.1-1:福袋も飛行機もゲームも?ゲーム開発を支える”黒い箱”とは
読者の方からのご意見ご感想やご質問なども大歓迎です。以下のコンタクトフォームからどうぞ。なるべく多くの方のご意見に誠意をもってお返事したいと思っております。
幅朝徳(はば とものり) 株式会社CRI・ミドルウェア 商品戦略室 室長、CRIWAREエヴァンジェリスト。学習院大学卒業後、CRIの前身である株式会社CSK総合研究所に入社。ゲームプランニングやマーケティング業務を経て、現CRIのミドルウェア事業立ち上げに創業期から参画。セガサターンやドリームキャストをきっかけに産声を上げたミドルウェア技術を、任天堂・ソニー・マイクロソフトが展開するすべての家庭用ゲーム機に展開。その後、モバイル事業の責任者として初代iPhone発売当時からミドルウェアのスマートフォン対応を積極推進。GREE社やnhn社といった企業とのコラボでミドルウェアの特性を活かしたアプリのプロデュースも行う。近年は、ゲームで培った技術やノウハウの異業種展開として、メガファーマと呼ばれる大手製薬会社のMR(医療情報担当者)向けのiPadを使ったSFAシステムを開発、製薬業界シェアNo.1を獲得しゲーミフィケーションやゲームニクスの事業化を手掛ける。現在、さらなる新規の事業開拓や未来のサービス開発を担当する傍ら、ますます本格化するスマホゲームのリッチ化を支援するためにモバイルゲーム開発者におけるミドルウェア技術の認知向上のためエヴァンジェリストとしての活動に注力中。
趣味は、映画鑑賞とドライブ、クロースアップマジック、デジスコによる野鳥撮影、コンパニオンバードの飼育、そしてもちろん、ゲーム。
CRI・ミドルウェア ウェブサイト
http://www.cri-mw.co.jp/
最新記事
この記事と同じカテゴリの最新記事一覧
【ひらブラ vol.58】ミドルウェアはコストか?
2015-03-20 12:00【ひらブラ vol.57】どれ買い?Apple Watch発売まで38日!
2015-03-13 14:40【ひらブラ vol.56】過去の自分からの挑戦状「ブラックボックスの中身は?」
2015-03-06 12:00【ひらブラ vol.55】快適な音ゲーをAndroidでも実現するための試み(Part.2)『遅延の自動推測(ADX2新機能)』
2015-02-27 12:00