設定

OpenSimulator シミュレータ設定ファイル
地域シミュレータの設定は OpenSim.ini と呼ばれるファイルで行われます. このファイルは SIM がスタンドアロンモードで動作していてもグリッドモードで動作していても同じように使用されます. このファイルは config-include/ ディレクトリの中にある追加の設定情報を参照します. 各種設定についての情報は OpenSim.ini ファイル自体にあります（または OpenSim.ini.example が参考となります）.

OpenSim.ini という名前は、コマンドライン引数で変更される場合があります.

INI ファイルを 2 つのファイルに分けて配布することができます. OpenSimulator を複数起動して、一部の設定以外は全く同じ設定にしたいときに便利です. マスターファイルが最初に呼ばれ、 INI ファイルが次に呼ばれます. INI ファイルに記述された設定はマスターファイルに記述された設定を上書きします. マスターファイルには INI ファイルと同じフォーマットで同じキーワードで書かれていますので、INI ファイルについての説明がマスターファイルについてもあてはまります.

各設定ファイルの日本語訳

 * bin/OpenSim.ini.example
 * bin/Robust.ini.example
 * bin/config-include/StandaloneCommon.ini.example
 * bin/config-include/GridCommon.ini.example
 * bin/config-include/FlotsamAssetCache.ini.example
 * bin/config-include/CenmoeAssetCache.ini.example

データベース
OpenSimulator は以下のデータベースエンジンをサポートします. 設定の詳細は、 OpenSim.ini.example ファイルや、その他 bin/config-include にある各種サンプルファイルにあります. 各データベースの設定の詳細は Database Settings を参照してください.


 * SQLite （標準） - OpenSimulator にバンドルされている、軽いデータベースで、特に設定をすることなく使用できます. 手っ取り早く立ち上げるためのオプションであり、商用利用には適していません. MySQL に比べて超遅いです. ここに書かれている機能の中には（例えばアタッチメントの不揮発化など）、完全に実装されていないものがあります.
 * MySQL 5.1 （完全にサポートされています）- これは推奨のデータベースで、本格的に使用したり、小さなスタンドアロンアプリケーションを作成したりする場合に適しています.
 * OpenSimulator 0.7.1: そのままの状態で MySQL 5.5 をサポートします.
 * 64 ビット版 Windows: 現在、MySQL 5.5 を Windows x64 システムで動作させる場合に、未解決のバグ bug_id=5294 が発生することがわかっています.
 * OpenSimulator 0.7.0.2: MySQL 5.1.55 と 0penSim 0.7.0.2 の組み合わせで問題が発生すると、ユーザが報告しています. 詳細は this thread を参照してください. この問題は MySql.Data.dll のアップデートされたバージョンを使用するか、MySQL の古いバージョン、例えば MySQL 5.1.52 をインストールして、OpenSimulator 0.7.0.2 と共存させるかすれば解決します.


 * MSSQL (一部サポートされています) - 最近の OpenSimulator の機能の中には実装されていないものがあります.

スタンドアロン vs グリッド
最初のうちは、グリッドに接続したりグリッドを作ったりするまでは、 OpenSimulator をスタンドアロンモードで動かすことをお薦めします. OpenSimulator はバイナリ・ディストリビューションで何も設定しないとスタンドアロンモードで動作します.

OpenSimulator 設定は地域（地域シミュレータによって動作する）とバックエンドデータサービス（ユーザ、アセット、インベントリの管理など）で構成されています.

スタンドアロンモードで動作するシステムでは、 OpenSim.exe を起動すると、地域シミュレータと全てのデータサービスが同一プロセスで動作します. このモードでは、地域を好きなだけ起動させることができますが、マシンは１つに制限されます.



グリッドモードでは、データサービスは地域サーバプロセスから分離されています. その代わり、それぞれ Robust.exe と呼ばれる実行可能プログラムで動作します. Robust シェルは全てのサービスを動作させたり、任意の数の Robust インスタンスに分割して動作させたりすることができます. これにより、必要であれば、全く別のマシンで動作させることもできます. このモードでは、 OpenSim.exe は単なる地域サーバとして動作して、１つ以上の地域と分離したデータサービスとの間の通信を受け持ちます. 現在のところ、 OpenSim.exe の地域シミュレータを別々のマシンで複数立ち上げることができます.



