Tutorial?
※このチュートリアルはv2.1.0以降対応です。
ここでは形状ファイル(x3d)を作成してSIGVerseに登場させる方法を説明します。
まず静止物体の形状ファイルを作成します。形状ファイルはノードとフィールドからなります。SIGVerseで形状ファイルを読み込むためにGroup, Transform, IndexFaceSetなどのノードを用いて記述します。
ここでは簡単な立方体の形状ファイルを作成します。
サーバ側でSIGVerse作業ディレクトリに移動し、形状ファイルを作成します。
$ cd ~/MyWorld $ emacs box.x3d
box.x3d
この形状ファイルは1辺が10の立方体です。
以下の行で色(r,g,b)を設定します。緑色に設定しました。
<Material diffuseColor='0.2 0.8 0.2' />
box以外にもsphere,cylinder形状を作成することができます。
エンティティの設定ファイルを作成します。
$ emacs box.xml
<filename>box.x3d</filename>
の行で先ほど作成した形状ファイルを指定しました。
作成したエンティティにコントローラをアタッチして自律動作させたい場合は2行目を修正します。
<define-class inherit="Entity.xml" name="box">
↓
<define-class inherit="Agent.xml" name="box">
Entity.xmlをAgent.xmlに変更しました。Entity.xmlを指定した場合コントローラの取り付けができないので注意してください。
次に世界ファイルを作成します。
$ emacs testBox.xml
testBox.xml
立方体を高さ20cmのところに設置します。
これで準備完了です。それでは実行してみましょう。
$ sigserver.sh -w ./testBox.xml
SIGViewerでサーバにつなげてみると緑色の箱が見えます。
シミュレーションを開始すると箱が落下します。
頂点座標からポリゴン形状を作成する場合はshapeノードの中を以下のように修正します。
$ emacs box.x3d
↓
以下の行でテクスチャ"checker.png"を指定しました。
色々なテクスチャがクライアント側のSIGViewerインストール先にサンプルとして用意されています。
テクスチャサンプル場所: <sigverseインストール場所>\SIGViewer\media\materials\textures
ここに自分専用のテクスチャを追加することも可能です。
それでは実行してみましょう。
$ sigserver.sh -w ./testBox.xml
ビューワーで接続する前に以下の設定をしておきます。
ビューワーのメニューバーにある「Settings」をクリックして「Overwrite shape file」にチェックを入れておきます。これによりクライアント側に置かれた形状ファイルが上書きされます。
それではサーバに接続してみましょう。 以下のようなチェック模様の箱が見えます。
※注意)SIGVerseではX3D形式のファイルを読み込み可能ですが、完全には対応しておりません。