2008年10月17日

リンクプリムがずれる。

ローテーションスクリプトでリンクしたオブジェクトをグルグル回していると、はじめのうちは正常ですが、何日か放置していると、一部の子プリムの角度がわずかに変わってしまいます。
角度は切りの良い数値を入力しているはずなのに、いつも0.05くらい角度が変わってしまいます。
親のプリムはズレないので気がつかなかったのですが、同じような経験をされた方はいらっしゃいますでしょうか?


同じカテゴリー(スクリプト関連)の記事画像
オブジェクトのリンクとタッチで開く扉
自動チャットを止めたい
テレポートするとアニメーションが解除される
同じカテゴリー(スクリプト関連)の記事
 テクスチェンジのHUDについて (2015-07-01 04:51)
 モール用のプリムカウンターを探しています (2014-11-29 20:09)
 連続するアニメーションの処理 (2014-08-24 03:23)
 オブジェクトの上にフローティングテキストを出す。 (2014-08-22 16:46)
 チャットログの盗聴について (2014-02-03 03:43)
 椅子に座った後で位置調整できるスクリプト (2013-03-24 16:37)

Posted by flowerpp  at 17:07 │Comments(3)スクリプト関連

この記事へのコメント
こんにちは。

毎回同じように角度が変わるとのことですが、float型の計算誤差の積み重ねで角度がずれてしまっていると言うことはないでしょうか。
角度の計算手順によっては、誤差がどんどん積み重なってしまうということが考えられます。
ただ、実際にどういう処理をされているのかこちらで分からないため、誤差の積み重なりが原因なのかどうかは何ともいえません。



ちなみに、Havok1の頃には、子プリムの角度や位置が(徐々に)ずれてしまうと言うような不具合がありましたが、それはHavok4で修正された、となっています。

http://jira.secondlife.com/browse/SVC-88
Posted by Hidenori Glushenko at 2008年10月18日 11:32
私もHidenori Glushennkoさんと同様に想像します。
回転を続けるオブジェクトのようですが、もし「角度」があらかじめ決まっているなら、別のところで前もって(エクセルなどで)計算しておき、スクリプトには計算結果を定数として与えるという手が考えられると思います。

こうすれば誤差がだんだん蓄積されていくという現象も回避できるはずですし、三角関数などの重い計算をさせなくて済むのでSIMへの負担が軽減されるというメリットもあります。

もちろん、コメントなど工夫して書いておかないと後で見直す時に意味不明になりますし、角度が不定ならこの手は適用困難になりますが……。
Posted by YooYoo at 2008年10月18日 18:05
コメントいただきましてありがとうございました。
誤差の可能性があるのですね。
もう少し単純にしてみていろいろ試してみようと思います。
ありがとうございました(^_^
Posted by flowerppflowerpp at 2008年10月20日 09:50
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。