「パネルγ」に関する日記(4)

<前 次>

メシア

メテオスのスタートリップのマルチの一番上のエンディングを見ましたよ。
攻撃メテオを75個以上溜めて、というミッションは苦手だったブビットで成功。
点火を繰り返すことで極端に上昇力が上がるところがここだったので(逆に繰り返し損ねるとすぐアウトになってしまう)。
ヘブンズドア×3=21賢さんのミッションは最初から最後までタイムアクセル状態のままで勝利。
幸いブレイク数はミッションには関係ないのでミッションクリア前に相手がやられそうだったらタイムアクセルでとっとと自滅。
多分これがベストエンディングだな。
ブランチの下から3番目がお気に入りだけど。

プラクティス1完成させました。
マウスの動きを作るのが予想以上に大変でした。
そのあたりをもっと簡略化するように便利関数を拡張したりもしました。
う~ん…ひとつに一日がかりか。厳しいな。

fff終わらず

デモプレイに便利な関数修正。
マウスクリックで複数のシーンが飛んでしまうバグを修正。
パネルを入れ替える関数作成。
これもプログラムの簡略化のため。

チュートリアルの文面とか。

1.基本。パネルの動かし方。消し方。
「基本。パネルの動かし方。消し方。」
それでははじめましょう。
マウスの左ボタンでつかんで
ドラッグ&ドロップで入れ替え。
さて、パネルを消して得点をもらうので、
パネルの消し方を説明します。
横に並べても、縦に並べても、
斜めに並べても、消えません。
パネル4つで四角形を作ると、
ささやかなエフェクトと共に消えます。
実践:マウスのドラッグで移動して
   四角形を作ってパネルを消そう。
お見事!
これにて第1回を終わります。
2.パネル発生と灰色への対処。
パネルがありませんね。
どうやったら出てくるのでしょうか。
待ってても出てきそうにないので
仕方なく自分で出すことにします。
何もないところに線を描く要領で
どわーーーっとやると出てきます。
実践:マウスで線を描くようにして
   パネルをたくさん出してみよう。
あっ、見慣れない灰色が出ましたね。
一体全体何者でしょうか。
実はこれ、四角形にしても消えません。
カラーパネルとは違うのです。
こういうのは普通のカラーパネル8つで
囲むと消すことができます。
実践:灰色パネルをカラーパネル8つで
   囲んで消してしまおう。
よくできました。他にも消す方法は
いくつかありますが今回は扱いません。

fff中編アップ。
結局今日中に終わらなかった・・・・
四月の頭に完結させます。

http://www.geocities.jp/stdmidi/
SMFの構造をわかりやすく解説。
MIDIAPの参考にさせてもらおう。

デモプレイ

デモプレイを作るのにとても便利な関数作成。
明日fffを終わらせた後でチュートリアルを全部作り上げてしまいたい。
そうだな・・・メインは文章だから文面をさっさと考えてしまうか。

で、fffは敵が出てくるところまで。
解説したからといってどうなるわけでもない定型文がそろそろ増えてくる。
そこはサンプルコードだけをのせて、なるものはなると開き直る。
意味は後で各自が調べればよい。

バグサンプル

fffの途中サンプルにドキュメント付属。
なんせバグってる状態のサンプルなんで説明が必須。
明日ゲームそのものは完成させてあさってに公開という形になります。

パネルγ、チュートリアル1を作り始めました。
それに伴いできるだけ作業を効率化させるためにいくつかの機能を共通化。
ちなみに、チュートリアルではそのとき説明している以外の操作をしようとすると怒られます。

メテオスめぇ!!

パネルγの日本語表示の仕様変更。
目的はメモリの節約。
日本語を表示する領域は完全に固定なのでその方向に最適化しています。
サーフェスは全部ビデオメモリに入れてるはずなので足りなくなるとつらい。

ABのfff、こんなおかしな動きになるぞって言っておいて静止画しか見られないんじゃわかりにくいので途中版サンプルも作ってみました。
文字通り作りかけの状態でめちゃくちゃ不完全なのですがあえて。

メテオス、買っちゃいました。
ラスボス最高。あんなのやこんなのをバシュバシュ飛ばせるなんて!
見た目が好きなのはメックスとスターリア。
BGMが好きなのはレイヤーゼロとフロリアス。
ルールが好きなのはギガントガッシュとヒートヘッズ。
設定が好きなのはヘブンズドアとアーニマ。
メテオの柄が好きなのはメテオス!!

