はじめに
初めまして、2024年8月に就業型インターン「CA Tech Job」に参加した、あつあつ(海道敦也)です。
金沢工業大学、メディア情報学科の3年(26卒)で普段は課外活動の「CirKit」で学生リーダーとして組織の活性化やプロダクト開発に携わっています。
参加した理由
「CA Tech Accel」というインターンには参加させていただきましたが、就業型インターンとしては他社を含め初めてになります。
私は日ごろからUnityを使用しているものの、伸びしろが感じられない状態でした。
なぜなら、周りに切磋琢磨する人がいなかったからです。周りはバックエンドエンジニアが多く、Unityの話などで刺激を受けることがありません。また、個人で作れるゲームの規模はある程度作れるようになってきたこともあります。
そのため、実務に参加して、ゲームエンジニアとしてもゲームクリエイターとしても成長したいと思い参加しました。
また、実際に現場に入り文化を肌で感じることで、将来の会社選びの参考にしたいと思いました。
参加するまでの流れ
1. 申し込む
エントリーシートとともに申し込みました。
2. 面接 ×2
人事面接と技術面接です。
3. 面談 ×2
面接を通過したら、子会社(私の場合はゲーム事業部であるSGE)の中からいくつかの会社の方と面談します。
私は株式会社アプリボット、株式会社Colorful Paletteの2回面談をしました。
面談の雰囲気はとても楽しかったです。ApplibotさんとColorful Paletteさんの特徴などもお伺いすることができました。
最終的には、「マッチ度」や「志望度」などを理由にインターン先が決まりました。
就業した会社とチーム
私は「株式会社Colorful Palette」にお邪魔させていただく形になりました。
その中で、デザイナーさんやスクリプターさんなどがゲーム開発を効率的に行えるようにするツールを開発する「ツールチーム」に入りました。サウンドデザイナーさんやツールチーム以外のエンジニアさんと連携をとりつつ、いくつかのツール改修と完全新規のツールを1つ開発しました。
感じたこと・成長できたこと
技術的な挑戦
技術的な挑戦はいくつかありましたが、代表的なものはプレイモードとエディタを両方使ったツール制作です。
所属したプロジェクトではuLipSyncというOSSを利用していました。uLipSyncは、幅広く公開されているOSSです。リップシンクをUnityで行えるようにするパッケージで私が所属したプロジェクトで使用されていました。
uLipSyncでは、Profileという音素とその周波数を紐づけたアセットを用いて、リップシンクを行います。
そのProfileを自動で生成するツールを作るときに、uLipSyncの機能を使う必要がありました。その機能はプレイモードでしか動作しないものでした。そのため、独自のエディターウィンドウからプレイモードを起動して、処理の進捗をエディターウィンドウで受け取る必要がありました。
しかし、それらの連携はほとんどの方法では値の受け渡しはできませんでした。結果的には静的なプロパティを使用して、進捗を把握しています。加えて、プレイモードの終了を検知するイベントなどを使い、終了を検知するなど、工夫してツールとして落とし込みました。
その他、いくつものツールを改修・改善していました。アセット管理ツールやアセット実機確認ツールなどです。しかし、このツールの開発が一番新鮮でした。
プロのエンジニアが持つべき心得
上記のツールをプロジェクト全体へリリースしたあとに、致命的なバグを見つけるという出来事がありました。そこでトレーナーさんから言われたことは「プロのエンジニアとして品質に責任をもって完成させよう」という言葉でした。この言葉はとても印象的で、プロとしてお金を頂いているからこそ、デバッグを入念に行うことは必要だと感じ大きく意識が変わった瞬間でした。もちろん、今までもデバッグをしてないわけではありませんでしたが、その質が悪いということがよくあったことは自覚していました。今後は将来プロを目指しているエンジニアとして、入念に行っていこうと思いました。
ツールの作り方
私が所属したツールチームでは(ツールを作るのではなく)「ワークフローを作る」ということを掲げていました。この重要さを感じたエピソードがあります。
現場にいてもっとも印象深い言葉が「イテレーション」です。反復を意味する英単語ですが、とにかく多くこの単語を聞きました。イテレーションを早くする。つまり、多くのアセットを開発していく中で1つのアセットにかける時間をなるべく減らすということが現場でどれだけ重要視されているかという象徴だと思いました。
このことから、1つのアセットを制作するワークフローを構築することはとても大切で、いかにUXを高めていくかがツールにおいても重要なのだと思いました。
このことから、先ほど述べたLipSyncの自動化ツールではそのツールを使う前に開いていたシーンに処理後に戻るという動作を入れています。これはツールを使った人がいかにスムーズにツールを使って元の作業に効率的に戻れるか、まさにワークフローを意識できた挙動だと思っています。もちろん、この実装も相当大変で、苦戦した覚えもありますが、入れることができて良かったと思っています。
勉強会にて
Colorful Paletteでは、2週間に1回の頻度で勉強会が開催されていました。その中で、クォータニオンの勉強会があり、とても勉強になりました。複素数とクォータニオンを同時に考えたことはなかったですし、絶対に今後に役立つ知識を得られました。
また、こういった勉強会ではコンピューターサイエンスやカメラの物理的な挙動の説明などまるで大学の講義を聞いているようでした。やはりそういった知識は大切で、学ぶ価値があるからこそこういった現場での勉強会が開かれているんだなと思いました。
Colorful Paletteの働き方
Colorful Paletteで働いてみて思ったことは、タスクによってざっくりとした要件の状態で任せられることがあり、裁量が大きいということです。自らヒアリングしたり、そのタスクの背景を考え、要件を定義してコードとして落とし込んでいたりという働き方が多くありました。実際に「グラフィックスエンジニアさんが使いやすいように設計を変更してください!」とざっくりとした内容で渡されることもありました。もちろん、ツールのもともとの背景などをしっかり観察すると必然と要件は1つに決まるものでしたが、インターン生でもこのような粒度です。若手メンバーでも色々な業務を任せられ、挑戦できる環境であることを感じ、ひとりのエンジニアとして、とても楽しく活動できそうだと思いました。
Colorful Paletteのエンジニアのみなさんは圧倒的に熱量が高く、ゲームを面白くするために全力で取り組んでいることを肌ですごく実感しました。これを感じる中で自分のキャリアについて見つめなおすきっかけにもなりました。
今後
多くの憧れの人々との出会いがありました。その中で、自分の未熟さを感じることや、褒められたこと、新たに伸ばしていきたい部分など、さまざまな発見がありました。これらの経験を生かして、面白いゲームを作る人間になりたいと思います。まずは、残りの学生生活を有意義に使いたいと思います!もちろん、いっぱいゲームをしていきます。
あとがき
インターンレポートとして振り返っていると、ソフトスキルの面や考え方の面で大きく成長したように感じます。関わってくださったみなさん、このインターンを行うために準備してくださったみなさん本当にありがとうございました。どのような形になるかは分かりませんが、私もゲームを作るプロとなってお会いできることを楽しみにしています!