浏览代码

Merge pull request #4741 from Unity-Technologies/walljump-pushblock

Add WalljumpPushblock env
/goal-conditioning/new
GitHub 4 年前
当前提交
8cf3b93b
共有 51 个文件被更改,包括 10359 次插入0 次删除
  1. 9
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock.meta
  2. 69
      config/ppo/WJPB.yaml
  3. 8
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials.meta
  4. 78
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/TransparentWall.mat
  5. 10
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/TransparentWall.mat.meta
  6. 80
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/WallJumpCourt.mat
  7. 8
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/WallJumpCourt.mat.meta
  8. 80
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/WallJumpCourtFail.mat
  9. 8
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/WallJumpCourtFail.mat.meta
  10. 80
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/WallJumpCourtSuccess.mat
  11. 8
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/WallJumpCourtSuccess.mat.meta
  12. 83
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/WallJumpSky.mat
  13. 8
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/WallJumpSky.mat.meta
  14. 77
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/spawnVolumeMaterial.mat
  15. 10
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/spawnVolumeMaterial.mat.meta
  16. 8
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Meshes.meta
  17. 1001
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Meshes/GoalArea.fbx
  18. 96
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Meshes/GoalArea.fbx.meta
  19. 1001
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Meshes/ShortBlock.fbx
  20. 96
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Meshes/ShortBlock.fbx.meta
  21. 10
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Prefabs.meta
  22. 1001
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Prefabs/WallJumpandPushblockArea.prefab
  23. 9
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Prefabs/WallJumpandPushblockArea.prefab.meta
  24. 10
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scenes.meta
  25. 1001
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scenes/WallJumpAndPushblock.unity
  26. 9
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scenes/WallJumpAndPushblock.unity.meta
  27. 10
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scripts.meta
  28. 342
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scripts/WJPBAgent.cs
  29. 11
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scripts/WJPBAgent.cs.meta
  30. 26
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scripts/WJPBGoalDetect.cs
  31. 11
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scripts/WJPBGoalDetect.cs.meta
  32. 14
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scripts/WJPBSettings.cs
  33. 11
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scripts/WJPBSettings.cs.meta
  34. 10
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels.meta
  35. 1001
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/BigWallJump.nn
  36. 11
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/BigWallJump.nn.meta
  37. 1001
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/SmallWallJump.nn
  38. 11
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/SmallWallJump.nn.meta
  39. 1001
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/WJPB-32499994.onnx
  40. 13
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/WJPB-32499994.onnx.meta
  41. 1001
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/WJPB-4999918.onnx
  42. 13
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/WJPB-4999918.onnx.meta
  43. 1001
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/cloud.onnx
  44. 13
      Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/cloud.onnx.meta

9
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock.meta


fileFormatVersion: 2
guid: fb445c13fe9f243e1ab588fce6354929
folderAsset: yes
timeCreated: 1520964896
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

69
config/ppo/WJPB.yaml


behaviors:
WJPB:
trainer_type: ppo
hyperparameters:
batch_size: 128
buffer_size: 2048
learning_rate: 0.0003
beta: 0.005
epsilon: 0.2
lambd: 0.95
num_epoch: 3
learning_rate_schedule: linear
network_settings:
normalize: false
hidden_units: 512
num_layers: 2
vis_encode_type: simple
reward_signals:
extrinsic:
gamma: 0.99
strength: 1.0
keep_checkpoints: 5
max_steps: 50000000
time_horizon: 128
summary_freq: 20000
threaded: true
environment_parameters:
big_wall_height:
curriculum:
- name: Lesson0 # The '-' is important as this is a list
completion_criteria:
measure: progress
behavior: WJPB
signal_smoothing: true
min_lesson_length: 100
threshold: 0.05
value:
sampler_type: uniform
sampler_parameters:
min_value: 0.0
max_value: 4.0
- name: Lesson1 # This is the start of the second lesson
completion_criteria:
measure: progress
behavior: WJPB
signal_smoothing: true
min_lesson_length: 100
threshold: 0.1
value:
sampler_type: uniform
sampler_parameters:
min_value: 4.0
max_value: 7.0
- name: Lesson2
completion_criteria:
measure: progress
behavior: WJPB
signal_smoothing: true
min_lesson_length: 100
threshold: 0.5
value:
sampler_type: uniform
sampler_parameters:
min_value: 6.0
max_value: 8.0
- name: Lesson3
value: 8.0
env_settings:
num_envs: 4

