« 2007年12月 | メイン | 2008年04月 »

2008年02月02日

Wii Meet

大変ご無沙汰しています。
昨年末から1月にかけてはあまりにもいろいろあって、ブログを見たり書いたりすることができませんでした(今日になってデータベースがダウンしていたことに気がつきました。ブログを停止したと思われた方もいらしたと思います。大変失礼しました)。


最近、僕のいる研究室では、メンバー全員が自分専用のWiiリモコンを持って会議(研究室のゼミ)に参加しています。
それ以前は、以下の写真に示すような会議3点セットと呼ばれるツールを使っていました。

discussion_set.jpg

これらは、発言を開始するときに上に掲げてアピールすると同時にメタデータを作成するための2枚の議論札、発言中にスクリーン上の対象を指し示すためのレーザーポインタ、そして、発言を評価したりマーキングしたりするためのdボタンと呼ばれるボタンデバイスです。

ほぼ同時に使用する道具が3種類もあると、持ち替えたりする手間が増え操作が煩雑になって使い勝手が悪くなるため、これらをうまく1つにまとめられないものかと考えていました。
そこで、これらを1個のデバイスにするために、僕たちはWiiリモコンを使うことにしました。

僕たちが会議で使用しているWiiリモコンには、発言に関するメタデータを作成するためのタグ機能、発言中にスクリーン上の対象を指したり、スクリーン上に線を描いて説明を補助するためのポインタ機能、直前の発言に対する参加者の賛成・反対・中立などの態度を入力・集計するためのボタン機能を持たせています。

これらを順に説明していきます。

1.タグ機能
僕たちの会議では、これまで、前述の議論札を使って、発言に関するメタ情報(発言者ID、発言開始時間、発言タイプ、発言者の座席位置)をリアルタイムに入力して記録していました。
特に、発言タイプは、議論を構造化して、トピックごとのまとまりを発見するのに有効です。
それで、Wiiリモコンにもその機能を持たせることにしました。
札を上げるという特徴的な行為を継承するために、リモコンを上に向けて掲げたときの高さや角度(ひねり)を使って、発言者の登録と発言タイプを入力する仕組みを実現しました。
これは、一般の会議で発言者が挙手をして、司会者に指名されてから発言を始めるのに近い行為ですから、悪くないやり方だと思っています。

たとえば、以下の写真のようにリモコンを上に掲げると新規の発言が登録されます。

participants1.jpg

発言が登録されると、以下の写真のようにサブディスプレイに反映されます。

subdisplay1.jpg

登録した時点で、発言者がいなければ登録者はすぐに発言できる状態になりますが、誰かの発言中に登録した場合は、発言予約リストに加えられ、直前の発言が終了するとその人の順番になります(ただし、登録者が発表者かどうか、また、発言タイプによって、微妙に順番が変わったりします。自分が発言できる状態になったことは、リモコンの振動とサブディスプレイの表示でわかります)。
サブディスプレイには、現在の発言者の映像や、発表者が過去に表示したスライドのサムネイル画像なども表示されます。

前述のように発言には2種類のタイプがあり、赤く表示されているのは導入タイプ(話題を変えるとき)で、黄色で表示されているのは継続タイプ(話題を変えずに議論を続けるとき)です。
これらのタイプは、リモコンを上に向けるときにひねりを加えて角度を90度変えると変更することができます。
ちなみに、発言者の名前と発言タイプは自動的に、後述する議事録に反映されます。

さらに、位置を表す赤外線IDを使って、登録と同時に発言者の座席位置がわかるような仕組みも実現しました。
これによって、後述する、天井に設置したパンチルトカメラを発言者に向けることができます。
ちなみに、発表者はメインディスプレイの隣に座席が固定されていますので、固定のカメラで撮影されます。


2.ポインタ機能
Wiiリモコンには、もともと画面上の任意の部分をポイントして選択するダイレクトマニピュレーションのための機能が備わっていますが、その実装の都合上、1つのディスプレイ上の操作に限定されていました。
僕たちの会議では、メインディスプレイ(プロジェクタスクリーン)とサブディスプレイ(大型液晶ディスプレイ)の複数のディスプレイを利用していますので、Wiiリモコンをマルチディスプレイに対応させる必要がありました。
そこで、Wiiリモコンおよびセンサーバーに、前回のエントリーで述べたような細工を施しました。

タグ(札)として用いるリモコンを以下の写真のように前に向けるとポインタとして利用できます。

participants2.jpg

さらに、ポインタを使ってスクリーン上に線や図形を描くことができます。
以下の写真は、スライド内の図に円や線を描きながら質問しているところです。

maindisplay1.jpg

全員がリモコンを持っているため、ある議論中に複数の参加者が同じスライドに印を付けることもあります。
たとえば、以下の写真のように、参加者のポインタは色分けされているので、誰がどの部分に言及しているのかちゃんとわかるようになっています。

