==================================================================================================== Rockman 2024NY ・配布元ウェブサイト      http://borokobo.web.fc2.com/      (Neoぼろくず工房) ==================================================================================================== ●概容  ロックマンを題材とした二次制作物、「年賀状」ならぬ「年賀ハック」です。  毎年作成しており、今回で11回目。全部で12回なのでセミファイナル(?)でしょうか。  慣れれば5分以内でクリアできる内容です。初見でどれくらいかかるかは、プレイヤー次第。  今回は「ややこしい」仕様なので、テクニックより、想像力が問われるかもしれません。 ●免責  自己責任でご利用下さい。 ●使用法  このフォルダに rockman1.nes rockman2.nes rockman3.nes rockman4.nes rockman5.nes rockman6.nes  を入れた上で、bmaniw.exeを実行し、現れたウィンドウの指示に従いパッチを行ってください。 「変なアプリケーション実行させようとしてんじゃねーよ」と、言いたい方は、  bmaniw_srcにソースファイルがあるので、ご自身で精査の上ビルドして利用してください。  尚、昨今、こういった需要極小のアプリケーションは、  セキュリティーソフトが、大抵マルウェアと認識するような状態らしいです。 (具体性無く、「疑わしい」といった名目で。)  数万とDLがあるだろうフリーウェアの作者の方が嘆いている程の話なので、私にはどうにもできません。 ●補足 ・基本的にロクにテストしていないのでバグるかもしれません。 ・自機はかなり変わった仕様です。  ・完全オート連射バスターです。チャージ不可。Bを押しっぱなしが最速連射です。  ・ジャンプ力が少々高いです。  ・スライディングはできません。  ・ダメージ演出中でも動けます。ジャンプすらできます。  ・転落しても、ダメージを受けつつ復帰します。  ・当然ですが、ダメージ演出中は攻撃できません。   また、その後、無敵時間発生中は攻撃レートが半減します。(割と重要)  ・すごく細かいことを言うと、移動速度や歩き出しの仕様が細かく変わっています。 ・敵には弱点部位があり、そうでない部分の2倍のダメージを与えます。  フラッシュの仕方と、効果音(ほぼ聞こえないが……)でも確認できます。 ・パッドリセット  戦闘中に、「スタート+セレクト」を押し込むとリセットが出来ます。 ・スタッフレコード  ……は今回はありません。クリア時のランクもありません。  制作がぎりぎりになり、やり込めなかったことも理由ですが、  それ以上に、ゲームデザインがそれに向いていないという事もあります。 ・実機でも動作確認済み  ただし、普通より多くのスプライトちらつきを起こしてしまうもよう。 ●リソース・謝辞など  乱数生成アルゴリズム「xorshift」に関して、sim様のブログの、以下の記事を参考にしています。 (周期が2^31-1の物を、a=3 b=2 c=1で利用。) https://blog.goo.ne.jp/sim00/e/33b576696be51efbb3eab4b5c61ffb87  敵の攻撃の案をゆるぼしたところ、数名の方に意見をいただき、一部採用いたしました。  ありがとうございました。 ●ヒントや反省等  下の方に、今回の物のヒントや反省等を書きました。  そんな物に興味があるという、よほど奇特な方はネタバレ覚悟で御覧ください。 ●ヒント集  ・自機の移動に関して、以下の三点を念頭に入れるとプレイしやすいです。   (1)低い足場から、真上の高い足場へジャンプで飛び移れます。   (2)歩いて降りるだけで、一段低い段差に着地できます。   (3)高い足場からジャンプして、逆側の低い足場へ着地できます。    少々シビアですが、高い足場から、逆側の高い足場へも行けます。  ・相手は頭部が弱点で、2ダメージ(1目盛り)のダメージを与えられます。腹は1ダメージ。   着弾の演出(フラッシュの範囲と効果音)が異なります。   大抵、頭部の方が狙いやすい上、ダメージも大きいので、   画面上部から追いかけるように撃ち続けると高DPSが叩き出せます。   もちろん、撃ちづらいときは腹に撃つのもあり。   しかし、大抵の攻撃は頭部から飛んでくるので、それを追うのは危険を伴います。   被弾してしまえば、ダメージ演出時間と、その後の攻撃レート半減のペナルティで、   ダメージ効率が下がってしまいます。  ・相手毎に技が異なります。また、戦闘のフェイズ(段階)が進むと技が変化します。   凶悪な技を持った相手もおり、早い内に倒しておくのが良いでしょう。   一体、終始露骨に凶悪な奴が居ますし、もう一体相当強いやつが居ます。   残りはだいたい同程度でしょうか。  ・相手は一定の順番で出現するので、ある程度パターン化できなくもないです。   既に倒されている時と、画面内にいる時は、その分が飛ばされ、次の竜が出ます。   とても仲良く連携を組んでいるように見える彼らですが、実はそれぞれに……?  ・相手は倒されると、エネルギー(?)を8個放出し、仲間に分け与えてしまいます。仲良し!   体力が満タンだと受け取らず、別の仲間に回しています。仲間思い!   ……が、この時、こっそり自機もエネルギーを取って回復しています。   3以降のボス撃破時演出をみるに、実はそういう能力があるらしいですし。   この回復にランダム性はなく、原則としてゲージ表示の順番に一個ずつ受け取っています。   しかし、よく見ると……?  ・戦闘のフェイズ   フェイズ1 : 残り7,6体 / 最大HP:56 / Lv1の技を使用   フェイズ2 : 残り5,4体 / 最大HP:56 / Lv1,2の技を使用   フェイズ3 : 残り3体 / 最大HP:112 / Lv1,2,3の技を使用   フェイズ4 : 残り2体 / 最大HP:168 / Lv1,2,3の技を使用/はさみうち   フェイズ5 : 残り1体 / 最大HP:336 / Lv1,2,3,4の技を使用   フェイズ6 : イベント後 / 最大HP:336 / Lv5の技を使用   (※:1目盛り = 2HP)   フェイズが進む時、ほとんどの敵弾は消滅します。  ・エンディング   エンディングが19通りに変化するようになっています。   しかしほとんどは色違いで、大まかには「G」「B」「W」の3つに分かれます。   普通にプレイしていると「W」エンディングになります。   特定のフラグを「立てない」事で「G」「B」エンディングに向かえます。   さらに、別の特定のフラグを立てる事で「B」エンディングになります。   フラグは、かなりわかりやすく視認できるようにしてあります。   しかし、「B」エンディングへのフラグは、   何度もプレイして偶然発見する必要があるかもしれません。狙わない時は確率1/6でしょうか。   よほど洞察力がないと、推理して発見するのは難しいと思います。   尚、「HG」「HW」エンドは存在しません。   また、「HB」「DB」エンドは、難しいというか、理不尽な難易度です。   そういうのが好きな方は挑戦してみてもいいかもしれませんね。私は二度とやりたくないです。  ・公称?   「毒竜」「火竜」「水竜」「雷竜」「金竜」(←※金属の金)「聖竜」「闇竜」   Poison / Fire / Water / Thunder / Metal / Holy / Dark   ……名詞と形容詞が混ざってるとか気にする人はいないですよね。 ●反省  構想でかすぎ。なぜ規模縮小させずに最後まで作ろうと思ってしまったのか。  そこそここだわってしまった結果、恐ろしいレベルの制作の苦しみを味わう羽目になってしまった。  とはいえ、テクニック的に珍しい事はあまり無い。  いつも通りだが、別に難しい訳では無いプログラムを、延々どぶどぶ、注ぎ続けただけの代物だ……  その中でも今回、新たに使ってみた手法が、  ラスタースクロール時に、表示するNameTable上のY座標を細かく指定できるテクニック。  これのお陰で敵の配置をある程度自由に行っても、  単一のルーチンでラスタースクロール用のパラメータを計算できた。  ……が、これは失敗。  このテクニックを使うと、スプライトの画像が乱れてしまうことを知らなかった。  このテクニックでは、hblank中にPPUアドレスにアクセスする必要があるが、  そのタイミングはスプライトの画像を読み出しているようで、壊れてしまうらしい。  そして、これを使わなくてもできなくはなかったはずなので、できればそうするべきだった。  スプライトが乱れる事を知ったときはもう修正するには遅すぎた。  もう一つ、新たに使ってみた手法は、画面の途中でパレットのデータを切り替えること。  それが、どこに使われているかは自明だろう。  実機で観ると、あまり色の違いがわからない……ファミコン実機・ブラウン管ってこんな画質だったんだ……  また、縦線の表示はねじれたようになってしまう点でも綺麗にはみえない。  こちらはこだわらなければ、それほど難しくはないテクニックのはずだった。  こだわる場合はシビアにタイミングを測り、ノイズが出ないようにするらしい。  しかし、何故かこの処理のあと一部のエミュ、そして、実機でラスタースクローリングが破綻し、  画面が激しく乱れてしまうことがわかった。  かなりテキトーに修正したが、本当にこれで問題がないかどうかは未検証。たぶんダメ。  ボスバトルのデザインについてだが、最初は火・氷・雷あたりの相手と順番に戦う予定だった。  その後、メカドラゴンとメカザウルスのタッグを考えたりもした。  どう考えてもドラゴンの尻尾と、ザウルスの首が同じラインに重なるんだけど、  どうするつもりだったんでしょうか。ほら、片方をスプライトにしてどうにか……  それ以前に、メカザウルスは「辰」ではないような……?  メカドラゴンも蛇タイプじゃないから、そちらも違う気がするけど。  実のところ、その後、結局のコンセプトにどう行き着いたかは記憶が曖昧だが、  最後のお仕置きで、一貫性のあるネタが思いついた事と、  某弾幕ACTゲーの、あるボスのゲームデザインがぴったりハマった事からこうなった。  ……つまり、過去最も酷いお仕置きは、割と初期構想であり、むしろそこから  構想を膨らませていったと記憶している。しかし、さすがに酷すぎたのでフォローを入れておいた。  何故か雷竜(サンダードラゴン)がピンクなのもこの経緯が理由。首(口)は一つですが。  ある時、更に、インティ・クリエイツ製の竜を題材としたゲームのネタを導入できると気づいた。  こうして、グッドエンド、バッドエンドという構想が生まれた。  その後、真正面から削り切る戦い方と、フェイズ5を瞬時に終わらせる方法が、  あまりにゲームの方向性が違いすぎると思ったので、さらにエンディングを分岐させた。これは分かりづらい。  更にその後、戦い方に応じて、最後の竜が変化する仕様を考えついた。  演出としては良いと思う。「B」エンドで別の竜が出るのも、自機を罠にはめた感じがして良いと思う。  こうして、一発ネタのくせに、「幅」が異様に広く、  デバッグ、テストプレイが非常に辛いゲームになってしまった。  年賀ハックも残り後2回……というのがあるので妥協できなかったのだろう。  テストプレイで、2周程、全てのエンディングを確認しましたが、もう嫌です。  ということで次回がラスト……最後の一回は大いに妥協しよう!  雑なやっつけ仕事でgdgdの最終回を飾ろう!それが私らしい。 ●謎のキーワード集 ・虹色の水晶 ・毒ガス ・マカニト ・クラウダ ・アシッドラッシュ ・アシッドバリア ・バイオブラスター ・レッドバレット ・超魔法ファイアボール ・フレア ・(灼熱)波動拳 ・忍法雪木枯らし ・アクアブレス ・ミールストーム ・大海嘯 ・サンダービーム ・ライトニングボルト ・ライトニングスフィア ・メタルブレード ・ビッグコア ・ローリングカッター ・シャドーブレード ・リングブーメラン ・ジャイロアタック ・ヤマトスピア ・シルバートマホーク ・ナイトクラッシャー ・ホーリー ・ベホマラー ・ザオラル ・メガザル ・グラビデ ・メテオ ・ドラゴンスフィア ・アトゥルム ・光の護封剣 ・火の粉 ・サンダーボルト ・硫酸のたまった落とし穴 ・万能地雷グレイモヤ ・激流葬 ・ブラックホール