2005年4月の日記

<2005年05月 2005年03月>

PNG is Not Game

ふにゃさんのステージファイル形式。
データのまとまりごとにチャンクを作ったり画像データを内包したりすることから、PNG形式にしてみようかなと思ったりしたけれども、いくらなんでも荒唐無稽なんでやめました。
IEから右クリックで保存できるのがいいと思ったけど、BMPで保存されたり、クイックビューアで回されたり、最適化ソフトでステージデータをごっそり抜き取られたりするのは良くなさそうなのです。
それはそうと、ステージファイルそのものの大きさは、階層構造などもあるので、基本的には第一作の3倍程度のファイルサイズにはなるはずです。
そこで氷のステージを参考に今作でのステージサイズを計算してみると、およそ20KBとなります。
メモリ容量大丈夫だろうかと心配していたのですが、どうやらかなり大きなステージでも全データメモリに入れておいても問題はなさそうです。

RPGツクール

久々にRPG±0のページを更新。
さて、これでシステムを見直す必要が出てきました。
RPGツクール体験版をインストールしたんで参考にしてみました。
ツールの作り手ではなく使い手として触れるのは自分のソフトでは不可能だったので今まで見えていなかった部分が見えてきたような気がします。

Bomber丸Worldのページも更新。
キャラと文化的背景が増えてます。

パネルγのプラクティス4を作ろうかと思ったのですが、めんどくさそうでやる気が萎えて結局何もせず。

公開鍵暗号

http://www.sys.cs.meiji.ac.jp/~masao/Board/infosys2000/security/firewall.htm
ふにゃさんのステージでは公開鍵暗号により暗号化を施してみようかと思ったけど結構敷居か高いようです。

それはともかく、キャラの挙動について考えてみます。
キャラは元々できるだけ自分のことは自分でやる自立したオブジェクトなのですが、しかしキャラ同士はお互いに影響しあっているわけです。
例えば、ギヤバネなどは2体がぶつかるとお互いに相手をバネではじいて両方とも吹っ飛んでしまいます。
しかし、文字通りに相手をふっ飛ばしてしまったのでは、向こうにとっては「相手に動かされた」となり、キャラの自立性は損なわれるわけです。
こんな場合は、相手キャラに、これこれこういう力を加えたという情報を伝え、それに対してどうするかは相手に委ねるというのがよさそうだと考えます。

のーんびりゆったり。あわてなーい

ナマライザ作り始めました。
ま、解析するよりも遅く、ゆっくりじっくり作っていこうと思ってます。
とりあえず絶対必須となるメインウィンドウとファイル管理ウィンドウだけ作成。
動作の実装はまだ。

ふにゃさんのステージファイル形式どうしようかな。
将来の拡張を考えると、データをチャンクごとに記録して識別子でヤットコヤットコやって、やるのがいいのかしら。
4バイトの識別子・4バイトのデータサイズ・可変長のデータ本体。とか。

灰色について

パネルγのページ更新しました。
遊び方8が開通です。
あと7つで完成です。

属性別パラメータ

パネルγでサーフェスがロストしたときに修復する機能をつけました。
時々正常に修復されなかったりするけどそのときはそのときでボタンひとつで修復リトライという形にすればなんとかなったりならなかったりするかもと淡い期待を抱いています。
さて、あとはあのモードを付け加えればアップできる寸法だ…。

Bomber丸Worldのダメージ関連要素に、属性別パラメータというのがあります。
キャラクターは一人一人が属性別防御力というのがあって、それぞれの属性の攻撃力を軽減します。
そして、攻撃技の一つ一つには属性別攻撃力が決まっていて、例えば、シロ&クロのボムの場合、打撃攻撃力が強く、高温が弱めに、わずかながら切断攻撃力も持っていたりします。
例えば、打撃には強いが高温には弱い敵にボムを使うと、打撃ダメージはほとんど受けませんが、弱点の高温ダメージはそれなりに受けてくれたり、ということになります。

