比较提交

...
此合并请求有变更与目标分支冲突。
/UnitySDK/ProjectSettings/EditorBuildSettings.asset
/UnitySDK/ProjectSettings/ProjectSettings.asset
/UnitySDK/Assets/ML-Agents/Examples/WallJump/Scenes/WallJump.unity
/UnitySDK/Assets/ML-Agents/Examples/WallJump/TFModels/BigWallJumpLearning.nn
/UnitySDK/Assets/ML-Agents/Examples/WallJump/TFModels/SmallWallJumpLearning.nn
/UnitySDK/Assets/ML-Agents/Examples/WallJump/Prefabs/WallJumpArea.prefab
/UnitySDK/Assets/ML-Agents/Examples/WallJump/Scripts/WallJumpAgent.cs
/UnitySDK/ProjectSettings/EditorSettings.asset
/UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/WallJumpPlayer.asset
/UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/BigWallJumpLearning.asset
/UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/SmallWallJumpLearning.asset
/UnitySDK/Assets/ML-Agents/Examples/WallJump/Scripts/WallJumpAcademy.cs
/UnitySDK/Assets/ML-Agents/Examples/WallJump/TFModels/BigWallJumpLearning.nn.meta
/UnitySDK/Assets/ML-Agents/Examples/WallJump/TFModels/SmallWallJumpLearning.nn.meta
/config/trainer_config.yaml
/UnitySDK/csharp_timers.json
/UnitySDK/UnitySDK.sln.DotSettings
/UnitySDK/UnitySDK.sln.DotSettings

7 次代码提交

共有 24 个文件被更改,包括 500 次插入2376 次删除
  1. 9
      UnitySDK/ProjectSettings/TimeManager.asset
  2. 5
      UnitySDK/ProjectSettings/EditorBuildSettings.asset
  3. 6
      UnitySDK/ProjectSettings/ProjectSettings.asset
  4. 9
      UnitySDK/ProjectSettings/EditorSettings.asset
  5. 4
      UnitySDK/Assets/ML-Agents/Examples/Soccer/Materials/Physic_Materials/zeroFriction.physicMaterial
  6. 9
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/WallJumpPlayer.asset
  7. 9
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/BigWallJumpLearning.asset
  8. 9
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/SmallWallJumpLearning.asset
  9. 269
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Prefabs/WallJumpArea.prefab
  10. 118
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Scenes/WallJump.unity
  11. 16
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Scripts/WallJumpAcademy.cs
  12. 193
      UnitySDK/Assets/ML-Agents/Examples/WallJump/Scripts/WallJumpAgent.cs
  13. 1001
      UnitySDK/Assets/ML-Agents/Examples/WallJump/TFModels/BigWallJumpLearning.nn
  14. 1001
      UnitySDK/Assets/ML-Agents/Examples/WallJump/TFModels/SmallWallJumpLearning.nn
  15. 2
      UnitySDK/Assets/ML-Agents/Examples/WallJump/TFModels/BigWallJumpLearning.nn.meta
  16. 2
      UnitySDK/Assets/ML-Agents/Examples/WallJump/TFModels/SmallWallJumpLearning.nn.meta
  17. 26
      config/trainer_config.yaml
  18. 11
      UnitySDK/Assets/ML-Agents/Examples/SharedAssets/Scripts/AgentCubeGroundCheck.cs.meta
  19. 3
      UnitySDK/Assets/ML-Agents/Examples/SharedAssets/Scripts/AgentCubeMovement.cs.meta
  20. 80
      UnitySDK/Assets/ML-Agents/Examples/SharedAssets/Scripts/AgentCubeGroundCheck.cs
  21. 74
      UnitySDK/Assets/ML-Agents/Examples/SharedAssets/Scripts/AgentCubeMovement.cs
  22. 1
      UnitySDK/csharp_timers.json
  23. 1
      csharp_timers.json
  24. 18
      UnitySDK/UnitySDK.sln.DotSettings

9
UnitySDK/ProjectSettings/TimeManager.asset


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!5 &1
TimeManager:
m_ObjectHideFlags: 0
Fixed Timestep: 0.02
Maximum Allowed Timestep: 0.33333334
m_TimeScale: 1
Maximum Particle Timestep: 0.03

5
UnitySDK/ProjectSettings/EditorBuildSettings.asset


EditorBuildSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Scenes: []
m_Scenes:
- enabled: 1
path: Assets/ML-Agents/Examples/WallJump/Scenes/WallJump.unity
guid: 56024e8d040d344709949bc88128944d

6
UnitySDK/ProjectSettings/ProjectSettings.asset


