2007年07月30日

ローテーションが…

タイマーイベントとローテーションを使って、オブジェクトを回転させようとしているのですが、スムーズに回転しません。とてもかくかくした動きになります。どうしてでしょうか?
編集するときの選択状態ではスムーズに回転するんですが、選択を解除するとかくかくに戻ります。
どうすればいいか教えてください。


同じカテゴリー(スクリプト関連)の記事画像
オブジェクトのリンクとタッチで開く扉
自動チャットを止めたい
テレポートするとアニメーションが解除される
同じカテゴリー(スクリプト関連)の記事
 テクスチェンジの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 metabirds SLMaMe  at 17:41 │Comments(5)スクリプト関連

この記事へのコメント
スクリプトでrotationをセットするというのは
そこまでぐるっとまわしていくのではなく、その角度にパッと置きなおすということになります。
なのでtimer+rotationではどんなに細かく動かしたとしても厳密にはパラパラマンガのようなものでカクカクした動きの連続でしかありません。
ものすごく細かくすれば多少スムーズに見えるかもしれませんが。

用途が見えないので何とも言えませんが
単にくるくる回したいだけならllTargetOmega()を使う方がいいでしょう。
Posted by at 2007年07月30日 18:49
コメントありがとうございます。(名前がないようなので…)

他のオブジェクトと同期を取りたいので、llTargetOmega() では無理でして…
くるくる回る棒の先にオブジェクトがついていて、一緒に回るイメージにしたいのです。
が、距離が離れているため、リンクできないので、双方を同期しつつのスクリプトを作る必要性があるんです。

なにかいい方法があれば、教えていただければ助かります。
Posted by なるじぃ at 2007年07月30日 19:37
リンクできない距離だと、同期してても同時に見れない気もしますがw
(中間に透明オブジェクトをかましてもリンクできない距離なのかしら)

単純な同期なら、時刻(秒数など)を取得して、
回転角を計算すればどうでしょうか。
Posted by 綾織トモエ at 2007年07月31日 01:18
>綾織トモエさん、コメントありがとうございます。

オブジェクト同士をリンクさせられる距離に限界があるようで、いろいろ試してみたけれどリンクできませんでした。
そこで秒数を取得して、個別に回転運動をさせようとしたところ、「かくかく」とした動きになるんです。

また、いろいろ調査してみます。いい方法が見つかったら、ご報告させていただきます。ありがとうございました。
Posted by なるじぃ at 2007年07月31日 17:11
回転や平行移動ということなら、他にもテクスチャーアニメを用意するという方法もありますよ。

スライドドアなんかはllSetPos();を使うのが定番ですが。
複雑な動きをする、たとえばエレベータのドアのような複合スライド型のものは、2枚のオブジェクトを動かそうとするとカクカクとした動きになり非常に重くまた動き自体に現実感がありません。

厳密なタイミングを取ってという話してあればむしろ、テクスチャーアニメで作るほうがラクですよ

ただ、テクスチャーアニメは面ごとに設定できますが、
面ごとに操作することは出来ないので
ALL_SIDESで動かすことになります

コレを応用して、両面を互いに開く⇔閉じるというテクスチャを用意すると、非常に軽いスライドドアが出来ます。

物理系関数ばかりが移動や回転の手段ではないということに注意です。
Posted by すくりぷたーX at 2007年08月23日 00:19
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。