のんびりナマライザというソフトを考案中。
要するに簡易アクセス解析と同じく生ログを解析するのですが、一覧にとって付けたような追加機能ではなく、あたかも最初から想定されていたかのように高度な機能。
特にファイル別に状態の推移とかリファラがどうだとか、クエリ文字列がどうなっているかとか。
調べられるようにしたいです。
のんびり、というのは、要するに処理時間を気にしない。
ということ。

使いそうなクラス

はい。トップがPHPになっているのにお気づきでしょうか。
そんなもん知ったこっちゃありませんね。
以前はSSIからカウンタCGIを呼び出していたのでPerlとCGIの2つのファイルの呼び出しがあったのですが、PHPにしてひとつのファイルにまとめたためかなり軽くなっているはずです。

ミディビ、更新しました。
プログラムには触れてませんけど、手がかりにはなるはずです。
やっぱ2ヶ月もあいてるんでそろそろ更新しとかないとなーということで。

LARGERTHANHUGE

パネルγでHUGEより大きい四角を作ろうと頑張ってみたのですが、どうやらできそうにありません。
コンマ5秒の間に4つのパネルを動かすことができればあるいはできなくもなさそうですが、実際問題かなり無理があるためやっぱりできそうにありません。

HPM更新停止。
まあ、気が向いたときにちょこっと更新することはあるかもしれませんけどね。

ウィルスだぁ

Bomber丸WorldのBGMを衝動的に作ってしまいました。
どこに使うか考え中。

これは本日の話でございます。
BKDR_ROBOBOT.GENに感染したファイル3つ。見つかりました。
新しいウィルスらしく、トレンドマイクロのページには情報無し。
以下の3つのファイルに感染していたそうで。

  • C:\Windows\system\msupdate.exe(スパイウェアらしい。■子供とインターネット■詐欺)
  • C:\Windows\system\lsvchost.exe(記憶が正しければこのフォルダにこのファイルは存在しないはず)
  • C:\Windows\system32\com32b.exe(???不明)
バックドアらしいですね。たぶん危険なサイト閲覧のせいだ。

うん

CGI作ってたりしてました。
ん~。アクセス解析もしてみたけど特に際立った変化はなし。
とりあえず次の更新は次の水曜日までになるだろうな。

実験態度

学校で実験実施。
実験に対する態度がなっていないと説教食らいました。

楽しい音楽

パネルの柄を変更するオプションを付けました。
あと、裏話とギャラリーも更新。

音楽の授業を受けてみて、芸術とはその背景をなる知識があるのとないのとでは楽しみ方がものすごく変わることを痛感。
知らない曲を聴くとものすごく退屈なんですが、その曲の生まれた背景や作曲者の事を聞いてからそのことを想像しながら聴くとものすごく楽しい。
そういう意味で言うなら、私のゲーム音楽好きは、背景=ゲームプレイであり、その点映画音楽の楽しさとも繋がるわけです。
DTMの作り方だけでなくいろんな音楽の情報を集めなければ。

パネルセット

パネルγ、パネルの柄やサウンドを自由に設定できるオプションも付けてみようかと思ったけど、サウンドはともかく、パネルの柄はパレットの都合があるので難しいようです。
もし作るなら専用エディタということになりそうだけど、作るのはいろんな意味で現実的じゃない気がするし、保存したらそれを変更されたときには?
一応4種類のバリエーションだけで作成しています。
1種類だけ色でなく形で見分けるようになってます。

にしてもギガントガッシュ強い!強すぎる!どんなにメテオ送り込んでも即行で送り返してくる!
たまには最下位になりやがれ!

ダイアログに

くううっ!AppWizardがテキストに無効な番号を割り当ててて無駄に時間を浪費したっ!
必死こいてWM_メッセージを調べてた私は一体何なのだ!
まあ、とりあえずできたのだ。

アイコン変更

パネルγのバージョン情報を少し修正してみたり。
アイコンも今見たらパネルγとしてちょっとおかしいパネルが混じっていたので修正。
ついでに大きなアイコンも作ろうかと思ったけど中止。

プログラミングのページも作成中です。

ラッセルのパラドックス

