「ミディビ」に関する日記(2)

<前 次>

白紙撤回

Bomber丸WorldのBGMシステムを作ろうとしつつ、逆に白紙に戻してしまいました。
まず、ですね。
BGMシステムのね、コア部分とインターフェース部分とに分けたかったんですよ。
なぜかというとですね。
BGMにもいろいろな効果などをつけたりするのでスクリプトと組み合わせたかったんですよ。
それで、スクリプト部分は別枠で作っているところだから、コアの部分から作り始めたというわけですよ。
しかし、です。
複雑な処理がありうるからスクリプトを入れて、と考えていたのですが、BGMに効果を与える条件というのがまた複雑で、スクリプトで記述することになるわけです。
そうしたら、スクリプトがスクリプトを呼び出さなければいけない形になり、2回呼び出すことに無駄が生じるわけです。
そう、複雑な変化も、BGM側のスクリプトじゃなくて、ゲーム側のスクリプトで充分決められるというわけです。
そういうことで、コアだけで充分だな、と思ったところで、動作部分とデータ部分に分ける必要がありそうな気がしてきたのです。

ミディビにコメント削除機能をつけました。
とは言っても本当に削除しているわけではなく、削除されたという情報を付加する形で削除しています。
荒らし対策というのも一つにありますが、本当はただ単純に、削除することで記事の数が変わると扱いにくくなるので削除しない方針にしただけだったりします。
そして、ロック処理も加えました。
これでファイルが破損しにくくなるはずですが。
後必要なのは、今まで手動で削除してきた一時ファイルのゴミや、古すぎる記事を削除する処理、この程度ですね。

豚王の最期

その日その日でやってることがばらばらですみません。
ミディビの返信機能を作ってました。
しかし実はそれすら他のことをやっていてままならなかったのです。

マザー3やってたんですね。
で、敵キャラクターをあーしてこーして…。
以下、結果になります。
フンコロガシ→仮面の男(PKβで毒を食らわせる)
テントのなかのひと→仮面の男天使形態(PKγで痺れさせる)
ゆきうさぎ→全裸クラウス(PKΩで眠らせる)
ネンドじん→服を着たクラウス(結界ポーズで涙を止まらなくさせる)
ゆげ→X(何も言わず変にさせる)
ヒモヘビ→網目模様(何も言わず度忘れさせる)
ヒモヘビ→生気のないクラウスの顔だけ(何も言わずどんよりさせる)
エオリアのテーブル→ドット絵クラウス(何も言わずノミをまとわりつかせる)
わら→生気のないクラウスの顔の線画のみ(何もしない)
ゆげ2→悪魔のマシンの切れたギーグみたいなの(爆発装置を破壊する)
こがたエレベーター→同じく(メンタイコキックを繰り出す)
全部矢印の先は戦闘背景です。

クッキーが消えた

今日パソコンを立ち上げたらクッキーが消えてました。
どうもクッキーそのものが消滅したのではなく、クッキーを読み出すためのデータが壊れたのが原因だったらしく、クッキーの中身は無事なまま読み出せなくなっていたようです。
しかしそのデータを使ってクッキーを復活させることはできないらしく、テキストエディタ等でクッキーを編集しても、不正なクッキーとして削除されてしまうようでした。
一部、どうしても消えてもらうと困るクッキーがあったので、ちょっとサイトアドレスを偽装して自作のクッキーを書き込むためだけのCGIを使って復活させました。

大神やってました。
犬コロが見つからないのでしばらくそこら辺で適当に遊んでようと思ったら、遊びに行った先で例の犬コロが出てきました。
そして、力と力で語り合おうなんて、硬派な事を言い出すんです!
ボスとなると急に慎重になっちゃって必要以上の時間を掛けてしまうのは悪い癖ですね…。

ふにゃさんの重力変化を実装してみました。
知ってる人にはもうおなじみの恒例のシークレットですね。
しかし今回、今まで以上にゲームが変わります。
ふにゃさんには色々動くギミックがあり、それらは原則として重力変化の影響を受けないのですが、それらとふにゃの動きの食い違いでかなり変わってしまうようです。
ちなみにギミックのほうに重力変化の影響を出すかどうかは未定ですが、基本的に影響を出さない方向で行こうと思っています。
そうそう、5面の攻略ページも作りました。

ミディビのルールのいくつかの補足説明を書きました。
まあ、雑多な部分ですね。

無題

ミディビのトップページに開発の意図を掲載しました。
本来はルール1のところに書く文章だったのですが書いているうちにどんどん脱線しちゃって、全体的な開発の意図のほうの文章になってしまったので移動しました。
その上でルール1の文章は改めて書き直しています。

