share facebook facebook twitter menu hatena pocket slack

2016.06.27 MON

Lumberyardのtwitch連携機能を使ってクソゲーを作ってみた

恩田 大輝

WRITTEN BY 恩田 大輝

タイトルの通りです。
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が出現。

↓こんな感じ
下記の様に文字を打つと

750bd726-6ed5-af6f-5ce5-bce4bfd7f89b

↓こんな感じになる。

149370fd-0536-fc8f-0291-001294c81bc1

使ったもの

まず、AIを配置してみる

右のRollupBarからEntityを選択。
AI->Characters->humanを画面内にdrag

3e021052-bafb-ed7f-0d3c-80e2768e585f

次にコピペしてAIをこんな感じで配置してみます。
FactionをGrantsからPlayersに変更します。
Grantsは敵。Playersは味方みたいな感じです。
設定終わったら画面下部のAI/Physicsを押してみましょう。

b9bd423f-43fc-0192-66d6-939f06783f5e

d07cdcf8-a691-a639-d5e6-b74b43b5cc75

これだけだとその場から動かず、打ち合うだけです。

b9439da7-01ac-72e4-e29f-32b070db07af

AIもっと仕事して!

AIをとりあえずそれっぽく動かしてみる。
ObjectsのAI->NavigationAreaでエリアを指定します。
AIの行動範囲の設定になります。

0f180e83-7bf8-ec02-f80b-8dc06b265861

こんな感じ
画面上部のボタンを押すといい感じに設置出来ます。
クリックすると点と点を結ぶ様な形で範囲の軸を増やせます。
最後はダブルクリック。
設置終わったら、キャラクターがその範囲内に収まるように少しz軸を弄ってやるといいと思います。

ec3cc430-3a71-2662-ec1e-f28a2a33337e

いい感じにやりあってる・・・。

4109b95f-bc8f-faff-c078-e2d90487dbe6

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に入る文字に判定してその後の処理が行われます。

74ed13e2-5cd4-1405-38ad-2fcef97b2d63

twitchのチャンネル名はここ。

799f86d2-cb27-95cb-2f24-c16d4be5bd71

次にその言葉に反応して、特定の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」っぽい文字が出ます。

c4e74fae-7772-33fa-f148-bdd5cdd5a0fd

あとは適当にObjectを設置して・・・・。

cb235b85-f157-baf2-6a60-6a3e033ef02f

eea1f364-caf2-bdd9-9d0a-6d685ae686ea

自分もプレイに参加してみた

結果こんな感じ。

d93264af-ed38-dfd7-92bb-9668297128bc

まとめ

今回は、配信者がtwitch配信している中で、視聴者がコメントを打つことで、敵が増えたり、味方が増えたりみたいなくそげーを作ってみました。
視聴者と配信者で一体感の出るゲームとか新しいなと思った次第です。
twitchで配信するには、別途配信ソフトが必要になります。PS4だとプラットフォーム上から配信可能です。
twitch連携は無料なので、皆さんも是非何か作ってみてください。

元記事はこちら

Lumberyardのtwitch連携機能を使ってクソゲーを作ってみた