特集 2020年2月11日

非接触ICカードで戦う「バーコードバトラー」風ゲーム機を即興で作ってみた

ICカードを読み込ませるとステータスが判明。別のカードを使った相手と対戦します

その昔、バーコードを読み込ませて戦う「バーコードバトラー」というゲーム機が大流行となった。

あれを今風にアレンジするとしたら、バーコードの代わりに何を読み込ませるといいだろう。「非接触ICカード」なんてどうだろうか。

そんなわけで、非接触ICカードで戦う「バーコードバトラー」風のゲーム機を即興で作ってみた。

1983年徳島県生まれ。大阪在住。散歩が趣味の組込エンジニア。エアコンの配管や室外機のある風景など、普段着の街を見るのが好き。日常的すぎて誰も気にしないようなモノに気付いていきたい。(動画インタビュー)

前の記事:絶滅危惧種? 「ご当地公衆電話」を巡る

> 個人サイト NEKOPLA Tumblr

バーコードバトラー+非接触ICカード

いまから30年近く前のこと、「バーコードバトラー」というゲーム機が大ブームとなった。バーコードを読み込ませると、それに応じてプレイヤーのステータス(生命力・攻撃力・守備力)が決まるのだ。強いバーコードを見つけたい一心で、全国の小学生たちが家じゅうのバーコードをかき集めていた(もちろん私も)。

このゲームの一番のポイントは、「バーコード」というありふれた日常アイテムを媒介として、現実とゲームがリンクするところだろう。「ふりかけのバーコード使ったら、めっちゃ攻撃力高いのが出た!」とか、「高いカメラのバーコードなのに弱すぎる!」みたいな意外性も面白かった。あれから20年以上経ったいまでも、たまに思い出しては「いいゲームだったなあ」と感慨にひたる私である。

ときに2020年。バーコードはまだ現役バリバリではあるが、一方で当時はなかった新しい技術も身近になっている。その代表格が、非接触ICカードであろう。交通系のSuicaをはじめ、iDやQUICPayなどの電子マネーにも幅を利かせている(これらはすべて、ソニーのFeliCaという技術がベースとなっている)。
 

000.jpg
世の中は非接触ICカードであふれている

寒さが一段と増してきた2月のある日、私は「次に何を作ろうか?」とウンウン唸っていた。そんなとき目に付いたのが、これである。

001.jpg
非接触ICカード FeliCaのリーダーが手元にあった。USB接続の一般的なものではなく、電子工作にも使える産業用タイプである

たしか、「WAONで決済したときの『ワオン!』という鳴き声を、実際の犬の鳴き声で再現したら面白いんじゃないか」というアイデアがあったので、とりあえずリーダーだけ買っておいたのであった(いまいちなアイデアのためお蔵入りになった)。

こういう電子パーツの類いは、「何に使うか分からんけど、とりあえず買って引き出しに入れておく」と良い。そうすればドラえもんの四次元ポケットのように、困ったときの助けになってくれる。実際これを見た瞬間に、「ああ、これでバーコードバトラーを作ればいいのか!」と膝を打ったのである。

そんなわけで、前置きが長くなってしまったけれど、「バーコードの代わりに非接触ICカードを使った、バーコードバトラー風ゲーム機」を作ろうと思い立ったのであった。

いったん広告です

非接触ICカードバトラーの全貌

思い付いたはいいものの、原稿の締め切りまであとちょうど一週間しかない。しかも平日は本業があるため、実際に作業できるのは1日3時間×6日ほどである。なんとかなるだろうか……ギリギリなんとかなるはずである。プレッシャーで痛む胃を抑えつつ、深く考えずにいそいそと制作を開始した。

そうして出来上がったものがこちらである。お昼の料理番組よろしく、途中はすっ飛ばすスタイルでいきなり完成品を見てもらいたい。

 