CharaBox3の開発中に気付いたことで、VC#で、メニュー編集中にコピーを行うとVC#そのものが突然消えるというバグらしきものがありました。

お前はいい奴だった。

ふにゃさんのストーリーが完成しました!
というほど大層なストーリーじゃないんですがね。
それはそうと、ふにゃさんの標準ステージはそれなりに中々難しいらしいので、今更ながら、攻略ページを作り始めました。
ひとまずはステージの全体像だけ…。
背景がないのは、背景だけ小さく描かれていて、ゲーム画面以外ではまともに表示されないからです。

すっごく久々にメテオスDB更新しました。
とはいってもベスト作品2つ追加だけなんですけどね。

それと、ミディビも更新しました。
まず、MIDIが多くなるとページが非常に重くなるので、複数ページに分けて表示するようにしたこと。
とりあえず今は軽さ優先で1ページ5曲までの表示となっていますが今後利便性との兼ね合いで変化することはありそうです。
そして、ルールも作りました。
何かをしてはいけないというより、何をやってよいか、それが伝われば嬉しいです。
それと、こっそりIPの記録も。何かあったときのためにね。

バックアップできなかった

ミディビの自動バックアップ機能を作ろうと頑張ってみましたがダメでした。
アプレットのstopメソッドで記録してstartメソッドで呼び出しというのを試みたのですが、どうにもInternetExplorerの場合ページ移動しただけで全リソース解放してしまうようで、どのタイミングで初期化を入れてもどのタイミングで記憶してもことごとく消えてしまいます。
お絵描きアプレット等ではいったいどこにデータを保管しているのか不思議です。
何か変数に修飾詞をつければ保持されるのでしょうか。
それとも特別なデータの置き場所がどこかにあるんでしょうか。
まだ調べる必要がありそうです。

ルールを

久々にメテオスやってみましたよ。
腕は衰えておらず相変わらずレベル5相手に10回に8回は負けてます。

そうそう、掲示板にルールをつけようと思います。
やはりいつまでもノールールというのもどうかと思いますので。
ミディビについてもほとんど投稿のない今のうちにルールを作るというのもありかもしれません。

そうそう、掲示板への迷惑書き込みへの対策を考えてます。
別にうちは今迷惑書き込みは受けていませんが、まあ、迷惑書き込みに対する対策はあるに越したことは無いと思うので。
アイディアとしては、自動書き込みプログラム防止のため、フォームの名前をランダムにする。
もちろん完全にランダムにしてしまうとまともな書き込みさえも何がなんだかわからないことになるので、もちろんある程度の法則性は持たせておきます。
それと、NGワード機能。
以前使っていた改造掲示板ではNGワードが含まれていると機械的に投稿を拒んでいましたが、今度は、とりあえず保存しておいて、NGワードを含む場合は管理人がチェックしてOKを出すまで見られないようにします。

コンティニュー

ミディビにコンティニュー機能をつけました。
ただ単に保存しておいたバックアップファイルをアプレットに渡すだけなのでそう難しくはありませんでした。
lastをbreakと書き間違えることさえなければ。

受信

ミディビ、データ受け取りのところで受信データの種類判定にミスがあったので書き直してました。
なんかアプレットからデータ送信しても受信されないなとずいぶん頭をひねってました。
とりあえずeqと=を間違えていただけだったんで直してアップしました。
動作は変更されてませんが。

To Be Continued!

ミディビのコンティニュー機能を作ろうとしていたんですが、面倒でない方法をとるとパスワードを2回入力しなければいけない、パスワードの入力が一回で済むようにすればプログラムが面倒、という状況になりました。
だけどやっぱり一回で済むのならそれにこしたことはないのでなんとか頑張ってます。
とりあえず効率よりもわかりやすさ重視でまず読み込み部分と書き出し部分にプログラムをはっきり分け、読み込み部分は流用可能な形に、書き出し部分で用途ごとに異なった処理にすることにしています。
あとは、
音色プレビュー機能。
素早く何度もクリックを続けたとき偶数回目をダブルクリックとみなすことにした。
テンポの範囲チェック・例外チェック。
エラーの表示が間違っていたので修正。
といったところ

VC++2005EEでWindowsプログラム

VC++.NETでVC6のインクルードファイルとライブラリを使ってWindowsアプリケーションを作るのに成功しました。
しかしやはりVC6とかなり勝手が違い、標準関数と自作関数以外はオートコレクトもないし、よく見たらVC6でも一応設定はできないけど最適化は自動でやってるみたいだし、やはりC++に関してはまだまだVC6メインでいったほうがよさそうです。

