浏览代码

Implemented agent reset via prefab respawning for ArticulatedReacher and ArticulatedReacherManualControl scenes.

/PhysXArticulations20201
Vilmantas Balasevicius 5 年前
当前提交
86a627d2
共有 10 个文件被更改,包括 1698 次插入817 次删除
  1. 40
      UnitySDK/Assets/ML-Agents/Examples/Crawler/Prefabs/ArticulatedCrawler.prefab
  2. 818
      UnitySDK/Assets/ML-Agents/Examples/Crawler/Scenes/ArticulatedCrawlerStaticTarget.unity
  3. 43
      UnitySDK/Assets/ML-Agents/Examples/Crawler/Scripts/ArticulatedCrawlerAgent.cs
  4. 706
      UnitySDK/Assets/ML-Agents/Examples/Reacher/Prefabs/ArticulatedAgent.prefab
  5. 140
      UnitySDK/Assets/ML-Agents/Examples/Reacher/Scenes/ArticulatedReacher.unity
  6. 50
      UnitySDK/Assets/ML-Agents/Examples/Reacher/Scenes/ArticulatedReacherManualControl.unity
  7. 56
      UnitySDK/Assets/ML-Agents/Examples/Reacher/Scripts/ArticulatedReacherAgent.cs
  8. 29
      UnitySDK/Assets/ML-Agents/Examples/Reacher/Scripts/ManualControlReacherArm.cs
  9. 626
      UnitySDK/Assets/ML-Agents/Examples/Reacher/Prefabs/ReacherRoot.prefab
  10. 7
      UnitySDK/Assets/ML-Agents/Examples/Reacher/Prefabs/ReacherRoot.prefab.meta

40
UnitySDK/Assets/ML-Agents/Examples/Crawler/Prefabs/ArticulatedCrawler.prefab


- target: {fileID: 1636700445481828705, guid: fb461eb64f693b4639620566527873a1,
type: 3}
propertyPath: m_ParentAnchorPosition.z
value: -0.9454816
value: -0.9454825
objectReference: {fileID: 0}
- target: {fileID: 1636700445481828705, guid: fb461eb64f693b4639620566527873a1,
type: 3}

- target: {fileID: 1636700445481828705, guid: fb461eb64f693b4639620566527873a1,
type: 3}
propertyPath: m_ParentAnchorPosition.x
value: -0.98528147
value: -0.9852709
objectReference: {fileID: 0}
- target: {fileID: 2922927341164267237, guid: fb461eb64f693b4639620566527873a1,
type: 3}

- target: {fileID: 4891424238010555550, guid: fb461eb64f693b4639620566527873a1,
type: 3}
propertyPath: m_ParentAnchorPosition.x
value: -0.98527044
value: -0.98526514
value: -0.9454927
value: -0.9454757
objectReference: {fileID: 0}
- target: {fileID: 4891424238010555550, guid: fb461eb64f693b4639620566527873a1,
type: 3}

- target: {fileID: 5065949469066816375, guid: fb461eb64f693b4639620566527873a1,
type: 3}
propertyPath: m_ParentAnchorPosition.x
value: -0.33999482
value: -0.34000033
objectReference: {fileID: 0}
- target: {fileID: 5065949469066816375, guid: fb461eb64f693b4639620566527873a1,
type: 3}

- target: {fileID: 5065949469066816375, guid: fb461eb64f693b4639620566527873a1,
type: 3}
propertyPath: m_ParentAnchorPosition.z
value: -0.34
value: -0.34000015
objectReference: {fileID: 0}
- target: {fileID: 5065949469066816375, guid: fb461eb64f693b4639620566527873a1,
type: 3}

- target: {fileID: 5734710256944527080, guid: fb461eb64f693b4639620566527873a1,
type: 3}
propertyPath: m_ParentAnchorPosition.x
value: -0.33999485
value: -0.34000584
objectReference: {fileID: 0}
- target: {fileID: 5734710256944527080, guid: fb461eb64f693b4639620566527873a1,
type: 3}

- target: {fileID: 5734710256944527080, guid: fb461eb64f693b4639620566527873a1,
type: 3}
propertyPath: m_ParentAnchorPosition.z
value: 0.34
value: 0.34000576
value: -0.3826835
value: -0.38268355
value: -0.92387974
value: -0.9238798
value: 0.33999485
value: 0.34000584
objectReference: {fileID: 0}
- target: {fileID: 6072148052372686416, guid: fb461eb64f693b4639620566527873a1,
type: 3}

