目次
はじめに
初めまして。2025年4月からテクニカルアーティストとして入社しました松浦です。
昨年までは研究室でCGの研究をしておりまして、その経験を活かしながら今年からはTAとしてグラフィック周りの実装やツール作成等を担当します。
今回の記事では4月~5月の2ヶ月間で受けた新人研修について紹介したいと思います。
研修内容
セットアップ・コミュニケーション研修(4/1~4/2)

pcのセットアップを行った後、Fortniteでレースゲームを作りながら先輩方や同期のプログラマの方と交流を深めるコミュニケーション研修を行いました。
研修と名前がついていますが、同期や先輩と仲良くなるための会なので、緊張しながらも楽しい時間でした。
マナー研修(4/3~4/4)
敬語や名刺の渡し方などビジネスマナーを学びました。特に名刺の渡し方はこれから必要な場面があるのではと不安に思っていたので、教えていただけて良かったです。
ゲームを動かす技術と発想R(4/7~4/8)
ゲームを動かす技術と発想Rの講義をしていただきました。プロジェクトでの体験談も交えて、ゲーム開発で必要な知識を分かりやすく教えていただきました。
また、講義は先輩方が分担してお話をしていただいたのですが、内容に関する雑談や質疑応答を通して先輩方と交流ができ楽しかったです。
ツール研修(4/9~4/11)

PythonやC++、バッチを用いたツール作成を行いました。バッチはあまり経験がなくうまく実装できなかったので、今後の課題だと認識しました。
また、課題ではファイル名の一括変更や画像フォーマットの変換を行ったのですが、レビューにおいて「社内で使うツールならオプションが多数作って汎用性を高めるよりも、機能を絞ってメンバーが間違えず簡単に使える事の方がいい」というアドバイスをいただき、今後プロジェクトでツールを作る際には気をつけたいと思いました。
SVN・Git研修(4/14~4/15)
バージョン管理システムのSVNとGitについて学びました。
基本的な使い方に加えて、実際のプロジェクトでどのコマンドをどのように使うかなど、実体験に基づいた知見もお聞きすることができ、とても勉強になりました。
テクスチャデータ研修(4/16)
テクスチャの圧縮形式の使い分けやアトラス化などテクスチャデータに関する講義をしていただきました。
圧縮については「ゲームを動かす技術と発想R」の講義でも話があったのですが、実プロジェクトに即して教えていただき、とても勉強になりました。
エディタ拡張(4/16~4/18)
Unityのエディタ拡張の課題を行いました。テクスチャデータ研修で見聞きしたテクスチャのパッキングを実際にUnityのエディタ拡張で実装するなど、テクスチャデータ研修で習ったことを実践してみるという課題でした。
エディタ上で手動で作業すると簡単なのですが、スクリプトで自動化しようとすると思ったようにいかず難しい課題でした。
シェーダ研修(4/21~4/25)
UnityのShaderGraphを用いたシェーダの課題を行いました。
具体的には、ToonシェーダやUIシェーダ、ポストエフェクトの実装を行いました。
以下が作成したToonシェーダと円環のUIゲージシェーダです。ToonシェーダではRampテクスチャを利用した陰影の制御を教わり試みました。01のぱっきりとした陰影ではなくある程度グラデーションで陰影を表現できて、自由度があって良い手法だと思いました。UIゲージシェーダはゲージの値によって円環のゲージが増減するシェーダになっています。

ポストプロセスは敵との遭遇演出を作るという課題で、画面が切れる演出を作成しました。画面が切れて真っ暗になったら敵との戦闘画面のフェードインします。画面が切れる線はポリゴンで区切ってるわけではないので処理負荷はあるのですが、パラメータで傾きと高さ(y=ax+bのaとb)を設定できるように工夫しました。

プラットフォーム研修(4/28)
Switchを用いた開発について学びました。
自分で作成したアプリがSwitch上で動くのは思っていた以上に面白く何度もビルドしてしまいました。また、ゲームジャムではSwitch向けでゲームを作成するので、Switch開発の良い練習になりました。
PBR研修(4/30)

PBRとは何か、CGにおける材質のパラメータ、光源等に加えて、関連知識としてHDRやガンマ補正等についてのお話をお聞きしました。上記画像は実際にUnity上でPBRのパラメータを確認していた時の様子です。
特にガンマ補正については以前あった勉強会の動画もおすすめしていただき拝見したのですが、シェーダへの入力時とフレームバッファへの書き込み時、モニターへの表示時などを図示されていてとても分かりやすかったです。勉強会内で使用されていて分かりやすかった資料は弊社代表の堂前社長がGCC’17で発表された資料になります。ガンマ補正以外にも面白いお話が多くありましたので、よければ以下の弊社ブログからご覧ください。
https://logicalbeat.jp/blog/958/
レンダーフロー読み解き会(5/1)
RenderDocを用いて既存のプロジェクトの描画のフローを確認して、描画への理解を深める会を行いました。
フローを見ていて気になった描画パスを、構築された方に直接聞く機会があり、とても勉強になりました。また、RenderDocの使い方にも慣れることが出来たので、今後のプロジェクトで生かしたいと思います。実際に次に行うゲームジャムでは最適化作業に活用できました。
ゲームジャム(5/2~5/29)

プログラマ課の同期二人と三人でゲームジャムを行いました。
テーマは「せん」だったので、戦と船の二つの単語から連想し海戦ゲームを作成しました。今回はSwitch向けでの開発練習ということもあり、Switch向けで開発しました。
最初の数日は案出しやタスク出し、実装のクラス図作成を行い、その後は各々のタスク実装を行いました。
5月中旬に中間報告を行い、感想や最終発表までに改善してほしい点について指摘をいただきました。残り二週間は、元々必要だったタスクに追加して、いただいた改善点を参考に修正を行い、最終発表に臨みました。
5月末に最終発表では中間発表の指摘した点がきちんと改善されてるなど好評をいただきました。また、実際にSwitchでビルドしたもので遊んでいただき、ゲームデザイン的にこうしたら面白かったかも、のような意見もいただき勉強になりました。
というように行ったゲームジャムなのですが、私が主に担当したのは海の描画や当たり判定の実装です。海の描画としては、Gerstner波を用いた波の動きや船の通った箇所に白波(軌跡)を描画するなど海らしい描画を行いました。当たり判定については、頂点シェーダで動かした波の形をハイトマップとしてCPU側に出力し、CPU側で船や大砲の弾と海の当たり判定を実装しました。ハイトマップをCPUに転送する実装はもっと良いやり方があったかなとは思いましたが、非同期ロードにするなど工夫しSwitchでもほぼ60fpsが出るように実装できたので良かったかなと思います。(もっといいやり方としては、当たり判定をGPUで完結するような処理が出来たらなと思いました。)

まとめ
研修ではビジネスマナーからTAとして必要なプロジェクトに即した技能について教わりました。ゲームジャムではTAとして参加させていただき、海の描画などグラフィックを主に担当出来、TAとして働く実感を持つとともに、現状まだ足りていない技能を確認することができました。
この研修で学んだことを忘れず、今後まだ自分に足りていない部分を学びながら、今後のプロジェクトに貢献できればと思います。