浏览代码

Merge branch 'master' into asymm-envs

/asymm-envs
Andrew Cohen 5 年前
当前提交
2c42f577
共有 117 个文件被更改,包括 6286 次插入7721 次删除
  1. 5
      .yamato/python-ll-api-test.yml
  2. 2
      .yamato/standalone-build-test.yml
  3. 2
      Project/Assets/ML-Agents/Examples/3DBall/Demos/Expert3DBall.demo.meta
  4. 2
      Project/Assets/ML-Agents/Examples/3DBall/Demos/Expert3DBallHard.demo.meta
  5. 22
      Project/Assets/ML-Agents/Examples/3DBall/Prefabs/3DBallHardNew.prefab
  6. 9
      Project/Assets/ML-Agents/Examples/3DBall/Scripts/Ball3DAgent.cs
  7. 2
      Project/Assets/ML-Agents/Examples/Basic/Demos/ExpertBasic.demo.meta
  8. 936
      Project/Assets/ML-Agents/Examples/Basic/Prefabs/Basic.prefab
  9. 2
      Project/Assets/ML-Agents/Examples/Bouncer/Demos/ExpertBouncer.demo.meta
  10. 928
      Project/Assets/ML-Agents/Examples/Bouncer/Prefabs/Environment.prefab
  11. 11
      Project/Assets/ML-Agents/Examples/Bouncer/Scripts/BouncerAgent.cs
  12. 2
      Project/Assets/ML-Agents/Examples/Crawler/Demos/ExpertCrawlerDyn.demo.meta
  13. 2
      Project/Assets/ML-Agents/Examples/Crawler/Demos/ExpertCrawlerSta.demo.meta
  14. 22
      Project/Assets/ML-Agents/Examples/Crawler/Prefabs/DynamicPlatform.prefab
  15. 13
      Project/Assets/ML-Agents/Examples/Crawler/Prefabs/FixedPlatform.prefab
  16. 2
      Project/Assets/ML-Agents/Examples/FoodCollector/Demos/ExpertFood.demo.meta
  17. 153
      Project/Assets/ML-Agents/Examples/FoodCollector/Prefabs/FoodCollectorArea.prefab
  18. 14
      Project/Assets/ML-Agents/Examples/FoodCollector/Scripts/FoodCollectorAgent.cs
  19. 2
      Project/Assets/ML-Agents/Examples/GridWorld/Demos/ExpertGrid.demo.meta
  20. 32
      Project/Assets/ML-Agents/Examples/GridWorld/Prefabs/Area.prefab
  21. 12
      Project/Assets/ML-Agents/Examples/GridWorld/Scripts/GridAgent.cs
  22. 2
      Project/Assets/ML-Agents/Examples/Hallway/Demos/ExpertHallway.demo.meta
  23. 43
      Project/Assets/ML-Agents/Examples/Hallway/Prefabs/SymbolFinderArea.prefab
  24. 18
      Project/Assets/ML-Agents/Examples/Hallway/Scripts/HallwayAgent.cs
  25. 2
      Project/Assets/ML-Agents/Examples/PushBlock/Demos/ExpertPush.demo.meta
  26. 64
      Project/Assets/ML-Agents/Examples/PushBlock/Prefabs/PushBlockArea.prefab
  27. 18
      Project/Assets/ML-Agents/Examples/PushBlock/Scripts/PushAgentBasic.cs
  28. 2
      Project/Assets/ML-Agents/Examples/Pyramids/Demos/ExpertPyramid.demo.meta
  29. 85
      Project/Assets/ML-Agents/Examples/Pyramids/Prefabs/AreaPB.prefab
  30. 18
      Project/Assets/ML-Agents/Examples/Pyramids/Scripts/PyramidAgent.cs
  31. 2
      Project/Assets/ML-Agents/Examples/Reacher/Demos/ExpertReacher.demo.meta
  32. 22
      Project/Assets/ML-Agents/Examples/Reacher/Prefabs/Agent.prefab
  33. 6
      Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/ModelOverrider.cs
  34. 4
      Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/ProjectSettingsOverrides.cs
  35. 5
      Project/Assets/ML-Agents/Examples/Soccer/Prefabs/StrikersVsGoalieField.prefab
  36. 38
      Project/Assets/ML-Agents/Examples/Soccer/Scripts/AgentSoccer.cs
  37. 1001
      Project/Assets/ML-Agents/Examples/Soccer/TFModels/Goalie.nn
  38. 1001
      Project/Assets/ML-Agents/Examples/Soccer/TFModels/Striker.nn
  39. 2
      Project/Assets/ML-Agents/Examples/Tennis/Demos/ExpertTennis.demo.meta
  40. 11
      Project/Assets/ML-Agents/Examples/Tennis/Scripts/TennisAgent.cs
  41. 2
      Project/Assets/ML-Agents/Examples/Walker/Demos/ExpertWalker.demo.meta
  42. 22
      Project/Assets/ML-Agents/Examples/Walker/Prefabs/WalkerPair.prefab
  43. 64
      Project/Assets/ML-Agents/Examples/WallJump/Prefabs/WallJumpArea.prefab
  44. 14
      Project/Assets/ML-Agents/Examples/WallJump/Scripts/WallJumpAgent.cs
  45. 3
      Project/ProjectSettings/GraphicsSettings.asset
  46. 2
      Project/ProjectSettings/ProjectVersion.txt
  47. 2
      Project/ProjectSettings/UnityConnectSettings.asset
  48. 303
      com.unity.ml-agents/CHANGELOG.md
  49. 78
      com.unity.ml-agents/Editor/DemonstrationDrawer.cs
  50. 26
      com.unity.ml-agents/Editor/DemonstrationImporter.cs
  51. 2
      com.unity.ml-agents/Runtime/Academy.cs
  52. 96
      com.unity.ml-agents/Runtime/Agent.cs
  53. 68
      com.unity.ml-agents/Runtime/Communicator/GrpcExtensions.cs
  54. 51
      com.unity.ml-agents/Runtime/Communicator/RpcCommunicator.cs
  55. 2
      com.unity.ml-agents/Runtime/Demonstrations/DemonstrationWriter.cs
  56. 8
      com.unity.ml-agents/Runtime/Policies/BehaviorParameters.cs
  57. 22
      com.unity.ml-agents/Runtime/Policies/HeuristicPolicy.cs
  58. 35
      com.unity.ml-agents/Runtime/Timer.cs
  59. 4
      com.unity.ml-agents/Tests/Editor/BehaviorParameterTests.cs
  60. 6
      com.unity.ml-agents/Tests/Editor/MLAgentsEditModeTest.cs
  61. 43
      com.unity.ml-agents/Tests/Editor/TimerTest.cs
  62. 8
      com.unity.ml-agents/Tests/Runtime/RuntimeAPITest.cs
  63. 2
      com.unity.ml-agents/package.json
  64. 92
      docs/FAQ.md
  65. 346
      docs/Getting-Started.md
  66. 120
      docs/Installation-Anaconda-Windows.md
  67. 8
      docs/Learning-Environment-Create-New.md
  68. 509
      docs/Learning-Environment-Design-Agents.md
  69. 670
      docs/Learning-Environment-Examples.md
  70. 84
      docs/Learning-Environment-Executable.md
  71. 39
      docs/ML-Agents-Overview.md
  72. 5
      docs/Migrating.md
  73. 100
      docs/Readme.md
  74. 6
      docs/Training-Imitation-Learning.md
  75. 368
      docs/Training-ML-Agents.md
  76. 14
      docs/Training-Self-Play.md
  77. 147
      docs/Training-on-Amazon-Web-Service.md
  78. 145
      docs/Training-on-Microsoft-Azure.md
  79. 36
      docs/Using-Docker.md
  80. 82
      docs/Using-Tensorboard.md
  81. 66
      docs/Using-Virtual-Environment.md
  82. 150
      docs/images/demo_component.png
  83. 257
      docs/images/demo_inspector.png
  84. 999
      docs/images/docker_build_settings.png
  85. 980
      docs/images/gridworld.png
  86. 198
      docs/images/learning_environment_basic.png
  87. 545
      docs/images/learning_environment_example.png
  88. 219
      docs/images/platform_prefab.png
  89. 604
      docs/images/unity_package_json.png
  90. 999
      docs/images/unity_package_manager_window.png
  91. 349
      docs/images/visual-observation-rawimage.png
  92. 95
      docs/images/visual-observation-rendertexture.png
  93. 107
      docs/images/visual-observation.png
  94. 63
      ml-agents-envs/mlagents_envs/environment.py
  95. 31
      ml-agents-envs/mlagents_envs/tests/test_envs.py
  96. 95
      ml-agents/mlagents/trainers/learn.py
  97. 22
      ml-agents/tests/yamato/scripts/run_gym.py
  98. 29
      ml-agents/tests/yamato/scripts/run_llapi.py
  99. 24
      utils/validate_versions.py
  100. 22
      com.unity.ml-agents/Runtime/Demonstrations/DemonstrationMetaData.cs