- target: {fileID: 6072148052372686416, guid: fb461eb64f693b4639620566527873a1,
type: 3}
propertyPath: m_ParentAnchorPosition.z
value: -0.34
value: -0.34000576
value: 0.92387974
value: 0.9238798
value: -0.3826835
value: -0.38268355
objectReference: {fileID: 0}
- target: {fileID: 7640323869839153161, guid: fb461eb64f693b4639620566527873a1,
type: 3}

- target: {fileID: 7640323869839153161, guid: fb461eb64f693b4639620566527873a1,
type: 3}
propertyPath: m_ParentAnchorPosition.z
value: 0.3400003
value: 0.33999994
objectReference: {fileID: 0}
- target: {fileID: 7640323869839153161, guid: fb461eb64f693b4639620566527873a1,
type: 3}

- target: {fileID: 7640323869839153161, guid: fb461eb64f693b4639620566527873a1,
type: 3}
propertyPath: m_ParentAnchorPosition.x
value: 0.33999518
value: 0.33999988
value: -0.9852709
value: -0.9852654
value: -0.94549286
value: -0.94547635
objectReference: {fileID: 0}
- target: {fileID: 8103242485489587564, guid: fb461eb64f693b4639620566527873a1,
type: 3}

- target: {fileID: 8980568845972025383, guid: fb461eb64f693b4639620566527873a1,
type: 3}
propertyPath: m_ParentAnchorPosition.x
value: -0.9852818
value: -0.98527044
value: -0.94548184
value: -0.94548273
objectReference: {fileID: 0}
- target: {fileID: 8980568845972025383, guid: fb461eb64f693b4639620566527873a1,
type: 3}

818
UnitySDK/Assets/ML-Agents/Examples/Crawler/Scenes/ArticulatedCrawlerStaticTarget.unity
文件差异内容过多而无法显示
查看文件

43
UnitySDK/Assets/ML-Agents/Examples/Crawler/Scripts/ArticulatedCrawlerAgent.cs


using System;
using Random = UnityEngine.Random;
[RequireComponent(typeof(ArticulatedJointDriveController))] // Required to set joint forces
public class ArticulatedCrawlerAgent : Agent

public Transform leg3Upper;
public Transform leg3Lower;
private string bodyName;
private string leg0UpperName;
private string leg0LowerName;
private string leg1UpperName;
private string leg1LowerName;
private string leg2UpperName;
private string leg2LowerName;
private string leg3UpperName;
private string leg3LowerName;
[Header("Joint Settings")][Space(10)] ArticulatedJointDriveController m_JdController;
Vector3 m_DirToTarget;
float m_MovingTowardsDot;

m_JdController.Reset();
SetupBodyParts();
SaveBodyPartNames();
}
/// <summary>

m_JdController.SetupBodyPart(leg2Lower);
m_JdController.SetupBodyPart(leg3Upper);
m_JdController.SetupBodyPart(leg3Lower);
}
private void SaveBodyPartNames()
{
bodyName = body.name;
leg0UpperName = leg0Upper.name;
leg0LowerName = leg0Lower.name;
leg1UpperName = leg1Upper.name;
leg1LowerName = leg1Lower.name;
leg2UpperName = leg2Upper.name;
leg2LowerName = leg2Lower.name;
leg3UpperName = leg3Upper.name;
leg3LowerName = leg3Lower.name;
}
/// <summary>

/// <param name="rootBody"></param>
private void ResetLegTransforms(Transform rootBody)
{
leg0Upper = ArticulatedJointDriveController.FindBodyPartByName(rootBody,"leg0");
leg1Upper = ArticulatedJointDriveController.FindBodyPartByName(rootBody,"leg1");
leg2Upper = ArticulatedJointDriveController.FindBodyPartByName(rootBody,"leg2");
leg3Upper = ArticulatedJointDriveController.FindBodyPartByName(rootBody,"leg3");
leg0Upper = ArticulatedJointDriveController.FindBodyPartByName(rootBody, leg0UpperName);
leg1Upper = ArticulatedJointDriveController.FindBodyPartByName(rootBody, leg1UpperName);
leg2Upper = ArticulatedJointDriveController.FindBodyPartByName(rootBody, leg2UpperName);
leg3Upper = ArticulatedJointDriveController.FindBodyPartByName(rootBody, leg3UpperName);
leg0Lower = ArticulatedJointDriveController.FindBodyPartByName(rootBody,"foreleg0");
leg1Lower = ArticulatedJointDriveController.FindBodyPartByName(rootBody,"foreleg1");
leg2Lower = ArticulatedJointDriveController.FindBodyPartByName(rootBody,"foreleg2");
leg3Lower = ArticulatedJointDriveController.FindBodyPartByName(rootBody,"foreleg3");
leg0Lower = ArticulatedJointDriveController.FindBodyPartByName(rootBody, leg0LowerName);
leg1Lower = ArticulatedJointDriveController.FindBodyPartByName(rootBody, leg1LowerName);
leg2Lower = ArticulatedJointDriveController.FindBodyPartByName(rootBody, leg2LowerName);
leg3Lower = ArticulatedJointDriveController.FindBodyPartByName(rootBody, leg3LowerName);
}
}