--- !u!129 &1
PlayerSettings:
m_ObjectHideFlags: 0
serializedVersion: 14
serializedVersion: 15
productGUID: cd7e9a0e0d1d14312ad9e89757262f3b
AndroidProfiler: 0
AndroidFilterTouchesWhenObscured: 0

oculus:
sharedDepthBuffer: 0
dashSupport: 0
v2Signing: 0
protectGraphicsMemory: 0
useHDRDisplay: 0
m_ColorGamuts: 00000000

tvOSManualSigningProvisioningProfileID:
appleEnableAutomaticSigning: 0
clonedFromGUID: 00000000000000000000000000000000
AndroidTargetDevice: 0
AndroidTargetArchitectures: 5
AndroidSplashScreenScale: 0
androidSplashScreen: {fileID: 0}
AndroidKeystoreName:

switchAllowsVideoCapturing: 1
switchAllowsRuntimeAddOnContentInstall: 0
switchDataLossConfirmation: 0
switchUserAccountLockEnabled: 0
switchSupportedNpadStyles: 3
switchSocketConfigEnabled: 0
switchTcpInitialSendBufferSize: 32

9
UnitySDK/ProjectSettings/EditorSettings.asset


--- !u!159 &1
EditorSettings:
m_ObjectHideFlags: 0
serializedVersion: 4
serializedVersion: 7
m_LineEndingsForNewScripts: 1
m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd
m_EtcTextureCompressorBehavior: 0
m_EtcTextureFastCompressor: 2
m_EtcTextureNormalCompressor: 2
m_EtcTextureBestCompressor: 5
m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef
m_ProjectGenerationRootNamespace:
m_UserGeneratedProjectSuffix:
m_CollabEditorSettings:

4
UnitySDK/Assets/ML-Agents/Examples/Soccer/Materials/Physic_Materials/zeroFriction.physicMaterial


dynamicFriction: 0
staticFriction: 0
bounciness: 0
frictionCombine: 0
bounceCombine: 3
frictionCombine: 1
bounceCombine: 1

9
UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/WallJumpPlayer.asset


m_Name: WallJumpPlayer
m_EditorClassIdentifier:
brainParameters:
vectorObservationSize: 74
numStackedVectorObservations: 6
vectorActionSize: 03000000030000000300000002000000
vectorObservationSize: 83
numStackedVectorObservations: 1
vectorActionSize: 030000000300000002000000
-
-
-
-

branchIndex: 1
value: 1
- key: 32
branchIndex: 3
branchIndex: 2
value: 1

9
UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/BigWallJumpLearning.asset


m_Name: BigWallJumpLearning
m_EditorClassIdentifier:
brainParameters:
vectorObservationSize: 74
numStackedVectorObservations: 6
vectorActionSize: 03000000030000000300000002000000
vectorObservationSize: 83
numStackedVectorObservations: 1
vectorActionSize: 030000000300000002000000
-
model: {fileID: 11400000, guid: b036370dc05b9481bbcee7db40d40b5d, type: 3}
model: {fileID: 11400000, guid: 2eb7bc1cb4297440f8970c08096869cd, type: 3}
inferenceDevice: 0

9
UnitySDK/Assets/ML-Agents/Examples/WallJump/Brains/SmallWallJumpLearning.asset


m_Name: SmallWallJumpLearning
m_EditorClassIdentifier:
brainParameters:
vectorObservationSize: 74
numStackedVectorObservations: 6
vectorActionSize: 03000000030000000300000002000000
vectorObservationSize: 83
numStackedVectorObservations: 1
vectorActionSize: 030000000300000002000000
-
model: {fileID: 11400000, guid: ef4a2c4f314e94d718e08c7c71b3c5f0, type: 3}
model: {fileID: 11400000, guid: 32c7a8411c2df4eefba2216c5880b982, type: 3}
inferenceDevice: 0

269
UnitySDK/Assets/ML-Agents/Examples/WallJump/Prefabs/WallJumpArea.prefab


- component: {fileID: 4651390251185036}
- component: {fileID: 65193133000831296}
- component: {fileID: 54678503543725326}
- component: {fileID: 114549333318442362}
- component: {fileID: 114925928594762506}
- component: {fileID: 114092229367912210}
m_Layer: 0

m_Component:
- component: {fileID: 4886712515982252}
- component: {fileID: 33154540559471312}
- component: {fileID: 65222653177649434}
- component: {fileID: 23622490785648000}
m_Layer: 0
m_Name: Ground