5
.yamato/python-ll-api-test.yml


commands:
- pip install pyyaml
- python -u -m ml-agents.tests.yamato.setup_venv
- ./venv/bin/python ml-agents/tests/yamato/scripts/run_llapi.py
- ./venv/bin/python ml-agents/tests/yamato/scripts/run_llapi.py
- ./venv/bin/python ml-agents/tests/yamato/scripts/run_llapi.py --env=artifacts/testPlayer-Basic
- ./venv/bin/python ml-agents/tests/yamato/scripts/run_llapi.py --env=artifacts/testPlayer-WallJump
- ./venv/bin/python ml-agents/tests/yamato/scripts/run_llapi.py --env=artifacts/testPlayer-Bouncer
dependencies:
- .yamato/standalone-build-test.yml#test_mac_standalone_{{ editor.version }}
triggers:

2
.yamato/standalone-build-test.yml


- pip install pyyaml
- python -u -m ml-agents.tests.yamato.standalone_build_tests
- python -u -m ml-agents.tests.yamato.standalone_build_tests --scene=Assets/ML-Agents/Examples/Basic/Scenes/Basic.unity
- python -u -m ml-agents.tests.yamato.standalone_build_tests --scene=Assets/ML-Agents/Examples/Bouncer/Scenes/Bouncer.unity
- python -u -m ml-agents.tests.yamato.standalone_build_tests --scene=Assets/ML-Agents/Examples/WallJump/Scenes/WallJump.unity
triggers:
cancel_old_ci: true
changes:

2
Project/Assets/ML-Agents/Examples/3DBall/Demos/Expert3DBall.demo.meta


fileIDToRecycleName:
11400000: Assets/ML-Agents/Examples/3DBall/Demos/Expert3DBall.demo
externalObjects: {}
userData: ' (MLAgents.Demonstrations.Demonstration)'
userData: ' (MLAgents.Demonstrations.DemonstrationSummary)'
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3}

2
Project/Assets/ML-Agents/Examples/3DBall/Demos/Expert3DBallHard.demo.meta


fileIDToRecycleName:
11400000: Assets/ML-Agents/Examples/3DBall/Demos/Expert3DBallHard.demo
externalObjects: {}
userData: ' (MLAgents.Demonstrations.Demonstration)'
userData: ' (MLAgents.Demonstrations.DemonstrationSummary)'
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3}

22
Project/Assets/ML-Agents/Examples/3DBall/Prefabs/3DBallHardNew.prefab


- component: {fileID: 114284317994838100}
- component: {fileID: 114466000339026140}
- component: {fileID: 8193279139064749781}
- component: {fileID: 7923264721978289873}
m_Layer: 0
m_Name: Agent
m_TagString: Untagged

m_InferenceDevice: 0
m_BehaviorType: 0
m_BehaviorName: 3DBallHard
m_TeamID: 0
m_useChildSensors: 1
TeamId: 0
m_UseChildSensors: 1
--- !u!114 &114466000339026140
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: edf26e11cf4ed42eaa3ffb7b91bb4676, type: 3}
m_Name:
m_EditorClassIdentifier:
agentParameters:
maxStep: 0
hasUpgradedFromAgentParameters: 1
maxStep: 5000
ball: {fileID: 1142513601053358}
--- !u!114 &8193279139064749781

m_Name:
m_EditorClassIdentifier:
DecisionPeriod: 5
RepeatAction: 1
TakeActionsBetweenDecisions: 1
--- !u!114 &7923264721978289873
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1829721031899636}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3a6da8f78a394c6ab027688eab81e04d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1978072206102878
GameObject:
m_ObjectHideFlags: 0

9
Project/Assets/ML-Agents/Examples/3DBall/Scripts/Ball3DAgent.cs


SetResetParameters();
}
public override float[] Heuristic()
public override void Heuristic(float[] actionsOut)
var action = new float[2];
action[0] = -Input.GetAxis("Horizontal");
action[1] = Input.GetAxis("Vertical");
return action;
actionsOut[0] = -Input.GetAxis("Horizontal");
actionsOut[1] = Input.GetAxis("Vertical");
}
public void SetBall()

