見出し画像

【ML-Agentsノーコードトレーナー(第五弾)】報酬を調整し、追加学習させました。【2Dシューティングゲーム】

作業内容

ML-Agentsをノーコードで体験できるアセット「ML-Agentsノーコードトレーナー」の進捗報告です。

前回構築した2Dシューティングゲーム学習用のサンプルシーン「ShooterScene」で、ボス撃破を目指し、報酬を変更して500万ステップまで追加学習させました。

具体的には、ボスへのダメージボーナスとクリアボーナスを大きく増やしました。
新規学習ではなく、前回の181万ステップ時点の学習済みモデルに対して、変更後の報酬設定で500万ステップまで追加学習させました。
その後、500万ステップ学習済みモデルに推論させました。

学習結果

前回と同様、ボスまでたどり着けたものの、残念ながら一度も撃破できませんでした。
付与報酬もあまり変わりませんでした。

今後の対策として、観測データと報酬設計の見直し、さらなる追加学習を検討しています。
また、現在の合計報酬に加えて個別の報酬を可視化する機能や、複数の環境で並列学習できる機能を実装する予定です。

本アセットについて

UnityのML-Agentsをノーコードで体験できるチュートリアル用のアセットです。
UnityのML-Agents関連パッケージのインストールと、`uv`または`venv`を使用したPython仮想環境(PyTorch、mlagentsなど)の構築をワンクリックで行えます。
学習用サンプルシーン「SeekerScene」「JumperScene」「CrowdExitScene」「ShooterScene」もワンクリックで作成できます。

SeekerSceneは、Seekerがランダムに生成されるTargetに接触することを学習するシーンです。
JumperSceneは、Jumperが障害物をジャンプで乗り越え、Targetに接触することを学習するシーンです。
CrowdExitSceneは、複数のPersonが出口前に柱のある部屋から最短で出口へ向かう行動を学習するシーンです。
ShooterSceneは、Shooterがハイスコア獲得やボス撃破を学習する、シンプルな2Dシューティングゲームのシーンです。

報酬(スコア加点ボーナス、ボスへのダメージボーナス、クリアボーナス、被弾ペナルティなど)や、その他の各種パラメータ(プレイヤーの移動速度、弾の発射頻度、ボスのHP、敵の出現頻度など)は、スライダーで簡単に調整できます。
「学習開始」ボタンを押すだけで学習が始まり、ステップごとの平均報酬を示すリアルタイムグラフを専用ウィンドウで確認できます。
学習済みモデルをワンクリックで複数の対象エージェントに一括適用し、推論させることが可能です。

今後の展望

1. ボスの撃破

ShooterSceneのAIを再度学習し、ボスの撃破を目指します。
観測データ(敵の位置や敵弾など)と報酬(回避ボーナス、画面左右の端に留まるペナルティなど)の見直しを行います。
また、学習ステップ数をさらに増やします。

2. サンプルシーンの拡充

さまざまなシチュエーションのサンプルシーンを追加していきます。

3. 個別報酬の可視化

分析を効率化するため、既存の合計報酬のリアルタイムグラフに加えて、個別の報酬を表示するリアルタイムグラフも実装します。

4. 並列学習環境の構築

学習を効率化するため、複数の環境で並列学習できる機能を実装します。

5. ツールの公開

UnityアセットストアやGitHubに公開します。

開発ツール

  • Claude Code(Claude Fable 5、Claude Opus 4.8)

  • Codex(GPT-5.5)

実行環境

  • Unity 6000.3.10f1

  • com.unity.ml-agents(4.0.2)

  • com.unity.ai.inference(2.5.0)

  • mlagents 1.1.0

  • mlagents-envs 1.1.0

  • Python 3.10.15

  • PyTorch 2.8

動画タイムライン

  • 0:00 ShooterSceneで500万ステップまで追加学習させる様子

  • 0:16 学習済みモデル(500万ステップ)に推論させる様子

  • 0:32 ボスに敗北する様子

関連URL

#ML-Agentsノーコードトレーナー
#Unity
#強化学習
#GameDev
#ShootingGame

いいなと思ったら応援しよう!