m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1395477826315484
--- !u!1 &1438278873213570
m_ObjectHideFlags: 0
m_ObjectHideFlags: 1
- component: {fileID: 4294902888415044}
- component: {fileID: 33528566080995282}
- component: {fileID: 23354960268522594}
- component: {fileID: 54247662820912646}
- component: {fileID: 65274572473947754}
- component: {fileID: 4149981577781684}
- component: {fileID: 33146660732111500}
- component: {fileID: 65611839918206582}
- component: {fileID: 23557798664619476}
- component: {fileID: 54971179506610726}
m_Name: shortBlock
m_TagString: block
m_Name: Border
m_TagString: walkableSurface
--- !u!1 &1438278873213570
--- !u!1 &1478101936519122
m_ObjectHideFlags: 1
m_ObjectHideFlags: 0
- component: {fileID: 4149981577781684}
- component: {fileID: 33146660732111500}
- component: {fileID: 65611839918206582}
- component: {fileID: 23557798664619476}
- component: {fileID: 4972445296092312}
- component: {fileID: 33570794665724658}
- component: {fileID: 65182162565226850}
- component: {fileID: 23862399076711284}
- component: {fileID: 54757390068510808}
m_Name: Border
m_TagString: walkableSurface
m_Name: ShortBlock
m_TagString: block
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0

- component: {fileID: 33638988508065470}
- component: {fileID: 65172803744987730}
- component: {fileID: 23154667836274938}
- component: {fileID: 54796686971211664}
m_Layer: 0
m_Name: Wall
m_TagString: wall

m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1438278873213570}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: -0.05, z: 0}
m_LocalPosition: {x: 0, y: -0.005, z: 0}
m_LocalScale: {x: 1.0500001, y: 1, z: 1.0500001}
m_Children: []
m_Father: {fileID: 4886712515982252}

m_Father: {fileID: 4651390251185036}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4294902888415044
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1395477826315484}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0.35, y: 1.55, z: -6.02}
m_LocalScale: {x: 0.01, y: 0.01, z: 0.01}
m_Children: []
m_Father: {fileID: 4768003208014390}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4651390251185036
Transform:
m_ObjectHideFlags: 1

m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1886170194660384}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 1.05, z: -6.27}
m_LocalPosition: {x: 0, y: 1.05, z: -8.17}
m_RootOrder: 4
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4768003208014390
Transform:

- {fileID: 4868361895932270}
- {fileID: 4651390251185036}
- {fileID: 4011541840118462}
- {fileID: 4294902888415044}
- {fileID: 4972445296092312}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

m_GameObject: {fileID: 1528738716925344}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -1.98}
m_LocalScale: {x: 20, y: 0, z: 1.5}
m_LocalScale: {x: 21.5, y: 8.5, z: 1.5}
m_Children: []
m_Father: {fileID: 4768003208014390}
m_RootOrder: 0

m_Children:
- {fileID: 4149981577781684}
m_Father: {fileID: 4768003208014390}
m_RootOrder: 5
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4907656655904910
Transform:

m_Father: {fileID: 4238879128256220}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!4 &4972445296092312
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1478101936519122}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -2.67, y: 1.33, z: -7.86}
m_LocalScale: {x: 3, y: 1.5, z: 3}
m_Children: []
m_Father: {fileID: 4768003208014390}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!20 &20236434339313884
Camera:
m_ObjectHideFlags: 1

m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23354960268522594
--- !u!23 &23557798664619476
m_GameObject: {fileID: 1395477826315484}
m_GameObject: {fileID: 1438278873213570}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1

m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: eaad04b0e0dec42229c9cb00a981d7ac, type: 2}
- {fileID: 2100000, guid: 69fefdd39d2b34b169e921910bed9c0d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0

m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23557798664619476
--- !u!23 &23621829541977726
m_GameObject: {fileID: 1438278873213570}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
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
--- !u!23 &23621829541977726
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1982078136115924}
m_Enabled: 1
m_CastShadows: 1

m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1886170194660384}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: ecd59def9213741058b969f699d10e8e, 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!23 &23862399076711284
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1478101936519122}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1

m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: ecd59def9213741058b969f699d10e8e, type: 2}
- {fileID: 2100000, guid: eaad04b0e0dec42229c9cb00a981d7ac, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1324926338613664}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &33528566080995282
--- !u!33 &33570794665724658
m_GameObject: {fileID: 1395477826315484}
m_Mesh: {fileID: 4300000, guid: edfff343befb06d44b270d8eb6836df7, type: 3}
m_GameObject: {fileID: 1478101936519122}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &33618033993823702
MeshFilter:
m_ObjectHideFlags: 1

