浏览代码

about to implement orientation cube

/docs-update
Hunter-Unity 4 年前
当前提交
e891d9b5
共有 18 个文件被更改,包括 3180 次插入0 次删除
  1. 297
      Project/Assets/ML-Agents/Examples/SharedAssets/Prefabs/OrientationCube.prefab
  2. 7
      Project/Assets/ML-Agents/Examples/SharedAssets/Prefabs/OrientationCube.prefab.meta
  3. 295
      Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/AvgCenterOfMass.cs
  4. 11
      Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/AvgCenterOfMass.cs.meta
  5. 28
      Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/RagdollHelpers.cs
  6. 3
      Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/RagdollHelpers.cs.meta
  7. 26
      Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/TransformExtensions.cs
  8. 3
      Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/TransformExtensions.cs.meta
  9. 1001
      Project/Assets/ML-Agents/Examples/Walker/Prefabs/WalkerPairDynamic.prefab
  10. 7
      Project/Assets/ML-Agents/Examples/Walker/Prefabs/WalkerPairDynamic.prefab.meta
  11. 865
      Project/Assets/ML-Agents/Examples/Walker/Scenes/WalkerDynamic.unity
  12. 9
      Project/Assets/ML-Agents/Examples/Walker/Scenes/WalkerDynamic.unity.meta
  13. 249
      Project/Assets/ML-Agents/Examples/Walker/Scripts/WalkerAgentDynamic.cs
  14. 12
      Project/Assets/ML-Agents/Examples/Walker/Scripts/WalkerAgentDynamic.cs.meta
  15. 8
      Project/Assets/Puppo.meta
  16. 351
      config/trainer_config.yaml
  17. 8
      Project/Assets/Puppo/Race Day.meta

297
Project/Assets/ML-Agents/Examples/SharedAssets/Prefabs/OrientationCube.prefab


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2591864625898824423
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2591864625898824440}
- component: {fileID: 2591864625898824442}
- component: {fileID: 2591864625898824441}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2591864625898824440
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2591864625898824423}
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: 2591864627374185741}
m_Father: {fileID: 2591864627249999504}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &2591864625898824442
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2591864625898824423}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &2591864625898824441
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2591864625898824423}
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: 5c59bd36def9a4684be49a21cf201a2d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!1 &2591864627249999519
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2591864627249999504}
m_Layer: 0
m_Name: OrientationCube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2591864627249999504
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2591864627249999519}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -498.349, y: -0.45, z: -250.09256}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 2591864625898824440}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2591864627374185740
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2591864627374185741}
m_Layer: 0
m_Name: Arrow
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2591864627374185741
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2591864627374185740}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.012, y: 0.10131, z: 0}
m_LocalScale: {x: 0.7764428, y: 0.7764428, z: 0.7764428}
m_Children:
- {fileID: 3256674261123397973}
- {fileID: 3257148088533667597}
m_Father: {fileID: 2591864625898824440}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &3258603775602446353
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3256674261123397973}
- component: {fileID: 3263562959519547143}
- component: {fileID: 3273629389920486807}
m_Layer: 0
m_Name: symbol_tri
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3256674261123397973
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3258603775602446353}
m_LocalRotation: {x: -0.5000024, y: -0.49999765, z: 0.4999684, w: -0.5000316}
m_LocalPosition: {x: 0.22598267, y: 0.5, z: 0}
m_LocalScale: {x: 0.39859864, y: 0.4054339, z: 0.25}
m_Children: []
m_Father: {fileID: 2591864627374185741}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &3263562959519547143
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3258603775602446353}
m_Mesh: {fileID: 4300000, guid: 09e2da39770c24cc9a71e5dbf05a1e85, type: 3}
--- !u!23 &3273629389920486807
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3258603775602446353}
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: 69fefdd39d2b34b169e921910bed9c0d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!1 &3259145720179606813
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3257148088533667597}
- component: {fileID: 3263743565359806181}
- component: {fileID: 3272323263339836425}
m_Layer: 0
m_Name: Symbol_Triangle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3257148088533667597
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3259145720179606813}
m_LocalRotation: {x: -0.5000024, y: -0.49999765, z: 0.4999684, w: -0.5000316}
m_LocalPosition: {x: -0.20300293, y: 0.5, z: 0}
m_LocalScale: {x: 0.31112, y: 0.4054339, z: 0.085725}
m_Children: []
m_Father: {fileID: 2591864627374185741}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 90.00001, y: 0, z: 270.007}
--- !u!33 &3263743565359806181
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3259145720179606813}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &3272323263339836425
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3259145720179606813}
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: 69fefdd39d2b34b169e921910bed9c0d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0

7
Project/Assets/ML-Agents/Examples/SharedAssets/Prefabs/OrientationCube.prefab.meta


fileFormatVersion: 2
guid: 41960beaa3d8041e19d82b5160042e55
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

295
Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/AvgCenterOfMass.cs


