株式会社ベリサーブの清水と申します。
表題について、導入時から結果に至るまでの流れを記事にいたしました。
よければご一読下さい。
「Playable!」は、AIQVE ONE株式会社が提供する、ゲーム QA に特化した自動テストツールスイートです。
今回は、このPlayable!を使用して、ゲームアセットの衝突判定(以下コリジョンという)が必要な場所に設定されているかをチェックしてみます。
初めに、Playable!公式サイトにも導入手順の例としてある、Unreal Engine(以下UEという)のTemplate Assetである「Third Person Template」を用いて導入をしてみました。
御覧の通り、味気のないTemplateなので、自作してみたassetでコリジョンチェックしてみました。
「Third Person Template」では、もとよりコリジョンが設定されており、有無を調べるには完成されているので、下のうにょうにょしたドアオブジェクトが抜けるように、コリジョンを無しにして導入します。
まず、コリジョンチェックをするためのマップデータをスキャンして取り込む作業から行います。
スキャンするゲームの仕様に応じて、ツールのコードを少し書き換えます。
スキャンを開始するとこんな感じになります。
その後、経路探索の事前計算結果をファイル生成します。
これまでのスキャン等は数十分かかりましたが、結果をファイル生成するというツールなので、こちらはすぐに終わりました。
マップを選択してsearch mapを押すだけ
次に、結果をプロットするためのマップ画像を用意します。
今回はUEで上から見たものをそのままスクショして使いました。
2Dのビューワがあるので、テストで用いるだけなら十分確認できます。
ここまでできれば、ついにキャラクターを自動で動かしてコリジョンチェックをします。
これまでで取得したマップのスキャンデータや動作させるプロジェクトexeを割り当てて
並列で動作するスレッドを立ち上げます。
同時進行で自動コリジョンチェックを開始です。
今回使用しているPCのスペックにより、3スレッドでテスト開始
自動動作はこんな感じで動いています。
壁にぶつかり、コリジョンが抜けていないかを調べています。
放置していると、以下の結果が得られました。
以上の結果からこのコリジョン抜けを確認することができました。
一歩踏み出すと永遠に落ちていく地点
ゲームであればバグとなります。
今回用いたマップは小規模にして行いましたが、大規模なマップとなれば、デバッグ作業に多数の人員を弄することになります。
コスト削減と高効率化に一役買うことになるツールですね。
ご一読いただきありがとうございました。