グリッドモードで動作させるのは、スタンドアロンモードで動作させるより難しいです. UUID 、 XY座標、サーバハンドシェークパスワード、不動産や不動産オーナー、その他諸々の設定についての知識が必要です. 設定は、注意深く、忍耐強く行わなければなりません. あなたがものすごく忍耐強く器用な人でなければ、グリッドモードで動作させようとしないことを強くお薦めします.

= OpenSimulator をスタンドアロンモードで動作させる = OpenSimulator のバイナリディストリビューションをスタンドアロンの設定で動作させるのは比較的単純です. デフォルトでそのように設定されているからです. 逆に、もしソースディストリビューションをGit リポジトリから取得してビルドするのなら、以下の手順が必要となります.


 * 1) bin/OpenSim.ini.example ファイルを bin/OpenSim.ini にコピーします. これは 、3D シミュレータ自体を設定するものです.
 * 2) bin/config-include/StandaloneCommon.ini.example ファイルを bin/config-include/StandaloneCommon.ini にコピーします. これは、スタンドアロン設定で使用される、プロセスの内部にあるサービスを設定するものです.
 * 3) OpenSim.ini のファイルの最後の方にある [Architecture] セクションで、 Standalone.ini の行のコメントを外します. 行のコメントアウト状態を解除するには、行の先頭にあるセミコロン  を外して、次のような感じにします.

Include-Architecture = "config-include/Standalone.ini"

OpenSim.exe を起動すると、 OpenSimulator が起動したことになります. しかしその前に、関連するモジュールを全部インストールしておく必要があります. 詳細は、動作環境 を参照してください. その後、コマンドプロンプト (Windows の場合、スタートメニュー > ファイル名を指定して実行... > cmd) を開き、OpenSim/bin ディレクトリに移動します.

32 ビット版 Windows のコマンドプロンプトでは、 OpenSim.exe 64 ビット版 Windows では、まだ ODE が 64 ビットモードでコンパイルされていないため、デフォルトの ODE 物理エンジンを使う場合は次のようにして実行します. OpenSim.32BitLaunch.exe Linux では、次のようにして実行します. mono OpenSim.exe ODE 物理エンジンを使う場合は、32 ビットモードでも 64 ビットモードでもこの手順で起動します.

OpenSimulator を最初に起動する
OpenSimulator を最初に起動すると、いくつかの質問がコンソールに表示され、あなたに代わって１個の地域を設定してくれます. 入力した設定内容は bin/Regions/Regions.ini に記載され、後日変更が必要になったときに編集できるようになっています.

多くの質問にはデフォルトの答えがあります. ここで、質問の意味を説明します.


 * New region name
 * 地域の名前です. 空白にしないでください！


 * Region UUID
 * 地域のユニークな ID です. よっぽどのことがない限り、角括弧に囲まれて表示されている、ランダムに生成されたデフォルト値をそのまま採用すればよいでしょう. 既にある地域データに対して設定を行おうとしている場合のみ、やってはいけません. しかし、このケースではおそらく Regions.ini ファイルを直接編集したほうがいいと思うでしょう.


 * Region Location
 * これはグリッドの中における地域の位置です. スタンドアロンモードではデフォルト値 (1000,1000) のままにするほうが安全です. 後で Regions.ini に別の地域を追加するとき、違うグリッド座標 (1000,1001など) にする必要が出てくるでしょう. OpenSimulator の地域は 65536 × 65536 のグリッドの中のどこにでも設置することができますが、ハイパーグリッド 対応地域では地域の位置に関して特別な考慮が必要です. 詳しくはハイパーグリッドのインストールと運用を参照してください.


 * Internal IP address
 * これは常に 0.0.0.0 でなければなりません（0.0.0.0 は「全てのインターフェースの接続を監視する」という意味で、要はワイルドカードです）. UDP 接続を 1 つのネットワークインターフェースだけに限定したい場合は、IP アドレスを明示的に指定しましょう. このアドレスは内部でのみ使用されます - External host name だけが、ビューアに送信されます（ので、大きな影響をもつものとなっています）.


 * Internal port
 * これはクライアント接続の受け口となる IP ポートです. この名前は少し誤解を招きがちです. これは内向きだけでなく、外向きの通信にも（例えば Second Life ビューアなどで）使用されるからです. 好きなポートを指定して構いませんが、 9000 にしておくのが安全です. サーバ上の地域には、それぞれ別々のポートが設定されていなければなりません.


 * Allow alternate ports
 * これは現在試行中です. デフォルトの False のままにしてください.


 * External host name
 * これをデフォルトの 'SYSTEMIP' のままにすると、マシンの LAN ネットワークアドレス（例えば 192.168.1.2) となります. LAN の中からのみ接続する場合は、この設定で大丈夫です. インターネット上のクライアントから接続させる場合は、これはルータの外部 IP アドレスにしなければなりません.  Fully Qualified Domain Names (FQDNs) も使用されますが、ビューアに送信される前に IP アドレスに変換されます.

