iii

刊行によせて先端技術があっと言う間に大衆化する。ゲーム機器がもたらす革命は、家庭での娯楽を一変させるだけでなく、研究者にとっても新しい時代の到来を意味していた。WiiRemote の登場で、加速度センサー、高速赤外線センサー、Bluetooth 接続がお茶の間の技術になったのである。本書には、WiiRemote の安価で頑健で多機能という恩恵を PC でも享受するための試行錯誤が凝縮されている。プログラミングのノウハウはもちろんのこと、エンジニ
アとしての心構えや対話的システム開発のお作法、来たるべき未来への予言まで、本書のメッセージは多岐にわたる。また、新たな発想による応用例の数々に刺激を受ける読者も多いことだろう。本書に散りばめられたさまざまなヒントを、ぜひ活かしていただきたい。
             ─── 東京大学工学部電子情報工学科准教授・       日本 VR 学会アート＆エンタテインメント研究委員会委員長

苗村 健

メディアアート道はキビシく、メディア芸術の教科書はあいかわらず足りないけど、これからは魅惑と誘惑に満ちた禁断の書『WiiRemote プログラミング』がある―プログラミン
グといえば 25 年前になぜか FORTRAN でお絵かきを習ったきりですが（笑）。そんな私でも自信をもってお薦めできます！ ユニークでクリエイティブなプログラミングを楽しみつつ、WiiRemote から生まれる、賢く可愛くあやしくクールでおバカでオモロい作品を待っています。
─── 東京都現代美術館学芸員・SIGGRAPH Asia2008 Art Gallery/E-tech 議長

森山朋絵

この本が読みやすくわかりやすいのにはちゃんと理由がある。白井君は工学部の学生時
代から芸術系の学生に技を教え、コラボレーションし（その成果が第 10 章に登場する
Fantastic Phantom Slipper）、さらにそのような場をより広げるために国際学生対抗 VR コ
ンテストを支え、フランスでも語学と格闘しながら研究と制作を指導してきた。技術開発とコンテンツ制作の両方に携わる専門家というだけでなく、技術とアートをつなぐコミュ
ニケーションのプロとして長いキャリアがあり、その底にあるテクノロジーとアートの未来に対する熱い思いは、本書からも伝わってくる。メディアアートを目指す人たちが、この本を使いこなして作品に新しい領域を開くことを期待している。
─── 早稲田大学文化構想学部教授・UCLA Art | Sci Center 客員研究員

草原真知子

iv
刊行によせて私の研究分野の 1 つであるメディアアートの世界は、WiiRemote などいくつかの新たなテクノロジーの出現によって新たなステージに入ったと私は思っています。その新たなステージとは、やる気とセンスさえあれば世界を振り向かせる力のある作品を作ることができる時代になりつつあるということです。そんな時代に待望の本が出現しました。わかりやすく書かれた本書で学ぶことによって、これまで見たこともない新しく楽しいインタラ
クティブな作品がたくさん出てくることを私は楽しみにしています！ もちろん「デジスタ」も待っています。ちなみに私も買って学びます！！
───「デジタルスタジアム」ナビゲーター

中谷日出

身体を動かすことは楽しい。身体を使ってコンピュータとインタラクションを行うための技術は学術分野では古くから注目されていた。このテクノロジーを誰もが安価に利用できる形で実現したものが WiiRemote といえる。この本を読み、実践することで、身体的イン
タラクションを使ったあの SF の、あのアニメのシーンを「自らの手」で楽しく実現できるようになるに違いない。工学系ワークショップの教科書としても最適。
       ─── 慶應義塾大学大学院メディアデザイン研究科教授・
   コンピュータエンタテインメント協会（CESA）理事 稲見昌彦
本書の冒頭で紹介されている国際学生対抗 VR コンテスト（IVRC）は、優れたデバイスの思いがけない活用によって、新進の参加学生作家がアイデアを非常にストレートに実現できる舞台である。本書は、IVRC のような世界の舞台で力強く羽ばたこうとする学生作家
をはじめ、多くのプログラマに向けて、基本的なセンスを含めて開発手法を教示しようとする貴重な一書である。大勢の IVRC 卒業生が、今や世界最高クラスの VR クリエイターとして各方面で大活躍し、IVRC は 21 世紀的「ものづくり体験」教育システムとして長年歴史を重ねている。このコミュニティが本書のような良書の発刊を支えたことを喜ぶとともに、本書の読者が、新たな挑戦者としてスターダムに登場することを期待する。
─── 日本 VR 学会評議員・IVRC 実行委員会 副委員長

