CG_c03_photo_main_sashikae2

JULY 18, 2014

音楽とダンスをシンクロさせるミュージックアプリ『aDanza』開発者インタビュー vol.1
プログラマー 寺本憲明

どんなジャンルの音楽でも、キャラクターがリズムに乗ってダンスする。その仕組みを支えるヒミツとは?

これまで、任天堂ゲームを中心に『ポケパーク』シリーズ、『ポケモンレンジャー』シリーズ、『ちっちゃいエイリアン』『ポケモンカードゲーム』シリーズなど、革新的なタイトルを手がけてきたクリーチャーズ。そのクリーチャーズが新たにアプリに挑戦。ユーザーが好きな音楽をかけながら、リアルな動物や昆虫(!)のダンスを楽しめる、iOS用の新感覚ミュージックアプリ『aDanza』です。プログラミングを手がけた寺本憲明に、『aDanza』の仕組みについて聞きました。

 

Profile:

クリーチャーズ 開発2部 PGチーム / プログラマー 寺本憲明
学生時代より、任天堂ゲームタイトルのデバッグ作業やプログラミングのアルバイトを経験し、SFC『マリオペイント』開発に参加。その後、制作会社のゲームプログラマーとしてGB『マリオのピクロス』、GB『ポケットカメラ』、GB & GBC『ポケモンピンボール』、GBC『ちっちゃいエイリアン』など、多数のゲーム開発を手がける。2011年に上京し、かねてより親交のあった田中宏和率いる株式会社クリーチャーズに入社した後は、Wii『ポケパーク2』、3DS『ポケモンARサーチャー』の開発を行ってきた。

ミュージックプレイヤー『aDanza』開発の始まり

寺本憲明は、ファミコン時代から任天堂関連タイトルの開発会社に所属し、現在に至るまで多岐に渡るタイトルを手がけてきたベテランプログラマーです。

寺本:私が『aDanza』の開発に携わるようになったのは、去年の3月くらいから。当時、固まっていたのは「iTunesライブラリの音楽に合わせて、キャラクターを踊らせたい」というコンセプトだけ。開発準備用として、仮キャラクターのモデリングデータをのせたプログラムはありましたが、まだオリジナルキャラクターのデザインをどうするかは決まっていませんでした。

CG_c03_photo_01

研究段階では、音を拾ってダミーの人型が動く仕組みだった。

音楽とダンスをリンクさせるための方法「フーリエ変換」

「音楽に合わせて、キャラクターを踊らせる」というアプリのコンセプトは決まっていましたが、踊らせるための具体的なプログラム手段はまだ未定。そこで寺本さんが提案したのが、音楽データを周波数解析する手法の1つ、「フーリエ変換」でした。フーリエ変換とは、重なり合った異なる帯域の音を、周波数ごとに分離する方法のことです。

寺本:実は最初は、研究というよりほとんど遊びに近い状態でした(笑)。他のスタッフたちと、ダミーの人型をいろいろな方法で踊らせて楽しんでいたんです。たとえば、人型の各部分に音を当てはめて、ある高音が鳴ると右ヒジが上がり、別の音が鳴ると前屈する、などのサンプルも作りました。そうやってさまざまな仕組みで遊ぶ中で、フーリエ変換を取り入れてみたら「これはいい動きをするな」ということになったんです。今思えば、そのときに音に合わせてキャラクターを動かす面白さというのを体感していたんでしょうね。

フーリエ変換が音楽に役立っている身近な例としては、MP3などの音声圧縮技術があります。MP3は人間の耳にとって、音質の劣化を感じさせない周波数や帯域だけをカットしてデータ容量を圧縮します。その帯域ごとの周波数を抽出するために使われる方法が、フーリエ変換です。では実際に、フーリエ変換によって抽出された音楽データとキャラクターのダンスの動きをどう結びつけたのでしょうか?

寺本:音楽と何かをリンクさせるために、「曲のテンポ=BPM」で合わせるというのが一般的な方法なのですが、ダンスの動きでリズムを感じさせるようなグルーヴ感が重要だと思ったので、ドラムやベース音が集まっている低域の周波数を抽出しました。高域だとテンポにメリハリが少なく、ダンスの動きが悪いのです。そして、抽出した音をアニメーションのスピードを管理する変数に当てることによって、ダンスのスピードをコントロールするようにしたんです。

CG_c03_photo_02

『aDanza』

トライ&エラーの開発をバックアップした開発ツールUnity

