UGAIがわかれば仕組みがわかる!
OpenSim.iniの設定項目
OpenSim.iniでの設定項目はたくさんありますが、ここでもっとも重要だと思われる設定を紹介します。
「[startup]」セクションでは、OpenSimのグローバルな設定を記述します。
「gridmode」では、OpenSimの動作モードを設定します。falseはスタンドアローン、trueはグリッドモードでOpenSimが起動します。
「storage_plugin」と「storage_connection_string」では、「島」にある建築物などのオブジェクトを保存するデータベースを設定します。OpenSimが現在サポートしているデータベースはSQLite、MySQL、Microsoft SQL Serverです。例として、SQLiteとMySQLの設定を以下に示します。
SQLiteの場合は、以下のように設定することで、オブジェクトがOpenSim.dbに保存されます。
storage_plugin="OpenSim.Data.SQLite.dll"
storage_connection_string="URI=file:OpenSim.db,version=3";
MySQLの場合は、以下のように設定します。
storage_plugin="OpenSim.Data.MySQL.dll"
storage_connection_string="Data Source=[Host];Database=[DBName];User ID=[DBUser];Password=[Password];"
この設定では[Host]、[DBName]、[DBUser]、[Password]のところに自分の環境に合わせた値を設定してください。必要なテーブルがリージョンサーバー起動時に自動的に作成されます。
なお、どちらの場合でもオブジェクトを保存しない場合は、以下のように設定します。
storage_plugin="OpenSim.Data.Null.dll"
「physics」では、物理エンジンの種類を設定します。物理エンジンと言うのは仮想世界内における物体の物理運動をリアルに再現するプログラムです。物理エンジンの主な役割は物体同士間の衝突や、落下物体の速度の計算などがあります。筆者が動作確認した値についてそれぞれ紹介しましょう。
以下の設定では、アバターと地面の衝突しか判定しません。OpenSimを一番軽く動作させる設定です。
physics = basicphysics
以下の場合、指定されている「OpenDynamicsEngine(ODE)」(http://www.ode.org)はオープンソースの物理エンジンです。OpenSimではODEの実装がもっとも進んでおり、この設定を使うと、リアルに世界を再現することができます。ただし、CPUへの負荷が重くなります。
physics = OpenDynamicsEngine
以下の設定では、衝突の判定精度を下げたり、アバター同士の衝突判定を省略したりすることで、仮想世界を部分的にシミュレーションしています。サーバーの動作はODEより軽くなります。
physics = POS
現時点では、自分で試すためにも、サービスを公開するためにも、ODE物理エンジンがおすすめです(図2、高画質版はこちら(http://jp.youtube.com/watch?v=WVLGdUbk2mM&fmt=18))。
UGAIの設定
「[network]」セクションは、リージョンサーバーが接続する「UGAI」サービスのURIを設定します。
「第2回:自分の島を創ろう!(http://www.thinkit.co.jp/article/129/2/)」で、自分のリージョンサーバーをOSGridに接続する時に、OSGridの「UGAI」のURIで値を設定しました。リージョンサーバーを同じPC上に構築した「UGAI」に接続して試す場合、以下のように設定します。
グリッドサーバー、ユーザーサーバーは以下のように設定します。
[network]セクション
grid_server_url = "http://127.0.0.1:8001"
user_server_url = "http://127.0.0.1:8002"
上記に続けて、アセットサーバー、インベントリサーバーを以下のように設定します。
asset_server_url = "http://127.0.0.1:8003"
inventory_server_url = "http://127.0.0.1:8004"
次は、データベースの設定を説明します。