2004年11月の日記

<2004年12月 2004年10月>

本末転倒ではないか

何気なくゲーム雑誌を見てみたら四角形を作って消すとか、音楽がどうのこうのとか、そんなPSPのゲーム、「ルミネス」が紹介されていました。
妙に「パネルγ」に似ていて、しかもタイミングがタイミングなだけに実にまずい。
落ちるか入れ替えるかなどの違いはあれど「四角形を消す」と「音楽とゲーム性が絡む」というのは「パネルγ」の肝となる部分なのでここがかぶっちゃうと本当にまずい。
ルール変更してルミネスから遠ざけねば!

  • 基本ルールは「入れ替えて消す」。
    これ自体は問題ではないけれどもう一捻りあったほうがいいのではないか。
    「回す」は「入れ替える」の一種、「落とす」は根本的にダメ。
    「色を変える」、これはいいんじゃないだろうか。
    「イレカエ」と「イロカエ」で一文字違いというのが良さそう。
    もしかしたら共存できるのではと思います。
    元々の操作は左クリックで入れ替え、右クリックでパネル生成だけど、Shiftキーを押しながら左右クリックで色変え。
    ただ、別にこだわりはなかったんだけど、一度マウス操作にすると決めたからにはマウス操作だけでも遊べるようにしたい、ということで、マウスホイールで「イレカエ」と「イロカエ」を切り替えるとか。
  • いっそのこと打ちあげてしまえ!
    完全完璧一点の疑いもないほどに「メテオス」のパクリだけど。
    やっぱダメかな。
  • 消えるルール、実は四角形を作って消すということに拘りはない。
    ただ縦横斜めというたった一次元の並びだけで消すというのはもう古いということで二次元にしたのみ。
    絵を作って消すということをやってみたかったんだよね。
    例えばパネルを別の色のパネルで囲んで中身が消えるとか?
    でもそうすると連鎖が組みにくくなるので最も簡単な図形の四角形が使いたいところ。

WindowsXPSP2のセキュリティセンターが本格的に腹が立つ。
なんでウィルスバスターが一瞬途切れただけでポップアップを出しまくるんだ!!
問題を解決するためにはここをクリックしてくださいってのをクリックしてずっと待ってやっとセキュリティセンターが出たころには既にウィルスバスターは復帰しているのだ。

こんな無駄なことでいちいち作業の邪魔をされては能率が著しく下がるどころかセキュリティ警告の信頼性も著しく落ちる。
本当に問題となるのは、10分程度無防備な状態が続いたときだ。
1秒やそこらだとセキュリティセンターを出すリスクのほうがはるかに大きいというのに。

使い分け

全員に全く同じ内容のページを見せる場合で、特に更新よりも閲覧が圧倒的に多い場合はHTML。
それぞれに違うページを見せる場合、更新が多く閲覧が少ない場合で、ファイルへの書き込みを伴わない場合、あるいはデータベースを利用する場合はPHP。
ファイルへの書き込みを伴う場合はCGI。
で、どうだろう。
ファイル内容はCGIとPHPで共有できるし、CGIで生成したページをHTMLファイルとして記録し、閲覧の際はそれを見せるようにすれば負荷は減らせる。
だからといって何でもかんでもHTMLを作るようにしていたら見られもしないのにHTMLファイルばかりが増えるということも。
新日記の左側メニューは基本的に月一の更新であり、かつ最新の日記とほぼ同じ回数呼ばれることになるのでHTML。
右側の日記は、よく見る人は基本的に最新のものしか見ないので最新の日記のみHTML、他はPHPで、書き込み部分のみCGI。
掲示板はランダムメッセージを表示したりクッキーを使ったりするのでCGIかPHP。
リンク集はトップのHTMLページだけで大体用事が事足りている様子なので現状維持。
TScriptはCGIとPHPを組み合わせるつもり。
カウンターはファイルへの書き込みがあるけどPHPにするメリットのほうが大きそうなのでPHP。

HPM消滅

MIDIの内容をチェックするCGIありました。
http://www.nifty.com/forum/fmidi/midichk/
これでもう自分でチェックソフト作る必要はないということで更新予定欄から削除。
見たところ甘口のほうが親切で的確なアドバイスをしてくれて、辛口は悪いところぐらい自分でわかるだろうという態度のようです。
特に言うことがないのに低得点というのは困ったものだけれども。

旧HPM、最近は検索ロボット以外は一切来ず、消してしまったほうが検索ロボットにとっても無駄な巡回をしなくてすむということで、消しました。
人間による訪問は3ヶ月前から一切ありません。

レポートのデータを整理していたのですが、計算結果が桁外れの値になってしまって、それで考えていたら、計器のレンジの桁数を間違えていたような気がしたので、明日学校で確かめてみようと思います。
一応間違っていた場合に修正しやすいようにデータをエクセルに入れておきました。

ニ短調ト短調