ちなみに今回、『aDanza』の開発に使われたツールは「Unity」。コンシューマゲーム機やウェブゲームなど、さまざまな環境に向けて高度な3Dアプリケーションを制作するための統合型ゲーム開発環境です。Unityは専用の開発機がなくても、WindowsやMacOS上で手軽に動作させられるため、iOS、Androidなどのアプリケーション開発にも多く使われています。

寺本:キャラクターのダンスを音楽の低音に対応させるといっても、どこからどこまでの範囲の周波数を抽出すべきかは、試行錯誤の繰り返しでした。でも、「Unity」はGUIが発達したツールなので、周波数帯を調整するのも画面上の操作で簡単にできます。それをリアルタイムに加減し、仮のモデルを動かしながら、どんなジャンルの曲をかけても、見映えのいいダンスを楽しめるレンジを探っていきました。そのあたりは完全にアナログ作業で、トライ&エラーの繰り返しでしたね。

CG_c03_photo_03

Unityでは背景チェックも行う。カメラワークや立体物の影の入れ方なども寺本が確認。

30秒間でループする振付が生み出すグルーヴ感

『aDanza』では、ユーザーが再生する楽曲もいろいろ、曲の長さにも決まりがないので、キャラクターのダンスは、約30秒間の振付をループさせることで表現しています。

寺本:現状、キャラクターは、カエル、アルパカ、カブトムシの3種類。それぞれのキャラクターごとに、ブレイクダンスやアイドルダンス、阿波踊りなど、ダンスのジャンルも異なっています。モーションキャプチャの収録には、プロのダンサーさんに来ていただいて、さまざまなジャンルのダンスをしていただきました。データとして必要なのは、わずか30秒間の振付なんですが、最終的にはキャラクターがループしながら踊るので、振付がスタートするポーズと終わるポーズが同じでないと、ダンスが滑らかに繋がらないという難しさもありましたね。

実際に『aDanza』でキャラクターをダンスさせてみると、前述の寺本さんの言葉にもあったように、曲のテンポ(BPM)が速ければ、ダンスのスピードも速くなるという単純な連動ではなく、あくまでリズムの強弱がダンスの速度にも関係していることがわかります。そのユニークな動きの感覚も、『aDanza』独自の面白さといえます。

寺本:そういう面白さも、すべて最初から計画済みだったわけではなく、テストを重ねて、細かく追究していくうちに、そうなったというのが正直なところです。企画当初はBPMを解析してダンスに連動させようという案もありましたが、それだと逆にさらに手間がかかってしまったかもしれません。

CG_c03_photo_04

プロのダンサーさんの動きをキャプチャ

『aDanza』が見せる、これからの可能性

3DCGでリアルに描かれた動物や昆虫たちが、好きな音楽に合わせて本格的なモーションで踊るという、ミュージックアプリとして、今までにないユニークな個性を楽しめる『aDanza』。β版開発を終えた寺本が、今後に向けて思うことは?

寺本:ユーザーの意見を取り入れたオリジナルのキャラクターや振付が実現できたら楽しいですね。私が過去に手がけてきたコンシューマゲームは、最初に発売したパッケージ内で全てを完結しなければいけませんでしたが、iPhoneアプリはデータを随時、手軽に追加できるのも魅力。できるだけユーザーとやり取りをしながら、『aDanza』をより面白いアプリにしていきたいです。

システム面でも、今回実装できなかったアイデアがまだまだあるそうです。

寺本:現在、ダンスと連動させるために抽出している音響データは低音部のみですが、開発中には低音部と高音部を抽出して、それらを切り替えられるバージョンも実はあったんです。操作が複雑になってしまうので、今回は入れませんでしたが……。他にも例えば、特定の楽器音にだけ対応させることも、技術的には不可能ではありません。なので、『aDanza』を遊んでくださったユーザーからもし要望があれば、システムのバージョンアップを行うことも可能だと思います。

最後に、オススメの使い方を教えてもらいました。

寺本:好きな音楽でキャラクターを踊らせるのも楽しいですが、音楽ではない音データを試してみるのもかなり面白いです。スタッフ内でデバッグ中に流行っていたのは、落語や漫談などのトーク系。喋りにもテンポやリズムがあるので、音楽とは違うキャラクターの動きが楽しめるんです。ニュース音声も面白いですし、ぜひいろいろ試してみてください。そして、感想やご意見をたくさん聞かせていただけたら嬉しいですね。

CG_c03_photo_05_sashikae

開発2部 PGチーム / プログラマー 寺本憲明

ご感想やご意見はこちら
garage-info@creatures.co.jp

PAGE TOP