Skip to content

MultiTouchJ Japanese

atsuya edited this page Sep 13, 2010 · 22 revisions

MultiTouchJ

English | 日本語

MultiTouchJとは

MultiTouchJは、マルチタッチなアプリケーションを開発するのに必要な機能を提供するフレームワークです。

  • Mac OS X / Linux / Windowsで動作します。
  • Wii Remoteと赤外線を出すペンを使用する事で、マルチタッチを実現しています。

基本的に、Wii Remoteが搭載している赤外線カメラを利用し、赤外線を出すペンの位置を取得します。MultiTouchJを一番手軽に試す方法は、ラップトップを用意し、Wii Remoteをそのラップトップのディスプレイに向けて配置し、ディスプレイを赤外線を出すペンでなぞることでマルチタッチを実現する方法です。

使う

ハードウェアを準備する

MultiTouchJを使用するには、最低、Wii Remoteと赤外線を出すペンが必要になります。以下に、私が使用しているハードウェアの写真を掲載します。

Wii Remote

Wii Remoteは赤外線のカメラが搭載されており、MultiTouchJでは赤外線を出すペンの位置情報を得るのに使われます。Wii Remoteはどこでも買えるはずです。

赤外線を出すペン

赤外線を出すペンは、Pointing Deviceとして使用されます。"Infrared Pen"等で検索すると、自分で作る方法も見つかります。若しくは、 penteractive のようなサイトでも購入出来ます。

プロジェクター

プロジェクターは、デスクトップを特定の平面に投射するのに使います。プロジェクターそのものは必須ではありませんが、目に見えているものをタッチする、という場合には有効です。

アクリル板

アクリル板は、プロジェクターからの映像を投射するのに使います。赤外線のペンを使って実際にタッチするのもこのアクリル板の面です。実際にはアクリル板にトレーシングペーパーが貼ってあり、プロジェクターからの映像が通り抜けないようにしています。

鏡は、プロジェクターからの映像をアクリル板に上手く反射させるのに使われます。設置によって必要がなければ必要ありません。

JREをインストールする

MultiTouchJは、Javaで書かれています。まずJavaの環境を準備します。 Sun のサイトからJRE 1.5以上をダウンロードし、インストールします。

MutiTouchJをインストールする

MultiTouchJのインストールは、ファイルをダウンロードして解凍するのみです。 MultiTouchJ をダウンロードし、解凍した後のディレクトリの構造は以下の様になります。

MultiTouchJは色々なソフトウェアに依存しています。それらのソフトウェアをダウンロードし、MultiTouchJがそれらを認識出来るようにします。

LWJGL

LWJGLは、JavaからOpenGL / OpenALを扱えるようにするライブラリです。 LWJGL をダウンロードし、必要なファイルをMultiTouchJの"Library"ディレクトリへコピーします。

motej

motejは、JavaからWii Remoteと通信出来るようにするライブラリです。 motej をダウンロードし、必要なファイルをMultiTouchJの"Library"ディレクトリへコピーします。

BlueCove

BlueCoveは、JavaからBluetoothの通信が出来るようにするライブラリです。motejがWii Remoteと通信する際に使用します。 BlueCove をダウンロードし、必要なファイルをMultiTouchJの"Library"ディレクトリへコピーします。

最終的に、MultiTouchJの"Library"ディレクトリは以下のようになります。

実行する

MultiTouchJでは以下のアプリケーションが提供されており、それぞれのスクリプトを実行する事でそれらのアプリケーションを実行出来ます。

  • Whiteboard
    • UNIX: RunWhiteboard.sh
    • Windows: RunWhiteboard.bat
  • RunTouchPong
    • UNIX: RunTouchPong.sh
    • Windows: RunTouchPong.bat

開発する

MultiTouchJを使ってアプリケーションを開発するにあたって、知っておくと良いと思われる事柄です。

  • Javaで書かれており、Mac OS X / Linux / Windowsで動作します。
  • Wii Remoteと赤外線を出すペンを使用する事で、マルチタッチを実現しています。
    • OpenCVを使い、実際の指によるマルチタッチの実現も視野に入れています。
  • 描写にはOpenGLが使われています。JavaからOpenGLの機能を使うのには、 LWJGL が使われています。
  • Wii Remoteとのやり取りには、 motej を使用しています。

プロジェクトに参加する

MultiTouchJの開発に参加したい方は、是非ご連絡下さい!

MultiTouchJを使用した例

MultiTouchJを使用した!、というプロジェクト等があれば是非教えて下さい!

参照

私は修士課程の研究としてMultiTouchJを開発しました。その際の 修士論文も公開しています

MultiTouchJは以下のようなプロジェクトを参考にしています。

  • Johnny LeeさんのWii Remote Projects
    • 彼が最初にWii Remoteを使ったマルチタッチをYouTubeで広めました。
  • Wiimote Whiteboard
    • Johnny Leeさんが公開していたWhiteboardを、Javaで書き直しています。彼のコードは使用していませんが、非常に面白いプロジェクトです。