「Bomber丸World」に関する日記(17)

<前 次>

英語づくし~♪

「Bomber丸World」のタイトル画面を作り始めました。
最初に"Bomber丸"が普通に出て来て"World"がどかーんと出て来るようにしてみたいです。
一応「Bomber丸」はH社の爆弾男とは関係ありません。
念の為。

「ふにゃふにゃ」は進んでいません。
隠し要素だったら簡単に作れるのですが、それは最後にしようと思っているのです。
ステージ作りも残ってますねぇ……

今日の学校の授業の時間割は英語、英語、英語、物理でした。
私立の学校なので土曜日も休みではないのです。

微妙に更新

昨日背景と同じ色で公開したMIDIについてですが、よく聞くと後ろに全く意味をなさない5拍子の音がなっているのに気が付くと思います(その前に見つけた人がいるかどうかが問題なのですが)。
そしてその5拍子とループ位置を合わせるためにループ直前の部分が3小節で終わるという中途半端な状態になっています。
ループ開始位置は18432、終了位置は145152です。
これと同じような音楽は少なくともあと5つはあります。

ダウンロードページの「Bomber丸World」のところに意味のある情報が全くなかったので一文だけ意味のある文章を加えました。

「ふにゃふにゃ」は、攻撃の反射のアルゴリズムを考える作業中です。
主人公は反射した自分の攻撃でもダメージを受けます。
こちらはBGMが全然出来ません。

学校で、ある数学の問題を、クラスの中で私一人だけが解けました。
結構嬉しいです。

周りを海に囲まれて

「Bomber丸World」のBGMがもうひとつ完成しましたので今あるものと置き換えて上げておきます。
海の町の音楽です。
Bomber丸の音楽にしては大袈裟すぎるかもしれませんね。
まだHarpかStringsの音が少し変なのと、大きすぎるボリュームを修正する必要がありそうです。
ループ部分は強引に作りましたが、その割にはいい感じに出来たと思います。

実際にゲーム内で鳴らそうとしたところ、正しく読み込まれず3分間悩まされました。
悩むのが3分間で済んだのは「MusicPlayer3」で嫌と言うほど同じ現象を経験済みだったからです。
DirectMusicオブジェクトを解放せずに同じ名前のファイルを読み込もうとするとDirectMusicは手抜きをして読み込み直さないのです。
ファイル名に番号を含めることで解決しました。

ちなみに、「MusicPlayer4,5」ではファイルを読み込む前にDirectMusicオブジェクトをいちいち解放してから再度確保してから読み込むことでこれを解決しています。
多少時間がかかりますが、これらのソフトの場合はあまり問題にはならないはずです。

BGMはダウンロードコーナーで探すときっと見つかりますよ。

うまくいった

やっと「Bomber丸World」のBGMの再生に成功しました。
DMLibでは絶対パスが使えなかったりCSoundのdeleteとMIDI_End()の順番を間違えたりクラスを自殺させなくてはいけなかったりと、兎に角慣れない事なので手間取ってしまいました。
周りから見ればたったの2日で苦労したとは何だってものでしょうが。
密かにひとつBGMが完成したので明日アップします(今日は無理だった)。
実はクリア後ダンジョンのBGMだったりします。
クリア前でも入り口までは入れるんですけどね。

「ふにゃふにゃ」は年内に完成させるつもりです。
いや、させます。

うまくいかない…

「ふにゃふにゃ」で主人公のコピーを設定する機能を廃止してステージの左右端を繋げる機能を付けました。
表示の部分が中途半端にしかできていないので見た目は変な状態になってしまいますが。
それに伴ってスクリプトも少し書き換えました。

「Bomber丸World」のBGMを読み込む機能を付けてみました。
が、メモリエラーばっかり出て作業はかなり難航しています。

嗚呼、受験モードですねぇ…

模試を受けました。
次の模試の申し込みをしました。
センター試験の願書を貰いました。
第一志望の大学の募集要項を取り寄せました。

「ふにゃふにゃ」で、主人公から一定の距離の場所に現れる主人公のコピーを作る機能……のための変数を定義しました。
実装はこれからです。

「Bomber丸World」のBGMの定義ファイルを作り始めました。
定義ファイルの内容は、

  • ファイル名
  • ループ開始・終了位置
  • タイトル
  • 作者からのコメント
が計32個です。

アイデンティティーとアイデンティファイ

IdentityとIdentify読み間違えた…
そのせいでちぐはぐな日本語訳になってしまいました。

「周りを海に囲まれて」のハープの音を直してみました。
まだ変ですけど前よりは聞けるようになりました。

模試の申し込み用紙を貰いました。
これでも一応私は受験生ですからね、模試だって自分から受けるのです。

