LumberyardのC4819エラーを解消する件の備忘録です。
2020/01/28 現在、Amazon製ゲームエンジン Lumberyard 1.22.0.0 でインストール後、新規プロジェクトを作成しようとしてもうまくいきません。
これより前のバージョンでも同様のエラーが出ており、新バージョンが出るたびにC4819エラーを解消するのが面倒なので、手順としてまとめます。
<概要>
ビルド失敗時のエラーログは以下のようなものを想定しています。
1 2 3 |
d:\Lumberyard\1.22.0.0\dev\Code\Sandbox\Editor\MainWindow.cpp(844): warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。 データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 |
上記に描いている通り、ファイルをUnicode形式で保存しよう、と思っても該当ファイルはUTF-8の文字コードで描かれています。このファイルを『UTF-8 BOMあり(UTF-8 with BOM)』 で保存しましょう。
ただし、このファイルだけではなく他のファイルもUTF-8 with BOM に変更する必要があります。
また、変更するにあたって便利なツールも紹介します。
<手順>
- VisualStudio Code を開き、『ファイル(F)』→ 『フォルダーを開く』で
Lumberyardが保存されているディレクトリを選択する。 (e.g.) ” D:\Lumberyard\1.22.0.0 “ - [Ctrl + P] を押して、以下のファイルをどれか1つ検索する。ファイル名を入力するだけでOKです。
12345678910D:\Lumberyard\1.22.0.0\dev\Gems\EMotionFX\Code\EMotionFX\Source\MultiThreadScheduler.cppD:\Lumberyard\1.22.0.0\dev\Code\Sandbox\Editor\MainWindow.cppD:\Lumberyard\1.22.0.0\dev\Code\Sandbox\Editor\TerrainModifyTool.cppD:\Lumberyard\1.22.0.0\dev\Code\Sandbox\Editor\VegetationTool.cppD:\Lumberyard\1.22.0.0\dev\Code\Sandbox\Editor\VegetationPanel.cppD:\Lumberyard\1.22.0.0\dev\Gems\EMotionFX\Code\EMotionFX\Rendering\Common\FirstPersonCamera.cppD:\Lumberyard\1.22.0.0\dev\Gems\EMotionFX\Code\EMotionFX\Rendering\Common\FirstPersonCamera.hD:\Lumberyard\1.22.0.0\3rdParty\squish-ccr\20150601_lmbr_v2\hdrfit.cppD:\Lumberyard\1.22.0.0\3rdParty\squish-ccr\20150601_lmbr_v2\simd_sse.hD:\Lumberyard\1.22.0.0\3rdParty\PVRTexTool\2016_r1.1\Include\PVRTexture.h - VSCodeの右下の方にある UTF-8 というところを押して、
『エンコード付きで保存』(Save with Encording) を押して、「UTF-8 with BOM」 で保存する。
すると以下のように文字コードが変わります。
- 3. の手順を2. のファイルの数だけ行う。
- プロジェクトをもう一度新規作成してビルド完了を待つ。
だいぶ前のバージョンから直っていないのですが、自分のPCが悪いのでしょうか。
もしLumberyard側に問題があるのならば、基本無料で使えるゲームエンジンなので初心者が使いやすいようにこういう改修は早めに行ってほしいですね。流行れLumberyard、頑張れAmazon。