初めまして、2023年4月から入社しましたプログラマーの千原・長谷・李です。
4月3日〜5月30日の約2か月間、出社とリモートの両方で新人研修を行いました。
私たちが行った新人研修の詳細について紹介いたします。
セットアップ・交流会(4/3~4/4)
初日と2日目のみ出社し、PCのセットアップ及び、各種ソフトウェアのインストールやアカウントの作成を行いました。
交流会では新人同士でボードゲームも行い、仲良くなっていきました!
マナー研修(4/5~4/6)
2日間かけてビジネスマナーを学びました。Zoomを使用してのオンラインセミナーでしたが、講師の方が分かりやすいスライドを用意してくださったり、お題ごとにグループを別け、お互いに意見を出す場を設けてくださったりとリモートによる支障は全く感じることがなく進み、楽しく学ぶことができました。
Git研修(4/7)
バージョン管理システムGitの研修を受けました。
前半は、GItについての基本知識と使い方について学びました。実際にGitBucketとForkを使い、 新人全員で操作していきながら理解を深めていきました。
後半は、応用としてコマンドラインでの操作を行いました。かなり苦戦しましたが、何とか全員が課題をこなすことができました。
堂前社長講義(4/10~4/11)
「ゲームを動かす技術と発想R」の内容を2日間かけて堂前社長に講義していただきました。
ゲーム開発をするうえで必要で基礎的な知識を本と照らし合わせながら嚙み砕いて解説していただき、学び直して再確認できただけではなく、新しく身についた知識もあり、とても勉強になりました。
C++ツール研修(4/12~4/14)
C++でTGAファイルを使ったツール制作を行いました。
ファイル情報の読み込み表示を行いました。
また、ファイルデータの圧縮・解凍も行いました。
C++を扱うことには学生時代に触れていたので慣れていたつもりでしたが、画像の内部情報を変更を加えたりすることは初めてでとても苦戦しました。
Unreal Engine5 研修(4/17~4/21)
Unreal Engine5を使ってゴールを目指すアクションゲームを作成しました。滑る床やステージ外に落下した際にゴールに戻したり、ギミック、タイマーなど様々なものを実装しました。
前半はブループリントを使用して作成し、ノードを繋げるだけで実装できるのは新鮮でした。
後半にはブループリントで作成した内容と同じものをC++スクリプトを使用して作成しました。ノードを繋げるだけだったものを今度は自分で考えてコードを書くのは大変でした。
GENERATED_BODY()
public:
// Sets default values for this actor's properties
ACPP_Coin();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
UFUNCTION()
virtual void OnBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor,
UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult);
protected:
// meshes and materials, use to item
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Mesh")
UStaticMeshComponent* itemMeshComponent;
UPROPERTY(EditAnywhere, Category = "Material")
UMaterialInterface* itemMaterial;
// sphereCollider
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Components")
USphereComponent* colliderComponent;
const int scoreIncrement = 1;
FVector coinScale = {0.5f, 0.5f, 0.5f};
FVector colliderScale = { 3.0f, 3.0f, 3.0f };
実装する内容は同じものでしたが、ブループリントとC++スクリプトでやり方が全く異なり、時間いっぱいまで考えて実装しました。どちらも上手く活用してゲーム制作に取り組んでいきたいです。
Slack Bot (4/24~4/25)
GAS(Google Apps Script)を使用したSlackBotの作成を行いました。
Google Meetというビデオアプリケーションを活用し、1人がプログラミングを行い、その様子を画面共有し、他2人が見ながら実装方法など調べて指示を出したりと、モブプログラミング形式で実装に取り掛かりました。
作成したのは毎日行われる「朝会を知らせてくれるBot」です。
テスト段階では無事に機能していましたが。。。
いざ朝会を知らせてくれる期間になると、エラーが出て知らせてくれることは ありませんでした。。。
Unity URP研修 (4/26~4/28)
この研修では、ShaderGraphの作成、RenderPassの追加、ポストプロセッシング描画を行いました。
ShaderGraphは全員初めて触れたのですが、ノードベースだけで行うことができ、プレビューでどう変化したのかわかりやすく、初心者でも様々な演出を表現することができ、とても楽しく取り組むことができました。
ポストプロセッシング描画では、カメラを通して画面全体にエフェクトをかけることができ、一気に画面の雰囲気を変えることができました。
上記以外の場合でもポストプロセッシングを行うことで、明るさ、コントラスト、彩度、ぼかしなどのフィルターを微調整することが出来るので、ゲーム画面に個性やアート性を加えてより良い見た目に仕上げることが出来たと思います。
PBR研修(5/10)
PBR研修ではRACOON CREATIVEの馬原さんに講義をしていただきました。
シェーダーだけで屈折や反射に手を加えてガラスのようなものが簡単にでき、シェーダーの可能性の広さに驚きました。
実際に現場で制作されたものの映像を見せて頂き、表現するのにどのように工夫し、こだわったのかなど、ここでしか聞けない貴重なお話を聞くことができました。
ゲームジャム (5/1~5/30)
アートデザイン課の2名を加えて、新入社員5名で「あたる」というテーマのもと、ゲームジャムを行いました!
初日は「あたる」から連想するものを出し合い、「日向に当たる」を連想し、雪だるまが日向に当たらないように逃げるという案で進めることになりました。
雪だるまが日向を避け、ゴールを目指すゲームの案が出たりしましたが、 今回はSwitchのゲーム制作を行うということで、みんなでシェアして遊びたい!、対戦したい!ということになり、雪だるまの生き残りをかけた ゲームを作成することになりました!!
インハウスデザイナーの和泉さんも加わっていただき、コンセプトアートを描いていただきました!
開発を始めたころは、Gitの管理に苦戦して変更したデータが消えたりしていました。しかしだんだんと操作に慣れてきて、後半ではスムーズにやり取りを行えていました。
中間発表時は、思うようなゲームの形にできていませんでしたが、そこから先輩方のフィードバックを受けて新人全員で話し合いを行い、ゲームをより良くしていきました。
その後の最終発表会では、前回の発表とは比べ物にならないほどゲームの完成度を高めることができ、先輩方にも多くの良い評価をいただくことができました。
最終的に次の写真のようなゲームが完成しました!!
まだまだ改善すべき点は多くありますが、実際にSwitchのゲームとしてプレイすることができ、複数人でプレイできた時はとても感動しました。
まとめ
千原:今回の研修では社会で必要となるビジネスマナーから実務のゲーム制作で活かせるゲームジャムまで多くのことを体験し、勉強致しました。ビジネスマナー研修では基礎的なところから学び直すことができ、社会人になるということはどういうことか再確認することができました。学生時代は主に自作ライブラリを使用し、PCゲームを制作していたため、ゲームジャムではUnityを使用し、Switchのゲーム制作に取り組んだことはとても新鮮で楽しむことができ、勉強になりました。今回のゲームジャムを通して、ゲーム制作の取り組み方を学ぶことができ、少しでも早く現場制作で活躍できるよう、日々勉強していきたいと思います。
長谷:新人研修ではUnrealEngine、URP、Gasなど色々なことに触れることができとてもいい経験になりました。わからないことは自分で調べたり、新人同士で話し合いをしたりして乗り越えていきました。
ゲームジャムではSwitchでの実機開発を行いました。実機開発自体初めての経験で不安でしたが、同期の二人に助けてもらったり、先輩方にアドバイスをいただいたりすることで問題解決をしていきました。実際に社員の方に作品を遊んでいただいたのですが、楽しそうにプレイしているのを見て感動したのを覚えています。同期全員で、同じ目標に向かって取り組めたことはいい経験になり、かけがえのない思い出にもなりました。
研修で学んだことを糧に、これからの業務に取り組んでいきたいと思います。
李:今回の新人研修で学んだことは初めてのことが多く、調べ事にほとんどの時間を費やしていた気もしますが、UnityのURPやUEのBlueprint機能など学生時代にあまり触れて来なかったゲームエンジンに慣れることが出来ました。学生時代はほとんどが学内ライブラリでの制作だったので、私自身にとっては本当に貴重な体験でした。ゲーム以外にもGASを使用したSlack Botの作成も行ったので、幅広い経験が出来たと思います。また、特に良い経験になったことは、新人全員で制作した「ゲームジャム」では実務に近い経験が出来たことと、自分が思ってるのと相違がないか、ちゃんと聞いて確認するコミュニケーションを取ることの重要性が理解出来たと思います。今回の研修での経験を活かして頑張っていきたいと思います。