using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// Used for visualizing the average center of mass of a ragdoll
/// </summary>
[DisallowMultipleComponent]
[ExecuteInEditMode]
public class AvgCenterOfMass : MonoBehaviour
{
/// <summary>
/// Enable to show a green spehere at the current center of mass.
/// </summary>
[Tooltip("Enable to show a green spehere at the current center of mass.")]
public bool showCOMGizmos = true;
public Vector3 avgCOMWorldSpace;
public Color avgCOMColor = Color.green;
public Color bodyPartCOMColor = Color.yellow;
List<Rigidbody> rbList = new List<Rigidbody>();
public float totalMass;
[Tooltip("Visualize Relative Pos")]
public bool showBPPosRelToBody;
public bool useTransformPoint = true;
public bool useTransformVector;
public bool useTransformDir;
public bool showRBPos;
public bool showRelPosVectorOnly;
public bool showInverseTransformPointUnscaledRelToBody;
public bool showInverseTransformPointRelToBody;
public bool showInverseTransformVectorRelToBody;
public bool showInverseTransformDirRelToBody;
public Transform body_T;
void Start()
{
SetUpRigidbodies();
}
void SetUpRigidbodies()
{
rbList.Clear();
totalMass = 0;
foreach(var item in GetComponentsInChildren<Rigidbody>())
{
rbList.Add(item);
totalMass += item.mass;
}
}
// void FixedUpdate()
// {
// if(Application.isPlaying)
// {
// avgCOMWorldSpace = Vector3.zero;
// foreach(var item in rbList)
// {
// if (item)
// {
// avgCOMWorldSpace += item.worldCenterOfMass;
// }
// }
// //DRAW AVG GIZMOS
// avgCOMWorldSpace /= rbList.Count; //divide by num of rb's to get avg in WORLD space
// }
// }
void FixedUpdate()
{
if(Application.isPlaying)
{
// avgCOMWorldSpace = Vector3.zero;
// foreach(var item in rbList)
// {
// if (item)
// {
// avgCOMWorldSpace += item.worldCenterOfMass;
// }
// }
// //DRAW AVG GIZMOS
// avgCOMWorldSpace /= rbList.Count; //divide by num of rb's to get avg in WORLD space
Vector3 CoM = Vector3.zero;
float c = 0f;
foreach(var item in rbList)
{
CoM += item.worldCenterOfMass * item.mass;
c += item.mass;
}
avgCOMWorldSpace = CoM/c;
// CoM /= c;
if (showBPPosRelToBody)
{
var pos = body_T.position;
Matrix4x4 bodyMatrix = body_T.localToWorldMatrix;
// get position from the last column
var bodyPos = new Vector3(bodyMatrix[0,3], bodyMatrix[1,3], bodyMatrix[2,3]);
Debug.DrawRay(bodyPos, Vector3.up, Color.yellow,Time.fixedDeltaTime);
foreach (var rb in rbList)
{
if (showRBPos)
{
Debug.DrawRay(rb.position, Vector3.up, Color.green,Time.fixedDeltaTime);
}
if (rb.transform != body_T)
{
if (showRelPosVectorOnly)
{
var relPosVector = rb.position - body_T.position;
// Debug.DrawRay(body_T.position + body_T.InverseTransformPoint(rb.position), Vector3.up, Color.red,Time.fixedDeltaTime);
Debug.DrawRay(body_T.position + relPosVector, Vector3.up, Color.red,Time.fixedDeltaTime);
// Vector3 currentLocalPosRelToMatrix = bodyMatrix.inverse.MultiplyPoint(rb.position);
Vector3 currentLocalPosRelToMatrix = bodyMatrix.inverse.MultiplyVector(rb.position - bodyPos);
Debug.DrawRay(body_T.position + currentLocalPosRelToMatrix, Vector3.up, Color.green,Time.fixedDeltaTime);
}
if (showInverseTransformPointUnscaledRelToBody)
{
// Debug.DrawRay(body_T.position + body_T.InverseTransformPoint(rb.position), Vector3.up, Color.red,Time.fixedDeltaTime);
Debug.DrawRay(body_T.position + body_T.InverseTransformPointUnscaled(rb.position), Vector3.up, Color.red,Time.fixedDeltaTime);
}
if (showInverseTransformPointRelToBody)
{
// Debug.DrawRay(body_T.position + body_T.InverseTransformPoint(rb.position), Vector3.up, Color.red,Time.fixedDeltaTime);
Debug.DrawRay(body_T.position + body_T.InverseTransformPoint(rb.position), Vector3.up, Color.red,Time.fixedDeltaTime);
}
if (showInverseTransformDirRelToBody)
{
Debug.DrawRay(body_T.InverseTransformDirection(rb.position), Vector3.up, Color.red,Time.fixedDeltaTime);
}
if (showInverseTransformVectorRelToBody)
{
Debug.DrawRay(body_T.position + body_T.InverseTransformVector(rb.position - body_T.position), Vector3.up, Color.red,Time.fixedDeltaTime);
}
// var localPosRelToBody = body.InverseTransformPoint(rb.position);
// Debug.DrawRay(body_T.position + body_T.InverseTransformPoint(rb.position), Vector3.up, Color.red,Time.fixedDeltaTime);
// Debug.DrawRay(body_T.position + rb.transform.TransformVector(rb.transform.localPosition), Vector3.up, Color.cyan,Time.fixedDeltaTime);
// Debug.DrawRay(rb.transform.TransformPoint(rb.position), Vector3.up, Color.green,Time.fixedDeltaTime);
// Debug.DrawRay(body_T.position + body_T.InverseTransformVector(rb.transform.position), Vector3.up, Color.red,Time.fixedDeltaTime);
// Debug.DrawRay(body_T.position + body_T.InverseTransformDirection(rb.transform.position), Vector3.up, Color.red,Time.fixedDeltaTime);
// Debug.DrawRay(body_T.position + body_T.TransformPoint(rb.transform.localPosition), Vector3.up, Color.red,Time.fixedDeltaTime);
if (useTransformPoint)
{
}
else if (useTransformVector)
{
}
else if (useTransformDir)
{
}
}
}
}
}
}
private void OnDrawGizmosSelected()
{
if(!Application.isPlaying)
{
if (showCOMGizmos)
{
Vector3 CoM = Vector3.zero;
float c = 0f;
// avgCOMWorldSpace = Vector3.zero;
//SHOW BODY PART GIZMOS
foreach(var item in rbList)
{
// if (item)
// {
Gizmos.color = bodyPartCOMColor;
float drawCOMRadius = item.mass/totalMass;
Gizmos.DrawSphere(item.worldCenterOfMass, drawCOMRadius);
// Gizmos.DrawWireSphere(item.worldCenterOfMass, drawCOMRadius);
CoM += item.worldCenterOfMass * item.mass;
c += item.mass;
// avgCOMWorldSpace += item.worldCenterOfMass;
// }
}
//DRAW AVG GIZMOS
avgCOMWorldSpace = CoM/c;
// avgCOMWorldSpace /= rbList.Count; //divide by num of rb's to get avg in WORLD space
float avgCOMRadius = 0.1f; //radius of gizmo
Gizmos.color = avgCOMColor;
Gizmos.DrawSphere(avgCOMWorldSpace, avgCOMRadius);
}
}
else
{
if (showCOMGizmos)
{
// avgCOMWorldSpace = Vector3.zero;
//SHOW BODY PART GIZMOS
foreach(var item in rbList)
{
// if (item)
// {
Gizmos.color = bodyPartCOMColor;
float drawCOMRadius = item.mass/totalMass;
Gizmos.DrawSphere(item.worldCenterOfMass, drawCOMRadius);
// Gizmos.DrawWireSphere(item.worldCenterOfMass, drawCOMRadius);
// avgCOMWorldSpace += item.worldCenterOfMass;
// }
}
//DRAW AVG GIZMOS
// avgCOMWorldSpace /= rbList.Count; //divide by num of rb's to get avg in WORLD space
float avgCOMGizmoRadius = 0.1f; //radius of gizmo
Gizmos.color = avgCOMColor;
Gizmos.DrawSphere(avgCOMWorldSpace, avgCOMGizmoRadius);
}
}
}
// {
// if(!Application.isPlaying)
// {
// if (showCOMGizmos)
// {
// avgCOMWorldSpace = Vector3.zero;
// //SHOW BODY PART GIZMOS
// foreach(var item in rbList)
// {
// if (item)
// {
// Gizmos.color = bodyPartCOMColor;
// float drawCOMRadius = item.mass/totalMass;
// Gizmos.DrawWireSphere(item.worldCenterOfMass, drawCOMRadius);
// avgCOMWorldSpace += item.worldCenterOfMass;
// }
// }
// //DRAW AVG GIZMOS
// avgCOMWorldSpace /= rbList.Count; //divide by num of rb's to get avg in WORLD space
// float avgCOMRadius = 0.1f; //radius of gizmo
// Gizmos.color = avgCOMColor;
// Gizmos.DrawSphere(avgCOMWorldSpace, avgCOMRadius);
// }
// }
// else
// {
// if (showCOMGizmos)
// {
// // avgCOMWorldSpace = Vector3.zero;
// //SHOW BODY PART GIZMOS
// foreach(var item in rbList)
// {
// if (item)
// {
// Gizmos.color = bodyPartCOMColor;
// float drawCOMRadius = item.mass/totalMass;
// Gizmos.DrawWireSphere(item.worldCenterOfMass, drawCOMRadius);
// // avgCOMWorldSpace += item.worldCenterOfMass;
// }
// }
// //DRAW AVG GIZMOS
// // avgCOMWorldSpace /= rbList.Count; //divide by num of rb's to get avg in WORLD space
// float avgCOMGizmoRadius = 0.1f; //radius of gizmo
// Gizmos.color = avgCOMColor;
// Gizmos.DrawSphere(avgCOMWorldSpace, avgCOMGizmoRadius);
// }
// }
// }
}

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


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

