Excel上で「ドラクエ3」を再現した勇者に「最大の変態」「控えめに言って天才」と称賛 一体どうやって?

作者のパパセンセイさんにもお話を聞きました。

» 2020年11月21日 20時30分 公開
[オピオンねとらぼ]

 表計算ソフトの「Excel」を使い、なおかつVBA(Visual Basic for Applications)を使用することなく「ドラゴンクエストIII」を再現する――。そんな信じ難い動画と、その作り方を解説したブログに「今まで見たExcel職人の中でも最大の変態」「控えめに言って天才」といった声が寄せられています。

 この偉業を成し遂げたのは、ブログ「パパセンセイ365」のパパセンセイ(@10mikiya)さん。投稿された動画はカクつきこそあるものの、どう見ても「ドラクエ3」。……と思いきや、後半ではMicrosoft Officeのヘルプで有名なイルカの“カイル君”も登場するなど、遊び心あふれるものになっています。



ExcelでVBAを使わないでドラクエ3を再現してみた

Excelでドラクエ ちゃんと歩けるフィールド画面

Excelでドラクエ 戦闘突入時のアニメーションも

Excelでドラクエ モンスターとのバトルもそのまま

Excelでドラクエ 動画後半にはカイル君も登場

 VBAとは、Excel上で動かすことができるプログラミング言語のこと。これを使えばちょっとしたゲームのようなものも作れるのですが、パパセンセイはあえてこれを使いませんでした。一体どうやって、VBAを使わずにExcelで「ドラクエ3」を再現したのか、ここではブログを元に、プログラムやExcelの知識がなくても可能な限り理解できるように解説してみました。


「散布図」を使って強引にゲーム画面を作る

 ブログではまず、「散布図」を使用したゲーム画面の再現について触れています。散布図とは与えられたデータを“点”で表記するグラフのこと。棒グラフや折れ線グラフに対して“点グラフ”と呼ばれることもあります。


Excelでドラクエ これが散布図。与えた数値に応じて青い点が何カ所かに打たれています(パパセンセイさんのブログより)

 通常は与えられた数値を“点”で表示する散布図ですが、点の代わりに「任意の画像」に置き換えることもできます。パパセンセイさんは別途、16×16ドットのマップチップや勇者の画像などを用意して散布図上に配置。これで取りあえず動かないゲーム画面ができました。

 そしてここからが散布図の本領発揮。散布図はグラフですから、数値を変えれば点(=16×16ドットの画像)の位置が移動します。これを利用して、画面のスクロールやキャラクターの移動、戦闘画面への移行などを表現しているとのこと。


Excelでドラクエ 大体均一な正方形になるように調整した散布図

Excelでドラクエ この記事用に作った力作を点と置き換えてみました。これをもっと精密に行えば、正方形の画像の集合でゲーム画面を表現できます

Excelでドラクエ 上の妙なイラストで敷き詰めた散布図の1カ所だけ数値を変更。画像が1枚だけ右へ移動しています

Excelでドラクエ 散布図上に打つ点(=画像)の候補をあらかじめ用意しておいて、それらを反映させることでゲーム画面を表現しています(パパセンセイさんのブログより)

 加えて、これを利用すればフォントも扱うことができます。個々の点には“ラベル”を付けることができ、このラベルも散布図上には表示可能。つまり、黒一色の画像を用意して“こ”“う”“げ”“き”のラベルをそれぞれ付けておけば、“こうげき”という戦闘コマンドが表示できるわけです。これも同じように、数値を変えれば文字を書き換えたり、1文字ずつ滑らかに表示したりすることができます。


無限ループでアニメーション

 ただ、Excelは基本的に何かしらの入力が行われたときにだけ数値を計算したり、数値をもとにした散布図への反映を行ったりするソフトです。散布図に画像を配置しても、何も入力しないままでは勇者は棒立ちのまま。ここからゲームを動かすためにはもう一工夫が必要です。

 そこでパパセンセイさんは“循環参照”、言い換えれば“無限ループ”を利用しました。例えば「X=X+1」という計算をさせようとすると、計算を行うたびにXが1ずつ増えていくことになります。通常はこうなると警告が出るのですが、設定で警告を出ないようにして、F9キー(押すたびに再計算を行う)を押しっぱなしにすれば、時間に応じてXが1ずつ増えていく“カウンタ”が完成。これであとはカウンタの数字に合わせて画像を置き換えるようにすれば、アニメーションなどの処理ができるわけです。意外と力技だった。


Excelでドラクエ 無限ループする計算は、通常ならこういった警告がでます

Excelでドラクエ 例えば勇者の足踏みアニメーションは、カウンタの10の位を参照することで画像を置き換えています(パパセンセイさんのブログより)

VBAを使わずExcelだけで疑似プログラミング

 さて、これで画像の表示やアニメーションは可能になりましたが、ここからゲーム的な動きをさせるには、やはりプログラミング的な動作が必要になってきます。パパセンセイさんはここでVBAを使わず、Excelだけで“疑似プログラミング”ができる環境を作り上げました。