m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1823012949159486}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!54 &54247662820912646
--- !u!54 &54678503543725326
m_GameObject: {fileID: 1395477826315484}
m_GameObject: {fileID: 1195095783991828}
m_AngularDrag: 0.05
m_AngularDrag: 1
m_Constraints: 116
m_CollisionDetection: 0
--- !u!54 &54678503543725326
m_Constraints: 80
m_CollisionDetection: 1
--- !u!54 &54757390068510808
m_GameObject: {fileID: 1195095783991828}
m_GameObject: {fileID: 1478101936519122}
m_Drag: 2
m_AngularDrag: 0.05
m_Drag: 0.5
m_AngularDrag: 0.5
m_Constraints: 80
m_Constraints: 0
--- !u!65 &65172803744987730
BoxCollider:
--- !u!54 &54796686971211664
Rigidbody:
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!65 &65193133000831296
m_Mass: 10000
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!54 &54971179506610726
Rigidbody:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1438278873213570}
serializedVersion: 2
m_Mass: 10000
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!65 &65172803744987730
m_GameObject: {fileID: 1195095783991828}
m_Material: {fileID: 0}
m_GameObject: {fileID: 1528738716925344}
m_Material: {fileID: 13400000, guid: 8c6374adc4d814c2eb5ecdfe810d813b, type: 2}
--- !u!65 &65222653177649434
--- !u!65 &65182162565226850
m_GameObject: {fileID: 1324926338613664}
m_GameObject: {fileID: 1478101936519122}
m_Enabled: 0
m_Enabled: 1
--- !u!65 &65274572473947754
--- !u!65 &65193133000831296
m_GameObject: {fileID: 1395477826315484}
m_GameObject: {fileID: 1195095783991828}
m_Size: {x: 300, y: 200, z: 300}
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!65 &65431820516000586
BoxCollider:

m_Script: {fileID: 11500000, guid: bb172294dbbcc408286b156a2c4b553c, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &114549333318442362
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1195095783991828}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e340869c035f9451681a919fc0bf98b2, type: 3}
m_Name:
m_EditorClassIdentifier:
debugDrawGizmos: 0
hitGroundColliders:
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
groundCheckBoxLocalPos: {x: 0, y: -0.52, z: 0}
groundCheckBoxSize: {x: 0.99, y: 0.02, z: 0.99}
isGrounded: 0
ungroundedTime: 0
groundedTime: 0
--- !u!114 &114925928594762506
MonoBehaviour:
m_ObjectHideFlags: 1

m_Script: {fileID: 11500000, guid: 676fca959b8ee45539773905ca71afa1, type: 3}
m_Name:
m_EditorClassIdentifier:
brain: {fileID: 0}
brain: {fileID: 11400000, guid: 39363e248a8794f05baed8bfa17eb690, type: 2}
agentParameters:
agentCameras: []
agentRenderTextures: []

numberOfActionsBetweenDecisions: 5
numberOfActionsBetweenDecisions: 3
goal: {fileID: 1982078136115924}
shortBlock: {fileID: 1395477826315484}
shortBlock: {fileID: 1478101936519122}
jumpingTime: 0
jumpTime: 0.2
fallingForce: 111
hitGroundColliders:
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}

118
UnitySDK/Assets/ML-Agents/Examples/WallJump/Scenes/WallJump.unity


m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.44971442, g: 0.499779, b: 0.5756377, a: 1}
m_IndirectSpecularColor: {r: 0.44971484, g: 0.49977952, b: 0.57563835, a: 1}
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0

m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}
m_IsPrefabParent: 0
--- !u!1001 &987234914
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}
m_IsPrefabParent: 0
--- !u!1 &1009000883
GameObject:
m_ObjectHideFlags: 0

m_Component:
- component: {fileID: 1574236049}
- component: {fileID: 1574236050}
- component: {fileID: 1574236048}
m_Layer: 0
m_Name: Academy
m_TagString: Untagged

m_IsActive: 1
--- !u!114 &1574236048
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1574236047}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7dbad9f11d9f4b2884e5f8fd66c81426, type: 3}
m_Name:
m_EditorClassIdentifier:
runningForceMode: 1
agentRunSpeed: 20
agentRunInAirSpeed: 10
agentIdleDragVelCoeff: 0.9
agentRotationSpeed: 7
agentJumpVelocity: 20
agentFallingSpeed: 50
--- !u!4 &1574236049
Transform:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: 50b93afe82bc647b581a706891913e7f, type: 3}
m_Name:
m_EditorClassIdentifier:
broadcastHub:
brainsToControl:
- {fileID: 11400000, guid: 2069d6ef649a549feb29054d6af8a86f, type: 2}
- {fileID: 11400000, guid: b5f530c5bf8d64bf8a18df92e283bb9c, type: 2}
m_TrainingConfiguration:
width: 80
height: 80