OpenSimulator 0.6.9 以前では以下も質問されます.


 * Master Avatar UUID
 * これはレガシーな OpenSimulator 機能で、 00000000-0000-0000-0000-000000000000 のままで結構です. 後々、地形編集で問題が発生したら、Regions.ini でこれを自分のアバターの UUID に変更するとよいでしょう.


 * Master Avatar first name
 * マスターアバターを指定するもう一つのやり方です. UUID でなくアバター名で指定します. ここでエンターキーを押すと、このフィールドと last name フィールドが空となります. デフォルトの空白のままで結構です - これは後からいつでも Regions.ini ファイルで変更できます.


 * Master Avatar last name
 * マスターアバターのラストネームです.


 * Master Avatar sandbox password
 * マスターアバターのパスワードです.

OpenSimulator 0.7 以降では、OpenSimulator はセットアップの過程で、各地域を不動産(Estate)に関連づけるための質問をしてきます. 不動産を作成する必要がある場合は、不動産管理者(Estate Manager)を作成するためにさらに質問をしてきます. スタンドアロンモードの場合、不動産管理者はセットアップの過程で作成されます.

マスターアバター（0.6.9 の場合）や不動産管理者（0.7 以降）を設定するのに使ったアカウント情報を忘れないようにしてください. 初期状態ではこのユーザだけが地域のインワールド設定を行うことができるようになります. これは、最初にログインしてみる際に使うユーザアカウントにもなります.

地域の設定 に、質問によって生成された Regions.ini ファイルについての追加情報があります.

不動産管理者以外のユーザを作成したいときは、サーバコンソールに次のように入力します. create user ユーザ作成に必要な（ファーストネーム、ラストネーム、パスワードなどの）質問をしてきます.

OpenSimulator に接続する
自分のユーザ名で新しい SIM に接続するには、次のコマンドライン引数で Second Life ビューアを起動します.

OpenSimulator を同じマシンにあるクライアント: -loginuri http://127.0.0.1:9000/

OpenSimulator と同じ LAN ネットワークにあるクライアント: -loginuri http://lan_ip:9000/

他のマシンや、インターネット上にあるクライアント: -loginuri http://external_ip:9000/

それから先の手順で設定したユーザ名とパスワードを入力すると、新しいユーザでログインできるはずです.

「外部の」設定を使ってビューアとサーバを同じマシン (LAN) で動作させる場合は、ループバック 問題に気をつけてください. （ 地域のハンドシェークで永遠に待たされることになります. ） トラブルシューティングのヒント も参照してください. 接続に関して問題がある場合は、必ずネットワーク設定のページを読んでください. 地域ハンドシェークにまつわるトラブルを理解するのに重要な資料です.

= OpenSimulator をグリッドモードで動作させる =

OpenSimulator をグリッドモードで動作させるのは、スタンドアロンで動作させるのよりも難しいとされています. 全てが同一プロセスで動作するのではなく、バックエンドのデータサービス (アセット、インベントリなど) は、たいてい異なるマシン上にある、１つまたは複数に分かれたプロセスで動作します. この仕組みにより、複数の OpneSim.exe シミュレータ・インスタンスが同一のアセットやインベントリ・データを使用することができるようになります.

ステップ 1: ROBUST サービスインスタンスを設定する
1. bin ディレクトリで、Robust.ini.example を Robust.ini にコピーします. このサンプルファイルは、全てのサービスが同一の ROBUST インスタンスで動作するように設定されています.

2. Robust.ini の [DatabaseService] セクションを編集して、MySQL データベースを使用するようにします. MySQL だけがグリッドサービスの実行でサポートされています.

3. Robust.exe を起動します.

mono Robust.exe (Linux, BSD, Mac OS X)

または

Robust.exe (Windows)

コンソールにエラーが (赤で) 表示されていなかったら、次の手順に進みましょう.

