EGP02 マッピーっぽいゲーム制作④(完成編)

マッピーっぽいゲーム制作の第4弾、完成編です。 過去の記事を未読の方は、まずは下記をお読みください。EGP02 マッピーっぽいゲーム制作①(ドット絵編)EGP02 マッピーっぽいゲーム制作②(残像対策編)EGP02 マッピーっぽいゲーム制作③(音楽編) ①ドット絵を再現できるか?②FSTN液晶でちょこまかした動きが表示できるか?③軽快な音楽が再現できるか? さて、上記3つの課題をクリアできたのか?動画で確認ください。 どうでしょうか?右にしか進めないマッピー、「片道Mappy」と名付けました。 以前作ったゲーム、PacRoll(パックマン+スクロール)の第2弾として、「MapRoll」にしようかと思ったのですが、「Mappyは元々スクロールするよね」と思い、却下しました。 次に一方通行のマッピーなので「一通Mappy」と思ったのですが、字面を見ても意味が分からない気がしたので、上記タイトルに決定しました。タイトル画面に一方通行の道路標識があるのは「一通Mappy」の名残りです。 ゲーム内容右にしか進めないマッピーを操作し、ニャームコ、ミューキーズに捕まらないようにニャームコ屋敷の盗品を回収します。全ての盗品(10個)を回収すると1面クリア、全6面のクリアを目指します。 ニャームコ、ミューキーズに捕まるとミスになります。同じトランポリンで3回連続跳ねると破れてしまい、4回目でミスになります。1ミスでゲームオーバーです。 オリジナルとの大きな違い・マッピーは右にし…

続きを読む

EGP02 マッピーっぽいゲーム制作③(音楽編)

マッピーっぽいゲーム制作の第3弾です。 過去の記事を未読の方は、まずは下記をお読みください。EGP02 マッピーっぽいゲーム制作①(ドット絵編)EGP02 マッピーっぽいゲーム制作②(残像対策編) 前前回の記事で3つの課題を挙げましたが、今回は課題③の実現性を確認します。 課題③軽快な音楽が再現できるか? EGP02のサウンド出力は、BEEP単音のためオリジナル曲そのままの再現は無理です。しかし、主旋律だけはBEEP音であってもテンポ良く再現したいところです。テンポが良いということは、音の切り替えが早く、割り込み処理が多くなるため、メイン処理の実行に負担をかけます。これにより、ゲームとして成り立つ速度が出せないかもしれません。BGMの再現確認 マッピーのBGMをBEEP音で再現します。 まずは、EGP02のサウンド出力方法について説明しますが、基本は下記、過去の記事に記載していますので一読ください。EGP02プログラミング講座⑦(効果音の出力方法) 上記記事にあるようにEGP02のサウンド出力は、圧電スピーカに出力する波形の周期と振幅数をデータ列として持ち、それをPICの出力コンペアモジュールに順次設定することで、任意の効果音を出力します。 BGMを鳴らすためには、音階(ドレミファソラシド)を表現する必要があります。各音階と周期の比率は以下の関係になるようです。 音階  :  ド    レ     ミ    ファ    ソ      ラ     シ      ド周波数比: 1  …

続きを読む

EGP02 マッピーっぽいゲーム制作②(残像対策編)

マッピーっぽいゲーム制作の第2弾です。 過去の記事を未読の方は、まず下記をお読みください。EGP02 マッピーっぽいゲーム制作①(ドット絵編) 前回の記事で3つの課題を挙げましたが、今回は課題②の対策を考えます。 課題②FSTN液晶でちょこまかした動きが表示できるか? EGP02のFSTN液晶は画面の書換え速度が遅く、高速でキャラを動かすと残像が残り、何を表示しているのか分かりにくくなってしまいます。そのため、マッピー達のちょこまかした動きが表現できないかもしれません。まず、FSTN液晶の残像ってどんな感じなの?と思いますよね。 下の写真は、左中央がマッピーでを右方向に移動、右上がニャームコ、右下がミューキーズで左方向に移動させています。どうでしょうか?ボケボケで何が表示されているのか分からないですよね? 消去途中の絵(残像)と新たに表示した絵がズレて重なっているため、とっても見にくくなっています。 床は移動していないのでくっきりと表示されています。 動画です。動画の方がなんとなく、マッピー達と分かるかな? では対策方法を考えてみましょう。対策方法①ドット単位ではなくキャラクタ単位で移動させる。 下の写真、以前制作したスライムスレイヤーです。電子ゲームのようにキャラクタ単位に移動するのなら、残像と新たに表示した絵がズレて重ならないので、ボケボケにはなりません。むしろ、残像が移動してる感を出しています。しかし、電子ゲーム版のマッピーを作りたいわけではないので、この対策は使えません…

続きを読む

EGP02 マッピーっぽいゲーム制作①(ドット絵編)