昨日、ちょっとした不注意から、400時間以上かけたデータが消滅しました。
トホホ…
400時間のデータが消えたらもう開き直るしかないです。
それでもその当日は夜中々眠れませんでした。
まあ、400時間のデータの中には取り返しのつかない間違いをしてしまったことも記録されてしまっていたので、それをやり直せる点では良かったと思っています。
それにしても、消えたのがゲームのセーブデータで助かった……
これが「ふにゃふにゃ」のソースだったら自己紹介のパソコンを叩き壊した回数が少し変わるところでした(バックアップは取ってあるけど)。

8の倍数

「ふにゃふにゃ」の隠れ機能と同様に、「Bomber丸World」のBGMは32個です。
DWORD型の変数を無駄なく利用できます。
この処理を作るためにどれだけサイズがでかくなるものやら…

「周りを海に囲まれて」のハープの音がおかしくなっていました。
近いうちに直すつもりです。
まともにコードのことを知らないと変な音楽ばかりできてしまいます。

今度の更新は多分24日、「Anti『Cのススメ』」にしようと思います。
TabIndexについては知らない人はいないでしょう。

DMLibはとても便利

「MusicPlayer4」をバージョンアップしました。
追加の位置を変更しました。

「Bomber丸World」のDirectMusicがビルドできない問題が解決しました。
とはいっても原因がわかってそれを直したわけではありません。
結局どうにもならなかったので、他の人の作ったDLLを使うことにしました。
BBEさんの「簡易DirectMusicDLL」なんですが、見てみるとなんと私にとって非常に理想に近いものではないですか!
これだとリンカエラーもでないし……ムフフ…
ただ、たった一つだけ理想と食い違う部分があるのでその部分を変えてくれるよう頼んでみるつもりです(変えなくても充分動きますけど)。
次の更新は「The Phoenix Gamers」とのリンクになるかもしれません。

昨日の日記に間違いがありました。
BGMのことは「ふわふわふにゃ」の方です。
トゲが186個もあったらもうたちまち2重3重に取り囲まれてしまいます。

秘密の更新(どこが)

またも更新履歴にない更新です。
ダウンロードのVBソースに「2つの構文の速度比較」を追加しました。
リンク集にもあるとあるサイトで話題になった事があります。
プログラミングの「VB小ネタ」で高速化について載せました。
小ネタに載せたことを速度比較で実際に使っています。
実は自己紹介も更新しました。
私についてよりわかるようにはならないと思いますが…

「Bomber丸World」のDirectMusic関連の不都合は未だに直りません。
DirectX SDKインストールしなおしたのに…
もうここまできたらやねうらお氏の所に文句を言いに行くしかなさそうです。

凍て付いた教室

それは今日の物理の授業の前の事でした。
物理教室には前の日から鍵が掛かっており、授業の時まで入れない状態でした。
しかし、鍵を開けて入ってみると、中は冷蔵庫の中のように恐ろしく寒くなっていました。
冷房が一番低い温度に設定されていたのです。
昨日から教室内には誰も入れなかったのに何故…?

「Bomber丸World」は戦闘中に逃げるのが当たり前のRPGです。
何しろ敵に強いのが多いのです。
場所によってはボス以上に。
特にニストなんて不死身だし。
しかしそんな敵でも多くはある程度ダメージを与えれば相手の方から逃げてくれるのです。
いくらゲームの中でも、無駄な戦いは避けたいものですね。

次回の更新予定日は9月9日です。

無題

今日は先生の携帯電話は鳴りませんでした。

「ふにゃふにゃ」で、主人公同士の縦方向の当たり判定を作りました。
ぶつかると少し跳ね返ります。
後残っているのは、結果の記録、ステージの作成、凍らないダメージ処理、凍り付く時間の調整、ステージランダムセレクト機能、ステージエディタ、などです。

「Bomber丸World」に使う音楽を幾つか作りました。
「Bomber丸」のへっぽこ音楽をアレンジしたものが多いです。
町の音楽がそれにあたります。
今ファイルとして存在している音楽のタイトルを挙げておきます。
「何故この音楽か、それが謎」
「周りを海に囲まれて」
「宮殿でドーナツを食べたい」
「狂わされた存在」
「オバケが出たぞ!」
前の3つがへっぽこアレンジ曲です。
希望があればアップしてみますがなければしません。

無題

「ドラゴンボールZ」を録画したビデオを物凄く久しぶりに見ました。
悟飯とトランクスが人造人間二人に見事にやられてしまうスペシャルでした。
これがまた笑い所満載のスペシャルで、大爆発に巻き込まれながら普通に喋るリポーターで早速笑わせてくれました。
見終わった後巻き戻してみると…

  • 何故か「ウルトラマン」のマッキー1号が紹介されていた
  • どういうわけかバイキンマンが猫の大王に乗っかられていた
  • あろうことか仮面ライダーRXが地球を粉砕していた
色々録画されていました。

