【Unity×Arduino】高専祭でUFOキャッチャーを作った話
はじめに
こんばんは,サイバーエージェント20卒 Unityエンジニアのトミーです.
北九州高専5年生で,コンピュータ研究部という部活で色々なゲームやアプリ,サービスを作ってます.樋口楓さんとハッカソンが好きです.
この記事は「CyberAgent 20新卒 Advent Calendar 2019」24日目の記事です.
高専祭向けの展示とは
高専祭は高専の文化祭のことで,各クラスや部活で展示を行います.
毎年私のクラスはゲームセンターを作って展示しており,班に分かれて様々なゲームを作ります.私は3年生でモデリングした学校を舞台にしたシューティングゲームを,4年生で単位を集めるレースゲームを作りました.どちらもWiiリモコンで遊べて,狙って撃ったりハンドルを傾けたりして操作できます.ゲームはとても好評で,3,4年両方で学内の全クラスのうち金賞も貰えました.
これまでの展示ゲーム制作で得たノウハウは,「ゲーム内容の凄さよりかは操作性やとっつきやすさ,文化祭らしさ(特別感)」が来場者に”ウケる”ということです.
例えば,アクションゲームにおいて豊富な攻撃手法や敵の挙動,複雑なルール,キーボードとマウスが操作方法・・・というのはゲーマーなら楽しいかもしれませんが老若男女お客さんが訪れる高専祭では不向きです.
一方で「狙って撃つだけ」「アクセル/ブレーキペダルを踏んでハンドルを操作するだけ」という直感的な操作は小さい子どもでもすぐ遊べます.そこに「舞台が高専である」という今来ている高専祭だからこその要素をつけることで特別感を高めています.
なんだかUXデザインに通じる部分がありそうな気がします.
アイディア出し
クラスで6月頃に展示するもののアイディアを出し合いました.
この時はかなり調子に乗って色々作ろうとしたのですが,何か作るタスクを詰め込むのが好きな私は破滅します.高専祭以外の開発をしてたら気づいたら高専祭1週間前とかになってました(?)
実装
とにかく楽をしたい
短時間でコストをかけず面白いモノを作る.難易度の高いことですが現状のアイディアで実装が難しくないかつ楽しそうなものを作ることにしました.
それが,「実際に景品が出てくるUFOキャッチャーゲーム」でした.
図:UFOキャッチャーの完成イメージ
Unityでのゲーム部分実装
情報系の私はリアルなアームの制御なんてできません.そこで得意のUnityを使っちゃいます.
Unityは物体(オブジェクト)に対してワンクリックの設定で重力や当たり判定をつけることができるほど便利でスゴイゲームエンジンです.UFOはプログラムで制御しアニメーションで動かして,あとは物理演算の成すままに・・・
これだけで仮想世界でのUFOキャッチャーができちゃいました!*1
プレイの様子
これをそのまま展示しちゃってもいいですが,正直物足りません.
そこでリアルな景品をもらえる仕組みをつくりました.
UnityからArduino制御
UnityはC#でプログラムを書くので当然C#でできることはUnityでできます.
Arduinoはシリアル通信でPCから制御ができ,このシリアル通信はC#のSystem.IO.Ports.SerialPortクラスを使って行えます.
私は以下のような感じでUnityからモータを動かしました.
- Unity上で人形を穴に落とすと,コライダーによって検知される
- UnityでArduinoに対し,景品を落とすためのサーボモータの角度となる数値をシリアル通信で送る
- Arduino側には数値を得るとサーボモータを接続しているピンにその数値分の動作させるプログラムを書き込んでおく
- サーボモータが回り,物理的に景品が落ちるようになる
UFOキャッチャー!!
— トミー (@Tomy_0331) 2019年10月31日
景品手に入れたらモーター動かすのとLED光らせるまでできたから、後は明日機構をつくる pic.twitter.com/Une7vuoqvO
この動画のようにできました.ついでにLEDも光らせています.
うまい棒排出機の作成
サーボモーターを動かすところまでできたので,そこから機械的にお菓子を排出する機構を作成します.景品はうまい棒です.*2
近所のホームセンターでプラスチック版,木材,割り箸などを買ってその場のノリで組み立てました.試行錯誤なので6時間くらいうまい棒がきちんと落ちるように調整してました.
うまい棒排出機
完成!
完成品動画
うまい棒排出機の完成品が動く様子はこの動画から!
色々なアングルで撮ってます.(時々詰まります)
展示の様子
土日の二日間展示を行いますが,両日ともに多くのお客さんに遊んでもらいました!特にちびっこの反応が良くて嬉しかったです.
ピーク時間帯突入しとる。お客さんは沢山来て貰ってます!🙌 pic.twitter.com/cyjTGept8u
— トミー (@Tomy_0331) 2019年11月3日
高専祭お疲れさまでした! pic.twitter.com/nBiyTibD5k
— トミー (@Tomy_0331) 2019年11月3日
その他の展示
UFOキャッチャーの他にもモデリングした高専MAPをAR上で表示するアプリも作りました.他の班は音ゲー,射的,競馬,STGなど作り,バリエーション豊かな展示になりました.
展示全体の紹介動画
ちなみに私はVtuberの樋口楓さんのファンなのですが,彼女の曲で譜面作って動画をTwitterにあげたら本人にRTしてもらえました.うれしい.
高専祭っていう高専の文化祭でゲームセンターを作ったんだけどでろーんの音ゲー譜面も作った#でろあーと pic.twitter.com/58VnkBt9Nk
— トミー🍁🐰 (@Tomy_2434) 2019年11月3日
おわりに
長くなりましたが,ざっと作ったものについて紹介させていただきました.
今回の記事ではソースコードを貼ったり,あまり深い技術については取り上げませんでした.UnityやArduinoを触ったことがある方はお気づきになったかもしれませんが,実はこれらの制作物は特別な技術を使っていません.
どれも調べたらすぐに出てくるような内容で,初心者でも何日かかければ作れると思います.
しかし簡単な事でもアイディアと工夫の組み合わせでいくらでも面白いモノは生み出すことができます.もちろんエンジニアとして学びはどんどん深めていきたいですが,遊んでくれる人のことを考えながらどんなゲームだと喜んでもらえるだろうと考えることも楽しいです!
最後になりますが,私が入社するサイバーエージェントは21卒向けの本選考がスタートしました.気になる方,ぜひアクセスしてみてください!