質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.32%
Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

194閲覧

【Unity】オープンソースでバスケットボールの強化学習をしたい

KaoruYoshida

総合スコア37

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2025/02/25 08:32

編集2025/02/25 08:36

実現したいこと

Unityを使ってバスケットボールのシミュレーションをつくり、試合の強化学習を行いたいです。
調べたところ、以下のオープンソースを見つけたので、これを使って強化学習の実行を行いたいです。
https://github.com/chenh1001/Basketball-ML-Unity
強化学習はUnity-MLAgentsを使っています。

発生している問題・分からないこと

オープンソースをzipでダウンロードし、Unity HubのAddから/home/kaoru/ml-agents/Basketball-ML-Unity-master/Projectを選択して開き、

c#

1mlagents-learn /home/kaoru/ml-agents/ml-agents-release_19/config/ppo/Basic.yaml --run-id=BasketballRun1

以上を実行したところ、次のエラーメッセージが出ました。

エラーメッセージ

例えば

NullReferenceException: Object reference not set to an instance of an object PlayingPassNN.Initialize () (at Assets/ML-Agents/BasketBall/newBasketBall/Scripts/PlayingPassNN.cs:33) Unity.MLAgents.Agent.LazyInitialize () (at /home/kaoru/ml-agents/Basketball-ML-Unity-master/com.unity.ml-agents/Runtime/Agent.cs:397) Unity.MLAgents.Agent.OnEnable () (at /home/kaoru/ml-agents/Basketball-ML-Unity-master/com.unity.ml-agents/Runtime/Agent.cs:303)
NullReferenceException: Object reference not set to an instance of an object PlayingPassNN.CollectObservations (Unity.MLAgents.Sensors.VectorSensor sensor) (at Assets/ML-Agents/BasketBall/newBasketBall/Scripts/PlayingPassNN.cs:58) Unity.MLAgents.Agent.SendInfoToBrain () (at /home/kaoru/ml-agents/Basketball-ML-Unity-master/com.unity.ml-agents/Runtime/Agent.cs:895) Unity.MLAgents.Agent.SendInfo () (at /home/kaoru/ml-agents/Basketball-ML-Unity-master/com.unity.ml-agents/Runtime/Agent.cs:1140) Unity.MLAgents.Academy.EnvironmentStep () (at /home/kaoru/ml-agents/Basketball-ML-Unity-master/com.unity.ml-agents/Runtime/Academy.cs:503) Unity.MLAgents.AcademyFixedUpdateStepper.FixedUpdate () (at /home/kaoru/ml-agents/Basketball-ML-Unity-master/com.unity.ml-agents/Runtime/Academy.cs:34)

その他画像のようなエラーが出ています。
イメージ説明
イメージ説明

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

エラーで指摘されている部分は

csharp

1manager = transform.GetComponentInParent<ShootingPlayerScript>(); 2manager.hasBall = false;

csharp

1if (manager.gc == null) 2 manager.hasBall = true;

など、いずれもManagerについて言及しているものと思われます。

よって、Managerをインスペクターでアサインしていないことが原因と思いました。

ですが、画像のように選択ができず困っています。
イメージ説明

補足

Scriptsはオープンソースから一切変えていません。
Manager以外のインスペクターウィンドウでの設定も不安なので、ダウンロード時からどう変更したらうまくいくか確認いただけると幸いです。
初心者なので初歩的なところでつまづいているかもしれないですが、知見おありの方ご教示いただけると嬉しいです!!

実行環境

Ubuntu

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

yaml ファイルの2行目とBehavior nameを一致させなければいけないことを知らず、それが原因だったかもしれません。

投稿2025/03/01 08:46

KaoruYoshida

総合スコア37

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.32%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問