これからはおまけで

パズルモードのステージ制作中。
パズルモードはなんとボリュームちょっぴりの全10ステージ!!
で、10ステージ中6ステージまで作成。
一つ一つのステージが決してコンパクトではないし、全部消すまでに稼いだ点数を競うものであるという特性上解法が一通りではない(クリアするだけなら簡単だが高得点を狙うのは難しい)ので、ステージが増えても疲れるだけかと思ったので、切りよく1画面に表示できるメニュー数と同じ10個にしたわけです。

ActiveBasic版fffの開発半分ぐらい完了。
ゲーム作りとはルール作成・演出・データ作成がメインだと思っちょります。
そしてそれらは本来すべて作成者の個性であるため、ここで扱いたいのはあくまでこれらを作り始められるように準備する部分まで。
だからはっきり言って、ここから先のルール作成部分はほとんどおまけのようなものなのだ。

ネイローゼ

パネルγ、プラクティスにメニューを追加できるようにしました。
ここからチュートリアルに移動していろいろ試せるようになっています。
チュートリアルでは作っただけで今まで使い道のなかった2つ目のマウスカーソルが活躍しそうな予感。

今日はMicrosoft GS Wavetable SW SynthのMusic Studio Producer用の音色表を作っていました(参考:http://wiztext.bne.jp/~sakura_news/4neria/mgs.html)。
ドラムセットの入力は完了。普通の音色のほうは多すぎて終わらなかった。

音化け

パネルγ、画面下の情報表示にハイスコア追加。
なんとかできそうな気がしてきたのでひとまずパネルγはおいといて、fffの開発に行っていました。
画像の読み込みと表示の解説が面倒だったので描くのも解説するのも簡単な円に避難。

うちのパソコンにインストールされているQuickTimeとMidRadioPlayer、どっちもMIDIのソフト音源を持っているらしいのでいろいろ聞き比べ。
音化けでろくに聞こえなかったMIDIがばっちり聞こえるようになったのはうれしい限りです。
ドラムの音が音源によって全く違うことを身をもって痛感。
物によっては悲惨。

振り返ってみれば

タイムアタックのランキング、さっさと作ってみました。
タイムアタックのBGM、昔作ったピンチの時用のBGMを流用したりエンドレスのBGMをアレンジしたり新しく1から作ったりしつつ全種類一気に作ってしまいました。
しかし、実際にゲームで使ってみると、残り時間1~2分のテーマと0~1分のテーマのとき、あまりにもテンポが速すぎて、消しBGMに切り替わったときにテンポ変更が追いつかず2~3倍速のスピードで半連鎖分ぐらいBGMがすっ飛んでしまい、ゲームとBGMが合わなくなってしまいました。
そこで、一つ一つの音の幅を狭くしてテンポを下げることで聞いた感じは同じのままテンポの狂いを抑えてみました。
実際にこれでゲームをやってみたらまあまあいい感じにできていた印象です。
1分を切ったときの曲なんか元々はたった4秒でループするものだったので、無理やり引き伸ばして引き伸ばして16秒まで延長したのですが、その割には違和感が少なくできたように思います。

「Bomber丸World」のシステムのひとつ、方向別エンカウント率。
基本的にBomber丸Worldでの敵との出会い方は一歩ごとランダム(1歩目で出会うかもしれないし100歩歩いても出会わないかもしれない)なんですが、歩く方向によって敵に出会う確率が偏ります。
多くの場所では、直進エンカウント率が低く、方向転換のときのエンカウント率が高くなります。
ある敵などは後ろを振り向いた瞬間にしか出なかったりもします。

オーニホンゴデース!

パネルγ、日本語表示対応。改行は不可能。
これでプラクティスを本格的に作りはじめられる。
んで、ピンチのときテンポを上げる処理を実装。
でも高さじゃなく深さでテンポを変えたほうが良かった気がします。
タイムアタックのランキングもさっさと作らないと!

タイムアタック

タイムアタック作成。
ほとんどエンドレスのコピー。
プレス機の移動速度はひたすらランダムで決まるのである程度運も必要。
まあエンドレスもある程度そうだけど。
ただ、時間制限がある分、圧縮によるゲームオーバーはできれば避けたいので、ピンチのときのプレスの速度はかなり遅くなるように設定してあります。

AB講座の続きも書いてます。
とにかくコンパイルを通して、見た目を先に作って、マイキャラを動かして、敵キャラを動かして、ほかいろいろやって、完成です。

GDIGDIGDI

GDI実装。DDrawでうまくいかない人は試すよろし。
ポーズ機能もちょい改良。いきなりゲームに戻ると動作に支障が出る。のでポーズから復帰時にちょっと間開け。
名前の記入は日記書いた後即行で実装。

AB講座、はじめました。
今日中に書き終わらなかったのよ。

あとついでに、ゲームのカテゴリが増えすぎていたのでシリーズ別にまとめました。

公開まで毎日パネルγの進行状況報告します宣言

リファラ見てたらなんだかピンク玉がはねてる楽しそうなゲームを開発しているページを発見。
なんだか面白そう。
こっち方面に役に立ちそうなことを重点的に更新しつつ完成を楽しみに待っていようかなとも思っていたり。

パネルγ、ポーズ機能作成。
デバッグモードでコンパイルした場合のみ、ポーズ画面に100点追加とプレスリセットのメニューが登場します。
残念ながらランクへの名前の記入はまだ。
また遅れたっ!!

fffab開発開始ですよっ!
何って!ふわふわふにゃのActiveBasicバージョンですよ!!
あすかあさってあたりでプログラミングコーナーで取り扱うのじゃ!!
ふわふわふにゃはゲームプログラミングの典型的な手順のひとつに忠実に従っている(はずです)ので。

遅い!

パネルγの開発、予定よりかなり遅れてるっぽいです。
まずいっす。ショートケーキに醤油と山葵付けて食べるぐらいまずいっす。食ったことありませんが。
一応ランキングに記録はできるようになりました。
これをファイルに保存できるようには1週間以内にしておこう。
ランクに名前を記入するのと日時の記録は明日中に終わらせられる。
サウンドテストとプレスブレイカはカットになる可能性が高くなってきました。
いずれもルールが複雑になる可能性が高いから。
とり急いで不足分のBGMを作成。
どうもコード進行を間違えたようだがひとまず保留。
ポーズ機能もつけなければ!

本物のほんもの

アキヤメにいろいろ同盟追加。
無意味にまどろっこしいのは一度やってみたかったから。
質は軽視されているというよりは、ほぼ無視されているので、期待は禁物です。

パネルγ、ゲームオーバー後の結果画面に各パターンを消した回数とコンボ継続数の統計を表示させられるようになりました。
マウスで切り替えたりスクロールしたりできるのだ!!
思う存分感慨に耽るが良い!!

いも・おと・にい・ねえ

アンダーバー、下げすぎた。
んで、ゲームオーバーのところもちょっと変えてみた。

「Bomber丸World」で、こんなキャラを考えてみた。

いも
次女。

にいやねえとはそんなに歳が離れているわけではないのにかなり背が低い。
これは、親が年功序列を重んじており、生まれたころからにいやねえより明らかに悪い待遇を受け、成長不良を起こしていたためである。
いもは親から全く愛されていないと感じ、お茶に毒を入れて自殺しようと図ったが、おとがお茶を摩り替えたため死ぬことはなかった。

おと
次男。

いもが自殺しようと用意した毒を父に飲ませ、殺した事件以来、いもとにいには嫌われており、唯一以前と変わらぬ態度で接してくれるねえにはよくなついている。
顔の傷は、父を殺した夜に怒ったいもに鉛筆削りやはさみや耳栓や彫刻等や油粘土や他いろいろなものを投げつけられてできたもの。

にい
長男。

厳しいが優しい父に育てられ、立派に成長し、今では戦闘家になっている。
いつからか年功序列に従っておとやいもにほとんど優しさを見せない父の教育方針に疑問を持つようになっていた。
事件のとき、肉親を奪われた怒りに弟を襲おうとしたが、同時に教育方針の被害者である妹を助けたことを知り、何もすることはなかった。
いまだに弟の行動が正しかったのかの結論が出せず、ギクシャクした関係のままでいる。

ねえ
長女。

昔から何不自由なく育ち、弟妹の世話役として身の回りの世話をしていた。
事件のとき誰にも何もしてあげられなかったこと、長い付き合いだったはずの弟妹が思いつめていたのに気付かなかったことに責任を感じ、命に代えても誰か人を守りたいと考えるようになり、今では弟の守護をしている。

この4人、戦闘家としての戦いのときは幸せな家族写真っぽい配置で現れるんですが、さりげなく兄妹・姉弟のチームに分かれていたりします。
前後関係も重要なポイント。
ただ、「Bomber丸World」の世界観には重すぎる設定のためゲーム中ではこのエピソードは出ないかもしれません。

ひょんなことからfffをActiveBasicでリメイクすることになってしまいました。

ですから

現在はダミーのデータが入っています。
ランキングのデータ。
はい。
つまりその、更新したんですよ。
あれ。
あれですよ。
オレオレ、100万円振り込んどいてくれない?
いや違う、ルールのページですよ。
ダミーのデータだけど表示できるようになったんですよ。
ランキング画面。
作り始めました。
GDI。
DirectDrawを使わないんですよ。
3Dもね。
変えたんですよ。
フォントのアンダーバーを。
もう少し下に。
いいんですよ。
そっちのほうが。
都合が。
何かと。
パネルγのことですよ。

顔文字の利用

設定の読み込みに対応。

窓がいいんです
静かに遊びたいんです
終わりなき呪文は、ちすりひろびづげぬやいれじかなせぐじびぐけずもほのぬらぢときさにかはざみけつべぎじさやざほほ
時の呪文は、ざなせさわぜふわえずあつとつほほすだほぐさげふいづひおばじぬしほいはつねるいまぶてひえぞへか
破壊の呪文は、ほりいゆうじえにつくすどらごくえすとだよろおらひめゆうしやはあなたがきらいだなあ
こんな感じで。
後半の呪文部分は実は未対応。
あ、ピンチのときにBGMのテンポ上げるってのはいいかも。

いつか言ったけど、RPGの登場人物一人一人の個性は重要だと思う。
しかしグラフィックでそれを表すのは骨が折れるし、特別なキャラが目立たなくなる。
「Bomber丸World」では、一人一人の口調にすべて変化を持たせて対応しようと思っている。
気付かない人は気付かないだろうけど、それは深く関わらなかったためであり、深く関わる必要すらなかったわけであり、気付かなくても問題ないし、むしろ当然だと思う。
しかし、口調が統一されていないと、同じ言葉でもそれに含めるニュアンスや感情が人によって変わってしまう。
それは現実世界ならば声のトーンや顔の表情などでわかるが、どちらも今回は難しい。
フォントを変えることで声のトーンを表したら、同じ人の言葉でも全くの別人が喋っているように見えたりするし、表情ごとに顔グラフィックを用意するのも大変だし。
そもそもそこには一人一人の口調には一人一人の顔が伴うという固定観念がある。
それを捨て去れば、みんな同じ顔で、表情だけが変わる顔を作ればいいことになる。
できるだけ作るのが楽で、誰にでも当てはまるように単純かつ抽象的で、限りなく表情豊かな顔が求められているというわけだ。
   (^-^)
老若男女誰でも使う顔があった。
顔文字だ。
もちろんこれはネタで使いたいわけじゃないので、必要のないときは極力使わない。
それでいて必要となったときに自然に紛れ込むようにするのだ。

エラーが!!

練習モード、長時間やってると終了時エラーが出る模様。
7000…OK, 11000…ERROR, 9000…OK, 5000…OK, 10000…OK, 200…OK
こりゃデバッガのお世話になるかな…。
あと、いきなり画面が切り替わるのもなんなので画面の切り替わりの時にはプレスがいったん全部潰してから次の画面に切り替わるようにしました。

練習

パネルγ、練習モードを作り始めました。
というより練習モード自体は既にエンドレスのコードを使いまわしてほぼ完成状態。
あとはチュートリアルを付属して・・・・って、それが一番厄介なんですけれども。
消しパターンも一個追加。
いかにもフリーゲームらしい、とんでもないパターンがそこにあります。
どーせできないという考えから、ゲームバランスを完全に、いや、完全にとまではいかないまでも、かなりゲームバランスを無視した配点になっています。
一応、ルールのページも更新。
私自身挙動を掴みきれていない逃げパネルと灰色パネルについての説明が追加されました。

<前 次>