浏览代码

Worm Ragdoll & Env Updates (#4413)

* add worm updates

* add rewman

* cp

* normalize rewards

* only cookie

* try 20M. Add3.5Mnn file

* reduce strength to 3000spring

* facing reward troubleshooting

* Update WormAgent.cs

* troubleshoot nan

* try product of rewards

* train 5M steps

* try end episode on target touch

* fix joint obsv

* use 7M steps

* added nn file for observation joint fix. looks great

* don't end episode

* remove old code

* refactor to patterns used in walker & crawler

* add auto-setup code

* reformat

* use head vel

* remove unneeded observ. update prefabs

* update static scenes

* keeps rolling. added debug. try 5 m/s

* gate the facing reward based on angle tolerance

* added 10ms_angle30rew_nn files

* use fromto rot

* use 7M steps

* add new trained files. cleanup code and prefabs

* use avgvel. add code comments

* remove unused method

* add more comments

* Update Learning-E...
/MLA-1734-demo-provider
GitHub 4 年前
当前提交
cc10cd82
共有 23 个文件被更改,包括 2478 次插入5175 次删除
  1. 181
      Project/Assets/ML-Agents/Examples/SharedAssets/Prefabs/DynamicTargetPlatform.prefab
  2. 11
      Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/JointDriveController.cs
  3. 116
      Project/Assets/ML-Agents/Examples/Worm/Prefabs/PlatformWormDynamicTarget.prefab
  4. 584
      Project/Assets/ML-Agents/Examples/Worm/Scenes/WormDynamicTarget.unity
  5. 947
      Project/Assets/ML-Agents/Examples/Worm/Scenes/WormStaticTarget.unity
  6. 276
      Project/Assets/ML-Agents/Examples/Worm/Scripts/WormAgent.cs
  7. 1001
      Project/Assets/ML-Agents/Examples/Worm/TFModels/WormDynamic.nn
  8. 2
      Project/Assets/ML-Agents/Examples/Worm/TFModels/WormDynamic.nn.meta
  9. 1001
      Project/Assets/ML-Agents/Examples/Worm/TFModels/WormStatic.nn
  10. 2
      Project/Assets/ML-Agents/Examples/Worm/TFModels/WormStatic.nn.meta
  11. 2
      config/ppo/WormDynamic.yaml
  12. 2
      config/ppo/WormStatic.yaml
  13. 13
      docs/Learning-Environment-Examples.md
  14. 1001
      Project/Assets/ML-Agents/Examples/Worm/Prefabs/WormBasePrefab.prefab
  15. 7
      Project/Assets/ML-Agents/Examples/Worm/Prefabs/WormBasePrefab.prefab.meta
  16. 476
      Project/Assets/ML-Agents/Examples/Worm/Prefabs/PlatformWormStaticTarget.prefab
  17. 7
      Project/Assets/ML-Agents/Examples/Worm/Prefabs/PlatformWormStaticTarget.prefab.meta
  18. 7
      Project/Assets/ML-Agents/Examples/Worm/Prefabs/WormBasePrefabDynamic.prefab.meta
  19. 7
      Project/Assets/ML-Agents/Examples/Worm/Prefabs/WormBasePrefabStatic.prefab.meta
  20. 1001
      Project/Assets/ML-Agents/Examples/Worm/Prefabs/WormBasePrefabDynamic.prefab
  21. 1001
      Project/Assets/ML-Agents/Examples/Worm/Prefabs/WormBasePrefabStatic.prefab
  22. 8
      Project/Assets/ML-Agents/Examples/Worm/Meshes.meta

181
Project/Assets/ML-Agents/Examples/SharedAssets/Prefabs/DynamicTargetPlatform.prefab


m_Component:
- component: {fileID: 839922442615925678}
m_Layer: 0
m_Name: DynamicPlatform
m_Name: DynamicTargetPlatform
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

m_Children:
- {fileID: 839929025558985770}
- {fileID: 840186797462469276}
- {fileID: 844321025358320794}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

serializedVersion: 2
m_Size: {x: 1, y: 5, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &845742365997159796
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 844321025358320794}
- component: {fileID: 851178619372665464}
- component: {fileID: 819411542484216416}
- component: {fileID: 859320361128752180}
- component: {fileID: 827313176772345230}
m_Layer: 0
m_Name: Target
m_TagString: target
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &844321025358320794
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 845742365997159796}
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:
- {fileID: 844417529820221198}
m_Father: {fileID: 839922442615925678}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &851178619372665464
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 845742365997159796}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!65 &819411542484216416
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 845742365997159796}
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 &859320361128752180
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 845742365997159796}
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 &827313176772345230
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 845742365997159796}
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 &845745296463925942
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 844417529820221198}
- component: {fileID: 737110191758369644}
m_Layer: 0
m_Name: Point Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &844417529820221198
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 845745296463925942}
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: []
m_Father: {fileID: 844321025358320794}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!108 &737110191758369644
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 845745296463925942}
m_Enabled: 1
serializedVersion: 8
m_Type: 2
m_Color: {r: 1, g: 0.85834146, b: 0.472, a: 1}
m_Intensity: 1
m_Range: 15
m_SpotAngle: 30
m_CookieSize: 10
m_Shadows:
m_Type: 0
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_Lightmapping: 4
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!1 &845759966583653904
GameObject:
m_ObjectHideFlags: 0

11
Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/JointDriveController.cs


bp.groundContact.agent = gameObject.GetComponent<Agent>();
}
if (bp.joint)
{
var jd = new JointDrive
{
positionSpring = maxJointSpring,
positionDamper = jointDampen,
maximumForce = maxJointForceLimit
};
bp.joint.slerpDrive = jd;
}
bp.thisJdController = this;
bodyPartsDict.Add(t, bp);
bodyPartsList.Add(bp);

116
Project/Assets/ML-Agents/Examples/Worm/Prefabs/PlatformWormDynamicTarget.prefab