武田博直

v

はじめに
本書を手に取った賢い読者のあなた、まずあなたに質問をしたいと思います。あなたはこの本にどんな期待をしていますか？
「WiiRemote プログラミング」
あなたが手に入れたい知識は WiiRemote（Wii リモコン、Wiimote とさまざまな呼称がありますが、本書は WiiRemote と表記）の使い方でしょうか？ プログラミング？ 人に聞けない数学や物理？ インタラクション技術の開発テクニック？ はたまた欲張りにも「そのすべて」でしょうか？
まず最初にキッパリと宣言させていただきますが、この本は任天堂 Wii コンソールに関する「ハッキング本」ではありません。興味本位や不正に利益を得る目的で、ゲームを改造したり不正なコピーをする行為は、ゲームそのもののおもしろさを奪うだけでなく、そのゲームタイトルを世に生み出すために魂を削って制作した人々にも、深い悲しみと経済的ダメージを与えます。あなたがゲームを愛するなら、そんな行為に時間を費やしてはいけません。
「ハッキング」にもいろんな意味がありますが、仮に不正を働くための「ハッキング本」があるとすれば、この本は、その正反対の、WiiRemote を使った楽しい「クッキング本」を目指しています。
本書では WiiRemote を使って、プログラミングを学びます。
「プログラミング」といっても、決して「理系学生を対象にした難しいもの」ではなく、ツールを使ったスクリプティ
ング、最先端の C++/C#.NET、クラシックな C++、ActionScript による Flash アニメーショ
ン、Processing……と幅広い言語を想定し、さまざまな読者を対象に、できるだけ無料で使える環境を活用して独習する方法を伝えています。
ゲーム？ アート？ ツール？ 教材？ トレーニング……？ 本書が、まだ誰も見たことがない、コンピュータを使った新しい表現を生みだそうとしている若者にとって、最初の一歩を踏み出すための「武器」になることを期待します。
さあ、読者のみなさん、WiiRemote をもって冒険の旅に出かけましょう！
2009 年 7 月

著者代表

白井暁彦

vi
本書の内容と対象読者

対象読者
本書は、次のような方々を読者対象として想定しています。
・プログラミングを覚えはじめた中学生や高校生
・WiiRemote を使いたい専門学校生や大学 1 〜 2 年生ぐらい
・ 講義やゼミのテキスト（文系／理系、工学／芸術系は問わず）
そんな読者のみなさんに、WiiRemote をはじめとする新しいヒューマンインタフェースを使った、
エンタテイメントシステムやインタラクション技術の「開拓のおもしろさ」、情報の「使いこなし方」
をまず伝えたいと思います。この技術の「広さ」と「深さ」と「可能性」を感じることができれば、本書は成功だと考えます。
すでにコンシューマゲーム機や PC、Flash などでプロ級のゲームプログラミングを行っているシニ
アエンジニア以上の読者のあなたは、きっとここまで読んで「なぁんだ、この本、役に立つのかな？」と思ったかもしれません。前述の通り、この本には任天堂の守秘義務にふれるようなことは一切書かれていません。
読者のみなさんがもし、研究室やゲーム開発の現場にいる、インタラクティブ作品開発チームの先輩エンジニアならわかると思いますが、1 人でできることは限られています。誰も見たことがない
プロジェクトを進めるために、ときには「未知数の後輩」に対して、事細かにソースコードを紐解き、
熱っぽく語らなければならないときもあるでしょう（しかも開発の真っ最中に！）。本書は、そんなとき若いエンジニアに「しょうがないなぁ、この本でも読んでやってみろよ」と、机上に付箋付きで置いてあげられるような、そんな書籍を目指しています。
すばらしいインタラクティブ技術を開発するための、想像以上の WiiRemote の使い道や、ちょっとした気づきになるようなアイディアで、本書が少しでもお役に立てれば幸いです。

本書の構成
本書は大まかに、3 つのパートで構成されています。
● パート 1：基礎知識・導入編【第 1 章〜第 3 章】