002.jpg
プレイヤーは左側と右側に分かれて戦う。それぞれ「攻撃」と「回復」のボタンがあって、各ターンごとにどちらかを選択する。ちなみに回復は1試合中に2回までしか使えない
003.jpg
小さい黄色ボタンを押すと、いざゲームスタート
004.jpg
最初にカードの読み取りである。読み取り部にカードをかざすと……
005.jpg
カードに応じたステータス(生命力・攻撃力・守備力)が決定される。この瞬間がたまらなく楽しい。一番盛り上がる瞬間である
006.jpg
同様に右側もカードを読み込ませると
007.jpg
両者のステータスが決定した。今回はSuica対ICOCAの東西対決であるが、ICOCA(右側)の攻撃力がずば抜けている。この時点ではICOCAが有利か?
008.jpg
カードから読み取った「素早さ」の情報を元に、先攻・後攻が決定する。今回はSuica(左側)が先攻だった。まずは左下の攻撃ボタンを使って攻撃だ
009.gif
こんな風に、左右のプレイヤーが交互にボタンを押して攻撃していく(まれに攻撃が外れてダメージ0になったりする)。戦闘の見た目は、完全に本家バーコードバトラーのオマージュである
010.jpg
攻撃と回復を駆使しながら戦いを続け、どちらかの生命力が0になった時点で試合終了。今回はやはり、攻撃力の高いICOCA(右側)の勝利となった

戦闘自体はわりと単純で、それだけにステータスの高さがそのまま勝利に直結するところがある(これはバーコードバトラーでも同じ)。いかに強いカードを保持しているかがポイントである。

ちなみに自分の場合は、交通系ICカードを9枚、電子マネー系を9枚持っていたので、計18枚の中から選択可能だった。バーコードのように、次から次へといろんなものを試せる手軽さはないものの、「ICOCA、おまえ結構強かったんだな……」というように、馴染みのカードが意外なステータスを持っていたりして、カードを読み込ませる楽しさは十分に味わえる。いいものができた。

いったん広告です

ゲーム機の即興開発

とは言うものの、ハードとソフト両方の開発が必要であり、スケジュールは結構カツカツであった。悩む時間もなく、思いついたまま一気に作り上げたので、これは「即興開発」と言っていいだろう。

日々できあがっていく達成感、締め切りに追われる焦燥感、上手く動かなかったときの絶望感。その気持ちをラップに乗せて歌うだけの音楽力は私にはないので、つらつらと文章で発表していきたい。

いったん広告です

1日目(日)夕方18時

先に書いたとおり、FeliCaリーダーを見て「バーコードバトラー風のゲーム機を作るか!」と思い立ったのが、日曜の夕方18時であった。作り方の見通しはすぐに立ったので、まずは「ICカードから情報を読み取る」部分が本当にできるのか、試作を作って確かめることにした。

本当に完成するのか? という悩みを払拭するためには、手を動かして、不確定要素をひとつずつ潰していく正攻法しかないのだ。
 

011.jpg
心臓部には、電子工作の定番Raspberry Pi(ラズパイ)を使用

作り方のサンプルが公開されていたので、1時間ほどの作業で難なく完成した

ちなみにICカードからは、「IDm」というカード固有のID番号を読み取ることにした。このIDmは16桁の数字(16進数)であり、ソニーが管理して同じ番号が2つと流通しないようになっている。これをバーコードの代わりに使おうという魂胆だ。

012.jpg
その後は、3Dモデリングソフトで外装の設計である

3Dプリンタでの出力には時間がかかるうえ、一度では絶対に成功しない自信があったので、優先して取りかかった。モデリング自体は1時間ほど。しかし3Dプリンタの機嫌が悪く、メンテナンスをしていたら、たっぷり1時間以上経っていた。寒さに弱い3Dプリンタにとって、冬場は鬼門なのである。

この日は最後に、ゲーム画面の実現手段について調査を進める。3時間ほど情報収集したところでタイムオーバーである。作業時間は6時間ほどであった。

いったん広告です

2日目(月)夜22時

仕事を終え、一息ついたところで2日目の作業に取りかかる。

