学生向けプログラミング入門

学生向けにプログラミングを解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

unity | スマホゲームアプリを作成する その16 | AIのカートを走らせる

<<前  [TOP]  次>>


コンピュータが自動で操縦するカートを追加します。


メインシーンに今度は「Player」ではなく「MLAgent」プレハブを選択します。
このプレハブをシーンにドラッグします。
マッスルカーの場合:Assets> AddOns> MgKarting_Muscle>Prefabs > Muscle_MLAgent

MLAgent
MLAgent



このスクリプトは、MLAgentToolkitの推論エンジンを実行します。
Kart MLAgentを使用するには、「KartAcademy」スクリプトを利用します。


「Create」 > 「Create Empty」をクリックして新しい空のゲームオブジェクトを作成します。

空のゲームオブジェクトを作成
空のゲームオブジェクトを作成



空のGameObjectの名前を「KartAcademy」に変更します。

名前を「KartAcademy」に変更
名前を「KartAcademy」に変更



「KartAcademy」インスペクターの「コンポーネントの追加」をクリックします。

コンポーネントの追加
コンポーネントの追加



「KartAcademy」を検索し、「KartAcademy」スクリプトを選択します。

KartAcademyスクリプト追加
KartAcademyスクリプト追加



AIのカートにはどこに行くかを指示するためのチェックポイントが必要です。
シーン内に新しい空のゲームオブジェクトを作成します。
階層上部の「+」をクリックし、「3D Object」> 「Cube」を選択します。

3DObject &gt; Cube
3DObject > Cube



Cubeゲームオブジェクトの名前を「AICheckpoints」に変更します。

Cubeオブジェクトの名前変更
Cubeオブジェクトの名前変更



「AICheckpoints」インスペクターの右上にある[Layer]ドロップダウンを使用してそのレイヤーをTrainingCheckpointsに変更します。

レイヤーを変更
レイヤーを変更



「Box Collider」の「Is Trigger」にチェックを入れてください。

Is Triggerにチェックを入れる
Is Triggerにチェックを入れる



「AICheckpoint」を移動ツールで、回転、拡大縮小して、トラックの幅に合わせます。

「AICheckpoint」をトラックの幅に合わせる
「AICheckpoint」をトラックの幅に合わせる



「AICheckpoint」を複製して、トラックのさらに下に移動します。

「AICheckpoint」を複製
「AICheckpoint」を複製



この手順を繰り返して、トラック全体に「AIチェックポイント」を追加します。
チェックポイントはAIカートが通過する順番に置いていく必要があります。

「AIチェックポイント」を追加
「AIチェックポイント」を追加



「AICheckpoints」をAIカートに割り当てます
追加したMLAgentプレハブ「Muscle_MLAgent」を選択します。

Muscle_MLAgentを選択
Muscle_MLAgentを選択



「Muscle_MLAgent」のインスペクターでKartAgentコンポーネントを探し、Checkpoint > Collidersフィールドを展開します。

Checkpoint &gt; Collidersフィールドを展開
Checkpoint > Collidersフィールドを展開



コライダー配列のサイズを0に設定します。

コライダー配列のサイズを0
コライダー配列のサイズを0



右上隅のロックボタンをクリックして 、インスペクターをロックします。

インスペクターをロック
インスペクターをロック



階層の「AICheckpoint 」を選択し、Shiftキーを押しながら最後の「AICheckpoint」を選択してすべてのチェックポイントを一度に選択します。

「AICheckpoint 」全てを選択
「AICheckpoint 」全てを選択



選択したすべての「AICheckpoints」を「 Colliders」フィールドにドラッグします。

「 Colliders」フィールドにドラッグ
「 Colliders」フィールドにドラッグ



「Muscle_MLAgent」インスペクターのロックを解除します。

「Muscle_MLAgent」ロックを解除
「Muscle_MLAgent」ロックを解除



「AICheckpoint 」インスペクターの全てでMeshRendererをオフにします。

MeshRendererをオフ
MeshRendererをオフ



これでAIカートが自動で走り続けることになります。


カート同士の衝突を追加する場合は、物理マトリックスでカートの衝突が許可されていることを確認します。
上部メニューバーでEdit > Project Settingsと進み「 Physics」を確認します。
チェックを入れるとカート同士が衝突します。

カートの衝突許可
カートの衝突許可



<<前  [TOP]  次>>