このパートでは、WiiRemote を使ったプログラミングをはじめる前に、知っておくべきハード／ソフトの知識、Bluetooth 接続の具体的な方法、先人の開発したプロジェクト、「WiinRemote」や「GlovePIE」といったツールを紹介しています。プログラミングに入る前に、ツールだけで実現できることを学びましょう。
● パート 2：プログラミング基礎編【第 4 章〜第 7 章】

このパートでは、WiiRemote を使ったプログラミングの基礎をステップバイステップで解説しています。第 4 章では、オープンソースで開発されている API プロジェクト「WiimoteLib」と無料で利vii用できる Microsoft Visual Studio Express を利用して、C++/CLI や C#.NET でのプログラミングを学習します。WiiRemote と PC がどのように通信を行い、どのようにしてセンサー類の値が取得できるのかなど、基盤となる技術を具体的な事例を通して詳細に解説します。第 5 章では WiiRemote と Flash（ActionScript）を接続できる、「WiiFlash」を扱います。ヌンチャクを使ったゲーム開発や、WiiBoardを使った姿勢矯正アプリケーションなどの具体的な開発を通して、リッチメディアでの開発を解説します。第 6 章では同じ「WiiFlash」を、強力なスクリプトプログラミング環境「Processing」で利用する方法を学びます（第 5 章、第 6 章は Mac ユーザーも活用できる内容です）。第 7 章はオープンソース
API「WiiYourself!」を使って、ネイティブ C/C++ 言語での開発を学びます。具体的には、テルミンの開発やスピーカーの利用、WiiRemote の動作性能の測定などを行います。
● パート 3：応用編【第 8 章〜第 9 章】

このパートでは、WiiRemote を使ったプログラミングを通して、より具体的で広範なインタラク
ティブ技術開発の可能性を体験することを目的としています。第 8 章では「インタラクション技術の実践的開発プロセス」と題し、WiiRemote でマウスやキーボードをエミュレーションするソフトウェ
アを C#.NET を用いて開発します。開発プロセスを通してユーザーインタフェース開発特有のフィードバック開発手法についても体験できるようになっています。第 9 章は「アイディアストック・演習
問題集」です。WiiRemote を使って実現できる広範なアイディアをプログラミング編、ゲーム応用編、作品編、モノ編、サービス編、研究編に分けて紹介しています。第 4 章をさらに進めた XNA 環境でのリアルタイム 3DCG や、筆者が実際に開発したさまざまなゲームプロジェクトや、学術研究例を紹介します。各セクションの最後には、大学の演習やゼミなどで使うことを想定した演習問題が設定されており、自主課題として取り組めるようになっています。
最後に第 10 章では「未来につながる WiiRemote」として、本書で扱った API を開発した 2 人の偉大なプログラマへのインタビューや、世界のゲーム産業で起きている最新の変革、インタラクティブ技術の前後十年を俯瞰的にまとめた「予言の書」を綴っています。

AT T E N T I O N !

WiiRemote 関係の技術は日進月歩、秒進分歩です。世界中の技術者の努力により、使えなかったものが使えるようになったり、想像もしないすばらしい結果を生み出すことがあります。逆に、公開されているものが都合によって非公開になったり、有料になったりといったこともあります。
本書は発行時において可能な限り最新の情報を記載できるよう努力しておりますが、将来にわたって保証されるものではありません。また本書で掲載されているソースコードやプログラム、内容なども将来にわたり正確さが保証されるものではありません。
文中の「Wii」は以後、特に「TM」などを表記しませんが、任天堂株式会社の登録商標です。本書は任天堂株式会社とは一切関係がありません。本書に記載された内容を実行したことによる不利益などはすべて製品保証の対象外になる可能性があり、すべてはユーザーの責任であることをご理解ください。

viii

目次

目次
		
		

刊行によせて… ………………………………………………………………………………………………………………………………… iii
はじめに… ………………………………………………………………………………………………………………………………………… v

第１章  WiiRemote のススメ
		 1.1 WiiRemote の基礎知識… …………………………………………………………………………………………………………… ２
			
革命の主人公「Wii リモコン」… ………………………………………………………………………………………… ２
			WiiRemote の仕組み…………………………………………………………………………………………………………… ３
		 1.2 WiiRemote で何が作れる？… …………………………………………………………………………………………………… ７			
