FAQ/ja

From OpenSimulator

Revision as of 05:44, 19 November 2010 by Fritigern (Talk | contribs)

Jump to: navigation, search

Quicklinks/jaの引数に翻訳元ページの名称を指定してください


Contents

OpenSim について

OpenSim って何?

OpenSim は仮想世界を操作するプラットフォームで、複数の独立した地域を1つのグリッドを中心として連結することができるようになります。これはある意味 Web に似ていて、誰でも自分の Web サーバを動作させて、インターネットを通して相互に接続するようなイメージです。これを使って、プライベートなイントラネットに似た、プライベートグリッドを作成することもできます。

Region(地域)って何?

地域とは、OpenSim にログインしたときに目に見えるものです。物理空間(いや、仮想物理空間)で、アバターが動いたり交流したりします。四角形に区切られた土地で、島、山、飛行機、ビルなどがあったり、海だけだったりします。

Grid(グリッド)って何?

グリッドとは、世界の中でにある地域や地域の位置を管理する層で、地域に共通で存在していなければならないもの、例えばユーザのインベントリなどを操作します。世界地図と同じと考えることもできます。

…どういうこと?

OpenSim で共通に使われる用語は、 OpenSim:Technical Reference に定義されています。

OpenSim の設定

最初に、設定を読んでください。

自分の SIM の設定に使う UUID をどこで入手できるの?

  • 設定を読んでください。

OpenSim で複数の地域を起動できるの?

  • 設定を読んでください。

OpenSim で使えるデータベースは?

  • 設定を読んでください。

OpenSim の起動

データ移行でエラーが表示されました

OpenSim に保存されているデータに変更があるとき、なんらかの理由でデータ移行に失敗すると、バージョンアップ時に発生する可能性があります。

OpenSim のコンソールに、このようなエラーが表示されます。

 [LLOGIN SERVICE]: Exception processing login for [username]: MySql.Data.MySqlClient.MySqlException: Table 'opensim.UserAccounts' doesn't exist
   at MySql.Data.MySqlClient.MySqlStream.OpenPacket () [0x00000] 
   at MySql.Data.MySqlClient.NativeDriver.ReadResult (System.UInt64& affectedRows, System.Int64& lastInsertId) [0x00000] 
   at MySql.Data.MySqlClient.MySqlDataReader.GetResultSet () [0x00000] 
   at MySql.Data.MySqlClient.MySqlDataReader.NextResult () [0x00000]    at MySql.Data.MySqlClient.MySqlStream.OpenPacket () [0x00000] 
   at MySql.Data.MySqlClient.NativeDriver.ReadResult (System.UInt64& affectedRows, System.Int64& lastInsertId) [0x00000] 
   at MySql.Data.MySqlClient.MySqlDataReader.GetResultSet () [0x00000] 
   at MySql.Data.MySqlClient.MySqlDataReader.NextResult () [0x00000] 

この場合は、'users' テーブルが 'UserAccounts' に移行されていないのに、 OpenSim は、このテーブルがあるという前提でアクセスしてしまいました。ビューア側でもエラーとなります。

 Login Failed
 Error generating Login Response

移行に失敗していた原因となっていた、ファイルシステムのパーミッションを修正し(Linux マシンで '/var/lib/mysql/...' がぐちゃぐちゃになっていました)、'migration' テーブルを削除してサーバを再起動したら解決しました(移行時に [non-critical] 警告が出たので、たぶんもっと良い方法があったのだと思いますが、手詰まりだったので、安直にいきました)。地形データの参照や現在のシェイプ・服・アタッチメントのデータが消えてしまったこと以外は(これらは SIM の中で復旧できます)、今のところ問題はありません。

OpenSim への接続

OpenSim サーバをセットアップし、ログインに成功しているようですが、クライアントが「地域に接続しています」でハングアップします

2 段階でログインします。

