ゲーム開発初学者におススメしたい：Unreal Engine5で極めるゲーム開発

## はじめに

本記事は[フューチャーAdvent Calendar](https://qiita.com/advent-calendar/2023/future) 2日目の記事となります。

ゲーム好きだったら、誰もがゲーム開発に憧れますよね。自分も過去にUnityを利用してゲーム開発に取り組んだことがあります。ただ、「僕の考えた最強の面白ゲーム！」みたいな感じで、何のストーリーもなくひたすらプレイヤーが銃を撃ちまくる程度のもので、すぐに飽きちゃいました。
そんな中、弊社の渋川さん（[@shibu_jp](https://twitter.com/shibu_jp)）さんがXでこんなポストをしていたのを見かけました。

https://x.com/shibu_jp/status/1722506385903194359?s=20

> 著者の熱意とコンテンツの分厚さとおまけまで膨大なコンテンツでフルカラーみたいなやつだと「Unreal Engine 5で極めるゲーム開発」の右に出るものはない

しばらく遠ざかっていたゲーム開発ですが、「著者の熱意」と「コンテンツの分厚さ」がどんなものだろうかと、とても興味を惹かれてしまい早速Amazonでポチらせて頂きました。
そこで、本記事ではこの本をやりながら、感想を書いていこうと思います。

## TL;DR

- Unreal Engine5（UE5）でのゲーム開発をイチからプロセス踏んで学びたい人に超絶おススメ、めちゃくちゃ勉強になる
- ゲーム開発＝コードを書くイメージがあるが、本書では基本的にコードは書かないので、プログラミング知らなくても完走が可能
    - 裏を返すとある程度ゲーム開発を知っていて、主にコードを書きながら応用的なことをやりたい人には物足りないかもしれない
- 章ごとでの解説における具体例が秀逸でわかりやすい
    - 現場感のある著者の一言コメントが解説のリアルさを増している

※UE5でのゲーム開発を体験したい場合は、GPU搭載のPCで行うことを推奨します。

## 本書の構成

早速、本が届いて開封したのですが、まず厚みに熱量を感じました。
[SRE本](https://www.oreilly.co.jp/books/9784873117911/)が自分史上、最も分厚い技術本だったのですが、SRE本もびっくりの厚みでした。
これは読み応えがありそう。
![PXL_20231124_011536159.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271414/45e31a85-7a63-e210-6497-df540acbf207.jpeg)

本書は3部構成になっていて、全部で**57章**あります。**57章**です。圧倒されました。
更にプラスアルファで、巻頭付録にゲーム開発を学ぶことができるゲームブック形式の体験型ワークショップ、巻末付録に+5章ついているので実質60章超えてます。
章立ては以下の公式ページからご確認下さい。
[Unreal Engine 5で極めるゲーム開発: 目次](https://www.borndigital.co.jp/book/30360.html)

本書の最初の方に

> 全章を通じて**学生からジュニア（新卒社員）レベル**の開発者が読める難易度に仕上げたつもりです。一本のゲームを作るプロセスを経験したことがない読者のために、開発プロセスや基礎知識の説明、ワークショップにページを割きました。また、手短ではありますが、3Dゲーム開発に必要な基礎知識を身につけるための記事や参考文書なども取り上げています。

とあるように、本書ではゲーム開発の全体フローを体感することが目的であり、このプロセスが面白く感じるようであれば更に深い部分に取り組んでいきましょう、というスタンスが感じられるので、ゲーム開発の入門書としては非常にピッタリな1冊だと思います。ぜひ学生の時に出会いたかった1冊。
更に、本書は一切コードを書く必要が無いため、非エンジニアの方でもゲーム制作を体験することが可能です。

自分がUnityでゲーム制作に勤しんでいた時は、衝突判定など細かい動作の部分は基本的にC#でコードを書く必要がありました。そのため、本書もがりがりコードを書いていくんだろうなと思っていたのですが、全くコードは書く必要がありません。

### 巻頭付録

ゲーム開発未経験者を対象としてゲームブック形式の体験型ワークショップになります。さいころとペンだけ用意すれば、一人で楽しむことが可能です。
ページ中の一言コメントで開発業務における専門用語の解説もしており、ゲームをやりながら開発フローというものを知ることができます。

### 第1部：はじめに

第1部ではUE5のセットアップや基本的な操作といったチュートリアル的な内容から、ゲーム開発の現場ではどういった方法で開発が進んでいくのかなどの開発フローの解説といった内容となっております。
個人的には第5章「ゲーム制作の段階とワークフロー」の章が非常に勉強になりました。この章ではゲーム開発の現場で行われている実際のワークフローが細かく解説されており、新鮮でした。特に、所々に筆者の一言が添えられており、現場の生々しさやつらみが伝わってきます。
また自分はゲーム開発について色々と誤解していた部分が以下の様にあり、

- エンジニアが中心となって作る
    - APIの実装や動作の重たい部分での最適化などの複雑な処理の実装で重要な役割をエンジニアが担うが、ゲーム自体は1本の作品でありストーリーやコンセプト決めが非常に大事
    - 「僕の考えた最強の面白ゲーム！」みたいな個人が考える面白要素をひたすら詰め合わせた作品ではダメ
- 最初から作りこまれたアセット利用してゲームを作っていく
    - 手戻りが発生し得る段階では、球や立方体などできるだけ最小限のアセットでモックを作ってイテレーションを繰り返す

この第1部を読むことで色々と自分の考えを訂正することができました。
確かに、良いゲームだった！と感じるゲームはやっている最中の没入感とクリアした後の爽快感が半端ないです。

### 第2部：プロトタイピング

第2部からはUE5を利用してゲームを作っていきます。本書のとても良いところは実際のワークフローに沿ってゲーム制作が進んでいくところだと思います。
最初から作りこまれたアセットを利用してゲームを制作していくのではなく、まずはプロトタイピングとして無味な立方体や球など標準アセットを利用したモックの作成から始めていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271414/1d627843-3372-9a41-e700-015d4703eaab.png)

自分が趣味でやっていた際は、最初から家やビルといった作りこまれたアセットを配置して「僕が作る最強のゲームマップ」的な感じで進めていたのですが、こうやってプロトタイピングから始めていくのは（自分にとっては）新鮮で非常に合理的な進め方だなーと感じました。
また、UE5（というかゲームエンジン全般）はキーボード操作やマウス操作で覚えることが非常に多いため最初は慣れない部分が多いかもしれません。特に拡大・縮小、座標の変更を行ってたらオブジェクトが消えた！自分が今どこにいるのかわからない！なんてことが日常茶飯事だと思います。第2部では立方体を切ったり、穴を空けたりなどを繰り返すことが多いため、徐々に操作に慣れていけると思います。

キャラクターの操作やオブジェクトの動きはブループリントと呼ばれるビジュアルスクリプティングによって構築していきます。ビジュアルスクリプティングでは各種アセットのノードを繋げて、視覚的に構築していくことができるのでプログラミングをする必要がなく、非常にわかりやすいです。そのためエンジニアでなくても、キャラクターの操作などインタラクティブな部分の実装を実現することができます。また、このビジュアルスクリプティングでインタラクティブな部分の実装を誰もができることによって、エンジニアは処理の最適化などといったエンジニアにしかできない高度な実装に専念することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271414/2d41aa48-2307-3eee-e688-5876d89b88d5.png)

実はこの本を読むまでビジュアルスクリプティングの存在は知りませんでした。
UE5すげーと思ってたのですが、Unityにも結構前からあったみたいですね。知らなかった。
参照：[Unityビジュアルスクリプティング](https://unity.com/ja/features/unity-visual-scripting)

また、各ステップ毎に「通過ノ試練」という形で操作の復習が設定されています。よくある参考書だと、こういった復習用の課題はその後の工程に影響しない場合が多いので飛ばされがちですが、本書では通過ノ試練をやらないと次の工程へ進めないような構成になっています。そのため、その章でやった操作がしっかり身に付きます。復習大事。
しかもこの通過ノ試練の中には課題がメールで依頼される（実務に沿ったような）形式での課題もあります。色々な形式で課題が出すことで、読者を飽きさせない工夫が非常に良いです。

### 第3部：プリプロダクションとプロダクション

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271414/e2a50a4e-b200-b2fd-ed87-1ae9f6f2d522.png)

第2部まででプレイヤーの操作や挙動、ステージなどあらかたゲームの試作は完成します。ただ、ブロックやキューブで構成された無味乾燥なステージに同じポーズで水平移動するキャラクターや敵MOBが存在するといった状態です。そこで、この章では題名の通りゲームの完成度を上げていくための仕上げを行っていきます。
仕上げのためのプロセスには、キャラクターの物理挙動の作成やアニメーションの導入、更にライティングやマテリアルの高度化といった視覚的な完成度の向上などが含まれます。
プレイヤーが操作した動きに対してキャラクターの動きにアニメーションが付くと、一気にゲームがイキイキとしてきます。まさに息を吹き込むとはこの事で、無味乾燥でつまらなさそうに感じたゲームが急にリアルとなり、面白そう！って感じられます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271414/271e6aa1-5f4c-9e46-d499-bb2e151868b0.png)

また、マテリアルの高度化やポストプロセス、ライティングなどはこれまで全くやったことがなかったプロセスなので自分にとってはとても新鮮でした。本章でも仕上げ作業における色々な専門用語が出てくるのですが、漏らさず解説が入っており、しっかり理解することができます。

## 感想

まず声を大にして言いたいのは「めちゃくちゃ勉強になった」です。正にゲーム開発の教科書と言える存在だと思います。実際にゲームを制作されている現場での工程に沿ってゲームを作っていくので、知識ゼロの人であれば良い土台が作れると思いますし、ある程度知識がある人でも自身の見直しになると思います。何より作者の熱意が伝わってくるくらいに解説がわかりやすく、読みやすいです。弊社渋川さんがべた褒めしていた理由も納得の1冊だと思います。
また、実際にゲームをやった時に「このキャラクターはこういう作りになってるのかー」や「このマップは多分こんな感じでプロトタイピングが進められたんだろうな…」みたいなことを想像するようになり、より一層ゲームを楽しめるようになりました。特にFPSのMAP作りなんかは遮蔽物1つで戦略性が変わってしまうので、ゲームバランスを壊さないようにめちゃくちゃ試行錯誤してるんだろうなーと感じながらプレイしています。

## まとめ

ゲーム作ってみたくなりましたか？もしこの記事を読んで本が気になった方は、年明けのお供、もしくは新年のチャレンジにぜひ本を買ってゲーム制作に取り組んでみてください。特にゲーム好きの方は、ゲームの楽しみ方が増えるのでとてもおススメです。

明日は@kaedemaluさんで[かゆいところに手が届く、Terraformの書き方 (configuration_aliasesの使い方)](https://qiita.com/kaedemalu/items/d148c86f901f654f2930)です。