浏览代码

Still not working

/exp-alternate-atten
vincentpierre 4 年前
当前提交
b09dfd0a
共有 21 个文件被更改,包括 1019 次插入88 次删除
  1. 2
      Project/Assets/ML-Agents/Examples/Bullet/Demos.meta
  2. 4
      Project/Assets/ML-Agents/Examples/Bullet/Demos/ExpertPush.demo.meta
  3. 2
      Project/Assets/ML-Agents/Examples/Bullet/Meshes.meta
  4. 12
      Project/Assets/ML-Agents/Examples/Bullet/Meshes/PushBlockCourt.fbx.meta
  5. 4
      Project/Assets/ML-Agents/Examples/Bullet/Prefabs.meta
  6. 164
      Project/Assets/ML-Agents/Examples/Bullet/Prefabs/BulletArea.prefab
  7. 2
      Project/Assets/ML-Agents/Examples/Bullet/Prefabs/DodgeAgent.prefab.meta
  8. 4
      Project/Assets/ML-Agents/Examples/Bullet/Scenes.meta
  9. 67
      Project/Assets/ML-Agents/Examples/Bullet/Scenes/Bullet.unity
  10. 4
      Project/Assets/ML-Agents/Examples/Bullet/Scenes/Bullet.unity.meta
  11. 4
      Project/Assets/ML-Agents/Examples/Bullet/Scripts.meta
  12. 12
      Project/Assets/ML-Agents/Examples/Bullet/Scripts/Bullet.cs
  13. 6
      Project/Assets/ML-Agents/Examples/Bullet/Scripts/BulletAgent.cs
  14. 4
      Project/Assets/ML-Agents/Examples/Bullet/Scripts/DodgeAgent.cs
  15. 2
      Project/Assets/ML-Agents/Examples/Bullet/TFModels.meta
  16. 2
      Project/Assets/ML-Agents/Examples/Bullet/TFModels/PushBlock.nn.meta
  17. 42
      ml-agents/mlagents/trainers/torch/networks.py
  18. 634
      Project/Assets/ML-Agents/Examples/Bullet/Prefabs/DodgeAgentRaycast.prefab
  19. 7
      Project/Assets/ML-Agents/Examples/Bullet/Prefabs/DodgeAgentRaycast.prefab.meta
  20. 118
      Project/Assets/ML-Agents/Examples/Bullet/Scripts/AttentionSensorComponent.cs
  21. 11
      Project/Assets/ML-Agents/Examples/Bullet/Scripts/AttentionSensorComponent.cs.meta

2
Project/Assets/ML-Agents/Examples/Bullet/Demos.meta


fileFormatVersion: 2
guid: f1329fcb394f243928b532bf0b53a342
guid: b01d95410090c4364a4bc4506601c58c
folderAsset: yes
DefaultImporter:
externalObjects: {}

4
Project/Assets/ML-Agents/Examples/Bullet/Demos/ExpertPush.demo.meta


fileFormatVersion: 2
guid: 7f11f35191533404c9957443a681aaee
guid: 991552fb1f89746feb752872053e8fea
11400002: Assets/ML-Agents/Examples/Bullet/Demos/ExpertPush.demo
11400000: Assets/ML-Agents/Examples/Bullet/Demos/ExpertPush.demo
externalObjects: {}
userData: ' (Unity.MLAgents.Demonstrations.DemonstrationSummary)'
assetBundleName:

2
Project/Assets/ML-Agents/Examples/Bullet/Meshes.meta


fileFormatVersion: 2
guid: e806d68316eff0e46a3fda372ae42c44
guid: 20e3395013e9647049d7ce070f5439c7
folderAsset: yes
DefaultImporter:
externalObjects: {}

12
Project/Assets/ML-Agents/Examples/Bullet/Meshes/PushBlockCourt.fbx.meta


