島を公開するネットワーク環境
Opensimで作った仮想世界を公開するには、そのためのネットワーク環境が必要です。スタンドアロンHGであれ、グリッド接続であれ同じです。4つのポイントを別ブログにまとめました。その他にも参考リンクを示しておきます。これらの設定はすべて済んだはずだが、どうもうまくいかない。その場合に問題を切り分けるためのテスト法をここに記します。
テスト法
急ぎの方は、最終ステップのテストを行ってください。Opensimサーバーを立ち上げ、ブラウザで次の「マイドメイン」の部分を自分のものに替え、9000番ポートにwebブラウザでアクセスします。
http://マイドメイン:9000
Opensimサーバーが動いていれば、Ooops!と表示されます。
Ooops!
The page you requested has been obsconded with by knomes. Find hippos quick!
If you are trying to log-in, your link parameters should have: "-loginpage http:///?method=login -loginuri http:///" in your link
The page you requested has been obsconded with by knomes. Find hippos quick!
If you are trying to log-in, your link parameters should have: "-loginpage http:///?method=login -loginuri http:///" in your link
同時に 404 File Not Found というエラーも表示されるかもしれませんが、上記のように Ooops!が表示されておればOKです。サーバーが停止していると他のエラー、「ページが読み込めない」、「接続を拒否されました」といったエラーとなるでしょう。
このテストで Ooops! が表示されたなら、ネット環境はおおむねOKでしょう。以下を読む必要はありません。それでも自分のSIMにログインできないなどのトラブルがあれば、別のところを疑ってください。
ただし、このテストはポート9000番のTCPだけのテストです。9000番はUDPもポートートフォワードが必要です。
冒頭のテストで Ooops! と表示されなかった場合、以下のステップを辿ってください。
ステップ1. IPアドレスを調べる
「IPアドレスって何だ?」という方は、もとちゃさんの記事「猿でも……」を読んでください。
自宅PC上で Opensimサーバを動かす場合、通常は外界との間にルーターを挟んでいるでしょう。この場合に外部から見たグローバルIPと、LAN内でのみ通用するLAN内IPとがあります。
LAN内IPはたいてい 192.168.xxx.xxx のようになっているでしょう。Windowsなら ipconfigコマンド、Linuxなら ifconfig コマンドなどで知られます。
グローバルIPも Windowsの ipconfigコマンドで分かりますが、ネット上でも調べるサービスがあります。ブラウザで次のサイトにアクセスすると、グローバルIPが表示されます。
グローバルIPが分かるサイト→ http://icanhazip.com/
2つのIPアドレスが次のように分かったとします。
LAN内IP: 192.168.11.88
グローバルIP: 123.111.222.33
ステップ2. 9000ポートにアクセスしてみる
1) Opensimサーバーを立ち上げます。うまく立ち上がったのを確認したら、このサーバーに httpでアクセスできるかテストします。
2) Opensimサーバーと同じPC上でブラウザを立ち上げます。ブラウザで開くべきURLに次のように入力します。
http://localhost:9000
Opensimサーバーが動いていれば、Ooops!と表示されます。
同時に 404 File Not Found というエラーも表示されるかもしれませんが、上記のように Ooops!が表示されておればOKです。サーバーが停止していると他のエラー、「ページが読み込めない」、「接続を拒否されました」といったエラーとなるでしょう。
ステップ3. LAN内IPにアクセスしてみる
同じ要領で、localhost とあったところをLAN内IPに置き換えます。
http://192.168.11.88:9000
同じように Ooops!と表示されるはず。
ステップ4. グローバルIPでアクセスしてみる
これまでのテストはたいてい通過するでしょう。これからが本番です。
同じ要領で、LAN内IPからグローバルIPに置き換えます。
http://123.111.222.33:9000
これで同様に Ooops! が表示されれば良いのですが、いかがでしょうか。
ここでつまづくとすれば、ルーターの設定や、ルーターがヘアピンNAT機能をそもそも持っていないことを疑わねばなりません。ルーターの設定は 第3の人生 08 などを参考に。
ステップ5. ドメイン名でアクセスしてみる
次にグローバルIPをドメイン名に置き換えます。
http://マイドメイン:9000
ここでつまずく場合は DDNSの設定ができていないということになります。MyDNSの利用法は 第3の人生 07 などが参考になります。
(初稿:13 May 2018, 20:20)
Comments - Edit - Delete
NPCを有効にする設定
Opensimではロボット、NPC(Non Player Character)が使えます。カップル・ダンスのパートナーを呼び出したり、NPCの象に乗ったりできます。Opensim本家からダウンロードしたものから仮想世界を構築した場合、標準のままではNPCは使えません、これを有効にする設定を記します。
1) OpenSim.ini
bin/OpwnSim.ini に [NPC]セクションがあります。これを次のように変更します。
[NPC]
Enabled = true
Enabled = true
これで土地オーナーが RezしたものだけNPCが使えるようになります。誰でもが持ち込んだものでもNPCが使えるようにするには、次の変更も必要です。
2) osslEnable.ini
bin/config-include/osslEnable.ini には NPCに関して次のような記述があります。
osslNPC = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
この設定ではEstateのオーナーあるいは代行者のみが NPCを使えます。
誰でもNPCを使えるようにするには、次のように変更してください。
osslNPC = true
JOGの設定
Japan Open Grid 配布の OpenSim-0.9.0Devでは誰でもNPCが使える設定になっています。OpenSim.iniファイル内でOSSLの設定は次のようになっており、標準とは異なるからです。
AllowOSFunctions = true
AllowMODFunctions = true
AllowLightShareFunctions = true
OSFunctionThreatLevel = VeryHigh
Allow_osGetSimulatorVersion = PARCEL_OWNER
[OSSL]
; Include-osslEnable = "config-include/osslEnable.ini"
AllowMODFunctions = true
AllowLightShareFunctions = true
OSFunctionThreatLevel = VeryHigh
Allow_osGetSimulatorVersion = PARCEL_OWNER
[OSSL]
; Include-osslEnable = "config-include/osslEnable.ini"
JOGのメインランドと同じ設定にするのだということならこのままでもいいですが、opensim本家標準とするには、そこのところをOpenSim.ini.example のとおりに、AllowOSFunctions などの行をここでは削除し、Include-osslEnable を有効にしておきます。
[OSSL]
Include-osslEnable = "config-include/osslEnable.ini"
Include-osslEnable = "config-include/osslEnable.ini"
また、JOG配布の OpenSim-0.9.0DevではosslEnable.ini も書き換わっています。本家オリジナルは bin/config-include/osslEnable.ini+ です。これを osslEnable.ini と名前変更すると本家標準と同じになります。
(初稿:5 May 2018, 20:01)
Comments - Edit - Delete
Opensimでの使用ポート
opensimサーバーで使用するポートは標準で 9000番の TCPと 9000番台のUDPです。自分のPC上に作った島を公開するには、これらのポートを開ける、すなわちルーターでこれらのポートをそのPCに向ける(ポートフォワード)必要があります。複数の opensimサーバーを動かす場合、それらのポート番号が重ならないようにしなければなりません。それらの理由で使用ポートを変更する設定について記します。
OpenSim.ini(TCPポート)
Case 1 スタンドアロン
TCPポートに関係する設定は bin/OpenSim.ini ファイルに [Const]セクションと [Network]セクションの2箇所あります。スタンドアロン+ハイパーグリッドで標準は 9000番です。→標準の設定はこちら
9000に代わって 9005を使いたいときは
[Const]
BaseHostname = "shinobar.server-on.net"
BaseURL = http://${Const|BaseHostname}
PublicPort = 9005
[Network]
http_listener_port = 9005
Case 2 グリッド接続
スタンドアロンではなく JOGなど既成のグリッドに自分の島を設置するグリッド接続の場合 [Const]の設定は親グリッドのものに合わせておきます。自分のほうだけの変更は [Network]セクションのhttp_listener_port を書き換えます。たとえば JOGに接続する SIMで標準の 9000ではなく 9005を使いたいときは
[Const]
BaseURL = http://jogrid.net
PublicPort = "8002"
PrivatePort = "8003"
Network]
http_listener_port = 9005
ここで 8002、8003が登場しますが、こちらからアクセスするだけなので、ポートフォワードは必要ありません。 ルーターの設定が必要なのは 9005だけです。
JOGのような大規模グリッドを自前で運用する目的で ROBUSTサーバーも自前で動かす場合に限って(標準で) 8002、8003も開けることになります。
Regions.ini(UDPポート)
スタンドアロン/グリッド接続共通
bin/Regiond/Regions.ini ファイルには島ごとに InternalPort を設定します。それぞれのポート番号のUDPも開けておきます。
(初稿:6 May 2018, 0:41)
Comments - Edit - Delete
スタンドアロンでハイパーグリッド
ハイパーグリッドOpensimの標準設定で自分のPC上で動かすと、自分だけの閉じた世界となります。Opensimは本来ハイパーグリッドと言って、他のグリッド、JOGやOSGなどと行き来ができるハイパーグリッド機能を持っています。これを活かすことで、世界のグリッドを訪問して買い物してきたり、他のグリッドのアバターを自分の世界に呼ぶことができます。
この設定法を Opensim最新版 0.9.0.0に合わせて更新するとともに加筆しました。
→スタンドアロンだけどハイパーグリッド ver.0.8.1以降
更新・加筆した部分
1)[Const]の記載が0.9系で少し変わったところを更新しました。
2) ポートを標準の 9000から変更する場合、[Network]セクションの http_listener_port を書き換えなければならないので加筆しました。
3) 必須ではないけれど [Estate]セクションでデフォルトの Estateうぃ設定する方法について加筆しました。
4) ビューアーに自分のグリッドを追加する方法について加筆しました。(↓参考画像・クリックすると拡大します)
ログイン画面
追加されたスタンドアロンにログインしようとしたとき、ビューアーの画面上部は真っ黒です。このままで支障ありませんが、何か格好いい画像でも表示させたくなりますね。
bin/config-include/StandaloneCommon.ini を編集します。
[GridInfoService] のセクションで welcomeページが設定できます。このページはインターネット上でアクセスできるものなら、どこでもいいので、たとえば自分のブログの1ページでもいいわけです。
welcome = http://shinobar.slmame.com/e1647583.html
設定を変更したら opensimサーバーを再起動し、ビューアーのグリッド一覧の中から自分のグリッドを選択し、その右にある「更新」をクリックしてください。ログインページが表示されるはずです。
あとは設定されたページを好きなように編集すればよいわけです。
(初稿:5 May 2018, 20:25)
Comments - Edit - Delete
オープンシムとは
このブログで話題にする OpenSim とは何なのか説明が必要ですね。プレーヤーの分身であるアバターを三次元の仮想世界で操作する、ネットゲームのようなもの、とでも言いましょうか。普通のゲームと違って、倒すべき敵やクリアすべき目標というものがありません。3Dの仮想世界を歩き回って風景を楽しんだり、友達を見つけておしゃべりしたり……。週末などにクラブでイベントが開催され、DJが流す音楽に合わせてダンスを楽しむことがよく行われています。
できあがった3D世界を楽しむばかりではなく、その中に建物を建てたり新しい製品やサービスを提供したりなどで仮想世界に関わっていく楽しみ方もあります。仮想世界で使えるオリジナルの衣装やアクセサリを製作し、自分のブティックを持って販売する方もたくさん居ます。
Secondlife と OpenSim
そういう仮想世界でいまは老舗となっているのが Secondlifeです。日本では2007年ごろにマスメディアで取り上げられて話題になったことをご記憶の方もおられるかもしれません。その技術をオープンソースの形で誰でもが独自の仮想世界を構築、運営できるようにしたものが OpenSimです。
OpenSim はその運営者の姿勢によりますが、多くは無料で利用することができます。Secondlife でもある程度の範囲は無料で利用できますが、Linden Labo.が営利で運営するもので、仮想世界の中に土地を持って住み着くにはそれなりに費用が掛かります。
OpenSimによるグリッド
OpenSim の技術を使って構築される仮想世界をグリッドと呼びます。グリッドの中で最大のものは Osgrid (OSG)です。非営利団体が運営主体となっています。この記事執筆時点で全世界 12万人がユーザー登録しているそうです。
OSG以外にも全世界に多数のグリッドがあります。日本人が運営するグリッドに Japan Open Grid (JOG)があります。サポートが日本語で受けられるので安心です。Shinobar が主に活動しているのが、この JOGになります。JOG入門記事を参考リンクに紹介しておきます。
Opensimはだれでも使えるので、これで自分のパソコン上に仮想世界を作ることもできます、これも参考リンクに示しておきます。
参考リンク
JOG入門
Japan Open Grid チュートリアル(JOG公式サイト)
JOG - ジャパンオープングリッドへの入り方(もとちゃ の めざせ!たこ焼き屋さん)
JOG編その1 日本人ならコレでしょ!(第3の人生)
JOG - ジャパンオープングリッドへの入り方(もとちゃ の めざせ!たこ焼き屋さん)
JOG編その1 日本人ならコレでしょ!(第3の人生)
JOG情報専門サイト
OpenSimによる仮想世界の構築
自分のSIMを作る(第3の人生 2)
スタンドアロンだけどハイパーグリッド(パピーリナックス日本語フォーラム)
OpenSimの技術に関するバイブル的存在。著者が夭折されたあと、風月さんが目次を付けて整理。
目次をつけてみた:「もとちゃ の めざせ!たこ焼き屋さん」
新着 OpenSim情報 teddy's Notes
スタンドアロンだけどハイパーグリッド(パピーリナックス日本語フォーラム)
OpenSimの技術に関するバイブル的存在。著者が夭折されたあと、風月さんが目次を付けて整理。
目次をつけてみた:「もとちゃ の めざせ!たこ焼き屋さん」
新着 OpenSim情報 teddy's Notes
(初稿:21 Apr 2018, 16:36)
Comments - Edit - Delete