決して多いわけではないんですけどサーバーのCPU使用率が上がってきてCGIの使い方とか見直したほうがいいかと思い、ちょっと考えてみました。
HTML-CPUパワーを基本的に使わない。更新が少なく全員同じ内容を見るページに適する。
CGI--最も重いがSuExecを導入しているのでファイル書き込み等はこれを使いたいところ。
PHP--データベースとの連携が強い。CGIよりは軽い。
というわけで、これを基準にいろいろ書き換えていくつもりです。

「ふにゃふにゃ」のBGMを調べてみたら、DmとGmの合わせ技だった。
本当は長調の曲のはずなんだけど、つくりが甘かったためかよく分からないうちに短調の曲に。
どっちかというとデータ上短調扱いしたほうがわかりやすかったということだけれども。
で、そう仮定するといくらか矛盾のある部分が出てきたので、いろいろ改良中。
一年以上もこれを放置してきたわけですが…

凍る

エキサイトにも登録されてると思ったらBIGLOBEと全く同じ説明同じリンク方法でした。
どっちがコピーしたのかは知らないけど見るからに手抜きだなぁ…

無駄にαβγωの話でも。
うちのゲームは、αはシンプルに、βはαとほぼ同じルールながらいろいろパワーアップ。
γはα系とは異なるルールで、ωは多分究極。
σとπはネット対戦対応のでも、と思ったりするのですが多分作りません。

最近フリーズが多くて困ります。
電源入れた直後に凍ることもあるからソフト的な問題ではなさそう。
ハードかBIOSの問題か?

ちなみに最強だったポケモンはピカチュウ。
2位は逆転勝利のプリン。
3位がピチューで最弱はミュウツー。

しっちゃかめっちゃか

「スマブラDX」で、ポケモンCPレベル9を4人(4匹?)で、ハンデをオートにして戦わせて見ました。
いろいろ条件を変えて戦わせること数回、ミュウツーのハンデが見る見る上がってゆき、それでもミュウツーは1位にはなれず、見る見るうちにハンデが上がってゆき、遂にハンデが9になるまで負けて、最強ポケモンが実は最弱ポケモンだったという衝撃の事実が判明しました。
逆に、ハンデが下がってもなお圧倒的な強さで激戦を繰り広げるのがピカチュウとピチュー。
無意味に緊急回避して場外へ直行する謎のポケモンミュウツーを尻目にありとあらゆるアイテムを駆使して次元が違う戦いを見せてくれました。
そんな中勝ちも負けもしないのがプリン。
いえ、どちらかといえば負けてるんですが、ミュウツーほどは負けませんし、たまには1位にもなります。

「簡易アクセス解析」の統計処理を作りました。
検索語関連も統計の一種なので統計の項目にまとめて、それぞれの項目に対して、どのようなアクセスが多いのかを知ることができます。
で、アクセス時刻で統計を取ったところ、1秒間に20回ものリクエストがある時間(1秒間)を見つけ、どういうことかと思って実際のデータを見てみると、何のことはない、一つのHTMLファイルから19個の画像ファイルを呼び出していただけでした。
これがあるとなかなかアクセス解析らしくていい感じです。

電磁気の問題をみんなの前で解くことになって、先生は解いたやつを見て結構厳しい突っ込みを入れることで恐れられているかもしれなくて、見つかりにくい場所でこっそりと解いて時間が差し迫った状態で見てもらえば突っ込みが軽いだろうということでみんな後ろのほうとかで書きたがるようなそんな先生だったのですが、私が解くことになった問題は難しそうに見えて結構簡単そうで、しかしやっぱりなんだか難しくて、よくわからなかったのですが、幸いにして答えそのものはわかっていたので、それに合うようにそれっぽい理屈をこじつけて解いてみたのですが、よほどしっちゃかめっちゃかで問題外な解き方だったのか、あるいは実は正しい解き方だったのか、あまり突っ込みを入れられることはなく、適当にやったのですが一応OKでした。

メモリ

「パネルγ」の使用メモリについて考えてみる。
画面、幅640*高さ480*16bitcolor/8bit*2画面=1.2MB
画像リソース、幅256*高さ256*8bitcolor/8bit=0.1MB
BGMリソース、約1KB*10曲程度=0.0MB
セーブデータ、0.0MB
パネル、横36*縦28*(色+状態+その他)=0.1MB
何もしない現状で使っているメモリ、5.6MB
その他もろもろ含めると、10MBくらい。
参考までに「ふにゃふにゃ」の使用メモリはプレイ時で約5MB。
BGMをリソースとしてぶっ込んでみました。

レポートまたしても再提出。
大丈夫なんだろうか…
でも次こそは…!

エイミーにお任せ!

