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

<前 次>

期限切れ

拡大回数を減らすという案はちょっと苦しいことがわかりました。
拡大回数を減らすには、原寸大で別画面に描画して、拡大する必要が出たら実際の画面に拡大表示するのですが、これだとα情報(半透明)が乗ってこないので拡大時に色化けが起こるんですよ。
ちょっと無理矢理っぽいですが、やっぱり拡大はそのつど行うようにして、上下左右端のドットは透明にして表示しないようにするのが一番手っ取り早くて現状からの変更が少なくて済む方法でしょう。

今日でウイルスバスターの契約期間が切れるのですが更新料を振り込んでいません。
さらばウイルスバスター、そして私は新たなウイルス対策ソフトを捜し求めるのです。

ずれるバグ

Bomber丸Worldのグラフィックエンジン2、ダメでした。
どうにもライブラリ側のバグらしく、拡大時にドットがずれるんですよ。
オプションで全画面拡大をするこのゲームでこのずれはかなりつらいです。
小さいドット絵を沢山拡大するこのゲームではかなりつらいです。
せめてもの救いは、ずれ方に非常にわかりやすい法則があって、拡大回数さえ減らせばずれは極限まで減らせるということです。
それでも、最終的に拡大が入るので最低1ドットはずれるわけで、ドット絵によるドット単位のこのゲームにはつらいものがあります。
だから最低限の拡大の時にはずれの分の補正をかけてやればよいわけです。
ちなみに、このずれ方というのは、左側と上側のドットが1ドット膨らんで、右側と下側が1ドット縮み、全体が右下方向に1ドットずれるというものです。
つまり、変形する端っこの1ドット幅は非表示にして、全体にずれる分は左上方向に1ドットずらして表示して差し引き0にしてやればよいわけです。
このバグはライブラリの拡大アルゴリズムによるものであるため、こっちが同じライブラリを使う限り、環境依存でバグが発生するかどうかは変わらないはずです。

そうそう、弟がバイオ0をクリアしてました。
でかこうもりを倒してからはとんとん拍子だったようです。

1154270547.png

挑戦状

Bomber丸Worldのグラフィックエンジン2、よく考えたらドット絵と文字を別々の画面に分けたら文字の一部がドット絵に隠れるようなことができなくなるんでした。
というわけで、面倒だけど画面は一つにしておいて、ドット絵なら拡大、文字なら大きく表示と、別々の処理を行うことにします。

爆ボンでなにやら挑戦状を受け取ってしまいました。
6-3をフルパワーON+ハートなしでノーミスクリアせよとのこと。
最初の2つはスイッチ一つ一つを押した後地面に降りれば問題なさそうですが、残りの2つは広間渡りが入るのでかなりきついです。
気絶回復直後のわずかな無敵時間でやり過ごせるでしょうか…。
あるいはデモシーンでの無敵時間もあったような気がします。
とにかく死ねます。

解像度の違い

Bomber丸Worldのグラフィックエンジン2を作り始めました。
まあ、描画周りの細かいところはいまだ暗中模索状態なので進行度は極めて悪いのですが。
これ、どういうものかというと、低解像度の画面にレンダリングした内容を高解像度ディスプレイ向けに拡大表示するというものです。
グラフィックはドット絵なので高解像度だとつらい、だけど文字表示やマウス操作は低解像度だとつらい、だったら大は小を兼ねるということで、小さく描いて大きく表示という手法にしてしまおうと思ったわけです。
内部的には3つの画面をもっていて、1つは低解像度のドット絵用、1つは高解像度の文字表示用、1つは画面用です。
高解像度の2つは既存のライブラリでまかなえるので、自前で作るのは低解像度の1枚だけとなります。
あと、テキストの低解像度側から見たサイズと高解像度側から見たサイズが違うので、このあたりをうまく吸収できるような文字列表示機能も作らねばなりません。

グラフィックエンジンバージョン2

レポートがそろそろ一段落着きそうで、またいろいろできるようになりそうです。
ん?今までも色々やってたって?
まあいいじゃありませんか。
というわけで、Bomber丸Worldの新しいグラフィックエンジンを作り始めました。
いやね、前のはマップ表示用だったんで直接的にグラフィックエンジンと呼べるものじゃなかったんですよ。
今回は、画面拡大に対応したグラフィックエンジンということで、ウィンドウサイズに合わせてゲーム画面を拡大するギミックを入れようとしています。

バグじゃなかった…らしい

Edgeで絵が消えるのは、掲示板のログを見る限りわざとそうなるようにしているようです。
パレット番号16番以降が実際の使用色数とは関係なしに破棄されるようで、使っている色16色を集めて16色パレットにすると思って使ったために、16番目以降に配置された色が消えて絵が消えたようです。
しかしこれはこれで誤解を招く表現だと思うのでバグ報告ではなく小さな要望として報告することにします。