唐突ですが今回のテーマは、「マッピーっぽいゲームを作りたい!!」になります。 マッピーは高校時代にゲームセンターでよく遊びました。ちょこまか動く可愛いキャラクター達にテンポの良いBGM、私のストライクゾーン、ど真ん中のゲームでした。 何故、唐突にマッピーを作りたくなったかと言うと、「ALL ABOUT namco(令和復刻版)」を購入したからなのです!!購入したのは1年以上前ですがね。。。 前々から欲しかったのですが、プレミア価格でとても手が出せませんでした。復刻してくれてありがとう!! やっと手に入れたよ!! キャラクター紹介、ステージ構成、得点、テクニック等を掲載していますが、何よりドット絵、楽譜が掲載されているのが良いですね。ゲーム制作が楽になりますし、再現度が上がります。最高の資料です。 しかし、この資料があっても、EGP02でのマッピー制作には以下の課題があります。 ①ドット絵を再現できるか?②FSTN液晶でちょこまかした動きが表示できるか?③軽快な音楽が再現できるか? ①ドット絵を再現できるか?EGP02の液晶はドットの縦横比率が違い、縦長の長方形になります。オリジナルのドット絵は正方形のドットで描かれているため、そのまま写すと縦長のキャラになってしまいます。また、カラフルなドット絵から白黒に落とし込むのも課題です。 この課題は今回に限らず、ゼルダ風インベーダ等でも苦労したところです。 ②FSTN液晶でちょこまかした動きが表示できるか?EGP02のFSTN液晶は画…

続きを読む

EGP02 ゼルダ風、インベーダっぽいゲーム

GAME&WATCH ゼルダの伝説が発売されましたね。皆さん買いましたか?もちろん私は買いましたよ。 収録されているゲームは、・ファミコン版ゼルダの伝説・ファミコン版リンクの冒険・ゲームボーイ版ゼルダの伝説 ~夢を見る島~・キャラをリンクに置き換えたGAME&WATCHバーミンになります。 何故バーミンなのでしょうか?マルチスクリーン(2画面)ではないですが、GAME&WATCHゼルダの伝説を実現できなかったのでしょうか?少しだけ残念です。 それはさておき、GAME&WATCH ゼルダの発売を記念し、EGP02でゼルダっぽいゲームを作りました。 いえ、発売発表のかなり前から作り始め、その後、たまたまGAME&WATCH ゼルダの伝説が発表され、発売後にようやく完成。。。 していないのですが、とりあえず遊べるところまで作ったので紹介させて頂きます。 まずは動画です。 ゲーム内容 動画で説明していますが、 あらためてゲーム内容を説明します。 ベタなタイトルです。歳を食うほどダジャレなタイトルが好きになっていきます。。。 ヒトリデハキケンジャ、コレヲサズケヨウテレ テッテーン♬ ファミコン版ゼルダのキャラでインベーダっぽいシューティングゲームです。 敵を全滅させればステージクリア、ステージを進め、迷宮ボスを倒せばレベルクリア。 敵キャラを撃つと低確率で通常アイテム(1ルピー、爆弾x1等)が出現、UFOキャラを撃つと特殊アイテム(20ルピー、爆弾…

続きを読む

EGP02 G&Wもどきの時計動作時間検証

前回、G&Wもどきの時計を紹介しました。時計なら電池交換なしで1年くらいは動いて欲しいものです。まぁ、それは無理だと思いますが、数か月は動いて欲しいですね。 そこで、CR2032、1本で実際にどのくらい動くのか検証します。使用する電池は2本/¥100の三菱製です。 まずは動作時間を予想するため、消費電流を測定します。多少変動しますが、1.6mAってところですね。 CR2032の標準放電電流は0.2mAですが、大きく超えています。最大放電電流の3mAは超えていないものの、電池持ちには期待できない感じです。 動作時間の予想ですが、CR2032の公称電圧=3V、電池容量=220mAhEGP02の消費電流=1.6mA 回路の動作電圧を3Vとするならば、動作時間 = 220mAh / 1.6mA     ≒ 137.5 h(約5.7日) ・・・予想①となりますが、 さらに、EGP02が動作できる最低電圧の制限があります。EGP02の主要部品の最低動作電圧は下記となります。・PIC24FJ64GA004    :2.2V・ST7567(液晶コントローラ):2.4V ※1 ※1)液晶モジュールのデータシートが見つからず、   液晶コントローラの最低動作電圧しか調べられませんでした。 よって、CR2032の電力が残っていても、2.4Vを下回ると液晶表示できないことになります。 「IT技術者ロードバイク日記」様のサイトにCR2032の詳細な情報がありました。情報ありがとうございました。感謝申し…

続きを読む

EGP02 G&Wもどき、だけどGAMEは無し

