Powered by SmartDoc

ELM-VE Command

2003年10月01日
Kenji Saito
http://elm-ve.sourceforge.net

目次

コマンドの説明

VESMA,ELM-VEでは様々なタイプのクライアント(テキストベースクライアントや、 3次元クライアントなど)が使用できますが、どのクライアントでも基本的に、 コマンドが入力できれば何でもできます。

コマンドの種類

VESMA,ELMではコマンドを実行するとは、オブジェクトにメッセージを 送ることに対応します。どのオブジェクトにメッセージを送るかの違い で4種類のコマンドがあります。

  1. コマンド名引数1引数2…
  2. #コマンド名引数1引数2…
  3. ##オブジェクト名コマンド名引数1引数2…
  4. ###コマンド名引数1引数2…

「コマンド名 引数1 引数2 …」の形のコマンドは自分自身(アバタ)に対して メッセージを送ることに対応します。「コマンド名」のところには、メッセージ の種類を表す文字列が合てはまります。引数はコマンド名によって変ってきます。

2番目の「#コマンド名 引数1 引数2 …」の形のコマンドは、自分のいる部屋 に対してメッセージを送ることに対応します。どのようなコマンドが使えるかは、 その部屋のクラスによってかわります。

3番目の「##オブジェクト名 コマンド名 引数1 引数2 …」の形のコマンドは、 部屋の中にある任意のオブジェクトに対してメッセージを送ります。 「オブジェクト名」のところに、メッセージを送りたいオブジェクトの名前を 指定します。どのようなコマンドが使えるかは、そのオブジェクトのクラス によってかわります。

4番目の「###コマンド名 引数1 引数2 …」の形のコマンドは、 クライアントに対してメッセージを送ります。これはめったに使用しませんが クライアントの表示がみだれた場合に使う「###refresh」などが、それに 対応します。

ElmAvatarのコマンド

ELMで通常使用するコマンドを以下に挙げます。これらのコマンド名は UNIXで使用されるコマンド名と似ています。

ls

自分と同じ部屋にいる、全てのオブジェクトの名前を表示します。

cat

オブジェクトの詳細情報を表示します。

コマンドの練習

クラスとオブジェクト

以下の説明ではクラスとオブジェクトという言葉を使用しています。これを混 同しないように気をつけて下さい。オブジェクトは「物」を表わしクラスはそ の物のタイプを表わす言葉です。

ですから、ある一つのオブジェクトに注目すると、それにはオブジェクト名と クラス名の二つが付いていることになります。

「安達、金子、佐藤、菅原、中野渡、成田、松永、渡邊」がオブジェクト名で 「314研究室ゼミメンバー」がクラス名という感じです。

コマンドの入力

とりあえずvesma2.batをダブルクリックして起動します。

仮想環境が表示されている部分と、メッセージが表示されるテキストエリアの 間に、コマンドを入力するテキストフィールドがあります。そこにコマンドを 入力して実行できます。

ためしに、「ls」と入力してエンターキーを押してみて下さい。メッセージと して同じ部屋の中にあるオブジェクトの名前が表示されます。

VESMAを起動した後になにもしてなければ表示されるのは

ls
transpoter
client
kenji

のような3つの名前だと思います。transpoterとclientはHiddenオブジェクト なので画面上では見えませんが、システム内部の仕事をするオブジェクトです。 とりあえず気にしなくていいです。kenjiがVESMAにログインした際に入力した 名前です。あなたのアバタを表わしています。

さらに「cat kenji」でkenjiオブジェクトの詳細な情報を表示できます。

cat
cat   kenji
ac.hiu.j314.elmve.ElmAvatar(kenji):X=-5.0, Y=5.0, Z=0.0 status=RUNNING
 My parent is ac.hiu.j314.elmve.TopElm(root)
//172.17.213.14/ElmVE

kenjiというオブジェクトがac.hiu.j314.elmve.ElmAvatarというクラスのオブ ジェクトでx,y,z座標が(-5.0,5.0,0.0)であることなどが表示されます。

「pwd」というコマンドを実行すると、自分が現在いる場所が表示されます。 例えば

pwd
//172.17.213.14/ElmVE

と表示されます。これは172.17.213.14というIPアドレスが割当てられている マシン上のElmVEという名前のサーバにアバタがいることを示しています。後 で見るように、仮想空間の奥深くに移動すると

pwd2
//172.17.213.14/ElmVE/building8/room103

のようになっていきます。

オブジェクトの作成

VESMAを起動してなにもしてなければ、仮想環境内には自分しかいません。な にかオブジェクトを作成してみましょう。

オブジェクトを作成するには、まず、どのタイプのオブジェクトを作成するか 指定する必要があります。このとき使用するコマンドは「cct」です。引数に は作成したいオブジェクトのクラス名を指定します。

cct
cct   ac.hiu.j314.vesma.Note

と指定すればVESMAのノートオブジェクトが指定されます。ここで指定できる クラス名のリストをこの文章の一番下に付けておきます。

cctコマンドを実行しても、まだ何も作成されません。touchコマンドを実行す ると実際にオブジェクトが作成されます。

touch
touch   note01

上のコマンドを実行すると、自分の背後になにかが新しく作成されたのがわか る思います。note01というのがオブジェクトの名前になります。

重なっていてはわかりずらいので、オブジェクトの場所を移動してみましょう。

