1
/
5

【大阪万博XR】HoloLensハッカソン2019

そのイベントとの出会いは、偶然だった。

大学の後期の期末試験も終わって、就活に向けて実力をつけるために長期のインターンを探していた時、偶然にもこのイベントを見つけました。


【#大阪万博XR】HoloLensハッカソン2019【後援:大阪府、大阪市】 (2019/02/09 09:30〜)
追記(2019.02.06) 参加者・スタッフ・スポンサー様を除き 懇親会中を含む見学ご希望の方は必ず事前に見学登録をお願いします。 (運営の都合上、未登録の方のご見学はお断りさせて頂く場合がございます。) # 追記(2019.01.24) スポンサー様が現れましたので、参加費を見直しましたヽ(´▽`)/ スポンサーになりたい企業・個人の皆様はこちらのページでお申し込み頂けます。 # ご案内 前払い時の決済設定に不具合があり、一時的に受付できない状態となっておりました。 ご参加意向の皆様にはご不便をお掛け
https://osaka-driven-dev.connpass.com/event/116281/

私が見つけた時には既に満席なりかけの状態、開催は明日だったので、すぐに参加登録しました。当時は『Hololens』とは一体何なのか何も知らたかったですし、何よりもハッカソン自体に参加するのが初めてでした。どれだけの力量が求められているのかも分からない状態にもかかわらず、私はそのイベントの詳細だけ確認して翌日を迎えることになりました。

今回の体験は自分にとってとても充実したものとなりました。今後、自分が就活が上手くいってないときに自分にとっても力になれるように、自分がその二日間で体験したことを隅々まで記そうと思いました。唯々書くのも大変なので、全体的に物語っぽく書いています。

<一日目>

想像以上にスケールがデカくないか!?

~「開催場所は・・『MBS』!?」当日の初日に僕が訪れたのは『毎日放送』のスタジオだった。ココの一室を借りて今回のイベントが行われるということだった。『大阪駆動開発』様主催のイベントだったが、共催にはMicroSoftやUnity Technology、後援には大阪市と大阪府がついていらっしゃるから驚きだ。「どんだけヤバいんだよ!? 今回のイベントは!?」緊張を抑えられないまま会場に入っていった。今回のハッカソンイベントは、学生や初心者の参加者が多かったことも有り、ハッカソンイベントのハードルは低かったらしい。会場として指定された部屋は中は結構広く、設備が大掛かりだった。一体どんな展開を迎えるのだろう。

ハッカソン 開会

司会のアナウンスによりイベントは始まった。今回はMicroSoftが共催してくださっているので、日本マイクロソフト株式会社からプロダクトマネージャーの上田 欣典さんからご挨拶をいただいた。上田さん曰く、今回のイベントは大阪万博がかかっていることもあってか、アメリカ本社も注目しているとか何とか・・・。いやいや、ほんとにスケールがデカ過ぎる(汗)。MicroSoft以外にもUnity Technologyをはじめ、たくさんの協賛の方々からご挨拶をいただいた。「本当に凄いイベントだなぁ。」そしてルール説明に入ったわけなのだが・・「えっ、持ち込んできたアイデア?」どうやら事前にアイデアを持ってこないといけなかったらしい。今回のイベントのお題は“『Hololens』を使ったコンテンツ ”。それに基づいたアイデアが有る参加者たちがそれぞれ提案、他の参加者たちがどのアイデアに参加するかを選ぶという手はずだそうだ。アイデアは有志の参加者のみでいいということだったからよかったが、「全員だったら僕かなりピンチだったな。」そんな訳で有志の参加者たちが事前に考えてきたアイデアを発表していった。

チーム編成を終えて

僕は数あるアイデアの中から、“ユニバーサルデザイン × e-Spors”に参加した。チーム結成後は昼食を挟んでから本格的に制作開始となるわけだ。しかし、あるメンバーは昼を買いに行き、残りのメンバーは・・名刺交換ww。まぁこういうイベントではお馴染みの光景である。名刺から分かったことは、メンバーは選り取り見取りであることだ。現役のプランナーから学生(ほとんど京都産業大学の方々だった)のデザイナー、中には中学生まで(行動力高過ぎ!?)。男女比もやや均等だった。経歴もえげつなかった。ある会社の責任者だったり、誰もが知る大手企業の方々だったり・・・。日本も意外と広い。僕と同じ学生参加の方はほとんどデザイナーで、MRについて博識だった。今回の僕の立ち位置どうなるのかな(不安)。プログラマー、デザイナー、プランナーがほぼそろっている状態でお互いが積極的に喋れる人が多かったので、後の制作作業も順調に進むことになる。ちなみに、今回の昼食の時間を使った事故紹介の中で一つ分かったことが有る。PCに最初から備わっている『ペイント』というツールは、デザイナーの間では全く使われないということである。無駄にインストールするのが嫌だったので、いつもドッドの素材を作るときには『ペイント』を使っていたのだが、デザイナーの皆さん曰く、普通はあり得ないとのことだった。ある意味凄いことらしい・・・。ホントなのか?

制作開始

“ユニバーサルデザイン × e-Spors”というアイデアの中身はざっくり言うと、障害者でもハンディなく遊べるe-Sporsということだった。しかし、e-Sporsとは一体何かというと、定義が曖昧な部分が多いため、まずはこのプロジェクトにおけるe-Sporsの定義を決める必要があった。解釈はいくつかは出たが、少なくともe-Sporsとは『スポーツ』と呼ばれている限り、誰かと競う『対戦』であることが定義された。『対戦』という定義に基づいてアイデアは色々出た。その中で有力だったのが"マーカーを使ったコントローラー"を作成するというものだった。『Hololens』はマーカーを認識することが可能なので、棒にイラストを付けて、『Hololens』でそのイラストを認識して、例えば魔法を撃つなどを行うアイデアである。何より、リーダーによれば、『Hololens』以外にも色々と応用が利くとのことだった。しかし、ここでプランナーからある指摘が出た。「どの障害者を対象にしていますか?」障害者にもパターンは様々である。身体に障害を持つ人や、脳に障害を持つ人など。更に、対象にしている障害者によってはゲームの内容そのものも考慮しなくてはならないとのことだった。リーダーの考えでは、身体に障害があって遊ぶのに支障が出る人を対象にしているということだった。例えば、体を動かすことが出来ずに寝たきりになっている人など。それらを考慮してゲームの内容を考えたアイデアとして、『レース』が採用された。結果としてまとまったアイデアの内容はこうだ。

まず『スタート』と『ゴール』、二つのマーカーを好きな所に設置する。Hololensにその二つのマーカーを認識させて、その二つのマーカーを基準に経路が作成。経路の中に存在するものを障害物として認識させる。例えば、机の上をステージにする場合は、机上に存在するペンやノート、コップなどが障害物として認識されるということである。各プレイヤーは自分の好きな車を制作して(アイデア)ステージに召喚する。すべてのプレイヤーが揃えばレースがスタートし、車は自動でゴールに向かう。誰が一位になるかは運次第ということになる。

こんな感じである。大体アイデアがまとまったので役割が決められていった。MRに関する認識技術やプログラムはMRに精通している他のメンバーが担当してくれ、僕は“ゲームの内容”を担当することになった。

さぁ、Unityの出番だ!

役割分担が終わったところで、それぞれが制作に取り掛かった。僕もUnityを立ち上げて・・とその前に、『Hololens』は最適なバージョンが有るらしく、僕の場合はバージョンダウンする必要があった。このバージョンダウンが結構時間かかった。おかげで制作時間の間に作業することが出来なかったという致命傷を負ってしまった。その代わりとして、ゲームのプロトタイプをプランナーと試行錯誤することになった。結果としてプログラムの内容は、スタートからゴールまでを自動で進むという内容になった。

<夜通し>

挽回するチャンスは突然訪れた

このイベントでは夜通しで作業する時間を別枠(もくもく会)で設けてあることがアナウンスされた。

https://osaka-driven-dev.connpass.com/event/118917/

本当は一旦家に帰って休息をとる予定だったのだが、現在の進捗状況と、参加費が安かったことから、勢いでそのもくもく会に参加した。その夜に行った場所は本町駅近くにある小さなコワーキングスペースだった。ここで夜通し作業することになる。その時の僕が立てた計画では、スタートからゴールまでを自動で進むプログラムを二時間程度で作り終えて、あとはステージに設置するギミックのプログラムを書き終えたら、別の部屋に睡眠スペースを設けてくれたので、明日に向けて十分な睡眠をとる予定だった。しかし、このプログラムの制作が難航したせいでほぼ徹夜をくらう羽目になった。

一体どんなプログラム作ったんだよ(汗)

その時は、Rigidbody.velocityを使ってプレイヤー(車)を移動させていたのだが、「後でスピードを調整できるようにしてほしい」という依頼がこれでは解決できなかった。後で速度を調整するための変数を設定して、上限を設定するのどうのこうのでかなり時間をロスしてしまった。。出来たとはいえ、今後また変更する可能性を考えた時に今のプログラムでは対応が厳しい可能性が有ったので、別の策を考えることにした。そういう訳で、サイトで調べたら『NavMeshAgent』という便利なツールを見つけたため、早速導入してみたら、今のプログラムと同じことが出来た上に、Quaternion.SlerpとQuaternion.LookRotationを使ってゴールへ向かうように設計したコードも要らないこともあり、予備としてストックすることにした。この二つのコードを完成させたときには時刻は午前5時半を過ぎていた。マジで!?