fileFormatVersion: 2
guid: c639386c12f5f7841892163a199dfacc
guid: 8b6b84452946f481a9f9b1cfbac1071b
serializedVersion: 22
serializedVersion: 23
fileIDToRecycleName:
100000: GoalArea
100002: Ground

animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5

globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1

secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
previousCalculatedGlobalScale: 1
hasPreviousCalculatedGlobalScale: 0
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 1
copyAvatar: 0
humanDescription:

legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1

4
Project/Assets/ML-Agents/Examples/Bullet/Prefabs.meta


fileFormatVersion: 2
guid: 3d2b9d5547d934200a786212743850c4
guid: 53309375fbb2349979b9544fc947625d
timeCreated: 1514922259
licenseType: Free
DefaultImporter:
externalObjects: {}
userData:

164
Project/Assets/ML-Agents/Examples/Bullet/Prefabs/BulletArea.prefab


m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7564015931936126656}
m_Mesh: {fileID: 4300002, guid: c639386c12f5f7841892163a199dfacc, type: 3}
m_Mesh: {fileID: 4300002, guid: 8b6b84452946f481a9f9b1cfbac1071b, type: 3}
--- !u!23 &7543027300194633676
MeshRenderer:
m_ObjectHideFlags: 0

m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7564770370831641396}
m_Mesh: {fileID: 4300000, guid: c639386c12f5f7841892163a199dfacc, type: 3}
m_Mesh: {fileID: 4300000, guid: 8b6b84452946f481a9f9b1cfbac1071b, type: 3}
--- !u!23 &7543119621162342942
MeshRenderer:
m_ObjectHideFlags: 0

- {fileID: 7560714265303810678}
- {fileID: 1948876709406054001}
- {fileID: 5942909531044739535}
- {fileID: 1031285525944681443}
- {fileID: 4270948751059092865}
- {fileID: 2543513692711517529}
--- !u!1001 &1280821507869688859
--- !u!114 &6066190185643232291
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8381723296076531545}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0cda222e502445d6afb18a17a426477, type: 3}
m_Name:
m_EditorClassIdentifier:
ObservableSize: 4
MaxNumObservables: 20
--- !u!1001 &2651720343641195129
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2

