ActiveCube を用いたアプリケーションの開発環境
伊藤 雄一

北村 喜文

河合 道広

浅井 政嗣

市田 浩靖

岸野 文郎

大阪大学大学院工学研究科
ActiveCube を提案している[5]．
本稿では，ActiveCube を用いたアプリケーシ
ョン開発を容易にするための ActiveCube システムのライブラリ化について述べる．

1. はじめに
近年，3 次元物体の形状モデリングや 3 次元世界に対するインタラクティブな操作について，直接操作の考え方[1]に基づいた，直感的なグラフィカルユーザインタフェースが多数提供されるようになってきた．しかし，操作対象である 3 次元オブジェクトに実体がないので，ユーザは実際に操作している感覚を得ることは難しく，ユーザの操作意図などの入力装置とその結果の出力装置（ディスプレイ）が分離しているために，両者の間の因果関係が不明確になりやすいなどという問題もあった．
そこで，物理的に実体を持つ物体を操作対象物に利用することにより，操作の直感性を向上しようとする試みも，なされるようになってきた．3次元形状モデリングを目的として，LEGO 型ブロックを組み立てた後に，コンピュータに接続して電源を入れると，その形状がコンピュータに入力されるものがある[2]．しかし，組み上げたブロック形状の認識はリアルタイムではなく，またブロック自体が入出力デバイスを持たないため，そのブロックを介したインタラクションをユーザが行うことはできない．他にも，正三角形平板のオブジェクトを組み合わせて，コンピュータ上の特定のプログラムを起動しようとする装置[3]や，ブロックを組み合わせてある種のプログラムを作成しようとするもの[4]などがあるが，これは 3 次元物体の形状モデリングや 3 次元世界に対するリアルタイムインタラクションを目指したものではない．
我々は，実物体としてのブロックを組み立てることで容易にリアルタイムで 3 次元形状をコンピュータ内にモデリングすることができ，しかもブロック自体に各種のセンサやアクチュエータなどを実装することによって，利用者の操作意図を入力し，計算機内でのシミュレーション結果を表示することによるリアルタイムインタラクションの機能を有する双方向ユーザインタフェースとして，
The Environment of Development of Applications using
ActiveCube.
Yuichi Itoh (yuichi@eie.eng.osaka-u.ac.jp),
Yoshifumi Kitamura (kitamura@eie.eng.osaka-u.ac.jp),
Michihiro Kawai, Masatsugu Asai, Hiroyasu Ichida, andFumio Kishino
Graduate School of Engineering, Osaka University〒565-0871 吹田市山田丘 2-1
http://www-human.eie.eng.osaka-u.ac.jp

2. ActiveCube システム
ActiveCube はリアルタイムインタラクション，リアルタイム 3 次元形状モデリング，双方向ユーザインタフェースの機能を実現するために，ホスト PC とリアルタイムに通信する．また，ホストPC は常に ActiveCube システムを監視し，接続されたブロックの 3 次元形状をリアルタイムに認識し，ブロックが持つネットワーク変数に命令を書き込むことで接続されているブロックに応じた動作をさせる[6](図 1)．このように，ActiveCube を用いてアプリケーションを開発する環境が整った．
そこで我々はホスト PC 上で ActiveCube システ
ムを制御する部分をライブラリ化し，ActiveCubeを用いたアプリケーションを容易に開発できる環境を構築する．

3. ActiveCube を用いたアプリケーションの開発環境
アプリケーションの容易な開発環境構築のために ， Microsoft 社 の ActiveX 技 術 を 用 い てActiveCube を制御するためのライブラリコンポーネントを作成し，提供する．開発者はこのライブラリコンポーネントを作成中のフォームに貼り付けるだけで ActiveCube の全機能を利用できる．
ライブラリコンポーネントの詳細は以下の通りである．
プロパティ
プロパティは ActiveCube システムの詳細情報を保持する．具体的には接続中のブロックの数，

図 1: ActiveCube システム
ブロックの種類ごとの接続ブロック数，ブロック1

