FireStorm Viewer のビルド & サイズ制限解除(1024mまでok,メッシュも)

前回、OSgrid(OpenSim)にインポートしたメッシュオブジェクトの東京スカイツリー(244m)をLSLスクリプトでなんとか643mにしましたが、今回スケールが250mオーバーのMESH対応のViewerをFireStorm Viewerを改造しビルドして1024mまで拡大できるようにしました。(これでどんなものでも、ほぼ好きに拡大できます。)

まず、FireStorm Viewerのソースコードとそれをコンパイルする環境が必要です。
こちらを参考に必要なソフトウエア
http://www.metaverse.jp.net/reports/recompile-of-sl-viewer/needed-software/
FireStorm Viewer のビルド環境の構築
http://www.metaverse.jp.net/reports/recompile-of-sl-viewer/firestorm/

・FireStorm の fmod(オーディオ関係のライブラリ)関連は手当しなくてもエラーしなかったので何もせず。ですのでオーディオがもしかして鳴らないかも。
・QuickTime SDKは入れなかったけどエラーしなかったので何もせず。
(もしかして、既に入れていたかも)で、ビルドバージョンは、4.3.1.32323ができました。
1024mまで拡大できます。無論secondlifeでは通用しませんが・・
opensim系で巨大建造物を作る方で欲しい方はこちらからダウンロードできます。
http://dip.picolix.jp/free/soft/firestorm-bin.zip
回答して、FireStorm ViewerのFirestorm-Release.exeにあるフォルダーにコピーして下さい。firestorm-bin.exeを実行すると、初期設定の後、普通に使えます。

改修内容:
C:tempttphoenix-firestorm-lgplindrallmathxform.h

元:
const F32 SL_DEFAULT_MAX_PRIM_SCALE = 64.f;
const F32 SL_DEFAULT_MAX_PRIM_SCALE_NO_MESH = 10.f;
const F32 OS_DEFAULT_MAX_PRIM_SCALE = 256.f;

修正:
const F32 SL_DEFAULT_MAX_PRIM_SCALE = 1024.f;
const F32 SL_DEFAULT_MAX_PRIM_SCALE_NO_MESH = 1024.f;
const F32 OS_DEFAULT_MAX_PRIM_SCALE = 1024.f;

↓REZ直後(左側のオブジェクト)

↓643mに拡大できます(目盛が800m以上あります。通常版は240mぐらいまで)

OSgirdのログイン&テレポートチェッカーを作ってみた

LibOpenMetaverseで、OSgirdのログイン&テレポートチェッカーlogininfo.exeを作ってみた
この前、OSGridの予期しないリスタートで、それにたまたま気が付いて、自プロセスも再スタートさせましたが、
もし気が付かなかったら、OSGridの中心街(10000,10000)に近いこともあり、場所を他の人にとられることもあります。
(その後気づいたのですが、MANIAXXのOSG48からもリスタート連絡が来ていました。ありがとうございます。)

logininfo.exeは、logintime.txt(テレポート時間とSIM名が記載)を生成するので、この内容を見て一定時間ログインできてなかったらメールするなり、プロセスを再起動するなりのスクリプトを作成すればいいかと思います。
(また、後ほど作成する予定)

[logininfo.exe] ダウンロードはこちら
1.OpenSim.exeのある場所にコピーする。
2.起動方法:
【Windows】
1) OpenSim.exeのある場所に移動。
2) logininfo.exe firstname secondname password “simname/128/128/40” “http://login.osgrid.org”
を実行。成功した場合、戻り値0が返ります。また同フォルダーにlogintime.txt(テレポート時間とSIM名が記載)を生成。
戻り値:
0:成功
1:失敗(ログインタイムアウト)
2:ログインできたものの該当SIMに行けず
3:失敗(その他の例外エラー)

C:projetcsopensim>logininfo.exe xxxx xxxxx xxxxxxx “aska/128/128/40” “http://login.osgrid.org”
Login:…xxxx xxxxx
Login success Welcome to OSGrid…
Teleported [aska]
Logout:…
C:projetcsopensim>echo %ERRORLEVEL%
0
C:projetcsopensim>type logintime.txt
2013/02/09 22:11:47
aska

C:projetcsopensim>logininfo.exe xxxx xxxxx xxxxxxx “1aska/128/128/40” “http://login.osgrid.org”
Login:…xxxx xxxxx
Login success Welcome to OSGrid…
Cannot teleport [1aska] now [Lbsa Plaza]
Logout:…

C:projetcsopensim>echo %ERRORLEVEL%
2

3) Windowsのタスクスケジュールにセットするときは、
タスクスケジュールを起動してスケジュールを登録します。15分置きの場合。

引数の追加(オプション)には、firstname secondname password “simname/128/128/40” “http://login.osgrid.org”
をセット。
開始(オプション)には、OpenSim.exeがあるディレクトリーをセット

成功すれば15分置きに、OpenSim.exeがあるディレクトリーにlogintime.txtが生成されます。

【Linux】
1) OpenSim.exeのある場所に移動。
2) /usr/local/bin/mono logininfo.exe firstname secondname password “simname/128/128/40” “http://login.osgrid.org”
を実行。戻り値等、windowsと同様です。

[root@www8054ue opensim]# /usr/local/bin/mono logininfo.exe xxxx xxxxx xxxxxxx “aska/128/128/40” “http://login.osgrid.org”
Login:…xxxx xxxxx
Login success Welcome to OSGrid…
Teleported [aska]
Logout:…
[root@www8054ue opensim]# echo $?
0