2
Project/Assets/ML-Agents/Examples/Basic/Demos/ExpertBasic.demo.meta


fileIDToRecycleName:
11400000: Assets/ML-Agents/Examples/Basic/Demos/ExpertBasic.demo
externalObjects: {}
userData: ' (MLAgents.Demonstrations.Demonstration)'
userData: ' (MLAgents.Demonstrations.DemonstrationSummary)'
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3}

936
Project/Assets/ML-Agents/Examples/Basic/Prefabs/Basic.prefab
文件差异内容过多而无法显示
查看文件

2
Project/Assets/ML-Agents/Examples/Bouncer/Demos/ExpertBouncer.demo.meta


fileIDToRecycleName:
11400000: Assets/ML-Agents/Examples/Bouncer/Demos/ExpertBouncer.demo
externalObjects: {}
userData: ' (MLAgents.Demonstrations.Demonstration)'
userData: ' (MLAgents.Demonstrations.DemonstrationSummary)'
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3}

928
Project/Assets/ML-Agents/Examples/Bouncer/Prefabs/Environment.prefab
文件差异内容过多而无法显示
查看文件

11
Project/Assets/ML-Agents/Examples/Bouncer/Scripts/BouncerAgent.cs


}
}
public override float[] Heuristic()
public override void Heuristic(float[] actionsOut)
var action = new float[3];
action[0] = Input.GetAxis("Horizontal");
action[1] = Input.GetKey(KeyCode.Space) ? 1.0f : 0.0f;
action[2] = Input.GetAxis("Vertical");
return action;
actionsOut[0] = Input.GetAxis("Horizontal");
actionsOut[1] = Input.GetKey(KeyCode.Space) ? 1.0f : 0.0f;
actionsOut[2] = Input.GetAxis("Vertical");
}
void Update()

2
Project/Assets/ML-Agents/Examples/Crawler/Demos/ExpertCrawlerDyn.demo.meta


fileIDToRecycleName:
11400000: Assets/ML-Agents/Examples/Crawler/Demos/ExpertCrawlerDyn.demo
externalObjects: {}
userData: ' (MLAgents.Demonstrations.Demonstration)'
userData: ' (MLAgents.Demonstrations.DemonstrationSummary)'
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3}

2
Project/Assets/ML-Agents/Examples/Crawler/Demos/ExpertCrawlerSta.demo.meta


fileIDToRecycleName:
11400000: Assets/ML-Agents/Examples/Crawler/Demos/ExpertCrawlerSta.demo
externalObjects: {}
userData: ' (MLAgents.Demonstrations.Demonstration)'
userData: ' (MLAgents.Demonstrations.DemonstrationSummary)'
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3}

22
Project/Assets/ML-Agents/Examples/Crawler/Prefabs/DynamicPlatform.prefab


- component: {fileID: 114590693924030052}
- component: {fileID: 114423363226357902}
- component: {fileID: 8520694362683208207}
- component: {fileID: 1267665179144855710}
m_Layer: 0
m_Name: Crawler
m_TagString: Untagged

m_InferenceDevice: 0
m_BehaviorType: 0
m_BehaviorName: CrawlerDynamic
m_TeamID: 0
m_useChildSensors: 1
TeamId: 0
m_UseChildSensors: 1
--- !u!114 &114590693924030052
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: 2f37c30a5e8d04117947188818902ef3, type: 3}
m_Name:
m_EditorClassIdentifier:
agentParameters:
maxStep: 0
hasUpgradedFromAgentParameters: 1
maxStep: 5000
target: {fileID: 4490950947783742}
ground: {fileID: 4684408634944056}

m_Name:
m_EditorClassIdentifier:
DecisionPeriod: 5
RepeatAction: 0
TakeActionsBetweenDecisions: 0
--- !u!114 &1267665179144855710
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1515093357607024}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3a6da8f78a394c6ab027688eab81e04d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1520563409393552
GameObject:
m_ObjectHideFlags: 0

13
Project/Assets/ML-Agents/Examples/Crawler/Prefabs/FixedPlatform.prefab


- component: {fileID: 114230237520033992}
- component: {fileID: 114375802757824636}
- component: {fileID: 8847231916954260663}
- component: {fileID: 6335439310911778343}
m_Layer: 0
m_Name: Crawler
m_TagString: Untagged

DecisionPeriod: 5
TakeActionsBetweenDecisions: 0
offsetStep: 0
--- !u!114 &6335439310911778343
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1492298671135358}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3a6da8f78a394c6ab027688eab81e04d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1492926997393242
GameObject:
m_ObjectHideFlags: 0

2
Project/Assets/ML-Agents/Examples/FoodCollector/Demos/ExpertFood.demo.meta


fileIDToRecycleName:
11400000: Assets/ML-Agents/Examples/FoodCollector/Demos/ExpertFood.demo
externalObjects: {}
userData: ' (MLAgents.Demonstrations.Demonstration)'
userData: ' (MLAgents.Demonstrations.DemonstrationSummary)'
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3}

153
Project/Assets/ML-Agents/Examples/FoodCollector/Prefabs/FoodCollectorArea.prefab


- component: {fileID: 114176228333253036}
- component: {fileID: 114725457980523372}
- component: {fileID: 8297075921230369060}
- component: {fileID: 1222199865870203693}
m_Layer: 0
m_Name: Agent
m_TagString: agent

m_InferenceDevice: 0
m_BehaviorType: 0
m_BehaviorName: FoodCollector
m_TeamID: 0
TeamId: 0
m_UseChildSensors: 1
--- !u!114 &114176228333253036
MonoBehaviour:

m_Script: {fileID: 11500000, guid: c66e6845309d241c78a6d77ee2567928, type: 3}
m_Name:
m_EditorClassIdentifier:
agentParameters:
maxStep: 0
hasUpgradedFromAgentParameters: 1
maxStep: 5000
area: {fileID: 1819751139121548}
turnSpeed: 300

m_Script: {fileID: 11500000, guid: 6bb6b867a41448888c1cd4f99643ad71, type: 3}
m_Name:
m_EditorClassIdentifier:
sensorName: RayPerceptionSensor
detectableTags:
m_SensorName: RayPerceptionSensor
m_DetectableTags:
raysPerDirection: 3
maxRayDegrees: 70
sphereCastRadius: 0.5
rayLength: 50
rayLayerMask:
m_RaysPerDirection: 3
m_MaxRayDegrees: 70
m_SphereCastRadius: 0.5
m_RayLength: 50
m_RayLayerMask:
observationStacks: 1
m_ObservationStacks: 1
useWorldPositions: 1
startVerticalOffset: 0
endVerticalOffset: 0
m_StartVerticalOffset: 0
m_EndVerticalOffset: 0
--- !u!114 &8297075921230369060
MonoBehaviour:
m_ObjectHideFlags: 0