ID，色などの各ブロックの詳細情報，ブロックの3 次元形状ボクセルデータなどがある．また，特殊なプロパティとしてデバッグプロパティがある．
これを True に設定し，EventRaise メソッドと組み合わせて使用することで，開発中のプログラムを ActiveCube のハードを必要とせずにデバッグできる．
イベント
イベントは ActiveCube システムに何らかの変化があった場合に発生し，実行中のアプリケーションに通知する．具体的には新しいブロックが接続されたことを通知する Connected イベント，ブロックが分離されたことを通知する Removed イ
ベント，センサを装備したブロックからのデータ受信を通知する DataArrived イベント，エラーが発生したことを通知する ErrorOccurred イベン
トなどがある．Connected イベントが発生したときは親ブロック，子ブロックの ID およびそれぞれの接続面 ID も通知される．アプリケーション
はこのイベント発生時にボクセルデータプロパテ
ィを読むことによってその瞬間の 3 次元形状を得ることができる．
メソッド
メソッドを利用することでアプリケーションはActiveCube システムを自由に制御できる．具体的にはシステムを初期化する Initialize メソッド，終了する Finish メソッド，ブロックを制御するための Set_NV メソッド，デバッグモードで前述のイベントを発生させる EventRaise メソッド，指定ブロックの指定面の面方向を求める Direction
メソッドなどがある．Set_NV メソッドを使用することでアクチュエータ等の出力ブロックを独自に操作できる．またセンサブロックデータ受信イ
ベント発生時に使用することで入出力ブロックを用いたインタラクションが可能となる．
これらのプロパティ，イベント，メソッドを使用することで，開発者は ActiveCube とのやりとりを意識することなく様々なアプリケーションを容易に開発できる．こうして開発したアプリケー
ションの一例として，図 2 にブロックの接続をリアルタイムでホスト PC 上に表示し，超音波センサを用いてライトの明るさを調節するアプリケーションを示す．

図 2: ActiveCube を用いたアプリケーション例
を意識することなくアプリケーションの開発に専念できる．
今後は，コンポーネントライブラリのさらなる改良を行い，ActiveCube のリアルタイム 3 次元形状モデリングとリアルタイムインタラクション機能を最大限に生かしたアプリケーションをこのコンポーネントライブラリを用いて実現していく予定である．
謝辞 御指導頂いた大阪大学大学院工学研究科正城敏
博講師，そして ActiveCube 試作にあたり，ご支援いただいた(株)システムワットの菊池日出男氏に深い感謝の意を表す．なお，本研究の一部は，科学研究費補助
金基盤研究(B)(2)12480096 ならびに，栢森情報科学振興財団の助成を受けた．

参考文献[1] Ben Shneiderman. Designing the user interface -strategies

foreffective

human-computerinteraction -, third edition. Addison-Wesley, 1998.
[2] D. Anderson, J. Frankel, J. Marks, A. Agarwala,P. Beardsley, J. Hodgins, D. Leigh, K. Ryall, E.
Sullivan, and J. Yedidia. Tangible interaction +graphical interpretation: a new approach to 3Dmodeling, in Proc. of SIGGRAPH 2000, pp.
393-402. 2000.
[3] M. G. Gorbet, M. Orth, and H. Ishii. Triangles:tangibleinterfaceformanipulation

andexploration of digital information topography, inProc. of Conference on Human Factors in
Computing Systems (CHI '98), pp.49-56. 1998.
[4] H. Suzuki and H. Kato. AlgoBlock: a tangible

programming language, a tool for collaborative
learning, in Proc. 4th European Logo Conference,
pp. 297-303, 1993.
[5] 北村 喜文, 伊藤 雄一, 河合 道広, 浅井 政嗣, 正
城 敏博, 岸野 文郎, 菊池 日出男: ActiveCube:ブロックを介した入出力インタフェースの試み; イン
タラクション 2000 予稿集, pp. 73-74, 情報処理学会, 2000.
[6] 伊藤 雄一, 河合 道広, 浅井 政嗣, 北村 喜文, 正

4. おわりに

城 敏博, 岸野 文郎, 菊池 日出男: ActiveCube にActiveCube を用いたアプリケーション開発を容易にするための ActiveCube システムのライブラリ化について述べた．
開発者は ActiveCube コンポーネントライブラ
リを使用することで，ActiveCube とのやりとりよる仮想世界との対話; 日本バーチャルリアリティ学会第 5 回大会論文集, pp. 197-200, 2000.

2