今日アップした画像は昨日Edgeで消えたのを自力で描きなおしたものです。
サイズが少々大きすぎたようなので途中まで描いて中断していますが、Bomber丸Worldに登場するマトモデナイモンスターの絵です。

そうそう、昨日Edgeのことで頭がいっぱいで書き忘れていたのですが、ゼルダの伝説夢を見る島DXを見つけてきました。
基本的にDXじゃないのを既にクリアしているのでストーリーは知っているのですが、やっぱり色があったほうがいいですね。
ポケットプリンタとかは全然興味ないんですか。

1153839229.gif

ちょっと情報出し

こんな日はキャラボックスから情報でも出しておきます。

名前
いずみ
情報
女 24歳 137cm
説明
ペットショップのオーナーでありながら戦闘家も兼業している女性。
鼬の耳を模した帽子をかぶっており、また首に巻いたスカーフは今までペットショップで扱った動物たちの毛で作られた動物たちの祈りのこもったスカーフで、危機のときたまには役に立ってくれる。
かすみ、つむじ、こころの3匹の鼬をいつも連れているが人見知りが激しいのかあまり姿を見せない。

あまり知られていないことだが、耳帽子は補聴器もかねており、耳の遠いいずみには必須のアイテムだ。

戦利品の孔雀印の鼬の餌はいずみペットショップで販売されている通常の鼬の餌と同じで食べると体力を少し回復するが、ブランドの影響で売った場合の値段が孔雀印のほうが高くなる。

「こーんにちわーあ!
いずみペットショップオーナーのいずみでーす!」
「うにゅ、今のは思い出し泣きですー。」
「ベティさんに出会うことがあれば私を呼んでくださいね。」

使う技:
 かまいたち(文字通り鎌を持った鼬で攻撃する)

登場パターン:
 いたちっこいずみ(いずみ一人)

戦利品:
 孔雀印の鼬の餌
 鼬の餌
 現金

真実の目玉からのコメント:
「カマイタチ、ソレハ真空ノ渦ヲ作リ投ゲ、
 刃物ヨリ鋭ク相手ヲ切リ裂ク技
 ・・・・ジャナイヨウデスネ。」

いずみさんのイベント:
1.戦闘家として勝つ
2.ベティさんについてのお願いを聞く
3.ベティ戦でいずみさんを呼ぶと…?

GIFInfo

Bomber丸WorldのアニメーションファイルにGIFファイルを使おうかと思っているのでとりあえずGIFファイルの解析のために、GIFファイルを読み込んで色々な情報を抜き出して表示するソフトを作り始めました。
ファイルフォーマットはhttp://www.geocities.co.jp/SiliconValley/1361/gif87a.txtを見ながら作っています。
現在のところ「Screen Descriptor」まで読み込んでます。

みふみんすくりぷと!

で、今度の更新はプログラミング言語作りになったわけです。
簡単なものだということでスクリプト言語と呼んでいますが。
実際のところ、Bomber丸Worldに使うスクリプトのページをプログラミングコーナーにもってきただけです。

ふにゃさんのシークレット機能を一つ実装しようかと思ったのですが、ちょっと考えなければならない部分が多かったので今回は中途で終わりました。
考えてもみればシークレット以外にもやるべきことは多くありますし。

GIFアニメーション

Bomber丸Worldのアニメーション機能、GIFアニメーションを使おうかと考えています。
理由はというと、一連の画像ファイルが一つのファイルにまとめられて、なおかつ各コマの表示時間が設定できるからです。
確かもうGIF特許はいいはずだし、いざとなれば無圧縮GIFアニメという手もありますし、使ってみてもよさそうです。
従来の独自形式から悪くなる点としては、ファイル数がポーズの数だけ増えること、ランダム表示時間が原理上できないことの2点です。
しかし、複数ファイルに分かれれば一つ一つのアニメーションの確認が簡単になりますし、ランダム機能は、実際に作ってみてほとんど意味を為さないことが確認されたので、欠点はなくなったことになります。
またそれとは別に、従来型の欠点を修正したバージョンのキャラ定義ファイルを作りたいと思っていたところなので、これを機会に作り直そうかと思っています。

今日の絵はかぼちゃなにわとり。
もちっとかっこつけさせたかったが画力が追いつかなかった。

1152370321.png

コンパイラとインタープリタ

Bomber丸Worldのページを更新しました。
スクリプトのページです。
いまだにコンパイラで用意すべきかインタープリタで用意すべきか決まりません。
インタープリタのほうが簡単で、充分短いスクリプトなら高速なんだけど、やっぱりgotoとかforとか関数とかに対応させるためにはどこに何があるかを把握しておく必要があるんですよ。
これらを多く使うことになると、インタープリタの逐次解釈では、読み飛ばし、読み直しがたくさん発生するんですよ。
そうなると、やはりコンパイラのほうが良いのかな、と思ったりするのです。
実行時に簡単にコンパイルして、それを元に実行、というのが手っ取り早いのかな。

