2007年12月29日
パーツズレの結論
ナポレオンフィッシュのリンクパーツがズレてしまう現象だが、その後の追加確認で以下のような結論に達した。
<現象>
llMoveToTargetで移動している状態で、同時に2つのパーツがSculptedアニメで動いている場合に、リンクされた子プリムの位置がズレてくる。
ズレるのは、Sculptedパーツだけでは無く、リンクされている通常プリムのパーツも同様にズレる。
ズレは非常に少しづつズレて行くようで、時間の経過と共にズレは大きくなる。
ズレる方向は一定しており、空中よりも水中の方が著しくズレる。水中では1時間程度でズレを認識できるが、空中だと1日以上経過しないと認識できない。
1週間泳がせ続けた結果がコレ↓

あれから検証用に状態を変えた物で色々と試した。検証風景はコレ↓

その結果は以下のようになった。
<検証>
1.サメやイッカク等llMoveToTarget移動時に本体が同時にSculptedアニメで動いていても発生していない。
2.ナポレオンフィッシュで胸鰭の動きを止めて泳がせた場合にもズレは発生しない。
3.同様に尾びれの動きを止め、胸鰭だけ動かしてもズレは発生しない。
4.胸鰭と尾びれを同時に動かしても、llMoveToTargetを止めて動かないようにした場合はズレは発生しない。(物理属性でも)
5.胸鰭と尾びれがSculptedアニメで動き、目玉とか他のパーツには動くスクリプトが存在しないカクレクマノミでも同様の現象が発生した。
6.非物理のまま胸鰭と尾びれを動かしながらllSetPosで移動させ続けてもズレ無い。
7.X軸方向のみ往復させた場合、ズレは発生するが程度は小さい。(空中と同程度かそれ以下)
8.Y軸方向のみ往復させた場合、ズレの程度は大きく、短時間でズレが確認できる。
9.各子プリム・パーツに10分間隔で相対位置をチェックし、規定位置からズレて居た場合、元に戻すスクリプトを入れるとズレは補正され、ズレた状態にはならなくなる。
<結論>
llMoveToTargetで移動している状態で、同時に2つのパーツがSculptedアニメで動いている場合に発生する。
ズレは水中でY軸方向への移動時に著しく発生し、X軸方向への移動及び空中での移動時にはズレは少ない。
ただし、何故このような状態の時に、リンクプリムの位置がズレるのか?と言う事は分からない。
この辺はリンデン社に問い合わせるべきなのだろうか?
と言う事で、非常に限られた条件で発生するようなので、一般的には認識されていない現象と思う。
で対処としては、ズレが一気にズレるのでは無く、徐々にズレて行くことから、適当な時間毎に、リンクプリムの相対位置をチェックして、ズレが認められたら、強制的に補正する事にで解決できる。
まあ、こんな所でしょう。
このようなオブジェクトを作る人は、他には居ないと思うのだが、仮に上記条件に該当するようなオブジェクトを作った場合は、ズレるので気をつけましょう。
<現象>
llMoveToTargetで移動している状態で、同時に2つのパーツがSculptedアニメで動いている場合に、リンクされた子プリムの位置がズレてくる。
ズレるのは、Sculptedパーツだけでは無く、リンクされている通常プリムのパーツも同様にズレる。
ズレは非常に少しづつズレて行くようで、時間の経過と共にズレは大きくなる。
ズレる方向は一定しており、空中よりも水中の方が著しくズレる。水中では1時間程度でズレを認識できるが、空中だと1日以上経過しないと認識できない。
1週間泳がせ続けた結果がコレ↓

あれから検証用に状態を変えた物で色々と試した。検証風景はコレ↓

その結果は以下のようになった。
<検証>
1.サメやイッカク等llMoveToTarget移動時に本体が同時にSculptedアニメで動いていても発生していない。
2.ナポレオンフィッシュで胸鰭の動きを止めて泳がせた場合にもズレは発生しない。
3.同様に尾びれの動きを止め、胸鰭だけ動かしてもズレは発生しない。
4.胸鰭と尾びれを同時に動かしても、llMoveToTargetを止めて動かないようにした場合はズレは発生しない。(物理属性でも)
5.胸鰭と尾びれがSculptedアニメで動き、目玉とか他のパーツには動くスクリプトが存在しないカクレクマノミでも同様の現象が発生した。
6.非物理のまま胸鰭と尾びれを動かしながらllSetPosで移動させ続けてもズレ無い。
7.X軸方向のみ往復させた場合、ズレは発生するが程度は小さい。(空中と同程度かそれ以下)
8.Y軸方向のみ往復させた場合、ズレの程度は大きく、短時間でズレが確認できる。
9.各子プリム・パーツに10分間隔で相対位置をチェックし、規定位置からズレて居た場合、元に戻すスクリプトを入れるとズレは補正され、ズレた状態にはならなくなる。
<結論>
llMoveToTargetで移動している状態で、同時に2つのパーツがSculptedアニメで動いている場合に発生する。
ズレは水中でY軸方向への移動時に著しく発生し、X軸方向への移動及び空中での移動時にはズレは少ない。
ただし、何故このような状態の時に、リンクプリムの位置がズレるのか?と言う事は分からない。
この辺はリンデン社に問い合わせるべきなのだろうか?
と言う事で、非常に限られた条件で発生するようなので、一般的には認識されていない現象と思う。
で対処としては、ズレが一気にズレるのでは無く、徐々にズレて行くことから、適当な時間毎に、リンクプリムの相対位置をチェックして、ズレが認められたら、強制的に補正する事にで解決できる。
まあ、こんな所でしょう。
このようなオブジェクトを作る人は、他には居ないと思うのだが、仮に上記条件に該当するようなオブジェクトを作った場合は、ズレるので気をつけましょう。
llDetectedTouchST
llAddToLandPassList
【注意】Bulk Permissions機能は使っては駄目!
HTTP-INを使ってみた。
オブジェクトへの指示
ペットを作るには(6)
llAddToLandPassList
【注意】Bulk Permissions機能は使っては駄目!
HTTP-INを使ってみた。
オブジェクトへの指示
ペットを作るには(6)
Posted by Gonbe Shan at 13:32│Comments(0)
│スクリプトのお勉強メモ