新卒研修~ビジネス職の新卒が、初めてUnityを使ってみた~

こんにちは!アプリボット新卒の河口です。

今回は、2018年4月にアプリボットに配属されたビジネス職の新卒社員が受けたプログラミング研修をご紹介します。プログラミング経験がほぼない新卒が、ゼロからゲームを制作した学びと所感についてお話します。

研修内容:2週間でゲームを作る(ターン制バトル)

研修では、Unityを使用して2週間でゲームを制作し、発表を行うという課題に取り組みました。

作業の流れは以下のようなものでした。

  1. 仕様決め
  2. システム部分の実装 (C#)
  3. アニメーションの作成とデザイン制作(Unity)
  4. 途中で仕様を追加
  5. 成果発表会

上記に沿って、自分が研修を行った過程をお話します。

仕様決め

まず初めに、ゲームを作るにあたって、どんな仕様内容にするかを考えました。

課題の内容は「ターン制のバトルを作る」だったのですが、それ以外の仕様に関しては指定がなかったため、自分でどんなゲームにしたいかを決める必要がありました。

最初に私が考えた仕様は以下のようなものです。

  • 1対1のターン制バトルで、全10ターン
  • 10ターン終了後、HPが自分>敵の場合は自分の勝ち、敵>自分の場合は敵の勝ち、どちらも同じHPの場合は引き分けになる
  • コマンド式で、1キャラに対し3つスキルを持つようにする

このような大まかな仕様をつくり、ベンチマークのゲームを決めて最終的なアウトプットのビジュアルを軽くイメージし、ゲームの実制作に入りました。

私は2Dのコマンドバトルを考えていましたが、他の新卒の中には「3Dでターン制バトルを作る」ということを考える人がいるなど、新卒それぞれが異なるアイディアでが走り出しました。

システム部分の実装 (C#)

次に、実際にターン制のバトルが動かせるように、C#でコードを書くことから開始しました。

当初は1対1のターン制バトルを想定して作成していたのですが、もう少し複雑なバトルに挑戦してみたいと思い、「敵1 対 味方3」のバトルに変更することにしました。

味方3人にそれぞれ異なるコマンドにして、攻撃力や与える効果を設定したり、3人の攻撃がおわった後に敵が攻撃するようにフラグを設定するなど、人数を増やすと一気に難易度があがりとても苦労しました。

アニメーションの作成とデザイン制作(Unity)

C#で大体のバトルロジックを作成したあと、Unityでビジュアルの部分やアニメーションの部分を詰めていく作業を行いました。また、ゲームのシステムだけでなく見た目もなるべく豪華にできるように、自分でイラストやデザインを制作しました。

Unityでは、C#のような構文を組まずに直感的にUIアニメーションを作ったり動かすことができるのがとても面白かったです。

ただ、最初はAnimatorの使い方や、アニメーションの遷移の原理が分からず苦戦しました。オブジェクトが意図したように動かなかったり、ひとつのオブジェクトに対して複数のアニメーションの入れ方が分からなかったり…とても難しかったですが、徐々に動かし方が理解できてよかったです。

途中で仕様を追加

研修の後半では、最終発表の前に先輩社員に中間発表として制作中のゲームを見ていただきました。中間発表のフィードバックとしては、

  • 基本的なゲーム性に関しては問題ないが、もっと面白いゲームにするためにボスのHPが減ると暴れだす」「毒を付与するスキルを追加する」等、バトルロジックを少し追加すべき
  • コードが全体的に長くなっているが、関数を使えばもっと省略できるはずなので、仕上げはリファクタリングをする

といったコメントを頂きました。

また、自分としても、作っている過程で「もっとこうしたい」というところが出てきたので、仕様を途中で追加することにしました。フィードバックと自分のやりたいことをふまえ、以下のようなメモを作って改修のスケジュールを組みました。

image10.png

仕様を追加した結果、作業量が大幅に増えたので、1日ごとに「どこまで終わらせるか」というゴールを考えて効率的に作業を行うようになりました。このような計画を立てることで、以前より作業のスピードを上げることができたように感じます。

成果発表会

最後には、成果発表会を行いました。自分が2週間で作ったゲームを先輩社員の皆さんにみていただくのはとても緊張しましたが、自分で最後まで作りきることができ良かったです。

 

image9.png
トップ画面です。学校をテーマにしてみました。
image2.png
ゲームを開始すると、バトルの前にキャラ同士の会話が流れます。
image7.png
バトル形式を1vs3のボスバトル風に。それぞれのキャラに異なるコマンドを3つ設定。
バトルコマンドをタップしたままにすると、その技の解説が出るようにしました。
image5.png
味方3人の攻撃内容によって、右上にある「絆ゲージ」がたまるように設定しました。ゲージがMAXになると、カットイン演出が発生し、ボスに対して一斉攻撃をしかけます。
image6.png
敵のHPが一定まで減少すると、敵が凶暴になって攻撃力が大幅に上昇するように設定しました。それにより、今まですぐに倒せていた敵が、コマンドをしっかり考えて選択していかないと勝てないようになり、より面白さが増したかなと思います。
image4.png
バトル終了後は判定結果が表示され、それと共にキャラクターのコメントが表示されるようにしました。

まとめ

2週間という短期間でしたが、自分のオリジナルのゲームをゼロから作り上げる経験ができてとても良かったと思います。反省点は、関数を使ってさらにリファクタリングできる部分がありましたが、時間が足りずやりきることができなかった所です。結果、およそ3000行のコードを羅列してしまい、後から見返したときに非常に見づらいような書き方になってしまいました。

また、後から仕様変更をすることで、コードを書き直したりアニメーションを作り直したりすることがいかに大変かということも実感しました。ゲームの制作前に、しっかり大枠やコンセプトを決めておくことの重要性、詳細までゲームのシステムや面白いポイントを詰め切れていることの大切さを学びました。

しかしながら、コードはとても拙いながらも、エンジニアの考え方を少しでも知るきっかけになったかと思います。また、最初は分からないことだらけで、すぐに先輩社員に質問しにいったのですが、徐々に自分で考えて解決策を探し出せるようになり、やりたいことに対して自分で考えて解決できるようになったことも大きな進歩だなと思っています。プログラミングの理解だけではなく、仕事に対する取り組み方も学ぶことができた良い経験だと思っています。

今後の現場での仕事でも、今回学んだことを活かしていきたいと思います。

研修が終わった今でも、ゲーム内のエフェクトの組み込みやノベルスクリプト作成で、今回学んだコードの書き方が役に立っているように感じます。

入社してすぐに、プログラミングの基礎を学ぶことができて本当によかったです。

お忙しい中教えていただいた先輩社員の皆様、本当にありがとうございました。

他の新卒ビジネス職の感想

image1.jpg
櫻井くん

大学で3回もプログラミングに挫折している自分としては、かなり緊張する研修でした。

実装でつまずくことも多く、先輩や同期に相談するようにしていたんですが、3時間悩んだことを先輩に相談したら5分で解決したり、実装が終わった同期に聞いたらすんなりバグが消えたり、と巻き込むことの大事さを再認識した研修でした。最終的に4度目のプログラミング挫折にはならず、楽しく研修を終えることができました。来年の新卒にも、ぜひ挑戦して欲しいです。

image3.jpg
及川くん

大学で必修科目だったプログラミングですが、得意になるどころか苦手意識がより深まってしまっただけだったので、正直今回の研修は不安なスタートでした。最初はやはり右も左もわからず、先輩方や同期に助けられてばかりでしたが、最終的には何となくプログラミングの型と感覚が身についた実感があります。納得するアウトプットが完成し、一つ苦手を乗り越えた経験にもなったのでとても充実した研修内容でした。

image8.jpg
久保くん

プログラミング研修では主にC#とUnity上の操作を学ぶことができました。実際に業務でもUnity上でバトルの調整を行うことがあり、仕組みの理解やカメラや光の操作方法などをなんとか行うことができました。また、研修によってプログラミングやUnityを学ぶ最初のハードルを乗り越えられたので、その先の知識を学ぶコストが下がったのも良かったなと思いました。