2012年05月21日
CentOS6でOpenSim メガリージョン編
前回に続いて、CentOSでOpenSim、今回はさらに1SIMを追加して、メガリージョンで動作させてみたいとおもいます。
そのまえに、ビュア(SL Viewer)の設定です。
Win7を例に説明します。
まずデスクトップのSL Viewerのアイコンを右クリックして、プルダウンメニューから
ショートカットの作成を選択して、デスクトップ上にショートカットを作成します。
同じ名前だと紛らわしいので、右クリックでプルダウンメニューから名前の変更を
選んで、名前を変更します
名前を変更したアイコンを右クリックして、プロパティを選択します
リンク先の最後尾に 半角スペースを入れて、OpenSimのIPアドレス:ポート番号を追加します。
前回の設定の例ではCentOSサーバーのIP 192.168.1.50 ポートは9000なので
-loginuri http://192.168.1.50:9000/ となります
適用を押して保存します。
OpenSimを起動して、接続します。

ここから、メガリージョンの設定をしてみます
メガリージョンは複数の連続したSIMを1つのSIMみたいにふるまう設定です。(この説明でいいのかな^^;)
ここでは2SIMをメガリージョンとして設定してみます。
まず、SIMのレイアウトを決めます。
現存しているSIM(ここではrika_island)の現在地は、(1000,1000)です
追加するSIM(ここでは oimo_island)を北側に連結します(地図では上部)
現在地(X,Y)で Xは東西、Yは南北の軸を取ります。
追加するSIM(oimo_island)の位置は、北側なので
(1000,1001)となります
rika_island (1000,1000)
oimo_island (1000,1001)
リージョン情報は、Regions.iniファイルに追記します。
$ cd Regions
$ vi Regions.ini
[rika_island]
RegionUUID = 87369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1000
InternalAddress = 0.0.0.0
InternalPort = 9000
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
このブロックをそのまま コピーをとり、ブロックの下に一行空けて追加します。

1、リージョン名を変更します 例では rika_island → oimo_island
2、リージョンUUIDを変更します(この値は、ユニークでないといけません)
ここでは、先頭2バイトを変更しましたが、実際の運用ではuuidgenコマンドでuuidを生成します。
$ uuidgen
18ee79b4-da71-4613-91b0-1c523673614c ユニークなuuidが生成されます。
生成された uuidをコピー、貼り付けします。
3、リージョンの位置を設定します。 1000,1000 → 1000,1001
4、ポート番号を設定します。 各SIMごと異なるポート番号の設定が必要です
9000 → 9001
変更後はこのようになります。
[rika_island]
RegionUUID = 87369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1000
InternalAddress = 0.0.0.0
InternalPort = 9000
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
[oimo_island]
RegionUUID = ba369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1001
InternalAddress = 0.0.0.0
InternalPort = 9001
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
次に各リージョンに
ClampPrimSize = False
を追加します。
[rika_island]
RegionUUID = 87369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1000
InternalAddress = 0.0.0.0
InternalPort = 9000
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
ClampPrimSize = False
[oimo_island]
RegionUUID = ba369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1001
InternalAddress = 0.0.0.0
InternalPort = 9001
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
ClampPrimSize = False
保存します。
次にbinに戻り OpenSim.iniを編集します
$ cd ..
$ vi OpenSim.ini
118行 付近の
; CombineContiguousRegions = false を変更します

; CombineContiguousRegions = false 先頭のコメント;を消去して、falseをtrueに変更
CombineContiguousRegions = true
保存します
OpenSimを起動します
$ mono OpenSim.exe
途中に問い合わせがあります
Do you wish to join region oimo_island to an existing estate (yes/no)? [yes]: Enterしました
Name of estate to join. Existing estate names are (rika_sim) [rika_sim]: Enterしました
・
・
Region (root) # OpenSimのコマンド待ち(リージョン名がrootになります)
ファイヤーウォール設定のためいったん終了します
rootになり、 iptables を編集します
新たに追加したリージョンのポート(9001)を追加します。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 9001 -j ACCEPT
を追加します
# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 9000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 9001 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
保存します
iptablesサービスを更新します
# service iptables restart
再度ユーザーに戻り opensimを立ち上げます
SIMがもうひとつ見えるでしょうか
SIMの地形を変えてみます
ここでは 以前製作した ハート島のデータを使ってみます。
opensimのbinディレクトリーに地形データをコピーします。
ここでは 地形データは heart_island.png とします
opensimを起動します
コマンド待ちになったら 変更したいSIMに変更します。
rootのままだとすべてのSIMが対象になります。
oimo_islandをハート島にします(change region SIM名(リージョン名))
Region (root) # change region oimo_island
Region (oimo_island) #
対象がoimo_islandになりました
地形データを読み込みます( terrain load 地形ファイル名)
Region (oimo_island) # terrain load heart_island.png
いったんopensimを終了し、再起動します。
あれ、地図には出ない、でもミニマップには表示されている^^;
(SL Viewer)

Imprudence Viewerでは地図の表示も正常です。

Phoenix Viewerでは SL Viewerと同様 地図の表示がでませんでした