[root@www8054ue opensim]# /usr/local/bin/mono logininfo.exe xxxx xxxxx xxxxxxx “1aska/128/128/40” “http://login.osgrid.org”
Login:…xxxx xxxxx
Login success Welcome to OSGrid…
Cannot teleport [1aska] now [Lbsa Plaza]
Logout:…
[root@www8054ue opensim]# echo $?
2

LinuxnのCRONにセットするとき、
このまま、セットすると場合によってプロセスが残ったままになります。一応、タイムアウトで必ず終了するように作ってあるのですが、どういうわけか,終了しない場合があるので、以下のperlスクリプトで必ず終了するようにします。 osgrid_login.plをCRONにセットすればOKです。

[osgrid_login.pl]

#!/usr/bin/perl
chdir “/projects/opensim/”;

$cmd = ‘/usr/local/bin/mono logininfo.exe firstname secondname password “simname/128/128/40” “http://login.osgrid.org”‘;

$cmd_flg = 1;
eval{
local $SIG{ALRM} = sub {
$cmd_flg = -1; #error
die “alarmn”;
};
alarm(100);
$pid = fork;
if ($pid == 0) {
exec($cmd);
#$result = `$cmd`;
#print $? . “n”;
#print $result;
}else{
wait;
}
alarm(0);
};
if($cmd_flg == -1){
kill(9,$pid);
print “Time outn”;
wait;
}

execコマンドに修正(2/10)

肺のCTスキャン撮ってきました。

健康診断で肺に影があるということで、CTスキャン検査(2度目のCTスキャン)を受けてきました。
前回と変わらず、左下に5mm程の丸いものが・・・(大きくはなってないようです。)
で、先生曰くどうしますか?
え?
間をあけてCTスキャンを撮るか、またはFDG-PETのCTスキャンを撮るか?FDG-PETではより正確な判断ができるとのこと。良性か悪性なのか。
では、お願いしますということで、今行ってる病院では設備がないので紹介状を頂いて来週行ってくることに。しかし、このFDG-PET検査3万円もします。

画像・Viewerが入ったDVDを頂いた。診断時の説明の時、先生は5mmぐらいっていってたので、
実際このツールで診断の時に見た画像まで動かして図ってみると5mmぐらいでした。

OpenSim OSGrid(aska SIM) 東京スカイツリー 634m メッシュオブジェクト

前回、2011年9月23日に作成途中だった東京スカイツリーで当初プリムで作成しようとしましたが、630mの壁に途中であきらめ放棄&削除しましたが、
https://www.picolix.jp/blog/osgrid-secondlife/668/
https://www.picolix.jp/blog/osgrid-secondlife/820/
今回、Ikushima’s Works のshigeki iさんがGoogle SketchUpで作られたTOKYO SKY TREEの3DデータをOpenSim OSGrid(aska SIM)にインポートしました。(shigeki iさんに
利用許可確認中。利用許可頂きました。ありがとうございます。!2/2)

・Viewer: Phoenix_Firestorm-Release_4-3-1-31155
・Google SketchUp 8 (プラグイン:OBJexporter.rb)
・blender-2.65a

まず、Google SketchUpで、TOKYO SKY TREE.skp(底面の写真台は削除)を読み込み、
TOKYO SKY TREE.objに変換。
blenderで、TOKYO SKY TREE.objを読み込みTOKYO SKY TREE.daeに変換。
これで、FirestormからOpenSimにmeshでUPLOADできます。描画詳細細度は、
「最低」を選択。三角の数は2480,頂点は2820
「高」三角の数66976,頂点66131にしてUPLOADするとこにした。
スケールはなぜか0.143倍ってなるので、x1にしようとしても修正できず。
小さいものならx1でできますが、まあ、オリジナル600mオーバーなオブジェクトなのでサイズ制限ががあるものと思われるが、ここでは深く考えていなかった。まあ、なんとかなるさと。
ウエイト計算&UPLOADで待つこと
10分 2分、イベントリーにオブジェクトが出来たー

*「高」でも「最低」でも結局プリム数換算で373個で一緒だった。(2/2)

さてREZですが、回りに迷惑をかけたらだめなので、ここは実験島のaska XIIで行うことに。
REZすると遠くの方にREZされました。(オリジナルの視点ポイントが遠かったためかな)
周りのSIMがある場合は、隣接SIMに入り込みます><で、中央に持ってきて、サイズ変更することに。
が、スケールが250mまでしか動かない・・ということで全長約240mの東京スカイツリーになってしまった。1/3モデルですね。

これをなんとか630mにするには・・・

1)スケールが250mオーバーのMESH対応のViewerを探す
このようなものはありませんでした><

   (追記) 2/12にFireStorm Viewerを改造し、1024mまで拡大できるようにした。
   https://www.picolix.jp/blog/2013/02/firestorm-viewer-1024mok.html

2)最悪、3分割してそれぞれ200mに拡大させて合体させる
リンク解除して再リンクしてみるもうまくいかず。
meshサイズ64mの壁もあるみたい。

3)LSLでスクリプト組んでx2.64倍して634mにする。
千尋 (Chihiro Owatatsumi)さんの
http://shop-chihiro.blogspot.jp/2010/05/blog-post_27.html
のスクリプトを借用してやってみた。

各部サイズは、それぞれ2.64倍になるものの位置情報がおかしく、中央に集まった感じになる。
meshで256mオーバーのものはだめなのかなーと思って諦めようと思ったけど、
もう一度、たまたま[サイズ変更]ボタンを押してみたところ、何mかズレた。で連続して押すと、なんと整列していくではないですか。このスクリプトでこのようになぜ動作するかは 不明・・・
結局、↓にあるように643mの東京スカイツリーができました。