http://www24.cds.ne.jp/~neg/pro/piyo1/osetc/ver.html
ここにバージョンリソースの取得について書いてありました。
トリッキーな!
しかし最初の文字列部分を長さ1の配列にして後をコメントアウトするというところは私の考え方を一致する部分があるようで。

例1.4 ラッセルのパラドックスと同じような例.
(a) 自分自身を掲載していない図書目録の目録を作った.この目録はどの目録に載っているか.
(b) 17文字以内で定義できない最小の数.
(c) 「クレタ人はいつもうそをつく」をクレタ人のエピメニデスが言った.
(d) この文章は誤りです.
(e) 私はうそつきです.
「情報の倫理数学入門」(近代科学社、小倉久和・高濱徹行共著)14ページからの引用です。
パラドックスがなさそうに見えるのは私だけ…?

メールフォーム改良したい

メールフォームを改良してみたい今日この頃です。
JavaScriptを使って、ボタンを押すとアンケートフォーム作動、さらに「ブラウザ情報を送信」のチェックを入れるとアクセスログからは解らない、画面サイズなどの閲覧状況なども送信できるように。

バージョン情報については解決。
データの大きさが可変であるためか構造体が用意されていない!
そのためポインタをゴリゴリになっちゃいまして。
実際可変長のところは肝心のバージョン番号がある場所の後ろからなので、バージョン番号のある場所は計算で正確に求められたりします。
よしよし、これで今後のバージョンアップがやりやすくなった。

バージョンリソース

バージョン情報読み込みに苦戦中です。
一発で読み込むAPIがない!
外部ファイルのものを開くのはあったのですが。
仕方なくLoadResourceしてLockしてポインタをゴリゴリ操作することに。
wValueLengthってValueのサイズだったのか。
自前で計算せにゃならん。
・・・でも次の更新ネタに使えるぞ。

こんなタグが欲しい!

olとdlをあわせた機能を持つタグが欲しいっす。
連番を振ってくれる定義リストというのが。
いたるところで使いたいっす。
あるいはtitle属性つきのliとか。

学校では教科書等購入。
音楽、去年は競争率3倍で講義をとることさえできなかったのに今年はなぜか競争率1倍切ってた。
まあとりあえず、これと後期の1科目と集中講義ひとつを取って全部合格すれば所要単位は足りることになる。

バージョン情報

パネルγ、BGMと辻褄をあわすためタイトルの演出を変更。
ひそかにランダム要素が入っていたりするのは私のソフトによくありがちな傾向。
とりあえず開発中からずっと感じていたタイトルの違和感は解消。
ん~。バージョンどうしようかな。
Versionリソースで入れてるんだけど、それとタイトルに表示されてるのを一致させたい。
手動でいちいち変更するのは2箇所なれど私のことだから60%ぐらいの確率で忘れる。
だからして、タイトルに表示するほうはリソースから読み込んで表示するようにして変更箇所を1箇所にしたい。
LoadResourceの出番かな、また。

変更点。

パネルγ、ウィンドウを外でマウスを放したときのバグを修正。
SetCaptureとReleaseCaptureを適当なタイミングで入れたり。
Alt+Tabによる切り替えで誤動作が起こることも確認。
こちらはWM_ACTIVATEを拾って設定すれば何とかなるか。
んでもって、BGMの切り替えを即座に反映するように。
CoInitializeを忘れててエラーになったり。
もちろん修正。
もしかしたら前のバージョンだと起動時にいきなりエラーになっちゃった人もいるかも。
ついでにタイトルBGMも変更。
音源リセットを追加してちょっと長めにしておまけに部分的に1オクターブ上に。
コピーライトも書いたりしていい感じ。

あとひとつ!!

さて、スクロール情報はどこに保管しておくべきか。
実際に影響が出るのはスプライトとマップなのでそのどっちかに保管しておくのがよさそうなんだけれども、スプライト側に保管しておくとなれば、みんな共通で使うのでstaticにするのだけれども、そうすればマップ側でスクロール位置を変更した際になぜか子分であるスプライトの代表に対してスクロール位置を教えなきゃならなくて、だからといってマップにそれを持たすと今度はスプライト全体がマップに依存した作りになる。
それで構わないっちゃ構わないんだけど、見るもの見てからだとできるだけ自立した作りにしたくなる。
やっぱ両方に用意しておいて、描画の段階でスプライトに渡す、というのが良いだろうか。

