2009年03月28日
飛行機を作る

かなり久しぶりに Gnubie Store の紹介。だいぶ前に引っ越して今の位置になりました。SLURLはここ(なんと、あらためて見てみると、サンサラ大陸にありました><)
SL始めてすぐの頃お世話になるところです^^ フリーの家や服やいろいろなものがそろっています。

で、なんでまた紹介するかというと、TERRA さんの無料の飛行機関連のものがあるからなのですね^^ 勿論スクリプトも自由に見れて、変更できます。特に一番左の二つ、マジックカーペットと飛行機は乗り物作りの入門用としてオススメです。

かなり昔に組み立てたことがあるのですが、久しぶりに箱あけたw プラモデルと一緒だね^^
箱から出して、地面に全部並べてみます。他には、説明書と、ルートプリム(操縦席)と乗客席のスクリプトが入っています。

適当にくっつけてから、位置を正確にあわせていきます。

細かい位置関係は、悩んだら、図が付いているので、照らし合わせてみます。というか、ほんとは自由でいいんだけどね。細かいこというと、水平尾翼と垂直尾翼の位置関係とか、ゼロ戦の主翼は実は反っているとか、いろいろあります^^ 板一枚でも飛行機になるけど>< まあこんなもんかなということで、組み立ててください。

操縦席とセカンドシートのスクリプト以外にも、プロペラの円盤のところにもスクリプトが入ってたりします。

昔は、悩みながら組み立てたけど、今は1分で組み立てられるw 色もグレーから白に変え、輝きも中にしました。

で、この前飛んだ、ルート2を飛んでみました。今回の狙いは、飛行機の操作性について検証したかったからです。テラさんのフリーの飛行機のスクリプトの操作性を見てみたかったのです。結論から言うと、少し操作しにくい>< でも、どっちかというと許容範囲。スピードとしては、40%以上で飛べるので、40%なら12m毎秒くらいです。少し速いけどまあ遊覧できるスピードです。うーーん、テラさんのスクリプト見てみたけど、かなり最近スクリプトいじってないので、忘れてるけど>< 間違ってるかもしれないけど、最高速30M毎秒で、25ノット(約12m毎秒)以上で、無重力になる設定みたいです。だから thrustMultiplier の値を3ではなく2.4とかに変えれば最高速が24m毎秒になるのかな。(追記 thrustMultiplier は整数の設定なので小数にできません>< 時間できたらいろいろ試してみます><) cruiseSpeed も25でなくて12とかにすると6m毎秒以上で飛べるのかな。って、いつもは検証してから書くんだけど、今回フライング>< まちがってたらごめんなさい>< ノットに直して使ってるのと、浮く力の最高値が 0.977 使ってたりで、細かいところはよくわかんない><
でも、一番気になったのは視点です。SetCameraEyeOffset で、カメラのルートプリムに対する位置と、SetCameraAtOffset で、ルートプリムに対する見る方向を設定するのですが、後のほうのZの値がカメラ位置よりあがっています。どういうことかというと、常に上に向かって見るということになります。大空に向かって飛び立つんだからそれでもいい感じがしますが、低空飛行には向いていません。遊覧飛行する場合、下の景色を見たりしたいので、この視点を下げる必要があります。勿論大空を常に飛んでいて上昇指向の強い方は^^ このままの設定でかまいません。わたしは、どちらかというと常に地面を気にしてたりするので、視点を下げています。また、そのほうが水平を保つのも無理がありません。あとは、好みの問題にもなりますが。旋回するとき、X軸の回転が大きすぎて急旋回するときバランスを崩しやすくなります。飛行機とはこういうもんだよというのであれば、そうなのかもしれません>< また、旋回するとき慣性がつきすぎて、いちいち細かく反対にいれないとなりません。まあこれはこういうもんだと、慣れれば、問題ないのですが。実は、わたしはこの感覚が好きなのですが、あるひとにいわれてかなり制限しちゃいました>< まあ、ひとそれぞれなとこもありますからね^^