巨大なイカロボット「IKABO」を操作する（未来大 IKABO Project）… ………………………… ８
			
自由に氷柱を生やす「Glaçon」（奈良先端大）… ……………………………………………………………… ９
			ニオイの吹き矢「La flèche de l'odeur」（金沢高専）… …………………………………………………… 11
			WiiBoard による文学作品「人間椅子」（東京大学）………………………………………………………… 14			
赤外線を使ったモーションキャプチャ「SoundQuest」（フランス・ラヴァル）……… 16

第２章  PC 上で利用する WiiRemote 事始め		 2.1 WiiRemote を PC で利用する… ………………………………………………………………………………………………… 20
			ハードウェア構成… …………………………………………………………………………………………………………… 20
			
ソフトウェア構成… …………………………………………………………………………………………………………… 21
		 2.2 Bluetooth 製品を選ぶ………………………………………………………………………………………………………………… 26
			
IVT BlueSoleil… …………………………………………………………………………………………………………………… 26
			
東芝製スタック…………………………………………………………………………………………………………………… 27
			Microsoft 製スタック… ……………………………………………………………………………………………………… 28
			Broadcom 製スタック……………………………………………………………………………………………………… 28
			
その他の環境について… …………………………………………………………………………………………………… 31

第３章  まずは実験してみよう		 3.1 WiiRemote と PC を Bluetooth で接続する……………………………………………………………………………… 34
			Bluetooth をインストールする際の注意………………………………………………………………………… 34
			
PTM-UBT3S（東芝製スタック）でのペアリング… ………………………………………………………… 35
			Lenovo ThinkPad でのペアリング…………………………………………………………………………………… 40
			ASUS EeePC S101 でのペアリング…………………………………………………………………………………… 45
		 3.2 WiinRemote で実験… ………………………………………………………………………………………………………………… 52
			
世界最速公開のツール「WiinRemote」… ………………………………………………………………………… 52
			WiinRemote の入手とインストール………………………………………………………………………………… 52
			WiinRemote を使いこなそう… ………………………………………………………………………………………… 53
			
重力を観察してみよう… …………………………………………………………………………………………………… 56
			PowerPoint でプレゼンテーション… ……………………………………………………………………………… 57
		 3.3 GlovePIE で実験…………………………………………………………………………………………………………………………… 60			GlovePIE とは… …………………………………………………………………………………………………………………… 60			GlovePIE のインストール…………………………………………………………………………………………………… 61			GlovePIE の基本操作…………………………………………………………………………………………………………… 64
		 3.4 GlovePIE で作る「高機能赤外線マウス」… ……………………………………………………………………………… 68
			
高機能赤外線マウスを設計する… …………………………………………………………………………………… 68			ボタンアクションの実装…………………………………………………………………………………………………… 69

目次

			
			
			
			

デバッグ機能… …………………………………………………………………………………………………………………… 73
GUI を使ったスクリプト記述支援… ………………………………………………………………………………… 78
サンプルスクリプトを読もう…………………………………………………………………………………………… 80
コマンドラインによる起動の自動化… …………………………………………………………………………… 82

第４章  C++とC# で学ぶ WiiRemote プログラミング		 4.1 プログラミング環境のセットアップ… …………………………………………………………………………………… 86
			Visual C++ 2008 Express Edition のセットアップ… ……………………………………………………… 86
			Visual C# 2008 Express Edition のセットアップ… ………………………………………………………… 90
		 4.2 WiimoteLib の概要……………………………………………………………………………………………………………………… 91
			WiimoteLib のライセンス… ……………………………………………………………………………………………… 92
			WiimoteLib のセットアップ……………………………………………………………………………………………… 94
		 4.3 WiimoteLib をプロジェクトに組み込む【C# 編】… ………………………………………………………………… 97
			
空のプロジェクトの作成…………………………………………………………………………………………………… 97
			WiimoteLib の追加……………………………………………………………………………………………………………… 99
		 4.4 WiimoteLib をプロジェクトに組み込む【C++ 編】……………………………………………………………… 102
			
空のプロジェクトの作成………………………………………………………………………………………………… 102			WiimoteLib の追加…………………………………………………………………………………………………………… 103
		 4.5 バイブレータの ON/OFF… ……………………………………………………………………………………………………… 104			WiimoteLib の宣言と接続… …………………………………………………………………………………………… 105
			