4. 全ての地域は不動産 (Estate) に所属していなければなりません. また、全ての不動産にはオーナーがいて、そのユーザアカウントが OpenSimulator のユーザアカウント・サービスで有効になっているような状態でなければなりません. ROBUST コマンドコンソールで次のようにしてユーザを作成します.

create user

ユーザの名前、パスワード、メールアドレス(任意)を聞いてきます. この名前は覚えておきましょう. シミュレータを最初に起動するときに必要になります.

ステップ 2: OpenSim.exe を設定して ROBUST サービスを利用するようにする
グリッドモードでも、スタンドアロンモードと同様、3D シミュレータ自体を制御する OpenSim.ini を編集する必要があります.

しかし、グリッドに接続するシミュレータは、config-include/StandaloneCommon.ini を編集するのではなく、config-include/GridCommon.ini ファイルを参照・編集して、ローカルのプロセス内部のサービスにではなく、ROBUST がホストするリモートのデータサービスのほうに接続する必要があります.

これらの実施手順は、以下のようになります.

1. bin/OpenSim.ini.example を OpenSim.ini にコピーします.

2. [Architecture] セクションを OpenSim.ini で探します. 以下の行だけが有効になっているような状態にしてください.

Include-Architecture = "config-include/Grid.ini" (OpenSimulator 0.7.1 以降)

または

Include-Grid        = "config-include/Grid.ini" (OpenSimulator 0.7.0.2 以前)

他はコメントアウト状態のままにしてください.

3. bin/config-include に移動し、GridCommon.ini.example を GridCommon.ini にコピーします.

4. GridCommon.ini をテキストエディタで開きます. URL がいっぱい書いてあります. それぞれの URL は、 http://myassetserver.com:8003, http://myinventoryserver.com:8003 のような、ダミーの初期値が記載されています. それぞれを編集して、ROBUST インスタンスのアドレスを示すようにする必要があります. 例えば、ROBUST をローカル IP アドレス 192.168.1.2 で動作させようとしているのなら、AssetServerURI を次のようにする必要があります.

AssetServerURI = "http://192.168.1.2:8003"

5. OpenSim.exe を実行します. OpenSim.exe を最初に起動すると、スタンドアロンモードで最初に起動したときと同じように、地域の設定に関する質問をしてきます. どのように答えるかについては、スタンドアロンのセクションを参照してください. また、Regions.ini のさらに詳しい情報は、地域の設定を参照してください.

全てが順調に設定されれば、OpenSim.exe を起動したときにエラーが表示されないはずです. また、地域がグリッドサービスに登録された旨のログメッセージが、ROBUST コンソールに表示されるはずです. 例えば、

21:43:45 - [GRID SERVICE]: Region t1 (176cc95e-f693-4b02-8e08-af86e2372faa) registered successfully at 256000-256000 21:43:47 - [GRID SERVICE]: region t1 has 0 neighbours

6. クライアントでログインします. クライアントの起動オプションはこのようにします.

-loginuri http://192.168.1.2:8002

loginuri はログインサービスのアドレスにする必要があります. スタンドアロンモードでは、地域シミュレータと同じアドレスで、ポートはデフォルトで 9000 でした. しかしグリッドモードでは、ROBUST がホストしているログインサービスのアドレスになります. この場合、192.168.1.2 が ROBUST インスタンスのアドレスになります. ポート 8002 は従来のグリッドログインサービスのために残してあるもので、Robust.ini.example のデフォルト値になっています.

7. ログインに成功すると、ログが ROBUST コンソールと(こちらはログインという行為自体に対するものです)、地域シミュレータのコンソールに (こちらはログイン処理がシミュレータにアバターを迎え入れるように指示を出したタイミングと、ビューアに地域シミュレータのアドレスを伝えたタイミングと、ビューアがシミュレータと直接やりとりするようになったタイミングで) 表示されます.

自分の SIM を他人のグリッドに接続する
地域サーバ（例えば OpenSim.exe）を設定してグリッドに接続する際は、 上のに従ってください.

既に必要なサービスがグリッドに提供されているはずです. ステップ２では、提供されたサービス接続 URL を使用する必要があります.

bin/Regions.ini ファイル (などの地域設定ファイル) に、グリッド管理者から提供された、地域のグリッド座標を設定する必要があります. 詳細は、地域の設定 を参照してください.

= 追記 =

トラブルシューティング
トラブルシューティング を参照してください.

