サイバーエージェントが主催する、3Dグラフィックスの基礎知識を体系的に学ぶことができる3ヶ月の特別プログラム「Graphics Academy」が開催されました!
本記事では全8回・3ヶ月に渡るこのプログラムの様子をお伝えいたします。
Graphics Academyの概要
モバイルゲーム市場では、近年のスマートフォンデバイスの性能向上に伴い、3Dグラフィックスによる表現の重要性が増してきています。ゲーム開発の現場においては、より高度で専門性の高いエンジニアリングが求められるようになっています。
しかしながら弊社では、これらの技術を持つ人材、すなわちグラフィックスエンジニアやテクニカルアーティストが不足している状況が続いています。
この問題を解決するためには人材を育成する環境が必要ですが、高度かつ専門性の高い3Dグラフィックスの知識を体系的に学べる場は多くはありません。
また、ゲーム・エンターテイメント事業部ではこれを弊社だけではなくゲーム業界の課題でもあると認識しています。
このような背景から3Dグラフィックスを体系的に、短期間で学ぶことができる場として「Graphics Academy」を開催いたしました。
今回は講義の内容を充実させるため、参加人数は20名を上限とし、参加者は社会人のみとさせていただきましたが、おかげさまで反響をいただき、想像を超える多数の方にご応募いただきました。
プログラムの概要
研修の開発は株式会社サートプロ社と共同で行い、講師はサートプロ社の石井勇一氏に担当していただきました。
講義は毎週(一部隔週)土曜日の1日8時間、全8回で以下のカリキュラムを実施しました。
- 開発環境整備と3Dグラフィックス基礎 (行列・変換・メッシュ生成)
- レンダリングパイプラインの理解、シェーダー基礎
- ライティングの基礎、NPR入門
- テクスチャを用いたさまざまな表現、PBR入門
- さまざまなポストエフェクトの基礎・実践
- シャドウイング、描画パスのカスタマイズ、シェーダー発展
- テーマを決めて、絵作りの実践 (設計・実装)
- 絵作りの実践 (実装) 制作物発表会
受講者の方には事前にテキストと市販の参考書2冊を送付し、講義はすべてリモートで開催いたしました。
また、受講環境に不安がある方にはあらかじめレンタルPCを支給いたしました。
講義 – 1日目〜6日目
8日間のうち、最初の6日間は講義形式で3Dグラフィックスの基礎講座を実施しました。
1日目は3Dグラフィックスの基礎です。
ポリゴンとはそもそも何かという話から始まり、行列計算の基礎、3DCGにおける座標系に関する知識、さらに座標変換の計算方法について取り扱いました。
2日目のテーマはレンダリングパイプラインとシェーダの基礎でした。
まずDirectXを使って、ゲームエンジンではブラックボックスになっていて学びづらいローレイヤー実装を学びました。
後半ではUnityにおけるシェーダの書き方とその実習を行いました。
3日目はライティングの基礎についての講義を行いました。
Lambert拡散反射モデルやPhong鏡面反射モデル、DirectXにおけるポイントライトやスポットライトなど各種ライトの実装、Unityにおけるライトの仕組みについて取り扱いました。
また、トゥーンシェーディングのシェーダの実装を実習形式で行いました。
4日目は法線マッピングやキューブマッピングの仕組みと実装、物理ベースレンダリング(PBR)の考え方と実装方法について扱いました。
また後半ではUnityのShader Graphの使い方について学びました。
5日目はポストエフェクトをテーマとしました。
モノクロ化のポストエフェクトから始まり、ブラー、ブルーム、被写界深度 (DoF)といったエフェクトの実装について学びました。
また、後半ではUnityのPostProcessing Stackの使い方を取り扱いました。
6日目はシャドウを取り扱いました。
シャドウマップを使った影の描画からデプスシャドウ、PCF、VSM、カスケードシャドウについて学び、さらにUnityにおける影の取り扱いについて学びました。
また講義の後半では、デファードレンダリングの仕組み、UnityのSRPを使ったレンダリングパスの拡張、発展的なエフェクトについて取り扱いました。
絵作り – 7日目・8日目
7日目と8日目はここまでで学んだ知識を活かして、各自自由にテーマを決めて絵作りを行う実習を行いました。3Dモデルなどのリソースの使用は自由とし、一部弊社からも提供いたしました。
事前に実装と発表資料の例として、弊社の山口と山上が作品を作り発表いたしました。
最終日である8日目の後半には成果発表会を行い、各受講者から成果物をプレゼンしていただきました。
どの方も学んだ技術を活かしつつも、さらに高度な技術を研究したり、アイデアを実現するために工夫を凝らしたりと非常に見応えのある内容でした。
以下に発表資料の一部を抜粋して紹介させていただきます。
また、最終課題で作ったブラウン管風のシェーダをOSSとして公開される方もいらっしゃいました。
https://github.com/yunoda-3DCG/Simple-CRT-Shader
交流・懇親会
Graphics Academyでは、一方的に講義を行うだけではなく、受講者から講師への質問や受講者同士での情報交換が活発に行われました。
コミュニケーションツールとしては専用のSlackを作成し、質問部屋や雑談部屋、受講者の方々を数人ごとにグループ分けした小さいチャンネルなどを用意しました。
さらに受講者の方々も自主的にチャンネルを作成し、積極的にコミュニケーションを取っていただいておりました。
このSlackは今後も保持し、受講者同士の交流の場とさせていただく予定です。
また、期間中に2回、懇親会を行いました。
受講者の方々を4、5人程度のグループに分け、リモートで開催しました。
またゲストとして弊社でグラフィックスエンジニアなどとして働く社員を招き、実際の業務に関わる情報交換などをさせていただきました。
また懇親会の食事は nonpi foodbox でお好きなメニューを選んでいただき、事前に自宅に配送いたしました。
参加者の声
最終日には参加者に向けて、Graphics Academy全体のアンケートにご回答いただきました。
「Graphics Academyに参加した感想を教えてください。」という設問には全ての受講者の方に高評価をいただくことができました。
講義に関しては、内容や教え方、質問などのフォローアップについて高評価をいただけました。
講義の期間についてもっと長期間でじっくり吸収したかったという改善案もいただきました。
いただいた意見は講師を含め運営メンバー全員で振り返りを行いました。
また、「この講座を受けての成長実感を教えてください。」という設問に対しては全ての方が成長実感を得られているという回答をいただきました。
運営メンバーとしてはこの結果をなにより嬉しく思っております。
まとめ
以上、Graphics Academyのイベントレポートでした。
受講者の皆様は、通常の業務もある中での受講となり、非常に忙しい3ヶ月だったと思います。
扱う内容からどうしても講義や課題の分量も多くなってしまうため、運営メンバーとしても懸念がありましたが、とても前向きな姿勢で取り組んでいただきました。
最終課題についても運営メンバーの予想を遥かに上回るアウトプットばかりで、本プログラムの成功は受講者の皆様ありきだったと感じています。
また、このような近しい技術領域を持つエンジニア同士の交流の場はとても有意義であると改めて思いました。
サイバーエージェントでは「Graphics Academy」以外にも「Go Academy」や「Flutter Academy」など他のアカデミーも開催しています。
今後も引き続き開催していく予定ですので、機会があればぜひご参加ください。