locate
locate   note01   5.0   5.0   0.0

5.0 5.0 5.0はx,y,zの座標です。適当に変更してみて下さい。

作成したオブジェクトを消去するには「rm」コマンドを使用します。

rm
rm   note01

上のコマンドを入力するとnote01オブジェクトが消去されます。

一応、コマンドを説明しましたが、「touch」「rm」「locate」のコマンドは マウス操作で代用できます。マウスの真中ボタン(真中ボタンが無い場合はAlt キー+左ボタン)で背景の部分をクリックすると「touch」、オブジェクトをク リックすると「rm」の動作をします。マウスの左ボタンで普通にドラッグすれ ばオブジェクトの場所を移動できます(「locate」コマンド)。

メッセージ送信

ELM,VESMAの仮想環境各オブジェクトは、特定のメッセージを受け取ってその メッセージの内容に従って動作します。コマンドラインからメッセージを送る 方法があります。

メッセージの送信を試すためにac.hiu.j314.vesma.Noteクラスのオブジェクト をもう一度作成してみて下さい。「cct」コマンドは一度指定すると、以後有 効なので省略できます。

touch   note02  5.0   5.0   0.0

「touch」コマンドの引数として上のようにx,y,z座標を初めから指定すること も可能です。

note02オブジェクトが作成できたら、次のコマンドラインを入力してみて下さい。

##note02   openCustomizer

最初にシャープ「#」が2個付いているのがみそです。これは、note02という名 前のオブジェクトに対してopenCustomizerという名前のメッセージを送るとい う意味です。コマンドを実行すると、カスタマイザが開きます。VESMAのNote クラスのオブジェクトのカスタマイザはWebブラウザになってます。デフォル トでVESMAのオブジェクトのページが開かれたと思います。確認したら[done] ボタンでWebブラウザを閉じて下さい。

こんどは以下のコマンドを入力してnote02オブジェクトにsetSourceURLという 名前のメッセージを'http://www.do-johodai.ac.jp/'という引数付きで送りま す。

##note02   setSourceURL    'http://www.do-johodai.ac.jp/' &

なにも変化しませんが、もう一度カスタマイザを開くと北海道情報大学のペー ジに変っているのが確認できます。

実は「openCustomizer」コマンドの実行もマウス操作で代用できます。カスタ マイザを開きたいオブジェクトのアイコンをダブルクリックして下さい。

移動

ELM,VESMAの仮想環境は階層構造になっています。Windowsなどのファイルシス テムのような感じです。Windowsでは「フォルダ」というものがあって、その 中に他のファイルを保存できますが、VESMAではac.hiu.j314.vesma.Roomクラ スのオブジェクトの中に、他のオブジェクトを投入できます。

とりあえずac.hiu.j314.vesma.Roomのオブジェクトを作ってみて下さい。

cct   ac.hiu.j314.vesma.Room
touch   room01

ちっちゃな小屋のようなアイコンのオブジェクトが作成されたと思います。こ のちっちゃな小屋の中には、また別の仮想空間が存在しています。この小屋に 入ってみましょう。

cd   room01

背景が変化してroom01の小屋が消えたと思います。つまりroom01の中の別の仮 想空間に入ったということです。ここでもう一度、部屋を作ります。

touch   room02

また、小屋が作られます。さらに、この部屋に入てみます。

cd   room02

新しい仮想空間に入ったことが別ります。ここで自分の場所を表示するコマン ド「pwd」を入力してみて下さい。

pwd
//172.17.213.14/ElmVE/room01/room02

と表示されます。現在の仮想空間から外に出るには次のように入力します。

cd   ..

MS-DOSのコマンドでフォルダを移動する場合と同じです。ここで「pwd」を実 行すれば以下のようになるでしょう。

pwd
//172.17.213.14/ElmVE/room01

この「cd」コマンドを入力するかわりに、キーボードのカーソルキーでアバタ を移動して小屋に体当りさせてみて下さい。自動的に小屋の中に入ります。

サーバ間の移動

ここまでは、自分の目の前にあるパソコンの内部だけの話でしたが、 ELM,VESMAはインターネットを利用して他のサーバマシンの中の仮想空間をの ぞくことができます。以下のコマンドを入力して下さい。

go   //v314.do-johodai.ac.jp/ElmVE

314研究室の中に置いてあるVAIOのマシンのElmVEと名前が付いているサーバに に存在している仮想空間に移動できます。複数の人が、同じ仮想空間に入れば 互いに他のアバタが確認できます。また、次のコマンドで、会話もできます。 (VESMAを使っている場合。ELMでは会話はできません。)

whisperTo   ユーザ名   '会話内容'

自分のVESMAの仮想空間に戻るには「goHome」コマンドを使用して下さい。

VESMAで提供されているクラス

ac.hiu.j314.vesma.Room
ac.hiu.j314.vesma.Link
ac.hiu.j314.vesma.Exit
ac.hiu.j314.vesma.Note
ac.hiu.j314.vesma.Creature
ac.hiu.j314.vesma.Examination
ac.hiu.j314.vesma.VApplet
ac.hiu.j314.vesma.Media
ac.hiu.j314.vesma.Music
ac.hiu.j314.vesma.Scenshifter
ac.hiu.j314.vesma.WhiteBoard
ac.hiu.j314.vesma.Counter