今日、蛍光灯のスイッチが壊れました。
紐を引っ張って明かりをつけるタイプだったのですが、その紐が切れたのです。
それで分解し始めたのですが、途中まで分解してから外から残りの紐を引っ張り出せることに気付きました。
せっかく分解したので中の様子を少し見て、半端じゃなく汚れていたので少し拭いておきました。

レダフティク

日記に書くことがない日は画像でもアップしておくのです。
レダフティク。
KITVADERの反対で、REDAVTIK。
かなりの脱力系モンスターです。
「ハンブンニナッテヨネ」とは、敵味方全員のHPを防御力に関わりなく50%にしてしまう技です。

1151328433.png

路線変更

そういうことでこうなったらいっそのことゲーム記全体のコンセプトを変えますよ。
『一般的な分類で言えばゲーム紹介、感想および情報等。
真の目的は公式サイトリンク集。』
から、
『僕は、「好き」を伝えたい。』
に変更ですよ。

ついでにBomber丸Worldのシステムのページも更新してきました。
解像度についての記述なのですが、遠まわしにマウス操作についても少し触れています。
Bomber丸Worldは原則としてマウス操作を受け入れるつもりでいます。
操作性の問題でふにゃさんではできなかったことですが、Bomber丸Worldでならできるはずです。
してもいいはずなのです。
マウス操作がしやすいRPGというジャンルである以上。
構想もある程度出来ているのです。

CharaBoxに使っていた物理量解析エンジンを公開しようかと思ったのですがどこにどのような形で公開するかが決まらなかったので公開できませんでした。
速いうちに方針を決めて公開したいです。
CharaBoxそのものも。

白紙撤回

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

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

平均身長188.6050549cm

ふにゃさんの操作説明を作り始めました。
今更な感がありますけど2のときほどは難しくなさそうなのでちゃちゃっと作ってみます。

Bomber丸Worldで今大きさが決まっているキャラクターの大きさの統計を取ってみました。
いやー…。極端ですね。
でも人間は割りとバランスよく150cmあたりに集まってくれています。
うん、他は…どうやって同じ画面に納めるか悩みますね。
本当にできるんだろうか。

1150555492.png

Bomber丸Worldのページに、今では見るのも恥ずかしい過去の産物を掲載してきました。
あれですな。
作っている時点である意味恥さらしなんだから、もう思い切って全部出しちゃいました。

ふにゃさんの標準ステージ6・7面の攻略ページ作りました。
どちらもあまり見所のない紹介的なステージなんですけどね。

弟がまたバイオ0なんか買ってきてました。
いやもう、予想以上に蛭ですよ。
1がタイラント、2がG、4が寄生虫、コードベロニカが蟻、0は蛭ですよ。
ラスボスは蛭にモテモテの男が蛭化すると見た。

日記のメニューに「あのときのわし」を追加しました。
これは今までの日記の中から一日をランダムに選んで表示する機能です。
それと、今まで一日だけ表示する画面でしか表示してこなかった日記へのコメントも全ページで表示するようにしました。

HPメーター

Bomber丸WorldのHPメーターの表示位置をどうするか考えてました。
今まで考えていた右側に縦方向に並べるという形だと敵が横、味方が縦に並んでバランスが悪かったんですよ。
そこで、横に並べる方式を使おうと思ったのですが、最大HPが100固定というのもあり、メーターの幅も100ピクセルにしたら幅320ピクセルの画面の収まりきらないんですよね。
そんなわけで重なる部分は縦にずらしてみたのが今回の画像です。

1150207602.png

BGMシステム

掲示板のルールを制定しました。
とはいってもルールらしいルールじゃないんですけどね。
まあ、ノールールでもそれなりに運用できていたので今のところ問題ないでしょう。

Bomber丸WorldのBGMシステムを作り始めました。
具体的にどういう風になっているのかは開発室のシステムの詳細のページをご覧ください。
BGMをただ鳴らすだけじゃないってことです。
だからといってあまりすごいものを期待されても困るんですけどね。

わきあいあい

メモちらし、処理に時間がかかりすぎて近似の精度が悪くなりそうな場合は計算に使う時間の値を制限して最低限の精度は保つようにしました。

Bomber丸WorldのBGMを作ってました。
戦闘のテーマ1、ふにゃふにゃとふにゃさんのBGMの合成です。
まだまだ途中で短かったり不足しているパートがあったりしてするのですが。

1147791113.mid

メモちらし出来上がり

Bomber丸Worldの裏話を更新しました。
このゲームを作るに当って一番大切にしたいこと。「作りたいように作る」
感動の押し付けはまっぴらごめんだ。「死は死だ」
もしかしたら部外者がラスボスになるかも!?「ラスボスってつまりなんだ?」

メモちらしも、昨日書いた4項目もきっちりできて、とりあえず使えるようになりました。
どうにも項目の削除周りの挙動が怪しいのですが、エラー回避のコードを書いただけで全く問題なく動くようになったみたいなので下手にいじらずほっときます。

<前 次>