Up:Tutorial? Previous:形状ファイルのダウンロード Next:動力学シミュレーションのサンプル
サーバ側でSIGVerseをインストールした場所に移動してSIGVerseを起動してみます。
$ cd ~/sigverse-<version>/bin
SIGVerseを起動するには~/sigverse-<version>/binにあるsigserver.shシェルスクリプト実行して起動します。このとき-pオプションでポート番号を指定します。ポート番号は空いている番号でしたら何番でも構いません。9000番以上の番号で他人とかぶりにくい番号をお勧めします。
$ ./sigserver.sh -p 9001
[SYS] data directory : [SYS] [1] /home/<username>/sigverse-100317/share/sigverse/data/xml/ [SYS] [2] /home/<username>/sigverse-100317/share/sigverse/data/shape/ [SYS] world file : MyWorld.xml [SYS] reading /home/<username>/sigverse- 100317/share/sigverse/data/shape/sample3.x3d... read /home/<username>/sigverse-100317/share/sigverse/etc/X3DParser.cfg *** JavaVMOption *** options[0].optionString = (-Djava.class.path=/home/okamoto/sigverse- &b100317/share/sigverse/jar/X3DParser.jar:/home/<username>/sigverse- 100317/share/sigverse/jar/xj3d-all.jar) options[1].optionString = (-Djava.library.path=/tmp) Java VM start ok all done.[SYS] waiting for connection...
SIGVerseが正常に起動しました。
ctrl+zボタンを押していったん停止します。
このときSIGVerseがバックグラウンドで起動し続けているため、同じポート番号でSIGVerseを起動することができなくなります。よって、killコマンドを使ってSIGVerseを停止する必要があります。
以下のシェルスクリプトを作成します。
$ cd ~ $ emacs kill.sh
#!/bin/bash for i in `ps aux | grep sig | grep <username> | awk '{print $2}'`; do echo process id: $i kill -9 $i done
※<username>は自分のユーザー名に置き換えてください。
$ chmod 744 kill.sh $ ./kill.sh : [1]+ 強制終了 ./sigserver.sh -p 9001 (wd: ~/sigverse-100908/bin)
これでプロセスが終了します。
現在起動中のプロセスを確認すには以下のコマンドを使います。
$ ps aux | grep <username>
今後省略しますが、SIGVerseを起動するたびにkill.shを実行するようにしてください。
次に世界ファイルというものを作成して仮想世界にオブジェクトを登場させます。
$ cd ~/sigverse-<version>/share/sigverse/data/xml
ここに世界ファイルを作成します。世界ファイルはxmlファイルで記述されており、仮想世界に登場するキャラクターの設定を行います。
$ emacs test.xml
test.xml
※ファイル保存時にコードシステムを聞かれたらutf-8を入力します。
これは仮想世界にペンギンのキャラクターを登場させる世界ファイルです。
それではSIGVerseを起動してみましょう。
$ cd ~/sigverse-<version>/bin $ ./sigserver.sh -w test.xml -p 9001 &
先ほど作成した世界ファイル(test.xml)を-wオプションで指定しました。xmlファイルを作成したディレクトリまでのパスはあらかじめ設定されているので、指定する必要はありません。
次にSIGViewerを起動して接続先のホスト名、上で起動したポート番号を入力して、"Connect to SimServer"ボタンを押してサーバに接続します。
ペンギンのようなキャラクターが見えます。
接続が完了したら、サーバ側では以下のようなメッセージが出ます。(ポートフォワーディングによる接続時のメッセージ)
all done.[SYS] waiting for connection... [SYS] attach view : polling [SYS] 127.0.0.1 connected [SYS] SIGViewerDataPort : dataport [SYS] 127.0.0.1 connected [SYS] 127.0.0.1:8000 : service provider [SYS] 127.0.0.1 connected
SIGViewerの視点や方向を変えるには画面上でCtrlを押しながら右クリック(または右クリックのみ)でマウスを動かします。
このキャラクターを動かす為にはコントローラを作成し、登場するキャラクターにアタッチしなければなりません。ここではすでにいくつかのコントローラのサンプルが用意されているのでそれを使ってテスト実行してみましょう。
それでは準備されているサンプルコントローラバイナリを読み込み、エージェントにアタッチします。(Enterキーを押すとコマンドが使えます。)
ペンギンが見えている状態で以下のコマンドを実行します。
$ ./sigrunac -l ../share/sigverse/samples/GoRound.so -n Toy_D -p 9001 [SYS] Controller attached to "Toy_D" [SYS] 127.0.0.1 connected [SYS] Toy_D : dataport [SYS] 127.0.0.1 connected
これでキャラクタ-にアタッチしました。 sigrunacはコントローラをシミュレーションサーバ中のエージェントにアタッチするためのツールです。-lオプションでアタッチするコントローラライブラリを指定します。サンプルのコントローラライブラリは
sigverse-<version>/share/sigverse/samples/
にいくつか用意されています。 GoRound.soというコントローラは登場するキャラクターがぐるぐる回るサンプルです。
それではシミュレーションを開始してみましょう。
次にSIM_CTRL_CMDの枠の中がSTARTとなっている状態でSendボタンを押してシミュレーションを開始します。
ペンギンがぐるぐる回転しているのが見えましたでしょうか?
シミュレーションを停止するにはSIM_CTRL_CMDの枠の中がSTOPとなっている状態でSendボタンを押します。
サーバとの接続を切断するにはDisconnect Simserverボタンを押します。
それではいったんSIGViewerを終了しましょう。 次はいよいよコントローラを作成します。
Up:Tutorial? Previous:形状ファイルのダウンロード Next:動力学シミュレーションのサンプル