Excelでドラクエ 解説用に用意された、プログラムのフリをするExcel(パパセンセイさんのブログより)

 ここは細かく説明すると非常に長くなるのですが、ものすごく簡単に言ってしまえば、行ごとに「ステップ数」と「処理させたい内容」と「次に進むステップ数」を設定しておき、「その行の処理を終えたら次の行の処理を行う」という仕組みです。もちろん、ただ単に上から下に流れるだけでなく、処理に応じて「次に進むステップ数」の数字を書き換えれば、途中の処理を飛ばしたり、戻って処理をやり直したりといったことも可能。言うなれば、Excel自身が自分に指示を出している状態になり、あとはこれを複雑に組み合わせることで、ほぼプログラミングと同じような動きを(VBAを使わず)関数だけで再現できるというわけです。実はこここそが今回の挑戦の一番すごいところなのですが、もっと詳しく知りたい人はパパセンセイさんのブログをどうぞ。


Excelでドラクエ 次に処理する行を別途用意しておけば、処理を小分けにできるため見やすいプログラム(のようなExcel)にできるそうです(パパセンセイさんのブログより)

 さて、これで「画像の表示」「循環参照によるカウンタ」「セルを使った疑似プログラミング」という“ゲーム作りの道具”がそろったことになります。こうなってしまえば、もはや「ドラクエ3」に限らず、理論的にはほぼどんなゲームでも作ることが可能。あとはひたすら絵とプログラムを書いて組み合わせていけば……「ドラクエ3」の完成というわけです。ただ、パパセンセイさんによれば「唯一出来ないのが音を出すこと」で、VBAを使わず自由に音を鳴らす方法だけはいまだに分からないそうです。


Excelでドラクエ 実際に使われている戦闘用処理の一部(パパセンセイさんのブログより)

 ネット上ではこの、すさまじいまでの“力技”による「ドラクエ3」再現に対し、「Excelの懐の深さなのか作者の狂気なのか判別がつかん」「久しぶりに『才能の無駄遣い』タグを付けたくなる突き抜けたのを見てしまった」など惜しみない称賛が寄せられることに。なお、今回の挑戦で実質どんなゲームでも作れるようになったパパセンセイさんですが、次は「テトリス」に挑戦するとブログを締めくくっており、既に着手をしている様子です。



 最後に、なぜExcelで「ドラクエ3」を再現しようとしたのかなど、パパセンセイさんからメッセージをいただくことができました。

―― そもそもなぜExcelで、しかもVBAも使わずに「ドラクエ3」を作ろうと思ったのでしょうか。

パパセンセイさん:もともとExcelの機能や関数の勉強をしていたのですが、一つずつ機能を確かめるだけでは面白くなく定着もしませんでした。そこで目標として、ゲームを作れば楽しく学べるのではないかと思ったのがExcelでゲームを作り始めたきっかけです。課題があれば、その課題を解決するという目的を持って機能を隅から隅まで探すことになるので、とても効果的な勉強方法になっていると感じています。出来上がったものを私の子どもに遊んでもらうのも楽しみですね。

―― ブログを見ると、これまでにも簡単なゲームは再現されていたんですね。今回特に苦労したのはどのあたりでしたか。

パパセンセイさん:「ドラクエ」はこれまで作成した他のゲームより処理や分岐が複雑で、正直ギブアップしようと思っていました。Excelの機能を上から下までボタンを1つずつクリックしては動きを確認する作業を2〜3周して、ようやくたどり着いたのが記事のような機能の組み合わせです。

―― よく完成にこぎつけましたね……。

パパセンセイさん:平日の夜2時間程度しか作業できず、予想外に大変だったのでくじけそうになりました。また、課題に対しゴールが見えるとやる気がなくなる性格なので、途中で手を止めてしまうのでは? という懸念もありました。毎日Twitterに進捗(しんちょく)を報告して、皆さんの反応をいただけたのが最後までやる気を維持できた要因ですね。フォロワーの皆さんには感謝です。


(C)1988, 2019 ARMOR PROJECT/BIRD STUDIO/SPIKE CHUNSOFT/SQUARE ENIX All Rights Reserved.




Copyright © ITmedia, Inc. All Rights Reserved.

