Andrew Cohen
5 年前
当前提交
c0f7052b
共有 82 个文件被更改,包括 9955 次插入 和 4080 次删除
-
2.pylintrc
-
3Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/JointDriveController.cs
-
7Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/ProjectSettingsOverrides.cs
-
162Project/Assets/ML-Agents/Examples/Walker/Scripts/WalkerAgent.cs
-
2Project/Assets/ML-Agents/Examples/Walker/TFModels/WalkerDynamic.nn.meta
-
1001Project/Assets/ML-Agents/Examples/Walker/TFModels/WalkerDynamic.nn
-
5Project/Assets/ML-Agents/Examples/WallJump/Materials/TransparentWall.mat
-
2Project/ProjectSettings/DynamicsManager.asset
-
18com.unity.ml-agents/CHANGELOG.md
-
10com.unity.ml-agents/Runtime/Academy.cs
-
8com.unity.ml-agents/Runtime/Communicator/RpcCommunicator.cs
-
12com.unity.ml-agents/Runtime/Policies/BehaviorParameters.cs
-
4com.unity.ml-agents/Runtime/Sensors/Reflection/EnumReflectionSensor.cs
-
2com.unity.ml-agents/package.json
-
2config/ppo/SoccerTwos.yaml
-
4config/ppo/StrikersVsGoalie.yaml
-
6config/ppo/Tennis.yaml
-
2config/ppo/WalkerStatic.yaml
-
2config/sac/WalkerDynamic.yaml
-
274docs/Learning-Environment-Design-Agents.md
-
10docs/Learning-Environment-Design.md
-
21docs/Learning-Environment-Examples.md
-
12docs/Migrating.md
-
3docs/Training-Configuration-File.md
-
7docs/Training-ML-Agents.md
-
3docs/Using-Tensorboard.md
-
999docs/images/walker.png
-
2gym-unity/gym_unity/__init__.py
-
2markdown-link-check.full.json
-
2ml-agents-envs/mlagents_envs/__init__.py
-
12ml-agents-envs/mlagents_envs/registry/binary_utils.py
-
32ml-agents/mlagents/model_serialization.py
-
2ml-agents/mlagents/trainers/__init__.py
-
7ml-agents/mlagents/trainers/cli_utils.py
-
2ml-agents/mlagents/trainers/ghost/trainer.py
-
1ml-agents/mlagents/trainers/learn.py
-
21ml-agents/mlagents/trainers/ppo/trainer.py
-
1ml-agents/mlagents/trainers/sac/trainer.py
-
4ml-agents/mlagents/trainers/settings.py
-
8ml-agents/mlagents/trainers/tests/test_learn.py
-
1ml-agents/mlagents/trainers/tests/test_ppo.py
-
49ml-agents/mlagents/trainers/tests/test_rl_trainer.py
-
1ml-agents/mlagents/trainers/tests/test_sac.py
-
2ml-agents/mlagents/trainers/tests/test_simple_rl.py
-
2ml-agents/mlagents/trainers/tests/test_trainer_controller.py
-
38ml-agents/mlagents/trainers/trainer/rl_trainer.py
-
4ml-agents/mlagents/trainers/trainer/trainer.py
-
22ml-agents/mlagents/trainers/trainer_controller.py
-
4utils/validate_meta_files.py
-
297Project/Assets/ML-Agents/Examples/SharedAssets/Prefabs/OrientationCube.prefab
-
7Project/Assets/ML-Agents/Examples/SharedAssets/Prefabs/OrientationCube.prefab.meta
-
27Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/DirectionIndicator.cs
-
11Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/DirectionIndicator.cs.meta
-
1001Project/Assets/ML-Agents/Examples/Walker/Demos/ExpertWalkerDyna.demo
-
10Project/Assets/ML-Agents/Examples/Walker/Demos/ExpertWalkerDyna.demo.meta
-
1001Project/Assets/ML-Agents/Examples/Walker/Demos/ExpertWalkerStat.demo
-
10Project/Assets/ML-Agents/Examples/Walker/Demos/ExpertWalkerStat.demo.meta
-
841Project/Assets/ML-Agents/Examples/Walker/Prefabs/DynamicPlatformWalker.prefab
-
7Project/Assets/ML-Agents/Examples/Walker/Prefabs/DynamicPlatformWalker.prefab.meta
-
1001Project/Assets/ML-Agents/Examples/Walker/Prefabs/WalkerRagdoll.prefab
-
7Project/Assets/ML-Agents/Examples/Walker/Prefabs/WalkerRagdoll.prefab.meta
-
485Project/Assets/ML-Agents/Examples/Walker/Prefabs/WalkerWithTargetPair.prefab
-
1001Project/Assets/ML-Agents/Examples/Walker/Scenes/WalkerDynamic.unity
-
7Project/Assets/ML-Agents/Examples/Walker/Scenes/WalkerDynamic.unity.meta
-
1001Project/Assets/ML-Agents/Examples/Walker/Scenes/WalkerStatic.unity
-
1001Project/Assets/ML-Agents/Examples/Walker/TFModels/WalkerStatic.nn
-
11Project/Assets/ML-Agents/Examples/Walker/TFModels/WalkerStatic.nn.meta
-
27config/ppo/WalkerDynamic.yaml
-
29config/sac/WalkerStatic.yaml
-
191ml-agents/mlagents/trainers/tests/test_config_conversion.py
-
137ml-agents/mlagents/trainers/upgrade_config.py
-
1001Project/Assets/ML-Agents/Examples/Walker/Demos/ExpertWalker.demo
-
10Project/Assets/ML-Agents/Examples/Walker/Demos/ExpertWalker.demo.meta
-
1001Project/Assets/ML-Agents/Examples/Walker/Prefabs/WalkerPair.prefab
-
1001Project/Assets/ML-Agents/Examples/Walker/Scenes/Walker.unity
-
110config/upgrade_config.py
-
0/Project/Assets/ML-Agents/Examples/Walker/Prefabs/WalkerWithTargetPair.prefab.meta
-
0/Project/Assets/ML-Agents/Examples/Walker/Scenes/WalkerStatic.unity.meta
-
0/Project/Assets/ML-Agents/Examples/Walker/TFModels/WalkerDynamic.nn.meta
-
0/Project/Assets/ML-Agents/Examples/Walker/TFModels/WalkerDynamic.nn
-
0/config/ppo/WalkerStatic.yaml
-
0/config/sac/WalkerDynamic.yaml
1001
Project/Assets/ML-Agents/Examples/Walker/TFModels/WalkerDynamic.nn
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
999
docs/images/walker.png
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
# Version of the library that will be used to upload to pypi |
|||
__version__ = "0.17.0.dev0" |
|||
__version__ = "0.18.0.dev0" |
|||
|
|||
# Git tag that will be checked to determine whether to trigger upload to pypi |
|||
__release_tag__ = None |
|
|||
# Version of the library that will be used to upload to pypi |
|||
__version__ = "0.17.0.dev0" |
|||
__version__ = "0.18.0.dev0" |
|||
|
|||
# Git tag that will be checked to determine whether to trigger upload to pypi |
|||
__release_tag__ = None |
|
|||
# Version of the library that will be used to upload to pypi |
|||
__version__ = "0.17.0.dev0" |
|||
__version__ = "0.18.0.dev0" |
|||
|
|||
# Git tag that will be checked to determine whether to trigger upload to pypi |
|||
__release_tag__ = None |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!1 &2591864625898824423 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 2591864625898824440} |
|||
- component: {fileID: 2591864625898824442} |
|||
- component: {fileID: 2591864625898824441} |
|||
m_Layer: 0 |
|||
m_Name: Cube |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 0 |
|||
--- !u!4 &2591864625898824440 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 2591864625898824423} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 0, z: 0} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: |
|||
- {fileID: 2591864627374185741} |
|||
m_Father: {fileID: 2591864627249999504} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &2591864625898824442 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 2591864625898824423} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!23 &2591864625898824441 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 2591864625898824423} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_RenderingLayerMask: 1 |
|||
m_RendererPriority: 0 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 5c59bd36def9a4684be49a21cf201a2d, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 0 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_StitchLightmapSeams: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!1 &2591864627249999519 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 2591864627249999504} |
|||
m_Layer: 0 |
|||
m_Name: OrientationCube |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!4 &2591864627249999504 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 2591864627249999519} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: -498.349, y: -0.45, z: -250.09256} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: |
|||
- {fileID: 2591864625898824440} |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &2591864627374185740 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 2591864627374185741} |
|||
m_Layer: 0 |
|||
m_Name: Arrow |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!4 &2591864627374185741 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 2591864627374185740} |
|||
m_LocalRotation: {x: -0, y: -0.7071066, z: -0, w: 0.707107} |
|||
m_LocalPosition: {x: 0, y: 0.119, z: 0} |
|||
m_LocalScale: {x: 0.7764428, y: 0.7764428, z: 0.7764428} |
|||
m_Children: |
|||
- {fileID: 3256674261123397973} |
|||
- {fileID: 3257148088533667597} |
|||
m_Father: {fileID: 2591864625898824440} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: -90.00001, z: 0} |
|||
--- !u!1 &3258603775602446353 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 3256674261123397973} |
|||
- component: {fileID: 3263562959519547143} |
|||
- component: {fileID: 3273629389920486807} |
|||
m_Layer: 0 |
|||
m_Name: symbol_tri |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!4 &3256674261123397973 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 3258603775602446353} |
|||
m_LocalRotation: {x: -0.5000024, y: -0.49999765, z: 0.4999684, w: -0.5000316} |
|||
m_LocalPosition: {x: 0.22598267, y: 0.5, z: 0} |
|||
m_LocalScale: {x: 0.39859864, y: 0.4054339, z: 0.25} |
|||
m_Children: [] |
|||
m_Father: {fileID: 2591864627374185741} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &3263562959519547143 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 3258603775602446353} |
|||
m_Mesh: {fileID: 4300000, guid: 09e2da39770c24cc9a71e5dbf05a1e85, type: 3} |
|||
--- !u!23 &3273629389920486807 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 3258603775602446353} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_RenderingLayerMask: 1 |
|||
m_RendererPriority: 0 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 69fefdd39d2b34b169e921910bed9c0d, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 0 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_StitchLightmapSeams: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!1 &3259145720179606813 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 3257148088533667597} |
|||
- component: {fileID: 3263743565359806181} |
|||
- component: {fileID: 3272323263339836425} |
|||
m_Layer: 0 |
|||
m_Name: Symbol_Triangle |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!4 &3257148088533667597 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 3259145720179606813} |
|||
m_LocalRotation: {x: -0.5000024, y: -0.49999765, z: 0.4999684, w: -0.5000316} |
|||
m_LocalPosition: {x: -0.20300293, y: 0.5, z: 0} |
|||
m_LocalScale: {x: 0.31112, y: 0.4054339, z: 0.085725} |
|||
m_Children: [] |
|||
m_Father: {fileID: 2591864627374185741} |
|||
m_RootOrder: 1 |
|||
m_LocalEulerAnglesHint: {x: 90.00001, y: 0, z: 270.007} |
|||
--- !u!33 &3263743565359806181 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 3259145720179606813} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!23 &3272323263339836425 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 3259145720179606813} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_RenderingLayerMask: 1 |
|||
m_RendererPriority: 0 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 69fefdd39d2b34b169e921910bed9c0d, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_StitchLightmapSeams: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|
|||
fileFormatVersion: 2 |
|||
guid: 41960beaa3d8041e19d82b5160042e55 |
|||
PrefabImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using System.Collections; |
|||
using System.Collections.Generic; |
|||
using UnityEngine; |
|||
|
|||
namespace Unity.MLAgentsExamples |
|||
{ |
|||
public class DirectionIndicator : MonoBehaviour |
|||
{ |
|||
public Transform transformToFollow; //ex: hips or body
|
|||
public Transform targetToLookAt; //target in the scene the indicator will point to
|
|||
public float heightOffset; |
|||
private float m_StartingYPos; |
|||
|
|||
void OnEnable() |
|||
{ |
|||
m_StartingYPos = transform.position.y; |
|||
} |
|||
|
|||
void Update() |
|||
{ |
|||
transform.position = new Vector3(transformToFollow.position.x, m_StartingYPos + heightOffset, transformToFollow.position.z); |
|||
Vector3 walkDir = targetToLookAt.position - transform.position; |
|||
walkDir.y = 0; //flatten dir on the y
|
|||
transform.rotation = Quaternion.LookRotation(walkDir); |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 1513f8a85fedd47efba089213b7c5bde |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
Project/Assets/ML-Agents/Examples/Walker/Demos/ExpertWalkerDyna.demo
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 1ea82869060c54bb48fed5b95baaf53c |
|||
ScriptedImporter: |
|||
fileIDToRecycleName: |
|||
11400002: Assets/ML-Agents/Examples/Walker/Demos/ExpertWalkerDyna.demo |
|||
externalObjects: {} |
|||
userData: ' (Unity.MLAgents.Demonstrations.DemonstrationSummary)' |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3} |
1001
Project/Assets/ML-Agents/Examples/Walker/Demos/ExpertWalkerStat.demo
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 720007cd6923e410abaa4ba800400cb0 |
|||
ScriptedImporter: |
|||
fileIDToRecycleName: |
|||
11400002: Assets/ML-Agents/Examples/Walker/Demos/ExpertWalkerStat.demo |
|||
externalObjects: {} |
|||
userData: ' (Unity.MLAgents.Demonstrations.DemonstrationSummary)' |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3} |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!114 &693499830 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 555702846} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 1513f8a85fedd47efba089213b7c5bde, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
transformToFollow: {fileID: 6065910099080495282} |
|||
targetToLookAt: {fileID: 4714470935848893865} |
|||
heightOffset: 0 |
|||
--- !u!1 &4711180330649187171 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 4715888959257483687} |
|||
- component: {fileID: 4689817008254918419} |
|||
- component: {fileID: 4699090859598286087} |
|||
- component: {fileID: 4722926153423559969} |
|||
m_Layer: 0 |
|||
m_Name: Wall (1) |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 4294967295 |
|||
m_IsActive: 1 |
|||
--- !u!4 &4715888959257483687 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4711180330649187171} |
|||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
|||
m_LocalPosition: {x: -50, y: 0, z: 0} |
|||
m_LocalScale: {x: 1, y: 5, z: 101} |
|||
m_Children: [] |
|||
m_Father: {fileID: 4715987710462317849} |
|||
m_RootOrder: 1 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &4689817008254918419 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4711180330649187171} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!23 &4699090859598286087 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4711180330649187171} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_RenderingLayerMask: 1 |
|||
m_RendererPriority: 0 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 0 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_StitchLightmapSeams: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &4722926153423559969 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4711180330649187171} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &4712483598851193171 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 4716331283668561151} |
|||
- component: {fileID: 4690387153836166353} |
|||
- component: {fileID: 4699141086941009411} |
|||
- component: {fileID: 4722802889468949457} |
|||
m_Layer: 0 |
|||
m_Name: Wall (2) |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 4294967295 |
|||
m_IsActive: 1 |
|||
--- !u!4 &4716331283668561151 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712483598851193171} |
|||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 0, z: 50} |
|||
m_LocalScale: {x: 100, y: 5, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 4715987710462317849} |
|||
m_RootOrder: 2 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &4690387153836166353 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712483598851193171} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!23 &4699141086941009411 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712483598851193171} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_RenderingLayerMask: 1 |
|||
m_RendererPriority: 0 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 0 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_StitchLightmapSeams: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &4722802889468949457 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712483598851193171} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &4712494856961735751 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 4714470935848893865} |
|||
- component: {fileID: 4689783609468392267} |
|||
- component: {fileID: 4721366003033637715} |
|||
- component: {fileID: 4699049336072019207} |
|||
- component: {fileID: 4729272029965882557} |
|||
m_Layer: 0 |
|||
m_Name: Target |
|||
m_TagString: target |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!4 &4714470935848893865 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712494856961735751} |
|||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
|||
m_LocalPosition: {x: 6.2, y: 1.15, z: 3.824} |
|||
m_LocalScale: {x: 1.2356956, y: 1.2356961, z: 1.2356961} |
|||
m_Children: [] |
|||
m_Father: {fileID: 4715983678655513245} |
|||
m_RootOrder: 2 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &4689783609468392267 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712494856961735751} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!65 &4721366003033637715 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712494856961735751} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!23 &4699049336072019207 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712494856961735751} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 0 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_RenderingLayerMask: 1 |
|||
m_RendererPriority: 0 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: c67450f290f3e4897bc40276a619e78d, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_StitchLightmapSeams: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!54 &4729272029965882557 |
|||
Rigidbody: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712494856961735751} |
|||
serializedVersion: 2 |
|||
m_Mass: 5 |
|||
m_Drag: 0 |
|||
m_AngularDrag: 0.05 |
|||
m_UseGravity: 1 |
|||
m_IsKinematic: 0 |
|||
m_Interpolate: 0 |
|||
m_Constraints: 0 |
|||
m_CollisionDetection: 0 |
|||
--- !u!1 &4712512458067701539 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 4714538461102743099} |
|||
- component: {fileID: 4689850458464308353} |
|||
- component: {fileID: 4697337419570596237} |
|||
- component: {fileID: 4723009745833965809} |
|||
m_Layer: 0 |
|||
m_Name: Wall (3) |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 4294967295 |
|||
m_IsActive: 1 |
|||
--- !u!4 &4714538461102743099 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712512458067701539} |
|||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 0, z: -50} |
|||
m_LocalScale: {x: 100, y: 5, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 4715987710462317849} |
|||
m_RootOrder: 3 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &4689850458464308353 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712512458067701539} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!23 &4697337419570596237 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712512458067701539} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_RenderingLayerMask: 1 |
|||
m_RendererPriority: 0 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 0 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_StitchLightmapSeams: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &4723009745833965809 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712512458067701539} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &4712600297668500197 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 4715983678655513245} |
|||
m_Layer: 0 |
|||
m_Name: DynamicPlatformWalker |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!4 &4715983678655513245 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712600297668500197} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 0, z: 0} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: |
|||
- {fileID: 4715987710462317849} |
|||
- {fileID: 4715966284166353839} |
|||
- {fileID: 4714470935848893865} |
|||
- {fileID: 6065910098925129092} |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &4712663958317066515 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 4716356389860452953} |
|||
- component: {fileID: 4689697903279525105} |
|||
- component: {fileID: 4697349331983048585} |
|||
- component: {fileID: 4721393739556148669} |
|||
m_Layer: 0 |
|||
m_Name: Wall |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 4294967295 |
|||
m_IsActive: 1 |
|||
--- !u!4 &4716356389860452953 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712663958317066515} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 50, y: 0, z: 0} |
|||
m_LocalScale: {x: 1, y: 5, z: 101} |
|||
m_Children: [] |
|||
m_Father: {fileID: 4715987710462317849} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &4689697903279525105 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712663958317066515} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!23 &4697349331983048585 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712663958317066515} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_RenderingLayerMask: 1 |
|||
m_RendererPriority: 0 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 0 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_StitchLightmapSeams: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &4721393739556148669 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712663958317066515} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &4712817259802602059 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 4715987710462317849} |
|||
m_Layer: 0 |
|||
m_Name: Walls |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 4294967295 |
|||
m_IsActive: 1 |
|||
--- !u!4 &4715987710462317849 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712817259802602059} |
|||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 2, z: 0} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: |
|||
- {fileID: 4716356389860452953} |
|||
- {fileID: 4715888959257483687} |
|||
- {fileID: 4716331283668561151} |
|||
- {fileID: 4714538461102743099} |
|||
m_Father: {fileID: 4715983678655513245} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &4712938778375712263 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 4715966284166353839} |
|||
- component: {fileID: 4691180017100794059} |
|||
- component: {fileID: 4723023959055362909} |
|||
- component: {fileID: 4697514370720743845} |
|||
m_Layer: 14 |
|||
m_Name: Ground |
|||
m_TagString: ground |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 4294967295 |
|||
m_IsActive: 1 |
|||
--- !u!4 &4715966284166353839 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712938778375712263} |
|||
m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} |
|||
m_LocalPosition: {x: 0, y: 0, z: 0} |
|||
m_LocalScale: {x: 100, y: 1, z: 100} |
|||
m_Children: [] |
|||
m_Father: {fileID: 4715983678655513245} |
|||
m_RootOrder: 1 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} |
|||
--- !u!33 &4691180017100794059 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712938778375712263} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!65 &4723023959055362909 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712938778375712263} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!23 &4697514370720743845 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 4712938778375712263} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_RenderingLayerMask: 1 |
|||
m_RendererPriority: 0 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: acba6bf2a290a496bb8989b42bf8698d, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_StitchLightmapSeams: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!1001 &758428436173755182 |
|||
PrefabInstance: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_Modification: |
|||
m_TransformParent: {fileID: 6065910098925129092} |
|||
m_Modifications: |
|||
- target: {fileID: 2591864625898824423, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_IsActive |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.y |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.y |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.w |
|||
value: 1 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_RootOrder |
|||
value: 2 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.y |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999519, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_Name |
|||
value: OrientationCube |
|||
objectReference: {fileID: 0} |
|||
m_RemovedComponents: [] |
|||
m_SourcePrefab: {fileID: 100100000, guid: 41960beaa3d8041e19d82b5160042e55, type: 3} |
|||
--- !u!1 &2989930013812587953 stripped |
|||
GameObject: |
|||
m_CorrespondingSourceObject: {fileID: 2591864627249999519, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
m_PrefabInstance: {fileID: 758428436173755182} |
|||
m_PrefabAsset: {fileID: 0} |
|||
--- !u!1001 &6359877978260855390 |
|||
PrefabInstance: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_Modification: |
|||
m_TransformParent: {fileID: 4715983678655513245} |
|||
m_Modifications: |
|||
- target: {fileID: 895268871377934275, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_Name |
|||
value: WalkerRagdoll |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934297, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_Model |
|||
value: |
|||
objectReference: {fileID: 11400000, guid: 2cb15010f7cbe4dc59418a5858c87819, |
|||
type: 3} |
|||
- target: {fileID: 895268871377934297, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_BrainParameters.VectorObservationSize |
|||
value: 236 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.y |
|||
value: 3.07 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.x |
|||
value: -0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.y |
|||
value: 0.7071068 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.z |
|||
value: -0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.w |
|||
value: 0.7071068 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_RootOrder |
|||
value: 3 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.y |
|||
value: 90 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7408209125961349353, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: target |
|||
value: |
|||
objectReference: {fileID: 4714470935848893865} |
|||
- target: {fileID: 7408209125961349353, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: ground |
|||
value: |
|||
objectReference: {fileID: 4715966284166353839} |
|||
- target: {fileID: 7408209125961349353, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: orientationCube |
|||
value: |
|||
objectReference: {fileID: 2989930013812587953} |
|||
m_RemovedComponents: [] |
|||
m_SourcePrefab: {fileID: 100100000, guid: 765582efd9dda46ed98564603316353f, type: 3} |
|||
--- !u!4 &6065910098925129092 stripped |
|||
Transform: |
|||
m_CorrespondingSourceObject: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
m_PrefabInstance: {fileID: 6359877978260855390} |
|||
m_PrefabAsset: {fileID: 0} |
|||
--- !u!4 &6065910099080495282 stripped |
|||
Transform: |
|||
m_CorrespondingSourceObject: {fileID: 895268871264836332, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
m_PrefabInstance: {fileID: 6359877978260855390} |
|||
m_PrefabAsset: {fileID: 0} |
|||
--- !u!1 &555702846 stripped |
|||
GameObject: |
|||
m_CorrespondingSourceObject: {fileID: 6359877977706987616, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
m_PrefabInstance: {fileID: 6359877978260855390} |
|||
m_PrefabAsset: {fileID: 0} |
|
|||
fileFormatVersion: 2 |
|||
guid: f51e8260728fd4c8fa87bcda9d0e2027 |
|||
PrefabImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
Project/Assets/ML-Agents/Examples/Walker/Prefabs/WalkerRagdoll.prefab
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 765582efd9dda46ed98564603316353f |
|||
PrefabImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!1 &1707482909815496 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 4878380427462518} |
|||
m_Layer: 0 |
|||
m_Name: WalkerWithTargetPair |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!4 &4878380427462518 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1707482909815496} |
|||
m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.70710677} |
|||
m_LocalPosition: {x: -500, y: 2.45, z: -250} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: |
|||
- {fileID: 4085853164035250} |
|||
- {fileID: 2610895078227559678} |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 90.00001, z: 0} |
|||
--- !u!1 &1711420055118728 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 4085853164035250} |
|||
- component: {fileID: 33406676668336024} |
|||
- component: {fileID: 65728406221657384} |
|||
- component: {fileID: 23891878356976108} |
|||
- component: {fileID: 54470051767281394} |
|||
m_Layer: 0 |
|||
m_Name: Target |
|||
m_TagString: target |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!4 &4085853164035250 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1711420055118728} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 1.7899997, z: 1800} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 4878380427462518} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &33406676668336024 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1711420055118728} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!65 &65728406221657384 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1711420055118728} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!23 &23891878356976108 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1711420055118728} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 0 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_RenderingLayerMask: 1 |
|||
m_RendererPriority: 0 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: c67450f290f3e4897bc40276a619e78d, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_StitchLightmapSeams: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!54 &54470051767281394 |
|||
Rigidbody: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1711420055118728} |
|||
serializedVersion: 2 |
|||
m_Mass: 5 |
|||
m_Drag: 0 |
|||
m_AngularDrag: 0.05 |
|||
m_UseGravity: 1 |
|||
m_IsKinematic: 0 |
|||
m_Interpolate: 0 |
|||
m_Constraints: 0 |
|||
m_CollisionDetection: 0 |
|||
--- !u!114 &928625103 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 8076557379269661508} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 1513f8a85fedd47efba089213b7c5bde, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
transformToFollow: {fileID: 2610895078055938504} |
|||
targetToLookAt: {fileID: 4085853164035250} |
|||
heightOffset: 0 |
|||
--- !u!1001 &2906899243981837092 |
|||
PrefabInstance: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_Modification: |
|||
m_TransformParent: {fileID: 4878380427462518} |
|||
m_Modifications: |
|||
- target: {fileID: 895268871377934275, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_Name |
|||
value: WalkerRagdoll |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934297, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_BehaviorName |
|||
value: WalkerStatic |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934297, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_BrainParameters.VectorObservationSize |
|||
value: 236 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934297, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_Model |
|||
value: |
|||
objectReference: {fileID: 11400000, guid: 1cb7f6cc571fb4376b972bc090627b6d, |
|||
type: 3} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.y |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.x |
|||
value: -0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.y |
|||
value: -0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.z |
|||
value: -0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.w |
|||
value: 1 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_RootOrder |
|||
value: 1 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.y |
|||
value: 90 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalScale.x |
|||
value: 1.0000005 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_LocalScale.z |
|||
value: 1.0000005 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7408209125961349353, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: target |
|||
value: |
|||
objectReference: {fileID: 4085853164035250} |
|||
- target: {fileID: 7408209125961349353, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: targetIsStatic |
|||
value: 1 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7408209125961349353, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: respawnTargetWhenTouched |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7408209125961349353, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: orientationCube |
|||
value: |
|||
objectReference: {fileID: 5269189931577362882} |
|||
- target: {fileID: 7933235353030744139, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.x |
|||
value: -0.6999967 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353030744139, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.z |
|||
value: -0.00000005960462 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353041637847, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.x |
|||
value: -0.6999959 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353041637847, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.z |
|||
value: -0.00000023841848 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353195701979, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.x |
|||
value: 0.4999994 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353195701979, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.z |
|||
value: 0.00000023841848 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353228551180, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.x |
|||
value: -0.39999378 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353228551180, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.z |
|||
value: -0.00000005960462 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353240438170, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.x |
|||
value: -0.4999994 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353240438170, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.z |
|||
value: -0.00000023841848 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353272702555, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.x |
|||
value: 0.00000017881393 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353272702555, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.z |
|||
value: -0.00000005960462 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353655703554, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.x |
|||
value: -0.00000017881393 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353655703554, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.z |
|||
value: 0.00000005960462 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353711811619, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.x |
|||
value: -0.00000017881393 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353711811619, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.z |
|||
value: 0.00000005960462 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353713167636, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.x |
|||
value: 0.39999378 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235353713167636, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.z |
|||
value: 0.00000005960462 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235354616748522, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.x |
|||
value: 0.6999959 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235354616748522, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.z |
|||
value: 0.00000023841848 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235354882597209, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.x |
|||
value: 0.00000017881393 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235354882597209, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.z |
|||
value: -0.00000005960462 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235355057813929, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.x |
|||
value: 0.6999967 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 7933235355057813929, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
propertyPath: m_ConnectedAnchor.z |
|||
value: 0.00000005960462 |
|||
objectReference: {fileID: 0} |
|||
m_RemovedComponents: [] |
|||
m_SourcePrefab: {fileID: 100100000, guid: 765582efd9dda46ed98564603316353f, type: 3} |
|||
--- !u!4 &2610895078227559678 stripped |
|||
Transform: |
|||
m_CorrespondingSourceObject: {fileID: 895268871377934298, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
m_PrefabInstance: {fileID: 2906899243981837092} |
|||
m_PrefabAsset: {fileID: 0} |
|||
--- !u!4 &2610895078055938504 stripped |
|||
Transform: |
|||
m_CorrespondingSourceObject: {fileID: 895268871264836332, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
m_PrefabInstance: {fileID: 2906899243981837092} |
|||
m_PrefabAsset: {fileID: 0} |
|||
--- !u!1 &8076557379269661508 stripped |
|||
GameObject: |
|||
m_CorrespondingSourceObject: {fileID: 6359877977706987616, guid: 765582efd9dda46ed98564603316353f, |
|||
type: 3} |
|||
m_PrefabInstance: {fileID: 2906899243981837092} |
|||
m_PrefabAsset: {fileID: 0} |
|||
--- !u!1001 &7703349395854010205 |
|||
PrefabInstance: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_Modification: |
|||
m_TransformParent: {fileID: 2610895078227559678} |
|||
m_Modifications: |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.y |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalPosition.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.y |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalRotation.w |
|||
value: 1 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_RootOrder |
|||
value: 2 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.y |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999504, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_LocalEulerAnglesHint.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 2591864627249999519, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
propertyPath: m_Name |
|||
value: OrientationCube |
|||
objectReference: {fileID: 0} |
|||
m_RemovedComponents: [] |
|||
m_SourcePrefab: {fileID: 100100000, guid: 41960beaa3d8041e19d82b5160042e55, type: 3} |
|||
--- !u!1 &5269189931577362882 stripped |
|||
GameObject: |
|||
m_CorrespondingSourceObject: {fileID: 2591864627249999519, guid: 41960beaa3d8041e19d82b5160042e55, |
|||
type: 3} |
|||
m_PrefabInstance: {fileID: 7703349395854010205} |
|||
m_PrefabAsset: {fileID: 0} |
1001
Project/Assets/ML-Agents/Examples/Walker/Scenes/WalkerDynamic.unity
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 79d5d2687bfbe45f5b78bd6c04992e0d |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
Project/Assets/ML-Agents/Examples/Walker/Scenes/WalkerStatic.unity
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
1001
Project/Assets/ML-Agents/Examples/Walker/TFModels/WalkerStatic.nn
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 1cb7f6cc571fb4376b972bc090627b6d |
|||
ScriptedImporter: |
|||
fileIDToRecycleName: |
|||
11400000: main obj |
|||
11400002: model data |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 19ed1486aa27d4903b34839f37b8f69f, type: 3} |
|
|||
behaviors: |
|||
WalkerDynamic: |
|||
trainer_type: ppo |
|||
hyperparameters: |
|||
batch_size: 2048 |
|||
buffer_size: 20480 |
|||
learning_rate: 0.0003 |
|||
beta: 0.005 |
|||
epsilon: 0.2 |
|||
lambd: 0.95 |
|||
num_epoch: 3 |
|||
learning_rate_schedule: linear |
|||
network_settings: |
|||
normalize: true |
|||
hidden_units: 512 |
|||
num_layers: 3 |
|||
vis_encode_type: simple |
|||
reward_signals: |
|||
extrinsic: |
|||
gamma: 0.995 |
|||
strength: 1.0 |
|||
output_path: default |
|||
keep_checkpoints: 5 |
|||
max_steps: 25000000 |
|||
time_horizon: 1000 |
|||
summary_freq: 30000 |
|||
threaded: true |
|
|||
behaviors: |
|||
WalkerStatic: |
|||
trainer_type: sac |
|||
hyperparameters: |
|||
learning_rate: 0.0003 |
|||
learning_rate_schedule: constant |
|||
batch_size: 256 |
|||
buffer_size: 500000 |
|||
buffer_init_steps: 0 |
|||
tau: 0.005 |
|||
steps_per_update: 30.0 |
|||
save_replay_buffer: false |
|||
init_entcoef: 1.0 |
|||
reward_signal_steps_per_update: 30.0 |
|||
network_settings: |
|||
normalize: true |
|||
hidden_units: 512 |
|||
num_layers: 4 |
|||
vis_encode_type: simple |
|||
reward_signals: |
|||
extrinsic: |
|||
gamma: 0.995 |
|||
strength: 1.0 |
|||
output_path: default |
|||
keep_checkpoints: 5 |
|||
max_steps: 20000000 |
|||
time_horizon: 1000 |
|||
summary_freq: 30000 |
|||
threaded: true |
|
|||
import yaml |
|||
import pytest |
|||
from unittest import mock |
|||
from argparse import Namespace |
|||
|
|||
from mlagents.trainers.upgrade_config import convert_behaviors, main, remove_nones |
|||
from mlagents.trainers.settings import ( |
|||
TrainerType, |
|||
PPOSettings, |
|||
SACSettings, |
|||
RewardSignalType, |
|||
) |
|||
|
|||
BRAIN_NAME = "testbehavior" |
|||
|
|||
# Check one per category |
|||
BATCH_SIZE = 256 |
|||
HIDDEN_UNITS = 32 |
|||
SUMMARY_FREQ = 500 |
|||
|
|||
PPO_CONFIG = f""" |
|||
default: |
|||
trainer: ppo |
|||
batch_size: 1024 |
|||
beta: 5.0e-3 |
|||
buffer_size: 10240 |
|||
epsilon: 0.2 |
|||
hidden_units: 128 |
|||
lambd: 0.95 |
|||
learning_rate: 3.0e-4 |
|||
learning_rate_schedule: linear |
|||
max_steps: 5.0e5 |
|||
memory_size: 256 |
|||
normalize: false |
|||
num_epoch: 3 |
|||
num_layers: 2 |
|||
time_horizon: 64 |
|||
sequence_length: 64 |
|||
summary_freq: 10000 |
|||
use_recurrent: false |
|||
vis_encode_type: simple |
|||
reward_signals: |
|||
extrinsic: |
|||
strength: 1.0 |
|||
gamma: 0.99 |
|||
|
|||
{BRAIN_NAME}: |
|||
trainer: ppo |
|||
batch_size: {BATCH_SIZE} |
|||
beta: 5.0e-3 |
|||
buffer_size: 64 |
|||
epsilon: 0.2 |
|||
hidden_units: {HIDDEN_UNITS} |
|||
lambd: 0.95 |
|||
learning_rate: 5.0e-3 |
|||
max_steps: 2500 |
|||
memory_size: 256 |
|||
normalize: false |
|||
num_epoch: 3 |
|||
num_layers: 2 |
|||
time_horizon: 64 |
|||
sequence_length: 64 |
|||
summary_freq: {SUMMARY_FREQ} |
|||
use_recurrent: false |
|||
reward_signals: |
|||
curiosity: |
|||
strength: 1.0 |
|||
gamma: 0.99 |
|||
encoding_size: 128 |
|||
""" |
|||
|
|||
SAC_CONFIG = f""" |
|||
default: |
|||
trainer: sac |
|||
batch_size: 128 |
|||
buffer_size: 50000 |
|||
buffer_init_steps: 0 |
|||
hidden_units: 128 |
|||
init_entcoef: 1.0 |
|||
learning_rate: 3.0e-4 |
|||
learning_rate_schedule: constant |
|||
max_steps: 5.0e5 |
|||
memory_size: 256 |
|||
normalize: false |
|||
num_update: 1 |
|||
train_interval: 1 |
|||
num_layers: 2 |
|||
time_horizon: 64 |
|||
sequence_length: 64 |
|||
summary_freq: 10000 |
|||
tau: 0.005 |
|||
use_recurrent: false |
|||
vis_encode_type: simple |
|||
reward_signals: |
|||
extrinsic: |
|||
strength: 1.0 |
|||
gamma: 0.99 |
|||
|
|||
{BRAIN_NAME}: |
|||
trainer: sac |
|||
batch_size: {BATCH_SIZE} |
|||
buffer_size: 64 |
|||
buffer_init_steps: 100 |
|||
hidden_units: {HIDDEN_UNITS} |
|||
init_entcoef: 0.01 |
|||
learning_rate: 3.0e-4 |
|||
max_steps: 1000 |
|||
memory_size: 256 |
|||
normalize: false |
|||
num_update: 1 |
|||
train_interval: 1 |
|||
num_layers: 1 |
|||
time_horizon: 64 |
|||
sequence_length: 64 |
|||
summary_freq: {SUMMARY_FREQ} |
|||
tau: 0.005 |
|||
use_recurrent: false |
|||
curiosity_enc_size: 128 |
|||
demo_path: None |
|||
vis_encode_type: simple |
|||
reward_signals: |
|||
curiosity: |
|||
strength: 1.0 |
|||
gamma: 0.99 |
|||
encoding_size: 128 |
|||
""" |
|||
|
|||
|
|||
@pytest.mark.parametrize("use_recurrent", [True, False]) |
|||
@pytest.mark.parametrize("trainer_type", [TrainerType.PPO, TrainerType.SAC]) |
|||
def test_convert_behaviors(trainer_type, use_recurrent): |
|||
if trainer_type == TrainerType.PPO: |
|||
trainer_config = PPO_CONFIG |
|||
trainer_settings_type = PPOSettings |
|||
elif trainer_type == TrainerType.SAC: |
|||
trainer_config = SAC_CONFIG |
|||
trainer_settings_type = SACSettings |
|||
|
|||
old_config = yaml.load(trainer_config) |
|||
old_config[BRAIN_NAME]["use_recurrent"] = use_recurrent |
|||
new_config = convert_behaviors(old_config) |
|||
|
|||
# Test that the new config can be converted to TrainerSettings w/o exceptions |
|||
trainer_settings = new_config[BRAIN_NAME] |
|||
|
|||
# Test that the trainer_settings contains the settings for BRAIN_NAME and |
|||
# the defaults where specified |
|||
assert trainer_settings.trainer_type == trainer_type |
|||
assert isinstance(trainer_settings.hyperparameters, trainer_settings_type) |
|||
assert trainer_settings.hyperparameters.batch_size == BATCH_SIZE |
|||
assert trainer_settings.network_settings.hidden_units == HIDDEN_UNITS |
|||
assert RewardSignalType.CURIOSITY in trainer_settings.reward_signals |
|||
|
|||
|
|||
@mock.patch("mlagents.trainers.upgrade_config.convert_behaviors") |
|||
@mock.patch("mlagents.trainers.upgrade_config.remove_nones") |
|||
@mock.patch("mlagents.trainers.upgrade_config.write_to_yaml_file") |
|||
@mock.patch("mlagents.trainers.upgrade_config.parse_args") |
|||
@mock.patch("mlagents.trainers.upgrade_config.load_config") |
|||
def test_main(mock_load, mock_parse, yaml_write_mock, remove_none_mock, mock_convert): |
|||
test_output_file = "test.yaml" |
|||
mock_load.side_effect = [ |
|||
yaml.safe_load(PPO_CONFIG), |
|||
"test_curriculum_config", |
|||
"test_sampler_config", |
|||
] |
|||
mock_args = Namespace( |
|||
trainer_config_path="mock", |
|||
output_config_path=test_output_file, |
|||
curriculum="test", |
|||
sampler="test", |
|||
) |
|||
mock_parse.return_value = mock_args |
|||
mock_convert.return_value = "test_converted_config" |
|||
dict_without_nones = mock.Mock(name="nonones") |
|||
remove_none_mock.return_value = dict_without_nones |
|||
|
|||
main() |
|||
saved_dict = remove_none_mock.call_args[0][0] |
|||
# Check that the output of the remove_none call is here |
|||
yaml_write_mock.assert_called_with(dict_without_nones, test_output_file) |
|||
assert saved_dict["behaviors"] == "test_converted_config" |
|||
assert saved_dict["curriculum"] == "test_curriculum_config" |
|||
assert saved_dict["parameter_randomization"] == "test_sampler_config" |
|||
|
|||
|
|||
def test_remove_nones(): |
|||
dict_with_nones = {"hello": {"hello2": 2, "hello3": None}, "hello4": None} |
|||
dict_without_nones = {"hello": {"hello2": 2}} |
|||
output = remove_nones(dict_with_nones) |
|||
assert output == dict_without_nones |
|
|||
# NOTE: This upgrade script is a temporary measure for the transition between the old-format |
|||
# configuration file and the new format. It will be marked for deprecation once the |
|||
# Python CLI and configuration files are finalized, and removed the following release. |
|||
|
|||
import attr |
|||
import cattr |
|||
import yaml |
|||
from typing import Dict, Any |
|||
import argparse |
|||
from mlagents.trainers.settings import TrainerSettings, NetworkSettings, TrainerType |
|||
from mlagents.trainers.cli_utils import load_config |
|||
from mlagents.trainers.exception import TrainerConfigError |
|||
|
|||
|
|||
# Take an existing trainer config (e.g. trainer_config.yaml) and turn it into the new format. |
|||
def convert_behaviors(old_trainer_config: Dict[str, Any]) -> Dict[str, Any]: |
|||
all_behavior_config_dict = {} |
|||
default_config = old_trainer_config.get("default", {}) |
|||
for behavior_name, config in old_trainer_config.items(): |
|||
if behavior_name != "default": |
|||
config = default_config.copy() |
|||
config.update(old_trainer_config[behavior_name]) |
|||
|
|||
# Convert to split TrainerSettings, Hyperparameters, NetworkSettings |
|||
# Set trainer_type and get appropriate hyperparameter settings |
|||
try: |
|||
trainer_type = config["trainer"] |
|||
except KeyError: |
|||
raise TrainerConfigError( |
|||
"Config doesn't specify a trainer type. " |
|||
"Please specify trainer: in your config." |
|||
) |
|||
new_config = {} |
|||
new_config["trainer_type"] = trainer_type |
|||
hyperparam_cls = TrainerType(trainer_type).to_settings() |
|||
# Try to absorb as much as possible into the hyperparam_cls |
|||
new_config["hyperparameters"] = cattr.structure(config, hyperparam_cls) |
|||
|
|||
# Try to absorb as much as possible into the network settings |
|||
new_config["network_settings"] = cattr.structure(config, NetworkSettings) |
|||
# Deal with recurrent |
|||
try: |
|||
if config["use_recurrent"]: |
|||
new_config[ |
|||
"network_settings" |
|||
].memory = NetworkSettings.MemorySettings( |
|||
sequence_length=config["sequence_length"], |
|||
memory_size=config["memory_size"], |
|||
) |
|||
except KeyError: |
|||
raise TrainerConfigError( |
|||
"Config doesn't specify use_recurrent. " |
|||
"Please specify true or false for use_recurrent in your config." |
|||
) |
|||
# Absorb the rest into the base TrainerSettings |
|||
for key, val in config.items(): |
|||
if key in attr.fields_dict(TrainerSettings): |
|||
new_config[key] = val |
|||
|
|||
# Structure the whole thing |
|||
all_behavior_config_dict[behavior_name] = cattr.structure( |
|||
new_config, TrainerSettings |
|||
) |
|||
return all_behavior_config_dict |
|||
|
|||
|
|||
def write_to_yaml_file(unstructed_config: Dict[str, Any], output_config: str) -> None: |
|||
with open(output_config, "w") as f: |
|||
try: |
|||
yaml.dump(unstructed_config, f, sort_keys=False) |
|||
except TypeError: # Older versions of pyyaml don't support sort_keys |
|||
yaml.dump(unstructed_config, f) |
|||
|
|||
|
|||
def remove_nones(config: Dict[Any, Any]) -> Dict[str, Any]: |
|||
new_config = {} |
|||
for key, val in config.items(): |
|||
if isinstance(val, dict): |
|||
new_config[key] = remove_nones(val) |
|||
elif val is not None: |
|||
new_config[key] = val |
|||
return new_config |
|||
|
|||
|
|||
def parse_args(): |
|||
argparser = argparse.ArgumentParser( |
|||
formatter_class=argparse.ArgumentDefaultsHelpFormatter |
|||
) |
|||
argparser.add_argument( |
|||
"trainer_config_path", |
|||
help="Path to old format (<=0.16.X) trainer configuration YAML.", |
|||
) |
|||
argparser.add_argument( |
|||
"--curriculum", |
|||
help="Path to old format (<=0.16.X) curriculum configuration YAML.", |
|||
default=None, |
|||
) |
|||
argparser.add_argument( |
|||
"--sampler", |
|||
help="Path to old format (<=0.16.X) parameter randomization configuration YAML.", |
|||
default=None, |
|||
) |
|||
argparser.add_argument( |
|||
"output_config_path", help="Path to write converted YAML file." |
|||
) |
|||
args = argparser.parse_args() |
|||
return args |
|||
|
|||
|
|||
def main() -> None: |
|||
args = parse_args() |
|||
print( |
|||
f"Converting {args.trainer_config_path} and saving to {args.output_config_path}." |
|||
) |
|||
|
|||
old_config = load_config(args.trainer_config_path) |
|||
behavior_config_dict = convert_behaviors(old_config) |
|||
full_config = {"behaviors": behavior_config_dict} |
|||
|
|||
# Convert curriculum and sampler. note that we don't validate these; if it was correct |
|||
# before it should be correct now. |
|||
if args.curriculum is not None: |
|||
curriculum_config_dict = load_config(args.curriculum) |
|||
full_config["curriculum"] = curriculum_config_dict |
|||
|
|||
if args.sampler is not None: |
|||
sampler_config_dict = load_config(args.sampler) |
|||
full_config["parameter_randomization"] = sampler_config_dict |
|||
|
|||
# Convert config to dict |
|||
unstructed_config = cattr.unstructure(full_config) |
|||
unstructed_config = remove_nones(unstructed_config) |
|||
write_to_yaml_file(unstructed_config, args.output_config_path) |
|||
|
|||
|
|||
if __name__ == "__main__": |
|||
main() |
1001
Project/Assets/ML-Agents/Examples/Walker/Demos/ExpertWalker.demo
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: d75254c9e8cb8402d98eede161c74a60 |
|||
ScriptedImporter: |
|||
fileIDToRecycleName: |
|||
11400000: Assets/ML-Agents/Examples/Walker/Demos/ExpertWalker.demo |
|||
externalObjects: {} |
|||
userData: ' (Unity.MLAgents.Demonstrations.DemonstrationSummary)' |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3} |
1001
Project/Assets/ML-Agents/Examples/Walker/Prefabs/WalkerPair.prefab
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
1001
Project/Assets/ML-Agents/Examples/Walker/Scenes/Walker.unity
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
import attr |
|||
import cattr |
|||
import yaml |
|||
from typing import Dict, Any |
|||
import argparse |
|||
from mlagents.trainers.settings import TrainerSettings, NetworkSettings, TrainerType |
|||
from mlagents.trainers.cli_utils import load_config |
|||
|
|||
|
|||
# Take an existing trainer config (e.g. trainer_config.yaml) and turn it into the new format. |
|||
def convert_behaviors(old_trainer_config: Dict[str, Any]) -> Dict[str, Any]: |
|||
all_behavior_config_dict = {} |
|||
default_config = old_trainer_config.get("default", {}) |
|||
for behavior_name, config in old_trainer_config.items(): |
|||
if behavior_name != "default": |
|||
config = default_config.copy() |
|||
config.update(old_trainer_config[behavior_name]) |
|||
|
|||
# Convert to split TrainerSettings, Hyperparameters, NetworkSettings |
|||
# Set trainer_type and get appropriate hyperparameter settings |
|||
trainer_type = config["trainer"] |
|||
new_config = {} |
|||
new_config["trainer_type"] = trainer_type |
|||
hyperparam_cls = TrainerType(trainer_type).to_settings() |
|||
# Try to absorb as much as possible into the hyperparam_cls |
|||
new_config["hyperparameters"] = cattr.structure(config, hyperparam_cls) |
|||
|
|||
# Try to absorb as much as possible into the network settings |
|||
new_config["network_settings"] = cattr.structure(config, NetworkSettings) |
|||
# Deal with recurrent |
|||
if config["use_recurrent"]: |
|||
new_config["network_settings"].memory = NetworkSettings.MemorySettings( |
|||
sequence_length=config["sequence_length"], |
|||
memory_size=config["memory_size"], |
|||
) |
|||
|
|||
# Absorb the rest into the base TrainerSettings |
|||
for key, val in config.items(): |
|||
if key in attr.fields_dict(TrainerSettings): |
|||
new_config[key] = val |
|||
|
|||
# Structure the whole thing |
|||
all_behavior_config_dict[behavior_name] = cattr.structure( |
|||
new_config, TrainerSettings |
|||
) |
|||
return all_behavior_config_dict |
|||
|
|||
|
|||
def write_to_yaml_file(config: Dict[str, Any], output_config: str): |
|||
unstructed_config = cattr.unstructure(config) |
|||
unstructed_config = remove_nones(unstructed_config) |
|||
with open(output_config, "w") as f: |
|||
try: |
|||
yaml.dump(unstructed_config, f, sort_keys=False) |
|||
except TypeError: # Older versions of pyyaml don't support sort_keys |
|||
yaml.dump(unstructed_config, f) |
|||
|
|||
|
|||
def remove_nones(config: Dict[Any, Any]): |
|||
new_config = {} |
|||
for key, val in config.items(): |
|||
if isinstance(val, dict): |
|||
new_config[key] = remove_nones(val) |
|||
elif val is not None: |
|||
new_config[key] = val |
|||
return new_config |
|||
|
|||
|
|||
if __name__ == "__main__": |
|||
|
|||
argparser = argparse.ArgumentParser( |
|||
formatter_class=argparse.ArgumentDefaultsHelpFormatter |
|||
) |
|||
argparser.add_argument( |
|||
"trainer_config_path", |
|||
help="Path to old format (<=0.16.X) trainer configuration YAML.", |
|||
) |
|||
argparser.add_argument( |
|||
"--curriculum", |
|||
help="Path to old format (<=0.16.X) curriculum configuration YAML.", |
|||
default=None, |
|||
) |
|||
argparser.add_argument( |
|||
"--sampler", |
|||
help="Path to old format (<=0.16.X) parameter randomization configuration YAML.", |
|||
default=None, |
|||
) |
|||
argparser.add_argument( |
|||
"output_config_path", help="Path to write converted YAML file." |
|||
) |
|||
args = argparser.parse_args() |
|||
print( |
|||
f"Converting {args.trainer_config_path} and saving to {args.output_config_path}." |
|||
) |
|||
|
|||
old_config = load_config(args.trainer_config_path) |
|||
behavior_config_dict = convert_behaviors(old_config) |
|||
full_config = {"behaviors": behavior_config_dict} |
|||
|
|||
# Convert curriculum and sampler. note that we don't validate these; if it was correct |
|||
# before it should be correct now. |
|||
if args.curriculum is not None: |
|||
curriculum_config_dict = load_config(args.curriculum) |
|||
full_config["curriculum"] = curriculum_config_dict |
|||
|
|||
if args.sampler is not None: |
|||
sampler_config_dict = load_config(args.curriculum) |
|||
full_config["parameter_randomization"] = sampler_config_dict |
|||
|
|||
write_to_yaml_file(full_config, args.output_config_path) |
撰写
预览
正在加载...
取消
保存
Reference in new issue