～Ika-Action～プレイ動画行動解析【スプラトゥーン3】【Python】

## 更新履歴

> 2023.04.12 「プレイ動画のデータ収集」追記
> 2023.04.13 「データセットのフォーマット」，「データセットのアノテート」追記


## はじめに

スプラトゥーン3は，任天堂から発売予定の人気ゲームです．このゲームは，塗り合いをすることが目的のチーム対戦ゲームで，プレイヤーは様々な武器を使用しながら相手チームと戦います．今回は，スプラトゥーン3のプレイ動画から得られる情報をもとに，プレイヤーの行動解析を深層学習を使って考えてみたいと思います．


### スプラトゥーン3とは

スプラトゥーン3は，前作のスプラトゥーン2から数年後の世界を舞台にしたゲームです．プレイヤーは，インクで地面を塗りつぶしながら，相手チームよりも多くのエリアを制圧することが目的です．プレイヤーは，様々な武器を使いながら，戦略的にエリアを制圧していくことが求められます．

[スプラトゥーン3](https://splatoon.nintendo.com/)

https://splatoon.nintendo.com/

### 動画を使った行動解析～Ika-Action～の意義

スプラトゥーン3において，動画を使った行動解析は非常に重要です．プレイヤーが実際に行動している様子を見ることで，より詳細な分析が可能になります．また，動画を使った解析によって，プレイヤーの弱点や改善点を見つけることができます．これを「Ika-Action」と名付けました．

### Pythonとは

Python（パイソン）は，オープンソースの汎用プログラミング言語であり，広く使われています．Pythonは簡潔で読みやすい文法が特徴であり，初心者でも学習しやすいことから，学校教育でも利用されています．また，Pythonは様々な分野で利用されており，特にデータ分析や機械学習，Web開発などに適しています．Pythonは多くのライブラリが用意されており，これらを組み合わせることで高度な処理を行うことができます．スプラトゥーン3の動画解析においても，Pythonは非常に役立つ言語であり，多くの解析ツールがPythonで開発されています．

[Python](https://www.python.org/)

https://www.python.org/

### 深層学習とは

深層学習は，人工知能の一種であり，多層のニューラルネットワークを使用してデータを学習する手法です．この技術は，画像認識，音声認識，自然言語処理など，多くの分野で使われています．Pythonには，深層学習をサポートするライブラリがいくつかあり，有用な情報を取得するために役立ちます．


### 機械学習と深層学習の違い

機械学習は，人工知能の分野の一つであり，アルゴリズムを使用してデータを学習する手法です．一方，深層学習は，多層のニューラルネットワークを使用してデータを学習する手法です．深層学習は，より高度な機能を実現することができ，機械学習に比べてより高度な精度を実現できます．

## プレイ動画からの得られる情報

![file](http://hamaruki.xmagix.com/wp-content/uploads/2023/04/image-1681298726566.png)

プレイ動画から得られる情報は様々です．以下に，代表的な情報をいくつか挙げてみます．
### 武器の使い方

プレイヤーがどのような武器を使っているかは，動画からすぐに分かります．また，武器の使い方もわかります．例えば，どのような状況でどの武器を使うのが効果的か，どの武器を使っている場合にどのような戦略をとるべきかなどがわかります．
### 移動の仕方

スプラトゥーン3において，移動は非常に重要です．プレイ動画から，プレイヤーがどのように移動しているかを見ることができます．例えば，どのようなルートで移動するのが効果的か，どのようにジャンプして移動するのが

### タイミングの取り方

スプラトゥーン3において，行動のタイミングは非常に重要です．プレイ動画から，プレイヤーがどのようなタイミングで行動しているかを見ることができます．例えば，相手チームの攻撃を避けるためにどのようなタイミングでジャンプすればよいかなどがわかります．

### チーム戦における位置取り

スプラトゥーン3は，チーム対戦ゲームです．チーム戦においては，プレイヤーの位置取りが非常に重要です．プレイ動画から，プレイヤーがどのように位置を取っているかを見ることができます．例えば，どのような場所に立っていると有利なのか，どのように味方と協力して位置をとるべきかなどがわかります．
### ミスの原因分析

スプラトゥーン3において，プレイヤーは時々ミスをします．動画を使った行動解析によって，その原因を分析することができます．例えば，なぜ相手に撃たれてしまったのか，どうして敵の攻撃を回避できなかったのかなどがわかります．

## プレイ動画のデータ収集

![file](http://hamaruki.xmagix.com/wp-content/uploads/2023/04/image-1681298760920.png)

スプラトゥーン3のプレイ動画から，多くのデータを収集することができます．たとえば，プレイヤーの武器の使用時間，プレイヤーの動きの速度，プレイヤーの敵との戦闘時間などが収集できます．

詳しくはこちら&#x1f447;&#x1f447;&#x1f447;

https://hamaruki.xmagix.com/2023/04/12/ika-action_obs-studio/

## データセットのフォーマット

今回使用するデータセットのフォーマットはAVAデータセットにします．

### [AVAデータセット](https://research.google.com/ava/index.html)とは？

[AVAデータセット](https://research.google.com/ava/index.html)は，コンピュータービジョンの分野で，行動認識に使用されるデータセットです．このデータセットには，約80の行動カテゴリがあり，それぞれの行動に対して画像が提供されています．これらのカテゴリは，ダンス，スキー，釣り，読書，泳ぐ，走る，歩くなどの行動をカバーしています．

[AVAデータセット](https://research.google.com/ava/index.html)は，Googleが提供しているオープンソースのデータセットであり，現在最も広く使用されている行動認識のための画像データセットの一つです．

https://hamaruki.xmagix.com/2023/04/13/ava_datasets/

### フォーマット

```bash

-5KQ66BBWC4,0902,0.077,0.151,0.283,0.811,80,1
-5KQ66BBWC4,0902,0.077,0.151,0.283,0.811,9,1
-5KQ66BBWC4,0902,0.226,0.032,0.366,0.497,12,0
-5KQ66BBWC4,0902,0.226,0.032,0.366,0.497,17,0

．．．

zlVkeKC6Ha8,1798,0.568,0.312,0.953,0.926,11,215
zlVkeKC6Ha8,1798,0.568,0.312,0.953,0.926,29,215
zlVkeKC6Ha8,1798,0.568,0.312,0.953,0.926,74,215

```


このCSVファイルは，[AVAデータセット](https://research.google.com/ava/index.html)のアノテーションデータです．

各列の意味は以下の通りです：
1. video_id: YouTubeの動画ID
2. middle_frame_timestamp: 動画の開始からの中間フレームのタイムスタンプ（秒単位）
3. person_box: フレームサイズに対して正規化された左上の座標（x1，y1）と右下の座標（x2，y2）の矩形を表します．例えば，(0.0, 0.0)は左上を，(1.0, 1.0)は右下を表します．
4. action_id: アクションクラスのIDです．ava_action_list_v2.2.pbtxtを参照してください．
5. person_id: このボックスが，この動画の隣接フレームに描かれた同じ人物のボックスとリンクされるようにするための一意の整数です．




## データセットのアノテート

収集したデータは，機械学習アルゴリズムを使用して分析することができます．しかし，分析に使用する前に，データをアノテートする必要があります．アノテーションは，データセットにラベルを付けるプロセスです．スプラトゥーン3の場合，アノテーションには，プレイヤーの武器，動き，敵などが含まれます（要検討）．

使用するアノテートツールはVATICです．

### VATICとは？
VATIC（Video Annotation Tool from Irvine, California）は，画像や動画のアノテーションを行うためのオープンソースのツールです．VATICは，Amazon Mechanical Turkを統合して，タスクを自動化することができます．

AVAデータセットに近い形で出力できる点がポイントです．
これを使うことで，なるべく変換の手間を抑えつつ処理を行うことができます．

VATICの起動方法や使い方はこちら&#x1f447;&#x1f447;&#x1f447;

https://hamaruki.xmagix.com/2023/04/13/vatic-quick-start/


## 学習(Train)

アノテーションが完了したデータセットを使用して，機械学習アルゴリズムを訓練することができます．機械学習アルゴリズムを使用することで，プレイヤーの行動を予測することができます．これにより，プレイヤーがどのような戦略を使っているかを理解し，より効果的な戦略を開発することができます．

## 推論(Inference)

機械学習アルゴリズムが訓練された後，プレイ動画から得られたデータを使用して，プレイヤーの行動を推論することができます．これにより，プレイヤーがどのような戦略を使用しているかをリアルタイムで理解し，ゲームプレイを改善することができます．


## まとめ

スプラトゥーン3のプレイ動画を使った行動解析は，プレイヤーのスキルアップに大きく貢献することができます．動画を使って，タイミングの取り方や位置取りの仕方，ミスの原因分析など，プレイヤーの行動を詳細に分析することができます．また，動画を活用したトレーニングも行うことができます．プレイ動画を積極的に活用して，スプラトゥーン3でのプレイスタイルを向上させましょう．