28
Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/RagdollHelpers.cs


using UnityEngine;
namespace MLAgentsExamples
{
/// <summary>
/// This class contains logic for common ragdoll operations & helper methods.
/// </summary>
public static class RagdollHelpers
{
/// <summary>
//Get Joint Rotation Relative to the Connected Rigidbody
//We want to collect this info because it is the actual rotation, not the "target rotation"
//..because when the joint is weak, the target rotation will be much different than the actual rotation
/// </summary>
public static Quaternion GetJointRotation(ConfigurableJoint joint)
{
Quaternion rotDiff = Quaternion.Inverse(joint.connectedBody.transform.rotation) * joint.transform.rotation;
return(rotDiff);
// return(Quaternion.FromToRotation(joint.axis, joint.connectedBody.transform.rotation.eulerAngles));
}
public static Quaternion GetRotationDelta(Quaternion r1, Quaternion r2)
{
Quaternion rotDiff = Quaternion.Inverse(r1) * r2;
return(rotDiff);
}
}
}

3
Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/RagdollHelpers.cs.meta


fileFormatVersion: 2
guid: 2b8c368466f64b5d8b4dca532c0a7b3c
timeCreated: 1588782867

26
Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/TransformExtensions.cs


using UnityEngine;
/// <summary>
/// A Transform Extension that ignores scale for TransformPoint operations.
/// </summary>
public static class TransformExtensions
{
/// <summary>
/// Transform position from world space to local space unscaled.
/// </summary>
public static Vector3 TransformPointUnscaled(this Transform transform, Vector3 position)
{
var localToWorldMatrix = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one);
return localToWorldMatrix.MultiplyPoint3x4(position);
}
/// <summary>
/// Transform position from local space to world space unscaled.
/// </summary>
public static Vector3 InverseTransformPointUnscaled(this Transform transform, Vector3 position)
{
var worldToLocalMatrix = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one).inverse;
return worldToLocalMatrix.MultiplyPoint3x4(position);
}
}

