Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AI画像認識を活用したゲーム内決済処理検証の自動化

 AI画像認識を活用したゲーム内決済処理検証の自動化

CEDEC2026で発表された資料です。
https://cedec.cesa.or.jp/2026/timetable/detail/s6985894967a5d/

Avatar for gree_tech

gree_tech PRO

August 19, 2026

More Decks by gree_tech

Other Decks in Technology

Transcript

  1. 自己紹介 NAME 名前 佐々 恵 AFFILIATION 所属 株式会社WFS / Customer

    & Product Satisfaction部 / QAグループ ROLE & ACTIVITIES 主な活動  ヘブンバーンズレッド QA管理  テスト⾃動化
  2. SECTION 01 導入 1-1. 自動化対象タイトルの紹介 1-2. 自動化の概要 1-3. 決済処理検証とは 1-4.

    決済処理検証を自動化することにした背景 1-5. 技術選定 1-6. 自動化の範囲と開発の流れ
  3. 決済処理検証の目的 サムネ画像の表⽰崩れ 情報の整合性 ⽂字の途切れもチェック PFごとの価格表⽰、アイテム名称、 ©WFS Developed by WRIGHT FLYER

    STUDIOS © VISUAL ARTS/Key 説明⽂がユーザーに正しく提⽰され ているか ©WFS Developed by WRIGHT FLYER STUDIOS © VISUAL ARTS/Key
  4. 決済処理検証の目的 履歴記録の正確性 即時のアイテム付与と、 ©WFS Developed by WRIGHT FLYER STUDIOS ©

    VISUAL ARTS/Key バックエンドへの正確な 履歴情報の記録 利用履歴SS ©WFS Developed by WRIGHT FLYER STUDIOS © VISUAL ARTS/Key
  5. 決済処理検証を自動化することにした背景 ①環境の複雑性 決済処理検証のパターン 対象国‧地域 • 配信地域によって通貨が異なる ゲーム サーバー ⽇本 JP版

    • ゲームサーバーが複数ある 韓国 KR版 • 決済PFが複数ある 台湾 AP版 ⾹港 AP版 マカオ AP版 Android iOS PC (Steam) ―
  6. 決済処理検証を自動化することにした背景 ①環境の複雑性 決済処理検証のパターン 対象国‧地域 • 配信地域によって通貨が異なる ゲーム サーバー ⽇本 JP版

    • ゲームサーバーが複数ある 韓国 KR版 • 決済PFが複数ある 台湾 AP版 ⾹港 AP版 マカオ AP版 対象地域、PFの数に⽐例してコストが増える Android iOS PC (Steam) ―
  7. 技術選定 テスト自動化の手法 画像認識 スクリプト AI 特性: 画⾯からターゲット 特性: DOM構造やオブジェ 特性:

    画⾯を意味として理 画像を探して操作 クト構造のIDを指定して 解して操作 操作
  8. 技術選定 テスト自動化の手法 画像認識 スクリプト AI 特性: 画⾯からターゲット 特性: DOM構造やオブジェ 特性:

    画⾯を意味として理 画像を探して操作 クト構造のIDを指定して 解して操作 操作 ゲーム レガシーシステム
  9. 技術選定 テスト自動化の手法 画像認識 スクリプト AI 特性: 画⾯からターゲット 特性: DOM構造やオブジェ 特性:

    画⾯を意味として理 画像を探して操作 クト構造のIDを指定して 解して操作 操作 ゲーム レガシーシステム ⾃動⾞(組み込み) 銀⾏の基幹系
  10. 技術選定 テスト自動化の手法 画像認識 スクリプト AI 特性: 画⾯からターゲット 特性: DOM構造やオブジェ 特性:

    画⾯を意味として理 画像を探して操作 クト構造のIDを指定して 解して操作 操作 ゲーム レガシーシステム ⾃動⾞(組み込み) 銀⾏の基幹系 EC‧SaaS スマホアプリ
  11. 技術選定 アプリゲームの傾向 UIが刷新される頻度が高い(構造変更が多い) ©WFS Developed by WRIGHT FLYER STUDIOS ©

    VISUAL ARTS/Key ©WFS Developed by WRIGHT FLYER STUDIOS © VISUAL ARTS/Key 画像認識、スクリプトの保守コストが高くなる
  12. 技術選定 各手法の特徴 画像認識 スクリプト AI (LLM) 柔軟性 (UI変更への強さ) × 低い

    △ 普通 ◦ ⾼い アプリ側実装 ◦ 不要 × 必要 ◦ 不要 端末差異の吸収 × 不可 ◦ 可能 ◦ 可能 運⽤コスト △ 普通 ◦ 低い × ⾼い 保守コスト × ⾼い △ 普通 ◦ 低い
  13. 技術選定 各手法の特徴 画像認識 スクリプト AI (LLM) 柔軟性 (UI変更への強さ) × 低い

    △ 普通 ◦ ⾼い アプリ側実装 ◦ 不要 × 必要 ◦ 不要 端末差異の吸収 × 不可 ◦ 可能 ◦ 可能 運⽤コスト △ 普通 ◦ 低い × ⾼い 保守コスト × ⾼い △ 普通 ◦ 低い
  14. 技術選定 各手法の特徴 画像認識 スクリプト AI (LLM) 柔軟性 (UI変更への強さ) × 低い

    △ 普通 ◦ ⾼い アプリ側実装 ◦ 不要 × 必要 ◦ 不要 端末差異の吸収 × 不可 ◦ 可能 ◦ 可能 運⽤コスト △ 普通 ◦ 低い × ⾼い 保守コスト × ⾼い △ 普通 ◦ 低い
  15. 技術選定 各手法の特徴 画像認識 スクリプト AI (LLM) 柔軟性 (UI変更への強さ) × 低い

    △ 普通 ◦ ⾼い アプリ側実装 ◦ 不要 × 必要 ◦ 不要 端末差異の吸収 × 不可 ◦ 可能 ◦ 可能 運⽤コスト △ 普通 ◦ 低い × ⾼い 保守コスト × ⾼い × ⾼い ◦ 低い
  16. 技術選定 各手法の特徴 画像認識 スクリプト AI (LLM) 柔軟性 (UI変更への強さ) × 低い

    △ 普通 ◦ ⾼い アプリ側実装 ◦ 不要 × 必要 ◦ 不要 端末差異の吸収 × 不可 ◦ 可能 ◦ 可能 運⽤コスト △ 普通 ◦ 低い × ⾼い 保守コスト × ⾼い × ⾼い ◦ 低い
  17. 技術選定 各手法の特徴 画像認識 スクリプト AI (LLM) 柔軟性 (UI変更への強さ) × 低い

    △ 普通 ◦ ⾼い アプリ側実装 ◦ 不要 × 必要 ◦ 不要 端末差異の吸収 × 不可 ◦ 可能 ◦ 可能 運⽤コスト △ 普通 ◦ 低い × ⾼い 保守コスト × ⾼い × ⾼い ◦ 低い
  18. 技術選定 各手法の特徴 画像認識 スクリプト AI (LLM) 柔軟性 (UI変更への強さ) × 低い

    △ 普通 ◦ ⾼い アプリ側実装 ◦ 不要 × 必要 ◦ 不要 端末差異の吸収 × 不可 ◦ 可能 ◦ 可能 運⽤コスト △ 普通 ◦ 低い × ⾼い 保守コスト × ⾼い × ⾼い ◦ 低い
  19. 技術選定 決済検証における AI(LLM)の技術的優位性 柔軟な環境吸収 非破壊的導入 UI変更の吸収 端末の差異を吸収可能 アプリ側への実装が不要 LLMの推論に基づいた 外部操作のみで完結

    操作決定が可能 ↓ 全PFで実⾏可能 ↓ ↓ 本番環境で実⾏可能 UI変更後も実⾏可能 決済検証自動化のコア技術として AIを選択
  20. 技術選定 組み合わせ手法の特徴 スクリプト+AI(LLM) 画像認識+AI (LLM) 構造取得+テキスト 画像+テキスト 柔軟性 (UI変更への強さ) ◦

    ⾼い ◦ ⾼い アプリ側実装 × 必要 ◦ 不要 端末差異の吸収 ◦ 可能 ◦ 可能 保守コスト ◦ 低い △ 普通 運⽤コスト × ⾼い × ⾼い 全環境コード共通化 × 不可 ◦ ほぼ可能 画⾯要素検出⼿法
  21. 技術選定 組み合わせ手法の特徴 スクリプト+AI(LLM) 画像認識+AI (LLM) 構造取得+テキスト 画像+テキスト 柔軟性 (UI変更への強さ) ◦

    ⾼い ◦ ⾼い アプリ側実装 × 必要 ◦ 不要 端末差異の吸収 ◦ 可能 ◦ 可能 保守コスト ◦ 低い △ 普通 運⽤コスト × ⾼い × ⾼い 全環境コード共通化 × 不可 ◦ ほぼ可能 画⾯要素検出⼿法
  22. 技術選定 組み合わせ手法の特徴 スクリプト+AI(LLM) 画像認識+AI (LLM) 構造取得+テキスト 画像+テキスト 柔軟性 (UI変更への強さ) ◦

    ⾼い ◦ ⾼い アプリ側実装 × 必要 ◦ 不要 端末差異の吸収 ◦ 可能 ◦ 可能 保守コスト ◦ 低い △ 普通 運⽤コスト × ⾼い × ⾼い 全環境コード共通化 × 不可 ◦ ほぼ可能 画⾯要素検出⼿法
  23. 技術選定 組み合わせ手法の特徴 スクリプト+AI(LLM) 画像認識+AI (LLM) 構造取得+テキスト 画像+テキスト 柔軟性 (UI変更への強さ) ◦

    ⾼い ◦ ⾼い アプリ側実装 × 必要 ◦ 不要 端末差異の吸収 ◦ 可能 ◦ 可能 保守コスト ◦ 低い △ 普通 運⽤コスト × ⾼い × ⾼い 全環境コード共通化 × 不可 ◦ ほぼ可能 画⾯要素検出⼿法
  24. 自動化の範囲 自動化と手動の役割分担 運⽤フロー テスト 準備 ゲーム 開始 画⾯ 遷移 購⼊

    ⾃動化 ※テスト項⽬の変更なし 付与 確認 エビ デンス 保存 OKNG 判断
  25. 開発の流れ ⼯程 内容 主担当 要件定義 ⾃動化の範囲決め QA 実装 AI Agent

    開発 導⼊ 実機での動作確認 エンジニア/QA 改修 トラブル対応、改修 QA エンジニア
  26. 開発の流れ ⼯程 内容 主担当 要件定義 ⾃動化の範囲決め QA 実装 AI Agent

    開発 導⼊ 実機での動作確認 エンジニア/QA 改修 トラブル対応、改修 QA エンジニア
  27. 自己紹介 NAME 名前 伊藤⼀樹 AFFILIATION 所属 株式会社WFS/スタジオ本部/リードエンジニア ROLE & ACTIVITIES

    主な活動  サーバーサイドエンジニア  AIを活⽤したツール作成や基盤構築
  28. 自動化で実現したいフロー ゲーム 開始 ホーム 画⾯遷移 ショップ 画⾯遷移 アイテム 購⼊ 購⼊

    アイテム 確認 フロー⾃体は決定論的(同じ⼊⼒で同じ出⼒を期待)
  29. AgentNode 開始 プロンプト 注⼊ Agentic Loop 完了条件の チェック AgentNodeとは 本ワークフローの核⼼部分

    画像認識でPC操作を⾏う Gemini Live APIによるAgentic Loop(知覚→思考→⾏動)を⾏う 完了の状態 を返す
  30. AgentNode プロンプト 注⼊ 開始 Agentic Loop 完了条件の チェック User Instruction

    何をするか(このAgentの具体タスク) 例: ショップで◯◯を購⼊する System Instruction ⾏動規範 例: 出⼒形式‧制約‧画⾯定義‧利⽤可能アクション 完了の状態 を返す
  31. AgentNode 開始 プロンプト 注⼊ Agentic Loop 完了条件の チェック 完了の状態 を返す

    User Instruction スタートボタンをタップしてゲームを開始すること。 ホーム画⾯が開いたらXXボタンを押してショップ画⾯を開くこと。 System Instruction 出⼒形式、役割、画⾯定義、ゲーム内ドメイン知識 思考フィールド、選択できるアクション
  32. AgentNode 開始 プロンプト 注⼊ Agentic Loop 完了条件の チェック 完了の状態 を返す

    User Instruction スタートボタンをタップしてゲームを開始すること。 ホーム画⾯が開いたらXXボタンを押してショップ画⾯を開くこと。 System Instruction 出⼒形式、役割、画⾯定義、ゲーム内ドメイン知識 思考フィールド、選択できるアクション
  33. AgentNode 開始 プロンプト 注⼊ Agentic Loop 完了条件の チェック Agentic Loop

    知覚 • 1秒おきに画⾯のスクリーンショットを送り続ける 思考 • 与えられたタスクから何を⾏うか選択する ⾏動 • LLMが選択した⾏動を実際に⾏う 完了の状態 を返す
  34. AgentNode プロンプト 注⼊ 開始 知覚 Agentic Loop Gemini Live API

    完了条件の チェック 完了の状態 を返す 思考 - 状態 画⾯分類 ⾏動の選択理由 ⾏動選択 ⾏動 ©WFS Developed by WRIGHT FLYER STUDIOS © VISUAL ARTS/Key - クリック 待機 ショートカットキー等
  35. AgentNode プロンプト 注⼊ 開始 知覚 Agentic Loop Gemini Live API

    完了条件の チェック 完了の状態 を返す 思考 - 状態 画⾯分類 ⾏動の選択理由 ⾏動選択 ⾏動 ©WFS Developed by WRIGHT FLYER STUDIOS © VISUAL ARTS/Key - クリック 待機 ショートカットキー等
  36. AgentNode プロンプト 注⼊ 開始 知覚 Agentic Loop Gemini Live API

    完了条件の チェック 完了の状態 を返す 思考 - 状態 画⾯分類 ⾏動の選択理由 ⾏動選択 ⾏動 ©WFS Developed by WRIGHT FLYER STUDIOS © VISUAL ARTS/Key - クリック 待機 ショートカットキー等
  37. AgentNodeの知覚 プロンプト 注⼊ 開始 知覚 Agentic Loop Gemini Live API

    完了条件の チェック 完了の状態 を返す 思考 - 状態 画⾯分類 ⾏動の選択理由 ⾏動選択 ⾏動 ©WFS Developed by WRIGHT FLYER STUDIOS © VISUAL ARTS/Key - クリック 待機 ショートカットキー等
  38. AgentNodeの知覚 開始 プロンプト 注⼊ Agentic Loop 完了条件の チェック 完了の状態 を返す

    典型的なAgenticLoop このシステムのAgenticLoop ループ処理 逐次的 (知覚→思考→⾏動は順番に⾏う) ⾮同期的 (知覚と思考→⾏動は別ループ) セッション 呼び出しごとに再構築 永続的な双⽅向セッション 向いている ⽤途 静的‧離散的なUI リアルタイムに変化するUI
  39. AgentNodeの思考 開始 プロンプト 注⼊ Agentic Loop 毎ターンLLMが⽣成する構造化出⼒(JSON) - 画⾯に⾒えるものを詳細に記述 -

    画⾯分類の根拠 - 画⾯分類 - ⾏動選択の根拠 - ⾏動選択 完了条件の チェック 完了の状態 を返す
  40. AgentNodeの思考 開始 プロンプト 注⼊ Agentic Loop 完了条件の チェック 完了の状態 を返す

    毎ターンLLMが⽣成する構造化出⼒(JSON) - 画⾯に⾒えるものを詳細に記述 - 画⾯分類の根拠 - 画⾯分類 - ⾏動選択の根拠 - ⾏動選択 前から順番にトークン⽣成
  41. AgentNodeの思考 開始 プロンプト 注⼊ Agentic Loop 完了条件の チェック 毎ターンLLMが⽣成する構造化出⼒(JSON) {

    “画⾯に⾒えるものを詳細に記述”: “右下にメニューボタンがある”, “画⾯分類の根拠”: “メニューボタンが右下にあるため”, “画⾯分類”: “ホーム画⾯”, “⾏動選択の根拠”: “ホーム画⾯ではメニューボタンを押下し、ショップ画⾯を開く必要がある” “⾏動選択”: “メニューボタンを押下”, } 完了の状態 を返す
  42. AgentNodeの思考 開始 プロンプト 注⼊ Agentic Loop 完了条件の チェック 毎ターンLLMが⽣成する構造化出⼒(JSON) {

    “画⾯に⾒えるものを詳細に記述”: “右下にメニューボタンがある”, “画⾯分類の根拠”: “メニューボタンが右下にあるため”, “画⾯分類”: “ホーム画⾯”, “⾏動選択の根拠”: “ホーム画⾯ではメニューボタンを押下し、ショップ画⾯を開く必要がある” “⾏動選択”: “メニューボタンを押下”, } 完了の状態 を返す
  43. AgentNodeの行動(要素クリック ) 開始 プロンプト 注⼊ 処理フロー - ⾃然⾔語で対象指定 - 座標検出

    - クリック Agentic Loop 完了条件の チェック 完了の状態 を返す ⾃然⾔語で対象指定 メインLLM(Gemini Live API)が クリックするべき要素を ⾃然⾔語で記述 - 効いたか検証 例 緑⾊の四⾓いボタン
  44. AgentNodeの行動(要素クリック ) 開始 プロンプト 注⼊ 処理フロー Agentic Loop 完了条件の チェック

    完了の状態 を返す 座標検出ロジック - ⾃然⾔語で対象指定 1. 登録された固定座標 - 座標検出 2. OpenCVテンプレートマッチング - クリック 3. Gemini APIによる2Dバウンディン - 効いたか検証 グボックス検出
  45. AgentNodeの行動(要素クリック ) 開始 プロンプト 注⼊ 処理フロー Agentic Loop 完了条件の チェック

    完了の状態 を返す 座標検出ロジック - ⾃然⾔語で対象指定 1. 登録された固定座標 - 座標検出 2. OpenCVテンプレートマッチング - クリック 3. Gemini APIによる2Dバウンディン - 効いたか検証 グボックス検出
  46. AgentNodeの行動(要素クリック ) 開始 プロンプト 注⼊ 処理フロー Agentic Loop 完了条件の チェック

    完了の状態 を返す 座標検出ロジック - ⾃然⾔語で対象指定 1. 登録された固定座標 - 座標検出 2. OpenCVテンプレートマッチング - クリック 3. Gemini APIによる2Dバウンディン - 効いたか検証 グボックス検出
  47. AgentNodeの行動(要素クリック ) 開始 プロンプト 注⼊ 処理フロー Agentic Loop 完了条件の チェック

    完了の状態 を返す 座標検出ロジック - ⾃然⾔語で対象指定 1. 登録された固定座標 - 座標検出 2. OpenCVテンプレートマッチング - クリック 3. Gemini APIによる2Dバウンディン - 効いたか検証 グボックス検出
  48. AgentNodeの行動(要素クリック ) 開始 プロンプト 注⼊ Agentic Loop 完了条件の チェック 完了の状態

    を返す 処理フロー 画⾯検証 - ⾃然⾔語で対象指定 1. 画⾯に変化があることを期待する - 座標検出 - クリック - 効いたか検証 か?(しないならそこでOKとする) 2. OpenCVで差分検出
  49. AgentNodeの行動(要素クリック ) 開始 プロンプト 注⼊ Agentic Loop 完了条件の チェック 完了の状態

    を返す 処理フロー 画⾯検証 - ⾃然⾔語で対象指定 1. 画⾯に変化があることを期待する - 座標検出 - クリック - 効いたか検証 か?(しないならそこでOKとする) 2. OpenCVで差分検出
  50. AgentNodeの行動(要素クリック ) 開始 プロンプト 注⼊ Agentic Loop 完了条件の チェック 完了の状態

    を返す 処理フロー 画⾯検証 - ⾃然⾔語で対象指定 1. 画⾯に変化があることを期待する - 座標検出 - クリック - 効いたか検証 か?(しないならそこでOKとする) 2. OpenCVで差分検出
  51. AgentNode 開始 プロンプト 注⼊ Agentic Loop 完了条件の チェック 完了条件のチェック LLMがタスク完了を通知してきたら決定論的にチェックする

    • 画⾯の再検証とfinish条件の確認 • エビデンス(証拠スクリーンショット)の存在確認 未達なら再度Agentic Loopに処理を戻す 完了の状態 を返す
  52. AgentNode 開始 プロンプト 注⼊ 完了の状態を返す タスクの状態を成功/失敗で返す • 成功: 次のNodeに遷移 •

    失敗: ワークフローを中断 Agentic Loop 完了条件の チェック 完了の状態 を返す
  53. AgentNodeとTaskNodeの使い分け 判断軸 AgentNode TaskNode 手順の確定度 状況次第で変わる 完全に確定・毎回同じ 処理速度 遅い(ターンごとに思考 )

    早い(判断オーバーヘッドなし ) 保守コスト 低い(動的にLLMが判断) 高い 失敗許容度 探索的でリカバリ前提 確実に完遂が必要な操作
  54. AgentNodeとTaskNodeの使い分け 判断軸 AgentNode TaskNode 手順の確定度 状況次第で変わる 完全に確定・毎回同じ 処理速度 遅い(ターンごとに思考 )

    早い(判断オーバーヘッドなし ) 保守コスト 低い(動的にLLMが判断) 高い 失敗許容度 探索的でリカバリ前提 確実に完遂が必要な操作
  55. ハマりどころ 開始 プロンプト 注⼊ Agentic Loop 完了条件の チェック 完了の状態 を返す

    Gemini Live API - 接続時間が⻑くなるとセッションが切れがち - 反応がないときにこちらから「続けて」と指⽰を出す必要がある
  56. 現在の課題( 1/3) HW/インフラ面 ミラーリングアプリケーションの⻑時間接続安定性 停電‧ネットワーク障害時における物理復旧の必要性 金曜日 正常にミラーリング 接続されている状態 休日 月曜日

    物理復旧 微細な瞬 リモートでのミラー サーバールームへ赴 断やOSのスリープに リング再開が不可能 き、実機を⼿動操作 無⼈稼働 より接続が切断 して再接続