「Bomber丸World」のBGMをいくつか作ってみました。
製鋼所ダンジョンの曲。
これ、実はボス音楽を単純化したものなんです。
テンポもボスと比べるとはすかにスローで、後半部分は3+3+3+2の11拍子になっています。
製鋼所ダンジョンのボス曲。
ダンジョン音楽のアレンジ、というよりこっちが元。
最初はメロディ部分は入れないつもりだったのですが、いきなり現れてボスのプララを圧倒してしまうエイミーのテーマとして、曲全体のイメージをがらりと変えてしまうほどのパートを入れてみました。
ついでに、ダンジョン音楽の後半部分も入れてしまえということで、プララが本気になったときのパートも作ってみました。
公開している3つを繋げたものでは、一番最後の部分にあたります。
あと、密林ダンジョンボスも修正。
パーカッション入れたらイメージがかなり変わりました。

微妙なものを作ってみたいものです

「パネルγ」はマウスを激しく動かすという特性上よほどのことがない限りフルスクリーンモードでの利用になるのですが、そのときBackBufferFormatをD3DFMT_A8R8G8B8にするとREF(要するに一応動くが重い)モードでデバイスが作成されたので、本当にA8R8G8B8が必要かと考えると、バックバッファはそのまま画面に表示されるんだからA値なんて不要ということで、X8R8G8B8にするとTnL(要するに速い)で動いてくれたようで、一応対応しているディスプレイモードを調べてみたら、R5G6B5の65536色モードも使えるようなので、どちらかを設定から選べるようにしてみたいと思います。

「Bomber丸」の32bit版を作りました。
VB6でVB2のプロジェクトを読み込んでコンパイルしなおしただけですが、VB2ランタイムのない新しいコンピュータでもVB6ランタイムがあれば動きます。
そこまでしてやりたくなるかどうかは微妙なところですが…

そういえば「微妙」って「美しさや味わいがなんとも言えずすぐれているさま」って意味もあるようですね。
「美妙」と同じ意味ですが。
ということは、良いか悪いか聞いたときに「う~ん、微妙。」と答えてもらったらすぐれていると言ってもらったことになるので喜ばしいことなのです。
ついでにいうと、「微妙」には「微」という文字があるにもかかわらず「少ない、小さい」といった意味は本来なく、強いて言うなら、比較対象との差が小さいことが微妙ということらしく、数学的な表記をあえて使うなら、x≒0ではなくdx≒0ということであるようです。

ツボッ、パチッ、グフー

ふしぎのぼうしクリアしました。
ラスボス戦の演出とかは期待を裏切らなくていい感じ。場所が意味不明だったけど。
嫌なものはツボッと吸い込んで仲間はずれはパチッとひっくり返して、赤いのは4人で滅多切りにして、あとは途中で妖精の回復を逃さなければ負けることはないでしょう。
あ、ついでに言うとちっこいのをいじめるのも忘れずに。

アンケートが一覧表示に対応しました。
しましたけどあんまり見やすいものではなかったので使えないようにしてあります。

毎度毎度ギリギリです。

PSPのCM見たんですが、はめ込み画像ではありませんということだけをひたすら強調して、どんな面白いゲームがあるのか、といった一番重要な部分がすっぽり抜けている感じがしました。
ところで、はめ込み画像じゃないことはわかったんだけど、プレイしている人はどこ?
ワイヤレスコントローラでもつけてない限りはゲーム機本体に手を添えるかケーブルを繋ぐかしなきゃプレイできないはずなんだけど、手もケーブルも見当たらない。
つまり操作してなくっても動くってこと?
要するに動画垂れ流してるだけ?
たしか動画を再生するだけならGBAでも充分できるはずなんですけど…
http://www.playstation.jp/psp/

「スマブラDX」で新しい遊び方を開発してみました。
一人用の遊び方ですが、対戦モードを使います。
まず、設定でハンデをありにして、吹っ飛びやすさを2倍にします。
そして、自分のハンデを1にして、他は全部ハンデ9のCPにします。
すると、敵の攻撃を少しでも食らうとほぼ一撃KOされるようになり、逆にこちらからの攻撃では吹っ飛ばないどころか、よっぽどの攻撃でない限りひるみもしなくなります。
どれだけ吹っ飛ばされるかというと、ガノンちゃんの弱攻撃一発で、天井がなければ100%確実にKOされます。
あるときは触れられたことにすら気付かぬうちにスターフィニッシュされてました。
どれだけ吹っ飛ばせないかというと、ホームランバットのスマッシュが強攻撃並みにしか飛ばなくなります。
実際最大溜めジャイアントパンチをかましてもサムスはその場に倒れるだけでした。
敵の攻撃に全く当たってはいけないため、基本的に遠距離武器で攻撃しますが、ここであえてドンキーコングなどの肉弾戦のみのキャラを使うと白熱します。
ちなみにレイガンをシールドリフレクトされると即死です。
ファルコンに抱き付かれると即死です。
ピチューの雷食らうと即死です。
これで、体力制乱闘にして、全員レベル9にして、もちろん相手は3人チームで、全員落とさずに体力を0にして倒すというルールにすればベリーハードのノーダメージクリア並みに難しくなる…かもしれません。
私はベリーイージーのノーダメージクリアでいっぱいいっぱいなのでレベル9は1人だけにして、倒したやつから抜けていくという方式にして、アイテムを駆使してなんとか3人に勝つことができました。
やり直し回数数十回。