013.jpg
前日に調べた情報をもとに、画面の表示を組み立てていく(この時点では数字は適当)

できるだけ手間のかからないシンプルな画面構成にしたので、短時間でもそれらしくなってきた(ちなみに、PythonのTkinterというライブラリを使っている)。

でもなにか、もの足りないような。
 

014.jpg
こういうことか

バーコードバトラーに寄せて、数字のフォントを7セグメント風に変更した。この方が断然しっくりくる。

表示先は液晶なので、もはや7セグである必要は何もない。何もないのだが、妙な安心感があるのはなぜだろう。そもそも7本の線だけで全アラビア数字が表現できるのって、冷静に考えるとすごくないか。7セグすごい。いや、でも今は7セグについて思いを巡らせるだけの時間はないのだ。先を急ごう。
 

015.jpg
前日に仕掛けておいた外装もできあがっていた

パッと見た感じは上手くいっている。しかし、やはりというか、各部の寸法が微妙に間違っており、そのままで使用できないものが出来上がっていた。

すぐに修正して、3Dプリンタに印刷を託す。うちの3Dプリンタは安物なので、これだけの印刷に13時間かかるのだ。寝ている間には仕上がらないので、確認できるのは翌日の夜になる。気の長い話である。それだけに、一度の失敗も許されないという緊張感があり、またしても胃が痛くなるのであった。

あとは細々としたソフトウェア部分を実装し、この日は約3時間で作業を終えた。

いったん広告です

3日目(火)夜22時

いよいよゲームの核心となるソフトウェアの開発に取りかかる。のだが、その前に仕様を決めておかないといけない。

まずは、肝心かなめのステータスである。ICカードから読み取ったIDmを、どのように生命力・攻撃力・守備力に割り振るかを決めていく。ネット上に本家バーコードバトラーを解析した情報があったので、それを大いに参考にさせてもらった。
 

016.png
実際のIDmを見ながら考えた結果、使うのは0~4、6~7桁目とした。5桁目は、どのカードを見ても0か1だったため除外

ステータスの決め方を決めるなんて、もはや神の所業である。自分のさじ加減ひとつで、強いキャラを生み出すこともできるし、逆に弱くもできる。こういう設定を作るのって、めちゃくちゃ面白い。

ほかにも攻撃力の計算式や、先攻・後攻を決めるアルゴリズムなども固めていく。

017.png
ポケモンのような「属性」要素も導入した。例えば自分が「ほのお」タイプの場合、相手が「くさ」なら攻撃力が1.2倍、相手が「みず」なら0.8倍になる

さて3Dプリントの外装はというと……またしても失敗していた。微修正されたのち、再び13時間という、はるかなる航海へと旅立っていった。

4日目(水)夜22時

この日は残りの仕様を決めたあと、いよいよプログラミングに取りかかる。

018.jpg
スイッチと連動した動作が必要なので、こんな風に仮のスイッチを作って作業を進める
019.jpg
実際にICカードを読み込ませて、ステータスが出るところまで完成した

この作業により、ようやく終わりが見えてきた。つまり「これが解決しないと完成しないかも……」という不安要素をひとつずつ潰していった結果、それがついにゼロになったのだ。あとは時間さえあれば完成にまで持って行ける。

こういった状況を「心理的完成」と誰かは言った。誰かとは私のことなのだが。

020.jpg
しかし依然として上手くいってないのは外装だ。3度目にして、過去最大の反りが出てしまった

この日は気温がグッと低くなった。その影響がプリントのクオリティにも現れている(気温が低いと素材が収縮して反りやすい)。寒い夜中にプリントするのは避けて、気温が上がりはじめる翌朝から印刷をスタートすることにした。

5日目(木)夜22時

さて早いもので5日目である。この日は攻撃と回復のプログラムを淡々と仕上げていき、これにて一通りのプログラミングが完了した。

でも何か物足りない。あまりにも静かというか、無音なのだ。いくら攻撃しても無音。宇宙空間で戦闘しているならリアリティもあるというものだが、あいにくそういう設定ではない。明日は効果音まわりの実装に着手することにしよう。

