Wiiのジェスチャ認識実装を助けるミドルウェア「LiveMove」

リモコンを使ったジェスチャによる直感的な入力が話題のWii。一方で、自分は以前からジェスチャ入力の学術的困難さなどを何度か指摘していました。

「任天堂が挑むべき課題」について
Elebits開発者インタビューから見る、Wiiの明と暗
任天堂説明会レポートの重箱の隅

ただ、自分程度が思いつくような不安要素は、いつものごとく任天堂は意識しているようで、やはりジェスチャ認識はジェスチャ認識で注力し、特別にミドルウェア(以下MW)を開発させていたようです。

Wii開発者を助ける強い味方「LiveMove」がリリース(2) - Nintendo iNSIDE

上記記事自体は1週間ほど前のニュースになりますが、ちょうど今日更新された「社長が訊く Wii プロジェクト - Vol.4 『Wii Sports』編 第4回」でLiveMoveの内容に触れられたこともあるので、詳細について触れてみたいと思います。

LiveMoveについて

上記のiNSIDEさんの記事によれば、2006年初めには依頼されていたようですね。Wiiインタビューでの竹田氏の話では、ニンテンドウ64の反省に基づき、「任天堂とサードとのノウハウの差を埋める」ということが主目的のようです。

AiLiveがどういう会社なのかよく知りませんでしたが、HPの方をみるとジェスチャ認識のLiveMove以外に、ゲーム中のキャラのAIを生成するLiveCombatというゲームも開発しているようです。LiveCombatはざっと見た感じでは、誰かが操作したデータに基づいてAIを自動生成する、という技術みたいですね。LiveMoveについても枠組みは同じで、実際のだれかの動きをキャプチャして登録し、それに基づいてジェスチャ認識する、というもののようです。

このLiveMoveについては、その概要がAiLive公式HPの以下のページにイラスト付きで記載されています。
AiLive - LiveMove
また、さらに詳細が以下のページに記載されてます。
AiLive - LiveMove Information

上記ページでは、このLiveMoveの仕様について興味深い仕様が記載されていますね。

  • 8つのWiiリモコンorヌンチャクでの40種類までの異なる動作を、WiiのCPU使用率5%以下で同時に認識可能
  • 総メモリ使用量は概して700KB以下

ジェスチャ認識はただのコントローラのボタンのON/OFFに比べれば桁違いに処理量がかかることが想定されるのですが、このMWはCPU使用率5%で40種類までの異なる動作を認識可能と言うことで、それほどCPUに大きな負荷をかけることなく認識可能なようです。メモリ使用量もそれほど大きくないので、「ジェスチャ認識やる分、ただでさえPS3などほど協力でないWiiの処理能力が大きく削られてしまう」という非難は避けることができそうです。

LiveMoveデモ動画

LiveMoveのデモ動画も上記ページで公開されていますが、それをYouTubeに転載されたものがあったので、そちらを紹介しておきます。

ただこれは英語オンリーで、先週見た団塊では正直細かい部分の説明までは分かりませんでした。しかし、今日のWiiインタビューで、なんとこの動画を字幕付きで和訳されたバージョンが動画で公開しているではありませんか!
AiLive LiveMove 紹介ムービー - Wii
こうした情報公開努力は本当、すばらしいですね。字幕の打ち方がニンドリのE3特集DVDと似ているのですが、もしかしたら何か関係しているかも知れませんね。ほぼ日の例もありますし。


動画では3部構成で、「Part 1 Using LiveMove」では、5つほどの動作をGUI操作で登録する様子が紹介されてます。1つ1つのジェスチャを複数回入力し、1つの動作名をつけて保存しています。それらを最後に1つのプロジェクトにインポートしてやることで、5つの動作を認識できるエンジンのできあがり、という感じのようです。GUIのみのシンプルな操作を実現していますね。


「Part2 LiveMove Capability」では、実際にその認識エンジンがどのようにジェスチャを判別するのかを紹介しています。ちょっと動画の解像度が小さくて見づらいですが、左側で人物が動作すると、その認識結果が右側にテキストで表示される、と言う感じですね。面白いのは最後の「プロサーブ」のところ。つまり、素人でもできる雑なサーブ動作と、プロのテニスプレーヤに登録してもらったジェスチャとの2種類を用意し、プロのサーブに近い動きをすることでよりするどいサーブが打てると言うことですね。

