【Unity】ゲームビルドやり方|画面サイズ・WebGL設定

当サイトで紹介する商品・サービス等の外部リンクは、アフィリエイト広告を含む場合があります。
スポンサーリンク

自作したゲームを販売する上で、作品のexe化(ビルド)しなければいけません。
本記事では、ビルドする方法を分かりやすく解説します。

本記事は次の人におすすめ
  • Unityで開発したゲームを出品したい人
  • ビルドのやり方を知りたい人
  • WebGLの形式でビルドしたい人
  • ビルドしたら画面サイズがおかしくなった人
スポンサーリンク

Unityのビルドとは?

Unityにおける「ビルド」とは、開発中のゲームプロジェクトを実行可能なアプリケーションやデータに変換する作業のことです。エディタ上で動かしていたゲームを、Windows/Mac用の実行ファイルやWebブラウザで動作するデータ(WebGL)などに出力し、他のユーザーがプレイできる形にします。

Unityエディタでの再生は開発者ローカルのテストに過ぎず、完成したゲームを配布・公開するにはビルドして所定のプラットフォーム用ファイルを用意する必要があります。ビルドを行うことで、初めてUnityをインストールしていないPCでもゲームを起動できたり、Web上に公開して遊んでもらうことが可能になります。

ビルドの結果、例えばWindowsなら「.exe実行ファイルとデータフォルダ」、WebGLなら「index.htmlとUnityの生成したライブラリファイル群」など、プラットフォームごとに必要なファイル一式が出力されます。これらを配布・サーバーアップロードすることでユーザーがゲームをプレイできるようになります。

Unityでゲームをビルドする基本手順

本記事は、Unity6でのビルド方法を紹介しています。
バージョンが異なってもほとんど操作は同じです。

基本的なビルド手順は「シーンの設定 → プラットフォームの選択 → ビルドの実行」という流れになります。

ビルド手順
  • Step1
    ゲームで使うシーンを追加

  • Step2
    プラットフォーム(Windows,Mac,WebGLなど)を選ぶ
  • Step3
    ビルド

>>公式ページのビルド方法

シーン登録

初めにビルドに含めるシーンを指定します。Unityメニューから File > Build Profiles を開き、Scenes Listに現在のシーンを追加します(「Open Scene List」>「Add Open Scenes」ボタン)。複数シーンがある場合、すべて追加しましょう。

ボタンを押しても何も反応がない場合は、シーンが読み込めていません。
そこで、現在のシーンを変更してから「Add Open Scenes」ボタンを押すと認識できます。

シーンリスト番号「0」が、ゲーム起動時に最初にロードされるシーンになります。一般的にタイトルやメインメニューのシーンを先頭に置きます。ドラッグ&ドロップで順序を並び替え、一番最初に実行したいシーンがトップに来るよう設定します。

チェックボックスでビルド対象に含めるか除外するかを制御できます。不要なシーンはチェックを外すことでビルドから除外可能ですが、基本的にはリストに追加したシーンはすべて有効にしておきます。Scene移動はスクリプトで制御しないと遷移できないですが、チェックボックスで除外しておく方が無難です。

実用的なシーン切り替えを紹介しています。

プラットフォームの選択

ビルド設定ウィンドウを開きます(ショートカット: Ctrl+Shift+B)。ここでプロジェクトのビルド対象プラットフォームを設定できます。

左側カラムのPlatformsからビルドしたいターゲットプラットフォームを選びます( PC向けなら「Windows, MacOS, Linux」、Webブラウザ向けなら「WebGL」、スマホアプリなら「iOS、Android」など)。選択すると右下にビルド対象として表示され、現在のプラットフォームでない場合は「Switch Platform」ボタンが有効になります。

ビルドしたいプラットフォームを有効にする

希望するプラットフォームが一覧に表示されていない、「No module loaded」といった表示が出る場合は、そのプラットフォーム用モジュールが未インストールです。

「Install with Unity Hub」で、Unity Hubを開き、該当Unityエディターのバージョンに対し「モジュールを追加」から必要なビルドサポート(例: WebGL、Android、iOS など)をインストールしてください。モジュール追加後、Unityエディタを再起動するとプラットフォームが選択可能になります。

ビルド対象を選んだら、Switch Platformボタンをクリックしてプラットフォームを切り替えます。プラットフォーム切り替え時には必要なライブラリのインポート処理が走るため、完了するまで待ちましょう。切り替え後、選択したプラットフォーム名の右に「(Active)」と表示されます。

