2006年7月の日記

<2006年08月 2006年06月>

期限切れ

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

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

ずれるバグ

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枚だけとなります。
あと、テキストの低解像度側から見たサイズと高解像度側から見たサイズが違うので、このあたりをうまく吸収できるような文字列表示機能も作らねばなりません。

原点回帰

ふにゃさんの11面の攻略ページを作りました。
ここからの4つが本格的に難しいんですよね。
そろそろ新ステージも作りたい衝動が出てきています。

そうそう、パネルγの裏話のページも更新しました。
αβγωというのがそれです。
まあ、たまたま昔の日記で見つけたのでコピーしてきただけですが。

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

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

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

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

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

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

1153839229.gif

Edgeがバグった

絵を描いていたらデスね…。
真っ黒になって消えちゃいました。
こういう症状が嫌いでIDrawからEdgeに逃げてきたんですがね。
まあ、原因はおおよそ推定できるので、さっさと作者に報告してきます。

PCゲーム

新しいカテゴリ「PCゲーム」を追加しましてロープdeるーぷ+の話でも。
http://f1.aaa.livedoor.jp/~zahyou/ でダウンロードできるフリーソフトです。
現在最高点約75000点。レベルは記憶が正しければ18。
このあたりのレベルになってくるとのんびりしたBGMに似つかわしくないシビアなゲームとなってきます。
もう頭より動体視力を使うんですよ。
多分10万点、20万点超えを達成するには右側に表示される次のロープを見て5手先ぐらいを見越したプレイが必要になるんじゃないでしょうか。
少なくとも私にそんなプレイは無理です。
ところで本家掲示板に長く繋げないといけないような気がするという書き込みがありましたが、実はあれはまるで逆で、実は小さく繋げたほうが圧倒的に得点効率は良いのです。
まず、大きく繋げるにはじっくり考える必要があり、そうなると低レベルのうちにしか大きくは消せないことになり、消したら残るのは消し残しのどうしようもないロープばかりです。
低レベルだから得点は低いし残骸は嫌というほど残るし、いいことはありません。
一方、小さく消していくと、まず、魚が狙いやすい、どんどんレベルが上がるから得点効率が上がり続ける、こまめに消すから残骸が少ない、など多大なメリットがあります。
10万超えたらまた報告にでも行くかな。

過去ログ修正完了

うおーす。更新しましたー。
スクリプト作ろうコーナーの言語仕様更新ですよー。
…なんだかあまり厳密には決まってなさそうですが、細かい部分は作り始めてみないとわからないのである程度曖昧にしてあります。

そして今日は日記の過去ログを全て修正し終えました。
これに伴い未登録の日記へのリンクも削除しました。
…本当に、やっと終わりました。

それと、前々からh2とh3の小見出しが真ん中に来ると見難いと感じていたので、思い切ってスタイルシートを変更して左寄せにしてしまいました。

キャラクター性

ふにゃさんの次のバージョンではキャラセレクトをつける予定なのですが、キャラセレクトのための新キャラ作成に意外に手間取ってます。
キャラに下手に影なんかつけたから…。
それと、別キャラなら別キャラらしく個性の違いをつけるべきか、それについても迷っています。
一人はルールそのものが違うから別にいいんですが、同種だけど性格が違うキャラをどうすべきかと。
能力を同じにして純粋に見た目の好みだけで選べるようにするか、少し変えて必然性を持たせるか。
しかし、ふにゃさんはキャラの性質が変わると有利不利だけじゃなくクリアの可否まで変わってしまうのでやはりパラメータは変えないほうがいいのか…と思ってしまうのです。

ゲーム画面保存

ふにゃさんの標準ステージ10面の攻略を更新しました。
そろそろ本格的に難しくなってくるので作り甲斐がありますね。
そうそう、ゲーム画面は今まではPrintScreenしてからペイントで切り貼りしていたんですけど、枚数の多さゆえに結構な労力となっていたので、ゲーム自体に画面保存の機能をつけてしまいました。
ユーザー側からするとなんだか今一メリットがなさそうな気がしますが、一応バージョン1.03以降からCキーで保存できます。
これ、開発側としては結構便利なのでBomber丸Worldにもつけちゃおうかななんて考えてます。
あと、ギャラリーのページを少し移動しました。
同じディレクトリにファイルが増えすぎるとどうしても管理しにくくなるので…。

