目次

はじめに
本書で使っているUnityのバージョン
完成プロジェクトのリポジトリー
不具合の報告先
表記関係について
免責事項
第1章 プロジェクトの開き方と動作確認
1.1 Voxelorer Birdひよこ編とは
1.2 Unityのバージョン
1.3 Gitのインストール
1.4 プロジェクトのダウンロードと開き方
1.5 ゲームの始め方
1.6 操作方法
1.7 テストランナー
1.8 プロジェクトの開き方と動作確認のまとめ
第2章 設計を学ぶ前に
2.1 YAGNIの原則
2.2 DRY原則
2.3 KISSの原則
2.4 本書や本プロジェクトの設計に宿るYAGNIの原則
第3章 企画構想書
3.1 企画の概要
3.2 企画の狙い
3.3 ゲーム画面サムネイル
3.4 ストーリー
3.5 世界観イメージ
3.6 操作方法
3.7 ルール
3.8 面白い場面の具体例
3.9 ゲームのプロット
3.10 試遊版のプロット
3.11 企画概要書の要点
3.12 企画構想書のまとめ
第4章 状態とオブジェクトを洗い出す
4.1 状態遷移図
4.2 起動状態の仕様
4.3 タイトル状態の仕様
4.4 ゲーム状態の仕様
4.5 その他の状態
4.6 状態遷移図と各状態の流れのまとめ
第5章 ブロック関連の要求定義
5.1 ブロックに関連するもの
5.2 ゲームの中断データからの復帰
5.3 操作とアクション
5.4 プレイヤーのアクション
5.5 UndoやRedoによる履歴機能
5.6 行ける場所の探索:ルートシステム
5.7 ブロックの機能
5.8 ブロックの要求のまとめ
第6章 ブロックの要件定義
6.1 地面ブロックの検討
6.2 草ブロックの検討
6.3 岩ブロックの検討
6.4 砂ブロックの検討
6.5 氷ブロックの検討
6.6 氷床ブロックの検討
6.7 ステージの壁や底の検討
6.8 ブロックの要件定義のまとめ
第7章 クラスとインターフェースの定義
7.1 作業前の準備
7.2 機能を整理する
7.3 ゲームオブジェクトとコンポーネントの設定
7.4 ルート関連のクラス
7.5 自分が滑るかどうかを表すインターフェース
7.6 氷床ブロックを滑らせるためのクラス
7.7 履歴の再生
7.8 ブロックの移動のためのインターフェースやクラス
7.9 押された後の状態と落下状態
7.10 砂ブロックのためのクラス
7.11 残りの要件
7.12 クラス図について
7.13 クラスとインターフェースの定義のまとめ
第8章 ブロックの実装の解説
8.1 作業順
8.2 地面ブロックの作成
8.3 岩ブロックの作成
8.4 氷床ブロックの作成
8.5 押せないブロックまとめ
8.6 押せるブロックの親クラスの実装
8.7 押されたあとのブロックの処理状態クラスの実装
8.8 落下状態クラスの実装
8.9 草ブロックの作成
8.10 氷ブロックの作成
8.11 砂ブロックの作成
8.12 押せるブロックまとめ
8.13 ブロックの実装の解説まとめ
第9章 さいごに
付録A オブジェクト指向プログラミングざっくり入門
A.1 オブジェクト指向とは
A.2 オブジェクト指向プログラミングの基本原則
A.3 オブジェクト指向ざっくりまとめ
付録B SOLID原則ざっくり入門
B.1 SOLID原則とは
B.2 単一責任の原則 Single-responsibility principle
B.3 開放閉鎖の原則 Open / closed principle
B.4 リスコフの置換原則 Liskov substitution principle
B.5 インターフェース分離の原則 Interface segregation principle
B.6 依存関係逆転の原則 Dependency inversion principle
B.7 SOLID原則のまとめ
付録C 参考資料
C.1 本書の前にマスターしておきたい本
C.2 本書と前後して読むとよい本
C.3 本書のあとで読むとよい本
C.4 ゲームプランナーの実践的な知見を得られる本
C.5 画面のデザインや簡単な作図を学べる本

