mieki256's diary



2023/07/28(金) [n年前の日記]

#3 [godot] Godot Engine 4.1.1の勉強中

Windows10 x64 22H2上で、Godot Engine v4.1.1 x64 を使って勉強中。以前 Godot を触ってた頃は Godot 3.x.x だったので、何か変わってたりするのかなと…。

Godot Engine 3.x で作成した HelloWorld相当のプロジェクトは、4.x 用に変換できなかったので、最初からプロジェクトを新規作成して同じものが作れそうか試してみた。以前書き残したメモを参考にして作業。

_mieki256's diary - Godot Engine で Hello World

とりあえず、Label と Button は、4.x でも存在しているようだなと…。

フォントの指定でちょっと悩んだけれど、fonts というプロパティを探してテキトーに設定したら一応反映されたように見えた。

html5エクスポートでハマった :

せっかくだから、.exe と html5 をエクスポートしてみようとしたのだけど…。

_mieki256's diary - Godot Engineでプロジェクトをエクスポート

.exe は問題無くエクスポートできたし、実行することもできたけど、html5 のエクスポートで問題発生。

Python 3.10.10 を使って、python -m http.server と打ってローカルWebサーバを起動して、http://localhost:8000/ に Firefox 115.0.2 でアクセスして .html ファイルを開いてみたのだけど、エラーが表示されて実行できない。

ググってみたら以下の記事に遭遇。

_[Godot] Godot4.0のWebエクスポートしたゲームがエラーで動かない!(Cross Origin Isolation、SharedArrayBuffer) | WorkToolSmith

Godot 4.x から、エクスポートした html5 の実行時に、Cross Origin Isolation、SharedArrayBuffer なるものが必要になったらしい…。python -m http.server で立ち上がるローカルWebサーバはあくまで簡易サーバなので、そこまではサポートしていない、ということなのだろう。

これがもし、Webサーバが Apache等であれば、.htaccess に以下を追記することで解決するらしいのだけど。残念ながら、自分の手元のWindows環境では Apache を動かしていない…。
Header set Cross-Origin-Embedder-Policy "require-corp"
Header set Cross-Origin-Opener-Policy "same-origin"

それぞれ、略称として COEP、COOP と呼ばれてるようだなと…。

さておき。Godot でエクスポートした html5 の動作確認のために Apache を新規導入するというのもちょっとヘビーな作業のような気もする。Pythonだけでどうにかならんかとググっていたら、以下のスクリプト、server-cross-origin.py に遭遇。

_Local HTTP server with COEP+COOP enabled for SharedArrayBuffer - GitHub

これは使えそうな気がする…。.pck もファイルの種類を指定しないといけないので、extensions_map = { } に、.pck の記述も追加した。

    extensions_map = {
        '': 'application/octet-stream',
        '.css':	'text/css',
        '.html': 'text/html',
        '.jpg': 'image/jpg',
        '.js':	'application/x-javascript',
        '.json': 'application/json',
        '.manifest': 'text/cache-manifest',
        '.png': 'image/png',
        '.wasm':	'application/wasm',
        '.xml': 'application/xml',
        '.pck': 'application/octet-stream',
    }

python server-cross-origin.py で動かしてみたところ、ローカルWebサーバが起動した。http://localhost:8000/ にアクセスして .html を開いたところ、Godot 4.1.1 でエクスポートした html5 を実行することができた。助かった。ありがたや。

ちなみに、Webサーバが Apache で、Godot からエクスポートした html5 を置きたい場合、.htaccess に以下も書いておいたほうがいいのかもしれない。
AddType application/octet-stream pck
AddType application/wasm wasm

Header set Cross-Origin-Embedder-Policy "require-corp"
Header set Cross-Origin-Opener-Policy "same-origin"

以上です。

過去ログ表示

Prev - 2023/07 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project