706
UnitySDK/Assets/ML-Agents/Examples/Reacher/Prefabs/ArticulatedAgent.prefab


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1053261483945176
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4340471134207970}
- component: {fileID: 33129520809121966}
- component: {fileID: 136195163595303310}
- component: {fileID: 23956479694601514}
m_Layer: 0
m_Name: Capsule (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4340471134207970
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1053261483945176}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 3, z: 1}
m_Children:
- {fileID: 4910003592613346}
m_Father: {fileID: 5577473675271150779}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &33129520809121966
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1053261483945176}
m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
--- !u!136 &136195163595303310
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1053261483945176}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
m_Radius: 0.5
m_Height: 2
m_Direction: 1
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &23956479694601514
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1053261483945176}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: eaad04b0e0dec42229c9cb00a981d7ac, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 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 &1065277484498824
GameObject:
m_ObjectHideFlags: 0

m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!1 &1157728520783578
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4386034827704486}
- component: {fileID: 33524134957751370}
- component: {fileID: 135370188030477524}
- component: {fileID: 23420739137250176}
m_Layer: 0
m_Name: Sphere
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4386034827704486
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1157728520783578}
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: 7854106910146316266}
m_Father: {fileID: 1965543810841106237}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &33524134957751370
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1157728520783578}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!135 &135370188030477524
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1157728520783578}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &23420739137250176
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1157728520783578}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 69fefdd39d2b34b169e921910bed9c0d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 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
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &1395682910799436
GameObject:
m_ObjectHideFlags: 0