バイブレーター ON/OFF ボタンの作成………………………………………………………………………… 106			
実行してみよう………………………………………………………………………………………………………………… 111
			
解説：WiimoteLib の基本 API………………………………………………………………………………………… 112
		 4.6 LED の点灯と消灯… ………………………………………………………………………………………………………………… 113
			WiimoteLib の宣言と接続… …………………………………………………………………………………………… 113
			LED カウントアップボタンの作成………………………………………………………………………………… 115			
実行してみよう………………………………………………………………………………………………………………… 119			
解説：LED の点灯制御… ………………………………………………………………………………………………… 120
		 4.7 ボタンイベントの取得… ………………………………………………………………………………………………………… 123			
ラベルの作成… ………………………………………………………………………………………………………………… 123			
ボタン入力に対応してラベルの表示を変える… ………………………………………………………… 124			
実行してみよう………………………………………………………………………………………………………………… 126			
解説：ボタンイベントの取得………………………………………………………………………………………… 127
		 4.8 ランチャーを作る… ………………………………………………………………………………………………………………… 131			
外部プログラムの起動… ………………………………………………………………………………………………… 132			
実行してみよう………………………………………………………………………………………………………………… 134			
解説：ボタンイベントによるアプリ起動… ………………………………………………………………… 135
		 4.9 加速度センサーを使う… ………………………………………………………………………………………………………… 136			
加速度センサーについて………………………………………………………………………………………………… 136			
加速度センサーの値を表示… ………………………………………………………………………………………… 137			
実行してみよう………………………………………………………………………………………………………………… 138			
解説：レポートタイプと加速度センサー… ………………………………………………………………… 140			
加速度センサーで作る WiiRemote 太鼓… …………………………………………………………………… 142
		 4.10 赤外線センサーを使う… ……………………………………………………………………………………………………… 145			
赤外線探知機… ………………………………………………………………………………………………………………… 146
			
実験：赤外線を見てみよう… ………………………………………………………………………………………… 150

ix

x

目次

			
			
			
			
			

解説 : レポートの設定／赤外線 4 点検出… …………………………………………………………………… 151
赤外線を数える………………………………………………………………………………………………………………… 152
座標を描画………………………………………………………………………………………………………………………… 153
実行してみよう………………………………………………………………………………………………………………… 157
解説：赤外線座標の取得………………………………………………………………………………………………… 158

第 5 章  WiiFlash を使ってみよう［ActionScript 編］
		 5.1 WiiFlash とは … ………………………………………………………………………………………………………………………… 160
			WiiFlash の仕組み… ………………………………………………………………………………………………………… 160			
環境設定… ………………………………………………………………………………………………………………………… 161
			WiiFlash のデモファイルでテストする… ……………………………………………………………………… 167			ボタンアクションの取得を使ったサンプル………………………………………………………………… 168
		 5.2 作例 1：座布団（ザプトン）… ………………………………………………………………………………………………… 173
			Flash で姿勢が悪い人を救いたい… ……………………………………………………………………………… 174			
重心移動の変化量を使ったアプリ………………………………………………………………………………… 176
		 5.3 作例 2：ChunChun… ……………………………………………………………………………………………………………… 180
			
WiiRemote を使ったゲーム… ………………………………………………………………………………………… 180			
サンプル制作の流れ………………………………………………………………………………………………………… 181

第 6 章  WiiFlash を使いこなそう［Processing 編］
		 6.1 Processing から WiiRemote につなぐ… ………………………………………………………………………………… 190
		 6.2 Processing から WiiFlash を使うには… ………………………………………………………………………………… 192
			Processing のセットアップ… ………………………………………………………………………………………… 192
		 6.3 Processing のサンプルを動かす… ………………………………………………………………………………………… 194
		 6.4 WiiFlash を使ったサンプルを動かす… ………………………………………………………………………………… 196
			Wiimote の使い方… ………………………………………………………………………………………………………… 197
		 6.5 サンプルスケッチを WiiRemote 対応にする… …………………………………………………………………… 200
			
FireCubeWii… …………………………………………………………………………………………………………………… 200
			
DirectionalWii…………………………………………………………………………………………………………………… 201
			