resetParameters:
m_ResetParameters:
- key: big_wall_min_height
value: 8
value: 8.5
value: 8
agentRunSpeed: 3
agentJumpHeight: 2.75
value: 8.5
gravityMultiplier: 2.5
agentJumpVelocity: 777
agentJumpVelocityMaxChange: 10
--- !u!1001 &1813512988
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4768003208014390, guid: 54e3af627216447f790531de496099f0, type: 2}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 54e3af627216447f790531de496099f0, type: 2}
m_IsPrefabParent: 0
--- !u!1001 &1839574406
Prefab:
m_ObjectHideFlags: 0

16
UnitySDK/Assets/ML-Agents/Examples/WallJump/Scripts/WallJumpAcademy.cs


public class WallJumpAcademy : Academy
{
[Header("Specific to WallJump")]
public float agentRunSpeed;
public float agentJumpHeight;
[HideInInspector]
//use ~3 to make things less floaty
public float gravityMultiplier = 2.5f;
[HideInInspector]
public float agentJumpVelocity = 777;
[HideInInspector]
public float agentJumpVelocityMaxChange = 10;
// Use this for initialization
public override void InitializeAcademy()
{
Physics.gravity *= gravityMultiplier;
}
}

193
UnitySDK/Assets/ML-Agents/Examples/WallJump/Scripts/WallJumpAgent.cs


using UnityEngine;
using MLAgents;
[RequireComponent(typeof(AgentCubeGroundCheck))] // Required for groundcheck
public class WallJumpAgent : Agent
{
// Depending on this value, the wall will have different height

public GameObject ground;
public GameObject spawnArea;
Bounds m_SpawnAreaBounds;
public GameObject goal;
Bounds m_SpawnAreaBounds;
Rigidbody m_ShortBlockRb;
Rigidbody m_AgentRb;
Material m_GroundMaterial;

string[] m_DetectableObjects;
public float jumpingTime;
public float jumpTime;
// This is a downward force applied when falling to make jumps look
// less floaty
public float fallingForce;
// Use to check the coliding objects
public Collider[] hitGroundColliders = new Collider[3];
Vector3 m_JumpTargetPos;
Vector3 m_JumpStartingPos;
string[] m_DetectableObjects;
//Groundcheck
AgentCubeGroundCheck m_groundCheck;
AgentCubeMovement m_agentMovement;
m_groundCheck = GetComponent<AgentCubeGroundCheck>();
m_agentMovement = FindObjectOfType<AgentCubeMovement>();
// Begin the jump sequence
public void Jump()
{
jumpingTime = 0.2f;
m_JumpStartingPos = m_AgentRb.position;
}
/// <summary>
/// Does the ground check.
/// </summary>
/// <returns><c>true</c>, if the agent is on the ground,
/// <c>false</c> otherwise.</returns>
/// <param name="smallCheck"></param>
public bool DoGroundCheck(bool smallCheck)
{
if (!smallCheck)
{
hitGroundColliders = new Collider[3];
var o = gameObject;
Physics.OverlapBoxNonAlloc(
o.transform.position + new Vector3(0, -0.05f, 0),
new Vector3(0.95f / 2f, 0.5f, 0.95f / 2f),
hitGroundColliders,
o.transform.rotation);
var grounded = false;
foreach (var col in hitGroundColliders)
{
if (col != null && col.transform != transform &&
(col.CompareTag("walkableSurface") ||
col.CompareTag("block") ||
col.CompareTag("wall")))
{
grounded = true; //then we're grounded
break;
}
}
return grounded;
}
else
{
RaycastHit hit;
Physics.Raycast(transform.position + new Vector3(0, -0.05f, 0), -Vector3.up, out hit,
1f);
if (hit.collider != null &&
(hit.collider.CompareTag("walkableSurface") ||
hit.collider.CompareTag("block") ||
hit.collider.CompareTag("wall"))
&& hit.normal.y > 0.95f)
{
return true;
}
return false;
}
}
/// <summary>
/// Moves a rigidbody towards a position smoothly.
/// </summary>
/// <param name="targetPos">Target position.</param>
/// <param name="rb">The rigidbody to be moved.</param>
/// <param name="targetVel">The velocity to target during the
/// motion.</param>
/// <param name="maxVel">The maximum velocity posible.</param>
void MoveTowards(
Vector3 targetPos, Rigidbody rb, float targetVel, float maxVel)
{
var moveToPos = targetPos - rb.worldCenterOfMass;
var velocityTarget = Time.fixedDeltaTime * targetVel * moveToPos;
if (float.IsNaN(velocityTarget.x) == false)
{
rb.velocity = Vector3.MoveTowards(
rb.velocity, velocityTarget, maxVel);
}
}
public override void CollectObservations()
{
var rayDistance = 20f;

rayDistance, rayAngles, m_DetectableObjects, 2.5f, 2.5f));
var agentPos = m_AgentRb.position - ground.transform.position;
AddVectorObs(agentPos / 20f);
AddVectorObs(DoGroundCheck(true) ? 1 : 0);
AddVectorObs(agentPos / 20f); //help with orientation
AddVectorObs(m_groundCheck.isGrounded);
AddVectorObs(m_AgentRb.velocity/m_agentMovement.agentRunSpeed); //normalized vel
AddVectorObs(m_AgentRb.angularVelocity/m_AgentRb.maxAngularVelocity); //normalized angVel
AddVectorObs(m_AgentRb.transform.forward); //help with orientation
}
/// <summary>

}
/// <summary>
/// Chenges the color of the ground for a moment
/// Changes the color of the ground for a moment
/// </summary>
/// <returns>The Enumerator to be used in a Coroutine</returns>
/// <param name="mat">The material to be swaped.</param>