- target: {fileID: 968348991679639438, guid: 4cb816d3836ca4c02a36c3494a88ab85,
- target: {fileID: 968348991679639438, guid: 7a515d80a9d5b4cfaba55aa066594016,
- target: {fileID: 968348991679639438, guid: 4cb816d3836ca4c02a36c3494a88ab85,
- target: {fileID: 968348991679639438, guid: 7a515d80a9d5b4cfaba55aa066594016,
- target: {fileID: 2272550728573618168, guid: 4cb816d3836ca4c02a36c3494a88ab85,
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
- target: {fileID: 2272550728573618168, guid: 4cb816d3836ca4c02a36c3494a88ab85,
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
- target: {fileID: 2272550728573618168, guid: 4cb816d3836ca4c02a36c3494a88ab85,
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
- target: {fileID: 2272550728573618168, guid: 4cb816d3836ca4c02a36c3494a88ab85,
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
- target: {fileID: 2272550728573618168, guid: 4cb816d3836ca4c02a36c3494a88ab85,
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
- target: {fileID: 2272550728573618168, guid: 4cb816d3836ca4c02a36c3494a88ab85,
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
- target: {fileID: 2272550728573618168, guid: 4cb816d3836ca4c02a36c3494a88ab85,
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
- target: {fileID: 2272550728573618168, guid: 4cb816d3836ca4c02a36c3494a88ab85,
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
value: 4
value: 5
- target: {fileID: 2272550728573618168, guid: 4cb816d3836ca4c02a36c3494a88ab85,
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
- target: {fileID: 2272550728573618168, guid: 4cb816d3836ca4c02a36c3494a88ab85,
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
- target: {fileID: 2272550728573618168, guid: 4cb816d3836ca4c02a36c3494a88ab85,
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
- target: {fileID: 5229809530250264056, guid: 4cb816d3836ca4c02a36c3494a88ab85,
- target: {fileID: 5229809530250264056, guid: 7a515d80a9d5b4cfaba55aa066594016,
value: DodgeAgent
value: DodgeAgentRaycast
- target: {fileID: 5229809530250264056, guid: 4cb816d3836ca4c02a36c3494a88ab85,
- target: {fileID: 5229809530250264056, guid: 7a515d80a9d5b4cfaba55aa066594016,
m_SourcePrefab: {fileID: 100100000, guid: 4cb816d3836ca4c02a36c3494a88ab85, type: 3}
--- !u!4 &1031285525944681443 stripped
m_SourcePrefab: {fileID: 100100000, guid: 7a515d80a9d5b4cfaba55aa066594016, type: 3}
--- !u!4 &4270948751059092865 stripped
m_CorrespondingSourceObject: {fileID: 2272550728573618168, guid: 4cb816d3836ca4c02a36c3494a88ab85,
m_CorrespondingSourceObject: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
m_PrefabInstance: {fileID: 1280821507869688859}
m_PrefabInstance: {fileID: 2651720343641195129}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &4379144681784015521
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 7562565324271374322}
m_Modifications:
- target: {fileID: 968348991679639438, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: ground
value:
objectReference: {fileID: 7564015931936126656}
- target: {fileID: 968348991679639438, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: area
value:
objectReference: {fileID: 7565593112241766594}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalPosition.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalRotation.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalRotation.w
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_RootOrder
value: 6
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 180
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5229809530250264056, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_Name
value: DodgeAgent
objectReference: {fileID: 0}
- target: {fileID: 5229809530250264056, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 9204493211719777360, guid: 16266ae2c040142b1a996878d94ec3fb, type: 3}
m_SourcePrefab: {fileID: 100100000, guid: 16266ae2c040142b1a996878d94ec3fb, type: 3}
--- !u!1 &8381723296076531545 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 5229809530250264056, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
m_PrefabInstance: {fileID: 4379144681784015521}
m_PrefabAsset: {fileID: 0}
--- !u!4 &2543513692711517529 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
m_PrefabInstance: {fileID: 4379144681784015521}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &7499302685616420909
PrefabInstance:

- target: {fileID: 2272550728573618168, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: m_RootOrder
value: 5
value: 4
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}

2
Project/Assets/ML-Agents/Examples/Bullet/Prefabs/DodgeAgent.prefab.meta


fileFormatVersion: 2
guid: 4cb816d3836ca4c02a36c3494a88ab85
guid: 16266ae2c040142b1a996878d94ec3fb
PrefabImporter:
externalObjects: {}
userData:

4
Project/Assets/ML-Agents/Examples/Bullet/Scenes.meta


fileFormatVersion: 2
guid: 9da26ec059778432080bf5fa24374960
guid: 09e116836c9254f219928ef2c3632fa6
timeCreated: 1516234013
licenseType: Free
DefaultImporter:
externalObjects: {}
userData:

67
Project/Assets/ML-Agents/Examples/Bullet/Scenes/Bullet.unity


propertyPath: m_Name
value: BulletArea (7)
objectReference: {fileID: 0}
m_RemovedComponents: []
- target: {fileID: 7565593112241766594, guid: e8cf070fe398a4cf49e159e022b4c70f,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 7960826675695843403, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
m_SourcePrefab: {fileID: 100100000, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
--- !u!1 &255077123
GameObject:

propertyPath: m_Name
value: BulletArea (1)
objectReference: {fileID: 0}
m_RemovedComponents: []
- target: {fileID: 7565593112241766594, guid: e8cf070fe398a4cf49e159e022b4c70f,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 7960826675695843403, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
m_SourcePrefab: {fileID: 100100000, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
--- !u!1001 &502449554
PrefabInstance:

propertyPath: m_Name
value: BulletArea (5)
objectReference: {fileID: 0}
m_RemovedComponents: []
- target: {fileID: 7565593112241766594, guid: e8cf070fe398a4cf49e159e022b4c70f,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 7960826675695843403, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
m_SourcePrefab: {fileID: 100100000, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
--- !u!1001 &620285875
PrefabInstance:

propertyPath: m_Name
value: BulletArea (2)
objectReference: {fileID: 0}
m_RemovedComponents: []
- target: {fileID: 7565593112241766594, guid: e8cf070fe398a4cf49e159e022b4c70f,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 7960826675695843403, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
m_SourcePrefab: {fileID: 100100000, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
--- !u!1001 &721353750
PrefabInstance:

propertyPath: m_Name
value: BulletArea (4)
objectReference: {fileID: 0}
m_RemovedComponents: []
- target: {fileID: 7565593112241766594, guid: e8cf070fe398a4cf49e159e022b4c70f,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 7960826675695843403, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
m_SourcePrefab: {fileID: 100100000, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
--- !u!1 &1009000883
GameObject:

propertyPath: m_Name
value: BulletArea (8)
objectReference: {fileID: 0}
m_RemovedComponents: []
- target: {fileID: 7565593112241766594, guid: e8cf070fe398a4cf49e159e022b4c70f,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 7960826675695843403, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
m_SourcePrefab: {fileID: 100100000, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
--- !u!1001 &1426551295
PrefabInstance:

propertyPath: m_Name
value: BulletArea (3)
objectReference: {fileID: 0}
m_RemovedComponents: []
- target: {fileID: 7565593112241766594, guid: e8cf070fe398a4cf49e159e022b4c70f,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 7960826675695843403, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
m_SourcePrefab: {fileID: 100100000, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
--- !u!1 &1862116114
GameObject:

propertyPath: m_Name
value: BulletArea (6)
objectReference: {fileID: 0}
m_RemovedComponents: []
- target: {fileID: 7565593112241766594, guid: e8cf070fe398a4cf49e159e022b4c70f,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 7960826675695843403, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
m_SourcePrefab: {fileID: 100100000, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
--- !u!1001 &7565375909113651404
PrefabInstance:

propertyPath: m_Name
value: BulletArea
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedComponents:
- {fileID: 7960826675695843403, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}
m_SourcePrefab: {fileID: 100100000, guid: e8cf070fe398a4cf49e159e022b4c70f, type: 3}

4
Project/Assets/ML-Agents/Examples/Bullet/Scenes/Bullet.unity.meta


fileFormatVersion: 2
guid: ae8cc75939e3e4d07a79c8c6a08b54f4
timeCreated: 1506808980
licenseType: Pro
guid: 8bdf646565de7444f9bf9c8d784d67de
DefaultImporter:
externalObjects: {}
userData:

4
Project/Assets/ML-Agents/Examples/Bullet/Scripts.meta


fileFormatVersion: 2
guid: ca44e3d53154a4ff0a1279be30b23bdf
guid: 01d556d6905714c04bcb7371293cbb55
timeCreated: 1514922284
licenseType: Free
DefaultImporter:
externalObjects: {}
userData:

12
Project/Assets/ML-Agents/Examples/Bullet/Scripts/Bullet.cs


/// <summary>
/// The ground. The bounds are used to spawn the elements.
/// </summary>
Rigidbody m_BulletRb;
public Rigidbody BulletRb;
m_BulletRb = GetComponent<Rigidbody>();
//m_BulletRb.AddForce(20f*transform.forward, ForceMode.VelocityChange);
BulletRb = GetComponent<Rigidbody>();
//BulletRb.AddForce(20f*transform.forward, ForceMode.VelocityChange);
transform.position += transform.forward * speed;
transform.position += transform.forward * speed;
//gameObject.SetActive(false);
//gameObject.SetActive(false);
}
}

6
Project/Assets/ML-Agents/Examples/Bullet/Scripts/BulletAgent.cs


public void FixedUpdate()
{
if (Time.time > m_BulletTime + 0.03f)
{
{
//var x = Random.Range(-1f * m_x, m_x) + area.transform.position.x;
//var z = Random.Range(-1f * m_z, m_z) + area.transform.position.z;
var r = Random.Range(0f, 360f);

Quaternion rotation = Quaternion.Euler(0, r, 0);
//Quaternion rotation = Quaternion.LookRotation(m_center - pos);
var ob = Instantiate(m_BulletRb, pos, rotation);
var ob = Instantiate(m_BulletRb, pos, rotation, area.transform);
m_currX = x;
m_currZ = z;
// ob.GetComponent<Rigidbody>().AddForce(20f*ob.transform.forward, ForceMode.VelocityChange);

}
}
}

4
Project/Assets/ML-Agents/Examples/Bullet/Scripts/DodgeAgent.cs


BulletSettings m_BulletSettings;
public bool useVectorObs;
Rigidbody m_AgentRb; //cached on initialization
Material m_GroundMaterial; //cached on Awake()

public override void CollectObservations(VectorSensor sensor)
{
sensor.AddObservation(transform.position.x - area.transform.position.x);
sensor.AddObservation(transform.position.z - area.transform.position.z);

2
Project/Assets/ML-Agents/Examples/Bullet/TFModels.meta


fileFormatVersion: 2
guid: 5855121f0ded74dad8e1dd15a8bcdca1
guid: 701ee0d2477094202966032b6839349d
folderAsset: yes
DefaultImporter:
externalObjects: {}

2
Project/Assets/ML-Agents/Examples/Bullet/TFModels/PushBlock.nn.meta


fileFormatVersion: 2
guid: 70db47ab276e44fe0beb677ff8d69382
guid: 053f313dbde8641a7b498e7eafbf8960
ScriptedImporter:
fileIDToRecycleName:
11400000: main obj

42
ml-agents/mlagents/trainers/torch/networks.py


network_settings.vis_encode_type,
normalize=self.normalize,
)
self.linear_encoder = LinearEncoder(
total_enc_size, network_settings.num_layers, self.h_size
)
self.obs_embeding = LinearEncoder(4, 1, 64)
self.obs_embeding = LinearEncoder(4 + 64, 1, 64)
self.dense_after_attention = LinearEncoder(64, 1, 64)
self.linear_encoder = LinearEncoder(
total_enc_size, network_settings.num_layers, self.h_size
)
if self.use_lstm:
self.lstm = LSTM(self.h_size, self.m_size)

# TODO : This is a Hack
var_len_input = vis_inputs[0].reshape(-1, 20, 4)
key_mask = (
key_mask = 0 * (
self_encoding = processed_vec.reshape(-1, 1, processed_vec.shape[1])
self_encoding = self.self_embedding(self_encoding) # (b, 64)
x_self = processed_vec.reshape(-1, processed_vec.shape[1])
x_self = self.self_embedding(x_self) # (b, 1,64)
expanded_x_self = x_self.reshape(-1, 1, 64).repeat(1, 20, 1)
objects = torch.cat([expanded_x_self, var_len_input], dim=2) #(b,20,68)
obs_encoding = self.obs_embeding(var_len_input)
expanded_self_encoding = self_encoding.reshape(-1, 1, 64).repeat(1, 20, 1)
self_and_key_emb = self.self_and_obs_embedding(
torch.cat([obs_encoding, expanded_self_encoding], dim=2)
)
obj_encoding = self.obs_embeding(objects)#(b,20,64)
self_and_key_emb = torch.cat([self_encoding, self_and_key_emb], dim=1)
self_and_key_emb = torch.cat([x_self.reshape(-1,1,64), obj_encoding], dim=1) #(b,21,64)
)
) # first one is never masked
)
) # (b, 21, 64)
output = self.dense_after_attention(output) + self_and_key_emb
) / torch.sum(1 - key_mask, dim=1, keepdim=True)
) / torch.sum(1 - key_mask, dim=1, keepdim=True) # average pooling
# output = torch.cat([inputs, output], dim=1)
encoding = self.linear_encoder(output + x_self)
encoding = self.linear_encoder(output)
if self.use_lstm:
# Resize to (batch, sequence length, encoding size)

634
Project/Assets/ML-Agents/Examples/Bullet/Prefabs/DodgeAgentRaycast.prefab


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &885187624837835691
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5717384610559386029}
- component: {fileID: 4460606225382380065}
- component: {fileID: 1701558932139552957}
m_Layer: 0
m_Name: Headband
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5717384610559386029
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 885187624837835691}
m_LocalRotation: {x: -0, y: -0, z: 0.016506119, w: 0.9998638}
m_LocalPosition: {x: 0, y: 0.341, z: 0}
m_LocalScale: {x: 1.0441425, y: 0.19278127, z: 1.0441422}
m_Children: []
m_Father: {fileID: 3772060718904068707}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: -179.99998, z: 1.8920001}
--- !u!33 &4460606225382380065
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 885187624837835691}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &1701558932139552957
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 885187624837835691}
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: 04be259c590de46f69db4cbd1da877d5, 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 &3030470132183250647
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4891811896135393119}
- component: {fileID: 2566746289261301171}
- component: {fileID: 6208826707789982396}
m_Layer: 0
m_Name: eye
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4891811896135393119
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3030470132183250647}
m_LocalRotation: {x: -0, y: 1, z: -0, w: 0}
m_LocalPosition: {x: -0.29999995, y: 0.07399994, z: 0.50040054}
m_LocalScale: {x: 0.29457998, y: 0.29457998, z: 0.29457998}
m_Children: []
m_Father: {fileID: 3772060718904068707}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!33 &2566746289261301171
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3030470132183250647}
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &6208826707789982396
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3030470132183250647}
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: f731be6866ce749fd8349e67ae81f76a, 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 &3867941451733423599
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5300219684672247731}
- component: {fileID: 8887881079427673174}
m_Layer: 0
m_Name: AgentCamera
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &5300219684672247731
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3867941451733423599}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0.15}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 3772060718904068707}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!20 &8887881079427673174
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3867941451733423599}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0.46666667, g: 0.5647059, b: 0.60784316, a: 1}
m_projectionMatrixMode: 1
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_GateFitMode: 2
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294950911
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!1 &4950788375273796042
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3772060718904068707}
- component: {fileID: 7436418646745004782}
- component: {fileID: 8060565630020696910}
m_Layer: 0
m_Name: AgentCube_Blue
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3772060718904068707
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4950788375273796042}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 5300219684672247731}
- {fileID: 6362716277631423426}
- {fileID: 4891811896135393119}
- {fileID: 5037913333958716936}
- {fileID: 5717384610559386029}
m_Father: {fileID: 2272550728573618168}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &7436418646745004782
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4950788375273796042}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &8060565630020696910
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4950788375273796042}
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: c9fa44c2c3f8ce74ca39a3355ea42631, 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 &5229809530250264056
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2272550728573618168}
- component: {fileID: 2679882405526971781}
- component: {fileID: 2602957484348800521}
- component: {fileID: 1274120649733857615}
- component: {fileID: 9204493211719777360}
- component: {fileID: 7501236269187550559}
- component: {fileID: 968348991679639438}
- component: {fileID: 968348991679639432}
m_Layer: 0
m_Name: DodgeAgent
m_TagString: agent
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2272550728573618168
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5229809530250264056}
m_LocalRotation: {x: 0, y: 1, z: 0, w: 0}
m_LocalPosition: {x: 0, y: 0.5, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 3772060718904068707}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!54 &2679882405526971781
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5229809530250264056}
serializedVersion: 2
m_Mass: 25
m_Drag: 4
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 112
m_CollisionDetection: 1
--- !u!114 &2602957484348800521
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5229809530250264056}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5d1c4e0b1822b495aa52bc52839ecb30, type: 3}
m_Name:
m_EditorClassIdentifier:
m_BrainParameters:
VectorObservationSize: 2
NumStackedVectorObservations: 3
VectorActionSize: 03000000
VectorActionDescriptions: []
VectorActionSpaceType: 1
m_Model: {fileID: 11400000, guid: 594d4e871fa4a43e7a295dc95e462c73, type: 3}
m_InferenceDevice: 0
m_BehaviorType: 0
m_BehaviorName: Dodge
TeamId: 0
m_UseChildSensors: 1
m_UseChildActuators: 1
m_ObservableAttributeHandling: 0
--- !u!65 &1274120649733857615
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5229809530250264056}
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!114 &9204493211719777360
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5229809530250264056}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6bb6b867a41448888c1cd4f99643ad71, type: 3}
m_Name:
m_EditorClassIdentifier:
m_SensorName: RayPerceptionSensor
m_DetectableTags:
- bullet
m_RaysPerDirection: 15
m_MaxRayDegrees: 180
m_SphereCastRadius: 0.5
m_RayLength: 10
m_RayLayerMask:
serializedVersion: 2
m_Bits: 4294967291
m_ObservationStacks: 1
rayHitColor: {r: 1, g: 0, b: 0, a: 1}
rayMissColor: {r: 1, g: 1, b: 1, a: 1}
m_StartVerticalOffset: 0
m_EndVerticalOffset: 0
--- !u!114 &7501236269187550559
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5229809530250264056}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3a6da8f78a394c6ab027688eab81e04d, type: 3}
m_Name:
m_EditorClassIdentifier:
debugCommandLineOverride:
--- !u!114 &968348991679639438
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5229809530250264056}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 232c9ff708bbc42229855bb8d3366b4c, type: 3}
m_Name:
m_EditorClassIdentifier:
agentParameters:
maxStep: 0
hasUpgradedFromAgentParameters: 1
MaxStep: 5000
ground: {fileID: 0}
area: {fileID: 0}
areaBounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
useVectorObs: 0
--- !u!114 &968348991679639432
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5229809530250264056}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3a5c9d521e5ef4759a8246a07d52221e, type: 3}
m_Name:
m_EditorClassIdentifier:
DecisionPeriod: 1
TakeActionsBetweenDecisions: 1
--- !u!1 &6488287002221018852
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6362716277631423426}
- component: {fileID: 6894619667838806527}
- component: {fileID: 3315131464053969598}
m_Layer: 0
m_Name: eye
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6362716277631423426
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6488287002221018852}
m_LocalRotation: {x: -0, y: 1, z: -0, w: 0}
m_LocalPosition: {x: 0.29999995, y: 0.07399994, z: 0.50040054}
m_LocalScale: {x: 0.29457998, y: 0.29457998, z: 0.29457998}
m_Children: []
m_Father: {fileID: 3772060718904068707}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!33 &6894619667838806527
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6488287002221018852}
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &3315131464053969598
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6488287002221018852}
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: f731be6866ce749fd8349e67ae81f76a, 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 &8259363671549105397
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5037913333958716936}
- component: {fileID: 3403839327942429956}
- component: {fileID: 1920365830379467393}
m_Layer: 0
m_Name: mouth
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5037913333958716936
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8259363671549105397}
m_LocalRotation: {x: -0, y: 1, z: -0, w: 0}
m_LocalPosition: {x: 0, y: -0.18299997, z: 0.50040054}
m_LocalScale: {x: 0.27602, y: 0.042489994, z: 0.13891}
m_Children: []
m_Father: {fileID: 3772060718904068707}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!33 &3403839327942429956
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8259363671549105397}
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &1920365830379467393
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8259363671549105397}
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: f731be6866ce749fd8349e67ae81f76a, 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