021.jpg
3Dプリントはというと、今までで一番いいものが仕上がってきた。やった……!
022.jpg
スイッチもピッタリとハマってくれた。気持ちいい

外装問題もギリギリのところでどうにかなった。いよいよラストスパートである。

6日目(金)夜20時

この日が最終日になるはずである。少し早めの時間から作業を開始する。

まずは前日の課題となっていた効果音。フリー素材サイトから良い感じの音をもらってきて、タイミングよく鳴らすためのプログラミングを行う。こちらは2時間ほどで終了した。

最後に残ったのは、外装の組み上げと電気回路の配線だ。

023.jpg
スイッチが6個あるので、配線は意外と面倒くさい。チマチマした手元作業のため、肩もこってくるし頭も痛くなる
024.jpg
すべての配線を終えるまで、たっぷり2時間ほどかかった
025.jpg
最後にICカードの読み取り部をネジ止めすれば完成である

完成した。しかもピッタリ予定どおりである。正味50時間以上かけて出力した外装はつややかで美しく、対戦中に鳴る「ピッピッピ」という8bitサウンドは耳に心地よい。いいものができた。

かかったのは5日間、作業時間にすると約22時間であった。友だちよ、これが私の一週間の仕事である。

遊んでみた

せっかくなので、対人戦をやってみたい。家で転がっていた妻を起こして、いっちょデュエルと洒落こもうじゃないか。

026.jpg
私の手札は、楽天Edy付きのスーパーのポイントカード。妻はICOCAを出してきた。まずは私の方からカードを読み込ませる
027.jpg
……よわ! これまで見たことがない低い数値が出てしまった。守備力が最低である
028.jpg
一方の妻はというと、逆に守備力が高すぎる。こんなの勝ち目ないじゃないか
029.jpg
やる前から勝負は見えていたが、いちおう対決である。無駄に10ターン以上かかってしまい、中だるみした試合の結果は……
030.jpg
まあ、妻氏の圧勝である。無念
031.jpg
気を取り直して二回戦。二人ともANAカード(楽天Edy付き)で勝負だ
032.jpg
私の方は攻撃力、妻の方は防御力が高くなった。バランスが良いので、接戦が期待できる
033.jpg
ポチポチと対戦した結果、
034.jpg
次はこちら側の勝利である。やったね

「しかしあれだねえ」と嘆息しながら妻は言った。「この対戦、全然面白くないな」

核心を突かれてしまった。(うすうす気付いてはいたが)対戦に戦略性がなさすぎて、両者ともただポチポチするだけで終わってしまうのだ。楽しさが最高潮を迎えるのは、カードを読み込ませてステータスが表示される瞬間である。そのあとは消化試合の雰囲気すら漂う。

数字だけを見て楽しむのは、かなりの想像力を必要とする。このゲームを本格的に作るとしたら、きっと読み込ませたカードに応じてキャラクターが自動生成されて、戦闘にも派手なアニメーションが付くだろう。現代人は、リッチな表現に慣れすぎてしまった。

とは言え、一週間かけて作ったゲーム機には愛着がわいている。誰が何と言おうと、私はこう思うのだ。いいものができたと。


「QRコードバトラー」の登場が待たれる

今回は非接触ICカードを使ったけれど、時流に乗るなら「QRコードバトラー」も楽しそうだ。調べてみると、スマホアプリは出ているみたいだけど、ゲーム機まで自作した人はまだいないようである。……作るか。

035.jpg
最後に別アングルからの写真をどうぞ

 

▽デイリーポータルZトップへ

banner.jpg

 

デイリーポータルZのTwitterをフォローすると、あなたのタイムラインに「役には立たないけどなんかいい情報」がとどきます!

→→→  ←←←

 

デイリーポータルZは、Amazonアソシエイト・プログラムに参加しています。

デイリーポータルZを

 

バックナンバー

バックナンバー

▲デイリーポータルZトップへ バックナンバーいちらんへ