OpenSimulator 0.6.7 以降を 64 ビット版 Windows でを動作させる
OpenSimulator 0.6.7 から、OpenSimulator のデフォルトの物理エンジンが ODE エンジンに変更されました. これは ODE が現在 OpenSimulator に同梱されている物理エンジンプラグインの中で今のところ最も先進的なものだからです. 残念なことに、 64 ビット版 Windows ではライブラリの互換性がないという欠点があります.

このため、64 ビット版 Windows のユーザは、地域シミュレータを起動する際は OpenSim.exe ではなく、 OpenSim.32BitLaunch.exe を実行する必要があります.

代替の方法として、基礎物理エンジンや OpenSimulator に同梱されている他の物理エンジンを使うこともできますが、ODE プラグインに比べると断然機能性の面で劣ります.

Mono に関する注意
Mono を使用している場合、Mono の環境変数 MONO_THREADS_PER_CPU をデフォルトの 5 から SIM で動作する値まで増加させなければなりません. 正確な数字は様々な要因によって左右されます: マシンの CPU の数、マシンの他の用途、SIM にある地域の数、隣接する SIM の数、スクリプトの数、アバターの同時滞在予定数などです. 参考までに、OSGrid の Wright Plaza という、１つの SIM で１つの地域を動作させていて、約 20 名のアバターで定期的にミーティングを開いている SIM では、値は 125 にしています.

値が小さすぎると、SIM の挙動がいろいろな点でおかしくなってきます. よくある症状は、新しいアバターがログインするときにフリーズすることです. 他の症状はこれに比べればはるかに軽いです.

例: $ export MONO_THREADS_PER_CPU=125

OpenDynamicsEngine を *nix で使用する際のスタック領域拡張
OpenDynamicsEngine を *nix で使用していて問題が発生している場合は、次のコマンドでスタック領域をデフォルトよりも大きく設定してみてください. ulimit -s 262144 もしくは、 opensim-ode.sh で OpenSimulator を起動してください.

ファイアウォール
OS・ディストリビューションによっては、デフォルトでファイアウォールが稼働している場合があります. OpenSimulator にリモートのクライアントからアクセスできない場合は、設定を確認する必要があります. 詳細は、ファイアウォール設定 を参照してください.

レガシー設定に関する情報
正確かどうかはわかりませんが、レガシー設定に関する情報について書かれているページがいくつかあります.

OpenSim 0.6.6 legacy configuration information

OpenSimulator をさらに設定する
OpenSim.ini.example (ファイルの日本語訳) やその他の設定ファイルをよく見ると、膨大な数の設定可能なパラメタがあるはずです. 詳しくは、 シミュレータ・パラメタの設定 を参照してください. (訳注：各設定ファイルの日本語訳へのリンクは、このページの一番上の にあります. )

OpenSim.exe コマンドラインオプション
OpenSim.exe にはコマンドラインオプションがあり、これを使って他のディレクトリから設定ファイルを読みこむといったことができます. 詳細は command line arguments を参照してください.

スクリプトエンジン
OpenSimulator は複数のスクリプトエンジンをサポートします. 詳細は ScriptEngines を参照してください. 何を言っているのかわからないかもしれませんが、デフォルトのスクリプトエンジンはちゃんと動くので安心してください. 事実上、最近のバージョンの OpenSimulator は XEngine という１つのスクリプトエンジンしか同梱していません.

権限設定
OpenSimulator には複雑な権限の集合があります. 詳細は Permissions(Server) を参照してください. デフォルトでは、権限は地域シミュレータで有効となっていません.

ログ出力
デフォルトでは、OpenSimulator は bin ディレクトリの中の OpenSim.log と呼ばれるファイルに情報をログ出力します. 必要であれば、設定方法の詳細が Logging にあります.

地域モジュールの設定

 * IRCBridgeModule
 * Freeswitch Module
 * Offline Messaging

Web サーバや Web ページの設定
OpenSimulator は Web サーバを同梱しており、様々なページを公開することができます. 外部ファイルを表示するページもあれば、内部で生成されるページもあります.
 * External Files
 * Internally Generated

複数のスタンドアロン地域を同じサーバで動かすときの設定
OpenSim.ini の 'http_listener_port' を、9000 以外の値に変更し、Regions.ini の InternalPort を 9000 以外の値に変更してください.

= 参考情報 =


 * OpenOffice draw file for OpenSimulator standalone diagram
 * OpenOffice draw file for OpenSimulator grid diagram