m_GroundRenderer.material = mat;
yield return new WaitForSeconds(time); //wait for 2 sec
yield return new WaitForSeconds(time);
AddReward(-0.0005f);
var smallGrounded = DoGroundCheck(true);
var largeGrounded = DoGroundCheck(false);
AddReward(-0.0005f); //hurry up
var dirToGoSideAction = (int)act[2];
var jumpAction = (int)act[3];
var jumpAction = (int)act[2];
dirToGo = (largeGrounded ? 1f : 0.5f) * 1f * transform.forward;
dirToGo += transform.forward;
dirToGo = (largeGrounded ? 1f : 0.5f) * -1f * transform.forward;
dirToGo += -transform.forward;
rotateDir = transform.up * -1f;
rotateDir = -transform.up ;
rotateDir = transform.up * 1f;
if (dirToGoSideAction == 1)
dirToGo = (largeGrounded ? 1f : 0.5f) * -0.6f * transform.right;
else if (dirToGoSideAction == 2)
dirToGo = (largeGrounded ? 1f : 0.5f) * 0.6f * transform.right;
rotateDir = transform.up;
//handle jumping
if ((jumpingTime <= 0f) && smallGrounded)
{
if (m_groundCheck.isGrounded)
Jump();
m_agentMovement.Jump(m_AgentRb);
}
transform.Rotate(rotateDir, Time.fixedDeltaTime * 300f);
m_AgentRb.AddForce(dirToGo * m_Academy.agentRunSpeed,
ForceMode.VelocityChange);
//handle body rotation
if (rotateDir != Vector3.zero)
{
m_agentMovement.RotateBody(m_AgentRb, rotateDir);
}
if (jumpingTime > 0f)
//handle running
if (dirToGo != Vector3.zero)
m_JumpTargetPos =
new Vector3(m_AgentRb.position.x,
m_JumpStartingPos.y + m_Academy.agentJumpHeight,
m_AgentRb.position.z) + dirToGo;
MoveTowards(m_JumpTargetPos, m_AgentRb, m_Academy.agentJumpVelocity,
m_Academy.agentJumpVelocityMaxChange);
if (!m_groundCheck.isGrounded)
{
m_agentMovement.RunInAir(m_AgentRb, dirToGo.normalized);
}
else
{
m_agentMovement.RunOnGround(m_AgentRb, dirToGo.normalized);
}
}
//handle idle drag
if (m_groundCheck.isGrounded && dirToGo == Vector3.zero)
{
m_agentMovement.AddIdleDrag(m_AgentRb);
if (!(jumpingTime > 0f) && !largeGrounded)
//handle falling forces
if (!m_groundCheck.isGrounded)
m_AgentRb.AddForce(
Vector3.down * fallingForce, ForceMode.Acceleration);
m_agentMovement.AddFallingForce(m_AgentRb);
jumpingTime -= Time.fixedDeltaTime;
if ((!Physics.Raycast(m_AgentRb.position, Vector3.down, 20))
|| (!Physics.Raycast(m_ShortBlockRb.position, Vector3.down, 20)))
if(m_AgentRb.position.y < -1 || m_ShortBlockRb.position.y < -1)
Done();
Done();
}
}

if (col.gameObject.CompareTag("goal") && DoGroundCheck(true))
if (col.gameObject.CompareTag("goal") && m_groundCheck.isGrounded)
Done();
ResetBlock(m_ShortBlockRb);
GoalScoredSwapGroundMaterial(m_Academy.goalScoredMaterial, 2));
GoalScoredSwapGroundMaterial(m_Academy.goalScoredMaterial, .5f));
Done();
}
}