7
Project/Assets/ML-Agents/Examples/Bullet/Prefabs/DodgeAgentRaycast.prefab.meta


fileFormatVersion: 2
guid: 7a515d80a9d5b4cfaba55aa066594016
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

118
Project/Assets/ML-Agents/Examples/Bullet/Scripts/AttentionSensorComponent.cs


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.MLAgents.Sensors;
using System;
using System.Linq;
/// <summary>
/// A simple example of a SensorComponent.
/// This should be added to the same GameObject as the BasicController
/// </summary>
public class AttentionSensorComponent : SensorComponent
{
public int ObservableSize;
public int MaxNumObservables;
/// <summary>
/// Creates a BasicSensor.
/// </summary>
/// <returns></returns>
public override ISensor CreateSensor()
{
return new AttentionSensor(transform, ObservableSize, MaxNumObservables);
}
/// <inheritdoc/>
public override int[] GetObservationShape()
{
return new[] { MaxNumObservables, ObservableSize,1};
}
}
/// <summary>
/// Simple Sensor implementation that uses a one-hot encoding of the Agent's
/// position as the observation.
/// </summary>
public class AttentionSensor : ISensor
{
int m_ObservableSize;
int m_MaxNumObservables;
float[] m_ObservationBuffer;
int m_CurrentNumObservables;
Transform m_AgentTransform;
public AttentionSensor(Transform AgentTransform, int ObservableSize, int MaxNumObservables)
{
m_ObservableSize = ObservableSize;
m_MaxNumObservables = MaxNumObservables;
m_AgentTransform = AgentTransform;
m_ObservationBuffer = new float[m_ObservableSize * m_MaxNumObservables];
m_CurrentNumObservables = 0;
}
/// <summary>
/// Generate the observations for the sensor.
/// In this case, the observations are all 0 except for a 1 at the position of the agent.
/// </summary>
/// <param name="output"></param>
public int Write(ObservationWriter writer)
{
for (int i = 0; i < m_ObservableSize * m_MaxNumObservables; i++){
writer[i] = m_ObservationBuffer[i];
}
return m_ObservableSize * m_MaxNumObservables;
}
public byte[] GetCompressedObservation()
{
return new byte[0];
}
public int[] GetObservationShape()
{
return new[] { m_MaxNumObservables, m_ObservableSize,1 };
}
/// <inheritdoc/>
public void Update() {
var bullets = m_AgentTransform.parent.GetComponentsInChildren<Bullet>();
// Sort by closest :
Array.Sort(bullets , (a, b) => Vector3.Distance(a.transform.position, m_AgentTransform.position) - Vector3.Distance(b.transform.position, m_AgentTransform.position) > 0 ? 1 : -1);
foreach (Bullet b in bullets)
{
if (m_CurrentNumObservables >= m_MaxNumObservables){
break;
}
m_ObservationBuffer[m_CurrentNumObservables * m_ObservableSize + 0] = b.transform.position.x - m_AgentTransform.position.x;
m_ObservationBuffer[m_CurrentNumObservables * m_ObservableSize + 1] = b.transform.position.z - m_AgentTransform.position.z;
m_ObservationBuffer[m_CurrentNumObservables * m_ObservableSize + 2] = b.transform.forward.x;
m_ObservationBuffer[m_CurrentNumObservables * m_ObservableSize + 3] = b.transform.forward.z;
m_CurrentNumObservables += 1;
}
}
/// <inheritdoc/>
public void Reset() {
m_CurrentNumObservables = 0;
Array.Clear(m_ObservationBuffer, 0, m_ObservationBuffer.Length);
}
public SensorCompressionType GetCompressionType()
{
return SensorCompressionType.None;
}
/// <summary>
/// Accessor for the name of the sensor.
/// </summary>
/// <returns>Sensor name.</returns>
public string GetName()
{
return "AttentionSensor";
}
}

11
Project/Assets/ML-Agents/Examples/Bullet/Scripts/AttentionSensorComponent.cs.meta


fileFormatVersion: 2
guid: f0cda222e502445d6afb18a17a426477
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
正在加载...
取消
保存