resetOnDone: 1
onDemandDecision: 0
numberOfActionsBetweenDecisions: 4
reacherRoot: {fileID: 3423762949051111643}
--- !u!1 &1644872085946016
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4944997927059382}
- component: {fileID: 33736038482486542}
- component: {fileID: 136942565296027158}
- component: {fileID: 23266194367773042}
m_Layer: 0
m_Name: Capsule
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4944997927059382
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1644872085946016}
m_LocalRotation: {x: 1, y: 0, z: 0, w: 0}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 3, z: 1}
m_Children: []
m_Father: {fileID: 7854106910146316266}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 180, y: 0, z: 0}
--- !u!33 &33736038482486542
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1644872085946016}
m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
--- !u!136 &136942565296027158
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1644872085946016}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
m_Radius: 0.5
m_Height: 2
m_Direction: 1
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &23266194367773042
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1644872085946016}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: eaad04b0e0dec42229c9cb00a981d7ac, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 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 &1654288206095398
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4910003592613346}
- component: {fileID: 33164921905814718}
- component: {fileID: 135867312924178508}
- component: {fileID: 23588591193572352}
m_Layer: 0
m_Name: Hand
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4910003592613346
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1654288206095398}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: 0}
m_LocalScale: {x: 2, y: 0.22000001, z: 2}
m_Children: []
m_Father: {fileID: 4340471134207970}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &33164921905814718
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1654288206095398}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!135 &135867312924178508
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1654288206095398}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &23588591193572352
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1654288206095398}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
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_ReceiveGI: 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
reacherRootPrefab: {fileID: 4151261966004313255, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
--- !u!1 &1986879271678326
GameObject:
m_ObjectHideFlags: 0

m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &4817652318333382091
MonoBehaviour:
m_ObjectHideFlags: 0

m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!1 &1612288809266921535
--- !u!1001 &1594160471321281660
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 4067321601414524}
m_Modifications:
- target: {fileID: 961689143316173633, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 961689143316173633, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 961689143316173633, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 961689143316173633, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 961689143316173633, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 961689143316173633, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 961689143316173633, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 961689143316173633, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
propertyPath: m_RootOrder
value: 1
objectReference: {fileID: 0}
- target: {fileID: 961689143316173633, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 961689143316173633, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 961689143316173633, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4151261966004313255, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
propertyPath: m_Name
value: ReacherRoot
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f517fb76e96ed5801877e6fed9d8e45e, type: 3}
--- !u!1 &3423762949051111643 stripped
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 4151261966004313255, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
m_PrefabInstance: {fileID: 1594160471321281660}
serializedVersion: 6
m_Component:
- component: {fileID: 7854106910146316266}
- component: {fileID: 3121518955567099780}
m_Layer: 0
m_Name: ArmBone1
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7854106910146316266
--- !u!4 &1965543810841106237 stripped
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 961689143316173633, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
m_PrefabInstance: {fileID: 1594160471321281660}
m_GameObject: {fileID: 1612288809266921535}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: -4, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 4944997927059382}
- {fileID: 5577473675271150779}
m_Father: {fileID: 4386034827704486}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!171741748 &3121518955567099780
ArticulationBody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
--- !u!1 &1612288809266921535 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 35915141843403843, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
m_PrefabInstance: {fileID: 1594160471321281660}
m_GameObject: {fileID: 1612288809266921535}
m_Enabled: 1
m_Mass: 1
m_ParentAnchorPosition: {x: 0, y: 0, z: 0}
m_ParentAnchorRotation: {x: 0, y: 0, z: 0.70710677, w: 0.70710677}
m_AnchorPosition: {x: 0, y: 4, z: 0}
m_AnchorRotation: {x: 0, y: 0, z: 0.70710677, w: 0.70710677}
m_ComputeParentAnchor: 1
m_ArticulationJointType: 3
m_LinearX: 0
m_LinearY: 0
m_LinearZ: 0
m_Swing1: 2
m_Swing2: 2
m_Twist: 0
m_XDrive:
lowerLimit: 0
upperLimit: 0
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_YDrive:
lowerLimit: 0
upperLimit: 0
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_ZDrive:
lowerLimit: 0
upperLimit: 0
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_LinearDamping: 0.05
m_AngularDamping: 0.05
m_JointFriction: 0.05
m_Immovable: 0
--- !u!1 &2828438114980972834
--- !u!1 &2828438114980972834 stripped
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5577473675271150779}
- component: {fileID: 3535560371474816925}
m_Layer: 0
m_Name: ArmBone2
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5577473675271150779
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2828438114980972834}
m_LocalRotation: {x: 1, y: 0, z: 0, w: 0}
m_LocalPosition: {x: 0, y: -6, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 4340471134207970}
m_Father: {fileID: 7854106910146316266}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 180, y: 0, z: 0}
--- !u!171741748 &3535560371474816925
ArticulationBody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 3557625978573213022, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
m_PrefabInstance: {fileID: 1594160471321281660}
m_GameObject: {fileID: 2828438114980972834}
m_Enabled: 1
m_Mass: 1
m_ParentAnchorPosition: {x: 0, y: -3, z: 0}
m_ParentAnchorRotation: {x: 0.70710677, y: -0.70710677, z: 0, w: 0}
m_AnchorPosition: {x: 0, y: -3, z: 0}
m_AnchorRotation: {x: 0, y: 0, z: 0.70710677, w: 0.70710677}
m_ComputeParentAnchor: 1
m_ArticulationJointType: 3
m_LinearX: 0
m_LinearY: 0
m_LinearZ: 0
m_Swing1: 2
m_Swing2: 2
m_Twist: 0
m_XDrive:
lowerLimit: 0
upperLimit: 0
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_YDrive:
lowerLimit: 0
upperLimit: 0
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_ZDrive:
lowerLimit: 0
upperLimit: 0
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_LinearDamping: 0.05
m_AngularDamping: 0.05
m_JointFriction: 0.05
m_Immovable: 0
--- !u!1 &3423762949051111643
--- !u!1 &1654288206095398 stripped
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1965543810841106237}
- component: {fileID: 7187870112728913865}
m_Layer: 0
m_Name: ReacherRoot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1965543810841106237
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3423762949051111643}
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: 4386034827704486}
m_Father: {fileID: 4067321601414524}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!171741748 &7187870112728913865
ArticulationBody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 1592717429903089754, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
m_PrefabInstance: {fileID: 1594160471321281660}
m_GameObject: {fileID: 3423762949051111643}
m_Enabled: 1
m_Mass: 1
m_ParentAnchorPosition: {x: 0, y: 0, z: 0}
m_ParentAnchorRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068}
m_AnchorPosition: {x: 0, y: 0, z: 0}
m_AnchorRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068}
m_ComputeParentAnchor: 1
m_ArticulationJointType: 0
m_LinearX: 0
m_LinearY: 0
m_LinearZ: 0
m_Swing1: 0
m_Swing2: 0
m_Twist: 0
m_XDrive:
lowerLimit: 0
upperLimit: 0
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_YDrive:
lowerLimit: 0
upperLimit: 0
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_ZDrive:
lowerLimit: 0
upperLimit: 0
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_LinearDamping: 0.05
m_AngularDamping: 0.05
m_JointFriction: 0.05
m_Immovable: 1