これは、Wiiインタビューでも書かれていましたが、「テレビゲームがうまい人より、実際のテニスがうまい人の方が強い」という可能性が出てくるわけです。これは実に面白いですね。テレビゲームでは、スポーツなどのゲームで本職の人がゲーマーにこてんぱんにされるということがよくあったわけですが、ようやくそれが挽回できるチャンスも出てきたわけです。(もっとも、WiiPreviewでは宮本茂氏が本職の杉山愛選手にWiiテニスで勝っていたので、なんだかんだ言ってゲームがうまい人が強いとはおもうのですがw。)


「Part3 LiveMove: Balloon Pop」では、デモゲームを実演していますね。数字をジェスチャで入力すると瞬時に認識してその数字の書かれた風船を壊す、というものです。数字以外は認識せず、正しく、しかも結構忙しいものでも正確に認識できていることをアピールするデモのようです。後半では、2プレイでもうまく動く、というデモのようですが、結構ミサイルが落下しているように見えます。これは、この対戦デモでは単に早い者勝ちで数字がなくなるため、ということなんでしょうね。

ホワイトペーパーから見る技術概要

これ以上の詳しい情報も、PDFのWhite paperが公開されていて見ることができます。(ホワイトペーパーについては次のページを参照→[ホワイトペーパー]
LiveMoveの発表当時は英語のホワイトペーパー(PDF)しかなかったのですが、今日見に行ったらなんと日本語版PDFが公開されていました。英語版では読み解くに苦労していただけに、日本語版は実にありがたいですね。
以下に、自分なりにざっと読んだ特徴を以下に記しておきます。(できれば、皆さんも目を通すことをおすすめします。)

コンテキストラーニング技術に基づくジェスチャ認識

ジェスチャ認識には、AiLiveが特許出願中のコンテキストラーニング技術が用いられているようです。これは、機械学習のための技術で、実際の入力を様々なパラメータと状況別に学習させることができるようです。こうした機械学習自体はアカデミックな意味では珍しくはないようですが、ゲームに特化し、実用になる速度で動作するものとしては他にないレベルのもの、とうたっていますね。

この技術を用いることで、Wiiでは約100,000もの特徴と、何百万もの潜在的コンテキスト(時間、空間的文脈とその状況)を持つ特徴空間を作り出し、その空間でプレーヤーの動きを評価することができるようです。処理コストは前述のようにCPUの5%以下。モーション終了と同時にクラス分類が可能、と記載されています。

モーション終了と同時にクラスタリングというのは、たしかに高速ではあるのですが、逆に言えばどうしてもそれだけの遅延は生じる、と言う意味ではありますね。よりユーザの動きにダイレクトに認識させるためには、段階的なクラスタリングクラスタリングの先取り機能などが今後必要となると思われます。つまり、モーションが終わる前に認識を初め、ある程度のところで初期動作としてゲーム中に反映、後半の動きはさらに認識反映、と言う感じですね。コマンド的な入力でも、前半の動きだけで動きを特定してしまう、認識打ち切り処理を入れると、よりダイレクトで遅延の少ない認識ができるように思います。もっとも、それをやるにはより高度な学習技術、認識技術が必要となるわけで、アカデミックなレベルでの研究も求められるところだと思います。

コーディング不要の学習・認識モジュール

LiveMoveの特徴は、その学習・認識能力そのものだけではなく、「コーディングが不要である」ということにもあります。GUIで学習・認識の双方が可能となっています。Wiiインタビューでも、どうぶつの森でも有名な江口氏が「ぼくなんかはプログラムを書かない人間なので、自分で実験することができてうれしいですね。」と言っていますが、プログラマーでない人でも気軽に可能性を探ることができるというのは、実にすばらしいことです。

つまり、プログラミング技術が無かったとしても、「面白そうなジェスチャ入力はなにか」を、誰でも検討できる訳ですよね。Wiiインタビューにもあるように、文系の人でもゲーム作りにセンスを発揮できるようになったわけです。どうしても理系プログラマにはオタク的な人がおおかったり、考え方が固くて偏っていたりしますからね。DS以降の「アイデア勝負」な風潮では、どれだけ多くの人がアイデアを試せる環境に立てるか、も非常に重要なことでしょう。

曖昧な認識を可能とする“Slack”パラメータ

GUIで動作を学習・認識させるLiveMoveですが、いくつか特徴的な機能もあります。その一つが”Slack”というパラメータ。直訳すると「ゆるみ」とか言う意味ですが、要するに「どこまで動きを厳密に判定するか」という指標のようです。この値を大きくすることで、雑な動作でもなんらかの動きとして認識されやすくなります。ホワイトペーパーでは、スパイアクションのような厳密性を要するものではSlackの値を小さく、ボクシングのようにとにかく認識間違ってもなんらかのパンチが出た方がいいものはSlackを大きくする、と例を出していますね。

このあたりは、完全にゲームデザインの話になりますよね。LiveMoveを使っていても、このあたりのパラメータチューニングの差で、ソフトメーカー感の差が出てくるように感じます。

認識する動作に合わせた“Capacity”の設定

LiveMoveは機械学習技術の応用なのですが、その機械学習ではCapacityという、学習する特徴空間の最大複雑度を表す言葉があるようです。特徴空間を複雑にすればするほど、より微妙な動きまで学習、認識できるようにはなるわけですが、複雑な分、処理量は大きくなってしまい、間違った学習結果、ノイズを含む率も増えてしまうとのこと。単に複雑にすればいいというものではないようですね。

これもゲームデザイナー次第で、どんな動作を入力させたいのか、それはどの程度複雑なものか、という分析を行った上で、Capacityの最適化を検討することも、ゲーム開発者の作業となりそうです。

ユーザ固有のジェスチャに対応するチューニング機能

他にも特徴的な機能として、「チューニング機能」というものがあります。これは、あらかじめメーカー側が学習させた特定の動きだけでなく、追加でユーザ自身が自分のやりやすい動作を覚えさせることができる、というものです。もちろん、ユーザ側でチューニングするというのは面倒さを伴うものではありますが、その面倒さを加えてでも、より自分の思い通りの操作で入力したいと思うユーザーも多くいるでしょう。

チューニング機能を用意するかどうかも、これまたゲームデザイナーの判断次第ではありますが、MW自体にそうした選択可能な自由度があることの意義は大きいと思います。このあたりをどうプレーヤーに分かりやすい形で提供できるかもノウハウとなってきそうです。

まとめ 〜 もう一つの「リアリティ」の実現へ

こうしてみると、LiveMoveにより高度なプログラミングをせずとも、GUIで手軽にジェスチャ入力を実現できることが分かります。一方で、調整のためのパラメータもいくつか残されており、これらをどうセッティングするかで、認識精度やプレーヤーの「気持ちよさ」が変わってくるように感じられます。より、感覚的なチューニングノウハウが重要になってくる感じですね。


TVゲームの世界では、これまでずっと「リアリティ」を高める努力がなされ、様々な最新技術がとりいれられています。

空間的リアルさ →3Dグラフィックス
キャラの動きのリアルさ モーションキャプチャー
物体の動きのリアルさ →物理演算

これらは、基本的に「映像のリアルさ」を高めるものでした。これはこれで、リアルさ追求には重要なことです。今回Wiiはこれに加えて、

プレーヤーの動きのリアルさ →ジェスチャ認識

をより汎用性が高い形で取り込んだ訳です。eyeToyなども同じ路線ではあるのですが、Wiiの方がより広くより細かい入力も可能なところが、新世代を感じさせますね。


理想的なバーチャルリアリティとしては、本来は「映像のリアルさ」と「入力のリアルさ」両方を兼ね備える必要があるでしょう。さらには、立体ディスプレイなどを使った、「視覚的なリアルさ」、マルチチャンネル音声を使った「聴覚的なリアルさ」、はてはにおい生成装置をつかった「嗅覚的リアルさ」などもあるわけですが、このあたりはどうしても大きなスペースが必要であったり、追加で特殊なデバイスが必要でなかなか難しいところはありますね。現状ではせいぜい7.1chぐらいでしょうか。


とりあえず、次世代ゲーム機レベルではまだまだ本当の「リアリティ」は実現できてません。「映像のリアルさ」と「入力のリアルさ」、PS3Xbox360Wiiではその偏り具合が異なります。果たして、どちらのリアリティが消費者に受け入れられるのか、興味深いところですね。浜村通信が常に言っているように、どっちも受け入れられる可能性も無くはないですが、任天堂的には、前回のWiiインタビューにあった、以下のような感想を多数に抱いて欲しいと思っているでしょうね。

あと、E3会場をずっと見て回っていたであろう
外国人の方が、『Wii Sports』の野球で遊んだあと、
いきなりぼくに向かって
「リアルなグラフィックのゲームをたくさん見てきたけど
 今回のE3では、これがいちばんリアルだ!
 これが本当のリアルだ!」
って熱く語りかけてきたんですよ(笑)。

果たしてその目論見通り、ことが進みますかどうか。今後1年ぐらいの動向で、ある程度判断できる気がしますね。