unaunagi
(unaunagi)
1
UE4のバージョン4.11、4.12、4.13で、HTML5のパッケージ化が失敗するようになっていました。
4.10だと問題は起きません。
環境はWindows10 Professional版です。
再現手順は、
- コントロールパネルのシステムから、環境変数HOMEに適当なフォルダを設定する
- FPSテンプレート(デスクトップ/ハイエンド)のプロジェクトを新規作成
- そのままHTML5を指定してパッケージ化
- .emscripten が存在しないというエラーが出て失敗
- HOMEで指定したフォルダに.emscripten というファイルが出来ている
という手順です。
一部伏せ字にしたログを添付します。
HTML5パッケージ化失敗のログ
英語で質問しているのを見つけた、この方も多分同じ原因ではないかと思います。
とりあえず環境変数HOMEを消せば100%パッケージ化に成功するようになりました。
ただ、環境変数にHOMEがないと、他のアプリを使う時に支障があるので、出来ればHOMEを残したままで上手く動くようにしたいです。
なにかいい方法はないでしょうか?
ご報告ありがとうございます。
こちらでもHOMEが存在するときにWindowsでHTML5パッケージ化に失敗する現象を確認しました。UE-36717として開発者データベースに報告しました。
調査したところ、emscriptenのshared.pyの中でCONFIG_FILE = os.path.expanduser(EM_CONFIG) としてコンフィグファイルの場所を展開していました。HOMEが存在しないときはパッケージツールが値を設定しているUSERPROFILE環境変数の値を使って展開するのですが、HOMEが存在するときはHOMEの値が優先して使われているようです。そのため予期した場所に設定ファイルが作成されない→設定ファイルがないエラーでパッケージが失敗するという現象になります。
C:\Program Files (x86)\Epic Games\4.13\Engine\Extras\ThirdPartyNotUE\emsdk\emscripten\1.35.0\tools\shared.py
C:\Program Files (x86)\Epic Games\4.12\Engine\Source\ThirdParty\HTML5\emsdk\emscripten\1.35.0\tools\shared.py
正式な修正としてはおそらくパッケージツールでの値の設定、渡し方を変更することになると思います。
ただ、現状のビルドで回避するのであればshared.pyの
CONFIG_FILE = os.path.expanduser(EM_CONFIG)
を
CONFIG_FILE = os.path.expandvars(‘${USERPROFILE}/.emscripten’)
といったようにUSERPROFILEを常に使うように変更すれば、あくまでも一時的な回避策としてですが、HOME環境変数が存在してもパッケージが成功するようにはできるのではないかと思います。
こちらの問題ですが修正が行われました。4.16に含まれる予定です。