仕事や趣味のプログラムに疲れ、PCのディスプレイから目を離したとき、そこに、レトロ風な電子ゲームが置いてあり、懐かしのキャラ達がちょこまかと動いているのを見て癒される。 そんなシーンをイメージし、EGP02の制作を開始しました。 その割にオクトパス以降、ゲームばかり作っていたのですが、ようやく原点に戻り、見て癒される(楽しめる)時計を作ります。 自分を癒すという意味から、思い入れの強い、ファイヤー、ヘルメット、オクトパスを選んでいます。G&Wの時計機能と同じ、1秒に1回キャラ達が動き、様々なデモを繰り広げます。 3つのゲームのキャラ達が夢の共演です。 デモは全30種です。その内の10種を動画で紹介します。残りは実機で確認してください。 プロジェクトファイル一式です。EGP02_NGW.X.zipプロジェクトファイルの読み込みは、スタートアップガイドの「5.2 書き込みプログラムの準備」を参考にしてください。 今回のプログラムは、データに従いキャラを表示するだけなので大したことはしていません。いや、いつも大したことはしていませんね。 デモのデータは、「NGW_Demo_Data.inc」に記述しています。 下記はファイヤー基本デモのデータです。各行にビルから落ちる人、救急隊員のX座標、Y座標、キャラ番号、キャラパターン番号が記述してあり、1秒毎に次の行のデータを読み込むことでキャラの表示位置、パターン番号を変えて行きます。 const unsigned c…

続きを読む

EGP02 キャラクタの重ね合わせ処理を改善する

スライムスレイヤー2を作成しながら強く思ったことがあります。 背景とキャラクタの重ね合わせができない!! いえ、重ね合わせはできます。重ね合わせると何が表示されているのか分かり難いのです。。。 そのことから、スライムスレイヤー2では、キャラクタ表示エリアに背景を描画しませんでした。 今回は背景とキャラクタの重ね合わせ処理の改善を考えます。 EGP02はモノクロ液晶なのでキャラクタデータは、1ドットを1ビットで表現しています。 1:黒ドットを表示 0:白(黒ドットを表示しない) キャラクタ描画ルーチン(EGP02_ASM.s、_VR_CWT) は、下図のようにキャラクタデータを背景にORで重ね合わせます。 騎士の顔や腰の白色部(データ"0")は透明扱いとなり、背景が透け、本来のキャラクタと異なる表示になってしまいます。 なんか、MSX初期の単色スプライトキャラのようですよね。これは、これで、大好きなのですが、やりたいこととは違います。 じゃあ、ANDで重ね合わせすると、下図のようにキャラ周辺の額縁が残ってしまいます。 なんか、パソコン黎明期の頃のゲームのようですよね。これは、これで、大好物なのですが、やりたいこととは違います。 やりたいのは、下図のように、・騎士の顔や腰の白色部は透明ではなく、白色表示・キャラ周辺の額縁は透明・さらにキャラの周りを白色で縁取るなのです。 これを実現するためには、キャラクタデータを”0"or"1"の2値だけでなく、下記、3値の表現が必…

続きを読む

EGP02 スライムスレイヤー2(完成)

まだまだ作り込みが足りないところはありますが、いつまでたっても終わらないので「スライムスレイヤー2」は一応完成とし、動画、プロジェクトファイル一式を公開します。 まずは動画です。全5ステージ中、3ステージまでを紹介します。3ステージ以降は実際に遊んで確認してください。 遊ぶにはEGP02を制作する必要がありますが。。。 プロジェクトファイル一式です。EGP02_SlimeSlayer2.X.zip プロジェクトファイルの読み込みは、スタートアップガイドの「5.2 書き込みプログラムの準備」を参考にしてください。 遊び方を紹介します。 騎士を操作し、盾、剣でスライムを倒しながら右へ進みます。スライムを倒すとポイントが加算。攻撃を受けるとヒットポイントが減り、0になるとゲームオーバーです。 右端まで行ったらステージクリアです。ステージクリア時の残時間でポイントが加算されます。 ステージクリアすると、ポイントでアイテムを購入することができます。 より強いアイテムで騎士を強化します。 騎士の操作方法 <基本操作> [LL]or[LD] 左に進む [LR]or[LU] 右に進む [RU]    盾ではじく [RD]    剣を振る  <組み合わせ操作> 連続斬り   [RD]斬り上げ ⇒ [RD]斬り下ろし ⇒ [RD]ダッシュ突き 後方ダッシュ [RU] ⇒ [RU] 前方ダッシュ [RU] ⇒ [RD]  または、 [RU] ⇒ [LR]+[RU]  購入アイ…

続きを読む

EGP02 スライムスレイヤー2(制作中)

新しいゲームを昨年末から制作中ですが、完成する気配がありません。しかたがたないので、製作途中の状態のまま紹介します。 プログラミング講座で作成した「スライムスレイヤー」のドット絵、実は結構気に入ってました。 このドット絵を使い、ちゃんとしたゲームに仕上げてみたくなり、「スライムスレイヤー2」の制作を開始しました。 騎士を左右に動かし、盾と剣でスライムを倒します。 「戦いの挽歌」に近いでしょうか。しかし、騎士は右しか向かないし、ジャンプもできません。 ツノスライムは素早く、攻撃力が高い設定。 魔法使いは火の玉を打ち、遠距離攻撃する設定です。 騎士死亡。 動画です。 冬休みは12連休ととっても長く、連日、背景書いて、スライム書いて、酒飲んで、プログラム書いて、酒呑んで、と頑張ったのですが、完成できませんでした。。。 これからも酒盛りしながら頑張ります。 以上です。

続きを読む