m_Name:
m_EditorClassIdentifier:
DecisionPeriod: 5
RepeatAction: 1
TakeActionsBetweenDecisions: 1
--- !u!114 &1222199865870203693
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1464820575638702}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3a6da8f78a394c6ab027688eab81e04d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1482701732800114
GameObject:
m_ObjectHideFlags: 0

m_InferenceDevice: 0
m_BehaviorType: 0
m_BehaviorName: FoodCollector
m_TeamID: 0
TeamId: 0
m_UseChildSensors: 1
--- !u!114 &114711827726849508
MonoBehaviour:

m_Script: {fileID: 11500000, guid: c66e6845309d241c78a6d77ee2567928, type: 3}
m_Name:
m_EditorClassIdentifier:
agentParameters:
maxStep: 0
hasUpgradedFromAgentParameters: 1
maxStep: 5000
area: {fileID: 1819751139121548}
turnSpeed: 300

m_Script: {fileID: 11500000, guid: 6bb6b867a41448888c1cd4f99643ad71, type: 3}
m_Name:
m_EditorClassIdentifier:
sensorName: RayPerceptionSensor
detectableTags:
m_SensorName: RayPerceptionSensor
m_DetectableTags:
raysPerDirection: 3
maxRayDegrees: 70
sphereCastRadius: 0.5
rayLength: 50
rayLayerMask:
m_RaysPerDirection: 3
m_MaxRayDegrees: 70
m_SphereCastRadius: 0.5
m_RayLength: 50
m_RayLayerMask:
observationStacks: 1
m_ObservationStacks: 1
useWorldPositions: 1
startVerticalOffset: 0
endVerticalOffset: 0
m_StartVerticalOffset: 0
m_EndVerticalOffset: 0
--- !u!114 &259154752087955944
MonoBehaviour:
m_ObjectHideFlags: 0

m_Name:
m_EditorClassIdentifier:
DecisionPeriod: 5
RepeatAction: 1
TakeActionsBetweenDecisions: 1
offsetStep: 0
--- !u!1 &1528397385587768
GameObject:

m_InferenceDevice: 0
m_BehaviorType: 0
m_BehaviorName: FoodCollector
m_TeamID: 0
TeamId: 0
m_UseChildSensors: 1
--- !u!114 &114542632553128056
MonoBehaviour:

m_Script: {fileID: 11500000, guid: c66e6845309d241c78a6d77ee2567928, type: 3}
m_Name:
m_EditorClassIdentifier:
agentParameters:
maxStep: 0
hasUpgradedFromAgentParameters: 1
maxStep: 5000
area: {fileID: 1819751139121548}
turnSpeed: 300

m_Script: {fileID: 11500000, guid: 6bb6b867a41448888c1cd4f99643ad71, type: 3}
m_Name:
m_EditorClassIdentifier:
sensorName: RayPerceptionSensor
detectableTags:
m_SensorName: RayPerceptionSensor
m_DetectableTags:
raysPerDirection: 3
maxRayDegrees: 70
sphereCastRadius: 0.5
rayLength: 50
rayLayerMask:
m_RaysPerDirection: 3
m_MaxRayDegrees: 70
m_SphereCastRadius: 0.5
m_RayLength: 50
m_RayLayerMask:
observationStacks: 1
m_ObservationStacks: 1
useWorldPositions: 1
startVerticalOffset: 0
endVerticalOffset: 0
m_StartVerticalOffset: 0
m_EndVerticalOffset: 0
--- !u!114 &5519119940433428255
MonoBehaviour:
m_ObjectHideFlags: 0

m_Name:
m_EditorClassIdentifier:
DecisionPeriod: 5
RepeatAction: 1
TakeActionsBetweenDecisions: 1
offsetStep: 0
--- !u!1 &1617924810425504
GameObject:

m_InferenceDevice: 0
m_BehaviorType: 0
m_BehaviorName: FoodCollector
m_TeamID: 0
TeamId: 0
m_UseChildSensors: 1
--- !u!114 &114189751434580810
MonoBehaviour:

m_Script: {fileID: 11500000, guid: c66e6845309d241c78a6d77ee2567928, type: 3}
m_Name:
m_EditorClassIdentifier:
agentParameters:
maxStep: 0
hasUpgradedFromAgentParameters: 1
maxStep: 5000
area: {fileID: 1819751139121548}
turnSpeed: 300

m_Script: {fileID: 11500000, guid: 6bb6b867a41448888c1cd4f99643ad71, type: 3}
m_Name:
m_EditorClassIdentifier:
sensorName: RayPerceptionSensor
detectableTags:
m_SensorName: RayPerceptionSensor
m_DetectableTags:
raysPerDirection: 3
maxRayDegrees: 70
sphereCastRadius: 0.5
rayLength: 50
rayLayerMask:
m_RaysPerDirection: 3
m_MaxRayDegrees: 70
m_SphereCastRadius: 0.5
m_RayLength: 50
m_RayLayerMask:
observationStacks: 1
m_ObservationStacks: 1
useWorldPositions: 1
startVerticalOffset: 0
endVerticalOffset: 0
m_StartVerticalOffset: 0
m_EndVerticalOffset: 0
--- !u!114 &5884750436653390196
MonoBehaviour:
m_ObjectHideFlags: 0

m_Name:
m_EditorClassIdentifier:
DecisionPeriod: 5
RepeatAction: 1
TakeActionsBetweenDecisions: 1
offsetStep: 0
--- !u!1 &1688105343773098
GameObject:

m_InferenceDevice: 0
m_BehaviorType: 0
m_BehaviorName: FoodCollector
m_TeamID: 0
TeamId: 0
m_UseChildSensors: 1
--- !u!114 &114235147148547996
MonoBehaviour:

m_Script: {fileID: 11500000, guid: c66e6845309d241c78a6d77ee2567928, type: 3}
m_Name:
m_EditorClassIdentifier:
agentParameters:
maxStep: 0
hasUpgradedFromAgentParameters: 1
maxStep: 5000
area: {fileID: 1819751139121548}
turnSpeed: 300