transform.localPosition = new Vector3(
18 * (Random.value - 0.5f), 1, -12);
m_Configuration = Random.Range(0, 5);
m_AgentRb.velocity = default(Vector3);
m_AgentRb.velocity = Vector3.zero;
}
private void FixedUpdate()

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

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

2
UnitySDK/Assets/ML-Agents/Examples/WallJump/TFModels/BigWallJumpLearning.nn.meta


fileFormatVersion: 2
guid: b036370dc05b9481bbcee7db40d40b5d
guid: 2eb7bc1cb4297440f8970c08096869cd
ScriptedImporter:
userData:
assetBundleName:

2
UnitySDK/Assets/ML-Agents/Examples/WallJump/TFModels/SmallWallJumpLearning.nn.meta


fileFormatVersion: 2
guid: ef4a2c4f314e94d718e08c7c71b3c5f0
guid: 32c7a8411c2df4eefba2216c5880b982
ScriptedImporter:
userData:
assetBundleName:

26
config/trainer_config.yaml


num_layers: 2
SmallWallJumpLearning:
max_steps: 1.0e6
max_steps: 2.0e5
batch_size: 128
buffer_size: 2048
beta: 5.0e-3

normalize: false
BigWallJumpLearning:
max_steps: 1.0e6
batch_size: 128
buffer_size: 2048
beta: 5.0e-3
hidden_units: 256
summary_freq: 2000
time_horizon: 128
normalize: true
num_epoch: 8
time_horizon: 1000
batch_size: 512
buffer_size: 4096
max_steps: 2e6
summary_freq: 3000
normalize: false
hidden_units: 128
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.99
curiosity:
strength: 0.02
gamma: 0.99
encoding_size: 256
StrikerLearning:
max_steps: 5.0e5

11
UnitySDK/Assets/ML-Agents/Examples/SharedAssets/Scripts/AgentCubeGroundCheck.cs.meta


fileFormatVersion: 2
guid: e340869c035f9451681a919fc0bf98b2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

3
UnitySDK/Assets/ML-Agents/Examples/SharedAssets/Scripts/AgentCubeMovement.cs.meta


fileFormatVersion: 2
guid: 7dbad9f11d9f4b2884e5f8fd66c81426
timeCreated: 1571951124

80
UnitySDK/Assets/ML-Agents/Examples/SharedAssets/Scripts/AgentCubeGroundCheck.cs


//Standardized ground check for the Agent Cube
using UnityEngine;
namespace MLAgents
{
/// <summary>
/// Perform Groundcheck using a Physics OverlapBox
/// </summary>
[DisallowMultipleComponent]
public class AgentCubeGroundCheck : MonoBehaviour
{
public bool debugDrawGizmos;
public Collider[] hitGroundColliders = new Collider[3];
public Vector3 groundCheckBoxLocalPos = new Vector3(0,-0.52f, 0);
public Vector3 groundCheckBoxSize = new Vector3(0.99f, 0.02f, 0.99f);
public bool isGrounded;
public float ungroundedTime; //amount of time agent hasn't been grounded
public float groundedTime; //amount of time agent has been grounded
void FixedUpdate()
{
DoGroundCheck();
if(!isGrounded)
{
ungroundedTime += Time.deltaTime;
groundedTime = 0;
}
else
{
groundedTime += Time.deltaTime;
ungroundedTime = 0;
}
}
/// <summary>
/// Does the ground check.
/// </summary>
/// <returns><c>true</c>, if the agent is on the ground,
/// <c>false</c> otherwise.</returns>
/// <param name="smallCheck"></param>
public void DoGroundCheck()
{
isGrounded = false;
if(Physics.OverlapBoxNonAlloc(
transform.TransformPoint(groundCheckBoxLocalPos),
groundCheckBoxSize/2,
hitGroundColliders,
transform.rotation) > 0)
{
foreach (var col in hitGroundColliders)
{
if (col != null && col.transform != transform &&
(col.CompareTag("walkableSurface") ||
col.CompareTag("block")))
{
isGrounded = true; //then we're grounded
break;
}
}
}
//empty the array
for (int i = 0; i < hitGroundColliders.Length; i++)
{
hitGroundColliders[i] = null;
}
}
//Draw the Box Overlap as a gizmo to show where it currently is testing.
void OnDrawGizmos()
{
if (debugDrawGizmos)
{
Gizmos.color = Color.red;
Gizmos.matrix = transform.localToWorldMatrix;
Gizmos.DrawWireCube(groundCheckBoxLocalPos, groundCheckBoxSize);
}
}
}
}

