AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

ML-Agents tennis テニスらしくなってきた

学習200万ステップぐらいでラリーが十分続くようになった
テニスらしくワンバウンドで打ち合うようになった

f:id:yasu9780:20201016170104g:plain

元のサンプルと変えた部分は、

  1. サービス位置をコートの端まで下げた(元は真ん中ぐらいで近すぎる)
  2. サーブをすぐ学習できるように、ボールの位置を下げて、ランダムな位置変化を辞めた
  3. エージェントのラケットが上がりすぎないようにした
  4. コートの端の壁を後方にさらに下げた(ワンバウンドで返すためにはエージェントがコートの外まで出れる)
  5. ネットを越して打ち返したら+0.1報酬 相手のコート内に打ち込めたらさらに+0.1報酬で、学習を速めた

今後の改良案は、

  1. 学習の状態要素に相手の位置を追加してみる
  2. Z軸方向に移動範囲を広げて三次元にする。

3次元に成功したらダブルスにしてみるのも面白そう

学習を止めて、tennis.nnをCPUのモデルに適用

f:id:yasu9780:20201016173402g:plain

互いにミスしないのでまったく点が入らない。・゚・(ノ∀`)・゚・。