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

<前 次>

αゲームズ

α系のゲーム、これ以上更新することもなさそうだし、ファイルサイズも大きくないし、個別で落とすのは面倒そうだし、一緒にインストールしてもあまり干渉しあわないし、全部詰め合わせで一括ダウンロードできるようにしてもいいかなと思ったりしています。
やっぱりミニゲーム類は一度にたくさんもってきて好きなのをやるというのがよさそうだし。

そうそう、Bomber丸Worldのライブラリの説明ページも書いたりしています。
まだアップしたりしていませんが。

リファレンス

MusicPlayer6はほぼ出来上がりました。
後はアップすればよいのですが、なんとなく手抜きソフトっぽいので、正式な更新として扱うか、こっそりアップしてしまうべきか考えてます。

Bomber丸Worldの開発室のライブラリのページに、ライブラリの内容解説を加えることに決めました。
内容は何も書いてませんがとりあえず先にページをアップだけしておきました。

MusicPlayer6

Bomber丸Worldのウィンドウシステム、ウィンドウの各種数値設定のための補助メソッドとかを用意したらずいぶんと使いやすくなりました。
Moveメソッドを使えば、左上の位置を指定すれば大きさを買えずにウィンドウ全体を移動し、ウィンドウ内の各項目も同じだけ移動します。
以前はこれが手動だったため全部手入力で入れなければなりませんでした。

そうそう、前作っていたのとは別路線でMusicPlayer6を作成中です。
今更また作ることになるとは思ってもみませんでしたが、今度はツールとして利用できたらと考えています。

拡大比率

で、ウィンドウシステムの改良はせずにグラフィックエンジンのほうの改良を進めてました。
画面拡大の簡易メソッドを追加して、フルスクリーンのときに使用するディスプレイモードも絶対に確実なものを選べるようにしました。
絶対に確実なディスプレイモードとはどういうことかというと、つまり、現在使用中のディスプレイモードで変更しなければ一番確実ってことです。
ただ、ライブラリにyaneSDKを使っている都合上、形式上ディスプレイモードの変更という名目でフルスクリーンにしなければならないので、先に現在のディスプレイモードを調べておいて、そのディスプレイモードに変更するというやや回りくどい方法でフルスクリーンにしています。
現在使っているディスプレイモードを使えば、大抵は可能な最大限の解像度でもあるから一石二鳥ですね。

1156603999.png

閉ざされた空間

ふにゃさんの新ステージ作ってます。
追加用ステージということで、全体的な流れよりネタ重視で、難易度は本編より難しくしていこうと思います。
とりあえず今日作ったのは「閉ざされた空間」です。
元々はもっと見栄えのするステージだったのですが、最終的にシンプルな形に収まりました。
一見クリア不可能そうなステージですが、裏技を使えば一発でクリア可能です。
もう一つ作りかけで放置されているステージがあるのですが、正直作るのもテストプレイするのも大変すぎて進める気が起きません。

Bomber丸Worldもまた進めたくなってきたので、とりあえず20日までの分のライブラリをアップしておきました。
ウィンドウシステムを具体的にどう改善するかを考えているところです。

ちょっとジロリンガ

ウィンドウシステムはとりあえず動かせる段階までできたので完成ということにはしておいたのですが、ものすごく使い勝手が悪いので、これからどんどん改善していこうと思います。
他には、グラフィックエンジンの座標変換の簡易メソッドが誤った結果を出していたため修正、マウス入力が昨日変更したときの影響でXY逆転していたため修正、テキスト表示のカラー変更に対応、といったことをしました。

爆ボンバーマンのグリーンガーデン1面とホワイトアイス1面のどきどきモードのデータを入力しました。
あとついでに、ブルーリゾートで適当に奮闘してみました。

少しブレインガ

Bomber丸Worldのウィンドウシステムがほぼ出来上がりました。
まだテストが済んでいないのでまだなんともいえないのですが、ウィンドウ内部の描画に使うクラスを全体を描画するためのクラスで使いまわしているため描画周りが少し回りくどくなってしまいそうです。
入力部分も、マウス入力に問題があったり、仮想キーの割り当てがまだ完全ではなかったため手直ししました。

サマルトリア王子同盟

Bomber丸Worldのウィンドウシステムを引き続き作ってました。
ウィンドウシステムではマウスによる項目選択に上下左右キーでの移動、Tabでの移動なので、それにあわせて入力部分のプログラムにも変更を加えました。
本体もそれなりに進んでます。

そうそう、サマルトリア王子同盟作りました。
なんというか、アキヤメ始めてからネット上でやって見たいと思ったことはどんどん実行しちゃってます。
いつ飽きて消えるかわかんないけどしばらくの間はよろしくね。

ロボット対策

かなり見つけにくい場所ですが、旧アップローダーに、ロボットによる迷惑書き込みを防ぐ対策を施しました。

