タイトルの通りです。
Lumberyard使ってクソゲー作ってみました。
クソゲー作ってみて思ったこと、実装方法等をご紹介します。
Lumberyardって何?
- Amazonが提供しているCryEngineベースで作られたゲームエンジンです。(https://aws.amazon.com/jp/lumberyard/)
- CryEngine + twitch連携機能 + Gamelift(Photon的なやつ)連携。
- 開発環境は、windowsのみ。
- PC、PS4、Xbox One、iOS対応
- VR発表されました!ver1.3.0
- 無料です。
twitchって何?
- 個人でネット番組等を配信できるサービスです。
- 最近のゲーム大会の中継等でよく使われています。
- ニコ生、Ustreamっぽいもの。
作ったもの
今回は、Lumberyardのtwitch連携機能を使ってクソゲーを作ってみました。
FPSベースで、twitchチャットで「kill him」と打つと敵AIが出現。
twitchチャットで「help him」と打つと味方AIが出現。
使ったもの
- windows10
- Lumberyard 1.2.0beta
- CryEngine GameSDK(https://aws.amazon.com/jp/lumberyard/downloads/)
- twitchアカウントが必要。(無料で簡単に取得できます)
まず、AIを配置してみる
右のRollupBarからEntityを選択。
AI->Characters->humanを画面内にdrag
次にコピペしてAIをこんな感じで配置してみます。
FactionをGrantsからPlayersに変更します。
Grantsは敵。Playersは味方みたいな感じです。
設定終わったら画面下部のAI/Physicsを押してみましょう。
これだけだとその場から動かず、打ち合うだけです。
AIもっと仕事して!
AIをとりあえずそれっぽく動かしてみる。
ObjectsのAI->NavigationAreaでエリアを指定します。
AIの行動範囲の設定になります。
こんな感じ
画面上部のボタンを押すといい感じに設置出来ます。
クリックすると点と点を結ぶ様な形で範囲の軸を増やせます。
最後はダブルクリック。
設置終わったら、キャラクターがその範囲内に収まるように少しz軸を弄ってやるといいと思います。
AIを意図した動きにしたい場合は、TagPointとかを使って見てください。
詳細はCryEngineのdocumentを読んでください。
twitchとの連携!
twitchのアカウントを取得する必要があります。
https://www.twitch.tv/
twitch連携には、FlowGraphを使用します。
Lumberyardのパッケージ内にデフォルトで含まれているTwitchGamePlayのFlowGraphからそれっぽいものをExportして、自分のプロジェクトにimportしてください。
既にconnectとか、色々記述されてます。
今回のプロジェクトに合わせて変更しましょう。
[Enter Twitch Channel Name HERE]のInの部分に自分で作成したtwitchのチャンネル名を入力します。
Twitch:ChatPlay:KeywordのKeywordに入る文字に判定してその後の処理が行われます。
次にその言葉に反応して、特定のobjectを指定して、それを生成します。
この例では、String:SetStringのInに「Characters.Enemy.Easy_Pistol」、「Characters.Friendly.Easy_Pistol」を言葉に合わせて生成するようになっています。
GameSDKには、Easy_Pistol以外にも、Hard_Pistol、Hard_Rifleとかありますので、色々とカスタマイズしてみると面白いかもしれません。
下部のMathRandomでは、AIの生成の位置をランダムで指定しています。
AIの生成に成功すると「character created!」、失敗すると「failed」っぽい文字が出ます。
自分もプレイに参加してみた
まとめ
今回は、配信者がtwitch配信している中で、視聴者がコメントを打つことで、敵が増えたり、味方が増えたりみたいなくそげーを作ってみました。
視聴者と配信者で一体感の出るゲームとか新しいなと思った次第です。
twitchで配信するには、別途配信ソフトが必要になります。PS4だとプラットフォーム上から配信可能です。
twitch連携は無料なので、皆さんも是非何か作ってみてください。