ふしぎのぼうし、グフーの倒し方がわからず断念。
あんまりいい回復アイテムを持っていなかったので最初から勝つつもりはなかったのですが、倒し方すらつかめずに終わってしまいました。

そうですそうです、トゥーンレンダリング!
あれ、あの勘違いがなければ、別の方法を考えていたと思うんですよ。
光の向きを計算して、その分だけテクスチャを傾けて…とか。
画像は右・左・右・左…を続いています。
ふぅ、これでふにゃ3D計画が実行できそうだぞ…

トゥーンレンダリング実現間近か!?

今日書きたいことは後日プログラミングのコーナーにアップします。

アクセス解析にて

新日記過去ログを2003年3月分まで入力しました。
で、そこでマインスイーパのことが書かれていたので、久しぶりにやってみたら、ハイスコア出しました。
中級50秒はなかなか速いんじゃないでしょうか。

アクセスログを回収してリファラを見ていたら、Googleからの訪問は激減していましたが、BIGLOBEのディレクトリサーチに登録されていたことがわかりました。
それもアクセス解析のカテゴリで。
あれ自分用にかなりカスタマイズされてるからそろそろ「MusicPlayer」と同じく完全自分仕様品にしちゃおうかと思っていたのですが、そうもいかなくなってしまったようです。
でも「TW Prog. Room」としてリンクしているところが他と違うところか。

テスト終了。
持ち込み可だった割には簡単だったので適当に回答。
途中式もいい加減。
大丈夫かな…

3D、自動で回るのを手動に切り替え。
ビューの位置を自在に変更していろんな位置から虎を見られるようになりました。
Direct3Dにはティーポットのメッシュを生成する関数があるそうですね。
実用性はともかく、練習用にメッシュを表示するときなんかには役に立ちそうです。

プログラミングのページにも説明つけるべきですかね…

知らぬはエゼロばかりなり

ウィンドウの淵の問題、CreateWindowのときにスタイルにWS_POPUPを指定すると枠が消えてくれました。
「パネルγ」のことです。
連鎖と同時消しはこの手のパズルゲームでは定番ですが、それに加えて、今作ではコンボ(仮称)というのがあります。
これは、連鎖と同じタイミングで連鎖とは関係なく連続で消すこと。
要するに間を空けずにどんどん消していけば得点が増えるということ。

学校で実験やってたんですが、今回は簡単な実験で、来週先生が出張だということで、今日中に2週間の実験を終わらせました。
ところが、簡単で2つ一度にやってもすぐ終わるはずだった実験が思ったより時間がかかってしまい、乗る電車も遅くなって、人身事故のため止まってしまいますます遅くなって、明日のテスト勉強をする時間がなくなってしまい、開き直ってゲームやってました。

というわけで、「ふしぎのぼうし」やってました。
エレメントが4つ集まって、そろそろ何ができるか何と無く察しがついてきたところ、予想通りフォーソードができてきました。
で、これまた予想通りグフーたんがタイミングよく登場。
エゼロはビックリしてましたがプレイヤーは大抵ここまで来るとこうなることは想像がついていたでしょう。
さて、グフーを倒すためには5つ目のエレメント、すなわちフィフス・えれm…そろそろやめます。

ほんものにせもの

レポートがまだ終わらないということでまあ、それだけ。
というのも寂しいので、少しばかりお話でも。
前学期に見た映画の続きを最後まで見ました。
あ、今度こそこれだけ。

明後日がレポート、明々後日がまたテスト

学校のパソコンに入っているVS.NET2003にはlibci.libがないのでDirect3Dを使ったプログラムがビルドできないようです。
最初からSDKが入ってるくせに使えないとは何事かっ!
他のVS.NETはどうなんでしょうか…

XPの丸いウィンドウの淵、ウィンドウモードならともかくフルスクリーンモードだと四隅が開いてしまうので右上をクリックしてしまったときものすごく困るんです。
ウィンドウの淵をなくすかウィンドウを最大化すれば隙間はなくなるんですが、VBみたいにボーダースタイル無しはCreateWindowではできないみたいだし、最大化してもダブルクリックで元に戻っちゃうし何故か移動できちゃうし…
でもVBだって内部ではAPIを使っているわけだし、できないことはないと思うのですが。
サンプルでもこのあたりは妥協しているようです。
「パネルγ」はなかなか思うようには進みません。

テスト、直前しか勉強しなかった割にはできたような気が、でも、直前しか勉強しなかったなりの点数にはなりそうな気がします。

イメージ音楽