WaveSignalWii… ……………………………………………………………………………………………………………… 202
			WiiFlash が Processing からも使える理由… ………………………………………………………………… 203

第 7 章  WiiYourself!とC++ で学ぶインタラクション基盤技術
		 7.1 古き良き C++ 用 API「WiiYourself!」… …………………………………………………………………………………… 206
			WiiYourself! の特徴…………………………………………………………………………………………………………… 206
			WiiYourself! の入手…………………………………………………………………………………………………………… 208
			WiiYourself! 付属デモのテスト… …………………………………………………………………………………… 212
		 7.2 WiiYourself! のリビルド…………………………………………………………………………………………………………… 213
			
DDK のセットアップ… …………………………………………………………………………………………………… 213			
プロジェクトファイルの変換と設定… ………………………………………………………………………… 216
			WiiYourself! の構成とライブラリのビルド…………………………………………………………………… 219
			
コマンドラインプログラム「Hello, world!」… ……………………………………………………………… 221
			WiiYourself! をプログラムに組み込む…………………………………………………………………………… 224
		 7.3 Win32 で作る WiiRemote テルミン… …………………………………………………………………………………… 228			
テルミンを作ろう… ………………………………………………………………………………………………………… 228			
ボタン操作テルミン………………………………………………………………………………………………………… 230

目次

			
加速度センサーによるテルミン… ………………………………………………………………………………… 234
		 7.4 計測器としての WiiRemote… ………………………………………………………………………………………………… 243
			「WiiRemote 計測器」重力・姿勢・動作周波数…………………………………………………………… 243
			考察：ゲーム機として、計測器として… ……………………………………………………………………… 250
		 7.5 WiiYourself! によるスピーカー再生… …………………………………………………………………………………… 252
			
専用 WAV ファイルの準備… …………………………………………………………………………………………… 253			
WAV ファイルのロード…………………………………………………………………………………………………… 254

第 8 章  インタラクション技術の実践的開発プロセス
		 8.1 仕様と開発の流れの整理………………………………………………………………………………………………………… 258
		 8.2 開発プロセス… ………………………………………………………………………………………………………………………… 261
			
プロジェクトの新規作成とフォームデザイン… ………………………………………………………… 261
			
基本コードの作成… ………………………………………………………………………………………………………… 263
			
コードのブロック化と関数化………………………………………………………………………………………… 264			
フォームのボタン処理… ………………………………………………………………………………………………… 269
			
赤外線センサーによるマウスポインタ移動………………………………………………………………… 271
			
ボタンイベントの検出… ………………………………………………………………………………………………… 274
			
ボタンイベント処理のクラス化… ………………………………………………………………………………… 276
			DLL インポートによる Win32API の利用… …………………………………………………………………… 279
		 8.3 ユーザーテストとフィードバック開発………………………………………………………………………………… 283
			
他人に触ってもらい、観察する……………………………………………………………………………………… 283
			
その他のボタンアクションの実装アイディア… ………………………………………………………… 285
			
キーボード入力の発行… ………………………………………………………………………………………………… 287… ………………………………………………………………………………………………………………………… 288
		 8.4 装飾要素
			
数式による LED 出力関数………………………………………………………………………………………………… 289
			
赤外線受信の安定化………………………………………………………………………………………………………… 291
			
文字列を描画したい………………………………………………………………………………………………………… 292
			「かたむく指」を描画… …………………………………………………………………………………………………… 294

第９章  アイディアストック・演習問題集
		 9.1 プログラミング編：XNA を使ったリアルタイム 3DCG での利用… ………………………………… 300			
XNA のインストール… …………………………………………………………………………………………………… 301
			
ゲームプロジェクトの作成… ………………………………………………………………………………………… 303
			WiimoteLib の組み込み…………………………………………………………………………………………………… 304
			
3D モデルファイルの準備… …………………………………………………………………………………………… 306
			.x ファイルの読み込みと表示… ……………………………………………………………………………………… 308
			
完成版「WiiRemoteXNA」………………………………………………………………………………………………… 310
				
演習問題 P R A C T I C E XNA の利用……………………………………………………………………… 311
		 9.2 ゲーム応用編（1）：レースゲームへの応用… ……………………………………………………………………… 312			
AceSpeeder2… ………………………………………………………………………………………………………………… 312			レースゲーム用モーション認識… ………………………………………………………………………………… 313
				