「ふにゃふにゃ」に使う攻撃の時の画像を作りました。
攻撃周りの主人公の動きを作りました。
何度も連続して攻撃すると疲れて暫く動けなくなってしまいます。

「Bomber丸World」に使いたかった何かに似ているBGMは最初から作り直すことに決めました。
いい(≒ろくでもない)メロディが思い付きましたので。

無題

「IntersectRect」のサンプルができました。
とてもIf文では対応できないようなパターンでも使えます。
当たり判定をIf文でやっていて苦労した人にとっては感動的なくらいです。
22日にアップする予定です。

サンプル2でエイミーにコテンパンにやられている敵は「Bomber丸World」でボスとして登場する、プララというキャラクターです。
前半に登場しますが、結構強いです。
今日はそのプララのアイコンサイズの絵を描いていました。
というより100%アイコンですが。
ただでさえドット絵が下手なのにたったの4階調でメタリックを表現するのはかなり難しいです。
「Bomber丸World」のマップチップ用と「パネルα」の余ったマス用です。

無題

「Bomber丸World」でyaneSDK2ndを最新版にしてやっと気付いたんですが、マルチスレッド周りのエラーはただ単に私がプロジェクトの設定でマルチスレッドにするのを忘れていただけだったようです。
・・・・にも関わらずDirectMusicのエラーはとれず。
もしかしたらDirectX SDKが悪いのかもしれません(私はDirectMusicを扱う部分には一切触れていませんし、やねうらお氏のせいであればとっくに苦情がきているはずです)。
DirectMusicを使わない設定にしてとりあえずエラーが無くなったことにしていますが、いつか直すつもりです。

「ふにゃふにゃ」で、新しいステージを作り始めました。
ステージタイトルは「まちかどバトル」です。
ステージ名が仮名だけなのはふにゃだから、ということにしておきます。
人通りが少なく、車も全然通らない場所(かもしれない)ですが、実は地下に入れたりもします(多分)。
前にあったステージは操作説明用ステージとして残すつもりです。

無題

yaneSDK2nd finalをダウンロードしました。
これならエラーがなくなるかな?
多分無理だと思うけど。
何故なら、マルチスレッドあたりに問題があると見ているからです。
エラーが出るのはDirectMusicのまわりだけなので、BGM再生の部分だけDLL化してマルチスレッドとは無関係にしてしまうという手もありだと思います。
これの意味することはつまり、「MusicPlayer6」の制作・・・・になるのかなぁ。
MusicPlayerばかり増えすぎですね。

無題

yaneSDK2ndを使ってプログラミングを始めたんですが、いきなり最初からつまっています。
まずコンパイル済みヘッダの設定で苦労して、インクルードファイルを探すのに苦労して、ヒープ領域の確保に苦労して、今リンカエラーが取れなくて困っています。
何とか解決策を探してみます。

無題

マザー2でネスがレベル99達成!!
行き着くところまで行った。

40円玉について検索したら何百件もヒットした。
何故だろう?

「Bomber丸World」一から作り直し。
yaneSDK2nd使用。

今日は終業式だった。
放送による終業式だった。
音量が0だったので何も聞こえなかった。

無題

「Bomber丸World」に登場する敵には、結構特殊なものが多いです。
例えば…

・攻撃力が0
一番初めの戦闘がこれに当たりますが、一切ダメージを受けません。
・何もしなくても勝手に死ぬ
あるボス戦でボスの横に出てくる無意味な敵です。
・お互いに邪魔しあう
一方が攻撃するのにもう一方が台無しにしてしまいます。
・連携攻撃を行う
つまり、連携をいかにして崩すかがポイントなのです。
・恐ろしく大きい
見上げるような大巨人!です。
・攻撃力が∞
相手の攻撃を受ける前に倒さないとゲームオーバーです。
・倒し方でストーリーが変わる
ネタバレ注意です。
・防御力が∞
なんと、倒せません!
・成功率100%の全体即死呪文を連発する
呪文を間違えさせれば怖いもの無しです。
・やたら長いメッセージを表示する
戦闘が成り立たなくなってしまいます。
・ワープする
戦闘背景が変わるだけですが・・・・
今考えているのはこのくらいです。

戦闘のプログラムはウィンドウプロシージャのようにメッセージを受け取ってそれに応答する、という形式にするつもりです。

無題

プログラミングに「IntersectRect」を追加しました。

最近開発が停滞しているRPG「Bomber丸World」の戦闘は、終了する条件が色々あったりします。
敵を倒した、逃げ出した、なども勿論ありますが、他には仲間が死ぬ(即ゲームオーバー)、仲間全員が大ダメージにより戦闘不可能になる、戦意喪失、その他特殊な条件、など。
「ふにゃふにゃ」と同じく、一部にスクリプトを使っている(予定)ので、色々特殊な戦闘を作れます。

<前 次>