ビルドの実行

ビルド前に、必要に応じて右下のDevelopment Build(開発ビルド)やCompression Method(圧縮方式)などのオプションをチェックできます。開発ビルドにチェックを入れるとデバッグ情報付きでビルドされ、パフォーマンスは落ちますがデバッグに有用です。初学者の場合、基本はチェック不要で構いません。

著者の体験談
著者の体験談

項目が多すぎるので、基本そのままでOK

ビルドには、Build か Build and Runどちらかを押すと処理されます。「Build」ボタンを押すとビルド処理が始まります(完了後、出力先フォルダを開いて自分で実行ファイルを起動)。「Build and Run」を押すとビルド完了後に自動的にアプリケーション(またはエミュレータ)が起動し、実行結果をすぐ確認できます。開発中はBuild and Runが便利です。

ビルド中はUnityエディタ下部の進行バーに進捗メッセージが表示されます。スクリプトのコンパイルやシーンのデータ書き出しなど、多少時間がかかる場合がありますが完了まで待ちましょう。Consoleウィンドウにエラーが出た場合、ビルドは失敗しています。

ビルドが成功すると、指定したフォルダ内に出力物が生成されます。Windowsは実行ファイル(.exe 等)とDataフォルダ、WebGLの場合はBuildフォルダとindex.html、Androidの場合はAPKファイル等ができています。それらを実行・配置することで実際にゲームが動作するか確認できます。

出品に向けた設定

いざ、ゲームをビルドしてもタイトルがそのままだったり、よくわからないファイルが同封されているなど問題だらけです。また、ゲーム作りはプロでも1年以上は費やして完成をさせます。しかし出品の際に、スクリプトなどを保護をしないと購入者に解析されてしまうことがあります。(逆コンパイル)

このように、個人情報や作品の保護などより質の高いビルドについて解説をします。まずは、Edit >ProjectSettingを開きます(ビルド設定ウィンドウのPlayerSettingからでもOKです。)。

Playerをいじれば基本的なゲーム設定は可能です。「Resolution and Presentation」は画面サイズや比率の設定は後述します。

名前変更

ゲームの主要情報はここで変えることができます。ここはユーザーが見えるところなのでしっかりと変更することが重要です。

  • Company Name:会社名(セーブデータ格納とかでフォルダー名になる)
  • Product Name:ゲーム名(ゲームファイルの名前になる)
  • Verson:バージョン(1.2.3という命名がおすすめ。【ゲーム性】.【機能追加】.【バグ修正】)
  • Default Icon:実行ファイルのアイコン。未設定ではUnityのロゴ
  • Default Cursor:マウスカーソルの見た目変更。
  • Default Hotspot:カーソルの位置、基本的にデフォルトでOK(x,y)=(0,0)

Splash Image(ゲーム開始時の企業ロゴ)

ゲームを開始するときに企業ロゴや注意事項などが出てくる作品がありますが、Unityでも再現ができます。基本初期のままで構いませんが、いくつか変更すると良いところがありますので私が良くする設定で紹介します。

  • Splash Screen>Animation:Custom(ロゴのズームをしないように設定)
  • Logos>Show Unity Logo:なし(Unityのロゴを非表示。Unity6から無料版でもチェックを外せるように!)

Splash StyleやBackground Colorなどはそれぞれのロゴに適したものを使うと良いでしょう。

Other Settings

その他なのに最も項目が多くてめんどくさいので、変えないといけない箇所だけ紹介します。

  • Configuration>Scripting Backend:IL2CPP(スクリプト等の保護。MONOだと逆コンパイルでデータが盗まれる)

その他にも、使っていないスクリプトを削除して軽くする機能もありますが、予期せぬバグになるので省略します。

フォルダーの削除

ビルドを終えると、基本的に削除してはいけないファイルばかりですが、「BurstDebugInformation_DoNotShip」というフォルダーは削除しなければいけません。フォルダーの中身は、ビルド情報が載りますが、よく見ると自分のPC情報が記載されています。

Library: C:\Users\【username】\Desktop\UnityProject\Tile_RPG\Temp\BurstOutput\Data\Plugins\x86_64\lib_burst_generated
–platform=Windows
–backend=burst-llvm-18

Tile_RPG_BurstDebugInformation_DoNotShip/lib_burst_generated.txt

画面サイズと解像度の設定

