2008年11月の日記

<2008年12月 2008年10月>

無題

ふとNeoMuplでファイルの一部をフォルダに分けて入れているときにフォルダ直下にあるファイルとサブフォルダ内にあるファイルがごっちゃに表示されるのが気になって全体のファイル名よりもディレクトリ名のほうを優先してソートするような並び替え方法を実装してみました。

無題

どうも昨日出たバグは軽量化と称して行われた作業で動作が変わってしまったのが原因だったようです。

無題

ふにゃさんの軽量化を進めつつ計量化で問題が起きていないかチェックしていたら、バグっぽいものに遭遇しました。
私自身が作ったステージではないのでもしかしたらそういうステージだったのかもしれませんが、バナナを全部取っていないのにステージクリア扱いになってしまったのです。
とりあえず原因として思い当たる節があるのでちょっと検証用のステージを作っています。

無題

早速VB2008でIf文とSelect文による分岐の比較をしようと65536分岐させてみたのですが、なんだか動かなくなりました。
1個の分岐なら10万回繰り返しても平気だったんですが、不思議なものですね。
もしかしたら予期せず無限ループができてしまったとか、最適化なしにしたからものすごく非効率的なコードができてしまったとか、そのあたりでしょうか。
最適化ありにしたら必要以上にコードが削られる気がするんですよね…。

無題

なにやら久々にうちのサイトがプログラミング系の掲示板から参照されておりました。
私のサイトでもまだ役に立つことがあるんですかね。
最近は何か独創的っぽいことを考えてもどうせ誰かが先にやってるんだろうなって気分になってやる気をなくしておりました。
確かに私は今はアンパンマンばっかり見ておりますがアンパンマン関連でもプログラムは作っているわけですし、アンパンマンのデータとか自作のゲームとか以外でもまだ発信できる何かがあるはずだと思いました。

無題

せっかくなのでNeoMuplもうちょっと改良することにしました。
前からMIDIが聞こえないということがよくあったので、それに対してある程度の対策を取ろうと思いまして。
うまく再生されない理由としては以下の2つが考えられます。
1.以前の不適切な演奏状態を引き継いでしまう(一部の音が消える)
2.すぐに演奏開始されず一部のMIDIメッセージが無視される
これらを解消するため、MIDIリセットを入れたり、準備時間の後再生開始する方法を作ることにしています。

無題

NeoMuplの起動時に例外が起きることがある問題を対策していました。
例外をキャッチしたらメッセージを表示して問題のクラスを何もしないクラスに差し替えるだけですが、ちょっとは不安感が払拭されるものと思います。
でもこの問題自体不定期に起こるので、このバージョンの公開はしばらく先になると思われます。

無題

ボンバーマンの絵を描いてました。
手足が丸くて短い爆ボン仕様なー。

ふにゃさんのほうは無駄なコードを省いて軽量化&表面化しにくいバグの追放作業。
地味な作業ではありますが地味に実行ファイルが小さくなっていたりまずい実装を見つけたりしております。

1227365427.png

ヒヤヒヤヒヤリコとばぶばぶばいきんまん

ヒヤリコも見ました。
やっぱり同時上映のほうはいろいろとぶっ飛んだ内容で面白いですね。
特に今回はカレーパンマンのおかげで宇宙までぶっ飛んでます。

妖精リンリンのひみつ

で、引き続きふにゃさんのソースの細かい書き直しをやっていたらどうにも面倒なバグがあったようなので昨日修正していたのを18日の分まで差し戻しました。
見てみたところ、変数名に誤解が生じやすい部分があったようなので、面倒ですが全部修正中です。

それはそうと、子供たちがひしめく中映画館に行く勇気がなかったために見ていなかったアンパンマン映画「妖精リンリンのひみつ」が、いつの間にやらDVDとして出ていたので買ってきました。
いつもは普通にDVDだけなんですが、DVDになって間もないらしく、限定版DVD-BOXとか言うことでなんかマスコットが付いてきました。
マスコットは正直言って別にいらんのですが、ヒヤリコの話も一緒に入ってるのはうれしいところです。
まだ本編は見ていないのですが、やなせたかしのメッセージを見る限り、内容的には今まで評判のよかった要素を詰め込んだ感じになってるようです。

無題

ふにゃさんの安定性向上のための細かい書き直しをいろいろやってました。
その作業のためのVC++がなぜか不安定だったりしますが。

無題

ふにゃさんの裏話追加しました。
このゲームを作るときに気をつけていたことですね。

無題

なぜかアキヤメが検索にかからないと思ったらrobots.txtで検索エンジンのクロールを拒否していました。
今までHTMLのメタ情報としての記述しか気にしていなかったのでずいぶんと長い間気付きませんでした。
修正はしましたがどうなることやら…。

