ソラマメブログ
QRコード
QRCODE
アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 2人
オーナーへメッセージ

2007年07月23日

マンタの円運動(1)

羽ばたくマンタが一定の円周上を旋回するスクリプトですが、多分以下の3通りの方法が考えられると思います。
1.リンクした親プリムをllTargetOmegaで回転させる方法。
 円の中心点に回転する親プリムを置き、マンタを子プリムとしてリンクさせる方法。
 回転体を作る場合、もっとも簡単でかつ美しく回転する方法と言える。(効率も良いらしい)
2.マンタ本体をllSetPos()やllSetRot()を使って、単独で自由に動き回る方法。
 元々はこの方式をメインに考えていました。
 ただllSetPosは直線移動になっています。単独で円周上を動かすには、三角関数の知識が必要
 です。それに単に位置を移動させるだけでは無く、常に円周上の接線に正面が向くように補正し
 続けないといけません。けっこう面倒です。
 もう一つ問題が・・・llSetPosでは移動スピードが指定できません。従って円周上を移動するため
 の方向調整とスピードをコントロールする為にTimerイベントと連動させる必要があります。
3.物理オブジェクトにしてllMoveToTarget()等で動かす方法。
 物理オブジェクトはまだ勉強中で詳細は試していませんが、llMoveToTarget()の場合は、
 移動先と移動速度がパラメータで指定できます。llSetPosよりは優れていると思います。
 ただ、物理の場合特殊な制御が色々と必要なようです。可能であれば使わない方向で検討中
 です。

今回はまず1のllTargetOmegaの使用に関して補足しておきます。

 llTargetOmega(vector axis, float spinrate, float gain)
 vector axis:<X軸方向,Y軸方向,Z軸方向>の形式で、回転する方向を指定できる。
          <1.0,0.0,0.0>ならX軸方向に時計と逆周りで回転する。(-1.0なら時計周り)
 float spinrate:回転速度の指定で、値はラジアン/秒を示すそうだ。つまり1秒間にどれだけの
            角度を回転させるかを指定する事になる。
 gain:回転の強さを示す値です。物理オブジェクトの場合は、この値が関係して来るようですが、
     今回は0以外なら問題ないです。

llTargetOmegaを利用した場合、実にマンタは綺麗に旋回運動をします。非常に滑らかで一定のスピードで回遊します。
そしてスクリプトも実に簡単です。
親プリムに入れるスクリプトは

default {
state_entry(){
llTargetOmega<0.0, 0.0, 1.0>,0.1, 1.0);
}
}

こんな感じで良いのです。
実際にはタッチ・スタート、エンドやプリム間でのメッセージリンク等の制御も必要ですが、実にシンプルなスクリプトです。

問題は・・・
(1)リンクプリムの性格上、子プリムは親プリムからの距離に制約がある。
(2)単純な円運動しかできない(親プリムの回転速度や方向等での変化は可能)

実は、マンタは単純な円運動だけでは無く、もう少し複雑な動きをさせたいと思っていました。
また、将来商品化した場合、旋回運動する距離等もある程度ユーザが設定できるような仕組みにしたいと思っていました。その意味ではけっこうな制約事項になってしまうと思っています。

そこで最初は2の方式を中心にしていたのですが・・・これも実際には難しいと思います。
何故なら動きがカクカクしてしまい、llTargetOmegaのように美しく旋回しないのです。
詳しい話は次回でさせてもらいますが、ここで悩んでいる状態です。



同じカテゴリー(製作状況紹介)の記事画像
トンボ飛行機挑戦中。
スケート・ペンちゃん
リュウグウノツカイ
ハロウィンなんだよね~。。。
リュウグウノツカイ
クジラのSitsポーズ
同じカテゴリー(製作状況紹介)の記事
 トンボ飛行機挑戦中。 (2009-08-17 16:19)
 スケート・ペンちゃん (2008-11-14 21:52)
 リュウグウノツカイ (2008-10-07 23:53)
 ハロウィンなんだよね~。。。 (2008-09-28 22:50)
 リュウグウノツカイ (2008-09-11 22:43)
 クジラのSitsポーズ (2008-08-15 22:05)
Posted by Gonbe Shan at 13:38│Comments(0)製作状況紹介
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。