8
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials.meta


fileFormatVersion: 2
guid: 84bf11f49563948329c8cbd9708fa71d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

78
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/TransparentWall.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TransparentWall
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords: _ALPHABLEND_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 3000
stringTagMap:
RenderType: Transparent
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 10
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 2
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 5
- _UVSec: 0
- _ZWrite: 0
m_Colors:
- _Color: {r: 0.56228375, g: 0.76044035, b: 0.9558824, a: 0.603}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

10
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/TransparentWall.mat.meta


fileFormatVersion: 2
guid: 3c02e1437a353423faeefff3afed88c3
timeCreated: 1506376733
licenseType: Pro
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

80
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/WallJumpCourt.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: WallJumpCourt
m_Shader: {fileID: 47, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: df56124da2726af4d8dcb3bd5896d323, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.75
- _GlossyReflections: 1
- _Metallic: 0.2
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

8
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/WallJumpCourt.mat.meta


fileFormatVersion: 2
guid: 8eabd529a9b20480b95ed5371c96db8f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

80
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/WallJumpCourtFail.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: WallJumpCourtFail
m_Shader: {fileID: 47, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: c862c84b87cc1314fac7392d5df40a0a, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.75
- _GlossyReflections: 1
- _Metallic: 0.2
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

8
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/WallJumpCourtFail.mat.meta


fileFormatVersion: 2
guid: a53fc6233e6a343189b057014f1a948c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

80
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/WallJumpCourtSuccess.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: WallJumpCourtSuccess
m_Shader: {fileID: 47, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 6555bb88673eebc4a87d2111c3157de4, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.75
- _GlossyReflections: 1
- _Metallic: 0.2
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

8
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/WallJumpCourtSuccess.mat.meta


fileFormatVersion: 2
guid: a5510de83e44f4596872fec8e7b34a12
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

83
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/WallJumpSky.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: WallJumpSky
m_Shader: {fileID: 106, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords: _SUNDISK_HIGH_QUALITY
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AtmosphereThickness: 1
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _Exposure: 1.3
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SunDisk: 2
- _SunSize: 0.04
- _SunSizeConvergence: 5
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _GroundColor: {r: 0.369, g: 0.349, b: 0.341, a: 1}
- _SkyTint: {r: 0.5, g: 0.5, b: 0.5, a: 1}

8
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/WallJumpSky.mat.meta


fileFormatVersion: 2
guid: a1d954e72bb784ca398bdfc716f6bb55
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

77
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/spawnVolumeMaterial.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: spawnVolumeMaterial
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords: _ALPHABLEND_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 3000
stringTagMap:
RenderType: Transparent
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 10
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 2
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 5
- _UVSec: 0
- _ZWrite: 0
m_Colors:
- _Color: {r: 0, g: 0.83448315, b: 1, a: 0.303}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

10
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Materials/spawnVolumeMaterial.mat.meta


fileFormatVersion: 2
guid: 4051274fbcad74bc3be5e838c7476092
timeCreated: 1506376733
licenseType: Pro
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

8
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Meshes.meta


fileFormatVersion: 2
guid: 6a51b18ad7d024e19bc3d9e50b808855
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1001
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Meshes/GoalArea.fbx
文件差异内容过多而无法显示
查看文件

96
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Meshes/GoalArea.fbx.meta


fileFormatVersion: 2
guid: 690335095cd2c4560833e126d49130fe
ModelImporter:
serializedVersion: 22
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode
2100000: rep_Checkers
2300000: //RootNode
3300000: //RootNode
4300000: GoalArea
externalObjects:
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: rep_Checkers
second: {fileID: 2100000, guid: 36c7baa347d68f347a9aa9698aa1bcdd, type: 2}
materials:
importMaterials: 1
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 1
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
swapUVChannels: 0
generateSecondaryUV: 1
useFileUnits: 1
optimizeMeshForGPU: 1
keepQuads: 0
weldVertices: 1
preserveHierarchy: 0
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
importAnimation: 1
copyAvatar: 0
humanDescription:
serializedVersion: 2
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

1001
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Meshes/ShortBlock.fbx
文件差异内容过多而无法显示
查看文件

96
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Meshes/ShortBlock.fbx.meta


fileFormatVersion: 2
guid: 81640008a0d42439f881cd59c3145571
ModelImporter:
serializedVersion: 22
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode
2100000: rep_GraySG
2300000: //RootNode
3300000: //RootNode
4300000: ShortBlock
externalObjects:
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: rep_GraySG
second: {fileID: 2100000, guid: 5eba48b0898adc441946e5c501f88fdd, type: 2}
materials:
importMaterials: 1
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 1
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
swapUVChannels: 0
generateSecondaryUV: 1
useFileUnits: 1
optimizeMeshForGPU: 1
keepQuads: 0
weldVertices: 1
preserveHierarchy: 0
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
importAnimation: 1
copyAvatar: 0
humanDescription:
serializedVersion: 2
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

10
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Prefabs.meta


fileFormatVersion: 2
guid: 6b3d228f6035943038305ffb95ef9fb4
folderAsset: yes
timeCreated: 1517535133
licenseType: Free
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

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

9
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Prefabs/WallJumpandPushblockArea.prefab.meta


fileFormatVersion: 2
guid: c35df6d2c99224b0faeaaaff199cbd4e
timeCreated: 1520541093
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:

10
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scenes.meta


fileFormatVersion: 2
guid: 98bc2664251504d59abfb38f03e52dfc
folderAsset: yes
timeCreated: 1517446674
licenseType: Free
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1001
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scenes/WallJumpAndPushblock.unity
文件差异内容过多而无法显示
查看文件

9
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scenes/WallJumpAndPushblock.unity.meta


fileFormatVersion: 2
guid: a67c8be1763a2414fa40cc64bc56036f
timeCreated: 1506808980
licenseType: Pro
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

10
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scripts.meta


fileFormatVersion: 2
guid: d8548877ac8cf47f7b24d6d9bca20d21
folderAsset: yes
timeCreated: 1517445791
licenseType: Free
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

342
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scripts/WJPBAgent.cs


//Put this script on your blue cube.
using System.Collections;
using UnityEngine;
using Unity.MLAgents;
using Unity.Barracuda;
using Unity.MLAgents.Actuators;
using Unity.MLAgents.Sensors;
using Unity.MLAgentsExamples;
public class WJPBAgent : Agent
{
// Depending on this value, the agent will have different goals
int m_Goal;
public GameObject ground;
public GameObject spawnArea;
Bounds m_SpawnAreaBounds;
public GameObject wallJumpGoal;
public GameObject pushBlockGoal;
public GameObject shortBlock;
public GameObject wall;
public int goals;
Rigidbody m_ShortBlockRb;
Rigidbody m_AgentRb;
public Material goalMaterial;
public Material nonGoalMaterial;
Renderer m_PushRenderer;
Renderer m_WallRenderer;
WJPBSettings m_WJPBSettings;
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;
[HideInInspector]
public WJPBGoalDetect goalDetect;
float[] m_GoalOneHot;
EnvironmentParameters m_ResetParams;
public override void Initialize()
{
m_WJPBSettings = FindObjectOfType<WJPBSettings>();
// One-hot encoding of the goal
m_WallRenderer = wallJumpGoal.GetComponent<Renderer>();
m_PushRenderer = pushBlockGoal.GetComponent<Renderer>();
m_Goal = Random.Range(0, goals);
//m_Goal = 0;
m_GoalOneHot = new float[goals];
if (m_Goal == 0)
{
m_WallRenderer.material = goalMaterial;
m_PushRenderer.material = nonGoalMaterial;
}
else
{
m_WallRenderer.material = nonGoalMaterial;
m_PushRenderer.material = goalMaterial;
}
System.Array.Clear(m_GoalOneHot, 0, m_GoalOneHot.Length);
m_GoalOneHot[m_Goal] = 1;
goalDetect = shortBlock.GetComponent<WJPBGoalDetect>();
goalDetect.agent = this;
m_AgentRb = GetComponent<Rigidbody>();
m_ShortBlockRb = shortBlock.GetComponent<Rigidbody>();
m_SpawnAreaBounds = spawnArea.GetComponent<Collider>().bounds;
spawnArea.SetActive(false);
m_ResetParams = Academy.Instance.EnvironmentParameters;
}
// 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(VectorSensor sensor)
{
var agentPos = m_AgentRb.position - ground.transform.position;
sensor.AddObservation(agentPos / 20f);
sensor.AddObservation(DoGroundCheck(true) ? 1 : 0);
sensor.AddObservation(m_GoalOneHot);
}
/// <summary>
/// Gets a random spawn position in the spawningArea.
/// </summary>
/// <returns>The random spawn position.</returns>
public Vector3 GetRandomSpawnPos()
{
var randomPosX = Random.Range(-m_SpawnAreaBounds.extents.x,
m_SpawnAreaBounds.extents.x);
var randomPosZ = Random.Range(-m_SpawnAreaBounds.extents.z,
m_SpawnAreaBounds.extents.z);
var randomSpawnPos = spawnArea.transform.position +
new Vector3(randomPosX, 0.45f, randomPosZ - 2f);
return randomSpawnPos;
}
public void MoveAgent(ActionSegment<int> act)
{
AddReward(-0.0005f);
var smallGrounded = DoGroundCheck(true);
var largeGrounded = DoGroundCheck(false);
var dirToGo = Vector3.zero;
var rotateDir = Vector3.zero;
var dirToGoForwardAction = act[0];
var rotateDirAction = act[1];
var dirToGoSideAction = act[2];
var jumpAction = act[3];
if (dirToGoForwardAction == 1)
dirToGo = (largeGrounded ? 1f : 0.5f) * 1f * transform.forward;
else if (dirToGoForwardAction == 2)
dirToGo = (largeGrounded ? 1f : 0.5f) * -1f * transform.forward;
if (rotateDirAction == 1)
rotateDir = transform.up * -1f;
else if (rotateDirAction == 2)
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;
if (jumpAction == 1)
if ((jumpingTime <= 0f) && smallGrounded)
{
Jump();
}
transform.Rotate(rotateDir, Time.fixedDeltaTime * 300f);
m_AgentRb.AddForce(dirToGo * m_WJPBSettings.agentRunSpeed,
ForceMode.VelocityChange);
if (jumpingTime > 0f)
{
m_JumpTargetPos =
new Vector3(m_AgentRb.position.x,
m_JumpStartingPos.y + m_WJPBSettings.agentJumpHeight,
m_AgentRb.position.z) + dirToGo;
MoveTowards(m_JumpTargetPos, m_AgentRb, m_WJPBSettings.agentJumpVelocity,
m_WJPBSettings.agentJumpVelocityMaxChange);
}
if (!(jumpingTime > 0f) && !largeGrounded)
{
m_AgentRb.AddForce(
Vector3.down * fallingForce, ForceMode.Acceleration);
}
jumpingTime -= Time.fixedDeltaTime;
}
public override void OnActionReceived(ActionBuffers actionBuffers)
{
MoveAgent(actionBuffers.DiscreteActions);
if ((!Physics.Raycast(m_AgentRb.position, Vector3.down, 20))
|| (!Physics.Raycast(m_ShortBlockRb.position, Vector3.down, 20)))
{
SetReward(-1f);
EndEpisode();
ResetBlock(m_ShortBlockRb);
}
}
public override void Heuristic(in ActionBuffers actionsOut)
{
var discreteActionsOut = actionsOut.DiscreteActions;
discreteActionsOut.Clear();
if (Input.GetKey(KeyCode.D))
{
discreteActionsOut[1] = 2;
}
if (Input.GetKey(KeyCode.W))
{
discreteActionsOut[0] = 1;
}
if (Input.GetKey(KeyCode.A))
{
discreteActionsOut[1] = 1;
}
if (Input.GetKey(KeyCode.S))
{
discreteActionsOut[0] = 2;
}
discreteActionsOut[3] = Input.GetKey(KeyCode.Space) ? 1 : 0;
}
// Detect when the agent hits the goal
void OnTriggerStay(Collider col)
{
if (col.gameObject.CompareTag("walljumpgoal") && DoGroundCheck(true))
{
// ending the episode so the agent doesnt get stuck over the wall
if (m_Goal == 0)
{
SetReward(1f);
EndEpisode();
}
}
}
public void ScoredAGoal()
{
if (m_Goal == 1)
{
SetReward(1f);
EndEpisode();
}
}
//Reset the orange block position
void ResetBlock(Rigidbody blockRb)
{
blockRb.transform.position = GetRandomSpawnPos();
blockRb.velocity = Vector3.zero;
blockRb.angularVelocity = Vector3.zero;
m_ShortBlockRb.drag = 0.5f;
}
public override void OnEpisodeBegin()
{
ResetBlock(m_ShortBlockRb);
transform.localPosition = new Vector3(
18 * (Random.value - 0.5f), 1, -12);
m_Goal = Random.Range(0, goals);
//m_Goal = 0;
System.Array.Clear(m_GoalOneHot, 0, m_GoalOneHot.Length);
m_GoalOneHot[m_Goal] = 1;
if (m_Goal == 0)
{
m_WallRenderer.material = goalMaterial;
m_PushRenderer.material = nonGoalMaterial;
}
else
{
m_WallRenderer.material = nonGoalMaterial;
m_PushRenderer.material = goalMaterial;
}
var height = m_ResetParams.GetWithDefault("big_wall_height", 8);
var localScale = wall.transform.localScale;
localScale = new Vector3(
localScale.x,
height,
localScale.z);
wall.transform.localScale = localScale;
m_AgentRb.velocity = default(Vector3);
}
}

11
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scripts/WJPBAgent.cs.meta


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

26
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scripts/WJPBGoalDetect.cs


//Detect when the orange block has touched the goal.
//Detect when the orange block has touched an obstacle.
//Put this script onto the orange block. There's nothing you need to set in the editor.
//Make sure the goal is tagged with "goal" in the editor.
using UnityEngine;
public class WJPBGoalDetect : MonoBehaviour
{
/// <summary>
/// The associated agent.
/// This will be set by the agent script on Initialization.
/// Don't need to manually set.
/// </summary>
[HideInInspector]
public WJPBAgent agent; //
void OnTriggerEnter(Collider col)
{
// Touched goal.
if (col.gameObject.CompareTag("pushblockgoal"))
{
agent.ScoredAGoal();
}
}
}

11
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scripts/WJPBGoalDetect.cs.meta


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

14
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scripts/WJPBSettings.cs


using UnityEngine;
public class WJPBSettings : MonoBehaviour
{
[Header("Specific to WallJump")]
public float agentRunSpeed;
public float agentJumpHeight;
[HideInInspector]
public float agentJumpVelocity = 777;
[HideInInspector]
public float agentJumpVelocityMaxChange = 10;
}

11
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/Scripts/WJPBSettings.cs.meta


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

10
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels.meta


fileFormatVersion: 2
guid: 91444bcaed65044a2af9565214dce241
folderAsset: yes
timeCreated: 1517539094
licenseType: Free
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

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

11
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/BigWallJump.nn.meta


fileFormatVersion: 2
guid: 11fc5cb1f5b0f4ae39a36e2db65ca275
ScriptedImporter:
fileIDToRecycleName:
11400000: main obj
11400002: model data
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 19ed1486aa27d4903b34839f37b8f69f, type: 3}

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

11
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/SmallWallJump.nn.meta


fileFormatVersion: 2
guid: 7162ecb3cfbfc4b47b0278585fbaed90
ScriptedImporter:
fileIDToRecycleName:
11400000: main obj
11400002: model data
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 19ed1486aa27d4903b34839f37b8f69f, type: 3}

1001
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/WJPB-32499994.onnx
文件差异内容过多而无法显示
查看文件

13
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/WJPB-32499994.onnx.meta


fileFormatVersion: 2
guid: 960b1933b6ec84fcb83c0c79668a4ee8
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 683b6cb6d0a474744822c888b46772c9, type: 3}
optimizeModel: 1
forceArbitraryBatchSize: 1
treatErrorsAsWarnings: 0

1001
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/WJPB-4999918.onnx
文件差异内容过多而无法显示
查看文件

13
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/WJPB-4999918.onnx.meta


fileFormatVersion: 2
guid: 84bee0873d0be4a56b46a9884553728d
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 683b6cb6d0a474744822c888b46772c9, type: 3}
optimizeModel: 1
forceArbitraryBatchSize: 1
treatErrorsAsWarnings: 0

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

13
Project/Assets/ML-Agents/Examples/WallJumpAndPushblock/TFModels/cloud.onnx.meta


fileFormatVersion: 2
guid: 15e1a204928a14cfa910f8c51edaf85f
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 683b6cb6d0a474744822c888b46772c9, type: 3}
optimizeModel: 1
forceArbitraryBatchSize: 1
treatErrorsAsWarnings: 0
正在加载...
取消
保存