カラー影

ちょっと無理やりな方法ですがふにゃさんのHTML表示の影付けも実装できたので最新版をアップしました。

無題

ふにゃさんのHTML表示が中央表示に対応できました。
あと、シークレット表示もできるようになったり。
影付けができれば完璧といったところです。

関係ない話ですが、昔言っていたVB用のLongScrollを単体で公開しようと考えています。
今のところ説明等が全く足りていないのでそのあたりソースにも書いて、別途ドキュメントもつけようかと思っています。

無題

というわけでHTML表示を簡単にやってみました。
中央ぞろえになっていなかったり影がなかったりいろいろとまだ見栄えが悪いですね。

1226673226.png

無題

とりあえずBomber丸WorldのHTML表示を持ってきて装飾付きの文字を表示できるようにしてみようと思います。
もともとBomber丸Worldに特化した作りになっているのでそのあたりの調整が必要そうです。
今のままではコンパイルすら通りません。

無題

エンディングを今あるものをそのまま使って実装してみたところすごく見栄えが悪くなりました。
ここは何とか工夫して見栄えよくしたいところです。

無題

ふにゃさん最新版はエンディングを実装したらアップする予定です。
というわけで、エンディングメッセージの読み込みを実装中です。

無題

ふにゃさんのユーザー投稿ステージの「カナアミ」の最新版がクリアできたのでアップしました。

無題

さて、ふにゃさんエディタの塗りつぶし機能が実装できました。
結局動作原理の異なる塗りつぶしのために昨日書いていた消しゴム用に改造したコードは全部書き直すことになりました。
こういうところはやっぱりいきなり何らかの形にしてみるよりあらかじめよく考えてから組まないといけませんね。
でもこの改造のおかげで、使ってないほうのマウスボタンのクリックで編集中断をすることもできるようになりました。
具体的に言うと、間違って塗りつぶし始めてしまった場合、左ボタンを離す前に右クリックしてやれば塗りつぶしをキャンセルできます。
というより今のところは塗りつぶしのキャンセルしかできないんですけどね。
普通の描画の場合は塗らなかったことにすることはできません。

1226234740.png

無題

ふにゃさんエディタの右クリックでの消しゴム機能を作りました。
あと、ホイールマウスによりスクロールにも対応中です。
ドラッグによる矩形領域の塗りつぶしは動作原理が少し変わるため、そのあたりの構造を改善してから実装することになりそうです。

無題

同一色塗り潰し機能は今私にできるアルゴリズムでは問題があることが分かっているのでとりあえず矩形領域の塗り潰しの機能から実装始めます。

1226069670.png

ニョッキ!

で、唐突にいつぞやなんとなく書いていたアキヤメのスマブラ続編のやつの続きを書き始めたわけです。

そういえばニョッキ食いました。

無題

爆ボンの動画をパソコンに移動し終えました。
あとはいろいろつけてアップすれば…というところなのですが、これはこれでそれなりに時間がかかりそうな気がします。
とりあえずYoutubeは10分以内で一区切りとなる動画を中心にということで、今回はニコニコ動画のほうだけにアップする予定であります。

無題

ふにゃさんのエンディング作成とエディタの改良を行っています。
エンディングは今更つけるべきかどうか、というのもあったのですが、シークレット解禁のお知らせも兼ねるならやっぱり必要かな。と。

無題

コメリストで、情報取得に失敗したときに、その項目が削除されてしまうバグがあったので修正しました。
そして、何が原因で失敗したのかを判別して表示するようにしました。

無題

昨日のNeoMuplの改造で、時の重みパラメータがすごく効くようになってしまいました。
以前だと目一杯きつく設定してもほどほどの効果しかなかったのですが、今度は極端に設定するとその分極端に効果が出るようです。
もっと細かく時の重みを調節する機能が必要かもしれません…が、もともと大雑把なパラメータなので別に微調整する必要もないかもしれません。

無題

爆ボンの動画、DVDの別ディスクに切り替わるところで若干映像の乱れが出ているようです。
ただ、こうなることを想定してあらかじめ無音で画面が真っ暗になった部分で切ってあったので、少しばかりの編集で何とかなりそうです。

今日は、どうにもNeoMuplの時の重みパラメータがあまり効果的に働いていないように見えたので、そのあたりを改良していました。
以前は最近再生されていないデータを判断する基準として現在時刻との差を用いていましたが、長い曲を聞いた後やしばらく停止していた場合に時の重みが相対的に軽くなってしまうので、基準とする時間を最終再生時刻として設定しました。
というわけで、0.18にバージョンアップです。

<2008年12月 2008年10月>