AIゲームプレイデバッグ
これはRazer QA Co-AIのAI検出機能です。
AIはバグのタイトル、説明、重大度の予測、ステップバイステップの再現手順を生成します。QAテスターは、任意のバグトラッカー(例:JIRA)に送信する前に、すべてを編集・レビューできます。
QAテスターはテストとプレイに集中できます。AIが「事務作業」を処理するため、テスターはバグを見るたびにフローを中断する必要がなくなります。目標は平均レポート作成時間を「数分から数秒へ」短縮することです。
AI機能は現在、ベータアクセスのみで提供されています。
AIゲームプレイデバッグ Unrealデモ
Razer QA Co-AIの使用方法を紹介するTPSゲームのアプリケーションサンプルを提供しています。 このアプリケーションサンプルは、Unreal Engineプロジェクトとコンパイル済みバージョンの両形式で提供されます。
前提条件:
- 有効なEnterpriseプラン付きのRazerユーザーアカウント
- Razer QA Co-AI Webアプリケーションへのアクセス
- ホストPCで実行中のRazer AI Service - ダウンロードはこちら - インストール手順はこちら
- ホスト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デモのダウンロード
使用方法
- Microsoft Visual C++がインストールされていることを確認します。Unreal Engine 5.5.4の推奨コンパイラバージョンはv14.38-17.8です。Clangでのテストは行っていません。
- Razer Chromaがインストールされ、実行中であることを確認します。
- Razer QA Co-AIにログインします。
Content/GDD/Unreal Shooter GDD.pdfのゲームデザインドキュメントを使用してゲームプロジェクトを作成し、プロジェクトのGame TitleがRazerUnrealQADemoに設定されていることを確認します。- 設定ページに移動し、Razer AI Serviceをダウンロードしてインストールします。
- サービスの設定ファイルをダウンロードして置き換えます。
QACompanionDemo.uprojectを開きます。- Playを押します。
- 左上隅に
InitSDK_SUCCESSとその他のメッセージが表示されるはずです。 - レベルを進めます。他のSUCCESSメッセージが表示されるはずです。バグはRazer QA Co-AI Webダッシュボードにレポートされるはずです。
Razer QA Co-AIイベント
これはデモで使用されているBlueprintと、それらのBlueprintからトリガーされるイベントの説明のリストです。イベントはSetEventName関数を使用して送信されます。
イベントは太字で、変数は{}で囲まれています。
BP_ThirdPersonGameMode
InitSDKは開始時に呼び出されます。- 初期化成功後、
GameSessionStartが送信されます。
現在、デモにはレベルが1つしかないため、InitSDKとGameSessionStartはゲームモードのコンストラクタからトリガーされます。
また、GameSessionStartがPlayerSpawned;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を呼び出して、最後にゲームを終了します。
SetEventNameとUninitSDKの間に遅延がない場合、イベントは送信されません。
イベント一覧表
これらのイベントはこのデモに固有のものであり、類似していても他のゲームでは動作しない可能性があります。
| イベント | 目的 | 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 |
使用パッケージ
- Animation Starter Pack
- FPS Weapon Bundle
- 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