受賞作の『mathmare』は、モノクロの世界で繰り出される数学的弾幕を避けるというオリジナリティあふれるゲームだ。阿部さんはなんと、今年3月にUnityを始めたばかり。「媒介変数表示で表される図形と出会った時の感動を広めたい」という理由でこのゲームを作り上げた阿部さんと、「ゲーム制作に使う数学を学習しよう」などの講義を行うユニティ・テクノロジーズ・ジャパンの安原祐二が対談した。Unity公式チュートリアルで学んだインターハイ授賞式にて安原祐二(以下安原)準優勝おめでとうございます。Unity歴は9ヶ月ということですが、阿部さんはその前からプログラムをやっていたんですか?阿部悠希(以下阿部)プログラムはやっていませんでした。「東方弾幕風」という、弾幕を作る専用の言語を少しいじっていたことはあるんですけど。本格的にプログラミングを始めたのは、Unityを始めた今年の3月ぐらいですね。そこからUnityのWebサイトにあるチュートリアルで勉強しました。本もあんまり買っていないんです。自分で作りたいものが作れるようになったのは4月くらいからです。阿部さんのプレゼンはこちらから安原それが信じられないですよね。『Mathmare』を作り始めたのは、インターハイ出場を決めた6月からで、制作期間は実質2ヶ月と、一次審査が終わったあとのブラッシュアップで、全部で4ヶ月ぐらいです。フリー素材の音楽以外は、全部自分で作っています。数式の美しさは言葉で伝えても伝わらないプレゼンテーションで、「アステロイド曲線やバラ曲線を見たときにたった一つや二つの数式でこれが表現できることに感動した。数式の美しさは言葉で伝えても伝わらない。弾幕ゲームを作った」とおっしゃってましたよね。それは授業で習ったんですか?阿部はい、媒介変数表示という言葉は数IIのベクトルの授業で習ったんです。安原みんな習っているはずですよ。阿部それで、テスト勉強をしていたときに、媒介変数表示のことを検索したんです。それで、バラ曲線とか、アステロイド曲線の美しい図を見て。「これを弾幕にしたらすごく面白そう」という気持ちと、「すごいという気持ち」を他の人にも伝えたくて、『mathmare』を作ったんです。言葉だと伝わらないって、ちゃんとわかっているのがすごいですよね。ゲームにしようっていう、そこの飛躍が本当にすごいなと思いました。「すごいものを見つけた!」と思って、友達にも言ったんですけど反応が薄くて。そんなこと言っても、「ただの数学好きな変な奴」としか思われませんよね(笑)。SNSでつぶやいても、フォロワーがそんなにいるわけでもないので、せいぜい2桁の人の目に留まって終わり、イイねがつくのは5個ぐらい、そんなものかなと思ったので。たくさんの人に届けるために選んだ手段が、ゲームだったっていうことなんですよね。『東方Project』から入ったんです。東方はYouTubeの「ゆっくり実況」で知りました。そこから『東方紅魔郷』をプレイしたり、弾幕ゲームだと他にはスマホでリリースされている弾幕は結構遊び尽くしました。作るときの参考にもしています。技術的なことを聞きたいんですが、弾のコリジョンを取るのを自前でやるのはわかるんです。ところが、線分もコリジョンを取りますよね。見たときに、先頭にだけコリジョンつけるタイプなのかなと思ったんですが。軌跡の部分にコリジョンがないと、あのゲームは成立しないですよね。点と直線の距離を求める公式があるじゃないですか。それを、幅をもたせて付けました。普通にUnityをやっているなら、長方形のコリジョンを長くして対応する可能性もあるかなと思っていたんです。阿部さんはそうじゃない。Unityをそんなに知らないからこそ、自由にやっているんだろうなと。線と点の距離をとって、コリジョンを取るやり方は、Unityの本には絶対載っていないですよ。阿部まず、四角形の弾があって、それはさすがに丸で距離をとるのは嫌だったので、四角をなんとかとる方法はないかな?って探していたんです。それで突然、直線と点の距離をとる方法を思いついて「これならいけるんじゃないか」って。実験して、見事にうまくいったので、「これだ」っていう。普通、思いついても、そんなプログラム書けないと思いますよ。結局、y=ax+bのaとbをパラメータにした線をたくさん作っているわけでしょう?それで全部、総当たりでチェックしているということになりますよね。いや、なかなかね、Unityから入ってゲームを作るのを目指すと、そこへは行かないと思うので。いうところがね、すごいこう...、本当に力がある人が作っている感じがしました。プログラム歴9カ月ぐらいですもんね。やっていたので、いわゆるスパゲッティコードだとか、コードがきれいなのか汚いのか、何もわからないんですよ、見てもらう機会もないので。安原やっぱり先入観がないからなのかな。コルーチンって、僕のキャリアでも後のほうに覚えた概念で、ずっとスイッチケースみたいなステートで追っていくようなタイプの書き方をしていて。言語にその対応がなかったので最初はそう書かざるを得なくて、その後でコルーチンっていうのができたっていう、そういう歴史上の経緯があるんですよね。関数を途中で抜けて、またそこへ入ってくるっていうのに普通に違和感があって。現代の子はすんなりやっちゃうんだなあと。私は「数学好き」ではないんです。自分の中では腑に落ちないんですよ。