はじめに

 近年は、優秀な入門者向けの書籍やWebのチュートリアルがたくさんあります。書いてあることを実践すればゲームを作ることができます。そのまま自分で考えたオリジナルのゲームを作れるようになる人もいます。しかし、書籍のとおりのゲームは作れたものの自分で考えたゲームを作る方法がわからない、という人もいることでしょう。本書はそのような人に向けて執筆しました。

 ゲームの企画から完成させるまでの流れが知りたい、他の人の開発事例を知りたい、設計の練習台になる企画案や要件が欲しいという方にも役立つと考えています。

 本書では、オリジナルのパズルゲームに登場する6つのブロックの開発事例を紹介します。企画を思いついてから形にするまでの流れと作業内容を切れ目なくお示しして、アイディアを形にするまでの流れや作業量の把握と、設計を学ぶための経験の足しにしていただくことが狙いです。

 手取り足取り操作を指示して手を動かしてみましょう、という内容ではありません。また、お手本や正解を示すものでもありません。開発手法や考え方の一例を示すものです。使えるものがあれば取り入れて、違和感があるものは改良の題材にするなどして、自由にご活用いただければ幸いです。

 本書を購入したけどまだ一本もゲームを完成させたことがないしUnityの使い方も怪しいという方には、ネコ本と呼ばれている次の書籍の最新版をおススメします。

 北村愛実. Unityの教科書 Unity 2023完全対応版. SBクリエイティブ. 2023年

 ネコ本には初心者に必要なあらゆる情報が詰まっています。熟読して掲載されているゲームをすべて完成させて、自分なりに改造をすれば大きな力になります。

 本書がお役に立てば幸いです。本書の出版に関わってくださった方々、そして本書をお手に取って下さった方々に深く感謝いたします。

 本書の元となる同人誌初版は、2023年11月に開催された技術書典15で発行されました。同人誌では諸々の都合(主に印刷代)で細かい補足や設計に関する章を削除しました。本書を出す機会をいただけたことでそれらを復活させて、付録を充実させることができました。この機会をいただいたことに感謝いたします。

たなかゆう

2024/3

本書で使っているUnityのバージョン

 Unity2022.3.10f1 / Windows10

完成プロジェクトのリポジトリー

 https://github.com/am1tanaka/VBirdHiyoko/

不具合の報告先

 不具合を見つけたら、GitHubのIssuesからご報告いただけると助かります。

 https://github.com/am1tanaka/VBirdHiyoko/issues

表記関係について

 本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。会社名、製品名については、本文中では©、®、™マークなどは表示していません。

免責事項

 本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。

第1章 プロジェクトの開き方と動作確認

Voxelorer Birdひよこ編のUnityプロジェクトをダウンロードして、開いて遊んでみましょう。また、テストを実行して動作を確認します。

1.1 Voxelorer Birdひよこ編とは

 「ボクセル(Voxel)の世界を探検(Explorer)する鳥(Bird)」でVoxelorer Birdです。ブロックを押してゴールまでの道を作るパズルゲームです。

図1.1: VoxelorerBirdひよこ編

 2018年9月に開催されたUnity1週間ゲームジャム1「あつい」に投稿した溶岩番2が元祖です。名前のとおり、基本的なルールや遊び方は倉庫番3がモデルで、クリア条件が変わっています。深く考えずに作ったので、溶岩の何を番してるのか自分でもわかってませんf^^;その年の秋に当選していたデジゲー博へ出展するために、設定などを再構築した企画がVoxelorer Birdです。

 広告を掲載する方向で開発を進めていましたが、規約表示のわずらわしさや低年齢層向けの公開の難しさが気になっていました。ふと、アプリはプロジェクトごと無料で公開して、解説本を販売することが思い浮かびました。それが本書とひよこ編です。

 本プロジェクトに含まれているリソースやソースコードはCC04やSIL Open Font License5、MIT Licenseなどの再配布や改変、販売が可能なものです。これらを土台にして読者の皆様がご自身のストーリーやキャラクター、仕掛けを盛り込んだゲームを完成させて販売できます。著者自身もストーリーや仕掛けを大量に盛り込んだ有料版を開発する予定です。ゲームの「ひよこ」のプロジェクトという訳です。

1.2 Unityのバージョン

 Unity2022LTS以降が対象です。本書はWindows10上で動作するUnity2022.3.10f1での操作を収録しています。

1.3 Gitのインストール

 GitHubから自家製パッケージをインストールするために、Gitのコマンドラインツールが必要です。インストールされているかの確認とインストールの簡単な手順です。

 1.スタートメニューをクリックして、cmdと入力してコマンド プロンプトを起動します

 2.コマンドラインにgit --versionと入力して、Enterキーを押します

 gitのバージョンが表示されたら、インストールされているので先に進んでください。図1.2のようなメッセージが表示されたら、インストールされていないのでインストールします。

