「プログラミング」と「数学」、
トレンドの掛け合わせで急成長しているYouTubeチャンネル、『ヘロンの数学』。
最初の半年ほどは低空飛行だったものの、2020年12月に公開した動画がバズって認知され、いまや登録者4万人超え。
『元ゲーム会社のプログラマー、テトリス何分で作れる?【JavaScriptプログラミング】』が50万再生を突破するなど、勢いのあるチャンネルです。
しかし“中の人”の姿は想像がつかず、元ゲームプログラマーであること以外は謎。
今回は、現在に至るまでの『ヘロンの数学』の経緯や、『プログラミングと数学の親和性』についても伺いました。
『スマホゲームを作れたら就職できると思った』
本日はありがとうございます。 経歴が謎に包まれているヘロンさんがインタビューのオファーを受けてくださったのが少し意外だったのですが、何か決め手がありましたか?
アンドエンジニアさんは、プログラミングに興味のある読者を惹きつけるメディアですし、量産型ではなく厳選して記事を作っている感じも好印象だったので、ありがたいお話としてお受けしました。
ありがとうございます。さっそくですが、ヘロンさんについてお伺いさせてください。 『プログラミング×数学』というテーマで発信されていますが、プログラミングに触れたきっかけはなんだったのですか?
小学生のときに家にビデオゲーム機がありました。NINTENDO64とかです。 そのゲームが好きで、『自分でゲームを作れないかな』と思ったのが、いちばん最初のきっかけだったと思います。小学校高学年か中学生になったかの頃ですね。
でも今みたいに子どものプログラミング教室なんてないし、Unity (ゲームエンジン、開発環境)もありません。 本を買えるほどのおこづかいもないのでネットで勉強しようとしましたが、情報が少ないうえに子どもが理解するには難しい内容で、身に付きませんでした。 だから、最初のきっかけだったとは言えますが、そのときにプログラミングを始めたわけではありません。
では実際にプログラミングを始められたのはもっと後ですか?
はい、高校3年生になった頃のことです。 周りが進学先や就職先を決めていくのに、自分だけなかなか進路を決められなくて…。働くために何かスキルを身に付けなくてはと思ったとき、ちょうどスマホゲームが全盛だったんです。 高校卒業は2013年ですが、パズドラがめちゃくちゃ流行ってましたね。
もともとゲームが好きですし、スマホゲームを作れたらきっと就職先が見つかるだろうと思って、勉強することにしたんです。 さすがに小学生のときよりはちょっと賢くなってますし、そのときにはUnityもあったので独学で勉強できました。ゲーム開発会社に就職できたのは夏頃です。
独学で勉強して、夏には就職できるスキルを身に付けたんですね! でも、ヘロンさんは専業YouTuberですよね。がんばってスキルを身に付けたゲームプログラマーを辞めてしまわれた理由はなんだったんでしょう?
ゲームプログラマーが嫌だったわけではないし、ゲームプログラミングへの興味は今ももちろんありますよ。 ただ、会社にいると30代40代になった自分の姿が想像できて、なんだか将来が見えてしまったような気がして。転職という選択肢もあったのかもしれませんが、毎日会社に通う生活はもういいなと感じてしまったんです。 「やりたいことをやろう!」と思って、24歳で会社を辞めました。
子ども時代に「ゲームを作ってみたい」と思われて、高校生で独学でゲームプログラミングを習得、無事に就職を果たし、でも24歳でスパッとやめてしまう。 始めるのもやめるのも、どちらも大胆な決断ですね!
FPSゲームでひらめき、猛勉強の1年間で得た確信
それにしても意外だったのは、数学よりもプログラミングが先だったことです。 てっきり大学の数学科かなにか出身で、ゲーム開発会社に就職された方なのかなと思っていました。
ええ、実は数学が後なんです。数学に触れたのは退職後、YouTubeをやると決めてからなので、実はほんの3年ほど前。 数学科出身ではないし、数学を専門的に勉強してきたわけではありません。高校で理系だったわけでもないです。
ということは、もしかして……ヘロンさんは、YouTuberになるために数学を勉強した、ということなんですか?
はい、実はそうなんです。1,000ページもある『高校数学の教科書』(旺文社)を買って、1ページ目から読んでいきました。 高校も進学校とかではなく、勉強する習慣がまったく身に付いていなかったので、休み休み、1年かけて独学で数学を勉強しました。
1年!?お仕事しながらではなく?予備校にも行くとかでもなく?
ずっとYouTubeの準備のために独学で勉強です。 日進月歩で進歩していくプログラミングと、2,000年経っても真理が変わらない数学を組み合わせたら、絶対に面白いコンテンツになると思っていました。 それにやっぱり、人気者がひしめくYouTubeで成功するには自分だけの突出したスキルとオリジナリティが必要だと思ったからです。
ゲームプログラミングの独学もそうですが、成功を信じてひたすら勉強するタイプなんですね。 ただ、ひとつ不思議なのは、基礎の基礎から数学を勉強するレベルだったヘロンさんが『プログラミング×数学』に確信を持てた理由です。 「コレだ!」というインスピレーションはどこからやってきたんですか?
FPS(ファーストパーソン・シューティングゲーム)に、『Wolfenstein 3D(ウルフェンシュタイン3D)』という、伝説的なゲームがあります。 とはいえ、マニアックな人しか知らないと思いますけどね。1992年リリースのゲームなんですが、その時代にあって、いかに3Dっぽく見せるかを追求してあるんですよ。
今みたいにポリゴンを何枚も使うなんてできません。 低スペックのPCでも3Dっぽく見せるには、負荷のかからない簡単な計算で作るしかないことまでは、当時の自分の知識でもわかったんです。 YouTubeを始めるずっと前のことですが、『プログラミング×数学』ってすごいんだな、というのが頭の片隅にずーっと残っていました。
FPS(ファーストパーソン・シューティングゲーム)とは?
ポリゴンとは?
それで『数学だ!』と照準を定められたんですね。 「数学の勉強(学び直し)あるある」の動画を見ても、とても楽しんで勉強していらっしゃることが伝わりますが、特に好きな定理はやっぱり『ヘロンの公式』ですか?
そうですね。そうでなければ、なんでその名前なんだよってなりますしね(笑)
ヘロンの公式とは
ゲームプログラマーに数学が必須な理由
『ヘロンの数学』の視聴者にはプログラマー志望の人も多いと思いますが、プログラマーに数学は必須でしょうか?
プログラマーといっても幅広いですよね。例えば企業の業務のシステム化などは、日本語で書かれた業務の仕様書があるし、なにをどう作ればいいかが決まっています。 そのように、仕様書をプログラムに翻訳していくような仕事なら、必ずしも数学知識は必要ありません。
でも例えば、"機械学習を利用して小売業で在庫管理を最適化させたい"なんて要件だと、数学知識が必要になることもあると思います。 そしてなんといっても、ゲームプログラミングでは数学が多用されますね。
ゲームでは、どんな場面で数学が使われているのですか?
例えば、キャラクターをジャンプさせるという動作。どんな弧を描いてどれくらいのスピードで飛ぶかを決めるには、数学が必要なんですよ。
なるほど、業務システムとゲームプログラミングが違うことは腑に落ちました。でも、キャラクターの動作などはゲームエンジンの機能に備わっているのではないのですか? 『素人』のイメージですが、“45度の角度で10cm、滞空時間は2秒”なんて数字を入力すればプログラムが自動生成されるのでは……?と思ってしまうのですが。
たしかに、キャラクターのジャンプのようによくある動作であれば、ゲームエンジンに搭載されています。 でも逆に言うと、"よくある動作"しか搭載されないのがゲームエンジンの弱点でもあって。 あまり使われないマニアックな機能を、人員と時間をかけて開発する意味はないですからね。
マニアックの例をお願いできますか?
例えば、リアルな挙動が売りのゴルフゲームを作りたい場合。 ゴルフゲーム自体は珍しいものではありませんが、リアルを追求すると、ボールの回転や風の変化、さらには気圧まで考慮してボールの軌道を計算しなくてはなりません。 さすがにそんな専門的な機能はゲームエンジンには搭載されていないので、プログラマー自身が数学の知識を駆使して自前でゴリゴリ計算する必要が出てきます。
数学を知らないと、かなり苦労しそうですね。
そうなんですよ。 数学の公式を知っていればすぐに作れるプログラムなのに、知らないと試行錯誤に時間がかかって正解に辿り着くのが遅くなる、ということが起きてしまうんです。 ゲームプログラマー時代にかなり苦労した部分でもあります。 座標幾何、幾何ベクトル、線形代数あたりは特によく使うので、ゲームプログラマーを目指すなら勉強しておきたい分野ですね。
数学を1年間猛勉強をした結果が今のYouTubeのクオリティに繋がっているんですね。
後編ではYouTube制作の裏側や、ヘロンさんの今後の展望についても取り上げていきます。
ライター
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから