VRChatでハッカソンが開催されてたので参加してきた(PNGミュージアム×エンジニア集会コラボハッカソン)
VRChatにはいろんな界隈の方がいますが、その中でもプログラマーやエンジニアなどの技術系の方達もいます。先日この界隈の中でのビックなイベントがありました。そう!ハッカソンです!
PNGミュージアムとエンジニア集会のコラボによるハッカソンが行われ、9/8(日)に成果物発表会が行われました!僕もチーム参加をしてきたので、そこでの活動記録をこの記事に書き記そうと思います📝
そもそも「ハッカソン」ってなんぞや?
ハッカソンを知らない方向けです。Wikipediaにはこうあります。
最近はいろんな技術者界隈、または情報系大学生たちが集まってこの企画を開催しています。チームでテーマにそって話し合って何を開発するかを決め、期限までにデモを完成させるのが目的です。参加してみると、自分の知らない技術をチームメンバーが持っていたり、最終発表で他チームがとんでもないものを作ってたりしてとても面白いです!
ハッカソン開会式
今回僕が参加したハッカソンはこちらになります!テーマは「展」ですね。これに少しでも関係するデモを開発することがこのハッカソンの目的になります。
ハッカソン熟知です、みたいに前半で書いていましたが、実はこれでハッカソン出場やっと2回目ですw 今回ToLpazさんが誘ってくれたのですが、たぶん1人だと参加しなかったでしょう。結果的にチーム参加できてよかったと思います。
開会式では、僕たちと同じ大学生の方もいたり、ガチエンジニアのかたもいました!自己紹介では好きなお寿司について共有したりで全然固くなくわちゃわちゃした空気になっていました。1組1分の制限があり、時間経過で床が抜けますw
project"FuTiOOn"の開発記録
チーム結成
記事のはじめに僕はチーム参加をしたと書きましたが、今回は4人で参加しました!チーム名は「project"FuTiOOn"」。fatalephさん、ToLpazさん、緑獺おがめさん、そして僕オトリフの4人の頭をとって構成されています!命名主はfatalephさんです!ロゴも同時に作ってくれました!
まだ色改変くらいしかやってないのすんげぇ懐かしいw
テーマ開発物決め
さて、今回のハッカソンのテーマは「展」です。ここから何を作るのを考えるのが結構大変でした。テーマが思っていたより漠然としているのでまーじで自由に考えられちゃうんですよね。純粋に「展開」「発展」からつなげるのあり、読み「てん」からつなげるのもありです。
チーム全員8月頭は忙しかった(院試など)ので、discordのチャットでアイデアを投げ合いながら考えて、最終的に開発物が確定したのは8月中旬に差し掛かるタイミングでした。
決めたものは地震警報システムです!HMD(ヘッドマウントデバイス)を被ったプレイヤーに対する警報システムを開発するすることにしました。
なぜこれになったって?下の図がその経緯になります!
いや、そうはならんやろwって声が聞こえてきそうですが、少しでも「展」にかすってたらいいんですよ!これも思いついたのfatalephさんですね。展からここに行き着く人は少ないのではないでしょうか?
開発開始
開発するツールが確定したので、8月中旬ごろから開発開始しました!最初は、アバターがAPIを叩いて警報信号をキャッチしたら警報UIを鳴らす方針で調査、開発を進めていました。Unityやぶいちゃのシステムもよく理解していなかったので、とりあえずまずはめちゃめちゃ調べました!地震情報APIやUdonsharp、モジュラーアバターなど関連しているものはみんなで漁っていました。
ただ、これだとぶいちゃの仕様上出来ないとわかったのが大体8月の折り返しくらい。アバターの中にAPIを叩くようなスクリプトは組みこめないんですよね。これは推測になるのですが、アバターってそのワールドにいるユーザーのPCにアバター情報が全てダウンロードされるんですよ。だから、APIをアバターが叩いちゃうとその場のPC全てがAPIを叩いちゃうからできないようにしているのかなぁと思っています。
方針変更
それじゃここからどうすればいいのか?と思っていたところ、ぶいちゃにはOSC通信というものがあることを知りました。詳しく調べてみると、OSC通信は同ネットワーク内でのデバイスのアクションを他のデバイスのアクションに反映させるものでした。つまり、あるプログラムの出力をOSC通信で送ってやればアバターが動かせるというのです!これならいけるじゃん!!
どうするかというと、とりあえずAPIを拾って、入力された震度情報をもとにOSC通信を出力するツールを開発します。それとは別にアバター側は、UIや警報音をくっつけてアニメーションとパラメータを作成します。最後にその二つがOSC通信で連携することができれば成功という形です。
最終発表が近づいてきた8月下旬初め頃、このタイミングで方針が確定して開発を進めていきました!
ラストスパート!!
開発作業は普通に発表会当日までかかりました。みんなハッカソン以外の予定も忙しかったので、まとまった時間が取れた時が少なかったですね。完成品は、アバターギミックを見せるための豆腐デモアバター、そしてチームでクライアントソフト開発に徹底してくれたおがめさんのOSC通信転送用コードです。これで発表会に臨むことにしました!
発表周りに関してはfatalephさんが準備してくれました(仕事が早い!!)。
成果物発表会
9/8に開催された成果物発表会。会場はPNGミュージアムの屋上でした。下のツイートでは8月に訪れた時の様子ですね🎵
そして当日の出場ツイート。
project"FuTiOOn"としての出場なので、服にロゴを仕込みました!
今回のハッカソンで楽しみだったのが、ガチエンジニアさんの開発成果が見れるところでした。以前僕は大学院の先取り講義でハッカソンをやったことがあるのですが、中間報告があったので全員の開発物が分かっている状態でした。今回の場合、開会式以来他の方との開発物のお話をしていなかったので、誰が何を作るのかが全くわからない状態でした。
うちのチームの発表はfatalephさんが全てやってくれました。僕は棒立ちですw自分たちが立っている間の様子はフレンドのちいちさんがナイスパシャリしてくださっていたので下に引用します!
他の方の発表も見ましたが、個人的にはforksさんの成果物好きでしたね。QRコードがアバターから出てくるのは見てて面白かったです!
僕らの開発物の詳細はメンバーのToLpazさんが先にnoteに書いてくださっていたのでそちらのリンクを貼っておきます。こちらもぜひ読んでください!
ハッカソンを終えて
とりあえず今回のハッカソンを終えた感想ですが、ハッカソンをやらなかったら知れなかったぶいちゃやツールの仕様が知れて面白かったです。開発当初は触る予定がなかったものも、方針変更の際に知識が増えていく感じがして面白かったです。modular avatar周りの知識は多分今後のぶいちゃライフで役に立つでしょう。
反面、今回僕は開発面に関してチームにうまく貢献できなかったなと反省しています。この反省は次回以降のハッカソンで挽回できるようにしていきたいです。また、今回の開発物はまだ開発途中のため、まずは完成させれるよう頑張りたいと思います!
最後に、今回コラボハッカソンを企画、運営してくださったトンズラさんと慕狼ゆにさんにはとても感謝しています!また次回、このようなハッカソンが開催される時はまた参加しようと思います!トンズラさんの撮った写真のツイートを載せてこの記事を閉めようと思います。