Amazon Lumberyard クイックスタート #6 ゲーム・スクリプティング

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Amazon Lumberyard Quick Start

先日発表されたばかりの、 Amazon 製のゲーム開発ツール Amazon Lumberyard (以下、Lumberyard)。

本ブログでは、Amazon GameDev Tutorials で公開されている Quick Start Reference に沿って、Lumberyard に触れております。

  1. Level の作成
  2. カメラの位置の調整
  3. Lumberyard オブジェクト
  4. Terrain の作成
  5. 光源の配置
  6. ゲーム・スクリプティング (今回)

今回は最後、「ゲーム・スクリプティング」です。

ゲーム・スクリプティング

Lumberyard には「Flow Graph」という、ゲームのスクリプトをビジュアルで書くことができるツールがあります。ゲームのプレイ上のアクションとイベントの結びつけをノードベースで作ることができます。

lumberyard-scripting-12

Quick Start では「キャラクターがある領域へ出入りしたら、前回作成したライトのON/OFFを切り替える」という制御を作ります。

トリガーとなる領域の作成

まず、イベントのトリガーとなる領域を作成しましょう。

「Rollup Bar」の「Objects」タブから「Entity」をクリックします。一覧の中にある Triggers/ProximityTrigger を「Perspective Viewport」にドラッグアンドドロップします。

lumberyard-scripting-01

「ProximityTrigger」は、トリガーとすることができる領域です。領域の大きさを変更するには「Entity Properties」の中にある「DimX」及び「DimY」です。

lumberyard-scripting-02

今回は下記の設定にします。

  • DimX : 14
  • DimY : 14

次に、スクリプトを追加しましょう。ProximityTrigger オブジェクトを右クリックすると表示される「Create Flow Graph」を選択します。

lumberyard-scripting-03

「Flow Graph」の名前を決めます。今回は「MyFirstScript」とします。

lumberyard-scripting-05

作成したら、Flow Graph の編集を行いましょう。ツールバーの左から8番目のアイコンをクリックします。

lumberyard-scripting-04

「Flow Graph Editor」という画面が開きます。次のような機能があります。

lumberyard-scripting-06

  1. Main menu : Flow Graph ファイルの管理
  2. Editor toolbar : 編集の戻る/進む、ステップ、デバッグのトグル・クリアなど
  3. Component search bar : 利用可能なコンポーネントの検索
  4. Canvas view : スクリプトの構築
  5. Component list : イベント作成可能なコンポーネントの一覧
  6. Flow Graph file tree : Level で利用可能なFlow Graph ファイルへのアクセス
  7. Node properties : Node のプロパティの設定
  8. Canvas node search : Canvas view にある Node の検索
  9. Canvas node search results : Node の検索結果の一覧
  10. Debug Breakpoints : デバッグ時のブレークポイントの管理

左下のファイルツリーでは Level に存在する Flow Graph を一覧できます。今回作成したのは Level Flowgraphs/Entities/MyFirstScript を展開した中にある ProximityTrigger1 です。これを選択します。

lumberyard-scripting-07

「Canvas view」で、スクリプトの構築を行います。まずはの ProximityTrigger オブジェクトの Node を追加します。「Perspective Viewport」で先ほど追加した ProximityTrigger オブジェクトが選択されている状態で「Canvas view」を右クリックし「Add Selected Entity」を選択します。

lumberyard-scripting-08-2

entity:ProximityTrigger という Node が追加されます。

lumberyard-scripting-09

次に、光源のオブジェクトの Node を追加します。「Canvas view」でライトの光源を選択した状態で「Canvas view」を右クリックし「Add Selected Entity」を選択します。

今度は entity:Light という Node が追加されます。

lumberyard-scripting-10

Node は、入力と出力のポートを持っています。これをつなぎ合わせることで「何かが出力されたら何かに入力する」というスクリプトを作ることができます。

まず「領域に入ったらライトを点ける」というスクリプトを作ります。entity:ProximityTrigger にある Enter は「Node のオブジェクトに侵入したとき」というイベントの出力ポートです。ここから entity:LightEnable にドラッグアンドドロップします。Enable は、有効化するという入力ポートです。

lumberyard-scripting-11

次に、「領域から出たらライトを消す」というスクリプトを作ります。entity:ProximityTrigger にある Leaveentity:LightDisable までドラッグアンドドロップします。

lumberyard-scripting-12

これで完了です!

動作を確認する

ゲームモードに切り替え、動作を確認してみましょう。領域に入ったらライトが点き、領域から出たらライトが消えます。

まとめ

以上で Quick Start は終わりです。Lumberyard の面白いところをつまみ食いしていくような感じでしたが、操作がとにかく簡単 という印象を受けました。ぜひ遊んでみてください!

引き続き、いろいろ試してブログでご紹介できればと思います。

参考