この記事はhttps://ziva.sh/blogs/godot-web-exportの日本語版です(英語の原文はZiva.shが2026年11月5日に公開)。
はじめに
GodotのゲームをWebブラウザーで遊べるようにして、リンクで共有したい人向けの記事です。次の内容を扱います。
- Godot 4.7.2でのWebエクスポートの手順と、出力されるファイルのサイズ
- 「Cross Origin Isolation」と「SharedArrayBuffer」がないというエラーの3つの直し方
- itch.io、GitHub Pages、Netlify、Cloudflare Pages、Lobsite、ZivaのShare Web buildでのリンクの共有と、各ホストの制限
Godot 4のゲームをブラウザーで動かすには、Webプリセット(シングルスレッド。Godot 4.3以降のデフォルト)でエクスポートし、フォルダーをHTTPで配信して、リンクを発行できるホストにアップロードします。ホストには、itch.io、GitHub Pagesのような静的ホスト、またはZivaを使っている場合はZivaのShare Web buildメニュー項目があります。Share Web buildは、Godotエディターの中からエクスポートとアップロードを行い、play.ziva.shのリンクを返します。
このページはZiva.shが公開しており、ZivaもZiva.shが開発しています。他のツールの情報は各ツールの公式ページをもとにした、2026年11月5日時点のものです。
このページのGodotのコマンドはすべて、2026年11月5日にLinux上のGodot 4.7.2で、公開されているStar Catcherサンプルを使って実行し(C#のテストはスクリプトが1つだけのC#プロジェクトで実行)、各ビルドをChromiumで読み込みました。Safariではテストしていません。
プレイできるリンクを得る方法
| ホスト | 価格 | 制限 | 非公開のリンク | スレッド対応のビルド |
|---|---|---|---|---|
| itch.io | itch.io:無料 | itch.io:展開後500MB、1,000ファイル、1ファイルあたり200MB | itch.io:Draftのシークレットリンク、またはパスワード付きのRestricted | itch.io:SharedArrayBuffer supportのチェックボックス |
| GitHub Pages | GitHub Pages:公開リポジトリーなら無料 | GitHub Pages:1サイトあたり1GB、帯域幅は月100GBのソフトリミット | GitHub Pages:この記事では扱わない | GitHub Pages:ドキュメントにヘッダー設定の記載なし。PWAの回避策を使う |
| Netlify | Netlify:月ごとのクレジット付きの無料プラン | Netlify Drop:「individual files over 10MB may cause your deploy to get stuck」(10MBを超える個別のファイルがあるとデプロイが止まることがある)との記載 | Netlify Drop:サイトを自分のアカウントに引き継ぐ(claim)までの一時的なパスワード | Netlify:_headersファイル |
| Cloudflare Pages | Cloudflare Pages:無料プラン | Cloudflare Pages:1ファイルあたり25MiB、20,000ファイル | Cloudflare Pages:この記事では扱わない | Cloudflare Pages:_headersファイル |
| Lobsite | Lobsite:無料、Godot 4なら年$20 | Lobsiteの無料プラン:1ファイルあたり5MB。Standard:1ファイルあたり100MB、1サイトあたり2GB | Lobsite:Standardでパスワードを設定できる | Lobsite:CLI経由のlobsite.tomlでヘッダーを設定 |
| Ziva Share Web build | Ziva:無料のHobbyを含むすべてのプラン | Ziva:圧縮後300MB | Ziva:限定公開のプレビューのみ。公開したゲームは誰でも見られる | Ziva:ヘッダーは自動で設定。Godot 4.3以降はシングルスレッド |
Godot 4.7.2のシングルスレッドのindex.wasmは、圧縮前で39,514,754バイトです。これはCloudflare Pagesの1ファイルあたり25MiBの制限と、Lobsiteの無料プランの5MBの制限を超えており、NetlifyがDropのデプロイが止まることがあるとしている10MBも超えています。そのため、無料のホストを選ぶ前に1ファイルあたりの制限を確認してください。古い回答ではいまでもGodotのゲーム向けに挙げられているGotm.ioは、すでに動いていません。ドメインの登録が切れています。
Godot 4のゲームをWeb向けにエクスポートする
- Compatibilityレンダラーを使います。Godotのドキュメントによると、Godot 4は「can only target WebGL 2.0 (using the Compatibility rendering method)」(対象にできるのはWebGL 2.0だけで、Compatibilityレンダリング方式を使う)とされています。
- Project > Exportを開き、「Add...」をクリックしてWebを選びます。
- エクスポートテンプレートがないとGodotに表示されたら、Manage Export Templatesをクリックしてダウンロードします。Linuxでは
~/.local/share/godot/export_templates/4.7.2.stable/に入ります。Godot 4.7.2のテンプレート一式はすべてのプラットフォームに対応しており、約1.2GBです。 - Variant > Thread Supportはオフのままにします。Godotのドキュメントでは、Godot 4.3以降、シングルスレッドは「the preferred and now default way to export your games on the Web」(Webでゲームをエクスポートする推奨の方法で、現在はデフォルト)とされています。
-
Export Projectをクリックし、空のフォルダーに
index.htmlとして保存します。
コマンドラインからは、export_presets.cfgにWebという名前のプリセットがある状態で次のように実行します。
godot --headless --path my-game --export-release "Web" ../build/index.html
手元のマシンでは約3秒かかり、合計39.9MBの9ファイルができました。
| ファイル | バイト数 | gzip -9 |
|---|---|---|
index.wasm |
39,514,754 | 10,084,297 |
index.js |
279,815 | 68,400 |
index.pck |
7,316 | 3,487 |
index.html、オーディオワークレット2つ、アイコン3つ |
55,307 | - |
ほとんどはエンジンです。その場でgzip圧縮するホストでは、送られるのはこのバイト数の約4分の1です。Godotのドキュメントでは、GitHub Pagesはその場でgzip圧縮するホスト、itch.ioは圧縮しないホストとして挙げられています。
4.7.2で警告なしにエクスポートできる最小限のexport_presets.cfgです。
[preset.0]
name="Web"
platform="Web"
runnable=true
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../build/index.html"
[preset.0.options]
variant/thread_support=false
include_filter、exclude_filterと、少なくとも1つのオプションがないと、エクスポート自体は成功しますが、ERROR: Couldn't find the given section "preset.0" and key "include_filter"と出力されます。
ブラウザーでビルドをテストする
index.htmlをダブルクリックしても動きません。ChromiumではGodotのロゴの上にFailed to fetchと表示され、コンソールにはindex.wasmとindex.pckについてURL scheme "file" is not supportedと出ました。代わりにフォルダーを配信します。
cd build
python3 -m http.server 8000
そのあとhttp://localhost:8000を開きます。シングルスレッドのビルドは、追加のヘッダーなしでこの単純なサーバーから動きました。コンソールにはsingle-threadedと出力され、右矢印キーを押し続けるとプレイヤーが星に触れ、スコアが1になりました。Godotのドキュメントには、実行可能なWebプリセットとテンプレートがあるときにStopとPlay Edited Sceneの間に表示され、既定のブラウザーでゲームを開くボタンの説明もあります。
「Cross Origin Isolation」と「SharedArrayBuffer」がないというエラーを直す
Thread Supportをオンにして特別なヘッダーなしで配信すると、Godot 4.7.2はロゴの上に次のエラーを表示して止まりました(Godotのドキュメントによると、Extensions Supportにも同じヘッダーが必要です)。
The following features required to run Godot projects on the Web are missing:
Cross-Origin Isolation - Check that the web server configuration sends the correct headers.
SharedArrayBuffer - Check that the web server configuration sends the correct headers.
スレッド対応のビルドはSharedArrayBufferを使いますが、ブラウザーはクロスオリジン分離されたページでしかSharedArrayBufferを許可しません。直し方は3つあり、試す順に並べると次のとおりです。
-
シングルスレッドでエクスポートする:Thread SupportとExtensions Supportをオフにして、もう一度エクスポートします。GDExtensionで必要な場合を除けば、これがいちばん簡単な直し方です。Godotのドキュメントでは、シングルスレッドのエクスポートは「more compatible overall with stores like itch.io」(itch.ioのようなストアとの互換性が全体的に高い)とされ、Webポータルについても同様とされています。
-
2つのヘッダーを送る:Godotのドキュメントには
Cross-Origin-Opener-Policy: same-originとCross-Origin-Embedder-Policy: require-corpが挙げられています。ローカルなら、次の小さなサーバーで十分です。import http.server, sys class COIHandler(http.server.SimpleHTTPRequestHandler): def end_headers(self): self.send_header("Cross-Origin-Opener-Policy", "same-origin") self.send_header("Cross-Origin-Embedder-Policy", "require-corp") super().end_headers() http.server.ThreadingHTTPServer(("127.0.0.1", int(sys.argv[1])), COIHandler).serve_forever()このサーバーを使うと、スレッド対応のビルドは
multi-threadedと出力して動きました。NetlifyとCloudflare Pagesは、同じヘッダーを_headersファイルから読み込みます。itch.ioでは、Embed options > Frame optionsの下にあるSharedArrayBuffer supportにチェックを入れます。itch.ioのお知らせでは、この機能は実験的とされています。 -
ヘッダーを設定できない場合はPWAの回避策を使う:エクスポートプリセットでProgressive Web Appを有効にし、Ensure Cross Origin Isolation Headersをオンのままにします(デフォルトでオンです)。するとService Workerがヘッダーを追加します。HTTPSかlocalhostが必要です。今回のテストでは、初回アクセス4回中4回でメッセージのない黒い画面になり、手動で1回再読み込みするとゲームが動きました。そのため、プレイテスターには1回再読み込みするよう伝えてください。
友人やプレイテスターにリンクを共有する
itch.io
- シングルスレッドでエクスポートします。
- エクスポートしたフォルダーの中身をZIPにして、
index.htmlがZIPの最上位に来るようにします。今回の9ファイルのビルドでは、10.2MBのZIPになりました。 - itch.ioで新しいプロジェクトを作り、種類をHTMLにして、ZIPをアップロードし、This file will be played in the browserにチェックを入れます。
- 埋め込みのサイズをゲームのビューポートに合わせ、スマートフォンで動くならMobile friendlyにチェックを入れます。
- プロジェクトをDraftのままにしてシークレットリンクを共有するか、公開します。
itch.ioのドキュメントによると、HTML5のZIPは最大1,000ファイル、展開後500MB、1ファイルあたり200MBまでで、Draftは「only accessible by people who can edit it, and people with the secret link」(編集できる人と、シークレットリンクを持っている人だけがアクセスできる)とされています。承認したテスターだけに見せるには、ページをRestrictedにしてパスワードを追加します。itch.ioによると、「include the password directly in the URL」(パスワードをURLに直接含める)こともできます。Godotの中からアップロードしたい場合、無料でMITライセンスのプラグインであるShipItch、Itch Exporter & Uploader、Greenlightは、itch.ioのbutlerツールを使ってエクスポートとアップロードを行います。Majordomoは、butlerでitch.ioにビルドをプッシュします。
GitHub Pages、Netlify、Cloudflare Pages
エクスポートしたフォルダーをリポジトリーにコミットしてPagesを有効にするか、フォルダーをNetlifyにドロップします。github.com向けのGitHub Pagesのドキュメントには、カスタムのレスポンスヘッダーを設定する方法が書かれていません。そのため、GitHub Pagesでは、シングルスレッドのエクスポートか、前述のPWAの回避策を使います。1ファイルあたりの制限に注意してください。Cloudflare Pagesは1ファイルを25MiBまでに制限しており、Godot 4.7.2のindex.wasmは39.5MBです。
ZivaのShare Web build:エディターからplay.ziva.shのリンクを作る
Zivaは、Godotエディターの中で動くAIアシスタントです。Zivaのチャットヘッダーにある「⋮」メニューのShare Web build項目が、エクスポートとホスティングを代わりに行います。
- Zivaは、Ziva自身のアドオンを除いたプロジェクトのコピーに対して、開発者自身のGodotエディターでGodotのWebエクスポートを実行します。プロジェクトにWebエクスポートのプリセットがなければ追加します。
- エクスポートテンプレートがない場合、Zivaは先にGodotの公式テンプレートをダウンロードします。
- Godot 4.3以降では、Zivaはシングルスレッドでエクスポートします。ただし、GDExtensionがスレッド対応のWebライブラリーしか同梱していない場合は例外で、そのときはゲームがiPhoneやSafariで動かないと警告します。シングルスレッドのテンプレートがないGodot 4.2では、ビルドはスレッド対応になります。
- Zivaがビルドを圧縮してアップロードし、試すための限定公開のプレビューリンクが発行されます。
- タイトル、説明、カバー画像を追加してApprove and publishを選ぶと、共有用のplay.ziva.shのリンクが発行されます。
2026年11月5日に、エクスポートテンプレートのない新規インストールのZivaにサインインした状態で、Star Catcherサンプルをこの方法で共有しました。Godot 4.7.2のテンプレート(1,222MB)のダウンロードには、手元の回線で約21分かかりました。テンプレートの展開、エクスポート、圧縮した9ファイル(13.5MB)のアップロードには、さらに1分もかかりませんでした。ゲームはhttps://play.ziva.sh/timely-hallway/にあり、Chromiumでサインインせずにプレイできました。
Share Web buildは、サインインしていれば無料のHobbyプランを含むすべてのZivaのプランで、圧縮後300MBまでのビルドに使えます。再ビルドしても同じリンクのままで、ゲームを削除するまでリンクの期限は切れません。チャットでZivaに公開の準備を頼むこともできます。Zivaはプレビューをビルドして掲載内容を表示し、自動承認がオンでも、承認したあとにだけ公開します。更新、削除、別のコンピューターからゲームをリンクする方法は、Share web buildsのドキュメント(英語)にあります。
Godot 4のC#プロジェクトはWebにエクスポートできる?
できません。Godot 4.7.2の.NETエディターは、スクリプトが1つだけのC#プロジェクトのエクスポートを拒否しました。
Exporting to Web is currently not supported in Godot 4 when using C#/.NET. Use Godot 3 to target Web with C#/Mono instead.
Godotのドキュメントには「Projects written in C# using Godot 4 currently cannot be exported to the web.」(Godot 4でC#を使って書かれたプロジェクトは、現在Webにエクスポートできない)とあります。追跡用のissueであるgodotengine/godot#70796は、2026年6月19日に「The foundation is evaluating solutions for C# web support.」(財団がC#のWeb対応の解決策を検討している)というコメントとともにロックされました。いまブラウザー向けのビルドを作るには、GDScriptを使うか、Godot 3とC#を使います。ZivaのShare Web buildにも同じ制限があります。
ZivaのShare Web buildにできないこと
- Zivaがアップロードできるのはplay.ziva.shだけで、itch.io、GitHub Pages、その他のホストにはアップロードしません。
- 公開したZivaのビルドは誰でも見られます。play.ziva.shに掲載され、プレイヤーが評価やコメントでき、新しいゲームはZivaのDiscordで告知されます。限定公開なのはプレビューだけです。
- Zivaには、独自ドメインやパスワード保護されたビルドの機能はありません。
- Godot 4がC#プロジェクトをWebにエクスポートできないため、ZivaもC#プロジェクトをWebにエクスポートできません。
- Share Web buildはGodot専用で、Zivaをインストールした状態のGodotエディターと、Zivaへのサインインが必要です。
- Zivaがアップロードするのは、GodotのWebエクスポートだけです。プロジェクトのフォルダーやチャットはアップロードしません。どのWebビルドでも同じですが、エクスポートにはゲームのシーンとスクリプトが含まれます。
関連記事(英語)
- Share web builds:Zivaの手順ドキュメント
- Godot online multiplayer without a server:Webエクスポートも扱っています
- How to automate playtesting in Godot
- Godot's "Exporting for the Web" docs
まとめ
- シングルスレッドのエクスポート(Godot 4.3以降のデフォルト)なら、特別なヘッダーなしで動きます。
index.htmlはダブルクリックで開くのではなく、HTTPで配信して開きます。 - スレッド対応のビルドには
Cross-Origin-Opener-PolicyとCross-Origin-Embedder-Policyの2つのヘッダーが必要です。ヘッダーを設定できないホストではPWAの回避策を使えますが、今回のテストでは初回に1回の再読み込みが必要でした。 - Godot 4.7.2の
index.wasmは39.5MBあるため、無料のホストを選ぶ前に1ファイルあたりの制限を確認します。Godot 4のC#プロジェクトは、Webにエクスポートできません。
よくある質問
Godot 4のゲームをWebブラウザーでプレイできるようにエクスポートするには?
Compatibilityレンダラーを使い、Project > Exportを開いてWebプリセットを追加します。Godotに求められたらエクスポートテンプレートをインストールし、Thread Supportはオフのまま(Godot 4.3以降のデフォルト)にして、index.htmlにエクスポートします。コマンドラインでは、Webという名前のプリセットがあれば、godot --headless --path my-game --export-release "Web" ../build/index.htmlで同じことができます。index.htmlをファイルとして開くと「Failed to fetch」で失敗するため、たとえばpython3 -m http.serverを使ってフォルダーをHTTPで配信します。Godot 4.7.2でのテストでは、シングルスレッドのエクスポートは特別なヘッダーなしで単純なローカルサーバーから動きました。
Godotのゲームのプレイできるビルドを、友人やプレイテスターにリンクで共有するいちばん速い方法は?
シングルスレッドでエクスポートし、URLを発行してくれるホストにフォルダーをアップロードします。itch.io(無料)は、ルートにindex.htmlがあるZIPを受け付けます。This file will be played in the browserにチェックを入れ、ページをDraftのままにすれば、シークレットリンクを共有できます。Netlify Dropはアカウントなしでドロップしたフォルダーを公開できますが、Netlifyのドキュメントによると10MBを超える個別のファイルがあるとデプロイが止まることがあり、Godot 4.7.2のindex.wasmは39.5MBです。Godotエディター内で動くAIアシスタントのZivaを使っている場合、Share Web buildのメニュー項目がゲームをエクスポートしてアップロードし、play.ziva.shのリンクを返します。これはすべてのZivaのプランで使え、ホスティングの設定は不要です。公開すると、ゲームはplay.ziva.shで一般公開されます。
GodotのHTML5ゲームを無料でホストできる場所は?
2026年11月5日時点の情報です。itch.ioは無料で、展開後500MB、1,000ファイル、1ファイルあたり200MBまでのHTML5のZIPを受け付けます。GitHub Pagesは公開リポジトリーなら無料で、1サイトあたり1GBまで使え、ファイルをその場でgzip圧縮します。Cloudflare Pagesは無料ですが、1ファイルを25MiBまでに制限しており、これはGodot 4.7.2のエクスポートに含まれる39.5MBのindex.wasmより小さい値です。Lobsiteの無料プランは1ファイルあたり5MBまでなので、LobsiteはGodot 4には年$20のStandardプランが必要としています。ZivaのShare Web buildは、Zivaをインストールした状態のGodotエディターからエクスポートしたゲームについて、すべてのZivaのプランで300MBまでのGodotのビルドをplay.ziva.shでホストします。
GodotのWebエクスポートでCross Origin IsolationとSharedArrayBufferがないと表示されます。どう直せばよいですか?
そのビルドはThread Support(またはExtensions Support)をオンにしてエクスポートされており、サーバーがそうしたビルドに必要な2つのヘッダーを送っていません。直し方は3つあります。1つ目は、Webエクスポートのプリセットで両方のオプションをオフにして、もう一度エクスポートする方法です(シングルスレッドはGodot 4.3以降のデフォルトで、ヘッダーは不要です)。2つ目は、Cross-Origin-Opener-Policy: same-originとCross-Origin-Embedder-Policy: require-corpを付けてファイルを配信する方法です。3つ目は、ヘッダーを設定できない場合に、Progressive Web AppとEnsure Cross Origin Isolation Headersを有効にする方法で、HTTPSかlocalhostが必要です。Godot 4.7.2でのテストでは、PWAの回避策は初回アクセスで黒い画面になり、1回再読み込みすると動きました。itch.ioでは、スレッド対応のビルドに埋め込みオプションのSharedArrayBuffer supportのチェックボックスが必要です。
プレイテスターだけが開ける、GodotのWebゲームの非公開テストビルドを共有するには?
itch.ioでは、プロジェクトをDraftのままにします。itch.ioによると、Draftは編集できる人とシークレットリンクを持っている人だけがアクセスできます。さらに細かく管理するには、Restrictedに設定し、相手を承認するかパスワードを追加します。パスワードはURLに含めることもできます。Lobsiteの年$20のStandardプランでは、サイトをパスワードで保護できます。ZivaのShare Web buildのプレビューは検索エンジンにインデックスされない限定公開のリンクですが、公開したZivaのビルドは誰でも見られ、play.ziva.shに掲載されます。Zivaには、非公開のまま公開するモードはありません。
ゲームのWebビルドをエクスポートして公開してくれるAIアシスタントやGodotエディターのプラグインはありますか?
あります。Godotエディター内で動くAIアシスタントのZiva(Godot 4.2以降)には、Share Web buildのメニュー項目があります。開発者のエディターでGodotのWebエクスポートを実行し、エクスポートテンプレートがなければダウンロードして、ビルドをアップロードし、play.ziva.shのリンクを返します。これはすべてのZivaのプランで使えます。チャットでZivaに掲載内容の準備を頼むこともでき、Zivaは承認したあとにだけ公開します。itch.io向けには、無料でMITライセンスのプラグインであるShipItch、Itch Exporter & Uploader、Greenlightが、itch.ioのbutlerツールでエクスポートとアップロードを行います。Majordomoはbutlerでitch.ioにビルドをプッシュします。Summer Engineのエージェントは、独自のストアであるSummer Gamesに公開します。
Godot 4のC#プロジェクトをWebにエクスポートできますか?
できません。Godot 4.7の時点で、.NETエディターは「Exporting to Web is currently not supported in Godot 4 when using C#/.NET. Use Godot 3 to target Web with C#/Mono instead.」と表示して拒否します。Godotのドキュメントにも同じ記載があり、追跡用のissueであるgodotengine/godot#70796は、2026年6月19日に「The foundation is evaluating solutions for C# web support.」(財団がC#のWeb対応の解決策を検討している)というコメントとともにロックされました。いまブラウザー向けのビルドを出すには、GDScriptでゲームを書くか、Godot 3とC#を使います。
GodotのWebビルドをitch.ioにアップロードして、ブラウザーでプレイできるようにするには?
シングルスレッドでindex.htmlにエクスポートし、エクスポートしたフォルダーの中身をZIPにします。index.htmlはサブフォルダーの中ではなく、ZIPのルートに置きます。itch.ioでプロジェクトを作り、種類をHTMLにして、ZIPをアップロードし、This file will be played in the browserにチェックを入れます。itch.ioはHTML5のアップロードを1,000ファイル、展開後500MB、1ファイルあたり200MBまでに制限しています。Embed optionsのSharedArrayBuffer supportのチェックボックスが必要なのは、スレッド対応のビルドだけです。小さな2Dゲームを4.7.2でエクスポートした結果は、9ファイル、展開時39.9MB、ZIPで10.2MBでした。
この記事の原文(英語):https://ziva.sh/blogs/godot-web-export