「パネルγ」作ってます。
ウィンドウの作成とDirect3Dの初期化を作りました。
フルスクリーンがうまくいってなかったりしますが大方良好な感じです。
ほとんどサンプルからのコピーだけど文の一つ一つの意味を理解しながら写していかないと後々面倒なことになりそうです。
いや、実際そうなりつつあるんですけど。
あと、BGMを数種類作りました。
で、ある程度揃ってきたので適当に繋げて実際のゲームみたいなイメージのものを作ってみました。
チャンネル数の関係でいくつかの楽器が似た音色のものと置き換わっていますが、大体イメージどおりになってくれているようです。
ただ、ピンチのときの音楽だけがちょっと浮いてるかな、という印象を受けます。
一応、構成としては、ゲームスタート→2連鎖+同時消し1回!→1~100点のテーマ→11連鎖+同時消し4回!→100点~200点のテーマ→こりゃやばい!→苦し紛れに普通消し→こりゃやばい!→ゲームオーバー…てな感じになってます。
ゲームオーバーだけはまだ作ってないけど適当に入れました。
専用ページも一応開通。

「ふしぎのぼうし」のしずくの神殿をクリアしました。
なんででかいザコはこんなに強い!
あと、剣技全部覚えられたようです。

あ、実験レポートもテスト勉強も宿題もやってなかった!

世界の中心で虎が回る

「パネルγ」アイコン作りました。
何も表示されないけどせめてアイコンくらいは表示できるようにと。
あと、WM_PAINTメッセージを受け取ってBeginPaintとEndPaintだけするようにしました。
何もしてないときよりはマシなれど相変わらずぐちゃぐちゃ。

今日も3Dやってみました。
いろんなところから拾ってきたサンプルをつぎはぎして光の当たる虎を作りました。
カメラが回りライトも回ります。
本当は虎も回るはずだったのですが、いつの間にか回らなくなっていました。3Dの神秘です。
虎だけしかなかったら虎が回ってるのかカメラが回ってるのか区別がつかないので地面も用意してみました。
地面には法線ベクトルが設定されていないのでアンビエントライトしか当たらず暗くなっています。
ちなみに地面はこれまたどっかから拾ってきた世界地図で、虎に踏んでいるところはちょうどアフリカのあたりになっています。
ファイル置き場にそのときの画像があります。

おめでとう!ありがとう!

スマブラDXでやっとノーダメージクリアを達成しました!
キャラはマルス、シンプルモードベリーイージーストック1で数回挑戦。
飛び道具を使うキャラは万が一にもシールドリフレクトされたらまずいので飛び道具主体のキャラは除外、やられ判定のない剣による素早い攻撃ということでマルスに決定。
通常ステージのザコどもはスマッシュか強攻撃剣先当てでスパッとクリア。
動きがわかりやすすぎるドクターマリオは画面端で待ち伏せてのこのこやってきたところを後ろ投げで場外へ直行。
メタルもベリーイージーでは落下速度が速いだけ。
神殿だけはステージのど真ん中にいてもルーペ化してダメージを受ける可能性があるのでできるだけルーペ化しない位置をキープ。
「ターゲットを壊せ」は一応1個だけ壊してからダメージを受けないうちに転落。
「フィギュアゲット」は一応全回収。
「突き進め!」は一番近くのゴールに突き進め!
ここんとこのダメージは関係ないと思うけど念のため。
で、最後の難関マスターハンド。
他のザコどもとは違い一発で決めることが不可能であり攻撃範囲もステージ全体に及ぶため確実に避けなければならない。
指先からビーム→攻撃はせずステージ左端で避けに専念
はたき・キラー→攻撃はせずシールドで回避
つかみ・人差し指突き→攻撃はせず緊急回避
上から拳骨→左端で避けた後攻撃
叩き潰し・指で蹴る→空中ジャンプから上必殺技で反撃
奥から拳骨→避けるだけ
奥から突進→2段ジャンプからシールドブレイカーで帰ってきたところへ反撃
待機→どんな攻撃が来るのかわからないのでこっちも待機
最後は時間がなくなってきたので突っ込んでいきましたが、何とかノーダメージクリアに成功しました。
そして最後のフィギュア「ディスくん」をゲット。
フィギュアが全部揃った!

「ふしぎのぼうし」、小さい状態だと泳ぐほうが圧倒的に速いんですね。
沼地ではうまく水溜りを見つけて飛び込んでいけば相当速く移動できるようになります。

「パネルγ」のプログラムを作り始めました。
ウィンドウだけ作ってあとは必要そうなヘッダファイルをインクルードしただけ。

ガンマ線

