まっちーさんに影の出し方を聞いたので早速実装してみる。なかなかいい感じ。
ついでにしばらく試していなかったドミノ倒しを試してみたらこっちもいい感じに倒れるようになっていた。
10円玉の不思議現象は結局プログラムのバグっぽかった。地面と垂直な軸の回転を止めるために,1点接触を微小面積での接触と仮定しているのだが,座標系を間違っていた。で,結局回転させていても最終的には床に倒れる動作となった。
今まで力積計算を運動量の保存則から計算していたが,実験的に力積を直接計算するようにしてみた。結局はペナルティ法に近い式になってしまったが,衝突と垂直抗力を区別しなくて良くなるのでだいぶすっきりする。
上の10円玉はMetasequoiaで作っている。先週シェアウェア登録したのだが,なかなか返信来ないなあ,と思っていたら自分でSPAMフォルダに入れてしまっていた。英語の名前,英語のタイトルだと何も考えずにSPAMに入れてしまっているので気をつけないと。
ともあれ,最近はSPAMも日本語のメールが多くなっていて分類が非常に難しい。ちなみに9/18に来たSPAMは全91通。いい加減メールアドレスを変えたいところだが,Denasuのアドレスは変えたくないので悩ましい。ウェザタイ関連のメールももしかしたらSPAM行きになっているものがあるかも知れない。
スマートボールとビリヤードをやってきた。というか物理シミュレーションのために観察してきたというか。
物理シミュレーションって結局は現実世界で現実世界をエミュレーションしようとしているわけで,ファミコンでファミコンエミュを作ってるような感じがしてある意味不毛なんだけど,ボールの重さが1つ1つ違うビリヤードはどうなるのかとか現実とはちょっと違うことを試せるのは十分価値があると思った。
Windows Vista β1が送られてきた。3連休の楽しみができた。
Dependancy Walkerをずっと使っていたが,Profile機能があるという情報を4号に聞いた。4号も昨日知ったらしいけど。フックを行って使っている関数を監視する。
しばらく書きためていたインストーラについてのTipsを公開してみた。ま,とりあえず置いておけば後で役立つかな的な感覚で。
円盤をサポート。まだ当たり判定が地面とだけだけど。
で,今日の不思議。10円玉を指ではじいて回転させるデモを作ってみたが,最後に直立してしまう。バグってるぽい気もするが,まっちーさんがいうには10円玉は完全な円盤ではないからじゃないか? とのこと。本来なら直立するのが正しいのだろうか。
もう一つ。回転が遅くなってくると机上を旋回し始める。これは以前のボーリング理論でいうと,回転が遅くなることで回転軸が斜めになって曲がってしまう,のか?
うーむ。まだすっきりしない。4号と相談してみよう。
夏休み。
前半は物理シミュレーションの高速化をやっていた。今まで衝突判定のスピードを考えず,直方体なら面6つと点8つに分解して「面と点」など汎用的な処理にしていた。で,それだと直方体4つくらいで10FPSまで落ちてしまったので,結局「直方体と床」とか「直方体と球」とか個別に判定するようにして,なんとか直方体15個で30FPSくらいまでにはなった。まだ遅いような気はするけど。
後半はサーブレットとJSPの勉強。仕事とも趣味とも全く関係ないけど,やっぱり広く浅く知るには試験勉強でしょ,ってことでSUNの試験を申し込んでいる。ぷよSUNが懐かしい。
あれ,夏休みに読み切る予定だったハリーポッターが10ページしか進んでない…。
地元にインドカレー屋ができたという情報を仕入れ,denasuオフと称して綿密なる計画を立てていたが,なんか定休日だったので忘年会ぐらいまで延期した。
物理シミュレーションはサイコロ+球までは再現できるようになった。そろそろ重くなってきたのでスピードを気にしていかないと。
実装していると物理の勉強では不思議に感じなかったことが不思議に感じてくる。とりあえずメモ。
Darren ShanのDemonata(Lord Loss)を読み終わった。次は買ったけど積んであったハリーポッターだけど,電車で読むためにはまた上中下に分ける必要がありそうな分厚さ。
どうやらウェザタイで何か動きがある模様。ここで書いてもいいのかなあ。
ちょっと前から,NEC SmartVisionのEPGで番組表を更新するとソフトウェア起動時に落ちるという現象が起きていたのだが,NECのページに修正パッチが出ていた。この問題が出る直前,テレビ朝日のEPGサービスで,ローカル局の番組表が2日分から1週間分(だっけ)提供されるようになったのだが,それに伴ってデータ形式が変わったと思われる。どっちの作りが悪かったのかが気になる。
まっちーさんに触発されてゴールデンウィーク辺りから物理シミュレーションの勉強中。てことでウェザタイの開発は全然やってないのでこの日記もあまり更新してなかったりする。
表示部分は,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ユーザメッセージが送られるとのことなのでそのタイミングでアイコンを再登録すればいいらしい。
ついでに緊急待避モードは今のままではウィンドウがアクティブの時にしかできないので,ウィンドウが隠れているときでもきくようにホットキーを設定できるようにする。制限事項として,他のアプリケーションと競合したらだめってのがあるが,とりあえずかぶらないようにして下さいというしかないのかな。
1ヶ月の出張から帰宅。引っ越しの片づけをやらないと。
てことで1ヶ月C#開発をやってみて,なかなか開発効率もいいし作りやすいことが分かった。C#版ロビーでも作成してみますか。
3週間ぶりに一時帰宅。ロビーをのぞいてみるとちゃんと動いている模様。但し近々ロビーサーバお引っ越しがあるらしく,そのときは少しの間ロビーサーバにログインできなくなる予定。PocketPCからロビー起動できれば朝には復旧できるかと思う。
ようやく休みがとれたのでPDAから更新。手書き認識なので変な誤字があるかも知れないが記念に(?)今後も修正はしない予定。
2週間ホテル墓らしなわけだが、通勤も歩きだし結構快適だったりする。PCがないのも、開発さえしなければPDA+AirEDGE+512MB SDカードで事足りてるし。
ちなみにこっちでやっているのはC#によるクライアント開発。まぁここで学んだことを活かしてPocketPC版ロビーを作れということですかね。
PocketPC iPAQ h2210環境を本格的に整備。エディタとかメーラとかはまあ何でもいいのだが,SSHクライアントがなかなかうまくいかない。以前使っていたW32Consoleを利用したSSHではスペースしか打てないし,PocketPuttyではスペースが打てない。てことでNetKeySipというSIPを使ってみたら両方ともうまくキーが打てた。
掲示板にも書いたが,しばらく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倍以上のダウンロード数になるわけだ。ま,やらないけど。