困ったやつら

どうにも現状のNeoMuplには困ったバグがあるみたいです。
どのタイミングで起こるのかはわからないのですが、どこかの曲が増えるんですよ。
たまに並べ替えをしたら同じ曲がいつの間にか重複していたりするんです。
増える分には消せばよいのですが、その巻き添えで消えているものがないかと不安なのです。
あと編集画面が同じウィンドウにあるというのが最近どうも使いづらく感じてきたので、別ウィンドウで出すようにしようかとも考えています。

そうそう、ふにゃさんのシークレット4出現条件を実装しました。
これであーんなこともこーんなこともできちゃうのです。
で、真面目な話、シークレットの

メテオス中毒

やっぱりメテオスは中毒性が強い。
近くにあるとやらずにはいられない。
いや、やろうという明確な意思を持たずにはいられないのだ。
何が私を駆り立てようとも、メテオスだけはその全てに優先して割り込んでくる。
大切なことがそっちのけになる。
「はまる」とかそういうものではなく、いわば「毒」、そう、「中毒」なのだ。
メテオスめぇ!!

締め切りを勘違い

レポートの提出期限を一日勘違いしていて今日忙しくなってしまいました。
細かく計算しろといわれたところを細かく計算していくととんでもない桁数の数値が出てきたのですが、最後まで計算していくとすごくまともな数値になってよかったです。
と、いかにも終わったような書き方をしていますが、実はまだ終わってません。

ちょっと情報出し

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

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

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

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

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

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

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

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

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

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

プログラミングは苦手なのだ

そして今日はスクリプトのページを書いてました。
スクリプト作成については今までやってきた連続物企画より事前に考えておかなければならない部分が多いので。
なんというか、他のと比べて、「プログラミング」の部分が大きいのですよ。
ライブラリの使い方がわかれば何とかなるとか、いつもやってることを他の言語で書き換えるとかいうのとは違って純粋なアルゴリズムの部分が多いのでよく考えないと…。

メモちらしを少し改良しました。
最小化したときには描画命令そのものを呼び出さず、負荷を抑えます。

生ナマ

急にのんびりナマライザをいじりだしました。
ナマライザの読むログデータはテキストファイルなのですが、OSの関係で改行コードが\r\nじゃないことがある、というより私のところで\nだけなので、今回は会えてバイナリファイルとして読み込んで、1バイトずつ処理することにしました。
確証はありませんが、多分この方法を使ったほうが文字列として読み込むよりデータの分割が速くなると思われます。
ほかのところも色々考えてるのでやる気のあるときに一気に仕上げてしまいたいところです。

人の状態を「眠い」と「眠くない」の2つに分けるとき、眠っている間の人間はどんな状態なのか

GIF構造、ローカルカラーのところまではわかったのですが、どうにもラスタデータのところがわかりません。
ラスタデータは圧縮されているからどこで終わるか教えてもらわないとどこまでを画像と見ていいのかわからないわけで。
「,」か「!」の文字が来ると次の画像?
だとすると色番号44や33はどうなるの?
ってことで。

そうそう、ミディビ更新しました。
著作権表示とちょっとしたエラーチェック。
音の重なりチェックは結構簡単なアルゴリズムで動いています。
同時発音数チェックもできればやりたいんですが、これについては結構な処理数になるのでやらなさそうな気がします。

GIFInfo

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

みふみんすくりぷと!

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

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

シークレット!

とりあえずふにゃさんのシークレットの条件を全て考えてみました。
プレイ時間とか入手アイテム数とかクリア数とかよくありそうなのもありますが、中にはビックリするような条件のものもあったりします。

プログラミングのDirectX7のページを移動しました。
ついでに少し誤字脱字も直しておきました。
…今度の更新は久々にDirectX7にしようかな。

無い暇潰し

そろそろNeoMupl完成させてバージョン1として公開したいんですよね。
バージョン1までにどうしても欲しい機能は、Mupl4式BGM機能、追加しないファイル保存、ランダム演奏のときで選ばれない曲、ファイル追加メニュー、自動ソート、なんですが、最近少し忙しくてこういう簡単なものも中々作れないのですよ。

GIFアニメーション

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

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

1152370321.png

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

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

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

アルマジロは走る

