メインコンテンツまでスキップ

AIゲームプレイデバッグ

これはRazer QA Co-AIのAI検出機能です。

AIはバグのタイトル、説明、重大度の予測、ステップバイステップの再現手順を生成します。QAテスターは、任意のバグトラッカー(例:JIRA)に送信する前に、すべてを編集・レビューできます。

QAテスターはテストとプレイに集中できます。AIが「事務作業」を処理するため、テスターはバグを見るたびにフローを中断する必要がなくなります。目標は平均レポート作成時間を「数分から数秒へ」短縮することです。

AI機能は現在、ベータアクセスのみで提供されています。

AIゲームプレイデバッグ Unrealデモ

Razer QA Co-AIの使用方法を紹介するTPSゲームのアプリケーションサンプルを提供しています。 このアプリケーションサンプルは、Unreal Engineプロジェクトとコンパイル済みバージョンの両形式で提供されます。

前提条件:

  1. 有効なEnterpriseプラン付きのRazerユーザーアカウント
  2. Razer QA Co-AI Webアプリケーションへのアクセス
  3. ホストPCで実行中のRazer AI Service - ダウンロードはこちら - インストール手順はこちら
  4. ホストPCにインストール・実行されたRazer Chromaアプリ

アプリケーションサンプルをテストするには、以下の手順に従ってください:

  • ステップ1. こちらのリンクからゲームデザインドキュメントのPDFをダウンロードします。
  • ステップ2. Webアプリケーションで、Game Studio、Game Title、Genre、およびゲームデザインドキュメントを使用してプロジェクトをセットアップします。
  • ステップ3. アプリケーションで共有されたservice.confをダウンロードし、以下のパスにコピーします(既存のファイルを置き換え可能):C:\Program Files (x86)\RazerAIService\RazerAIService\
  • ステップ4. Unreal Engineプロジェクトをダウンロードして、サンプルシーンを実行し、Razer QA Co-AIモデルがゲーム用にセットアップされるよう、レベルを一度通してプレイします。
  • ステップ5. サンプルシーンを実行し、バグトラッキング、動画キャプチャ、Jira連携を用いたRazer QA Co-AIの使用を確認します。 サンプルシーンはシンプルなTPSシナリオで、TPSゲーム開発でよく見られる複数の問題が含まれています。

Unrealデモのダウンロード

Unrealデモの最新版はこちらからダウンロードできます

使用方法

  1. Microsoft Visual C++がインストールされていることを確認します。Unreal Engine 5.5.4の推奨コンパイラバージョンはv14.38-17.8です。Clangでのテストは行っていません。
  2. Razer Chromaがインストールされ、実行中であることを確認します。
  3. Razer QA Co-AIにログインします。
  4. Content/GDD/Unreal Shooter GDD.pdfのゲームデザインドキュメントを使用してゲームプロジェクトを作成し、プロジェクトのGame TitleがRazerUnrealQADemoに設定されていることを確認します。
  5. 設定ページに移動し、Razer AI Serviceをダウンロードしてインストールします。
  6. サービスの設定ファイルをダウンロードして置き換えます。
  7. QACompanionDemo.uprojectを開きます。
  8. Playを押します。
  9. 左上隅にInitSDK_SUCCESSとその他のメッセージが表示されるはずです。
  10. レベルを進めます。他のSUCCESSメッセージが表示されるはずです。バグはRazer QA Co-AI Webダッシュボードにレポートされるはずです。

Razer QA Co-AIイベント

これはデモで使用されているBlueprintと、それらのBlueprintからトリガーされるイベントの説明のリストです。イベントはSetEventName関数を使用して送信されます。
イベントは太字で、変数は{}で囲まれています。

BP_ThirdPersonGameMode

  • InitSDKは開始時に呼び出されます。
  • 初期化成功後、GameSessionStartが送信されます。
    現在、デモにはレベルが1つしかないため、InitSDKGameSessionStartはゲームモードのコンストラクタからトリガーされます。
    また、GameSessionStartPlayerSpawned;Player;{PlayerId};Room;{RoomId}のような他のイベントより前にトリガーされるようにするためでもあります。

BP_ThirdPersonCharacter

  • プレイヤーがスポーンするとPlayerSpawned;Player;{PlayerId};Room;{RoomId}が送信されます。デモレベルは4つの部屋に分かれているためRoomIdがありますが、他のゲームには当てはまらない可能性があります。
  • デモではプレイヤーのライフが1つしかなく、プレイヤーが死ぬとレベルが再開されるため、プレイヤーがスポーンする際にLevelStarted;Level;{LevelId}も送信されます。
  • CurrentLocation;Player;{PlayerId};Location;{Location}は1秒ごとに送信されます。
  • プレイヤーが武器を発射するとFiredWeapon;Player;{PlayerId};Weapon;{WeaponId};CurrentAmmo;{Ammo}が送信されます。デモではプレイヤーは1つのマガジンしか持っておらず、弾薬表示は(マガジン内の弾薬)/(最大弾薬)です。
  • プレイヤーがダメージを受けるとReceivedDamage;Player;{PlayerId};Damage;{Damage};CurrentHealth;{Health}が送信されます。
  • プレイヤーの体力が尽きるとOutOfHealth;Player;{PlayerId}が送信されます。
  • プレイヤーの時間が尽きるとOutOfTime;Player;{PlayerId}が送信されます。このデモではプレイヤーはレベルをクリアするのに時間に制約があります。
  • プレイヤーが移動を停止または開始するとIsMoving;Player;{PlayerId};MovingState;{MovingState}が送信されます。