140
UnitySDK/Assets/ML-Agents/Examples/Reacher/Scenes/ArticulatedReacher.unity


propertyPath: m_ParentAnchorRotation.w
value: 0.7071067
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: brain
value:
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: agentParameters.maxStep
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: agentParameters.numberOfActionsBetweenDecisions
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: pendulumA
value:
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: pendulumB
value:
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: hand
value:
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: goal
value:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 142b1673ab3eef5f098717cab90c53bf, type: 3}
--- !u!1001 &49599877

propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: brain
value:
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: agentParameters.maxStep
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: agentParameters.numberOfActionsBetweenDecisions
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: pendulumA
value:
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: pendulumB
value:
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: hand
value:
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: goal
value:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 142b1673ab3eef5f098717cab90c53bf, type: 3}
--- !u!1001 &1491983953

type: 3}
propertyPath: m_ParentAnchorPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: brain
value:
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: agentParameters.maxStep
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: agentParameters.numberOfActionsBetweenDecisions
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: pendulumA
value:
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: pendulumB
value:
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: hand
value:
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: goal
value:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 142b1673ab3eef5f098717cab90c53bf, type: 3}

- target: {fileID: 4067321601414524, guid: 142b1673ab3eef5f098717cab90c53bf, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: brain
value:
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: agentParameters.maxStep
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: agentParameters.numberOfActionsBetweenDecisions
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: pendulumA
value:
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: pendulumB
value:
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: hand
value:
objectReference: {fileID: 0}
- target: {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: goal
value:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 142b1673ab3eef5f098717cab90c53bf, type: 3}

50
UnitySDK/Assets/ML-Agents/Examples/Reacher/Scenes/ArticulatedReacherManualControl.unity


--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2

m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 1
m_LightingSettings: {fileID: 4890085278179872738, guid: 0c9da8813ae6fd9dfafb2953273acfa9,
type: 2}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2

m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1065277484498824, guid: 142b1673ab3eef5f098717cab90c53bf, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
objectReference: {fileID: 0}
- target: {fileID: 1986879271678326, guid: 142b1673ab3eef5f098717cab90c53bf, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4067321601414524, guid: 142b1673ab3eef5f098717cab90c53bf, type: 3}
propertyPath: m_LocalPosition.x

propertyPath: m_AngularDamping
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 7502585849089161407, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: m_Enabled
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1986879271678326, guid: 142b1673ab3eef5f098717cab90c53bf, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1065277484498824, guid: 142b1673ab3eef5f098717cab90c53bf, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7187870112728913865, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: m_Mass

type: 3}
propertyPath: m_Immovable
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7502585849089161407, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
propertyPath: m_Enabled
value: 0
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 8825304141050044247, guid: 142b1673ab3eef5f098717cab90c53bf, type: 3}

m_Script: {fileID: 11500000, guid: 156536e3d4854870b084a1f1de48e49e, type: 3}
m_Name:
m_EditorClassIdentifier:
reacherRoot: {fileID: 1343193114}
reacherRootPrefab: {fileID: 4151261966004313255, guid: f517fb76e96ed5801877e6fed9d8e45e,
type: 3}
useAlternativeKeySetForInput: 1
useArticulations: 1
--- !u!1 &277186347

- target: {fileID: 1395682910799436, guid: 2f13abef2db804f96bdc7692a1dcf2b2, type: 3}
propertyPath: m_Name
value: Agent
objectReference: {fileID: 0}
- target: {fileID: 1986879271678326, guid: 2f13abef2db804f96bdc7692a1dcf2b2, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4067321601414524, guid: 2f13abef2db804f96bdc7692a1dcf2b2, type: 3}
propertyPath: m_LocalPosition.x

propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1986879271678326, guid: 2f13abef2db804f96bdc7692a1dcf2b2, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 54174454281860166, guid: 2f13abef2db804f96bdc7692a1dcf2b2,
type: 3}
propertyPath: m_AngularDrag