http://www.armadillorun.com/
http://japanese.engadget.com/2006/07/05/physics-game-armadillo-run/
物理演算を使ったゲームみたいです。
ゲーム的には、できるだけ少ない出費でアルマジロ君をゴールへ導く道を作れ、ということらしいですが、正直なところ、最適解を見つけるより限りなく変態的な経路を考えるほうが楽しいです。
素直に転がせばいいところを思いっきり飛ばしてみたり。

1152195934.png

リンク集の下のほうからどうぞ。

みっちゃんとこでRDL+がリリースされちゃいましたよー。
って、みっちゃんって呼び方、馴れ馴れしいですね。すみません。
未知数さんの「座 ひょーへー 面」で、「ロープdeるーぷ+」という落ち物パズルゲームが出ています。
前作「ロープdeるーぷ」のパワーアップバージョンですが、久しぶりだったためか難易度調整のためか、中々屈辱的な点数で終わってしまったので威張ってスコア報告にいけるようになるまではあまりこっちでもあっちでも話題に出さないようにします。

ラストエスケープ

昨日弟がバイオハザード3を買ってきましてですね。
今日あっさりクリアしてました。
ヘビーモードとライトモードがあって、最初はやっぱりライトだろうと始めてみたら、ヘビー=普通、ライト=簡単、だったんですよ。
4に繋がる新要素も色々あって見ていて面白かったです。
それとジルの噂にたがわぬ強靭さも。

昔作ったゲームの紹介文

ここらで突然ですがプログラミングに慣れてきて自分でゲームを作るようになり始めたころの自分が書いたテキストを載せておきます。

やり始めたときは本に書いてあるとおりにとおりにやっていたけど、だんだん意味がわかってくると、それを少し発展させたものを作れるようになりました。今はゲームを作れるくらいになりました。では、そのゲームの一つのバナナゲームの説明をしていきましょう。これは西暦三五XX年のお話です。当時バナナはとても貴重で、今の日本円にしてなんと百万円もするのです。そのバナナを育てている世界でたったの一つしかないバナナ畑にバナナ強盗が入ったのです。しかし、その強盗はどじで、バナナを落としながら逃げていっているのです。というわけで、四角という名前の人が落ちてゆくバナナを取って、バナナ畑に返すことになりました(Xの絵のような場面を想像してほしい)。でも、実際やってみると、さっきの話とは全然ちがうことがわかります。バナナ強盗はでてこないし、バナナは落ちたら消滅するし、バナナ強盗はその辺で右往左往してるし、話とはまったくかけ離れています。ところでバナナ強盗さん、一体バナナを何本もっているんですか?

アシさん

ワード使ってレポート書いてたんですが、なんか、Officeアシスタントのカイルが、「ディスクがいっぱいになったので保存できませんでした。」なんていいだすんですよ。
アシさん大丈夫ですか??77GB余ってるんですよ。さっきまで109KBだったファイルがいきなり保存できなくなるほど膨れ上がることなんて起こりえないと思うんですが!
まあ、ワードの言い分を代弁するしかできないアシさんに文句をつけても仕方がないので、いったんHTMLで保存して、ワードを再起動してから(本当は保存の直後にエラーで落ちた)、HTMLをコピーして改めて保存したら何とかうまく保存できました。
マイクロソフトのは、あ、いや、マイクロソフトでなくても時々あるんだけど、大きいソフトは時々コンパクトなソフトでは起こりえないような理不尽すぎるエラーが出て困りますね。

リニューアル案

爆ボンのブルーリゾート1面のページを更新しました。
そろそろどきどきモード攻略開始です。
まともな攻略記事とかもそろそろ作り始めますよ。

そうそう、プログラミングのページをリニューアル予定です。
あ、いや、別にデザイン変更とかそういうのじゃなくて、アドレス変更です。
そしてダウンロードページと同じように管理していこうかなと思っています。
今までのprogXX.htmlっていうアドレスだとアドレスから内容がわかりにくくて、管理面でも全てのコンテンツが同じディレクトリにあって管理しにくかったんですよ。
こういうアドレス変更のときは毎度毎度のことなんですが、以前のURLにアクセスすると自動的に移転後のページに飛ぶようにしています。
ただ、1年間アクセスのないアドレスの場合は飛ばないようにしています。
コンテンツは多くないながらも決して少なくもないので一気にやろうとはせず少しずつ段階的に行っていこうと思っています。

<2006年08月 2006年06月>