Imprudence Viewerがいちばん 相性が良いようです^^
そのまえに、ビュア(SL Viewer)の設定です。
Win7を例に説明します。
まずデスクトップのSL Viewerのアイコンを右クリックして、プルダウンメニューから
ショートカットの作成を選択して、デスクトップ上にショートカットを作成します。
同じ名前だと紛らわしいので、右クリックでプルダウンメニューから名前の変更を
選んで、名前を変更します
名前を変更したアイコンを右クリックして、プロパティを選択します
リンク先の最後尾に 半角スペースを入れて、OpenSimのIPアドレス:ポート番号を追加します。
前回の設定の例ではCentOSサーバーのIP 192.168.1.50 ポートは9000なので
-loginuri http://192.168.1.50:9000/ となります
適用を押して保存します。
OpenSimを起動して、接続します。

ここから、メガリージョンの設定をしてみます
メガリージョンは複数の連続したSIMを1つのSIMみたいにふるまう設定です。(この説明でいいのかな^^;)
ここでは2SIMをメガリージョンとして設定してみます。
まず、SIMのレイアウトを決めます。
現存しているSIM(ここではrika_island)の現在地は、(1000,1000)です
追加するSIM(ここでは oimo_island)を北側に連結します(地図では上部)
現在地(X,Y)で Xは東西、Yは南北の軸を取ります。
追加するSIM(oimo_island)の位置は、北側なので
(1000,1001)となります
rika_island (1000,1000)
oimo_island (1000,1001)
リージョン情報は、Regions.iniファイルに追記します。
$ cd Regions
$ vi Regions.ini
[rika_island]
RegionUUID = 87369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1000
InternalAddress = 0.0.0.0
InternalPort = 9000
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
このブロックをそのまま コピーをとり、ブロックの下に一行空けて追加します。

1、リージョン名を変更します 例では rika_island → oimo_island
2、リージョンUUIDを変更します(この値は、ユニークでないといけません)
ここでは、先頭2バイトを変更しましたが、実際の運用ではuuidgenコマンドでuuidを生成します。
$ uuidgen
18ee79b4-da71-4613-91b0-1c523673614c ユニークなuuidが生成されます。
生成された uuidをコピー、貼り付けします。
3、リージョンの位置を設定します。 1000,1000 → 1000,1001
4、ポート番号を設定します。 各SIMごと異なるポート番号の設定が必要です
9000 → 9001
変更後はこのようになります。
[rika_island]
RegionUUID = 87369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1000
InternalAddress = 0.0.0.0
InternalPort = 9000
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
[oimo_island]
RegionUUID = ba369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1001
InternalAddress = 0.0.0.0
InternalPort = 9001
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
次に各リージョンに
ClampPrimSize = False
を追加します。
[rika_island]
RegionUUID = 87369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1000
InternalAddress = 0.0.0.0
InternalPort = 9000
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
ClampPrimSize = False
[oimo_island]
RegionUUID = ba369d1d-6e02-45bc-9596-c9de11964791
Location = 1000,1001
InternalAddress = 0.0.0.0
InternalPort = 9001
AllowAlternatePorts = False
ExternalHostName = 192.168.1.50
ClampPrimSize = False
保存します。
次にbinに戻り OpenSim.iniを編集します
$ cd ..
$ vi OpenSim.ini
118行 付近の
; CombineContiguousRegions = false を変更します

; CombineContiguousRegions = false 先頭のコメント;を消去して、falseをtrueに変更
CombineContiguousRegions = true
保存します
OpenSimを起動します
$ mono OpenSim.exe
途中に問い合わせがあります
Do you wish to join region oimo_island to an existing estate (yes/no)? [yes]: Enterしました
Name of estate to join. Existing estate names are (rika_sim) [rika_sim]: Enterしました
・
・
Region (root) # OpenSimのコマンド待ち(リージョン名がrootになります)
ファイヤーウォール設定のためいったん終了します
rootになり、 iptables を編集します
新たに追加したリージョンのポート(9001)を追加します。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 9001 -j ACCEPT
を追加します
# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 9000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 9001 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
保存します
iptablesサービスを更新します
# service iptables restart
再度ユーザーに戻り opensimを立ち上げます
SIMがもうひとつ見えるでしょうか
SIMの地形を変えてみます
ここでは 以前製作した ハート島のデータを使ってみます。
opensimのbinディレクトリーに地形データをコピーします。
ここでは 地形データは heart_island.png とします
opensimを起動します
コマンド待ちになったら 変更したいSIMに変更します。
rootのままだとすべてのSIMが対象になります。
oimo_islandをハート島にします(change region SIM名(リージョン名))
Region (root) # change region oimo_island
Region (oimo_island) #
対象がoimo_islandになりました
地形データを読み込みます( terrain load 地形ファイル名)
Region (oimo_island) # terrain load heart_island.png
いったんopensimを終了し、再起動します。
あれ、地図には出ない、でもミニマップには表示されている^^;
(SL Viewer)

Imprudence Viewerでは地図の表示も正常です。

Phoenix Viewerでは SL Viewerと同様 地図の表示がでませんでした

Imprudence Viewerがいちばん 相性が良いようです^^
Posted by rikachann Aabye at 15:20│Comments(2)
│CentOS
この記事へのコメント
FreeBSDには、標準で uuidgen というコマンドが入ってるんで、簡単にUUIDが生成できます。Linuxでもあるみたいですよ。
Posted by Xpyoda at 2012年05月26日 16:54
Centosでもちゃんとuuidgenコマンドありました。
本文に追記しますね
ありがとうございますwww
本文に追記しますね
ありがとうございますwww
Posted by rikachann at 2012年05月27日 17:33