maindisplay2.jpg

発表者は座席位置の都合でメインディスプレイをポイントしにくいので、前方の床に小型のディスプレイを置いて、それにポインタを向けるようにしています。
以下の写真は、発表者がポイントしている様子と、発表者用のディスプレイを示しています。

presenter.jpg

presenter_display.jpg


3.ボタン機能
ボタンは、参加者全員が非同期に、直前の発言に対して賛成・反対・中立の態度を表明したり、後で検索しやすくするために発言にマーキングしたり、任意のタイミングで多数決を取ったりするときに用いられます。
以前は、前述のdボタンを用いて、この機能を実現していました。
これは、3個のプッシュスイッチを持ち、それぞれを押す(2個同時に押すこともできます)と赤外線IDを送信するボタンデバイスです。
Wiiリモコンには、11個のボタン(電源ボタンを含めると12個)が備わっていますので、そのうちの5個のボタン(+ボタン、-ボタン、HOMEボタン、1ボタン、2ボタン)を使って、とりあえず必要な機能に割り当てています。

サブディスプレイには、以下の写真のように参加者がボタンを押した状況が反映されます。
青は直前の意見に賛成、赤は反対、緑は中立を表しています。

subdisplay2.jpg

ボタンは、任意のタイミングで多数決をとるときにも使います。
これは、発表者がツールを使って質問を設定すると多数決モードになり、その結果は以下の写真のように円グラフとしてサブディスプレイに表示されます。

subdisplay3.jpg

ちなみに、2のポインタ機能では、6個のボタン(十字キー、Aボタン、Bボタン)を用いています。
十字キーはポインタの色やサイズを変更するときに使い、Aボタンは前述のようにポインタの移動軌跡を画面上に残し、線を描くときに使います(Aボタンを離すと点のみに戻ります)。
Bボタンは、描いた線を消去するときに押します。

また、Bボタンを押しながらAボタンを押すと、ポインタのモードを切り替えることができます(ただし、前述のタグ機能とボタン機能はモードには依存しません)。
ポインタのモードを切り替えてから、Aボタンを押すと、ポイントしている画面内の対象に対するオペレーションを起動することができます。

たとえば、サブディスプレイには以前にメインディスプレイに表示されたスライドの履歴が表示されていますが、過去のスライドについて質問をしたいときに、以下の写真のように質問者がスライドのサムネイルをポイントして(サムネイルをポイントすると左側に拡大表示されます)、Aボタンを押すと、そのスライドが選択されメインディスプレイに表示されます。

subdisplay4.jpg

以上の3つの機能を備えることによって、Wiiリモコン1台で、僕たちがこれまでに使っていた、議論札、レーザーポインタ、dボタンをすべて置き換えることができました。

ただし、前述のように、Wiiリモコンにはその先が向いているディスプレイがメインかサブかを知るための仕組みがありませんし、リモコンを上に掲げたときの参加者の位置を知る手段もありません。
そのため、前回のエントリーで述べたような仕組みが必要でした。
つまり、センサーバーの赤外線LEDにIDをエンコードし、リモコンにそのデコーダを装着しました。

リモコンがディスプレイを向いているときは、IDはどのディスプレイを指しているかを表しており、リモコンが上に掲げられたときは、IDはその場所(座席位置)を表しています。
これは、Wiiリモコンの先端にある赤外線イメージセンサー(LEDの光が相対的にどの位置に見えているかを知る)と同じ方向を向くように赤外線デコーダ(LEDの光に変調されたIDを受光して復調する)を装着して、赤外線LEDの座標と埋め込まれたIDを同時に認識することで実現しました。

ディスプレイ付近に設置したLEDは、いろいろな角度から1点として見えるようにし、座席上部に設置したLEDはそのちょうど真下から2点として見えるようにしました。
これは、ディスプレイはさまざまな座席位置からポイントできる必要がありますが、逆に座席用は該当する座席以外からは見えないようにするためです。
また、ディスプレイ上のポインタには向きがないので、光を2点にしてリモコンの回転を知る必要はないと考えました(そのため、リモコンを回すとポインタの位置が大きく変化してしまいます)。
ただし、座席用では、リモコンを上に向けて回したときの角度を利用していますので、2点の光が必要です。
同時に、座席では、2点間の間隔を使って、LEDからリモコンまでの距離を計算しています(これによって、手を上げたときの高さがわかります)。

ちなみに、メインディスプレイ用および座席用のLED装置はそれぞれ以下の写真のようになっています。

led_maindisplay.jpgled_participant.jpg

メインディスプレイ用LED装置(左)の手前にあるのは、参加者(特に、発言者)を撮影するためのカメラです。
このカメラの映像は、常にサブディスプレイに表示されています。
また、このLEDのオンオフは赤外線リモコンでできるようになっています(つまり一度赤外線を送ると赤外線を出し、もう一度送ると停止するようになっています。自分自身の出す赤外線による影響はありません)。