m_Script: {fileID: 11500000, guid: 6bb6b867a41448888c1cd4f99643ad71, type: 3}
m_Name:
m_EditorClassIdentifier:
sensorName: RayPerceptionSensor
detectableTags:
m_SensorName: RayPerceptionSensor
m_DetectableTags:
raysPerDirection: 3
maxRayDegrees: 70
sphereCastRadius: 0.5
rayLength: 50
rayLayerMask:
m_RaysPerDirection: 3
m_MaxRayDegrees: 70
m_SphereCastRadius: 0.5
m_RayLength: 50
m_RayLayerMask:
observationStacks: 1
m_ObservationStacks: 1
useWorldPositions: 1
startVerticalOffset: 0
endVerticalOffset: 0
m_StartVerticalOffset: 0
m_EndVerticalOffset: 0
--- !u!114 &4768752321433982785
MonoBehaviour:
m_ObjectHideFlags: 0

m_Name:
m_EditorClassIdentifier:
DecisionPeriod: 5
RepeatAction: 1
TakeActionsBetweenDecisions: 1
offsetStep: 0
--- !u!1 &1729825611722018
GameObject:

14
Project/Assets/ML-Agents/Examples/FoodCollector/Scripts/FoodCollectorAgent.cs


MoveAgent(vectorAction);
}
public override float[] Heuristic()
public override void Heuristic(float[] actionsOut)
var action = new float[4];
action[2] = 2f;
actionsOut[2] = 2f;
action[0] = 1f;
actionsOut[0] = 1f;
action[2] = 1f;
actionsOut[2] = 1f;
action[0] = 2f;
actionsOut[0] = 2f;
action[3] = Input.GetKey(KeyCode.Space) ? 1.0f : 0.0f;
return action;
actionsOut[3] = Input.GetKey(KeyCode.Space) ? 1.0f : 0.0f;
}
public override void OnEpisodeBegin()

2
Project/Assets/ML-Agents/Examples/GridWorld/Demos/ExpertGrid.demo.meta


fileIDToRecycleName:
11400000: Assets/ML-Agents/Examples/GridWorld/Demos/ExpertGrid.demo
externalObjects: {}
userData: ' (MLAgents.Demonstrations.Demonstration)'
userData: ' (MLAgents.Demonstrations.DemonstrationSummary)'
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3}

32
Project/Assets/ML-Agents/Examples/GridWorld/Prefabs/Area.prefab


- component: {fileID: 114935253044749092}
- component: {fileID: 114650561397225712}
- component: {fileID: 114889700908650620}
- component: {fileID: 7980686505185502968}
m_Layer: 8
m_Name: Agent
m_TagString: agent

m_InferenceDevice: 0
m_BehaviorType: 0
m_BehaviorName: GridWorld
m_TeamID: 0
m_useChildSensors: 1
TeamId: 0
m_UseChildSensors: 1
--- !u!114 &114650561397225712
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: 857707f3f352541d5b858efca4479b95, type: 3}
m_Name:
m_EditorClassIdentifier:
agentParameters:
maxStep: 0
hasUpgradedFromAgentParameters: 1
maxStep: 100
area: {fileID: 114704252266302846}
timeBetweenDecisionsAtInference: 0.15

m_Script: {fileID: 11500000, guid: 282f342c2ab144bf38be65d4d0c4e07d, type: 3}
m_Name:
m_EditorClassIdentifier:
camera: {fileID: 20743940359151984}
sensorName: CameraSensor
width: 84
height: 64
grayscale: 0
compression: 1
m_Camera: {fileID: 20743940359151984}
m_SensorName: CameraSensor
m_Width: 84
m_Height: 64
m_Grayscale: 0
m_Compression: 1
--- !u!114 &7980686505185502968
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1488387672112076}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3a6da8f78a394c6ab027688eab81e04d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1625008366184734
GameObject:
m_ObjectHideFlags: 0

12
Project/Assets/ML-Agents/Examples/GridWorld/Scripts/GridAgent.cs


}
}
public override float[] Heuristic()
public override void Heuristic(float[] actionsOut)
actionsOut[0] = k_NoAction;
return new float[] { k_Right };
actionsOut[0] = k_Right;
return new float[] { k_Up };
actionsOut[0] = k_Up;
return new float[] { k_Left };
actionsOut[0] = k_Left;
return new float[] { k_Down };
actionsOut[0] = k_Down;
return new float[] { k_NoAction };
}
// to be implemented by the developer

2
Project/Assets/ML-Agents/Examples/Hallway/Demos/ExpertHallway.demo.meta


fileIDToRecycleName:
11400000: Assets/ML-Agents/Examples/Hallway/Demos/ExpertHallway.demo
externalObjects: {}
userData: ' (MLAgents.Demonstrations.Demonstration)'
userData: ' (MLAgents.Demonstrations.DemonstrationSummary)'
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3}

43
Project/Assets/ML-Agents/Examples/Hallway/Prefabs/SymbolFinderArea.prefab


- component: {fileID: 114286701363010626}
- component: {fileID: 114388598785529460}
- component: {fileID: 1360037369662378601}
- component: {fileID: 3959905707628515947}
m_Layer: 0
m_Name: Agent
m_TagString: agent

m_InferenceDevice: 0
m_BehaviorType: 0
m_BehaviorName: Hallway
m_TeamID: 0
m_useChildSensors: 1
TeamId: 0
m_UseChildSensors: 1
--- !u!114 &114286701363010626
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: b446afae240924105b36d07e8d17a608, type: 3}
m_Name:
m_EditorClassIdentifier:
agentParameters:
maxStep: 0
hasUpgradedFromAgentParameters: 1
maxStep: 3000
ground: {fileID: 1510027348950282}
area: {fileID: 1745841960385024}

m_Script: {fileID: 11500000, guid: 6bb6b867a41448888c1cd4f99643ad71, type: 3}
m_Name:
m_EditorClassIdentifier:
sensorName: RayPerceptionSensor
detectableTags:
m_SensorName: RayPerceptionSensor
m_DetectableTags:
raysPerDirection: 2
maxRayDegrees: 70
sphereCastRadius: 0.5
rayLength: 12
rayLayerMask:
m_RaysPerDirection: 2
m_MaxRayDegrees: 70
m_SphereCastRadius: 0.5
m_RayLength: 12
m_RayLayerMask:
observationStacks: 3
m_ObservationStacks: 3
useWorldPositions: 1
startVerticalOffset: 0
endVerticalOffset: 0
m_StartVerticalOffset: 0
m_EndVerticalOffset: 0
--- !u!114 &1360037369662378601
MonoBehaviour:
m_ObjectHideFlags: 0