Bomber丸Worldのウィンドウシステムはなかなか進みません。
大まかな目処が立ったとはいえ、どんな情報を記憶しておいて、何と何を何で関連付けて、どのタイミングで何をどう動かすか、など、はっきりと決まっていないことが多すぎたのです。
だから、実際にコードを書きながら、このコードを書くことは意味がある、之は意味がないからやっぱり消す、といった試行錯誤を繰り返して、ようやく形になり始めました。

わきあいあい

Bomber丸Worldのトップページを更新しました。
JavaScriptによりランダムメッセージが表示されます。
これはとりあえず今考えているキャラクターのせりふの中から出しています。

それと、戦闘曲の一つがほぼ完成しました。
これには主人公4人のパートと敵のパートが入っていて、実際のゲーム中ではどれかが消えたりまた出たりします。

そうそう、ウィンドウシステムについてはある程度目処が立ちました。
ウィンドウ基底クラスのメンバとして、選択項目の構造体またはクラスを入れておいて、その選択項目は選択範囲と識別コード、そしてキーに対する反応を記述しておきます。
描画は文字とか画像とか半透明とか色々あるので基本的に自動化せず、CBWDrawに直接レンダリングします。

1155740157.mid

とどめ

またしてもトドメを刺しきれていなかったので今度こそホントにトドメを刺しました。
全体像のほうは全然作っていません。
なんだか全然やる気が起こらないのですよ。
そうそう、yaneSDKのCTextDrawを使ってステージタイトルの表示をHTML対応表示もしてみようかと思ったのですが、下のナビゲーションとの相性も考えて、どうせやるなら自作、自作しないなら述べるゲームに特化したCTextDrawは使わない、という方針にしました。

Bomber丸Worldのウィンドウシステムは、もっと細かく仕様を決めるためシステムの詳細ページにあったマルチウィンドウシステムの項目を専用ページに移して加筆中です。
いろんな状況を考えると安易にプログラムを書き始められないのですよ。

ウィンドウシステム

Bomber丸Worldのウィンドウシステムを作り始めました。
しかし、システムの詳細ページにあるあの状態でもまだ全然具体的に書いてるわけじゃないので、つまり、もっと具体的に色々決めないと作れなさそうです。

そうそう、プログラミングコーナーのスクリプト言語を作る企画のほうも進めてます。
とはいえまだこちらも準備段階。
プログラムは一行も書かず、予備知識ばっかり書いてます。

HTML表示

続いてHTMLを解釈して表示するCTextDrawのBomber丸World用カスタマイズバージョンを作ってみたのですが、やはりこういう高度な内容のものは作る対象が絞られてしまっているらしく、yaneSDKが主なターゲットとしているノベルゲームにはよく合う内容らしいのですが、RPGであるBomber丸Worldには合わなくて、結局作ってはみたものの没ということになってしまいました。
扱いが面倒な割りにはやりたいことができなかったり余計なものが付きすぎていたりするんですよね。
CSenarioViewなんかは最早論外。

1155307992.png

InputSystem

今日はBomber丸Worldのキー・マウス入力システムを作りました。
キー入力に関してはDirectXが出してきた値をそのまま渡すだけですが、マウスに関しては、画面を拡大することもあるので、それに応じて適宜補正をかけて値を出します。
ついでに描画関連も色々改良しました。

1155220535.png

テキスト表示

今日はBomber丸Worldのグラフィックエンジン2のうちテキスト描画を作りました。
ドット絵は拡大画面でも常に320x240の解像度のときと同じものが表示され、拡大されてカクカクのドットが明らかにわかるようになってきますが、文字列のほうは高解像度なら高解像度で文字が書けるので、ドット絵として拡大するのではなく、大きさと拡大率情報を保持しておいて、大画面では大きく書くようにするのです。
このために、ドット絵を正しく拡大して表示するルーチンと文字を大きく表示するルーチンが必要になりましたが、とりあえずこれでグラフィックエンジン2はひとまず完成といえそうです。
今日の画像は、3倍拡大画面での実行結果です。

1155048422.png

ルア

う~む、組み込みに特化したプログラミング言語Luaなるものがあるらしいです。
まあ、確かになかなか性能は素晴らしいものがあるのですが、やはりBomber丸Worldに組み込むには狙っている方向性が違っていて組み込めそうにありませんでした。
もっとも、プログラミングコーナーで作り始めてしまった以上どちらにしても後戻りはできなかったんですけどね。
ゲーム本体側からスクリプトの中の特定の機能を気軽に呼び出すというのはLuaでは結構面倒な手順を踏まないといけないんですよ。
スクリプトの実行中にスクリプトの内容そのものを書き換えることもできなさそうだったし。

アキヤメの舞台設定などを復活させました。
前はあまりにも多すぎるキャラデータをHTMLに変換する労力に耐え切れず閉鎖してしまったのですが、簡易的にテキストをHTMLに変換するプログラムを組んでどんどんキャラを出していくことにしました。