座席用のLED装置(右)は参加者の頭上に固定されており、この写真ではわかりにくいですが、LEDの集合が2か所にあり、リモコンには2点として見えるようになっています。
このLEDの固定されている部分は、座席位置に合わせて前後に動かせるようになっています。


ここで重要なのは、Wiiリモコンが固有のIDを持つことができ、それゆえに、すべての行動を「誰が行っているのか」リアルタイムに識別可能であることです。
従来のレーザーポインタはポインタにIDを関連付けることができなかったため、誰がポイントしているのか自動的に知る方法がありませんでした。
僕たちの仕組みを使えば、誰がいつどのディスプレイのどの部分を指しているのか簡単にわかります。
また、タグ機能によって発言者がわかり、その人が画面上のどのオブジェクトを指しながら発言しているのかわかります。

具体的には、PowerPointで作成されたプレゼンテーション資料からテキストやイメージの画面位置情報を抽出し、テキストならポインタが一定時間以上滞留した文字の情報、イメージならその内部にポインタが滞留した領域をリアルタイムに検出することができます。

ところで、発言のテキスト情報の入力は自動認識ではなく、書記がタイピングしています。
書記は、以下の写真のように、もう一つのサブディスプレイの隣に座っていて、ノートPCを使って議事録を作成しています。
サブディスプレイには、入力中の議事録が表示されています。

secretary.jpg

議事録ツールは、以下の写真のように、Webブラウザをインタフェースにしており、発表者のスライド情報、参加者のタグ・ポインタ・ボタン情報が自動的に反映されるようになっています。

secretary_display.jpg


会議中に収録・獲得されたすべての情報は、以前にもこのブログで紹介した議論コンテンツに統合され、以下の図に示すようなディスカッションメディアブラウザで利用できます(詳しくは、以前のエントリー「議論というコンテンツ」を参照してください)。

dmb1.jpg

これは、3種類のビデオ映像(発表者、その他の参加者、メインディスプレイ)と構造化されたタイムライン(スライド表示、発言、ボタン入力に関するイベントの時間分布が表示されています)、発言間の関係を表した議論グラフ、スライドのサムネイルを含むテキスト議事録を表示するもので、コンテンツ内検索と閲覧が簡単にできるようになっています。
議論グラフは以下の図のようになります。

dmb2.jpg

さらに、ポインタ情報は発言に含まれる指示代名詞(「これ」「それ」など)の指し先を明確にしてくれますから、当然、発言の意味を詳細に分析するのに有効です。


さて、これだけの大袈裟な仕組みでいったい何が得られるのでしょうか。
まず、前提となるのは、僕たちの作る議論コンテンツは多用途での再利用を考慮して作成されているということです。
つまり、作成時に特定の応用のみを念頭に置いて行うことはありません。
当然、できるだけ詳細に内容を記述することが重要です。
ただし、同時に会議時間内に作成作業がほぼ完了することを目指しています。
会議中の作業を参加者全員が協力して集中的に行うため、会議後の「人間の手による」作業を必要最小限にしています。
そして、あたりまえのことですが、会議をするたびに議論コンテンツが増えていきます。
その使い道はいろいろです。
ある人は、議論コンテンツをベースに論文を書くでしょうし、他の人は、議論コンテンツ内で指摘された点を吟味してシステムを実装・拡張するでしょう。

有名なアルベルト・アインシュタインの特殊相対性理論もそうであったように、およそ人間の考えることは他者とのコミュニケーションを通じて強化されていくものですから、そのコミュニケーションの過程がしっかり記録されていれば、それを参考にすることで着実にステップアップできるでしょう。

ちなみに、この議論コンテンツは僕のライフログの一部になっています。
一週間ごとの自分の様子が映像で見れるので、「ああ、この頃に髪を切ったんだ」とか、「この頃はいらついていて妙に顔が怖い」とか、議論と関係ないことも思い出したりしています。

また、自分の発言の履歴を詳しく見て、一貫性に欠けていたりすると、激しく反省したりしています。
やはり、自分の発言には責任を持つべきですけれど、文章として残っていないものには、一般に注意が及ばず無視されがちでしょう。
だから、僕たちは検索可能な状態で記録を残すことを重要視していますし、記録を取っていることでこれまで以上に自分の発言に責任を感じるようになるとよいと思っています。

将来、蓄積した議論コンテンツが、社会人となった卒業生たちが自分の学生時代を振り返るためのライフログの一部としても使われるようになると思います。
誰でも未熟な時代の自分の姿や振る舞いを思い出すのは恥ずかしいものだと思いますけれど、現在の自分の議論力が格段に進歩したことを再確認することができればとてもよいことだと思っています。

投稿者 nagao : 21:25 | トラックバック