ソラマメブログ › しのバー › 2014年08月

  

Posted by at

2014年08月30日

島を作る

OSgridは相変わらずダウンしたままです。ローカルで遊んでます。船を作ってうろうろすると、大海原に丸っこい子島という景色が単純で、方角がさっぱり。そこで東西南北に島(SIM)を追加しました。

島の追加法はパピーリナックス(Puppy Linux)のページに書いています。
http://sakurapup.browserloadofcoolness.com/viewtopic.php?f=23&t=2711&p=20402#p20399

島の地形も Gimp で編集、 opensimサーバコマンドで高低の調整もできます。
http://sakurapup.browserloadofcoolness.com/viewtopic.php?f=23&t=2711&p=20402#p20402

島々の間から日の出が望める景観ができました。
Sunrise  
タグ :OSgrid


Posted by シノバー at 21:24Comments(0)OpenSIM

2014年08月22日

Vehicle は動く

OSgird がサーバーのトラブルで、しばらく停止しています。それでローカル(スタンドアロン)でテストを続けています。

さきに OSgridで乗り物が動かないと書きましたが、動きます。物理エンジンで llApplyImpulse 関数などが奇妙な振る舞いをするので、これらを組み合わせて動かすのは難しいということです。



フリーで配布されている ボート・スクリプトがこちらで入手できます。
http://www.free-lsl-scripts.com/cgi/freescripts.plx?ID=1020
これは vehicle 関数群を使っています。試してみると、いくつか問題は残るものの、いちおう動くようです。  


Posted by シノバー at 09:12Comments(0)乗り物

2014年08月16日

OSgridでの乗り物

OSgrid中では乗り物が動かないようです。動くとか動いたという情報もありますが、さだかでありません。

Secondlifeでパラグライダーなど数々の乗り物を作ったシノバー。OSgrid中での乗り物に挑戦してみました。やはり難しい。一部は動くが、一部は動きません。

OSgridで浮き輪を作ってみました。辛うじて動く感じです。



OSgridでのシミュレータはOpenSIMです。OpenSIMによる物理のシミュレーションがどうなのか、とにかく情報が無い。しかたないので手探りで、一つひとつを動作確認するしかありません。いまのところの状況をメモしておきます。

1. OpenSIMはバージョン0.8で物理エンジンが変更されている。
バージョン7.x の物理エンジンは OpenDynamicsEngine(ODE) だったが、8.xでは BulletSim が標準となっている。OpenSIM Wikiの情報はほとんどが ODEに関するもので、あてにできない。

2. 装着物に対して物理は効かない。
装着すると浮遊するとか飛び上がるなど、アイテムの装着によってアバターに力を及ぼすことはできないようです。

3. 同じスクリプトが別のオブジェクトでは異なる動作をする。
理由の一つはオブジェクトの質量(Mass)にあるらしい。いっぱんに質量が小さいと、比較的まともに動くが、質量が大きいと奇妙な挙動を示すことがある。
もうひとつはプリムの回転によってX軸の向きが変わることによる相違。たとえば浮遊(Buoyancy) によってプリムのX軸方向に妙な運動が起こる。

4. 動かない関数
物理関連で動かない関数はたくさんあるが、そのうちとくに気付いたもの。
llSetHoverHeight, llSetForce

5. 動作の怪しい関数
llSetBuoyancy
a) 1.0 をセットすると無重力になるはずだが、プリムX軸方向に 5m/s 程度の運動が起こる。 0.5 などの中間的な値を指定しても、この奇妙な運動は変わらない。
b) 0.0 をセットすると普通に重力が掛かるはずだが、オブジェクトの質量が小さいとき、たとえば 質量(Mass)が0.6 あたりで無重力状態が生じる。

追記 (2014-08-16)
この関数だけをテストしてみると、正常そうに見えます。スクリプトの他の部分と複合してるのかもしれません。llApplyImpulse の影響かも。

llApplyImpulse
だいたいは期待される動作だが、質量の大きいオブジェクトに小さな力を与えると反応せず、大き目の力を与えると、とんでもなく反応する。期待の100〜1000倍とかになったりする。
llRotLookAt
動作してるようだが、時定数 τの指定が効いているような、いないような。

追記(2014-08-17)
llApplyImpulse, llRotLookAt のどちらも、オブジェクトの質量が大きいと、それが反映するのに時間が掛かるとともに、いったん過反応した後にそれを修正する動作が起こり、結果、無用な振動が起きる。

llSetTimeEvent
タイマー割り込みがまったく発生しないことがときにある。スクリプトを一部変更して保存しなおすと直ったりする。

追記 (2014-08-29)
タイマーをセットしたまま llResetScript でスクリプトをリセットすると、その後タイマーをセットしても動かなくなります。リセットの前に llSetTimerEvent(0.0) でタイマーを停止する必要があります。 その他にも llResetScript を使うと不具合があるみたいですが、よく分かりません。

以上のテストは、パピーリナックス(Puppy Linux) 571JP 上で OpenSIM 8.0 + mono-2.10.8 スタンドアロンでローカル環境で行いました。動いたものを OSgrid(OpenSIM-0.8.1) 上に持っていくと、ほぼ同じ動きではあります。

安定して再現するとは限らず、上記テストもあまり正確ではないかもしれませんが、とりあえずのメモ。  


Posted by シノバー at 10:56Comments(0)乗り物

2014年08月13日

OSgridに支店

Photo
OpenSIMを自宅PC上で動かし、SIMを作りました。OSgridで公開中です。OSgridでのアカウントをお持ちの方は、世界地図で shinobar を検索してください。いまのところテスト中で、とりあえず初期状態の島を作ったところ。今後どう運用するかは、これから。

OpenSIMを動かしているのは自宅PCのパピーリナックス(Puppy Linux)上です。「パピーでOpenSIM」の記事はこちら

Secondlife内のシノバーはいままでどおりオープンしています。
http://maps.secondlife.com/secondlife/Cloverfield/161/230/22  


Posted by シノバー at 20:08Comments(0)OpenSIM