1) クライアントを起動して名前とパスワードを入れると、OpenSim ログインサービスに内容が送信されます。パスワードが正しいと、地域シミュレータに、これからあなたが行くことを知らせます。そして、地域に入るのに使う IP アドレスとポート番号を(Region.ini ファイルに書かれている通りに)あなた(クライアント)に送り返します。

2) クライアントがこれらの情報をもとに地域に接続します。

クライアントが「リージョンに接続しています」でハングアップしている場合、ステップ 2) で受信した情報で接続できていません。 Regions.ini をしっかり確認して、Telnet で IP アドレスとポート番号が正しいか調べてみてください。

今まで外部(ネットワークの外部の人が接続できるがあなたが接続できないところ)から接続できていたのにこの問題が発生している場合は、おそらくルータが NAT ループバックをサポートしていません。NAT ループバックを使うと、外部アドレスを使ってルータ経由でローカルマシンに接続できるようになります。この機能をサポートするルータのリストは、NAT_Loopback_Routers にあります。


公衆の OpenSim

OpenSim が動作しているテストサーバで私が接続してもいいものはありますか?

はい。グリッドリストを調べてみましょう!多くのプライベートサーバが、しばしばテスト用に公開されています。IRC チャネル (Freenode #opensim) にアクセスして、URI を探してみましょう。

ディレクトリと検索エンジンを提供しているプライベートな組織もあります。例えば:

  • Hyperica -- Hypergrid が使用できる OpenSim デスティネーションの、カテゴリで分類されたディレクトリ。現在 250 以上のロケーションが登録されています。
  • MetaverseInk -- OpenSim グリッドの HA キーワードベースのサーチエンジン。ほとんどが Diva Distro によって運営されています。
  • GridHop -- メジャーな OpenSim グリッドを網羅したリスト。現在 150 デスティネーションが Hypergrid テレポートでアクセスできます。
  • HGURL -- 全グリッドのキーワード検索データベース。全て Hypergrid(サーチエンジンやインワールドの情報にアクセスする、発展途上の API)でアクセス可能です。
  • The Hypergates -- Hypergate テレポートネットワークの一部となっている、Hypergrid が使用可能なデスティネーションのディレクトリ。

Second Life グリッドから私の SIM にテレポートできますか?

いいえ。2008 年と 2009 年には、 vaak グリッドというグリッドに接続でき、Second Life から OpenSim グリッドにテレポートできたのですが、Linden Lab が接続を終了しました。2010 年時点で、「vaak グリッドは現在使用できません。OGP ベースのサービスから VWRAP ベースのサービスに移行するためです。」(Second Life Wiki の "Open Grid Public Beta"

MySQL

MySQL のグリッドデータベースにある、ユーザのゴミ箱アイテムを特定して削除するには?

注意: データベースのバックアップを取りましょう!

警告: Linux の MySQL データベースのデフォルトディレクトリは /var/lib/mysql です。多くのバックアップツール(例えば backupPC)は /var/* にバックアップされません!データベースや単なる MySQL コード (/usr/bin/mysql) 以外のものが最新のバックアップに含まれているか確認しましょう!実際の手順はオペレーティングシステムやデータベースによって異なりますが、問題は共通しています。

1. ゴミ箱のアイテムを見つけたいアバターの UUID を users テーブルで探します。
このクエリで当該ユーザの UUID を検索します: (User/Test をユーザネーム/ラストネームに書き換えてください)

SELECT `UUID` FROM `users` WHERE `username` LIKE 'User' AND `lastname` LIKE 'Test' LIMIT 0 , 30;


2. アバターの UUID を使って、フィールド名 AgentIDinventoryFolders テーブルで探します。TrashfolderName に指定して、ユーザのゴミ箱の folderID を特定します。
このクエリでユーザのゴミ箱フォルダのエントリを検索します: (00000000-0000-0000-0000-000000000000 をユーザの UUID に書き換えてください)

SELECT `folderID` FROM `inventoryfolders` WHERE `agentID` LIKE '00000000-0000-0000-0000-000000000000' AND `folderName` LIKE 'Trash'
LIMIT 0 , 30;


3. 最後のクエリで取得した folderID UUID を使い、 inventoryitems テーブルの中の全てのゴミ箱アイテムを探します。特定したら、削除することができます。
このクエリで当該アバターのゴミ箱アイテムを検索します: (00000000-0000-0000-0000-000000000000 を先のクエリで取得したゴミ箱フォルダの UUID に書き換えてください)

SELECT * FROM `inventoryitems` WHERE `parentFolderID` LIKE '00000000-0000-0000-0000-000000000000' LIMIT 0 , 9999;


注意: これらの手順では、関連するアセットをアセットテーブルから削除しません。inbentoryitems テーブルにある、インベントリ中のアイテムだけを削除します。

MySQL のグリッドデータベースにある、重複したインベントリフォルダエントリを特定して対処するには?

注意: データベースのバックアップを取りましょう!

1. 最初に、当該アバターの UUID を inventoryFolders テーブルで検索して、重複エントリがないか調べるとよいでしょう。見たら、重複エントリで問題となっている箇所がわかるでしょう。どこで使われているかを探すのがポイントです。

2. ファイルをインワールドにアップロードし、適当な一意名をつけます。これであなたが使っているルートフォルダの UUID を特定できます(重複しているのに使われているのは1つだけということもありますが)。

3. inventoryitems テーブルを一意名で検索して、parentFolderID を特定します。

このクエリは一意名のアイテムを検索することによって parentFolderID を特定します(unique_name をアイテムの一意名に書き換えてください)

SELECT `parentFolderID` FROM `inventoryitems` WHERE `inventoryName` LIKE 'unique_name' LIMIT 0 , 30;

4. inventoryfolders テーブルを、最後の検索で取得した parentFolderID UUID で調べます。これが使われているルートフォルダです。parentFolderID でヒットしない重複エントリを全て削除できます。最終的に、それぞれのタイプ(Trash など)で1つずつある状態にします。

このクエリは、最後の検索で取得した parentID でないものを全て返します。(00000000-0000-0000-0000-000000000000 をステップ 3 で特定した parentID に書き換えてください)

SELECT * FROM `inventoryfolders` WHERE `folderID` NOT LIKE '00000000-0000-0000-0000-000000000000' LIMIT 0 , 30;

インワールドでの疑問

インワールドのスクリプトは動作しますか?

完全には実装されていませんが、鋭意実装中です。最新の情報は ScriptEngines, LSL Status, OSSL Status を参照してください。

アバターをカスタマイズできますか?

はい。カスタマイズするには、

  • 持ち物ボタンをクリックします。
  • 作成 -> New Clothes -> 新しいシャツ、新しいパンツ、など
  • 作成 -> New Body Parts -> 新しい髪、新しいシェイプ(体型)、など
  • インベントリで編集します。
  • 装着します。

アバターはこれを行うのに適した方向を向いてくれるとは限らないので、カメラ操作で顔を見たり編集箇所を見たりする必要があります。これは既知の問題で、将来修正される予定です。また、最初に環境に入ったときにパンツを履き直す必要があります。現在ではデフォルトの見た目は常に "Ruth" となっています。

先の手順を実行した直後に、私がガスの雲のように見えるようになりました。なぜですか?

Second Life はクライアントで Ruth を表示しないようにしました。OpenSim で表示される Ruth は私たちの独自の試みで、ヨガの先生に似せて作ってあり、正真正銘の Second Life の Ruth ではありません。シャツ、パンツ、スキン、シェイプを作って、パラメタを変更せずに装着すると、Second Life ビューアはあなたが Ruth でないと認識します。このため、もう Ruth ではなくなり、ガスの雲に見えるようになります。これを直すには、 4 つ全てを装着する前にどれかのパラメタを変更するか、既にガスの雲になっているのであれば、インベントリでどれかを右クリックして編集をクリックします。容姿編集メニューが表示されるはずです。どれかスライダーを動かしてみましょう。

XEngine を使っていましたが、最近のアップデートで DotNetEngine に戻ってしまいました

仕様変更により、 XEngine を復活させるには、スタートアップセクションを書き換えるか追加して DefaultScriptEngine = "XEngine" としなければならなくなりました。 ScriptEngines を参照してください。

地形を編集しても私の世界地図が更新されないのは、なぜですか?

あなたがどのぐらい勇気があるかによって、3つの方法があります。危険でない順に:

  • 2日待ちましょう。2日目の最後に SIM を再起動すると、アップデートを取得できます。
  • 地域の .xml ファイルを開きましょう。"lastmap_refresh" 属性を "0" にします。SIM を再起動する必要があります。
  • 心臓の弱い方は実行しないでください!"WorldMapModule.cs" ファイルを編集し、"LazySaveGeneratedMaptile" メソッドを変更し "RefreshSeconds" を2日より小さい値にします。コメントをよく読んで、どうしてこうなるのかを理解してから行ってください。

地形が安定してしまえば、そんなに問題にはなりませんが、猛烈な勢いで何かを作っているときに変更が見れるのはいいことです。

何もせずに立っていると、膝が曲がります。なぜですか?

これは ODE 物理エンジンを 64 ビットシステムで動作させると発生するようです。直すには、OpenSim.ini を編集して、次の行を変更します:

  • av_capsule_standup_tensor_linux = 550000

から

  • av_capsule_standup_tensor_linux = 1700000

ちなみに、コードのこの行は OpenSim.ini ファイルの [ODEPhysicsSettings] セクションにあります。

新しいスキンやシェイプを作ると、気が狂ったように新しいアセットが次々にできてしまいます

アセットキャッシュをまだ設定していないからでしょう。

cenome キャッシュか flotsam キャッシュのどちらかを設定する必要があります。

アセットキャッシュがないと、一時的なアセットが保存されません。このため、何回も何回もリクエストされることになります。

config-include/CenomeMemoryAssetCache.ini.example か関連する flotsam ファイルを .ini にコピーして編集し、適当に設定を行い、GridCommon.ini か StandaloneCommon.ini を開いて使用するキャッシュの行のコメントを外します。

(スタンドアロンはデフォルトで cenome で、グリッドはデフォルトで flotsam です)

グリッドモード

新しいグリッドが起動するようになりました。次にやることは?

  • UGA &S (SIM) を停止・再起動できるかやってみましょう。SIM を停止・再起動せずに UGA を停止・再起動したら問題がはっせいするかやってみましょう。
  • 地域とユーザの両方を、データベースに追加・削除できるかやってみましょう。
  • 一晩中稼働できるか、毎朝 1 個か 2 個のメイン SIM にログインできるかやってみましょう。
  • 'tail -f userserver.log' でログインプロセスを監視し、何をやっているか理解しましょう。
  • システムからログオフしたときに、再びログオンでき、 UGAS コンソールから操作できるようになるかやってみましょう。

Web ページの地域統計

地域に関する情報

地域の名前、アバターの名前、アバターの位置<x,y,z>、プリムの数、その他たくさんの統計が Web ページで取得できます:

  • OpenSim.ini ファイルの一番下の行に、以下を追加します。
 [WebStats]
 enabled=true
  • ウェブブラウザで自分のスタンドアロンサーバの "Login URI" + "/SStats/" を入力します。
 例- http://127.0.0.1:9000/SStats/

結果が表示された Web ページは Ajax で随時更新されますので、ページを更新することなく現在の情報を取得することができます。この Web ページの情報の使い道としては、ログインせずに、誰が地域にログインしているかをリアルタイムで見ることでしょうか。
Web ページには、地域の情報が表示されています。それは、地域統計取得のサーバコンソールコマンドで取得できるものと同じようなものです。Server_Commands を参照してください。

Personal tools
General
About This Wiki