m_Script: {fileID: 11500000, guid: 156536e3d4854870b084a1f1de48e49e, type: 3}
m_Name:
m_EditorClassIdentifier:
reacherRoot: {fileID: 0}
reacherRootPrefab: {fileID: 0}
--- !u!1 &1343193114 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 3423762949051111643, guid: 142b1673ab3eef5f098717cab90c53bf,
type: 3}
m_PrefabInstance: {fileID: 159831605}
m_PrefabAsset: {fileID: 0}
--- !u!1 &1565872349
GameObject:
m_ObjectHideFlags: 0

56
UnitySDK/Assets/ML-Agents/Examples/Reacher/Scripts/ArticulatedReacherAgent.cs


public class ArticulatedReacherAgent : Agent
{
public GameObject reacherRoot;
public GameObject reacherRootPrefab;
private string m_PendulumAName;
private string m_PendulumBName;
private string m_ReacherRootName;
private string m_HandName;
private ArticulationBody m_RbA;
private ArticulationBody m_RbB;
// speed of the goal zone around the arm (in radians)

m_RbB = pendulumB.GetComponent<ArticulationBody>();
m_MyAcademy = GameObject.Find("Academy").GetComponent<ReacherAcademy>();
m_PendulumAName = pendulumA.name;
m_PendulumBName = pendulumB.name;
m_ReacherRootName = reacherRoot.name;
m_HandName = hand.name;
SetResetParameters();
}

/// </summary>
public override void CollectObservations()
{
Vector3 pendulumAPosToLocalSpace = gameObject.transform.InverseTransformPoint(pendulumA.transform.position);
Vector3 pendulumAPosToLocalSpace = transform.InverseTransformPoint(pendulumA.transform.position);
AddVectorObs(gameObject.transform.InverseTransformVector(m_RbA.angularVelocity));
AddVectorObs(gameObject.transform.InverseTransformVector(m_RbA.velocity));
AddVectorObs(transform.InverseTransformVector(m_RbA.angularVelocity));
AddVectorObs(transform.InverseTransformVector(m_RbA.velocity));
// Below resulted in 0.0732 after 1 M steps, not learning
//AddVectorObs(m_RbA.angularVelocity);
//AddVectorObs(m_RbA.velocity);

Vector3 pendulumBPosToLocalSpace = gameObject.transform.InverseTransformPoint(pendulumB.transform.position);
Vector3 pendulumBPosToLocalSpace = transform.InverseTransformPoint(pendulumB.transform.position);
AddVectorObs(gameObject.transform.InverseTransformVector(m_RbB.angularVelocity));
AddVectorObs(gameObject.transform.InverseTransformVector(m_RbB.velocity));
AddVectorObs(transform.InverseTransformVector(m_RbB.angularVelocity));
AddVectorObs(transform.InverseTransformVector(m_RbB.velocity));
Vector3 goalPosToLocalSpace = gameObject.transform.InverseTransformPoint(goal.transform.position);
Vector3 goalPosToLocalSpace = transform.InverseTransformPoint(goal.transform.position);
Vector3 handPosToLocalSpace = gameObject.transform.InverseTransformPoint(hand.transform.position);
Vector3 handPosToLocalSpace = transform.InverseTransformPoint(hand.transform.position);
AddVectorObs(handPosToLocalSpace);
//AddVectorObs(m_GoalSpeed);

/// </summary>
public override void AgentReset()
{
pendulumA.transform.position = new Vector3(0f, -4f, 0f) + transform.position;
pendulumA.transform.rotation = Quaternion.Euler(180f, 0f, 0f);
Vector3 position = reacherRoot.transform.position;
Quaternion rotation = Quaternion.identity;
DestroyImmediate(reacherRoot);
reacherRoot = Instantiate(reacherRootPrefab, position, rotation);
reacherRoot.transform.parent = transform;
reacherRoot.name = m_ReacherRootName;
pendulumA = reacherRoot.transform.GetChild(0).Find(m_PendulumAName).gameObject;
pendulumB = pendulumA.transform.Find(m_PendulumBName).gameObject;
hand = pendulumB.transform.GetChild(0).Find(m_HandName).gameObject;
pendulumB.transform.position = new Vector3(0f, -10f, 0f) + transform.position;
pendulumB.transform.rotation = Quaternion.Euler(180f, 0f, 0f);
m_RbA = pendulumA.GetComponent<ArticulationBody>();
m_RbB = pendulumB.GetComponent<ArticulationBody>();
// Supply correct newly instantiated hand for collision checking
ArticulatedReacherGoal gc = goal.GetComponent<ArticulatedReacherGoal>();
gc.hand = hand;
public void SetResetParameters()
{

m_DeviationFreq = m_MyAcademy.resetParameters["deviation_freq"];
}
}

29
UnitySDK/Assets/ML-Agents/Examples/Reacher/Scripts/ManualControlReacherArm.cs


using System;
using System.Net;
public GameObject reacherRoot;
public GameObject reacherRootPrefab;
private ArticulationBody m_AbA;
private ArticulationBody m_AbB;

/// </summary>
public void AgentReset()
{
pendulumA.transform.position = new Vector3(0f, -4f, 0f) + transform.position;
pendulumA.transform.rotation = Quaternion.Euler(180f, 0f, 0f);
if (!useArticulations)
return;
string pendulumAName = pendulumA.name;
string pendulumBName = pendulumB.name;
string reacherRootName = reacherRoot.name;
Vector3 position = reacherRoot.transform.position;
Quaternion rotation = Quaternion.identity;
DestroyImmediate(reacherRoot);
reacherRoot = Instantiate(reacherRootPrefab, position, rotation);
reacherRoot.transform.parent = transform;
reacherRoot.name = reacherRootName;
pendulumA = reacherRoot.transform.GetChild(0).Find(pendulumAName).gameObject;
pendulumB = pendulumA.transform.Find(pendulumBName).gameObject;
m_AbA = pendulumA.GetComponent<ArticulationBody>();
m_AbB = pendulumB.GetComponent<ArticulationBody>();
pendulumB.transform.position = new Vector3(0f, -10f, 0f) + transform.position;
pendulumB.transform.rotation = Quaternion.Euler(180f, 0f, 0f);
}
public void FixedUpdate()

}
// Only for articulations
if (Input.GetKey(KeyCode.Escape))
AgentReset();
}