m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!114 &8042564747579887
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7516457449653310668}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3c8f113a8b8d94967b1b1782c549be81, type: 3}
m_Name:
m_EditorClassIdentifier:
tagToDetect: agent
spawnRadius: 40
respawnIfTouched: 1
respawnIfFallsOffPlatform: 1
fallDistance: 5
onTriggerEnterEvent:
m_PersistentCalls:
m_Calls: []
onTriggerStayEvent:
m_PersistentCalls:
m_Calls: []
onTriggerExitEvent:
m_PersistentCalls:
m_Calls: []
onCollisionEnterEvent:
m_PersistentCalls:
m_Calls: []
onCollisionStayEvent:
m_PersistentCalls:
m_Calls: []
onCollisionExitEvent:
m_PersistentCalls:
m_Calls: []
--- !u!1001 &906401165941233076
--- !u!1001 &6598637992493152055
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2

- target: {fileID: 6060305997115980402, guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba,
- target: {fileID: 2461460301642470340, guid: ff2999c8614d848f8a7e55e3a6fb9282,
type: 3}
propertyPath: targetToLookAt
value:
objectReference: {fileID: 0}
- target: {fileID: 7430253518223459950, guid: ff2999c8614d848f8a7e55e3a6fb9282,
type: 3}
propertyPath: m_Name
value: WormBasePrefab
objectReference: {fileID: 0}
- target: {fileID: 7430253518223459951, guid: ff2999c8614d848f8a7e55e3a6fb9282,
- target: {fileID: 6060305997115980402, guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba,
- target: {fileID: 7430253518223459951, guid: ff2999c8614d848f8a7e55e3a6fb9282,
value: 5
value: 1.65
- target: {fileID: 6060305997115980402, guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba,
- target: {fileID: 7430253518223459951, guid: ff2999c8614d848f8a7e55e3a6fb9282,
- target: {fileID: 6060305997115980402, guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba,
- target: {fileID: 7430253518223459951, guid: ff2999c8614d848f8a7e55e3a6fb9282,
- target: {fileID: 6060305997115980402, guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba,
- target: {fileID: 7430253518223459951, guid: ff2999c8614d848f8a7e55e3a6fb9282,
- target: {fileID: 6060305997115980402, guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba,
- target: {fileID: 7430253518223459951, guid: ff2999c8614d848f8a7e55e3a6fb9282,
- target: {fileID: 6060305997115980402, guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba,
- target: {fileID: 7430253518223459951, guid: ff2999c8614d848f8a7e55e3a6fb9282,
- target: {fileID: 6060305997115980402, guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba,
- target: {fileID: 7430253518223459951, guid: ff2999c8614d848f8a7e55e3a6fb9282,
- target: {fileID: 6060305997115980402, guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba,
- target: {fileID: 7430253518223459951, guid: ff2999c8614d848f8a7e55e3a6fb9282,
- target: {fileID: 6060305997115980402, guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba,
- target: {fileID: 7430253518223459951, guid: ff2999c8614d848f8a7e55e3a6fb9282,
- target: {fileID: 6060305997115980402, guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba,
- target: {fileID: 7430253518223459951, guid: ff2999c8614d848f8a7e55e3a6fb9282,
- target: {fileID: 6060305997115980403, guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba,
type: 3}
propertyPath: m_Name
value: WormBasePrefabDynamic
objectReference: {fileID: 0}
- target: {fileID: 6060305997115980407, guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba,
type: 3}
propertyPath: target
value:
objectReference: {fileID: 7513373574146463010}
- target: {fileID: 6060305997115980407, guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba,
type: 3}
propertyPath: ground
value:
objectReference: {fileID: 7519759559437056804}
- target: {fileID: 6060305997946326746, guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba,
type: 3}
propertyPath: m_TagString
value: agent
objectReference: {fileID: 0}
m_SourcePrefab: {fileID: 100100000, guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba, type: 3}
m_SourcePrefab: {fileID: 100100000, guid: ff2999c8614d848f8a7e55e3a6fb9282, type: 3}
--- !u!1001 &7202236613889278392
PrefabInstance:
m_ObjectHideFlags: 0

propertyPath: m_Name
value: PlatformWormDynamicTarget
objectReference: {fileID: 0}
- target: {fileID: 845742365997159796, guid: d6fc96a99a9754f07b48abf1e0d55a5c,
type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d6fc96a99a9754f07b48abf1e0d55a5c, type: 3}
--- !u!4 &7519741477752072726 stripped

type: 3}
m_PrefabInstance: {fileID: 7202236613889278392}
m_PrefabAsset: {fileID: 0}
--- !u!4 &7519759559437056804 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 840186797462469276, guid: d6fc96a99a9754f07b48abf1e0d55a5c,
type: 3}
m_PrefabInstance: {fileID: 7202236613889278392}
m_PrefabAsset: {fileID: 0}
--- !u!1 &7516457449653310668 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 845742365997159796, guid: d6fc96a99a9754f07b48abf1e0d55a5c,
type: 3}
m_PrefabInstance: {fileID: 7202236613889278392}
m_PrefabAsset: {fileID: 0}
--- !u!4 &7513373574146463010 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 844321025358320794, guid: d6fc96a99a9754f07b48abf1e0d55a5c,
type: 3}
m_PrefabInstance: {fileID: 7202236613889278392}
m_PrefabAsset: {fileID: 0}

584
Project/Assets/ML-Agents/Examples/Worm/Scenes/WormDynamicTarget.unity


m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 6381221600739370389, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 973427800, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.269989
objectReference: {fileID: 0}
- target: {fileID: 1497020359, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146
objectReference: {fileID: 0}
- target: {fileID: 4363568567584794723, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.27001014
value: -0.269989
- target: {fileID: 6381221601619947354, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568568068754428, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146
objectReference: {fileID: 0}
- target: {fileID: 6828423456818458359, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146

propertyPath: m_Name
value: PlatformWormDynamicTarget (4)
objectReference: {fileID: 0}
- target: {fileID: 7516351800607109742, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7519741477752072726, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}

propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8370001685442861961, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.269989
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
--- !u!1001 &80780181

m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 6381221600546481521, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 146995243, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.51629674
objectReference: {fileID: 0}
- target: {fileID: 973427800, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.26999664
objectReference: {fileID: 0}
- target: {fileID: 973427800, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.5979996
objectReference: {fileID: 0}
- target: {fileID: 1252570318, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.56600213
objectReference: {fileID: 0}
- target: {fileID: 1327055847, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.5746974
objectReference: {fileID: 0}
- target: {fileID: 1497020359, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146
objectReference: {fileID: 0}
- target: {fileID: 1497020359, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.6480026
objectReference: {fileID: 0}
- target: {fileID: 649550835736970101, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.73800296
value: -0.55470216
- target: {fileID: 6381221600739370389, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 3937818279965377055, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.z
value: -0.81629944
objectReference: {fileID: 0}
- target: {fileID: 4363568566733374480, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.51629674
objectReference: {fileID: 0}
- target: {fileID: 4363568567584794723, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.2699984
value: -0.26999664
- target: {fileID: 6381221600739370389, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568567584794723, guid: 75720cc09f5b24833af829458ac467fa,
value: 0.59799767
value: 0.5979996
- target: {fileID: 6381221600826571125, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568567769087964, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.7495971
value: 0.5746974
objectReference: {fileID: 0}
- target: {fileID: 4363568567843440885, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.56600213
objectReference: {fileID: 0}
- target: {fileID: 4363568568068754428, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146
- target: {fileID: 6381221601586314449, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568568068754428, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.7538019
value: 0.6480026
- target: {fileID: 6381221601619947354, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 6828423456818458359, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 6381221601619947354, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 6828423456818458359, guid: 75720cc09f5b24833af829458ac467fa,
value: 0.6479996
value: 0.6480026
objectReference: {fileID: 0}
- target: {fileID: 7516351800607109742, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7519741477752072726, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}

propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8370001685442861961, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.26999664
objectReference: {fileID: 0}
- target: {fileID: 8370001685442861961, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.5979996
objectReference: {fileID: 0}
- target: {fileID: 8899833490212639786, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: -0.55600166
objectReference: {fileID: 0}
--- !u!4 &146995241 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 4363568566733374482, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
m_PrefabInstance: {fileID: 956508937}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &193531851
PrefabInstance:
m_ObjectHideFlags: 0

m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 6381221600546481521, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 146995243, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.51629674
objectReference: {fileID: 0}
- target: {fileID: 973427800, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.5979996
objectReference: {fileID: 0}
- target: {fileID: 1252570318, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.56600213
objectReference: {fileID: 0}
- target: {fileID: 1327055847, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.5746974
objectReference: {fileID: 0}
- target: {fileID: 1497020359, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.6480026
objectReference: {fileID: 0}
- target: {fileID: 649550835736970101, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.73800296
value: -0.55470216
objectReference: {fileID: 0}
- target: {fileID: 3937818279965377055, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.z
value: -0.81629944
objectReference: {fileID: 0}
- target: {fileID: 4363568566733374480, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.51629674
- target: {fileID: 6381221600739370389, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568567584794723, guid: 75720cc09f5b24833af829458ac467fa,
value: 0.59799767
value: 0.5979996
- target: {fileID: 6381221600826571125, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568567769087964, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.7495971
value: 0.5746974
- target: {fileID: 6381221601586314449, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568567843440885, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.56600213
objectReference: {fileID: 0}
- target: {fileID: 4363568568068754428, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.7538019
value: 0.6480026
- target: {fileID: 6381221601619947354, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 6828423456818458359, guid: 75720cc09f5b24833af829458ac467fa,
value: 0.6479996
value: 0.6480026
objectReference: {fileID: 0}
- target: {fileID: 7516351800607109742, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7519741477752072726, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}

propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8370001685442861961, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.5979996
objectReference: {fileID: 0}
- target: {fileID: 8899833490212639786, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: -0.55600166
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
--- !u!1001 &276977351

m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 6381221600739370389, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 973427800, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.269989
objectReference: {fileID: 0}
- target: {fileID: 1497020359, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146
objectReference: {fileID: 0}
- target: {fileID: 4363568567584794723, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.27001014
value: -0.269989
- target: {fileID: 6381221601619947354, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568568068754428, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146
objectReference: {fileID: 0}
- target: {fileID: 6828423456818458359, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146

propertyPath: m_Name
value: PlatformWormDynamicTarget (3)
objectReference: {fileID: 0}
- target: {fileID: 7516351800607109742, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7519741477752072726, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_LocalPosition.x

propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8370001685442861961, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.269989
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
--- !u!1001 &475542374

m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 6381221600739370389, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 973427800, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.26999664
objectReference: {fileID: 0}
- target: {fileID: 1497020359, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146
objectReference: {fileID: 0}
- target: {fileID: 4363568567584794723, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.26999664
objectReference: {fileID: 0}
- target: {fileID: 4363568568068754428, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.2699984
value: 0.28900146
- target: {fileID: 6381221601619947354, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 6828423456818458359, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146

propertyPath: m_Name
value: PlatformWormDynamicTarget (1)
objectReference: {fileID: 0}
- target: {fileID: 7516351800607109742, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7519741477752072726, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}

propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8370001685442861961, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.26999664
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
--- !u!1001 &696745664

m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 6381221600546481521, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 146995243, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.51629674
objectReference: {fileID: 0}
- target: {fileID: 973427800, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.269989
objectReference: {fileID: 0}
- target: {fileID: 973427800, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.5979996
objectReference: {fileID: 0}
- target: {fileID: 1252570318, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.56600213
objectReference: {fileID: 0}
- target: {fileID: 1327055847, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.5746974
objectReference: {fileID: 0}
- target: {fileID: 1497020359, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146
objectReference: {fileID: 0}
- target: {fileID: 1497020359, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.6480026
objectReference: {fileID: 0}
- target: {fileID: 649550835736970101, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.73800296
value: -0.55470216
- target: {fileID: 6381221600739370389, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 3937818279965377055, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.z
value: -0.81629944
objectReference: {fileID: 0}
- target: {fileID: 4363568566733374480, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.51629674
objectReference: {fileID: 0}
- target: {fileID: 4363568567584794723, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.27001014
value: -0.269989
- target: {fileID: 6381221600739370389, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568567584794723, guid: 75720cc09f5b24833af829458ac467fa,
value: 0.59799767
value: 0.5979996
objectReference: {fileID: 0}
- target: {fileID: 4363568567769087964, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.5746974
- target: {fileID: 6381221600826571125, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568567843440885, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.7495971
value: 0.56600213
- target: {fileID: 6381221601586314449, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568568068754428, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146
objectReference: {fileID: 0}
- target: {fileID: 4363568568068754428, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.7538019
value: 0.6480026
- target: {fileID: 6381221601619947354, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 6828423456818458359, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 6381221601619947354, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 6828423456818458359, guid: 75720cc09f5b24833af829458ac467fa,
value: 0.6479996
value: 0.6480026
objectReference: {fileID: 0}
- target: {fileID: 7516351800607109742, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7519741477752072726, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}

propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8370001685442861961, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.269989
objectReference: {fileID: 0}
- target: {fileID: 8370001685442861961, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.5979996
objectReference: {fileID: 0}
- target: {fileID: 8899833490212639786, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: -0.55600166
objectReference: {fileID: 0}
--- !u!4 &944786973 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 6381221601965235045, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
m_PrefabInstance: {fileID: 956508937}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &956508937
PrefabInstance:
m_ObjectHideFlags: 0

m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 6381221600546481521, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 146995243, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.51629674
objectReference: {fileID: 0}
- target: {fileID: 973427800, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.27000427
objectReference: {fileID: 0}
- target: {fileID: 973427800, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.5979996
objectReference: {fileID: 0}
- target: {fileID: 1252570318, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.56600213
objectReference: {fileID: 0}
- target: {fileID: 1327055847, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.5746974
objectReference: {fileID: 0}
- target: {fileID: 1497020359, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146
objectReference: {fileID: 0}
- target: {fileID: 1497020359, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.6480026
objectReference: {fileID: 0}
- target: {fileID: 649550835736970101, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.73800296
value: -0.55470216
- target: {fileID: 6381221600739370389, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 3937818279965377055, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.z
value: -0.81629944
objectReference: {fileID: 0}
- target: {fileID: 4363568566733374480, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.51629674
objectReference: {fileID: 0}
- target: {fileID: 4363568567584794723, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.2699984
value: -0.27000427
- target: {fileID: 6381221600739370389, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568567584794723, guid: 75720cc09f5b24833af829458ac467fa,
value: 0.59799767
value: 0.5979996
objectReference: {fileID: 0}
- target: {fileID: 4363568567769087964, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.5746974
- target: {fileID: 6381221600826571125, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568567843440885, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.7495971
value: 0.56600213
- target: {fileID: 6381221601586314449, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568568068754428, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146
objectReference: {fileID: 0}
- target: {fileID: 4363568568068754428, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.7538019
value: 0.6480026
- target: {fileID: 6381221601619947354, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 6828423456818458359, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 6381221601619947354, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 6828423456818458359, guid: 75720cc09f5b24833af829458ac467fa,
value: 0.6479996
value: 0.6480026
objectReference: {fileID: 0}
- target: {fileID: 7516351800607109742, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7519741477752072726, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}

propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8370001685442861961, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.27000427
objectReference: {fileID: 0}
- target: {fileID: 8370001685442861961, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.5979996
objectReference: {fileID: 0}
- target: {fileID: 8899833490212639786, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: -0.55600166
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
--- !u!1 &1392866527

m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1392866527}
m_LocalRotation: {x: 0.15304591, y: -0.6903456, z: 0.15304591, w: 0.6903456}
m_LocalPosition: {x: 15, y: 9.66, z: -2.88}
m_LocalRotation: {x: 0.12771694, y: -0.6954771, z: 0.12771694, w: 0.6954771}
m_LocalPosition: {x: 12.23, y: 5.81, z: -0.14}
m_LocalEulerAnglesHint: {x: 25, y: -90, z: 0}
m_LocalEulerAnglesHint: {x: 20.812, y: -90.00001, z: 0}
--- !u!114 &1392866533
MonoBehaviour:
m_ObjectHideFlags: 0

m_Script: {fileID: 11500000, guid: ec40c70d5160b47cd8deaab79e24892c, type: 3}
m_Name:
m_EditorClassIdentifier:
target: {fileID: 944786973}
target: {fileID: 146995241}
smoothingTime: 0.5
--- !u!1001 &1481808307
PrefabInstance:
m_ObjectHideFlags: 0

m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 6381221600546481521, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 146995243, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.51629674
objectReference: {fileID: 0}
- target: {fileID: 973427800, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.269989
objectReference: {fileID: 0}
- target: {fileID: 973427800, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.5979996
objectReference: {fileID: 0}
- target: {fileID: 1252570318, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.56600213
objectReference: {fileID: 0}
- target: {fileID: 1327055847, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.5746974
objectReference: {fileID: 0}
- target: {fileID: 1497020359, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146
objectReference: {fileID: 0}
- target: {fileID: 1497020359, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.6480026
objectReference: {fileID: 0}
- target: {fileID: 649550835736970101, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.73800296
value: -0.55470216
- target: {fileID: 6381221600739370389, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 3937818279965377055, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.z
value: -0.81629944
objectReference: {fileID: 0}
- target: {fileID: 4363568566733374480, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.51629674
objectReference: {fileID: 0}
- target: {fileID: 4363568567584794723, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.27001014
value: -0.269989
- target: {fileID: 6381221600739370389, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568567584794723, guid: 75720cc09f5b24833af829458ac467fa,
value: 0.59799767
value: 0.5979996
- target: {fileID: 6381221600826571125, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568567769087964, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.7495971
value: 0.5746974
- target: {fileID: 6381221601586314449, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568567843440885, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: 0.56600213
objectReference: {fileID: 0}
- target: {fileID: 4363568568068754428, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146
objectReference: {fileID: 0}
- target: {fileID: 4363568568068754428, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.7538019
value: 0.6480026
- target: {fileID: 6381221601619947354, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 6828423456818458359, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 6381221601619947354, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 6828423456818458359, guid: 75720cc09f5b24833af829458ac467fa,
value: 0.6479996
value: 0.6480026
objectReference: {fileID: 0}
- target: {fileID: 7516351800607109742, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7519741477752072726, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}

propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8370001685442861961, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.269989
objectReference: {fileID: 0}
- target: {fileID: 8370001685442861961, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.5979996
objectReference: {fileID: 0}
- target: {fileID: 8899833490212639786, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: -0.55600166
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
--- !u!1001 &1897122097

m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 6381221600739370389, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 973427800, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.27000427
objectReference: {fileID: 0}
- target: {fileID: 1497020359, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146
objectReference: {fileID: 0}
- target: {fileID: 4363568567584794723, guid: 75720cc09f5b24833af829458ac467fa,
value: -0.2699984
value: -0.27000427
- target: {fileID: 6381221601619947354, guid: 75720cc09f5b24833af829458ac467fa,
- target: {fileID: 4363568568068754428, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146
objectReference: {fileID: 0}
- target: {fileID: 6828423456818458359, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.28900146

propertyPath: m_Name
value: PlatformWormDynamicTarget (2)
objectReference: {fileID: 0}
- target: {fileID: 7516351800607109742, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7519741477752072726, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_LocalPosition.x

propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8370001685442861961, guid: 75720cc09f5b24833af829458ac467fa,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.27000427
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 75720cc09f5b24833af829458ac467fa, type: 3}
--- !u!1 &2095421678

maximumDeltaTime: 0.15
solverIterations: 12
solverVelocityIterations: 12
reuseCollisionCallbacks: 1
--- !u!114 &2095421681
MonoBehaviour:
m_ObjectHideFlags: 0

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

276
Project/Assets/ML-Agents/Examples/Worm/Scripts/WormAgent.cs


using UnityEngine;
using Unity.MLAgents;
using Unity.Barracuda;
using Unity.MLAgents.Actuators;
using Unity.MLAgentsExamples;
using Unity.MLAgents.Sensors;

{
[Header("Target To Walk Towards")]
[Space(10)]
public Transform target;
//The type of agent behavior we want to use.
//This setting will determine how the agent is set up during initialization.
public enum WormAgentBehaviorType
{
WormDynamic,
WormStatic
}
[Tooltip(
"Dynamic - The agent will run towards a target that changes position.\n\n" +
"Static - The agent will run towards a static target. "
)]
public WormAgentBehaviorType typeOfWorm;
const float m_MaxWalkingSpeed = 10; //The max walking speed
//Brains
//A different brain will be used depending on the CrawlerAgentBehaviorType selected
[Header("NN Models")] public NNModel wormDyModel;
public NNModel wormStModel;
public Transform ground;
public bool detectTargets;
public bool targetIsStatic;
public bool respawnTargetWhenTouched;
public float targetSpawnRadius;
[Header("Target Prefabs")] public Transform dynamicTargetPrefab; //Target prefab to use in Dynamic envs
public Transform staticTargetPrefab; //Target prefab to use in Static envs
private Transform m_Target; //Target the agent will walk towards during training.
[Header("Body Parts")]
[Space(10)]
public Transform bodySegment0;
[Header("Body Parts")] public Transform bodySegment0;
[Header("Joint Settings")]
[Space(10)]
JointDriveController m_JdController;
Vector3 m_DirToTarget;
float m_MovingTowardsDot;
float m_FacingDot;
//This will be used as a stabilized model space reference point for observations
//Because ragdolls can move erratically during training, using a stabilized reference transform improves learning
OrientationCubeController m_OrientationCube;
[Header("Reward Functions To Use")]
[Space(10)]
public bool rewardMovingTowardsTarget; // Agent should move towards target
public bool rewardFacingTarget; // Agent should face the target
public bool rewardUseTimePenalty; // Hurry up
//The indicator graphic gameobject that points towards the target
DirectionIndicator m_DirectionIndicator;
JointDriveController m_JdController;
Quaternion m_LookRotation; //LookRotation from m_TargetDirMatrix to Target
Matrix4x4 m_TargetDirMatrix; //Matrix used by agent as orientation reference
private Vector3 m_StartingPos; //starting position of the agent
SetAgentType();
m_StartingPos = bodySegment0.position;
m_OrientationCube = GetComponentInChildren<OrientationCubeController>();
m_DirectionIndicator = GetComponentInChildren<DirectionIndicator>();
m_DirToTarget = target.position - bodySegment0.position;
m_LookRotation = Quaternion.LookRotation(m_DirToTarget);
m_TargetDirMatrix = Matrix4x4.TRS(Vector3.zero, m_LookRotation, Vector3.one);
UpdateOrientationObjects();
//Setup each body part
m_JdController.SetupBodyPart(bodySegment0);

}
//We only want the head to detect the target
//So we need to remove TargetContact from everything else
//This is a temp fix till we can redesign
DestroyImmediate(bodySegment1.GetComponent<TargetContact>());
DestroyImmediate(bodySegment2.GetComponent<TargetContact>());
DestroyImmediate(bodySegment3.GetComponent<TargetContact>());
/// <summary>
/// Spawns a target prefab at pos
/// </summary>
/// <param name="prefab"></param>
/// <param name="pos"></param>
void SpawnTarget(Transform prefab, Vector3 pos)
{
m_Target = Instantiate(prefab, pos, Quaternion.identity, transform);
/// <summary>
/// Set up the agent based on the type
/// </summary>
void SetAgentType()
{
var behaviorParams = GetComponent<Unity.MLAgents.Policies.BehaviorParameters>();
switch (typeOfWorm)
{
case WormAgentBehaviorType.WormDynamic:
{
behaviorParams.BehaviorName = "WormDynamic"; //set behavior name
if (wormDyModel)
behaviorParams.Model = wormDyModel; //assign the brain
SpawnTarget(dynamicTargetPrefab, transform.position); //spawn target
break;
}
case WormAgentBehaviorType.WormStatic:
{
behaviorParams.BehaviorName = "WormStatic"; //set behavior name
if (wormStModel)
behaviorParams.Model = wormStModel; //assign the brain
SpawnTarget(staticTargetPrefab, transform.TransformPoint(new Vector3(0, 0, 1000))); //spawn target
break;
}
}
}
//Get Joint Rotation Relative to the Connected Rigidbody
//We want to collect this info because it is the actual rotation, not the "target rotation"
public Quaternion GetJointRotation(ConfigurableJoint joint)
/// <summary>
/// Loop over body parts and reset them to initial conditions.
/// </summary>
public override void OnEpisodeBegin()
return (Quaternion.FromToRotation(joint.axis, joint.connectedBody.transform.rotation.eulerAngles));
foreach (var bodyPart in m_JdController.bodyPartsList)
{
bodyPart.Reset(bodyPart);
}
//Random start rotation to help generalize
bodySegment0.rotation = Quaternion.Euler(0, Random.Range(0.0f, 360.0f), 0);
UpdateOrientationObjects();
}
/// <summary>

{
var rb = bp.rb;
//GROUND CHECK
var velocityRelativeToLookRotationToTarget = m_TargetDirMatrix.inverse.MultiplyVector(rb.velocity);
sensor.AddObservation(velocityRelativeToLookRotationToTarget);
//Get velocities in the context of our orientation cube's space
//Note: You can get these velocities in world space as well but it may not train as well.
sensor.AddObservation(m_OrientationCube.transform.InverseTransformDirection(bp.rb.velocity));
sensor.AddObservation(m_OrientationCube.transform.InverseTransformDirection(bp.rb.angularVelocity));
var angularVelocityRelativeToLookRotationToTarget = m_TargetDirMatrix.inverse.MultiplyVector(rb.angularVelocity);
sensor.AddObservation(angularVelocityRelativeToLookRotationToTarget);
var localPosRelToBody = bodySegment0.InverseTransformPoint(rb.position);
sensor.AddObservation(localPosRelToBody);
sensor.AddObservation(GetJointRotation(bp.joint));
sensor.AddObservation(bp.currentStrength / m_JdController.maxJointForceLimit);
//Get position relative to hips in the context of our orientation cube's space
sensor.AddObservation(
m_OrientationCube.transform.InverseTransformDirection(bp.rb.position - bodySegment0.position));
sensor.AddObservation(bp.rb.transform.localRotation);
if (bp.joint)
sensor.AddObservation(bp.currentStrength / m_JdController.maxJointForceLimit);
m_JdController.GetCurrentJointForces();
// Update pos to target
m_DirToTarget = target.position - bodySegment0.position;
m_LookRotation = Quaternion.LookRotation(m_DirToTarget);
m_TargetDirMatrix = Matrix4x4.TRS(Vector3.zero, m_LookRotation, Vector3.one);
RaycastHit hit;
float maxDist = 10;
if (Physics.Raycast(bodySegment0.position, Vector3.down, out hit, maxDist))

else
sensor.AddObservation(1);
foreach (var bodyPart in m_JdController.bodyPartsDict.Values)
var cubeForward = m_OrientationCube.transform.forward;
var velGoal = cubeForward * m_MaxWalkingSpeed;
sensor.AddObservation(m_OrientationCube.transform.InverseTransformDirection(velGoal));
sensor.AddObservation(Quaternion.Angle(m_OrientationCube.transform.rotation,
m_JdController.bodyPartsDict[bodySegment0].rb.rotation) / 180);
sensor.AddObservation(Quaternion.FromToRotation(bodySegment0.forward, cubeForward));
//Add pos of target relative to orientation cube
sensor.AddObservation(m_OrientationCube.transform.InverseTransformPoint(m_Target.transform.position));
foreach (var bodyPart in m_JdController.bodyPartsList)
//Rotation delta between the matrix and the head
Quaternion headRotationDeltaFromMatrixRot = Quaternion.Inverse(m_TargetDirMatrix.rotation) * bodySegment0.rotation;
sensor.AddObservation(headRotationDeltaFromMatrixRot);
}
/// <summary>

{
AddReward(1f);
if (respawnTargetWhenTouched)
{
GetRandomTargetPos();
}
}
/// <summary>
/// Moves target to a random position within specified radius.
/// </summary>
public void GetRandomTargetPos()
{
var newTargetPos = Random.insideUnitSphere * targetSpawnRadius;
newTargetPos.y = 5;
target.position = newTargetPos + ground.position;
{
// The dictionary with all the body parts in it are in the jdController
var bpDict = m_JdController.bodyPartsDict;

// Pick a new target joint rotation
bpDict[bodySegment0].SetJointTargetRotation(continuousActions[++i], continuousActions[++i], 0);
bpDict[bodySegment3].SetJointTargetRotation(continuousActions[++i], continuousActions[++i], 0);
bpDict[bodySegment0].SetJointStrength(continuousActions[++i]);
bpDict[bodySegment3].SetJointStrength(continuousActions[++i]);
if (bodySegment0.position.y < ground.position.y - 2)
//Reset if Worm fell through floor;
if (bodySegment0.position.y < m_StartingPos.y - 2)
{
EndEpisode();
}

{
if (detectTargets)
{
foreach (var bodyPart in m_JdController.bodyPartsDict.Values)
{
if (bodyPart.targetContact && bodyPart.targetContact.touchingTarget)
{
TouchedTarget();
}
}
}
UpdateOrientationObjects();
// Set reward for this step according to mixture of the following elements.
if (rewardMovingTowardsTarget)
{
RewardFunctionMovingTowards();
}
var velReward =
GetMatchingVelocityReward(m_OrientationCube.transform.forward * m_MaxWalkingSpeed,
m_JdController.bodyPartsDict[bodySegment0].rb.velocity);
if (rewardFacingTarget)
{
RewardFunctionFacingTarget();
}
//Angle of the rotation delta between cube and body.
//This will range from (0, 180)
var rotAngle = Quaternion.Angle(m_OrientationCube.transform.rotation,
m_JdController.bodyPartsDict[bodySegment0].rb.rotation);
if (rewardUseTimePenalty)
//The reward for facing the target
var facingRew = 0f;
//If we are within 30 degrees of facing the target
if (rotAngle < 30)
RewardFunctionTimePenalty();
//Set normalized facingReward
//Facing the target perfectly yields a reward of 1
facingRew = 1 - (rotAngle / 180);
}
/// <summary>
/// Reward moving towards target & Penalize moving away from target.
/// </summary>
void RewardFunctionMovingTowards()
{
m_MovingTowardsDot = Vector3.Dot(m_JdController.bodyPartsDict[bodySegment0].rb.velocity, m_DirToTarget.normalized);
AddReward(0.01f * m_MovingTowardsDot);
//Add the product of these two rewards
AddReward(velReward * facingRew);
/// Reward facing target & Penalize facing away from target
/// Normalized value of the difference in actual speed vs goal walking speed.
void RewardFunctionFacingTarget()
public float GetMatchingVelocityReward(Vector3 velocityGoal, Vector3 actualVelocity)
float bodyRotRelativeToMatrixDot = Quaternion.Dot(m_TargetDirMatrix.rotation, bodySegment0.rotation);
AddReward(0.01f * bodyRotRelativeToMatrixDot);
}
//distance between our actual velocity and goal velocity
var velDeltaMagnitude = Mathf.Clamp(Vector3.Distance(actualVelocity, velocityGoal), 0, m_MaxWalkingSpeed);
/// <summary>
/// Existential penalty for time-contrained tasks.
/// </summary>
void RewardFunctionTimePenalty()
{
AddReward(-0.001f);
//return the value on a declining sigmoid shaped curve that decays from 1 to 0
//This reward will approach 1 if it matches perfectly and approach zero as it deviates
return Mathf.Pow(1 - Mathf.Pow(velDeltaMagnitude / m_MaxWalkingSpeed, 2), 2);
/// Loop over body parts and reset them to initial conditions.
/// Update OrientationCube and DirectionIndicator
public override void OnEpisodeBegin()
void UpdateOrientationObjects()
foreach (var bodyPart in m_JdController.bodyPartsDict.Values)
m_OrientationCube.UpdateOrientation(bodySegment0, m_Target);
if (m_DirectionIndicator)
bodyPart.Reset(bodyPart);
}
if (m_DirToTarget != Vector3.zero)
{
transform.rotation = Quaternion.LookRotation(m_DirToTarget);
}
transform.Rotate(Vector3.up, Random.Range(0.0f, 360.0f));
if (!targetIsStatic)
{
GetRandomTargetPos();
m_DirectionIndicator.MatchOrientation(m_OrientationCube.transform);
}
}
}

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

2
Project/Assets/ML-Agents/Examples/Worm/TFModels/WormDynamic.nn.meta


fileFormatVersion: 2
guid: 3fa7b06c456814f86b5227de4dc88800
guid: 117512193457f4b35994eedc14532276
ScriptedImporter:
fileIDToRecycleName:
11400000: main obj

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

2
Project/Assets/ML-Agents/Examples/Worm/TFModels/WormStatic.nn.meta


fileFormatVersion: 2
guid: c4a21970807da404ab0c7e5ff8dd1b0e
guid: fc1e2a84251634459bfd8edc900e2e71
ScriptedImporter:
fileIDToRecycleName:
11400000: main obj

2
config/ppo/WormDynamic.yaml


gamma: 0.995
strength: 1.0
keep_checkpoints: 5
max_steps: 3500000
max_steps: 7000000
time_horizon: 1000
summary_freq: 30000
threaded: true

2
config/ppo/WormStatic.yaml


gamma: 0.995
strength: 1.0
keep_checkpoints: 5
max_steps: 3500000
max_steps: 7000000
time_horizon: 1000
summary_freq: 30000
threaded: true

13
docs/Learning-Environment-Examples.md


- `WormDynamicTarget`- Goal direction is randomized.
- Agents: The environment contains 10 agents with same Behavior Parameters.
- Agent Reward Function (independent):
- +0.01 times body velocity in the goal direction.
- +0.01 times body direction alignment with goal direction.
The reward function is now geometric meaning the reward each step is a product
of all the rewards instead of a sum, this helps the agent try to maximize all
rewards instead of the easiest rewards.
- Body velocity matches goal velocity. (normalized between (0,1))
- Body direction alignment with goal direction. (normalized between (0,1))
- Vector Observation space: 57 variables corresponding to position, rotation,
- Vector Observation space: 64 variables corresponding to position, rotation,
velocity, and angular velocities of each limb plus the acceleration and
angular acceleration of the body.
- Vector Action space: (Continuous) Size of 9, corresponding to target

- Benchmark Mean Reward for `WormStaticTarget`: 200
- Benchmark Mean Reward for `WormDynamicTarget`: 150
- Benchmark Mean Reward for `WormStaticTarget`: 1200
- Benchmark Mean Reward for `WormDynamicTarget`: 800
## Food Collector

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

7
Project/Assets/ML-Agents/Examples/Worm/Prefabs/WormBasePrefab.prefab.meta


fileFormatVersion: 2
guid: ff2999c8614d848f8a7e55e3a6fb9282
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

476
Project/Assets/ML-Agents/Examples/Worm/Prefabs/PlatformWormStaticTarget.prefab


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &6156457333974409070
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6154083967640940648}
m_Layer: 0
m_Name: WormCourt
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!4 &6154083967640940648
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6156457333974409070}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 250, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 6154042827339560612}
- {fileID: 6154109046773648400}
m_Father: {fileID: 6159098657755358046}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &6156495267375910052
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6154042827339560612}
- component: {fileID: 6125746018013043224}
- component: {fileID: 6134575806868324670}
- component: {fileID: 6169420740130571154}
m_Layer: 0
m_Name: CourtSurface
m_TagString: ground
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!4 &6154042827339560612
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6156495267375910052}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.01, y: 0.01, z: 0.01}
m_Children: []
m_Father: {fileID: 6154083967640940648}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &6125746018013043224
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6156495267375910052}
m_Mesh: {fileID: 4300000, guid: 9732022408cc74ea89af66b973baaa5e, type: 3}
--- !u!23 &6134575806868324670
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6156495267375910052}
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: 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 &6169420740130571154
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6156495267375910052}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 150000, y: 1, z: 5000}
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &6156942948560834268
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6154109046773648400}
- component: {fileID: 6125156962635126260}
- component: {fileID: 6134535763716814694}
- component: {fileID: 6165547133207646392}
m_Layer: 0
m_Name: OuterWalls
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!4 &6154109046773648400
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6156942948560834268}
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -0, y: 1.5, z: 0}
m_LocalScale: {x: 0.01, y: 0.03, z: 0.01}
m_Children: []
m_Father: {fileID: 6154083967640940648}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &6125156962635126260
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6156942948560834268}
m_Mesh: {fileID: 4300002, guid: 9732022408cc74ea89af66b973baaa5e, type: 3}
--- !u!23 &6134535763716814694
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6156942948560834268}
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!64 &6165547133207646392
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6156942948560834268}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 3
m_Convex: 0
m_CookingOptions: 14
m_Mesh: {fileID: 4300002, guid: 5b535e54498332546a40dec193a2a56a, type: 3}
--- !u!1 &6157030582987617120
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6153654619654777566}
- component: {fileID: 6124981508880459958}
- component: {fileID: 6169012491476603658}
- component: {fileID: 6135136951241791162}
m_Layer: 0
m_Name: Target
m_TagString: target
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6153654619654777566
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6157030582987617120}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 975, y: 4, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 6159098657755358046}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &6124981508880459958
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6157030582987617120}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!65 &6169012491476603658
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6157030582987617120}
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 &6135136951241791162
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6157030582987617120}
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!1 &6157098485376112254
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6159098657755358046}
m_Layer: 0
m_Name: PlatformWormStaticTarget
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6159098657755358046
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6157098485376112254}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 200, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 6154083967640940648}
- {fileID: 6153654619654777566}
- {fileID: 9068231799831062525}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &3009069707527495055
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 6159098657755358046}
m_Modifications:
- target: {fileID: 6060305997115980402, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_LocalPosition.x
value: -400
objectReference: {fileID: 0}
- target: {fileID: 6060305997115980402, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_LocalPosition.y
value: 4
objectReference: {fileID: 0}
- target: {fileID: 6060305997115980402, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6060305997115980402, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6060305997115980402, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_LocalRotation.y
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 6060305997115980402, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6060305997115980402, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 6060305997115980402, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_RootOrder
value: 2
objectReference: {fileID: 0}
- target: {fileID: 6060305997115980402, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6060305997115980402, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 90
objectReference: {fileID: 0}
- target: {fileID: 6060305997115980402, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6060305997115980403, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_Name
value: WormBasePrefabStatic
objectReference: {fileID: 0}
- target: {fileID: 6060305997115980407, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: target
value:
objectReference: {fileID: 6153654619654777566}
- target: {fileID: 6060305997115980407, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: ground
value:
objectReference: {fileID: 6154042827339560612}
- target: {fileID: 6060305997219920622, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: 0.2890001
objectReference: {fileID: 0}
- target: {fileID: 6060305997219920622, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.6479937
objectReference: {fileID: 0}
- target: {fileID: 6060305997253355877, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -2.1862854e-14
objectReference: {fileID: 0}
- target: {fileID: 6060305997253355877, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_ConnectedAnchor.z
value: -0.7537963
objectReference: {fileID: 0}
- target: {fileID: 6060305998013033665, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -6.663004e-14
objectReference: {fileID: 0}
- target: {fileID: 6060305998013033665, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: -0.7496133
objectReference: {fileID: 0}
- target: {fileID: 6060305998100557857, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -0.27000007
objectReference: {fileID: 0}
- target: {fileID: 6060305998100557857, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_ConnectedAnchor.z
value: 0.59799176
objectReference: {fileID: 0}
- target: {fileID: 6060305998293381317, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_ConnectedAnchor.x
value: -7.799574e-14
objectReference: {fileID: 0}
- target: {fileID: 6060305998293381317, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
propertyPath: m_ConnectedAnchor.y
value: -0.7379877
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 474c1571fc3d34e85a958dcb97ba350f, type: 3}
--- !u!4 &9068231799831062525 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 6060305997115980402, guid: 474c1571fc3d34e85a958dcb97ba350f,
type: 3}
m_PrefabInstance: {fileID: 3009069707527495055}
m_PrefabAsset: {fileID: 0}

7
Project/Assets/ML-Agents/Examples/Worm/Prefabs/PlatformWormStaticTarget.prefab.meta


fileFormatVersion: 2
guid: 75c62fea3d1a64757b007f07ea76b84d
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

7
Project/Assets/ML-Agents/Examples/Worm/Prefabs/WormBasePrefabDynamic.prefab.meta


fileFormatVersion: 2
guid: 3ebcde4cf2d5c4c029e2a5ce3d853aba
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

7
Project/Assets/ML-Agents/Examples/Worm/Prefabs/WormBasePrefabStatic.prefab.meta


fileFormatVersion: 2
guid: 474c1571fc3d34e85a958dcb97ba350f
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

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

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

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


fileFormatVersion: 2
guid: 251b5adc1da6848b69287ded1437ee99
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
正在加载...
取消
保存