本記事は、22卒1年目の成長シリーズ 5日目の記事です
自己紹介
こんにちは。株式会社Craft Eggの江口と申します。
グラフィックスに興味があり、現在はCraft Eggの3D開発室で「バンドリ! ガールズバンドパーティ!」の3D開発に携わりながら、CyberAgentのゲーム事業部であるSGEの横軸であるグラフィックスギルドや3DXに所属し、グラフィックス表現の研究を行っております。
バンドリ! ガールズバンドパーティ!
「バンドリ! ガールズバンドパーティ!」(以下ガルパ)は、キャラクターとリアルライブがリンクする次世代ガールズバンドプロジェクト「BanG Dream!(バンドリ!)」の世界観を軸に展開される、リズム&アドベンチャーゲームです。
提供開始から6年目の2022年11月には、国内ユーザー数が1,600万人を突破。また、2023年3月16日に迎えた6周年で超大型アップデートを実施しました。
今年一年のタスク
前半期~3Dライブのポストプロセス制御実装とアセットフロー整備~
ポストプロセス実装
この一年間様々な業務を行ってきましたがはじめての大きなタスクは3Dライブでのポストプロセス制御の実装でした。
ポストプロセスというのは画面にたいして後処理として行う画像処理のことを言います。光を溢れ出させるBloomやカメラのピントのような効果を出す被写界深度など、ポストプロセスは様々なエフェクトの総称になります。
上記はParaffinというポストプロセスのオン/オフの比較になりますが、このように最終的な画面の見た目に関与します。
ガルパでは3DライブをTimelineで作成しておりますが、そのPostProcess制御をおこなうカスタムトラックを実装しました。
アセットフロー自動化
6周年で追加される3Dアセットの中で主にアウトゲームや3Dカットイン周りのアセットは弊社制作になります。
そのアセットはMaya等で制作されますが、それらをUnityにインストールにしてからセットアップすることに工数をかけると絵作りの工数、ブラッシュアップの工数に影響を与えてしまいます。
そのため、Unityにインストールされてからの設定は、命名や格納場所から判断させて、できるだけ自動でセットアップされるようにしました。
以下は背景アセットの自動化内容になります。導入前は左のようにアセットをUnityにインポートしてから行わなくてはいけない手順が複数ありましたが、導入後は右のように所定のフォルダに格納したらすぐにゲーム内で使えるように設定され、手作業による設定がなくなっています。
アセットは一回Unityに入れたら終わりというわけではなく、アプリ内で確認後、Maya等のツール上でブラッシュアップを行い、それを再度Unityに入れなおしリリース品質まで高めていきます。自動化をいれたことで組み込みからフィードバック、ブラッシュアップというイテレーションを早くすることができました。
上記は背景ですが、この他にTimelineやカメラ、キャラクターモーションも自動化を行っています。
前半期 ~採用や技術広報活動~
サイバーエージェントやSGE(サイバーエージェントのゲーム事業部)には子会社の垣根を越えて技術の共有・開発や組織の活性化を目指す横軸というものがあります。
今年の一年間はさまざまな横軸を行ってきましたが代表的なものを取り上げます。
まずは採用です。サイバーエージェントではゲーム開発インターンとして「プロトスプリントリーグ」というものがあります。
このチームメンターを務めさせていただきました。1チームには2人のメンターがつくのですが学生さんのモチベーションや技術力の高さに、逆に自分のモチベーションがあがるとても良い機会でした。
自分の開発で苦労した話や入って数か月目の感想など、新卒だからこそ話せることや相談できることを意識して取り組みました。
二つ目はCA BASE CAMPというサイバーエージェント全体での社内カンファレンス登壇です。
上述のTimeline実装の工夫や苦労点なども話し、SGE全体に技術の共有を行いました。
またSGEで技術書典に毎年出展していますが、UniTips Vol.9の4章 : MeshSync入門 〜DCCツール作業をUnityで同期させる〜 を執筆しました。
後半期~3Dカットインの演出基盤実装~
後半期の業務はガルパの6周年が近かったこともあり様々なタスクを行いましたが、その中でも一つ大きく取り上げるとすると「3Dカットイン/アウトゲームでの3D演出基盤」の実装です。
今回、6周年の大型アップデートでは3Dカットインが実装されましたが、その3Dカットインだけでなくアウトゲームでの3D演出でも使用できるような基盤を実装しました。(衣装変更画面以外)
この3Dカットインやアウトゲームの3D演出もMV同様、UnityのTimeline(演出アセット)で動いています。このTimelineのカスタムトラックとそれを動かす基盤を実装しました。
演出アセットはキャラクターモーション、楽器モーション制御トラックだけでなくIKトラック(目線、四肢IK)や設定用情報トラック、PostProcessトラックで構成されています。
まず、演出に必要な「キャラクター」「演出アセット」「楽器」「RenderTexture」を用意し、それを基盤側に流すとそこからすべてのセットアップ等の処理は基盤が行い、あとは再生のAPIをたたくだけという形に実装しています。
基盤側のセットアップ処理というのは意外とやることが多く、大変でした。というのも3Dライブでは曲専用のシーンが用意されており、そのシーンにセットアップの情報を残すことができます。
ただ、3Dカットインやアウトゲームでは演出専用のシーンは存在しません。そのために演出アセット(Timeline)内に情報を埋め込んで置き、それを基盤側が読み込んでセットアップを行う流れにしています。
今後のキャリアについて
前半期の横軸の動き方も自分が考える今後のキャリアを意識しているのですが、
「社内から社外へ、社外から社内へ技術を展開できるようなエンジニア」になりたいと考えています。
社内というのは現在はCraft Egg、社外というのはCtaft Egg以外のSGE子会社です。Craft Eggで自分が実装してきた内容をSGEに展開できるような動きや知識をつけていければと考えています。
そしてこの動きをどんどん大きくしていき、SGEで自分が開発した技術や得た技術をサイバーエージェントの外、ゲーム業界や映像業界に展開し、逆にサイバーエージェントの外で得た技術をSGEに展開できるようになっていきたいと思っています。
一緒に働くエンジニアを募集しています
25卒以降の学生を対象としたプレエントリー受付中。
選考情報などをいち早く受け取れます。
24卒も一部職種は現在も受け付けておりますので、こちらよりご確認ください。
また、社会人向け新卒採用制度「Re:Career」や、キャリア採用の求人一覧、カジュアル面談もございます。
インターンシップも!
サイバーエージェントでは、現在インターンシップの募集をしております。
どのインターンシップも共通している特徴は4つ!
- 社員が全力
- 社員との接点が多い
- 視座の高い仲間に出会える
- 交通費支給・宿泊場所手配
内容も数日で終わるものから2週間のもの、職種や難易度もさまざまなので、
自分に合うものを見つけてぜひエントリーをお待ちしております。