Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Unity Python】ML-Agentsで”NullReferenceException: Object reference not set to an instance of an object RaycastAgent.CollectObservations”のようなエラーが表示された時の解決方法


Unityで「Unity ML-Agents実践ゲームプログラミング」に沿ってやっていく中で発生したエラーに以下のようなものもありました。

 

 

 

 

 

1.エラー内容

 

 

NullReferenceException: Object reference not set to an instance of an object
RaycastAgent.CollectObservations (Unity.MLAgents.Sensors.VectorSensor sensor) (at Assets/RaycastAgent.cs:32)

 

Unity側で学習をさせようとplayボタンをクリックした時にUnity側のコンソールに表示されたものです。

 

 

2.解決方法

 

 

これはどうも観測数の問題ということで、Unity側のAgentではinspector内にあるBehaviorParametersのspacesizeの数が観測数ですが、これが0だった場合、RayCastAgent.cs内のCollectObservations に渡される VectorSensor がなくなることで起きるようです。

結果的には、BehaviorParametersのspacesizeの数とRayCastAgent.cs内のCollectObservations()内のAddObservation()で追加する観察数の数は一致していないといけないということになるようです(P50,72あたりに仕組みの記載はあり)。

 

以上が、”NullReferenceException: Object reference not set to an instance of an object RaycastAgent.CollectObservations”のようなエラーが表示された時の解決方法の一例になります。