PC向け(Standalone)ビルドでは、デフォルト設定のままだとゲーム起動時にディスプレイ全画面で表示されます。古いUnityでは起動時に解像度選択ダイアログが表示されることもありましたが、2020年以降のUnityでは初期挙動が自動でフルスクリーンとなる場合が多いです。

必要に応じて、ビルドされたゲームの画面モードや解像度を指定しましょう。

Unityエディタ上部メニューから Edit > Project Settingsを開き、左メニューから Player を選択します。その中の対象プラットフォームのResolution and Presentation セクションを展開してください。ここで画面モードや初期解像度に関する設定を変更できます。

不要なPlayer.txtが表示

AppDataフォルダーの中にPlayer.txtが生成されてしまいます。これはスクリプㇳのDebugなどを検知しますが、「Use Player Log」のチェックを外せば生成されることは無くなります。

Fullscreen Mode という設定項目があります。デフォルトでは「Fullscreen Window(全画面表示ウィンドウ)」もしくは「Exclusive Fullscreen(専用全画面)」になっています。これを 「Windowed(ウィンドウ表示)」 に変更すると、ビルド後のゲームがウィンドウモードで起動するようになります。フルスクリーンだと起動時にモニタ解像度で全面表示されますが、Windowedにすることでウィンドウ枠のある通常のウィンドウになります。

Default Screen Width(デフォルト幅)、Default Screen Height(デフォルト高さ)という項目で、ウィンドウモード時の初期画面サイズ(解像度)を指定できます。ただしこれらは Fullscreen Modeを「Windowed」にした場合のみ有効です。(フルスクリーン時はモニタ解像度に依存)。例えば幅1920×高さ1080にしたければ、それぞれ1920、1080と設定します。

Resizable Window オプションを true にすると、ユーザーがウィンドウの端をドラッグして自由にリサイズできるようになります。固定サイズで遊ばせたい場合は false に設定し、ウィンドウサイズ変更を禁止します。リサイズを許可する場合、画面比率が変わってUI配置が崩れないようCanvasの設定(UIのScale ModeやReference Resolution)にも注意が必要なので、許可しないことをおすすめします。

著者が実際にしている画面サイズ設定

私の設定では、FullScreenとWindowedモードのハイブリットにしています。

  • Fulscreen Mode:Windowed
  • Default Screen :幅1280×高さ720

このサイズにしておけば、ほとんどのユーザーのPCに納まるかと思います。

また、以下のスクリプトをゲームのタイトル画面に設置してフルスクリーンとウィンドウどちらにも対応できるようにしています。

    // ウィンドウモードに戻すときのサイズ
    [SerializeField] private int windowWidth = 1280;
    [SerializeField] private int windowHeight = 720;

    // UIボタンから呼ぶ関数
    public void ToggleFullscreen()
    {
        if (Screen.fullScreen)
        {
            // フルスクリーン → ウィンドウモード
            Screen.SetResolution(windowWidth, windowHeight, FullScreenMode.Windowed);
            Debug.Log("Switched to Windowed Mode");
        }
        else
        {
            // ウィンドウモード → フルスクリーン
            Screen.SetResolution(Display.main.systemWidth, Display.main.systemHeight, FullScreenMode.FullScreenWindow);
            Debug.Log("Switched to Fullscreen Mode");
        }
    }

WebGLビルドの方法とポイント

WebGLプラットフォームを選択すると、UnityのゲームをWebブラウザ上で実行できる形でビルドできます。HTML5/WebGL対応ゲームのビルド手順と注意点を解説します。

WebGLでビルドするには、まずUnityにWebGLビルドサポートモジュールがインストールされている必要があります。Unity Hubのインストール項目から現在使用中のUnityバージョンに対し「WebGL Build Support」を追加インストールしてください(未導入の場合、Build SettingsでWebGLプラットフォームを選ぶ際に自動で「Install with Unity Hub」というボタンが表示されます)。

Build Settings ウィンドウで Platform を「WebGL」に選択し、「Switch Platform」で切り替えます。切り替え後、「WebGL」がActiveプラットフォームになったことを確認してください。

WebGLビルド用のPlayer Settingsも確認しておきましょう。たとえば「Publishing Settings」内の Compression Format(圧縮形式)はデフォルトでは Brotli 圧縮が使われます。互換性のためGzip圧縮に変更するケースもあります(Unity公式のUnity Playや一部サーバーではBrotli未対応の場合があるため)。また Memory Size(デフォルト256MB)などWebGL固有の設定項目もありますが、必要に応じて調整します。初回は特に変更せずとも動作しますが、ビルドサイズや読み込み速度の最適化に関わる部分なので、公開時には検討するとよいでしょう。