この一枚上の写真がデフォルトの視点です。で、これがわたしの飛行機の視点です。
llSetCameraEyeOffset(<-5.0, 0.0, 2.0>);
llSetCameraAtOffset(<2.0, 0.0, 0.0>);
だまされたと思って操縦しにくいと思った人は、これに変えてみてください。勿論いろいろいじって自分にぴったりの値を決めてください。(x,y,z) の値は、いつか飛行機とかの乗り物の見方を書こうかとは思っているのですが、基本的にアバターが北側に向いたとき、飛行機は右、東側が先頭になります。Xの値も東、前方に対する値になります。つまり東に向かって前に進むことになります。Yの値は左右のずれになります。だから基本的にこれは0になります。Zの値は上下方向になります。このことを頭に入れて、いじってみてください。ここに回転が入ってくるとややこしくなります>< それはまたの機会にね^^

この前気になっていた飛行機を、ラグで落とされたので、見に行ってきました。なんとこれもテラさんのフリーの飛行機でした。やっぱフリーでスクリプトも公開してるんだからSLに対する貢献度大きいよね^^ テラさんに感謝m(_ _)m
<3月28日追記>
気になってた点、2ヶ所変更してみました。視点はきのう変更済み^^
まず、integer だった thrustMultiplier を、float thrustMultiplier = 2.4 に変更。これは2ヶ所出てくるので注意。10段階に切り替えてるスピードの基となる数になります。すなわち、3のとき30m毎秒が最高速。2.4にすれば24m毎秒が最高速になります。
次に無重力状態の変更。25だったものから float cruiseSpeed = 12.0 に変更。これはノットで計算しています。毎秒に直すときは約半分の値になります。これで、6m毎秒以上で飛べることになります。さっきのと合わせると、30%出力で7.2m毎秒になり、6m毎秒より上になるので飛べることになります。20%出力で4.8m毎秒になるので、これは徐々に落ちてきます。
この2点を変更するだけで、なんとメインランド遊覧用になりますよ>< うれぴぃ^^v
Posted by ねこねこ at 03:59│Comments(9)
│ものづくり
この記事へのコメント
すごいです~!
とても分かりやすくて勉強になりました^^
わたし ねこねこ学校の生徒になります!
とても分かりやすくて勉強になりました^^
わたし ねこねこ学校の生徒になります!
Posted by mizuki
at 2009年03月28日 12:18

mizuki さんありがとー^^
テラさんのスクリプトいじって調節したことないので、今度いじってみます><
テラさんのスクリプトいじって調節したことないので、今度いじってみます><
Posted by ねこねこ at 2009年03月28日 17:48
今日の遊覧飛行楽しかったです。
スクリプトって難しいけど
できるとほんとに楽しそう^^
また教えてくださいね^^
スクリプトって難しいけど
できるとほんとに楽しそう^^
また教えてくださいね^^
Posted by ラプ
at 2009年03月31日 01:02

