Tutorial?
次に世界ファイルというものを作成して仮想世界にオブジェクトを登場させます。
$ cd ~/sigverse-<version>/share/sigverse/data/xml
ここに世界ファイルを作成します。世界ファイルはxmlファイルで記述されています。
$ emacs test.xml
test.xml
<?xml version="1.0" encoding="utf8"?>
<world name="myworld">
<!--重力の指定-->
<gravity x="0.0" y="-9.8" z="0.0"/>
<!--登場キャラクターのインスタンス作成-->
<instanciate class="seToy_D.xml">
<!--キャラクターの名前-->
<set-attr-value name="name" value="Toy_D"/>
<!--動力学演算の機能off-->
<set-attr-value name="dynamics" value="false"/>
<!--C++言語の指定-->
<set-attr-value name="language" value="c++"/>
</instanciate>
</world>
※ファイル保存時にコードシステムを聞かれたらutf-8を入力します。
これは仮想世界にペンギンのキャラクターを登場させる世界ファイルです。
それではSIGVerseを起動してみましょう。
$ cd ~/sigverse-<version>/bin $ ./sigserver.sh -w test.xml -p 9001 &
先ほど作成した世界ファイルを-wオプションで指定しました。
次にSIGViewerを起動して接続先のホスト名、上で起動したポート番号を入力して、"Connect to SimServer"ボタンを押してサーバに接続します。
ペンギンのようなキャラクターが見えます。
視点や方向を変えるには画面上で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ボタンを押します。
それではいったんSIGViewerを終了しましょう。 次はいよいよコントローラを作成します。