そうそう、学校ではオリエンテーションとか。
とりあえず今年取れる分で卒研以外はほぼ揃うんだけど、一年のときにおろそかにしていた教養科目のしわ寄せが少しばかりやってきて、時間割の関係上1科目だけ卒研の時期まで入ってしまいそうな予感。

必要なものは…

身体検査。
身長は相変わらず。
体重も相変わらず。
視力も相変わらず。
・・・・

ふにゃさん、Cf3ObjectBase作成。
正直言ってどこまでyaneSDKに頼っていいのかまだつかみ切れていません。
とりあえずCSprite系列は求める結果を実現してくれそうにないので使わないことにします。
CMapLayer系も同様。
CShellも無意味だよなぁ。
しかしもしかしたら使うかもしれないというのを間違って削除してしまってはいけないのである程度形になるまではどのファイルも削除しない。
ファイルが多いとビルドに時間がかかるんだけどな…。
オーディオ系や描画系は特に判断しづらい。
どこでどういう関係になっているのか把握しきれない。
アシストクラスは単体で便利なので削除はしない。
気が向いたら使おう。

ゲームオブジェクト

yaneSDKの中にあるCGameObjectBaseクラス。
ガーベジコレクションとか、いろいろ参考になります。
まあ、新たに作り直しても多分面倒なだけなのでふにゃさんのときにはこれの派生クラスからさらに派生させて使うことになりそう。
CGameObjectBaseを一度派生させたものをCf3ObjectBaseとしておいて、マップのスクロールも考慮した座標を使うことにする。ということで。
そういえばCSpriteExとかは…。

ふにゃさん、マップサイズ等

マップ構造どうするかな。
DirectDrawでは画面サイズを超えるサーフェスは作れないって聞いたことがあるような気がするけどどうなんだろう。
背景、キャラのすぐ後ろ、キャラのすぐ前、前景、の4つにすることはほぼ決まっているのですが、背景はできれば一枚絵を表示するという選択肢もほしかったのですが。
やっぱり背景もマップチップの組み合わせで・・・?
ゲームボーイっぽくなるなぁ・・・それはそれでかまわないけど。
ゲームと直接的に関わるのはキャラの前後だけなので他は表示しない設定も可能。
んでもって、表示させないことができるほうはサイズも自由、と。
キャラ前後のは32x32固定。

ひさびさに登校。
池を埋め立てて宝くじの宣伝に使うのは別にどうってことないけどそこに泳いでた鯉はどうした鯉はっ!!

妖女様

ゼルダの伝説-風のタクト、やってました。
妖精界の女王さまとやらに謁見することができまして。
で、ありがたいお言葉をいただいてありがたい能力も賜ることができました。
あんまりありがたいので妖精の女王さま、略してようじょさまのために草刈りを…って幼女!?
だからあんなに小さかったのか…と思いに耽りながら普通の妖精さんに弓矢を向ける私って…。

7桁目

ぃやったあああああああっ!!!!100万点!!!100万点ですよっ!!
メテオスチャレンジダウナスで100万点突破しました!

そんでもって、CGI作りました。
http://tgws.fromc.jp/akiyame/index.php?id=meteos
に設置。

猶予

うん。本読んだりゲームやったりしてました。はい。
そろそろ次の次の更新を考えましょ。
簡易アクセス解析に改良を加えたけど、それをどうするかは未定。
プログラミング21を更新したいんだけどシーケンスソフトをあまり知らない。
いろいろ比較してみるかな。

余裕

プログラミングの部分でいろいろページ修正。
明後日の更新で一気に全部反映します。
いやあ、更新予定日前に終わってると気が楽だね。
検索でTWSがかなり引っかかっちゃうみたいだけど短すぎる単語だからということにしておく。
私は悪くない。

<2005年05月 2005年03月>