スカイ・エッグ
一部に要望のあった SkyEgg v2 をJOG内で作りました。座ると上空まで連れて行ってくれ、そこに一時的なスカイボックスをRezするのが基本的な機能です。misakiさんが使い方の解説動画を作ってくれました。
https://youtu.be/VklArfbU-Wg

上空でRezするスカイボックスは、任意のものをインベントリに入れておくことができます。ただし1つのオブジェクトにリンクされていなくてはなりません。コピー可でなければならないのはもちろんです。オブジェクトにはスクリプト ListenDie を入れておいてください。見本にオブジェクト Dome 50m が入っていますが、その中にこのスクリプトがあります。アバターが地上に戻るときに、Rezしたスカイボックスを消去するためのものです。
Rezされる位置はカプセル(卵)の下面です。Rezされるスカイボックスのrootプリムをこの位置にしてください。スクリプト upsky v2内の次の変数で位置を調整できます。
vector REZ_POS = <0.0, 0.0, -0.2>; //rezzed object root position from the lower surface of the cupsel
座ったときに取るポーズは、アニメーションを入れ替えることで変更できます。その腰の位置はノートカード SITCONFIGに記載します。
vector POSITION = <-0.5, 0.0, 0.2>; // <x,y,z> meters offset when the agent face to the east
アバターが東を向いたときの腰の位置を <x, y, z> 座標で記入します。
置いてあった卵に座ったときに、卵が手の上に移動するといった効果を付けたいことがあります。このときには LIFT_UP にその高さを設定してください。
float LIFT_UP = 0.0; //meters lift up at sit
上昇のときの効果音は、やはりインベントリ内のサウンドを入れ替えます。
上空の高さは、スクリプト upsky v2 の次の部分を書き換えます。
//list LEVELS = [ "+10", "400", "600" ]; // '+' means relative
list LEVELS = [300]; // menu not shown if the element is only one
複数の高さをリストに掲げたときは、メニューが表示されます。1つだけだとメニューは表示されず、座るだけでその高さまで上昇します。行冒頭に '//'があると、その行は無視されます。
list LEVELS = [300]; // menu not shown if the element is only one
上昇・下降の速度は次の値を変更ください。
float high_speed = 50.0; //meter per second
float low_speed = 4.0;
float low_speed = 4.0;
上昇中は卵が光ります。これを停止したいのならば、GLOW を 0.0 に設定してください。
float GLOW = 1.0; //0.0-1.0, glow effect
不明な点があれば、JOGインワールドで Shinobar Martinek までお問い合わせください。
(初稿:8 Mar 2019, 21:31)
No comments - Edit - Delete
販売スクリプト
JOGフォーラムでも紹介した、商品を販売するスクリプトです。JOG内 Shinobar Annex スクリプトの館で配布しています。
-HyperVendor 3つの特徴
1. 無料での頒布も、料金を設定しての有料販売もできます。ただし有料販売ではマネーサーバーの設定が影響します。
2. メニューによる商品の選択、あるいは一括してのフォルダ渡しか、スクリプトの設定で選べます。
3. HGユーザーへも頒布するかどうか設定できます。ただし有料販売ではマネーサーバーの設定が影響します。
スクリプト冒頭の変数の値を書き換えることで挙動を変えることができます。
<無料/有料での頒布>
PRICE: 頒価を数字で設定します。0 ならば無料。マネーサーバーに接続していないSIMではアバターの所持金が常に0なので、有料設定すると購入できないので注意。
<メニューでの商品の選択、あるいはフォルダ渡し>
MENU=TRUE だと、オブジェクト内の商品のうち、メニューで選択された一つだけを渡します。フォルダは作りません。
MENU=FALSE だと、オブジェクト内のすべての商品をまとめて1つのフォルダにして渡します。フォルダ名は FOLDER_NAME でも設定できますが、デフォルトでは入れ物であるオブジェクト名と同じ。オブジェクトの一般設定でL$0で「中身」を販売に設定したのと同じ機能。
オブジェクト内の渡せる商品が1つだけの場合は MENUの値に関わらず、その一つだけを、フォルダを作らずに渡します。
<HGユーザーへの対応>
HG_OK=TRUE では、JOG外からのHyper-Gridユーザーにも商品を頒布します。ただし PRICE > 0 では SIMのマネーサーバーの設定によってはHGユーザーがJPを所持せず、購入できない場合があります。このようなSIMで PRICE>0 の場合には HG_OK=FALSE を設定してください。
HG_OK=FALSE では PRICE の値に関わらず(無料の場合も含めて)HGユーザーには販売しません。
<オーナーへの通知>
NOTIFY=TRUE では取引の内容をオーナーにIMで通知します。
NOTIFY=FALSE では通知しません。
有料(PRICE>0)の場合、マネーサーバーに記録が残るのでIMによる通知は必要ないでしょう。無料(PRICE=0)の場合、マネーサーバーを通過せず、記録が残らないので、必要ならば NOTIFY=TRUE に設定してください。
<マネーサーバーとの関係>
無料(PRICE=0)の場合、商品の「購入」ではなくタッチによる受け渡しとなります。マネーサーバーへの接続の有無や設定のいかんに関わらず、 HG_OK の値で HGユーザーへの対応が決まります。
有料(PRICE>0)の場合、マネーサーバーに接続していないSIMではアバターの所持金が常に0なので、誰も購入できなくなります。
DejimaリージョンなどマネーサーバーがHGユーザーに対応しているSIMの場合、HGユーザーに販売するかどうかは HG_OK 変数の設定によって決まります。
マネーサーバーに接続しているSIMでも HGユーザーの所持金が 0になる設定の場合(JOGセンターSIM群の多くがこの設定になっています)、たとえ HG_OK=TRUE としていても HGユーザーは購入できません。このようなSIMで有料(PRICE>0)設定するのであれば、HG_OK=FALSE と設定してください。
(初稿:7 Dec 2018, 15:15)
No comments - Edit - Delete
JOG配布OpenSimを更新
JOG公式配布 opensim-0.9.0.1-jog_r02 がリリースされています。自前またはVPSでJOGに接続しているSIMを、これに更新する方法について記します。新規にJOG接続SIMを作る場合は JOGサポートサイトのチュートリアルをご覧ください。旧の OpenSim-0.9.0Dev などで接続、運用しているものとします。更新前に現在のリージョンを OARでバックアップしておくと良いでしょう。
Shinobar World Downloadのページから、JOG公式配布 opensim-0.9.0.1-jog_r02 あるいは opensim-0.9.1.1forJOG.tar.gz (opensim公式 0.9.1.1 releasをベースにJOG用に調整したもの)をダウンロードします。これを現在運用中のディエレクトリ、たとえば /opt/opensim などで展開します。
旧の OpenSim-0.9.0Dev などの bin/OpenSim.db および bin/Regions/Regions.ini の2つを新しい opensim-0.9.0.1-jog_r02 の同じ場所にコピーします。これだけです。
私の場合は OpenSim-0.9.0Dev を指し示すシンボリックリンクを opensim-0.9 として置いているので、それを 新しい opensim-0.9.0.1-jog_r02 に向けます。/opt/opensimに入って
ln -sf opensim-0.9.0.1-jog_r02 opensim-0.9
bin/OpenSim.ini はJOG配布のものをそのままにすることをお奨めします。複数のSIMを動かすためにポートを変更している場合は、OpenSim.ini 中の512行目あたり
; http_listener_port = 9000
を変更します。9010に変更するには
http_listener_port = 9010
行頭に「;」があるとコメントアウトとして無視されるので、取り除いてください。
(初稿:7 Dec 2018, 14:52)
No comments - Edit - Delete
opensim公式バイナリをJOGで
JOG公式配布 opensim-0.9.0.1-jog_r02 が2018年9月リリースされました。また、opensim公式 0.9.1.1 releasをベースにした opensim-0.9.1.1forJOG.tar.gz も併せて Shinobar World Downloadのページで公開しています。自宅あるいはVPSからJOGに接続するためにJOGが配布しているバイナリは、(執筆時には) OpenSim-0.9.0Dev です。
最近のバージョンの mono でこの OpenSim-0.9.0Dev バイナリが動かないということで、opensim本家が公式配布の opensim-0.9.0.1 Release を使ってJOGに接続するためのスクリプトを以下に掲げます。OSはLinux限定です。(FreeBSDでも動くかも?)
このスクリプトは過去にJOGのフォーラムで公開したものですが、シェルのバージョンにより動作しないことがあったものを修正しました。
旧のOpenSimがあるフォルダを例えば /opt/opensim/OpenSim0.9.0Dev-jog とします。
opensim本家配布の opensim-*.tar.gz を /opt/opesim 内に置き、ここで展開します。
展開されたものを例えば/opt/opensim/opensim-0.9.0.1-jog と名前を変更します。
(OSG配布のzipの場合はフォルダ /opt/opensim・opensim-0.9.1-06-jog などを作り、そこで opensim*.zipを展開します。)
次のスクリプトをを実行します。SRCとDESTは環境に合わせてください。
(2018-09-20 修正)
#!/bin/sh
SRC=/opt/opensim/OpenSim-0.9.0Dev-jog
DEST=/opt/opensim/opensim-0.9.0.1-jog
COMMON="Y"
JOG="Y" ;# "Y" or ""
if [ ! -d $SRC/bin ]; then
echo "'$SRC/bin' not found."
exit 1
fi
if [ ! -d $DEST/bin ]; then
echo "'$DEST/bin' not found."
exit 1
fi
# common stuf
if [ -n "$COMMON" ]; then
cp -vf $SRC/bin/*.db $SRC/bin/OpenSim.ini $DEST/bin
#cp -vf $SRC/bin/OpenSim.exe.config $DEST/bin
cp -vf $SRC/bin/Regions/*.ini $DEST/bin/Regions
cp -vf $SRC/bin/config-include/*Common.ini $DEST/bin/config-include
else echo "Copying common stuff skipped."
fi
# JOG stuff
if [ -n "$JOG" ]; then
cp -vf $SRC/bin/AForge.Math.dll $DEST/bin
cp -vf $SRC/bin/Messaging.NSLMuteList.dll $DEST/bin
#cp -vf $SRC/bin/OpenSim.Modules.Currency.dll $DEST/bin
cp -vf $SRC/bin/OpenSimProfile.Modules.dll $DEST/bin
cp -vf $SRC/bin/OpenSimSearch.Modules.dll $DEST/bin
cp -vf $SRC/bin/SimpleFluidSolverWind.dll $DEST/bin
cp -vf $SRC/bin/config-include/FlotsamCache.ini $DEST/bin/config-include
cp -vf $SRC/bin/config-include/GridCommon.ini $DEST/bin/config-include
cp -vf $SRC/bin/config-include/GridHypergrid.ini $DEST/bin/config-include
else echo "Copying JOG stuff skipped."
fi
#chown opensim.opensim -R $DEST
echo "Files copied."
上記をカットアンドペーストすると1行おきに空白は入りますが、動作に影響はありません。実行属性を付けてお使いください。
いちおうスクリプトを圧縮した updatesim.zip も用意しました。ダウンロードしてどこか適当な場所で展開してください。SRC=..., DEST=... のところを書き換えたのち、仮想端末上で次のコマンドを打ってください。
sh updatesim
0.9.0Devに同梱の OpenSim.Modules.Currency.dll は 0.9.0.1などで使うとエラーとなります。無くても大きな不都合はないのでコメントアウトしています。
これで立ち上げたSIMでアバターのプローフィールは表示されますが、編集書き込みはできません。
なお、bin/config-include/GridHypergrid.ini は一部変更したほうがいいかもしれません。JOGフォーラムの記事をご覧ください。
また osslをめぐる設定について 本ブログの記事を参考にしてください。
(初稿:17 Sep 2018, 9:43)
No comments - Edit - Delete
opensimworldに登録
ハイパーグリッド、すなわちグリッドを越えてOpensimの世界を探索するのに便利なサイトがあります。
さまざまな島、リージョンが紹介されています。ここに私の島も登録してみました。
https://opensimworld.com/hop/80533-Canyon
登録したのは JOG内の Canyonリージョンです。JOGでなくて自前グリッドでも登録することができます。すべて無料です。
登録には3つのステップを踏む必要があります。
ステップ1
opensimworldにアカウントを作る。
ホームページ右上隅の Sign Up をクリック。登録画面でユーザー名とパスワード、メールアドレスを入れますが、私が嵌ったのは、まだその下に「I accept the terms of use」「私はロボットではありません」の2つにチェックを入れないといけないこと。
ステップ2
作ったアカウントでログインできたら、ホームページにある +Add your region をクリックして、リージョンを登録します。
グリッド名は JOGの場合リストアップされてないので、Otherを選んで Grid address に jogrid.net:8002 を入力します。あるいは自前グリッドのログインURL。続いてリージョン名。Short Description: リージョンの簡単な紹介を英文で。またカテゴリを選びます。Region Rating: は JOGの場合、標準の Generalです。
以上を入力し Save Region をクリックすれば登録完了。
ステップ3
登録されると、赤い帯の中にBeacon Key for this regionが表示されます。
ステップの3は、opensimworldのビーコンをリージョンに設置し、このキーを入れて有効化することです。ビーコンはリージョンが生きていることや、訪問しているアバターの数を調べます。SLでのスリンクに似たシステムですね。
インワールドで hypergrid.org:8002:OpenSimWorld を訪問し、ビーコンをコピー。登録した自分のリージョンに戻って、そのビーコンをRezします。Rezしたビーコンをタッチし、ダイアログにさきほどのキーを入力します。
SSの表示など
新しく登録したリージョンはホームページから Regions → Latest タブにリストアップされているはず。画像はまだ付けられていないはず。これをクリックすると、Region Detailsのページとなります。そこで Photos のタブを開くと、スナップショットなど画像をドラッグ・アンド・ドロップでアップロードできます。
(初稿:9 Sep 2018, 21:34)
No comments - Edit - Delete