m_Name:
m_EditorClassIdentifier:
DecisionPeriod: 6
RepeatAction: 1
TakeActionsBetweenDecisions: 1
--- !u!114 &3959905707628515947
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1471560210313468}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3a6da8f78a394c6ab027688eab81e04d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1510027348950282
GameObject:
m_ObjectHideFlags: 0

18
Project/Assets/ML-Agents/Examples/Hallway/Scripts/HallwayAgent.cs


}
}
public override float[] Heuristic()
public override void Heuristic(float[] actionsOut)
actionsOut[0] = 0;
return new float[] { 3 };
actionsOut[0] = 3;
if (Input.GetKey(KeyCode.W))
else if (Input.GetKey(KeyCode.W))
return new float[] { 1 };
actionsOut[0] = 1;
if (Input.GetKey(KeyCode.A))
else if (Input.GetKey(KeyCode.A))
return new float[] { 4 };
actionsOut[0] = 4;
if (Input.GetKey(KeyCode.S))
else if (Input.GetKey(KeyCode.S))
return new float[] { 2 };
actionsOut[0] = 2;
return new float[] { 0 };
}
public override void OnEpisodeBegin()

2
Project/Assets/ML-Agents/Examples/PushBlock/Demos/ExpertPush.demo.meta


fileIDToRecycleName:
11400000: Assets/ML-Agents/Examples/PushBlock/Demos/ExpertPush.demo
externalObjects: {}
userData: ' (MLAgents.Demonstrations.Demonstration)'
userData: ' (MLAgents.Demonstrations.DemonstrationSummary)'
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3}

64
Project/Assets/ML-Agents/Examples/PushBlock/Prefabs/PushBlockArea.prefab


- component: {fileID: 114807072692257076}
- component: {fileID: 114451319691753174}
- component: {fileID: 8964598783836598940}
- component: {fileID: 4081319787948195948}
m_Layer: 0
m_Name: Agent
m_TagString: agent

m_InferenceDevice: 0
m_BehaviorType: 0
m_BehaviorName: PushBlock
m_TeamID: 0
m_useChildSensors: 1
TeamId: 0
m_UseChildSensors: 1
--- !u!114 &114505490781873732
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: dea8c4f2604b947e6b7b97750dde87ca, type: 3}
m_Name:
m_EditorClassIdentifier:
agentParameters:
maxStep: 0
hasUpgradedFromAgentParameters: 1
maxStep: 5000
ground: {fileID: 1500989011945850}
area: {fileID: 1125452240183160}

m_Script: {fileID: 11500000, guid: 6bb6b867a41448888c1cd4f99643ad71, type: 3}
m_Name:
m_EditorClassIdentifier:
sensorName: RayPerceptionSensor
detectableTags:
m_SensorName: RayPerceptionSensor
m_DetectableTags:
raysPerDirection: 3
maxRayDegrees: 90
sphereCastRadius: 0.5
rayLength: 12
rayLayerMask:
m_RaysPerDirection: 3
m_MaxRayDegrees: 90
m_SphereCastRadius: 0.5
m_RayLength: 12
m_RayLayerMask:
observationStacks: 3
m_ObservationStacks: 3
useWorldPositions: 1
startVerticalOffset: 0
endVerticalOffset: 0
m_StartVerticalOffset: 0
m_EndVerticalOffset: 0
--- !u!114 &114451319691753174
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: 6bb6b867a41448888c1cd4f99643ad71, type: 3}
m_Name:
m_EditorClassIdentifier:
sensorName: OffsetRayPerceptionSensor
detectableTags:
m_SensorName: OffsetRayPerceptionSensor
m_DetectableTags:
raysPerDirection: 3
maxRayDegrees: 90
sphereCastRadius: 0.5
rayLength: 12
rayLayerMask:
m_RaysPerDirection: 3
m_MaxRayDegrees: 90
m_SphereCastRadius: 0.5
m_RayLength: 12
m_RayLayerMask:
observationStacks: 3
m_ObservationStacks: 3
useWorldPositions: 1
startVerticalOffset: 1.5
endVerticalOffset: 1.5
m_StartVerticalOffset: 1.5
m_EndVerticalOffset: 1.5
--- !u!114 &8964598783836598940
MonoBehaviour:
m_ObjectHideFlags: 0

m_Name:
m_EditorClassIdentifier:
DecisionPeriod: 5
RepeatAction: 1
TakeActionsBetweenDecisions: 1
--- !u!114 &4081319787948195948
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1489716781518988}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3a6da8f78a394c6ab027688eab81e04d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1500989011945850
GameObject:
m_ObjectHideFlags: 0

18
Project/Assets/ML-Agents/Examples/PushBlock/Scripts/PushAgentBasic.cs


AddReward(-1f / maxStep);
}
public override float[] Heuristic()
public override void Heuristic(float[] actionsOut)
actionsOut[0] = 0;
return new float[] { 3 };
actionsOut[0] = 3;
if (Input.GetKey(KeyCode.W))
else if (Input.GetKey(KeyCode.W))
return new float[] { 1 };
actionsOut[0] = 1;
if (Input.GetKey(KeyCode.A))
else if (Input.GetKey(KeyCode.A))
return new float[] { 4 };
actionsOut[0] = 4;
if (Input.GetKey(KeyCode.S))
else if (Input.GetKey(KeyCode.S))
return new float[] { 2 };
actionsOut[0] = 2;
return new float[] { 0 };
}
/// <summary>

2
Project/Assets/ML-Agents/Examples/Pyramids/Demos/ExpertPyramid.demo.meta


fileIDToRecycleName:
11400000: Assets/ML-Agents/Examples/Pyramids/Demos/ExpertPyramid.demo
externalObjects: {}
userData: ' (MLAgents.Demonstrations.Demonstration)'
userData: ' (MLAgents.Demonstrations.DemonstrationSummary)'
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3}

85
Project/Assets/ML-Agents/Examples/Pyramids/Prefabs/AreaPB.prefab


- component: {fileID: 5712624269609438939}
- component: {fileID: 5767481171805996936}
- component: {fileID: 4725417187860315718}
- component: {fileID: 6474351450651730614}
m_Layer: 0
m_Name: Agent
m_TagString: agent

m_InferenceDevice: 0
m_BehaviorType: 0
m_BehaviorName: Pyramids
m_TeamID: 0
m_useChildSensors: 1
TeamId: 0
m_UseChildSensors: 1
--- !u!114 &114937736047215868
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: b8db44472779248d3be46895c4d562d5, type: 3}
m_Name:
m_EditorClassIdentifier:
agentParameters:
maxStep: 0
hasUpgradedFromAgentParameters: 1
maxStep: 5000
area: {fileID: 1464170487903594}
areaSwitch: {fileID: 1432086782037750}