Build and Run を使うと、ビルド完了後に自動でブラウザが起動しローカルホストでホスティングされたゲームが開きます。Buildのみ実行した場合、出力されたフォルダ(デフォルトでは Build フォルダと Template データ)が生成され、その中のindex.htmlをブラウザで開いても直接は動作しません。WebGLビルドはセキュリティ上、ファイルシステムから直接読み込めないためです。必ずBuild and Runで確認するか、簡易なローカルHTTPサーバーを立ててホスティングしてください。

WebGLのビルド結果として、index.html ファイルと Buildフォルダ(中に .jsonや.wasm、.dataファイルなどが入っています)が生成されます。これら一式をWebサーバー上に配置すれば、ユーザーはブラウザでindex.htmlにアクセスするだけでゲームをプレイできます。UnityRoom(日本国内向けのUnityゲーム投稿サイト)や itch.io, GitHub Pages などにアップロードするのも簡単です。Unity公式の Unity Play や Game Server Hosting なども選択肢になります。

WebGLビルドでは、使用できる機能にいくつか制限があります。例えばマルチスレッドやファイルシステムへのアクセス、一部プラグインは動作しません。またメモリ使用量にも注意が必要で、大きすぎるアセットはロードに時間がかかったりブラウザでメモリ不足になる場合があります。動作が重い場合はQuality設定を下げる、圧縮形式を見直す、不要なAssetを削減する等で最適化しましょう。基本的にはUnityエディタ上で問題なく動いていても、ブラウザの開発者コンソールでエラーが出ていないかを確認しつつテストを重ねることが大切です。

ビルドできない時のトラブルシューティング

ビルド実行中にエラーが発生し「Build failed」となってしまうことがあります。ここでは、「Unityでビルドができない!」となった場合によくある原因と解決策を紹介します。最終的にはエラー文をChatGPTや検索してみるとQiitaやNoteに公開しているユーザーが多いので、これらで解決しましょう。

最初にチェックすべきは、スクリプトのコンパイルエラーです。Unityではスクリプトにエラーがある状態だとビルドは実行できません。エディタ下部のConsoleウィンドウに赤いエラーメッセージが出ていないか確認し、出ている場合は内容に従ってコードを修正してください。典型的には文法ミス(セミコロンの付け忘れ等)や参照切れ、型の不一致などが原因です。コンパイルエラーはビルド以前にエディタ実行中から検知できますので、まずここをゼロにしましょう。

または、ビルド対象プラットフォームのモジュールが入っていない場合、ビルド自体が開始できません(ビルド設定でビルドボタンが押せない状態になる)。例えば「WebGL Module」や「Android Build Support」などがUnityに追加されているかを確認し、入っていなければUnity Hubからインストールします。モジュール不足が原因の場合、エラーメッセージで指摘されることもあります。「Module not loaded」「SDK not found」等のログが出たら該当モジュール/SDKの導入を行ってください。

まとめ

Unityにおけるビルド手順と設定、そしてトラブル発生時の対処法について網羅的に解説しました。

開発途中でもこまめにビルドを行う習慣を付けましょう。Unityエディタ上では正常に動いていても、ビルドすると初めて表面化する不具合は少なくありません。大きな機能追加や変更をした際はその都度ビルドして、予期せぬエラーが出ないか確認することで、後になってエラーの山に悩まされるリスクを減らせます。

バージョン管理とバックアップ: ビルド前後で問題が発生した際に備え、Git等のバージョン管理システムでプロジェクトの変更履歴を残しておくことをお勧めします。特にビルド直前に入れた変更が原因でエラーになった場合、直前のコミットに戻すことで原因の切り分けが容易になります。

ビルドエラーに直面した場合、公式マニュアルのトラブルシューティングやUnityフォーラム、Qiita記事などコミュニティの情報も積極的に参考にしましょう。特にエラーメッセージで検索すると同様のケースに遭遇した開発者の知見が見つかることが多いです。英語で検索するとフォーラムの回答がヒットする場合もあります。

ビルドが無事完了したら、実際に他のPCやデバイスで動作確認をします。画面サイズ設定や挙動が開発機と異ならないか、想定通りフルスクリーン/ウィンドウ表示になるか、WebGLなら複数のブラウザで正常動作するか、といった点をチェックしましょう。問題があれば再度Unity側の設定を調整しビルドし直します。

タイトルとURLをコピーしました