設定
From OpenSimulator
m |
|||
Line 21: | Line 21: | ||
OpenSim は以下のデータベースエンジンをサポートします。設定の詳細は、 OpenSim.ini.example ファイルや、その他 bin/config-include にある各種サンプルファイルにあります。 | OpenSim は以下のデータベースエンジンをサポートします。設定の詳細は、 OpenSim.ini.example ファイルや、その他 bin/config-include にある各種サンプルファイルにあります。 | ||
− | * SQLite (標準) - OpenSim | + | * '''SQLite''' (標準) - OpenSim にバンドルされている、軽いデータベースで、特に設定をすることなく使用できます。手っ取り早く立ち上げるためのオプションであり、商用利用には適していません。MySQL に比べて超遅いです。ここに書かれている機能の中には(例えばアタッチメントの不揮発化など)、完全に実装されていないものがあります。 |
− | * MySQL (完全にサポートされています)。これは推奨のデータベースで、本格的に使用したり、小さなスタンドアロンアプリケーションを作成したりする場合に適しています。 | + | * '''MySQL 5.1''' (完全にサポートされています)。これは推奨のデータベースで、本格的に使用したり、小さなスタンドアロンアプリケーションを作成したりする場合に適しています。(現在、MySQL 5.5 を Windows x64 システムで動作させる場合に、未解決のバグ [http://opensimulator.org/mantis/bug_view_advanced_page.php?bug_id=5294 bug_id=5294] が発生することがわかっています。) MySQL 5.1.55 と 0penSim 0.7.0.2 の組み合わせで問題が発生すると、ユーザが報告しています。詳細は [http://opensim-users.2152040.n2.nabble.com/OpenSim-1-7-0-2-and-MySQL-Versions-td6155064.html this thread] を参照してください。この問題は MySql.Data.dll のアップデートされたバージョンを使用するか、MySQL の古いバージョン、例えば [http://downloads.mysql.com/archives.php?p=mysql-5.1&v=5.1.52 MySQL 5.1.52] をインストールして、OpenSim 0.7.0.2 と共存させるかすれば解決します。 |
− | * MSSQL (一部サポートされています - 最近の OpenSim の機能の中には実装されていないものがあります)。設定に関する情報は、 [[MSSQL-config]] を参照してください。 | + | * '''MSSQL''' (一部サポートされています - 最近の OpenSim の機能の中には実装されていないものがあります)。設定に関する情報は、 [[MSSQL-config]] を参照してください。 |
==スタンドアロン vs グリッド== | ==スタンドアロン vs グリッド== | ||
− | 最初のうちは、グリッドに接続したりグリッドを作ったりするまでは、 OpenSim をスタンドアロンモードで動かすことをお薦めします。OpenSim | + | 最初のうちは、グリッドに接続したりグリッドを作ったりするまでは、 OpenSim をスタンドアロンモードで動かすことをお薦めします。OpenSim はバイナリ・ディストリビューションで何も設定しないとスタンドアロンモードで動作します。 |
OpenSim 設定は地域(地域シミュレータによって動作する)とバックエンドデータサービス(ユーザ、アセット、インベントリの管理など)で構成されています。 | OpenSim 設定は地域(地域シミュレータによって動作する)とバックエンドデータサービス(ユーザ、アセット、インベントリの管理など)で構成されています。 | ||
'''スタンドアロンモード'''で動作するシステムでは、 OpenSim.exe を起動すると、地域シミュレータと全てのデータサービスが同一プロセスで動作します。このモードでは、地域を好きなだけ起動させることができますが、マシンは1つに制限されます。 | '''スタンドアロンモード'''で動作するシステムでは、 OpenSim.exe を起動すると、地域シミュレータと全てのデータサービスが同一プロセスで動作します。このモードでは、地域を好きなだけ起動させることができますが、マシンは1つに制限されます。 | ||
+ | |||
+ | [[image:Opensim-standalone.png|frame|center|OpneSim がスタンドアロンモードで動作しています。シミュレータとサービスが両方とも同じプロセス (OpenSim.exe) で動作します。]] | ||
'''グリッドモード'''では、データサービスは地域サーバプロセスから分離されています。その代わり、それぞれ Robust.exe と呼ばれる実行可能プログラムで動作します。Robust シェルは全てのサービスを動作させたり、任意の数の Robust インスタンスに分割して動作させたりすることができます。これにより、必要であれば、全く別のマシンで動作させることもできます。このモードでは、 OpenSim.exe は単なる地域サーバとして動作して、1つ以上の地域と分離したデータサービスとの間の通信を受け持ちます。現在のところ、 OpenSim.exe の地域シミュレータを別々のマシンで複数立ち上げることができます。 | '''グリッドモード'''では、データサービスは地域サーバプロセスから分離されています。その代わり、それぞれ Robust.exe と呼ばれる実行可能プログラムで動作します。Robust シェルは全てのサービスを動作させたり、任意の数の Robust インスタンスに分割して動作させたりすることができます。これにより、必要であれば、全く別のマシンで動作させることもできます。このモードでは、 OpenSim.exe は単なる地域サーバとして動作して、1つ以上の地域と分離したデータサービスとの間の通信を受け持ちます。現在のところ、 OpenSim.exe の地域シミュレータを別々のマシンで複数立ち上げることができます。 | ||
+ | |||
+ | [[image:Opensim-grid-simple.png|frame|center|OpenSim がグリッドモードで動作しています。この例の場合だと、全てのサービスが Robust.exe プロセスで動作します。OpenSim.exe の複数のコピー (たいてい、別のマシンで動作しています) がみんなで、同じ一連の共通サービスを利用します。]] | ||
グリッドモードで動作させるのは、スタンドアロンモードで動作させるより難しいです。 UUID 、 XY座標、サーバハンドシェークパスワード、不動産や不動産オーナー、その他諸々の設定についての知識が必要です。設定は、注意深く、忍耐強く行わなければなりません。あなたがものすごく忍耐強く器用な人でなければ、グリッドモードで動作させようとしないことを強くお薦めします。 | グリッドモードで動作させるのは、スタンドアロンモードで動作させるより難しいです。 UUID 、 XY座標、サーバハンドシェークパスワード、不動産や不動産オーナー、その他諸々の設定についての知識が必要です。設定は、注意深く、忍耐強く行わなければなりません。あなたがものすごく忍耐強く器用な人でなければ、グリッドモードで動作させようとしないことを強くお薦めします。 | ||
= OpenSim をスタンドアロンモードで動作させる = | = OpenSim をスタンドアロンモードで動作させる = | ||
− | |||
OpenSim のバイナリディストリビューションをダウンロードするのなら、スタンドアロンモードで動作させるのは比較的単純です。デフォルトでそのように設定されているからです。もしソースディストリビューションをGit リポジトリから取得してビルドするのなら、以下の手順が必要となります。 | OpenSim のバイナリディストリビューションをダウンロードするのなら、スタンドアロンモードで動作させるのは比較的単純です。デフォルトでそのように設定されているからです。もしソースディストリビューションをGit リポジトリから取得してビルドするのなら、以下の手順が必要となります。 | ||
# bin/OpenSim.ini.example ファイルを bin/OpenSim.ini にコピーします。 | # bin/OpenSim.ini.example ファイルを bin/OpenSim.ini にコピーします。 | ||
# bin/config-include/StandaloneCommon.ini.example ファイルを bin/config-include/StandaloneCommon.ini にコピーします。 | # bin/config-include/StandaloneCommon.ini.example ファイルを bin/config-include/StandaloneCommon.ini にコピーします。 | ||
+ | # OpenSim.ini のファイルの最後の方にある [Architecture] セクションで、 Standalone.ini の行のコメントを外し、次のような感じにします。 | ||
+ | |||
+ | Include-Architecture = "config-include/Standalone.ini" | ||
+ | |||
+ | (要は、行の先頭のセミコロン;を取ってください。) | ||
OpenSim.exe を起動すると、 OpenSim が起動したことになります。 | OpenSim.exe を起動すると、 OpenSim が起動したことになります。 | ||
Line 63: | Line 71: | ||
* '''Region UUID''' - 地域のユニークな ID です。よっぽどのことがない限り、角括弧に囲まれて表示されている、ランダムに生成されたデフォルト値をそのまま採用すればよいでしょう。既にある地域データに対して設定を行おうとしている場合のみ、やってはいけません。しかし、このケースではおそらく Regions.ini ファイルを直接編集したほうがいいと思うでしょう。 | * '''Region UUID''' - 地域のユニークな ID です。よっぽどのことがない限り、角括弧に囲まれて表示されている、ランダムに生成されたデフォルト値をそのまま採用すればよいでしょう。既にある地域データに対して設定を行おうとしている場合のみ、やってはいけません。しかし、このケースではおそらく Regions.ini ファイルを直接編集したほうがいいと思うでしょう。 | ||
* '''Region Location''' - これはグリッドの中における地域の位置です。スタンドアロンモードではデフォルト値 (1000,1000) のままにするほうが安全です。後で Regions.ini に別の地域を追加するとき、違うグリッド座標 (1000,1001など) にする必要が出てくるでしょう。 OpenSim の地域は 65536 × 65536 のグリッドの中のどこにでも設置することができます。 | * '''Region Location''' - これはグリッドの中における地域の位置です。スタンドアロンモードではデフォルト値 (1000,1000) のままにするほうが安全です。後で Regions.ini に別の地域を追加するとき、違うグリッド座標 (1000,1001など) にする必要が出てくるでしょう。 OpenSim の地域は 65536 × 65536 のグリッドの中のどこにでも設置することができます。 | ||
− | * '''Internal IP address''' - これは常に 0.0.0.0 でなければなりません(0.0.0.0 | + | * '''Internal IP address''' - これは常に 0.0.0.0 でなければなりません(0.0.0.0 は「全てのインターフェースの接続を監視する」という意味で、要はワイルドカードです)。UDP 接続を 1 つのネットワークインターフェースだけに限定したい場合は、IP アドレスを明示的に指定しましょう。このアドレスは内部でのみ使用されます - '''External host name''' だけが、ビューアに送信されます(ので、大きな影響をもつものとなっています)。 |
* '''Internal port''' - これはクライアント接続の受け口となる IP ポートです。この名前は少し誤解を招きがちです。これは内向きだけでなく、外向きの通信にも(例えば Second Life ビューアなどで)使用されるからです。好きなポートを指定して構いませんが、 9000 にしておくのが安全です。サーバ上の地域には、それぞれ別々のポートが設定されていなければなりません。 | * '''Internal port''' - これはクライアント接続の受け口となる IP ポートです。この名前は少し誤解を招きがちです。これは内向きだけでなく、外向きの通信にも(例えば Second Life ビューアなどで)使用されるからです。好きなポートを指定して構いませんが、 9000 にしておくのが安全です。サーバ上の地域には、それぞれ別々のポートが設定されていなければなりません。 | ||
* '''Allow alternate ports''' - これは現在試行中です。デフォルトの False のままにしてください。 | * '''Allow alternate ports''' - これは現在試行中です。デフォルトの False のままにしてください。 | ||
− | * '''External host name''' - これをデフォルトの 'SYSTEMIP' のままにすると、マシンの LAN ネットワークアドレス(例えば 192.168.1.2) となります。 LAN の中からのみ接続する場合は、この設定で大丈夫です。インターネット上のクライアントから接続させる場合は、これはルータの外部 IP アドレスにしなければなりません。 Fully Qualified Domain Names (FQDNs) | + | * '''External host name''' - これをデフォルトの 'SYSTEMIP' のままにすると、マシンの LAN ネットワークアドレス(例えば 192.168.1.2) となります。 LAN の中からのみ接続する場合は、この設定で大丈夫です。インターネット上のクライアントから接続させる場合は、これはルータの外部 IP アドレスにしなければなりません。 Fully Qualified Domain Names (FQDNs) も使用されますが、ビューアに送信される前に IP アドレスに変換されます。 |
OpenSim 0.6.9 以前では以下も質問されます。 | OpenSim 0.6.9 以前では以下も質問されます。 | ||
Line 75: | Line 83: | ||
* '''Master Avatar sandbox password''' - マスターアバターのパスワードです。 | * '''Master Avatar sandbox password''' - マスターアバターのパスワードです。 | ||
− | OpenSim 0.7 | + | OpenSim 0.7 以降では、 OpenSim は質問で、地域のマスターアバターでなく、不動産や不動産管理者を設定します。同じような質問ですが、 UUID は聞かれません。 |
− | マスターアバター(0.6.9 の場合)や不動産管理者(0.7 | + | マスターアバター(0.6.9 の場合)や不動産管理者(0.7 以降)を設定するのに使ったアカウント情報を忘れないようにしてください。初期状態ではこのユーザだけが地域のインワールド設定を行うことができるようになります。 |
[[地域の設定]] に、質問によって生成された Regions.ini ファイルについての追加情報があります。 | [[地域の設定]] に、質問によって生成された Regions.ini ファイルについての追加情報があります。 | ||
Line 92: | Line 100: | ||
'''OpenSim を同じマシンにあるクライアント:''' | '''OpenSim を同じマシンにあるクライアント:''' | ||
− | -loginuri http://127.0.0.1:9000/ | + | -loginuri http://127.0.0.1:9000/ |
'''OpenSim と同じ LAN ネットワークにあるクライアント:''' | '''OpenSim と同じ LAN ネットワークにあるクライアント:''' | ||
− | -loginuri http://lan_ip:9000/ | + | -loginuri http://lan_ip:9000/ |
'''他のマシンや、インターネット上にあるクライアント:''' | '''他のマシンや、インターネット上にあるクライアント:''' | ||
− | -loginuri http://external_ip:9000/ | + | -loginuri http://external_ip:9000/ |
それから先の手順で設定したユーザ名とパスワードを入力すると、新しいユーザでログインできるはずです。 | それから先の手順で設定したユーザ名とパスワードを入力すると、新しいユーザでログインできるはずです。 | ||
Line 106: | Line 114: | ||
= OpenSim をグリッドモードで動作させる = | = OpenSim をグリッドモードで動作させる = | ||
− | |||
− | |||
− | |||
− | |||
{| | {| | ||
| style="background:LavenderBlush; color:black" | | | style="background:LavenderBlush; color:black" | | ||
[[Image:Exclamation.png|left]] | [[Image:Exclamation.png|left]] | ||
− | + | 注: 0.7 は全てのサービスを ROBUST サーバシェルに完全に移行した最初の OpenSim リリースです。0.6.9 から使っていた OpenSim.Grid.UserServer.exe や MessageServer.exe はもう必要ありません。詳細は、[[0.7_Release|0.7 Release Notes]] を確認してください。 | |
− | + | ||
− | + | ||
|} | |} | ||
+ | OpenSim をグリッドモードで動作させるのは、スタンドアロンで動作させるのよりも難しいとされています。同一プロセスで全てを動作させるのではなく、バックエンドのデータサービス (アセット、インベントリなど) が OpenSim.exe とは別のプロセスで動作します。この仕組みにより、OpneSim.exe の複数のインスタンスが同一のアセットやインベントリ・データを使用することができるようになります。 | ||
+ | |||
+ | == ステップ 1: ROBUST サービスインスタンスを設定する == | ||
+ | |||
+ | 1. bin ディレクトリで、Robust.ini.example を Robust.ini にコピーします。Robust.ini.example は、全てのサービスが同一の ROBUST インスタンスで動作するように設定されています。 | ||
+ | |||
+ | 2. Robust.ini を編集して、MySQL データベースを使用するようにします。MySQL だけがグリッドサービスの実行でサポートされています。Robust.ini で [DatabaseService] セクションを探し、ConnectionString を変更して、自分のデータベースに接続できるようにします。 | ||
+ | |||
+ | 3. Robust.exe を実行します。コンソールに(赤で)エラーが表示されなければ、無事に起動できたことになります。 | ||
+ | |||
+ | == ステップ 2: OpenSim.exe を設定して ROBUST サービスを利用するようにする == | ||
+ | |||
+ | スタンドアロンモードでは、bin/OpenSim.ini と bin/config-include/StandaloneCommon.ini の両方を設定しなければなりませんでした。前者 (OpenSim.ini) は地域シミュレータ自体の設定を行います。後者 (StandaloneCommon.ini) はデータサービスを設定します。スタンドアロンモードでは、これらは全て同一マシンの同一プロセスで動作します。- このため、普通は地域シミュレータのデータとサービスのデータの両方で同じデータベースを使います。 | ||
+ | |||
+ | グリッドモードでも、OpenSim.ini を編集して地域シミュレータ (OpenSim.exe) の動作を定義しなければならないのは一緒です。特に、ローカルのシミュレータ・データ (地域にあるオブジェクトのサイズや形、オブジェクトの中にあるアイテムの情報など) を格納するのにデータベースが必要なのは一緒です。 | ||
+ | |||
+ | しかし、それぞれの ROBUST サービスは今から別々の ROBUST インスタンスで起動しようとしているので、地域シミュレータには known URL でリモートサービスと連携するコネクタを使うように指示しなければなりません。 | ||
+ | |||
+ | このような動作となるようにする手順は、以下の通りです。 | ||
+ | |||
+ | 1. bin/OpenSim.ini.example を OpenSim.ini にコピーします。 | ||
+ | |||
+ | 2. "storage_plugin" 設定を [Startup] セクションで探し、データベースの接続設定を記入します。スタンドアロンでは、ローカルの SQLite データベースか、ローカルの MySQL データベースを使って地域を稼働させることができます。 | ||
+ | |||
+ | 3. [Architecture] セクションを OpenSim.ini で探します。"Include-Grid" 設定項目だけが有効になっているような状態にしてください (他は全てセミコロンでコメントアウトされている必要があります)。 | ||
+ | |||
+ | 4. bin/config-include にアクセスし、GridCommon.ini.example を GridCommon.ini にコピーします。 | ||
+ | |||
+ | 5. 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" | ||
+ | |||
+ | 初期状態では、ROBUST サービスは Robust.ini がポート 8003 を監視するように設定されているため、これらの値を変更する必要はありません。 | ||
+ | |||
+ | 6. OpenSim.exe を実行します。OpenSim.exe を最初に起動すると、スタンドアロンモードで最初に起動したときと同じように、地域の設定に関する質問をしてきます。どのように答えるかについては、スタンドアロンのセクションを参照してください。 | ||
+ | |||
+ | 全てが順調に設定されれば、OpenSim.exe を起動したときにエラーが表示されないはずです。また、地域がグリッドサービスに登録された旨のログメッセージが、ROBUST コンソールに表示されるはずです。 | ||
+ | |||
+ | 7. クライアントでログインします。クライアントの起動オプションはこのようにします。 | ||
+ | |||
+ | -loginuri http://192.168.1.2:8002 | ||
+ | |||
+ | loginuri はログインサービスのアドレスにする必要があります。スタンドアロンモードでは、地域シミュレータと同じアドレスでした。しかし、グリッドモードでは ROBUST がホストとしているグリッドサービスの login URL です。シミュレータの他のアドレスではありません。この場合、192.168.1.2 が ROBUST インスタンスのアドレスです。ポート 8002 は従来のグリッドログインサービスのために残してあるものです。 | ||
+ | |||
+ | 8. 運がよければ、無事にログインできます。ログインすると、ROBUST コンソールと、クライアントがログインした地域シミュレータのコンソールの両方にログが出力されます。何か問題があったら、スタンドアロンのセクションにある注意事項を参照してください。最初に行った手順を繰り返すと、他の OpenSim.exe インスタンスをグリッドに追加することができます。 | ||
+ | |||
+ | ==以前の手順:OpenSim 0.6.9 のグリッドサービスを設定する== | ||
{| | {| | ||
| style="background:LavenderBlush; color:black" | | | style="background:LavenderBlush; color:black" | | ||
[[Image:Exclamation.png|left]] | [[Image:Exclamation.png|left]] | ||
− | 注意: | + | 注意: 2009 年 7 月から、グリッドサーバは徐々に仕様変更されつつあります。現在既に共通の 'ROBUST' サーバシェルで動作しているサービスもあれば、まだ別のレガシーサーバとして動作しているサービスもあります。 |
+ | |||
+ | <u>'''ROBUST の詳細はこちら -->'''</u>[[ROBUST/ja|<u>'''ROBUST'''</u>]]<u>''' <-- UGAIM から UGRM (0.6.6 -> 0.6.7) や、 UGRM から URM (0.6.7 -> 0.6.8) への移行方法も載っています。'''</u> | ||
|} | |} | ||
Line 220: | Line 271: | ||
==自分の SIM を他人のグリッドに接続する== | ==自分の SIM を他人のグリッドに接続する== | ||
− | 地域サーバ(例えば <tt>OpenSim.exe</tt>)を設定してグリッドに接続するためには、 <tt>bin</tt> | + | 地域サーバ(例えば <tt>OpenSim.exe</tt>)を設定してグリッドに接続するためには、 <tt>bin/config-include</tt> ディレクトリの <tt>GridCommon.ini</tt> ファイルを編集します。グリッド管理者から提供された URI をそこに設定する必要があります。 |
− | 変更の必要があるかもしれない他のファイルは <tt>bin/Regions</tt> | + | 変更の必要があるかもしれない他のファイルは <tt>bin/Regions</tt> ディレクトリにあります。個のディレクトリは個々の地域の設定ファイルが格納される場所です。1つの地域しかなければ、デフォルトで <tt>Regions.ini</tt> が呼び出されます (OpenSim 0.6.6 以前では、<tt>regions.xml</tt> と呼ばれていました)。 |
このファイルはテキストエディタで編集できます。グリッド管理者が、SIM の設置先 XY 座標を指示してくることもあります(グリッドの同じロケーションに複数の SIM を設置することはできません)。その場合は、このファイルの <tt>sim_location_x</tt> と <tt>sim_location_y</tt> のフィールドを書き換える必要があります。<tt>external_host_name</tt> に SIM サーバ(例えば、<tt>OpenSim.exe</tt> が動作しているマシン)のホスト名か IP アドレスを設定しなければなりません。 | このファイルはテキストエディタで編集できます。グリッド管理者が、SIM の設置先 XY 座標を指示してくることもあります(グリッドの同じロケーションに複数の SIM を設置することはできません)。その場合は、このファイルの <tt>sim_location_x</tt> と <tt>sim_location_y</tt> のフィールドを書き換える必要があります。<tt>external_host_name</tt> に SIM サーバ(例えば、<tt>OpenSim.exe</tt> が動作しているマシン)のホスト名か IP アドレスを設定しなければなりません。 | ||
Line 258: | Line 309: | ||
===OpenSim.exe コマンドラインオプション=== | ===OpenSim.exe コマンドラインオプション=== | ||
− | OpenSim.exe にはコマンドラインオプションがあり、これを使って他のディレクトリから設定ファイルを読みこむといったことができます。詳細は [[OpenSim.exe Command Line Options]] を参照してください。 | + | OpenSim.exe にはコマンドラインオプションがあり、これを使って他のディレクトリから設定ファイルを読みこむといったことができます。詳細は [[OpenSim.exe Command Line Options|command line arguments]] を参照してください。 |
===スクリプトエンジン=== | ===スクリプトエンジン=== |
Revision as of 02:57, 10 April 2011
Contents |
OpenSim シミュレータ設定ファイル
地域シミュレータの設定は OpenSim.ini と呼ばれるファイルで行われます。このファイルは SIM がスタンドアロンモードで動作していてもグリッドモードで動作していても同じように使用されます。このファイルは config-include/ ディレクトリの中にある追加の設定情報を参照します。各種設定についての情報は OpenSim.ini ファイル自体にあります(または OpenSim.ini.example が参考となります)。
OpenSim.ini という名前は、コマンドライン引数で変更される場合があります。
INI ファイルを 2 つのファイルに分けて配布することができます。 OpenSim を複数起動して、一部の設定以外は全く同じ設定にしたいときに便利です。マスターファイルが最初に呼ばれ、 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
データベース
OpenSim は以下のデータベースエンジンをサポートします。設定の詳細は、 OpenSim.ini.example ファイルや、その他 bin/config-include にある各種サンプルファイルにあります。
- SQLite (標準) - OpenSim にバンドルされている、軽いデータベースで、特に設定をすることなく使用できます。手っ取り早く立ち上げるためのオプションであり、商用利用には適していません。MySQL に比べて超遅いです。ここに書かれている機能の中には(例えばアタッチメントの不揮発化など)、完全に実装されていないものがあります。
- MySQL 5.1 (完全にサポートされています)。これは推奨のデータベースで、本格的に使用したり、小さなスタンドアロンアプリケーションを作成したりする場合に適しています。(現在、MySQL 5.5 を Windows x64 システムで動作させる場合に、未解決のバグ bug_id=5294 が発生することがわかっています。) MySQL 5.1.55 と 0penSim 0.7.0.2 の組み合わせで問題が発生すると、ユーザが報告しています。詳細は this thread を参照してください。この問題は MySql.Data.dll のアップデートされたバージョンを使用するか、MySQL の古いバージョン、例えば MySQL 5.1.52 をインストールして、OpenSim 0.7.0.2 と共存させるかすれば解決します。
- MSSQL (一部サポートされています - 最近の OpenSim の機能の中には実装されていないものがあります)。設定に関する情報は、 MSSQL-config を参照してください。
スタンドアロン vs グリッド
最初のうちは、グリッドに接続したりグリッドを作ったりするまでは、 OpenSim をスタンドアロンモードで動かすことをお薦めします。OpenSim はバイナリ・ディストリビューションで何も設定しないとスタンドアロンモードで動作します。
OpenSim 設定は地域(地域シミュレータによって動作する)とバックエンドデータサービス(ユーザ、アセット、インベントリの管理など)で構成されています。
スタンドアロンモードで動作するシステムでは、 OpenSim.exe を起動すると、地域シミュレータと全てのデータサービスが同一プロセスで動作します。このモードでは、地域を好きなだけ起動させることができますが、マシンは1つに制限されます。
グリッドモードでは、データサービスは地域サーバプロセスから分離されています。その代わり、それぞれ Robust.exe と呼ばれる実行可能プログラムで動作します。Robust シェルは全てのサービスを動作させたり、任意の数の Robust インスタンスに分割して動作させたりすることができます。これにより、必要であれば、全く別のマシンで動作させることもできます。このモードでは、 OpenSim.exe は単なる地域サーバとして動作して、1つ以上の地域と分離したデータサービスとの間の通信を受け持ちます。現在のところ、 OpenSim.exe の地域シミュレータを別々のマシンで複数立ち上げることができます。
グリッドモードで動作させるのは、スタンドアロンモードで動作させるより難しいです。 UUID 、 XY座標、サーバハンドシェークパスワード、不動産や不動産オーナー、その他諸々の設定についての知識が必要です。設定は、注意深く、忍耐強く行わなければなりません。あなたがものすごく忍耐強く器用な人でなければ、グリッドモードで動作させようとしないことを強くお薦めします。
OpenSim をスタンドアロンモードで動作させる
OpenSim のバイナリディストリビューションをダウンロードするのなら、スタンドアロンモードで動作させるのは比較的単純です。デフォルトでそのように設定されているからです。もしソースディストリビューションをGit リポジトリから取得してビルドするのなら、以下の手順が必要となります。
- bin/OpenSim.ini.example ファイルを bin/OpenSim.ini にコピーします。
- bin/config-include/StandaloneCommon.ini.example ファイルを bin/config-include/StandaloneCommon.ini にコピーします。
- OpenSim.ini のファイルの最後の方にある [Architecture] セクションで、 Standalone.ini の行のコメントを外し、次のような感じにします。
Include-Architecture = "config-include/Standalone.ini"
(要は、行の先頭のセミコロン;を取ってください。)
OpenSim.exe を起動すると、 OpenSim が起動したことになります。
Windows コマンドプロンプトでは、 OpenSim の bin ディレクトリから OpenSim.exe 64 ビット版 Windows で、デフォルトの ODE 物理プラグインを使う場合は OpenSim.32BitLaunch.exe これは、64 ビット版 Windows 向けに ODE がまだコンパイルされていないために必要な手順となっています。 Linux を使っているのであれば mono OpenSim.exe ODE 物理エンジンを使う場合は、32 ビットモードでも 64 ビットモードでもこの手順で起動します。
OpenSim を最初に起動する
OpenSim を最初に起動すると、起動時にいくつかの質問がコンソールに表示されます。この質問に答えると、あなたに代わって1個の地域を設定してくれます。この設定は bin/Regions/Regions.ini に格納され、後でアクセスして編集することができます。
多くの質問にはデフォルトの答えがあります。ここで、質問の意味を説明します。
- New region name - 地域の名前です。空白にしないでください!
- Region UUID - 地域のユニークな ID です。よっぽどのことがない限り、角括弧に囲まれて表示されている、ランダムに生成されたデフォルト値をそのまま採用すればよいでしょう。既にある地域データに対して設定を行おうとしている場合のみ、やってはいけません。しかし、このケースではおそらく Regions.ini ファイルを直接編集したほうがいいと思うでしょう。
- Region Location - これはグリッドの中における地域の位置です。スタンドアロンモードではデフォルト値 (1000,1000) のままにするほうが安全です。後で Regions.ini に別の地域を追加するとき、違うグリッド座標 (1000,1001など) にする必要が出てくるでしょう。 OpenSim の地域は 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 アドレスに変換されます。
OpenSim 0.6.9 以前では以下も質問されます。
- Master Avatar UUID - これはレガシーな OpenSim 機能で、 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 - マスターアバターのパスワードです。
OpenSim 0.7 以降では、 OpenSim は質問で、地域のマスターアバターでなく、不動産や不動産管理者を設定します。同じような質問ですが、 UUID は聞かれません。
マスターアバター(0.6.9 の場合)や不動産管理者(0.7 以降)を設定するのに使ったアカウント情報を忘れないようにしてください。初期状態ではこのユーザだけが地域のインワールド設定を行うことができるようになります。
地域の設定 に、質問によって生成された Regions.ini ファイルについての追加情報があります。
不動産管理者以外のユーザを作成したいときは、
create user
をサーバコンソールに入力します。ユーザ作成に必要な(ファーストネーム、ラストネーム、パスワードなどの)質問をしてきます。
OpenSim に接続する
自分のユーザ名で新しい SIM に接続するには、次のコマンドライン引数で Second Life ビューアを起動します。
OpenSim を同じマシンにあるクライアント: -loginuri http://127.0.0.1:9000/
OpenSim と同じ LAN ネットワークにあるクライアント: -loginuri http://lan_ip:9000/
他のマシンや、インターネット上にあるクライアント: -loginuri http://external_ip:9000/
それから先の手順で設定したユーザ名とパスワードを入力すると、新しいユーザでログインできるはずです。
「外部の」設定を使ってビューアとサーバを同じマシン (LAN) で動作させる場合は、ループバック 問題に気をつけてください。 (地域のハンドシェークで永遠に待たされることになります。) トラブルシューティングのヒント も参照してください。接続に関して問題がある場合は、必ずネットワーク設定のページを読んでください。地域ハンドシェークにまつわるトラブルを理解するのに重要な資料です。
OpenSim をグリッドモードで動作させる
注: 0.7 は全てのサービスを ROBUST サーバシェルに完全に移行した最初の OpenSim リリースです。0.6.9 から使っていた OpenSim.Grid.UserServer.exe や MessageServer.exe はもう必要ありません。詳細は、0.7 Release Notes を確認してください。 |
OpenSim をグリッドモードで動作させるのは、スタンドアロンで動作させるのよりも難しいとされています。同一プロセスで全てを動作させるのではなく、バックエンドのデータサービス (アセット、インベントリなど) が OpenSim.exe とは別のプロセスで動作します。この仕組みにより、OpneSim.exe の複数のインスタンスが同一のアセットやインベントリ・データを使用することができるようになります。
ステップ 1: ROBUST サービスインスタンスを設定する
1. bin ディレクトリで、Robust.ini.example を Robust.ini にコピーします。Robust.ini.example は、全てのサービスが同一の ROBUST インスタンスで動作するように設定されています。
2. Robust.ini を編集して、MySQL データベースを使用するようにします。MySQL だけがグリッドサービスの実行でサポートされています。Robust.ini で [DatabaseService] セクションを探し、ConnectionString を変更して、自分のデータベースに接続できるようにします。
3. Robust.exe を実行します。コンソールに(赤で)エラーが表示されなければ、無事に起動できたことになります。
ステップ 2: OpenSim.exe を設定して ROBUST サービスを利用するようにする
スタンドアロンモードでは、bin/OpenSim.ini と bin/config-include/StandaloneCommon.ini の両方を設定しなければなりませんでした。前者 (OpenSim.ini) は地域シミュレータ自体の設定を行います。後者 (StandaloneCommon.ini) はデータサービスを設定します。スタンドアロンモードでは、これらは全て同一マシンの同一プロセスで動作します。- このため、普通は地域シミュレータのデータとサービスのデータの両方で同じデータベースを使います。
グリッドモードでも、OpenSim.ini を編集して地域シミュレータ (OpenSim.exe) の動作を定義しなければならないのは一緒です。特に、ローカルのシミュレータ・データ (地域にあるオブジェクトのサイズや形、オブジェクトの中にあるアイテムの情報など) を格納するのにデータベースが必要なのは一緒です。
しかし、それぞれの ROBUST サービスは今から別々の ROBUST インスタンスで起動しようとしているので、地域シミュレータには known URL でリモートサービスと連携するコネクタを使うように指示しなければなりません。
このような動作となるようにする手順は、以下の通りです。
1. bin/OpenSim.ini.example を OpenSim.ini にコピーします。
2. "storage_plugin" 設定を [Startup] セクションで探し、データベースの接続設定を記入します。スタンドアロンでは、ローカルの SQLite データベースか、ローカルの MySQL データベースを使って地域を稼働させることができます。
3. [Architecture] セクションを OpenSim.ini で探します。"Include-Grid" 設定項目だけが有効になっているような状態にしてください (他は全てセミコロンでコメントアウトされている必要があります)。
4. bin/config-include にアクセスし、GridCommon.ini.example を GridCommon.ini にコピーします。
5. 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"
初期状態では、ROBUST サービスは Robust.ini がポート 8003 を監視するように設定されているため、これらの値を変更する必要はありません。
6. OpenSim.exe を実行します。OpenSim.exe を最初に起動すると、スタンドアロンモードで最初に起動したときと同じように、地域の設定に関する質問をしてきます。どのように答えるかについては、スタンドアロンのセクションを参照してください。
全てが順調に設定されれば、OpenSim.exe を起動したときにエラーが表示されないはずです。また、地域がグリッドサービスに登録された旨のログメッセージが、ROBUST コンソールに表示されるはずです。
7. クライアントでログインします。クライアントの起動オプションはこのようにします。
-loginuri http://192.168.1.2:8002
loginuri はログインサービスのアドレスにする必要があります。スタンドアロンモードでは、地域シミュレータと同じアドレスでした。しかし、グリッドモードでは ROBUST がホストとしているグリッドサービスの login URL です。シミュレータの他のアドレスではありません。この場合、192.168.1.2 が ROBUST インスタンスのアドレスです。ポート 8002 は従来のグリッドログインサービスのために残してあるものです。
8. 運がよければ、無事にログインできます。ログインすると、ROBUST コンソールと、クライアントがログインした地域シミュレータのコンソールの両方にログが出力されます。何か問題があったら、スタンドアロンのセクションにある注意事項を参照してください。最初に行った手順を繰り返すと、他の OpenSim.exe インスタンスをグリッドに追加することができます。
以前の手順:OpenSim 0.6.9 のグリッドサービスを設定する
注意: 2009 年 7 月から、グリッドサーバは徐々に仕様変更されつつあります。現在既に共通の 'ROBUST' サーバシェルで動作しているサービスもあれば、まだ別のレガシーサーバとして動作しているサービスもあります。 ROBUST の詳細はこちら -->ROBUST <-- UGAIM から UGRM (0.6.6 -> 0.6.7) や、 UGRM から URM (0.6.7 -> 0.6.8) への移行方法も載っています。 |
...
現在既に共通の 'ROBUST' (Basic Universal Server Technology) サーバシェルで動作しているサービスもあれば、まだ別のレガシーサーバとして動作しているサービスもあります。
OpenSim 0.6.8 時点では、R.O.B.U.S.T. にはアセット (A) 、グリッド (G) 、インベントリ (I) 機能へのコネクタがあります。レガシーサーバにはさらにユーザ (U) とメッセージング (M) 機能を動作させる必要があります。以下のステップで初期設定して起動することができるようになります。現在のディレクトリが OpenSim ディストリビューションの bin/ になっているという前提で説明しています。
- ユーザサーバの設定
- OpenSim.Grid.UserServer.exe を実行します。
- 設定に関する質問をたくさんされます。1つのマシンに全部のグリッドサーバがある場合、ほとんどデフォルトのままにしておくのが安全です。設定は UserServer_Config.xml ファイルに格納され、必要に応じて後で変更することができます。
- ユーザサーバが起動し、コマンドプロンプトに次のように表示します:
- R.O.B.U.S.T. の設定
- OpenSim.Server.ini.example を OpenSim.Server.ini にコピーします。ConnectionString を自分のデータベース設定に書き換えるのを忘れないようにしてください。(バージョン 0.6.6 では、OpenSim.Services.ini.example を OpenSim.Services.ini にコピーします - そして OpenSim.Server の代わりに OpenSim.Services を使用します)
- OpenSim.Server.exe を実行します。
- サーバはアセット、インベントリ、グリッドコンポーネントを配備し、 R.O.B.U.S.T. プロンプトに次のように表示します:
- R.O.B.U.S.T. 設定ファイルに関する詳しい情報や、古い版の OpenSim からの移行に関する詳しい情報は、 ROBUST を参照してください。
- メッセージングサーバの設定
- OpenSim.Grid.MessagingServer.exe を実行します。
- 設定に関する質問に答えます。こちらも、同一マシンで全てのサーバを動かす場合、全ての質問でエンターキーを押すのが安全です。設定は MessagingServer_Config.xml に格納されます。
- サーバが起動し、コマンドプロンプトに次のように表示されます:
User#
Linux bin$ cp OpenSim.Server.ini.example OpenSim.Server.ini Windows C:\OpenSim\bin> copy OpenSim.Server.ini.example OpenSim.Server.ini
R.O.B.U.S.T.#
Messaging#
レガシーサーバを動かす際の情報、特に ROBUST フレームワークのない 0.6.7 以前の版を使っている場合は、 LegacyServers を参照してください。
グリッドサービス実行可能プログラムを起動するコマンドのまとめ
Windows cd bin OpenSim.Grid.UserServer.exe OpenSim.Server.exe OpenSim.Grid.MessagingServer.exe
Linux / Mac OS X cd bin mono OpenSim.Grid.UserServer.exe mono OpenSim.Server.exe mono OpenSim.Grid.MessagingServer.exe
地域を設定する
最初に起動すると、新しい OpenSim インストーラは1つの地域を設定するのに一連の質問をしてきます。この設定を変更したり、複数の地域を設定したい場合は、 地域の設定 を参照してください。
地域シミュレータを設定し、起動する
- [Architecture] セクションを探し、以下の行をコメントアウトします。
- OpenSim.ini を保存し、 config-include ディレクトリに移動します。
- 以下のファイルをコピーします。
- これらのファイル (Grid.ini, GridCommon.ini, CenomeCache.ini and FlotsamCache.ini) を全て開いて適宜編集します。
- これで、 SIM を起動する準備ができました。 OpenSim.exe の起動モードは、通常 OpenSim.ini に書かれた設定に基づきます。設定されていなかったり、ファイルが存在しなかったりすると、デフォルトではスタンドアロンモードとなります。お望みなら、次のようにコマンドラインで OpenSim を強制的にグリッドモードで起動することができます。
- ユーザサーバのコンソールを開き、 'create user' と入力して新しいアバターを作成します。名前とパスワード、ホームロケーションとなる SIM の XY 座標を尋ねてきます。 1000 と 1000 、もしくはスタンドアロンモードで作成したときに設定した SIM の位置を指定します。これらのサーバのコンソールで 'help' と入力するとコマンドのリストが表示されるはずです。
- これで、新しいグリッドに SecondLife クライアントで接続する準備ができました。クライアントには SIM のサーバでなくユーザサーバを指定します:
Include-Standalone = "config-include/Standalone.ini" そして、以下の行のコメントを外します。 Include-Grid = "config-include/Grid.ini
GridCommon.ini.example を GridCommon.ini に CenomeCache.ini.example を CenomeCache.ini に FlotsamCache.ini.example を FlotsamCache.ini に
OpenSim.exe -gridmode=true ODE 物理プラグインを 64 ビット版 Windows で使用している場合は、 OpenSim.32BitLaunch.exe Mono を Linux や Mac OSX で使用している場合は、 mono OpenSim.exe -gridmode=true
運が良ければ、致命的なエラーもなく最後まで進むでしょう。
OpenDynamicsEngine を *nix で使用していて問題が発生している場合は、次のコマンドでスタック領域をデフォルトよりも大きく設定してみてください。 ulimit -s 262144 もしくは、 opensim-ode.sh で OpenSimulator を起動してください。
secondlife -loginuri http://127.0.0.1:8002/
8002 はユーザサーバのデフォルトポートです。同じマシンの中になければ、 IP アドレスをユーザサーバが動作しているサーバに変更しなければなりません。 Happy OpenSimming!
注意: Windows Vista を使用している場合は、必ず管理者としてサーバを起動しましょう。そうしないと、コンソールに "Error - Access denied" のようなエラーが表示されることになります。
自分の SIM を他人のグリッドに接続する
地域サーバ(例えば OpenSim.exe)を設定してグリッドに接続するためには、 bin/config-include ディレクトリの GridCommon.ini ファイルを編集します。グリッド管理者から提供された URI をそこに設定する必要があります。
変更の必要があるかもしれない他のファイルは bin/Regions ディレクトリにあります。個のディレクトリは個々の地域の設定ファイルが格納される場所です。1つの地域しかなければ、デフォルトで Regions.ini が呼び出されます (OpenSim 0.6.6 以前では、regions.xml と呼ばれていました)。
このファイルはテキストエディタで編集できます。グリッド管理者が、SIM の設置先 XY 座標を指示してくることもあります(グリッドの同じロケーションに複数の SIM を設置することはできません)。その場合は、このファイルの sim_location_x と sim_location_y のフィールドを書き換える必要があります。external_host_name に SIM サーバ(例えば、OpenSim.exe が動作しているマシン)のホスト名か IP アドレスを設定しなければなりません。 SIM を接続できる公共グリッドのリストが グリッドリスト にあります。
追記
OpenSim 0.6.7 以降を 64 ビット版 Windows でを動作させる
OpenSim 0.6.7 から、OpenSim のデフォルトの物理エンジンが ODE エンジンに変更されました。これは ODE が現在 OpenSim に同梱されている物理エンジンプラグインの中で今のところ最も先進的なものだからです。残念なことに、 64 ビット版 Windows ではライブラリの互換性がないという欠点があります。このため、64 ビット版 Windows のユーザは
OpenSim.32BitLaunch.exe
を
OpenSim.exe
の代わりに実行して地域シミュレータを起動する必要があります。
代替の方法として、基礎物理エンジンや OpenSim に同梱されている他の物理エンジンを使うこともできますが、ODE プラグインに比べると断然機能性の面で劣ります。
Mono に関する注意
Mono を使用している場合、Mono の環境変数 MONO_THREADS_PER_CPU をデフォルトの 5 から SIM で動作する値まで増加させなければなりません。正確な数字は様々な要因によって左右されます: マシンの CPU の数、マシンの他の用途、SIM にある地域の数、隣接する SIM の数、スクリプトの数、アバターの同時滞在予定数などです。参考までに、OSGrid の Wright Plaza という、1つの SIM で1つの地域を動作させていて、約 20 名のアバターで定期的にミーティングを開いている SIM では、値は 125 にしています。
値が小さすぎると、SIM の挙動がいろいろな点でおかしくなってきます。よくある症状は、新しいアバターがログインするときにフリーズすることです。他の症状はこれに比べればはるかに軽いです。
例: $ export MONO_THREADS_PER_CPU=125
レガシー設定に関する情報
正確かどうかはわかりませんが、レガシー設定に関する情報について書かれているページがいくつかあります。
OpenSim 0.6.6 legacy configuration information
追加の設定作業(上級者向け)
OpenSim.exe コマンドラインオプション
OpenSim.exe にはコマンドラインオプションがあり、これを使って他のディレクトリから設定ファイルを読みこむといったことができます。詳細は command line arguments を参照してください。
スクリプトエンジン
OpenSim は複数のスクリプトエンジンをサポートします。詳細は ScriptEngines を参照してください。何を言っているのかわからないかもしれませんが、デフォルトのスクリプトエンジンはちゃんと動くので安心してください。
権限設定
OpenSim には複雑な権限の集合があります。詳細は OpenSim:Permissions(Server) を参照してください。デフォルトでは、権限は地域シミュレータで有効となっていません。
ログ出力
デフォルトでは、OpenSim は bin ディレクトリの中の OpenSim.log と呼ばれるファイルに情報をログ出力します。必要であれば、設定方法の詳細が Logging にあります。
地域モジュールの設定
Metaverse Exchange Protocol (MXP) の設定
Web サーバや Web ページの設定
OpenSim は Web サーバを同梱しており、様々なページを公開することができます。外部ファイルを表示するページもあれば、内部で生成されるページもあります。