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"ボタンを押してサーバに接続します。
ペンギンのようなキャラクターが見えます。
それではSIGViewer、メインサーバを一度終了します。(この時先ほど作成したkill.shを実行します。)
このキャラクターを動かす為にはコントローラを作成し、登場するキャラクターにアタッチしなければなりません。すでにいくつかのコントローラのサンプルが用意されているのでそれを使ってテスト実行してみましょう。
まずSIGVerseを起動します。
$ cd ~/sigverse-<version>/bin $ ./sigserver.sh -w test.xml -p 9001 &
all done.[SYS] waiting for connection...
この状態ではメインサーバではエージェントがアタッチされるのを待っています。
次にすでに準備されているサンプルコントローラバイナリを読み込み、エージェントにアタッチします。(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というコントローラは登場するキャラクターがぐるぐる回るサンプルです。
それではSIGViewerを起動してサーバに接続し、シミュレーションを開始します。
SIGViewerを起動して接続するホスト名とポート番号を入力し、Connect to SimServer?ボタンをクリックしてサーバに接続します。
次にSIM_CTRL_CMDの枠の中がSTARTとなっている状態でSendボタンを押してシミュレーションを開始します。
ペンギンがぐるぐる回転しているのが見えましたでしょうか?