BP_AI_002

  • 敵がスポーンするとBotSpawned;Player;{PlayerId};Room;{RoomId}イベントが送信されます。
  • 敵がダメージを受けるとReceivedDamage;Player;{PlayerId};Damage;{Damage};CurrentHealth;{Health}が送信されます。現在、敵は殺された後もダメージを受け続けるため、プレイヤーが死んだ敵を撃つと、Razer QA Co-AIでバグレポートがトリガーされます。
  • 敵の体力が尽きるとBotDead;Player;{PlayerId};CurrentRoundTimer;{TimeLeft}が送信されます。

BP_RoomCheck

  • プレイヤーが部屋に入るとEnteredLocation;Player;{PlayerId};Room;{Room}が送信されます。
  • プレイヤーが部屋から出るとLeftLocation;Player;{PlayerId};Room;{Room}が送信されます。

BP_Healthpickup

  • プレイヤーが体力を拾うとPickUpHealth;Player;{PlayerId};CurrentHealth;{Health}が送信されます。

BP_AmmoPickup

  • プレイヤーが弾薬を拾うとPickUpAmmo;Player;{PlayerId};CurrentAmmo;{Ammo}が送信されます。

BP_EnggamepickupおよびWP_Pause

  • プレイヤーがEndgameアイテムを拾ってゲームをクリアするか、ポーズメニューから終了するとGameSessionEnd;Player;{PlayerId}が送信されます。この際、まずこのイベントを送信し、短い遅延の後にUninitSDKを呼び出して、最後にゲームを終了します。
    SetEventNameUninitSDKの間に遅延がない場合、イベントは送信されません。

イベント一覧表

これらのイベントはこのデモに固有のものであり、類似していても他のゲームでは動作しない可能性があります。

イベント目的Blueprint内の場所
GameSessionStartゲームセッションの開始。他のイベントより先に送信する必要があります。特定のキャッシュされたゲーム状態がリセットされます。BP_ThirdPersonGameMode
PlayerSpawned;Player;{PlayerId};Room;{RoomId}プレイヤーがスポーンしたことを示します。{PlayerId}のキャッシュされた状態がリセットされます。BP_ThirdPersonCharacter
BotSpawned;Player;{PlayerId};Room;{RoomId}ボット/敵がスポーンしたことを示します。{PlayerId}のキャッシュされた状態がリセットされます。BP_AI_002
LevelStarted;Level;{LevelId}レベルが開始されたことを示します。{LevelId}のキャッシュされた状態がリセットされます。BP_ThirdPersonCharacter
CurrentLocation;Player;{PlayerId};Location;{Location}{PlayerId}の位置を更新します。位置はUnrealが提供する「X= Y= Z=」形式です。BP_ThirdPersonCharacter
FiredWeapon;Player;{PlayerId};Weapon;{WeaponId};CurrentAmmo;{Ammo}{PlayerId}が保持する{WeaponId}の弾薬数を更新します。BP_ThirdPersonCharacter
ReceivedDamage;Player;{PlayerId};Damage;{Damage};CurrentHealth;{Health}{PlayerId}のHPを{Health}に更新します。BP_ThirdPersonCharacter, BP_AI_002
OutOfHealth;Player;{PlayerId}{PlayerId}が死んだことを示します。BP_ThirdPersonCharacter
OutOfTime;Player;{PlayerId}{PlayerId}の時間が尽きてレベルをクリアできなかったことを示します。BP_ThirdPersonCharacter
IsMoving;Player;{PlayerId};MovingState;{MovingState}{PlayerId}が移動中かどうかを更新します。BP_ThirdPersonCharacter
BotDead;Player;{PlayerId};CurrentRoundTimer;{TimeLeft}ボット/敵{PlayerId}が死んだことを示します。残り時間を{TimeLeft}に更新します。BP_AI_002
EnteredLocation;Player;{PlayerId};Room;{Room}{PlayerId}の部屋の位置を{Room}に更新します。BP_RoomCheck
LeftLocation;Player;{PlayerId};Room;{Room}{PlayerId}の部屋の位置情報をクリアします。BP_RoomCheck
PickUpHealth;Player;{PlayerId};CurrentHealth;{Health}{PlayerId}のHPを{Health}に更新します。BP_Healthpickup
PickUpAmmo;Player;{PlayerId};CurrentAmmo;{Ammo}{PlayerId}の現在の弾薬数を{Ammo}に更新します。BP_AmmoPickup
GameSessionEnd;Player;{PlayerId}ゲームセッションの終了。BP_Enggamepickup, WP_Pause

使用パッケージ

  1. Animation Starter Pack
  2. FPS Weapon Bundle
  3. Modular SciFi Season 1 Starter Bundle

https://www.wyvrn.com
https://www.fab.com/listings/98ff449d-79db-4f54-9303-75486c4fb9d9
https://www.fab.com/listings/8aeb9c48-b404-4dcd-9e56-1d0ecedba7f5
https://www.fab.com/listings/86913335-3c75-42bf-8404-54fe9d9d7396