3
Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/TransformExtensions.cs.meta


fileFormatVersion: 2
guid: cda45d40e2b1444597790f6a956db9a3
timeCreated: 1588782389

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

7
Project/Assets/ML-Agents/Examples/Walker/Prefabs/WalkerPairDynamic.prefab.meta


fileFormatVersion: 2
guid: 012997b9fa39c4058978e9bd7c81f51d
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

865
Project/Assets/ML-Agents/Examples/Walker/Scenes/WalkerDynamic.unity


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.8, g: 0.8, b: 0.8, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1.5
m_AmbientMode: 3
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 2100000, guid: aa8aeca77e027ed40b33552c4f2f7337, type: 2}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
serializedVersion: 10
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVRFilteringMode: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ShowResolutionOverlay: 1
m_LightingDataAsset: {fileID: 112000002, guid: 54ef04e276b2b414ca9a558df0ef647a,
type: 2}
m_UseShadowmask: 1
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1001 &41273264
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 100000, guid: 123ce272c1899fe4cb9494514640e29e, type: 3}
propertyPath: m_TagString
value: ground
objectReference: {fileID: 0}
- target: {fileID: 100000, guid: 123ce272c1899fe4cb9494514640e29e, type: 3}
propertyPath: m_StaticEditorFlags
value: 4294967295
objectReference: {fileID: 0}
- target: {fileID: 100002, guid: 123ce272c1899fe4cb9494514640e29e, type: 3}
propertyPath: m_StaticEditorFlags
value: 4294967295
objectReference: {fileID: 0}
- target: {fileID: 100004, guid: 123ce272c1899fe4cb9494514640e29e, type: 3}
propertyPath: m_StaticEditorFlags
value: 4294967295
objectReference: {fileID: 0}
- target: {fileID: 400002, guid: 123ce272c1899fe4cb9494514640e29e, type: 3}
propertyPath: m_LocalPosition.x
value: 400
objectReference: {fileID: 0}
- target: {fileID: 400002, guid: 123ce272c1899fe4cb9494514640e29e, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400002, guid: 123ce272c1899fe4cb9494514640e29e, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400002, guid: 123ce272c1899fe4cb9494514640e29e, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400002, guid: 123ce272c1899fe4cb9494514640e29e, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400002, guid: 123ce272c1899fe4cb9494514640e29e, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400002, guid: 123ce272c1899fe4cb9494514640e29e, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 400002, guid: 123ce272c1899fe4cb9494514640e29e, type: 3}
propertyPath: m_RootOrder
value: 3
objectReference: {fileID: 0}
- target: {fileID: 2300000, guid: 123ce272c1899fe4cb9494514640e29e, type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: acba6bf2a290a496bb8989b42bf8698d, type: 2}
- target: {fileID: 2300002, guid: 123ce272c1899fe4cb9494514640e29e, type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 123ce272c1899fe4cb9494514640e29e, type: 3}
--- !u!1001 &60886982
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
propertyPath: m_LocalPosition.x
value: 106.38621
objectReference: {fileID: 0}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
propertyPath: m_LocalPosition.y
value: 38.840767
objectReference: {fileID: 0}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
propertyPath: m_LocalPosition.z
value: 34.72934
objectReference: {fileID: 0}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
propertyPath: m_LocalRotation.x
value: 0.31598538
objectReference: {fileID: 0}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
propertyPath: m_LocalRotation.y
value: -0.3596048
objectReference: {fileID: 0}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
propertyPath: m_LocalRotation.z
value: 0.13088542
objectReference: {fileID: 0}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
propertyPath: m_LocalRotation.w
value: 0.8681629
objectReference: {fileID: 0}
- target: {fileID: 4943719350691982, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
propertyPath: m_RootOrder
value: 2
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 5889392e3f05b448a8a06c5def6c2dec, type: 3}
--- !u!1 &459314944
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 459314948}
- component: {fileID: 459314947}
- component: {fileID: 459314945}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &459314945
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 459314944}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ec40c70d5160b47cd8deaab79e24892c, type: 3}
m_Name:
m_EditorClassIdentifier:
target: {fileID: 4333478024843770}
--- !u!20 &459314947
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 459314944}
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: 40
orthographic: 0
orthographic size: 19.41
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967293
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!4 &459314948
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 459314944}
m_LocalRotation: {x: 0.1131026, y: -0.41461477, z: 0.05200237, w: 0.9014422}
m_LocalPosition: {x: -474.12155, y: 10.422336, z: -262.80988}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 14.302001, y: -49.4, z: -0.002}
--- !u!1 &1321968714 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 100004, guid: 123ce272c1899fe4cb9494514640e29e,
type: 3}
m_PrefabInstance: {fileID: 41273264}
m_PrefabAsset: {fileID: 0}
--- !u!65 &1321968715
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1321968714}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 50, y: 1100, z: 72100}
m_Center: {x: 198929, y: 500, z: 35000}
--- !u!65 &1321968716
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1321968714}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 50, y: 1100, z: 72100}
m_Center: {x: -1015, y: 500, z: 35000}
--- !u!65 &1321968717
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1321968714}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 200000, y: 1100, z: 50}
m_Center: {x: 98950, y: 500, z: -1015}
--- !u!65 &1321968718
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1321968714}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 200000, y: 1100, z: 50}
m_Center: {x: 98950, y: 500, z: 71025}
--- !u!1 &1409355320
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1409355322}
- component: {fileID: 1409355323}
- component: {fileID: 1409355321}
m_Layer: 0
m_Name: WalkerSettings
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1409355321
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1409355320}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ec51f47c5ed0478080c449c74fd9c154, type: 3}
m_Name:
m_EditorClassIdentifier:
gravityMultiplier: 1.5
fixedDeltaTime: 0.01333
maximumDeltaTime: 0.15
solverIterations: 12
solverVelocityIterations: 12
--- !u!4 &1409355322
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1409355320}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -5.2424088, y: 0.8, z: -10.498967}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1409355323
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1409355320}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3d6f3eab3776b4fb79724ac4216dfd7b, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1878074381 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 100000, guid: 123ce272c1899fe4cb9494514640e29e,
type: 3}
m_PrefabInstance: {fileID: 41273264}
m_PrefabAsset: {fileID: 0}
--- !u!65 &1878074383
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1878074381}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 199900, y: 100, z: 72000}
m_Center: {x: 99950, y: -50, z: 36000}
--- !u!1001 &1988882706
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_Pivot.y
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3ce107b4a79bc4eef83afde434932a68, type: 3}
--- !u!4 &4333478024843770 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 8916244711290644222, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
m_PrefabInstance: {fileID: 8913670489453311748}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &8913670489453311748
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 8908943361521729982, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_LocalPosition.x
value: -500
objectReference: {fileID: 0}
- target: {fileID: 8908943361521729982, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_LocalPosition.y
value: 2.45
objectReference: {fileID: 0}
- target: {fileID: 8908943361521729982, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_LocalPosition.z
value: -250
objectReference: {fileID: 0}
- target: {fileID: 8908943361521729982, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 8908943361521729982, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_LocalRotation.y
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 8908943361521729982, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 8908943361521729982, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 8908943361521729982, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_RootOrder
value: 5
objectReference: {fileID: 0}
- target: {fileID: 8908943361521729982, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8908943361521729982, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8908943361521729982, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8913670488009607198, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_AngularDrag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670488009607198, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Drag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670488103258781, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_AngularDrag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670488103258781, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Drag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670488103258783, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_EnablePreprocessing
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8913670488106135386, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_EnablePreprocessing
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8913670488106135387, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_AngularDrag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670488106135387, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Drag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670488141971377, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_EnablePreprocessing
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8913670488141971378, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_AngularDrag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670488141971378, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Drag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670488215205497, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_EnablePreprocessing
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8913670488215205503, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_AngularDrag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670488215205503, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Drag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670488674934060, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_EnablePreprocessing
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8913670488674934061, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_AngularDrag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670488674934061, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Drag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670488904676208, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 866f7a84824d141dbbe50dd1893207d9, type: 2}
- target: {fileID: 8913670488974397832, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_EnablePreprocessing
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8913670488974397838, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_AngularDrag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670488974397838, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Drag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489135890562, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_AngularDrag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489135890562, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Drag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489135890572, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_EnablePreprocessing
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8913670489222467606, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_EnablePreprocessing
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8913670489222467607, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_AngularDrag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489222467607, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Drag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489331594706, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_AngularDrag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489331594706, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Drag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489331594716, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_EnablePreprocessing
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8913670489348644705, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_AngularDrag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489348644705, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Drag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489348644707, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_EnablePreprocessing
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8913670489459620681, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_AngularDrag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489459620681, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Drag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489459620683, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_EnablePreprocessing
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8913670489832487162, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_EnablePreprocessing
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8913670489832487163, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_AngularDrag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489832487163, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Drag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489835536933, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_AngularDrag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489835536933, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Drag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489835536935, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_EnablePreprocessing
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8913670489902738864, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_AngularDrag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489902738864, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Drag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489902738866, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_EnablePreprocessing
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8913670489932920736, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_EnablePreprocessing
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8913670489932920742, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_AngularDrag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8913670489932920742, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Drag
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 8914216747803489280, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Name
value: WalkerPairDynamic
objectReference: {fileID: 0}
- target: {fileID: 8928008596961116030, guid: 012997b9fa39c4058978e9bd7c81f51d,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 866f7a84824d141dbbe50dd1893207d9, type: 2}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 012997b9fa39c4058978e9bd7c81f51d, type: 3}

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


fileFormatVersion: 2
guid: 4619cf9f250c14e9c9af102bc16c1323
timeCreated: 1520420566
licenseType: Free
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

249
Project/Assets/ML-Agents/Examples/Walker/Scripts/WalkerAgentDynamic.cs


using MLAgentsExamples;
using UnityEngine;
using Unity.MLAgents;
using Unity.MLAgentsExamples;
using Unity.MLAgents.Sensors;
public class WalkerAgentDynamic : Agent
{
[Header("Specific to Walker")]
[Header("Target To Walk Towards")]
[Space(10)]
public Transform target;
//ORIENTATION
Vector3 m_WalkDir;
Quaternion m_WalkDirLookRot;
Matrix4x4 m_worldPosMatrix;
public Transform hips;
public Transform chest;
public Transform spine;
public Transform head;
public Transform thighL;
public Transform shinL;
public Transform footL;
public Transform thighR;
public Transform shinR;
public Transform footR;
public Transform armL;
public Transform forearmL;
public Transform handL;
public Transform armR;
public Transform forearmR;
public Transform handR;
JointDriveController m_JdController;
Rigidbody m_HipsRb;
Rigidbody m_ChestRb;
Rigidbody m_SpineRb;
EnvironmentParameters m_ResetParams;
public override void Initialize()
{
m_JdController = GetComponent<JointDriveController>();
m_JdController.SetupBodyPart(hips);
m_JdController.SetupBodyPart(chest);
m_JdController.SetupBodyPart(spine);
m_JdController.SetupBodyPart(head);
m_JdController.SetupBodyPart(thighL);
m_JdController.SetupBodyPart(shinL);
m_JdController.SetupBodyPart(footL);
m_JdController.SetupBodyPart(thighR);
m_JdController.SetupBodyPart(shinR);
m_JdController.SetupBodyPart(footR);
m_JdController.SetupBodyPart(armL);
m_JdController.SetupBodyPart(forearmL);
m_JdController.SetupBodyPart(handL);
m_JdController.SetupBodyPart(armR);
m_JdController.SetupBodyPart(forearmR);
m_JdController.SetupBodyPart(handR);
m_HipsRb = hips.GetComponent<Rigidbody>();
m_ChestRb = chest.GetComponent<Rigidbody>();
m_SpineRb = spine.GetComponent<Rigidbody>();
m_ResetParams = Academy.Instance.EnvironmentParameters;
SetResetParameters();
}
/// <summary>
/// Add relevant information on each body part to observations.
/// </summary>
public void CollectObservationBodyPart(BodyPart bp, VectorSensor sensor)
{
//GROUND CHECK
sensor.AddObservation(bp.groundContact.touchingGround ? 1 : 0); // Is this bp touching the ground
//RELATIVE RB VELOCITY
var velocityRelativeToLookRotationToTarget = m_worldPosMatrix.inverse.MultiplyVector(bp.rb.velocity);
sensor.AddObservation(velocityRelativeToLookRotationToTarget);
//RELATIVE RB ANGULAR VELOCITY
var angularVelocityRelativeToLookRotationToTarget = m_worldPosMatrix.inverse.MultiplyVector(bp.rb.angularVelocity);
sensor.AddObservation(angularVelocityRelativeToLookRotationToTarget);
// sensor.AddObservation(rb.velocity);
// sensor.AddObservation(rb.angularVelocity);
// var localPosRelToHips = hips.InverseTransformPoint(rb.position);
// sensor.AddObservation(localPosRelToHips);
sensor.AddObservation(hips.InverseTransformPointUnscaled(bp.rb.position));
// if (bp.rb.transform != hips && bp.rb.transform != handL && bp.rb.transform != handR &&
// bp.rb.transform != footL && bp.rb.transform != footR && bp.rb.transform != head)
if (bp.rb.transform != hips && bp.rb.transform != handL && bp.rb.transform != handR &&
bp.rb.transform != footL && bp.rb.transform != footR)
{
sensor.AddObservation(RagdollHelpers.GetJointRotation(bp.joint));
// sensor.AddObservation(bp.currentXNormalizedRot);
// sensor.AddObservation(bp.currentYNormalizedRot);
// sensor.AddObservation(bp.currentZNormalizedRot);
sensor.AddObservation(bp.currentStrength / m_JdController.maxJointForceLimit);
}
}
// /// <summary>
// /// Add relevant information on each body part to observations.
// /// </summary>
// public void CollectObservationBodyPart(BodyPart bp, VectorSensor sensor)
// {
// var rb = bp.rb;
// sensor.AddObservation(bp.groundContact.touchingGround ? 1 : 0); // Is this bp touching the ground
// sensor.AddObservation(rb.velocity);
// sensor.AddObservation(rb.angularVelocity);
// var localPosRelToHips = hips.InverseTransformPoint(rb.position);
// sensor.AddObservation(localPosRelToHips);
//
// if (bp.rb.transform != hips && bp.rb.transform != handL && bp.rb.transform != handR &&
// bp.rb.transform != footL && bp.rb.transform != footR && bp.rb.transform != head)
// {
// sensor.AddObservation(bp.currentXNormalizedRot);
// sensor.AddObservation(bp.currentYNormalizedRot);
// sensor.AddObservation(bp.currentZNormalizedRot);
// sensor.AddObservation(bp.currentStrength / m_JdController.maxJointForceLimit);
// }
// }
/// <summary>
/// Loop over body parts to add them to observation.
/// </summary>
public override void CollectObservations(VectorSensor sensor)
{
m_JdController.GetCurrentJointForces();
// Update pos to target
m_WalkDir = target.position - hips.position;
//FACING DIR
m_WalkDirLookRot = Quaternion.LookRotation(m_WalkDir);
sensor.AddObservation(RagdollHelpers.GetRotationDelta(m_WalkDirLookRot, hips.rotation));
// m_TargetDirMatrix = Matrix4x4.TRS(Vector3.zero, m_LookRotation, Vector3.one);
//ORIENTATION MATRIX
Vector3 worldPosMatrixPos = hips.position;
worldPosMatrixPos.y = .5f;
m_worldPosMatrix = Matrix4x4.TRS(worldPosMatrixPos, Quaternion.identity, Vector3.one);
// sensor.AddObservation(m_WalkDir.normalized);
//HIP POS REL TO MATRIX
sensor.AddObservation(hips.position - worldPosMatrixPos);
// sensor.AddObservation(m_JdController.bodyPartsDict[hips].rb.position);
// sensor.AddObservation(hips.forward);
// sensor.AddObservation(hips.up);
foreach (var bodyPart in m_JdController.bodyPartsDict.Values)
{
CollectObservationBodyPart(bodyPart, sensor);
}
}
public override void OnActionReceived(float[] vectorAction)
{
var bpDict = m_JdController.bodyPartsDict;
var i = -1;
bpDict[chest].SetJointTargetRotation(vectorAction[++i], vectorAction[++i], vectorAction[++i]);
bpDict[spine].SetJointTargetRotation(vectorAction[++i], vectorAction[++i], vectorAction[++i]);
bpDict[thighL].SetJointTargetRotation(vectorAction[++i], vectorAction[++i], 0);
bpDict[thighR].SetJointTargetRotation(vectorAction[++i], vectorAction[++i], 0);
bpDict[shinL].SetJointTargetRotation(vectorAction[++i], 0, 0);
bpDict[shinR].SetJointTargetRotation(vectorAction[++i], 0, 0);
bpDict[footR].SetJointTargetRotation(vectorAction[++i], vectorAction[++i], vectorAction[++i]);
bpDict[footL].SetJointTargetRotation(vectorAction[++i], vectorAction[++i], vectorAction[++i]);
bpDict[armL].SetJointTargetRotation(vectorAction[++i], vectorAction[++i], 0);
bpDict[armR].SetJointTargetRotation(vectorAction[++i], vectorAction[++i], 0);
bpDict[forearmL].SetJointTargetRotation(vectorAction[++i], 0, 0);
bpDict[forearmR].SetJointTargetRotation(vectorAction[++i], 0, 0);
bpDict[head].SetJointTargetRotation(vectorAction[++i], vectorAction[++i], 0);
//update joint strength settings
bpDict[chest].SetJointStrength(vectorAction[++i]);
bpDict[spine].SetJointStrength(vectorAction[++i]);
bpDict[head].SetJointStrength(vectorAction[++i]);
bpDict[thighL].SetJointStrength(vectorAction[++i]);
bpDict[shinL].SetJointStrength(vectorAction[++i]);
bpDict[footL].SetJointStrength(vectorAction[++i]);
bpDict[thighR].SetJointStrength(vectorAction[++i]);
bpDict[shinR].SetJointStrength(vectorAction[++i]);
bpDict[footR].SetJointStrength(vectorAction[++i]);
bpDict[armL].SetJointStrength(vectorAction[++i]);
bpDict[forearmL].SetJointStrength(vectorAction[++i]);
bpDict[armR].SetJointStrength(vectorAction[++i]);
bpDict[forearmR].SetJointStrength(vectorAction[++i]);
}
void FixedUpdate()
{
// Set reward for this step according to mixture of the following elements.
// a. Velocity alignment with goal direction.
// b. Rotation alignment with goal direction.
// c. Encourage head height.
// d. Discourage head movement.
m_WalkDir = target.position - m_JdController.bodyPartsDict[hips].rb.position;
AddReward(
+0.03f * Vector3.Dot(m_WalkDir.normalized, m_JdController.bodyPartsDict[hips].rb.velocity)
+ 0.01f * Vector3.Dot(m_WalkDir.normalized, hips.forward)
+ 0.02f * (head.position.y - hips.position.y)
- 0.01f * Vector3.Distance(m_JdController.bodyPartsDict[head].rb.velocity,
m_JdController.bodyPartsDict[hips].rb.velocity)
);
}
/// <summary>
/// Loop over body parts and reset them to initial conditions.
/// </summary>
public override void OnEpisodeBegin()
{
foreach (var bodyPart in m_JdController.bodyPartsDict.Values)
{
bodyPart.Reset(bodyPart);
}
if (m_WalkDir != Vector3.zero)
{
transform.rotation = Quaternion.LookRotation(m_WalkDir);
}
SetResetParameters();
}
public void SetTorsoMass()
{
m_ChestRb.mass = m_ResetParams.GetWithDefault("chest_mass", 8);
m_SpineRb.mass = m_ResetParams.GetWithDefault("spine_mass", 10);
m_HipsRb.mass = m_ResetParams.GetWithDefault("hip_mass", 15);
}
public void SetResetParameters()
{
SetTorsoMass();
}
}

12
Project/Assets/ML-Agents/Examples/Walker/Scripts/WalkerAgentDynamic.cs.meta


fileFormatVersion: 2
guid: 21bcc2d3e08144151a0df9fa506dbbe7
timeCreated: 1507411991
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

8
Project/Assets/Puppo.meta


fileFormatVersion: 2
guid: 8fe7964b5935448bbb5ea7625e228d8e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

351
config/trainer_config.yaml


default:
trainer: ppo
batch_size: 1024
beta: 5.0e-3
buffer_size: 10240
epsilon: 0.2
hidden_units: 128
lambd: 0.95
learning_rate: 3.0e-4
learning_rate_schedule: linear
max_steps: 5.0e5
memory_size: 128
normalize: false
num_epoch: 3
num_layers: 2
time_horizon: 64
sequence_length: 64
summary_freq: 10000
use_recurrent: false
vis_encode_type: simple
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.99
FoodCollector:
normalize: false
beta: 5.0e-3
batch_size: 1024
buffer_size: 10240
max_steps: 2.0e6
Bouncer:
normalize: true
max_steps: 4.0e6
num_layers: 2
hidden_units: 64
PushBlock:
max_steps: 2.0e6
batch_size: 128
buffer_size: 2048
beta: 1.0e-2
hidden_units: 256
summary_freq: 60000
time_horizon: 64
num_layers: 2
SmallWallJump:
max_steps: 5e6
batch_size: 128
buffer_size: 2048
beta: 5.0e-3
hidden_units: 256
summary_freq: 20000
time_horizon: 128
num_layers: 2
normalize: false
BigWallJump:
max_steps: 2e7
batch_size: 128
buffer_size: 2048
beta: 5.0e-3
hidden_units: 256
summary_freq: 20000
time_horizon: 128
num_layers: 2
normalize: false
Pyramids:
summary_freq: 30000
time_horizon: 128
batch_size: 128
buffer_size: 2048
hidden_units: 512
num_layers: 2
beta: 1.0e-2
max_steps: 1.0e7
num_epoch: 3
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.99
curiosity:
strength: 0.02
gamma: 0.99
encoding_size: 256
VisualPyramids:
time_horizon: 128
batch_size: 64
buffer_size: 2024
hidden_units: 256
num_layers: 1
beta: 1.0e-2
max_steps: 1.0e7
num_epoch: 3
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.99
curiosity:
strength: 0.01
gamma: 0.99
encoding_size: 256
3DBall:
normalize: true
batch_size: 64
buffer_size: 12000
summary_freq: 12000
time_horizon: 1000
lambd: 0.99
beta: 0.001
3DBallHard:
normalize: true
batch_size: 1200
buffer_size: 12000
summary_freq: 12000
time_horizon: 1000
max_steps: 5.0e6
beta: 0.001
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.995
Tennis:
normalize: true
max_steps: 5.0e7
learning_rate_schedule: constant
batch_size: 1024
buffer_size: 10240
hidden_units: 256
time_horizon: 1000
self_play:
window: 10
play_against_latest_model_ratio: 0.5
save_steps: 50000
swap_steps: 50000
team_change: 100000
Soccer:
normalize: false
max_steps: 5.0e7
learning_rate_schedule: constant
batch_size: 2048
buffer_size: 20480
hidden_units: 512
time_horizon: 1000
num_layers: 2
self_play:
window: 10
play_against_latest_model_ratio: 0.5
save_steps: 50000
swap_steps: 50000
team_change: 100000
CrawlerStatic:
normalize: true
num_epoch: 3
time_horizon: 1000
batch_size: 2024
buffer_size: 20240
max_steps: 1e7
summary_freq: 30000
num_layers: 3
hidden_units: 512
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.995
CrawlerDynamic:
normalize: true
num_epoch: 3
time_horizon: 1000
batch_size: 2024
buffer_size: 20240
max_steps: 3.5e6
# max_steps: 1e7
summary_freq: 30000
num_layers: 3
hidden_units: 512
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.995
CrawlerBalanced:
normalize: true
num_epoch: 3
time_horizon: 1000
batch_size: 2024
buffer_size: 20240
# max_steps: 3.5e6
max_steps: 1e8
summary_freq: 30000
num_layers: 3
hidden_units: 512
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.995
WormDynamic:
normalize: true
num_epoch: 3
time_horizon: 1000
batch_size: 2024
buffer_size: 20240
max_steps: 3.5e6
summary_freq: 30000
num_layers: 3
hidden_units: 512
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.995
WormStatic:
normalize: true
num_epoch: 3
time_horizon: 1000
batch_size: 2024
buffer_size: 20240
max_steps: 3.5e6
summary_freq: 30000
num_layers: 3
hidden_units: 512
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.995
WalkerDynamic:
normalize: true
num_epoch: 3
time_horizon: 1000
batch_size: 2048
buffer_size: 20480
max_steps: 2e7
summary_freq: 30000
num_layers: 3
hidden_units: 512
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.995
Walker:
normalize: true
num_epoch: 3
time_horizon: 1000
batch_size: 2048
buffer_size: 20480
max_steps: 2e7
summary_freq: 30000
num_layers: 3
hidden_units: 512
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.995
Reacher:
normalize: true
num_epoch: 3
time_horizon: 1000
batch_size: 2024
buffer_size: 20240
max_steps: 2e7
summary_freq: 60000
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.995
Hallway:
use_recurrent: true
sequence_length: 64
num_layers: 2
hidden_units: 128
memory_size: 128
beta: 1.0e-2
num_epoch: 3
buffer_size: 1024
batch_size: 128
max_steps: 1.0e7
summary_freq: 10000
time_horizon: 64
VisualHallway:
use_recurrent: true
sequence_length: 64
num_layers: 1
hidden_units: 128
memory_size: 128
beta: 1.0e-2
num_epoch: 3
buffer_size: 1024
batch_size: 64
max_steps: 1.0e7
summary_freq: 10000
time_horizon: 64
VisualPushBlock:
use_recurrent: true
sequence_length: 32
num_layers: 1
hidden_units: 128
memory_size: 128
beta: 1.0e-2
num_epoch: 3
buffer_size: 1024
batch_size: 64
max_steps: 3.0e6
summary_freq: 60000
time_horizon: 64
GridWorld:
batch_size: 32
normalize: false
num_layers: 1
hidden_units: 256
beta: 5.0e-3
buffer_size: 256
max_steps: 500000
summary_freq: 20000
time_horizon: 5
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.9
Basic:
batch_size: 32
normalize: false
num_layers: 1
hidden_units: 20
beta: 5.0e-3
buffer_size: 256
max_steps: 5.0e5
summary_freq: 2000
time_horizon: 3
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.9

8
Project/Assets/Puppo/Race Day.meta


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