とりあえず昨日のパズルゲーム、「パネルγ(仮)」という名前にしました。
いや、「(仮)」は付きませんけど。
で、BGMにこだわるということで、まず2つMIDIを作ってみました。
1つ目はメインBGM。
ただし、パネルを消すたびに別の曲と摩り替わって、長い間聞くことはないので、8小節の短い曲として作りました。
メインBGMは得点や状況によってたくさんのアレンジバージョンが存在し、テンポの速い曲だと10秒もしないうちに1ループ終わってしまうかもしれません。
4分の3拍子の短調の曲です。
実は昔遊んだWindows3.1のフリーゲーム「ヨコリス」だったか「ヨコラモス」だったか、そんな名前のゲームのBGMに影響を受けています。
0点のテーマは、ゲームを始めた最初のときだけに流れるので、カウントダウンの音も入っちゃってます。
2つ目は連鎖BGM。
パネルを消すと流れ出し、連鎖が続いている間流れ続けます。
1小節が1連鎖の時間と同じなので、1連鎖ごとに1小節進み、1小節ごとに半音ずつ音階が上がっていきます。
そして、17連鎖以上するとそれ以上音階が上がらなくなります。
実は昔遊んだWindows3.1のフリーゲーム「うにさめ」の効果音に影響を受けています。
連鎖が終了すると次の通常BGMに移り変わります。
通常BGMのほうをファイル置き場にアップしました。
短調とギターって合うねぇ。
ちなみに、DirectX8の練習も兼ねて、VC++6&DX8で開発することにします。
もちろんスコアランキングにも対応で。

家のパソコンでも3Dやってみました。
SDKに付属のサンプルをいろいろ改造。
やりたいのはトゥーンレンダリング。
球とか円筒などの簡単なのを表示しても面白くないから、チュートリアルの最後、Xファイルからメッシュを読み込んで表示するサンプルを使ってみました。
とりあえず虎のテクスチャは要らないので表示コードをコメントアウト。
そしたら灰色一色の虎が。
テクスチャ貼ってるだけの色もライティングもない虎だから当たり前ですけど。
で、ライティングのサンプルからその辺の処理引っ張ってきたら今度はほぼ真っ黒に。
これは環境光の色そのままだから、恐らく法線ベクトルが定義されていないために直接光の成分がなくなったためだと思われます。
と、とと、まてまてまて、もうひとつ、オブジェクト側では反射のしかたにも2種類あって、そのうちのアンビエント反射、要するに入射角と反射角が一緒ってことは、「ふにゃふにゃ」のビーム反射処理にも応用できるんじゃないか?
それでもって、話は変わってDirectMusic、これまたDirectX8では良さそうな機能が追加されてたりして、全面的に8使うようにしようかなと思っていますが、DirectDrawがなくなったことを考えると思い切れないのも事実だったりします。

パズルゲームを考えています。パネポン風味のやつを。
数色に色分けされた長方形(以後これをパネルと呼ぶ)を画面の特定の範囲にルールに沿う範囲で整然と並べ、任意の2パネルを交換することによりルールによって定められた数種類のパターンのうち最低一つに一致するようパネルの配置を変更し、パターンに一致したパネル全てを消去し、それにとって得点を得る、また、パネルが消去されたことに起因してパネルの配置が換わり、それにより新たにパターンに一致する配置を作り、連続して消去すること(以後これを連鎖と呼ぶ)、そして、一度の操作でより多くの、またはより困難なパターンに一致させることにより通常より多くのパネルを消去すること(以後これを同時消しと呼ぶ)、さらに連鎖動作中にパネルを移動することにより、連鎖終了後に再びパターンに一致するように配置し、連鎖を続けること(以後これをアクティブ連鎖と呼ぶ)により通常より多くの得点を得ることのできるゲーム、ということです。
もちろん違いもありますよ。

縦や横に並べるわけじゃない
これをやっちゃったらパネポンそのものでしょーが!
次世代らしく、四角形になるように並べます。
可愛い女の子が出ない
昔にも言ったことがあると思いますが、そんなもの私に期待するもんじゃありません!
そして本当に誰も期待していないんですね…
せりあがってこない
その代わり横からプレス機が迫ってきます。
横長
横から迫ってくるので横長にします。
マウス操作が基本
隣同士を入れ替えるのではありません。
好きなところ2箇所をマウスでクリックして入れ替えるんです。
パネルが多い
ちょっと理由があってパネル数を多くします。
多分目一杯パネルを出したら1000個超えると思います。
ほかにも、こだわりたい部分としては、BGMがあります。
パネルを消すとちょろっと短い音楽が鳴りますが、連鎖をすると短かったのがだんだん長くなって、派手になっていきます。
また、通常BGMも、得点や状況で切り替わったりします。
0点の音楽→1連鎖の音楽→1~100点の音楽→1連鎖→2連鎖→3連鎖→4連鎖の音楽→101~300点の音楽→ピンチのときの音楽→ゲームオーバー…みたいな感じで。
ゲーム音楽のインタラクティブ性というものはまだまだ挑戦できることが多そうです。

ヘッドフォン