簡単なストーリーの流れ(ちょっとネタバレ)

<オープニング>
シロ、仕事する

同僚のテルルと一緒に帰る

途中売店に立ち寄る

シロだけ入って買い物しているとテルルさらわれる

シロ、終わってから気付き、慌てて帰る

クロに警察は当てにならないといわれ、自分らで探すことになる

途中、ふにゃと出会い、なぜかついてくることになる(任意)

また売店に立ち寄る

謎の男が襲われているので助けることになる

バトル:ヨワシ戦(ふにゃを仲間にしていなければこの戦いの途中で仲間になる)

謎の男が仲間になり、事件の事を聞かされる

とりあえず、クリアス・バイオ研究所なる場所へ行くことになる

<クリアス・バイオ研究所>
入るといきなりコピー機登場

バトル:コピー機戦

(途中、まだ考えてない)

よくわからないがクリアスが悪者ということらしいので戦うことになる

ボス:クリアス戦

謎の男が魔法のようなものでクリアスをどこかへ飛ばしてしまう

謎の男によると、他にも怪しいところがあるらしい

<ホーリィ製鋼所>
町でオミナガミから社員証をもらう(任意)

社員証を使い、入る(ない場合、扉を爆破し強行突入)

なぜかアラ軍団に襲われる

バトル:アラ軍団戦

(やはり、ダンジョン内の仕掛け等は実際作り始めてから考えるべきだろう)

開かずの扉を爆破するとプララに襲われる

ボス:プララ戦

謎の男が魔法のようなものでプララもどこかへ飛ばしてしまう

<海洋研究所>
どこかで船を借りて海洋研究所へ

(なにもかんがえてない)

ボス:ヨシフミ戦

謎の男が魔法のようなもので(以下略)

なぜか帰りに詐欺容疑で警察に捕まる

<刑務所地下>
留置所じゃなくて刑務所…?ここの警察は当てになりませんから

囚人の一人に地下通路へと案内される(何もせず果てしなく長い時間待っていれば釈放されることも可能)

なぜかキャティアと戦うことになる?

バトル:キャティア戦

(これといった大事なイベントは用意されていない)

出口を塞いでいるボス!と戦わねばならない

ボス:ボス!戦(本名は今は教えません)

謎の男が魔法のようなものでボス!を……飛ばせなかった

ともかく、脱出

<インサイド・コエダメ>
病院の裏口から自然園へ潜入

どこかにある穴から地下のインサイド・コエダメへ入れる

(ここは、本当に何のイベントもない)

なりゆきでゲロノフン2世と決闘することになる

ボス:ゲロノフン2世

謎の男が(以下略)

<カリスマ小中高大一貫校>
練習試合という名目で入れるらしい

というわけで強さを試される(でも弱い)

バトル:先生戦(この先生にはまだ名前がありません!)

(ここには大小さまざまのイベントがあり書ききれない!)

悪徳校長を退治することになる

ボス:ノーリッジ戦

謎(以下略)

<カイモチ村>
謎の男から、最後に行くべき場所がカイモチ村だと知らされる

カイモチ村に入るとふにゃが何かの存在に気づく

バトル:オバケ戦

(以後、各地にいるオバケ達が見えるようになり、会話も出来るようになる)

村長かいもち1世に話を聞く

どこかの壁を爆破しラストダンジョンへ潜入

謎の男が仲間から離脱する

バトル:ツヨシ戦

(謎の男を再び仲間にするかどうかでストーリー分岐)

オートツ♂♀

掲示板のアイコンにマトモデナイモンスターとレダフティクを追加しました。
そしてついでに、コネコベーダーも修正しました。

今日の絵は、Bomber丸Worldの敵として出そうと考えてみたキャラクターだけど、いろんな意味で使いにくくて却下されたものです。
いや、元ネタはおねじとめねじです。
変な想像しないでください。

1154616381.png

歳の差カップル

Bomber丸Worldのグラフィックエンジンの拡大バグ、1ドット余計に拡大することで右下が潰れるのは解消できました。
左上が膨らむほうはどうにも解消できなさそうですが、左上を透明にすれば少なくとも膨らんでいることはばれずに済みそうです。
ややインチキ臭いですが結果にはあまり影響がないので勝手によしとしておきましょう。

パネルγのチュートリアルのページを更新しました。

今日はアルニックの3歳の誕生日なのです。
そこで、久々、今日のアルニック:
美文>3歳のお誕生日おめでとう!!
アルニック>あっ、今日あの人の誕生日じゃない
美文>あの人ってあなたですよ!
アルニック>・・・・
美文>あれ?契約期間過ぎてるのにウイルスバスターアップデートできる
アルニック>こんどデートにいきましょうよ
美文>い、いけません。私は21歳、あなたは3歳。歳の差が有りすぎます!!
アルニック>それっていい話じゃないの

1154443527.png

<前 次>