今日はMIFUMIDIAの次の更新のためいきなりアプレットの仕様が変更になっても対応できるようにCGIを手直ししていました。
どうにも今の仕様じゃ続きから作る機能が実装しにくいんですよ。

伸び縮み

ミディビに音符の長さをクリックで変えられる機能をつけました。
何もないところを左ダブルクリックで音符をおき、音符を右ダブルクリックすれば消えるという動作は変わりませんが、それに加えて音符を左ダブルクリックで音符延長、中央クリックで短くする機能を加えました。
機能追加には積極的ではないのですが(既にいくつかの要望を断っています)、これはデザインを複雑化させることなく内容的に言っても直感的だし気付かない人は気付かなくても全く差支えがないので気軽につけることができました。
ついでにちゃちゃっとコンティニュー機能を実装しようと思ったのですが、これは送信データの内容の変更が必要そうだったのでちょっと後回しにすることにしました。

そういえば、熊と鳥のゲーム2で、ウィッチワールドで運命が微笑みました。
チイトチイト。

ミディビ完成

つ、ついにできましたよっ!ミディビ!!
レスとかファイルのロックとか返信とか削除はまだできてないけど、それらは随時更新していきます。
着想からずいぶんと無駄に時間ばかり掛けてましたが、これでひとまずMIDIを気軽にブラウザ上で作って投稿、という最初の構想は出来上がったのです。
思えば無駄に長かった…。

進化

なんか弟がバンジョーとカズーイの大冒険2を買ってきてやっています。
いやまあ、正当進化ですね。
まず1で使えていたアクションは全て初期装備。
なにしろクルクル山のふもとで基本アクションはもとよりジャンプパネルや靴系統も揃ってるんですから。ただし、ツメツメパンチだけは弱かったためかなくなって、キツツキアタックに変更されています。
1の舞台だったグランチルダのとりでは2年の歳月を経て崩壊、妹たちの開けた穴を通って別世界へ旅立ちます。
が、ゲームシステムそのものは同じ。ジグソーを集めて次のステージに進むタイプのようです。
1のエンディングでマンボ・ジャンボが、2が出れば1がかすんでしまうといった内容のことを言っていたのですがまんざらうそではなく、むしろスタッフがその意気込みで作ったような気配さえ感じます。
そして進化していたのはアクションやゲーム内容だけじゃない!な、なんとバンジョーの声が、勇ましい、漢の声に…!
そんなわけで爆ボンは後回しに…。

そうそう、ミディビは現在アプレットは掲示板から使えるようにはなっていますが掲示板そのものができていないのでまだアップしていません。

323DIA

アプレットはほぼ完成で、掲示板スクリプトを作ればミディビが本当のミディビになります。
掲示板との相性を考えるとまだ若干作らなきゃいけない部分もあるし全般設定はデザインがかなり悪いので改良する必要がありそうですが、機能としては大体出揃ったようです。

重い

ミディビ、テンポチェンジで手間取ってます…。
なんか、、、eclipseの止まるタイミングが分かりません。
なんでドラッグの最中に凍るかな。

テンポ

ミディビ送信データを変更するためリンクを切ります。
そして今はエラーメッセージの表示方法とテンポ・作者などの全般設定を作っています。

もうすぐミディビ完成させたい

う~む、C#のコントロールによるレイアウトはJavaのように自然な大きさに調整されるとかそういうのはないみたいです。
でもまあレイアウト関連はVBとかに比べるとやっぱり自動的にやってくれる部分が多くて助かります。
えっとですね。C#。どっちかというとIDEも含めればVBに近いです。
VBをC風の文法でかけるようなものです。
オンラインヘルプがあまり当てにならないのがつらいところですがメンバ自動表示や、ツールチップなどで機能を簡単に説明してくれたりするのでそっちで補えそうです。

そうそう、ミディビ更新しましたよ。
内容はバグ修正のみ。プログラミングコーナーも更新です。

そしてバグ発見

ミディビを久々に更新しました。
今日やったのは、
・音の強さを変えられるようになった。
・編集単位の導入。
・演奏開始位置を指定できるようになった。
・ピアノロールをクリックしたときのコードをある程度まとめた。
・sequencerをMIDIAppletに移動。
・演奏/送信をMIDIAppletに任せてMIDIDocumentはデータ管理のみにした。
とまあ、こんなものです。
普段ならタグ使ってリスト表示と行くところですが、今回はサンプルに付属するテキストからのコピーなのでそのままプレーンテキストになってます。
そうそう、先ほどブラウザ上で動かしたら、演奏中に他のページに移動すると演奏が止まらなくなるバグを発見したのでそのうち直すつもりです。
多分明日になるでしょうね。
この挙動はプログラミングコーナーの更新ネタにはもってこい。

<前 次>