Edited at

LumberyardのGem設定 初級編

More than 1 year has passed since last update.

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

LumberyardのGemを有効にしてみましょう。

今回、検証で使用したバージョンは1.12.0.1です・


Gemとは?

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

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

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

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


おまけ 自作のGemについて

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

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


前提条件

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

上から三番目のチェックを有効にします。

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


Gem有効手順

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

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

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

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

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

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



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

非常に簡単です。



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

ただ、Gemを有効にしただけではプロジェクトにその機能が追加されません。

またGemによってはプロジェクト起動時にエラーが発生して開けなくなる場合があります。

そのため、プロジェクトを再ビルドする必要があります。


プロジェクト再ビルド

早速プロジェクトを再ビルドしましょう。

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

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


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

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

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

移動完了です。


2.lmbr_waf configure実行

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

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

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

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


3.lmbr_waf build_win_x64_vs2015_profile -p game実行

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

※上記はVisual Studio 2015をインストールしている場合です。

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

このビルドが一番時間がかかるので、気長に待ちましょう。

何事もなく無事successfullyが出れば再ビルド完了です。

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


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

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

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

上記の例ですと、AnimGraph.cppがUnicode形式以外になってるというエラーです。

該当のソースの文字コードをUnicodeに変換しましょう。

中には文字コード以外が原因でエラーを吐くGemもあります。

※元のソース(CryEngine4)の60%強を修正したとのことなので、その影響が出ている可能性は否定できません。


※追記

上記の文字コード以外のエラーは、すべてのGemを有効にした場合に発生してました。

そのためどのGemが原因なのか完全にわかっていないため、調査して問題のあるGemが分かり次第再掲させていただきます。


もしフォーラムをみて解決方法が書いていない場合は、自力で頑張ってエラー吐いているソースを修正するしかありません。

ベータ版であるためにちょっと不安定な部分もあります。


まとめ

ちょっと手間はかかりますが、Gemを利用すれば様々な機能を使うことが可能です。

もし、ベータが外れた場合、この機能がほかのエンジンでいうAsset Store的な役割をする可能性は十分あると思います。

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