ゲームデモのテスト中にエラーが発生しました

itch.ioでプレイするためのプロトタイプをテストしている際、このような現象に遭遇しました。ゲームのタイトル画面で「スタート」を押すとフリーズし、コマンドラインには以下のエラーが表示されました:

E 0:00:00:980 get_process_id: OS::get_process_id() は Web プラットフォームでは利用できません。
<C++ Error> メソッド/関数の実行に失敗しました。戻り値: 0
<C++ Source> platform\web\os_web.cpp:132 @ get_process_id()

HTML5 エクスポートのチュートリアルに従って設定しましたが、何も解決しませんでした。まだ公開していませんが、ブラウザの問題でしょうか?それとも見落としているものがあるのでしょうか?

あなたの環境をもう少し詳しく理解したいのです。itch.io でテストされていましたか?それとも、HTML5 エクスポートをローカルで実行するなど、別の方法でテストされていましたか?投稿の内容から itch.io が関与しているかどうか明確ではなかったため、そうお尋ねしています。もし itch.io 上で動作している場合、プロジェクトページの設定にある「SharedArrayBuffer サポート」のチェックボックスを確認してください。これを有効にしないと、ゲームの読み込み時にフリーズする可能性があります。

また、同じプロジェクトの Windows エクスポート版は正常に動作しますか?そうすれば、この問題が Web エクスポート固有のものかどうか判別できます。

プロジェクトで他の人が作成したプラグインやスクリプトを使用していますか?もし使用している場合は、それらをここにリストアップしてください。

エラー自体については、通常それだけではゲームがフリーズすることはありません。Godot はそのエラーをログに記録して処理を続行します。

わかりました、もう少し詳しく説明しますね:

最初はリモートデプロイでテストしました。ゲームはタイトル画面でEnterキーを押すまでは正常に動作していましたが、そこでフリーズしました。最初はバグだと思ったのですが、itch.ioでも試したら同じ現象が発生しました。Windowsエクスポート版でも試してみましたが、こちらは問題なく動作しました。

プラグインについて:以前はDialogicを使っていましたが、いくつかの困難があったため、数ヶ月前に削除しました。なお、カスタムスクリプトは使用していません。SharedArrayBufferについても確認してみます。これで何か変わるかどうか見てみます。

更新:コンソールを確認して状況を確認したところ、よく見るとオーディオに関連しているようです。これはリモートデプロイによって行われます。

詳細なデータありがとうございます、これでわかったかもしれません。
これは確かバスのデータが存在しているのに対応するtresが存在しない際に起きるエラーだったと思います。

下部パネルをオーディオに切り替えてres://直下に「名前をつけて保存」すれば発生しないようになるはずですがそちらで改善するか試してもらえますか?

半年前にテンプレート側を修正したため現在は起きないようになっているはずですが、古いテンプレートを使用している際に起きる可能性があるのかもしれません。

追記:マニュアルを用意しました。

「いいね!」 1

いいえ、残念ながらそれは機能しませんでした。ただし、新しいバスを追加して、それらをSFXや音楽のオーディオデータベースに配置することで解決しました。このバグが私だけなのか他の人にも起こるのかはわかりませんが、私の問題は解決できました。他に何か見つければお知らせします。

「いいね!」 1