新入力方法を「複数の操作を一度にまとめた操作型」と「再利用型」という2つの アプローチを元に提案する。
5.5.1 複数の操作を一度にまとめた操作型
従来、我々は複数の命令を一命令に置換えたマクロ命令を用いることがある。この 手法からVPSでノードの生成やエッジの生成を一度の操作で入力する手法を考え、
以下の4つの手法にまとめた。
細胞分裂型入力法
我々は、細胞が分裂することによって数を増やす、という方法をノードとエッジの 生成に適用することを考えた。図5.3では細胞分裂型入力法を用いてノードとエッジ の生成を行っている。最初にユーザはノードAの右端を摘む。マウスカーソルをその まま右へ移動する。ノードAはくびれながら伸びる。くびれの一部はそのままエッジ になる。ノードAから細胞分裂するように同じ種類のノードBがエッジの右端に生 成される。マウスボタンをドロップすると一連の入力操作は一旦完了する。ユーザは、
同じ操作を繰り返すことによって連続的にノードとエッジを生成することができる。
この入力法では同じ種類のノードの生成と同時にエッジの生成も行われる。ドラッ グ&ドロップ数はノードの数だけ必要になるがクリック数は従来より少く済むがとい う点で従来の入力方法よりも効率的であると言える。
図5.3: 細胞分裂型入力法
一筆書き型入力法
一筆書きとは、紙面から筆を一度も離さないでなぞり終える書き方である。我々は、
一筆書き用いてをエッジを効率的に入力する一筆書き型入力法を考えた。図5.4で一 筆書き型入力法を用いたエッジが効率的な入力法について説明する。図5.4左ではユー ザは既にノードA、ノードB、ノードCを生成している。ユーザはノードAとノード Bをつなげ、さらにノードBとノードCもつなげたい。ユーザはマウスカーソルをド ラッグしてノードAからノードB、ノードBからノードCへとなぞる。図5.4真中で はなぞったマウスカーソルの軌跡が実線で示されている。ユーザがなぞり終わり、ド ロップするとシステムはマウスカーソルの軌跡を元にノードA、ノードB間とノード
B、ノードC間にエッジを生成する。図5.4右ではノードA、ノードB、ノードCが 結線されている。ユーザが1回ドラッグ&ドロップするだけで2つのエッジを生成す ることができる。
ユーザは、ノードを生成する時にノードの数だけクリックしなければならない。こ の点は従来の入力法と変わらない。しかし、エッジの結線はドラッグしたマウスの軌 跡と交わったノードに対して行われる。ドラッグ&ドロップの数は、ノードの数より も少いという点で従来の方法と比較して効率的である。また、二次元ペイントツール のように手軽に結線できるというメリットもある。
図5.4: 一筆書き型入力法
重ね合わせ型入力法
我々は、拡張直接操作手法の中で拡張ドラッグ&ドロップ手法を適用している。拡 張ドラッグ&ドロップではユーザの視線から見たオブジェクトの重ね合わせを利用し ている。我々はユーザの視線から見たオブジェクトの重ね合わせを利用したエッジの 効率的な入力法として適用することを考えた。
図5.5では、重ね合わせ型入力法を用いてエッジを効率的に生成している。ユーザ の視線からノードA、ノードBが重なっていないように配置している。ユーザは手前 に配置してあるノードAをドラッグして右に移動し、奥にあるノードBに重ねる。シ ステムはユーザの視線から見てノードAとノードBが重なっていると検知する。ノー
ドAとノードBの間にはエッジが生成される。ユーザは、ノードB以外でも重ねる だけで連続的にエッジを生成することができる。
この方法は従来の入力法と比べてドラッグ&ドロップ数はノードの数だけで済む。
また、重ねれば結線してしまうので奥行を気にせず気軽に入力できるというメリット もある。
図5.5: 重ね合わせ型入力法
新一筆書き型入力法
早野がdishシェル[29]上で複数のアイコンを一度に操作する方法として「串刺し」
を提案した。つまんだアイコンの列を一度に操作したいアイコンの上に重ると摘んだ アイコンの列に追加される。我々はこの手法をプログラムの入力法に適用することを 考えた。この手法を一筆書き型入力法に適用することでノードとエッジの生成を同時 に行うことができる。
図5.6で新一筆書き型入力法を用いた効率的なノードとエッジの生成について説明 する。ユーザは最初に、生成したいノードと同じ種類の3Dアイコンをドラッグして 生成する。図5.6左でユーザは3DアイコンA、B、Cを順番にドラッグしている。
3DアイコンAからノードA’、3DアイコンBからノードB’がエッジで結線された 状態で生成される。ノードB’とエッジで結線された状態でノードC’が3Dアイコン Cから生成される。ユーザがドロップすることで入力処理が終了する。ユーザは1回 のドラッグ&ドロップでノードを3つ、エッジを2つ生成することができる。
ユーザが次々とマウスカーソルとノードを重ね合わせることによってグラフが生成 される。また、ノードの「移動」操作とノードやエッジの「生成」操作を区別せずに 操作できるのでユーザは「移動」と「生成」の操作を切り替る必要がなくなる。
一筆書き型入力法では、ノードの生成する操作は従来と同じクリックによる操作で
’
’
’
図5.6: 新一筆書き型入力法
あったため効率的な入力法としては十分ではなかった。新一筆書き型入力法では、3 Dアイコンを利用しノードをエッジの生成を同時に行なうのでドラッグ&ドロップ数 だけでなく少ないクリック数での入力が可能になった。この手法は、3Dアイコンか らノードを生成する場面で有効な入力法である。
5.5.2 再利用型
一般的に定型の文章を頻繁に書く時、事前に用意されたテンプレートに文章を編集 することで効率的に文章を書くことができる手法がある。VPSにおいて今まで使用 していたプログラムや頻繁に記述するようなプログラムを部品として再利用し、入力 の手間を省く手法について以下の2つの手法にまとめた。
セミオーダー型入力法
ユーザがよく使うようなグラフのひな型を幾つか用意する。そのようなひな型を3 Dアイコンとして表示する。ユーザが同じような構造を持つビジュアルプログラムを 繰り返し入力する場面でひな型の3Dアイコンをクリック、生成する。ユーザは、ひ な型を利用することによって最初からプログラミングする必要がなくなり効率的にプ ログラミングができる。
図5.7を用いてセミオーダー型入力法について説明する。よく使うグラフをひな型 として3DアイコンCとして用意する。ユーザは3DアイコンAからノードA’、3 DアイコンCから2つのサブグラフC’を生成する。ユーザは、ノードA’とサブグラ フC’を少し編集するだけでビジュアルプログラムD’を作成することができる。
この入力法は、予めよく使うプログラムが分かり、3Dアイコンとして用意されて いる場合に有効である。
’ ’
D’
図 5.7: セミオーダー型入力法
テキスト利用型入力法
今までテキストで書いたプログラムをコピーしエディタの画面にペーストすること によってビジュアルプログラムをシステム側で自動生成する。プログラムの任意の部 分を利用できるのでプログラムを全てロードして不要なビジュアルプログラムを生成 しなくて済む。
図5.8では、テキスト利用型入力法を用いてビジュアルプログラムを入力法してい る。ユーザは、これから入力するテキストで書かれたプログラムをコピーする。はじ め、図5.8左では画面にはビジュアルプログラムが表示されていない。しかし、図5.8右 ではペーストされたテキストプログラムがビジュアルプログラムに変換され表示され ている。既存のプログラムを利用しているのでゼロからプログラミングする必要がな くなり入力の手間が省ける。
この入力法は、予めテキストで書いたプログラムがある場合に有効である。
:-module main.
main:-append([1,2],[3,4,5],Result), io:outstream([print(Result),nl]).
図 5.8: テキスト利用型入力法