[[Tutorial]]

Up:[[Tutorial]]    Previous:[[SIGViewerのインストール]]     Next:[[動力学シミュレーションのサンプル]]
#contents

*テスト実行1 [#h73b6ff6]

**SIGVerseの起動 [#v57d5f89]
サーバ側で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の停止 [#j89cc189]

このとき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
 
// for i in `ps aux | grep sigserver | 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を実行するようにしてください。


//**SIGViewerの起動 [#k2157e91]
//
//インストールが完了したら、サーバ側でまずSIGVerseを起動します。
//
//$ cd ~/sigverse-<version>/bin
//$ ./sigserver.sh -p 9001

//次にSIGViewerを起動し、"Connection"の枠の中にある"server host name"に接続するサーバのホスト名、"server port No"にサーバで-pオプションを使って指定したポート番号を入力します。ポートフォワーディングによる接続方法は[[こちら>ポートフォワーディングでサーバに接続する方法]]

//次にサーバ側でSIGVerseを起動した状態でSIGViewerの"Connect to SimServer"ボタンを押してサーバに接続します。

//※この時firewallによるブロックを行いますかと聞かれることがあります。ここではfirewallによるブロックを解除するを選択してください。firewallによるブロックをすると一部使えない機能があります。


//#ref(inst_1.jpg)

//ここでSIGViewerで接続しても現時点では何も見えないと思います。

//SIGViewerを終了するときは、Disconnect SimServerボタンをクリックして接続を断ってから終了します。

//**SIGViewerの設定 [#r909f8c1]

//SIGViewerの設定はインストールした場所
//(デフォルトではc:\Program Files)
//の

//SIGViewer_*.*\release\
//
//にあるstartup.cfgで行います。
//
//このファイルではSIGViewerのカメラの位置や視線の方向などの設定を行えます。


*テスト実行2 [#k98de9c8]

次に世界ファイルというものを作成して仮想世界にオブジェクトを登場させます。

**世界ファイル作成 [#z2214ae9]
 $ 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を入力します。

これは仮想世界にペンギンのキャラクターを登場させる世界ファイルです。

**起動 [#uaa20dda]
それではSIGVerseを起動してみましょう。

 $ cd ~/sigverse-<version>/bin
 $ ./sigserver.sh -w test.xml -p 9001 &

先ほど作成した世界ファイルを-wオプションで指定しました。

次にSIGViewerを起動して接続先のホスト名、上で起動したポート番号を入力して、"Connect to SimServer"ボタンを押してサーバに接続します。


#ref(test_1.jpg)

ペンギンのようなキャラクターが見えます。

接続が完了したら、サーバ側では以下のようなメッセージが出ます。(ポートフォワーディングによる接続時のメッセージ)
 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を押しながら右クリック(または右クリックのみ)でマウスを動かします。



//それではSIGViewer、メインサーバを一度終了します。(この時先ほど作成したkill.shを実行します。)

**キャラクターへのアタッチ [#w06ddb12]

このキャラクターを動かす為にはコントローラを作成し、登場するキャラクターにアタッチしなければなりません。ここではすでにいくつかのコントローラのサンプルが用意されているのでそれを使ってテスト実行してみましょう。


//まず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というコントローラは登場するキャラクターがぐるぐる回るサンプルです。

-nオプションでアタッチするエージェントの名前を指定します。Toy_Dは先ほどのペンギンのようなキャラクターの名前です。

**SIGViewerで動作確認 [#d8e640c8]
それではシミュレーションを開始してみましょう。

次にSIM_CTRL_CMDの枠の中がSTARTとなっている状態でSendボタンを押してシミュレーションを開始します。


#ref(test_2.jpg)

ペンギンがぐるぐる回転しているのが見えましたでしょうか?


シミュレーションを停止するにはSIM_CTRL_CMDの枠の中がSTOPとなっている状態でSendボタンを押します。

それではいったんSIGViewerを終了しましょう。
次はいよいよコントローラを作成します。

LEFT:[[戻る>環境設定]]
RIGHT:[[次へ>動力学シミュレーションのサンプル]]
Up:[[Tutorial]]    Previous:[[SIGViewerのインストール]]     Next:[[動力学シミュレーションのサンプル]]


Front page   New List of pages Search Recent changes   Help   RSS of recent changes