【体験記】インフィニットループさんのバーチャルインターンシップで盛大に失敗した話と、そこから学んだこと
2022年8月10日。
札幌と仙台にてゲーム開発などの事業を展開されている、株式会社インフィニットループ(以下IL)さんが企画した「バーチャルインターンシップ2022 in Summer」に参加させていただきました!
とても学びが多かったのと、何よりも楽しかったので、それらについて体験記風にまとめたいと思います。
なお、ILの方に掲載の許可をいただいておりますが、一参加者の私が個人的に執筆した記事だということにご留意ください。
バーチャルインターンシップとは?
面接から本番までを全て「バーチャルキャスト」内の仮想空間で行うという、非常にエキサイティングなインターンシップ。
内容的には、バーチャルキャスト内で使えるアイテム「VCI」を作ろう!というものです。VCIの開発にはUnityとLuaスクリプトを使用します。
(※バーチャルキャストは、ILさんの関連会社が提供する、メタバースコミュニケーションサービスです)
応募と面接
インターンシップってなんとなく学生の方向けのイメージが強いですが、こちらは既卒、社会人も参加OKとのこと。
自分は社会人なのですが、ゲーム開発、並びにVR/AR分野にとても興味があり、開催告知ページでこの記載を拝見した時は「キターー!!」と思いました。
(ちなみに、私のUnity歴は約1年。仕事の合間に独学で勉強していただけなので、高度な専門知識などはまだありません)
幸い、ある理由で衝動買いしたOculus Quest2(現Meta Quest2)とデスクトップPCを持っていたので、双方を繋ぐUSBケーブルを買いに家電量販店へ走りつつ、応募のボタンをクリック!
面接もVR空間とのことで、アバター越しに担当の方とお話ししましたが、
とても新鮮な体験でした。
いずれ世の中のほとんどの会社がこの面接方式を採用する時代が来るのでしょうか…(来て欲しい)
インターンシップ本番!
面接も無事に通過することができ、いよいよ本番です。
インターン会場に入ると、出現したのは蝉の声が響き渡る、夏らしくも涼しげなワールド。
参加者の皆さんも続々と集まってきました!
いや~しかしメタバースってすごいですよね。
アバター越しでもVRで対面すると、リアル世界で本当に集まっている感覚になりますよ。
当日のスケジュール
書き忘れていましたが、バーチャルインターンシップは1dayです。
ざっくりですが、このようなスケジュールでした。
会社説明と素材VCI発表
夏服姿の「あいえるたん」司会のもと、会社説明や素材の発表が行われました。
今回の素材VCIは、アサガオとジョウロ。
「アサガオにジョウロで水をやると成長する」という動きが組み込まれており、これを自由に改造していきます。
「見た目を変えてもいいし、動きを変えてもいいし、ゲーム要素を付け足してもOK! とにかくやってみたいことを書き出してみましょう!」
とのことで、早速何を作るか考える時間となりました。
どうせならちょっと難しいことしてみたい!
改造例も紹介いただいたのですが、どうせならオリジナルでちょっと難しいことをやってみたい!と考えていました。
そこで私が思いついたのは、アサガオをできるだけ揺らさずにゴールまで運ぶゲームです。
なんやねんそれと思われそうですが、小学生の時にアサガオを頑張って家まで持ち帰った記憶があり、そこから着想を得て考えたものです。
その他具体的な仕様は以下のようにするつもりでした。
アサガオは一定間隔で自動成長する
アサガオを揺らしすぎると、成長が逆戻りする
外敵として蜂やカラスが襲いかかってくる
ジョウロで外敵を撃退する
エリアマーカーのようなオブジェクトを作り、それを会場に配置してゴールとする
ゴール時にアサガオがどれだけ成長しているかで得点が決まる
今見ても、これ結構やらなきゃいけないことありますよねww
荒ぶるアサガオ 迫り来る時間
プロのエンジニアの方からさまざまなアドバイスをいただきつつ、制作を続けていたのですが、想像以上に時間を食いつぶしていることに気がつきました。
肝心の進捗はというと、、、
なんと、まだアサガオの鉢植えをちゃんと持ち上げれない!!!
どうも物理演算や固定ジョイントの働きが悪さをしているようなのですが、持ち上げるとアサガオがグリングリンと様々な方向に回転し始めたり、すさまじい速度で上下に動いたり…
Rigidbodyの設定を変えても、なかなか意図したとおりに持ち上げることができません。
そうこうしているうちにも時間はどんどん無くなり、焦りはどんどん増えていきます。
時間大幅オーバー、そしてまさかの…
何とかお見せできる形にしようと試みたのですがうまくいかず、成果発表の時間となってしまいました。
比較的安定して持ち上げることができるバージョンのVCIを持ち、会場入りするつもりだったのですが、入室する直前に何度もVRアプリケーションが落ちるなど機材トラブルに遭遇、、、
皆さんだいぶ長い間待ってくださっていたにもかかわらず、時間内に会場に入って発表することが叶いませんでした。
とても悔しく、何がいけなかったのかとすぐにセルフ反省会を開きました。
大失敗と大反省
今回の失敗の原因は主に以下であると私は考えています。
①作業工程と時間配分を間違えた
まずは何よりも、作業工程の順番と時間配分にミスがあったと思います。
私は、蜂やカラスなどのオブジェクトを作り→アサガオの傾きを検出するスクリプトを書き→鉢植えを持ち上げれるようにする作業に取り掛かっていました。今思えば、優先順位が真逆です。
不測の事態が起きることを想定し、何を最優先で実装すべきか、最低限どこができていれば良いかをしっかり認識したうえで、作業を行うべきだったと思います。
②規模が大きなことをやろうとしすぎた
時間配分とも関係しますが、私の技術レベルと与えられた時間に対し、作るものの規模がそもそも大きすぎたなと思います。
ゲームとして成立させるには、たくさんのことを考えなければなりませんし、必然的に実装すべきものも多くなります。
慣れてない状態では、もう少しシンプルなものを考えるべきでした。
③自分で調べて解決しようとした時間が長すぎた
わからないことを、できるだけ自力で調べて解決しようとした時間が長すぎたと思います。特にスクリプトを書く時が顕著でした。
自分で調べること自体は悪いことではないと思いますが、時間が限られていて、特にエンジニアの方がしっかりサポートしてくれる今回のような場では、もっと早い段階で積極的に質問するべきでした。
次の参加者様へ
もしこれを読んでいる方で、次回のバーチャルインターンシップに参加される方がいらっしゃれば、以下のことをちょっぴり意識するとより楽しめるはずということを、大失敗した私からお伝えしたいと思います!
①なんでもやってみる
やってみたいことをしっかりサポートしてくださるので、やりたいことがあればどんどん挑戦して良いと思います!
ただし、「最低限完成させる部分」は明確に意識しておいたほうが良いです!
②エンジニアの方には積極的に質問する
わからないことは長い時間悩まず、どんどんエンジニアの方にお尋ねしましょう!
質問するときは自分が何をわかっていないのか、どこを教えてほしいかを明確にして、できるだけ簡潔に質問するとよいと思います!
③最低限の予習をしておく
バーチャルキャストで用意されている関数や、VCIの特性などを軽く予習しておくとよいと思います!
私もLuaスクリプトが初見だったので、文法に関して軽く予習していましたが、そのおかげか比較的馴染みが早かったように思います。
④VCIはデータとしてエンジニアの方にお渡ししておく
完成したVCIデータは、念のため発表の前にエンジニアの方にお渡ししておくと安心です。可能であれば、動作している様子の写真をキャプチャしておくと尚良いと思います。接続エラーなど不測の事態が発生した場合、代わりに紹介してくださいます!
終わりに
当日はとても悔しい結果となってしまいましたが、その後、ゲームのルールをやや変更した「アサガオを一定時間傾けずに蜂から守るゲーム」を作ってみました。
インターンシップ以降も、Slackでの質問に丁寧に回答していただいたり、再び作品を披露できる機会を設けてくださったりで、本当に最後まで楽しく開発することができました。
あれからUnityも勉強し続けており、今後も更にスキルアップしていきたいです。
最後になりますが、このような貴重な体験をさせていただいたILの皆様、本当にありがとうございました!
めっちゃ楽しかったので、ここまで読んでくださった皆さんも機会があれば是非参加してみてはいかがでしょうか。
それでは、またお会いしましょう!