<二日目>

ゲームのは中身は完成させた

徹夜を経て(正確には1時間ぐらい睡眠を取った)、プログラムは大体完成した。根幹のプログラムの完成後は、ステージに設置するギミックのプログラムを実装が決まってる分だけ加えた。ギミックのプログラムは後で色々調整できるよう内容にした。「しかし、このプログラムで大丈夫かな。」このハッカソンでは『Slack』というSNSツールで専用チャンネルが作られて、そのチャンネルで遠方でもメンバーとコミュニケーションがとれる。残念ながら、夜通しもくもく会の時は全員就寝していたのか、僕が投稿した質問に誰も応答してくれなかった。「現地で見せるしかないね(許容)。」

他のメンバーとは現地で再会した。他のメンバーの進捗はかなり進んでいた。MRの空間認識は正確にものを認識するところまで進んでいた。モデリングは2パターンの車を作成してくれた。UIやその他のに関しては…「うん、完璧だわww」。僕が徹夜で作ったプログラムは、幸いにもどちらのプログラムも支障はないとのことだった。後の変更がしやすいことから、NavMeshAgentを使用した後者のプログラムが採用された。そういう訳で、作成してくれたモデルとUIをゲーム内にインプットしたら、かなりゲームらしくなった。ゲームとして必要な要素は全て揃ったので、後はHoloLensに出力するだけになった。



遂にMRの転換へ

完成したゲームを"Build"して、早速HoloLensで確かめてみた。本来なら、机上に車(小さい)が乗っかっているはずなのだが、最初に体験したメンバーが最初に発言した内容はこうだ。「あれ、車が見当たらないぞ?」可笑しいなぁと思って様子を窺ってみていたら、どうやら車を見つけたらしい。「うわっ!? めっちゃデカい!?」「何だって!?」一体どんな光景だったのだろうか。後で僕もHoloLensを付けて、見てみた。車は机上ではなく、顔の真横にあった。


うん、これ‥車がデカいのか僕が近いのかよく分からないけど、明らかに会場の壇上1/4ほどの大きさがある2つの車がそこには有った。ゲームの中での大きさが反映されたのだろうか。確かに、試作の時では地面に『Plane』を使用したから遠くから見た時に車が小さかった、という訳でサイズを大きくした。しかし、そんなにデッカくなるものなのか。しかも、動かない…!? 時間経過で発車するようなプログラムにしたはずなのだが、HoloLenでどのように処理されているのだろうか。見当がつかない。「一時停止させるボタンでもついているのか?」その後も試行錯誤を続けた結果、ゲームとしては一応完成させたが、終わった後の操作が反応しないという課題が残ってしまった。

表彰式

制作時間が終了し、成果を発表する時間となった。僕たちのチームは、プランナーの素晴らしいプレゼンテーションでゲームとしてアピールに成功した。そして、懇親会を挟んだ後に審査が終了して表彰の時間となった。

(以下の動画は、Youtubeにアップロードされていた表彰式の表彰式の様子である)

https://www.youtube.com/watch?v=nq67OmEa1Aw

https://www.youtube.com/watch?v=W-s7KAs9xj0

表彰では、それぞれのチームが賞を受賞していた。中には個人に対して賞が贈られることもあった。僕らのチームは、ゲームとしての一連の流れ(タイトルからプレイ終了まで)が完結できていたことが評価されて、『KobedegitalLABO賞』が贈られた。「やったゼ!」こうして、ハッカソンは無事に終了した。

僕の活躍はたいして意味を成してはいないかもしれない。しかし、今回のイベントを経て、一つプロフィールが増えた、気がした。「これで自己PRは少し充実できるかな。」

このイベントを通じて

以上が、私のハッカソン体験記です。私は、今までUnity2Dしか作れなかったので、3Dやシェーダーなど、他の技術には全く興味がありませんでした。しかし、今回の体験で、XR技術に興味が持てるようになりました。やはり、制作に携わるのと携わらないのとでは大きく違いました。最近はARを使って3Dゲームに再挑戦しています。実は、ハッカソンが終了した後の懇親会で別のチームから声が掛かり、「HoloLensで一緒に何か作って、大阪万博に出展してみないか」という提案が持ち込まれました。その企画は、私の就活が終わってからじっくり考えようということに今はなっていますが、私は就活を終えたらその企画に参加することを決めています。「このイベントの経験を軸に他の技術を学んでみよう」今の私にはそのモチベーションが有ります。


(『ProBuilder』にて作成中のモデル、まだ作りかけww)