トーラス(輪っか)を実装中。で,トーラスと球,トーラスと円筒の当たり判定は割とすぐにできたので,バイクっぽいものを作ってみた。
上の謎物体は3つの物体でできている。1つ目は,大きな輪っかに円柱を刺して真ん中に固定のための球を配置したタイヤっぽいもの。これが前後で2つ。2つ目はタイヤを固定する小さな輪っか4つと擬似人の円柱からなる車体っぽいもの。あくまでも今サポートしている物体だけで表現しようとしたらこうなった。一応走る。
円柱同士の当たり判定を実装。素直に「円-円」「円-線分」「線分-線分」それぞれの当たり判定を実装してみたのだが,場合分けと外積ばっかりで見るからに遅そう。ま,そのうちもっといい方法を使うことにしよう。
掲示板の話。今更ながらリプレイは便利。
滋賀でのタイピング大会って先週終わったのかと思ったら今日らしい。先月ウェザタイを使いたいという連絡があって,断る理由もないので許可してみたらいつの間にか予定日を過ぎてた,みたいな。
10円玉の不思議現象は結局プログラムのバグっぽかった。地面と垂直な軸の回転を止めるために,1点接触を微小面積での接触と仮定しているのだが,座標系を間違っていた。で,結局回転させていても最終的には床に倒れる動作となった。
今まで力積計算を運動量の保存則から計算していたが,実験的に力積を直接計算するようにしてみた。結局はペナルティ法に近い式になってしまったが,衝突と垂直抗力を区別しなくて良くなるのでだいぶすっきりする。
上の10円玉はMetasequoiaで作っている。先週シェアウェア登録したのだが,なかなか返信来ないなあ,と思っていたら自分でSPAMフォルダに入れてしまっていた。英語の名前,英語のタイトルだと何も考えずにSPAMに入れてしまっているので気をつけないと。
ともあれ,最近はSPAMも日本語のメールが多くなっていて分類が非常に難しい。ちなみに9/18に来たSPAMは全91通。いい加減メールアドレスを変えたいところだが,Denasuのアドレスは変えたくないので悩ましい。ウェザタイ関連のメールももしかしたらSPAM行きになっているものがあるかも知れない。
スマートボールとビリヤードをやってきた。というか物理シミュレーションのために観察してきたというか。
物理シミュレーションって結局は現実世界で現実世界をエミュレーションしようとしているわけで,ファミコンでファミコンエミュを作ってるような感じがしてある意味不毛なんだけど,ボールの重さが1つ1つ違うビリヤードはどうなるのかとか現実とはちょっと違うことを試せるのは十分価値があると思った。
Dependancy Walkerをずっと使っていたが,Profile機能があるという情報を4号に聞いた。4号も昨日知ったらしいけど。フックを行って使っている関数を監視する。
しばらく書きためていたインストーラについてのTipsを公開してみた。ま,とりあえず置いておけば後で役立つかな的な感覚で。
円盤をサポート。まだ当たり判定が地面とだけだけど。
で,今日の不思議。10円玉を指ではじいて回転させるデモを作ってみたが,最後に直立してしまう。バグってるぽい気もするが,まっちーさんがいうには10円玉は完全な円盤ではないからじゃないか? とのこと。本来なら直立するのが正しいのだろうか。
もう一つ。回転が遅くなってくると机上を旋回し始める。これは以前のボーリング理論でいうと,回転が遅くなることで回転軸が斜めになって曲がってしまう,のか?
うーむ。まだすっきりしない。4号と相談してみよう。
夏休み。
前半は物理シミュレーションの高速化をやっていた。今まで衝突判定のスピードを考えず,直方体なら面6つと点8つに分解して「面と点」など汎用的な処理にしていた。で,それだと直方体4つくらいで10FPSまで落ちてしまったので,結局「直方体と床」とか「直方体と球」とか個別に判定するようにして,なんとか直方体15個で30FPSくらいまでにはなった。まだ遅いような気はするけど。
後半はサーブレットとJSPの勉強。仕事とも趣味とも全く関係ないけど,やっぱり広く浅く知るには試験勉強でしょ,ってことでSUNの試験を申し込んでいる。ぷよSUNが懐かしい。
あれ,夏休みに読み切る予定だったハリーポッターが10ページしか進んでない…。
物理シミュレーションはサイコロ+球までは再現できるようになった。そろそろ重くなってきたのでスピードを気にしていかないと。
実装していると物理の勉強では不思議に感じなかったことが不思議に感じてくる。とりあえずメモ。
Darren ShanのDemonata(Lord Loss)を読み終わった。次は買ったけど積んであったハリーポッターだけど,電車で読むためにはまた上中下に分ける必要がありそうな分厚さ。
どうやらウェザタイで何か動きがある模様。ここで書いてもいいのかなあ。
まっちーさんに触発されてゴールデンウィーク辺りから物理シミュレーションの勉強中。てことでウェザタイの開発は全然やってないのでこの日記もあまり更新してなかったりする。
表示部分は,3Dシューティングを作ろうとしていたときのソースがあるのでそれを流用。ようやくサイコロが転がるくらいまできた。問題はこれで何を作るかということだが。とりあえず前からやりたかったドミノ倒しでも作ってみますか。
先週あるつてでVisual Studio2005セミナーに行ってきた。2002-2003のマイナーアップデートとは違っていろいろ変わっている。気になるところでは
実際にβ2を入れてみたが,重い以外はなかなかいい感じ。
PocketPC2003 SEエミュレータでLobby for PPCを動かしてみた。最初に古いバージョンとかの警告が出る以外は動作に問題はなさそう。ちなみにVGAで動かすと,文字が大きいだけでちゃんとフルスクリーンで動作している。LandscapeやSquareにするとスクロールバーが出ているのがちょっと変だけど。
ロビーサーバは5/3の早朝,復活した模様。原因の詳細は聞いていないのでよく分からないのだが,電源が落ちていた,のかな。
PocketPC版ロビークライアントを公開。ほとんど自分で使うためのものだけど,もしかしたら誰か必要としているかも知れないので公開。
そのうちちゃんとしたドキュメントは書くつもりだけど,以下開発メモ。
どうもbeanfan.comにつながらない。管理者連絡待ち。
というところで急遽マトゥ氏管理の第2ロビーサーバを昇格させてみたのだが,どうも動きがおかしい。ソースを見ていると,排他制御が変な部分があって,既存のメンバのメッセージが到着しないと新規メンバが参加できないという状況だった。beanfan.comではある程度切れ目無くメッセージが届いていたということか。とにかくその部分は修正し,稼働中という状態。
.NET Compact Framework。いろいろと制限はあるものの少しずつロビークライアントを実装してみる。以下開発メモ。
とりあえずTips的なものはMSのFAQが詳しい。
Visual Studio.NET 2003にはPocket PC 2002エミュレータというのが付属していて,VirtualPCっぽい感じ(というか提供元Connectixってなってるし同じものなんだろうけど)で使いやすいのだが,以下の設定でつまづく。
HttpWebRequestでWebサーバにアクセスすると「チャンクの長さは無効です。」というエラーが表示される。これは.NET Compact Framework最新版では直っているようなので.NET Framework 1.0 SP3をダウンロードし,ファイル共有経由でnetcf.core.ppc3.x86.cabをエミュレータに配置して実行。
4号(誰)情報によると,.NETでは他のスレッドにメッセージを投げるとうまくいかないということでInvokeを使うらしいわけだが,.NET Compact Frameworkでは引数を付けてInvokeを呼べないという制限がある。で,スレッド上でのメソッド パラメータの呼び出しに載っているControlInvokerを使った。
ロビーの緊急待避モードの拡張を行う。とりあえず緊急待避モード時はタスクトレイに入るようにする。以前電卓を作ったときは意識していなかったが,Explorerを再起動したときにタスクバーからアイコンが消えるのは何とかならないかなあ,と検索してみる。IE4.0以上がインストールされているときはExplorerが再起動したときにTaskbarCreatedユーザメッセージが送られるとのことなのでそのタイミングでアイコンを再登録すればいいらしい。
ついでに緊急待避モードは今のままではウィンドウがアクティブの時にしかできないので,ウィンドウが隠れているときでもきくようにホットキーを設定できるようにする。制限事項として,他のアプリケーションと競合したらだめってのがあるが,とりあえずかぶらないようにして下さいというしかないのかな。
掲示板にも書いたが,しばらくPC環境のない場所へ行ってしまう。PocketPC+AirEDGEがあればある程度のことはできるが,それにも限界があるわけで。ま,しばらく様子見。ちなみに,最長で5月という噂。
それに先駆けていろいろと整理。しばらくメールがサーバにたまってしまうので,デナスのページから作者のメールアドレスを消した。今まではランキングのパスワード変更とか雑誌の掲載時とかの連絡用にメールアドレスを公開していたが,1日に50通くらい来るしウィルス付きだったりするので,しばらく削除しないとHi-HOのメールサーバがいっぱいになってしまう。これでどのくらいSPAMが減るのだろうか。
うーむ,こんなことなら早いところPocketPC用ロビーでも作っておくべきだったか。
Weather Typing 2.0.1を公開。修正点は以下の2点。リビジョンアップなので基本的にバグ修正のみ。
なお,WeatherTyping.exe自体は開発版で公開していた物とほぼ同じ(バージョン情報のみ違う)なので,既に開発版を使っていてリプレイビューアを使っていない方はダウンロードし直す必要はありません。
掲示板の,「リプレイビューアで総時間が0になる」問題。リプレイファイルが複数あり,旧バージョンが新バージョンよりも位置的に前にある場合に発生する。かなり以前から存在した問題のはず。てことで,リプレイ対戦の問題も含めて今日か明日中には2.0.1として正式版として公開する予定。
Vectorからウェザタイ2のダウンロード数が来た。ちなみにウェザタイ2の場合,Vectorのダウンロード数は全ダウンロード数の約30%ほどなので,デナスからのダウンロードをVectorへのリンクにすると3倍以上のダウンロード数になるわけだ。ま,やらないけど。
Cマガを立ち読みしてて,DirectPlayが今後なくなる予定だということを知った。とりあえず原文は…ってことで以下に書かれている。DirectX 9.0 SDK Update – (December 2004)1月以上前の情報ですね。ウェザタイはどうしよう。今後のDirectXでもランタイムは使えるんだろうけど,開発用ヘッダやライブラリが付いてこないというのはもう諦めろってことですか。次回バージョンではWinSockで書き直すのか…かなりめんどい。
MSDN オペレーティングシステムのDVD 10枚が送られて来た。っていってもOSは2003と2000サーバ以外元々正規のものが手元にあったのであんまり意味はないんだけど。てことでWindows2003でActive Directoryを使ったサーバ構築をしてみた。いろいろ日記ネタができるかと思ってたけど本を参照しながらだったので割とすんなり完了。
3連休。ウェザタイのテストという名目でずっとVirtualPCにOSのインストールをしていた。とりあえずWin95/98/Me/2k/XP/2003では動作することを確認。ちなみにダメなのはWin3.1/NT。
掲示板で報告されているが,ウェザタイ2.0でリプレイ対戦ができないというバグがあった。どうやら2.0.0.0から1.8.9相当にロールバックしたときに戻し忘れた部分があったせいらしい。とりあえず影響はリプレイ対戦のみであり,正式版だと2MB以上をまたダウンロードしてもらわなければならないため,正式版とはせず開発版とした。