図1.2: gitがインストールされていないときのエラー

 1.Webブラウザーでhttps://git-scm.com/を開きます

 2.ページが開いたらDownloadsをクリックします

 3.Downloadsと書いてある下に並んでいるOSから使用しているものをクリックします

 4.Click here to downloadのリンクをクリックしてインストーラーをダウンロードします

 5.ダウンロードしたインストーラーを起動します

 6.表示される項目はすべてデフォルトのままでインストールを完了します

 先に開いたコマンドプロンプトを閉じてから開き直してください。git --versionと入力してEnterキーを押して、バージョンが表示されたらインストール完了です。

1.4 プロジェクトのダウンロードと開き方

 Voxelorer Birdひよこ編のUnityプロジェクトはGitHubで公開しています。

 Gitを使える方は任意の場所にクローンしてください。以下はGitを使っていない人向けの簡易な入手方法です。

 1.Webブラウザーでhttps://github.com/am1tanaka/VBirdHiyokoを開きます

 2.緑色のCodeボタンをクリックして、Download ZIPをクリックします

 3.VBirdHiyoko-main.zipがダウンロードできたら、Unityプロジェクトを置きたいフォルダーへ移動します

 4.VBirdHiyoko-main.zipを展開します

 5.Unity Hubを起動します

 6.展開したVBirdHiyoko-mainフォルダーを開きます

 Unity2022LTS以降であれば開けるはずです。違うバージョンで開くときには、変換してよいかを確認するダイアログが表示されるので、変換して開いてください。

1.5 ゲームの始め方

 このプロジェクトはSystemシーンから起動します。

 1.ProjectウィンドウからAssets > AM1 > VBirdHiyoko > Scenesの順にフォルダーを開きます

 2.Systemシーンをダブルクリックして開きます

 はじめて起動するときは、TextMesh Proのアセットのインポートが必要です。EssentialsとExamples & Extrasのふたつのアセットをインポートします。

 1.Import TMP Essentialsのボタンをクリックします

 2.インポートが完了したら、Import TMP Examples & Extrasボタンが押せるようになります。クリックして追加アセットもインポートします

 3.インポートが完了したらインポートダイアログを閉じます

 Systemシーンが開いたら、Playをクリックしてください。ゲームが始まります。

1.6 操作方法

 マウスかタッチスクリーンで操作します。行きたい場所をクリックやタップすると移動します。ブロックを押したいときは、動かしたいブロックの隣に行ってからそのブロックをクリックかタップします。

 遊び方はゲーム内でセリフ表示します。とりあえず遊んでクリアしてみてください!

1.7 テストランナー

 クリアできたでしょうか。テストランナーを実行するとエンディングが表示されるので、ネタバレが嫌な方は先にクリアしてください。

 1人で開発しているとテストプレイが大変です。ブロックの細かい振る舞いを確認したり、タイミングのチェックをしたり、修正した箇所が他の部分に悪影響を与えていないかなど、手動で試していたら面倒で仕方がありません。そこで、Unityに組み込まれているテストランナーで簡単なテストを用意しています。次の手順で試してみてください。

 1.UnityのWindowメニューからGeneral > Test Runner を選択します

 2.Test Runnerダイアログが表示されたら、上にあるPlayModeボタンをクリックします

 3.Run Allをクリックします

 これでテストが始まります。シーンの切り替えや内部処理、ブロックを押す処理、履歴システムなどを実行していきます。問題がなければ、すべてのテスト項目に緑色のチェックが表示されます(図1.3)。

図1.3: テスト成功

1.7.1 不具合を見つけたら

 不具合を見つけたら、GitHubのIssuesからご報告いただけると助かります。

 https://github.com/am1tanaka/VBirdHiyoko/issues

1.8 プロジェクトの開き方と動作確認のまとめ

 プロジェクトをGitHubからダウンロードしてUnityで開きました。起動シーンであるSystemシーンを開いてPlayすると遊ぶことができます。もちろんビルドもできます。最後にテストランナーで自動テストを実行しました。

 ゲームをエディター上で遊びながらHierarchyウィンドウを観察すれば、ゲームの構造を知ることができます。本プロジェクトはSystemシーンが常駐して、複数のシーンを読み込んで動作するマルチシーン構成です。

 実行したゲームが今回の本で解説したいゴールです。このゴールにたどり着くまでに作成した資料や考えたこと、コードの中身について解説をしていきます。

1. unityroom. Unity1週間ゲームジャム. https://unityroom.com/unity1weeks

2. unityroom. 溶岩番. https://unityroom.com/games/yoganban

3. 倉庫番. https://sokoban.jp

4. creative commons JAPAN. https://creativecommons.jp/sciencecommons/aboutcc0/

5. 一般社団法人オープンソース・グループ・ジャパン. SIL Open Font License. https://licenses.opensource.jp/OFL-1.1/OFL-1.1.html

試し読みはここまでです。
この続きは、製品版でお楽しみください。