学校のパソコンで昨日に引き続き3Dを頑張ってみました。
とりあえずネットでサンプル明後日適当に自分なりに書き換えて2Dポリゴンを表示して自己満足して3Dポリゴンも調子に乗ってやってみようとしたら突然リンカエラーが!
libci.libが見つかりませんって言われたって、そんなのリンクするような設定はしていないのですが・・・?
で、勿論早速MSDNライブラリで調べてみたわけですが、見つからない。
帰ってからもう一度調べてみたら、「古い iostream ライブラリ」とのことで、「最新だったら新しいの使えよ!!」などと思ってみたりもしたのですが、新しいのにどうやって変えればいいのか、新しいのに変えることで不具合が起きるんじゃないか、新しいのがまだ古いのを使ってるのに何故に古いものを切り捨ててしまったのか、などなど気になってしまって、別に何もしませんでした。(何

「ByteEdit」を更新しました。
選択内容を検索します。
ついでに言うと、ドラッグによる範囲選択と右クリックにもこっそり対応させたので、検索したいバイト列をドラッグで反転→右クリックから検索で、簡易ながらもバイト列の検索ができるようになりました。
そこそこ拡張しやすい形になっていたので両方ともちょっとだけ手を加えただけで実現できました。
こんな感じですぐできる更新をちょっとずつやって行くことにしてます。

前にヘッドホンが壊れてしまっていたので、学校の帰りにヘッドホンを買ってみました。
買いに行くと、6000円くらいのオープン型・3000円くらいの密着型・2000円くらいの密着型・1000円程度のオープン型があったのですが、6000円のは完全に予算オーバーで問題外、1000円のは用途から考えてふさわしくないと感じ却下、3000円のは2000円のと比べてどこがいいのかわからなかったので結局2000円のにしました。

ピクミンその他のゲームのページ、気が向いたのでアップしてみました。
ついでにリンク集もちょい整理。
そんでもって新日記公開。

ピクピクニンジン

ピクミンのページ作りました。
ピクミンってどう考えたって扱いが奴隷。
今のところアップしてません。
気が向いたらアップします。

ちょっと学校のパソコンでDirectX8で3Dでもやってみようかと思ったのですが、チュートリアルが意味不明だったため挫折。
変数が何のために使われてどこでどう定義されて他の変数との関係がどうなのかとかがさっぱりわからないので打ち込んだところでどうにも…
DirectXGraphicsに統合された分簡単だと思ったのですが。

新日記2002年分の過去ログを仮入力完了しました。
12月の日記はほとんど同じ話題が続いていたので楽でした。
さて後1年半分…

そろそろ更新しようかと思います。
ByteEditかDirectXでも。

ひさびさFFCC

新日記の過去ログを2002年10月まで仮入力終了。
途中から過去ログの形式が変わったりするのでちょっと入力が大変です。

あ、FFCC久しぶりにやってみました。
きわめて庶民的なアイテムしか手に入らなかったのでセーブせず電源OFF。

ふしぎのぼうし3つ目のダンジョンをクリアしました。
ゴードン似のオーリス登場。

旧日記改造日記

アクセスログを回収しました。
新しいリンク無し、記述ミスによるリンク切れ無し、ダウンロード数やや減少、Googleからの訪問激減。

新日記のログの形式を変えました。
前までは月ごとに別のログを用意していましたが、月別の表示のときには、もしログに間違った月の日記が入っていてもそのまま表示してしまうし、検索機能を使うと一気にたくさんのファイルにアクセスすることになり、いろいろと不都合があったため、全部ひとつのファイルにまとめることにしました。
PHPはCGIではないのでSuExecとは関係ない模様。
ログファイルのパーミッションは読み書きするために666でないといけないようです。
ま、日記はログ内容を整形して表示しているだけなのでログを見られる分には一向に構わないんですけど。
でも書き込み権限に関してはこれは大問題です。
というほど重大な問題でもないのですが、やっぱり第三者による書き込みを許可しているのは少し心配…
いっそのこと書き込みだけはCGIに頼るか?
これに伴い、現行の日記CGIも、新日記にできるだけ合わせた形式のログを吐き出すように改造しました。
ついでにセキュリティもほんのちょっとだけ強化。

「ふしぎのぼうし」、2つ目のダンジョンクリア。
あまりハートのかけらが集まらない…
しかもボスがポケモンっぽい…

ピッコル

父が七輪を買ってきて、今日は焼き鳥でした。
火をつけるのに2時間かかったり煙がたくさん出てスプリンクラーが作動しないかとヒヤヒヤしたり、でもやっぱり炭火で焼いたほうがおいしい。

「ゼルダの伝説-ふしぎのぼうし」を入手。
とりあえずダンジョン1個クリア。
多分ラスボスであろうグフーがちょっとオマヌケだったり。

更新インストールの巻

WindowsMediaPlayer10をインストールしました。
またまたデザインが変わってて、でも内容はどこがどう変わったのかわからなくて、結局更新チェックのダイアログを出さないためにバージョンアップしたという感じ。
Lunascapeもバージョンアップしてたけど特に必要な機能はなし。
検索するたびにバージョンアップ通知が来るので鬱陶しいことこの上ない。
なんか落ちるバグが修正されたとかで、一応インストールしましたが、30日しか使えないらしいRoboFormやら別にいらないのばっかり付いてきて、やっぱりWMP10と同じ状態に。

ランキングCGI、完全オリジナルにしました。
自分で書いた部分以外のコードを全部消して書き直し。
ロック処理とかがかなり甘くなったけど多分消えないから気にしない。

「ByteEdit」に超簡易右クリックメニューを付けてみました。
すぐ上にある編集メニューをそのままPopupMenuで出しただけ。
クリップボードの内容、せめて「ByteEdit」間だけでも共有できるようにしたいと思い、ひとつアイディアを。
クリップボード用一時ファイルを作る!
しかし旧バージョンと異なるクリップボードを使えば何かと面倒な気が・・・・処理速度も・・・

新日記作成日記

新しい日記をPHPで作り始めました。
とりあえずは個人的に需要のある日記の過去ログを表示する部分を先に作り始めました。
というより過去ログを見るPHPそのものはできたんですが。
ログの変換作業が結構大変なのです。
まずHTML化されたログをPHPで読める形式に変換しなければなりません。
これについては単純な置換作業で済むのですが。
で、大変なのが日付の記録方式の変換。
なんせ西暦で表された日付と時刻を 1970/01/01(Thu) 09:00:00 からの経過秒数で表さなければならないんですから!
月によって日数が違ったり閏年があったりして変換作業を自動化できないのですが、逆に秒数から西暦をすぐに出力するCGIを作ってできるだけ速くなるようにはしました。
最後は簡易検索用キーワード。
開発日記等は今まで日記の中から関連する場所を抜き出して別のHTMLファイルを作っていて、ファイルサイズも入力の手間も膨大になりがちでしたが、これを、キーワードを与えて日記の過去ログから検索して表示するという方式に変えて、効率化を図ります。
これはこれで何の関連記事かとかそういうのを、内容をよく読んで判断しなければならないのですが、開発日記用にHTMLを作ることを考えれば楽なものです。
まだ中途半端な状態なのでアップしていません。

立体感・平面感

レポート何とか合格貰いました。
まず考え方を変える。
平衡状態のときの電流を考えるのではなくそのときの電圧のみを考え、その電圧の差がすなわち電位差になってるわけで、その電位差が0ならば本当に平衡状態なんだけれどもちょっとずれてたら要するに0じゃなくって、ずれの影響を最小に各抵抗の値を決めてやればよいわけで、それをするにはとりあえず微分して0になる位置を見つける。
で、その値になるように測定すればよかったんだけれどもそんなことはしてなかったわけで、実験結果とは実は無関係。

メタセコイアでございます。
DirectXで使えるXファイルを出力できるということで導入してみました。
ライトエディションなのでいくつかの機能がありませんが、4面表示は視点変更で代用できるし、頂点カラーなどもプログラム側から指定してやればよいだけのことで、シェアウェア5000円も払うほど機能が足りないというわけでもないのでこれで当分は3Dモデリングは事足りるかと思います。

で、トゥーンシェーディングの方法というのがですね、いや、メタセコイアの話じゃありませんけどちょっと関連してます。
えっと、まず光の向きベクトルを考えます。
で、ポリゴンの、頂点の、光の向き成分を考えて、それが0以上だったら白、そうでなかったら黒、でも実際はそんな細かいところは計算してられないので、半分が白で半分が黒のテクスチャ画像を用意して、そのテクスチャのどこにポリゴンに貼り付けるかを計算してそれっぽく見せる。
輪郭線は、ちょっと大き目の真っ黒なモデルの裏面だけ表示。
極端な話、これ使えば白黒の3Dゲームというものができてしまいそうな予感。

ガノン形式…ゴードン形式??

朝起きておにぎり食って学校行く前にチョコレート食ってインスタントコーヒー飲んで電車に乗ったら気分が悪くなってさっき食べたチョコレートの味がのど元までこみ上げてきて、いつぞやと同じような状況ではないかと思ったのですが、幸いにもバス中ではそれ以上気分が悪くなることもなく、1時間目の授業で適度に休息を取り、2時間目以降がなかったため、再提出のレポートでまたダメ出し食らってからさっさと帰宅、の途中やっぱり気分が悪くなって家に帰ってからしばらく休み。

元気になってからMIDI打ち込んでみました。
「Bomber丸World」の密林ダンジョンのボス音楽です。密林仮面戦士ではありません。
最初のうちテキトーに作っていて、面倒だからコピーして、それに重ねるように打ち込んでいって、同じパートを2回繰り返しつつ1回ずつ次のパートに切り替わってゆくというのを作っていたのですが、それにあわせて低音部を作っていくうちに、低音部にあわせて高音部も2部構成にしようかと思って高音部を2つのトラックに分けたらなんだかカノンの形式になっちゃって、時期的に今ゼルダの伝説のゴードンの音楽が同じくカノン形式で、結果的にマネっぽいことになっちゃったかな~と思うのですが、例によって例のごとく、気にしないようにして、低音部はそれなりにありがちに、多分かっこいいような気がするだろうと思えなくもない可能性が高いと思う感じに作ってみました。
どこかのページで聞けるらしいですよ。

<2004年12月 2004年10月>