Lumberyard

LumberyardのGem設定 初級編

かなり遅れましたが、Lumberyard Advent Calendar 2017 23日目の記事です。

LumberyardのGemを有効にしてみましょう。
今回、検証で使用したバージョンは1.12.0.1です・

Gemとは?

Gemはゲームプロジェクトを拡張するためのコードやアセットが含まれているパッケージのことを言います。

image.png

超簡単に言えば、Lumberyardのプラグインみたいなものです。

LumberyardもGemにあるアセットを有効にすることによって、VR開発、Twitch、ScriptCanvas等の機能を使うことが可能です。

Gemを有効にするには、他のゲームエンジンと比べて少し手間がかかるので、公式ドキュメントを見ながらちょっとまとめてみました。

おまけ 自作のGemについて

Gemは開発者が新規に作成することも可能のようです。

今回は触れないので興味ある人は、こちらのドキュメントの「プロジェクトコンフィギュレータ を使用して新しい gem を作成するには」「コマンドラインを使用して新しい Gem を作成するには」をお読みください。

前提条件

デフォルトのエンジン設定ではGemがそもそも使えないため、Lumberyard セットアップアシスタント で [Compile the game code] オプションを選択しておく必要があります。

image.png

上から三番目のチェックを有効にします。
Gemを利用するにあたり、Insttall required SDKで必要なSDKをすべてインストールする必要があるので、セットアップアシスタントで一括でダウンロードしましょう。

image.png

Gem有効手順

今回は既存で作成したプロジェクトに新規のGemを有効にします。

※プロジェクトの作り方はまめおさんのLumberyard 新規プロジェクト作成方法を見てください。

有効にするには、Lumberyard Project Configuratorから該当のプロジェクトのEnable Gemsをクリックします。

image.png

※今回検証用に作成したプロジェクトは「Test1」になります。

Gemを有効にする前に、あらかじめプロジェクトを右上にある「Set as default」で、デフォルト起動プロジェクトにしてください。

※これをやらないと後述の作業がすべてエラーが出力されるか、別プロジェクトにあるGem設定が反映されてしまいます。

image.png
選択自体は、使いたい機能にチェックを入れて、右上のSaveを押すだけです。
非常に簡単です。

image.png
※(REQUIRED)と赤文字で書かれているGemは必須項目なのでチェックを外さないでください。外してSaveしてしまうと最悪プロジェクトが壊れる可能性があります。

ただ、Gemを有効にしただけではプロジェクトにその機能が追加されません。
またGemによってはプロジェクト起動時にエラーが発生して開けなくなる場合があります。
そのため、プロジェクトを再ビルドする必要があります。

プロジェクト再ビルド

早速プロジェクトを再ビルドしましょう。
ビルドするにはコマンドラインが必要です。Windowsでは一応コマンドプロンプトでも行けたので、そちらのやり方を書いていきます。

※もし、ビルド時に謎のエラーが起きる場合はAWS コマンドラインインターフェイスをインストールすれば解決するかもしれません。

1.コマンドラインでdev ディレクトリに移動

デフォルトの設定でインストールしたのであれば、以下の通りコマンドを入力してください。
image.png

「cd」と入力して、エンジンをインストールしたフォルダのdevをドラッグアンドドロップするだけです。

image.png

移動完了です。

2.lmbr_waf configure実行

続いてlmbr_waf configureを実行します。
image.png

実行するとこのような感じでコマンドが走ります。

image.png

image.png

最後、finished successfullyが出れば成功です。

image.png

※ここでエラーが起きる場合、プロジェクトが別の設定になっている(削除済みのプロジェクトを対象に実行している)可能性があります。

3.lmbr_waf build_win_x64_vs2015_profile -p game実行

最後、「lmbr_waf build_win_x64_vs2015_profile -p game」と入力して実行します

image.png

※上記はVisual Studio 2015をインストールしている場合です。
※Visual Studio 2013をインストールしている場合は、「lmbr_waf build_win_x64_vs2013_profile -p game」と入力します。

このビルドが一番時間がかかるので、気長に待ちましょう。
何事もなく無事successfullyが出れば再ビルド完了です。

新規追加分のGemがプロジェクトに反映され使えるようになっています。

再ビルドのエラーについて

Lumberyardがベータ版であるせいか、いくつかのGemを有効にすると再ビルド時にエラーが出力されることがよくあります。

よくあるのが、以下の文字コードのエラーです。
image.png

上記の例ですと、AnimGraph.cppがUnicode形式以外になってるというエラーです。
該当のソースの文字コードをUnicodeに変換しましょう。

中には文字コード以外が原因でエラーを吐くGemもあります。
※元のソース(CryEngine4)の60%強を修正したとのことなので、その影響が出ている可能性は否定できません。


※追記

上記の文字コード以外のエラーは、すべてのGemを有効にした場合に発生してました。
そのためどのGemが原因なのか完全にわかっていないため、調査して問題のあるGemが分かり次第再掲させていただきます。


もしフォーラムをみて解決方法が書いていない場合は、自力で頑張ってエラー吐いているソースを修正するしかありません。
ベータ版であるためにちょっと不安定な部分もあります。

まとめ

ちょっと手間はかかりますが、Gemを利用すれば様々な機能を使うことが可能です。
もし、ベータが外れた場合、この機能がほかのエンジンでいうAsset Store的な役割をする可能性は十分あると思います。

この手間をかけずに、簡単にGemの機能を反映されてほしいなという気持ちもあるので、今後のGemに期待しています。