演習問題 P R A C T I C E レースゲームへの応用…………………………………………………… 315
		 9.3 ゲーム応用編（2）：「振る」の認識・剣術アクションへの応用… ……………………………………… 317
			
フェンシングゲーム「JaWii's Virtual Fencing」… ………………………………………………………… 318
			
古式フェンシング指南ゲームの開発… ………………………………………………………………………… 319
			モーション検出のための評価関数を作る… ………………………………………………………………… 321

xi

xii

目次

				
演習問題 P R A C T I C E 振りの検出… …………………………………………………………………… 325
		 9.4 作品編（1）：WiiBoard を用いた「オーラ診断」… ………………………………………………………………… 325			プログラミング初心者 4 人が作った「オーラ診断」… ………………………………………………… 326
			
補足：「BBOSC」とは？…………………………………………………………………………………………………… 329
				
演習問題 P R A C T I C E Mac と WiiBoard の利用… ……………………………………………… 332
		 9.5 作品編（2）：Second Life で使う… ………………………………………………………………………………………… 332
				
演習問題 P R A C T I C E Second Life ＋ GlovePIE を極めよう… ………………………… 335
		 9.6 モノ編（1）：センサーバーを自作する… ……………………………………………………………………………… 335
			
センサーバーの仕組み… ………………………………………………………………………………………………… 336
			
目には見えない「近赤外線」… ………………………………………………………………………………………… 336
			
電子部品をそろえる・工作する… ………………………………………………………………………………… 339
				
演習問題 P R A C T I C E 赤外線センサーバーの自作…………………………………………… 342
		 9.7 モノ編（2）：ロボット兵器「WiiRemoteTank」… ………………………………………………………………… 343
			ロボット兵器「WiiRemoteTank」… ………………………………………………………………………………… 343
			「WiiRemoteTank」の開発… …………………………………………………………………………………………… 344
				
演習問題 P R A C T I C E WiiRemote によるロボット開発… ……………………………… 347
		 9.8 サービス編：体が不自由な方のためのインタフェース… ………………………………………………… 347
				
演習問題 P R A C T I C E 体が不自由な方のためのインタフェース…………………… 347
		 9.9 研究編（1）：赤外線を極める… ……………………………………………………………………………………………… 349
			
赤外線奥行き測定の基本理論………………………………………………………………………………………… 349
			
実験：赤外線特性の測定………………………………………………………………………………………………… 350
				
演習問題 P R A C T I C E 赤外線を極める… …………………………………………………………… 354
		 9.10 研究編（2）：Johnny Chung Lee 氏から学ぼう… ……………………………………………………………… 355
				
演習問題 P R A C T I C E 研究しよう… …………………………………………………………………… 357
		 9.11 プログラミング上級編：自分で API を作る… …………………………………………………………………… 358
				
演習問題 P R A C T I C E API を作ろう… ………………………………………………………………… 361

第 10 章  未来につながる WiiRemote		 10.1 Brian Peek 氏と gl.tter 氏インタビュー… …………………………………………………………………………… 364
			Brian Peek 氏—WiimoteLib の作者… …………………………………………………………………………… 364
			gl.tter 氏—WiiYourself! の作者… …………………………………………………………………………………… 365
		 10.2 新しいエンタテイメント、インタラクションを作るには… …………………………………………… 367
			WiiMotionPlus の衝撃と可能性……………………………………………………………………………………… 367
			Microsoft「Project Natal」の衝撃…………………………………………………………………………………… 369
			
実は「老舗」のソニー… …………………………………………………………………………………………………… 371
		 10.3 予言の書 … ………………………………………………………………………………………………………………………… 372
			
10 年前の出来事… …………………………………………………………………………………………………………… 372
			
今後 10 年先に起こること… …………………………………………………………………………………………… 373
		
		
		
		
		
		

あとがき… ……………………………………………………………………………………………………………………………………… 377
謝辞… ……………………………………………………………………………………………………………………………………………… 378
サンプルダウンロードについて… ……………………………………………………………………………………………… 379
参考文献… ……………………………………………………………………………………………………………………………………… 380
著者紹介… ……………………………………………………………………………………………………………………………………… 382
索引… ……………………………………………………………………………………………………………………………………………… 384