PaperSloth’s diary

Unity(C#)、UE4(Blueprint/C++)についての記事を書いたり日常のことをつぶやきます。

Lumberyard 新規プロジェクト作成方法

この記事はLumberyard Advent Calendar 2017の8日目の記事です。
Lumberyard Advent Calendar 2017 - Qiita

環境

Lumberyard 1.10.0.0
Lumberyard 1.11.1.0
Lumberyard 1.12.0.0


新規プロジェクトを作成する(Lumberyard 1.10, 1.11)

先ず新規プロジェクト作成を行うと下図のようにBuildでエラーとなってしまいます。
f:id:PaperSloth:20171202190631p:plain


とりあえずログを見てみましょう。
ログファイルは"Lumberyard\(EngineVersion)\dev\BinTempの中にあります。
lmbr_create.logというテキストファイルです。


すると、早速エラーが見つかりました。
「Lumberyard\(EngineVersion)\dev\Code\Framework\AzCore\AzCore\EBus\EBus.h:
 error C2220: 警告をエラーとして扱いました。'object' ファイルは生成されません。」
f:id:PaperSloth:20171202192136p:plain

EBus.hでエラーが出ているようですね。
C2220のエラーコードは下記を参照。
コンパイラ エラー C2220

要するに警告をエラーとして扱っているため、ビルドに失敗になるようです。


それと、もう一つ気になったのがWarning
「warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。
 データの損失を防ぐために、ファイルを Unicode 形式で保存してください。」
C4819のエラーコードは下記を参照。
コンパイラの警告 (レベル 1) C4819

直ぐに解決しそうなので、EBus.hの文字コード
Unicode(UTF-8 シグネチャ付き) - コードページ 65001」に変更します。
f:id:PaperSloth:20171206212505p:plain


一旦ここで再度新規プロジェクト作成を行ってみます。
Lumberyard1.10.0.0ではこれで作成できるようになりました!
f:id:PaperSloth:20171206212822p:plain

Projectフォルダは"Lumberyard\(EngineVersion)\dev\(ProjectName)"にあります。
Solutionファイルは"Lumberyard\(EngineVersion)\dev\Solution"にあります。


もし、この段階でもプロジェクトが作成できない場合は同様に
エラーが出たファイルをUnicode形式で保存していきます。

以前に1.11でプロジェクトを作成できないという問題がありましたが
行の終わりをWindows(CR LF)で保存していたことが原因でした。


新規プロジェクトを作成する(Lumberyard 1.12)

Empty Templateプロジェクトの場合は特に問題なく作成できると思います。
f:id:PaperSloth:20171227161348p:plain


Default Templateを指定した場合
この場合は幾つかエラーが出るので、1つずつ解決していきます。
1.10, 1.11と同様にUnicode BOM有で保存していくだけです。

エラーが出る箇所は下記の5ファイルです。
Lumberyard\1.12.0.0\dev\Gems\EMotionFX\Code\EMotionFX\Source
・AnimGraph.cpp
・MultiThreadScheduler.cpp
・MeshBuilder.cpp

Lumberyard\1.12.0.0\dev\Gems\EMotionFX\Code\EMotionFX\Rendering\Common
・FirstPersonCamera.h
・FirstPersonCamera.cpp

1.10と1.11で出ていたエラーは直っています。
EMotionFXとは1.12から追加されたLumberyardの新しいアニメーションシステムです。

また、1.12からはプロジェクトを開いて新規レベルを作成するとPerforceのError Messageが出ますが動作上は問題ありません。


新規プロジェクト作成はできましたでしょうか?
ようこそ!Lumberyardへ!