【Unity・機械学習】機械学習でお掃除ロボットを作る!ステージとプレイヤーの作成編

【Unity・機械学習】機械学習でお掃除ロボットを作る!ステージとプレイヤーの作成編

このYoutubeの動画の機械学習をやりたい!って言われたマサフィー。
マサフィーもちょうど、機械学習に興味があったので、実際に作ってみる!

前回作ったものとどのぐらい似ているか?

前回作ったものはこんなものだった!

これがどんなプログラムだったか考えてみると…
・機械学習をするのはスフィア(玉)だった!
・緑のキューブに近づくと+の報酬がもらえる!
・黒のキューブに近づくと-の報酬がもらえる!
・スフィア(玉)が落ちるとゲームリセット!

そして、今回作るものはこれ

これがどういうプログラムか考えてみると…
・学習するのはお掃除ロボット!
・お掃除ロボットはごみを拾う!
・ごみを拾った後は白いキューブを表示する!
・ごみを拾うと+の報酬がもらえる!
・壁に触れると-の報酬がもらえる!
・充電が切れると(制限時間が終わると)ゲームリセット!

 

ステージの作成とプレイヤーのプログラム

Youtubeの動画ではステージが大きかったが、大きさを少し小さくして作成。

ステージ作成時にはごみのオブジェクトはprefabとして作成しました!
(まだ完全には作ってないので、わからないですが、おそらく後々便利なはず。)

 

Yotubeの動画を見るとお掃除ロボットは動いているので、プレイヤーが動けるようにプログラムを書きます。また、ゴミを拾うとキューブのオブジェクトも同時に生成されているので、それも作ります!

他にも制限時間の設定やその他諸々ありますが、自分なりにカスタマイズして作ると面白いかも?

完成形

無事にプレイヤーを動かして、ゴミを取る機能ができたと思います。
(時間の表示するの忘れてますが、ちゃんとやりましたw)

今回はここまでで、次回、学習の設定とその次にraycastという電子工作でいう深度計のプログラムを行ってより精度の高いお掃除ロボットができればと思います!(Youtubeではraycastという関数を使って一部プログラムしていると思われます。)

memo
今回作ったファイルを置いておきます。
https://drive.google.com/file/d/1MX7ZCRfiU5On02tHcTvSSes5bVo5yh-6/view?usp=sharing

おわり