626
UnitySDK/Assets/ML-Agents/Examples/Reacher/Prefabs/ReacherRoot.prefab


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &35915141843403843
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8854354080020382614}
- component: {fileID: 4417543546184838136}
m_Layer: 0
m_Name: ArmBone1
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8854354080020382614
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 35915141843403843}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: -4, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1589218660688886730}
- {fileID: 6591214048622287047}
m_Father: {fileID: 1589785597498866906}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!171741748 &4417543546184838136
ArticulationBody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 35915141843403843}
m_Enabled: 1
m_Mass: 1
m_ParentAnchorPosition: {x: 0, y: 0, z: 0}
m_ParentAnchorRotation: {x: 0, y: 0, z: 0.70710677, w: 0.70710677}
m_AnchorPosition: {x: 0, y: 4, z: 0}
m_AnchorRotation: {x: 0, y: 0, z: 0.70710677, w: 0.70710677}
m_ComputeParentAnchor: 1
m_ArticulationJointType: 3
m_LinearX: 0
m_LinearY: 0
m_LinearZ: 0
m_SwingY: 1
m_SwingZ: 1
m_Twist: 0
m_XDrive:
lowerLimit: -120
upperLimit: 120
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_YDrive:
lowerLimit: -120
upperLimit: 120
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_ZDrive:
lowerLimit: -120
upperLimit: 120
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_LinearDamping: 0.05
m_AngularDamping: 0.05
m_JointFriction: 0.05
m_Immovable: 0
--- !u!1 &1592656336736303836
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1589218660688886730}
- component: {fileID: 1614613305533636978}
- component: {fileID: 1727442758111244906}
- component: {fileID: 1606994499362618638}
m_Layer: 0
m_Name: Capsule
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1589218660688886730
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1592656336736303836}
m_LocalRotation: {x: 1, y: 0, z: 0, w: 0}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 3, z: 1}
m_Children: []
m_Father: {fileID: 8854354080020382614}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 180, y: 0, z: 0}
--- !u!33 &1614613305533636978
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1592656336736303836}
m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
--- !u!136 &1727442758111244906
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1592656336736303836}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
m_Radius: 0.5
m_Height: 2
m_Direction: 1
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &1606994499362618638
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1592656336736303836}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: eaad04b0e0dec42229c9cb00a981d7ac, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 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
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &1592717429903089754
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1589464041819523486}
- component: {fileID: 1615186784853956802}
- component: {fileID: 1728584120109218864}
- component: {fileID: 1606752842428399740}
m_Layer: 0
m_Name: Hand
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1589464041819523486
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1592717429903089754}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: 0}
m_LocalScale: {x: 2, y: 0.22000001, z: 2}
m_Children: []
m_Father: {fileID: 1590037996085689246}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &1615186784853956802
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1592717429903089754}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!135 &1728584120109218864
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1592717429903089754}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &1606752842428399740
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1592717429903089754}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
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_ReceiveGI: 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
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &1593012518587548326
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1589785597498866906}
- component: {fileID: 1614683975423105078}
- component: {fileID: 1729231592186904744}
- component: {fileID: 1606849972676077564}
m_Layer: 0
m_Name: Sphere
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1589785597498866906
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1593012518587548326}
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: 8854354080020382614}
m_Father: {fileID: 961689143316173633}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &1614683975423105078
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1593012518587548326}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!135 &1729231592186904744
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1593012518587548326}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &1606849972676077564
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1593012518587548326}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 69fefdd39d2b34b169e921910bed9c0d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 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
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &1593189527601031332
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1590037996085689246}
- component: {fileID: 1615151378391047378}
- component: {fileID: 1728331429712653810}
- component: {fileID: 1606242221140539734}
m_Layer: 0
m_Name: Capsule (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1590037996085689246
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1593189527601031332}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 3, z: 1}
m_Children:
- {fileID: 1589464041819523486}
m_Father: {fileID: 6591214048622287047}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &1615151378391047378
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1593189527601031332}
m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
--- !u!136 &1728331429712653810
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1593189527601031332}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
m_Radius: 0.5
m_Height: 2
m_Direction: 1
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &1606242221140539734
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1593189527601031332}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: eaad04b0e0dec42229c9cb00a981d7ac, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 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
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1 &3557625978573213022
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6591214048622287047}
- component: {fileID: 2814553969608055777}
m_Layer: 0
m_Name: ArmBone2
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6591214048622287047
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3557625978573213022}
m_LocalRotation: {x: 1, y: 0, z: 0, w: 0}
m_LocalPosition: {x: 0, y: -6, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1590037996085689246}
m_Father: {fileID: 8854354080020382614}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 180, y: 0, z: 0}
--- !u!171741748 &2814553969608055777
ArticulationBody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3557625978573213022}
m_Enabled: 1
m_Mass: 1
m_ParentAnchorPosition: {x: 0, y: -3, z: 0}
m_ParentAnchorRotation: {x: 0.70710677, y: -0.70710677, z: 0, w: 0}
m_AnchorPosition: {x: 0, y: -3, z: 0}
m_AnchorRotation: {x: 0, y: 0, z: 0.70710677, w: 0.70710677}
m_ComputeParentAnchor: 1
m_ArticulationJointType: 3
m_LinearX: 0
m_LinearY: 0
m_LinearZ: 0
m_SwingY: 1
m_SwingZ: 1
m_Twist: 0
m_XDrive:
lowerLimit: 0
upperLimit: 0
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_YDrive:
lowerLimit: -120
upperLimit: 120
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_ZDrive:
lowerLimit: -120
upperLimit: 120
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_LinearDamping: 0.05
m_AngularDamping: 0.05
m_JointFriction: 0.05
m_Immovable: 0
--- !u!1 &4151261966004313255
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 961689143316173633}
- component: {fileID: 8493763919717438389}
m_Layer: 0
m_Name: ReacherRoot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &961689143316173633
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4151261966004313255}
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: 1589785597498866906}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!171741748 &8493763919717438389
ArticulationBody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4151261966004313255}
m_Enabled: 1
m_Mass: 1
m_ParentAnchorPosition: {x: 0, y: 0, z: 0}
m_ParentAnchorRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068}
m_AnchorPosition: {x: 0, y: 0, z: 0}
m_AnchorRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068}
m_ComputeParentAnchor: 1
m_ArticulationJointType: 0
m_LinearX: 0
m_LinearY: 0
m_LinearZ: 0
m_SwingY: 0
m_SwingZ: 0
m_Twist: 0
m_XDrive:
lowerLimit: 0
upperLimit: 0
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_YDrive:
lowerLimit: 0
upperLimit: 0
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_ZDrive:
lowerLimit: 0
upperLimit: 0
stiffness: 0
damping: 0
forceLimit: 3.4028235e+38
target: 0
targetVelocity: 0
m_LinearDamping: 0.05
m_AngularDamping: 0.05
m_JointFriction: 0.05
m_Immovable: 1

7
UnitySDK/Assets/ML-Agents/Examples/Reacher/Prefabs/ReacherRoot.prefab.meta


fileFormatVersion: 2
guid: f517fb76e96ed5801877e6fed9d8e45e
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
正在加载...
取消
保存