昨日の総合アクセスTOP10
  1. /nl/articles/2404/25/news174.jpg 身長174センチの女性アイドルに「ここは女性専用車両です!!!」 電車内で突如怒られ「声か、、、」と嘆き 「理不尽すぎる」と反響の声
  2. /nl/articles/2404/26/news154.jpg 元「AKB48」メンバー、整形に250万円の近影に驚きの声「整形しすぎてて原型なくなっててびびった」
  3. /nl/articles/2404/21/news011.jpg 小1娘、ペンギンの卵を楽しみに育ててみたら…… 期待を裏切る生き物の爆誕に「声出して笑ってしまったw」「反応がめちゃくちゃ可愛い」
  4. /nl/articles/2404/12/news174.jpg 築年数不明の平屋にある、ボロボロ床板をはがしてみたら…… 発覚したヤバい事実に「ビックリ!」「大丈夫でしたか?」心配と驚きの声
  5. /nl/articles/2404/26/news022.jpg ママの足にくっつく生後7カ月の赤ちゃん、甘えてるのかと思いきや…… 計算された行動と「ちいこい後ろ姿がかわいすぎ」て目が離せない
  6. /nl/articles/2404/25/news016.jpg 「電車の中で見ちゃダメ」「笑ったww」 実家からLINE「子ヤギがすばしっこくて捕まらない」→送られてきた衝撃姿が320万表示!
  7. /nl/articles/2404/25/news069.jpg “作画軽減ガンダム”をガンプラで作成 → 使用パーツも最小限の再現ぶりに「完全に一致」「部品軽減ガンダム」
  8. /nl/articles/2404/23/news090.jpg 誰も教えてくれなかった“裁縫の裏ワザ”が目からウロコ 200万再生のライフハックに「画期的」と称賛【海外】
  9. /nl/articles/2404/18/news134.jpg 21歳の無名アイドル、ビジュアル拡散で「あの頃の橋本環奈すぎる」とSNS騒然 「実物の方が可愛い」「見つかっちゃったなー」の声も
  10. /nl/articles/2404/26/news024.jpg 0歳赤ちゃん「(ママ来たっ!)」→喜びが抑えきれなくて…… 尊すぎるダンスが300万再生「心が浄化されていく」「朝から癒やされました」
先週の総合アクセスTOP10
  1. 小1娘、ペンギンの卵を楽しみに育ててみたら…… 期待を裏切る生き物の爆誕に「声出して笑ってしまったw」「反応がめちゃくちゃ可愛い」
  2. 富山県警のX投稿に登場の女性白バイ隊員に過去一注目集まる「可愛い過ぎて、取締り情報が入ってこない」
  3. 2カ月赤ちゃん、おばあちゃんに少々強引な寝かしつけをされると…… コントのようなオチに「爆笑!」「可愛すぎて無事昇天」
  4. 異世界転生したローソン出現 ラスボスに挑む前のショップみたいで「合成かと思った」「日本にあるんだ」
  5. 【今日の計算】「8+9÷3−5」を計算せよ
  6. 21歳の無名アイドル、ビジュアル拡散で「あの頃の橋本環奈すぎる」とSNS騒然 「実物の方が可愛い」「見つかっちゃったなー」の声も
  7. 1歳赤ちゃん、寝る時間に現れないと思ったら…… 思わぬお仲間連れとご紹介が「めっちゃくちゃ可愛い」と220万再生
  8. 業務スーパーで買ったアサリに豆乳を与えて育てたら…… 数日後の摩訶不思議な変化に「面白い」「ちゃんと豆乳を食べてた?」
  9. 祖母から継いだ築80年の古家で「謎の箱」を発見→開けてみると…… 驚きの中身に「うわー!スゴッ」「かなり高価だと思いますよ!」
  10. 「ゆるキャン△」のイメージビジュアルそのまま? 工事の看板イラストが登場キャラにしか見えない 工事担当者「狙いました」
先月の総合アクセスTOP10
  1. フワちゃん、弟の結婚式で卑劣な行為に「席次見て名前覚えたからな」 めでたい場でのひんしゅく行為に「プライベート守ろうよ!」の声
  2. 親が「絶対たぬき」「賭けてもいい」と言い張る動物を、保護して育ててみた結果…… 驚愕の正体が230万表示「こんなん噴くわ!」
  3. 水道検針員から直筆の手紙、驚き確認すると…… メーターボックスで起きた珍事が300万再生「これはびっくり」「生命の逞しさ」
  4. フワちゃん、収録中に見えてはいけない“部位”が映る まさかの露出に「拡大しちゃったじゃん」「またか」の声
  5. スーパーで売れ残っていた半額のカニを水槽に入れてみたら…… 220万再生された涙の結末に「切なくなった」「凄く感動」
  6. 桐朋高等学校、78期卒業生の答辞に賛辞やまず 「只者ではない」「感動のあまり泣いて10回読み直した」
  7. 「これは悲劇」 ヤマザキ“春のパンまつり”シールを集めていたはずなのに…… 途中で気づいたまさかの現実
  8. 「ふざけんな」 宿泊施設に「キャンセル料金を払わなくする方法」が物議 宿泊施設「大目に見てきたが厳格化する」
  9. がん闘病中の見栄晴、20回以上の放射線治療を受け変化が…… 「痛がゆくなって来ました」
  10. 食べ終わったパイナップルの葉を土に植えたら…… 3年半後、目を疑う結果に「もう、ただただ感動です」「ちょっと泣きそう」