ファミコンの名作ボクシングゲーム「マイクタイソン・パンチアウト!!」を現実で体を動かしながら操作する
1980年代に任天堂がファミコン向けにリリースしたボクシングアクションゲームが「マイクタイソン・パンチアウト!!」です。本来は十字キーとAボタン・Bボタンでプレイするマイクタイソン・パンチアウト!!で「カメラの前で本当にパンチを繰り出すことでプレイできる」システムを、エンジニアYouTuberのイアン・チャーナス氏が開発しました。
I Put Myself INSIDE A Video Game! - YouTube
「パンチアウト!!」はもともと1983年に任天堂が開発したアーケードゲームで、ファミリーコンピュータ版は公式イベントで配布された景品用のみ。一般販売されたのは、史上最年少でWBC世界ヘビー級王座を獲得したマイク・タイソンとコラボした「マイクタイソン・パンチアウト!!」となっています。
といっても、内容はラスボスにマイク・タイソンが出てくるだけで、基本的な内容は同じ。相手の攻撃をかわしたりガードしたりしながらパンチを叩き込むというシンプルなアクションですが、ステージが進むほど相手の隙を突いてパンチをねじ込むためにはシビアなタイミングが要求されます。
今回のチャーナス氏が目指すのは、実際にカメラの前でパンチを振ると、主人公であるリトル・マックもパンチを振るというような、「現実の体の動きをゲーム内にリンクさせてパンチアウトをプレイする」システムです。
高度なCGアニメーションや映画の世界のように、かつては全身にトラッカーを付けたスーツを着た人間を専用カメラで撮影しなければ動きをトレースできませんでしたが……
機械学習技術の進歩によって、映像から体の動きを簡単に抽出できるようになりました。今回チャーナス氏はTensorflow.jsのMoveNetを用いて、ウェブカメラで撮影した人間の動きをリアルタイムで抽出することにしました。
そして、マイクタイソン・パンチアウト!!をプレイするために、まずは海外版ファミリーコンピュータであるNintendo Entertainment Sytem(NES)の基板に……
ゲームのデータを吸い出したり書き換えたりするためのUSB CopyNESを取り付けます。
これでUSB経由でファミリーコンピュータに挿したカートリッジのデータを編集したりコピーしたりできるようになります。
マイクタイソン・パンチアウト!!のカートリッジをNESに差し込んで……
PCにカートリッジ内のデータをコピーします。
今回はブラウザで遊べるようにするため、実機ではなくエミュレーター上でマイクタイソン・パンチアウト!!を動かします。
EmscriptenでエミュレーターをJavaScriptにコンパイルします。
これでブラウザ上で、マイクタイソン・パンチアウト!!がプレイできるかに思われましたが、入力するための現実のパンチよりも画面内で行われるパンチが少し遅れてしまい、ズレが生じているという問題が発生しました。
チャーナス氏はゲームのバイナリコードからリバースエンジニアリングで敵の動きのタイミングを調整できる場所を探し出し、すべて手作業で調整していきました。
この手動調整は驚くほど気の遠くなるような作業で、もし少しでも編集する場所を間違えてしまうと、エラーを吐いてゲームがストップしてしまう場合もあります。しかし、チャーナス氏はすべてのボスのタイミングを修正したそうです。
ついでにピストン本田のメッセージも「イアン・チャーナスのYouTubeチャンネルを今すぐ登録してね!!!」というセリフに変えられています。
さらにチャーナス氏は、ダメージをプレイヤーにフィードバックするガジェットも開発しました。
仕組みは簡単で、子どもがいたずらに使う小型の感電装置を……
Arduinoで制御して、ダメージを受けた時に電流を流すようにします。
腕に巻くバンドに内蔵し、内側に電極となる金属ホイルを貼り付ければOK。
さっそく友人を集めてプレイするチャーナス氏。
左腕を振り上げると、ちゃんと画面内のリトル・マックも左パンチを繰り出しています。
体をねじると、相手のパンチを回避することができます。
初戦の相手であるグラス・ジョーは、大ぶりなパンチをよけると隙が生まれるので、そこを狙ってパンチをたたきつけます。
よろよろとコーナーに沈むグラス・ジョーを見て大はしゃぎするチャーナス氏。
次に、チャーナス氏がダメージフィードバック用の感電バンドを巻いてチャレンジします。
2戦目のフォン・カイザーからダメージをもらうと「があっ!」「ちくしょう!」と叫ぶチャーナス氏。
腕には電流がビリッときているので、チャーナス氏は思わず体をよじって顔をしかめます。
チャーナス氏の友人も感電バンドを装着してプレイしますが、やはりダメージを受けると悲鳴をあげてしまいます。しかもダメージを受けると体をよじってしまったりこわばってしまったりして、相手の攻撃をさらに回避しにくくなるという悪循環もあったようです。
なお、チャーナス氏が開発したマイクタイソン・パンチアウト!!は無料で公開されていますが、同時に遊べる人数が決まっています。大量のマイクタイソン・パンチアウト!!を購入したチャーナス氏は、所有しているカートリッジの本数分だけしか同時に遊べないように設定しており、規定人数を超える場合はプレイするのにライセンスが必要だとのこと。気になる人は自己責任でチェックしてみてください。
・関連記事
「Microsoft Flight Simulator」のマップテクスチャをGoogleマップに置き換えるMODが登場 - GIGAZINE
時速30kmで人を乗せて爆走するマインクラフトのブタを自作する方法 - GIGAZINE
エイプリルフールネタだったはずの「ファミコン風Googleマップ」を実現した猛者が登場 - GIGAZINE
PC版デレステを疑似的に4Kフルスクリーンで楽しめる「StarlightResize」を使ってみた - GIGAZINE
ウネウネ動いてファミコンのスーパーマリオをクリアするロボットハンドが爆誕 - GIGAZINE
名作FPS「DOOM」を1989年発売の富士通製PC「FM TOWNS」用に移植した猛者が現る - GIGAZINE
・関連コンテンツ