らぷちゃんさん、ありがとー^^
こっちのほうが勉強になりました><
こっちのほうが勉強になりました><
Posted by ねこねこ at 2009年03月31日 21:37
なるほど~
thrustMultiplier とカメラの視点はいじってみてます。
カメラは後方に下げています。
無重力状態の変更:気になるところでした~
疑問解決~かな?
あと、滑走時の迎え角も良く分かっていませんでした。
色々いじって試したところ、ルートプリムが滑走するときの角度になりますよね。
Kitの場合、胴体にパイロットシートを取り付けるときは、同じ0度。
Rezして、乗ると10度以上、上向きになる作りなので、この角度が迎え角。スピードを上げ、無重力の設定速度を越えると上昇し始めるでよろしいですか?
ん…書いててやっぱり考えがまとまりません。
迎え角を大きくすればもっと低速で飛べる?
迎え角と速度の関係も部活の時におしえてくださいね。先生~!(^ー^)ノ
おバカな私にお知恵を分けてくださいませ。
ねこねこさんを師と仰ぎましょう^^
thrustMultiplier とカメラの視点はいじってみてます。
カメラは後方に下げています。
無重力状態の変更:気になるところでした~
疑問解決~かな?
あと、滑走時の迎え角も良く分かっていませんでした。
色々いじって試したところ、ルートプリムが滑走するときの角度になりますよね。
Kitの場合、胴体にパイロットシートを取り付けるときは、同じ0度。
Rezして、乗ると10度以上、上向きになる作りなので、この角度が迎え角。スピードを上げ、無重力の設定速度を越えると上昇し始めるでよろしいですか?
ん…書いててやっぱり考えがまとまりません。
迎え角を大きくすればもっと低速で飛べる?
迎え角と速度の関係も部活の時におしえてくださいね。先生~!(^ー^)ノ
おバカな私にお知恵を分けてくださいませ。
ねこねこさんを師と仰ぎましょう^^
Posted by Hys Setsuko at 2009年04月02日 12:36
スクリ見てみました。
thrustMultiplierの宣言は1箇所ですよね。
「これは2ヶ所出てくるので注意。」って?
後半にあるfwd * thrustMultiplierはいじるなってことで解釈しました。^^
thrustMultiplierの宣言は1箇所ですよね。
「これは2ヶ所出てくるので注意。」って?
後半にあるfwd * thrustMultiplierはいじるなってことで解釈しました。^^
Posted by Hys Setsuko at 2009年04月02日 14:51
こんばんは~
度々すいません。
変更してテストしました。
cruiseSpeedを変えても一向に飛び方に変化が無いのでおかしいと重い見直したら、宣言のほかに、最後の方の
timer()のなかにも
cruiseSpeed = 25.0 がありました。
こちらが2箇所ですね^^;
度々すいません。
変更してテストしました。
cruiseSpeedを変えても一向に飛び方に変化が無いのでおかしいと重い見直したら、宣言のほかに、最後の方の
timer()のなかにも
cruiseSpeed = 25.0 がありました。
こちらが2箇所ですね^^;
Posted by Hys Setsuko at 2009年04月02日 20:00
するどいつっこみありがと^^
thrustMultiplier でなくて cruiseSpeed の方でした><
最後のほうにも出てくるでしょ。こっちが2ヶ所です。
ついでにおまけ。
VEHICLE_BUOYANCY で、パラメータの値が、0.0(普通)~1.0(無重力)で、飛行機の重力を調整しています。これが擬似揚力になっています。
たとえば、まっすぐ進んでいる飛行機はスピードを上げても重力なし(無重力)にしかならないので、それ以上、上には上がりません。上に上がるためには機首を上に上げねばなりません。もし揚力を設定してしまうと、まっすぐに進んでいても上にあがってしまいます。(勿論翼の動きによって揚力の設定してもいいのですが、操作がかなりめんどくさくなる。)
テラ製飛行機は止まっている状態ですでに上向きになるようになっているので、出力を一定以上にあげれば(無重力の設定のスピードになれば)そのままの方向に向かって、つまり上に向かって進みます。水上飛行機だと、水面上に水平に飛行機があるので、とまっていても、水の中で機体を上向きに傾けることができる設定ならば、簡単に上向きに飛べます。
迎え角についても書かれていますが、要するに無重力状態になるスピード(テラさんのフリーのスクリプトでは、デフォルトで40%、12m毎秒以上の設定です)のとき上に向いていればその方向に機体が進むということです。翼の形とか、流体力学はまったく関係ありません><
thrustMultiplier でなくて cruiseSpeed の方でした><
最後のほうにも出てくるでしょ。こっちが2ヶ所です。
ついでにおまけ。
VEHICLE_BUOYANCY で、パラメータの値が、0.0(普通)~1.0(無重力)で、飛行機の重力を調整しています。これが擬似揚力になっています。
たとえば、まっすぐ進んでいる飛行機はスピードを上げても重力なし(無重力)にしかならないので、それ以上、上には上がりません。上に上がるためには機首を上に上げねばなりません。もし揚力を設定してしまうと、まっすぐに進んでいても上にあがってしまいます。(勿論翼の動きによって揚力の設定してもいいのですが、操作がかなりめんどくさくなる。)
テラ製飛行機は止まっている状態ですでに上向きになるようになっているので、出力を一定以上にあげれば(無重力の設定のスピードになれば)そのままの方向に向かって、つまり上に向かって進みます。水上飛行機だと、水面上に水平に飛行機があるので、とまっていても、水の中で機体を上向きに傾けることができる設定ならば、簡単に上向きに飛べます。
迎え角についても書かれていますが、要するに無重力状態になるスピード(テラさんのフリーのスクリプトでは、デフォルトで40%、12m毎秒以上の設定です)のとき上に向いていればその方向に機体が進むということです。翼の形とか、流体力学はまったく関係ありません><
Posted by ねこねこ at 2009年04月02日 20:24
あはは、書いてるうちにもういっこ書かれてしまった>< そうなのよねぇ~w
Posted by ねこねこ at 2009年04月02日 20:26