74
UnitySDK/Assets/ML-Agents/Examples/SharedAssets/Scripts/AgentCubeMovement.cs


//Standardized movement controller for the Agent Cube
using UnityEngine;
namespace MLAgents
{
public class AgentCubeMovement : MonoBehaviour
{
[Header("RUNNING")] public ForceMode runningForceMode = ForceMode.Impulse;
//speed agent can run if grounded
public float agentRunSpeed = 20;
//speed agent can run if not grounded
public float agentRunInAirSpeed = 10f;
[Header("IDLE")]
//coefficient used to dampen velocity when idle
//the purpose of this is to fine tune agent drag
//...and prevent the agent sliding around while grounded
//0 means it will instantly stop when grounded
//1 means no drag will be applied
public float agentIdleDragVelCoeff = .85f;
[Header("BODY ROTATION")]
//body rotation speed
public float agentRotationSpeed = 7f;
[Header("JUMPING")]
//upward jump velocity magnitude
public float agentJumpVelocity = 15f;
[Header("FALLING FORCE")]
//force applied to agent while falling
public float agentFallingSpeed = 50f;
public void Jump(Rigidbody rb)
{
Vector3 velToUse = rb.velocity;
velToUse.y = agentJumpVelocity;
rb.velocity = velToUse;
}
public void RotateBody(Rigidbody rb, Vector3 rotationAxis)
{
rb.MoveRotation(rb.rotation * Quaternion.AngleAxis(agentRotationSpeed, rotationAxis));
}
public void RunOnGround(Rigidbody rb, Vector3 dir)
{
var vel = rb.velocity.magnitude;
float adjustedSpeed = Mathf.Clamp(agentRunSpeed - vel, 0, agentRunSpeed);
rb.AddForce(dir.normalized * adjustedSpeed,
runningForceMode);
}
public void RunInAir(Rigidbody rb, Vector3 dir)
{
var vel = rb.velocity.magnitude;
float adjustedSpeed = Mathf.Clamp(agentRunInAirSpeed - vel, 0, agentRunInAirSpeed);
rb.AddForce(dir.normalized * adjustedSpeed,
runningForceMode);
}
public void AddIdleDrag(Rigidbody rb)
{
rb.velocity *= agentIdleDragVelCoeff;
}
public void AddFallingForce(Rigidbody rb)
{
rb.AddForce(
Vector3.down * agentFallingSpeed, ForceMode.Acceleration);
}
}
}

1
UnitySDK/csharp_timers.json


{"count":1,"self":54.300678399999995,"total":60.891335999999995,"children":{"AgentResetIfDone":{"count":3001,"self":0.149694,"total":0.149694,"children":null},"AgentSendState":{"count":3001,"self":0.952689,"total":2.677314,"children":{"CollectObservations":{"count":24024,"self":1.7246249999999999,"total":1.7246249999999999,"children":null}}},"BrainDecideAction":{"count":3001,"self":3.302732,"total":3.302732,"children":null},"AcademyStep":{"count":3001,"self":0.081987999999999991,"total":0.081987999999999991,"children":null},"AgentAct":{"count":3001,"self":0.37719199999999997,"total":0.37719199999999997,"children":null}}}

1
csharp_timers.json


{"count":1,"self":26.708940799999997,"total":239.834716,"children":{"AgentResetIfDone":{"count":13809,"self":0.14462899999999998,"total":0.14462899999999998,"children":null},"AgentSendState":{"count":13809,"self":1.018158,"total":4.721239,"children":{"CollectObservations":{"count":110472,"self":3.7030808,"total":3.7030809999999996,"children":null}}},"BrainDecideAction":{"count":13809,"self":207.38073599999998,"total":207.380741,"children":null},"AcademyStep":{"count":13809,"self":0.07435,"total":0.07435,"children":null},"AgentAct":{"count":13809,"self":0.802439,"total":0.802439,"children":null}}}9899999999993,"children":null}}}

18
UnitySDK/UnitySDK.sln.DotSettings


<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BLAS/@EntryIndexedValue">BLAS</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CPU/@EntryIndexedValue">CPU</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=GPU/@EntryIndexedValue">GPU</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NN/@EntryIndexedValue">NN</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=RL/@EntryIndexedValue">RL</s:String>
<s:Boolean x:Key="/Default/UserDictionary/Words/=BLAS/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Logits/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Marsaglia/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=multinomial/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Probs/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=protobuf/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Scaler/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Scriptable/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=stddev/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=vals/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
正在加载...
取消
保存