m_Name:
m_EditorClassIdentifier:
DecisionPeriod: 5
RepeatAction: 1
TakeActionsBetweenDecisions: 1
offsetStep: 0
--- !u!114 &5712624269609438939
MonoBehaviour:

m_Script: {fileID: 11500000, guid: 6bb6b867a41448888c1cd4f99643ad71, type: 3}
m_Name:
m_EditorClassIdentifier:
sensorName: RayPerceptionSensor
detectableTags:
m_SensorName: RayPerceptionSensor
m_DetectableTags:
- block
- wall
- goal

raysPerDirection: 3
maxRayDegrees: 70
sphereCastRadius: 0.5
rayLength: 35
rayLayerMask:
m_RaysPerDirection: 3
m_MaxRayDegrees: 70
m_SphereCastRadius: 0.5
m_RayLength: 35
m_RayLayerMask:
observationStacks: 1
m_ObservationStacks: 1
useWorldPositions: 1
startVerticalOffset: 0
endVerticalOffset: 0
m_StartVerticalOffset: 0
m_EndVerticalOffset: 0
--- !u!114 &5767481171805996936
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: 6bb6b867a41448888c1cd4f99643ad71, type: 3}
m_Name:
m_EditorClassIdentifier:
sensorName: RayPerceptionSensor1
detectableTags:
m_SensorName: RayPerceptionSensor1
m_DetectableTags:
- block
- wall
- goal

raysPerDirection: 3
maxRayDegrees: 65
sphereCastRadius: 0.5
rayLength: 35
rayLayerMask:
m_RaysPerDirection: 3
m_MaxRayDegrees: 65
m_SphereCastRadius: 0.5
m_RayLength: 35
m_RayLayerMask:
observationStacks: 1
m_ObservationStacks: 1
useWorldPositions: 1
startVerticalOffset: 0
endVerticalOffset: 5
m_StartVerticalOffset: 0
m_EndVerticalOffset: 5
--- !u!114 &4725417187860315718
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: 6bb6b867a41448888c1cd4f99643ad71, type: 3}
m_Name:
m_EditorClassIdentifier:
sensorName: RayPerceptionSensor2
detectableTags:
m_SensorName: RayPerceptionSensor2
m_DetectableTags:
- block
- wall
- goal

raysPerDirection: 3
maxRayDegrees: 75
sphereCastRadius: 0.5
rayLength: 35
rayLayerMask:
m_RaysPerDirection: 3
m_MaxRayDegrees: 75
m_SphereCastRadius: 0.5
m_RayLength: 35
m_RayLayerMask:
observationStacks: 1
m_ObservationStacks: 1
useWorldPositions: 1
startVerticalOffset: 0
endVerticalOffset: 10
m_StartVerticalOffset: 0
m_EndVerticalOffset: 10
--- !u!114 &6474351450651730614
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1131043459059966}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3a6da8f78a394c6ab027688eab81e04d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1148882946833254
GameObject:
m_ObjectHideFlags: 0

18
Project/Assets/ML-Agents/Examples/Pyramids/Scripts/PyramidAgent.cs


MoveAgent(vectorAction);
}
public override float[] Heuristic()
public override void Heuristic(float[] actionsOut)
actionsOut[0] = 0;
return new float[] { 3 };
actionsOut[0] = 3;
if (Input.GetKey(KeyCode.W))
else if (Input.GetKey(KeyCode.W))
return new float[] { 1 };
actionsOut[0] = 1;
if (Input.GetKey(KeyCode.A))
else if (Input.GetKey(KeyCode.A))
return new float[] { 4 };
actionsOut[0] = 4;
if (Input.GetKey(KeyCode.S))
else if (Input.GetKey(KeyCode.S))
return new float[] { 2 };
actionsOut[0] = 2;
return new float[] { 0 };
}
public override void OnEpisodeBegin()

2
Project/Assets/ML-Agents/Examples/Reacher/Demos/ExpertReacher.demo.meta


fileIDToRecycleName:
11400000: Assets/ML-Agents/Examples/Reacher/Demos/ExpertReacher.demo
externalObjects: {}
userData: ' (MLAgents.Demonstrations.Demonstration)'
userData: ' (MLAgents.Demonstrations.DemonstrationSummary)'
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3}

22
Project/Assets/ML-Agents/Examples/Reacher/Prefabs/Agent.prefab


- component: {fileID: 114731167133171590}
- component: {fileID: 114955921823023820}
- component: {fileID: 6226801880261327134}
- component: {fileID: 7840105453417110232}
m_Layer: 0
m_Name: Agent
m_TagString: Untagged

m_InferenceDevice: 0
m_BehaviorType: 0
m_BehaviorName: Reacher
m_TeamID: 0
m_useChildSensors: 1
TeamId: 0
m_UseChildSensors: 1
--- !u!114 &114955921823023820
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: 220b156e3b142406c8b76d4db981d044, type: 3}
m_Name:
m_EditorClassIdentifier:
agentParameters:
maxStep: 0
hasUpgradedFromAgentParameters: 1
maxStep: 4000
pendulumA: {fileID: 1644872085946016}
pendulumB: {fileID: 1053261483945176}

m_Name:
m_EditorClassIdentifier:
DecisionPeriod: 4
RepeatAction: 1
TakeActionsBetweenDecisions: 1
--- !u!114 &7840105453417110232
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1395682910799436}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3a6da8f78a394c6ab027688eab81e04d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1644872085946016
GameObject:
m_ObjectHideFlags: 0

6
Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/ModelOverrider.cs


{
if (m_MaxEpisodes > 0)
{
if (m_NumSteps > m_MaxEpisodes * m_Agent.maxStep)
// For Agents without maxSteps, exit as soon as we've hit the target number of episodes.
// For Agents that specify maxStep, also make sure we've gone at least that many steps.
// Since we exit as soon as *any* Agent hits its target, the maxSteps condition keeps us running
// a bit longer in case there's an early failure.
if (m_Agent.CompletedEpisodes >= m_MaxEpisodes && m_NumSteps > m_MaxEpisodes * m_Agent.maxStep)
{
Application.Quit(0);
}

4
Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/ProjectSettingsOverrides.cs


Physics.defaultSolverIterations = solverIterations;
Physics.defaultSolverVelocityIterations = solverVelocityIterations;
// Make sure the Academy singleton is initialized first, since it will create the SideChannels.
var academy = Academy.Instance;
SideChannelUtils.GetSideChannel<FloatPropertiesChannel>().RegisterCallback("gravity", f => { Physics.gravity = new Vector3(0, -f, 0); });
}

Physics.defaultSolverVelocityIterations = m_OriginalSolverVelocityIterations;
}
}
}
}

