おはりのボヤ記
戻る
2002/02/26
来月はシンガポールに1ヶ月間出張の予定で、
昨日は夏用の衣服(といってもTシャツですけど)買って、
今日は銀行でお金を下ろして、更に家のCD-RWドライブと
ソフト一式を持って、会社の端末内にある仕事関連のファイル一式を
焼いて持ち帰ったり、そういえば日曜日はシャンプー類も買いこんだっけ。
(どうもホテル備え付けのはあわないんですよね)
で、着々と準備を整えていたんですが、
(『地球の歩き方』も当然買ってあって予習はばっつし?)
なんか、「そんなにこぞって設計部隊が行くようなことじゃないだろう」という
部長の一声(?)で、私のフライト予定はなくなりそうです。
まあ、英語は読めるけど話せないし、こっちでやらにゃならん仕事が山のようにあるんで、
ほっとしたといえばほっとしたんですが、
正直少々がっかりな面もあったりして(^−^;
まあ、昨日はHMVで予備用の「パネキット」を注文したりしたので、
その支払いもしなくちゃならないから、これでよかったと言えばよかったか。
春の運動会の実行委員総務リーダーもすることになってるし、
これから予算のやりくりとか業者のネゴとかあるから、
これまた不在にする訳にいかんのですけど(^^;
2002/02/20
フライトシムの物理計算は、現状の演算方式を根本的に見直そうと思っています。
現状は、飛行機の機首が向いている方向に一定の加速度をもって移動する、
という形式をベースに、空気抵抗、揚力、重力の要素を継ぎ足して移動量を修正する
という方法でやってきましたが、演算体系がパッチ当てまくりになってきて、
いよいよ破綻の兆しが見えてきたからです(^−^;
そもそも「機首の向いている方向に移動」というのが根本的な誤りで、
「力のかかっている方向に移動」としないと、うまく式がまとまらないんですよ。
力には、推進力、空気抵抗、揚力、重力と4つあって、
これらの4要素を別々に求めておいて、それを3次元的にベクトル加算して、
一つにまとめたベクトルを加速度として、
速度=m*加速度*1frame(mは質量に相当、実際は適当な係数)
移動量=速度*1frame
という計算をX,Y,Zの3要素についてやればいいわけです。
ただ難しいのはベクトル加算でして、まじめに内積だの外積だのその他諸々を計算しようとすると、
とんでもない行列計算をこなさにゃあならん羽目になるので、
そこは「GETLPOS」または「GETWPOS」という非常に便利な命令を使って、手抜きしようと思います。
いやあ、こういう命令がほんとあってよかった。
これなかったら未だにジンバルロックも回避できてないし(苦笑)
告白すると、まじめにクウォータニオン計算するプログラムを組んでいて、
目を回してしまった過去があったりします(@−@;
で、結局計算全然合ってないし(^−^;
4つの力の中では、特に空気抵抗の扱いが難しい感じがするんですが、
一応なんとか頭の中は整理できそうです。「これでいけるな」って感じで。
で、これ考えていてなんとなくパネキットでみられる例の現象「上反角効果」も
実は単なる計算誤差に過ぎないんではないかという気がしてきました。
実験室画面で、筒をモータでくるくる回すモデルを作って、
筒を回転させたときに筒を形成しているパネルに発生する力のベクトルを観察していると、
内側に向かってきゅ〜っと力が発生していることが分かります。
これは推定ですが、パネルに発生している空気抵抗ではないかと思うんですよ。
で、パネルを面に沿って回転させただけで、なんで空気抵抗が発生するかというと、
これが離散近似計算に起因した誤差ではないかと。
言葉だとうまく説明できないのですが、パネキット世界における物理現象、
物体の移動速度や働く抵抗の大きさなどは、相互に関連しあっているので、
それぞれの瞬間の値を求めるには、その一瞬前の状態の値を用いていると思うんですよ。
コンピュータは計算は得意ですが、「式を解く」というのはあまり得意でないので、
例えば速度vを求めるには、加速度aを時間tについて積分すればいいわけですが、
aが一定なら、結果はv=a*t+v0となりますが、aが時間依存性の関数a(t)だった場合には、
こういう単純な計算式にはならないので、コンピュータでは数値解析の手法が用いられるわけです。
最初の時刻の速度をv(t0)として、その時刻の加速度をa(t0)とし、
さらに一瞬後の速度はv(t1)=v(t0)+a(t1)とするわけです。
その次は、今求めたばかりのv(t1)を使って、v(t2)=v(t1)+a(t2)とします。
以降、この計算を繰り返し行っていくわけですが、
ここで、時刻t0からt1までの加速度は厳密にはa(t1)という一定値にはなっていないため、
ここで誤差が紛れ込むわけです。
パネルを回転させる場合には、加速度が連続的に変化する(大きさは一定でも向きが刻々と変化する)ため、
特にその変化量が大きいほど、この誤差量は大きくなってしまうわけです。
上記のようにパネルを回転させると、Aの位置からBの位置まで、
パネキット内部処理の最小時間単位で移動したとすると、
その間の円弧に沿った動きは補完計算されず、緑のグラデーションのような軌跡を辿った場合と
同じように処理されてしまうため、その結果として、青い矢印の空気抵抗による力が発生してしまう
というわけです。
あくまで仮説ですが。
2002/02/17
まっさあさんの作っている「フライトシミュレータもどき」に
物理演算を組み込もうとしていろいろやっているんですが、
揚力と重力と空気抵抗に関する演算が結構難しいですねぇ(^−^;
完璧な計算など不可能なことは初めから分かっているので、
いかに「らしく」見せようかと思って、擬似計算式を考えているんですが、
それでもうまい計算方法がなかなか編み出せないです。
これも一つの技術ですねぇ。
AC04などうまいことやってますね。
2002/02/12
なんか風邪ひいたかも。
頭痛と腹痛と関節痛と寒気と吐気と下痢が同時に〜(×_×)
熱も咳も鼻水もないんですけどねぇ。
もう今朝は通勤電車の中で死にそうになりました。。。
なんか隔年で春に労働組合がらみで体育祭というのがあるんですけど、
その実行委員というのをやらされるはめに、、、
なんかイベントとか段取がらみのことって苦手なんですよね(^−^;
お金の計算とか議事録とったりするのは最も苦手としているんですが、
そんな私が総務係(お金の管理と議事録作成)のち〜ふなんだと。鬱っっっ
2002/02/10
無題掲示板のプログラム修正したり(引用箇所の色変え)、
仕事上のDOC書いたり、BSのこまごましたことの整理とか、、、
ゲームする時間がない。
あっとゆーまに2日消費。
ソルトレイクでX-FILE 5がやってないのもつまらん、、、
2002/02/07
今日昼休みに昼寝をしていたら、12分ほどオーバーランしてしまって、
起こされちゃいました。
これで2度目。
意外と少ないな(ぉ
つーかラグナ・セカがへたっぴで先に進まないんですけど…
執念深い性格なんで、とばして次に進むことはしないでしょうが。
まだあと0.8秒くらいちぢめなあかん。
もうかれこれ300回くらいリトライしてると思うんですけど、
ある所から全然上達しないんですよね〜。
歳ですかねー(棒読み)
2002/02/04
いつも思うんだけど、1日96時間は欲しい、、、
今日は寝坊して、電話で起こされて、「客から依頼事項が来てるから絶対来い」とかいわれて、
行ってみたら5分で終わった、依頼事項。
この程度なら、メールで自宅に送ってもらって、それで対処したほうが個人的にはいいな。
その分の報酬は無しでいいから(^^;
2002/02/02
今日はなんにもしなかったなぁヽ(;´ー`)ノ
せっかくの休日だから、一気にSuperLicense終わらそうと思ったのに、、、
バナーを変えたんですけど、やっぱり自分で作ると納得いくものがつくれないな(^−^;ゞ
戻る