5
Project/Assets/ML-Agents/Examples/Soccer/Prefabs/StrikersVsGoalieField.prefab


m_EditorClassIdentifier:
DecisionPeriod: 5
TakeActionsBetweenDecisions: 1
offsetStep: 0
--- !u!1 &1100217258374548
GameObject:
m_ObjectHideFlags: 0

m_EditorClassIdentifier:
DecisionPeriod: 5
TakeActionsBetweenDecisions: 1
offsetStep: 0
--- !u!1 &1141134673700168
GameObject:
m_ObjectHideFlags: 0

m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 89ad1e117353e48db80e27f4f7727dc1, type: 2}
- {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

m_EditorClassIdentifier:
DecisionPeriod: 5
TakeActionsBetweenDecisions: 1
offsetStep: 0

38
Project/Assets/ML-Agents/Examples/Soccer/Scripts/AgentSoccer.cs


float m_KickPower;
int m_PlayerIndex;
public SoccerFieldArea area;
// The coefficient for the reward for colliding with a ball. Set using curriculum.
float m_Power;
const float k_Power = 2000f;
float m_Existential;
float m_LateralSpeed;
float m_ForwardSpeed;

public override void Initialize()
{
m_Existential = 1f / maxStep;
m_BehaviorParameters = gameObject.GetComponent<BehaviorParameters>();
if (m_BehaviorParameters.TeamId == (int)Team.Blue)
{

team = Team.Purple;
m_Transform = new Vector3(transform.position.x + 4f, .5f, transform.position.z);
}
m_Power = 2000f;
if (position == Position.Goalie)
{
m_LateralSpeed = 1.0f;

if (position == Position.Goalie)
{
// Existential bonus for Goalies.
AddReward(1f / 3000f);
AddReward(m_Existential);
AddReward(-1f / 3000f);
AddReward(-m_Existential);
timePenalty += -1f / 3000f;
timePenalty -= m_Existential;
public override float[] Heuristic()
public override void Heuristic(float[] actionsOut)
var action = new float[3];
action[0] = 1f;
actionsOut[0] = 1f;
action[0] = 2f;
actionsOut[0] = 2f;
action[2] = 1f;
actionsOut[2] = 1f;
action[2] = 2f;
actionsOut[2] = 2f;
action[1] = 1f;
actionsOut[1] = 1f;
action[1] = 2f;
actionsOut[1] = 2f;
return action;
}
/// <summary>
/// Used to provide a "kick" to the ball.

var force = m_Power * m_KickPower;
var force = k_Power * m_KickPower;
force = m_Power;
force = k_Power;
// Generic gets curriculum
if (position == Position.Generic)
{
AddReward(.2f * m_BallTouch);
}
AddReward(.2f * m_BallTouch);
var dir = c.contacts[0].point - transform.position;
dir = dir.normalized;
c.gameObject.GetComponent<Rigidbody>().AddForce(dir * force);

1001
Project/Assets/ML-Agents/Examples/Soccer/TFModels/Goalie.nn
文件差异内容过多而无法显示
查看文件

1001
Project/Assets/ML-Agents/Examples/Soccer/TFModels/Striker.nn
文件差异内容过多而无法显示
查看文件

2
Project/Assets/ML-Agents/Examples/Tennis/Demos/ExpertTennis.demo.meta


fileIDToRecycleName:
11400000: Assets/ML-Agents/Examples/Tennis/Demos/ExpertTennis.demo
externalObjects: {}
userData: ' (MLAgents.Demonstrations.Demonstration)'
userData: ' (MLAgents.Demonstrations.DemonstrationSummary)'
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3}

11
Project/Assets/ML-Agents/Examples/Tennis/Scripts/TennisAgent.cs


m_TextComponent.text = score.ToString();
}
public override float[] Heuristic()
public override void Heuristic(float[] actionsOut)
var action = new float[3];
action[0] = Input.GetAxis("Horizontal"); // Racket Movement
action[1] = Input.GetKey(KeyCode.Space) ? 1f : 0f; // Racket Jumping
action[2] = Input.GetAxis("Vertical"); // Racket Rotation
return action;
actionsOut[0] = Input.GetAxis("Horizontal"); // Racket Movement
actionsOut[1] = Input.GetKey(KeyCode.Space) ? 1f : 0f; // Racket Jumping
actionsOut[2] = Input.GetAxis("Vertical"); // Racket Rotation
}
void OnCollisionEnter(Collision c)

2
Project/Assets/ML-Agents/Examples/Walker/Demos/ExpertWalker.demo.meta


fileIDToRecycleName:
11400000: Assets/ML-Agents/Examples/Walker/Demos/ExpertWalker.demo
externalObjects: {}
userData: ' (MLAgents.Demonstrations.Demonstration)'
userData: ' (MLAgents.Demonstrations.DemonstrationSummary)'
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3}

22
Project/Assets/ML-Agents/Examples/Walker/Prefabs/WalkerPair.prefab


- component: {fileID: 114363722412740164}
- component: {fileID: 114614375190687060}
- component: {fileID: 7095046440131842424}
- component: {fileID: 526281586680617836}
m_Layer: 0
m_Name: WalkerAgent
m_TagString: Untagged

m_InferenceDevice: 0
m_BehaviorType: 0
m_BehaviorName: Walker
m_TeamID: 0
m_useChildSensors: 1
TeamId: 0
m_UseChildSensors: 1
--- !u!114 &114363722412740164
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: ccb0f85f0009540d7ad997952e2aed7b, type: 3}
m_Name:
m_EditorClassIdentifier:
agentParameters:
maxStep: 0
hasUpgradedFromAgentParameters: 1
maxStep: 5000
target: {fileID: 4085853164035250}
hips: {fileID: 4333477265252406}

m_Name:
m_EditorClassIdentifier:
DecisionPeriod: 5
RepeatAction: 0
TakeActionsBetweenDecisions: 0
--- !u!114 &526281586680617836
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1800913799254612}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3a6da8f78a394c6ab027688eab81e04d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1907539933197724
GameObject:
m_ObjectHideFlags: 0

64
Project/Assets/ML-Agents/Examples/WallJump/Prefabs/WallJumpArea.prefab


- component: {fileID: 114458838850320084}
- component: {fileID: 114227939525648256}
- component: {fileID: 4778045978646539396}
- component: {fileID: 7445449404652947848}
m_Layer: 0
m_Name: Agent
m_TagString: agent